{"version":3,"sources":["webpack:///./node_modules/nicescroll/jquery.nicescroll.js"],"names":["__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","__webpack_require__","undefined","jQuery","domfocus","mousefocus","tabindexcounter","ascrailcounter","globalmaxzindex","$","_doc","document","_win","window","$window","delegatevents","setAnimationFrame","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","clearAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","id","anilasttime","callback","element","currTime","Date","getTime","timeToCall","Math","max","setTimeout","clearTimeout","scripts","path","s","ClsMutationObserver","MutationObserver","WebKitMutationObserver","now","_globaloptions","zindex","cursoropacitymin","cursoropacitymax","cursorcolor","cursorwidth","cursorborder","cursorborderradius","scrollspeed","mousescrollstep","touchbehavior","emulatetouch","hwacceleration","usetransition","boxzoom","dblclickzoom","gesturezoom","grabcursorenabled","autohidemode","background","iframeautoresize","cursorminheight","preservenativescrolling","railoffset","railhoffset","bouncescroll","spacebarenabled","railpadding","top","right","left","bottom","disableoutline","horizrailenabled","railalign","railvalign","enabletranslate3d","enablemousewheel","enablekeyboard","smoothscroll","sensitiverail","enablemouselockapi","cursorfixedheight","directionlockdeadzone","hidecursordelay","nativeparentscrolling","enablescrollonselection","overflowx","overflowy","cursordragspeed","rtlmode","cursordragontouch","oneaxismousemode","scriptpath","currentScript","getElementsByTagName","length","src","split","slice","join","preventmultitouchscrolling","disablemutationobserver","enableobserver","scrollbarid","browserdetected","NiceScrollClass","myopt","me","self","this","version","name","$body","opt","doc","win","extend","snapbackspeed","a","iddoc","ispage","test","nodeName","haswrapper","docscroll","body","viewport","isfixed","iframe","isiframe","istextarea","forcescreen","canshowonmouseevent","onmousedown","onmouseup","onmousemove","onmousewheel","onkeypress","ongesturezoom","onclick","onscrollstart","onscrollend","onscrollcancel","onzoomin","onzoomout","view","page","scroll","x","y","scrollratio","cursorheight","scrollvaluemax","target","writingMode","css","isrtlmode","isvertical","scrollrunning","scrollmom","observer","observerremover","observerbody","getElementById","rail","cursor","cursorfreezed","selectiondrag","zoom","zoomactive","hasfocus","hasmousefocus","visibility","railslocked","locked","hidden","cursoractive","wheelprevented","nativescrollingarea","checkarea","events","saved","delaylist","synclist","lastdeltax","lastdeltay","detected","_el","createElement","_style","style","_agent","navigator","userAgent","_platform","platform","d","haspointerlock","isopera","isopera12","isoperamini","Object","prototype","toString","call","operamini","isie","isieold","isie7","documentMode","isie8","isie9","isie10","isie11","ismsedge","ismozilla","iswebkit","ischrome","ischrome38","ischrome22","ischrome26","cantouch","documentElement","hasw3ctouch","PointerEvent","MaxTouchPoints","msMaxTouchPoints","hasmstouch","MSPointerEvent","ismac","isios","isios4","isios7","isios8","isios10","Proxy","isandroid","haseventlistener","trstyle","hastransform","hastranslate3d","transitionstyle","hastransition","transitionend","check","c","prefixstyle","prefix","evs","cursorgrabvalue","lst","l","p","detectCursorGrab","hasmousecapture","hasMutationObserver","getBrowserDetection","cap","canhwscroll","ishwscroll","hasreversehr","istouchcapable","debounced","fn","tm","dd","h","synched","unsynched","el","pars","n","push","scrollTop","val","getScrollTop","setScrollTop","scrollLeft","getScrollLeft","setScrollLeft","BezierClass","st","ed","spd","p1","p2","p3","p4","ts","df","getMatrixValues","tr","substr","replace","B2","t","B3","B4","getPos","getNow","pc","bz","update","translate","tx","ty","last","mtx","timerscroll","bh","notifyScrollEvent","e","createEvent","initUIEvent","niceevent","dispatchEvent","cxscrollleft","silent","maxw","abs","getTarget","srcElement","hasParent","parentNode","_convertBorderWidth","thin","medium","thick","getWidthToPixel","dom","prop","chkheight","wd","px","parseFloat","isNaN","brd","outerHeight","innerHeight","outerWidth","innerWidth","getDocumentScrollOffset","pageYOffset","pageXOffset","getOffset","ofs","offset","scrl","ww","vp","updateScrollBar","len","pos","off","height","railh","width","wpos","align","doRailClick","dbl","hr","pg","cur","cancelEvent","pageX","clientX","pageY","clientY","doScrollLeft","doScrollTop","doScrollLeftBy","doScrollBy","w","newscrolly","newscrollx","hasanimationframe","hascancelanimationframe","hasborderbox","init","getComputedStyle","_scrollyhidden","overflow-y","bind","onScrollTransitionEnd","zIndex","nodeType","zi","parseInt","parent","getZIndex","cont","-webkit-overflow-scrolling","position","float","background-color","border","background-clip","-webkit-border-radius","-moz-border-radius","border-radius","addClass","attr","v","kp","append","scrollable","drag","doZoom","backgroundImage","backgroundPosition","scale","doZoomIn","doZoomOut","overflowX","backgroundColor","backgroundClip","cursorh","bd","margin-right","rlpos","getViewport","-webkit-tap-highlight-color","-webkit-touch-callout","autohidedom","opacity","add","hide","ScrollMomentumClass2D","ontouchstart","pointerType","MSPOINTER_TYPE_MOUSE","hasmoving","timer","triggerScrollEnd","stop","tg","skp","type","stopPropagation","ismouse","changedTouches","le","original","screenX","screenY","sx","sy","sl","pt","dl","getContentSize","maxh","ck","wp","lastmouseup","reset","ip","setCapture","_onclick","preventclick","click","ontouchend","doMomentum","hideCursor","releaseCapture","moveneedoffset","locktollerance","ontouchmove","byiframe","targetTouches","ofy","ofx","fy","my","fx","mx","ny","round","nx","ay","ax","dz","triggerScrollStart","onpreventclick","prepareTransition","resetTransition","showCursor","selection","clear","ontouchstartCursor","hronly","cancelScroll","touches","csspointerevents","pointer-events","ontouchendCursor","ontouchmoveCursor","mw","scrollvaluemaxw","which","checkSelectionScroll","rt","hasTextSelected","getSelection","rangeCount","onselectionstart","onselectionend","onselectiondrag","touch-action","delegate","-ms-touch-action","preventDefault","jqbind","is","active","mousewheel","onmousewheelhr","tabindex","noticeCursor","event","tp","getAttribute","key","keyCode","ctrl","ctrlKey","shift","shiftKey","ret","doScrollPos","doScrollTo","onscreenresize","lazyResize","tmp","onAttributeChange","mutations","forEach","mut","hasClass","contains","show","clientWidth","clientHeight","observe","childList","subtree","characterData","attributes","attributeFilter","mo","removedNodes","remove","attachEvent","resizeZoom","oniframeload","iframexd","contentDocument","contentWindow","domain","console","log","html","contents","find","scrollWidth","scrollHeight","hh","-webkit-transform","onscroll","readyState","py","cursortimeout","lx","showonmouseevent","animate","offsetWidth","offsetHeight","onResize","premaxh","premaxw","previewh","previeww","lastposition","hideRail","hideRailHr","showRailHr","showRail","min","resize","hlazyresize","_modernWheelEvent","bubble","_bind","deltaMode","deltaX","deltaZ","returnValue","stopImmediatePropagation","cancelBubble","wheelDeltaX","wheelDeltaY","deltaY","wheelDelta","detail","hiderails","hideRails","showRails","f","q","on","wname","passiveSupported","options","defineProperty","get","addEventListener","err","cancelable","preventManipulation","Event","constructor","Element","listener","useCapture","removeEventListener","detachEvent","cancel","de","r","concat","undelegate","splice","_unbind","del","b","passive","capture","bub","unbindAll","unbind","toggle","disconnect","data","nicescroll","i","each","scrollstart","scrollend","scrollcancel","zoomin","zoomout","isScrollable","ov","getNiceScroll","cx","cy","rx","ry","ms","info","current","request","end","speed","scrolldiry","scrolldirx","scrolltmr","scrollspd","doScrollRelative","chkscroll","iswheel","gap","dx","chk","dy","dty","dtx","hasparentscrollingphase","execScrollWheel","hrend","nw","scrollmon","getTransitionSpeed","dif","lasttransitionstyle","istime","ex","trans","cursorupdate","running","start","m","loop","lft","dst","sqrt","scrollendtrapped","clearInterval","clipped","bzscroll","stp","relative","checkContentSize","zoomrestore","pp","padding","margin","bkg","z-index","nc","lastx","lasty","speedx","speedy","lasttime","steptime","snapx","snapy","demulx","demuly","lastscrollx","lastscrolly","chkx","chky","newy","newx","doSnapy","snap","gp","pageh","pagew","xm","demulxy","floor","_scrollTop","cssHooks","elem","computed","extra","nice","set","value","_scrollLeft","NiceScrollArray","doms","eq","idx","mplex","args","arguments","apply","index","expr","pseudos","niceScroll","wrapper","_opt","$this","wrp","NiceScroll","getjQuery","exports","module"],"mappings":"4FAAA,IAAAA,EAAAC,EAAAC,EAeID,EAAO,CAACE,EAAA,UAAkBC,KAAAF,EAAA,mBAATF,EAQpB,SAAAK,GAED,aAGA,IAAAC,GAAA,EACAC,GAAA,EACAC,EAAA,EACAC,EAAA,IACAC,EAAA,EAEAC,EAAAN,EACAO,EAAAC,SACAC,EAAAC,OACAC,EAAAL,EAAAG,GAEAG,EAAA,GAUAC,EAAAJ,EAAAK,uBAAAL,EAAAM,6BAAAN,EAAAO,2BAAA,EACAC,EAAAR,EAAAS,sBAAAT,EAAAU,4BAAAV,EAAAW,0BAAA,EAEA,GAAAP,EAcAJ,EAAAS,uBAAAD,EAAA,SAAAI,UAdA,CACA,IAAAC,EAAA,EACAT,EAAA,SAAAU,EAAAC,GACA,IAAAC,GAAA,IAAAC,MAAAC,UACAC,EAAAC,KAAAC,IAAA,MAAAL,EAAAH,IACAD,EAAAZ,EAAAsB,WAAA,WAA4CR,EAAAE,EAAAG,IAC5CA,GAEA,OADAN,EAAAG,EAAAG,EACAP,GAEAJ,EAAA,SAAAI,GACAZ,EAAAuB,aAAAX,IAMA,IA1BAY,EACAC,EADsDC,EA0BtDC,EAAA3B,EAAA4B,kBAAA5B,EAAA6B,yBAAA,EAEAC,EAAAb,KAAAa,KAAA,WAAqC,WAAAb,MAAAC,WAErCa,EAAA,CACAC,OAAA,OACAC,iBAAA,EACAC,iBAAA,EACAC,YAAA,UACAC,YAAA,MACAC,aAAA,iBACAC,mBAAA,MACAC,YAAA,GACAC,gBAAA,GACAC,eAAA,EACAC,cAAA,EACAC,gBAAA,EACAC,eAAA,EACAC,SAAA,EACAC,cAAA,EACAC,aAAA,EACAC,mBAAA,EACAC,cAAA,EACAC,WAAA,GACAC,kBAAA,EACAC,gBAAA,GACAC,yBAAA,EACAC,YAAA,EACAC,aAAA,EACAC,cAAA,EACAC,iBAAA,EACAC,YAAA,CACAC,IAAA,EACAC,MAAA,EACAC,KAAA,EACAC,OAAA,GAEAC,gBAAA,EACAC,kBAAA,EACAC,UAAA,QACAC,WAAA,SACAC,mBAAA,EACAC,kBAAA,EACAC,gBAAA,EACAC,cAAA,EACAC,eAAA,EACAC,oBAAA,EAEAC,mBAAA,EACAC,sBAAA,EACAC,gBAAA,IACAC,uBAAA,EACAC,yBAAA,EACAC,WAAA,EACAC,WAAA,EACAC,gBAAA,GACAC,QAAA,OACAC,mBAAA,EACAC,iBAAA,OACAC,YArFA5D,EAAA1B,EAAAuF,gBAAsD3D,EAAA5B,EAAAwF,qBAAA,YAA6C5D,EAAA,QAAAA,IAAA6D,OAAA,IACnG9D,EAAAD,IAAAgE,IAAAC,MAAA,WACAhE,EAAAgE,MAAA,KAAAF,OAAA,EAAA9D,EAAAgE,MAAA,KAAAC,MAAA,MAAAC,KAAA,aAoFAC,4BAAA,EACAC,yBAAA,EACAC,gBAAA,EACAC,aAAA,GAGAC,GAAA,EA4HAC,EAAA,SAAAC,EAAAC,GAEA,IAAAC,EAAAC,KAEAA,KAAAC,QAAA,QACAD,KAAAE,KAAA,aAEAF,KAAAF,KAEA,IAAAK,EAAA3G,EAAA,QAEA4G,EAAAJ,KAAAI,IAAA,CACAC,IAAAF,EACAG,KAAA,GAQA,GALA9G,EAAA+G,OAAAH,EAAA1E,GAGA0E,EAAAI,cAAA,GAEAX,EACA,QAAAY,KAAAL,OACAnH,IAAA4G,EAAAY,KAAAL,EAAAK,GAAAZ,EAAAY,IA4DA,GAxDAL,EAAAZ,0BAAAlE,GAAA,GAEA0E,KAAAK,IAAAD,EAAAC,IACAL,KAAAU,MAAAV,KAAAK,KAAAL,KAAAK,IAAA,IAAAL,KAAAK,IAAA,GAAA9F,IAAA,GACAyF,KAAAW,OAAA,aAAAC,KAAAR,EAAA,IAAAA,EAAAE,IAAA,GAAAO,SAAAb,KAAAK,IAAA,GAAAQ,UACAb,KAAAc,YAAA,IAAAV,EAAAE,IACAN,KAAAM,IAAAF,EAAAE,MAAAN,KAAAW,OAAA9G,EAAAmG,KAAAK,KACAL,KAAAe,UAAAf,KAAAW,SAAAX,KAAAc,WAAAjH,EAAAmG,KAAAM,IACAN,KAAAgB,KAAAb,EACAH,KAAAiB,UAAA,EAEAjB,KAAAkB,SAAA,EAEAlB,KAAAmB,QAAA,EACAnB,KAAAoB,SAAA,UAAApB,KAAAK,IAAA,GAAAQ,UAAA,UAAAb,KAAAM,IAAA,GAAAO,SAEAb,KAAAqB,WAAA,YAAArB,KAAAM,IAAA,GAAAO,SAEAb,KAAAsB,aAAA,EAEAtB,KAAAuB,oBAAA,UAAAnB,EAAAxD,aAGAoD,KAAAwB,aAAA,EACAxB,KAAAyB,WAAA,EACAzB,KAAA0B,aAAA,EACA1B,KAAA2B,cAAA,EACA3B,KAAA4B,YAAA,EACA5B,KAAA6B,eAAA,EACA7B,KAAA8B,SAAA,EAGA9B,KAAA+B,eAAA,EACA/B,KAAAgC,aAAA,EACAhC,KAAAiC,gBAAA,EAEAjC,KAAAkC,UAAA,EACAlC,KAAAmC,WAAA,EAGAnC,KAAAoC,MAAA,EACApC,KAAAqC,MAAA,EAEArC,KAAAsC,OAAA,CACAC,EAAA,EACAC,EAAA,GAEAxC,KAAAyC,YAAA,CACAF,EAAA,EACAC,EAAA,GAEAxC,KAAA0C,aAAA,GACA1C,KAAA2C,eAAA,EAIA,QAAAvC,EAAAxB,QAAA,CACA,IAAAgE,EAAA5C,KAAAM,IAAA,IAAA3G,EAAAqG,KAAAgB,KAAAhB,KAAAM,IACAuC,EAAAD,EAAAE,IAAA,iBAAAF,EAAAE,IAAA,yBAAAF,EAAAE,IAAA,qBAAAF,EAAAE,IAAA,qBAEA,iBAAAD,GAAA,SAAAA,GAAA,KAAAA,GACA7C,KAAA+C,UAAA,OAAAH,EAAAE,IAAA,aACA9C,KAAAgD,YAAA,IAEAhD,KAAA+C,UAAA,eAAAF,GAAA,MAAAA,GAAA,SAAAA,GAAA,SAAAA,EACA7C,KAAAgD,WAAA,eAAAH,GAAA,MAAAA,GAAA,SAAAA,QAGA7C,KAAA+C,WAAA,IAAA3C,EAAAxB,QACAoB,KAAAgD,YAAA,EAYA,GARAhD,KAAAiD,eAAA,EAEAjD,KAAAkD,WAAA,EAEAlD,KAAAmD,UAAA,EACAnD,KAAAoD,iBAAA,EACApD,KAAAqD,cAAA,GAEA,IAAAjD,EAAAV,YACAM,KAAAzF,GAAA6F,EAAAV,iBAEA,GACAM,KAAAzF,GAAA,UAAAjB,UACOG,EAAA6J,eAAAtD,KAAAzF,KAGPyF,KAAAuD,MAAA,EACAvD,KAAAwD,QAAA,EACAxD,KAAAyD,eAAA,EACAzD,KAAA0D,eAAA,EAEA1D,KAAA2D,MAAA,EACA3D,KAAA4D,YAAA,EAEA5D,KAAA6D,UAAA,EACA7D,KAAA8D,eAAA,EAEA9D,KAAA+D,YAAA,EACA/D,KAAAgE,aAAA,EACAhE,KAAAiE,QAAA,EACAjE,KAAAkE,QAAA,EACAlE,KAAAmE,cAAA,EAEAnE,KAAAoE,gBAAA,EAEApE,KAAAvB,UAAA2B,EAAA3B,UACAuB,KAAAtB,UAAA0B,EAAA1B,UAEAsB,KAAAqE,qBAAA,EACArE,KAAAsE,UAAA,EAEAtE,KAAAuE,OAAA,GAEAvE,KAAAwE,MAAA,GAEAxE,KAAAyE,UAAA,GACAzE,KAAA0E,SAAA,GAEA1E,KAAA2E,WAAA,EACA3E,KAAA4E,WAAA,EAEA5E,KAAA6E,SAjRA,WAEA,GAAAlF,EAAA,OAAAA,EAEA,IAAAmF,EAAArL,EAAAsL,cAAA,OACAC,EAAAF,EAAAG,MACAC,EAAAC,UAAAC,UACAC,EAAAF,UAAAG,SACAC,EAAA,GA+GA,OA7GAA,EAAAC,eAAA,uBAAA/L,GAAA,6BAAAA,GAAA,0BAAAA,EAEA8L,EAAAE,QAAA,UAAA9L,EACA4L,EAAAG,UAAAH,EAAAE,SAAA,iBAAAN,UACAI,EAAAI,YAAA,uBAAAC,OAAAC,UAAAC,SAAAC,KAAApM,EAAAqM,WAEAT,EAAAU,KAAA,QAAAxM,GAAA,gBAAAqL,IAAAS,EAAAE,QACAF,EAAAW,QAAAX,EAAAU,QAAA,wBAAAjB,GACAO,EAAAY,MAAAZ,EAAAU,OAAAV,EAAAW,YAAA,iBAAAzM,IAAA,IAAAA,EAAA2M,cACAb,EAAAc,MAAAd,EAAAU,MAAA,iBAAAxM,GAAA,IAAAA,EAAA2M,aACAb,EAAAe,MAAAf,EAAAU,MAAA,gBAAAtM,GAAA,IAAAF,EAAA2M,aACAb,EAAAgB,OAAAhB,EAAAU,MAAA,gBAAAtM,GAAA,KAAAF,EAAA2M,aACAb,EAAAiB,OAAA,wBAAA1B,GAAArL,EAAA2M,cAAA,GAEAb,EAAAkB,SAAA,kBAAA9M,EAEA4L,EAAAmB,UAAA,kBAAA1B,EAEAO,EAAAoB,UAAApB,EAAAkB,UAAA,qBAAAzB,EAEAO,EAAAqB,SAAArB,EAAAoB,UAAA,WAAAhN,EACA4L,EAAAsB,WAAAtB,EAAAqB,UAAA,gBAAA5B,EACAO,EAAAuB,YAAAvB,EAAAsB,YAAAtB,EAAAqB,UAAArB,EAAAC,eACAD,EAAAwB,YAAAxB,EAAAsB,YAAAtB,EAAAqB,UAAA,eAAA5B,EAEAO,EAAAyB,SAAA,iBAAAvN,EAAAwN,iBAAA,iBAAAtN,EACA4L,EAAA2B,cAAAvN,EAAAwN,eAAAhC,UAAAiC,eAAA,GAAAjC,UAAAkC,iBAAA,GACA9B,EAAA+B,YAAA/B,EAAA2B,cAAAvN,EAAA4N,iBAAA,GAEAhC,EAAAiC,MAAA,SAAA5G,KAAAyE,GAEAE,EAAAkC,MAAAlC,EAAAyB,UAAA,oBAAApG,KAAAyE,GACAE,EAAAmC,OAAAnC,EAAAkC,SAAA,SAAA7B,QACAL,EAAAoC,OAAApC,EAAAkC,OAAA,iBAAAhO,EACA8L,EAAAqC,OAAArC,EAAAkC,OAAA,WAAAhO,EACA8L,EAAAsC,QAAAtC,EAAAkC,OAAA9N,EAAAmO,MAEAvC,EAAAwC,UAAA,WAAAnH,KAAAsE,GAEAK,EAAAyC,iBAAA,qBAAAlD,EAEAS,EAAA0C,SAAA,EACA1C,EAAA2C,cAAA,EACA3C,EAAA4C,gBAAA,EACA5C,EAAA6C,iBAAA,EACA7C,EAAA8C,eAAA,EACA9C,EAAA+C,eAAA,EAEA/C,EAAA0C,QAAA,YACA1C,EAAA2C,aAAA,cAAAlD,GAAA,WAEA,IADA,IAAAuD,EAAA,8DACA9H,EAAA,EAAA+H,EAAAD,EAAArJ,OAAuCuB,EAAA+H,EAAO/H,IAC9C,QAAAxH,IAAA+L,EAAAuD,EAAA9H,IAAA,CACA8E,EAAA0C,QAAAM,EAAA9H,GACA,MAGA8E,EAAA2C,eAAA3C,EAAA0C,QARA,GAWA1C,EAAA2C,eACAlD,EAAAO,EAAA0C,SAAA,2BACA1C,EAAA4C,eAAA,cAAAvH,KAAAoE,EAAAO,EAAA0C,WAGA1C,EAAA6C,gBAAA,aACA7C,EAAAkD,YAAA,GACAlD,EAAA+C,cAAA,gBAEA/C,EAAA8C,cAAA,eAAArD,GAAA,WAEAO,EAAA+C,eAAA,EAIA,IAHA,IAAAC,EAAA,kGACAG,EAAA,iDACAC,EAAA,iHACAlI,EAAA,EAAA+H,EAAAD,EAAArJ,OAAuCuB,EAAA+H,EAAO/H,IAC9C,GAAA8H,EAAA9H,KAAAuE,EAAA,CACAO,EAAA6C,gBAAAG,EAAA9H,GACA8E,EAAAkD,YAAAC,EAAAjI,GACA8E,EAAA+C,cAAAK,EAAAlI,GACA,MAGA8E,EAAAwB,aAAAxB,EAAAkD,YAAAC,EAAA,IAEAnD,EAAA8C,cAAA9C,EAAA,gBAhBA,GA8BAA,EAAAqD,gBAVA,WACA,IAAAC,EAAA,qCACAtD,EAAAqB,WAAArB,EAAAsB,YAAAtB,EAAAU,QAAA4C,EAAA,IACA,QAAApI,EAAA,EAAAqI,EAAAD,EAAA3J,OAAqCuB,EAAAqI,EAAOrI,IAAA,CAC5C,IAAAsI,EAAAF,EAAApI,GAEA,GADAuE,EAAAxB,OAAAuF,EACA/D,EAAAxB,QAAAuF,EAAA,OAAAA,EAEA,sGAEAC,GAEAzD,EAAA0D,gBAAA,eAAAnE,EAEAS,EAAA2D,qBAAA,IAAA5N,EAEAwJ,EAAA,KAEAnF,EAAA4F,EAEAA,EA0JA4D,GAEA,IAAAC,EAAA5P,EAAA+G,OAAA,GAAyBP,KAAA6E,UAEzB7E,KAAAqJ,YAAAD,EAAAlB,cAAA9H,EAAA9D,eACA0D,KAAAsJ,WAAAtJ,KAAAqJ,aAAAtJ,EAAAe,WAEAd,KAAA+C,UAEK/C,KAAAgD,WACLhD,KAAAuJ,eAAAH,EAAAzC,UAAAyC,EAAAnD,MAAAmD,EAAA5C,QAEAxG,KAAAuJ,eAAAH,EAAAzC,UAAAyC,EAAAnD,OAAAmD,EAAA7C,SAAA6C,EAAA5C,QAJAxG,KAAAuJ,cAAA,EAOAvJ,KAAAwJ,gBAAA,GAKAJ,EAAApC,WAAAoC,EAAAlC,cAAAkC,EAAA9B,eAEK8B,EAAApC,UAAAoC,EAAA3B,OAAA2B,EAAArB,YAAAqB,EAAAzC,WAAAyC,EAAA1C,aADL1G,KAAAwJ,gBAAA,GAMApJ,EAAAjC,qBACAiL,EAAAH,iBAAA,EACAG,EAAA5D,gBAAA,GAGAxF,KAAAyJ,UAAA,SAAAvJ,EAAAwJ,EAAAC,GACA,GAAA5J,EAAA,CACA,IAAA6J,EAAA7J,EAAA0E,UAAAvE,KAAA,EACA0J,IACA7J,EAAA0E,UAAAvE,GAAA,CACA2J,EAAA9P,EAAA,WACAgG,EAAA0E,UAAAvE,GAAAwJ,GAAA3D,KAAAhG,GACAA,EAAA0E,UAAAvE,IAAA,GACWyJ,IAEXD,EAAA3D,KAAAhG,IAEAA,EAAA0E,UAAAvE,GAAAwJ,OAIA1J,KAAA8J,QAAA,SAAA5J,EAAAwJ,GACA3J,EAAA2E,SAAAxE,GAAAH,EAAA2E,SAAAxE,GAAAwJ,GAEA3J,EAAA2E,SAAAxE,GAAAwJ,EACA3P,EAAA,WACAgG,IACAA,EAAA2E,SAAAxE,IAAAH,EAAA2E,SAAAxE,GAAA6F,KAAAhG,GACAA,EAAA2E,SAAAxE,GAAA,UAKAF,KAAA+J,UAAA,SAAA7J,GACAH,EAAA2E,SAAAxE,KAAAH,EAAA2E,SAAAxE,IAAA,IAGAF,KAAA8C,IAAA,SAAAkH,EAAAC,GACA,QAAAC,KAAAD,EACAlK,EAAAyE,MAAA1B,IAAAqH,KAAA,CAAAH,EAAAE,EAAAF,EAAAlH,IAAAoH,KACAF,EAAAlH,IAAAoH,EAAAD,EAAAC,KAIAlK,KAAAoK,UAAA,SAAAC,GACA,YAAApR,IAAAoR,EAAAtK,EAAAuK,eAAAvK,EAAAwK,aAAAF,IAGArK,KAAAwK,WAAA,SAAAH,GACA,YAAApR,IAAAoR,EAAAtK,EAAA0K,gBAAA1K,EAAA2K,cAAAL,IAIA,IAAAM,EAAA,SAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAEAlL,KAAA4K,KACA5K,KAAA6K,KACA7K,KAAA8K,MAEA9K,KAAA+K,MAAA,EACA/K,KAAAgL,MAAA,EACAhL,KAAAiL,MAAA,EACAjL,KAAAkL,MAAA,EAEAlL,KAAAmL,GAAA1P,IACAuE,KAAAoL,GAAAP,EAAAD,GAgCA,SAAAS,IACA,IAAAC,EAAAvL,EAAAM,IAAAyC,IAAAsG,EAAAnB,SACA,SAAAqD,GAAA,UAAAA,EAAAC,OAAA,OACAD,EAAAE,QAAA,sBAAAA,QAAA,UAAApM,MAAA,OAKA,GAtCAuL,EAAA9E,UAAA,CACA4F,GAAA,SAAAC,GAEA,YAAAA,IAAA,EAAAA,MAEAC,GAAA,SAAAD,GACA,YAAAA,QAEAE,GAAA,SAAAF,GACA,OAAAA,OAEAG,OAAA,WACA,OAAApQ,IAAAuE,KAAAmL,IAAAnL,KAAA8K,KAEAgB,OAAA,WACA,IAAAC,GAAAtQ,IAAAuE,KAAAmL,IAAAnL,KAAA8K,IACAkB,EAAAhM,KAAAyL,GAAAM,GAAA/L,KAAA2L,GAAAI,GAAA/L,KAAA4L,GAAAG,GACA,OAAAA,GAAA,EAAA/L,KAAA6K,GAAA7K,KAAA4K,GAAA5K,KAAAoL,GAAAY,EAAA,GAEAC,OAAA,SAAApB,EAAAC,GAMA,OALA9K,KAAA4K,GAAA5K,KAAA8L,SACA9L,KAAA6K,KACA7K,KAAA8K,MACA9K,KAAAmL,GAAA1P,IACAuE,KAAAoL,GAAApL,KAAA6K,GAAA7K,KAAA4K,GACA5K,OAaAA,KAAAsJ,WAAA,CAEAtJ,KAAAK,IAAA6L,UAAA,CACA3J,EAAA,EACAC,EAAA,EACA2J,GAAA,MACAC,GAAA,OAIAhD,EAAAjB,gBAAAiB,EAAA3B,OAAAzH,KAAAK,IAAAyC,IAAA,wCAEA9C,KAAAsK,aAAA,SAAA+B,GACA,IAAAA,EAAA,CACA,IAAAC,EAAAjB,IACA,GAAAiB,EAAA,WAAAA,EAAApN,QAAAoN,EAAA,KAAAA,EAAA,GACA,GAAAvM,EAAAwM,aAAAxM,EAAAwM,YAAAP,GAAA,OAAAjM,EAAAwM,YAAAP,GAAAF,SAEA,OAAA/L,EAAAM,IAAA6L,UAAA1J,GAGAxC,KAAAyK,cAAA,SAAA4B,GACA,IAAAA,EAAA,CACA,IAAAC,EAAAjB,IACA,GAAAiB,EAAA,WAAAA,EAAApN,QAAAoN,EAAA,KAAAA,EAAA,GACA,GAAAvM,EAAAwM,aAAAxM,EAAAwM,YAAAC,GAAA,OAAAzM,EAAAwM,YAAAC,GAAAV,SAEA,OAAA/L,EAAAM,IAAA6L,UAAA3J,GAGAvC,KAAAyM,kBAAA,SAAAzC,GACA,IAAA0C,EAAAjT,EAAAkT,YAAA,YACAD,EAAAE,YAAA,eAAAjT,EAAA,GACA+S,EAAAG,WAAA,EACA7C,EAAA8C,cAAAJ,IAGA,IAAAK,EAAA/M,KAAA,eAEAoJ,EAAAjB,gBAAA/H,EAAAtC,mBACAkC,KAAAuK,aAAA,SAAAF,EAAA2C,GACAjN,EAAAM,IAAA6L,UAAA1J,EAAA6H,EACAtK,EAAAM,IAAA6L,UAAAE,IAAA,EAAA/B,EAAA,KACAtK,EAAAM,IAAAyC,IAAAsG,EAAAnB,QAAA,eAAAlI,EAAAM,IAAA6L,UAAAC,GAAA,IAAApM,EAAAM,IAAA6L,UAAAE,GAAA,OACAY,GAAAjN,EAAA0M,kBAAA1M,EAAAO,IAAA,KAEAN,KAAA0K,cAAA,SAAAL,EAAA2C,GACAjN,EAAAM,IAAA6L,UAAA3J,EAAA8H,EACAtK,EAAAM,IAAA6L,UAAAC,GAAA9B,EAAA0C,EAAA,KACAhN,EAAAM,IAAAyC,IAAAsG,EAAAnB,QAAA,eAAAlI,EAAAM,IAAA6L,UAAAC,GAAA,IAAApM,EAAAM,IAAA6L,UAAAE,GAAA,OACAY,GAAAjN,EAAA0M,kBAAA1M,EAAAO,IAAA,OAGAN,KAAAuK,aAAA,SAAAF,EAAA2C,GACAjN,EAAAM,IAAA6L,UAAA1J,EAAA6H,EACAtK,EAAAM,IAAA6L,UAAAE,IAAA,EAAA/B,EAAA,KACAtK,EAAAM,IAAAyC,IAAAsG,EAAAnB,QAAA,aAAAlI,EAAAM,IAAA6L,UAAAC,GAAA,IAAApM,EAAAM,IAAA6L,UAAAE,GAAA,KACAY,GAAAjN,EAAA0M,kBAAA1M,EAAAO,IAAA,KAEAN,KAAA0K,cAAA,SAAAL,EAAA2C,GACAjN,EAAAM,IAAA6L,UAAA3J,EAAA8H,EACAtK,EAAAM,IAAA6L,UAAAC,GAAA9B,EAAA0C,EAAA,KACAhN,EAAAM,IAAAyC,IAAAsG,EAAAnB,QAAA,aAAAlI,EAAAM,IAAA6L,UAAAC,GAAA,IAAApM,EAAAM,IAAA6L,UAAAE,GAAA,KACAY,GAAAjN,EAAA0M,kBAAA1M,EAAAO,IAAA,WAKAN,KAAAsK,aAAA,WACA,OAAAvK,EAAAgB,UAAAqJ,aAEApK,KAAAuK,aAAA,SAAAF,GACAtK,EAAAgB,UAAAqJ,UAAAC,IAGArK,KAAAyK,cAAA,WASA,OAPA1K,EAAAwJ,aAESxJ,EAAA8E,SAAA6B,UACT3G,EAAAsC,KAAA4K,KAAAlS,KAAAmS,IAAAnN,EAAAgB,UAAAyJ,cAEAzK,EAAAsC,KAAA4K,KAAAlN,EAAAgB,UAAAyJ,aAJAzK,EAAAgB,UAAAyJ,cAQAxK,KAAA0K,cAAA,SAAAL,GACA,OAAApP,WAAA,WACA,GAAA8E,EAQA,OAPAA,EAAAwJ,eAEAc,EADAtK,EAAA8E,SAAA6B,YACA3G,EAAAsC,KAAA4K,KAAA5C,GAEAtK,EAAAsC,KAAA4K,KAAA5C,GAGAtK,EAAAgB,UAAAyJ,WAAAH,IACS,IAITrK,KAAAmN,UAAA,SAAAT,GACA,QAAAA,IACAA,EAAA9J,OAAA8J,EAAA9J,SACA8J,EAAAU,YAAAV,EAAAU,aAIApN,KAAAqN,UAAA,SAAAX,EAAAnS,GACA,IAAAmS,EAAA,SAEA,IADA,IAAA1C,EAAA0C,EAAA9J,QAAA8J,EAAAU,YAAAV,IAAA,EACA1C,KAAAzP,OACAyP,IAAAsD,aAAA,EAEA,WAAAtD,GAgBA,IAAAuD,EAAA,CACAC,KAAA,EACAC,OAAA,EACAC,MAAA,GAGA,SAAAC,EAAAC,EAAAC,EAAAC,GACA,IAAAC,EAAAH,EAAA9K,IAAA+K,GACAG,EAAAC,WAAAF,GACA,GAAAG,MAAAF,GAAA,CAEA,IAAAG,EAAA,IADAH,EAAAT,EAAAQ,IAAA,GACA,EAAAhO,EAAAO,IAAA8N,cAAArO,EAAAO,IAAA+N,cAAAtO,EAAAO,IAAAgO,aAAAvO,EAAAO,IAAAiO,aAAA,EAEA,OADAxO,EAAAsG,OAAA2H,OAAA,GACA,EAAAA,EAAA,EAEA,OAAAA,EAGAhO,KAAAwO,wBAAA,WACA,OACAlR,IAAA3D,EAAA8U,aAAAhV,EAAAwN,gBAAAmD,UACA5M,KAAA7D,EAAA+U,aAAAjV,EAAAwN,gBAAAuD,aAIAxK,KAAA2O,UAAA,WACA,GAAA5O,EAAAmB,QAAA,CACA,IAAA0N,EAAA7O,EAAAO,IAAAuO,SACAC,EAAA/O,EAAAyO,0BAGA,OAFAI,EAAAtR,KAAAwR,EAAAxR,IACAsR,EAAApR,MAAAsR,EAAAtR,KACAoR,EAEA,IAAAG,EAAAhP,EAAAO,IAAAuO,SACA,IAAA9O,EAAAkB,SAAA,OAAA8N,EACA,IAAAC,EAAAjP,EAAAkB,SAAA4N,SACA,OACAvR,IAAAyR,EAAAzR,IAAA0R,EAAA1R,IACAE,KAAAuR,EAAAvR,KAAAwR,EAAAxR,OAIAwC,KAAAiP,gBAAA,SAAAC,GACA,IAAAC,EAAAC,EACA,GAAArP,EAAAuJ,WACAvJ,EAAAwD,KAAAT,IAAA,CACAuM,OAAAtP,EAAAO,IAAA+N,eAAAjO,EAAA/C,YAAAC,IAAA8C,EAAA/C,YAAAI,UAEAsC,EAAAuP,OAAAvP,EAAAuP,MAAAxM,IAAA,CACAyM,MAAAxP,EAAAO,IAAAiO,cAAAnO,EAAA/C,YAAAG,KAAA4C,EAAA/C,YAAAE,aAEO,CACP,IAAAiS,EAAAzP,EAAA4O,YA2BA,IA1BAQ,EAAA,CACA7R,IAAAkS,EAAAlS,IACAE,KAAAgS,EAAAhS,MAAA4C,EAAA/C,YAAAG,KAAA4C,EAAA/C,YAAAE,SAEAD,KAAAqQ,EAAA5N,EAAAO,IAAA,uBACA6O,EAAA3R,MAAAuC,EAAAwD,KAAA,MAAAxD,EAAAO,IAAAgO,aAAAX,EAAA5N,EAAAO,IAAA,sBAAAP,EAAAwD,KAAAgM,MAAA5B,EAAA5N,EAAAO,IAAA,sBAEA8O,EAAAhP,EAAAnD,cAEAmS,EAAA9R,MAAA6R,EAAA7R,KAAA8R,EAAA9R,KACA8R,EAAA5R,OAAA2R,EAAA3R,MAAA4R,EAAA5R,OAGAuC,EAAAiE,aAAAjE,EAAAwD,KAAAT,IAAA,CACAxF,IAAA6R,EAAA7R,IACAE,KAAA2R,EAAA3R,KACA6R,QAAA,EAAAH,EAAArF,EAAA9J,EAAAO,IAAA+N,gBAAAjO,EAAA/C,YAAAC,IAAA8C,EAAA/C,YAAAI,UAGAsC,EAAA4D,MACA5D,EAAA4D,KAAAb,IAAA,CACAxF,IAAA6R,EAAA7R,IAAA,EACAE,KAAA,GAAAuC,EAAAwD,KAAAkM,MAAAN,EAAA3R,KAAA,GAAA2R,EAAA3R,KAAAuC,EAAAwD,KAAAgM,MAAA,IAIAxP,EAAAuP,QAAAvP,EAAAiE,YAAA,CACAmL,EAAA,CACA7R,IAAAkS,EAAAlS,IACAE,KAAAgS,EAAAhS,OAEA4R,EAAAhP,EAAAlD,eAEAkS,EAAA9R,MAAA6R,EAAA7R,KAAA8R,EAAA9R,KACA8R,EAAA5R,OAAA2R,EAAA3R,MAAA4R,EAAA5R,OAEA,IAAAgF,EAAAzC,EAAAuP,MAAA,MAAAH,EAAA7R,IAAAqQ,EAAA5N,EAAAO,IAAA,uBAAAP,EAAAO,IAAA+N,cAAAtO,EAAAuP,MAAAD,OAAAF,EAAA7R,IAAAqQ,EAAA5N,EAAAO,IAAA,uBACAiC,EAAA4M,EAAA3R,KAAAmQ,EAAA5N,EAAAO,IAAA,qBACAP,EAAAuP,MAAAxM,IAAA,CACAxF,IAAAkF,GAAApC,EAAA/C,YAAAC,IAAA8C,EAAA/C,YAAAI,QACAD,KAAA+E,EACAgN,MAAAxP,EAAAuP,MAAAC,WAOAvP,KAAA0P,YAAA,SAAAhD,EAAAiD,EAAAC,GACA,IAAAlG,EAAAmG,EAAAC,EAAAX,EAEApP,EAAAiE,cAEAjE,EAAAgQ,YAAArD,GAEA,UAAAA,IACAA,EAAAsD,MAAAtD,EAAAuD,QAAAxW,EAAAwN,gBAAAuD,WACAkC,EAAAwD,MAAAxD,EAAAyD,QAAA1W,EAAAwN,gBAAAmD,WAGAuF,GACAjG,EAAA,EAAA3J,EAAAqQ,aAAArQ,EAAAsQ,YACAP,EAAA,GAAApD,EAAAsD,MAAAjQ,EAAAuP,MAAAT,SAAArR,KAAAuC,EAAAhE,YAAA,GAAAgE,EAAA0C,YAAAF,GAAAmK,EAAAwD,MAAAnQ,EAAAwD,KAAAsL,SAAAvR,IAAAyC,EAAA2C,aAAA,GAAA3C,EAAA0C,YAAAD,EACAzC,EAAAgK,UAAA,cACAL,EAAA,EAAAoG,KAEApG,EAAA,EAAA3J,EAAAuQ,eAAAvQ,EAAAwQ,WACAT,EAAA,EAAA/P,EAAAuC,OAAAC,EAAAxC,EAAAuC,OAAAE,EACA2M,EAAA,EAAAzC,EAAAsD,MAAAjQ,EAAAuP,MAAAT,SAAArR,KAAAkP,EAAAwD,MAAAnQ,EAAAwD,KAAAsL,SAAAvR,IACAuS,EAAA,EAAA9P,EAAAqC,KAAAoO,EAAAzQ,EAAAqC,KAAAyH,EACAH,EAAAoG,GAAAX,EAAAU,SAKA9P,EAAA0Q,WAAA1Q,EAAA2Q,WAAA,EAEA3Q,EAAA4Q,kBAAA,0BAAAhX,EACAoG,EAAA6Q,wBAAA,yBAAAjX,EAEAoG,EAAA8Q,cAAA,EAEA7Q,KAAA8Q,KAAA,WAIA,GAFA/Q,EAAAyE,MAAA1B,IAAA,GAEAsG,EAAAzD,YAAA,SACA,GAAAyD,EAAArB,aAAA,WAAAtO,GAAA,SAEA2G,EAAA/D,aAAA+D,EAAA/D,cAAA+D,EAAAhE,cAEA2D,EAAA8Q,aAAAlX,EAAAoX,kBAAA,eAAApX,EAAAoX,iBAAAtX,EAAAuH,MAAA,cAEA,IAAAgQ,EAAA,CAA4BC,aAAA,UAuB5B,IAtBA7H,EAAA5C,QAAA4C,EAAA7C,UAAAyK,EAAA,8BAEAjR,EAAAuJ,aACAtJ,KAAAK,IAAAyC,IAAAsG,EAAAhB,gBAAAgB,EAAAX,YAAA,0BACAW,EAAAd,eAAAvI,EAAAmR,KAAAnR,EAAAM,IAAA+I,EAAAd,cAAAvI,EAAAoR,uBAAA,IAGApR,EAAApE,OAAA,OACAoE,EAAAY,QAAA,QAAAP,EAAAzE,OAGAoE,EAAApE,OAAAyE,EAAAzE,OAFAoE,EAAApE,OAzKA,WACA,IAAAiS,EAAA7N,EAAAO,IACA,cAAAsN,EAAA,OAAAA,EAAAwD,SACA,KAAAxD,EAAA1O,OAAA,IACA,MAAA0O,EAAA,GAAAyD,SAAA,SACA,IAAAC,EAAA1D,EAAA9K,IAAA,UACA,IAAAoL,MAAAoD,IAAA,IAAAA,EAAA,OAAAC,SAAAD,GACA1D,IAAA4D,SAEA,SAgKAC,IAAA,QAKA1R,EAAAY,QAAA,QAAAZ,EAAApE,QAAAoE,EAAApE,OAAApC,IACAA,EAAAwG,EAAApE,QAGAoE,EAAAkG,MAAA,IAAAlG,EAAApE,QAAA,QAAAyE,EAAAzE,SACAoE,EAAApE,OAAA,SAGAoE,EAAAY,SAAAyI,EAAAlD,QAAA,CAEA,IAAAwL,EAAA3R,EAAAgB,UACAhB,EAAAY,SAAA+Q,EAAA3R,EAAA,WAAAA,EAAAO,IAAAP,EAAAM,KAEAN,EAAA+C,IAAA4O,EAAAV,GAEAjR,EAAAY,SAAAyI,EAAA5C,QAAA4C,EAAAnD,OACAlG,EAAA+C,IAAAtJ,EAAA,QAAAwX,IAGA5H,EAAA3B,OAAA1H,EAAAY,QAAAZ,EAAAe,YAAAf,EAAA+C,IAAA3C,EAAA,CACAwR,6BAAA,UAGA,IAAAnO,EAAAhK,EAAAC,EAAAsL,cAAA,QACAvB,EAAAV,IAAA,CACA8O,SAAA,WACAtU,IAAA,EACAuU,MAAA,QACAtC,MAAAnP,EAAArE,YACAsT,OAAA,EACAyC,mBAAA1R,EAAAtE,YACAiW,OAAA3R,EAAApE,aACAgW,kBAAA,cACAC,wBAAA7R,EAAAnE,mBACAiW,qBAAA9R,EAAAnE,mBACAkW,gBAAA/R,EAAAnE,qBAGAuH,EAAA4O,SAAA,sBAEArS,EAAAyD,SAEA,IAAAD,EAAA/J,EAAAC,EAAAsL,cAAA,QACAxB,EAAA8O,KAAA,KAAAtS,EAAAxF,IACAgJ,EAAA6O,SAAA,wCAEA,IAAAE,EAAA7R,EAAA8R,EAAA,gCACA,QAAArI,KAAAqI,EACA9R,EAAA8R,EAAArI,IACAoI,EAAAlS,EAAA/C,YAAAoD,IAAA,IACA8C,EAAAT,IAAA,WAAArC,EAAA6R,EAAA,MAGA/O,EAAAiP,OAAAhP,GAEAD,EAAAgM,MAAAxU,KAAAC,IAAAiT,WAAA7N,EAAArE,aAAAyH,EAAA8K,cACA/K,EAAAT,IAAA,CACAyM,MAAAhM,EAAAgM,MAAA,KACA6B,OAAArR,EAAApE,OACAkB,WAAAuD,EAAAvD,WACA2G,OAAA,YAGAD,EAAAQ,YAAA,EACAR,EAAAkP,YAAA,EAEAlP,EAAAkM,MAAA,QAAArP,EAAAxC,UAAA,IAEAmC,EAAAwD,OAEAxD,EAAAwD,KAAAmP,MAAA,EAEA,IAmCApD,EAnCA3L,GAAA,EAsFA,IArFAvD,EAAA5D,SAAAuD,EAAAY,QAAAyI,EAAAlD,UACAvC,EAAAlK,EAAAsL,cAAA,OAEAhF,EAAAmR,KAAAvN,EAAA,QAAA5D,EAAA4S,QACA5S,EAAAmR,KAAAvN,EAAA,wBACA5D,EAAA4D,KAAAb,IAAA,UAAA1C,EAAAvE,oBAEAkE,EAAAmR,KAAAvN,EAAA,wBACA5D,EAAA4D,KAAAb,IAAA,UAAA1C,EAAAxE,oBAGAmE,EAAA4D,KAAAnK,EAAAmK,GACA5D,EAAA4D,KAAAb,IAAA,CACAU,OAAA,UACA4N,OAAArR,EAAApE,OACAiX,gBAAA,OAAAxS,EAAArB,WAAA,eACAsQ,OAAA,GACAE,MAAA,GACAsD,mBAAA,QAEAzS,EAAA3D,cAAAsD,EAAAmR,KAAAnR,EAAAO,IAAA,WAAAP,EAAA4S,QACAvJ,EAAApC,UAAA5G,EAAA1D,cACAqD,EAAA8B,cAAA,SAAA6K,GAGA,OAFAA,EAAAoG,MAAA,KAAA/S,EAAAgT,SAAArG,GACAA,EAAAoG,MAAA,IAAA/S,EAAAiT,UAAAtG,GACA3M,EAAAgQ,YAAArD,IAEA3M,EAAAmR,KAAAnR,EAAAO,IAAA,aAAAP,EAAA8B,iBAMA9B,EAAAuP,OAAA,EAGAlP,EAAAzC,mBAEAoC,EAAA+C,IAAA4O,EAAA,CACAuB,UAAA,YAGAzP,EAAAhK,EAAAC,EAAAsL,cAAA,SACAjC,IAAA,CACA8O,SAAA,WACAtU,IAAA,EACA+R,OAAAjP,EAAArE,YACAwT,MAAA,EACA2D,gBAAA9S,EAAAtE,YACAiW,OAAA3R,EAAApE,aACAmX,eAAA,cACAlB,wBAAA7R,EAAAnE,mBACAiW,qBAAA9R,EAAAnE,mBACAkW,gBAAA/R,EAAAnE,qBAGAmN,EAAAlD,SAAA1C,EAAAV,IAAA,qBAEAU,EAAA4O,SAAA,sBAEArS,EAAAqT,QAAA5P,GAEA8L,EAAA9V,EAAAC,EAAAsL,cAAA,SACAsN,KAAA,KAAAtS,EAAAxF,GAAA,OACA+U,EAAA8C,SAAA,wCACA9C,EAAAD,OAAAtU,KAAAC,IAAAiT,WAAA7N,EAAArE,aAAAyH,EAAA4K,eACAkB,EAAAxM,IAAA,CACAuM,OAAAC,EAAAD,OAAA,KACA+B,OAAArR,EAAApE,OACAkB,WAAAuD,EAAAvD,aAGAyS,EAAAkD,OAAAhP,GAEA8L,EAAAvL,YAAA,EACAuL,EAAAmD,YAAA,EAEAnD,EAAAG,MAAA,OAAArP,EAAAvC,WAAA,IAEAkC,EAAAuP,QAEAvP,EAAAuP,MAAAoD,MAAA,GAIA3S,EAAAY,OAEA4C,EAAAT,IAAA,CACA8O,SAAA,QACAtU,IAAA,EACA+R,OAAA,SAGA9L,EAAAT,IAAAS,EAAA,OAAmChG,MAAA,GAAW,CAAIC,KAAA,IAElDuC,EAAAiB,KAAAwR,OAAAjP,GACAxD,EAAAuP,QACAA,EAAAxM,IAAA,CACA8O,SAAA,QACApU,KAAA,EACA+R,MAAA,SAGAD,EAAAxM,IAAAwM,EAAA,OAAuC7R,OAAA,GAAY,CAAIH,IAAA,IAEvDyC,EAAAiB,KAAAwR,OAAAlD,QAES,CACT,GAAAvP,EAAAuJ,WAAA,CACA,UAAAvJ,EAAAO,IAAAwC,IAAA,aAAA/C,EAAA+C,IAAA/C,EAAAO,IAAA,CAA0EsR,SAAA,aAC1E,IAAAyB,EAAA,QAAAtT,EAAAO,IAAA,GAAAO,SAAAd,EAAAiB,KAAAjB,EAAAO,IACA9G,EAAA6Z,GAAAjJ,UAAA,GAAAI,WAAA,GACAzK,EAAA4D,OACA5D,EAAA4D,KAAAb,IAAA,CACA8O,SAAA,WACAtU,IAAA,EACAC,MAAA,EACA+V,eAAA/P,EAAAgM,MAAA,IAEA8D,EAAAb,OAAAzS,EAAA4D,OAEAJ,EAAAT,IAAA,CACA8O,SAAA,WACAtU,IAAA,IAEAiG,EAAAT,IAAAS,EAAA,OAAqChG,MAAA,GAAW,CAAIC,KAAA,IACpD6V,EAAAb,OAAAjP,GACA+L,IACAA,EAAAxM,IAAA,CACA8O,SAAA,WACApU,KAAA,EACAC,OAAA,IAEA6R,EAAAxM,IAAAwM,EAAA,OAAyC7R,OAAA,GAAY,CAAIH,IAAA,IACzD+V,EAAAb,OAAAlD,QAEW,CACXvP,EAAAmB,QAAA,SAAAnB,EAAAO,IAAAwC,IAAA,YACA,IAAAyQ,EAAAxT,EAAA,2BAEAA,EAAAmB,UAAAnB,EAAAkB,SAAAlB,EAAAyT,YAAAzT,EAAAO,IAAA,KACAP,EAAAkB,WACAlB,EAAAiB,KAAAjB,EAAAkB,SACA,iBAAAL,KAAAb,EAAAkB,SAAA6B,IAAA,cAAA/C,EAAA+C,IAAA/C,EAAAkB,SAAA,CACA2Q,SAAA,cAIArO,EAAAT,IAAA,CACA8O,SAAA2B,IAEAxT,EAAA4D,MAAA5D,EAAA4D,KAAAb,IAAA,CACA8O,SAAA2B,IAEAxT,EAAAkP,kBACAlP,EAAAiB,KAAAwR,OAAAjP,GACAxD,EAAA4D,MAAA5D,EAAAiB,KAAAwR,OAAAzS,EAAA4D,MACA5D,EAAAuP,QACAA,EAAAxM,IAAA,CACA8O,SAAA2B,IAEAxT,EAAAiB,KAAAwR,OAAAlD,IAIAlG,EAAA3B,OAAA1H,EAAA+C,IAAA/C,EAAAO,IAAA,CACAmT,8BAAA,gBACAC,wBAAA,SAGAtT,EAAA1C,iBACA0L,EAAAnD,MAAAlG,EAAAO,IAAA+R,KAAA,oBACAjJ,EAAAzC,UAAA5G,EAAAO,IAAAwC,IAAA,mBA8BA,IAzBA,IAAA1C,EAAAxD,cACAmD,EAAA4T,aAAA,EACA5T,EAAAwD,KAAAT,IAAA,CACA8Q,QAAAxT,EAAAvE,mBAEAkE,EAAAuP,OAAAvP,EAAAuP,MAAAxM,IAAA,CACA8Q,QAAAxT,EAAAvE,qBAES,IAAAuE,EAAAxD,cAAA,UAAAwD,EAAAxD,cACTmD,EAAA4T,YAAAna,IAAAqa,IAAA9T,EAAAwD,MACA6F,EAAA/C,QAAAtG,EAAA4T,YAAA5T,EAAA4T,YAAAE,IAAA9T,EAAAyD,SACAzD,EAAAuP,QAAAvP,EAAA4T,YAAA5T,EAAA4T,YAAAE,IAAA9T,EAAAuP,QACAvP,EAAAuP,OAAAlG,EAAA/C,QAAAtG,EAAA4T,YAAA5T,EAAA4T,YAAAE,IAAA9T,EAAAqT,WACS,UAAAhT,EAAAxD,cACTmD,EAAA4T,YAAAna,IAAAqa,IAAA9T,EAAAwD,MACAxD,EAAAuP,QAAAvP,EAAA4T,YAAA5T,EAAA4T,YAAAE,IAAA9T,EAAAuP,SACS,UAAAlP,EAAAxD,cACTmD,EAAA4T,YAAAna,IAAAqa,IAAA9T,EAAAyD,QACAzD,EAAAuP,QAAAvP,EAAA4T,YAAA5T,EAAA4T,YAAAE,IAAA9T,EAAAqT,WACS,UAAAhT,EAAAxD,eACTmD,EAAA4T,aAAA,EACA5T,EAAA+T,OACA/T,EAAAiE,aAAA,GAGAoF,EAAApC,UAAAjH,EAAAyJ,gBAAApJ,EAAA/D,cAAA+M,EAAA9B,WAAA,CAEAvH,EAAAmD,UAAA,IAAA6Q,EAAAhU,GAIAA,EAAAiU,aAAA,SAAAtH,GAEA,GAAA3M,EAAAkE,OAAA,SAGA,GAAAyI,EAAAuH,cAAA,UAAAvH,EAAAuH,aAAAvH,EAAAuH,cAAAvH,EAAAwH,sBAAA,SASA,GAPAnU,EAAAoU,WAAA,EAEApU,EAAAmD,UAAAkR,QACArU,EAAAsU,mBACAtU,EAAAmD,UAAAoR,SAGAvU,EAAAiE,YAAA,CACA,IAAAuQ,EAAAxU,EAAAoN,UAAAT,GAEA,GAAA6H,EAAA,CACA,IAAAC,EAAA,SAAA5T,KAAA2T,EAAA1T,WAAA,SAAAD,KAAA2T,EAAAE,MACA,GAAAD,EAAA,OAAAzU,EAAA2U,gBAAAhI,GAGA,IAAAiI,EAAA,cAAAjI,EAAA+H,KAOA,KALA,YAAA/H,IAAA,mBAAAA,IACAA,EAAAuD,QAAAvD,EAAAkI,eAAA,GAAA3E,QACAvD,EAAAyD,QAAAzD,EAAAkI,eAAA,GAAAzE,SAGApQ,EAAAuB,YAAA,CACA,IAAAuT,EAAAnI,GACAA,EAAA,CACAoI,SAAApI,EAAA,SAAAA,EAAAoI,SAAApI,IAEAuD,QAAA4E,EAAAE,QACArI,EAAAyD,QAAA0E,EAAAG,QAeA,GAZAjV,EAAAwD,KAAAmP,KAAA,CACAnQ,EAAAmK,EAAAuD,QACAzN,EAAAkK,EAAAyD,QACA8E,GAAAlV,EAAAuC,OAAAC,EACA2S,GAAAnV,EAAAuC,OAAAE,EACAoI,GAAA7K,EAAAuK,eACA6K,GAAApV,EAAA0K,gBACA2K,GAAA,EACAC,IAAA,EACAd,MAGAxU,EAAAY,SAAAP,EAAA/B,sBAEA0B,EAAAwD,KAAAmP,KAAA2C,GAAA,QAEe,CAEf,IAAAjT,EAAA,CACAoO,EAAA3W,EAAA0V,QACA1F,EAAAhQ,EAAAwV,UAGAhN,EAAAtC,EAAAuV,iBAEAC,EAAAlT,EAAAwH,EAAAzH,EAAAyH,EACAoD,EAAA5K,EAAAmO,EAAApO,EAAAoO,EAEAzQ,EAAAwD,KAAAkP,aAAA1S,EAAAuP,MAAAmD,WAAA1S,EAAAwD,KAAAmP,KAAA8C,GAAAD,EAAA,QACAxV,EAAAwD,KAAAkP,YAAA1S,EAAAuP,MAAAmD,WAAA1S,EAAAwD,KAAAmP,KAAA8C,GAAAvI,EAAA,OACAlN,EAAAwD,KAAAmP,KAAA8C,IAAA,EAIA,GAAApV,EAAA/D,cAAA0D,EAAAqB,UAAAgI,EAAAnD,KAAA,CACA,IAAAwP,EAAA1V,EAAAO,IAAAsR,WACA7R,EAAAwD,KAAAmP,KAAAnQ,GAAAkT,EAAAjY,KACAuC,EAAAwD,KAAAmP,KAAAlQ,GAAAiT,EAAAnY,IAOA,GAJAyC,EAAAoU,WAAA,EACApU,EAAA2V,aAAA,EACA3V,EAAAmD,UAAAyS,MAAAjJ,EAAAuD,QAAAvD,EAAAyD,SAEAoE,GAAAI,EAAA,CAEA,IAAAiB,EAAA,gCAAAhV,KAAA2T,EAAA1T,UACA,IAAA+U,EAEA,OADAxM,EAAAH,iBAAAsL,EAAAsB,aACAzV,EAAA/D,cACAkY,EAAAzS,UAAAyS,EAAAuB,WACAvB,EAAAuB,SAAAvB,EAAAzS,QACAyS,EAAAzS,QAAA,SAAA4K,GACA,GAAA3M,EAAAoU,UAAA,SACAI,EAAAuB,SAAA/P,KAAA/F,KAAA0M,KAGA3M,EAAAgQ,YAAArD,IAEA3M,EAAA2U,gBAAAhI,GAGA,wBAAA9L,KAAApH,EAAA+a,GAAAlC,KAAA,WACAtS,EAAAgW,aAAA,CACAxB,KACAyB,OAAA,OASAjW,EAAAkW,WAAA,SAAAvJ,GAEA,IAAA3M,EAAAwD,KAAAmP,KAAA,SAEA,MAAA3S,EAAAwD,KAAAmP,KAAA0C,GAAA,CAEA,GAAA1I,EAAAuH,cAAA,UAAAvH,EAAAuH,aAAAvH,EAAAuH,cAAAvH,EAAAwH,sBAAA,SAEAnU,EAAAwD,KAAAmP,MAAA,EAEA,IAAAiC,EAAA,YAAAjI,EAAA+H,KAEA,GAAA1U,EAAAoU,YACApU,EAAAmD,UAAAgT,aACAnW,EAAA2V,aAAA,EACA3V,EAAAoW,aACA/M,EAAAH,iBAAAxP,EAAA2c,iBACAzB,GAAA,OAAA5U,EAAAgQ,YAAArD,QAIA,MAAA3M,EAAAwD,KAAAmP,KAAA0C,GACA,OAAArV,EAAA0B,UAAAiL,IAKA,IAAA2J,EAAAjW,EAAA/D,cAAA0D,EAAAqB,WAAAgI,EAAAH,gBAEAqN,EAAA,GAAAlW,EAAA/B,sBAAA,EAEA0B,EAAAwW,YAAA,SAAA7J,EAAA8J,GAEA,IAAAzW,EAAAwD,KAAAmP,KAAA,SAEA,GAAAhG,EAAA+J,eAAArW,EAAAb,4BACAmN,EAAA+J,cAAAvX,OAAA,WAIA,GAAAwN,EAAAuH,cAAA,UAAAvH,EAAAuH,aAAAvH,EAAAuH,cAAAvH,EAAAwH,sBAAA,SAEA,MAAAnU,EAAAwD,KAAAmP,KAAA0C,GAAA,CAOA,IAAAsB,EAAAC,EAGA,GARA,mBAAAjK,IACAA,EAAAuD,QAAAvD,EAAAkI,eAAA,GAAA3E,QACAvD,EAAAyD,QAAAzD,EAAAkI,eAAA,GAAAzE,SAIAwG,EAAAD,EAAA,EAEAL,IAAAG,EAAA,CACA,IAAAf,EAAA1V,EAAAO,IAAAsR,WACA+E,GAAAlB,EAAAjY,KACAkZ,GAAAjB,EAAAnY,IAGA,IAAAsZ,EAAAlK,EAAAyD,QAAAuG,EACAG,EAAAD,EAAA7W,EAAAwD,KAAAmP,KAAAlQ,EACAsU,EAAApK,EAAAuD,QAAA0G,EACAI,EAAAD,EAAA/W,EAAAwD,KAAAmP,KAAAnQ,EAEAyU,EAAAjX,EAAAwD,KAAAmP,KAAA9H,GAAAiM,EAEA,GAAA9W,EAAAuJ,YAAAlJ,EAAAjD,aACA6Z,EAAA,EACAA,EAAAjc,KAAAkc,MAAAD,EAAA,GACiBA,EAAAjX,EAAAsC,KAAAkT,OACjByB,EAAAjX,EAAAsC,KAAAkT,KAAAxa,KAAAkc,OAAAD,EAAAjX,EAAAsC,KAAAkT,MAAA,SAWA,GARAyB,EAAA,GACAA,EAAA,EACAJ,EAAA,GAEAI,EAAAjX,EAAAsC,KAAAkT,OACAyB,EAAAjX,EAAAsC,KAAAkT,KACAqB,EAAA,GAEA,IAAAA,IAAA7W,EAAAoU,UAEA,OADApU,EAAAY,SAAAZ,EAAAwD,KAAAmP,MAAA,IACA,EAIA,IAAAwE,EAAAnX,EAAA0K,gBAyBA,GAvBA1K,EAAAuP,OAAAvP,EAAAuP,MAAAmD,aACAyE,EAAAnX,EAAA,UAAAgX,EAAAhX,EAAAwD,KAAAmP,KAAAyC,GAAApV,EAAAwD,KAAAmP,KAAAyC,GAAA4B,EAEAhX,EAAAuJ,YAAAlJ,EAAAjD,aACA+Z,EAAA,EACAA,EAAAnc,KAAAkc,MAAAC,EAAA,GACmBA,EAAAnX,EAAAsC,KAAA4K,OACnBiK,EAAAnX,EAAAsC,KAAA4K,KAAAlS,KAAAkc,OAAAC,EAAAnX,EAAAsC,KAAA4K,MAAA,KAGAiK,EAAA,IACAA,EAAA,EACAJ,EAAA,GAEAI,EAAAnX,EAAAsC,KAAA4K,OACAiK,EAAAnX,EAAAsC,KAAA4K,KACA6J,EAAA,MAOA/W,EAAAoU,UAAA,CAEA,GAAApU,EAAAwD,KAAAmP,KAAAlQ,IAAAkK,EAAAyD,SAAApQ,EAAAwD,KAAAmP,KAAAnQ,IAAAmK,EAAAuD,QAAA,OAAAlQ,EAAAgQ,YAAArD,GAEA,IAAAyK,EAAApc,KAAAmS,IAAA2J,GACAO,EAAArc,KAAAmS,IAAA6J,GACAM,EAAAjX,EAAA/B,sBAuBA,GArBA0B,EAAAwD,KAAAmP,KAAA8C,GAKA,KAAAzV,EAAAwD,KAAAmP,KAAA8C,GACA4B,EAAAC,GAAAF,GAAAb,EACAvW,EAAAwD,KAAAmP,MAAA,EAEAyE,EAAAE,IAAAtX,EAAAwD,KAAAmP,KAAA2C,GAAA,KAGA,KAAAtV,EAAAwD,KAAAmP,KAAA8C,KAEA2B,EAAAE,GAAAD,GAAAd,EACAvW,EAAAwD,KAAAmP,MAAA,EAEA0E,EAAAC,IAAAtX,EAAAwD,KAAAmP,KAAA2C,GAAA,MAhBA8B,EAAAE,GAAAD,EAAAC,EAAAtX,EAAAwD,KAAAmP,KAAA2C,GAAA,IACA8B,EAAAE,EAAAtX,EAAAwD,KAAAmP,KAAA2C,GAAA+B,EAAAd,EAAA,QACAc,EAAAC,IAAAtX,EAAAwD,KAAAmP,KAAA2C,GAAA8B,EAAAb,EAAA,UAkBAvW,EAAAwD,KAAAmP,KAAA2C,GAAA,OAAAtV,EAAAgQ,YAAArD,GAEA3M,EAAAuX,mBAAA5K,EAAAuD,QAAAvD,EAAAyD,QAAA,OACApQ,EAAAoU,WAAA,EA4BA,OAzBApU,EAAAgW,eAAAhW,EAAAgW,aAAAC,QACAjW,EAAAgW,aAAAC,MAAAjW,EAAAgW,aAAAxB,GAAAzS,UAAA,EACA/B,EAAAgW,aAAAxB,GAAAzS,QAAA/B,EAAAwX,gBAGAxX,EAAAwD,KAAAmP,KAAA2C,KACA,KAAAtV,EAAAwD,KAAAmP,KAAA2C,GAAA6B,EAAAnX,EAAAwD,KAAAmP,KAAAyC,GACA,KAAApV,EAAAwD,KAAAmP,KAAA2C,KAAA2B,EAAAjX,EAAAwD,KAAAmP,KAAA9H,KAGA7K,EAAA+J,QAAA,uBACA/J,EAAAwD,KAAAmP,MAAA,GAAA3S,EAAAwD,KAAAmP,KAAA0C,KACArV,EAAAyX,mBAAAzX,EAAA0X,kBACA1X,EAAAwD,KAAAkP,YAAA1S,EAAAwK,aAAAyM,GACAjX,EAAAmD,UAAA+I,OAAA6K,EAAAF,GACA7W,EAAAuP,OAAAvP,EAAAuP,MAAAmD,YACA1S,EAAA2K,cAAAwM,GACAnX,EAAA2X,WAAAV,EAAAE,IAEAnX,EAAA2X,WAAAV,GAEA5N,EAAA7C,QAAA9M,EAAAke,UAAAC,WAIA7X,EAAAgQ,YAAArD,GAGA,UAAA3M,EAAAwD,KAAAmP,KAAA0C,GACArV,EAAA2B,YAAAgL,QADA,GAMA3M,EAAA8X,mBAAA,SAAAnL,EAAAoL,GACA,IAAA/X,EAAAwD,KAAAmP,MAAA,GAAA3S,EAAAwD,KAAAmP,KAAA0C,GAAA,CACA,GAAArV,EAAAkE,OAAA,OAAAlE,EAAAgQ,YAAArD,GACA3M,EAAAgY,eACAhY,EAAAwD,KAAAmP,KAAA,CACAnQ,EAAAmK,EAAAsL,QAAA,GAAA/H,QACAzN,EAAAkK,EAAAsL,QAAA,GAAA7H,QACA8E,GAAAlV,EAAAuC,OAAAC,EACA2S,GAAAnV,EAAAuC,OAAAE,EACA4S,GAAA,EACAxF,KAAAkI,GAEA,IAAAvD,EAAAxU,EAAAoN,UAAAT,GAMA,OALA3M,EAAAY,QAAAyI,EAAAH,iBAAAsL,EAAAsB,aACA9V,EAAAqB,WAAAgI,EAAAH,kBACAlJ,EAAAyE,MAAAyT,iBAAAlY,EAAAM,IAAAyC,IAAA,kBACA/C,EAAA+C,IAAA/C,EAAAM,IAAA,CAAkC6X,iBAAA,UAElCnY,EAAAgQ,YAAArD,KAGA3M,EAAAoY,iBAAA,SAAAzL,GACA,GAAA3M,EAAAwD,KAAAmP,KAAA,CAGA,GAFAtJ,EAAAH,iBAAAxP,EAAA2c,iBACArW,EAAAqB,WAAAgI,EAAAH,iBAAAlJ,EAAAM,IAAAyC,IAAA,iBAAA/C,EAAAyE,MAAAyT,kBACA,GAAAlY,EAAAwD,KAAAmP,KAAA0C,GAAA,OAEA,OADArV,EAAAwD,KAAAmP,MAAA,EACA3S,EAAAgQ,YAAArD,KAIA3M,EAAAqY,kBAAA,SAAA1L,GACA,GAAA3M,EAAAwD,KAAAmP,KAAA,CACA,MAAA3S,EAAAwD,KAAAmP,KAAA0C,GAAA,OAIA,GAFArV,EAAA0D,eAAA,EAEA1D,EAAAwD,KAAAmP,KAAA9C,GAAA,CACA7P,EAAAuC,OAAAC,EAAAxC,EAAAwD,KAAAmP,KAAAuC,IAAAvI,EAAAsL,QAAA,GAAA/H,QAAAlQ,EAAAwD,KAAAmP,KAAAnQ,GACAxC,EAAAuC,OAAAC,EAAA,IAAAxC,EAAAuC,OAAAC,EAAA,GACA,IAAA8V,EAAAtY,EAAAuY,gBACAvY,EAAAuC,OAAAC,EAAA8V,IAAAtY,EAAAuC,OAAAC,EAAA8V,OACe,CACftY,EAAAuC,OAAAE,EAAAzC,EAAAwD,KAAAmP,KAAAwC,IAAAxI,EAAAsL,QAAA,GAAA7H,QAAApQ,EAAAwD,KAAAmP,KAAAlQ,GACAzC,EAAAuC,OAAAE,EAAA,IAAAzC,EAAAuC,OAAAE,EAAA,GACA,IAAAqU,EAAA9W,EAAA4C,eACA5C,EAAAuC,OAAAE,EAAAqU,IAAA9W,EAAAuC,OAAAE,EAAAqU,GAWA,OARA9W,EAAA+J,QAAA,uBACA/J,EAAAwD,KAAAmP,MAAA,GAAA3S,EAAAwD,KAAAmP,KAAA0C,KACArV,EAAA2X,aACA3X,EAAAwD,KAAAmP,KAAA9C,GAAA7P,EAAAqQ,aAAArV,KAAAkc,MAAAlX,EAAAuC,OAAAC,EAAAxC,EAAA0C,YAAAF,GAAAnC,EAAAzB,iBACAoB,EAAAsQ,YAAAtV,KAAAkc,MAAAlX,EAAAuC,OAAAE,EAAAzC,EAAA0C,YAAAD,GAAApC,EAAAzB,oBAIAoB,EAAAgQ,YAAArD,KA0FA,GAnFA3M,EAAAyB,YAAA,SAAAkL,EAAAoL,GACA,IAAA/X,EAAAwD,KAAAmP,MAAA,GAAA3S,EAAAwD,KAAAmP,KAAA0C,GAAA,CACA,GAAArV,EAAAiE,YAAA,OAAAjE,EAAAgQ,YAAArD,GACA3M,EAAAgY,eACAhY,EAAAwD,KAAAmP,KAAA,CACAnQ,EAAAmK,EAAAuD,QACAzN,EAAAkK,EAAAyD,QACA8E,GAAAlV,EAAAuC,OAAAC,EACA2S,GAAAnV,EAAAuC,OAAAE,EACA4S,GAAA,EACAxF,GAAAkI,IAAA,GAEA,IAAAvD,EAAAxU,EAAAoN,UAAAT,GAUA,OARAtD,EAAAH,iBAAAsL,EAAAsB,aACA9V,EAAAqB,WAAAgI,EAAAH,kBACAlJ,EAAAyE,MAAAyT,iBAAAlY,EAAAM,IAAAyC,IAAA,kBACA/C,EAAA+C,IAAA/C,EAAAM,IAAA,CACA6X,iBAAA,UAGAnY,EAAAoU,WAAA,EACApU,EAAAgQ,YAAArD,KAGA3M,EAAA0B,UAAA,SAAAiL,GACA,GAAA3M,EAAAwD,KAAAmP,KACA,UAAA3S,EAAAwD,KAAAmP,KAAA0C,KAEAhM,EAAAH,iBAAAxP,EAAA2c,iBACArW,EAAAqB,WAAAgI,EAAAH,iBAAAlJ,EAAAM,IAAAyC,IAAA,iBAAA/C,EAAAyE,MAAAyT,kBACAlY,EAAAwD,KAAAmP,MAAA,EACA3S,EAAA0D,eAAA,EACA1D,EAAAoU,WAAApU,EAAAsU,mBACAtU,EAAAgQ,YAAArD,KAIA3M,EAAA2B,YAAA,SAAAgL,GACA,GAAA3M,EAAAwD,KAAAmP,KAAA,CACA,OAAA3S,EAAAwD,KAAAmP,KAAA0C,GAAA,OAEA,GAAAhM,EAAAxC,UAAA,IAAA8F,EAAA6L,MAAA,OAAAxY,EAAA0B,UAAAiL,GAQA,GANA3M,EAAA0D,eAAA,EAEA1D,EAAAoU,WAAApU,EAAAuX,mBAAA5K,EAAAuD,QAAAvD,EAAAyD,QAAA,OAEApQ,EAAAoU,WAAA,EAEApU,EAAAwD,KAAAmP,KAAA9C,GAAA,CACA7P,EAAAuC,OAAAC,EAAAxC,EAAAwD,KAAAmP,KAAAuC,IAAAvI,EAAAuD,QAAAlQ,EAAAwD,KAAAmP,KAAAnQ,GACAxC,EAAAuC,OAAAC,EAAA,IAAAxC,EAAAuC,OAAAC,EAAA,GACA,IAAA8V,EAAAtY,EAAAuY,gBACAvY,EAAAuC,OAAAC,EAAA8V,IAAAtY,EAAAuC,OAAAC,EAAA8V,OACa,CACbtY,EAAAuC,OAAAE,EAAAzC,EAAAwD,KAAAmP,KAAAwC,IAAAxI,EAAAyD,QAAApQ,EAAAwD,KAAAmP,KAAAlQ,GACAzC,EAAAuC,OAAAE,EAAA,IAAAzC,EAAAuC,OAAAE,EAAA,GACA,IAAAqU,EAAA9W,EAAA4C,eACA5C,EAAAuC,OAAAE,EAAAqU,IAAA9W,EAAAuC,OAAAE,EAAAqU,GAiBA,OAdA9W,EAAA+J,QAAA,uBAEA/J,EAAA0D,gBACA1D,EAAA2X,aAEA3X,EAAAwD,KAAAmP,KAAA9C,GACA7P,EAAAyK,WAAAzP,KAAAkc,MAAAlX,EAAAuC,OAAAC,EAAAxC,EAAA0C,YAAAF,IAEAxC,EAAAqK,UAAArP,KAAAkc,MAAAlX,EAAAuC,OAAAE,EAAAzC,EAAA0C,YAAAD,OAMAzC,EAAAgQ,YAAArD,GAGA3M,EAAAuE,UAAA,GAIA8E,EAAApC,UAAA5G,EAAA/D,aAEA0D,EAAAwX,eAAA,SAAA7K,GACA,GAAA3M,EAAAgW,aAGA,OAFAhW,EAAAgW,aAAAxB,GAAAzS,QAAA/B,EAAAgW,aAAAC,MACAjW,EAAAgW,cAAA,EACAhW,EAAAgQ,YAAArD,IAIA3M,EAAA+B,SAAAsH,EAAA,gBAAAsD,GACA,OAAA3M,EAAA2V,cACA3V,EAAA2V,aAAA,EACA3V,EAAAgQ,YAAArD,KAMAtM,EAAAzD,mBAAAyM,EAAAR,kBACA7I,EAAA+C,IAAA/C,EAAA,OAAAA,EAAAM,IAAAN,EAAAO,IAAA,CACAkD,OAAA4F,EAAAR,kBAEA7I,EAAA+C,IAAA/C,EAAAwD,KAAA,CACAC,OAAA4F,EAAAR,uBAIS,CAET,IAAA4P,EAAA,SAAA9L,GACA,GAAA3M,EAAA2D,cAAA,CAEA,GAAAgJ,EAAA,CACA,IAAAqC,EAAAhP,EAAAO,IAAA8N,cACAhD,EAAAsB,EAAAwD,MAAAnQ,EAAA2D,cAAApG,IACA8N,EAAA,GAAAA,EAAA2D,IAAA3D,EAAA,GACAA,GAAA2D,IAAA3D,GAAA2D,GACAhP,EAAA2D,cAAA0H,KAEA,OAAArL,EAAA2D,cAAA0H,GAAA,CAEA,IAAAqN,GAAA,EAAA1Y,EAAA2D,cAAA0H,GAAA,IACArL,EAAAwQ,WAAAkI,GAEA1Y,EAAA0J,UAAA,+BACA+O,KACa,OAIbzY,EAAA2Y,gBADA,iBAAAjf,EACA,WACA,OAAAA,EAAAkf,eAAAC,WAAA,GAEW,cAAAnf,EACX,WACA,cAAAA,EAAAke,UAAAlD,MAGA,WACA,UAIA1U,EAAA8Y,iBAAA,SAAAnM,GAWA3M,EAAAY,SACAZ,EAAA2D,cAAA3D,EAAAO,IAAAuO,WAGA9O,EAAA+Y,eAAA,SAAApM,GACA3M,EAAA2D,eAAA,GAEA3D,EAAAgZ,gBAAA,SAAArM,GACA3M,EAAA2D,eACA3D,EAAA2Y,mBAAA3Y,EAAA0J,UAAA,6BACA+O,EAAA9L,IACa,MAyTb,GArTAtD,EAAAlC,aACAnH,EAAA+C,IAAA/C,EAAA,OAAAvG,EAAA,QAAAuG,EAAAO,IAAA,CAA0D0Y,eAAA,SAC1DjZ,EAAA+C,IAAA/C,EAAAwD,KAAA,CACAyV,eAAA,SAEAjZ,EAAA+C,IAAA/C,EAAAyD,OAAA,CACAwV,eAAA,SAEAjZ,EAAAmR,KAAAnR,EAAAO,IAAA,cAAAP,EAAAiU,cACAjU,EAAAmR,KAAAzX,EAAA,YAAAsG,EAAAkW,YACAlW,EAAAkZ,SAAAxf,EAAA,cAAAsG,EAAAwW,cACSnN,EAAA9B,YACTvH,EAAA+C,IAAA/C,EAAA,OAAAvG,EAAA,QAAAuG,EAAAO,IAAA,CAA0D4Y,mBAAA,SAC1DnZ,EAAA+C,IAAA/C,EAAAwD,KAAA,CACA2V,mBAAA,SAEAnZ,EAAA+C,IAAA/C,EAAAyD,OAAA,CACA0V,mBAAA,SAEAnZ,EAAAmR,KAAAnR,EAAAO,IAAA,gBAAAP,EAAAiU,cACAjU,EAAAmR,KAAAzX,EAAA,cAAAsG,EAAAkW,YACAlW,EAAAkZ,SAAAxf,EAAA,gBAAAsG,EAAAwW,aACAxW,EAAAmR,KAAAnR,EAAAyD,OAAA,yBAAAkJ,GACAA,EAAAyM,mBAEApZ,EAAAmR,KAAAnR,EAAAyD,OAAA,uBAAAkJ,GACAA,EAAAyM,oBAES/P,EAAApC,WACTjH,EAAAmR,KAAAnR,EAAAO,IAAA,aAAAP,EAAAiU,cAAA,MACAjU,EAAAmR,KAAAzX,EAAA,WAAAsG,EAAAkW,YAAA,MACAlW,EAAAmR,KAAAzX,EAAA,cAAAsG,EAAAkW,YAAA,MACAlW,EAAAkZ,SAAAxf,EAAA,YAAAsG,EAAAwW,aAAA,OAGAnW,EAAA/D,eACA0D,EAAAmR,KAAAnR,EAAAO,IAAA,YAAAP,EAAAiU,cAAA,MACAjU,EAAAmR,KAAAzX,EAAA,UAAAsG,EAAAkW,YAAA,MACAlW,EAAAmR,KAAAzX,EAAA,YAAAsG,EAAAwW,aAAA,QAGAnW,EAAAvB,oBAAAuK,EAAApC,WAAA5G,EAAA/D,gBAEA0D,EAAAwD,KAAAT,IAAA,CACAU,OAAA,YAEAzD,EAAAuP,OAAAvP,EAAAuP,MAAAxM,IAAA,CACAU,OAAA,YAGAzD,EAAAqZ,OAAArZ,EAAAwD,KAAA,wBACA,IAAAxD,EAAAY,SAAAZ,EAAAO,IAAA+Y,GAAA,qBACAtZ,EAAAwB,qBAAAxB,EAAA2X,aACA3X,EAAAwD,KAAA+V,QAAA,IAEAvZ,EAAAqZ,OAAArZ,EAAAwD,KAAA,wBACAxD,EAAAwD,KAAA+V,QAAA,EACAvZ,EAAAwD,KAAAmP,MAAA3S,EAAAoW,eAGA/V,EAAAlC,gBACA6B,EAAAmR,KAAAnR,EAAAwD,KAAA,iBAAAmJ,GACA3M,EAAA2P,YAAAhD,GAAA,QAEA3M,EAAAmR,KAAAnR,EAAAwD,KAAA,oBAAAmJ,GACA3M,EAAA2P,YAAAhD,GAAA,QAEA3M,EAAAmR,KAAAnR,EAAAyD,OAAA,iBAAAkJ,GACA3M,EAAAgQ,YAAArD,KAEA3M,EAAAmR,KAAAnR,EAAAyD,OAAA,oBAAAkJ,GACA3M,EAAAgQ,YAAArD,MAIA3M,EAAAuP,QACAvP,EAAAqZ,OAAArZ,EAAAuP,MAAA,wBACA,IAAAvP,EAAAY,SAAAZ,EAAAO,IAAA+Y,GAAA,qBACAtZ,EAAAwB,qBAAAxB,EAAA2X,aACA3X,EAAAwD,KAAA+V,QAAA,IAEAvZ,EAAAqZ,OAAArZ,EAAAuP,MAAA,wBACAvP,EAAAwD,KAAA+V,QAAA,EACAvZ,EAAAwD,KAAAmP,MAAA3S,EAAAoW,eAGA/V,EAAAlC,gBACA6B,EAAAmR,KAAAnR,EAAAuP,MAAA,iBAAA5C,GACA3M,EAAA2P,YAAAhD,GAAA,QAEA3M,EAAAmR,KAAAnR,EAAAuP,MAAA,oBAAA5C,GACA3M,EAAA2P,YAAAhD,GAAA,QAEA3M,EAAAmR,KAAAnR,EAAAqT,QAAA,iBAAA1G,GACA3M,EAAAgQ,YAAArD,KAEA3M,EAAAmR,KAAAnR,EAAAqT,QAAA,oBAAA1G,GACA3M,EAAAgQ,YAAArD,QAQAtM,EAAAvB,oBAAAmB,KAAAwJ,gBAAAJ,EAAApC,YACAjH,EAAAmR,KAAAnR,EAAAyD,OAAA,aAAAzD,EAAA8X,oBACA9X,EAAAmR,KAAAnR,EAAAyD,OAAA,YAAAzD,EAAAqY,mBACArY,EAAAmR,KAAAnR,EAAAyD,OAAA,WAAAzD,EAAAoY,kBACApY,EAAAqT,SAAArT,EAAAmR,KAAAnR,EAAAqT,QAAA,sBAAA1G,GACA3M,EAAA8X,mBAAAnL,GAAA,KAEA3M,EAAAqT,SAAArT,EAAAmR,KAAAnR,EAAAqT,QAAA,YAAArT,EAAAqY,mBACArY,EAAAqT,SAAArT,EAAAmR,KAAAnR,EAAAqT,QAAA,WAAArT,EAAAoY,mBAGA/O,EAAApC,UAAA5G,EAAA/D,cAqCA0D,EAAAmR,KAAA9H,EAAA,gBAAArJ,EAAAO,IAAA7G,EAAA,UAAAsG,EAAAkW,YACAlW,EAAA+B,SAAA/B,EAAAmR,KAAAzX,EAAA,QAAAsG,EAAA+B,SAEA1B,EAAAvB,mBACAkB,EAAAmR,KAAAnR,EAAAyD,OAAA,YAAAzD,EAAAyB,aACAzB,EAAAmR,KAAAnR,EAAAyD,OAAA,UAAAzD,EAAA0B,WACA1B,EAAAqT,SAAArT,EAAAmR,KAAAnR,EAAAqT,QAAA,qBAAA1G,GACA3M,EAAAyB,YAAAkL,GAAA,KAEA3M,EAAAqT,SAAArT,EAAAmR,KAAAnR,EAAAqT,QAAA,UAAArT,EAAA0B,aAEA1B,EAAAmR,KAAAnR,EAAAwD,KAAA,qBAAAmJ,GAA4DA,EAAAyM,mBAC5DpZ,EAAAuP,OAAAvP,EAAAmR,KAAAnR,EAAAuP,MAAA,qBAAA5C,GAA2EA,EAAAyM,sBA/C3EpZ,EAAAmR,KAAA9H,EAAA,gBAAArJ,EAAAO,IAAA7G,EAAA,UAAAsG,EAAA0B,WACA1B,EAAAmR,KAAAzX,EAAA,YAAAsG,EAAA2B,aACA3B,EAAA+B,SAAA/B,EAAAmR,KAAAzX,EAAA,QAAAsG,EAAA+B,SAEA/B,EAAAmR,KAAAnR,EAAAyD,OAAA,YAAAzD,EAAAyB,aACAzB,EAAAmR,KAAAnR,EAAAyD,OAAA,UAAAzD,EAAA0B,WAEA1B,EAAAuP,QACAvP,EAAAmR,KAAAnR,EAAAqT,QAAA,qBAAA1G,GACA3M,EAAAyB,YAAAkL,GAAA,KAEA3M,EAAAmR,KAAAnR,EAAAqT,QAAA,UAAArT,EAAA0B,aAGA1B,EAAAY,QAAAP,EAAA5B,0BACAuB,EAAAmR,KAAAnR,EAAAO,IAAA,eAAAP,EAAA8Y,kBACA9Y,EAAAmR,KAAAzX,EAAA,UAAAsG,EAAA+Y,gBACA/Y,EAAAmR,KAAAnR,EAAAyD,OAAA,UAAAzD,EAAA+Y,gBACA/Y,EAAAqT,SAAArT,EAAAmR,KAAAnR,EAAAqT,QAAA,UAAArT,EAAA+Y,gBACA/Y,EAAAmR,KAAAzX,EAAA,YAAAsG,EAAAgZ,kBAGAhZ,EAAA4D,OACA5D,EAAAqZ,OAAArZ,EAAA4D,KAAA,wBACA5D,EAAAwB,qBAAAxB,EAAA2X,aACA3X,EAAAwD,KAAA+V,QAAA,IAEAvZ,EAAAqZ,OAAArZ,EAAA4D,KAAA,wBACA5D,EAAAwD,KAAA+V,QAAA,EACAvZ,EAAAwD,KAAAmP,MAAA3S,EAAAoW,iBAwBA/V,EAAArC,mBACAgC,EAAAqB,UAAArB,EAAAwZ,WAAAnQ,EAAAnD,MAAAlG,EAAAY,OAAAlH,EAAAsG,EAAAO,IAAAP,EAAA4B,cACA5B,EAAAwZ,WAAAxZ,EAAAwD,KAAAxD,EAAA4B,cACA5B,EAAAuP,OAAAvP,EAAAwZ,WAAAxZ,EAAAuP,MAAAvP,EAAAyZ,iBAGAzZ,EAAAY,QAAAyI,EAAApC,UAAA,aAAApG,KAAAb,EAAAO,IAAA,GAAAO,YACAd,EAAAO,IAAA+R,KAAA,aAAAtS,EAAAO,IAAA+R,KAAA,CACAoH,WAAApgB,IAGA0G,EAAAmR,KAAAnR,EAAAO,IAAA,iBAAAoM,GACAvT,EAAA4G,EAAAoN,UAAAT,GAAAnS,IAAAwF,EAAAoN,UAAAT,KAAA,EACA3M,EAAA8D,UAAA,EACA9D,EAAAwB,qBAAAxB,EAAA2Z,iBAEA3Z,EAAAmR,KAAAnR,EAAAO,IAAA,gBAAAoM,GACAvT,GAAA,EACA4G,EAAA8D,UAAA,IAGA9D,EAAAmR,KAAAnR,EAAAO,IAAA,sBAAAoM,GACAtT,EAAA2G,EAAAoN,UAAAT,GAAAnS,IAAAwF,EAAAoN,UAAAT,KAAA,EACA3M,EAAA+D,eAAA,EACA/D,EAAAwB,qBAAAxB,EAAA2Z,iBAEA3Z,EAAAmR,KAAAnR,EAAAO,IAAA,sBAAAoM,GACAtT,GAAA,EACA2G,EAAA+D,eAAA,EACA/D,EAAAwD,KAAAmP,MAAA3S,EAAAoW,gBAOApW,EAAA6B,WAAA,SAAA8K,GACA,GAAA3M,EAAAiE,aAAA,IAAAjE,EAAAsC,KAAAkT,KAAA,SAEA7I,KAAA/S,EAAAggB,MACA,IAAApF,EAAAxU,EAAAoN,UAAAT,GACA,GAAA6H,GAAA,+BAAA3T,KAAA2T,EAAA1T,UAAA,CACA,IAAA+Y,EAAArF,EAAAsF,aAAA,SAAAtF,EAAAE,OAAA,EACA,IAAAmF,IAAA,oCAGA,GAAApgB,EAAA+a,GAAAlC,KAAA,4BAEA,GAAAtS,EAAA8D,UAAA9D,EAAA+D,gBAAA3K,GAAA4G,EAAAY,SAAAxH,IAAAC,EAAA,CACA,IAAA0gB,EAAApN,EAAAqN,QAEA,GAAAha,EAAAiE,aAAA,IAAA8V,EAAA,OAAA/Z,EAAAgQ,YAAArD,GAEA,IAAAsN,EAAAtN,EAAAuN,UAAA,EACAC,EAAAxN,EAAAyN,WAAA,EAEAC,GAAA,EACA,OAAAN,GACA,QACA,WACA/Z,EAAAwQ,WAAA,IACA6J,GAAA,EACA,MACA,QACA,WACAra,EAAAwQ,YAAA,IACA6J,GAAA,EACA,MACA,QACA,WACAra,EAAAuP,QACA,EAAAvP,EAAAqQ,aAAA,GAAArQ,EAAAuQ,eAAA,IACA8J,GAAA,GAEA,MACA,QACA,WACAra,EAAAuP,QACA,EAAAvP,EAAAqQ,aAAArQ,EAAAsC,KAAA4K,MAAAlN,EAAAuQ,gBAAA,IACA8J,GAAA,GAEA,MACA,QACA,WACAra,EAAAwQ,WAAAxQ,EAAAqC,KAAAyH,GACAuQ,GAAA,EACA,MACA,QACA,WACAra,EAAAwQ,YAAAxQ,EAAAqC,KAAAyH,GACAuQ,GAAA,EACA,MACA,QACA,WACAra,EAAAuP,OAAA0K,EAAAja,EAAAsa,YAAA,KAAAta,EAAAua,WAAA,GACAF,GAAA,EACA,MACA,QACA,WACAra,EAAAuP,OAAA0K,EAAAja,EAAAsa,YAAAta,EAAAsC,KAAA4K,KAAAlN,EAAAsC,KAAAkT,MAAAxV,EAAAua,WAAAva,EAAAsC,KAAAkT,MACA6E,GAAA,EACA,MACA,QACAha,EAAAhD,kBACA,EAAA2C,EAAAwQ,WAAAxQ,EAAAqC,KAAAyH,GAAA9J,EAAAwQ,YAAAxQ,EAAAqC,KAAAyH,GACAuQ,GAAA,GAEA,MACA,QACAra,EAAA6D,aACA7D,EAAA4S,SACAyH,GAAA,GAIA,GAAAA,EAAA,OAAAra,EAAAgQ,YAAArD,KAIAtM,EAAApC,gBAAA+B,EAAAmR,KAAAzX,EAAA2P,EAAA3D,UAAA2D,EAAA1D,UAAA,qBAAA3F,EAAA6B,YAEA7B,EAAAmR,KAAAzX,EAAA,mBAAAiT,GACA,IAAAsN,EAAAtN,EAAAuN,UAAA,EACAD,IAAAja,EAAAqE,gBAAA,KAEArE,EAAAmR,KAAAzX,EAAA,iBAAAiT,GACA,IAAAsN,EAAAtN,EAAAuN,UAAA,EACAD,IAAAja,EAAAqE,gBAAA,KAEArE,EAAAmR,KAAAvX,EAAA,gBAAA+S,GACA3M,EAAAqE,gBAAA,IAGArE,EAAAmR,KAAAvX,EAAA,SAAAoG,EAAAwa,gBACAxa,EAAAmR,KAAAvX,EAAA,oBAAAoG,EAAAwa,gBAEAxa,EAAAmR,KAAAvX,EAAA,OAAAoG,EAAAya,YAEApR,EAAAxC,WAAA7G,EAAAY,SAAAZ,EAAAe,WAAA,CACA,IAAA2Z,EAAA1a,EAAAO,IAAA+R,KAAA,SACAtD,EAAAd,WAAAlO,EAAAO,IAAAwC,IAAA,YACA/C,EAAAO,IAAAwC,IAAA,QAAAiM,GACAhP,EAAA+J,QAAA,uBACA/J,EAAAO,IAAA+R,KAAA,QAAAoI,KAOA1a,EAAA2a,kBAAA,SAAAhO,GACA3M,EAAAya,WAAAza,EAAAmG,QAAA,SAGA9F,EAAAX,iBAEAM,EAAAyG,SAAA,IAAAlL,IACAyE,EAAAsD,aAAA,IAAA/H,EAAA,SAAAqf,GAMA,GALAA,EAAAC,QAAA,SAAAC,GACA,iBAAAA,EAAApG,KACA,OAAAtU,EAAA2a,SAAA,eAAA3a,EAAA2a,SAAA,kBAAAthB,EAAAuhB,SAAAvhB,EAAA,oBAAAuG,EAAAM,IAAA,IAAAN,EAAA+T,OAAA/T,EAAAib,SAGAjb,EAAAD,GAAAmb,aAAAlb,EAAAsC,KAAAkN,OAAAxP,EAAAD,GAAAob,cAAAnb,EAAAsC,KAAAgN,OAAA,OAAAtP,EAAAya,WAAA,MAEAza,EAAAsD,aAAA8X,QAAA1hB,EAAAuH,KAAA,CACAoa,WAAA,EACAC,SAAA,EACAC,eAAA,EACAC,YAAA,EACAC,gBAAA,aAIAzb,EAAAY,QAAAZ,EAAAe,cAEA,IAAAxF,GACAyE,EAAAoD,SAAA,IAAA7H,EAAA,SAAAqf,GACAA,EAAAC,QAAA7a,EAAA2a,qBAEA3a,EAAAoD,SAAAgY,QAAApb,EAAAO,IAAA,IACA8a,WAAA,EACAE,eAAA,EACAC,YAAA,EACAF,SAAA,IAEAtb,EAAAqD,gBAAA,IAAA9H,EAAA,SAAAqf,GACAA,EAAAC,QAAA,SAAAa,GACA,GAAAA,EAAAC,aAAAxc,OAAA,EACA,QAAA0K,KAAA6R,EAAAC,aACA,GAAA3b,GAAA0b,EAAAC,aAAA9R,IAAA7J,EAAAO,IAAA,UAAAP,EAAA4b,aAKA5b,EAAAqD,gBAAA+X,QAAApb,EAAAO,IAAA,GAAAgN,WAAA,CACA8N,WAAA,EACAE,eAAA,EACAC,YAAA,EACAF,SAAA,MAGAtb,EAAAmR,KAAAnR,EAAAO,IAAA8I,EAAAnD,OAAAmD,EAAA9C,MAAA,mCAAAvG,EAAA2a,mBACAtR,EAAA9C,OAAAvG,EAAAO,IAAA,GAAAsb,YAAA,mBAAA7b,EAAA2a,mBACA3a,EAAAmR,KAAAnR,EAAAO,IAAA,0BAAAoM,GACAA,EAAA9J,QAAA7C,EAAAO,IAAA,IAAAP,EAAA4b,eASA5b,EAAAY,QAAAP,EAAA5D,SAAAuD,EAAAmR,KAAAvX,EAAA,SAAAoG,EAAA8b,YACA9b,EAAAsB,aACAtB,EAAAmR,KAAAnR,EAAAO,IAAA,UAAAP,EAAAya,YACAza,EAAAmR,KAAAnR,EAAAO,IAAA,UAAAP,EAAAya,aAGAza,EAAAya,WAAA,IAIA,aAAAxa,KAAAK,IAAA,GAAAQ,SAAA,CACA,IAAAib,EAAA,WAEA,IAAAzb,EADAN,EAAAgc,UAAA,EAEA,KACA1b,EAAA,oBAAAL,UAAAgc,gBAAAhc,KAAAic,cAAAxiB,MACAyiB,OACW,MAAAxP,GACX3M,EAAAgc,UAAA,EACA1b,GAAA,EAGA,GAAAN,EAAAgc,SAEA,MADA,YAAApiB,GAAAwiB,QAAAC,IAAA,8CACA,EAoBA,GAjBArc,EAAAuB,aAAA,EAEAvB,EAAAqB,WACArB,EAAAoB,OAAA,CACAd,IAAA7G,EAAA6G,GACAgc,KAAAtc,EAAAM,IAAAic,WAAAC,KAAA,WACAvb,KAAAjB,EAAAM,IAAAic,WAAAC,KAAA,YAEAxc,EAAAuV,eAAA,WACA,OACA9E,EAAAzV,KAAAC,IAAA+E,EAAAoB,OAAAkb,KAAAG,YAAAzc,EAAAoB,OAAAH,KAAAwb,aACA3S,EAAA9O,KAAAC,IAAA+E,EAAAoB,OAAAkb,KAAAI,aAAA1c,EAAAoB,OAAAH,KAAAyb,gBAGA1c,EAAAgB,UAAAvH,EAAAuG,EAAAoB,OAAAH,QAGAoI,EAAA3B,OAAArH,EAAAtD,mBAAAiD,EAAAqB,SAAA,CACArB,EAAAO,IAAA8J,UAAA,GACArK,EAAAM,IAAAgP,OAAA,IACA,IAAAqN,EAAA3hB,KAAAC,IAAAqF,EAAApB,qBAAA,WAAAwd,aAAApc,EAAAW,KAAAyb,cACA1c,EAAAM,IAAAgP,OAAAqN,GAEA3c,EAAAya,WAAA,IAEAza,EAAA+C,IAAAtJ,EAAAuG,EAAAoB,OAAAH,MAAAgQ,GAEA5H,EAAA3B,OAAA1H,EAAAe,YACAf,EAAA+C,IAAAtJ,EAAA6G,EAAAW,MAAA,CACA2b,oBAAA,uBAIA,kBAAA3c,KACAD,EAAAmR,KAAAlR,KAAAic,cAAA,SAAAlc,EAAA6c,UAEA7c,EAAAmR,KAAA7Q,EAAA,SAAAN,EAAA6c,UAGAxc,EAAArC,kBACAgC,EAAAwZ,WAAAlZ,EAAAN,EAAA4B,cAGAvB,EAAApC,gBAAA+B,EAAAmR,KAAA7Q,EAAA+I,EAAA,6BAAArJ,EAAA6B,YAEAwH,EAAApC,UACAjH,EAAAmR,KAAA7Q,EAAA,aAAAN,EAAAiU,cACAjU,EAAAmR,KAAA7Q,EAAA,YAAAN,EAAAwW,cAEAnW,EAAA/D,eACA0D,EAAAmR,KAAA7Q,EAAA,YAAAN,EAAAiU,cACAjU,EAAAmR,KAAA7Q,EAAA,qBAAAqM,GACA,OAAA3M,EAAAwW,YAAA7J,GAAA,KAEAtM,EAAAzD,mBAAAyM,EAAAR,iBAAA7I,EAAA+C,IAAAtJ,EAAA6G,EAAAW,MAAA,CACAwC,OAAA4F,EAAAR,mBAIA7I,EAAAmR,KAAA7Q,EAAA,UAAAN,EAAAkW,YAEAlW,EAAA4D,OACAvD,EAAA3D,cAAAsD,EAAAmR,KAAA7Q,EAAA,WAAAN,EAAA4S,QACA5S,EAAA8B,eAAA9B,EAAAmR,KAAA7Q,EAAA,aAAAN,EAAA8B,iBAIA7B,KAAAK,IAAA,GAAAwc,YAAA,aAAA7c,KAAAK,IAAA,GAAAwc,YACA5hB,WAAA,WACA6gB,EAAA/V,KAAAhG,EAAAM,IAAA,QACW,KAEXN,EAAAmR,KAAAlR,KAAAK,IAAA,OAAAyb,KAMA9b,KAAA0X,WAAA,SAAAoF,EAAA9O,GAKA,GAJAjO,EAAAgd,gBACA7hB,aAAA6E,EAAAgd,eACAhd,EAAAgd,cAAA,GAEAhd,EAAAwD,KAAA,CAqBA,GApBAxD,EAAA4T,cACA5T,EAAA4T,YAAAW,OAAAxR,IAAA,CACA8Q,QAAAxT,EAAAvE,mBAEAkE,EAAAoE,cAAA,GAGApE,EAAAwD,KAAAmP,MAAA,GAAA3S,EAAAwD,KAAAmP,KAAA0C,UACAnc,IAAA6jB,IAAA,IAAAA,IACA/c,EAAAuC,OAAAE,EAAAsa,EAAA/c,EAAA0C,YAAAD,EAAA,QAEAvJ,IAAA+U,IACAjO,EAAAuC,OAAAC,EAAAyL,EAAAjO,EAAA0C,YAAAF,EAAA,IAIAxC,EAAAyD,OAAAV,IAAA,CACAuM,OAAAtP,EAAA2C,aACApF,IAAAyC,EAAAuC,OAAAE,IAEAzC,EAAAqT,QAAA,CACA,IAAA4J,EAAAjd,EAAA,aAAAA,EAAAuY,gBAAAvY,EAAAuC,OAAAC,EAAAxC,EAAAuC,OAAAC,EACAxC,EAAAqT,QAAAtQ,IAAA,CACAyM,MAAAxP,EAAAhE,YACAyB,MAAAuC,EAAAwD,KAAAkM,OAAA1P,EAAAwD,KAAAQ,WAAAiZ,EAAAjd,EAAAwD,KAAAgM,MAAAyN,IAEAjd,EAAAoE,cAAA,EAGApE,EAAA4D,MAAA5D,EAAA4D,KAAA2Q,OAAAxR,IAAA,CACA8Q,QAAAxT,EAAAvE,qBAIAmE,KAAAmW,WAAA,SAAAxM,GACA5J,EAAAgd,eACAhd,EAAAwD,MACAxD,EAAA4T,cAEA5T,EAAA+D,eAAA,UAAA1D,EAAAxD,eACAmD,EAAAgd,cAAA9hB,WAAA,WACA8E,EAAAwD,KAAA+V,QAAAvZ,EAAAkd,mBACAld,EAAA4T,YAAAW,OAAA4I,QAAA,CACAtJ,QAAAxT,EAAAxE,mBAEAmE,EAAA4D,MAAA5D,EAAA4D,KAAA2Q,OAAA4I,QAAA,CACAtJ,QAAAxT,EAAAxE,mBAEAmE,EAAAoE,cAAA,GAEApE,EAAAgd,cAAA,GACOpT,GAAAvJ,EAAA9B,oBAGP0B,KAAA0Z,aAAA,SAAA/P,EAAAmT,EAAA9O,GACAjO,EAAA2X,WAAAoF,EAAA9O,GACAjO,EAAAwD,KAAA+V,QAAAvZ,EAAAoW,WAAAxM,IAGA3J,KAAAsV,eACAvV,EAAA,OACA,WACA,OACAyQ,EAAAzV,KAAAC,IAAAvB,EAAAuH,KAAAwb,YAAA/iB,EAAAwN,gBAAAuV,aACA3S,EAAA9O,KAAAC,IAAAvB,EAAAuH,KAAAyb,aAAAhjB,EAAAwN,gBAAAwV,gBAES1c,EAAA,WACT,WACA,OACAyQ,EAAAzQ,EAAAM,IAAA,GAAA8c,YACAtT,EAAA9J,EAAAM,IAAA,GAAA+c,eAEW,WACX,OACA5M,EAAAzQ,EAAAgB,UAAA,GAAAyb,YACA3S,EAAA9J,EAAAgB,UAAA,GAAA0b,eAIAzc,KAAAqd,SAAA,SAAA3Q,EAAArK,GAEA,IAAAtC,MAAAO,IAAA,SAEA,IAAAgd,EAAAvd,EAAAsC,KAAAkT,KACAgI,EAAAxd,EAAAsC,KAAA4K,KACAuQ,EAAAzd,EAAAqC,KAAAyH,EACA4T,EAAA1d,EAAAqC,KAAAoO,EAYA,GAVAzQ,EAAAqC,KAAA,CACAoO,EAAAzQ,EAAA,OAAAA,EAAAO,IAAAiP,QAAAxP,EAAAO,IAAA,GAAA2a,YACApR,EAAA9J,EAAA,OAAAA,EAAAO,IAAA+O,SAAAtP,EAAAO,IAAA,GAAA4a,cAGAnb,EAAAsC,KAAA,GAAAtC,EAAAuV,iBAEAvV,EAAAsC,KAAAkT,KAAAxa,KAAAC,IAAA,EAAA+E,EAAAsC,KAAAwH,EAAA9J,EAAAqC,KAAAyH,GACA9J,EAAAsC,KAAA4K,KAAAlS,KAAAC,IAAA,EAAA+E,EAAAsC,KAAAmO,EAAAzQ,EAAAqC,KAAAoO,GAEAzQ,EAAAsC,KAAAkT,MAAA+H,GAAAvd,EAAAsC,KAAA4K,MAAAsQ,GAAAxd,EAAAqC,KAAAoO,GAAAiN,GAAA1d,EAAAqC,KAAAyH,GAAA2T,EAAA,CAEA,GAAAzd,EAAAY,OAQA,OAAAZ,EAPA,IAAAoP,EAAApP,EAAAO,IAAAuO,SACA,GAAA9O,EAAA2d,aAAA,CACA,IAAA7U,EAAA9I,EAAA2d,aACA,GAAA7U,EAAAvL,KAAA6R,EAAA7R,KAAAuL,EAAArL,MAAA2R,EAAA3R,KAAA,OAAAuC,EAEAA,EAAA2d,aAAAvO,EAmCA,GA7BA,IAAApP,EAAAsC,KAAAkT,MACAxV,EAAA4d,WACA5d,EAAA4C,eAAA,EACA5C,EAAAuC,OAAAE,EAAA,EACAzC,EAAA0C,YAAAD,EAAA,EACAzC,EAAA2C,aAAA,EACA3C,EAAAwK,aAAA,GACAxK,EAAAwD,OAAAxD,EAAAwD,KAAAkP,YAAA,KAEA1S,EAAAsC,KAAAkT,MAAAnV,EAAA/C,YAAAC,IAAA8C,EAAA/C,YAAAI,OACAsC,EAAAwD,KAAAkP,YAAA,GAGA,IAAA1S,EAAAsC,KAAA4K,MACAlN,EAAA6d,aACA7d,EAAAuY,gBAAA,EACAvY,EAAAuC,OAAAC,EAAA,EACAxC,EAAA0C,YAAAF,EAAA,EACAxC,EAAAhE,YAAA,EACAgE,EAAA2K,cAAA,GACA3K,EAAAuP,QACAvP,EAAAuP,MAAAmD,YAAA,KAGA1S,EAAAsC,KAAA4K,MAAA7M,EAAA/C,YAAAG,KAAA4C,EAAA/C,YAAAE,MACAwC,EAAAuP,QAAAvP,EAAAuP,MAAAmD,WAAArS,EAAA,mBAGAL,EAAAiE,YAAAjE,EAAA,YAAAA,EAAAsC,KAAAkT,MAAA,IAAAxV,EAAAsC,KAAA4K,KACAlN,EAAAiE,YAEA,OADAjE,EAAAY,QAAAZ,EAAAkP,gBAAAlP,EAAAqC,OACA,EAGArC,EAAAmE,QAAAnE,EAAAgE,YAGAhE,EAAAuP,OAAAvP,EAAAmE,QAAAnE,EAAAuP,MAAAvL,YAAAhE,EAAA8d,aAFA9d,EAAA+d,WAAAD,aAIA9d,EAAAsB,YAAAtB,EAAAO,IAAAwC,IAAA,mBAAA/C,EAAAO,IAAAwC,IAAA,YAAA/C,EAAAqC,KAAAyH,GAAA,IAEA9J,EAAA2C,aAAA3H,KAAAgjB,IAAAhe,EAAAqC,KAAAyH,EAAA9O,KAAAkc,MAAAlX,EAAAqC,KAAAyH,GAAA9J,EAAAqC,KAAAyH,EAAA9J,EAAAsC,KAAAwH,KACA9J,EAAA2C,aAAAtC,EAAA,kBAAAA,EAAAhC,kBAAArD,KAAAC,IAAAoF,EAAArD,gBAAAgD,EAAA2C,cAEA3C,EAAAhE,YAAAhB,KAAAgjB,IAAAhe,EAAAqC,KAAAoO,EAAAzV,KAAAkc,MAAAlX,EAAAqC,KAAAoO,GAAAzQ,EAAAqC,KAAAoO,EAAAzQ,EAAAsC,KAAAmO,KACAzQ,EAAAhE,YAAAqE,EAAA,kBAAAA,EAAAhC,kBAAArD,KAAAC,IAAAoF,EAAArD,gBAAAgD,EAAAhE,aAEAgE,EAAA4C,eAAA5C,EAAAqC,KAAAyH,EAAA9J,EAAA2C,cAAAtC,EAAA/C,YAAAC,IAAA8C,EAAA/C,YAAAI,QACAsC,EAAA8Q,eAAA9Q,EAAA4C,gBAAA5C,EAAAyD,OAAA,GAAA4Z,aAAArd,EAAAyD,OAAA,GAAA0X,cAEAnb,EAAAuP,QACAvP,EAAAuP,MAAAC,MAAAxP,EAAAsC,KAAAkT,KAAA,EAAAxV,EAAAqC,KAAAoO,EAAAzQ,EAAAwD,KAAAgM,MAAAxP,EAAAqC,KAAAoO,EACAzQ,EAAAuY,gBAAAvY,EAAAuP,MAAAC,MAAAxP,EAAAhE,aAAAqE,EAAA/C,YAAAG,KAAA4C,EAAA/C,YAAAE,QAGAwC,EAAAY,QAAAZ,EAAAkP,gBAAAlP,EAAAqC,MAEArC,EAAA0C,YAAA,CACAF,EAAAxC,EAAAsC,KAAA4K,KAAAlN,EAAAuY,gBACA9V,EAAAzC,EAAAsC,KAAAkT,KAAAxV,EAAA4C,gBAGA,IAAAuS,EAAAnV,EAAAuK,eAWA,OAVA4K,EAAAnV,EAAAsC,KAAAkT,KACAxV,EAAAsQ,YAAAtQ,EAAAsC,KAAAkT,OAEAxV,EAAAuC,OAAAE,EAAAzC,EAAAuK,eAAAvK,EAAA0C,YAAAD,EAAA,EACAzC,EAAAuC,OAAAC,EAAAxC,EAAA0K,gBAAA1K,EAAA0C,YAAAF,EAAA,EACAxC,EAAAoE,cAAApE,EAAA2Z,gBAGA3Z,EAAAuC,OAAAE,GAAA,IAAAzC,EAAAuK,gBAAAvK,EAAAua,WAAAva,EAAAuC,OAAAE,EAAAzC,EAAA0C,YAAAD,EAAA,GAEAzC,GAGAC,KAAAge,OAAAje,EAAAsd,SAEA,IAAAY,EAAA,EA+BA,SAAAC,EAAAtQ,EAAA1N,EAAAwJ,EAAAyU,GACApe,EAAAqe,MAAAxQ,EAAA1N,EAAA,SAAAwM,GAEA,IAAAiN,EAAA,CACA7E,SAFApI,KAAA/S,EAAAggB,MAGA/W,OAAA8J,EAAA9J,QAAA8J,EAAAU,WACAqH,KAAA,QACA4J,UAAA,uBAAA3R,EAAA+H,KAAA,IACA6J,OAAA,EACAC,OAAA,EACApF,eAAA,WAEA,OADAzM,EAAAyM,eAAAzM,EAAAyM,iBAAAzM,EAAA8R,aAAA,GACA,GAEAC,yBAAA,WACA/R,EAAA,yBAAAA,EAAA+R,2BAAA/R,EAAAgS,cAAA,IAYA,MARA,cAAAxe,GACAwM,EAAAiS,cAAAhF,EAAA2E,QAAA,KAAA5R,EAAAiS,aACAjS,EAAAkS,cAAAjF,EAAAkF,QAAA,KAAAnS,EAAAkS,cACAjF,EAAAkF,SAAAlF,EAAA2E,SAAA3E,EAAAkF,QAAA,KAAAnS,EAAAoS,aAEAnF,EAAAkF,OAAAnS,EAAAqS,OAGArV,EAAA3D,KAAA6H,EAAA+L,IACOwE,GAzDPne,KAAAua,eAAA,SAAA7N,GACAxR,aAAA+iB,GAEA,IAAAe,GAAAjf,EAAAY,SAAAZ,EAAAe,WACAke,GAAAjf,EAAAkf,YAEAhB,EAAAhjB,WAAA,WACA8E,IACAif,GAAAjf,EAAAmf,YACAnf,EAAAie,UAEAC,EAAA,GACO,MAGPje,KAAAwa,WAAA,SAAA7Q,GASA,OAPAzO,aAAA+iB,GAEAA,EAAAhjB,WAAA,WACA8E,KAAAie,SACAC,EAAA,GACOtU,GAAA,KAEP5J,GAsCAC,KAAAoZ,OAAA,SAAAxL,EAAA1N,EAAAwJ,GACA3J,EAAAwE,OAAA4F,KAAA,CACAuC,EAAAkB,EACA1D,EAAAhK,EACAif,EAAAzV,EACA0V,GAAA,IAEA5lB,EAAAoU,GAAAyR,GAAAnf,EAAAwJ,IAGA1J,KAAAuZ,WAAA,SAAA3L,EAAAlE,EAAAyU,GACA,IAAAnU,EAAA,WAAA4D,IAAA,GAAAA,EACA,eAAAnU,EAAAsL,cAAA,OACAhF,EAAAqe,MAAApU,EAAA,QAAAN,EAAAyU,IAAA,OACO,CACP,IAAAmB,OAAArmB,IAAAQ,EAAAkI,aAAA,8BACAuc,EAAAlU,EAAAsV,EAAA5V,EAAAyU,IAAA,GACA,kBAAAmB,GAAApB,EAAAlU,EAAA,sBAAAN,EAAAyU,IAAA,KAIA,IAAAoB,GAAA,EAEA,GAAAnW,EAAApB,iBAAA,CAGA,IAAW,IAAAwX,EAAA5Z,OAAA6Z,eAAA,GAAuC,WAAcC,IAAA,WAAmBH,GAAA,KAA6B5lB,EAAAgmB,iBAAA,YAAAH,GAAgD,MAAAI,IAEhK5f,KAAA0U,gBAAA,SAAAhI,GACA,QAAAA,KACAA,IAAA,SAAAA,EAAAoI,SAAApI,GACAgI,mBACA,IAGA1U,KAAA+P,YAAA,SAAArD,GAIA,OAHAA,EAAAmT,YAAAnT,EAAAyM,iBACAzM,EAAA+R,2BACA/R,EAAAoT,qBAAApT,EAAAoT,uBACA,QAOAC,MAAAla,UAAAsT,eAAA,WACAnZ,KAAAwe,aAAA,GAGAuB,MAAAla,UAAA6O,gBAAA,WACA1U,KAAA0e,cAAA,GAGA/kB,EAAAqmB,YAAAna,UAAA8Z,iBAAAlmB,EAAAumB,YAAAna,UAAA8Z,iBAAAM,QAAApa,UAAA8Z,iBAAA,SAAAlL,EAAAyL,EAAAC,GACAngB,KAAA4b,YAAA,KAAAnH,EAAAyL,IAEAvmB,EAAAqmB,YAAAna,UAAAua,oBAAA3mB,EAAAumB,YAAAna,UAAAua,oBAAAH,QAAApa,UAAAua,oBAAA,SAAA3L,EAAAyL,EAAAC,GACAngB,KAAAqgB,YAAA,KAAA5L,EAAAyL,IAIAlgB,KAAA+P,YAAA,SAAArD,GAOA,OANAA,KAAA/S,EAAAggB,SAEAjN,EAAAgS,cAAA,EACAhS,EAAA4T,QAAA,EACA5T,EAAA8R,aAAA,IAEA,GAGAxe,KAAA0U,gBAAA,SAAAhI,GAGA,OAFAA,KAAA/S,EAAAggB,SACAjN,EAAAgS,cAAA,IACA,GAKA1e,KAAAiZ,SAAA,SAAArL,EAAA1N,EAAAwJ,EAAAyU,EAAA7E,GAEA,IAAAiH,EAAAzmB,EAAAoG,KAAA,EAEAqgB,IAEAA,EAAA,CACA9f,EAAA,GACAqI,EAAA,GACAqW,EAAA,SAAAzS,GAGA,IAFA,IAAA7D,EAAA0X,EAAAzX,IAAAD,EAAA3J,OAAA,EACAshB,GAAA,EACA/f,EAAAqI,EAA2BrI,GAAA,EAAQA,IAEnC,SADA+f,EAAA3X,EAAApI,GAAAsF,KAAA2G,EAAA9J,OAAA8J,IACA,SAEA,OAAA8T,IAIAzgB,EAAAmR,KAAAtD,EAAA1N,EAAAqgB,EAAApB,EAAAhB,EAAA7E,GAEAxf,EAAAoG,GAAAqgB,GAIAxgB,EAAAY,QACA4f,EAAA9f,EAAA,CAAAV,EAAAxF,IAAAkmB,OAAAF,EAAA9f,GACA8f,EAAAzX,EAAA,CAAAY,GAAA+W,OAAAF,EAAAzX,KAEAyX,EAAA9f,EAAA0J,KAAApK,EAAAxF,IACAgmB,EAAAzX,EAAAqB,KAAAT,KAKA1J,KAAA0gB,WAAA,SAAA9S,EAAA1N,EAAAwJ,EAAAyU,EAAA7E,GACA,IAAAiH,EAAAzmB,EAAAoG,KAAA,EACA,GAAAqgB,EACA,QAAA9f,EAAA,EAAAqI,EAAAyX,EAAAzX,EAAA5J,OAAmCuB,EAAAqI,EAAIrI,IACvC8f,EAAA9f,OAAAV,EAAAxF,KACAgmB,EAAA9f,EAAAkgB,OAAAlgB,GACA8f,EAAAzX,EAAA6X,OAAAlgB,GACA,IAAA8f,EAAA9f,EAAAvB,SACAa,EAAA6gB,QAAAhT,EAAA1N,EAAA2gB,IAAA1B,GACArlB,EAAAoG,GAAA,QAOAF,KAAAkR,KAAA,SAAAtD,EAAA1N,EAAAwJ,EAAAyU,EAAA7E,GACA,IAAAtP,EAAA,WAAA4D,IAAA,GAAAA,EACA7N,EAAAqe,MAAApU,EAAA9J,EAAAwJ,EAAAyU,IAAA,EAAA7E,IAAA,IAGAtZ,KAAAoe,MAAA,SAAApU,EAAA9J,EAAAwJ,EAAAyU,EAAA7E,GAEAvZ,EAAAwE,OAAA4F,KAAA,CACAuC,EAAA1C,EACAE,EAAAhK,EACAif,EAAAzV,EACAoX,EAAA3C,EACAiB,GAAA,IAGAG,GAAAjG,EAAAtP,EAAA2V,iBAAAzf,EAAAwJ,EAAA,CAAoEqX,SAAA,EAAAC,QAAA7C,IAAkCnU,EAAA2V,iBAAAzf,EAAAwJ,EAAAyU,IAAA,IAGtGne,KAAA4gB,QAAA,SAAA5W,EAAA9J,EAAAwJ,EAAAuX,GACAnnB,EAAAoG,GAAAH,EAAA2gB,WAAA1W,EAAA9J,EAAAwJ,EAAAuX,GACAjX,EAAAoW,oBAAAlgB,EAAAwJ,EAAAuX,IAGAjhB,KAAAkhB,UAAA,WACA,QAAAzgB,EAAA,EAAqBA,EAAAV,EAAAwE,OAAArF,OAAwBuB,IAAA,CAC7C,IAAA+f,EAAAzgB,EAAAwE,OAAA9D,GACA+f,EAAA,EAAAA,EAAA9T,EAAAyU,OAAAX,EAAAtW,EAAAsW,EAAArB,GAAApf,EAAA6gB,QAAAJ,EAAA9T,EAAA8T,EAAAtW,EAAAsW,EAAArB,EAAAqB,EAAAM,KAIA9gB,KAAAkf,UAAA,WACA,OAAAnf,EAAA+d,WAAAD,cAGA7d,KAAA8d,SAAA,WAMA,OALA,IAAA/d,EAAAsC,KAAAkT,OAAAxV,EAAAY,QAAA,QAAAZ,EAAAO,IAAAwC,IAAA,aACA/C,EAAAgE,YAAA,EACAhE,EAAAwD,KAAAQ,YAAA,EACAhE,EAAAwD,KAAAT,IAAA,oBAEA/C,GAGAC,KAAA6d,WAAA,WAOA,OANA9d,EAAAuP,QACA,IAAAvP,EAAAsC,KAAA4K,OAAAlN,EAAAY,QAAA,QAAAZ,EAAAO,IAAAwC,IAAA,aACA/C,EAAAuP,MAAAvL,YAAA,EACAhE,EAAAuP,MAAAxM,IAAA,qBAGA/C,GAGAC,KAAAif,UAAA,WACA,OAAAlf,EAAA4d,WAAAC,cAGA5d,KAAA2d,SAAA,WAIA,OAHA5d,EAAAgE,YAAA,EACAhE,EAAAwD,KAAAQ,YAAA,EACAhE,EAAAwD,KAAAT,IAAA,kBACA/C,GAGAC,KAAA4d,WAAA,WAKA,OAJA7d,EAAAuP,QACAvP,EAAAuP,MAAAvL,YAAA,EACAhE,EAAAuP,MAAAxM,IAAA,mBAEA/C,GAGAC,KAAAgb,KAAA,WAGA,OAFAjb,EAAAmE,QAAA,EACAnE,EAAAiE,aAAA,EACAjE,EAAAmf,aAGAlf,KAAA8T,KAAA,WAGA,OAFA/T,EAAAmE,QAAA,EACAnE,EAAAiE,aAAA,EACAjE,EAAAkf,aAGAjf,KAAAohB,OAAA,WACA,OAAArhB,EAAA,OAAAA,EAAAib,OAAAjb,EAAA+T,QAGA9T,KAAA2b,OAAA,WAGA,QAAAzR,KAFAnK,EAAAuU,OACAvU,EAAAgd,eAAA7hB,aAAA6E,EAAAgd,eACAhd,EAAA0E,UAAA1E,EAAA0E,UAAAyF,IAAA/P,EAAA4F,EAAA0E,UAAAyF,GAAAL,GACA9J,EAAAiT,YACAjT,EAAAmhB,YAEA9X,EAAA9C,OAAAvG,EAAAO,IAAA,GAAA+f,YAAA,mBAAAtgB,EAAA2a,oBAEA,IAAA3a,EAAAoD,UAAApD,EAAAoD,SAAAke,cACA,IAAAthB,EAAAqD,iBAAArD,EAAAqD,gBAAAie,cACA,IAAAthB,EAAAsD,cAAAtD,EAAAsD,aAAAge,aAEAthB,EAAAwE,OAAA,KAEAxE,EAAAyD,QACAzD,EAAAyD,OAAAmY,SAEA5b,EAAAqT,SACArT,EAAAqT,QAAAuI,SAEA5b,EAAAwD,MACAxD,EAAAwD,KAAAoY,SAEA5b,EAAAuP,OACAvP,EAAAuP,MAAAqM,SAEA5b,EAAA4D,MACA5D,EAAA4D,KAAAgY,SAEA,QAAAlb,EAAA,EAAqBA,EAAAV,EAAAyE,MAAA1B,IAAA5D,OAA2BuB,IAAA,CAChD,IAAA8E,EAAAxF,EAAAyE,MAAA1B,IAAArC,GACA8E,EAAA,GAAAzC,IAAAyC,EAAA,QAAAtM,IAAAsM,EAAA,MAAAA,EAAA,IAEAxF,EAAAyE,OAAA,EACAzE,EAAAD,GAAAwhB,KAAA,mBAIA,IAAAzY,EAAArP,EAAA+nB,WAWA,QAAAC,KAVA3Y,EAAA4Y,KAAA,SAAAD,GACA,GAAAxhB,MACAA,KAAAzF,KAAAwF,EAAAxF,GAAA,QACAsO,EAAA2Y,GACA,QAAAV,IAAAU,EAA2BV,EAAAjY,EAAA3J,OAAgB4hB,IAAAU,IAAA3Y,EAAA2Y,GAAA3Y,EAAAiY,GAC3CjY,EAAA3J,SACA2J,EAAA3J,eAAA2J,IAAA3J,WAIAa,EACAA,EAAAyhB,GAAA,YACAzhB,EAAAyhB,GAGAzhB,EAAA,MAIAC,KAAA0hB,YAAA,SAAAhY,GAEA,OADA1J,KAAA+B,cAAA2H,EACA3J,GAEAC,KAAA2hB,UAAA,SAAAjY,GAEA,OADA1J,KAAAgC,YAAA0H,EACA3J,GAEAC,KAAA4hB,aAAA,SAAAlY,GAEA,OADA1J,KAAAiC,eAAAyH,EACA3J,GAGAC,KAAA6hB,OAAA,SAAAnY,GAEA,OADA1J,KAAAkC,SAAAwH,EACA3J,GAEAC,KAAA8hB,QAAA,SAAApY,GAEA,OADA1J,KAAAmC,UAAAuH,EACA3J,GAGAC,KAAA+hB,aAAA,SAAArV,GACA,IAAAkB,EAAAlB,EAAA,OAAAA,EAAA9J,OAAA8J,EACA,aAAAkB,EAAA/M,SAAA,SACA,KAAA+M,GAAA,GAAAA,EAAAyD,UAAAzD,IAAA5N,KAAAF,GAAA,kBAAAc,KAAAgN,EAAA/M,WAAA,CACA,IAAA+I,EAAApQ,EAAAoU,GACAoU,EAAApY,EAAA9G,IAAA,cAAA8G,EAAA9G,IAAA,cAAA8G,EAAA9G,IAAA,gBACA,iBAAAlC,KAAAohB,GAAA,OAAApU,EAAAsN,cAAAtN,EAAA6O,aACA7O,MAAA,YAAAA,EAAAN,WAEA,UAGAtN,KAAAwT,YAAA,SAAA1T,GAEA,IADA,IAAA8N,KAAA9N,MAAAwN,aAAAxN,EAAAwN,WACAM,GAAA,GAAAA,EAAAyD,WAAA,aAAAzQ,KAAAgN,EAAA/M,WAAA,CACA,IAAA+I,EAAApQ,EAAAoU,GACA,oBAAAhN,KAAAgJ,EAAA9G,IAAA,oBAAA8G,EACA,IAAAoY,EAAApY,EAAA9G,IAAA,cAAA8G,EAAA9G,IAAA,cAAA8G,EAAA9G,IAAA,gBACA,iBAAAlC,KAAAohB,IAAApU,EAAAsN,cAAAtN,EAAA6O,aAAA,OAAA7S,EACA,GAAAA,EAAAqY,gBAAA/iB,OAAA,SAAA0K,EACAgE,MAAA,YAAAA,EAAAN,WAEA,UAGAtN,KAAAsX,mBAAA,SAAA4K,EAAAC,EAAAC,EAAAC,EAAAC,GAEA,GAAAviB,EAAAgC,cAAA,CACA,IAAAwgB,EAAA,CACA9N,KAAA,cACA+N,QAAA,CACAjgB,EAAA2f,EACA1f,EAAA2f,GAEAM,QAAA,CACAlgB,EAAA6f,EACA5f,EAAA6f,GAEAK,IAAA,CACAngB,EAAAxC,EAAA2Q,WACAlO,EAAAzC,EAAA0Q,YAEAkS,MAAAL,GAEAviB,EAAAgC,cAAAgE,KAAAhG,EAAAwiB,KAKAviB,KAAAqU,iBAAA,WACA,GAAAtU,EAAAiC,YAAA,CAEA,IAAAgM,EAAAjO,EAAA0K,gBACAqS,EAAA/c,EAAAuK,eAEAiY,EAAA,CACA9N,KAAA,YACA+N,QAAA,CACAjgB,EAAAyL,EACAxL,EAAAsa,GAEA4F,IAAA,CACAngB,EAAAyL,EACAxL,EAAAsa,IAIA/c,EAAAiC,YAAA+D,KAAAhG,EAAAwiB,KAMA,IAAAK,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAEA,SAAAC,EAAAhV,EAAA8O,EAAAmG,EAAAC,GAEAnjB,EAAAkD,gBACAlD,EAAA0Q,WAAA1Q,EAAAuK,eACAvK,EAAA2Q,WAAA3Q,EAAA0K,gBACAqY,EAAArnB,KAGA,IAAA0nB,EAAA1nB,IAAAqnB,EAYA,GAXAA,EAAArnB,IAEA0nB,EAAA,IACAJ,EAAA,EAEAA,IAAA,EAAAA,GAAA,GAIAjG,IAAAiG,EAAA,EADA/U,IAAA+U,EAAA,EAGA,CAEA,GAAAG,EACA,GAAAlV,EAAA,GACA,GAAAjO,EAAA0K,iBAAA1K,EAAAsC,KAAA4K,KAAA,cAEA,GAAAlN,EAAA0K,iBAAA,WAIA,IAAA2Y,EAAApV,EAAA,OAEA6U,IAAAO,IACArjB,EAAAmD,WAAAnD,EAAAmD,UAAAoR,OACAvU,EAAA2Q,WAAA3Q,EAAA0K,gBACAoY,EAAAO,GAGArjB,EAAA4E,YAAAqJ,EAIA,GAAA8O,EAAA,CAEA,IAAAuG,EAAA,WACA,IAAA/lB,EAAAyC,EAAAuK,eACA,GAAAwS,EAAA,GACA,GAAAxf,GAAAyC,EAAAsC,KAAAkT,KAAA,cAEA,GAAAjY,GAAA,WALA,GASA,GAAA+lB,EAAA,CACA,GAAAjjB,EAAA7B,uBAAA0kB,IAAAljB,EAAAY,SAAAZ,EAAA6D,WAAA,SACA,IAAAoT,EAAAjX,EAAAqC,KAAAyH,GAAA,EACA9J,EAAA0Q,YAAAuG,GAAsCjX,EAAA0Q,YAAAuG,EAAuB8F,GAAA,GAC7D/c,EAAA0Q,WAAA1Q,EAAAsC,KAAAkT,KAAAyB,GAA2DjX,EAAA0Q,WAAA1Q,EAAAsC,KAAAkT,KAAAyB,EAAuC8F,EAAA,GAClGA,EAAA,EAGA,IAAAwG,EAAAxG,EAAA,OAEA8F,IAAAU,IACAvjB,EAAAmD,WAAAnD,EAAAmD,UAAAoR,OACAvU,EAAA0Q,WAAA1Q,EAAAuK,eACAsY,EAAAU,GAGAvjB,EAAA6E,YAAAkY,GAIAA,GAAA9O,IACAjO,EAAA+J,QAAA,wBAEA,IAAAyZ,EAAAxjB,EAAA6E,WAAA7E,EAAA0Q,WACA1Q,EAAA6E,WAAA,EAEA,IAAA4e,EAAAzjB,EAAA4E,WAAA5E,EAAA2Q,WACA3Q,EAAA4E,WAAA,EAEA5E,EAAAwD,KAAAmP,MAAA3S,EAAAsa,YAAAmJ,EAAAD,KAOA,IAAAE,GAAA,EAEA,SAAAC,EAAAhX,EAAAkD,EAAAqT,GACA,IAAAjV,EAAA8O,EAEA,IAAAmG,GAAAQ,EAAA,SAUA,GARA,IAAA/W,EAAA2R,WACArQ,GAAAtB,EAAA4R,QAAAle,EAAAjE,gBAAA,MACA2gB,GAAApQ,EAAAmS,QAAAze,EAAAjE,gBAAA,OACO,IAAAuQ,EAAA2R,YACPrQ,GAAAtB,EAAA4R,OAAAle,EAAAjE,gBAAA,QACA2gB,GAAApQ,EAAAmS,OAAAze,EAAAjE,gBAAA,SAGAyT,GAAAxP,EAAAtB,kBAAA,IAAAkP,GAAA8O,IACA9O,EAAA8O,EACAA,EAAA,EAEAmG,GAAA,CACA,IAAAU,EAAA3V,EAAA,EAAAjO,EAAA0K,iBAAA1K,EAAAsC,KAAA4K,KAAAlN,EAAA0K,iBAAA,EACAkZ,IACA7G,EAAA9O,EACAA,EAAA,GAOAjO,EAAAgD,YAAAiL,MAEA,IAAAqV,EAAAL,EAAAhV,EAAA8O,EAAAmG,GAAA,GAEA,IAAAI,EAKA,OAFAI,GAAA,EACA/W,EAAA+R,2BACA/R,EAAAyM,iBAJA8J,IAAAQ,GAAA,GA2EA,GAlEAzjB,KAAA2B,aAAA,SAAA+K,GACA,GAAA3M,EAAAqE,gBAAArE,EAAAkE,OAAA,SACA,GAAAlE,EAAAiE,YAEA,OADAjE,EAAA0J,UAAA,cAAA1J,EAAAie,OAAA,MACA,EAEA,GAAAje,EAAAwD,KAAAmP,KAAA,OAAA3S,EAAAgQ,YAAArD,GAIA,GAFA,SAAAtM,EAAAtB,kBAAA,IAAA4N,EAAA4R,SAAAle,EAAAtB,kBAAA,GAEAsB,EAAAtB,kBAAA,IAAA4N,EAAA4R,SACAve,EAAAwD,KAAAkP,WACA,OAAA1S,EAAAuP,QAAAvP,EAAAuP,MAAAmD,YACA1S,EAAAyZ,eAAA9M,GAOA,IAAAkX,EAAAnoB,IACA4nB,GAAA,EAMA,GALAjjB,EAAApD,yBAAA+C,EAAAuE,UAAA,IAAAsf,IACA7jB,EAAAsE,oBAAAtE,EAAAgiB,aAAArV,GACA2W,GAAA,GAEAtjB,EAAAuE,UAAAsf,EACA7jB,EAAAsE,oBAAA,SACA,IAAA+V,EAAAsJ,EAAAhX,GAAA,EAAA2W,GAEA,OADAjJ,IAAAra,EAAAuE,UAAA,GACA8V,GAGApa,KAAAwZ,eAAA,SAAA9M,GACA,IAAA3M,EAAAqE,eAAA,CACA,GAAArE,EAAAiE,cAAAjE,EAAAuP,MAAAmD,WAAA,SACA,GAAA1S,EAAAwD,KAAAmP,KAAA,OAAA3S,EAAAgQ,YAAArD,GAEA,IAAAkX,EAAAnoB,IACA4nB,GAAA,EAMA,OALAjjB,EAAApD,yBAAA+C,EAAAuE,UAAA,IAAAsf,IACA7jB,EAAAsE,oBAAAtE,EAAAgiB,aAAArV,GACA2W,GAAA,GAEAtjB,EAAAuE,UAAAsf,IACA7jB,EAAAsE,sBACAtE,EAAAiE,YAAAjE,EAAAgQ,YAAArD,GAEAgX,EAAAhX,GAAA,EAAA2W,MAGArjB,KAAAsU,KAAA,WAMA,OALAvU,EAAAgY,eACAhY,EAAA8jB,WAAA9jB,EAAA8jB,UAAAvP,OACAvU,EAAA0D,eAAA,EACA1D,EAAAuC,OAAAE,EAAAzH,KAAAkc,MAAAlX,EAAAuK,gBAAA,EAAAvK,EAAA0C,YAAAD,IACAzC,EAAA2Z,eACA3Z,GAGAC,KAAA8jB,mBAAA,SAAAC,GAEA,UAAAA,EAAA,GAAA3jB,EAAAlE,YAAA,GAIAkE,EAAAnC,aAqBK,GAAA8B,EAAAuJ,YAAAF,EAAAf,eAAAjI,EAAA7D,eAAA6D,EAAAnC,aAAA,CAEL,IAAA+lB,EAAA,GAEAhkB,KAAAyX,gBAAA,WACAuM,EAAA,GACAjkB,EAAAM,IAAAyC,IAAAsG,EAAAX,YAAA,8BAGAzI,KAAAwX,kBAAA,SAAAuM,EAAAE,GACA,IAAAC,EAAA,EAAAH,EAAAhkB,EAAA+jB,mBAAAC,GACAI,EAAAD,EAAA,KAKA,OAJAF,IAAAG,IACAH,EAAAG,EACApkB,EAAAM,IAAAyC,IAAAsG,EAAAX,YAAA,sBAAA0b,IAEAD,GAGAlkB,KAAAoQ,aAAA,SAAA7N,EAAAuI,GACA,IAAAtI,EAAAzC,EAAA,cAAAA,EAAA0Q,WAAA1Q,EAAAuK,eACAvK,EAAAsa,YAAA9X,EAAAC,EAAAsI,IAGA9K,KAAAqQ,YAAA,SAAA7N,EAAAsI,GACA,IAAAvI,EAAAxC,EAAA,cAAAA,EAAA2Q,WAAA3Q,EAAA0K,gBACA1K,EAAAsa,YAAA9X,EAAAC,EAAAsI,IAGA9K,KAAAokB,aAAA,CACAC,SAAA,EACAC,MAAA,WACA,IAAAC,EAAAvkB,KAEA,IAAAukB,EAAAF,QAAA,CACAE,EAAAF,SAAA,EAEA,IAAAG,EAAA,WACAD,EAAAF,SAAAtqB,EAAAyqB,GACAzkB,EAAA2X,WAAA3X,EAAAuK,eAAAvK,EAAA0K,iBACA1K,EAAA0M,kBAAA1M,EAAAO,IAAA,KAGAvG,EAAAyqB,KAEAlQ,KAAA,WACAtU,KAAAqkB,SAAA,IAIArkB,KAAAqa,YAAA,SAAA9X,EAAAC,EAAAsI,GAEA,IAAAgS,EAAA/c,EAAAuK,eACA0D,EAAAjO,EAAA0K,gBAgBA,KAdA1K,EAAA0Q,WAAAqM,IAAAta,EAAAsa,GAAA,IAAA/c,EAAA2Q,WAAA1C,IAAAzL,EAAAyL,GAAA,IAAAjO,EAAAgY,eAEA3X,EAAAjD,cAMAqF,EAAA,EAAAA,IAAA,IACAA,EAAAzC,EAAAsC,KAAAkT,OAAA/S,EAAAzC,EAAAsC,KAAAkT,MAAA/S,EAAAzC,EAAAsC,KAAAkT,MAAA,KACAhT,EAAA,EAAAA,IAAA,IACAA,EAAAxC,EAAAsC,KAAA4K,OAAA1K,EAAAxC,EAAAsC,KAAA4K,MAAA1K,EAAAxC,EAAAsC,KAAA4K,MAAA,OARAzK,EAAA,EAAAA,EAAA,EACAA,EAAAzC,EAAAsC,KAAAkT,OAAA/S,EAAAzC,EAAAsC,KAAAkT,MACAhT,EAAA,EAAAA,EAAA,EACAA,EAAAxC,EAAAsC,KAAA4K,OAAA1K,EAAAxC,EAAAsC,KAAA4K,OAQAlN,EAAAkD,eAAAV,GAAAxC,EAAA2Q,YAAAlO,GAAAzC,EAAA0Q,WAAA,SAEA1Q,EAAA0Q,WAAAjO,EACAzC,EAAA2Q,WAAAnO,EAEA,IAAAjF,EAAAyC,EAAAuK,eACAma,EAAA1kB,EAAA0K,gBAEAia,EAAA,GACAA,EAAAniB,IAAAkiB,EACAC,EAAAliB,IAAAlF,EAEA,IAAAsM,EAAA,EAAA7O,KAAA4pB,KAAAD,EAAAniB,EAAAmiB,EAAAniB,EAAAmiB,EAAAliB,EAAAkiB,EAAAliB,GAEA8f,EAAAviB,EAAAyX,kBAAA5N,GAEA7J,EAAAkD,gBACAlD,EAAAkD,eAAA,EACAlD,EAAAuX,mBAAAmN,EAAAnnB,EAAAiF,EAAAC,EAAA8f,GACAviB,EAAAqkB,aAAAE,SAGAvkB,EAAA6kB,kBAAA,EAEAxb,EAAAd,gBACAvI,EAAA6kB,kBAAA1pB,aAAA6E,EAAA6kB,kBACA7kB,EAAA6kB,iBAAA3pB,WAAA8E,EAAAoR,sBAAAmR,IAGAviB,EAAAwK,aAAAxK,EAAA0Q,YACA1Q,EAAA2K,cAAA3K,EAAA2Q,aAIA1Q,KAAA+X,aAAA,WACA,IAAAhY,EAAA6kB,iBAAA,SACA,IAAA9H,EAAA/c,EAAAuK,eACA0D,EAAAjO,EAAA0K,gBAcA,OAbA1K,EAAAkD,eAAA,EACAmG,EAAAd,eAAApN,aAAAkO,EAAAd,eACAvI,EAAA6kB,kBAAA,EACA7kB,EAAA0X,kBACA1X,EAAAwK,aAAAuS,GACA/c,EAAAuP,OAAAvP,EAAA2K,cAAAsD,GACAjO,EAAAwM,aAAAxM,EAAAwM,YAAA5C,IAAAkb,cAAA9kB,EAAAwM,YAAA5C,IACA5J,EAAAwM,aAAA,EAEAxM,EAAA0D,eAAA,EAEA1D,EAAAqkB,aAAA9P,OACAvU,EAAA2X,WAAAoF,EAAA9O,GACAjO,GAGAC,KAAAmR,sBAAA,WAEA,GAAApR,EAAA6kB,iBAAA,CAEA,IAAA9H,EAAA/c,EAAAuK,eACA0D,EAAAjO,EAAA0K,gBAMA,GAJAqS,EAAA,EAAAA,EAAA,EACAA,EAAA/c,EAAAsC,KAAAkT,OAAAuH,EAAA/c,EAAAsC,KAAAkT,MACAvH,EAAA,EAAAA,EAAA,EACAA,EAAAjO,EAAAsC,KAAA4K,OAAAe,EAAAjO,EAAAsC,KAAA4K,MACA6P,GAAA/c,EAAA0Q,YAAAzC,GAAAjO,EAAA2Q,WAAA,OAAA3Q,EAAAsa,YAAArM,EAAA8O,EAAA1c,EAAAI,eAEAT,EAAAkD,eAAAlD,EAAAsU,mBACAtU,EAAAkD,eAAA,EAEAlD,EAAA6kB,kBAAA,EACA7kB,EAAA0X,kBACA1X,EAAAwM,aAAA,EACAxM,EAAAwK,aAAAuS,GACA/c,EAAAuP,OAAAvP,EAAA2K,cAAAsD,GAEAjO,EAAAqkB,aAAA9P,OACAvU,EAAA2Z,cAAA,EAAAoD,EAAA9O,GAEAjO,EAAA0D,eAAA,SAMAzD,KAAAoQ,aAAA,SAAA7N,EAAAuI,GACA,IAAAtI,EAAAzC,EAAA,cAAAA,EAAA0Q,WAAA1Q,EAAAuK,eACAvK,EAAAsa,YAAA9X,EAAAC,EAAAsI,IAGA9K,KAAAqQ,YAAA,SAAA7N,EAAAsI,GACA,IAAAvI,EAAAxC,EAAA,cAAAA,EAAA2Q,WAAA3Q,EAAA0K,gBACA1K,EAAAsa,YAAA9X,EAAAC,EAAAsI,IAGA9K,KAAAqa,YAAA,SAAA9X,EAAAC,EAAAsI,GAEA,IAAAgS,EAAA/c,EAAAuK,eACA0D,EAAAjO,EAAA0K,kBAEA1K,EAAA0Q,WAAAqM,IAAAta,EAAAsa,GAAA,IAAA/c,EAAA2Q,WAAA1C,IAAAzL,EAAAyL,GAAA,IAAAjO,EAAAgY,eAEA,IAAA+M,GAAA,EAqBA,GAnBA/kB,EAAA5C,cAAA4C,EAAAwD,KAAAQ,aACAvB,EAAA,GACAA,EAAA,EACAsiB,GAAA,GACWtiB,EAAAzC,EAAAsC,KAAAkT,OACX/S,EAAAzC,EAAAsC,KAAAkT,KACAuP,GAAA,IAGA/kB,EAAA5C,cAAA4C,EAAAuP,MAAAvL,aACAxB,EAAA,GACAA,EAAA,EACAuiB,GAAA,GACWviB,EAAAxC,EAAAsC,KAAA4K,OACX1K,EAAAxC,EAAAsC,KAAA4K,KACA6X,GAAA,IAIA/kB,EAAAkD,eAAAlD,EAAA0Q,aAAAjO,GAAAzC,EAAA2Q,aAAAnO,EAAA,SAEAxC,EAAA0Q,WAAAjO,EACAzC,EAAA2Q,WAAAnO,EAEAxC,EAAA2kB,IAAA,GACA3kB,EAAA2kB,IAAAniB,IAAAyL,EACAjO,EAAA2kB,IAAAliB,IAAAsa,EACA/c,EAAA2kB,IAAA1W,KACAjO,EAAA2kB,IAAA5H,KAEA,IAAAlT,EAAA,EAAA7O,KAAA4pB,KAAA5kB,EAAA2kB,IAAAniB,EAAAxC,EAAA2kB,IAAAniB,EAAAxC,EAAA2kB,IAAAliB,EAAAzC,EAAA2kB,IAAAliB,GACA8f,EAAAviB,EAAA+jB,mBAAAla,GAEA7J,EAAAglB,SAAA,GAEA,IAAA9Z,EAAA,QACAlL,EAAAglB,SAAAxiB,EAAA,IAAAoI,EAAAqD,EAAAjO,EAAA2Q,WAAA4R,EAAA,IAAArX,EAAA,GACAlL,EAAAglB,SAAAviB,EAAA,IAAAmI,EAAAmS,EAAA/c,EAAA0Q,WAAA6R,EAAA,IAAArX,EAAA,GAEAxP,IAAA,IAEA+oB,EAAA,WAEA,GAAAzkB,EAAAkD,cAAA,CACA,IAAAV,EAAAxC,EAAAglB,SAAAviB,EAAAqJ,SAEA9L,EAAA2K,cAAA3K,EAAAglB,SAAAxiB,EAAAuJ,UACA/L,EAAAwK,aAAAxK,EAAAglB,SAAAviB,EAAAsJ,UAEAvJ,GAAA,EACAxC,EAAAqU,MAAAra,EAAAyqB,IAEAzkB,EAAAkD,eAAA,EACAlD,EAAAqU,MAAA,EACArU,EAAAsU,sBAKAtU,EAAAkD,gBACAlD,EAAAuX,mBAAAtJ,EAAA8O,EAAAva,EAAAC,EAAA8f,GACAviB,EAAAkD,eAAA,EACAlD,EAAAqU,MAAAra,EAAAyqB,KAKAxkB,KAAA+X,aAAA,WAKA,OAJAhY,EAAAqU,OAAAja,EAAA4F,EAAAqU,OACArU,EAAAqU,MAAA,EACArU,EAAAglB,UAAA,EACAhlB,EAAAkD,eAAA,EACAlD,QAzQAC,KAAAoQ,aAAA,SAAA7N,EAAAuI,GACA,IAAAtI,EAAAzC,EAAAuK,eACAvK,EAAAsa,YAAA9X,EAAAC,EAAAsI,IAEA9K,KAAAqQ,YAAA,SAAA7N,EAAAsI,GACA,IAAAvI,EAAAxC,EAAA0K,gBACA1K,EAAAsa,YAAA9X,EAAAC,EAAAsI,IAEA9K,KAAAqa,YAAA,SAAA9X,EAAAC,EAAAsI,GACA,IAAAoM,EAAA3U,EAAAxC,EAAAsC,KAAA4K,KAAAlN,EAAAsC,KAAA4K,KAAA1K,EACA2U,EAAA,IAAAA,EAAA,GACA,IAAAF,EAAAxU,EAAAzC,EAAAsC,KAAAkT,KAAAxV,EAAAsC,KAAAkT,KAAA/S,EACAwU,EAAA,IAAAA,EAAA,GACAjX,EAAA+J,QAAA,oBACA/J,EAAAwK,aAAAyM,GACAjX,EAAA2K,cAAAwM,MAGAlX,KAAA+X,aAAA,aA4PA/X,KAAAuQ,WAAA,SAAAyU,EAAAC,GACAjC,EAAA,EAAAgC,IAGAhlB,KAAAsQ,eAAA,SAAA0U,EAAAC,GACAjC,EAAAgC,EAAA,IAGAhlB,KAAAsa,WAAA,SAAAnL,EAAA8V,GACA,IAAAjO,EAAA,EAAAjc,KAAAkc,MAAA9H,EAAApP,EAAA0C,YAAAD,GAAA2M,EACA6H,EAAA,EAAAA,EAAA,EACAA,EAAAjX,EAAAsC,KAAAkT,OAAAyB,EAAAjX,EAAAsC,KAAAkT,MACAxV,EAAA0D,eAAA,EACA1D,EAAAsQ,YAAAlB,IAGAnP,KAAAklB,iBAAA,WACA,IAAArV,EAAA9P,EAAAuV,iBACAzF,EAAAhG,GAAA9J,EAAAsC,KAAAwH,GAAAgG,EAAAW,GAAAzQ,EAAAsC,KAAAmO,GAAAzQ,EAAAie,QAAA,EAAAnO,IAGA9P,EAAA6c,SAAA,SAAAlQ,GACA3M,EAAAwD,KAAAmP,MACA3S,EAAA0D,eACA1D,EAAA+J,QAAA,oBACA/J,EAAAuC,OAAAE,EAAAzH,KAAAkc,MAAAlX,EAAAuK,eAAAvK,EAAA0C,YAAAD,GACAzC,EAAAuP,QAAAvP,EAAAuC,OAAAC,EAAAxH,KAAAkc,MAAAlX,EAAA0K,gBAAA1K,EAAA0C,YAAAF,IACAxC,EAAA2Z,kBAIA3Z,EAAAmR,KAAAnR,EAAAgB,UAAA,SAAAhB,EAAA6c,UAEA5c,KAAA+S,SAAA,SAAArG,GACA,IAAA3M,EAAA6D,WAAA,CACA7D,EAAA6D,YAAA,EAEA7D,EAAAolB,YAAA,CACAlgB,MAAA,IAEA,IAAA4D,EAAA,2GACAvI,EAAAP,EAAAO,IAAA,GAAA2E,MACA,QAAAxE,KAAAoI,EAAA,CACA,IAAAuc,EAAAvc,EAAApI,GACAV,EAAAolB,YAAAlgB,MAAAmgB,QAAAnsB,IAAAqH,EAAA8kB,GAAA9kB,EAAA8kB,GAAA,GAGArlB,EAAAolB,YAAAlgB,MAAAsK,MAAAxP,EAAAO,IAAAwC,IAAA,SACA/C,EAAAolB,YAAAlgB,MAAAoK,OAAAtP,EAAAO,IAAAwC,IAAA,UAEA/C,EAAAolB,YAAAE,QAAA,CACA7U,EAAAzQ,EAAAO,IAAAgO,aAAAvO,EAAAO,IAAAiP,QACA1F,EAAA9J,EAAAO,IAAA8N,cAAArO,EAAAO,IAAA+O,UAGAjG,EAAA1B,SACA3H,EAAAolB,YAAA/a,UAAAvQ,EAAAuQ,YACAvQ,EAAAuQ,UAAA,IAGArK,EAAAO,IAAAwC,IAAA,CACA8O,SAAAxI,EAAA,0BACA9L,IAAA,EACAE,KAAA,EACA4T,OAAA7X,EAAA,IACA+rB,OAAA,IAEA,IAAAC,EAAAxlB,EAAAO,IAAAwC,IAAA,mBAaA,OAZA,KAAAyiB,GAAA,iDAAA3kB,KAAA2kB,KAAAxlB,EAAAO,IAAAwC,IAAA,0BACA/C,EAAAwD,KAAAT,IAAA,CACAsO,OAAA7X,EAAA,MAEAwG,EAAA4D,KAAAb,IAAA,CACAsO,OAAA7X,EAAA,MAEAwG,EAAA4D,KAAAb,IAAA,gCACA/C,EAAA8b,aAEA9b,EAAAmC,UAAAnC,EAAAmC,SAAA6D,KAAAhG,GAEAA,EAAAgQ,YAAArD,KAGA1M,KAAAgT,UAAA,SAAAtG,GACA,GAAA3M,EAAA6D,WAsBA,OArBA7D,EAAA6D,YAAA,EAEA7D,EAAAO,IAAAwC,IAAA,aACA/C,EAAAO,IAAAwC,IAAA/C,EAAAolB,YAAAlgB,OAEAmE,EAAA1B,QACA7N,EAAAuQ,UAAArK,EAAAolB,YAAA/a,WAGArK,EAAAwD,KAAAT,IAAA,CACA0iB,UAAAzlB,EAAApE,SAEAoE,EAAA4D,KAAAb,IAAA,CACA0iB,UAAAzlB,EAAApE,SAEAoE,EAAAolB,aAAA,EACAplB,EAAA4D,KAAAb,IAAA,4BACA/C,EAAAsd,WAEAtd,EAAAoC,WAAApC,EAAAoC,UAAA4D,KAAAhG,GAEAA,EAAAgQ,YAAArD,IAGA1M,KAAA2S,OAAA,SAAAjG,GACA,OAAA3M,EAAA,WAAAA,EAAAiT,UAAAtG,GAAA3M,EAAAgT,SAAArG,IAGA1M,KAAA6b,WAAA,WACA,GAAA9b,EAAA6D,WAAA,CAEA,IAAAkZ,EAAA/c,EAAAuK,eACAvK,EAAAO,IAAAwC,IAAA,CACAyM,MAAA1V,EAAA0V,QAAAxP,EAAAolB,YAAAE,QAAA7U,EAAA,KACAnB,OAAAxV,EAAAwV,SAAAtP,EAAAolB,YAAAE,QAAAxb,EAAA,OAEA9J,EAAAsd,WAEAtd,EAAAwK,aAAAxP,KAAAgjB,IAAAhe,EAAAsC,KAAAkT,KAAAuH,MAGA9c,KAAA8Q,OAEAtX,EAAA+nB,WAAApX,KAAAnK,OAMA+T,EAAA,SAAA0R,GACA,IAAA1lB,EAAAC,KACAA,KAAAylB,KAEAzlB,KAAA0lB,MAAA,EACA1lB,KAAA2lB,MAAA,EACA3lB,KAAA4lB,OAAA,EACA5lB,KAAA6lB,OAAA,EACA7lB,KAAA8lB,SAAA,EACA9lB,KAAA+lB,SAAA,EACA/lB,KAAAgmB,OAAA,EACAhmB,KAAAimB,OAAA,EACAjmB,KAAAkmB,OAAA,EACAlmB,KAAAmmB,OAAA,EAEAnmB,KAAAomB,aAAA,EACApmB,KAAAqmB,aAAA,EAEArmB,KAAAsmB,KAAA,EACAtmB,KAAAumB,KAAA,EAEAvmB,KAAAoU,MAAA,EAEApU,KAAA2V,MAAA,SAAA3H,EAAA8O,GACA/c,EAAAuU,OACAvU,EAAAgmB,SAAA,EACAhmB,EAAA+lB,SAAArqB,IACAsE,EAAA6lB,OAAA,EACA7lB,EAAA8lB,OAAA,EACA9lB,EAAA2lB,MAAA1X,EACAjO,EAAA4lB,MAAA7I,EACA/c,EAAAqmB,aAAA,EACArmB,EAAAsmB,aAAA,GAGArmB,KAAAiM,OAAA,SAAA+B,EAAA8O,GACA,IAAAnT,EAAAlO,IACAsE,EAAAgmB,SAAApc,EAAA5J,EAAA+lB,SACA/lB,EAAA+lB,SAAAnc,EACA,IAAA2Z,EAAAxG,EAAA/c,EAAA4lB,MACAvC,EAAApV,EAAAjO,EAAA2lB,MACAxQ,EAAAnV,EAAA0lB,GAAAnb,eACA2K,EAAAlV,EAAA0lB,GAAAhb,gBACA+b,EAAAtR,EAAAoO,EACAmD,EAAAxR,EAAAmO,EACArjB,EAAAimB,MAAAS,EAAA,GAAAA,EAAA1mB,EAAA0lB,GAAApjB,KAAA4K,KACAlN,EAAAkmB,MAAAO,EAAA,GAAAA,EAAAzmB,EAAA0lB,GAAApjB,KAAAkT,KACAxV,EAAA6lB,OAAAxC,EACArjB,EAAA8lB,OAAAvC,EACAvjB,EAAA2lB,MAAA1X,EACAjO,EAAA4lB,MAAA7I,GAGA9c,KAAAsU,KAAA,WACAvU,EAAA0lB,GAAA1b,UAAA,gBACAhK,EAAAqU,OAAAlZ,aAAA6E,EAAAqU,OACArU,EAAAqU,MAAA,EACArU,EAAAqmB,aAAA,EACArmB,EAAAsmB,aAAA,GAGArmB,KAAA0mB,QAAA,SAAAxP,EAAAF,GACA,IAAA2P,GAAA,EAEA3P,EAAA,GACAA,EAAA,EACA2P,GAAA,GACO3P,EAAAjX,EAAA0lB,GAAApjB,KAAAkT,OACPyB,EAAAjX,EAAA0lB,GAAApjB,KAAAkT,KACAoR,GAAA,GAGAzP,EAAA,GACAA,EAAA,EACAyP,GAAA,GACOzP,EAAAnX,EAAA0lB,GAAApjB,KAAA4K,OACPiK,EAAAnX,EAAA0lB,GAAApjB,KAAA4K,KACA0Z,GAAA,GAGA,EAAA5mB,EAAA0lB,GAAApL,YAAAnD,EAAAF,EAAAjX,EAAA0lB,GAAArlB,IAAAI,eAAAT,EAAA0lB,GAAApR,oBAGArU,KAAAkW,WAAA,SAAA0Q,GACA,IAAAlb,EAAAjQ,IACAqN,EAAA,EAAA4C,EAAAkb,EAAA7mB,EAAA+lB,SAEA3Q,EAAApV,EAAA0lB,GAAAhb,gBACAG,EAAA7K,EAAA0lB,GAAAnb,eAEAuc,EAAA9mB,EAAA0lB,GAAApjB,KAAAkT,KACAuR,EAAA/mB,EAAA0lB,GAAApjB,KAAA4K,KAEAlN,EAAA6lB,OAAAkB,EAAA,EAAA/rB,KAAAgjB,IAAA,GAAAhe,EAAA6lB,QAAA,EACA7lB,EAAA8lB,OAAAgB,EAAA,EAAA9rB,KAAAgjB,IAAA,GAAAhe,EAAA8lB,QAAA,EAEA,IAAAxC,EAAAva,GAAA4C,EAAA5C,GAAA,IAEA8B,EAAA,GAAAA,EAAAic,GAAA1R,EAAA,GAAAA,EAAA2R,KAAAzD,GAAA,GAEA,IAAAnO,KAAAnV,EAAA8lB,SAAAxC,IAAAtjB,EAAA8lB,OACA5Q,KAAAlV,EAAA6lB,SAAAvC,IAAAtjB,EAAA6lB,OAEA,GAAA1Q,GAAAD,EAAA,CACA,IAAAtL,EAAA5O,KAAAC,IAAA,GAAA+E,EAAAgmB,UAEA,GAAApc,EAAA,IACA,IAAAod,EAAApd,EAAA,GACA5J,EAAA6lB,QAAAmB,EACAhnB,EAAA8lB,QAAAkB,EACApd,EAAA,GAGA5J,EAAAinB,QAAA,EAEAjnB,EAAAqmB,YAAArmB,EAAA0lB,GAAAhb,gBACA1K,EAAAumB,KAAAvmB,EAAAqmB,YACArmB,EAAAsmB,YAAAtmB,EAAA0lB,GAAAnb,eACAvK,EAAAwmB,KAAAxmB,EAAAsmB,YAEA,IAAAnP,EAAAnX,EAAAqmB,YACApP,EAAAjX,EAAAsmB,YAEAzJ,EAAA,WACA,IAAAxR,EAAA3P,IAAAiQ,EAAA,YAEA3L,EAAA6lB,SACA1O,EAAAnc,KAAAksB,MAAAlnB,EAAAqmB,YAAArmB,EAAA6lB,QAAA,EAAA7lB,EAAAinB,UACAjnB,EAAAqmB,YAAAlP,GACAA,EAAA,GAAAA,EAAA4P,KAAA1b,EAAA,KAGArL,EAAA8lB,SACA7O,EAAAjc,KAAAksB,MAAAlnB,EAAAsmB,YAAAtmB,EAAA8lB,QAAA,EAAA9lB,EAAAinB,UACAjnB,EAAAsmB,YAAArP,GACAA,EAAA,GAAAA,EAAA6P,KAAAzb,EAAA,KAGArL,EAAAinB,QAAAjsB,KAAAgjB,IAAA,EAAAhe,EAAAinB,QAAA5b,GAEArL,EAAA0lB,GAAA3b,QAAA,0BAEA/J,EAAA6lB,SACA7lB,EAAA0lB,GAAAhb,gBAEA1K,EAAAumB,KAAApP,EACAnX,EAAA0lB,GAAA/a,cAAAwM,IAGAnX,EAAA8lB,SACA9lB,EAAA0lB,GAAAnb,eAEAvK,EAAAwmB,KAAAvP,EACAjX,EAAA0lB,GAAAlb,aAAAyM,IAGAjX,EAAAqU,QACArU,EAAA0lB,GAAAtP,aACApW,EAAA2mB,QAAAxP,EAAAF,MAKAjX,EAAAinB,QAAA,EACAjnB,EAAAqU,MAAAnZ,WAAA2hB,EAAAjT,IAEA5J,EAAAuU,OACAvU,EAAA0lB,GAAAtP,aACApW,EAAA2mB,QAAAxP,EAAAF,KAIA4F,SAGA7c,EAAA2mB,QAAA3mB,EAAA0lB,GAAAhb,gBAAA1K,EAAA0lB,GAAAnb,kBASA4c,EAAAhuB,EAAAwQ,GAAAU,UAEAlR,EAAAiuB,SAAA1Y,YAAA,CACAiR,IAAA,SAAA0H,EAAAC,EAAAC,GACA,IAAAC,EAAA/tB,EAAA8nB,KAAA8F,EAAA,oBACA,OAAAG,KAAAje,WAAAie,EAAAjd,eAAA4c,EAAAnhB,KAAAqhB,IAEAI,IAAA,SAAAJ,EAAAK,GACA,IAAAF,EAAA/tB,EAAA8nB,KAAA8F,EAAA,oBAEA,OADAG,KAAAje,WAAAie,EAAAhd,aAAAgH,SAAAkW,IAAAP,EAAAnhB,KAAAqhB,EAAAK,GACAznB,OAIA9G,EAAAwQ,GAAAU,UAAA,SAAAqd,GACA,QAAAxuB,IAAAwuB,EAAA,CACA,IAAAF,EAAAvnB,KAAA,IAAAxG,EAAA8nB,KAAAthB,KAAA,uBACA,OAAAunB,KAAAje,WAAAie,EAAAjd,eAAA4c,EAAAnhB,KAAA/F,MAEA,OAAAA,KAAAyhB,KAAA,WACA,IAAA8F,EAAA/tB,EAAA8nB,KAAAthB,KAAA,oBACAunB,KAAAje,WAAAie,EAAAhd,aAAAgH,SAAAkW,IAAAP,EAAAnhB,KAAAvM,EAAAwG,MAAAynB,MAMA,IAAAC,EAAAxuB,EAAAwQ,GAAAc,WAEAhR,EAAA2tB,SAAAzY,YAAA,CACAgR,IAAA,SAAA0H,EAAAC,EAAAC,GACA,IAAAC,EAAA/tB,EAAA8nB,KAAA8F,EAAA,oBACA,OAAAG,KAAAje,WAAAie,EAAA9c,gBAAAid,EAAA3hB,KAAAqhB,IAEAI,IAAA,SAAAJ,EAAAK,GACA,IAAAF,EAAA/tB,EAAA8nB,KAAA8F,EAAA,oBAEA,OADAG,KAAAje,WAAAie,EAAA7c,cAAA6G,SAAAkW,IAAAC,EAAA3hB,KAAAqhB,EAAAK,GACAznB,OAIA9G,EAAAwQ,GAAAc,WAAA,SAAAid,GACA,QAAAxuB,IAAAwuB,EAAA,CACA,IAAAF,EAAAvnB,KAAA,IAAAxG,EAAA8nB,KAAAthB,KAAA,uBACA,OAAAunB,KAAAje,WAAAie,EAAA9c,gBAAAid,EAAA3hB,KAAA/F,MAEA,OAAAA,KAAAyhB,KAAA,WACA,IAAA8F,EAAA/tB,EAAA8nB,KAAAthB,KAAA,oBACAunB,KAAAje,WAAAie,EAAA7c,cAAA6G,SAAAkW,IAAAC,EAAA3hB,KAAAvM,EAAAwG,MAAAynB,MAKA,IAAAE,EAAA,SAAAC,GACA,IAAA7nB,EAAAC,KAkBA,GAjBAA,KAAAd,OAAA,EACAc,KAAAE,KAAA,kBAEAF,KAAAyhB,KAAA,SAAA/X,GAEA,OADAlQ,EAAAioB,KAAA1hB,EAAA2J,GACA3J,GAGAC,KAAAmK,KAAA,SAAAod,GACAxnB,IAAAb,QAAAqoB,EACAxnB,EAAAb,UAGAc,KAAA6nB,GAAA,SAAAC,GACA,OAAA/nB,EAAA+nB,IAGAF,EACA,QAAAnnB,EAAA,EAAqBA,EAAAmnB,EAAA1oB,OAAiBuB,IAAA,CACtC,IAAA8mB,EAAA/tB,EAAA8nB,KAAAsG,EAAAnnB,GAAA,oBACA8mB,IACAvnB,UAAAd,QAAAqoB,EACAvnB,KAAAd,UAKA,OAAAc,OAGA,SAAAgK,EAAAnB,EAAAa,GACA,QAAAjJ,EAAA,EAAAqI,EAAAD,EAAA3J,OAAmCuB,EAAAqI,EAAOrI,IAAAiJ,EAAAM,EAAAnB,EAAApI,KAE1CsnB,CACAJ,EAAA9hB,UAAA,2EACA,SAAA6G,EAAAxC,GACAwC,EAAAxC,GAAA,WACA,IAAA8d,EAAAC,UACA,OAAAjoB,KAAAyhB,KAAA,WACAzhB,KAAAkK,GAAAge,MAAAloB,KAAAgoB,QAMA9uB,EAAAwQ,GAAAuY,cAAA,SAAAkG,GACA,YAAAlvB,IAAAkvB,EACA,IAAAR,EAAA3nB,MAEAA,KAAAmoB,IAAA3uB,EAAA8nB,KAAAthB,KAAAmoB,GAAA,sBAIAjvB,EAAAkvB,KAAAC,SAAAnvB,EAAAkvB,KAAA,MACA7G,WAAA,SAAA9gB,GACA,YAAAxH,IAAAO,EAAA8nB,KAAA7gB,EAAA,iBAGAjH,EAAAkQ,GAAA4e,WAAA,SAAAC,EAAAC,QACAvvB,IAAAuvB,GAAA,iBAAAD,GAAA,WAAAA,IACAC,EAAAD,EACAA,GAAA,GAGA,IAAAnO,EAAA,IAAAuN,EAwBA,OAtBA3nB,KAAAyhB,KAAA,WACA,IAAAgH,EAAAjvB,EAAAwG,MAEAI,EAAA5G,EAAA+G,OAAA,GAA2BioB,GAE3B,GAAAD,EAAA,CACA,IAAAG,EAAAlvB,EAAA+uB,GACAnoB,EAAAC,IAAAqoB,EAAAxpB,OAAA,EAAA1F,EAAA+uB,EAAAE,GAAAC,EACAtoB,EAAAE,IAAAmoB,IAEA,QAAAroB,IACA,QAAAA,MAAAE,IAAAmoB,GAEA,IAAAlB,EAAAkB,EAAAnH,KAAA,oBACAiG,IACAnnB,EAAAC,IAAAD,EAAAC,KAAAooB,EACAlB,EAAA,IAAA3nB,EAAAQ,EAAAqoB,GACAA,EAAAnH,KAAA,eAAAiG,IAEAnN,EAAAjQ,KAAAod,KAGA,IAAAnN,EAAAlb,OAAAkb,EAAA,GAAAA,GAGAzgB,EAAAgvB,WAAA,CACAC,UAAA,WACA,OAAA1vB,IAIAM,EAAA+nB,aACA/nB,EAAA+nB,WAAA,IAAAoG,EACAnuB,EAAA+nB,WAAA/B,QAAA9jB,KAhnH8B7C,EAAAqvB,MAAAW,EAAA/vB,GAAAD,KAAAiwB,EAAAD,QAAA9vB","file":"npm.nicescroll.js","sourcesContent":["/* jquery.nicescroll\r\n-- version 3.7.4\r\n-- copyright 2017-07-02 InuYaksa*2017\r\n-- licensed under the MIT\r\n--\r\n-- https://nicescroll.areaaperta.com/\r\n-- https://github.com/inuyaksa/jquery.nicescroll\r\n--\r\n*/\r\n\r\n/* jshint expr: true */\r\n\r\n(function (factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as anonymous module.\r\n define(['jquery'], factory);\r\n } else if (typeof exports === 'object') {\r\n // Node/CommonJS.\r\n module.exports = factory(require('jquery'));\r\n } else {\r\n // Browser globals.\r\n factory(jQuery);\r\n }\r\n}(function (jQuery) {\r\n\r\n \"use strict\";\r\n\r\n // globals\r\n var domfocus = false,\r\n mousefocus = false,\r\n tabindexcounter = 0,\r\n ascrailcounter = 2000,\r\n globalmaxzindex = 0;\r\n\r\n var $ = jQuery, // sandbox\r\n _doc = document,\r\n _win = window,\r\n $window = $(_win);\r\n\r\n var delegatevents = [];\r\n\r\n // http://stackoverflow.com/questions/2161159/get-script-path\r\n function getScriptPath() {\r\n var scripts = _doc.currentScript || (function () { var s = _doc.getElementsByTagName('script'); return (s.length) ? s[s.length - 1] : false; })();\r\n var path = scripts ? scripts.src.split('?')[0] : '';\r\n return (path.split('/').length > 0) ? path.split('/').slice(0, -1).join('/') + '/' : '';\r\n }\r\n\r\n // based on code by Paul Irish https://www.paulirish.com/2011/requestanimationframe-for-smart-animating/ \r\n var setAnimationFrame = _win.requestAnimationFrame || _win.webkitRequestAnimationFrame || _win.mozRequestAnimationFrame || false;\r\n var clearAnimationFrame = _win.cancelAnimationFrame || _win.webkitCancelAnimationFrame || _win.mozCancelAnimationFrame || false;\r\n\r\n if (!setAnimationFrame) {\r\n var anilasttime = 0;\r\n setAnimationFrame = function (callback, element) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - anilasttime));\r\n var id = _win.setTimeout(function () { callback(currTime + timeToCall); },\r\n timeToCall);\r\n anilasttime = currTime + timeToCall;\r\n return id;\r\n };\r\n clearAnimationFrame = function (id) {\r\n _win.clearTimeout(id);\r\n };\r\n } else {\r\n if (!_win.cancelAnimationFrame) clearAnimationFrame = function (id) { };\r\n }\r\n\r\n var ClsMutationObserver = _win.MutationObserver || _win.WebKitMutationObserver || false;\r\n\r\n var now = Date.now || function () { return new Date().getTime(); };\r\n\r\n var _globaloptions = {\r\n zindex: \"auto\",\r\n cursoropacitymin: 0,\r\n cursoropacitymax: 1,\r\n cursorcolor: \"#424242\",\r\n cursorwidth: \"6px\",\r\n cursorborder: \"1px solid #fff\",\r\n cursorborderradius: \"5px\",\r\n scrollspeed: 40,\r\n mousescrollstep: 9 * 3,\r\n touchbehavior: false, // deprecated\r\n emulatetouch: false, // replacing touchbehavior\r\n hwacceleration: true,\r\n usetransition: true,\r\n boxzoom: false,\r\n dblclickzoom: true,\r\n gesturezoom: true,\r\n grabcursorenabled: true,\r\n autohidemode: true,\r\n background: \"\",\r\n iframeautoresize: true,\r\n cursorminheight: 32,\r\n preservenativescrolling: true,\r\n railoffset: false,\r\n railhoffset: false,\r\n bouncescroll: true,\r\n spacebarenabled: true,\r\n railpadding: {\r\n top: 0,\r\n right: 0,\r\n left: 0,\r\n bottom: 0\r\n },\r\n disableoutline: true,\r\n horizrailenabled: true,\r\n railalign: \"right\",\r\n railvalign: \"bottom\",\r\n enabletranslate3d: true,\r\n enablemousewheel: true,\r\n enablekeyboard: true,\r\n smoothscroll: true,\r\n sensitiverail: true,\r\n enablemouselockapi: true,\r\n // cursormaxheight:false,\r\n cursorfixedheight: false,\r\n directionlockdeadzone: 6,\r\n hidecursordelay: 400,\r\n nativeparentscrolling: true,\r\n enablescrollonselection: true,\r\n overflowx: true,\r\n overflowy: true,\r\n cursordragspeed: 0.3,\r\n rtlmode: \"auto\",\r\n cursordragontouch: false,\r\n oneaxismousemode: \"auto\",\r\n scriptpath: getScriptPath(),\r\n preventmultitouchscrolling: true,\r\n disablemutationobserver: false,\r\n enableobserver: true,\r\n scrollbarid: false\r\n };\r\n\r\n var browserdetected = false;\r\n\r\n var getBrowserDetection = function () {\r\n\r\n if (browserdetected) return browserdetected;\r\n\r\n var _el = _doc.createElement('DIV'),\r\n _style = _el.style,\r\n _agent = navigator.userAgent,\r\n _platform = navigator.platform,\r\n d = {};\r\n\r\n d.haspointerlock = \"pointerLockElement\" in _doc || \"webkitPointerLockElement\" in _doc || \"mozPointerLockElement\" in _doc;\r\n\r\n d.isopera = (\"opera\" in _win); // 12-\r\n d.isopera12 = (d.isopera && (\"getUserMedia\" in navigator));\r\n d.isoperamini = (Object.prototype.toString.call(_win.operamini) === \"[object OperaMini]\");\r\n\r\n d.isie = ((\"all\" in _doc) && (\"attachEvent\" in _el) && !d.isopera); //IE10-\r\n d.isieold = (d.isie && !(\"msInterpolationMode\" in _style)); // IE6 and older\r\n d.isie7 = d.isie && !d.isieold && (!(\"documentMode\" in _doc) || (_doc.documentMode === 7));\r\n d.isie8 = d.isie && (\"documentMode\" in _doc) && (_doc.documentMode === 8);\r\n d.isie9 = d.isie && (\"performance\" in _win) && (_doc.documentMode === 9);\r\n d.isie10 = d.isie && (\"performance\" in _win) && (_doc.documentMode === 10);\r\n d.isie11 = (\"msRequestFullscreen\" in _el) && (_doc.documentMode >= 11); // IE11+\r\n\r\n d.ismsedge = (\"msCredentials\" in _win); // MS Edge 14+\r\n\r\n d.ismozilla = (\"MozAppearance\" in _style);\r\n\r\n d.iswebkit = !d.ismsedge && (\"WebkitAppearance\" in _style);\r\n\r\n d.ischrome = d.iswebkit && (\"chrome\" in _win);\r\n d.ischrome38 = (d.ischrome && (\"touchAction\" in _style)); // behavior changed in touch emulation \r\n d.ischrome22 = (!d.ischrome38) && (d.ischrome && d.haspointerlock);\r\n d.ischrome26 = (!d.ischrome38) && (d.ischrome && (\"transition\" in _style)); // issue with transform detection (maintain prefix)\r\n\r\n d.cantouch = (\"ontouchstart\" in _doc.documentElement) || (\"ontouchstart\" in _win); // with detection for Chrome Touch Emulation \r\n d.hasw3ctouch = (_win.PointerEvent || false) && ((navigator.MaxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0)); //IE11 pointer events, following W3C Pointer Events spec\r\n d.hasmstouch = (!d.hasw3ctouch) && (_win.MSPointerEvent || false); // IE10 pointer events\r\n\r\n d.ismac = /^mac$/i.test(_platform);\r\n\r\n d.isios = d.cantouch && /iphone|ipad|ipod/i.test(_platform);\r\n d.isios4 = d.isios && !(\"seal\" in Object);\r\n d.isios7 = d.isios && (\"webkitHidden\" in _doc); //iOS 7+\r\n d.isios8 = d.isios && (\"hidden\" in _doc); //iOS 8+\r\n d.isios10 = d.isios && _win.Proxy; //iOS 10+\r\n\r\n d.isandroid = (/android/i.test(_agent));\r\n\r\n d.haseventlistener = (\"addEventListener\" in _el);\r\n\r\n d.trstyle = false;\r\n d.hastransform = false;\r\n d.hastranslate3d = false;\r\n d.transitionstyle = false;\r\n d.hastransition = false;\r\n d.transitionend = false;\r\n\r\n d.trstyle = \"transform\";\r\n d.hastransform = (\"transform\" in _style) || (function () {\r\n var check = ['msTransform', 'webkitTransform', 'MozTransform', 'OTransform'];\r\n for (var a = 0, c = check.length; a < c; a++) {\r\n if (_style[check[a]] !== undefined) {\r\n d.trstyle = check[a];\r\n break;\r\n }\r\n }\r\n d.hastransform = (!!d.trstyle);\r\n })();\r\n\r\n if (d.hastransform) {\r\n _style[d.trstyle] = \"translate3d(1px,2px,3px)\";\r\n d.hastranslate3d = /translate3d/.test(_style[d.trstyle]);\r\n }\r\n\r\n d.transitionstyle = \"transition\";\r\n d.prefixstyle = '';\r\n d.transitionend = \"transitionend\";\r\n\r\n d.hastransition = (\"transition\" in _style) || (function () {\r\n\r\n d.transitionend = false;\r\n var check = ['webkitTransition', 'msTransition', 'MozTransition', 'OTransition', 'OTransition', 'KhtmlTransition'];\r\n var prefix = ['-webkit-', '-ms-', '-moz-', '-o-', '-o', '-khtml-'];\r\n var evs = ['webkitTransitionEnd', 'msTransitionEnd', 'transitionend', 'otransitionend', 'oTransitionEnd', 'KhtmlTransitionEnd'];\r\n for (var a = 0, c = check.length; a < c; a++) {\r\n if (check[a] in _style) {\r\n d.transitionstyle = check[a];\r\n d.prefixstyle = prefix[a];\r\n d.transitionend = evs[a];\r\n break;\r\n }\r\n }\r\n if (d.ischrome26) d.prefixstyle = prefix[1]; // always use prefix\r\n\r\n d.hastransition = (d.transitionstyle);\r\n\r\n })();\r\n\r\n function detectCursorGrab() {\r\n var lst = ['grab', '-webkit-grab', '-moz-grab'];\r\n if ((d.ischrome && !d.ischrome38) || d.isie) lst = []; // force setting for IE returns false positive and chrome cursor bug\r\n for (var a = 0, l = lst.length; a < l; a++) {\r\n var p = lst[a];\r\n _style.cursor = p;\r\n if (_style.cursor == p) return p;\r\n }\r\n return 'url(https://cdnjs.cloudflare.com/ajax/libs/slider-pro/1.3.0/css/images/openhand.cur),n-resize'; // thanks to https://cdnjs.com/ for the openhand cursor!\r\n }\r\n d.cursorgrabvalue = detectCursorGrab();\r\n\r\n d.hasmousecapture = (\"setCapture\" in _el);\r\n\r\n d.hasMutationObserver = (ClsMutationObserver !== false);\r\n\r\n _el = null; //memory released\r\n\r\n browserdetected = d;\r\n\r\n return d;\r\n };\r\n\r\n var NiceScrollClass = function (myopt, me) {\r\n\r\n var self = this;\r\n\r\n this.version = '3.7.4';\r\n this.name = 'nicescroll';\r\n\r\n this.me = me;\r\n\r\n var $body = $(\"body\");\r\n\r\n var opt = this.opt = {\r\n doc: $body,\r\n win: false\r\n };\r\n\r\n $.extend(opt, _globaloptions); // clone opts\r\n\r\n // Options for internal use\r\n opt.snapbackspeed = 80;\r\n\r\n if (myopt || false) {\r\n for (var a in opt) {\r\n if (myopt[a] !== undefined) opt[a] = myopt[a];\r\n }\r\n }\r\n\r\n if (opt.disablemutationobserver) ClsMutationObserver = false;\r\n\r\n this.doc = opt.doc;\r\n this.iddoc = (this.doc && this.doc[0]) ? this.doc[0].id || '' : '';\r\n this.ispage = /^BODY|HTML/.test((opt.win) ? opt.win[0].nodeName : this.doc[0].nodeName);\r\n this.haswrapper = (opt.win !== false);\r\n this.win = opt.win || (this.ispage ? $window : this.doc);\r\n this.docscroll = (this.ispage && !this.haswrapper) ? $window : this.win;\r\n this.body = $body;\r\n this.viewport = false;\r\n\r\n this.isfixed = false;\r\n\r\n this.iframe = false;\r\n this.isiframe = ((this.doc[0].nodeName == 'IFRAME') && (this.win[0].nodeName == 'IFRAME'));\r\n\r\n this.istextarea = (this.win[0].nodeName == 'TEXTAREA');\r\n\r\n this.forcescreen = false; //force to use screen position on events\r\n\r\n this.canshowonmouseevent = (opt.autohidemode != \"scroll\");\r\n\r\n // Events jump table \r\n this.onmousedown = false;\r\n this.onmouseup = false;\r\n this.onmousemove = false;\r\n this.onmousewheel = false;\r\n this.onkeypress = false;\r\n this.ongesturezoom = false;\r\n this.onclick = false;\r\n\r\n // Nicescroll custom events\r\n this.onscrollstart = false;\r\n this.onscrollend = false;\r\n this.onscrollcancel = false;\r\n\r\n this.onzoomin = false;\r\n this.onzoomout = false;\r\n\r\n // Let's start! \r\n this.view = false;\r\n this.page = false;\r\n\r\n this.scroll = {\r\n x: 0,\r\n y: 0\r\n };\r\n this.scrollratio = {\r\n x: 0,\r\n y: 0\r\n };\r\n this.cursorheight = 20;\r\n this.scrollvaluemax = 0;\r\n\r\n // http://dev.w3.org/csswg/css-writing-modes-3/#logical-to-physical\r\n // http://dev.w3.org/csswg/css-writing-modes-3/#svg-writing-mode\r\n if (opt.rtlmode == \"auto\") {\r\n var target = this.win[0] == _win ? this.body : this.win;\r\n var writingMode = target.css(\"writing-mode\") || target.css(\"-webkit-writing-mode\") || target.css(\"-ms-writing-mode\") || target.css(\"-moz-writing-mode\");\r\n\r\n if (writingMode == \"horizontal-tb\" || writingMode == \"lr-tb\" || writingMode === \"\") {\r\n this.isrtlmode = (target.css(\"direction\") == \"rtl\");\r\n this.isvertical = false;\r\n } else {\r\n this.isrtlmode = (writingMode == \"vertical-rl\" || writingMode == \"tb\" || writingMode == \"tb-rl\" || writingMode == \"rl-tb\");\r\n this.isvertical = (writingMode == \"vertical-rl\" || writingMode == \"tb\" || writingMode == \"tb-rl\");\r\n }\r\n } else {\r\n this.isrtlmode = (opt.rtlmode === true);\r\n this.isvertical = false;\r\n }\r\n // this.checkrtlmode = false;\r\n\r\n this.scrollrunning = false;\r\n\r\n this.scrollmom = false;\r\n\r\n this.observer = false; // observer div changes\r\n this.observerremover = false; // observer on parent for remove detection\r\n this.observerbody = false; // observer on body for position change\r\n\r\n if (opt.scrollbarid !== false) {\r\n this.id = opt.scrollbarid;\r\n } else {\r\n do {\r\n this.id = \"ascrail\" + (ascrailcounter++);\r\n } while (_doc.getElementById(this.id));\r\n }\r\n\r\n this.rail = false;\r\n this.cursor = false;\r\n this.cursorfreezed = false;\r\n this.selectiondrag = false;\r\n\r\n this.zoom = false;\r\n this.zoomactive = false;\r\n\r\n this.hasfocus = false;\r\n this.hasmousefocus = false;\r\n\r\n this.visibility = true;\r\n this.railslocked = false; // locked by resize\r\n this.locked = false; // prevent lost of locked status sets by user\r\n this.hidden = false; // rails always hidden\r\n this.cursoractive = true; // user can interact with cursors\r\n\r\n this.wheelprevented = false; //prevent mousewheel event\r\n\r\n this.overflowx = opt.overflowx;\r\n this.overflowy = opt.overflowy;\r\n\r\n this.nativescrollingarea = false;\r\n this.checkarea = 0;\r\n\r\n this.events = []; // event list for unbind\r\n\r\n this.saved = {}; // style saved\r\n\r\n this.delaylist = {};\r\n this.synclist = {};\r\n\r\n this.lastdeltax = 0;\r\n this.lastdeltay = 0;\r\n\r\n this.detected = getBrowserDetection();\r\n\r\n var cap = $.extend({}, this.detected);\r\n\r\n this.canhwscroll = (cap.hastransform && opt.hwacceleration);\r\n this.ishwscroll = (this.canhwscroll && self.haswrapper);\r\n\r\n if (!this.isrtlmode) {\r\n this.hasreversehr = false;\r\n } else if (this.isvertical) { // RTL mode with reverse horizontal axis\r\n this.hasreversehr = !(cap.iswebkit || cap.isie || cap.isie11);\r\n } else {\r\n this.hasreversehr = !(cap.iswebkit || (cap.isie && !cap.isie10 && !cap.isie11));\r\n }\r\n\r\n this.istouchcapable = false; // desktop devices with touch screen support\r\n\r\n //## Check WebKit-based desktop with touch support\r\n //## + Firefox 18 nightly build (desktop) false positive (or desktop with touch support)\r\n\r\n if (!cap.cantouch && (cap.hasw3ctouch || cap.hasmstouch)) { // desktop device with multiple input\r\n this.istouchcapable = true;\r\n } else if (cap.cantouch && !cap.isios && !cap.isandroid && (cap.iswebkit || cap.ismozilla)) {\r\n this.istouchcapable = true;\r\n }\r\n\r\n //## disable MouseLock API on user request\r\n if (!opt.enablemouselockapi) {\r\n cap.hasmousecapture = false;\r\n cap.haspointerlock = false;\r\n }\r\n\r\n this.debounced = function (name, fn, tm) {\r\n if (!self) return;\r\n var dd = self.delaylist[name] || false;\r\n if (!dd) {\r\n self.delaylist[name] = {\r\n h: setAnimationFrame(function () {\r\n self.delaylist[name].fn.call(self);\r\n self.delaylist[name] = false;\r\n }, tm)\r\n };\r\n fn.call(self);\r\n }\r\n self.delaylist[name].fn = fn;\r\n };\r\n\r\n\r\n this.synched = function (name, fn) {\r\n if (self.synclist[name]) self.synclist[name] = fn;\r\n else {\r\n self.synclist[name] = fn;\r\n setAnimationFrame(function () {\r\n if (!self) return;\r\n self.synclist[name] && self.synclist[name].call(self);\r\n self.synclist[name] = null;\r\n });\r\n }\r\n };\r\n\r\n this.unsynched = function (name) {\r\n if (self.synclist[name]) self.synclist[name] = false;\r\n };\r\n\r\n this.css = function (el, pars) { // save & set\r\n for (var n in pars) {\r\n self.saved.css.push([el, n, el.css(n)]);\r\n el.css(n, pars[n]);\r\n }\r\n };\r\n\r\n this.scrollTop = function (val) {\r\n return (val === undefined) ? self.getScrollTop() : self.setScrollTop(val);\r\n };\r\n\r\n this.scrollLeft = function (val) {\r\n return (val === undefined) ? self.getScrollLeft() : self.setScrollLeft(val);\r\n };\r\n\r\n // derived by by Dan Pupius www.pupius.net\r\n var BezierClass = function (st, ed, spd, p1, p2, p3, p4) {\r\n\r\n this.st = st;\r\n this.ed = ed;\r\n this.spd = spd;\r\n\r\n this.p1 = p1 || 0;\r\n this.p2 = p2 || 1;\r\n this.p3 = p3 || 0;\r\n this.p4 = p4 || 1;\r\n\r\n this.ts = now();\r\n this.df = ed - st;\r\n };\r\n BezierClass.prototype = {\r\n B2: function (t) {\r\n //return 3 * t * t * (1 - t);\r\n return 3 * (1 - t) * (1 - t) * t;\r\n },\r\n B3: function (t) {\r\n return 3 * (1 - t) * t * t;\r\n },\r\n B4: function (t) {\r\n return t * t * t;\r\n },\r\n getPos: function () {\r\n return (now() - this.ts) / this.spd;\r\n },\r\n getNow: function () {\r\n var pc = (now() - this.ts) / this.spd;\r\n var bz = this.B2(pc) + this.B3(pc) + this.B4(pc);\r\n return (pc >= 1) ? this.ed : this.st + (this.df * bz) | 0;\r\n },\r\n update: function (ed, spd) {\r\n this.st = this.getNow();\r\n this.ed = ed;\r\n this.spd = spd;\r\n this.ts = now();\r\n this.df = this.ed - this.st;\r\n return this;\r\n }\r\n };\r\n\r\n //derived from http://stackoverflow.com/questions/11236090/\r\n function getMatrixValues() {\r\n var tr = self.doc.css(cap.trstyle);\r\n if (tr && (tr.substr(0, 6) == \"matrix\")) {\r\n return tr.replace(/^.*\\((.*)\\)$/g, \"$1\").replace(/px/g, '').split(/, +/);\r\n }\r\n return false;\r\n }\r\n\r\n if (this.ishwscroll) { // hw accelerated scroll\r\n\r\n this.doc.translate = {\r\n x: 0,\r\n y: 0,\r\n tx: \"0px\",\r\n ty: \"0px\"\r\n };\r\n\r\n //this one can help to enable hw accel on ios6 http://indiegamr.com/ios6-html-hardware-acceleration-changes-and-how-to-fix-them/\r\n if (cap.hastranslate3d && cap.isios) this.doc.css(\"-webkit-backface-visibility\", \"hidden\"); // prevent flickering http://stackoverflow.com/questions/3461441/ \r\n\r\n this.getScrollTop = function (last) {\r\n if (!last) {\r\n var mtx = getMatrixValues();\r\n if (mtx) return (mtx.length == 16) ? -mtx[13] : -mtx[5]; //matrix3d 16 on IE10\r\n if (self.timerscroll && self.timerscroll.bz) return self.timerscroll.bz.getNow();\r\n }\r\n return self.doc.translate.y;\r\n };\r\n\r\n this.getScrollLeft = function (last) {\r\n if (!last) {\r\n var mtx = getMatrixValues();\r\n if (mtx) return (mtx.length == 16) ? -mtx[12] : -mtx[4]; //matrix3d 16 on IE10\r\n if (self.timerscroll && self.timerscroll.bh) return self.timerscroll.bh.getNow();\r\n }\r\n return self.doc.translate.x;\r\n };\r\n\r\n this.notifyScrollEvent = function (el) {\r\n var e = _doc.createEvent(\"UIEvents\");\r\n e.initUIEvent(\"scroll\", false, false, _win, 1);\r\n e.niceevent = true;\r\n el.dispatchEvent(e);\r\n };\r\n\r\n var cxscrollleft = (this.isrtlmode) ? 1 : -1;\r\n\r\n if (cap.hastranslate3d && opt.enabletranslate3d) {\r\n this.setScrollTop = function (val, silent) {\r\n self.doc.translate.y = val;\r\n self.doc.translate.ty = (val * -1) + \"px\";\r\n self.doc.css(cap.trstyle, \"translate3d(\" + self.doc.translate.tx + \",\" + self.doc.translate.ty + \",0)\");\r\n if (!silent) self.notifyScrollEvent(self.win[0]);\r\n };\r\n this.setScrollLeft = function (val, silent) {\r\n self.doc.translate.x = val;\r\n self.doc.translate.tx = (val * cxscrollleft) + \"px\";\r\n self.doc.css(cap.trstyle, \"translate3d(\" + self.doc.translate.tx + \",\" + self.doc.translate.ty + \",0)\");\r\n if (!silent) self.notifyScrollEvent(self.win[0]);\r\n };\r\n } else {\r\n this.setScrollTop = function (val, silent) {\r\n self.doc.translate.y = val;\r\n self.doc.translate.ty = (val * -1) + \"px\";\r\n self.doc.css(cap.trstyle, \"translate(\" + self.doc.translate.tx + \",\" + self.doc.translate.ty + \")\");\r\n if (!silent) self.notifyScrollEvent(self.win[0]);\r\n };\r\n this.setScrollLeft = function (val, silent) {\r\n self.doc.translate.x = val;\r\n self.doc.translate.tx = (val * cxscrollleft) + \"px\";\r\n self.doc.css(cap.trstyle, \"translate(\" + self.doc.translate.tx + \",\" + self.doc.translate.ty + \")\");\r\n if (!silent) self.notifyScrollEvent(self.win[0]);\r\n };\r\n }\r\n } else { // native scroll\r\n\r\n this.getScrollTop = function () {\r\n return self.docscroll.scrollTop();\r\n };\r\n this.setScrollTop = function (val) {\r\n self.docscroll.scrollTop(val);\r\n };\r\n\r\n this.getScrollLeft = function () {\r\n var val;\r\n if (!self.hasreversehr) {\r\n val = self.docscroll.scrollLeft();\r\n } else if (self.detected.ismozilla) {\r\n val = self.page.maxw - Math.abs(self.docscroll.scrollLeft());\r\n } else {\r\n val = self.page.maxw - self.docscroll.scrollLeft();\r\n }\r\n return val;\r\n };\r\n this.setScrollLeft = function (val) {\r\n return setTimeout(function () {\r\n if (!self) return;\r\n if (self.hasreversehr) {\r\n if (self.detected.ismozilla) {\r\n val = -(self.page.maxw - val);\r\n } else {\r\n val = self.page.maxw - val;\r\n }\r\n }\r\n return self.docscroll.scrollLeft(val);\r\n }, 1);\r\n };\r\n }\r\n\r\n this.getTarget = function (e) {\r\n if (!e) return false;\r\n if (e.target) return e.target;\r\n if (e.srcElement) return e.srcElement;\r\n return false;\r\n };\r\n\r\n this.hasParent = function (e, id) {\r\n if (!e) return false;\r\n var el = e.target || e.srcElement || e || false;\r\n while (el && el.id != id) {\r\n el = el.parentNode || false;\r\n }\r\n return (el !== false);\r\n };\r\n\r\n function getZIndex() {\r\n var dom = self.win;\r\n if (\"zIndex\" in dom) return dom.zIndex(); // use jQuery UI method when available\r\n while (dom.length > 0) {\r\n if (dom[0].nodeType == 9) return false;\r\n var zi = dom.css('zIndex');\r\n if (!isNaN(zi) && zi !== 0) return parseInt(zi);\r\n dom = dom.parent();\r\n }\r\n return false;\r\n }\r\n\r\n //inspired by http://forum.jquery.com/topic/width-includes-border-width-when-set-to-thin-medium-thick-in-ie\r\n var _convertBorderWidth = {\r\n \"thin\": 1,\r\n \"medium\": 3,\r\n \"thick\": 5\r\n };\r\n\r\n function getWidthToPixel(dom, prop, chkheight) {\r\n var wd = dom.css(prop);\r\n var px = parseFloat(wd);\r\n if (isNaN(px)) {\r\n px = _convertBorderWidth[wd] || 0;\r\n var brd = (px == 3) ? ((chkheight) ? (self.win.outerHeight() - self.win.innerHeight()) : (self.win.outerWidth() - self.win.innerWidth())) : 1; //DON'T TRUST CSS\r\n if (self.isie8 && px) px += 1;\r\n return (brd) ? px : 0;\r\n }\r\n return px;\r\n }\r\n\r\n this.getDocumentScrollOffset = function () {\r\n return {\r\n top: _win.pageYOffset || _doc.documentElement.scrollTop,\r\n left: _win.pageXOffset || _doc.documentElement.scrollLeft\r\n };\r\n };\r\n\r\n this.getOffset = function () {\r\n if (self.isfixed) {\r\n var ofs = self.win.offset(); // fix Chrome auto issue (when right/bottom props only)\r\n var scrl = self.getDocumentScrollOffset();\r\n ofs.top -= scrl.top;\r\n ofs.left -= scrl.left;\r\n return ofs;\r\n }\r\n var ww = self.win.offset();\r\n if (!self.viewport) return ww;\r\n var vp = self.viewport.offset();\r\n return {\r\n top: ww.top - vp.top,\r\n left: ww.left - vp.left\r\n };\r\n };\r\n\r\n this.updateScrollBar = function (len) {\r\n var pos, off;\r\n if (self.ishwscroll) {\r\n self.rail.css({\r\n height: self.win.innerHeight() - (opt.railpadding.top + opt.railpadding.bottom)\r\n });\r\n if (self.railh) self.railh.css({\r\n width: self.win.innerWidth() - (opt.railpadding.left + opt.railpadding.right)\r\n });\r\n } else {\r\n var wpos = self.getOffset();\r\n pos = {\r\n top: wpos.top,\r\n left: wpos.left - (opt.railpadding.left + opt.railpadding.right)\r\n };\r\n pos.top += getWidthToPixel(self.win, 'border-top-width', true);\r\n pos.left += (self.rail.align) ? self.win.outerWidth() - getWidthToPixel(self.win, 'border-right-width') - self.rail.width : getWidthToPixel(self.win, 'border-left-width');\r\n\r\n off = opt.railoffset;\r\n if (off) {\r\n if (off.top) pos.top += off.top;\r\n if (off.left) pos.left += off.left;\r\n }\r\n\r\n if (!self.railslocked) self.rail.css({\r\n top: pos.top,\r\n left: pos.left,\r\n height: ((len) ? len.h : self.win.innerHeight()) - (opt.railpadding.top + opt.railpadding.bottom)\r\n });\r\n\r\n if (self.zoom) {\r\n self.zoom.css({\r\n top: pos.top + 1,\r\n left: (self.rail.align == 1) ? pos.left - 20 : pos.left + self.rail.width + 4\r\n });\r\n }\r\n\r\n if (self.railh && !self.railslocked) {\r\n pos = {\r\n top: wpos.top,\r\n left: wpos.left\r\n };\r\n off = opt.railhoffset;\r\n if (off) {\r\n if (off.top) pos.top += off.top;\r\n if (off.left) pos.left += off.left;\r\n }\r\n var y = (self.railh.align) ? pos.top + getWidthToPixel(self.win, 'border-top-width', true) + self.win.innerHeight() - self.railh.height : pos.top + getWidthToPixel(self.win, 'border-top-width', true);\r\n var x = pos.left + getWidthToPixel(self.win, 'border-left-width');\r\n self.railh.css({\r\n top: y - (opt.railpadding.top + opt.railpadding.bottom),\r\n left: x,\r\n width: self.railh.width\r\n });\r\n }\r\n\r\n }\r\n };\r\n\r\n this.doRailClick = function (e, dbl, hr) {\r\n var fn, pg, cur, pos;\r\n\r\n if (self.railslocked) return;\r\n\r\n self.cancelEvent(e);\r\n\r\n if (!(\"pageY\" in e)) {\r\n e.pageX = e.clientX + _doc.documentElement.scrollLeft;\r\n e.pageY = e.clientY + _doc.documentElement.scrollTop;\r\n }\r\n\r\n if (dbl) {\r\n fn = (hr) ? self.doScrollLeft : self.doScrollTop;\r\n cur = (hr) ? ((e.pageX - self.railh.offset().left - (self.cursorwidth / 2)) * self.scrollratio.x) : ((e.pageY - self.rail.offset().top - (self.cursorheight / 2)) * self.scrollratio.y);\r\n self.unsynched(\"relativexy\");\r\n fn(cur|0);\r\n } else {\r\n fn = (hr) ? self.doScrollLeftBy : self.doScrollBy;\r\n cur = (hr) ? self.scroll.x : self.scroll.y;\r\n pos = (hr) ? e.pageX - self.railh.offset().left : e.pageY - self.rail.offset().top;\r\n pg = (hr) ? self.view.w : self.view.h;\r\n fn((cur >= pos) ? pg : -pg);\r\n }\r\n\r\n };\r\n\r\n self.newscrolly = self.newscrollx = 0;\r\n\r\n self.hasanimationframe = (\"requestAnimationFrame\" in _win);\r\n self.hascancelanimationframe = (\"cancelAnimationFrame\" in _win);\r\n\r\n self.hasborderbox = false;\r\n\r\n this.init = function () {\r\n\r\n self.saved.css = [];\r\n\r\n if (cap.isoperamini) return true; // SORRY, DO NOT WORK!\r\n if (cap.isandroid && !(\"hidden\" in _doc)) return true; // Android 3- SORRY, DO NOT WORK!\r\n\r\n opt.emulatetouch = opt.emulatetouch || opt.touchbehavior; // mantain compatibility with \"touchbehavior\" \r\n\r\n self.hasborderbox = _win.getComputedStyle && (_win.getComputedStyle(_doc.body)['box-sizing'] === \"border-box\");\r\n\r\n var _scrollyhidden = { 'overflow-y': 'hidden' };\r\n if (cap.isie11 || cap.isie10) _scrollyhidden['-ms-overflow-style'] = 'none'; // IE 10 & 11 is always a world apart!\r\n\r\n if (self.ishwscroll) {\r\n this.doc.css(cap.transitionstyle, cap.prefixstyle + 'transform 0ms ease-out');\r\n if (cap.transitionend) self.bind(self.doc, cap.transitionend, self.onScrollTransitionEnd, false); //I have got to do something usefull!!\r\n }\r\n\r\n self.zindex = \"auto\";\r\n if (!self.ispage && opt.zindex == \"auto\") {\r\n self.zindex = getZIndex() || \"auto\";\r\n } else {\r\n self.zindex = opt.zindex;\r\n }\r\n\r\n if (!self.ispage && self.zindex != \"auto\" && self.zindex > globalmaxzindex) {\r\n globalmaxzindex = self.zindex;\r\n }\r\n\r\n if (self.isie && self.zindex === 0 && opt.zindex == \"auto\") { // fix IE auto == 0\r\n self.zindex = \"auto\";\r\n }\r\n\r\n if (!self.ispage || !cap.isieold) {\r\n\r\n var cont = self.docscroll;\r\n if (self.ispage) cont = (self.haswrapper) ? self.win : self.doc;\r\n\r\n self.css(cont, _scrollyhidden);\r\n\r\n if (self.ispage && (cap.isie11 || cap.isie)) { // IE 7-11\r\n self.css($(\"html\"), _scrollyhidden);\r\n }\r\n\r\n if (cap.isios && !self.ispage && !self.haswrapper) self.css($body, {\r\n \"-webkit-overflow-scrolling\": \"touch\"\r\n }); //force hw acceleration\r\n\r\n var cursor = $(_doc.createElement('div'));\r\n cursor.css({\r\n position: \"relative\",\r\n top: 0,\r\n \"float\": \"right\",\r\n width: opt.cursorwidth,\r\n height: 0,\r\n 'background-color': opt.cursorcolor,\r\n border: opt.cursorborder,\r\n 'background-clip': 'padding-box',\r\n '-webkit-border-radius': opt.cursorborderradius,\r\n '-moz-border-radius': opt.cursorborderradius,\r\n 'border-radius': opt.cursorborderradius\r\n });\r\n\r\n cursor.addClass('nicescroll-cursors');\r\n\r\n self.cursor = cursor;\r\n\r\n var rail = $(_doc.createElement('div'));\r\n rail.attr('id', self.id);\r\n rail.addClass('nicescroll-rails nicescroll-rails-vr');\r\n\r\n var v, a, kp = [\"left\", \"right\", \"top\", \"bottom\"]; //**\r\n for (var n in kp) {\r\n a = kp[n];\r\n v = opt.railpadding[a] || 0;\r\n v && rail.css(\"padding-\" + a, v + \"px\");\r\n }\r\n\r\n rail.append(cursor);\r\n\r\n rail.width = Math.max(parseFloat(opt.cursorwidth), cursor.outerWidth());\r\n rail.css({\r\n width: rail.width + \"px\",\r\n zIndex: self.zindex,\r\n background: opt.background,\r\n cursor: \"default\"\r\n });\r\n\r\n rail.visibility = true;\r\n rail.scrollable = true;\r\n\r\n rail.align = (opt.railalign == \"left\") ? 0 : 1;\r\n\r\n self.rail = rail;\r\n\r\n self.rail.drag = false;\r\n\r\n var zoom = false;\r\n if (opt.boxzoom && !self.ispage && !cap.isieold) {\r\n zoom = _doc.createElement('div');\r\n\r\n self.bind(zoom, \"click\", self.doZoom);\r\n self.bind(zoom, \"mouseenter\", function () {\r\n self.zoom.css('opacity', opt.cursoropacitymax);\r\n });\r\n self.bind(zoom, \"mouseleave\", function () {\r\n self.zoom.css('opacity', opt.cursoropacitymin);\r\n });\r\n\r\n self.zoom = $(zoom);\r\n self.zoom.css({\r\n cursor: \"pointer\",\r\n zIndex: self.zindex,\r\n backgroundImage: 'url(' + opt.scriptpath + 'zoomico.png)',\r\n height: 18,\r\n width: 18,\r\n backgroundPosition: '0 0'\r\n });\r\n if (opt.dblclickzoom) self.bind(self.win, \"dblclick\", self.doZoom);\r\n if (cap.cantouch && opt.gesturezoom) {\r\n self.ongesturezoom = function (e) {\r\n if (e.scale > 1.5) self.doZoomIn(e);\r\n if (e.scale < 0.8) self.doZoomOut(e);\r\n return self.cancelEvent(e);\r\n };\r\n self.bind(self.win, \"gestureend\", self.ongesturezoom);\r\n }\r\n }\r\n\r\n // init HORIZ\r\n\r\n self.railh = false;\r\n var railh;\r\n\r\n if (opt.horizrailenabled) {\r\n\r\n self.css(cont, {\r\n overflowX: 'hidden'\r\n });\r\n\r\n cursor = $(_doc.createElement('div'));\r\n cursor.css({\r\n position: \"absolute\",\r\n top: 0,\r\n height: opt.cursorwidth,\r\n width: 0,\r\n backgroundColor: opt.cursorcolor,\r\n border: opt.cursorborder,\r\n backgroundClip: 'padding-box',\r\n '-webkit-border-radius': opt.cursorborderradius,\r\n '-moz-border-radius': opt.cursorborderradius,\r\n 'border-radius': opt.cursorborderradius\r\n });\r\n\r\n if (cap.isieold) cursor.css('overflow', 'hidden'); //IE6 horiz scrollbar issue\r\n\r\n cursor.addClass('nicescroll-cursors');\r\n\r\n self.cursorh = cursor;\r\n\r\n railh = $(_doc.createElement('div'));\r\n railh.attr('id', self.id + '-hr');\r\n railh.addClass('nicescroll-rails nicescroll-rails-hr');\r\n railh.height = Math.max(parseFloat(opt.cursorwidth), cursor.outerHeight());\r\n railh.css({\r\n height: railh.height + \"px\",\r\n 'zIndex': self.zindex,\r\n \"background\": opt.background\r\n });\r\n\r\n railh.append(cursor);\r\n\r\n railh.visibility = true;\r\n railh.scrollable = true;\r\n\r\n railh.align = (opt.railvalign == \"top\") ? 0 : 1;\r\n\r\n self.railh = railh;\r\n\r\n self.railh.drag = false;\r\n\r\n }\r\n\r\n if (self.ispage) {\r\n\r\n rail.css({\r\n position: \"fixed\",\r\n top: 0,\r\n height: \"100%\"\r\n });\r\n\r\n rail.css((rail.align) ? { right: 0 } : { left: 0 });\r\n\r\n self.body.append(rail);\r\n if (self.railh) {\r\n railh.css({\r\n position: \"fixed\",\r\n left: 0,\r\n width: \"100%\"\r\n });\r\n\r\n railh.css((railh.align) ? { bottom: 0 } : { top: 0 });\r\n\r\n self.body.append(railh);\r\n }\r\n } else {\r\n if (self.ishwscroll) {\r\n if (self.win.css('position') == 'static') self.css(self.win, { 'position': 'relative' });\r\n var bd = (self.win[0].nodeName == 'HTML') ? self.body : self.win;\r\n $(bd).scrollTop(0).scrollLeft(0); // fix rail position if content already scrolled\r\n if (self.zoom) {\r\n self.zoom.css({\r\n position: \"absolute\",\r\n top: 1,\r\n right: 0,\r\n \"margin-right\": rail.width + 4\r\n });\r\n bd.append(self.zoom);\r\n }\r\n rail.css({\r\n position: \"absolute\",\r\n top: 0\r\n });\r\n rail.css((rail.align) ? { right: 0 } : { left: 0 });\r\n bd.append(rail);\r\n if (railh) {\r\n railh.css({\r\n position: \"absolute\",\r\n left: 0,\r\n bottom: 0\r\n });\r\n railh.css((railh.align) ? { bottom: 0 } : { top: 0 });\r\n bd.append(railh);\r\n }\r\n } else {\r\n self.isfixed = (self.win.css(\"position\") == \"fixed\");\r\n var rlpos = (self.isfixed) ? \"fixed\" : \"absolute\";\r\n\r\n if (!self.isfixed) self.viewport = self.getViewport(self.win[0]);\r\n if (self.viewport) {\r\n self.body = self.viewport;\r\n if (!(/fixed|absolute/.test(self.viewport.css(\"position\")))) self.css(self.viewport, {\r\n \"position\": \"relative\"\r\n });\r\n }\r\n\r\n rail.css({\r\n position: rlpos\r\n });\r\n if (self.zoom) self.zoom.css({\r\n position: rlpos\r\n });\r\n self.updateScrollBar();\r\n self.body.append(rail);\r\n if (self.zoom) self.body.append(self.zoom);\r\n if (self.railh) {\r\n railh.css({\r\n position: rlpos\r\n });\r\n self.body.append(railh);\r\n }\r\n }\r\n\r\n if (cap.isios) self.css(self.win, {\r\n '-webkit-tap-highlight-color': 'rgba(0,0,0,0)',\r\n '-webkit-touch-callout': 'none'\r\n }); // prevent grey layer on click\r\n\r\n if (opt.disableoutline) {\r\n if (cap.isie) self.win.attr(\"hideFocus\", \"true\"); // IE, prevent dotted rectangle on focused div\r\n if (cap.iswebkit) self.win.css('outline', 'none'); // Webkit outline\r\n }\r\n\r\n }\r\n\r\n if (opt.autohidemode === false) {\r\n self.autohidedom = false;\r\n self.rail.css({\r\n opacity: opt.cursoropacitymax\r\n });\r\n if (self.railh) self.railh.css({\r\n opacity: opt.cursoropacitymax\r\n });\r\n } else if ((opt.autohidemode === true) || (opt.autohidemode === \"leave\")) {\r\n self.autohidedom = $().add(self.rail);\r\n if (cap.isie8) self.autohidedom = self.autohidedom.add(self.cursor);\r\n if (self.railh) self.autohidedom = self.autohidedom.add(self.railh);\r\n if (self.railh && cap.isie8) self.autohidedom = self.autohidedom.add(self.cursorh);\r\n } else if (opt.autohidemode == \"scroll\") {\r\n self.autohidedom = $().add(self.rail);\r\n if (self.railh) self.autohidedom = self.autohidedom.add(self.railh);\r\n } else if (opt.autohidemode == \"cursor\") {\r\n self.autohidedom = $().add(self.cursor);\r\n if (self.railh) self.autohidedom = self.autohidedom.add(self.cursorh);\r\n } else if (opt.autohidemode == \"hidden\") {\r\n self.autohidedom = false;\r\n self.hide();\r\n self.railslocked = false;\r\n }\r\n\r\n if (cap.cantouch || self.istouchcapable || opt.emulatetouch || cap.hasmstouch) {\r\n\r\n self.scrollmom = new ScrollMomentumClass2D(self);\r\n\r\n var delayedclick = null;\r\n\r\n self.ontouchstart = function (e) {\r\n\r\n if (self.locked) return false;\r\n\r\n //if (e.pointerType && e.pointerType != 2 && e.pointerType != \"touch\") return false;\r\n if (e.pointerType && (e.pointerType === 'mouse' || e.pointerType === e.MSPOINTER_TYPE_MOUSE)) return false; // need test on surface!!\r\n\r\n self.hasmoving = false;\r\n\r\n if (self.scrollmom.timer) {\r\n self.triggerScrollEnd();\r\n self.scrollmom.stop();\r\n }\r\n\r\n if (!self.railslocked) {\r\n var tg = self.getTarget(e);\r\n\r\n if (tg) {\r\n var skp = (/INPUT/i.test(tg.nodeName)) && (/range/i.test(tg.type));\r\n if (skp) return self.stopPropagation(e);\r\n }\r\n\r\n var ismouse = (e.type === \"mousedown\");\r\n\r\n if (!(\"clientX\" in e) && (\"changedTouches\" in e)) {\r\n e.clientX = e.changedTouches[0].clientX;\r\n e.clientY = e.changedTouches[0].clientY;\r\n }\r\n\r\n if (self.forcescreen) {\r\n var le = e;\r\n e = {\r\n \"original\": (e.original) ? e.original : e\r\n };\r\n e.clientX = le.screenX;\r\n e.clientY = le.screenY;\r\n }\r\n\r\n self.rail.drag = {\r\n x: e.clientX,\r\n y: e.clientY,\r\n sx: self.scroll.x,\r\n sy: self.scroll.y,\r\n st: self.getScrollTop(),\r\n sl: self.getScrollLeft(),\r\n pt: 2,\r\n dl: false,\r\n tg: tg\r\n };\r\n\r\n if (self.ispage || !opt.directionlockdeadzone) {\r\n\r\n self.rail.drag.dl = \"f\";\r\n\r\n } else {\r\n\r\n var view = {\r\n w: $window.width(),\r\n h: $window.height()\r\n };\r\n\r\n var page = self.getContentSize();\r\n\r\n var maxh = page.h - view.h;\r\n var maxw = page.w - view.w;\r\n\r\n if (self.rail.scrollable && !self.railh.scrollable) self.rail.drag.ck = (maxh > 0) ? \"v\" : false;\r\n else if (!self.rail.scrollable && self.railh.scrollable) self.rail.drag.ck = (maxw > 0) ? \"h\" : false;\r\n else self.rail.drag.ck = false;\r\n\r\n }\r\n\r\n if (opt.emulatetouch && self.isiframe && cap.isie) {\r\n var wp = self.win.position();\r\n self.rail.drag.x += wp.left;\r\n self.rail.drag.y += wp.top;\r\n }\r\n\r\n self.hasmoving = false;\r\n self.lastmouseup = false;\r\n self.scrollmom.reset(e.clientX, e.clientY);\r\n\r\n if (tg&&ismouse) {\r\n\r\n var ip = /INPUT|SELECT|BUTTON|TEXTAREA/i.test(tg.nodeName);\r\n if (!ip) {\r\n if (cap.hasmousecapture) tg.setCapture();\r\n if (opt.emulatetouch) {\r\n if (tg.onclick && !(tg._onclick || false)) { // intercept DOM0 onclick event\r\n tg._onclick = tg.onclick;\r\n tg.onclick = function (e) {\r\n if (self.hasmoving) return false;\r\n tg._onclick.call(this, e);\r\n };\r\n }\r\n return self.cancelEvent(e);\r\n }\r\n return self.stopPropagation(e);\r\n } \r\n\r\n if (/SUBMIT|CANCEL|BUTTON/i.test($(tg).attr('type'))) {\r\n self.preventclick = {\r\n \"tg\": tg,\r\n \"click\": false\r\n };\r\n }\r\n\r\n }\r\n }\r\n\r\n };\r\n\r\n self.ontouchend = function (e) {\r\n\r\n if (!self.rail.drag) return true;\r\n\r\n if (self.rail.drag.pt == 2) {\r\n //if (e.pointerType && e.pointerType != 2 && e.pointerType != \"touch\") return false;\r\n if (e.pointerType && (e.pointerType === 'mouse' || e.pointerType === e.MSPOINTER_TYPE_MOUSE)) return false;\r\n\r\n self.rail.drag = false;\r\n\r\n var ismouse = (e.type === \"mouseup\");\r\n\r\n if (self.hasmoving) {\r\n self.scrollmom.doMomentum();\r\n self.lastmouseup = true;\r\n self.hideCursor();\r\n if (cap.hasmousecapture) _doc.releaseCapture();\r\n if (ismouse) return self.cancelEvent(e);\r\n }\r\n\r\n }\r\n else if (self.rail.drag.pt == 1) {\r\n return self.onmouseup(e);\r\n }\r\n\r\n };\r\n\r\n var moveneedoffset = (opt.emulatetouch && self.isiframe && !cap.hasmousecapture);\r\n\r\n var locktollerance = opt.directionlockdeadzone * 0.3 | 0;\r\n\r\n self.ontouchmove = function (e, byiframe) {\r\n\r\n if (!self.rail.drag) return true;\r\n\r\n if (e.targetTouches && opt.preventmultitouchscrolling) {\r\n if (e.targetTouches.length > 1) return true; // multitouch\r\n }\r\n\r\n //if (e.pointerType && e.pointerType != 2 && e.pointerType != \"touch\") return false;\r\n if (e.pointerType && (e.pointerType === 'mouse' || e.pointerType === e.MSPOINTER_TYPE_MOUSE)) return true;\r\n\r\n if (self.rail.drag.pt == 2) {\r\n\r\n if ((\"changedTouches\" in e)) {\r\n e.clientX = e.changedTouches[0].clientX;\r\n e.clientY = e.changedTouches[0].clientY;\r\n }\r\n\r\n var ofy, ofx;\r\n ofx = ofy = 0;\r\n\r\n if (moveneedoffset && !byiframe) {\r\n var wp = self.win.position();\r\n ofx = -wp.left;\r\n ofy = -wp.top;\r\n }\r\n\r\n var fy = e.clientY + ofy;\r\n var my = (fy - self.rail.drag.y);\r\n var fx = e.clientX + ofx;\r\n var mx = (fx - self.rail.drag.x);\r\n\r\n var ny = self.rail.drag.st - my;\r\n\r\n if (self.ishwscroll && opt.bouncescroll) {\r\n if (ny < 0) {\r\n ny = Math.round(ny / 2);\r\n } else if (ny > self.page.maxh) {\r\n ny = self.page.maxh + Math.round((ny - self.page.maxh) / 2);\r\n }\r\n } else {\r\n if (ny < 0) {\r\n ny = 0;\r\n fy = 0;\r\n }\r\n else if (ny > self.page.maxh) {\r\n ny = self.page.maxh;\r\n fy = 0;\r\n }\r\n if (fy === 0 && !self.hasmoving) {\r\n if (!self.ispage) self.rail.drag = false;\r\n return true;\r\n }\r\n }\r\n\r\n var nx = self.getScrollLeft();\r\n\r\n if (self.railh && self.railh.scrollable) {\r\n nx = (self.isrtlmode) ? mx - self.rail.drag.sl : self.rail.drag.sl - mx;\r\n\r\n if (self.ishwscroll && opt.bouncescroll) {\r\n if (nx < 0) {\r\n nx = Math.round(nx / 2);\r\n } else if (nx > self.page.maxw) {\r\n nx = self.page.maxw + Math.round((nx - self.page.maxw) / 2);\r\n }\r\n } else {\r\n if (nx < 0) {\r\n nx = 0;\r\n fx = 0;\r\n }\r\n if (nx > self.page.maxw) {\r\n nx = self.page.maxw;\r\n fx = 0;\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n if (!self.hasmoving) {\r\n\r\n if (self.rail.drag.y === e.clientY && self.rail.drag.x === e.clientX) return self.cancelEvent(e); // prevent first useless move event \r\n\r\n var ay = Math.abs(my);\r\n var ax = Math.abs(mx);\r\n var dz = opt.directionlockdeadzone;\r\n\r\n if (!self.rail.drag.ck) {\r\n if (ay > dz && ax > dz) self.rail.drag.dl = \"f\";\r\n else if (ay > dz) self.rail.drag.dl = (ax > locktollerance) ? \"f\" : \"v\";\r\n else if (ax > dz) self.rail.drag.dl = (ay > locktollerance) ? \"f\" : \"h\";\r\n }\r\n else if (self.rail.drag.ck == \"v\") {\r\n if (ax > dz && ay <= locktollerance) {\r\n self.rail.drag = false;\r\n }\r\n else if (ay > dz) self.rail.drag.dl = \"v\";\r\n\r\n }\r\n else if (self.rail.drag.ck == \"h\") {\r\n\r\n if (ay > dz && ax <= locktollerance) {\r\n self.rail.drag = false;\r\n }\r\n else if (ax > dz) self.rail.drag.dl = \"h\";\r\n\r\n }\r\n\r\n if (!self.rail.drag.dl) return self.cancelEvent(e);\r\n\r\n self.triggerScrollStart(e.clientX, e.clientY, 0, 0, 0);\r\n self.hasmoving = true;\r\n }\r\n\r\n if (self.preventclick && !self.preventclick.click) {\r\n self.preventclick.click = self.preventclick.tg.onclick || false;\r\n self.preventclick.tg.onclick = self.onpreventclick;\r\n }\r\n\r\n if (self.rail.drag.dl) {\r\n if (self.rail.drag.dl == \"v\") nx = self.rail.drag.sl;\r\n else if (self.rail.drag.dl == \"h\") ny = self.rail.drag.st;\r\n }\r\n\r\n self.synched(\"touchmove\", function () {\r\n if (self.rail.drag && (self.rail.drag.pt == 2)) {\r\n if (self.prepareTransition) self.resetTransition();\r\n if (self.rail.scrollable) self.setScrollTop(ny);\r\n self.scrollmom.update(fx, fy);\r\n if (self.railh && self.railh.scrollable) {\r\n self.setScrollLeft(nx);\r\n self.showCursor(ny, nx);\r\n } else {\r\n self.showCursor(ny);\r\n }\r\n if (cap.isie10) _doc.selection.clear();\r\n }\r\n });\r\n\r\n return self.cancelEvent(e);\r\n\r\n }\r\n else if (self.rail.drag.pt == 1) { // drag on cursor\r\n return self.onmousemove(e);\r\n }\r\n\r\n };\r\n\r\n self.ontouchstartCursor = function (e, hronly) {\r\n if (self.rail.drag && self.rail.drag.pt != 3) return;\r\n if (self.locked) return self.cancelEvent(e);\r\n self.cancelScroll();\r\n self.rail.drag = {\r\n x: e.touches[0].clientX,\r\n y: e.touches[0].clientY,\r\n sx: self.scroll.x,\r\n sy: self.scroll.y,\r\n pt: 3,\r\n hr: (!!hronly)\r\n };\r\n var tg = self.getTarget(e);\r\n if (!self.ispage && cap.hasmousecapture) tg.setCapture();\r\n if (self.isiframe && !cap.hasmousecapture) {\r\n self.saved.csspointerevents = self.doc.css(\"pointer-events\");\r\n self.css(self.doc, { \"pointer-events\": \"none\" });\r\n }\r\n return self.cancelEvent(e);\r\n };\r\n\r\n self.ontouchendCursor = function (e) {\r\n if (self.rail.drag) {\r\n if (cap.hasmousecapture) _doc.releaseCapture();\r\n if (self.isiframe && !cap.hasmousecapture) self.doc.css(\"pointer-events\", self.saved.csspointerevents);\r\n if (self.rail.drag.pt != 3) return;\r\n self.rail.drag = false;\r\n return self.cancelEvent(e);\r\n }\r\n };\r\n\r\n self.ontouchmoveCursor = function (e) {\r\n if (self.rail.drag) {\r\n if (self.rail.drag.pt != 3) return;\r\n\r\n self.cursorfreezed = true;\r\n\r\n if (self.rail.drag.hr) {\r\n self.scroll.x = self.rail.drag.sx + (e.touches[0].clientX - self.rail.drag.x);\r\n if (self.scroll.x < 0) self.scroll.x = 0;\r\n var mw = self.scrollvaluemaxw;\r\n if (self.scroll.x > mw) self.scroll.x = mw;\r\n } else {\r\n self.scroll.y = self.rail.drag.sy + (e.touches[0].clientY - self.rail.drag.y);\r\n if (self.scroll.y < 0) self.scroll.y = 0;\r\n var my = self.scrollvaluemax;\r\n if (self.scroll.y > my) self.scroll.y = my;\r\n }\r\n\r\n self.synched('touchmove', function () {\r\n if (self.rail.drag && (self.rail.drag.pt == 3)) {\r\n self.showCursor();\r\n if (self.rail.drag.hr) self.doScrollLeft(Math.round(self.scroll.x * self.scrollratio.x), opt.cursordragspeed);\r\n else self.doScrollTop(Math.round(self.scroll.y * self.scrollratio.y), opt.cursordragspeed);\r\n }\r\n });\r\n\r\n return self.cancelEvent(e);\r\n }\r\n\r\n };\r\n\r\n }\r\n\r\n self.onmousedown = function (e, hronly) {\r\n if (self.rail.drag && self.rail.drag.pt != 1) return;\r\n if (self.railslocked) return self.cancelEvent(e);\r\n self.cancelScroll();\r\n self.rail.drag = {\r\n x: e.clientX,\r\n y: e.clientY,\r\n sx: self.scroll.x,\r\n sy: self.scroll.y,\r\n pt: 1,\r\n hr: hronly || false\r\n };\r\n var tg = self.getTarget(e);\r\n\r\n if (cap.hasmousecapture) tg.setCapture();\r\n if (self.isiframe && !cap.hasmousecapture) {\r\n self.saved.csspointerevents = self.doc.css(\"pointer-events\");\r\n self.css(self.doc, {\r\n \"pointer-events\": \"none\"\r\n });\r\n }\r\n self.hasmoving = false;\r\n return self.cancelEvent(e);\r\n };\r\n\r\n self.onmouseup = function (e) {\r\n if (self.rail.drag) {\r\n if (self.rail.drag.pt != 1) return true;\r\n\r\n if (cap.hasmousecapture) _doc.releaseCapture();\r\n if (self.isiframe && !cap.hasmousecapture) self.doc.css(\"pointer-events\", self.saved.csspointerevents);\r\n self.rail.drag = false;\r\n self.cursorfreezed = false;\r\n if (self.hasmoving) self.triggerScrollEnd();\r\n return self.cancelEvent(e);\r\n }\r\n };\r\n\r\n self.onmousemove = function (e) {\r\n if (self.rail.drag) {\r\n if (self.rail.drag.pt !== 1) return;\r\n\r\n if (cap.ischrome && e.which === 0) return self.onmouseup(e);\r\n\r\n self.cursorfreezed = true;\r\n\r\n if (!self.hasmoving) self.triggerScrollStart(e.clientX, e.clientY, 0, 0, 0);\r\n\r\n self.hasmoving = true;\r\n\r\n if (self.rail.drag.hr) {\r\n self.scroll.x = self.rail.drag.sx + (e.clientX - self.rail.drag.x);\r\n if (self.scroll.x < 0) self.scroll.x = 0;\r\n var mw = self.scrollvaluemaxw;\r\n if (self.scroll.x > mw) self.scroll.x = mw;\r\n } else {\r\n self.scroll.y = self.rail.drag.sy + (e.clientY - self.rail.drag.y);\r\n if (self.scroll.y < 0) self.scroll.y = 0;\r\n var my = self.scrollvaluemax;\r\n if (self.scroll.y > my) self.scroll.y = my;\r\n }\r\n\r\n self.synched('mousemove', function () {\r\n\r\n if (self.cursorfreezed) {\r\n self.showCursor();\r\n\r\n if (self.rail.drag.hr) {\r\n self.scrollLeft(Math.round(self.scroll.x * self.scrollratio.x));\r\n } else {\r\n self.scrollTop(Math.round(self.scroll.y * self.scrollratio.y));\r\n }\r\n\r\n }\r\n });\r\n\r\n return self.cancelEvent(e);\r\n }\r\n else {\r\n self.checkarea = 0;\r\n }\r\n };\r\n\r\n if (cap.cantouch || opt.emulatetouch) {\r\n\r\n self.onpreventclick = function (e) {\r\n if (self.preventclick) {\r\n self.preventclick.tg.onclick = self.preventclick.click;\r\n self.preventclick = false;\r\n return self.cancelEvent(e);\r\n }\r\n };\r\n\r\n self.onclick = (cap.isios) ? false : function (e) { // it needs to check IE11 ???\r\n if (self.lastmouseup) {\r\n self.lastmouseup = false;\r\n return self.cancelEvent(e);\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n if (opt.grabcursorenabled && cap.cursorgrabvalue) {\r\n self.css((self.ispage) ? self.doc : self.win, {\r\n 'cursor': cap.cursorgrabvalue\r\n });\r\n self.css(self.rail, {\r\n 'cursor': cap.cursorgrabvalue\r\n });\r\n }\r\n\r\n } else {\r\n\r\n var checkSelectionScroll = function (e) {\r\n if (!self.selectiondrag) return;\r\n\r\n if (e) {\r\n var ww = self.win.outerHeight();\r\n var df = (e.pageY - self.selectiondrag.top);\r\n if (df > 0 && df < ww) df = 0;\r\n if (df >= ww) df -= ww;\r\n self.selectiondrag.df = df;\r\n }\r\n if (self.selectiondrag.df === 0) return;\r\n\r\n var rt = -(self.selectiondrag.df*2/6)|0;\r\n self.doScrollBy(rt);\r\n\r\n self.debounced(\"doselectionscroll\", function () {\r\n checkSelectionScroll();\r\n }, 50);\r\n };\r\n\r\n if (\"getSelection\" in _doc) { // A grade - Major browsers\r\n self.hasTextSelected = function () {\r\n return (_doc.getSelection().rangeCount > 0);\r\n };\r\n } else if (\"selection\" in _doc) { //IE9-\r\n self.hasTextSelected = function () {\r\n return (_doc.selection.type != \"None\");\r\n };\r\n } else {\r\n self.hasTextSelected = function () { // no support\r\n return false;\r\n };\r\n }\r\n\r\n self.onselectionstart = function (e) {\r\n // More testing - severe chrome issues \r\n /* \r\n if (!self.haswrapper&&(e.which&&e.which==2)) { // fool browser to manage middle button scrolling\r\n self.win.css({'overflow':'auto'});\r\n setTimeout(function(){\r\n self.win.css({'overflow':'hidden'});\r\n },10); \r\n return true;\r\n } \r\n */\r\n if (self.ispage) return;\r\n self.selectiondrag = self.win.offset();\r\n };\r\n\r\n self.onselectionend = function (e) {\r\n self.selectiondrag = false;\r\n };\r\n self.onselectiondrag = function (e) {\r\n if (!self.selectiondrag) return;\r\n if (self.hasTextSelected()) self.debounced(\"selectionscroll\", function () {\r\n checkSelectionScroll(e);\r\n }, 250);\r\n };\r\n }\r\n\r\n if (cap.hasw3ctouch) { //IE11+\r\n self.css((self.ispage) ? $(\"html\") : self.win, { 'touch-action': 'none' });\r\n self.css(self.rail, {\r\n 'touch-action': 'none'\r\n });\r\n self.css(self.cursor, {\r\n 'touch-action': 'none'\r\n });\r\n self.bind(self.win, \"pointerdown\", self.ontouchstart);\r\n self.bind(_doc, \"pointerup\", self.ontouchend);\r\n self.delegate(_doc, \"pointermove\", self.ontouchmove);\r\n } else if (cap.hasmstouch) { //IE10\r\n self.css((self.ispage) ? $(\"html\") : self.win, { '-ms-touch-action': 'none' });\r\n self.css(self.rail, {\r\n '-ms-touch-action': 'none'\r\n });\r\n self.css(self.cursor, {\r\n '-ms-touch-action': 'none'\r\n });\r\n self.bind(self.win, \"MSPointerDown\", self.ontouchstart);\r\n self.bind(_doc, \"MSPointerUp\", self.ontouchend);\r\n self.delegate(_doc, \"MSPointerMove\", self.ontouchmove);\r\n self.bind(self.cursor, \"MSGestureHold\", function (e) {\r\n e.preventDefault();\r\n });\r\n self.bind(self.cursor, \"contextmenu\", function (e) {\r\n e.preventDefault();\r\n });\r\n } else if (cap.cantouch) { // smartphones/touch devices\r\n self.bind(self.win, \"touchstart\", self.ontouchstart, false, true);\r\n self.bind(_doc, \"touchend\", self.ontouchend, false, true);\r\n self.bind(_doc, \"touchcancel\", self.ontouchend, false, true);\r\n self.delegate(_doc, \"touchmove\", self.ontouchmove, false, true);\r\n }\r\n\r\n if (opt.emulatetouch) {\r\n self.bind(self.win, \"mousedown\", self.ontouchstart, false, true);\r\n self.bind(_doc, \"mouseup\", self.ontouchend, false, true);\r\n self.bind(_doc, \"mousemove\", self.ontouchmove, false, true);\r\n }\r\n\r\n if (opt.cursordragontouch || (!cap.cantouch && !opt.emulatetouch)) {\r\n\r\n self.rail.css({\r\n cursor: \"default\"\r\n });\r\n self.railh && self.railh.css({\r\n cursor: \"default\"\r\n });\r\n\r\n self.jqbind(self.rail, \"mouseenter\", function () {\r\n if (!self.ispage && !self.win.is(\":visible\")) return false;\r\n if (self.canshowonmouseevent) self.showCursor();\r\n self.rail.active = true;\r\n });\r\n self.jqbind(self.rail, \"mouseleave\", function () {\r\n self.rail.active = false;\r\n if (!self.rail.drag) self.hideCursor();\r\n });\r\n\r\n if (opt.sensitiverail) {\r\n self.bind(self.rail, \"click\", function (e) {\r\n self.doRailClick(e, false, false);\r\n });\r\n self.bind(self.rail, \"dblclick\", function (e) {\r\n self.doRailClick(e, true, false);\r\n });\r\n self.bind(self.cursor, \"click\", function (e) {\r\n self.cancelEvent(e);\r\n });\r\n self.bind(self.cursor, \"dblclick\", function (e) {\r\n self.cancelEvent(e);\r\n });\r\n }\r\n\r\n if (self.railh) {\r\n self.jqbind(self.railh, \"mouseenter\", function () {\r\n if (!self.ispage && !self.win.is(\":visible\")) return false;\r\n if (self.canshowonmouseevent) self.showCursor();\r\n self.rail.active = true;\r\n });\r\n self.jqbind(self.railh, \"mouseleave\", function () {\r\n self.rail.active = false;\r\n if (!self.rail.drag) self.hideCursor();\r\n });\r\n\r\n if (opt.sensitiverail) {\r\n self.bind(self.railh, \"click\", function (e) {\r\n self.doRailClick(e, false, true);\r\n });\r\n self.bind(self.railh, \"dblclick\", function (e) {\r\n self.doRailClick(e, true, true);\r\n });\r\n self.bind(self.cursorh, \"click\", function (e) {\r\n self.cancelEvent(e);\r\n });\r\n self.bind(self.cursorh, \"dblclick\", function (e) {\r\n self.cancelEvent(e);\r\n });\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n if (opt.cursordragontouch && (this.istouchcapable || cap.cantouch)) {\r\n self.bind(self.cursor, \"touchstart\", self.ontouchstartCursor);\r\n self.bind(self.cursor, \"touchmove\", self.ontouchmoveCursor);\r\n self.bind(self.cursor, \"touchend\", self.ontouchendCursor);\r\n self.cursorh && self.bind(self.cursorh, \"touchstart\", function (e) {\r\n self.ontouchstartCursor(e, true);\r\n });\r\n self.cursorh && self.bind(self.cursorh, \"touchmove\", self.ontouchmoveCursor);\r\n self.cursorh && self.bind(self.cursorh, \"touchend\", self.ontouchendCursor);\r\n }\r\n\r\n if (!cap.cantouch && !opt.emulatetouch) {\r\n\r\n self.bind((cap.hasmousecapture) ? self.win : _doc, \"mouseup\", self.onmouseup);\r\n self.bind(_doc, \"mousemove\", self.onmousemove);\r\n if (self.onclick) self.bind(_doc, \"click\", self.onclick);\r\n\r\n self.bind(self.cursor, \"mousedown\", self.onmousedown);\r\n self.bind(self.cursor, \"mouseup\", self.onmouseup);\r\n\r\n if (self.railh) {\r\n self.bind(self.cursorh, \"mousedown\", function (e) {\r\n self.onmousedown(e, true);\r\n });\r\n self.bind(self.cursorh, \"mouseup\", self.onmouseup);\r\n }\r\n\r\n if (!self.ispage && opt.enablescrollonselection) {\r\n self.bind(self.win[0], \"mousedown\", self.onselectionstart);\r\n self.bind(_doc, \"mouseup\", self.onselectionend);\r\n self.bind(self.cursor, \"mouseup\", self.onselectionend);\r\n if (self.cursorh) self.bind(self.cursorh, \"mouseup\", self.onselectionend);\r\n self.bind(_doc, \"mousemove\", self.onselectiondrag);\r\n }\r\n\r\n if (self.zoom) {\r\n self.jqbind(self.zoom, \"mouseenter\", function () {\r\n if (self.canshowonmouseevent) self.showCursor();\r\n self.rail.active = true;\r\n });\r\n self.jqbind(self.zoom, \"mouseleave\", function () {\r\n self.rail.active = false;\r\n if (!self.rail.drag) self.hideCursor();\r\n });\r\n }\r\n\r\n } else {\r\n\r\n self.bind((cap.hasmousecapture) ? self.win : _doc, \"mouseup\", self.ontouchend);\r\n if (self.onclick) self.bind(_doc, \"click\", self.onclick);\r\n\r\n if (opt.cursordragontouch) {\r\n self.bind(self.cursor, \"mousedown\", self.onmousedown);\r\n self.bind(self.cursor, \"mouseup\", self.onmouseup);\r\n self.cursorh && self.bind(self.cursorh, \"mousedown\", function (e) {\r\n self.onmousedown(e, true);\r\n });\r\n self.cursorh && self.bind(self.cursorh, \"mouseup\", self.onmouseup);\r\n } else {\r\n self.bind(self.rail, \"mousedown\", function (e) { e.preventDefault(); }); // prevent text selection \r\n self.railh && self.bind(self.railh, \"mousedown\", function (e) { e.preventDefault(); });\r\n }\r\n\r\n }\r\n\r\n\r\n if (opt.enablemousewheel) {\r\n if (!self.isiframe) self.mousewheel((cap.isie && self.ispage) ? _doc : self.win, self.onmousewheel);\r\n self.mousewheel(self.rail, self.onmousewheel);\r\n if (self.railh) self.mousewheel(self.railh, self.onmousewheelhr);\r\n }\r\n\r\n if (!self.ispage && !cap.cantouch && !(/HTML|^BODY/.test(self.win[0].nodeName))) {\r\n if (!self.win.attr(\"tabindex\")) self.win.attr({\r\n \"tabindex\": ++tabindexcounter\r\n });\r\n\r\n self.bind(self.win, \"focus\", function (e) { // better using native events\r\n domfocus = (self.getTarget(e)).id || self.getTarget(e) || false;\r\n self.hasfocus = true;\r\n if (self.canshowonmouseevent) self.noticeCursor();\r\n });\r\n self.bind(self.win, \"blur\", function (e) { // *\r\n domfocus = false;\r\n self.hasfocus = false;\r\n });\r\n\r\n self.bind(self.win, \"mouseenter\", function (e) { // *\r\n mousefocus = (self.getTarget(e)).id || self.getTarget(e) || false;\r\n self.hasmousefocus = true;\r\n if (self.canshowonmouseevent) self.noticeCursor();\r\n });\r\n self.bind(self.win, \"mouseleave\", function (e) { // * \r\n mousefocus = false;\r\n self.hasmousefocus = false;\r\n if (!self.rail.drag) self.hideCursor();\r\n });\r\n\r\n }\r\n\r\n\r\n //Thanks to http://www.quirksmode.org !!\r\n self.onkeypress = function (e) {\r\n if (self.railslocked && self.page.maxh === 0) return true;\r\n\r\n e = e || _win.event;\r\n var tg = self.getTarget(e);\r\n if (tg && /INPUT|TEXTAREA|SELECT|OPTION/.test(tg.nodeName)) {\r\n var tp = tg.getAttribute('type') || tg.type || false;\r\n if ((!tp) || !(/submit|button|cancel/i.tp)) return true;\r\n }\r\n\r\n if ($(tg).attr('contenteditable')) return true;\r\n\r\n if (self.hasfocus || (self.hasmousefocus && !domfocus) || (self.ispage && !domfocus && !mousefocus)) {\r\n var key = e.keyCode;\r\n\r\n if (self.railslocked && key != 27) return self.cancelEvent(e);\r\n\r\n var ctrl = e.ctrlKey || false;\r\n var shift = e.shiftKey || false;\r\n\r\n var ret = false;\r\n switch (key) {\r\n case 38:\r\n case 63233: //safari\r\n self.doScrollBy(24 * 3);\r\n ret = true;\r\n break;\r\n case 40:\r\n case 63235: //safari\r\n self.doScrollBy(-24 * 3);\r\n ret = true;\r\n break;\r\n case 37:\r\n case 63232: //safari\r\n if (self.railh) {\r\n (ctrl) ? self.doScrollLeft(0) : self.doScrollLeftBy(24 * 3);\r\n ret = true;\r\n }\r\n break;\r\n case 39:\r\n case 63234: //safari\r\n if (self.railh) {\r\n (ctrl) ? self.doScrollLeft(self.page.maxw) : self.doScrollLeftBy(-24 * 3);\r\n ret = true;\r\n }\r\n break;\r\n case 33:\r\n case 63276: // safari\r\n self.doScrollBy(self.view.h);\r\n ret = true;\r\n break;\r\n case 34:\r\n case 63277: // safari\r\n self.doScrollBy(-self.view.h);\r\n ret = true;\r\n break;\r\n case 36:\r\n case 63273: // safari \r\n (self.railh && ctrl) ? self.doScrollPos(0, 0) : self.doScrollTo(0);\r\n ret = true;\r\n break;\r\n case 35:\r\n case 63275: // safari\r\n (self.railh && ctrl) ? self.doScrollPos(self.page.maxw, self.page.maxh) : self.doScrollTo(self.page.maxh);\r\n ret = true;\r\n break;\r\n case 32:\r\n if (opt.spacebarenabled) {\r\n (shift) ? self.doScrollBy(self.view.h) : self.doScrollBy(-self.view.h);\r\n ret = true;\r\n }\r\n break;\r\n case 27: // ESC\r\n if (self.zoomactive) {\r\n self.doZoom();\r\n ret = true;\r\n }\r\n break;\r\n }\r\n if (ret) return self.cancelEvent(e);\r\n }\r\n };\r\n\r\n if (opt.enablekeyboard) self.bind(_doc, (cap.isopera && !cap.isopera12) ? \"keypress\" : \"keydown\", self.onkeypress);\r\n\r\n self.bind(_doc, \"keydown\", function (e) {\r\n var ctrl = e.ctrlKey || false;\r\n if (ctrl) self.wheelprevented = true;\r\n });\r\n self.bind(_doc, \"keyup\", function (e) {\r\n var ctrl = e.ctrlKey || false;\r\n if (!ctrl) self.wheelprevented = false;\r\n });\r\n self.bind(_win, \"blur\", function (e) {\r\n self.wheelprevented = false;\r\n });\r\n\r\n self.bind(_win, 'resize', self.onscreenresize);\r\n self.bind(_win, 'orientationchange', self.onscreenresize);\r\n\r\n self.bind(_win, \"load\", self.lazyResize);\r\n\r\n if (cap.ischrome && !self.ispage && !self.haswrapper) { //chrome void scrollbar bug - it persists in version 26\r\n var tmp = self.win.attr(\"style\");\r\n var ww = parseFloat(self.win.css(\"width\")) + 1;\r\n self.win.css('width', ww);\r\n self.synched(\"chromefix\", function () {\r\n self.win.attr(\"style\", tmp);\r\n });\r\n }\r\n\r\n\r\n // Trying a cross-browser implementation - good luck!\r\n\r\n self.onAttributeChange = function (e) {\r\n self.lazyResize(self.isieold ? 250 : 30);\r\n };\r\n\r\n if (opt.enableobserver) {\r\n\r\n if ((!self.isie11) && (ClsMutationObserver !== false)) { // IE11 crashes #568\r\n self.observerbody = new ClsMutationObserver(function (mutations) {\r\n mutations.forEach(function (mut) {\r\n if (mut.type == \"attributes\") {\r\n return ($body.hasClass(\"modal-open\") && $body.hasClass(\"modal-dialog\") && !$.contains($('.modal-dialog')[0], self.doc[0])) ? self.hide() : self.show(); // Support for Bootstrap modal; Added check if the nice scroll element is inside a modal\r\n }\r\n });\r\n if (self.me.clientWidth != self.page.width || self.me.clientHeight != self.page.height) return self.lazyResize(30);\r\n });\r\n self.observerbody.observe(_doc.body, {\r\n childList: true,\r\n subtree: true,\r\n characterData: false,\r\n attributes: true,\r\n attributeFilter: ['class']\r\n });\r\n }\r\n\r\n if (!self.ispage && !self.haswrapper) {\r\n // redesigned MutationObserver for Chrome18+/Firefox14+/iOS6+ with support for: remove div, add/remove content\r\n if (ClsMutationObserver !== false) {\r\n self.observer = new ClsMutationObserver(function (mutations) {\r\n mutations.forEach(self.onAttributeChange);\r\n });\r\n self.observer.observe(self.win[0], {\r\n childList: true,\r\n characterData: false,\r\n attributes: true,\r\n subtree: false\r\n });\r\n self.observerremover = new ClsMutationObserver(function (mutations) {\r\n mutations.forEach(function (mo) {\r\n if (mo.removedNodes.length > 0) {\r\n for (var dd in mo.removedNodes) {\r\n if (!!self && (mo.removedNodes[dd] == self.win[0])) return self.remove();\r\n }\r\n }\r\n });\r\n });\r\n self.observerremover.observe(self.win[0].parentNode, {\r\n childList: true,\r\n characterData: false,\r\n attributes: false,\r\n subtree: false\r\n });\r\n } else {\r\n self.bind(self.win, (cap.isie && !cap.isie9) ? \"propertychange\" : \"DOMAttrModified\", self.onAttributeChange);\r\n if (cap.isie9) self.win[0].attachEvent(\"onpropertychange\", self.onAttributeChange); //IE9 DOMAttrModified bug\r\n self.bind(self.win, \"DOMNodeRemoved\", function (e) {\r\n if (e.target == self.win[0]) self.remove();\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n //\r\n\r\n if (!self.ispage && opt.boxzoom) self.bind(_win, \"resize\", self.resizeZoom);\r\n if (self.istextarea) {\r\n self.bind(self.win, \"keydown\", self.lazyResize);\r\n self.bind(self.win, \"mouseup\", self.lazyResize);\r\n }\r\n\r\n self.lazyResize(30);\r\n\r\n }\r\n\r\n if (this.doc[0].nodeName == 'IFRAME') {\r\n var oniframeload = function () {\r\n self.iframexd = false;\r\n var doc;\r\n try {\r\n doc = 'contentDocument' in this ? this.contentDocument : this.contentWindow._doc;\r\n var a = doc.domain;\r\n } catch (e) {\r\n self.iframexd = true;\r\n doc = false;\r\n }\r\n\r\n if (self.iframexd) {\r\n if (\"console\" in _win) console.log('NiceScroll error: policy restriced iframe');\r\n return true; //cross-domain - I can't manage this \r\n }\r\n\r\n self.forcescreen = true;\r\n\r\n if (self.isiframe) {\r\n self.iframe = {\r\n \"doc\": $(doc),\r\n \"html\": self.doc.contents().find('html')[0],\r\n \"body\": self.doc.contents().find('body')[0]\r\n };\r\n self.getContentSize = function () {\r\n return {\r\n w: Math.max(self.iframe.html.scrollWidth, self.iframe.body.scrollWidth),\r\n h: Math.max(self.iframe.html.scrollHeight, self.iframe.body.scrollHeight)\r\n };\r\n };\r\n self.docscroll = $(self.iframe.body);\r\n }\r\n\r\n if (!cap.isios && opt.iframeautoresize && !self.isiframe) {\r\n self.win.scrollTop(0); // reset position\r\n self.doc.height(\"\"); //reset height to fix browser bug\r\n var hh = Math.max(doc.getElementsByTagName('html')[0].scrollHeight, doc.body.scrollHeight);\r\n self.doc.height(hh);\r\n }\r\n self.lazyResize(30);\r\n\r\n self.css($(self.iframe.body), _scrollyhidden);\r\n\r\n if (cap.isios && self.haswrapper) {\r\n self.css($(doc.body), {\r\n '-webkit-transform': 'translate3d(0,0,0)'\r\n }); // avoid iFrame content clipping - thanks to http://blog.derraab.com/2012/04/02/avoid-iframe-content-clipping-with-css-transform-on-ios/\r\n }\r\n\r\n if ('contentWindow' in this) {\r\n self.bind(this.contentWindow, \"scroll\", self.onscroll); //IE8 & minor\r\n } else {\r\n self.bind(doc, \"scroll\", self.onscroll);\r\n }\r\n\r\n if (opt.enablemousewheel) {\r\n self.mousewheel(doc, self.onmousewheel);\r\n }\r\n\r\n if (opt.enablekeyboard) self.bind(doc, (cap.isopera) ? \"keypress\" : \"keydown\", self.onkeypress);\r\n\r\n if (cap.cantouch) {\r\n self.bind(doc, \"touchstart\", self.ontouchstart);\r\n self.bind(doc, \"touchmove\", self.ontouchmove);\r\n }\r\n else if (opt.emulatetouch) {\r\n self.bind(doc, \"mousedown\", self.ontouchstart);\r\n self.bind(doc, \"mousemove\", function (e) {\r\n return self.ontouchmove(e, true);\r\n });\r\n if (opt.grabcursorenabled && cap.cursorgrabvalue) self.css($(doc.body), {\r\n 'cursor': cap.cursorgrabvalue\r\n });\r\n }\r\n\r\n self.bind(doc, \"mouseup\", self.ontouchend);\r\n\r\n if (self.zoom) {\r\n if (opt.dblclickzoom) self.bind(doc, 'dblclick', self.doZoom);\r\n if (self.ongesturezoom) self.bind(doc, \"gestureend\", self.ongesturezoom);\r\n }\r\n };\r\n\r\n if (this.doc[0].readyState && this.doc[0].readyState === \"complete\") {\r\n setTimeout(function () {\r\n oniframeload.call(self.doc[0], false);\r\n }, 500);\r\n }\r\n self.bind(this.doc, \"load\", oniframeload);\r\n\r\n }\r\n\r\n };\r\n\r\n this.showCursor = function (py, px) {\r\n if (self.cursortimeout) {\r\n clearTimeout(self.cursortimeout);\r\n self.cursortimeout = 0;\r\n }\r\n if (!self.rail) return;\r\n if (self.autohidedom) {\r\n self.autohidedom.stop().css({\r\n opacity: opt.cursoropacitymax\r\n });\r\n self.cursoractive = true;\r\n }\r\n\r\n if (!self.rail.drag || self.rail.drag.pt != 1) {\r\n if (py !== undefined && py !== false) {\r\n self.scroll.y = (py / self.scrollratio.y) | 0;\r\n }\r\n if (px !== undefined) {\r\n self.scroll.x = (px / self.scrollratio.x) | 0;\r\n }\r\n }\r\n\r\n self.cursor.css({\r\n height: self.cursorheight,\r\n top: self.scroll.y\r\n });\r\n if (self.cursorh) {\r\n var lx = (self.hasreversehr) ? self.scrollvaluemaxw - self.scroll.x : self.scroll.x;\r\n self.cursorh.css({\r\n width: self.cursorwidth,\r\n left: (!self.rail.align && self.rail.visibility) ? lx + self.rail.width : lx\r\n });\r\n self.cursoractive = true;\r\n }\r\n\r\n if (self.zoom) self.zoom.stop().css({\r\n opacity: opt.cursoropacitymax\r\n });\r\n };\r\n\r\n this.hideCursor = function (tm) {\r\n if (self.cursortimeout) return;\r\n if (!self.rail) return;\r\n if (!self.autohidedom) return;\r\n\r\n if (self.hasmousefocus && opt.autohidemode === \"leave\") return;\r\n self.cursortimeout = setTimeout(function () {\r\n if (!self.rail.active || !self.showonmouseevent) {\r\n self.autohidedom.stop().animate({\r\n opacity: opt.cursoropacitymin\r\n });\r\n if (self.zoom) self.zoom.stop().animate({\r\n opacity: opt.cursoropacitymin\r\n });\r\n self.cursoractive = false;\r\n }\r\n self.cursortimeout = 0;\r\n }, tm || opt.hidecursordelay);\r\n };\r\n\r\n this.noticeCursor = function (tm, py, px) {\r\n self.showCursor(py, px);\r\n if (!self.rail.active) self.hideCursor(tm);\r\n };\r\n\r\n this.getContentSize =\r\n (self.ispage) ?\r\n function () {\r\n return {\r\n w: Math.max(_doc.body.scrollWidth, _doc.documentElement.scrollWidth),\r\n h: Math.max(_doc.body.scrollHeight, _doc.documentElement.scrollHeight)\r\n };\r\n } : (self.haswrapper) ?\r\n function () {\r\n return {\r\n w: self.doc[0].offsetWidth,\r\n h: self.doc[0].offsetHeight\r\n };\r\n } : function () {\r\n return {\r\n w: self.docscroll[0].scrollWidth,\r\n h: self.docscroll[0].scrollHeight\r\n };\r\n };\r\n\r\n this.onResize = function (e, page) {\r\n\r\n if (!self || !self.win) return false;\r\n\r\n var premaxh = self.page.maxh,\r\n premaxw = self.page.maxw,\r\n previewh = self.view.h,\r\n previeww = self.view.w;\r\n\r\n self.view = {\r\n w: (self.ispage) ? self.win.width() : self.win[0].clientWidth,\r\n h: (self.ispage) ? self.win.height() : self.win[0].clientHeight\r\n };\r\n\r\n self.page = (page) ? page : self.getContentSize();\r\n\r\n self.page.maxh = Math.max(0, self.page.h - self.view.h);\r\n self.page.maxw = Math.max(0, self.page.w - self.view.w);\r\n\r\n if ((self.page.maxh == premaxh) && (self.page.maxw == premaxw) && (self.view.w == previeww) && (self.view.h == previewh)) {\r\n // test position \r\n if (!self.ispage) {\r\n var pos = self.win.offset();\r\n if (self.lastposition) {\r\n var lst = self.lastposition;\r\n if ((lst.top == pos.top) && (lst.left == pos.left)) return self; //nothing to do \r\n }\r\n self.lastposition = pos;\r\n } else {\r\n return self; //nothing to do\r\n }\r\n }\r\n\r\n if (self.page.maxh === 0) {\r\n self.hideRail();\r\n self.scrollvaluemax = 0;\r\n self.scroll.y = 0;\r\n self.scrollratio.y = 0;\r\n self.cursorheight = 0;\r\n self.setScrollTop(0);\r\n if (self.rail) self.rail.scrollable = false;\r\n } else {\r\n self.page.maxh -= (opt.railpadding.top + opt.railpadding.bottom);\r\n self.rail.scrollable = true;\r\n }\r\n\r\n if (self.page.maxw === 0) {\r\n self.hideRailHr();\r\n self.scrollvaluemaxw = 0;\r\n self.scroll.x = 0;\r\n self.scrollratio.x = 0;\r\n self.cursorwidth = 0;\r\n self.setScrollLeft(0);\r\n if (self.railh) {\r\n self.railh.scrollable = false;\r\n }\r\n } else {\r\n self.page.maxw -= (opt.railpadding.left + opt.railpadding.right);\r\n if (self.railh) self.railh.scrollable = (opt.horizrailenabled);\r\n }\r\n\r\n self.railslocked = (self.locked) || ((self.page.maxh === 0) && (self.page.maxw === 0));\r\n if (self.railslocked) {\r\n if (!self.ispage) self.updateScrollBar(self.view);\r\n return false;\r\n }\r\n\r\n if (!self.hidden && !self.visibility) {\r\n self.showRail().showRailHr();\r\n }\r\n else if (self.railh && (!self.hidden && !self.railh.visibility)) self.showRailHr();\r\n\r\n if (self.istextarea && self.win.css('resize') && self.win.css('resize') != 'none') self.view.h -= 20;\r\n\r\n self.cursorheight = Math.min(self.view.h, Math.round(self.view.h * (self.view.h / self.page.h)));\r\n self.cursorheight = (opt.cursorfixedheight) ? opt.cursorfixedheight : Math.max(opt.cursorminheight, self.cursorheight);\r\n\r\n self.cursorwidth = Math.min(self.view.w, Math.round(self.view.w * (self.view.w / self.page.w)));\r\n self.cursorwidth = (opt.cursorfixedheight) ? opt.cursorfixedheight : Math.max(opt.cursorminheight, self.cursorwidth);\r\n\r\n self.scrollvaluemax = self.view.h - self.cursorheight - (opt.railpadding.top + opt.railpadding.bottom);\r\n if (!self.hasborderbox) self.scrollvaluemax -= self.cursor[0].offsetHeight - self.cursor[0].clientHeight;\r\n\r\n if (self.railh) {\r\n self.railh.width = (self.page.maxh > 0) ? (self.view.w - self.rail.width) : self.view.w;\r\n self.scrollvaluemaxw = self.railh.width - self.cursorwidth - (opt.railpadding.left + opt.railpadding.right);\r\n }\r\n\r\n if (!self.ispage) self.updateScrollBar(self.view);\r\n\r\n self.scrollratio = {\r\n x: (self.page.maxw / self.scrollvaluemaxw),\r\n y: (self.page.maxh / self.scrollvaluemax)\r\n };\r\n\r\n var sy = self.getScrollTop();\r\n if (sy > self.page.maxh) {\r\n self.doScrollTop(self.page.maxh);\r\n } else {\r\n self.scroll.y = (self.getScrollTop() / self.scrollratio.y) | 0;\r\n self.scroll.x = (self.getScrollLeft() / self.scrollratio.x) | 0;\r\n if (self.cursoractive) self.noticeCursor();\r\n }\r\n\r\n if (self.scroll.y && (self.getScrollTop() === 0)) self.doScrollTo((self.scroll.y * self.scrollratio.y)|0);\r\n\r\n return self;\r\n };\r\n\r\n this.resize = self.onResize;\r\n\r\n var hlazyresize = 0;\r\n\r\n this.onscreenresize = function(e) {\r\n clearTimeout(hlazyresize);\r\n\r\n var hiderails = (!self.ispage && !self.haswrapper);\r\n if (hiderails) self.hideRails();\r\n\r\n hlazyresize = setTimeout(function () {\r\n if (self) {\r\n if (hiderails) self.showRails();\r\n self.resize();\r\n }\r\n hlazyresize=0;\r\n }, 120);\r\n };\r\n\r\n this.lazyResize = function (tm) { // event debounce\r\n\r\n clearTimeout(hlazyresize);\r\n\r\n hlazyresize = setTimeout(function () {\r\n if (self) self.resize();\r\n hlazyresize=0;\r\n }, tm||240);\r\n\r\n return self;\r\n\r\n };\r\n\r\n // derived by MDN https://developer.mozilla.org/en-US/docs/DOM/Mozilla_event_reference/wheel\r\n function _modernWheelEvent(dom, name, fn, bubble) {\r\n self._bind(dom, name, function (e) {\r\n e = e || _win.event;\r\n var event = {\r\n original: e,\r\n target: e.target || e.srcElement,\r\n type: \"wheel\",\r\n deltaMode: e.type == \"MozMousePixelScroll\" ? 0 : 1,\r\n deltaX: 0,\r\n deltaZ: 0,\r\n preventDefault: function () {\r\n e.preventDefault ? e.preventDefault() : e.returnValue = false;\r\n return false;\r\n },\r\n stopImmediatePropagation: function () {\r\n (e.stopImmediatePropagation) ? e.stopImmediatePropagation() : e.cancelBubble = true;\r\n }\r\n };\r\n\r\n if (name == \"mousewheel\") {\r\n e.wheelDeltaX && (event.deltaX = -1 / 40 * e.wheelDeltaX);\r\n e.wheelDeltaY && (event.deltaY = -1 / 40 * e.wheelDeltaY);\r\n !event.deltaY && !event.deltaX && (event.deltaY = -1 / 40 * e.wheelDelta);\r\n } else {\r\n event.deltaY = e.detail;\r\n }\r\n\r\n return fn.call(dom, event);\r\n }, bubble);\r\n }\r\n\r\n\r\n\r\n this.jqbind = function (dom, name, fn) { // use jquery bind for non-native events (mouseenter/mouseleave)\r\n self.events.push({\r\n e: dom,\r\n n: name,\r\n f: fn,\r\n q: true\r\n });\r\n $(dom).on(name, fn);\r\n };\r\n\r\n this.mousewheel = function (dom, fn, bubble) { // bind mousewheel\r\n var el = (\"jquery\" in dom) ? dom[0] : dom;\r\n if (\"onwheel\" in _doc.createElement(\"div\")) { // Modern browsers support \"wheel\"\r\n self._bind(el, \"wheel\", fn, bubble || false);\r\n } else {\r\n var wname = (_doc.onmousewheel !== undefined) ? \"mousewheel\" : \"DOMMouseScroll\"; // older Webkit+IE support or older Firefox \r\n _modernWheelEvent(el, wname, fn, bubble || false);\r\n if (wname == \"DOMMouseScroll\") _modernWheelEvent(el, \"MozMousePixelScroll\", fn, bubble || false); // Firefox legacy\r\n }\r\n };\r\n\r\n var passiveSupported = false;\r\n\r\n if (cap.haseventlistener) { // W3C standard event model\r\n\r\n // thanks to https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\r\n try { var options = Object.defineProperty({}, \"passive\", { get: function () { passiveSupported = !0; } }); _win.addEventListener(\"test\", null, options); } catch (err) { }\r\n\r\n this.stopPropagation = function (e) {\r\n if (!e) return false;\r\n e = (e.original) ? e.original : e;\r\n e.stopPropagation();\r\n return false;\r\n };\r\n\r\n this.cancelEvent = function(e) {\r\n if (e.cancelable) e.preventDefault();\r\n e.stopImmediatePropagation();\r\n if (e.preventManipulation) e.preventManipulation(); // IE10+\r\n return false;\r\n }; \r\n\r\n } else {\r\n\r\n // inspired from https://gist.github.com/jonathantneal/2415137 \r\n\r\n Event.prototype.preventDefault = function () {\r\n this.returnValue = false;\r\n };\r\n\r\n Event.prototype.stopPropagation = function () {\r\n this.cancelBubble = true;\r\n };\r\n\r\n _win.constructor.prototype.addEventListener = _doc.constructor.prototype.addEventListener = Element.prototype.addEventListener = function (type, listener, useCapture) {\r\n this.attachEvent(\"on\" + type, listener);\r\n };\r\n _win.constructor.prototype.removeEventListener = _doc.constructor.prototype.removeEventListener = Element.prototype.removeEventListener = function (type, listener, useCapture) {\r\n this.detachEvent(\"on\" + type, listener);\r\n };\r\n\r\n // Thanks to http://www.switchonthecode.com !!\r\n this.cancelEvent = function (e) {\r\n e = e || _win.event;\r\n if (e) { \r\n e.cancelBubble = true;\r\n e.cancel = true;\r\n e.returnValue = false;\r\n } \r\n return false;\r\n };\r\n\r\n this.stopPropagation = function (e) {\r\n e = e || _win.event;\r\n if (e) e.cancelBubble = true;\r\n return false;\r\n };\r\n\r\n }\r\n\r\n this.delegate = function (dom, name, fn, bubble, active) {\r\n\r\n var de = delegatevents[name] || false;\r\n\r\n if (!de) {\r\n\r\n de = {\r\n a: [],\r\n l: [],\r\n f: function (e) {\r\n var lst = de.l, l = lst.length - 1;\r\n var r = false;\r\n for (var a = l; a >= 0; a--) {\r\n r = lst[a].call(e.target, e);\r\n if (r === false) return false;\r\n }\r\n return r;\r\n }\r\n };\r\n\r\n self.bind(dom, name, de.f, bubble, active);\r\n\r\n delegatevents[name] = de;\r\n\r\n }\r\n\r\n if (self.ispage) {\r\n de.a = [self.id].concat(de.a);\r\n de.l = [fn].concat(de.l);\r\n } else {\r\n de.a.push(self.id);\r\n de.l.push(fn); \r\n }\r\n\r\n };\r\n\r\n this.undelegate = function (dom, name, fn, bubble, active) {\r\n var de = delegatevents[name]||false;\r\n if (de) {\r\n for (var a=0,l=de.l.length;a 0) return dd;\r\n dom = (dom.parentNode) ? dom.parentNode : false;\r\n }\r\n return false;\r\n };\r\n\r\n this.triggerScrollStart = function (cx, cy, rx, ry, ms) {\r\n\r\n if (self.onscrollstart) {\r\n var info = {\r\n type: \"scrollstart\",\r\n current: {\r\n x: cx,\r\n y: cy\r\n },\r\n request: {\r\n x: rx,\r\n y: ry\r\n },\r\n end: {\r\n x: self.newscrollx,\r\n y: self.newscrolly\r\n },\r\n speed: ms\r\n };\r\n self.onscrollstart.call(self, info);\r\n }\r\n\r\n };\r\n\r\n this.triggerScrollEnd = function () {\r\n if (self.onscrollend) {\r\n\r\n var px = self.getScrollLeft();\r\n var py = self.getScrollTop();\r\n\r\n var info = {\r\n type: \"scrollend\",\r\n current: {\r\n x: px,\r\n y: py\r\n },\r\n end: {\r\n x: px,\r\n y: py\r\n }\r\n };\r\n\r\n self.onscrollend.call(self, info);\r\n\r\n }\r\n\r\n };\r\n\r\n var scrolldiry = 0, scrolldirx = 0, scrolltmr = 0, scrollspd = 1;\r\n\r\n function doScrollRelative(px, py, chkscroll, iswheel) {\r\n\r\n if (!self.scrollrunning) {\r\n self.newscrolly = self.getScrollTop();\r\n self.newscrollx = self.getScrollLeft();\r\n scrolltmr = now();\r\n }\r\n\r\n var gap = (now() - scrolltmr);\r\n scrolltmr = now();\r\n\r\n if (gap > 350) {\r\n scrollspd = 1;\r\n } else {\r\n scrollspd += (2 - scrollspd) / 10;\r\n }\r\n\r\n px = px * scrollspd | 0;\r\n py = py * scrollspd | 0;\r\n\r\n if (px) {\r\n\r\n if (iswheel) { // mouse-only\r\n if (px < 0) { // fix apple magic mouse swipe back/forward\r\n if (self.getScrollLeft() >= self.page.maxw) return true;\r\n } else {\r\n if (self.getScrollLeft() <= 0) return true;\r\n }\r\n }\r\n\r\n var dx = px > 0 ? 1 : -1;\r\n\r\n if (scrolldirx !== dx) {\r\n if (self.scrollmom) self.scrollmom.stop();\r\n self.newscrollx = self.getScrollLeft();\r\n scrolldirx = dx;\r\n }\r\n\r\n self.lastdeltax -= px;\r\n\r\n }\r\n\r\n if (py) {\r\n\r\n var chk = (function () {\r\n var top = self.getScrollTop();\r\n if (py < 0) {\r\n if (top >= self.page.maxh) return true;\r\n } else {\r\n if (top <= 0) return true;\r\n }\r\n })();\r\n\r\n if (chk) {\r\n if (opt.nativeparentscrolling && chkscroll && !self.ispage && !self.zoomactive) return true;\r\n var ny = self.view.h >> 1;\r\n if (self.newscrolly < -ny) { self.newscrolly = -ny; py = -1; }\r\n else if (self.newscrolly > self.page.maxh + ny) { self.newscrolly = self.page.maxh + ny; py = 1; }\r\n else py = 0;\r\n }\r\n\r\n var dy = py > 0 ? 1 : -1;\r\n\r\n if (scrolldiry !== dy) {\r\n if (self.scrollmom) self.scrollmom.stop();\r\n self.newscrolly = self.getScrollTop();\r\n scrolldiry = dy;\r\n }\r\n\r\n self.lastdeltay -= py;\r\n\r\n }\r\n\r\n if (py || px) {\r\n self.synched(\"relativexy\", function () {\r\n\r\n var dty = self.lastdeltay + self.newscrolly;\r\n self.lastdeltay = 0;\r\n\r\n var dtx = self.lastdeltax + self.newscrollx;\r\n self.lastdeltax = 0;\r\n\r\n if (!self.rail.drag) self.doScrollPos(dtx, dty);\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n var hasparentscrollingphase = false;\r\n\r\n function execScrollWheel(e, hr, chkscroll) {\r\n var px, py;\r\n\r\n if (!chkscroll && hasparentscrollingphase) return true;\r\n\r\n if (e.deltaMode === 0) { // PIXEL\r\n px = -(e.deltaX * (opt.mousescrollstep / (18 * 3))) | 0;\r\n py = -(e.deltaY * (opt.mousescrollstep / (18 * 3))) | 0;\r\n } else if (e.deltaMode === 1) { // LINE\r\n px = -(e.deltaX * opt.mousescrollstep * 50 / 80) | 0;\r\n py = -(e.deltaY * opt.mousescrollstep * 50 / 80) | 0;\r\n }\r\n\r\n if (hr && opt.oneaxismousemode && (px === 0) && py) { // classic vertical-only mousewheel + browser with x/y support \r\n px = py;\r\n py = 0;\r\n\r\n if (chkscroll) {\r\n var hrend = (px < 0) ? (self.getScrollLeft() >= self.page.maxw) : (self.getScrollLeft() <= 0);\r\n if (hrend) { // preserve vertical scrolling\r\n py = px;\r\n px = 0;\r\n }\r\n }\r\n\r\n }\r\n\r\n // invert horizontal direction for rtl mode\r\n if (self.isrtlmode) px = -px;\r\n\r\n var chk = doScrollRelative(px, py, chkscroll, true);\r\n\r\n if (chk) {\r\n if (chkscroll) hasparentscrollingphase = true;\r\n } else {\r\n hasparentscrollingphase = false;\r\n e.stopImmediatePropagation();\r\n return e.preventDefault();\r\n }\r\n\r\n }\r\n\r\n this.onmousewheel = function (e) {\r\n if (self.wheelprevented||self.locked) return false;\r\n if (self.railslocked) {\r\n self.debounced(\"checkunlock\", self.resize, 250);\r\n return false;\r\n }\r\n if (self.rail.drag) return self.cancelEvent(e);\r\n\r\n if (opt.oneaxismousemode === \"auto\" && e.deltaX !== 0) opt.oneaxismousemode = false; // check two-axis mouse support (not very elegant)\r\n\r\n if (opt.oneaxismousemode && e.deltaX === 0) {\r\n if (!self.rail.scrollable) {\r\n if (self.railh && self.railh.scrollable) {\r\n return self.onmousewheelhr(e);\r\n } else {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n var nw = now();\r\n var chk = false;\r\n if (opt.preservenativescrolling && ((self.checkarea + 600) < nw)) {\r\n self.nativescrollingarea = self.isScrollable(e);\r\n chk = true;\r\n }\r\n self.checkarea = nw;\r\n if (self.nativescrollingarea) return true; // this isn't my business\r\n var ret = execScrollWheel(e, false, chk);\r\n if (ret) self.checkarea = 0;\r\n return ret;\r\n };\r\n\r\n this.onmousewheelhr = function (e) {\r\n if (self.wheelprevented) return;\r\n if (self.railslocked || !self.railh.scrollable) return true;\r\n if (self.rail.drag) return self.cancelEvent(e);\r\n\r\n var nw = now();\r\n var chk = false;\r\n if (opt.preservenativescrolling && ((self.checkarea + 600) < nw)) {\r\n self.nativescrollingarea = self.isScrollable(e);\r\n chk = true;\r\n }\r\n self.checkarea = nw;\r\n if (self.nativescrollingarea) return true; // this is not my business\r\n if (self.railslocked) return self.cancelEvent(e);\r\n\r\n return execScrollWheel(e, true, chk);\r\n };\r\n\r\n this.stop = function () {\r\n self.cancelScroll();\r\n if (self.scrollmon) self.scrollmon.stop();\r\n self.cursorfreezed = false;\r\n self.scroll.y = Math.round(self.getScrollTop() * (1 / self.scrollratio.y));\r\n self.noticeCursor();\r\n return self;\r\n };\r\n\r\n this.getTransitionSpeed = function (dif) {\r\n\r\n return 80 + (dif / 72) * opt.scrollspeed |0;\r\n\r\n };\r\n\r\n if (!opt.smoothscroll) {\r\n this.doScrollLeft = function (x, spd) { //direct\r\n var y = self.getScrollTop();\r\n self.doScrollPos(x, y, spd);\r\n };\r\n this.doScrollTop = function (y, spd) { //direct\r\n var x = self.getScrollLeft();\r\n self.doScrollPos(x, y, spd);\r\n };\r\n this.doScrollPos = function (x, y, spd) { //direct\r\n var nx = (x > self.page.maxw) ? self.page.maxw : x;\r\n if (nx < 0) nx = 0;\r\n var ny = (y > self.page.maxh) ? self.page.maxh : y;\r\n if (ny < 0) ny = 0;\r\n self.synched('scroll', function () {\r\n self.setScrollTop(ny);\r\n self.setScrollLeft(nx);\r\n });\r\n };\r\n this.cancelScroll = function () { }; // direct\r\n\r\n } else if (self.ishwscroll && cap.hastransition && opt.usetransition && !!opt.smoothscroll) {\r\n\r\n var lasttransitionstyle = '';\r\n\r\n this.resetTransition = function () {\r\n lasttransitionstyle = '';\r\n self.doc.css(cap.prefixstyle + 'transition-duration', '0ms');\r\n };\r\n\r\n this.prepareTransition = function (dif, istime) {\r\n var ex = (istime) ? dif : self.getTransitionSpeed(dif);\r\n var trans = ex + 'ms';\r\n if (lasttransitionstyle !== trans) {\r\n lasttransitionstyle = trans;\r\n self.doc.css(cap.prefixstyle + 'transition-duration', trans);\r\n }\r\n return ex;\r\n };\r\n\r\n this.doScrollLeft = function (x, spd) { //trans\r\n var y = (self.scrollrunning) ? self.newscrolly : self.getScrollTop();\r\n self.doScrollPos(x, y, spd);\r\n };\r\n\r\n this.doScrollTop = function (y, spd) { //trans\r\n var x = (self.scrollrunning) ? self.newscrollx : self.getScrollLeft();\r\n self.doScrollPos(x, y, spd);\r\n };\r\n\r\n this.cursorupdate = {\r\n running: false,\r\n start: function () {\r\n var m = this;\r\n\r\n if (m.running) return;\r\n m.running = true;\r\n\r\n var loop = function () {\r\n if (m.running) setAnimationFrame(loop);\r\n self.showCursor(self.getScrollTop(), self.getScrollLeft());\r\n self.notifyScrollEvent(self.win[0]);\r\n };\r\n\r\n setAnimationFrame(loop);\r\n },\r\n stop: function () {\r\n this.running = false;\r\n }\r\n };\r\n\r\n this.doScrollPos = function (x, y, spd) { //trans\r\n\r\n var py = self.getScrollTop();\r\n var px = self.getScrollLeft();\r\n\r\n if (((self.newscrolly - py) * (y - py) < 0) || ((self.newscrollx - px) * (x - px) < 0)) self.cancelScroll(); //inverted movement detection \r\n\r\n if (!opt.bouncescroll) {\r\n if (y < 0) y = 0;\r\n else if (y > self.page.maxh) y = self.page.maxh;\r\n if (x < 0) x = 0;\r\n else if (x > self.page.maxw) x = self.page.maxw;\r\n } else {\r\n if (y < 0) y = y / 2 | 0;\r\n else if (y > self.page.maxh) y = self.page.maxh + (y - self.page.maxh) / 2 | 0;\r\n if (x < 0) x = x / 2 | 0;\r\n else if (x > self.page.maxw) x = self.page.maxw + (x - self.page.maxw) / 2 | 0;\r\n }\r\n\r\n if (self.scrollrunning && x == self.newscrollx && y == self.newscrolly) return false;\r\n\r\n self.newscrolly = y;\r\n self.newscrollx = x;\r\n\r\n var top = self.getScrollTop();\r\n var lft = self.getScrollLeft();\r\n\r\n var dst = {};\r\n dst.x = x - lft;\r\n dst.y = y - top;\r\n\r\n var dd = Math.sqrt((dst.x * dst.x) + (dst.y * dst.y)) | 0;\r\n\r\n var ms = self.prepareTransition(dd);\r\n\r\n if (!self.scrollrunning) {\r\n self.scrollrunning = true;\r\n self.triggerScrollStart(lft, top, x, y, ms);\r\n self.cursorupdate.start();\r\n }\r\n\r\n self.scrollendtrapped = true;\r\n\r\n if (!cap.transitionend) {\r\n if (self.scrollendtrapped) clearTimeout(self.scrollendtrapped);\r\n self.scrollendtrapped = setTimeout(self.onScrollTransitionEnd, ms); // simulate transitionend event\r\n }\r\n\r\n self.setScrollTop(self.newscrolly);\r\n self.setScrollLeft(self.newscrollx);\r\n\r\n };\r\n\r\n this.cancelScroll = function () {\r\n if (!self.scrollendtrapped) return true;\r\n var py = self.getScrollTop();\r\n var px = self.getScrollLeft();\r\n self.scrollrunning = false;\r\n if (!cap.transitionend) clearTimeout(cap.transitionend);\r\n self.scrollendtrapped = false;\r\n self.resetTransition();\r\n self.setScrollTop(py); // fire event onscroll\r\n if (self.railh) self.setScrollLeft(px);\r\n if (self.timerscroll && self.timerscroll.tm) clearInterval(self.timerscroll.tm);\r\n self.timerscroll = false;\r\n\r\n self.cursorfreezed = false;\r\n\r\n self.cursorupdate.stop();\r\n self.showCursor(py, px);\r\n return self;\r\n };\r\n\r\n this.onScrollTransitionEnd = function () {\r\n\r\n if (!self.scrollendtrapped) return;\r\n\r\n var py = self.getScrollTop();\r\n var px = self.getScrollLeft();\r\n\r\n if (py < 0) py = 0;\r\n else if (py > self.page.maxh) py = self.page.maxh;\r\n if (px < 0) px = 0;\r\n else if (px > self.page.maxw) px = self.page.maxw;\r\n if ((py != self.newscrolly) || (px != self.newscrollx)) return self.doScrollPos(px, py, opt.snapbackspeed);\r\n\r\n if (self.scrollrunning) self.triggerScrollEnd();\r\n self.scrollrunning = false;\r\n\r\n self.scrollendtrapped = false;\r\n self.resetTransition();\r\n self.timerscroll = false;\r\n self.setScrollTop(py); // fire event onscroll \r\n if (self.railh) self.setScrollLeft(px); // fire event onscroll left\r\n\r\n self.cursorupdate.stop();\r\n self.noticeCursor(false, py, px);\r\n\r\n self.cursorfreezed = false;\r\n\r\n };\r\n\r\n } else {\r\n\r\n this.doScrollLeft = function (x, spd) { //no-trans\r\n var y = (self.scrollrunning) ? self.newscrolly : self.getScrollTop();\r\n self.doScrollPos(x, y, spd);\r\n };\r\n\r\n this.doScrollTop = function (y, spd) { //no-trans\r\n var x = (self.scrollrunning) ? self.newscrollx : self.getScrollLeft();\r\n self.doScrollPos(x, y, spd);\r\n };\r\n\r\n this.doScrollPos = function (x, y, spd) { //no-trans\r\n\r\n var py = self.getScrollTop();\r\n var px = self.getScrollLeft();\r\n\r\n if (((self.newscrolly - py) * (y - py) < 0) || ((self.newscrollx - px) * (x - px) < 0)) self.cancelScroll(); //inverted movement detection\r\n\r\n var clipped = false;\r\n\r\n if (!self.bouncescroll || !self.rail.visibility) {\r\n if (y < 0) {\r\n y = 0;\r\n clipped = true;\r\n } else if (y > self.page.maxh) {\r\n y = self.page.maxh;\r\n clipped = true;\r\n }\r\n }\r\n if (!self.bouncescroll || !self.railh.visibility) {\r\n if (x < 0) {\r\n x = 0;\r\n clipped = true;\r\n } else if (x > self.page.maxw) {\r\n x = self.page.maxw;\r\n clipped = true;\r\n }\r\n }\r\n\r\n if (self.scrollrunning && (self.newscrolly === y) && (self.newscrollx === x)) return true;\r\n\r\n self.newscrolly = y;\r\n self.newscrollx = x;\r\n\r\n self.dst = {};\r\n self.dst.x = x - px;\r\n self.dst.y = y - py;\r\n self.dst.px = px;\r\n self.dst.py = py;\r\n\r\n var dd = Math.sqrt((self.dst.x * self.dst.x) + (self.dst.y * self.dst.y)) | 0;\r\n var ms = self.getTransitionSpeed(dd);\r\n\r\n self.bzscroll = {};\r\n\r\n var p3 = (clipped) ? 1 : 0.58;\r\n self.bzscroll.x = new BezierClass(px, self.newscrollx, ms, 0, 0, p3, 1);\r\n self.bzscroll.y = new BezierClass(py, self.newscrolly, ms, 0, 0, p3, 1);\r\n\r\n var loopid = now();\r\n\r\n var loop = function () {\r\n\r\n if (!self.scrollrunning) return;\r\n var x = self.bzscroll.y.getPos();\r\n\r\n self.setScrollLeft(self.bzscroll.x.getNow());\r\n self.setScrollTop(self.bzscroll.y.getNow());\r\n\r\n if (x <= 1) {\r\n self.timer = setAnimationFrame(loop);\r\n } else {\r\n self.scrollrunning = false;\r\n self.timer = 0;\r\n self.triggerScrollEnd();\r\n }\r\n\r\n };\r\n\r\n if (!self.scrollrunning) {\r\n self.triggerScrollStart(px, py, x, y, ms);\r\n self.scrollrunning = true;\r\n self.timer = setAnimationFrame(loop);\r\n }\r\n\r\n };\r\n\r\n this.cancelScroll = function () { \r\n if (self.timer) clearAnimationFrame(self.timer);\r\n self.timer = 0;\r\n self.bzscroll = false;\r\n self.scrollrunning = false;\r\n return self;\r\n };\r\n\r\n }\r\n\r\n this.doScrollBy = function (stp, relative) {\r\n doScrollRelative(0, stp);\r\n };\r\n\r\n this.doScrollLeftBy = function (stp, relative) {\r\n doScrollRelative(stp, 0);\r\n };\r\n\r\n this.doScrollTo = function (pos, relative) {\r\n var ny = (relative) ? Math.round(pos * self.scrollratio.y) : pos;\r\n if (ny < 0) ny = 0;\r\n else if (ny > self.page.maxh) ny = self.page.maxh;\r\n self.cursorfreezed = false;\r\n self.doScrollTop(pos);\r\n };\r\n\r\n this.checkContentSize = function () {\r\n var pg = self.getContentSize();\r\n if ((pg.h != self.page.h) || (pg.w != self.page.w)) self.resize(false, pg);\r\n };\r\n\r\n self.onscroll = function (e) {\r\n if (self.rail.drag) return;\r\n if (!self.cursorfreezed) {\r\n self.synched('scroll', function () {\r\n self.scroll.y = Math.round(self.getScrollTop() / self.scrollratio.y);\r\n if (self.railh) self.scroll.x = Math.round(self.getScrollLeft() / self.scrollratio.x);\r\n self.noticeCursor();\r\n });\r\n }\r\n };\r\n self.bind(self.docscroll, \"scroll\", self.onscroll);\r\n\r\n this.doZoomIn = function (e) {\r\n if (self.zoomactive) return;\r\n self.zoomactive = true;\r\n\r\n self.zoomrestore = {\r\n style: {}\r\n };\r\n var lst = ['position', 'top', 'left', 'zIndex', 'backgroundColor', 'marginTop', 'marginBottom', 'marginLeft', 'marginRight'];\r\n var win = self.win[0].style;\r\n for (var a in lst) {\r\n var pp = lst[a];\r\n self.zoomrestore.style[pp] = (win[pp] !== undefined) ? win[pp] : '';\r\n }\r\n\r\n self.zoomrestore.style.width = self.win.css('width');\r\n self.zoomrestore.style.height = self.win.css('height');\r\n\r\n self.zoomrestore.padding = {\r\n w: self.win.outerWidth() - self.win.width(),\r\n h: self.win.outerHeight() - self.win.height()\r\n };\r\n\r\n if (cap.isios4) {\r\n self.zoomrestore.scrollTop = $window.scrollTop();\r\n $window.scrollTop(0);\r\n }\r\n\r\n self.win.css({\r\n position: (cap.isios4) ? \"absolute\" : \"fixed\",\r\n top: 0,\r\n left: 0,\r\n zIndex: globalmaxzindex + 100,\r\n margin: 0\r\n });\r\n var bkg = self.win.css(\"backgroundColor\");\r\n if (\"\" === bkg || /transparent|rgba\\(0, 0, 0, 0\\)|rgba\\(0,0,0,0\\)/.test(bkg)) self.win.css(\"backgroundColor\", \"#fff\");\r\n self.rail.css({\r\n zIndex: globalmaxzindex + 101\r\n });\r\n self.zoom.css({\r\n zIndex: globalmaxzindex + 102\r\n });\r\n self.zoom.css('backgroundPosition', '0 -18px');\r\n self.resizeZoom();\r\n\r\n if (self.onzoomin) self.onzoomin.call(self);\r\n\r\n return self.cancelEvent(e);\r\n };\r\n\r\n this.doZoomOut = function (e) {\r\n if (!self.zoomactive) return;\r\n self.zoomactive = false;\r\n\r\n self.win.css(\"margin\", \"\");\r\n self.win.css(self.zoomrestore.style);\r\n\r\n if (cap.isios4) {\r\n $window.scrollTop(self.zoomrestore.scrollTop);\r\n }\r\n\r\n self.rail.css({\r\n \"z-index\": self.zindex\r\n });\r\n self.zoom.css({\r\n \"z-index\": self.zindex\r\n });\r\n self.zoomrestore = false;\r\n self.zoom.css('backgroundPosition', '0 0');\r\n self.onResize();\r\n\r\n if (self.onzoomout) self.onzoomout.call(self);\r\n\r\n return self.cancelEvent(e);\r\n };\r\n\r\n this.doZoom = function (e) {\r\n return (self.zoomactive) ? self.doZoomOut(e) : self.doZoomIn(e);\r\n };\r\n\r\n this.resizeZoom = function () {\r\n if (!self.zoomactive) return;\r\n\r\n var py = self.getScrollTop(); //preserve scrolling position\r\n self.win.css({\r\n width: $window.width() - self.zoomrestore.padding.w + \"px\",\r\n height: $window.height() - self.zoomrestore.padding.h + \"px\"\r\n });\r\n self.onResize();\r\n\r\n self.setScrollTop(Math.min(self.page.maxh, py));\r\n };\r\n\r\n this.init();\r\n\r\n $.nicescroll.push(this);\r\n\r\n };\r\n\r\n // Inspired by the work of Kin Blas\r\n // http://webpro.host.adobe.com/people/jblas/momentum/includes/jquery.momentum.0.7.js \r\n var ScrollMomentumClass2D = function (nc) {\r\n var self = this;\r\n this.nc = nc;\r\n\r\n this.lastx = 0;\r\n this.lasty = 0;\r\n this.speedx = 0;\r\n this.speedy = 0;\r\n this.lasttime = 0;\r\n this.steptime = 0;\r\n this.snapx = false;\r\n this.snapy = false;\r\n this.demulx = 0;\r\n this.demuly = 0;\r\n\r\n this.lastscrollx = -1;\r\n this.lastscrolly = -1;\r\n\r\n this.chkx = 0;\r\n this.chky = 0;\r\n\r\n this.timer = 0;\r\n\r\n this.reset = function (px, py) {\r\n self.stop();\r\n self.steptime = 0;\r\n self.lasttime = now();\r\n self.speedx = 0;\r\n self.speedy = 0;\r\n self.lastx = px;\r\n self.lasty = py;\r\n self.lastscrollx = -1;\r\n self.lastscrolly = -1;\r\n };\r\n\r\n this.update = function (px, py) {\r\n var tm = now();\r\n self.steptime = tm - self.lasttime;\r\n self.lasttime = tm;\r\n var dy = py - self.lasty;\r\n var dx = px - self.lastx;\r\n var sy = self.nc.getScrollTop();\r\n var sx = self.nc.getScrollLeft();\r\n var newy = sy + dy;\r\n var newx = sx + dx;\r\n self.snapx = (newx < 0) || (newx > self.nc.page.maxw);\r\n self.snapy = (newy < 0) || (newy > self.nc.page.maxh);\r\n self.speedx = dx;\r\n self.speedy = dy;\r\n self.lastx = px;\r\n self.lasty = py;\r\n };\r\n\r\n this.stop = function () {\r\n self.nc.unsynched(\"domomentum2d\");\r\n if (self.timer) clearTimeout(self.timer);\r\n self.timer = 0;\r\n self.lastscrollx = -1;\r\n self.lastscrolly = -1;\r\n };\r\n\r\n this.doSnapy = function (nx, ny) {\r\n var snap = false;\r\n\r\n if (ny < 0) {\r\n ny = 0;\r\n snap = true;\r\n } else if (ny > self.nc.page.maxh) {\r\n ny = self.nc.page.maxh;\r\n snap = true;\r\n }\r\n\r\n if (nx < 0) {\r\n nx = 0;\r\n snap = true;\r\n } else if (nx > self.nc.page.maxw) {\r\n nx = self.nc.page.maxw;\r\n snap = true;\r\n }\r\n\r\n (snap) ? self.nc.doScrollPos(nx, ny, self.nc.opt.snapbackspeed) : self.nc.triggerScrollEnd();\r\n };\r\n\r\n this.doMomentum = function (gp) {\r\n var t = now();\r\n var l = (gp) ? t + gp : self.lasttime;\r\n\r\n var sl = self.nc.getScrollLeft();\r\n var st = self.nc.getScrollTop();\r\n\r\n var pageh = self.nc.page.maxh;\r\n var pagew = self.nc.page.maxw;\r\n\r\n self.speedx = (pagew > 0) ? Math.min(60, self.speedx) : 0;\r\n self.speedy = (pageh > 0) ? Math.min(60, self.speedy) : 0;\r\n\r\n var chk = l && (t - l) <= 60;\r\n\r\n if ((st < 0) || (st > pageh) || (sl < 0) || (sl > pagew)) chk = false;\r\n\r\n var sy = (self.speedy && chk) ? self.speedy : false;\r\n var sx = (self.speedx && chk) ? self.speedx : false;\r\n\r\n if (sy || sx) {\r\n var tm = Math.max(16, self.steptime); //timeout granularity\r\n\r\n if (tm > 50) { // do smooth\r\n var xm = tm / 50;\r\n self.speedx *= xm;\r\n self.speedy *= xm;\r\n tm = 50;\r\n }\r\n\r\n self.demulxy = 0;\r\n\r\n self.lastscrollx = self.nc.getScrollLeft();\r\n self.chkx = self.lastscrollx;\r\n self.lastscrolly = self.nc.getScrollTop();\r\n self.chky = self.lastscrolly;\r\n\r\n var nx = self.lastscrollx;\r\n var ny = self.lastscrolly;\r\n\r\n var onscroll = function () {\r\n var df = ((now() - t) > 600) ? 0.04 : 0.02;\r\n\r\n if (self.speedx) {\r\n nx = Math.floor(self.lastscrollx - (self.speedx * (1 - self.demulxy)));\r\n self.lastscrollx = nx;\r\n if ((nx < 0) || (nx > pagew)) df = 0.10;\r\n }\r\n\r\n if (self.speedy) {\r\n ny = Math.floor(self.lastscrolly - (self.speedy * (1 - self.demulxy)));\r\n self.lastscrolly = ny;\r\n if ((ny < 0) || (ny > pageh)) df = 0.10;\r\n }\r\n\r\n self.demulxy = Math.min(1, self.demulxy + df);\r\n\r\n self.nc.synched(\"domomentum2d\", function () {\r\n\r\n if (self.speedx) {\r\n var scx = self.nc.getScrollLeft();\r\n // if (scx != self.chkx) self.stop();\r\n self.chkx = nx;\r\n self.nc.setScrollLeft(nx);\r\n }\r\n\r\n if (self.speedy) {\r\n var scy = self.nc.getScrollTop();\r\n // if (scy != self.chky) self.stop();\r\n self.chky = ny;\r\n self.nc.setScrollTop(ny);\r\n }\r\n\r\n if (!self.timer) {\r\n self.nc.hideCursor();\r\n self.doSnapy(nx, ny);\r\n }\r\n\r\n });\r\n\r\n if (self.demulxy < 1) {\r\n self.timer = setTimeout(onscroll, tm);\r\n } else {\r\n self.stop();\r\n self.nc.hideCursor();\r\n self.doSnapy(nx, ny);\r\n }\r\n };\r\n\r\n onscroll();\r\n\r\n } else {\r\n self.doSnapy(self.nc.getScrollLeft(), self.nc.getScrollTop());\r\n }\r\n\r\n };\r\n\r\n };\r\n\r\n\r\n // override jQuery scrollTop\r\n var _scrollTop = jQuery.fn.scrollTop; // preserve original function\r\n\r\n jQuery.cssHooks.pageYOffset = {\r\n get: function (elem, computed, extra) {\r\n var nice = $.data(elem, '__nicescroll') || false;\r\n return (nice && nice.ishwscroll) ? nice.getScrollTop() : _scrollTop.call(elem);\r\n },\r\n set: function (elem, value) {\r\n var nice = $.data(elem, '__nicescroll') || false;\r\n (nice && nice.ishwscroll) ? nice.setScrollTop(parseInt(value)) : _scrollTop.call(elem, value);\r\n return this;\r\n }\r\n };\r\n\r\n jQuery.fn.scrollTop = function (value) {\r\n if (value === undefined) {\r\n var nice = (this[0]) ? $.data(this[0], '__nicescroll') || false : false;\r\n return (nice && nice.ishwscroll) ? nice.getScrollTop() : _scrollTop.call(this);\r\n } else {\r\n return this.each(function () {\r\n var nice = $.data(this, '__nicescroll') || false;\r\n (nice && nice.ishwscroll) ? nice.setScrollTop(parseInt(value)) : _scrollTop.call($(this), value);\r\n });\r\n }\r\n };\r\n\r\n // override jQuery scrollLeft\r\n var _scrollLeft = jQuery.fn.scrollLeft; // preserve original function\r\n\r\n $.cssHooks.pageXOffset = {\r\n get: function (elem, computed, extra) {\r\n var nice = $.data(elem, '__nicescroll') || false;\r\n return (nice && nice.ishwscroll) ? nice.getScrollLeft() : _scrollLeft.call(elem);\r\n },\r\n set: function (elem, value) {\r\n var nice = $.data(elem, '__nicescroll') || false;\r\n (nice && nice.ishwscroll) ? nice.setScrollLeft(parseInt(value)) : _scrollLeft.call(elem, value);\r\n return this;\r\n }\r\n };\r\n\r\n jQuery.fn.scrollLeft = function (value) {\r\n if (value === undefined) {\r\n var nice = (this[0]) ? $.data(this[0], '__nicescroll') || false : false;\r\n return (nice && nice.ishwscroll) ? nice.getScrollLeft() : _scrollLeft.call(this);\r\n } else {\r\n return this.each(function () {\r\n var nice = $.data(this, '__nicescroll') || false;\r\n (nice && nice.ishwscroll) ? nice.setScrollLeft(parseInt(value)) : _scrollLeft.call($(this), value);\r\n });\r\n }\r\n };\r\n\r\n var NiceScrollArray = function (doms) {\r\n var self = this;\r\n this.length = 0;\r\n this.name = \"nicescrollarray\";\r\n\r\n this.each = function (fn) {\r\n $.each(self, fn);\r\n return self;\r\n };\r\n\r\n this.push = function (nice) {\r\n self[self.length] = nice;\r\n self.length++;\r\n };\r\n\r\n this.eq = function (idx) {\r\n return self[idx];\r\n };\r\n\r\n if (doms) {\r\n for (var a = 0; a < doms.length; a++) {\r\n var nice = $.data(doms[a], '__nicescroll') || false;\r\n if (nice) {\r\n this[this.length] = nice;\r\n this.length++;\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n function mplex(el, lst, fn) {\r\n for (var a = 0, l = lst.length; a < l; a++) fn(el, lst[a]);\r\n }\r\n mplex(\r\n NiceScrollArray.prototype, ['show', 'hide', 'toggle', 'onResize', 'resize', 'remove', 'stop', 'doScrollPos'],\r\n function (e, n) {\r\n e[n] = function () {\r\n var args = arguments;\r\n return this.each(function () {\r\n this[n].apply(this, args);\r\n });\r\n };\r\n }\r\n );\r\n\r\n jQuery.fn.getNiceScroll = function (index) {\r\n if (index === undefined) {\r\n return new NiceScrollArray(this);\r\n } else {\r\n return this[index] && $.data(this[index], '__nicescroll') || false;\r\n }\r\n };\r\n\r\n var pseudos = jQuery.expr.pseudos || jQuery.expr[':']; // jQuery 3 migration\r\n pseudos.nicescroll = function (a) {\r\n return $.data(a, '__nicescroll') !== undefined;\r\n };\r\n\r\n $.fn.niceScroll = function (wrapper, _opt) {\r\n if (_opt === undefined && typeof wrapper == \"object\" && !(\"jquery\" in wrapper)) {\r\n _opt = wrapper;\r\n wrapper = false;\r\n }\r\n\r\n var ret = new NiceScrollArray();\r\n\r\n this.each(function () {\r\n var $this = $(this);\r\n\r\n var opt = $.extend({}, _opt); // cloning\r\n\r\n if (wrapper || false) {\r\n var wrp = $(wrapper);\r\n opt.doc = (wrp.length > 1) ? $(wrapper, $this) : wrp;\r\n opt.win = $this;\r\n }\r\n var docundef = !(\"doc\" in opt);\r\n if (!docundef && !(\"win\" in opt)) opt.win = $this;\r\n\r\n var nice = $this.data('__nicescroll') || false;\r\n if (!nice) {\r\n opt.doc = opt.doc || $this;\r\n nice = new NiceScrollClass(opt, $this);\r\n $this.data('__nicescroll', nice);\r\n }\r\n ret.push(nice);\r\n });\r\n\r\n return (ret.length === 1) ? ret[0] : ret;\r\n };\r\n\r\n _win.NiceScroll = {\r\n getjQuery: function () {\r\n return jQuery;\r\n }\r\n };\r\n\r\n if (!$.nicescroll) {\r\n $.nicescroll = new NiceScrollArray();\r\n $.nicescroll.options = _globaloptions;\r\n }\r\n\r\n}));"],"sourceRoot":""}