react-slick.min.js.map 191 KB
{"version":3,"sources":["webpack://Slider/webpack/universalModuleDefinition","webpack://Slider/webpack/bootstrap","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/objectSpread2.js","webpack://Slider/external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/defineProperty.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/assertThisInitialized.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/classCallCheck.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/createClass.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/inherits.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/createSuper.js","webpack://Slider/./node_modules/_classnames@2.2.6@classnames/index.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/extends.js","webpack://Slider/./node_modules/_json2mq@0.2.0@json2mq/index.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/typeof.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/isObject.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/_root.js","webpack://Slider/(webpack)/buildin/global.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/_Symbol.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/objectWithoutProperties.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/debounce.js","webpack://Slider/./node_modules/_resize-observer-polyfill@1.5.1@resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/setPrototypeOf.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/getPrototypeOf.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/isNativeReflectConstruct.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/possibleConstructorReturn.js","webpack://Slider/./node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/now.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/_freeGlobal.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/toNumber.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/isSymbol.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/_baseGetTag.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/_getRawTag.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/_objectToString.js","webpack://Slider/./node_modules/_lodash@4.17.20@lodash/isObjectLike.js","webpack://Slider/./node_modules/_string-convert@0.2.1@string-convert/camel2hyphen.js","webpack://Slider/./src/initial-state.js","webpack://Slider/./src/utils/innerSliderUtils.js","webpack://Slider/./src/track.js","webpack://Slider/./src/dots.js","webpack://Slider/./src/arrows.js","webpack://Slider/./src/inner-slider.js","webpack://Slider/./src/default-props.js","webpack://Slider/./src/slider.js","webpack://Slider/./src/index.js"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__1__","installedModules","__webpack_require__","m","defineProperty","ownKeys","object","enumerableOnly","symbols","keys","Object","getOwnPropertySymbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","target","i","arguments","length","source","forEach","key","getOwnPropertyDescriptors","defineProperties","obj","value","configurable","writable","self","ReferenceError","instance","Constructor","TypeError","_defineProperties","props","descriptor","protoProps","staticProps","prototype","setPrototypeOf","subClass","superClass","create","constructor","getPrototypeOf","isNativeReflectConstruct","possibleConstructorReturn","Derived","hasNativeReflectConstruct","NewTarget","Super","result","this","Reflect","construct","hasOwn","hasOwnProperty","classNames","classes","arg","argType","Array","isArray","inner","call","join","default","_extends","assign","obj2mq","mq","features","feature","index","camel2hyphen","test","query","q","_typeof","Symbol","iterator","type","freeGlobal","freeSelf","Function","g","e","objectWithoutPropertiesLoose","excluded","sourceSymbolKeys","indexOf","propertyIsEnumerable","isObject","now","toNumber","nativeMax","Math","max","nativeMin","min","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","timeWaiting","debounced","isInvoking","clearTimeout","cancel","flush","MapShim","Map","class_1","get","__entries__","getIndex","entry","set","delete","entries","splice","has","clear","callback","ctx","_i","_a","arr","some","isBrowser","document","global$1","global","requestAnimationFrame$1","requestAnimationFrame","bind","Date","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","addObserver","observer","observers_","connected_","connect_","removeObserver","observers","disconnect_","refresh","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","addEventListener","onTransitionEnd_","mutationsObserver_","observe","attributes","childList","characterData","subtree","mutationEventsAdded_","removeEventListener","disconnect","propertyName","_b","getInstance","instance_","resolvePending","leadingCall","trailingCall","proxy","timeoutCallback","timeStamp","delay","defineConfigurable","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","styles","positions","reduce","size","position","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","width","height","clientWidth","clientHeight","getComputedStyle","paddings","positions_1","horizPad","left","right","vertPad","top","bottom","boxSizing","round","documentElement","vertScrollbar","horizScrollbar","abs","getHTMLElementContentRect","x","y","ResizeObservation","isActive","rect","contentRect_","broadcastWidth","broadcastHeight","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","ResizeObserverSPI","Element","observations","observations_","controller_","unobserve","clearActive","_this","observation","activeObservations_","callbackCtx_","map","callback_","controller","callbackCtx","WeakMap","ResizeObserver","method","_setPrototypeOf","o","p","__proto__","_getPrototypeOf","sham","Proxy","toString","assertThisInitialized","sourceKeys","isSymbol","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","other","valueOf","replace","isBinary","slice","baseGetTag","isObjectLike","getRawTag","objectToString","symToStringTag","toStringTag","objectProto","nativeObjectToString","isOwn","tag","unmasked","str","match","toLowerCase","initialState","animating","autoplaying","currentDirection","currentLeft","currentSlide","direction","dragging","edgeDragged","initialized","lazyLoadedList","listHeight","listWidth","scrolling","slideCount","slideHeight","slideWidth","swipeLeft","swiped","swiping","touchObject","startX","startY","curX","curY","trackStyle","trackWidth","targetSlide","clamp","number","lowerBound","upperBound","getWidth","elem","offsetWidth","getSwipeDirection","verticalSwiping","xDist","yDist","r","atan2","swipeAngle","PI","checkSpecKeys","spec","keysArray","console","error","canUseDOM","createElement","getSlideClasses","slickActive","slickCenter","centerOffset","rtl","slickCloned","centerMode","floor","slidesToShow","getKey","child","fallbackKey","getOnDemandLazySlides","onDemandSlides","startIndex","lazyStartIndex","endIndex","lazyEndIndex","slideIndex","lazySlidesOnLeft","lazySlidesOnRight","centerPadding","getHeight","offsetHeight","canGoNext","canGo","infinite","extractObject","newObject","initializedState","React","Children","count","children","listNode","listRef","ceil","trackNode","trackRef","node","vertical","centerPaddingAdj","querySelector","initialSlide","slidesToLoad","concat","state","autoplay","slideHandler","waitForAnimate","fade","lazyLoad","slidesToScroll","useCSS","animationSlide","nextState","finalSlide","animationLeft","getTrackLeft","finalLeft","getTrackAnimateCSS","getTrackCSS","changeSlide","slideOffset","previousTargetSlide","indexOffset","message","previousInt","siblingDirection","Number","checkNavigable","navigables","breakpoint","counter","indexes","prevNavigable","n","getSlideCount","swipeToSlide","swipedSlide","slides","querySelectorAll","from","every","slide","offsetTop","offsetLeft","currentIndex","dataset","trackHeight","trackChildren","getTotalSlides","WebkitTransform","transform","style","opacity","transition","WebkitTransition","useTransform","msTransform","attachEvent","marginTop","marginLeft","speed","cssEase","unslick","variableWidth","slidesToOffset","getPreClones","targetLeft","trackElem","targetSlideIndex","childNodes","getPostClones","slidesOnRight","slidesOnLeft","Track","ref","t","preCloneSlides","postCloneSlides","childrenCount","preCloneNo","childOnClickOptions","childStyle","slideClass","className","slideClasses","cloneElement","classnames","tabIndex","outline","onClick","focusOnSelect","reverse","renderSlides","mouseEvents","onMouseEnter","onMouseOver","onMouseLeave","handleRef","PureComponent","Dots","preventDefault","clickHandler","dotCount","dots","_rightBound","_leftBound","rightBound","leftBound","dotOptions","customPaging","appendDots","dotsClass","PrevArrow","prevClasses","prevHandler","prevArrowProps","display","customProps","prevArrow","NextArrow","nextClasses","nextHandler","nextArrowProps","nextArrow","InnerSlider","list","track","adaptiveHeight","onInit","setState","prevState","onLazyLoad","updateState","adaptHeight","autoPlay","lazyLoadTimer","setInterval","progressiveLazyLoad","ro","onWindowResized","callbackTimers","onfocus","pauseOnFocus","onSlideFocus","onblur","onSlideBlur","animationEndCallback","clearInterval","timer","detachEvent","autoplayTimer","prevProps","checkImagesLoad","onReInit","setTrackStyle","didPropsChange","autoplaySpeed","pause","debouncedResize","debounce","resizeWindow","Boolean","updatedState","trackLeft","childrenWidths","preClones","postClones","currentWidth","images","imagesCount","loadedCount","image","handler","prevClickHandler","onclick","parentNode","focus","onload","onerror","onLazyLoadError","dontAnimate","asNavFor","beforeChange","afterChange","asNavForIndex","innerSlider","firstBatch","nodes","clickable","stopPropagation","dir","accessibility","tagName","keyCode","keyHandler","ontouchmove","event","returnValue","disableBodyScroll","swipe","draggable","touches","pageX","clientX","pageY","clientY","swipeStart","edgeFriction","onEdge","swipeEvent","curLeft","swipeLength","sqrt","pow","verticalSwipeLength","positionOffset","swipeDirection","touchSwipeLength","swipeMove","touchThreshold","onSwipe","minSwipe","newSlide","activeSlide","swipeEnd","triggerSlideHandler","enableBodyScroll","isNaN","nextIndex","playType","play","pauseType","trackProps","pauseOnHover","onTrackOver","onTrackLeave","selectHandler","dotProps","pauseOnDotsHover","onDotsLeave","onDotsOver","arrowProps","arrows","verticalHeightStyle","centerPaddingStyle","padding","listStyle","touchMove","listProps","onMouseDown","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","touchEnd","onTouchCancel","onKeyDown","innerSliderProps","listRefHandler","trackRefHandler","ssrState","ssrInit","Component","defaultProps","easing","responsive","rows","slidesPerRow","Slider","slickPrev","slickNext","slickGoTo","_responsiveMediaHandlers","listener","matches","mql","matchMedia","addListener","breakpoints","breakpt","sort","bQuery","json2mq","minWidth","maxWidth","media","removeListener","settings","newProps","resp","toArray","trim","warn","newChildren","j","row","k","innerSliderRefHandler","c","d","name","getter","mode","__esModule","ns","property","s","moduleId","l","modules"],"mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,EAAQG,QAAQ,UACR,mBAAXC,QAAyBA,OAAOC,IAC9CD,OAAO,CAAC,SAAUJ,GACQ,iBAAZC,QACdA,QAAgB,OAAID,EAAQG,QAAQ,UAEpCJ,EAAa,OAAIC,EAAQD,EAAY,OARvC,CASGO,QAAQ,SAASC,GACpB,OCTMC,EAAmB,GA4BvBC,EAAoBC,E,mBC7BtB,IAAIC,EAAiB,EAAQ,GAE7B,SAASC,EAAQC,EAAQC,GACvB,IAGMC,EAHFC,EAAOC,OAAOD,KAAKH,GAUvB,OARII,OAAOC,wBACLH,EAAUE,OAAOC,sBAAsBL,GACvCC,IAAgBC,EAAUA,EAAQI,QAAO,SAAUC,GACrD,OAAOH,OAAOI,yBAAyBR,EAAQO,GAAKE,eAEtDN,EAAKO,KAAKC,MAAMR,EAAMD,IAGjBC,EAuBTd,EAAOD,QApBP,SAAwBwB,GACtB,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAE/CA,EAAI,EACNd,EAAQK,OAAOY,OAAeC,SAAQ,SAAUC,GAC9CpB,EAAec,EAAQM,EAAKF,EAAOE,OAE5Bd,OAAOe,0BAChBf,OAAOgB,iBAAiBR,EAAQR,OAAOe,0BAA0BH,IAEjEjB,EAAQK,OAAOY,IAASC,SAAQ,SAAUC,GACxCd,OAAON,eAAec,EAAQM,EAAKd,OAAOI,yBAAyBQ,EAAQE,OAKjF,OAAON,I,cCjCTvB,EAAOD,QAAUM,G,cCejBL,EAAOD,QAfP,SAAyBiC,EAAKH,EAAKI,GAYjC,OAXIJ,KAAOG,EACTjB,OAAON,eAAeuB,EAAKH,EAAK,CAC9BI,MAAOA,EACPb,YAAWA,EACXc,cAAaA,EACbC,UAASA,IAGXH,EAAIH,GAAOI,EAGND,I,cCJThC,EAAOD,QARP,SAAgCqC,GAC9B,YAAIA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,I,cCCTpC,EAAOD,QANP,SAAyBuC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,uC,cCFxB,SAASC,EAAkBlB,EAAQmB,GACjC,IAAK,IAAIlB,EAAI,EAAGA,EAAIkB,EAAMhB,OAAQF,IAAK,CACrC,IAAImB,EAAaD,EAAMlB,GACvBmB,EAAWvB,WAAauB,EAAWvB,eACnCuB,EAAWT,gBACP,UAAWS,IAAYA,EAAWR,aACtCpB,OAAON,eAAec,EAAQoB,EAAWd,IAAKc,IAUlD3C,EAAOD,QANP,SAAsBwC,EAAaK,EAAYC,GAG7C,OAFID,GAAYH,EAAkBF,EAAYO,UAAWF,GACrDC,GAAaJ,EAAkBF,EAAaM,GACzCN,I,gBCbT,IAAIQ,EAAiB,EAAQ,IAiB7B/C,EAAOD,QAfP,SAAmBiD,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIT,UAAU,sDAGtBQ,EAASF,UAAY/B,OAAOmC,OAAOD,GAAcA,EAAWH,UAAW,CACrEK,YAAa,CACXlB,MAAOe,EACPb,UAASA,EACTD,cAAaA,KAGbe,GAAYF,EAAeC,EAAUC,K,gBCd3C,IAAIG,EAAiB,EAAQ,IAEzBC,EAA2B,EAAQ,IAEnCC,EAA4B,EAAQ,IAmBxCtD,EAAOD,QAjBP,SAAsBwD,GACpB,IAAIC,EAA4BH,IAChC,OAAO,WACL,IAIMI,EAJFC,EAAQN,EAAeG,GAU3B,OALEI,EAFEH,GACEC,EAAYL,EAAeQ,MAAMT,YAC5BU,QAAQC,UAAUJ,EAAOjC,UAAWgC,IAEpCC,EAAMpC,MAAMsC,KAAMnC,WAGtB6B,EAA0BM,KAAMD,M,gBCnB3C;;;;;GAOC,wBAGA,IAAII,EAAS,GAAGC,eAEhB,SAASC,IAGR,IAFA,IAAIC,EAAU,GAEL1C,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAC1C,IAAI2C,EAAM1C,UAAUD,GACpB,GAAK2C,EAAL,CAEA,IAAIC,SAAiBD,EAErB,GAAgB,UAAZC,GAAoC,UAAZA,EAC3BF,EAAQ7C,KAAK8C,QACP,GAAIE,MAAMC,QAAQH,IAAQA,EAAIzC,OAAQ,CAC5C,IAAI6C,EAAQN,EAAW3C,MAAM,KAAM6C,GAC/BI,GACHL,EAAQ7C,KAAKkD,QAER,GAAgB,UAAZH,EACV,IAAK,IAAIvC,KAAOsC,EACXJ,EAAOS,KAAKL,EAAKtC,IAAQsC,EAAItC,IAChCqC,EAAQ7C,KAAKQ,IAMjB,OAAOqC,EAAQO,KAAK,KAGgBzE,EAAOD,SAC3CkE,EAAWS,QAAUT,EACrBjE,EAAOD,QAAUkE,aAGQ,EAAF,WACtB,OAAOA,GACP,QAFoB,OAEpB,aAxCF,I,cCPD,SAASU,IAeP,OAdA3E,EAAOD,QAAU4E,EAAW5D,OAAO6D,QAAU,SAAUrD,GACrD,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAESK,EAFLF,EAASF,UAAUD,GAEvB,IAASK,KAAOF,EACVZ,OAAO+B,UAAUkB,eAAeQ,KAAK7C,EAAQE,KAC/CN,EAAOM,GAAOF,EAAOE,IAK3B,OAAON,GAGFoD,EAASrD,MAAMsC,KAAMnC,WAG9BzB,EAAOD,QAAU4E,G,gBCXJ,SAATE,EAAmB7C,GACrB,IAAI8C,EAAK,GACLC,EAAWhE,OAAOD,KAAKkB,GAmB3B,OAlBA+C,EAASnD,SAAQ,SAAUoD,EAASC,GAClC,IAAIhD,EAAQD,EAAIgD,GAChBA,EAAUE,EAAaF,GAThB,kBACCG,KAUQH,IAA6B,iBAAV/C,IACjCA,GAAgB,MAGhB6C,QADE7C,EACI+C,OACG/C,EACH,OAAS+C,EAET,IAAMA,EAAU,KAAO/C,EAAQ,IAEnCgD,EAAQF,EAASrD,OAAO,IAC1BoD,GAAM,YAGHA,EA5BT,IAAII,EAAe,EAAQ,IAkD3BlF,EAAOD,QAnBO,SAAUqF,GACtB,IAAIN,EAAK,GACT,MAAqB,iBAAVM,EACFA,EAGLA,aAAiBf,OACnBe,EAAMxD,SAAQ,SAAUyD,EAAGJ,GACzBH,GAAMD,EAAOQ,GACTJ,EAAQG,EAAM1D,OAAO,IACvBoD,GAAM,SAGHA,GAGFD,EAAOO,K,cC/ChB,SAASE,EAAQtD,GAaf,MAVsB,mBAAXuD,QAAoD,iBAApBA,OAAOC,SAChDxF,EAAOD,QAAUuF,EAAU,SAAiBtD,GAC1C,cAAcA,GAGhBhC,EAAOD,QAAUuF,EAAU,SAAiBtD,GAC1C,OAAOA,GAAyB,mBAAXuD,QAAyBvD,EAAImB,cAAgBoC,QAAUvD,IAAQuD,OAAOzC,UAAY,gBAAkBd,GAItHsD,EAAQtD,GAGjBhC,EAAOD,QAAUuF,G,cCcjBtF,EAAOD,QALP,SAAkBkC,GAChB,IAAIwD,SAAcxD,EAClB,OAAgB,MAATA,IAA0B,UAARwD,GAA4B,YAARA,K,gBC3B/C,IAAIC,EAAa,EAAQ,IAGrBC,EAA0B,iBAARvD,MAAoBA,MAAQA,KAAKrB,SAAWA,QAAUqB,KAGxEvC,EAAO6F,GAAcC,GAAYC,SAAS,cAATA,GAErC5F,EAAOD,QAAUF,G,cCRjB,IAGAgG,EAAI,WACH,OAAOjC,KADJ,GAIJ,IAECiC,EAAIA,GAAK,IAAID,SAAS,cAAb,GACR,MAAOE,GAEc,iBAAX1F,SAAqByF,EAAIzF,QAOrCJ,EAAOD,QAAU8F,G,gBChBbN,EAHO,EAAQ,IAGDA,OAElBvF,EAAOD,QAAUwF,G,gBCLjB,IAAIQ,EAA+B,EAAQ,IAqB3C/F,EAAOD,QAnBP,SAAkC4B,EAAQqE,GACxC,GAAc,MAAVrE,EAAgB,MAAO,GAC3B,IACIE,EADAN,EAASwE,EAA6BpE,EAAQqE,GAGlD,GAAIjF,OAAOC,sBAGT,IAFA,IAAIiF,EAAmBlF,OAAOC,sBAAsBW,GAE/CH,EAAI,EAAGA,EAAIyE,EAAiBvE,OAAQF,IACvCK,EAAMoE,EAAiBzE,GACM,GAAzBwE,EAASE,QAAQrE,IAChBd,OAAO+B,UAAUqD,qBAAqB3B,KAAK7C,EAAQE,KACxDN,EAAOM,GAAOF,EAAOE,IAIzB,OAAON,I,gBClBT,IAAI6E,EAAW,EAAQ,IACnBC,EAAM,EAAQ,IACdC,EAAW,EAAQ,IAMnBC,EAAYC,KAAKC,IACjBC,EAAYF,KAAKG,IAqLrB3G,EAAOD,QA7HP,SAAkB6G,EAAMC,EAAMC,GAC5B,IAAIC,EACAC,EACAC,EACAtD,EACAuD,EACAC,EACAC,EAAiB,EACjBC,KACAC,KACAC,KAEJ,GAAmB,mBAARX,EACT,MAAM,IAAIpE,UAzEQ,uBAmFpB,SAASgF,EAAWC,GAClB,IAAIC,EAAOX,EACPY,EAAUX,EAKd,OAHAD,EAAWC,SACXI,EAAiBK,EACjB9D,EAASiD,EAAKtF,MAAMqG,EAASD,GAuB/B,SAASE,EAAaH,GACpB,IAAII,EAAoBJ,EAAON,EAM/B,YAAO,IAACA,GAAoDN,GAArBgB,GACpCA,EAAoB,GAAOP,GAAiCL,GANrCQ,EAAOL,EASnC,SAASU,IACP,IAtBqBL,EAsBjBA,EAAOpB,IACX,GAAIuB,EAAaH,GACf,OAAOM,EAAaN,GAGtBP,EAAUc,WAAWF,GAxBjBG,EAAcpB,IAHGY,EA2B4BA,GA1BlBN,GAIxBG,EACHZ,EAAUuB,EAAahB,GAJDQ,EAAOL,IAK7Ba,IAuBN,SAASF,EAAaN,GAKpB,OAJAP,SAIIK,GAAYR,EACPS,EAAWC,IAEpBV,EAAWC,SACJrD,GAeT,SAASuE,IACP,IAAIT,EAAOpB,IACP8B,EAAaP,EAAaH,GAM9B,GAJAV,EAAWtF,UACXuF,EAAWpD,KACXuD,EAAeM,EAEXU,EAAY,CACd,YAAIjB,EACF,OAvEJE,EAFmBK,EAyEIN,EArEvBD,EAAUc,WAAWF,EAAcjB,GAE5BQ,EAAUG,EAAWC,GAAQ9D,EAqElC,GAAI2D,EAIF,OAFAc,aAAalB,GACbA,EAAUc,WAAWF,EAAcjB,GAC5BW,EAAWL,GAMtB,YAAO,IAHHD,IACFA,EAAUc,WAAWF,EAAcjB,IAE9BlD,EAIT,OA3GAkD,EAAOP,EAASO,IAAS,EACrBT,EAASU,KACXO,IAAYP,EAAQO,QAEpBJ,GADAK,EAAS,YAAaR,GACHP,EAAUD,EAASQ,EAAQG,UAAY,EAAGJ,GAAQI,EACrEM,EAAW,aAAcT,IAAYA,EAAQS,SAAWA,GAoG1DW,EAAUG,OApCV,oBACMnB,GACFkB,aAAalB,GAGfH,EAAWI,EAAeH,EAAWE,OADrCE,EAAiB,IAiCnBc,EAAUI,MA7BV,WACE,YAAO,IAAApB,EAAwBvD,EAASoE,EAAa1B,MA6BhD6B,I,uCC3LT,GAOA,IAAIK,EACmB,oBAARC,IACAA,KAwBPzH,OAAON,eAAegI,EAAQ3F,UAAW,OAAQ,CAI7C4F,IAAK,WACD,OAAO9E,KAAK+E,YAAYjH,QAE5BN,YAAWA,EACXc,cAAaA,IAMjBuG,EAAQ3F,UAAU4F,IAAM,SAAU7G,GAG9B,OAFIoD,EAAQ2D,EAAShF,KAAK+E,YAAa9G,IACnCgH,EAAQjF,KAAK+E,YAAY1D,KACb4D,EAAM,IAO1BJ,EAAQ3F,UAAUgG,IAAM,SAAUjH,EAAKI,GACnC,IAAIgD,EAAQ2D,EAAShF,KAAK+E,YAAa9G,IAClCoD,EACDrB,KAAK+E,YAAY1D,GAAO,GAAKhD,EAG7B2B,KAAK+E,YAAYtH,KAAK,CAACQ,EAAKI,KAOpCwG,EAAQ3F,UAAUiG,OAAS,SAAUlH,GACjC,IAAImH,EAAUpF,KAAK+E,cACf1D,EAAQ2D,EAASI,EAASnH,KAE1BmH,EAAQC,OAAOhE,EAAO,IAO9BwD,EAAQ3F,UAAUoG,IAAM,SAAUrH,GAC9B,SAAU+G,EAAShF,KAAK+E,YAAa9G,IAKzC4G,EAAQ3F,UAAUqG,MAAQ,WACtBvF,KAAK+E,YAAYM,OAAO,IAO5BR,EAAQ3F,UAAUlB,QAAU,SAAUwH,EAAUC,YACxCA,IAAkBA,EAAM,MAC5B,IAAK,IAAIC,EAAK,EAAGC,EAAK3F,KAAK+E,YAAaW,EAAKC,EAAG7H,OAAQ4H,IAAM,CAC1D,IAAIT,EAAQU,EAAGD,GACfF,EAAS5E,KAAK6E,EAAKR,EAAM,GAAIA,EAAM,MAGpCJ,GApFX,SAASG,EAASY,EAAK3H,GACnB,IAAI8B,GAAU,EAQd,OAPA6F,EAAIC,MAAK,SAAUZ,EAAO5D,GACtB,OAAI4D,EAAM,KAAOhH,IACb8B,EAASsB,SAKVtB,EAGP,SAAS8E,IACL7E,KAAK+E,YAAc,GA8E/B,IAAIe,EAA8B,oBAAXtJ,QAA8C,oBAAbuJ,UAA4BvJ,OAAOuJ,WAAaA,SAGpGC,WACWC,GAA0BA,EAAOrD,OAASA,KAC1CqD,EAES,oBAATzH,MAAwBA,KAAKoE,OAASA,KACtCpE,KAEW,oBAAXhC,QAA0BA,OAAOoG,OAASA,KAC1CpG,OAGJwF,SAAS,cAATA,GASPkE,EACqC,mBAA1BC,sBAIAA,sBAAsBC,KAAKJ,GAE/B,SAAUR,GAAY,OAAOpB,YAAW,WAAc,OAAOoB,EAASa,KAAK5D,SAAW,IAAO,KAwEpG6D,EAAiB,CAAC,MAAO,QAAS,SAAU,OAAQ,QAAS,SAAU,OAAQ,UAE/EC,EAAwD,oBAArBC,iBAInCC,GAwCAA,EAAyBvH,UAAUwH,YAAc,SAAUC,IACjD3G,KAAK4G,WAAWtE,QAAQqE,IAC1B3G,KAAK4G,WAAWnJ,KAAKkJ,GAGpB3G,KAAK6G,YACN7G,KAAK8G,YASbL,EAAyBvH,UAAU6H,eAAiB,SAAUJ,GAC1D,IAAIK,EAAYhH,KAAK4G,aACjBvF,EAAQ2F,EAAU1E,QAAQqE,KAG1BK,EAAU3B,OAAOhE,EAAO,IAGvB2F,EAAUlJ,QAAUkC,KAAK6G,YAC1B7G,KAAKiH,eASbR,EAAyBvH,UAAUgI,QAAU,WACnBlH,KAAKmH,oBAIvBnH,KAAKkH,WAWbT,EAAyBvH,UAAUiI,iBAAmB,WAElD,IAAIC,EAAkBpH,KAAK4G,WAAWvJ,QAAO,SAAUsJ,GACnD,OAAOA,EAASU,eAAgBV,EAASW,eAQ7C,OADAF,EAAgBpJ,SAAQ,SAAU2I,GAAY,OAAOA,EAASY,qBAC9B,EAAzBH,EAAgBtJ,QAQ3B2I,EAAyBvH,UAAU4H,SAAW,WAGrChB,IAAa9F,KAAK6G,aAMvBd,SAASyB,iBAAiB,gBAAiBxH,KAAKyH,kBAChDjL,OAAOgL,iBAAiB,SAAUxH,KAAKkH,SACnCX,GACAvG,KAAK0H,mBAAqB,IAAIlB,iBAAiBxG,KAAKkH,SACpDlH,KAAK0H,mBAAmBC,QAAQ5B,SAAU,CACtC6B,YAAWA,EACXC,WAAUA,EACVC,eAAcA,EACdC,SAAQA,MAIZhC,SAASyB,iBAAiB,qBAAsBxH,KAAKkH,SACrDlH,KAAKgI,yBAEThI,KAAK6G,gBAQTJ,EAAyBvH,UAAU+H,YAAc,WAGxCnB,GAAc9F,KAAK6G,aAGxBd,SAASkC,oBAAoB,gBAAiBjI,KAAKyH,kBACnDjL,OAAOyL,oBAAoB,SAAUjI,KAAKkH,SACtClH,KAAK0H,oBACL1H,KAAK0H,mBAAmBQ,aAExBlI,KAAKgI,sBACLjC,SAASkC,oBAAoB,qBAAsBjI,KAAKkH,SAE5DlH,KAAK0H,mBAAqB,KAC1B1H,KAAKgI,wBACLhI,KAAK6G,gBASTJ,EAAyBvH,UAAUuI,iBAAmB,SAAU9B,GAC5D,IAA0BwC,YAAtBC,EAAKzC,EAAGwC,cAA6C,GAAKC,EAEvC9B,EAAeT,MAAK,SAAU5H,GACjD,SAAUkK,EAAa7F,QAAQrE,OAG/B+B,KAAKkH,WAQbT,EAAyB4B,YAAc,WAInC,OAHKrI,KAAKsI,YACNtI,KAAKsI,UAAY,IAAI7B,GAElBzG,KAAKsI,WAOhB7B,EAAyB6B,UAAY,KAC9B7B,GA1LP,SAASA,IA/DT,SAAS8B,IACDC,IACAA,KACAhD,KAEAiD,GACAC,IAUR,SAASC,IACLzC,EAAwBqC,GAO5B,SAASG,IACL,IAAIE,EAAYvC,KAAK5D,MACrB,GAAI+F,EAAa,CAEb,GAAII,EAAYrF,EA7CN,EA8CN,OAMJkF,UAIAA,IADAD,MAEApE,WAAWuE,EAAiBE,GAEhCtF,EAAeqF,EAlDvB,IAAmBpD,EAAUqD,EACrBL,EAAqBC,EAAsBlF,EA4E3CvD,KAAK6G,cAML7G,KAAKgI,wBAMLhI,KAAK0H,mBAAqB,KAM1B1H,KAAK4G,WAAa,GAClB5G,KAAKyH,iBAAmBzH,KAAKyH,iBAAiBrB,KAAKpG,MACnDA,KAAKkH,SAjGM1B,EAiGaxF,KAAKkH,QAAQd,KAAKpG,MAhGrByI,EAArBD,IADqBK,EAwDT,IAvD+BtF,EAAe,EAmDvDmF,GAuNX,IAAII,EAAqB,SAAWnL,EAAQmB,GACxC,IAAK,IAAI4G,EAAK,EAAGC,EAAKxI,OAAOD,KAAK4B,GAAQ4G,EAAKC,EAAG7H,OAAQ4H,IAAM,CAC5D,IAAIzH,EAAM0H,EAAGD,GACbvI,OAAON,eAAec,EAAQM,EAAK,CAC/BI,MAAOS,EAAMb,GACbT,YAAWA,EACXe,UAASA,EACTD,cAAaA,IAGrB,OAAOX,GASPoL,EAAc,SAAWpL,GAOzB,OAHkBA,GAAUA,EAAOqL,eAAiBrL,EAAOqL,cAAcC,aAGnDjD,GAItBkD,EAAYC,EAAe,EAAG,EAAG,EAAG,GAOxC,SAASC,EAAQ/K,GACb,OAAOgL,WAAWhL,IAAU,EAShC,SAASiL,EAAeC,GAEpB,IADA,IAAIC,EAAY,GACP9D,EAAK,EAAGA,EAAK7H,UAAUC,OAAQ4H,IACpC8D,EAAU9D,EAAK,GAAK7H,UAAU6H,GAElC,OAAO8D,EAAUC,QAAO,SAAUC,EAAMC,GAEpC,OAAOD,EAAON,EADFG,EAAO,UAAYI,EAAW,aAE3C,GA0GP,IAAIC,EAGkC,oBAAvBC,mBACA,SAAUlM,GAAU,OAAOA,aAAkBoL,EAAYpL,GAAQkM,oBAKrE,SAAUlM,GAAU,OAAQA,aAAkBoL,EAAYpL,GAAQmM,YAC3C,mBAAnBnM,EAAOoM,SAiBtB,SAASC,EAAerM,GACpB,OAAKmI,EAGD8D,EAAqBjM,GA9GlBwL,EAAe,EAAG,GADrBc,GADmBtM,EAiHMA,GAhHXoM,WACeG,MAAOD,EAAKE,QAQjD,SAAmCxM,GAG/B,IAAIyM,EAAczM,EAAOyM,YAAaC,EAAe1M,EAAO0M,aAS5D,IAAKD,IAAgBC,EACjB,OAAOnB,EAEX,IAAIK,EAASR,EAAYpL,GAAQ2M,iBAAiB3M,GAC9C4M,EA3CR,SAAqBhB,GAGjB,IAFA,IACIgB,EAAW,GACN7E,EAAK,EAAG8E,EAFD,CAAC,MAAO,QAAS,SAAU,QAED9E,EAAK8E,EAAY1M,OAAQ4H,IAAM,CACrE,IAAIiE,EAAWa,EAAY9E,GACvBrH,EAAQkL,EAAO,WAAaI,GAChCY,EAASZ,GAAYP,EAAQ/K,GAEjC,OAAOkM,EARX,CA2C+BhB,GACvBkB,EAAWF,EAASG,KAAOH,EAASI,MACpCC,EAAUL,EAASM,IAAMN,EAASO,OAKlCZ,EAAQd,EAAQG,EAAOW,OAAQC,EAASf,EAAQG,EAAOY,QAwC3D,MArCyB,eAArBZ,EAAOwB,YAOHnI,KAAKoI,MAAMd,EAAQO,KAAcL,IACjCF,GAASZ,EAAeC,EAAQ,OAAQ,SAAWkB,GAEnD7H,KAAKoI,MAAMb,EAASS,KAAaP,IACjCF,GAAUb,EAAeC,EAAQ,MAAO,UAAYqB,KAoDrCjN,EA7CAA,KA8CLoL,EAAYpL,GAAQoI,SAASkF,kBAzCvCC,EAAgBtI,KAAKoI,MAAMd,EAAQO,GAAYL,EAC/Ce,EAAiBvI,KAAKoI,MAAMb,EAASS,GAAWP,EAMpB,IAA5BzH,KAAKwI,IAAIF,KACThB,GAASgB,GAEoB,IAA7BtI,KAAKwI,IAAID,KACThB,GAAUgB,IAGXhC,EAAeoB,EAASG,KAAMH,EAASM,IAAKX,EAAOC,GA0CnDkB,CAA0B1N,GALtBuL,EA9Gf,IAA2BvL,EAqJ3B,SAASwL,EAAemC,EAAGC,EAAGrB,EAAOC,GACjC,MAAO,CAAEmB,EAAGA,EAAGC,EAAGA,EAAGrB,MAAOA,EAAOC,OAAQA,GAO/C,IAAIqB,GAiCAA,EAAkBtM,UAAUuM,SAAW,WACnC,IAAIC,EAAO1B,EAAehK,KAAKrC,QAE/B,OADAqC,KAAK2L,aAAeD,GACPxB,QAAUlK,KAAK4L,gBACxBF,EAAKvB,SAAWnK,KAAK6L,iBAQ7BL,EAAkBtM,UAAU4M,cAAgB,WACxC,IAAIJ,EAAO1L,KAAK2L,aAGhB,OAFA3L,KAAK4L,eAAiBF,EAAKxB,MAC3BlK,KAAK6L,gBAAkBH,EAAKvB,OACrBuB,GAEJF,GA7CP,SAASA,EAAkB7N,GAMvBqC,KAAK4L,eAAiB,EAMtB5L,KAAK6L,gBAAkB,EAMvB7L,KAAK2L,aAAexC,EAAe,EAAG,EAAG,EAAG,GAC5CnJ,KAAKrC,OAASA,EA6BtB,IAAIoO,EAOA,SAA6BpO,EAAQqO,GACjC,IA9FAV,EAAUC,EAAUrB,EA8FhB+B,GA9FJX,GADoB3F,EA+FiBqG,GA9F9BV,EAAGC,EAAI5F,EAAG4F,EAAGrB,EAAQvE,EAAGuE,MAAOC,EAASxE,EAAGwE,OAElD+B,EAAoC,oBAApBC,gBAAkCA,gBAAkBhP,OACpEuO,EAAOvO,OAAOmC,OAAO4M,EAAOhN,WAEhC4J,EAAmB4C,EAAM,CACrBJ,EAAGA,EAAGC,EAAGA,EAAGrB,MAAOA,EAAOC,OAAQA,EAClCU,IAAKU,EACLZ,MAAOW,EAAIpB,EACXY,OAAQX,EAASoB,EACjBb,KAAMY,IAEHI,GAyFH5C,EAAmB9I,KAAM,CAAErC,OAAQA,EAAQsO,YAAaA,KAK5DG,GAsCAA,EAAkBlN,UAAUyI,QAAU,SAAUhK,GAC5C,IAAKE,UAAUC,OACX,MAAM,IAAIc,UAAU,4CAGxB,GAAuB,oBAAZyN,SAA6BA,mBAAmBlP,OAA3D,CAGA,KAAMQ,aAAkBoL,EAAYpL,GAAQ0O,SACxC,MAAM,IAAIzN,UAAU,yCAExB,IAAI0N,EAAetM,KAAKuM,cAEpBD,EAAahH,IAAI3H,KAGrB2O,EAAapH,IAAIvH,EAAQ,IAAI6N,EAAkB7N,IAC/CqC,KAAKwM,YAAY9F,YAAY1G,MAE7BA,KAAKwM,YAAYtF,aAQrBkF,EAAkBlN,UAAUuN,UAAY,SAAU9O,GAC9C,IAAKE,UAAUC,OACX,MAAM,IAAIc,UAAU,4CAGxB,GAAuB,oBAAZyN,SAA6BA,mBAAmBlP,OAA3D,CAGA,KAAMQ,aAAkBoL,EAAYpL,GAAQ0O,SACxC,MAAM,IAAIzN,UAAU,yCAExB,IAAI0N,EAAetM,KAAKuM,cAEnBD,EAAahH,IAAI3H,KAGtB2O,EAAanH,OAAOxH,GACf2O,EAAa5C,MACd1J,KAAKwM,YAAYzF,eAAe/G,SAQxCoM,EAAkBlN,UAAUgJ,WAAa,WACrClI,KAAK0M,cACL1M,KAAKuM,cAAchH,QACnBvF,KAAKwM,YAAYzF,eAAe/G,OAQpCoM,EAAkBlN,UAAUmI,aAAe,WACvC,IAAIsF,EAAQ3M,KACZA,KAAK0M,cACL1M,KAAKuM,cAAcvO,SAAQ,SAAU4O,GAC7BA,EAAYnB,YACZkB,EAAME,oBAAoBpP,KAAKmP,OAU3CR,EAAkBlN,UAAUqI,gBAAkB,WAE1C,IAGI9B,EAEAL,EALCpF,KAAKsH,cAGN7B,EAAMzF,KAAK8M,aAEX1H,EAAUpF,KAAK6M,oBAAoBE,KAAI,SAAUH,GACjD,OAAO,IAAIb,EAAoBa,EAAYjP,OAAQiP,EAAYd,oBAEnE9L,KAAKgN,UAAUpM,KAAK6E,EAAKL,EAASK,GAClCzF,KAAK0M,gBAOTN,EAAkBlN,UAAUwN,YAAc,WACtC1M,KAAK6M,oBAAoBxH,OAAO,IAOpC+G,EAAkBlN,UAAUoI,UAAY,WACpC,OAAyC,EAAlCtH,KAAK6M,oBAAoB/O,QAE7BsO,GAvIP,SAASA,EAAkB5G,EAAUyH,EAAYC,GAc7C,GAPAlN,KAAK6M,oBAAsB,GAM3B7M,KAAKuM,cAAgB,IAAI5H,EACD,mBAAba,EACP,MAAM,IAAI5G,UAAU,2DAExBoB,KAAKgN,UAAYxH,EACjBxF,KAAKwM,YAAcS,EACnBjN,KAAK8M,aAAeI,EA0H5B,IAAIlG,EAA6C,IAAd,oBAAZmG,QAA8BA,QAAgBxI,GAKjEyI,EAOA,SAASA,EAAe5H,GACpB,KAAMxF,gBAAgBoN,GAClB,MAAM,IAAIxO,UAAU,sCAExB,IAAKf,UAAUC,OACX,MAAM,IAAIc,UAAU,4CAExB,IAAIqO,EAAaxG,EAAyB4B,cACtC1B,EAAW,IAAIyF,EAAkB5G,EAAUyH,EAAYjN,MAC3DgH,EAAU9B,IAAIlF,KAAM2G,IAK5B,CACI,UACA,YACA,cACF3I,SAAQ,SAAUqP,GAChBD,EAAelO,UAAUmO,GAAU,WAC/B,IAAI1H,EACJ,OAAQA,EAAKqB,EAAUlC,IAAI9E,OAAOqN,GAAQ3P,MAAMiI,EAAI9H,eAIxDwD,WAEW2E,EAASoH,eACTpH,EAASoH,eAEbA,EAGI,Q,gCC/5Bf,SAASE,EAAgBC,EAAGC,GAM1B,OALApR,EAAOD,QAAUmR,EAAkBnQ,OAAOgC,gBAAkB,SAAyBoO,EAAGC,GAEtF,OADAD,EAAEE,UAAYD,EACPD,GAGFD,EAAgBC,EAAGC,GAG5BpR,EAAOD,QAAUmR,G,cCTjB,SAASI,EAAgBH,GAIvB,OAHAnR,EAAOD,QAAUuR,EAAkBvQ,OAAOgC,eAAiBhC,OAAOqC,eAAiB,SAAyB+N,GAC1G,OAAOA,EAAEE,WAAatQ,OAAOqC,eAAe+N,IAEvCG,EAAgBH,GAGzBnR,EAAOD,QAAUuR,G,cCMjBtR,EAAOD,QAbP,WACE,GAAuB,oBAAZ8D,UAA4BA,QAAQC,UAAW,OAAM,EAChE,GAAID,QAAQC,UAAUyN,KAAM,OAAM,EAClC,GAAqB,mBAAVC,MAAsB,OAAM,EAEvC,IAEE,OADAvH,KAAKnH,UAAU2O,SAASjN,KAAKX,QAAQC,UAAUmG,KAAM,IAAI,mBAEzD,MAAOnE,GACP,OAAM,K,gBCTV,IAAIR,EAAU,EAAQ,IAElBoM,EAAwB,EAAQ,GAUpC1R,EAAOD,QARP,SAAoCqC,EAAMoC,GACxC,OAAIA,GAA2B,WAAlBc,EAAQd,IAAsC,mBAATA,EAI3CkN,EAAsBtP,GAHpBoC,I,cCSXxE,EAAOD,QAfP,SAAuC4B,EAAQqE,GAC7C,GAAc,MAAVrE,EAAgB,MAAO,GAK3B,IAJA,IAEIE,EAFAN,EAAS,GACToQ,EAAa5Q,OAAOD,KAAKa,GAGxBH,EAAI,EAAGA,EAAImQ,EAAWjQ,OAAQF,IACjCK,EAAM8P,EAAWnQ,GACY,GAAzBwE,EAASE,QAAQrE,KACrBN,EAAOM,GAAOF,EAAOE,IAGvB,OAAON,I,gBCZT,IAAI1B,EAAO,EAAQ,IAsBnBG,EAAOD,QAJG,WACR,OAAOF,EAAKoK,KAAK5D,Q,0BCnBnB,GACIX,EAA8B,iBAAVmE,GAAsBA,GAAUA,EAAO9I,SAAWA,QAAU8I,EAEpF7J,EAAOD,QAAU2F,I,kCCHjB,IAAIU,EAAW,EAAQ,IACnBwL,EAAW,EAAQ,IAMnBC,EAAS,aAGTC,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAeC,SA8CnBlS,EAAOD,QArBP,SAAkBkC,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAI2P,EAAS3P,GACX,OA7CM,IAmDR,GAJImE,EAASnE,KACPkQ,EAAgC,mBAAjBlQ,EAAMmQ,QAAwBnQ,EAAMmQ,UAAYnQ,EACnEA,EAAQmE,EAAS+L,GAAUA,EAAQ,GAAMA,GAEvB,iBAATlQ,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAEhCA,EAAQA,EAAMoQ,QAAQR,EAAQ,IAC9B,IAAIS,EAAWP,EAAW5M,KAAKlD,GAC/B,OAAQqQ,GAAYN,EAAU7M,KAAKlD,GAC/BgQ,EAAahQ,EAAMsQ,MAAM,GAAID,EAAW,EAAI,GAC3CR,EAAW3M,KAAKlD,GA1Db,KA0D6BA,I,gBC9DvC,IAAIuQ,EAAa,EAAQ,IACrBC,EAAe,EAAQ,IA2B3BzS,EAAOD,QALP,SAAkBkC,GAChB,MAAuB,iBAATA,GACXwQ,EAAaxQ,IArBF,mBAqBYuQ,EAAWvQ,K,gBCzBvC,IAAIsD,EAAS,EAAQ,IACjBmN,EAAY,EAAQ,IACpBC,EAAiB,EAAQ,IAOzBC,EAAiBrN,EAASA,EAAOsN,mBAkBrC7S,EAAOD,QATP,SAAoBkC,GAClB,OAAa,MAATA,WACKA,EAdQ,qBADL,iBAiBJ2Q,GAAkBA,KAAkB7R,OAAOkB,GAC/CyQ,EACAC,GADU1Q,K,gBCvBhB,IAAIsD,EAAS,EAAQ,IAMjBvB,GAHA8O,EAAc/R,OAAO+B,WAGQkB,eAO7B+O,EAAuBD,EAAYrB,SAGnCmB,EAAiBrN,EAASA,EAAOsN,mBA6BrC7S,EAAOD,QApBP,SAAmBkC,GACjB,IAAI+Q,EAAQhP,EAAeQ,KAAKvC,EAAO2Q,GACnCK,EAAMhR,EAAM2Q,GAEhB,IAEE,IAAIM,IADJjR,EAAM2Q,WAEN,MAAO9M,IAET,IAAInC,EAASoP,EAAqBvO,KAAKvC,GAQvC,OAPIiR,IACEF,EACF/Q,EAAM2Q,GAAkBK,SAEjBhR,EAAM2Q,IAGVjP,I,cCzCT,IAOIoP,EAPchS,OAAO+B,UAOc2O,SAavCzR,EAAOD,QAJP,SAAwBkC,GACtB,OAAO8Q,EAAqBvO,KAAKvC,K,cCUnCjC,EAAOD,QAJP,SAAsBkC,GACpB,OAAgB,MAATA,GAAiC,iBAATA,I,cCjBjCjC,EAAOD,QARY,SAAUoT,GAC3B,OAAOA,EACEd,QAAQ,UAAU,SAAUe,GAC3B,MAAO,IAAMA,EAAMC,iBAEpBA,gB,8OCqBIC,EA1BM,CACnBC,WAAUA,EACVC,YAAa,KACbC,iBAAkB,EAClBC,YAAa,KACbC,aAAc,EACdC,UAAW,EACXC,UAASA,EACTC,aAAYA,EACZC,aAAYA,EACZC,eAAgB,GAChBC,WAAY,KACZC,UAAW,KACXC,WAAUA,EACVC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,UAAW,KACXC,QAAOA,EACPC,SAAQA,EACRC,YAAa,CAAEC,OAAQ,EAAGC,OAAQ,EAAGC,KAAM,EAAGC,KAAM,GACpDC,WAAY,GACZC,WAAY,EACZC,YAAa,G,qCCrBR,SAASC,EAAMC,EAAQC,EAAYC,GACxC,OAAO7O,KAAKC,IAAI2O,EAAY5O,KAAKG,IAAIwO,EAAQE,IA2CvB,SAAXC,EAAWC,GAAI,OAAKA,GAAQA,EAAKC,aAAgB,EAE7B,SAApBC,EAAqBf,EAAD,GAA0C,IAA5BgB,EAA4B,6BAA1C,KAE/BC,EAAQjB,EAAYC,OAASD,EAAYG,KACzCe,EAAQlB,EAAYE,OAASF,EAAYI,KACzCe,EAAIrP,KAAKsP,MAAMF,EAAOD,GAKtB,OAJAI,EAAavP,KAAKoI,MAAW,IAAJiH,EAAWrP,KAAKwP,KACxB,IACfD,EAAa,IAAMvP,KAAKwI,IAAI+G,IAG3BA,GAAc,IAAoB,GAAdA,GACpBA,GAAc,KAAqB,KAAdA,EAEf,OAES,KAAdA,GAAqBA,GAAc,IAC9B,aAELL,EACgB,IAAdK,GAAoBA,GAAc,IAC7B,KAEA,OAIJ,WA6eoB,SAAhBE,EAAiBC,EAAMC,GAAP,OAE3BA,EAAU9I,QAAO,SAACpL,EAAOJ,GAAR,OAAgBI,GAASiU,EAAKlS,eAAenC,SAC1D,KACAuU,QAAQC,MAAM,gBAAiBH,GAwQZ,SAAZI,IAAY,QAEH,oBAAXlW,SACPA,OAAOuJ,WACPvJ,OAAOuJ,SAAS4M,eC5zBI,SAAlBC,EAAkBN,GACtB,IAAIO,EAAaC,EACbC,EAGF1R,EADEiR,EAAKU,IACCV,EAAK9B,WAAa,EAAI8B,EAAKjR,MAE3BiR,EAAKjR,MAEf4R,EAAc5R,EAAQ,GAAKA,GAASiR,EAAK9B,WAyBzC,OAxBI8B,EAAKY,YACPH,EAAenQ,KAAKuQ,MAAMb,EAAKc,aAAe,GAC9CN,GAAezR,EAAQiR,EAAKvC,cAAgBuC,EAAK9B,YAAe,EAE9DnP,EAAQiR,EAAKvC,aAAegD,EAAe,GAC3C1R,GAASiR,EAAKvC,aAAegD,IAE7BF,OAGFA,EACEP,EAAKvC,cAAgB1O,GACrBA,EAAQiR,EAAKvC,aAAeuC,EAAKc,aAY9B,CACL,eAAc,EACd,eAAgBP,EAChB,eAAgBC,EAChB,eAAgBG,EAChB,gBANiB5R,KAPfiR,EAAKjB,YAAc,EACNiB,EAAKjB,YAAciB,EAAK9B,WAC9B8B,EAAKjB,aAAeiB,EAAK9B,WACnB8B,EAAKjB,YAAciB,EAAK9B,WAExB8B,EAAKjB,cA4CT,SAATgC,EAAUC,EAAOC,GAAR,OAAwBD,EAAMrV,IAAM,IAAMsV,EDhFlD,IAAMC,EAAwB,SAAAlB,GAInC,IAHA,IAAImB,EAAiB,GACjBC,EAAaC,EAAerB,GAC5BsB,EAAWC,EAAavB,GACnBwB,EAAaJ,EAAYI,EAAaF,EAAUE,IACnDxB,EAAKlC,eAAe9N,QAAQwR,GAAc,GAC5CL,EAAehW,KAAKqW,GAGxB,OAAOL,GAeIE,EAAiB,SAAArB,GAAI,OAChCA,EAAKvC,aAAegE,EAAiBzB,IAC1BuB,EAAe,SAAAvB,GAAI,OAAIA,EAAKvC,aAAeiE,EAAkB1B,IAC7DyB,EAAmB,SAAAzB,GAAI,OAClCA,EAAKY,WACDtQ,KAAKuQ,MAAMb,EAAKc,aAAe,IACC,EAA/B9E,SAASgE,EAAK2B,eAAqB,EAAI,GACxC,GACOD,EAAoB,SAAA1B,GAAI,OACnCA,EAAKY,WACDtQ,KAAKuQ,OAAOb,EAAKc,aAAe,GAAK,GACrC,GACgC,EAA/B9E,SAASgE,EAAK2B,eAAqB,EAAI,GACxC3B,EAAKc,cAIEc,EAAY,SAAAvC,GAAI,OAAKA,GAAQA,EAAKwC,cAAiB,GA+BnDC,EAAY,SAAA9B,GACvB,IAAI+B,KAWJ,OAVK/B,EAAKgC,WACJhC,EAAKY,YAAcZ,EAAKvC,cAAgBuC,EAAK9B,WAAa,GAG5D8B,EAAK9B,YAAc8B,EAAKc,cACxBd,EAAKvC,cAAgBuC,EAAK9B,WAAa8B,EAAKc,gBAH5CiB,MAQGA,GAIIE,EAAgB,SAACjC,EAAMpV,GAClC,IAAIsX,EAAY,GAEhB,OADAtX,EAAKc,SAAQ,SAAAC,GAAG,OAAKuW,EAAUvW,GAAOqU,EAAKrU,MACpCuW,GAIIC,EAAmB,SAAAnC,GAE9B,IAAI9B,EAAakE,IAAMC,SAASC,MAAMtC,EAAKuC,UACrCC,EAAWxC,EAAKyC,QAClBzE,EAAY1N,KAAKoS,KAAKtD,EAASoD,IAC7BG,EAAY3C,EAAK4C,UAAY5C,EAAK4C,SAASC,KAC7C/D,EAAaxO,KAAKoS,KAAKtD,EAASuD,IAYlCvE,EAVG4B,EAAK8C,SAUK9E,GATT+E,EAAmB/C,EAAKY,YAA6C,EAA/B5E,SAASgE,EAAK2B,eAExB,iBAAvB3B,EAAK2B,eACqB,MAAjC3B,EAAK2B,cAActF,OAAO,KAE1B0G,GAAoB/E,EAAY,KAErB1N,KAAKoS,MAAM1E,EAAY+E,GAAoB/C,EAAKc,eAI3D3C,EACFqE,GAAYZ,EAAUY,EAASQ,cAAc,qBAC3CjF,EAAaI,EAAc6B,EAAKc,aAChCrD,WACFuC,EAAKvC,aAA6BuC,EAAKiD,aAAejD,EAAKvC,aACzDuC,EAAKU,cAAOV,EAAKvC,eACnBA,EAAeS,EAAa,EAAI8B,EAAKiD,cAEvC,IAAInF,EAAiBkC,EAAKlC,gBAAkB,GACxCoF,EAAehC,EAAsB,WACpClB,GADmC,IAEtCvC,eACAK,oBAmBF,OAjBAA,EAAeqF,OAAOD,GAElBE,EAAQ,CACVlF,aACAE,aACAJ,YACAc,aACArB,eACAU,cACAJ,aACAD,kBAGuB,OAArBkC,EAAK1C,aAAwB0C,EAAKqD,WACpCD,EAAK,YAAkB,WAGlBA,GAGIE,EAAe,SAAAtD,GAAQ,IAEhCuD,EAaEvD,EAbFuD,eACAlG,EAYE2C,EAZF3C,UACAmG,EAWExD,EAXFwD,KACAxB,EAUEhC,EAVFgC,SACAjT,EASEiR,EATFjR,MACAmP,EAQE8B,EARF9B,WACAJ,EAOEkC,EAPFlC,eACA2F,EAMEzD,EANFyD,SACAhG,EAKEuC,EALFvC,aACAmD,EAIEZ,EAJFY,WACA8C,EAGE1D,EAHF0D,eACA5C,EAEEd,EAFFc,aACA6C,EACE3D,EADF2D,OAEF,GAAIJ,GAAkBlG,EAAW,MAAO,GACxC,IAAIuG,EAAiB7U,EAIjBqU,EAAQ,GACVS,EAAY,GACR9E,EAAciD,EAAWjT,EAAQiQ,EAAMjQ,EAAO,EAAGmP,EAAa,GACpE,GAAIsF,EAAM,CACR,IAAKxB,IAAajT,EAAQ,GAAcmP,GAATnP,GAAsB,MAAO,GACxDA,EAAQ,EACV6U,EAAiB7U,EAAQmP,EACPA,GAATnP,IACT6U,EAAiB7U,EAAQmP,GAEvBuF,GAAY3F,EAAe9N,QAAQ4T,GAAkB,GACvD9F,EAAe3S,KAAKyY,GAQtBC,EAAY,CAAExG,YANd+F,EAAQ,CACN/F,WAAUA,EACVI,aAAcmG,EACd9F,iBACAiB,YAAa6E,IAEiB7E,YAAa6E,QAE7CE,EAAaF,GACQ,GACnBE,EAAaF,EAAiB1F,EACzB8D,EACI9D,EAAawF,GAAmB,IACvCI,EAAa5F,EAAcA,EAAawF,GAF3BI,EAAa,IAGlBhC,EAAU9B,IAA0BvC,EAAjBmG,EAC7BA,EAAiBE,EAAarG,EACrBmD,GAAgC1C,GAAlB0F,GACvBA,EAAiB5B,EAAW9D,EAAaA,EAAa,EACtD4F,EAAa9B,EAAW,EAAI9D,EAAa,GACdA,GAAlB0F,IACTE,EAAaF,EAAiB1F,EACzB8D,EACI9D,EAAawF,GAAmB,IAAGI,EAAa,GAD1CA,EAAa5F,EAAa4C,IAItCkB,GAA6C9D,GAAjC0F,EAAiB9C,IAChCgD,EAAa5F,EAAa4C,GAG5BiD,EAAgBC,EAAa,WAAKhE,GAAN,IAAYwB,WAAYoC,KACpDK,EAAYD,EAAa,WAAKhE,GAAN,IAAYwB,WAAYsC,KAC3C9B,IACC+B,IAAkBE,IAAWL,EAAiBE,GAClDC,EAAgBE,GAElBR,GACE3F,EAAeqF,OACbjC,EAAsB,WAAKlB,GAAN,IAAYvC,aAAcmG,MAE9CD,EAeHE,EAAY,CACVxG,YARF+F,EAAQ,CACN/F,WAAUA,EACVI,aAAcqG,EACdjF,WAAYqF,EAAmB,WAAKlE,GAAN,IAAY5H,KAAM2L,KAChDjG,iBACAiB,gBAIAtB,aAAcqG,EACdjF,WAAYsF,EAAY,WAAKnE,GAAN,IAAY5H,KAAM6L,KACzC5F,UAAW,KACXU,eAnBFqE,EAAQ,CACN3F,aAAcqG,EACdjF,WAAYsF,EAAY,WAAKnE,GAAN,IAAY5H,KAAM6L,KACzCnG,iBACAiB,eAmBN,MAAO,CAAEqE,QAAOS,cAGLO,EAAc,SAACpE,EAAMpP,GAChC,IAA8ByT,EAsC5BtF,EApCA2E,EAOE1D,EAPF0D,eACA5C,EAMEd,EANFc,aACA5C,EAKE8B,EALF9B,WACAT,EAIEuC,EAJFvC,aACa6G,EAGXtE,EAHFjB,YACA0E,EAEEzD,EAFFyD,SACAzB,EACEhC,EADFgC,SAGFuC,EADerG,EAAawF,GAAmB,EAClB,GAAKxF,EAAaT,GAAgBiG,EAuC/D,MAtCwB,aAApB9S,EAAQ4T,SAGVzF,EAActB,GAFd4G,EACkB,GAAhBE,EAAoBb,EAAiB5C,EAAeyD,GAElDd,IAAazB,IAEfjD,GAA+B,IAD/B0F,EAAchH,EAAe4G,GACMnG,EAAa,EAAIuG,GAEjDzC,IACHjD,EAAcuF,EAAsBZ,IAET,SAApB9S,EAAQ4T,SAEjBzF,EAActB,GADd4G,EAA8B,GAAhBE,EAAoBb,EAAiBa,GAE/Cd,IAAazB,IACfjD,GACItB,EAAeiG,GAAkBxF,EAAcqG,GAEhDvC,IACHjD,EAAcuF,EAAsBZ,IAET,SAApB9S,EAAQ4T,QAEjBzF,EAAcnO,EAAQ7B,MAAQ6B,EAAQ8S,eACT,aAApB9S,EAAQ4T,SAEjBzF,EAAcnO,EAAQ7B,MAClBiT,IACEtE,EAAYgH,EAAiB,WAAK1E,GAAN,IAAYjB,iBACxCA,EAAcnO,EAAQ6M,cAA8B,SAAdC,EACxCqB,GAA4Bb,EACnBa,EAAcnO,EAAQ6M,cAA8B,UAAdC,IAC/CqB,GAA4Bb,KAGH,UAApBtN,EAAQ4T,UACjBzF,EAAc4F,OAAO/T,EAAQ7B,QAExBgQ,GA2MI6F,EAAiB,SAAC5E,EAAMjR,GACnC,IAAM8V,EAb2B,SAAA7E,GAKjC,IAJA,IAAIzP,EAAMyP,EAAKgC,SAA6B,EAAlBhC,EAAK9B,WAAiB8B,EAAK9B,WACjD4G,EAAa9E,EAAKgC,UAAgC,EAArBhC,EAAKc,aAAoB,EACtDiE,EAAU/E,EAAKgC,UAAgC,EAArBhC,EAAKc,aAAoB,EACnDkE,EAAU,GACPF,EAAavU,GAClByU,EAAQ7Z,KAAK2Z,GACbA,EAAaC,EAAU/E,EAAK0D,eAC5BqB,GAAWzU,KAAKG,IAAIuP,EAAK0D,eAAgB1D,EAAKc,cAEhD,OAAOkE,EAV0B,CAaMhF,GACnCiF,EAAgB,EACpB,GAAIlW,EAAQ8V,EAAWA,EAAWrZ,OAAS,GACzCuD,EAAQ8V,EAAWA,EAAWrZ,OAAS,QAEvC,IAAK,IAAI0Z,KAAKL,EAAY,CACxB,GAAI9V,EAAQ8V,EAAWK,GAAI,CACzBnW,EAAQkW,EACR,MAEFA,EAAgBJ,EAAWK,GAG/B,OAAOnW,GAEIoW,EAAgB,SAAAnF,GAC3B,IAAMS,EAAeT,EAAKY,WACtBZ,EAAK5B,WAAa9N,KAAKuQ,MAAMb,EAAKc,aAAe,GACjD,EACJ,GAAId,EAAKoF,aAAc,CACrB,IAAIC,EAEEC,EADYtF,EAAKyC,QACE8C,iBAAiB,gBAoB1C,OAnBApX,MAAMqX,KAAKF,GAAQG,OAAM,SAAAC,GACvB,GAAK1F,EAAK8C,UASR,GAAI4C,EAAMC,UAAY/D,EAAU8D,GAAS,GAAsB,EAAlB1F,EAAK3B,UAEhD,OADAgH,EAAcK,UAThB,GACEA,EAAME,WAAanF,EAAerB,EAASsG,GAAS,GAClC,EAAlB1F,EAAK3B,UAGL,OADAgH,EAAcK,KAUlB,OAAM,KAGHL,GAGCQ,OACJ7F,EAAKU,IACDV,EAAK9B,WAAa8B,EAAKvC,aACvBuC,EAAKvC,aAETnN,KAAKwI,IAAIuM,EAAYS,QAAQ/W,MAAQ8W,IAAiB,GAP/C,EAUT,OAAO7F,EAAK0D,gBAUHS,EAAc,SAAAnE,GAQzB,IAAIlB,EAAYiH,EAPhBhG,EAAcC,EAAM,CAClB,OACA,gBACA,aACA,eACA,eAGF,IAAMgG,EAAgBhG,EAAK9B,WAAa,EAAI8B,EAAKc,aAC5Cd,EAAK8C,SAGRiD,EAAcC,EAAgBhG,EAAK7B,YAFnCW,EAAamH,EAAejG,GAAQA,EAAK5B,WAI3C,IAMM8H,EAGAC,EATFC,EAAQ,CACVC,QAAS,EACTC,WAAY,GACZC,iBAAkB,IAsCpB,OApCIvG,EAAKwG,cACHN,EAAmBlG,EAAK8C,SAExB,oBAAsB9C,EAAK5H,KAAO,WADlC,eAAiB4H,EAAK5H,KAAO,gBAE7B+N,EAAanG,EAAK8C,SAElB,oBAAsB9C,EAAK5H,KAAO,WADlC,eAAiB4H,EAAK5H,KAAO,gBAE7BqO,EAAezG,EAAK8C,SAEpB,cAAgB9C,EAAK5H,KAAO,MAD5B,cAAgB4H,EAAK5H,KAAO,MAEhCgO,EAAQ,WACHA,GADA,IAEHF,kBACAC,YACAM,iBAGEzG,EAAK8C,SACPsD,EAAK,IAAUpG,EAAK5H,KAEpBgO,EAAK,KAAWpG,EAAK5H,KAGrB4H,EAAKwD,OAAM4C,EAAQ,CAAEC,QAAS,IAC9BvH,IAAYsH,EAAMxO,MAAQkH,GAC1BiH,IAAaK,EAAMvO,OAASkO,GAG5B7b,SAAWA,OAAOgL,kBAAoBhL,OAAOwc,cAC1C1G,EAAK8C,SAGRsD,EAAMO,UAAY3G,EAAK5H,KAAO,KAF9BgO,EAAMQ,WAAa5G,EAAK5H,KAAO,MAM5BgO,GAEIlC,EAAqB,SAAAlE,GAChCD,EAAcC,EAAM,CAClB,OACA,gBACA,aACA,eACA,aACA,QACA,YAEF,IAAIoG,EAAQjC,EAAYnE,GAaxB,OAXIA,EAAKwG,cACPJ,EAAMG,iBACJ,qBAAuBvG,EAAK6G,MAAQ,MAAQ7G,EAAK8G,QACnDV,EAAME,WAAa,aAAetG,EAAK6G,MAAQ,MAAQ7G,EAAK8G,SAExD9G,EAAK8C,SACPsD,EAAME,WAAa,OAAStG,EAAK6G,MAAQ,MAAQ7G,EAAK8G,QAEtDV,EAAME,WAAa,QAAUtG,EAAK6G,MAAQ,MAAQ7G,EAAK8G,QAGpDV,GAEIpC,EAAe,SAAAhE,GAC1B,GAAIA,EAAK+G,QACP,OAAO,EAGThH,EAAcC,EAAM,CAClB,aACA,WACA,WACA,aACA,aACA,eACA,iBACA,aACA,YACA,gBACA,gBAhBgC,IAoBhCwB,EAaExB,EAbFwB,WACAoB,EAYE5C,EAZF4C,SACAZ,EAWEhC,EAXFgC,SACApB,EAUEZ,EAVFY,WACA1C,EASE8B,EATF9B,WACA4C,EAQEd,EARFc,aACA4C,EAOE1D,EAPF0D,eACAtF,EAME4B,EANF5B,WACAJ,EAKEgC,EALFhC,UACAgJ,EAIEhH,EAJFgH,cACA7I,EAGE6B,EAHF7B,YACAqF,EAEExD,EAFFwD,KACAV,EACE9C,EADF8C,SAQF,GAAIU,GAA4B,IAApBxD,EAAK9B,WACf,OAAO,EAuCT,GApCI+I,EAAiB,EACjBjF,GACFiF,GAAkBC,EAAalH,GAG7B9B,EAAawF,GAAmB,GACFxF,EAA9BsD,EAAakC,IAEbuD,IAAgC/I,EAAbsD,EACfV,GAAgBU,EAAatD,GAC7BA,EAAawF,IAGf9C,IACFqG,GAAkBjL,SAAS8E,EAAe,MAI1C5C,EAAawF,GAAmB,GACFxF,EAA9BsD,EAAakC,IAEbuD,EAAiBnG,EAAgB5C,EAAawF,GAE5C9C,IACFqG,EAAiBjL,SAAS8E,EAAe,KAS3CqG,EAHGrE,EAGUtB,EAAarD,GAAe,EAL1B8I,EAAiB9I,EAGnBqD,EAAapD,GAAc,EAJ5B6I,EAAiB7I,OAS3B4I,EAAwB,CAC1B,IACMI,EAAYxE,GAAYA,EAASC,KACvCwE,EAAmB7F,EAAa0F,EAAalH,GAE7CmH,GADApI,EAAcqI,GAAaA,EAAUE,WAAWD,KACK,EAA1BtI,EAAY6G,WAAkB,EACzD,QAAIhF,EAAqB,CACvByG,EAAmBrF,EACfR,EAAa0F,EAAalH,GAC1BwB,EACJzC,EAAcqI,GAAaA,EAAU7E,SAAS8E,GAE9C,IAAK,IAAI3B,EADTyB,EAAa,EACOzB,EAAQ2B,EAAkB3B,IAC5CyB,GACEC,GACAA,EAAU7E,SAASmD,IACnB0B,EAAU7E,SAASmD,GAAOpG,YAE9B6H,GAAcnL,SAASgE,EAAK2B,eAC5BwF,GAAcpI,IAAgBf,EAAYe,EAAYO,aAAe,GAIzE,OAAO6H,GAGID,EAAe,SAAAlH,GAC1B,OAAIA,EAAK+G,UAAY/G,EAAKgC,SACjB,EAELhC,EAAKgH,cACAhH,EAAK9B,WAEP8B,EAAKc,cAAgBd,EAAKY,WAAa,EAAI,IAGvC2G,EAAgB,SAAAvH,GAC3B,OAAIA,EAAK+G,UAAY/G,EAAKgC,SACjB,EAEFhC,EAAK9B,YAGD+H,EAAiB,SAAAjG,GAAI,OACZ,IAApBA,EAAK9B,WACD,EACAgJ,EAAalH,GAAQA,EAAK9B,WAAaqJ,EAAcvH,IAC9C0E,EAAmB,SAAA1E,GAC9B,OAAIA,EAAKjB,YAAciB,EAAKvC,aACtBuC,EAAKjB,YAAciB,EAAKvC,aAAe+J,EAAcxH,GAChD,OAEF,QAEHA,EAAKjB,YAAciB,EAAKvC,aAAegK,EAAazH,GAC/C,QAEF,QAIEwH,EAAgB,SAAC,GAKxB,IAJJ1G,EAII,EAJJA,aACAF,EAGI,EAHJA,WACAF,EAEI,EAFJA,IACAiB,EACI,EADJA,cAGA,OAAIf,GACEvI,GAASyI,EAAe,GAAK,EAAI,EACP,EAA1B9E,SAAS2F,KAAoBtJ,GAAS,GACtCqI,GAAOI,EAAe,GAAM,IAAGzI,GAAS,GACrCA,GAELqI,EACK,EAEFI,EAAe,GAGX2G,EAAe,SAAC,GAKvB,IAJJ3G,EAII,EAJJA,aACAF,EAGI,EAHJA,WACAF,EAEI,EAFJA,IACAiB,EACI,EADJA,cAGA,OAAIf,GACExI,GAAQ0I,EAAe,GAAK,EAAI,EACN,EAA1B9E,SAAS2F,KAAoBvJ,GAAQ,GACpCsI,GAAOI,EAAe,GAAM,IAAG1I,GAAQ,GACrCA,GAELsI,EACKI,EAAe,EAEjB,GCznBI4G,EAAb,SAAA9X,GAAA,MAAAA,GAAA,oDAAAA,EAAA,6BAAAA,GAAA,MAAAA,EAAA,kFACS,MADT,wBAGc,SAAA+X,GACVC,EAAK/E,KAAO8E,KAJhB,+CAQI,IAAMrC,EAvHW,SAAAtF,GACnB,IAAIrU,EACA2Z,EAAS,GACTuC,EAAiB,GACjBC,EAAkB,GAClBC,EAAgB3F,IAAMC,SAASC,MAAMtC,EAAKuC,UAC1CnB,EAAaC,EAAerB,GAC5BsB,EAAWC,EAAavB,GAiG5B,OA/FAoC,IAAMC,SAAS3W,QAAQsU,EAAKuC,UAAU,SAAClD,EAAMtQ,GAC3C,IAwCMiZ,EAvCFC,EAAsB,CACxBzD,QAAS,WACTzV,MAAOA,EACP2U,eAAgB1D,EAAK0D,eACrBjG,aAAcuC,EAAKvC,cAQnBuD,GAHChB,EAAKyD,UACLzD,EAAKyD,UAAkD,GAAtCzD,EAAKlC,eAAe9N,QAAQjB,GAEtCsQ,EAEA,8BAEN6I,GA5DF9B,EAAQ,aADQpG,EA6Da,WAAKA,GAAN,IAAYjR,WA1DnCiY,oBAA+BhH,EAAKgH,gBAC3CZ,EAAMxO,MAAQoI,EAAK5B,YAGjB4B,EAAKwD,OACP4C,EAAM/O,SAAW,WACb2I,EAAK8C,SACPsD,EAAM7N,KAAOyH,EAAKjR,MAAQiN,SAASgE,EAAK7B,aAExCiI,EAAMhO,MAAQ4H,EAAKjR,MAAQiN,SAASgE,EAAK5B,YAE3CgI,EAAMC,QAAUrG,EAAKvC,eAAiBuC,EAAKjR,MAAQ,EAAI,EACnDiR,EAAK2D,SACPyC,EAAME,WACJ,WACAtG,EAAK6G,MACL,MACA7G,EAAK8G,QACL,gBAEA9G,EAAK6G,MACL,MACA7G,EAAK8G,UAIJV,GAiCD+B,EAAanH,EAAMxU,MAAM4b,WAAa,GACtCC,EAAe/H,EAAgB,WAAKN,GAAN,IAAYjR,WAE9CuW,EAAOna,KACLiX,IAAMkG,aAAatH,EAAO,CACxBrV,IAAK,WAAaoV,EAAOC,EAAOjS,GAChC,aAAcA,EACdqZ,UAAWG,IAAWF,EAAcF,GACpCK,SAAU,KACV,eAAgBH,EAAa,gBAC7BjC,MAAO,SAAEqC,QAAS,QAAYzH,EAAMxU,MAAM4Z,OAAS,IAAQ8B,GAC3DQ,QAAS,SAAA9Y,GACPoR,EAAMxU,OAASwU,EAAMxU,MAAMkc,SAAW1H,EAAMxU,MAAMkc,QAAQ9Y,GACtDoQ,EAAK2I,eACP3I,EAAK2I,cAAcV,OAOvBjI,EAAKgC,eAAYhC,EAAKwD,QACpBwE,EAAaD,EAAgBhZ,IAEjBmY,EAAalH,IAC3B+H,IAAkB/H,EAAKc,eAGZM,IADXzV,GAAOqc,KAELhH,EAAQ3B,GAEVgJ,EAAe/H,EAAgB,WAAKN,GAAN,IAAYjR,MAAOpD,KACjDkc,EAAe1c,KACbiX,IAAMkG,aAAatH,EAAO,CACxBrV,IAAK,YAAcoV,EAAOC,EAAOrV,GACjC,aAAcA,EACd6c,SAAU,KACVJ,UAAWG,IAAWF,EAAcF,GACpC,eAAgBE,EAAa,gBAC7BjC,MAAO,WAAMpF,EAAMxU,MAAM4Z,OAAS,IAAQ8B,GAC1CQ,QAAS,SAAA9Y,GACPoR,EAAMxU,OAASwU,EAAMxU,MAAMkc,SAAW1H,EAAMxU,MAAMkc,QAAQ9Y,GACtDoQ,EAAK2I,eACP3I,EAAK2I,cAAcV,QAOzBF,IAAkB/H,EAAKc,gBACzBnV,EAAMoc,EAAgBhZ,GACZuS,IACRN,EAAQ3B,GAEVgJ,EAAe/H,EAAgB,WAAKN,GAAN,IAAYjR,MAAOpD,KACjDmc,EAAgB3c,KACdiX,IAAMkG,aAAatH,EAAO,CACxBrV,IAAK,aAAeoV,EAAOC,EAAOrV,GAClC,aAAcA,EACd6c,SAAU,KACVJ,UAAWG,IAAWF,EAAcF,GACpC,eAAgBE,EAAa,gBAC7BjC,MAAO,WAAMpF,EAAMxU,MAAM4Z,OAAS,IAAQ8B,GAC1CQ,QAAS,SAAA9Y,GACPoR,EAAMxU,OAASwU,EAAMxU,MAAMkc,SAAW1H,EAAMxU,MAAMkc,QAAQ9Y,GACtDoQ,EAAK2I,eACP3I,EAAK2I,cAAcV,YAS7BjI,EAAKU,IACAmH,EAAe1E,OAAOmC,EAAQwC,GAAiBc,UAE/Cf,EAAe1E,OAAOmC,EAAQwC,GAYtBe,CAAanb,KAAKlB,OAE3Bsc,EAAc,CAAEC,cAHf,EAE6Crb,KAAKlB,OAAjDuc,aAC4BC,YAH7B,EAEeA,YAC2BC,aAH1C,EAE4BA,cAEnC,OACE,6BACEtB,IAAKja,KAAKwb,UACVd,UAAU,cACVhC,MAAO1Y,KAAKlB,MAAMqS,YACdiK,GAEHxD,OAlBT,GAA2BlD,IAAM+G,eCnLpBC,EAAb,SAAAxZ,GAAA,MAAAA,GAAA,sHACegB,EAAShB,GAGpBA,EAAEyZ,iBACF3b,KAAKlB,MAAM8c,aAAa1Y,KAL5B,+BA2BI,IApBO,MAUHlD,KAAKlB,MARPuc,EAFK,EAELA,aACAC,EAHK,EAGLA,YACAC,EAJK,EAILA,aACAjH,EALK,EAKLA,SACA0B,EANK,EAMLA,eACA5C,EAPK,EAOLA,aACA5C,EARK,EAQLA,WACAT,EATK,EASLA,aAEE8L,EAhCY,SAAAvJ,GAWlB,OAPEwJ,EADExJ,EAAKgC,SACA1R,KAAKoS,KAAK1C,EAAK9B,WAAa8B,EAAK0D,gBAGtCpT,KAAKoS,MAAM1C,EAAK9B,WAAa8B,EAAKc,cAAgBd,EAAK0D,gBACvD,EARc,CAgCW,CACzBxF,aACAwF,iBACA5C,eACAkB,aAIEwH,GADEV,EAAc,CAAEC,eAAcC,cAAaC,gBACtC,IACF3d,EAAI,EAAGA,EAAIie,EAAUje,IAC5B,KAAIme,GAAene,EAAI,GAAKoY,EAAiB,EASzC0E,GALAsB,GAHAC,EAAa3H,EACbyH,EACAzK,EAAMyK,EAAa,EAAGvL,EAAa,KACRwF,EAAiB,GAC5CkG,EAAY5H,EACZ0H,EACA1K,EAAM0K,EAAY,EAAGxL,EAAa,GAEtBqK,IAAW,CACzB,eAAgBvG,EACI4H,GAAhBnM,GAA6BA,GAAgBkM,EAC7ClM,IAAiBmM,KAGnBC,EAAa,CACfrF,QAAS,OACTzV,MAAOzD,EACPoY,iBACAjG,gBAGEiL,EAAUhb,KAAK4b,aAAaxV,KAAKpG,KAAMmc,GAC3CL,EAAOA,EAAKrG,OACV,wBAAIxX,IAAKL,EAAG8c,UAAWA,GACpBhG,IAAMkG,aAAa5a,KAAKlB,MAAMsd,aAAaxe,GAAI,CAAEod,cAKxD,OAAOtG,IAAMkG,aAAa5a,KAAKlB,MAAMud,WAAWP,GAAzC,KACLpB,UAAW1a,KAAKlB,MAAMwd,WACnBlB,QA5DT,GAA0B1G,IAAM+G,eCdnBc,EAAb,SAAAra,GAAA,MAAAA,GAAA,sHACegB,EAAShB,GAChBA,GACFA,EAAEyZ,iBAEJ3b,KAAKlB,MAAM8c,aAAa1Y,EAAShB,KALrC,+BAQI,IAAIsa,EAAc,CAAE,eAAc,EAAO,cAAa,GAClDC,EAAczc,KAAK4b,aAAaxV,KAAKpG,KAAM,CAAE8W,QAAS,aAsC1D,OAnCG9W,KAAKlB,MAAMwV,WACiB,IAA5BtU,KAAKlB,MAAMiR,cACV/P,KAAKlB,MAAM0R,YAAcxQ,KAAKlB,MAAMsU,gBAEtCoJ,EAAY,qBACZC,EAAc,MAGZC,EAAiB,CACnBze,IAAK,IACL,YAAa,OACbyc,UAAWG,IAAW2B,GACtB9D,MAAO,CAAEiE,QAAS,SAClB3B,QAASyB,GAEPG,EAAc,CAChB7M,aAAc/P,KAAKlB,MAAMiR,aACzBS,WAAYxQ,KAAKlB,MAAM0R,YAKvBqM,EADE7c,KAAKlB,MAAM+d,UACDnI,IAAMkG,aAAa5a,KAAKlB,MAAM+d,UAA9B,WACPH,GACAE,IAIH,gCAAQ3e,IAAI,IAAI4D,KAAK,UAAa6a,GAC/B,IADH,gBAxCR,GAA+BhI,IAAM+G,eAmDxBqB,EAAb,SAAA5a,GAAA,MAAAA,GAAA,sHACegB,EAAShB,GAChBA,GACFA,EAAEyZ,iBAEJ3b,KAAKlB,MAAM8c,aAAa1Y,EAAShB,KALrC,+BAQI,IAAI6a,EAAc,CAAE,eAAc,EAAO,cAAa,GAClDC,EAAchd,KAAK4b,aAAaxV,KAAKpG,KAAM,CAAE8W,QAAS,SAkC1D,OAhCK1C,EAAUpU,KAAKlB,SAClBie,EAAY,qBACZC,EAAc,MAGZC,EAAiB,CACnBhf,IAAK,IACL,YAAa,OACbyc,UAAWG,IAAWkC,GACtBrE,MAAO,CAAEiE,QAAS,SAClB3B,QAASgC,GAEPJ,EAAc,CAChB7M,aAAc/P,KAAKlB,MAAMiR,aACzBS,WAAYxQ,KAAKlB,MAAM0R,YAKvB0M,EADEld,KAAKlB,MAAMoe,UACDxI,IAAMkG,aAAa5a,KAAKlB,MAAMoe,UAA9B,WACPD,GACAL,IAIH,gCAAQ3e,IAAI,IAAI4D,KAAK,UAAaob,GAC/B,IADH,YApCR,GAA+BvI,IAAM+G,e,QC5BxB0B,EAAb,SAAAjb,GAAA,MAAAA,GAAA,aACE,WAAYpD,GAAO,yBACjB,cAAMA,GADW,6BAeF,SAAAmb,GAAG,OAAK,EAAKmD,KAAOnD,KAflB,8BAgBD,SAAAA,GAAG,OAAK,EAAKoD,MAAQpD,KAhBpB,0BAiBL,WACZ,IACQtI,EADJ,EAAK7S,MAAMwe,gBAAkB,EAAKF,OAC9BzL,EAAO,EAAKyL,KAAK9H,cAAV,uBACK,EAAKI,MAAM3F,aADhB,OAGb,EAAKqN,KAAK1E,MAAMvO,OAAS+J,EAAUvC,GAAQ,SAtB5B,gCAyBC,WAElB,IACM6D,EAFN,EAAK1W,MAAMye,QAAU,EAAKze,MAAMye,UAC5B,EAAKze,MAAMiX,UAKa,GAJtBP,EAAehC,EAAsB,WACpC,EAAK1U,OACL,EAAK4W,SAEO5X,SACf,EAAK0f,UAAS,SAAAC,GAAS,MAAK,CAC1BrN,eAAgBqN,EAAUrN,eAAeqF,OAAOD,OAE9C,EAAK1W,MAAM4e,YACb,EAAK5e,MAAM4e,WAAWlI,IAI5B,IAAIlD,EAAO,KAAEyC,QAAS,EAAKqI,KAAMlI,SAAU,EAAKmI,OAAU,EAAKve,OAC/D,EAAK6e,YAAYrL,MAAY,WAC3B,EAAKsL,cACL,EAAK9e,MAAM6W,UAAY,EAAKkI,SAAS,aAEX,gBAAxB,EAAK/e,MAAMiX,WACb,EAAK+H,cAAgBC,YAAY,EAAKC,oBAAqB,MAE7D,EAAKC,GAAK,IAAI7Q,KAAe,WACvB,EAAKsI,MAAM/F,WACb,EAAKuO,iBAAgBA,GACrB,EAAKC,eAAe1gB,KAClB2G,YAAW,kBAAM,EAAK8Z,oBAAmB,EAAKpf,MAAMqa,SAGtD,EAAK+E,qBAGT,EAAKD,GAAGtW,QAAQ,EAAKyV,MACrB3c,MAAMvB,UAAUlB,QAAQ4C,KACtBmF,SAAS8R,iBAAiB,iBAC1B,SAAAG,GACEA,EAAMoG,QAAU,EAAKtf,MAAMuf,aAAe,EAAKC,aAAe,KAC9DtG,EAAMuG,OAAS,EAAKzf,MAAMuf,aAAe,EAAKG,YAAc,QAG5DhiB,OAAOgL,iBACThL,OAAOgL,iBAAiB,SAAU,EAAK0W,iBAEvC1hB,OAAOwc,YAAY,WAAY,EAAKkF,oBAtErB,mCAyEI,WACjB,EAAKO,sBACPja,aAAa,EAAKia,sBAEhB,EAAKX,eACPY,cAAc,EAAKZ,eAEjB,EAAKK,eAAergB,SACtB,EAAKqgB,eAAengB,SAAQ,SAAA2gB,GAAK,OAAIna,aAAama,MAClD,EAAKR,eAAiB,IAEpB3hB,OAAOgL,iBACThL,OAAOyL,oBAAoB,SAAU,EAAKiW,iBAE1C1hB,OAAOoiB,YAAY,WAAY,EAAKV,iBAElC,EAAKW,eACPH,cAAc,EAAKG,eAErB,EAAKZ,GAAG/V,gBA5FS,iCAyHE,SAAA4W,GAGnB,IACMtJ,EAHN,EAAKuJ,kBACL,EAAKjgB,MAAMkgB,UAAY,EAAKlgB,MAAMkgB,YAC9B,EAAKlgB,MAAMiX,UAKa,GAJtBP,EAAehC,EAAsB,WACpC,EAAK1U,OACL,EAAK4W,SAEO5X,SACf,EAAK0f,UAAS,SAAAC,GAAS,MAAK,CAC1BrN,eAAgBqN,EAAUrN,eAAeqF,OAAOD,OAE9C,EAAK1W,MAAM4e,YACb,EAAK5e,MAAM4e,WAAWlI,IAO5B,EAAKoI,cACL,IAAItL,EAAO,SACTyC,QAAS,EAAKqI,KACdlI,SAAU,EAAKmI,OACZ,EAAKve,OACL,EAAK4W,OAEJuJ,EAAgB,EAAKC,eAAeJ,GAC1CG,GACE,EAAKtB,YAAYrL,EAAM2M,GAAe,WAElC,EAAKvJ,MAAM3F,cAAgB2E,IAAMC,SAASC,MAAM,EAAK9V,MAAM+V,WAE3D,EAAK6B,YAAY,CACfI,QAAS,QACTzV,MACEqT,IAAMC,SAASC,MAAM,EAAK9V,MAAM+V,UAChC,EAAK/V,MAAMsU,aACbrD,aAAc,EAAK2F,MAAM3F,eAI3B+O,EAAUnJ,WAAa,EAAK7W,MAAM6W,UAClCmJ,EAAUK,gBAAkB,EAAKrgB,MAAMqgB,gBAEnC,EAAKrgB,MAAM6W,SACb,EAAKkI,SAAS,UAEd,EAAKuB,MAAM,iBAzKF,8BA8KD,SAAAH,GACZ,EAAKI,iBAAiB,EAAKA,gBAAgB5a,SAC/C,EAAK4a,gBAAkBC,KAAS,kBAAM,EAAKC,aAAaN,KAAgB,IACxE,EAAKI,qBAjLY,2BAmLJ,WAA0B,IAInC/M,EAJU2M,IAAyB,yDAChBO,QAAQ,EAAKnC,OAAS,EAAKA,MAAMlI,QAGpD7C,EAAO,SACTyC,QAAS,EAAKqI,KACdlI,SAAU,EAAKmI,OACZ,EAAKve,OACL,EAAK4W,OAEV,EAAKiI,YAAYrL,EAAM2M,GAAe,WAChC,EAAKngB,MAAM6W,SAAU,EAAKkI,SAAS,UAClC,EAAKuB,MAAM,aAGlB,EAAK5B,SAAS,CACZ7N,WAAUA,IAEZnL,aAAa,EAAKia,6BACX,EAAKA,yBAtMK,0BAwML,SAACnM,EAAM2M,EAAezZ,GAClC,IAAIia,EAAehL,EAAiBnC,GACpCA,EAAO,eAAKA,GAASmN,GAAjB,IAA+B3L,WAAY2L,EAAa1P,eAC5D,IAAI0J,EAAanD,EAAahE,GAC9BA,EAAO,WAAKA,GAAR,IAAc5H,KAAM+O,IACpBtI,EAAasF,EAAYnE,IAE3B2M,GACAvK,IAAMC,SAASC,MAAM,EAAK9V,MAAM+V,YAC9BH,IAAMC,SAASC,MAAMtC,EAAKuC,YAE5B4K,EAAY,WAAiBtO,GAE/B,EAAKqM,SAASiC,EAAcja,MArNX,sBAwNT,WACR,GAAI,EAAK1G,MAAMwa,cAAe,CAC5B,IAAIlI,EAAa,EACfsO,EAAY,EACVC,EAAiB,GACjBC,EAAYpG,EAAa,eACxB,EAAK1a,OACL,EAAK4W,OAFkB,IAG1BlF,WAAY,EAAK1R,MAAM+V,SAAS/W,UAE9B+hB,EAAahG,EAAc,eAC1B,EAAK/a,OACL,EAAK4W,OAFoB,IAG5BlF,WAAY,EAAK1R,MAAM+V,SAAS/W,UAElC,EAAKgB,MAAM+V,SAAS7W,SAAQ,SAAAsV,GAC1BqM,EAAeliB,KAAK6V,EAAMxU,MAAM4Z,MAAMxO,OACtCkH,GAAckC,EAAMxU,MAAM4Z,MAAMxO,SAElC,IAAK,IAAItM,EAAI,EAAGA,EAAIgiB,EAAWhiB,IAC7B8hB,GAAaC,EAAeA,EAAe7hB,OAAS,EAAIF,GACxDwT,GAAcuO,EAAeA,EAAe7hB,OAAS,EAAIF,GAE3D,IAAK,IAAIA,EAAI,EAAGA,EAAIiiB,EAAYjiB,IAC9BwT,GAAcuO,EAAe/hB,GAE/B,IAAK,IAAIA,EAAI,EAAGA,EAAI,EAAK8X,MAAM3F,aAAcnS,IAC3C8hB,GAAaC,EAAe/hB,GAE9B,IAAIuT,EAAa,CACfjH,MAAOkH,EAAa,KACpB1G,MAAOgV,EAAY,MAMrB,OAJI,EAAK5gB,MAAMoU,aACT4M,EAAe,GAAH,OAAMH,EAAe,EAAKjK,MAAM3F,cAAhC,MAChBoB,EAAWzG,KAAX,eAA0ByG,EAAWzG,KAArC,sBAAuDoV,EAAvD,aAEK,CACL3O,cAGJ,IAAIkJ,EAAgB3F,IAAMC,SAASC,MAAM,EAAK9V,MAAM+V,UAC9CvC,EAAO,eAAK,EAAKxT,OAAU,EAAK4W,OAA5B,IAAmClF,WAAY6J,IACrD7J,EAAagJ,EAAalH,GAAQuH,EAAcvH,GAAQ+H,EACxDjJ,EAAc,IAAM,EAAKtS,MAAMsU,aAAgB5C,EAE/CkP,IADAhP,EAAa,IAAMF,IAGlBgJ,EAAalH,GAAQ,EAAKoD,MAAM3F,cACjCqB,EACF,IAQF,OAPI,EAAKtS,MAAMoU,aACbwM,IAAc,IAAOhP,EAAaU,EAAc,KAAO,GAMlD,CACLV,WAAYA,EAAa,IACzBS,WANe,CACfjH,MAAOkH,EAAa,IACpB1G,KAAMgV,EAAY,SAhRH,8BAuRD,WAChB,IAAIK,EAAS,EAAK3C,KAAKvF,iBAAiB,oBACpCmI,EAAcD,EAAOjiB,OACvBmiB,EAAc,EAChBxf,MAAMvB,UAAUlB,QAAQ4C,KAAKmf,GAAQ,SAAAG,GACnB,SAAVC,IAAU,QACZF,GAA8BD,GAAfC,GAA8B,EAAK/B,kBADtD,IAKQkC,EAHHF,EAAMG,SAGHD,EAAmBF,EAAMG,QAC/BH,EAAMG,QAAU,WACdD,IACAF,EAAMI,WAAWC,UALnBL,EAAMG,QAAU,kBAAMH,EAAMI,WAAWC,SAQpCL,EAAMM,SACL,EAAK1hB,MAAMiX,SACbmK,EAAMM,OAAS,WACb,EAAK5C,cACL,EAAKO,eAAe1gB,KAClB2G,WAAW,EAAK8Z,gBAAiB,EAAKpf,MAAMqa,UAIhD+G,EAAMM,OAASL,EACfD,EAAMO,QAAU,WACdN,IACA,EAAKrhB,MAAM4hB,iBAAmB,EAAK5hB,MAAM4hB,2BAnThC,kCAyTG,WAGpB,IAFA,IAAIlL,EAAe,GACblD,EAAO,WAAK,EAAKxT,OAAU,EAAK4W,OAEhCrU,EAAQ,EAAKqU,MAAM3F,aACvB1O,EAAQ,EAAKqU,MAAMlF,WAAaqJ,EAAcvH,GAC9CjR,IAEA,GAAI,EAAKqU,MAAMtF,eAAe9N,QAAQjB,GAAS,EAAG,CAChDmU,EAAa/X,KAAK4D,GAClB,MAGJ,IACE,IAAIA,EAAQ,EAAKqU,MAAM3F,aAAe,EACtC1O,IAAUmY,EAAalH,GACvBjR,IAEA,GAAI,EAAKqU,MAAMtF,eAAe9N,QAAQjB,GAAS,EAAG,CAChDmU,EAAa/X,KAAK4D,GAClB,MAGsB,EAAtBmU,EAAa1X,QACf,EAAK0f,UAAS,SAAA9H,GAAK,MAAK,CACtBtF,eAAgBsF,EAAMtF,eAAeqF,OAAOD,OAE1C,EAAK1W,MAAM4e,YACb,EAAK5e,MAAM4e,WAAWlI,IAGpB,EAAKsI,gBACPY,cAAc,EAAKZ,sBACZ,EAAKA,kBA1VC,2BA8VJ,SAACzc,GAA+B,IAAxBsf,EAAwB,wDAE3CC,GAF2C,EAOzC,EAAK9hB,OALP8hB,SACAC,EAH2C,EAG3CA,aACAnD,EAJ2C,EAI3CA,WACAvE,EAL2C,EAK3CA,MACA2H,EAN2C,EAM3CA,YAGI/Q,EAAe,EAAK2F,MAAM3F,aAC1B2F,GAVuC,EAUlBE,EAAa,aACtCvU,SACG,EAAKvC,OACL,EAAK4W,OAH6B,IAIrCR,SAAU,EAAKmI,MACfpH,OAAQ,EAAKnX,MAAMmX,SAAW0K,MAL1BjL,MAAOS,EAVgC,EAUhCA,UAORT,IACLmL,GAAgBA,EAAa9Q,EAAc2F,EAAM3F,cAC7CyF,EAAeE,EAAMtF,eAAe/S,QACtC,SAAAgB,GAAK,OAAI,EAAKqX,MAAMtF,eAAe9N,QAAQjE,GAAS,KAEtDqf,GAAoC,EAAtBlI,EAAa1X,QAAc4f,EAAWlI,IAC/C,EAAK1W,MAAM+W,gBAAkB,EAAK4I,uBACrCja,aAAa,EAAKia,sBAClBqC,GAAeA,EAAY/Q,UACpB,EAAK0O,sBAEd,EAAKjB,SAAS9H,GAAO,WAEfkL,GAAY,EAAKG,gBAAkB1f,IACrC,EAAK0f,cAAgB1f,EACrBuf,EAASI,YAAYpL,aAAavU,IAE/B8U,IACL,EAAKsI,qBAAuBra,YAAW,WAAM,IACnCuL,EAA6BwG,EAA7BxG,UAAcsR,EADqB,IACN9K,EADM,eAE3C,EAAKqH,SAASyD,GAAY,WACxB,EAAK9C,eAAe1gB,KAClB2G,YAAW,kBAAM,EAAKoZ,SAAS,CAAE7N,gBAAc,KAEjDmR,GAAeA,EAAYpL,EAAM3F,qBAC1B,EAAK0O,0BAEbtF,WA1YY,0BA6YL,SAACjW,GAAiC,IAAxByd,EAAwB,wDACxCrO,EAAO,WAAK,EAAKxT,OAAU,EAAK4W,OAElB,KADhBrE,EAAcqF,EAAYpE,EAAMpP,MACVmO,SACtBsP,EACF,EAAK/K,aAAavE,EAAasP,GAE/B,EAAK/K,aAAavE,GAEpB,EAAKvS,MAAM6W,UAAY,EAAKkI,SAAS,WACjC,EAAK/e,MAAMmc,gBACPiG,EAAQ,EAAK9D,KAAKvF,iBAAiB,mBACnC,IAAMqJ,EAAM,GAAGX,YAzZN,2BA4ZJ,SAAAre,QACT,EAAKif,YACPjf,EAAEkf,kBACFlf,EAAEyZ,kBAEJ,EAAKwF,gBAjaY,yBAmaN,SAAAjf,GAEH,MADJmf,EJ9IkB,SAACnf,EAAGof,EAAetO,GAC3C,OAAI9Q,EAAEvE,OAAO4jB,QAAQ/R,MAAM,2BAA6B8R,EAC/C,GACS,KAAdpf,EAAEsf,QAAuBxO,EAAM,OAAS,WAC1B,KAAd9Q,EAAEsf,QAAuBxO,EAAM,WAAa,OACzC,GIyIKyO,CAAWvf,EAAG,EAAKpD,MAAMwiB,cAAe,EAAKxiB,MAAMkU,OAC/C,EAAK0D,YAAY,CAAEI,QAASuK,OArazB,4BAuaH,SAAAne,GACd,EAAKwT,YAAYxT,MAxaA,gCA0aC,WAMlB1G,OAAOklB,YALgB,SAAAxf,IACrBA,EAAIA,GAAK1F,OAAOmlB,OACVhG,gBAAgBzZ,EAAEyZ,iBACxBzZ,EAAE0f,mBA9aa,+BAkbA,WACjBplB,OAAOklB,YAAc,QAnbJ,yBAqbN,SAAAxf,GACP,EAAKpD,MAAMgT,iBACb,EAAK+P,oBAGG,MADNnM,EJ3JkB,SAACxT,EAAG4f,EAAOC,GAEnC,MADqB,QAArB7f,EAAEvE,OAAO4jB,SAAqBrf,EAAEyZ,kBAC3BmG,IAAWC,IAA0C,IAA7B7f,EAAEL,KAAKS,QAAQ,SAAyB,GAC9D,CACL2N,UAASA,EACTa,YAAa,CACXC,OAAQ7O,EAAE8f,QAAU9f,EAAE8f,QAAQ,GAAGC,MAAQ/f,EAAEggB,QAC3ClR,OAAQ9O,EAAE8f,QAAU9f,EAAE8f,QAAQ,GAAGG,MAAQjgB,EAAEkgB,QAC3CnR,KAAM/O,EAAE8f,QAAU9f,EAAE8f,QAAQ,GAAGC,MAAQ/f,EAAEggB,QACzChR,KAAMhP,EAAE8f,QAAU9f,EAAE8f,QAAQ,GAAGG,MAAQjgB,EAAEkgB,UIkJ/BC,CAAWngB,EAAG,EAAKpD,MAAMgjB,MAAO,EAAKhjB,MAAMijB,aACvC,EAAKvE,SAAS9H,MA1bb,wBA4bP,SAAAxT,IACNwT,EJlJiB,SAACxT,EAAGoQ,GAAS,IAGlC/B,EAmBE+B,EAnBF/B,UACAZ,EAkBE2C,EAlBF3C,UACAyF,EAiBE9C,EAjBF8C,SACAsC,EAgBEpF,EAhBFoF,aACA5F,EAeEQ,EAfFR,gBACAkB,EAcEV,EAdFU,IACAjD,EAaEuC,EAbFvC,aACAuS,EAYEhQ,EAZFgQ,aACApS,EAWEoC,EAXFpC,YACAqS,EAUEjQ,EAVFiQ,OACA3R,EASE0B,EATF1B,OACAC,EAQEyB,EARFzB,QACAL,EAOE8B,EAPF9B,WACAwF,EAME1D,EANF0D,eACA1B,EAKEhC,EALFgC,SACAxD,EAIEwB,EAJFxB,YACA0R,EAGElQ,EAHFkQ,WACAnS,EAEEiC,EAFFjC,WACAC,EACEgC,EADFhC,UAEF,IAAIC,EAAJ,CACA,GAAIZ,EAAW,OAAOzN,EAAEyZ,iBAaxB,GAZIvG,GAAYsC,GAAgB5F,GAAiB5P,EAAEyZ,iBAEjDjG,EAAQ,GACN+M,EAAUnM,EAAahE,GAC3BxB,EAAYG,KAAO/O,EAAE8f,QAAU9f,EAAE8f,QAAQ,GAAGC,MAAQ/f,EAAEggB,QACtDpR,EAAYI,KAAOhP,EAAE8f,QAAU9f,EAAE8f,QAAQ,GAAGG,MAAQjgB,EAAEkgB,QACtDtR,EAAY4R,YAAc9f,KAAKoI,MAC7BpI,KAAK+f,KAAK/f,KAAKggB,IAAI9R,EAAYG,KAAOH,EAAYC,OAAQ,KAExD8R,EAAsBjgB,KAAKoI,MAC7BpI,KAAK+f,KAAK/f,KAAKggB,IAAI9R,EAAYI,KAAOJ,EAAYE,OAAQ,MAEvDc,IAAoBjB,GAAiC,GAAtBgS,EAClC,MAAO,CAAEtS,WAAUA,GAEjBuB,IAAiBhB,EAAY4R,YAAcG,GAC3CC,GACA9P,GAAW,EAAL,IAAWlC,EAAYG,KAAOH,EAAYC,OAAS,GAAK,GA2ClE,OA1CIe,IACFgR,EAAiBhS,EAAYI,KAAOJ,EAAYE,OAAS,GAAK,GAE5D6K,EAAWjZ,KAAKoS,KAAKxE,EAAawF,GAClC+M,EAAiBlR,EAAkBS,EAAKxB,YAAagB,GACrDkR,EAAmBlS,EAAY4R,YAC9BpO,IAEiB,IAAjBvE,GAAyC,UAAnBgT,GACFlH,GAApB9L,EAAe,GAAoC,SAAnBgT,IAC/B3O,EAAU9B,IAA4B,SAAnByQ,KAErBC,EAAmBlS,EAAY4R,YAAcJ,OACzCpS,GAAyBqS,IAC3BA,EAAOQ,GACPrN,EAAK,kBAIN9E,GAAU4R,IACbA,EAAWO,GACXrN,EAAK,WASL/E,EAGEmB,EACU2Q,EAAUO,EAAmBF,EAXtC1N,EAQDqN,EAAUO,GAAoB3S,EAAaC,GAAawS,EAPrD9P,EAGSyP,EAAUO,EAAmBF,EAF7BL,EAAUO,EAAmBF,EAW7CpN,EAAQ,WACHA,GADA,IAEH5E,cACAH,YACAQ,WAAYsF,EAAY,WAAKnE,GAAN,IAAY5H,KAAMiG,OAGzC/N,KAAKwI,IAAI0F,EAAYG,KAAOH,EAAYC,QACU,GAAlDnO,KAAKwI,IAAI0F,EAAYI,KAAOJ,EAAYE,SAIZ,GAA1BF,EAAY4R,cACdhN,EAAK,WACLxT,EAAEyZ,kBAJKjG,GIyDKuN,CAAU/gB,EAAD,IAAC,WACjB,EAAKpD,OACL,EAAK4W,OAFW,IAGnBR,SAAU,EAAKmI,MACftI,QAAS,EAAKqI,KACdtJ,WAAY,EAAK4B,MAAM3F,mBAGrB2F,EAAK,UACP,EAAKyL,cAEP,EAAK3D,SAAS9H,OAxcG,uBA0cR,SAAAxT,GACT,IAAIwT,EJ/DgB,SAACxT,EAAGoQ,GAAS,IAEjCrC,EAaEqC,EAbFrC,SACA6R,EAYExP,EAZFwP,MACAhR,EAWEwB,EAXFxB,YACAR,EAUEgC,EAVFhC,UACA4S,EASE5Q,EATF4Q,eACApR,EAQEQ,EARFR,gBACAzB,EAOEiC,EAPFjC,WACAqH,EAMEpF,EANFoF,aACAnH,EAKE+B,EALF/B,UACA4S,EAIE7Q,EAJF6Q,QACA9R,EAGEiB,EAHFjB,YACAtB,EAEEuC,EAFFvC,aACAuE,EACEhC,EADFgC,SAEF,IAAKrE,EAEH,OADI6R,GAAO5f,EAAEyZ,iBACN,GAELyH,EAAWtR,EACXzB,EAAa6S,EACb5S,EAAY4S,EACZH,EAAiBlR,EAAkBf,EAAagB,GAHpD,IAyBMtB,EAAY6S,EApBd3N,EAAQ,CACVzF,UAASA,EACTC,aAAYA,EACZK,WAAUA,EACVM,SAAQA,EACRD,QAAOA,EACPD,UAAW,KACXG,YAAa,IAEf,GAAIP,EACF,OAAOmF,EAET,IAAK5E,EAAY4R,YACf,OAAOhN,EAET,GAAI5E,EAAY4R,YAAcU,EAAU,CACtClhB,EAAEyZ,iBACEwH,GACFA,EAAQJ,GAGV,IAAIO,EAAchP,EAAWvE,EAAesB,EAC5C,OAAQ0R,GACN,IAAK,OACL,IAAK,KACHM,EAAWC,EAAc7L,EAAcnF,GACvC9B,EAAakH,EAAeR,EAAe5E,EAAM+Q,GAAYA,EAC7D3N,EAAK,iBAAuB,EAC5B,MACF,IAAK,QACL,IAAK,OACH2N,EAAWC,EAAc7L,EAAcnF,GACvC9B,EAAakH,EAAeR,EAAe5E,EAAM+Q,GAAYA,EAC7D3N,EAAK,iBAAuB,EAC5B,MACF,QACElF,EAAa8S,EAEjB5N,EAAK,oBAA0BlF,OAG3BV,EAAcwG,EAAahE,GAC/BoD,EAAK,WAAiBc,EAAmB,WAAKlE,GAAN,IAAY5H,KAAMoF,KAE5D,OAAO4F,EINO6N,CAASrhB,EAAD,IAAC,WAChB,EAAKpD,OACL,EAAK4W,OAFU,IAGlBR,SAAU,EAAKmI,MACftI,QAAS,EAAKqI,KACdtJ,WAAY,EAAK4B,MAAM3F,gBAEpB2F,IACD8N,EAAsB9N,EAAK,2BACxBA,EAAK,oBACZ,EAAK8H,SAAS9H,YACV8N,IACJ,EAAK5N,aAAa4N,GACd,EAAK1kB,MAAMgT,iBACb,EAAK2R,wBAzdU,uBA4dR,SAAAvhB,GACT,EAAKqhB,SAASrhB,GACd,EAAKif,gBA9dY,wBAgeP,WAIV,EAAKhD,eAAe1gB,KAClB2G,YAAW,kBAAM,EAAKsS,YAAY,CAAEI,QAAS,eAAe,OAre7C,wBAweP,WACV,EAAKqH,eAAe1gB,KAClB2G,YAAW,kBAAM,EAAKsS,YAAY,CAAEI,QAAS,WAAW,OA1ezC,wBA6eP,SAACkB,GAA+B,IAAxB2I,EAAwB,wDAE1C,GADA3I,EAAQf,OAAOe,GACX0L,MAAM1L,GAAQ,MAAO,GACzB,EAAKmG,eAAe1gB,KAClB2G,YACE,kBACE,EAAKsS,YACH,CACEI,QAAS,QACTzV,MAAO2W,EACPjI,aAAc,EAAK2F,MAAM3F,cAE3B4Q,KAEJ,OA3fa,mBA+fZ,WACL,IAAIgD,EACJ,GAAI,EAAK7kB,MAAMkU,IACb2Q,EAAY,EAAKjO,MAAM3F,aAAe,EAAKjR,MAAMkX,mBAC5C,CACL,IAAI5B,EAAU,WAAK,EAAKtV,OAAU,EAAK4W,QAGrC,OAAM,EAFNiO,EAAY,EAAKjO,MAAM3F,aAAe,EAAKjR,MAAMkX,eAMrD,EAAKJ,aAAa+N,MA3gBD,uBA8gBR,SAAAC,GACL,EAAK/E,eACPH,cAAc,EAAKG,eAErB,IAAMjP,EAAc,EAAK8F,MAAM9F,YAC/B,GAAiB,WAAbgU,GACF,GACkB,YAAhBhU,GACgB,YAAhBA,GACgB,WAAhBA,EAEA,YAEG,GAAiB,UAAbgU,GACT,GAAoB,WAAhBhU,GAA4C,YAAhBA,EAC9B,YAEG,GAAiB,SAAbgU,IACW,WAAhBhU,GAA4C,YAAhBA,GAC9B,OAGJ,EAAKiP,cAAgBd,YAAY,EAAK8F,KAAM,EAAK/kB,MAAMqgB,cAAgB,IACvE,EAAK3B,SAAS,CAAE5N,YAAa,eAriBZ,oBAuiBX,SAAAkU,GACF,EAAKjF,gBACPH,cAAc,EAAKG,eACnB,EAAKA,cAAgB,MAEvB,IAAMjP,EAAc,EAAK8F,MAAM9F,YACb,WAAdkU,EACF,EAAKtG,SAAS,CAAE5N,YAAa,WACN,YAAdkU,EACW,YAAhBlU,GAA6C,YAAhBA,GAC/B,EAAK4N,SAAS,CAAE5N,YAAa,YAIX,YAAhBA,GACF,EAAK4N,SAAS,CAAE5N,YAAa,eAtjBhB,yBA0jBN,kBAAM,EAAK9Q,MAAM6W,UAAY,EAAKyJ,MAAM,cA1jBlC,0BA2jBL,kBACZ,EAAKtgB,MAAM6W,UACgB,YAA3B,EAAKD,MAAM9F,aACX,EAAKiO,SAAS,YA9jBG,0BA+jBL,kBAAM,EAAK/e,MAAM6W,UAAY,EAAKyJ,MAAM,cA/jBnC,2BAgkBJ,kBACb,EAAKtgB,MAAM6W,UACgB,YAA3B,EAAKD,MAAM9F,aACX,EAAKiO,SAAS,YAnkBG,2BAokBJ,kBAAM,EAAK/e,MAAM6W,UAAY,EAAKyJ,MAAM,cApkBpC,0BAqkBL,kBACZ,EAAKtgB,MAAM6W,UACgB,YAA3B,EAAKD,MAAM9F,aACX,EAAKiO,SAAS,WAxkBG,qBA0kBV,WACP,IAiEE/B,EAGEe,EAAWK,EApEXxC,EAAYG,IAAW,eAAgB,EAAK/b,MAAM4b,UAAW,CAC/D,iBAAkB,EAAK5b,MAAMsW,SAC7B,qBAAoB,IAElB9C,EAAO,WAAK,EAAKxT,OAAU,EAAK4W,OAChCqO,EAAaxP,EAAcjC,EAAM,CACnC,OACA,UACA,QACA,WACA,aACA,gBACA,eACA,WACA,iBACA,MACA,aACA,cACA,aACA,WACA,eACA,iBACA,aACA,aACA,gBACA,UACA,gBACA,cACA,WAEM0R,EAAiB,EAAKllB,MAAtBklB,aACRD,EAAa,WACRA,GADK,IAER1I,aAAc2I,EAAe,EAAKC,YAAc,KAChD1I,aAAcyI,EAAe,EAAKE,aAAe,KACjD5I,YAAa0I,EAAe,EAAKC,YAAc,KAC/ChJ,cACE,EAAKnc,MAAMmc,eAAiB,EAAKkG,UAAY,EAAKgD,cAAgB,YAKpE,EAAKrlB,MAAMgd,MACX,EAAKpG,MAAMlF,YAAc,EAAK1R,MAAMsU,eAEhCgR,EAAW7P,EAAcjC,EAAM,CACjC,YACA,aACA,eACA,eACA,iBACA,eACA,WACA,eACA,WACA,eAEM+R,EAAqB,EAAKvlB,MAA1BulB,iBACRD,EAAW,WACNA,GADG,IAENxI,aAAc,EAAKlF,YACnB2E,aAAcgJ,EAAmB,EAAKC,YAAc,KACpDhJ,YAAa+I,EAAmB,EAAKE,WAAa,KAClDhJ,aAAc8I,EAAmB,EAAKC,YAAc,OAEtDxI,EAAO,kBAAC,EAASsI,IAInB,IAAII,EAAajQ,EAAcjC,EAAM,CACnC,WACA,aACA,eACA,aACA,eACA,YACA,cA4DF,OA1DAkS,EAAW5I,aAAe,EAAKlF,YAE3B,EAAK5X,MAAM2lB,SACb5H,EAAY,kBAAC,EAAc2H,GAC3BtH,EAAY,kBAAC,EAAcsH,IAGzBE,EAAsB,KAEtB,EAAK5lB,MAAMsW,WACbsP,EAAsB,CACpBva,OAAQ,EAAKuL,MAAMrF,aAInBsU,EAAqB,MAAK,IAE1B,EAAK7lB,MAAMsW,cACT,EAAKtW,MAAMoU,aACbyR,EAAqB,CACnBC,QAAS,OAAS,EAAK9lB,MAAMmV,qBAI7B,EAAKnV,MAAMoU,aACbyR,EAAqB,CACnBC,QAAS,EAAK9lB,MAAMmV,cAAgB,SAKpC4Q,EAAY,WAAKH,GAAwBC,GACzCG,EAAY,EAAKhmB,MAAMgmB,UACzBC,EAAY,CACdrK,UAAW,aACXhC,MAAOmM,EACP7J,QAAS,EAAKY,aACdoJ,YAAaF,EAAY,EAAKzC,WAAa,KAC3C4C,YAAa,EAAKvP,MAAMzF,UAAY6U,EAAY,EAAK7B,UAAY,KACjEiC,UAAWJ,EAAY,EAAKvB,SAAW,KACvChI,aAAc,EAAK7F,MAAMzF,UAAY6U,EAAY,EAAKvB,SAAW,KACjE4B,aAAcL,EAAY,EAAKzC,WAAa,KAC5C+C,YAAa,EAAK1P,MAAMzF,UAAY6U,EAAY,EAAK7B,UAAY,KACjEoC,WAAYP,EAAY,EAAKQ,SAAW,KACxCC,cAAe,EAAK7P,MAAMzF,UAAY6U,EAAY,EAAKvB,SAAW,KAClEiC,UAAW,EAAK1mB,MAAMwiB,cAAgB,EAAKG,WAAa,MAGtDgE,EAAmB,CACrB/K,UAAWA,EACX2G,IAAK,MACL3I,MAAO,EAAK5Z,MAAM4Z,OAGhB,EAAK5Z,MAAMua,UACb0L,EAAY,CAAErK,UAAW,cACzB+K,EAAmB,CAAE/K,cAGrB,wBAAS+K,EACL,EAAK3mB,MAAMua,QAAsB,GAAZwD,EACvB,6BAAK5C,IAAK,EAAKyL,gBAAoBX,GACjC,kBAAC,EAAD,KAAO9K,IAAK,EAAK0L,iBAAqB5B,GACnC,EAAKjlB,MAAM+V,WAGd,EAAK/V,MAAMua,QAAsB,GAAZ6D,EACrB,EAAKpe,MAAMua,QAAiB,GAAPyC,MA1tB3B,EAAKsB,KAAO,KACZ,EAAKC,MAAQ,KACb,EAAK3H,MAAL,WACKhG,GADL,IAEEK,aAAc,EAAKjR,MAAMyW,aACzB/E,WAAYkE,IAAMC,SAASC,MAAM,EAAK9V,MAAM+V,YAE9C,EAAKsJ,eAAiB,GACtB,EAAKgD,aACL,EAAK9B,gBAAkB,KACjBuG,EAAW,EAAKC,UACtB,EAAKnQ,MAAL,WAAkB,EAAKA,OAAUkQ,GAbhB,EADrB,mDAgGiB9G,GAEb,IADA,IAAIG,KACJ,MAAgB9hB,OAAOD,KAAK8C,KAAKlB,OAAjC,eAAyC,CAApC,IAAIb,EAAG,KAEV,IAAK6gB,EAAU1e,eAAenC,GAAM,CAClCghB,KACA,MAEF,GAC4B,WAA1B,IAAOH,EAAU7gB,KACS,mBAAnB6gB,EAAU7gB,IAIf6gB,EAAU7gB,KAAS+B,KAAKlB,MAAMb,GAAM,CACtCghB,KACA,OAGJ,OACEA,GACAvK,IAAMC,SAASC,MAAM5U,KAAKlB,MAAM+V,YAC9BH,IAAMC,SAASC,MAAMkK,EAAUjK,cAtHvC,GAAiCH,IAAMoR,W,mBC0BxBC,GArDI,CACjBzE,eAAcA,EACdhE,gBAAeA,EACfwD,YAAa,KACbzE,WAAY,SAAAP,GAAI,OAAI,wBAAIpD,MAAO,CAAEiE,QAAS,UAAYb,IACtD2I,QAAOA,EACP9O,UAASA,EACTwJ,cAAe,IACf0B,aAAc,KACd3N,YAAWA,EACXe,cAAe,OACfyG,UAAW,GACXtB,QAAS,OACTgD,aAAc,SAAAxe,GAAC,OAAI,gCAASA,EAAI,IAChCke,MAAKA,EACLQ,UAAW,aACXyF,WAAUA,EACViE,OAAQ,SACR1D,aAAc,IACdxM,MAAKA,EACLmF,eAAcA,EACd3G,UAASA,EACTiB,aAAc,EACdQ,SAAU,KACVmH,UAAW,KACXqF,OAAQ,KACRhF,OAAQ,KACRmD,gBAAiB,KACjB1B,SAAU,KACVqF,kBAAiBA,EACjBhG,cAAaA,EACb2F,cAAaA,EACbnH,UAAW,KACXoJ,WAAY,KACZC,KAAM,EACNlT,KAAIA,EACJgF,MAAO,MACPmO,aAAc,EACdnQ,eAAgB,EAChB5C,aAAc,EACd+F,MAAO,IACP2I,OAAMA,EACNU,WAAY,KACZ9K,cAAaA,EACboN,WAAUA,EACV5B,eAAgB,EAChBjN,QAAOA,EACP6C,cAAaA,EACbQ,eAAcA,EACdlE,UAASA,EACTS,gBAAeA,GC5CIuQ,E,kCACnB,WAAYtnB,GAAO,yBACjB,cAAMA,GADW,oCAQK,SAAAmb,GAAG,OAAK,EAAK+G,YAAc/G,KARhC,wBAwEP,kBAAM,EAAK+G,YAAYqF,eAxEhB,wBA0EP,kBAAM,EAAKrF,YAAYsF,eA1EhB,wBA4EP,SAACtO,GAAD,IAAQ2I,EAAR,+DACV,EAAKK,YAAYuF,UAAUvO,EAAO2I,MA7EjB,yBA+EN,kBAAM,EAAKK,YAAY5B,MAAM,aA/EvB,wBAiFP,kBAAM,EAAK4B,YAAYnD,SAAS,WA/E1C,EAAKnI,MAAQ,CACX0B,WAAY,MAEd,EAAKoP,yBAA2B,GALf,E,0CAUbhlB,EAAO2e,GAGM,SAAXsG,EAAY,GAAgB,EAAdC,SAEhBvG,IAHJ,IAAMwG,EAAMnqB,OAAOoqB,WAAWplB,GAM9BmlB,EAAIE,YAAYJ,GAChBA,EAASE,GACT3mB,KAAKwmB,yBAAyB/oB,KAAK,CAAEkpB,MAAKnlB,QAAOilB,e,0CAI/B,IAOZK,EA0BAtlB,EAjCY,OAMdxB,KAAKlB,MAAMmnB,cACTa,EAAc9mB,KAAKlB,MAAMmnB,WAAWlZ,KACtC,SAAAga,GAAO,OAAIA,EAAQ3P,eAGT4P,MAAK,SAAC1b,EAAGC,GAAJ,OAAUD,EAAIC,KAE/Bub,EAAY9oB,SAAQ,SAACoZ,EAAY/V,GAI7B4lB,EADY,IAAV5lB,EACO6lB,IAAQ,CAAEC,SAAU,EAAGC,SAAUhQ,IAEjC8P,IAAQ,CACfC,SAAUL,EAAYzlB,EAAQ,GAAK,EACnC+lB,SAAUhQ,IAId1E,KACE,EAAK2U,MAAMJ,GAAQ,WACjB,EAAKzJ,SAAS,CAAEpG,WAAYA,UAM9B5V,EAAQ0lB,IAAQ,CAAEC,SAAUL,EAAYnY,OAAO,GAAG,KAEtD+D,KACE1S,KAAKqnB,MAAM7lB,GAAO,WAChB,EAAKgc,SAAS,CAAEpG,WAAY,a,6CAMlCpX,KAAKwmB,yBAAyBxoB,SAAQ,SAASI,GAC7CA,EAAIuoB,IAAIW,eAAelpB,EAAIqoB,e,+BAetB,WAOLc,EAJEvnB,KAAK0V,MAAM0B,WAKc,aAJ3BoQ,EAAWxnB,KAAKlB,MAAMmnB,WAAW5oB,QAC/B,SAAAoqB,GAAI,OAAIA,EAAKrQ,aAAe8C,EAAKxE,MAAM0B,eAG9B,GAAGmQ,SACR,UADJ,eAESxB,IAAiB/lB,KAAKlB,OAAU0oB,EAAS,GAAGD,UAE5C,WAAKxB,IAAiB/lB,KAAKlB,OAIpCyoB,EAASrU,aAETqU,EAASvR,eAOXuR,EAASvR,eAAiB,GAGxBuR,EAASzR,OACPyR,EAASnU,aAMXmU,EAASvR,eAOXuR,EAASnU,aAAe,EACxBmU,EAASvR,eAAiB,GAI5B,IAIAnB,GAJIA,EAAWH,IAAMC,SAAS+S,QAAQ1nB,KAAKlB,MAAM+V,WAI7BxX,QAAO,SAAAiW,GACzB,MAAqB,iBAAVA,IACAA,EAAMqU,SAERrU,KAKTiU,EAASjO,gBACQ,EAAhBiO,EAASrB,MAAoC,EAAxBqB,EAASpB,gBAE/B3T,QAAQoV,KAAR,0EAGAL,EAASjO,kBAIX,IAFA,IAAIuO,EAAc,GACd/H,EAAe,KAEbliB,EAAI,EACRA,EAAIiX,EAAS/W,OACbF,GAAK2pB,EAASrB,KAAOqB,EAASpB,aAC9B,CAEA,IADA,IAAI9C,EAAW,GAETyE,EAAIlqB,EACRkqB,EAAIlqB,EAAI2pB,EAASrB,KAAOqB,EAASpB,aACjC2B,GAAKP,EAASpB,aACd,CAEA,IADA,IAAI4B,EAAM,GACDC,EAAIF,EAAGE,EAAIF,EAAIP,EAASpB,eAC3BoB,EAASjO,eAAiBzE,EAASmT,GAAGlpB,MAAM4Z,QAC9CoH,EAAejL,EAASmT,GAAGlpB,MAAM4Z,MAAMxO,SAErC8d,GAAKnT,EAAS/W,SAJ2BkqB,GAAK,EAKlDD,EAAItqB,KACFiX,IAAMkG,aAAa/F,EAASmT,GAAI,CAC9B/pB,IAAK,IAAML,EAAI,GAAKkqB,EAAIE,EACxBlN,UAAW,EACXpC,MAAO,CACLxO,MAAO,GAAF,OAAK,IAAMqd,EAASpB,aAApB,KACLxJ,QAAS,mBAKjB0G,EAAS5lB,KAAK,yBAAKQ,IAAK,GAAKL,EAAIkqB,GAAIC,IAEnCR,EAASjO,cACXuO,EAAYpqB,KACV,yBAAKQ,IAAKL,EAAG8a,MAAO,CAAExO,MAAO4V,IAC1BuD,IAILwE,EAAYpqB,KAAK,yBAAKQ,IAAKL,GAAIylB,IAInC,GAAiB,YAAbkE,EAMJ,OAHWM,EAAY/pB,QAAUypB,EAASnU,eACxCmU,EAASlO,YAGT,kBAAC,EAAD,KACEX,MAAO1Y,KAAKlB,MAAM4Z,MAClBuB,IAAKja,KAAKioB,uBACNV,GAEHM,GAXH,IAAMnN,EAAY,mBAAqB1a,KAAKlB,MAAM4b,WAAa,IAC/D,OAAO,yBAAKA,UAAWA,GAAY7F,O,GArMLH,IAAMoR,WCN3BM,c1C8BbzpB,EAAoBurB,EAAIxrB,EAGxBC,EAAoBwrB,EAAI,SAAShsB,EAASisB,EAAMC,GAC3C1rB,EAAoB4Q,EAAEpR,EAASisB,IAClCjrB,OAAON,eAAeV,EAASisB,EAAM,CAAE5qB,YAAWA,EAAOsH,IAAKujB,KAKhE1rB,EAAoBsV,EAAI,SAAS9V,GACX,oBAAXwF,QAA0BA,OAAOsN,aAC1C9R,OAAON,eAAeV,EAASwF,OAAOsN,YAAa,CAAE5Q,MAAO,WAE7DlB,OAAON,eAAeV,EAAS,aAAc,CAAEkC,OAAMA,KAQtD1B,EAAoBud,EAAI,SAAS7b,EAAOiqB,GAEvC,GADU,EAAPA,IAAUjqB,EAAQ1B,EAAoB0B,IAC/B,EAAPiqB,EAAU,OAAOjqB,EACpB,GAAW,EAAPiqB,GAA8B,iBAAVjqB,GAAsBA,GAASA,EAAMkqB,WAAY,OAAOlqB,EAChF,IAAImqB,EAAKrrB,OAAOmC,OAAO,MAGvB,GAFA3C,EAAoBsV,EAAEuW,GACtBrrB,OAAON,eAAe2rB,EAAI,UAAW,CAAEhrB,YAAWA,EAAOa,MAAOA,IACtD,EAAPiqB,GAA4B,iBAATjqB,EAAmB,IAAI,IAAIJ,KAAOI,EAAO1B,EAAoBwrB,EAAEK,EAAIvqB,EAAK,SAASA,GAAO,OAAOI,EAAMJ,IAAQmI,KAAK,KAAMnI,IAC9I,OAAOuqB,GAIR7rB,EAAoB6a,EAAI,SAASpb,GAChC,IAAIisB,EAASjsB,GAAUA,EAAOmsB,WAC7B,WAAwB,OAAOnsB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAO,EAAoBwrB,EAAEE,EAAQ,IAAKA,GAC5BA,GAIR1rB,EAAoB4Q,EAAI,SAASxQ,EAAQ0rB,GAAY,OAAOtrB,OAAO+B,UAAUkB,eAAeQ,KAAK7D,EAAQ0rB,IAGzG9rB,EAAoB6Q,EAAI,GAIjB7Q,EAAoBA,EAAoB+rB,EAAI,IA9EnD,SAAS/rB,EAAoBgsB,GAG5B,GAAGjsB,EAAiBisB,GACnB,OAAOjsB,EAAiBisB,GAAUxsB,QAGnC,IAAIC,EAASM,EAAiBisB,GAAY,CACzC/qB,EAAG+qB,EACHC,GAAEA,EACFzsB,QAAS,IAUV,OANA0sB,EAAQF,GAAU/nB,KAAKxE,EAAOD,QAASC,EAAQA,EAAOD,QAASQ,GAG/DP,EAAOwsB,KAGAxsB,EAAOD,Q,MAvBXO","file":"react-slick.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Slider\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"Slider\"] = factory(root[\"React\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__1__) {\nreturn "," \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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 33);\n","var defineProperty = require(\"./defineProperty\");\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    if (enumerableOnly) symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    });\n    keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nfunction _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n\n    if (i % 2) {\n      ownKeys(Object(source), true).forEach(function (key) {\n        defineProperty(target, key, source[key]);\n      });\n    } else if (Object.getOwnPropertyDescriptors) {\n      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n    } else {\n      ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n  }\n\n  return target;\n}\n\nmodule.exports = _objectSpread2;","module.exports = __WEBPACK_EXTERNAL_MODULE__1__;","function _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nmodule.exports = _defineProperty;","function _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\nmodule.exports = _assertThisInitialized;","function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nmodule.exports = _createClass;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct\");\n\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn\");\n\nfunction _createSuper(Derived) {\n  var hasNativeReflectConstruct = isNativeReflectConstruct();\n  return function _createSuperInternal() {\n    var Super = getPrototypeOf(Derived),\n        result;\n\n    if (hasNativeReflectConstruct) {\n      var NewTarget = getPrototypeOf(this).constructor;\n      result = Reflect.construct(Super, arguments, NewTarget);\n    } else {\n      result = Super.apply(this, arguments);\n    }\n\n    return possibleConstructorReturn(this, result);\n  };\n}\n\nmodule.exports = _createSuper;","/*!\n  Copyright (c) 2017 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","function _extends() {\n  module.exports = _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n  var re = /[height|width]$/;\n  return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n  var mq = '';\n  var features = Object.keys(obj);\n  features.forEach(function (feature, index) {\n    var value = obj[feature];\n    feature = camel2hyphen(feature);\n    // Add px to dimension features\n    if (isDimension(feature) && typeof value === 'number') {\n      value = value + 'px';\n    }\n    if (value === true) {\n      mq += feature;\n    } else if (value === false) {\n      mq += 'not ' + feature;\n    } else {\n      mq += '(' + feature + ': ' + value + ')';\n    }\n    if (index < features.length-1) {\n      mq += ' and '\n    }\n  });\n  return mq;\n};\n\nvar json2mq = function (query) {\n  var mq = '';\n  if (typeof query === 'string') {\n    return query;\n  }\n  // Handling array of media queries\n  if (query instanceof Array) {\n    query.forEach(function (q, index) {\n      mq += obj2mq(q);\n      if (index < query.length-1) {\n        mq += ', '\n      }\n    });\n    return mq;\n  }\n  // Handling single media query\n  return obj2mq(query);\n};\n\nmodule.exports = json2mq;","function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    module.exports = _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    module.exports = _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\nmodule.exports = _typeof;","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = objectWithoutPropertiesLoose(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\nmodule.exports = _objectWithoutProperties;","var isObject = require('./isObject'),\n    now = require('./now'),\n    toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  wait = toNumber(wait) || 0;\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        clearTimeout(timerId);\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\nmodule.exports = debounce;\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n    if (typeof Map !== 'undefined') {\r\n        return Map;\r\n    }\r\n    /**\r\n     * Returns index in provided array that matches the specified key.\r\n     *\r\n     * @param {Array<Array>} arr\r\n     * @param {*} key\r\n     * @returns {number}\r\n     */\r\n    function getIndex(arr, key) {\r\n        var result = -1;\r\n        arr.some(function (entry, index) {\r\n            if (entry[0] === key) {\r\n                result = index;\r\n                return true;\r\n            }\r\n            return false;\r\n        });\r\n        return result;\r\n    }\r\n    return /** @class */ (function () {\r\n        function class_1() {\r\n            this.__entries__ = [];\r\n        }\r\n        Object.defineProperty(class_1.prototype, \"size\", {\r\n            /**\r\n             * @returns {boolean}\r\n             */\r\n            get: function () {\r\n                return this.__entries__.length;\r\n            },\r\n            enumerable: true,\r\n            configurable: true\r\n        });\r\n        /**\r\n         * @param {*} key\r\n         * @returns {*}\r\n         */\r\n        class_1.prototype.get = function (key) {\r\n            var index = getIndex(this.__entries__, key);\r\n            var entry = this.__entries__[index];\r\n            return entry && entry[1];\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @param {*} value\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.set = function (key, value) {\r\n            var index = getIndex(this.__entries__, key);\r\n            if (~index) {\r\n                this.__entries__[index][1] = value;\r\n            }\r\n            else {\r\n                this.__entries__.push([key, value]);\r\n            }\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.delete = function (key) {\r\n            var entries = this.__entries__;\r\n            var index = getIndex(entries, key);\r\n            if (~index) {\r\n                entries.splice(index, 1);\r\n            }\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.has = function (key) {\r\n            return !!~getIndex(this.__entries__, key);\r\n        };\r\n        /**\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.clear = function () {\r\n            this.__entries__.splice(0);\r\n        };\r\n        /**\r\n         * @param {Function} callback\r\n         * @param {*} [ctx=null]\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.forEach = function (callback, ctx) {\r\n            if (ctx === void 0) { ctx = null; }\r\n            for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n                var entry = _a[_i];\r\n                callback.call(ctx, entry[1], entry[0]);\r\n            }\r\n        };\r\n        return class_1;\r\n    }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n    if (typeof global !== 'undefined' && global.Math === Math) {\r\n        return global;\r\n    }\r\n    if (typeof self !== 'undefined' && self.Math === Math) {\r\n        return self;\r\n    }\r\n    if (typeof window !== 'undefined' && window.Math === Math) {\r\n        return window;\r\n    }\r\n    // eslint-disable-next-line no-new-func\r\n    return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n    if (typeof requestAnimationFrame === 'function') {\r\n        // It's required to use a bounded function because IE sometimes throws\r\n        // an \"Invalid calling object\" error if rAF is invoked without the global\r\n        // object on the left hand side.\r\n        return requestAnimationFrame.bind(global$1);\r\n    }\r\n    return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n    var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n    /**\r\n     * Invokes the original callback function and schedules new invocation if\r\n     * the \"proxy\" was called during current request.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function resolvePending() {\r\n        if (leadingCall) {\r\n            leadingCall = false;\r\n            callback();\r\n        }\r\n        if (trailingCall) {\r\n            proxy();\r\n        }\r\n    }\r\n    /**\r\n     * Callback invoked after the specified delay. It will further postpone\r\n     * invocation of the original function delegating it to the\r\n     * requestAnimationFrame.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function timeoutCallback() {\r\n        requestAnimationFrame$1(resolvePending);\r\n    }\r\n    /**\r\n     * Schedules invocation of the original function.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function proxy() {\r\n        var timeStamp = Date.now();\r\n        if (leadingCall) {\r\n            // Reject immediately following calls.\r\n            if (timeStamp - lastCallTime < trailingTimeout) {\r\n                return;\r\n            }\r\n            // Schedule new call to be in invoked when the pending one is resolved.\r\n            // This is important for \"transitions\" which never actually start\r\n            // immediately so there is a chance that we might miss one if change\r\n            // happens amids the pending invocation.\r\n            trailingCall = true;\r\n        }\r\n        else {\r\n            leadingCall = true;\r\n            trailingCall = false;\r\n            setTimeout(timeoutCallback, delay);\r\n        }\r\n        lastCallTime = timeStamp;\r\n    }\r\n    return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserverController.\r\n     *\r\n     * @private\r\n     */\r\n    function ResizeObserverController() {\r\n        /**\r\n         * Indicates whether DOM listeners have been added.\r\n         *\r\n         * @private {boolean}\r\n         */\r\n        this.connected_ = false;\r\n        /**\r\n         * Tells that controller has subscribed for Mutation Events.\r\n         *\r\n         * @private {boolean}\r\n         */\r\n        this.mutationEventsAdded_ = false;\r\n        /**\r\n         * Keeps reference to the instance of MutationObserver.\r\n         *\r\n         * @private {MutationObserver}\r\n         */\r\n        this.mutationsObserver_ = null;\r\n        /**\r\n         * A list of connected observers.\r\n         *\r\n         * @private {Array<ResizeObserverSPI>}\r\n         */\r\n        this.observers_ = [];\r\n        this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n        this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n    }\r\n    /**\r\n     * Adds observer to observers list.\r\n     *\r\n     * @param {ResizeObserverSPI} observer - Observer to be added.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.addObserver = function (observer) {\r\n        if (!~this.observers_.indexOf(observer)) {\r\n            this.observers_.push(observer);\r\n        }\r\n        // Add listeners if they haven't been added yet.\r\n        if (!this.connected_) {\r\n            this.connect_();\r\n        }\r\n    };\r\n    /**\r\n     * Removes observer from observers list.\r\n     *\r\n     * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.removeObserver = function (observer) {\r\n        var observers = this.observers_;\r\n        var index = observers.indexOf(observer);\r\n        // Remove observer if it's present in registry.\r\n        if (~index) {\r\n            observers.splice(index, 1);\r\n        }\r\n        // Remove listeners if controller has no connected observers.\r\n        if (!observers.length && this.connected_) {\r\n            this.disconnect_();\r\n        }\r\n    };\r\n    /**\r\n     * Invokes the update of observers. It will continue running updates insofar\r\n     * it detects changes.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.refresh = function () {\r\n        var changesDetected = this.updateObservers_();\r\n        // Continue running updates if changes have been detected as there might\r\n        // be future ones caused by CSS transitions.\r\n        if (changesDetected) {\r\n            this.refresh();\r\n        }\r\n    };\r\n    /**\r\n     * Updates every observer from observers list and notifies them of queued\r\n     * entries.\r\n     *\r\n     * @private\r\n     * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n     *      dimensions of it's elements.\r\n     */\r\n    ResizeObserverController.prototype.updateObservers_ = function () {\r\n        // Collect observers that have active observations.\r\n        var activeObservers = this.observers_.filter(function (observer) {\r\n            return observer.gatherActive(), observer.hasActive();\r\n        });\r\n        // Deliver notifications in a separate cycle in order to avoid any\r\n        // collisions between observers, e.g. when multiple instances of\r\n        // ResizeObserver are tracking the same element and the callback of one\r\n        // of them changes content dimensions of the observed target. Sometimes\r\n        // this may result in notifications being blocked for the rest of observers.\r\n        activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n        return activeObservers.length > 0;\r\n    };\r\n    /**\r\n     * Initializes DOM listeners.\r\n     *\r\n     * @private\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.connect_ = function () {\r\n        // Do nothing if running in a non-browser environment or if listeners\r\n        // have been already added.\r\n        if (!isBrowser || this.connected_) {\r\n            return;\r\n        }\r\n        // Subscription to the \"Transitionend\" event is used as a workaround for\r\n        // delayed transitions. This way it's possible to capture at least the\r\n        // final state of an element.\r\n        document.addEventListener('transitionend', this.onTransitionEnd_);\r\n        window.addEventListener('resize', this.refresh);\r\n        if (mutationObserverSupported) {\r\n            this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n            this.mutationsObserver_.observe(document, {\r\n                attributes: true,\r\n                childList: true,\r\n                characterData: true,\r\n                subtree: true\r\n            });\r\n        }\r\n        else {\r\n            document.addEventListener('DOMSubtreeModified', this.refresh);\r\n            this.mutationEventsAdded_ = true;\r\n        }\r\n        this.connected_ = true;\r\n    };\r\n    /**\r\n     * Removes DOM listeners.\r\n     *\r\n     * @private\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.disconnect_ = function () {\r\n        // Do nothing if running in a non-browser environment or if listeners\r\n        // have been already removed.\r\n        if (!isBrowser || !this.connected_) {\r\n            return;\r\n        }\r\n        document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n        window.removeEventListener('resize', this.refresh);\r\n        if (this.mutationsObserver_) {\r\n            this.mutationsObserver_.disconnect();\r\n        }\r\n        if (this.mutationEventsAdded_) {\r\n            document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n        }\r\n        this.mutationsObserver_ = null;\r\n        this.mutationEventsAdded_ = false;\r\n        this.connected_ = false;\r\n    };\r\n    /**\r\n     * \"Transitionend\" event handler.\r\n     *\r\n     * @private\r\n     * @param {TransitionEvent} event\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n        var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n        // Detect whether transition may affect dimensions of an element.\r\n        var isReflowProperty = transitionKeys.some(function (key) {\r\n            return !!~propertyName.indexOf(key);\r\n        });\r\n        if (isReflowProperty) {\r\n            this.refresh();\r\n        }\r\n    };\r\n    /**\r\n     * Returns instance of the ResizeObserverController.\r\n     *\r\n     * @returns {ResizeObserverController}\r\n     */\r\n    ResizeObserverController.getInstance = function () {\r\n        if (!this.instance_) {\r\n            this.instance_ = new ResizeObserverController();\r\n        }\r\n        return this.instance_;\r\n    };\r\n    /**\r\n     * Holds reference to the controller's instance.\r\n     *\r\n     * @private {ResizeObserverController}\r\n     */\r\n    ResizeObserverController.instance_ = null;\r\n    return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n    for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n        var key = _a[_i];\r\n        Object.defineProperty(target, key, {\r\n            value: props[key],\r\n            enumerable: false,\r\n            writable: false,\r\n            configurable: true\r\n        });\r\n    }\r\n    return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n    // Assume that the element is an instance of Node, which means that it\r\n    // has the \"ownerDocument\" property from which we can retrieve a\r\n    // corresponding global object.\r\n    var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n    // Return the local global object if it's not possible extract one from\r\n    // provided element.\r\n    return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n    return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n    var positions = [];\r\n    for (var _i = 1; _i < arguments.length; _i++) {\r\n        positions[_i - 1] = arguments[_i];\r\n    }\r\n    return positions.reduce(function (size, position) {\r\n        var value = styles['border-' + position + '-width'];\r\n        return size + toFloat(value);\r\n    }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n    var positions = ['top', 'right', 'bottom', 'left'];\r\n    var paddings = {};\r\n    for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n        var position = positions_1[_i];\r\n        var value = styles['padding-' + position];\r\n        paddings[position] = toFloat(value);\r\n    }\r\n    return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n *      to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n    var bbox = target.getBBox();\r\n    return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n    // Client width & height properties can't be\r\n    // used exclusively as they provide rounded values.\r\n    var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n    // By this condition we can catch all non-replaced inline, hidden and\r\n    // detached elements. Though elements with width & height properties less\r\n    // than 0.5 will be discarded as well.\r\n    //\r\n    // Without it we would need to implement separate methods for each of\r\n    // those cases and it's not possible to perform a precise and performance\r\n    // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n    // gives wrong results for elements with width & height less than 0.5.\r\n    if (!clientWidth && !clientHeight) {\r\n        return emptyRect;\r\n    }\r\n    var styles = getWindowOf(target).getComputedStyle(target);\r\n    var paddings = getPaddings(styles);\r\n    var horizPad = paddings.left + paddings.right;\r\n    var vertPad = paddings.top + paddings.bottom;\r\n    // Computed styles of width & height are being used because they are the\r\n    // only dimensions available to JS that contain non-rounded values. It could\r\n    // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n    // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n    var width = toFloat(styles.width), height = toFloat(styles.height);\r\n    // Width & height include paddings and borders when the 'border-box' box\r\n    // model is applied (except for IE).\r\n    if (styles.boxSizing === 'border-box') {\r\n        // Following conditions are required to handle Internet Explorer which\r\n        // doesn't include paddings and borders to computed CSS dimensions.\r\n        //\r\n        // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n        // properties then it's either IE, and thus we don't need to subtract\r\n        // anything, or an element merely doesn't have paddings/borders styles.\r\n        if (Math.round(width + horizPad) !== clientWidth) {\r\n            width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n        }\r\n        if (Math.round(height + vertPad) !== clientHeight) {\r\n            height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n        }\r\n    }\r\n    // Following steps can't be applied to the document's root element as its\r\n    // client[Width/Height] properties represent viewport area of the window.\r\n    // Besides, it's as well not necessary as the <html> itself neither has\r\n    // rendered scroll bars nor it can be clipped.\r\n    if (!isDocumentElement(target)) {\r\n        // In some browsers (only in Firefox, actually) CSS width & height\r\n        // include scroll bars size which can be removed at this step as scroll\r\n        // bars are the only difference between rounded dimensions + paddings\r\n        // and \"client\" properties, though that is not always true in Chrome.\r\n        var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n        var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n        // Chrome has a rather weird rounding of \"client\" properties.\r\n        // E.g. for an element with content width of 314.2px it sometimes gives\r\n        // the client width of 315px and for the width of 314.7px it may give\r\n        // 314px. And it doesn't happen all the time. So just ignore this delta\r\n        // as a non-relevant.\r\n        if (Math.abs(vertScrollbar) !== 1) {\r\n            width -= vertScrollbar;\r\n        }\r\n        if (Math.abs(horizScrollbar) !== 1) {\r\n            height -= horizScrollbar;\r\n        }\r\n    }\r\n    return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n    // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n    // interface.\r\n    if (typeof SVGGraphicsElement !== 'undefined') {\r\n        return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n    }\r\n    // If it's so, then check that element is at least an instance of the\r\n    // SVGElement and that it has the \"getBBox\" method.\r\n    // eslint-disable-next-line no-extra-parens\r\n    return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n        typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n    return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n    if (!isBrowser) {\r\n        return emptyRect;\r\n    }\r\n    if (isSVGGraphicsElement(target)) {\r\n        return getSVGContentRect(target);\r\n    }\r\n    return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n    var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n    // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n    var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n    var rect = Object.create(Constr.prototype);\r\n    // Rectangle's properties are not writable and non-enumerable.\r\n    defineConfigurable(rect, {\r\n        x: x, y: y, width: width, height: height,\r\n        top: y,\r\n        right: x + width,\r\n        bottom: height + y,\r\n        left: x\r\n    });\r\n    return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n    return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n    /**\r\n     * Creates an instance of ResizeObservation.\r\n     *\r\n     * @param {Element} target - Element to be observed.\r\n     */\r\n    function ResizeObservation(target) {\r\n        /**\r\n         * Broadcasted width of content rectangle.\r\n         *\r\n         * @type {number}\r\n         */\r\n        this.broadcastWidth = 0;\r\n        /**\r\n         * Broadcasted height of content rectangle.\r\n         *\r\n         * @type {number}\r\n         */\r\n        this.broadcastHeight = 0;\r\n        /**\r\n         * Reference to the last observed content rectangle.\r\n         *\r\n         * @private {DOMRectInit}\r\n         */\r\n        this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n        this.target = target;\r\n    }\r\n    /**\r\n     * Updates content rectangle and tells whether it's width or height properties\r\n     * have changed since the last broadcast.\r\n     *\r\n     * @returns {boolean}\r\n     */\r\n    ResizeObservation.prototype.isActive = function () {\r\n        var rect = getContentRect(this.target);\r\n        this.contentRect_ = rect;\r\n        return (rect.width !== this.broadcastWidth ||\r\n            rect.height !== this.broadcastHeight);\r\n    };\r\n    /**\r\n     * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n     * from the corresponding properties of the last observed content rectangle.\r\n     *\r\n     * @returns {DOMRectInit} Last observed content rectangle.\r\n     */\r\n    ResizeObservation.prototype.broadcastRect = function () {\r\n        var rect = this.contentRect_;\r\n        this.broadcastWidth = rect.width;\r\n        this.broadcastHeight = rect.height;\r\n        return rect;\r\n    };\r\n    return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n    /**\r\n     * Creates an instance of ResizeObserverEntry.\r\n     *\r\n     * @param {Element} target - Element that is being observed.\r\n     * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n     */\r\n    function ResizeObserverEntry(target, rectInit) {\r\n        var contentRect = createReadOnlyRect(rectInit);\r\n        // According to the specification following properties are not writable\r\n        // and are also not enumerable in the native implementation.\r\n        //\r\n        // Property accessors are not being used as they'd require to define a\r\n        // private WeakMap storage which may cause memory leaks in browsers that\r\n        // don't support this type of collections.\r\n        defineConfigurable(this, { target: target, contentRect: contentRect });\r\n    }\r\n    return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserver.\r\n     *\r\n     * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n     *      when one of the observed elements changes it's content dimensions.\r\n     * @param {ResizeObserverController} controller - Controller instance which\r\n     *      is responsible for the updates of observer.\r\n     * @param {ResizeObserver} callbackCtx - Reference to the public\r\n     *      ResizeObserver instance which will be passed to callback function.\r\n     */\r\n    function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n        /**\r\n         * Collection of resize observations that have detected changes in dimensions\r\n         * of elements.\r\n         *\r\n         * @private {Array<ResizeObservation>}\r\n         */\r\n        this.activeObservations_ = [];\r\n        /**\r\n         * Registry of the ResizeObservation instances.\r\n         *\r\n         * @private {Map<Element, ResizeObservation>}\r\n         */\r\n        this.observations_ = new MapShim();\r\n        if (typeof callback !== 'function') {\r\n            throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n        }\r\n        this.callback_ = callback;\r\n        this.controller_ = controller;\r\n        this.callbackCtx_ = callbackCtx;\r\n    }\r\n    /**\r\n     * Starts observing provided element.\r\n     *\r\n     * @param {Element} target - Element to be observed.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.observe = function (target) {\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        // Do nothing if current environment doesn't have the Element interface.\r\n        if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n            return;\r\n        }\r\n        if (!(target instanceof getWindowOf(target).Element)) {\r\n            throw new TypeError('parameter 1 is not of type \"Element\".');\r\n        }\r\n        var observations = this.observations_;\r\n        // Do nothing if element is already being observed.\r\n        if (observations.has(target)) {\r\n            return;\r\n        }\r\n        observations.set(target, new ResizeObservation(target));\r\n        this.controller_.addObserver(this);\r\n        // Force the update of observations.\r\n        this.controller_.refresh();\r\n    };\r\n    /**\r\n     * Stops observing provided element.\r\n     *\r\n     * @param {Element} target - Element to stop observing.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.unobserve = function (target) {\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        // Do nothing if current environment doesn't have the Element interface.\r\n        if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n            return;\r\n        }\r\n        if (!(target instanceof getWindowOf(target).Element)) {\r\n            throw new TypeError('parameter 1 is not of type \"Element\".');\r\n        }\r\n        var observations = this.observations_;\r\n        // Do nothing if element is not being observed.\r\n        if (!observations.has(target)) {\r\n            return;\r\n        }\r\n        observations.delete(target);\r\n        if (!observations.size) {\r\n            this.controller_.removeObserver(this);\r\n        }\r\n    };\r\n    /**\r\n     * Stops observing all elements.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.disconnect = function () {\r\n        this.clearActive();\r\n        this.observations_.clear();\r\n        this.controller_.removeObserver(this);\r\n    };\r\n    /**\r\n     * Collects observation instances the associated element of which has changed\r\n     * it's content rectangle.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.gatherActive = function () {\r\n        var _this = this;\r\n        this.clearActive();\r\n        this.observations_.forEach(function (observation) {\r\n            if (observation.isActive()) {\r\n                _this.activeObservations_.push(observation);\r\n            }\r\n        });\r\n    };\r\n    /**\r\n     * Invokes initial callback function with a list of ResizeObserverEntry\r\n     * instances collected from active resize observations.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.broadcastActive = function () {\r\n        // Do nothing if observer doesn't have active observations.\r\n        if (!this.hasActive()) {\r\n            return;\r\n        }\r\n        var ctx = this.callbackCtx_;\r\n        // Create ResizeObserverEntry instance for every active observation.\r\n        var entries = this.activeObservations_.map(function (observation) {\r\n            return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n        });\r\n        this.callback_.call(ctx, entries, ctx);\r\n        this.clearActive();\r\n    };\r\n    /**\r\n     * Clears the collection of active observations.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.clearActive = function () {\r\n        this.activeObservations_.splice(0);\r\n    };\r\n    /**\r\n     * Tells whether observer has active observations.\r\n     *\r\n     * @returns {boolean}\r\n     */\r\n    ResizeObserverSPI.prototype.hasActive = function () {\r\n        return this.activeObservations_.length > 0;\r\n    };\r\n    return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserver.\r\n     *\r\n     * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n     *      dimensions of the observed elements change.\r\n     */\r\n    function ResizeObserver(callback) {\r\n        if (!(this instanceof ResizeObserver)) {\r\n            throw new TypeError('Cannot call a class as a function.');\r\n        }\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        var controller = ResizeObserverController.getInstance();\r\n        var observer = new ResizeObserverSPI(callback, controller, this);\r\n        observers.set(this, observer);\r\n    }\r\n    return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n    'observe',\r\n    'unobserve',\r\n    'disconnect'\r\n].forEach(function (method) {\r\n    ResizeObserver.prototype[method] = function () {\r\n        var _a;\r\n        return (_a = observers.get(this))[method].apply(_a, arguments);\r\n    };\r\n});\n\nvar index = (function () {\r\n    // Export existing implementation if available.\r\n    if (typeof global$1.ResizeObserver !== 'undefined') {\r\n        return global$1.ResizeObserver;\r\n    }\r\n    return ResizeObserver;\r\n})();\n\nexport default index;\n","function _setPrototypeOf(o, p) {\n  module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","function _getPrototypeOf(o) {\n  module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function _isNativeReflectConstruct() {\n  if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n  if (Reflect.construct.sham) return false;\n  if (typeof Proxy === \"function\") return true;\n\n  try {\n    Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\nmodule.exports = _isNativeReflectConstruct;","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n  return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var isObject = require('./isObject'),\n    isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = value.replace(reTrim, '');\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var baseGetTag = require('./_baseGetTag'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var Symbol = require('./_Symbol'),\n    getRawTag = require('./_getRawTag'),\n    objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var camel2hyphen = function (str) {\n  return str\n          .replace(/[A-Z]/g, function (match) {\n            return '-' + match.toLowerCase();\n          })\n          .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","const initialState = {\n  animating: false,\n  autoplaying: null,\n  currentDirection: 0,\n  currentLeft: null,\n  currentSlide: 0,\n  direction: 1,\n  dragging: false,\n  edgeDragged: false,\n  initialized: false,\n  lazyLoadedList: [],\n  listHeight: null,\n  listWidth: null,\n  scrolling: false,\n  slideCount: null,\n  slideHeight: null,\n  slideWidth: null,\n  swipeLeft: null,\n  swiped: false, // used by swipeEvent. differentites between touch and swipe.\n  swiping: false,\n  touchObject: { startX: 0, startY: 0, curX: 0, curY: 0 },\n  trackStyle: {},\n  trackWidth: 0,\n  targetSlide: 0\n};\n\nexport default initialState;\n","import React from \"react\";\n\nexport function clamp(number, lowerBound, upperBound) {\n  return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nexport const getOnDemandLazySlides = spec => {\n  let onDemandSlides = [];\n  let startIndex = lazyStartIndex(spec);\n  let endIndex = lazyEndIndex(spec);\n  for (let slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n    if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n      onDemandSlides.push(slideIndex);\n    }\n  }\n  return onDemandSlides;\n};\n\n// return list of slides that need to be present\nexport const getRequiredLazySlides = spec => {\n  let requiredSlides = [];\n  let startIndex = lazyStartIndex(spec);\n  let endIndex = lazyEndIndex(spec);\n  for (let slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n    requiredSlides.push(slideIndex);\n  }\n  return requiredSlides;\n};\n\n// startIndex that needs to be present\nexport const lazyStartIndex = spec =>\n  spec.currentSlide - lazySlidesOnLeft(spec);\nexport const lazyEndIndex = spec => spec.currentSlide + lazySlidesOnRight(spec);\nexport const lazySlidesOnLeft = spec =>\n  spec.centerMode\n    ? Math.floor(spec.slidesToShow / 2) +\n      (parseInt(spec.centerPadding) > 0 ? 1 : 0)\n    : 0;\nexport const lazySlidesOnRight = spec =>\n  spec.centerMode\n    ? Math.floor((spec.slidesToShow - 1) / 2) +\n      1 +\n      (parseInt(spec.centerPadding) > 0 ? 1 : 0)\n    : spec.slidesToShow;\n\n// get width of an element\nexport const getWidth = elem => (elem && elem.offsetWidth) || 0;\nexport const getHeight = elem => (elem && elem.offsetHeight) || 0;\nexport const getSwipeDirection = (touchObject, verticalSwiping = false) => {\n  var xDist, yDist, r, swipeAngle;\n  xDist = touchObject.startX - touchObject.curX;\n  yDist = touchObject.startY - touchObject.curY;\n  r = Math.atan2(yDist, xDist);\n  swipeAngle = Math.round((r * 180) / Math.PI);\n  if (swipeAngle < 0) {\n    swipeAngle = 360 - Math.abs(swipeAngle);\n  }\n  if (\n    (swipeAngle <= 45 && swipeAngle >= 0) ||\n    (swipeAngle <= 360 && swipeAngle >= 315)\n  ) {\n    return \"left\";\n  }\n  if (swipeAngle >= 135 && swipeAngle <= 225) {\n    return \"right\";\n  }\n  if (verticalSwiping === true) {\n    if (swipeAngle >= 35 && swipeAngle <= 135) {\n      return \"up\";\n    } else {\n      return \"down\";\n    }\n  }\n\n  return \"vertical\";\n};\n\n// whether or not we can go next\nexport const canGoNext = spec => {\n  let canGo = true;\n  if (!spec.infinite) {\n    if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n      canGo = false;\n    } else if (\n      spec.slideCount <= spec.slidesToShow ||\n      spec.currentSlide >= spec.slideCount - spec.slidesToShow\n    ) {\n      canGo = false;\n    }\n  }\n  return canGo;\n};\n\n// given an object and a list of keys, return new object with given keys\nexport const extractObject = (spec, keys) => {\n  let newObject = {};\n  keys.forEach(key => (newObject[key] = spec[key]));\n  return newObject;\n};\n\n// get initialized state\nexport const initializedState = spec => {\n  // spec also contains listRef, trackRef\n  let slideCount = React.Children.count(spec.children);\n  const listNode = spec.listRef;\n  let listWidth = Math.ceil(getWidth(listNode));\n  const trackNode = spec.trackRef && spec.trackRef.node;\n  let trackWidth = Math.ceil(getWidth(trackNode));\n  let slideWidth;\n  if (!spec.vertical) {\n    let centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n    if (\n      typeof spec.centerPadding === \"string\" &&\n      spec.centerPadding.slice(-1) === \"%\"\n    ) {\n      centerPaddingAdj *= listWidth / 100;\n    }\n    slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n  } else {\n    slideWidth = listWidth;\n  }\n  let slideHeight =\n    listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n  let listHeight = slideHeight * spec.slidesToShow;\n  let currentSlide =\n    spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n  if (spec.rtl && spec.currentSlide === undefined) {\n    currentSlide = slideCount - 1 - spec.initialSlide;\n  }\n  let lazyLoadedList = spec.lazyLoadedList || [];\n  let slidesToLoad = getOnDemandLazySlides({\n    ...spec,\n    currentSlide,\n    lazyLoadedList\n  });\n  lazyLoadedList.concat(slidesToLoad);\n\n  let state = {\n    slideCount,\n    slideWidth,\n    listWidth,\n    trackWidth,\n    currentSlide,\n    slideHeight,\n    listHeight,\n    lazyLoadedList\n  };\n\n  if (spec.autoplaying === null && spec.autoplay) {\n    state[\"autoplaying\"] = \"playing\";\n  }\n\n  return state;\n};\n\nexport const slideHandler = spec => {\n  const {\n    waitForAnimate,\n    animating,\n    fade,\n    infinite,\n    index,\n    slideCount,\n    lazyLoadedList,\n    lazyLoad,\n    currentSlide,\n    centerMode,\n    slidesToScroll,\n    slidesToShow,\n    useCSS\n  } = spec;\n  if (waitForAnimate && animating) return {};\n  let animationSlide = index,\n    finalSlide,\n    animationLeft,\n    finalLeft;\n  let state = {},\n    nextState = {};\n  const targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n  if (fade) {\n    if (!infinite && (index < 0 || index >= slideCount)) return {};\n    if (index < 0) {\n      animationSlide = index + slideCount;\n    } else if (index >= slideCount) {\n      animationSlide = index - slideCount;\n    }\n    if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n      lazyLoadedList.push(animationSlide);\n    }\n    state = {\n      animating: true,\n      currentSlide: animationSlide,\n      lazyLoadedList,\n      targetSlide: animationSlide\n    };\n    nextState = { animating: false, targetSlide: animationSlide };\n  } else {\n    finalSlide = animationSlide;\n    if (animationSlide < 0) {\n      finalSlide = animationSlide + slideCount;\n      if (!infinite) finalSlide = 0;\n      else if (slideCount % slidesToScroll !== 0)\n        finalSlide = slideCount - (slideCount % slidesToScroll);\n    } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n      animationSlide = finalSlide = currentSlide;\n    } else if (centerMode && animationSlide >= slideCount) {\n      animationSlide = infinite ? slideCount : slideCount - 1;\n      finalSlide = infinite ? 0 : slideCount - 1;\n    } else if (animationSlide >= slideCount) {\n      finalSlide = animationSlide - slideCount;\n      if (!infinite) finalSlide = slideCount - slidesToShow;\n      else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n    }\n\n    if (!infinite && animationSlide + slidesToShow >= slideCount) {\n      finalSlide = slideCount - slidesToShow;\n    }\n\n    animationLeft = getTrackLeft({ ...spec, slideIndex: animationSlide });\n    finalLeft = getTrackLeft({ ...spec, slideIndex: finalSlide });\n    if (!infinite) {\n      if (animationLeft === finalLeft) animationSlide = finalSlide;\n      animationLeft = finalLeft;\n    }\n    lazyLoad &&\n      lazyLoadedList.concat(\n        getOnDemandLazySlides({ ...spec, currentSlide: animationSlide })\n      );\n    if (!useCSS) {\n      state = {\n        currentSlide: finalSlide,\n        trackStyle: getTrackCSS({ ...spec, left: finalLeft }),\n        lazyLoadedList,\n        targetSlide\n      };\n    } else {\n      state = {\n        animating: true,\n        currentSlide: finalSlide,\n        trackStyle: getTrackAnimateCSS({ ...spec, left: animationLeft }),\n        lazyLoadedList,\n        targetSlide\n      };\n      nextState = {\n        animating: false,\n        currentSlide: finalSlide,\n        trackStyle: getTrackCSS({ ...spec, left: finalLeft }),\n        swipeLeft: null,\n        targetSlide\n      };\n    }\n  }\n  return { state, nextState };\n};\n\nexport const changeSlide = (spec, options) => {\n  var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n  const {\n    slidesToScroll,\n    slidesToShow,\n    slideCount,\n    currentSlide,\n    targetSlide: previousTargetSlide,\n    lazyLoad,\n    infinite\n  } = spec;\n  unevenOffset = slideCount % slidesToScroll !== 0;\n  indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n  if (options.message === \"previous\") {\n    slideOffset =\n      indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n    targetSlide = currentSlide - slideOffset;\n    if (lazyLoad && !infinite) {\n      previousInt = currentSlide - slideOffset;\n      targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n    }\n    if (!infinite) {\n      targetSlide = previousTargetSlide - slidesToScroll;\n    }\n  } else if (options.message === \"next\") {\n    slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n    targetSlide = currentSlide + slideOffset;\n    if (lazyLoad && !infinite) {\n      targetSlide =\n        ((currentSlide + slidesToScroll) % slideCount) + indexOffset;\n    }\n    if (!infinite) {\n      targetSlide = previousTargetSlide + slidesToScroll;\n    }\n  } else if (options.message === \"dots\") {\n    // Click on dots\n    targetSlide = options.index * options.slidesToScroll;\n  } else if (options.message === \"children\") {\n    // Click on the slides\n    targetSlide = options.index;\n    if (infinite) {\n      let direction = siblingDirection({ ...spec, targetSlide });\n      if (targetSlide > options.currentSlide && direction === \"left\") {\n        targetSlide = targetSlide - slideCount;\n      } else if (targetSlide < options.currentSlide && direction === \"right\") {\n        targetSlide = targetSlide + slideCount;\n      }\n    }\n  } else if (options.message === \"index\") {\n    targetSlide = Number(options.index);\n  }\n  return targetSlide;\n};\nexport const keyHandler = (e, accessibility, rtl) => {\n  if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility)\n    return \"\";\n  if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n  if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n  return \"\";\n};\n\nexport const swipeStart = (e, swipe, draggable) => {\n  e.target.tagName === \"IMG\" && e.preventDefault();\n  if (!swipe || (!draggable && e.type.indexOf(\"mouse\") !== -1)) return \"\";\n  return {\n    dragging: true,\n    touchObject: {\n      startX: e.touches ? e.touches[0].pageX : e.clientX,\n      startY: e.touches ? e.touches[0].pageY : e.clientY,\n      curX: e.touches ? e.touches[0].pageX : e.clientX,\n      curY: e.touches ? e.touches[0].pageY : e.clientY\n    }\n  };\n};\nexport const swipeMove = (e, spec) => {\n  // spec also contains, trackRef and slideIndex\n  const {\n    scrolling,\n    animating,\n    vertical,\n    swipeToSlide,\n    verticalSwiping,\n    rtl,\n    currentSlide,\n    edgeFriction,\n    edgeDragged,\n    onEdge,\n    swiped,\n    swiping,\n    slideCount,\n    slidesToScroll,\n    infinite,\n    touchObject,\n    swipeEvent,\n    listHeight,\n    listWidth\n  } = spec;\n  if (scrolling) return;\n  if (animating) return e.preventDefault();\n  if (vertical && swipeToSlide && verticalSwiping) e.preventDefault();\n  let swipeLeft,\n    state = {};\n  let curLeft = getTrackLeft(spec);\n  touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n  touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n  touchObject.swipeLength = Math.round(\n    Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2))\n  );\n  let verticalSwipeLength = Math.round(\n    Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2))\n  );\n  if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n    return { scrolling: true };\n  }\n  if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n  let positionOffset =\n    (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n  if (verticalSwiping)\n    positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n\n  let dotCount = Math.ceil(slideCount / slidesToScroll);\n  let swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n  let touchSwipeLength = touchObject.swipeLength;\n  if (!infinite) {\n    if (\n      (currentSlide === 0 && swipeDirection === \"right\") ||\n      (currentSlide + 1 >= dotCount && swipeDirection === \"left\") ||\n      (!canGoNext(spec) && swipeDirection === \"left\")\n    ) {\n      touchSwipeLength = touchObject.swipeLength * edgeFriction;\n      if (edgeDragged === false && onEdge) {\n        onEdge(swipeDirection);\n        state[\"edgeDragged\"] = true;\n      }\n    }\n  }\n  if (!swiped && swipeEvent) {\n    swipeEvent(swipeDirection);\n    state[\"swiped\"] = true;\n  }\n  if (!vertical) {\n    if (!rtl) {\n      swipeLeft = curLeft + touchSwipeLength * positionOffset;\n    } else {\n      swipeLeft = curLeft - touchSwipeLength * positionOffset;\n    }\n  } else {\n    swipeLeft =\n      curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n  }\n  if (verticalSwiping) {\n    swipeLeft = curLeft + touchSwipeLength * positionOffset;\n  }\n  state = {\n    ...state,\n    touchObject,\n    swipeLeft,\n    trackStyle: getTrackCSS({ ...spec, left: swipeLeft })\n  };\n  if (\n    Math.abs(touchObject.curX - touchObject.startX) <\n    Math.abs(touchObject.curY - touchObject.startY) * 0.8\n  ) {\n    return state;\n  }\n  if (touchObject.swipeLength > 10) {\n    state[\"swiping\"] = true;\n    e.preventDefault();\n  }\n  return state;\n};\nexport const swipeEnd = (e, spec) => {\n  const {\n    dragging,\n    swipe,\n    touchObject,\n    listWidth,\n    touchThreshold,\n    verticalSwiping,\n    listHeight,\n    swipeToSlide,\n    scrolling,\n    onSwipe,\n    targetSlide,\n    currentSlide,\n    infinite\n  } = spec;\n  if (!dragging) {\n    if (swipe) e.preventDefault();\n    return {};\n  }\n  let minSwipe = verticalSwiping\n    ? listHeight / touchThreshold\n    : listWidth / touchThreshold;\n  let swipeDirection = getSwipeDirection(touchObject, verticalSwiping);\n  // reset the state of touch related state variables.\n  let state = {\n    dragging: false,\n    edgeDragged: false,\n    scrolling: false,\n    swiping: false,\n    swiped: false,\n    swipeLeft: null,\n    touchObject: {}\n  };\n  if (scrolling) {\n    return state;\n  }\n  if (!touchObject.swipeLength) {\n    return state;\n  }\n  if (touchObject.swipeLength > minSwipe) {\n    e.preventDefault();\n    if (onSwipe) {\n      onSwipe(swipeDirection);\n    }\n    let slideCount, newSlide;\n    let activeSlide = infinite ? currentSlide : targetSlide;\n    switch (swipeDirection) {\n      case \"left\":\n      case \"up\":\n        newSlide = activeSlide + getSlideCount(spec);\n        slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n        state[\"currentDirection\"] = 0;\n        break;\n      case \"right\":\n      case \"down\":\n        newSlide = activeSlide - getSlideCount(spec);\n        slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n        state[\"currentDirection\"] = 1;\n        break;\n      default:\n        slideCount = activeSlide;\n    }\n    state[\"triggerSlideHandler\"] = slideCount;\n  } else {\n    // Adjust the track back to it's original position.\n    let currentLeft = getTrackLeft(spec);\n    state[\"trackStyle\"] = getTrackAnimateCSS({ ...spec, left: currentLeft });\n  }\n  return state;\n};\nexport const getNavigableIndexes = spec => {\n  let max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n  let breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n  let counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n  let indexes = [];\n  while (breakpoint < max) {\n    indexes.push(breakpoint);\n    breakpoint = counter + spec.slidesToScroll;\n    counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n  }\n  return indexes;\n};\nexport const checkNavigable = (spec, index) => {\n  const navigables = getNavigableIndexes(spec);\n  let prevNavigable = 0;\n  if (index > navigables[navigables.length - 1]) {\n    index = navigables[navigables.length - 1];\n  } else {\n    for (let n in navigables) {\n      if (index < navigables[n]) {\n        index = prevNavigable;\n        break;\n      }\n      prevNavigable = navigables[n];\n    }\n  }\n  return index;\n};\nexport const getSlideCount = spec => {\n  const centerOffset = spec.centerMode\n    ? spec.slideWidth * Math.floor(spec.slidesToShow / 2)\n    : 0;\n  if (spec.swipeToSlide) {\n    let swipedSlide;\n    const slickList = spec.listRef;\n    const slides = slickList.querySelectorAll(\".slick-slide\");\n    Array.from(slides).every(slide => {\n      if (!spec.vertical) {\n        if (\n          slide.offsetLeft - centerOffset + getWidth(slide) / 2 >\n          spec.swipeLeft * -1\n        ) {\n          swipedSlide = slide;\n          return false;\n        }\n      } else {\n        if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n          swipedSlide = slide;\n          return false;\n        }\n      }\n\n      return true;\n    });\n\n    if (!swipedSlide) {\n      return 0;\n    }\n    const currentIndex =\n      spec.rtl === true\n        ? spec.slideCount - spec.currentSlide\n        : spec.currentSlide;\n    const slidesTraversed =\n      Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n    return slidesTraversed;\n  } else {\n    return spec.slidesToScroll;\n  }\n};\n\nexport const checkSpecKeys = (spec, keysArray) =>\n  // eslint-disable-next-line no-prototype-builtins\n  keysArray.reduce((value, key) => value && spec.hasOwnProperty(key), true)\n    ? null\n    : console.error(\"Keys Missing:\", spec);\n\nexport const getTrackCSS = spec => {\n  checkSpecKeys(spec, [\n    \"left\",\n    \"variableWidth\",\n    \"slideCount\",\n    \"slidesToShow\",\n    \"slideWidth\"\n  ]);\n  let trackWidth, trackHeight;\n  const trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n  if (!spec.vertical) {\n    trackWidth = getTotalSlides(spec) * spec.slideWidth;\n  } else {\n    trackHeight = trackChildren * spec.slideHeight;\n  }\n  let style = {\n    opacity: 1,\n    transition: \"\",\n    WebkitTransition: \"\"\n  };\n  if (spec.useTransform) {\n    let WebkitTransform = !spec.vertical\n      ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\"\n      : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n    let transform = !spec.vertical\n      ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\"\n      : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n    let msTransform = !spec.vertical\n      ? \"translateX(\" + spec.left + \"px)\"\n      : \"translateY(\" + spec.left + \"px)\";\n    style = {\n      ...style,\n      WebkitTransform,\n      transform,\n      msTransform\n    };\n  } else {\n    if (spec.vertical) {\n      style[\"top\"] = spec.left;\n    } else {\n      style[\"left\"] = spec.left;\n    }\n  }\n  if (spec.fade) style = { opacity: 1 };\n  if (trackWidth) style.width = trackWidth;\n  if (trackHeight) style.height = trackHeight;\n\n  // Fallback for IE8\n  if (window && !window.addEventListener && window.attachEvent) {\n    if (!spec.vertical) {\n      style.marginLeft = spec.left + \"px\";\n    } else {\n      style.marginTop = spec.left + \"px\";\n    }\n  }\n\n  return style;\n};\nexport const getTrackAnimateCSS = spec => {\n  checkSpecKeys(spec, [\n    \"left\",\n    \"variableWidth\",\n    \"slideCount\",\n    \"slidesToShow\",\n    \"slideWidth\",\n    \"speed\",\n    \"cssEase\"\n  ]);\n  let style = getTrackCSS(spec);\n  // useCSS is true by default so it can be undefined\n  if (spec.useTransform) {\n    style.WebkitTransition =\n      \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n    style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n  } else {\n    if (spec.vertical) {\n      style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n    } else {\n      style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n    }\n  }\n  return style;\n};\nexport const getTrackLeft = spec => {\n  if (spec.unslick) {\n    return 0;\n  }\n\n  checkSpecKeys(spec, [\n    \"slideIndex\",\n    \"trackRef\",\n    \"infinite\",\n    \"centerMode\",\n    \"slideCount\",\n    \"slidesToShow\",\n    \"slidesToScroll\",\n    \"slideWidth\",\n    \"listWidth\",\n    \"variableWidth\",\n    \"slideHeight\"\n  ]);\n\n  const {\n    slideIndex,\n    trackRef,\n    infinite,\n    centerMode,\n    slideCount,\n    slidesToShow,\n    slidesToScroll,\n    slideWidth,\n    listWidth,\n    variableWidth,\n    slideHeight,\n    fade,\n    vertical\n  } = spec;\n\n  var slideOffset = 0;\n  var targetLeft;\n  var targetSlide;\n  var verticalOffset = 0;\n\n  if (fade || spec.slideCount === 1) {\n    return 0;\n  }\n\n  let slidesToOffset = 0;\n  if (infinite) {\n    slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n    // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n    if (\n      slideCount % slidesToScroll !== 0 &&\n      slideIndex + slidesToScroll > slideCount\n    ) {\n      slidesToOffset = -(slideIndex > slideCount\n        ? slidesToShow - (slideIndex - slideCount)\n        : slideCount % slidesToScroll);\n    }\n    // shift current slide to center of the frame\n    if (centerMode) {\n      slidesToOffset += parseInt(slidesToShow / 2);\n    }\n  } else {\n    if (\n      slideCount % slidesToScroll !== 0 &&\n      slideIndex + slidesToScroll > slideCount\n    ) {\n      slidesToOffset = slidesToShow - (slideCount % slidesToScroll);\n    }\n    if (centerMode) {\n      slidesToOffset = parseInt(slidesToShow / 2);\n    }\n  }\n  slideOffset = slidesToOffset * slideWidth;\n  verticalOffset = slidesToOffset * slideHeight;\n\n  if (!vertical) {\n    targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n  } else {\n    targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n  }\n\n  if (variableWidth === true) {\n    var targetSlideIndex;\n    const trackElem = trackRef && trackRef.node;\n    targetSlideIndex = slideIndex + getPreClones(spec);\n    targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n    targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n    if (centerMode === true) {\n      targetSlideIndex = infinite\n        ? slideIndex + getPreClones(spec)\n        : slideIndex;\n      targetSlide = trackElem && trackElem.children[targetSlideIndex];\n      targetLeft = 0;\n      for (let slide = 0; slide < targetSlideIndex; slide++) {\n        targetLeft -=\n          trackElem &&\n          trackElem.children[slide] &&\n          trackElem.children[slide].offsetWidth;\n      }\n      targetLeft -= parseInt(spec.centerPadding);\n      targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n    }\n  }\n\n  return targetLeft;\n};\n\nexport const getPreClones = spec => {\n  if (spec.unslick || !spec.infinite) {\n    return 0;\n  }\n  if (spec.variableWidth) {\n    return spec.slideCount;\n  }\n  return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexport const getPostClones = spec => {\n  if (spec.unslick || !spec.infinite) {\n    return 0;\n  }\n  return spec.slideCount;\n};\n\nexport const getTotalSlides = spec =>\n  spec.slideCount === 1\n    ? 1\n    : getPreClones(spec) + spec.slideCount + getPostClones(spec);\nexport const siblingDirection = spec => {\n  if (spec.targetSlide > spec.currentSlide) {\n    if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n      return \"left\";\n    }\n    return \"right\";\n  } else {\n    if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n      return \"right\";\n    }\n    return \"left\";\n  }\n};\n\nexport const slidesOnRight = ({\n  slidesToShow,\n  centerMode,\n  rtl,\n  centerPadding\n}) => {\n  // returns no of slides on the right of active slide\n  if (centerMode) {\n    let right = (slidesToShow - 1) / 2 + 1;\n    if (parseInt(centerPadding) > 0) right += 1;\n    if (rtl && slidesToShow % 2 === 0) right += 1;\n    return right;\n  }\n  if (rtl) {\n    return 0;\n  }\n  return slidesToShow - 1;\n};\n\nexport const slidesOnLeft = ({\n  slidesToShow,\n  centerMode,\n  rtl,\n  centerPadding\n}) => {\n  // returns no of slides on the left of active slide\n  if (centerMode) {\n    let left = (slidesToShow - 1) / 2 + 1;\n    if (parseInt(centerPadding) > 0) left += 1;\n    if (!rtl && slidesToShow % 2 === 0) left += 1;\n    return left;\n  }\n  if (rtl) {\n    return slidesToShow - 1;\n  }\n  return 0;\n};\n\nexport const canUseDOM = () =>\n  !!(\n    typeof window !== \"undefined\" &&\n    window.document &&\n    window.document.createElement\n  );\n","\"use strict\";\n\nimport React from \"react\";\nimport classnames from \"classnames\";\nimport {\n  lazyStartIndex,\n  lazyEndIndex,\n  getPreClones\n} from \"./utils/innerSliderUtils\";\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nconst getSlideClasses = spec => {\n  let slickActive, slickCenter, slickCloned;\n  let centerOffset, index;\n\n  if (spec.rtl) {\n    index = spec.slideCount - 1 - spec.index;\n  } else {\n    index = spec.index;\n  }\n  slickCloned = index < 0 || index >= spec.slideCount;\n  if (spec.centerMode) {\n    centerOffset = Math.floor(spec.slidesToShow / 2);\n    slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n    if (\n      index > spec.currentSlide - centerOffset - 1 &&\n      index <= spec.currentSlide + centerOffset\n    ) {\n      slickActive = true;\n    }\n  } else {\n    slickActive =\n      spec.currentSlide <= index &&\n      index < spec.currentSlide + spec.slidesToShow;\n  }\n\n  let focusedSlide;\n  if (spec.targetSlide < 0) {\n    focusedSlide = spec.targetSlide + spec.slideCount;\n  } else if (spec.targetSlide >= spec.slideCount) {\n    focusedSlide = spec.targetSlide - spec.slideCount;\n  } else {\n    focusedSlide = spec.targetSlide;\n  }\n  let slickCurrent = index === focusedSlide;\n  return {\n    \"slick-slide\": true,\n    \"slick-active\": slickActive,\n    \"slick-center\": slickCenter,\n    \"slick-cloned\": slickCloned,\n    \"slick-current\": slickCurrent // dubious in case of RTL\n  };\n};\n\nconst getSlideStyle = spec => {\n  let style = {};\n\n  if (spec.variableWidth === undefined || spec.variableWidth === false) {\n    style.width = spec.slideWidth;\n  }\n\n  if (spec.fade) {\n    style.position = \"relative\";\n    if (spec.vertical) {\n      style.top = -spec.index * parseInt(spec.slideHeight);\n    } else {\n      style.left = -spec.index * parseInt(spec.slideWidth);\n    }\n    style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n    if (spec.useCSS) {\n      style.transition =\n        \"opacity \" +\n        spec.speed +\n        \"ms \" +\n        spec.cssEase +\n        \", \" +\n        \"visibility \" +\n        spec.speed +\n        \"ms \" +\n        spec.cssEase;\n    }\n  }\n\n  return style;\n};\n\nconst getKey = (child, fallbackKey) => child.key + \"-\" + fallbackKey;\n\nconst renderSlides = spec => {\n  let key;\n  let slides = [];\n  let preCloneSlides = [];\n  let postCloneSlides = [];\n  let childrenCount = React.Children.count(spec.children);\n  let startIndex = lazyStartIndex(spec);\n  let endIndex = lazyEndIndex(spec);\n\n  React.Children.forEach(spec.children, (elem, index) => {\n    let child;\n    let childOnClickOptions = {\n      message: \"children\",\n      index: index,\n      slidesToScroll: spec.slidesToScroll,\n      currentSlide: spec.currentSlide\n    };\n\n    // in case of lazyLoad, whether or not we want to fetch the slide\n    if (\n      !spec.lazyLoad ||\n      (spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0)\n    ) {\n      child = elem;\n    } else {\n      child = <div />;\n    }\n    let childStyle = getSlideStyle({ ...spec, index });\n    let slideClass = child.props.className || \"\";\n    let slideClasses = getSlideClasses({ ...spec, index });\n    // push a cloned element of the desired slide\n    slides.push(\n      React.cloneElement(child, {\n        key: \"original\" + getKey(child, index),\n        \"data-index\": index,\n        className: classnames(slideClasses, slideClass),\n        tabIndex: \"-1\",\n        \"aria-hidden\": !slideClasses[\"slick-active\"],\n        style: { outline: \"none\", ...(child.props.style || {}), ...childStyle },\n        onClick: e => {\n          child.props && child.props.onClick && child.props.onClick(e);\n          if (spec.focusOnSelect) {\n            spec.focusOnSelect(childOnClickOptions);\n          }\n        }\n      })\n    );\n\n    // if slide needs to be precloned or postcloned\n    if (spec.infinite && spec.fade === false) {\n      let preCloneNo = childrenCount - index;\n      if (\n        preCloneNo <= getPreClones(spec) &&\n        childrenCount !== spec.slidesToShow\n      ) {\n        key = -preCloneNo;\n        if (key >= startIndex) {\n          child = elem;\n        }\n        slideClasses = getSlideClasses({ ...spec, index: key });\n        preCloneSlides.push(\n          React.cloneElement(child, {\n            key: \"precloned\" + getKey(child, key),\n            \"data-index\": key,\n            tabIndex: \"-1\",\n            className: classnames(slideClasses, slideClass),\n            \"aria-hidden\": !slideClasses[\"slick-active\"],\n            style: { ...(child.props.style || {}), ...childStyle },\n            onClick: e => {\n              child.props && child.props.onClick && child.props.onClick(e);\n              if (spec.focusOnSelect) {\n                spec.focusOnSelect(childOnClickOptions);\n              }\n            }\n          })\n        );\n      }\n\n      if (childrenCount !== spec.slidesToShow) {\n        key = childrenCount + index;\n        if (key < endIndex) {\n          child = elem;\n        }\n        slideClasses = getSlideClasses({ ...spec, index: key });\n        postCloneSlides.push(\n          React.cloneElement(child, {\n            key: \"postcloned\" + getKey(child, key),\n            \"data-index\": key,\n            tabIndex: \"-1\",\n            className: classnames(slideClasses, slideClass),\n            \"aria-hidden\": !slideClasses[\"slick-active\"],\n            style: { ...(child.props.style || {}), ...childStyle },\n            onClick: e => {\n              child.props && child.props.onClick && child.props.onClick(e);\n              if (spec.focusOnSelect) {\n                spec.focusOnSelect(childOnClickOptions);\n              }\n            }\n          })\n        );\n      }\n    }\n  });\n\n  if (spec.rtl) {\n    return preCloneSlides.concat(slides, postCloneSlides).reverse();\n  } else {\n    return preCloneSlides.concat(slides, postCloneSlides);\n  }\n};\n\nexport class Track extends React.PureComponent {\n  node = null;\n\n  handleRef = ref => {\n    this.node = ref;\n  };\n\n  render() {\n    const slides = renderSlides(this.props);\n    const { onMouseEnter, onMouseOver, onMouseLeave } = this.props;\n    const mouseEvents = { onMouseEnter, onMouseOver, onMouseLeave };\n    return (\n      <div\n        ref={this.handleRef}\n        className=\"slick-track\"\n        style={this.props.trackStyle}\n        {...mouseEvents}\n      >\n        {slides}\n      </div>\n    );\n  }\n}\n","\"use strict\";\n\nimport React from \"react\";\nimport classnames from \"classnames\";\nimport { clamp } from \"./utils/innerSliderUtils\";\n\nconst getDotCount = spec => {\n  let dots;\n\n  if (spec.infinite) {\n    dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n  } else {\n    dots =\n      Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) +\n      1;\n  }\n\n  return dots;\n};\n\nexport class Dots extends React.PureComponent {\n  clickHandler(options, e) {\n    // In Autoplay the focus stays on clicked button even after transition\n    // to next slide. That only goes away by click somewhere outside\n    e.preventDefault();\n    this.props.clickHandler(options);\n  }\n  render() {\n    const {\n      onMouseEnter,\n      onMouseOver,\n      onMouseLeave,\n      infinite,\n      slidesToScroll,\n      slidesToShow,\n      slideCount,\n      currentSlide\n    } = this.props;\n    let dotCount = getDotCount({\n      slideCount,\n      slidesToScroll,\n      slidesToShow,\n      infinite\n    });\n\n    const mouseEvents = { onMouseEnter, onMouseOver, onMouseLeave };\n    let dots = [];\n    for (let i = 0; i < dotCount; i++) {\n      let _rightBound = (i + 1) * slidesToScroll - 1;\n      let rightBound = infinite\n        ? _rightBound\n        : clamp(_rightBound, 0, slideCount - 1);\n      let _leftBound = rightBound - (slidesToScroll - 1);\n      let leftBound = infinite\n        ? _leftBound\n        : clamp(_leftBound, 0, slideCount - 1);\n\n      let className = classnames({\n        \"slick-active\": infinite\n          ? currentSlide >= leftBound && currentSlide <= rightBound\n          : currentSlide === leftBound\n      });\n\n      let dotOptions = {\n        message: \"dots\",\n        index: i,\n        slidesToScroll,\n        currentSlide\n      };\n\n      let onClick = this.clickHandler.bind(this, dotOptions);\n      dots = dots.concat(\n        <li key={i} className={className}>\n          {React.cloneElement(this.props.customPaging(i), { onClick })}\n        </li>\n      );\n    }\n\n    return React.cloneElement(this.props.appendDots(dots), {\n      className: this.props.dotsClass,\n      ...mouseEvents\n    });\n  }\n}\n","\"use strict\";\n\nimport React from \"react\";\nimport classnames from \"classnames\";\nimport { canGoNext } from \"./utils/innerSliderUtils\";\n\nexport class PrevArrow extends React.PureComponent {\n  clickHandler(options, e) {\n    if (e) {\n      e.preventDefault();\n    }\n    this.props.clickHandler(options, e);\n  }\n  render() {\n    let prevClasses = { \"slick-arrow\": true, \"slick-prev\": true };\n    let prevHandler = this.clickHandler.bind(this, { message: \"previous\" });\n\n    if (\n      !this.props.infinite &&\n      (this.props.currentSlide === 0 ||\n        this.props.slideCount <= this.props.slidesToShow)\n    ) {\n      prevClasses[\"slick-disabled\"] = true;\n      prevHandler = null;\n    }\n\n    let prevArrowProps = {\n      key: \"0\",\n      \"data-role\": \"none\",\n      className: classnames(prevClasses),\n      style: { display: \"block\" },\n      onClick: prevHandler\n    };\n    let customProps = {\n      currentSlide: this.props.currentSlide,\n      slideCount: this.props.slideCount\n    };\n    let prevArrow;\n\n    if (this.props.prevArrow) {\n      prevArrow = React.cloneElement(this.props.prevArrow, {\n        ...prevArrowProps,\n        ...customProps\n      });\n    } else {\n      prevArrow = (\n        <button key=\"0\" type=\"button\" {...prevArrowProps}>\n          {\" \"}\n          Previous\n        </button>\n      );\n    }\n\n    return prevArrow;\n  }\n}\n\nexport class NextArrow extends React.PureComponent {\n  clickHandler(options, e) {\n    if (e) {\n      e.preventDefault();\n    }\n    this.props.clickHandler(options, e);\n  }\n  render() {\n    let nextClasses = { \"slick-arrow\": true, \"slick-next\": true };\n    let nextHandler = this.clickHandler.bind(this, { message: \"next\" });\n\n    if (!canGoNext(this.props)) {\n      nextClasses[\"slick-disabled\"] = true;\n      nextHandler = null;\n    }\n\n    let nextArrowProps = {\n      key: \"1\",\n      \"data-role\": \"none\",\n      className: classnames(nextClasses),\n      style: { display: \"block\" },\n      onClick: nextHandler\n    };\n    let customProps = {\n      currentSlide: this.props.currentSlide,\n      slideCount: this.props.slideCount\n    };\n    let nextArrow;\n\n    if (this.props.nextArrow) {\n      nextArrow = React.cloneElement(this.props.nextArrow, {\n        ...nextArrowProps,\n        ...customProps\n      });\n    } else {\n      nextArrow = (\n        <button key=\"1\" type=\"button\" {...nextArrowProps}>\n          {\" \"}\n          Next\n        </button>\n      );\n    }\n\n    return nextArrow;\n  }\n}\n","\"use strict\";\n\nimport React from \"react\";\nimport initialState from \"./initial-state\";\nimport debounce from \"lodash/debounce\";\nimport classnames from \"classnames\";\nimport {\n  getOnDemandLazySlides,\n  extractObject,\n  initializedState,\n  getHeight,\n  canGoNext,\n  slideHandler,\n  changeSlide,\n  keyHandler,\n  swipeStart,\n  swipeMove,\n  swipeEnd,\n  getPreClones,\n  getPostClones,\n  getTrackLeft,\n  getTrackCSS\n} from \"./utils/innerSliderUtils\";\n\nimport { Track } from \"./track\";\nimport { Dots } from \"./dots\";\nimport { PrevArrow, NextArrow } from \"./arrows\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\nexport class InnerSlider extends React.Component {\n  constructor(props) {\n    super(props);\n    this.list = null;\n    this.track = null;\n    this.state = {\n      ...initialState,\n      currentSlide: this.props.initialSlide,\n      slideCount: React.Children.count(this.props.children)\n    };\n    this.callbackTimers = [];\n    this.clickable = true;\n    this.debouncedResize = null;\n    const ssrState = this.ssrInit();\n    this.state = { ...this.state, ...ssrState };\n  }\n  listRefHandler = ref => (this.list = ref);\n  trackRefHandler = ref => (this.track = ref);\n  adaptHeight = () => {\n    if (this.props.adaptiveHeight && this.list) {\n      const elem = this.list.querySelector(\n        `[data-index=\"${this.state.currentSlide}\"]`\n      );\n      this.list.style.height = getHeight(elem) + \"px\";\n    }\n  };\n  componentDidMount = () => {\n    this.props.onInit && this.props.onInit();\n    if (this.props.lazyLoad) {\n      let slidesToLoad = getOnDemandLazySlides({\n        ...this.props,\n        ...this.state\n      });\n      if (slidesToLoad.length > 0) {\n        this.setState(prevState => ({\n          lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n        }));\n        if (this.props.onLazyLoad) {\n          this.props.onLazyLoad(slidesToLoad);\n        }\n      }\n    }\n    let spec = { listRef: this.list, trackRef: this.track, ...this.props };\n    this.updateState(spec, true, () => {\n      this.adaptHeight();\n      this.props.autoplay && this.autoPlay(\"update\");\n    });\n    if (this.props.lazyLoad === \"progressive\") {\n      this.lazyLoadTimer = setInterval(this.progressiveLazyLoad, 1000);\n    }\n    this.ro = new ResizeObserver(() => {\n      if (this.state.animating) {\n        this.onWindowResized(false); // don't set trackStyle hence don't break animation\n        this.callbackTimers.push(\n          setTimeout(() => this.onWindowResized(), this.props.speed)\n        );\n      } else {\n        this.onWindowResized();\n      }\n    });\n    this.ro.observe(this.list);\n    Array.prototype.forEach.call(\n      document.querySelectorAll(\".slick-slide\"),\n      slide => {\n        slide.onfocus = this.props.pauseOnFocus ? this.onSlideFocus : null;\n        slide.onblur = this.props.pauseOnFocus ? this.onSlideBlur : null;\n      }\n    );\n    if (window.addEventListener) {\n      window.addEventListener(\"resize\", this.onWindowResized);\n    } else {\n      window.attachEvent(\"onresize\", this.onWindowResized);\n    }\n  };\n  componentWillUnmount = () => {\n    if (this.animationEndCallback) {\n      clearTimeout(this.animationEndCallback);\n    }\n    if (this.lazyLoadTimer) {\n      clearInterval(this.lazyLoadTimer);\n    }\n    if (this.callbackTimers.length) {\n      this.callbackTimers.forEach(timer => clearTimeout(timer));\n      this.callbackTimers = [];\n    }\n    if (window.addEventListener) {\n      window.removeEventListener(\"resize\", this.onWindowResized);\n    } else {\n      window.detachEvent(\"onresize\", this.onWindowResized);\n    }\n    if (this.autoplayTimer) {\n      clearInterval(this.autoplayTimer);\n    }\n    this.ro.disconnect();\n  };\n\n  didPropsChange(prevProps) {\n    let setTrackStyle = false;\n    for (let key of Object.keys(this.props)) {\n      // eslint-disable-next-line no-prototype-builtins\n      if (!prevProps.hasOwnProperty(key)) {\n        setTrackStyle = true;\n        break;\n      }\n      if (\n        typeof prevProps[key] === \"object\" ||\n        typeof prevProps[key] === \"function\"\n      ) {\n        continue;\n      }\n      if (prevProps[key] !== this.props[key]) {\n        setTrackStyle = true;\n        break;\n      }\n    }\n    return (\n      setTrackStyle ||\n      React.Children.count(this.props.children) !==\n        React.Children.count(prevProps.children)\n    );\n  }\n\n  componentDidUpdate = prevProps => {\n    this.checkImagesLoad();\n    this.props.onReInit && this.props.onReInit();\n    if (this.props.lazyLoad) {\n      let slidesToLoad = getOnDemandLazySlides({\n        ...this.props,\n        ...this.state\n      });\n      if (slidesToLoad.length > 0) {\n        this.setState(prevState => ({\n          lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n        }));\n        if (this.props.onLazyLoad) {\n          this.props.onLazyLoad(slidesToLoad);\n        }\n      }\n    }\n    // if (this.props.onLazyLoad) {\n    //   this.props.onLazyLoad([leftMostSlide])\n    // }\n    this.adaptHeight();\n    let spec = {\n      listRef: this.list,\n      trackRef: this.track,\n      ...this.props,\n      ...this.state\n    };\n    const setTrackStyle = this.didPropsChange(prevProps);\n    setTrackStyle &&\n      this.updateState(spec, setTrackStyle, () => {\n        if (\n          this.state.currentSlide >= React.Children.count(this.props.children)\n        ) {\n          this.changeSlide({\n            message: \"index\",\n            index:\n              React.Children.count(this.props.children) -\n              this.props.slidesToShow,\n            currentSlide: this.state.currentSlide\n          });\n        }\n        if (\n          prevProps.autoplay !== this.props.autoplay ||\n          prevProps.autoplaySpeed !== this.props.autoplaySpeed\n        ) {\n          if (this.props.autoplay) {\n            this.autoPlay(\"update\");\n          } else {\n            this.pause(\"paused\");\n          }\n        }\n      });\n  };\n  onWindowResized = setTrackStyle => {\n    if (this.debouncedResize) this.debouncedResize.cancel();\n    this.debouncedResize = debounce(() => this.resizeWindow(setTrackStyle), 50);\n    this.debouncedResize();\n  };\n  resizeWindow = (setTrackStyle = true) => {\n    const isTrackMounted = Boolean(this.track && this.track.node);\n    // prevent warning: setting state on unmounted component (server side rendering)\n    if (!isTrackMounted) return;\n    let spec = {\n      listRef: this.list,\n      trackRef: this.track,\n      ...this.props,\n      ...this.state\n    };\n    this.updateState(spec, setTrackStyle, () => {\n      if (this.props.autoplay) this.autoPlay(\"update\");\n      else this.pause(\"paused\");\n    });\n    // animating state should be cleared while resizing, otherwise autoplay stops working\n    this.setState({\n      animating: false\n    });\n    clearTimeout(this.animationEndCallback);\n    delete this.animationEndCallback;\n  };\n  updateState = (spec, setTrackStyle, callback) => {\n    let updatedState = initializedState(spec);\n    spec = { ...spec, ...updatedState, slideIndex: updatedState.currentSlide };\n    let targetLeft = getTrackLeft(spec);\n    spec = { ...spec, left: targetLeft };\n    let trackStyle = getTrackCSS(spec);\n    if (\n      setTrackStyle ||\n      React.Children.count(this.props.children) !==\n        React.Children.count(spec.children)\n    ) {\n      updatedState[\"trackStyle\"] = trackStyle;\n    }\n    this.setState(updatedState, callback);\n  };\n\n  ssrInit = () => {\n    if (this.props.variableWidth) {\n      let trackWidth = 0,\n        trackLeft = 0;\n      let childrenWidths = [];\n      let preClones = getPreClones({\n        ...this.props,\n        ...this.state,\n        slideCount: this.props.children.length\n      });\n      let postClones = getPostClones({\n        ...this.props,\n        ...this.state,\n        slideCount: this.props.children.length\n      });\n      this.props.children.forEach(child => {\n        childrenWidths.push(child.props.style.width);\n        trackWidth += child.props.style.width;\n      });\n      for (let i = 0; i < preClones; i++) {\n        trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n        trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n      }\n      for (let i = 0; i < postClones; i++) {\n        trackWidth += childrenWidths[i];\n      }\n      for (let i = 0; i < this.state.currentSlide; i++) {\n        trackLeft += childrenWidths[i];\n      }\n      let trackStyle = {\n        width: trackWidth + \"px\",\n        left: -trackLeft + \"px\"\n      };\n      if (this.props.centerMode) {\n        let currentWidth = `${childrenWidths[this.state.currentSlide]}px`;\n        trackStyle.left = `calc(${trackStyle.left} + (100% - ${currentWidth}) / 2 ) `;\n      }\n      return {\n        trackStyle\n      };\n    }\n    let childrenCount = React.Children.count(this.props.children);\n    const spec = { ...this.props, ...this.state, slideCount: childrenCount };\n    let slideCount = getPreClones(spec) + getPostClones(spec) + childrenCount;\n    let trackWidth = (100 / this.props.slidesToShow) * slideCount;\n    let slideWidth = 100 / slideCount;\n    let trackLeft =\n      (-slideWidth *\n        (getPreClones(spec) + this.state.currentSlide) *\n        trackWidth) /\n      100;\n    if (this.props.centerMode) {\n      trackLeft += (100 - (slideWidth * trackWidth) / 100) / 2;\n    }\n    let trackStyle = {\n      width: trackWidth + \"%\",\n      left: trackLeft + \"%\"\n    };\n    return {\n      slideWidth: slideWidth + \"%\",\n      trackStyle: trackStyle\n    };\n  };\n  checkImagesLoad = () => {\n    let images = this.list.querySelectorAll(\".slick-slide img\");\n    let imagesCount = images.length,\n      loadedCount = 0;\n    Array.prototype.forEach.call(images, image => {\n      const handler = () =>\n        ++loadedCount && loadedCount >= imagesCount && this.onWindowResized();\n      if (!image.onclick) {\n        image.onclick = () => image.parentNode.focus();\n      } else {\n        const prevClickHandler = image.onclick;\n        image.onclick = () => {\n          prevClickHandler();\n          image.parentNode.focus();\n        };\n      }\n      if (!image.onload) {\n        if (this.props.lazyLoad) {\n          image.onload = () => {\n            this.adaptHeight();\n            this.callbackTimers.push(\n              setTimeout(this.onWindowResized, this.props.speed)\n            );\n          };\n        } else {\n          image.onload = handler;\n          image.onerror = () => {\n            handler();\n            this.props.onLazyLoadError && this.props.onLazyLoadError();\n          };\n        }\n      }\n    });\n  };\n  progressiveLazyLoad = () => {\n    let slidesToLoad = [];\n    const spec = { ...this.props, ...this.state };\n    for (\n      let index = this.state.currentSlide;\n      index < this.state.slideCount + getPostClones(spec);\n      index++\n    ) {\n      if (this.state.lazyLoadedList.indexOf(index) < 0) {\n        slidesToLoad.push(index);\n        break;\n      }\n    }\n    for (\n      let index = this.state.currentSlide - 1;\n      index >= -getPreClones(spec);\n      index--\n    ) {\n      if (this.state.lazyLoadedList.indexOf(index) < 0) {\n        slidesToLoad.push(index);\n        break;\n      }\n    }\n    if (slidesToLoad.length > 0) {\n      this.setState(state => ({\n        lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n      }));\n      if (this.props.onLazyLoad) {\n        this.props.onLazyLoad(slidesToLoad);\n      }\n    } else {\n      if (this.lazyLoadTimer) {\n        clearInterval(this.lazyLoadTimer);\n        delete this.lazyLoadTimer;\n      }\n    }\n  };\n  slideHandler = (index, dontAnimate = false) => {\n    const {\n      asNavFor,\n      beforeChange,\n      onLazyLoad,\n      speed,\n      afterChange\n    } = this.props;\n    // capture currentslide before state is updated\n    const currentSlide = this.state.currentSlide;\n    let { state, nextState } = slideHandler({\n      index,\n      ...this.props,\n      ...this.state,\n      trackRef: this.track,\n      useCSS: this.props.useCSS && !dontAnimate\n    });\n    if (!state) return;\n    beforeChange && beforeChange(currentSlide, state.currentSlide);\n    let slidesToLoad = state.lazyLoadedList.filter(\n      value => this.state.lazyLoadedList.indexOf(value) < 0\n    );\n    onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n    if (!this.props.waitForAnimate && this.animationEndCallback) {\n      clearTimeout(this.animationEndCallback);\n      afterChange && afterChange(currentSlide);\n      delete this.animationEndCallback;\n    }\n    this.setState(state, () => {\n      // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n      if (asNavFor && this.asNavForIndex !== index) {\n        this.asNavForIndex = index;\n        asNavFor.innerSlider.slideHandler(index);\n      }\n      if (!nextState) return;\n      this.animationEndCallback = setTimeout(() => {\n        const { animating, ...firstBatch } = nextState;\n        this.setState(firstBatch, () => {\n          this.callbackTimers.push(\n            setTimeout(() => this.setState({ animating }), 10)\n          );\n          afterChange && afterChange(state.currentSlide);\n          delete this.animationEndCallback;\n        });\n      }, speed);\n    });\n  };\n  changeSlide = (options, dontAnimate = false) => {\n    const spec = { ...this.props, ...this.state };\n    let targetSlide = changeSlide(spec, options);\n    if (targetSlide !== 0 && !targetSlide) return;\n    if (dontAnimate === true) {\n      this.slideHandler(targetSlide, dontAnimate);\n    } else {\n      this.slideHandler(targetSlide);\n    }\n    this.props.autoplay && this.autoPlay(\"update\");\n    if (this.props.focusOnSelect) {\n      const nodes = this.list.querySelectorAll(\".slick-current\");\n      nodes[0] && nodes[0].focus();\n    }\n  };\n  clickHandler = e => {\n    if (this.clickable === false) {\n      e.stopPropagation();\n      e.preventDefault();\n    }\n    this.clickable = true;\n  };\n  keyHandler = e => {\n    let dir = keyHandler(e, this.props.accessibility, this.props.rtl);\n    dir !== \"\" && this.changeSlide({ message: dir });\n  };\n  selectHandler = options => {\n    this.changeSlide(options);\n  };\n  disableBodyScroll = () => {\n    const preventDefault = e => {\n      e = e || window.event;\n      if (e.preventDefault) e.preventDefault();\n      e.returnValue = false;\n    };\n    window.ontouchmove = preventDefault;\n  };\n  enableBodyScroll = () => {\n    window.ontouchmove = null;\n  };\n  swipeStart = e => {\n    if (this.props.verticalSwiping) {\n      this.disableBodyScroll();\n    }\n    let state = swipeStart(e, this.props.swipe, this.props.draggable);\n    state !== \"\" && this.setState(state);\n  };\n  swipeMove = e => {\n    let state = swipeMove(e, {\n      ...this.props,\n      ...this.state,\n      trackRef: this.track,\n      listRef: this.list,\n      slideIndex: this.state.currentSlide\n    });\n    if (!state) return;\n    if (state[\"swiping\"]) {\n      this.clickable = false;\n    }\n    this.setState(state);\n  };\n  swipeEnd = e => {\n    let state = swipeEnd(e, {\n      ...this.props,\n      ...this.state,\n      trackRef: this.track,\n      listRef: this.list,\n      slideIndex: this.state.currentSlide\n    });\n    if (!state) return;\n    let triggerSlideHandler = state[\"triggerSlideHandler\"];\n    delete state[\"triggerSlideHandler\"];\n    this.setState(state);\n    if (triggerSlideHandler === undefined) return;\n    this.slideHandler(triggerSlideHandler);\n    if (this.props.verticalSwiping) {\n      this.enableBodyScroll();\n    }\n  };\n  touchEnd = e => {\n    this.swipeEnd(e);\n    this.clickable = true;\n  };\n  slickPrev = () => {\n    // this and fellow methods are wrapped in setTimeout\n    // to make sure initialize setState has happened before\n    // any of such methods are called\n    this.callbackTimers.push(\n      setTimeout(() => this.changeSlide({ message: \"previous\" }), 0)\n    );\n  };\n  slickNext = () => {\n    this.callbackTimers.push(\n      setTimeout(() => this.changeSlide({ message: \"next\" }), 0)\n    );\n  };\n  slickGoTo = (slide, dontAnimate = false) => {\n    slide = Number(slide);\n    if (isNaN(slide)) return \"\";\n    this.callbackTimers.push(\n      setTimeout(\n        () =>\n          this.changeSlide(\n            {\n              message: \"index\",\n              index: slide,\n              currentSlide: this.state.currentSlide\n            },\n            dontAnimate\n          ),\n        0\n      )\n    );\n  };\n  play = () => {\n    var nextIndex;\n    if (this.props.rtl) {\n      nextIndex = this.state.currentSlide - this.props.slidesToScroll;\n    } else {\n      if (canGoNext({ ...this.props, ...this.state })) {\n        nextIndex = this.state.currentSlide + this.props.slidesToScroll;\n      } else {\n        return false;\n      }\n    }\n\n    this.slideHandler(nextIndex);\n  };\n\n  autoPlay = playType => {\n    if (this.autoplayTimer) {\n      clearInterval(this.autoplayTimer);\n    }\n    const autoplaying = this.state.autoplaying;\n    if (playType === \"update\") {\n      if (\n        autoplaying === \"hovered\" ||\n        autoplaying === \"focused\" ||\n        autoplaying === \"paused\"\n      ) {\n        return;\n      }\n    } else if (playType === \"leave\") {\n      if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n        return;\n      }\n    } else if (playType === \"blur\") {\n      if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n        return;\n      }\n    }\n    this.autoplayTimer = setInterval(this.play, this.props.autoplaySpeed + 50);\n    this.setState({ autoplaying: \"playing\" });\n  };\n  pause = pauseType => {\n    if (this.autoplayTimer) {\n      clearInterval(this.autoplayTimer);\n      this.autoplayTimer = null;\n    }\n    const autoplaying = this.state.autoplaying;\n    if (pauseType === \"paused\") {\n      this.setState({ autoplaying: \"paused\" });\n    } else if (pauseType === \"focused\") {\n      if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n        this.setState({ autoplaying: \"focused\" });\n      }\n    } else {\n      // pauseType  is 'hovered'\n      if (autoplaying === \"playing\") {\n        this.setState({ autoplaying: \"hovered\" });\n      }\n    }\n  };\n  onDotsOver = () => this.props.autoplay && this.pause(\"hovered\");\n  onDotsLeave = () =>\n    this.props.autoplay &&\n    this.state.autoplaying === \"hovered\" &&\n    this.autoPlay(\"leave\");\n  onTrackOver = () => this.props.autoplay && this.pause(\"hovered\");\n  onTrackLeave = () =>\n    this.props.autoplay &&\n    this.state.autoplaying === \"hovered\" &&\n    this.autoPlay(\"leave\");\n  onSlideFocus = () => this.props.autoplay && this.pause(\"focused\");\n  onSlideBlur = () =>\n    this.props.autoplay &&\n    this.state.autoplaying === \"focused\" &&\n    this.autoPlay(\"blur\");\n\n  render = () => {\n    var className = classnames(\"slick-slider\", this.props.className, {\n      \"slick-vertical\": this.props.vertical,\n      \"slick-initialized\": true\n    });\n    let spec = { ...this.props, ...this.state };\n    let trackProps = extractObject(spec, [\n      \"fade\",\n      \"cssEase\",\n      \"speed\",\n      \"infinite\",\n      \"centerMode\",\n      \"focusOnSelect\",\n      \"currentSlide\",\n      \"lazyLoad\",\n      \"lazyLoadedList\",\n      \"rtl\",\n      \"slideWidth\",\n      \"slideHeight\",\n      \"listHeight\",\n      \"vertical\",\n      \"slidesToShow\",\n      \"slidesToScroll\",\n      \"slideCount\",\n      \"trackStyle\",\n      \"variableWidth\",\n      \"unslick\",\n      \"centerPadding\",\n      \"targetSlide\",\n      \"useCSS\"\n    ]);\n    const { pauseOnHover } = this.props;\n    trackProps = {\n      ...trackProps,\n      onMouseEnter: pauseOnHover ? this.onTrackOver : null,\n      onMouseLeave: pauseOnHover ? this.onTrackLeave : null,\n      onMouseOver: pauseOnHover ? this.onTrackOver : null,\n      focusOnSelect:\n        this.props.focusOnSelect && this.clickable ? this.selectHandler : null\n    };\n\n    var dots;\n    if (\n      this.props.dots === true &&\n      this.state.slideCount >= this.props.slidesToShow\n    ) {\n      let dotProps = extractObject(spec, [\n        \"dotsClass\",\n        \"slideCount\",\n        \"slidesToShow\",\n        \"currentSlide\",\n        \"slidesToScroll\",\n        \"clickHandler\",\n        \"children\",\n        \"customPaging\",\n        \"infinite\",\n        \"appendDots\"\n      ]);\n      const { pauseOnDotsHover } = this.props;\n      dotProps = {\n        ...dotProps,\n        clickHandler: this.changeSlide,\n        onMouseEnter: pauseOnDotsHover ? this.onDotsLeave : null,\n        onMouseOver: pauseOnDotsHover ? this.onDotsOver : null,\n        onMouseLeave: pauseOnDotsHover ? this.onDotsLeave : null\n      };\n      dots = <Dots {...dotProps} />;\n    }\n\n    var prevArrow, nextArrow;\n    let arrowProps = extractObject(spec, [\n      \"infinite\",\n      \"centerMode\",\n      \"currentSlide\",\n      \"slideCount\",\n      \"slidesToShow\",\n      \"prevArrow\",\n      \"nextArrow\"\n    ]);\n    arrowProps.clickHandler = this.changeSlide;\n\n    if (this.props.arrows) {\n      prevArrow = <PrevArrow {...arrowProps} />;\n      nextArrow = <NextArrow {...arrowProps} />;\n    }\n\n    var verticalHeightStyle = null;\n\n    if (this.props.vertical) {\n      verticalHeightStyle = {\n        height: this.state.listHeight\n      };\n    }\n\n    var centerPaddingStyle = null;\n\n    if (this.props.vertical === false) {\n      if (this.props.centerMode === true) {\n        centerPaddingStyle = {\n          padding: \"0px \" + this.props.centerPadding\n        };\n      }\n    } else {\n      if (this.props.centerMode === true) {\n        centerPaddingStyle = {\n          padding: this.props.centerPadding + \" 0px\"\n        };\n      }\n    }\n\n    const listStyle = { ...verticalHeightStyle, ...centerPaddingStyle };\n    const touchMove = this.props.touchMove;\n    let listProps = {\n      className: \"slick-list\",\n      style: listStyle,\n      onClick: this.clickHandler,\n      onMouseDown: touchMove ? this.swipeStart : null,\n      onMouseMove: this.state.dragging && touchMove ? this.swipeMove : null,\n      onMouseUp: touchMove ? this.swipeEnd : null,\n      onMouseLeave: this.state.dragging && touchMove ? this.swipeEnd : null,\n      onTouchStart: touchMove ? this.swipeStart : null,\n      onTouchMove: this.state.dragging && touchMove ? this.swipeMove : null,\n      onTouchEnd: touchMove ? this.touchEnd : null,\n      onTouchCancel: this.state.dragging && touchMove ? this.swipeEnd : null,\n      onKeyDown: this.props.accessibility ? this.keyHandler : null\n    };\n\n    let innerSliderProps = {\n      className: className,\n      dir: \"ltr\",\n      style: this.props.style\n    };\n\n    if (this.props.unslick) {\n      listProps = { className: \"slick-list\" };\n      innerSliderProps = { className };\n    }\n    return (\n      <div {...innerSliderProps}>\n        {!this.props.unslick ? prevArrow : \"\"}\n        <div ref={this.listRefHandler} {...listProps}>\n          <Track ref={this.trackRefHandler} {...trackProps}>\n            {this.props.children}\n          </Track>\n        </div>\n        {!this.props.unslick ? nextArrow : \"\"}\n        {!this.props.unslick ? dots : \"\"}\n      </div>\n    );\n  };\n}\n","import React from \"react\";\n\nlet defaultProps = {\n  accessibility: true,\n  adaptiveHeight: false,\n  afterChange: null,\n  appendDots: dots => <ul style={{ display: \"block\" }}>{dots}</ul>,\n  arrows: true,\n  autoplay: false,\n  autoplaySpeed: 3000,\n  beforeChange: null,\n  centerMode: false,\n  centerPadding: \"50px\",\n  className: \"\",\n  cssEase: \"ease\",\n  customPaging: i => <button>{i + 1}</button>,\n  dots: false,\n  dotsClass: \"slick-dots\",\n  draggable: true,\n  easing: \"linear\",\n  edgeFriction: 0.35,\n  fade: false,\n  focusOnSelect: false,\n  infinite: true,\n  initialSlide: 0,\n  lazyLoad: null,\n  nextArrow: null,\n  onEdge: null,\n  onInit: null,\n  onLazyLoadError: null,\n  onReInit: null,\n  pauseOnDotsHover: false,\n  pauseOnFocus: false,\n  pauseOnHover: true,\n  prevArrow: null,\n  responsive: null,\n  rows: 1,\n  rtl: false,\n  slide: \"div\",\n  slidesPerRow: 1,\n  slidesToScroll: 1,\n  slidesToShow: 1,\n  speed: 500,\n  swipe: true,\n  swipeEvent: null,\n  swipeToSlide: false,\n  touchMove: true,\n  touchThreshold: 5,\n  useCSS: true,\n  useTransform: true,\n  variableWidth: false,\n  vertical: false,\n  waitForAnimate: true\n};\n\nexport default defaultProps;\n","\"use strict\";\n\nimport React from \"react\";\nimport { InnerSlider } from \"./inner-slider\";\nimport json2mq from \"json2mq\";\nimport defaultProps from \"./default-props\";\nimport { canUseDOM } from \"./utils/innerSliderUtils\";\n\nexport default class Slider extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      breakpoint: null\n    };\n    this._responsiveMediaHandlers = [];\n  }\n\n  innerSliderRefHandler = ref => (this.innerSlider = ref);\n\n  media(query, handler) {\n    // javascript handler for  css media query\n    const mql = window.matchMedia(query);\n    const listener = ({ matches }) => {\n      if (matches) {\n        handler();\n      }\n    };\n    mql.addListener(listener);\n    listener(mql);\n    this._responsiveMediaHandlers.push({ mql, query, listener });\n  }\n\n  // handles responsive breakpoints\n  componentDidMount() {\n    // performance monitoring\n    //if (process.env.NODE_ENV !== 'production') {\n    //const { whyDidYouUpdate } = require('why-did-you-update')\n    //whyDidYouUpdate(React)\n    //}\n    if (this.props.responsive) {\n      let breakpoints = this.props.responsive.map(\n        breakpt => breakpt.breakpoint\n      );\n      // sort them in increasing order of their numerical value\n      breakpoints.sort((x, y) => x - y);\n\n      breakpoints.forEach((breakpoint, index) => {\n        // media query for each breakpoint\n        let bQuery;\n        if (index === 0) {\n          bQuery = json2mq({ minWidth: 0, maxWidth: breakpoint });\n        } else {\n          bQuery = json2mq({\n            minWidth: breakpoints[index - 1] + 1,\n            maxWidth: breakpoint\n          });\n        }\n        // when not using server side rendering\n        canUseDOM() &&\n          this.media(bQuery, () => {\n            this.setState({ breakpoint: breakpoint });\n          });\n      });\n\n      // Register media query for full screen. Need to support resize from small to large\n      // convert javascript object to media query string\n      let query = json2mq({ minWidth: breakpoints.slice(-1)[0] });\n\n      canUseDOM() &&\n        this.media(query, () => {\n          this.setState({ breakpoint: null });\n        });\n    }\n  }\n\n  componentWillUnmount() {\n    this._responsiveMediaHandlers.forEach(function(obj) {\n      obj.mql.removeListener(obj.listener);\n    });\n  }\n\n  slickPrev = () => this.innerSlider.slickPrev();\n\n  slickNext = () => this.innerSlider.slickNext();\n\n  slickGoTo = (slide, dontAnimate = false) =>\n    this.innerSlider.slickGoTo(slide, dontAnimate);\n\n  slickPause = () => this.innerSlider.pause(\"paused\");\n\n  slickPlay = () => this.innerSlider.autoPlay(\"play\");\n\n  render() {\n    var settings;\n    var newProps;\n    if (this.state.breakpoint) {\n      newProps = this.props.responsive.filter(\n        resp => resp.breakpoint === this.state.breakpoint\n      );\n      settings =\n        newProps[0].settings === \"unslick\"\n          ? \"unslick\"\n          : { ...defaultProps, ...this.props, ...newProps[0].settings };\n    } else {\n      settings = { ...defaultProps, ...this.props };\n    }\n\n    // force scrolling by one if centerMode is on\n    if (settings.centerMode) {\n      if (\n        settings.slidesToScroll > 1 &&\n        process.env.NODE_ENV !== \"production\"\n      ) {\n        console.warn(\n          `slidesToScroll should be equal to 1 in centerMode, you are using ${settings.slidesToScroll}`\n        );\n      }\n      settings.slidesToScroll = 1;\n    }\n    // force showing one slide and scrolling by one if the fade mode is on\n    if (settings.fade) {\n      if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n        console.warn(\n          `slidesToShow should be equal to 1 when fade is true, you're using ${settings.slidesToShow}`\n        );\n      }\n      if (\n        settings.slidesToScroll > 1 &&\n        process.env.NODE_ENV !== \"production\"\n      ) {\n        console.warn(\n          `slidesToScroll should be equal to 1 when fade is true, you're using ${settings.slidesToScroll}`\n        );\n      }\n      settings.slidesToShow = 1;\n      settings.slidesToScroll = 1;\n    }\n\n    // makes sure that children is an array, even when there is only 1 child\n    let children = React.Children.toArray(this.props.children);\n\n    // Children may contain false or null, so we should filter them\n    // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n    children = children.filter(child => {\n      if (typeof child === \"string\") {\n        return !!child.trim();\n      }\n      return !!child;\n    });\n\n    // rows and slidesPerRow logic is handled here\n    if (\n      settings.variableWidth &&\n      (settings.rows > 1 || settings.slidesPerRow > 1)\n    ) {\n      console.warn(\n        `variableWidth is not supported in case of rows > 1 or slidesPerRow > 1`\n      );\n      settings.variableWidth = false;\n    }\n    let newChildren = [];\n    let currentWidth = null;\n    for (\n      let i = 0;\n      i < children.length;\n      i += settings.rows * settings.slidesPerRow\n    ) {\n      let newSlide = [];\n      for (\n        let j = i;\n        j < i + settings.rows * settings.slidesPerRow;\n        j += settings.slidesPerRow\n      ) {\n        let row = [];\n        for (let k = j; k < j + settings.slidesPerRow; k += 1) {\n          if (settings.variableWidth && children[k].props.style) {\n            currentWidth = children[k].props.style.width;\n          }\n          if (k >= children.length) break;\n          row.push(\n            React.cloneElement(children[k], {\n              key: 100 * i + 10 * j + k,\n              tabIndex: -1,\n              style: {\n                width: `${100 / settings.slidesPerRow}%`,\n                display: \"inline-block\"\n              }\n            })\n          );\n        }\n        newSlide.push(<div key={10 * i + j}>{row}</div>);\n      }\n      if (settings.variableWidth) {\n        newChildren.push(\n          <div key={i} style={{ width: currentWidth }}>\n            {newSlide}\n          </div>\n        );\n      } else {\n        newChildren.push(<div key={i}>{newSlide}</div>);\n      }\n    }\n\n    if (settings === \"unslick\") {\n      const className = \"regular slider \" + (this.props.className || \"\");\n      return <div className={className}>{children}</div>;\n    } else if (newChildren.length <= settings.slidesToShow) {\n      settings.unslick = true;\n    }\n    return (\n      <InnerSlider\n        style={this.props.style}\n        ref={this.innerSliderRefHandler}\n        {...settings}\n      >\n        {newChildren}\n      </InnerSlider>\n    );\n  }\n}\n","import Slider from \"./slider\";\n\nexport default Slider;\n"],"sourceRoot":""}