{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/core/services/store/breadcrumbs.module.js","webpack:///./src/core/services/store/recipients.module.js","webpack:///./src/core/services/jwt.service.js","webpack:///./src/assets/js/components/image-input.js","webpack:///./src/App.vue?08b7","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue?2667","webpack:///./src/router.js","webpack:///./src/core/config/i18n/en.js","webpack:///./src/core/config/i18n/ch.js","webpack:///./src/core/config/i18n/es.js","webpack:///./src/core/config/i18n/jp.js","webpack:///./src/core/config/i18n/de.js","webpack:///./src/core/config/i18n/fr.js","webpack:///./src/core/plugins/vue-i18n.js","webpack:///./src/core/plugins/vuetify.js","webpack:///./src/core/plugins/portal-vue.js","webpack:///./src/core/plugins/bootstrap-vue.js","webpack:///./src/core/plugins/perfect-scrollbar.js","webpack:///./src/core/plugins/highlight-js.js","webpack:///./src/core/plugins/inline-svg.js","webpack:///./src/core/plugins/apexcharts.js","webpack:///./src/assets/js/layout/base/content.js","webpack:///./src/assets/js/layout/base/footer.js","webpack:///./src/assets/js/layout/base/sticky-card.js","webpack:///./src/assets/js/layout/base/stretched-card.js","webpack:///./src/assets/js/layout/base/subheader.js","webpack:///./src/assets/js/layout/extended/chat.js","webpack:///./src/assets/js/layout/extended/quick-cart.js","webpack:///./src/assets/js/layout/extended/quick-notifications.js","webpack:///./src/assets/js/layout/extended/quick-panel.js","webpack:///./src/assets/js/layout/extended/quick-search.js","webpack:///./src/assets/js/layout/extended/search.js","webpack:///./src/core/plugins/metronic.js","webpack:///./src/core/plugins/treeselect.js","webpack:///./src/main.js","webpack:///./src/core/services/store/config.module.js","webpack:///./src/App.vue?c650","webpack:///./src/assets/js/components/header.js","webpack:///./src/assets/js/layout/extended/scrolltop.js","webpack:///./src/core/services/store/index.js","webpack:///./src/assets/js/components/menu.js","webpack:///./src/core/services/store/htmlclass.module.js","webpack:///./src/core/services/api.service.js","webpack:///./src/core/services/store/auth.module.js","webpack:///./src/assets/js/layout/extended/quick-actions.js","webpack:///./src/assets/js/layout/extended/quick-user.js","webpack:///./src/assets/js/components/dialog.js","webpack:///./src/assets/js/components/wizard.js","webpack:///./src/core/services/store/profile.module.js","webpack:///./src/assets/js/components/util.js","webpack:///./src/assets/js/layout/extended/examples.js","webpack:///./src/assets/js/components/offcanvas.js","webpack:///./src/assets/js/components/scrolltop.js","webpack:///./src/assets/js/components/toggle.js","webpack:///./src/assets/js/layout/base/header-topbar.js","webpack:///./src/assets/js/layout/base/aside-menu.js","webpack:///./src/assets/js/components/card.js","webpack:///./src/assets/js/layout/base/header.js","webpack:///./src/assets/js/components/cookie.js","webpack:///./src/assets/js/layout/base/aside.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","APPEND_BREADCRUM","SET_BREADCRUMB","ADD_BREADCRUMB","state","breadcrumbs","getters","pageTitle","last","title","actions","payload","commit","forEach","item","mutations","CLEAR_RECIPIENTS","SET_RECIPIENTS","ADD_RECIPIENT","REMOVE_RECIPIENT","recipients","recipientCaptions","map","x","caption","recipientKeys","recipientMobileNumbers","mobileNumber","filter","ID_TOKEN_KEY","process","getToken","localStorage","getItem","saveToken","token","setItem","destroyToken","removeItem","KTImageInput","elementId","options","the","this","element","KTUtil","getById","getBody","defaultOptions","editMode","Plugin","construct","has","init","build","set","events","input","find","wrapper","cancel","remove","css","hidden","deepExtend","addEvent","preventDefault","files","reader","FileReader","readAsDataURL","addClass","removeClass","eventTrigger","one","handler","fired","setDefaults","on","_vm","_h","$createElement","_c","_self","staticRenderFns","mounted","$store","dispatch","component","Vue","use","Router","routes","path","redirect","children","locale","TRANSLATOR","SELECT","MENU","NEW","ACTIONS","CREATE_POST","PAGES","FEATURES","APPS","DASHBOARD","AUTH","GENERAL","OR","SUBMIT_BUTTON","NO_ACCOUNT","SIGNUP_BUTTON","FORGOT_BUTTON","BACK_BUTTON","PRIVACY","LEGAL","CONTACT","LOGIN","TITLE","BUTTON","FORGOT","DESC","SUCCESS","REGISTER","INPUT","EMAIL","FULLNAME","PASSWORD","CONFIRM_PASSWORD","USERNAME","VALIDATION","INVALID","REQUIRED","MIN_LENGTH","AGREEMENT_REQUIRED","NOT_FOUND","INVALID_LOGIN","REQUIRED_FIELD","MIN_LENGTH_FIELD","MAX_LENGTH_FIELD","INVALID_FIELD","ECOMMERCE","COMMON","SELECTED_RECORDS_COUNT","ALL","SUSPENDED","ACTIVE","FILTER","BY_STATUS","BY_TYPE","BUSINESS","INDIVIDUAL","SEARCH","IN_ALL_FIELDS","CUSTOMERS","CUSTOMERS_LIST","NEW_CUSTOMER","DELETE_CUSTOMER_SIMPLE","DESCRIPTION","WAIT_DESCRIPTION","MESSAGE","DELETE_CUSTOMER_MULTY","UPDATE_STATUS","EDIT","UPDATE_MESSAGE","ADD_MESSAGE","VueI18n","messages","en","ch","es","jp","de","fr","lang","i18n","Vuetify","theme","customProperties","themes","light","primary","secondary","accent","info","success","warning","PortalVue","BootstrapVue","IconsPlugin","PerfectScrollbar","VueHighlightJS","languages","scss","javascript","json","vue","InlineSvgPlugin","VueApexCharts","KTLayoutContent","_element","_getHeight","height","getViewPort","parseInt","KTLayoutHeader","getHeight","KTLayoutSubheader","KTLayoutFooter","id","getElement","actualHeight","KTLayoutStickyCard","_object","_init","offset","KTCard","sticky","zIndex","position","top","pos","isBreakpointUp","isFixed","isFixedForMobile","getHeightForMobile","left","card","right","body","cardWidth","bodyWidth","cardOffsetLeft","initSticky","addResizeHandler","updateSticky","update","KTLayoutStretchedCard","scroll","cardBody","cardHeader","hasClass","KTLayoutChat","scrollEl","cardBodyEl","cardHeaderEl","cardFooterEl","scrollInit","windowScroll","mobileNativeScroll","desktopNativeScroll","resetHeightOnDestroy","handleWindowResize","rememberPosition","isBreakpointDown","hasAttr","attr","keyCode","_handeMessaging","messagesEl","textarea","node","ps","html","setHTML","scrollTop","encodeURI","location","hostname","KTCookie","getCookie","expires","Date","getTime","setCookie","click","setup","KTLayoutQuickCartPanel","KTOffcanvas","overlay","baseClass","placement","closeBy","toggleBy","header","content","footer","disableForMobile","KTLayoutQuickNotifications","KTLayoutQuickPanel","_notificationsElement","_logsElement","_settingsElement","_getContentHeight","_initNotifications","_initLogs","_initSettings","KTLayoutQuickSearch","form","results","KTLayoutSearch","_target","_form","_input","_closeIcon","_resultWrapper","_resultDropdown","_resultDropdownToggle","_closeIconContainer","_query","_hasResult","_timeout","_isProcessing","_requestTimeout","_spinnerClass","_resultClass","_minLength","_showProgress","hide","_hideProgress","show","_showDropdown","$","dropdown","_hideDropdown","_processSearch","scrollUpdate","ajax","url","HOST_URL","query","dataType","res","_handleCancel","_handleSearch","onkeypress","charCode","KTDialog","KTHeader","KTMenu","KTScrolltop","KTToggle","KTWizard","KTLayoutAside","KTLayoutAsideMenu","KTLayoutHeaderTopbar","KTLayoutExamples","KTLayoutQuickActions","KTLayoutQuickUser","KTLayoutScrolltop","Treeselect","config","productionTip","ClipboardJS","ApiService","router","beforeEach","to","from","next","store","VERIFY_AUTH","RESET_LAYOUT_CONFIG","scrollTo","msal","auth","clientId","authority","requireAuthOnInitialize","redirectUri","postLogoutRedirectUri","validateAuthority","scopes","vuetify","render","h","App","$mount","SET_LAYOUT_CONFIG","OVERRIDE_LAYOUT_CONFIG","OVERRIDE_PAGE_LAYOUT_CONFIG","initial","layoutConfig","defaultValue","objectPath","assign","JSON","parse","merge","desktop","tabletAndMobile","releseOnReverse","eventTriggerState","lastScrollTop","addEventListener","st","getScrollTop","hasAttribute","removeAttribute","args","speed","Vuex","Store","htmlClass","profile","accordion","slideSpeed","autoScroll","autoScrollSpeed","expandAll","reset","eventHandlers","pauseDropdownHoverTime","uid","getUniqueID","reload","resetSubmenuProps","handleSubmenuAccordion","getSubmenuMode","isConditionalSubmenuDropdown","handleSubmenuDrodownHoverEnter","handleSubmenuDrodownHoverExit","handleSubmenuDropdownClick","handleSubmenuDropdownTabClick","handleLinkClick","off","scrollDestroy","el","isset","submenu","hasClasses","default","tablet","mobile","submenus","findAll","len","resumeDropdownHover","showSubmenuDropdown","time","hideSubmenuDropdown","closest","hideSubmenuDropdowns","handleSubmenuDropdownClose","shown","querySelectorAll","li","child","subnav","closables","el_","submenu_","slideUp","slideDown","scrollToItem","classAlso","items","cnt","list","contains","isOffscreen","createSubmenuDropdownClickDropoff","dropoff","stopPropagation","pauseDropdownHover","date","resetActiveItem","parents","i_","len_","setActiveItem","getBreadcrumbs","link","text","innerHTML","submenuLink","reverse","getPageTitle","removeEvent","scrollReInit","hideDropdown","hideDropdowns","getByTagName","ADD_BODY_CLASSNAME","REMOVE_BODY_CLASSNAME","ADD_CLASSNAME","SET_CLASSNAME_BY_POSITION","classes","getClasses","context","className","classList","add","VueAxios","axios","defaults","baseURL","setHeader","headers","common","JwtService","resource","params","catch","includes","log","REFRESH_ACCESS_TOKEN","slug","post","put","delete","LOGOUT","PURGE_AUTH","SET_AUTH","SET_ERROR","errors","isAuthenticated","accessToken","currentUser","user","$msal","signIn","signOut","msalError","hasCookieError","cookie","clear","cookies","split","eqPos","indexOf","substr","cookies2","stringify","acquireToken","startStep","clickableSteps","steps","btnNext","btnPrev","btnSubmit","lastStep","currentStep","newStep","stopped","totalSteps","goTo","updateUI","setNewStep","getNextStep","getPrevStep","index","number","stop","resume","isLastStep","isFirstStep","isBetweenStep","stepType","stepsInfo","removeAttr","stepsContent","getNewStep","step","nested","goNext","goPrev","goLast","getLastStep","goFirst","getFirstStep","getStep","UPDATE_PERSONAL_INFO","UPDATE_ACCOUNT_INFO","SET_PERSONAL_INFO","SET_ACCOUNT_INFO","user_personal_info","photo","surname","company_name","job","email","phone","company_site","user_account_info","username","language","time_zone","communication","sms","verification","currentUserPersonalInfo","currentUserAccountInfo","Element","matches","msMatchesSelector","webkitMatchesSelector","ancestor","documentElement","parentElement","elem","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","callback","currTime","timeToCall","Math","max","arr","configurable","writable","argArr","Array","arguments","docFrag","createDocumentFragment","argItem","isNode","Node","createTextNode","String","insertBefore","firstChild","Document","DocumentFragment","getAttributeNames","attributes","KTUtilElementDataStore","KTUtilElementDataStoreID","KTUtilDelegatedEventHandlers","resizeHandlers","breakpoints","sm","md","lg","xl","_windowResizeHandler","timer","_runResizeHandlers","each","throttle","settings","removeResizeHandler","runResizeHandlers","resize","Event","dispatchEvent","evt","createEvent","initUIEvent","getURLParam","paramName","val","searchString","search","substring","unescape","isMobileDevice","test","width","getBreakpoint","navigator","userAgent","match","isDesktopDevice","a","isInResponsiveRange","breakpoint","prefix","floor","random","obj","keys","stone","getHighestZindex","isNaN","hasFixedPositionedParent","sleep","milliseconds","start","getRandomInt","min","isAngularVersion","Zone","out","extend","getElementById","getByTag","getByClass","getElementsByClassName","classesArr","trim","RegExp","classNames","replace","triggerCustomEvent","eventName","CustomEvent","detail","initCustomEvent","triggerEvent","doc","ownerDocument","nodeType","eventClass","bubbles","initEvent","synthetic","fireEvent","createEventObject","string","eventTriggered","currentTarget","dataset","triggered","parent","querySelector","insertAfter","referenceNode","nextSibling","selector","matchesSelector","mozMatchesSelector","oMatchesSelector","childNodes","f","tagName","customDataTag","outerWidth","margin","parseFloat","offsetWidth","rect","win","getClientRects","getBoundingClientRect","defaultView","pageYOffset","pageXOffset","outerHeight","withMargin","style","offsetHeight","getComputedStyle","marginTop","marginBottom","visible","animate","duration","easing","done","easings","linear","b","rAF","change","performance","now","loop","timestamp","actualCss","prop","cache","HTMLElement","cssText","actualWidth","getScroll","method","self","browserSupportsBoxModel","styleProp","toLowerCase","getPropertyValue","currentStyle","str","letter","toUpperCase","oldLeft","oldRsLeft","runtimeStyle","pixelLeft","slide","dir","recalcMaxHeight","calcHeight","calcPaddingTop","calcPaddingBottom","paddingTop","paddingBottom","display","overflow","removeEventListener","eventId","targets","callee","hash","chr","charCodeAt","animateClass","animationName","animation","animations","OAnimation","MozAnimation","WebkitAnimation","msAnimation","transitionEnd","transition","transitions","OTransition","MozTransition","WebkitTransition","msTransition","animationEnd","animateDelay","animateDuration","targetPos","scrollPos","isArray","ready","attachEvent","readyState","isEmpty","numberString","nStr","x1","x2","rgx","detectIE","ua","msie","trident","rv","edge","isRTL","pluginDefOptions","wheelSpeed","swipeEasing","wheelPropagation","minScrollbarLength","maxScrollbarLength","suppressScrollX","attrs","attrName","optionName","filterBoolean","Function","mobileHeight","destroy","scrollUpdateAll","scrollers","resetAll","setProperty","getHTML","getDocumentHeight","scrollHeight","clientHeight","scrollingElement","changeColor","col","amt","usePound","num","g","toString","func","delay","debounce","btnWait","cls","disable","btnRelease","direction","windowWidth","windowHeight","KTAppSettings","initDefaultMode","elements","example","copy","clipboard","trigger","clearSelection","initCompactMode","toggle","attrCustom","classBase","classShown","classOverlay","isShown","toggleClass","classCustom","handle","toggleElement","targetElement","targetToggleMode","targetState","toggleState","toggleOn","toggleOff","getState","_toggleElement","getToggleElement","_menuObject","menu","getOffcanvas","getMenu","closeMobileOffcanvas","toggleSpeed","onScrollSticky","resetSticky","setContent","getSelf","expand","collapse","destroySticky","_elementForMobile","_getHeightForMobile","idForMobile","getElementForMobile","getHeader","decodeURIComponent","toUTCString","updatedCookie","encodeURIComponent","optionKey","optionValue","deleteCookie","_asideMenuWrapperElement","_offcanvasObject","offcanvasClass","_initScroll"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxB,IAAO,GAMJjB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,OAAS,GAAG9B,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,YAAYA,GAAW,MAIxrF,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUgC,QAGnC,IAAIC,EAASL,EAAiB5B,GAAY,CACzCK,EAAGL,EACHkC,GAAG,EACHF,QAAS,IAUV,OANAlB,EAAQd,GAAUW,KAAKsB,EAAOD,QAASC,EAAQA,EAAOD,QAASN,GAG/DO,EAAOC,GAAI,EAGJD,EAAOD,QAKfN,EAAoBS,EAAI,SAAuBlC,GAC9C,IAAImC,EAAW,GAIXC,EAAY,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,GAC7zBR,EAAmB5B,GAAUmC,EAASvB,KAAKgB,EAAmB5B,IACzB,IAAhC4B,EAAmB5B,IAAkBoC,EAAUpC,IACtDmC,EAASvB,KAAKgB,EAAmB5B,GAAW,IAAIqC,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,EAAO,QAAU,GAAGxC,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,YAAYA,GAAW,OAChqFyC,EAAWhB,EAAoBK,EAAIU,EACnCE,EAAmBC,SAASC,qBAAqB,QAC7CxC,EAAI,EAAGA,EAAIsC,EAAiBpC,OAAQF,IAAK,CAChD,IAAIyC,EAAMH,EAAiBtC,GACvB0C,EAAWD,EAAIE,aAAa,cAAgBF,EAAIE,aAAa,QACjE,GAAe,eAAZF,EAAIG,MAAyBF,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,IAErF,IAAIW,EAAoBN,SAASC,qBAAqB,SACtD,IAAQxC,EAAI,EAAGA,EAAI6C,EAAkB3C,OAAQF,IAAK,CAC7CyC,EAAMI,EAAkB7C,GACxB0C,EAAWD,EAAIE,aAAa,aAChC,GAAGD,IAAaN,GAAQM,IAAaL,EAAU,OAAOH,IAEvD,IAAIY,EAAUP,SAASQ,cAAc,QACrCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WACfF,EAAQG,OAASf,EACjBY,EAAQI,QAAU,SAASC,GAC1B,IAAIC,EAAUD,GAASA,EAAME,QAAUF,EAAME,OAAOC,KAAOjB,EACvDkB,EAAM,IAAIC,MAAM,qBAAuB5D,EAAU,cAAgBwD,EAAU,KAC/EG,EAAIE,KAAO,wBACXF,EAAIH,QAAUA,SACP5B,EAAmB5B,GAC1BkD,EAAQY,WAAWC,YAAYb,GAC/BX,EAAOoB,IAERT,EAAQV,KAAOC,EAEf,IAAIuB,EAAOrB,SAASC,qBAAqB,QAAQ,GACjDoB,EAAKC,YAAYf,MACfgB,MAAK,WACPtC,EAAmB5B,GAAW,MAMhC,IAAImE,EAAqBxD,EAAgBX,GACzC,GAA0B,IAAvBmE,EAGF,GAAGA,EACFhC,EAASvB,KAAKuD,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAI/B,SAAQ,SAASC,EAASC,GAC3C4B,EAAqBxD,EAAgBX,GAAW,CAACsC,EAASC,MAE3DJ,EAASvB,KAAKuD,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS3B,SAASQ,cAAc,UAGpCmB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb/C,EAAoBgD,IACvBH,EAAOI,aAAa,QAASjD,EAAoBgD,IAElDH,EAAOZ,IAAM7B,EAAe7B,GAG5B,IAAI2E,EAAQ,IAAIf,MAChBS,EAAmB,SAAUd,GAE5Be,EAAOhB,QAAUgB,EAAOjB,OAAS,KACjCuB,aAAaJ,GACb,IAAIK,EAAQlE,EAAgBX,GAC5B,GAAa,IAAV6E,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYvB,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE2B,EAAUxB,GAASA,EAAME,QAAUF,EAAME,OAAOC,IACpDiB,EAAMK,QAAU,iBAAmBhF,EAAU,cAAgB8E,EAAY,KAAOC,EAAU,IAC1FJ,EAAMM,KAAO,iBACbN,EAAMvB,KAAO0B,EACbH,EAAMnB,QAAUuB,EAChBF,EAAM,GAAGF,GAEVhE,EAAgBX,QAAWkF,IAG7B,IAAIV,EAAUW,YAAW,WACxBd,EAAiB,CAAEjB,KAAM,UAAWK,OAAQa,MAC1C,MACHA,EAAOhB,QAAUgB,EAAOjB,OAASgB,EACjC1B,SAASqB,KAAKC,YAAYK,GAG5B,OAAOjC,QAAQ+C,IAAIjD,IAIpBV,EAAoB4D,EAAIxE,EAGxBY,EAAoB6D,EAAI3D,EAGxBF,EAAoB8D,EAAI,SAASxD,EAASkD,EAAMO,GAC3C/D,EAAoBgE,EAAE1D,EAASkD,IAClC1E,OAAOmF,eAAe3D,EAASkD,EAAM,CAAEU,YAAY,EAAMC,IAAKJ,KAKhE/D,EAAoBoE,EAAI,SAAS9D,GACX,qBAAX+D,QAA0BA,OAAOC,aAC1CxF,OAAOmF,eAAe3D,EAAS+D,OAAOC,YAAa,CAAEC,MAAO,WAE7DzF,OAAOmF,eAAe3D,EAAS,aAAc,CAAEiE,OAAO,KAQvDvE,EAAoBwE,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvE,EAAoBuE,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7F,OAAO8F,OAAO,MAGvB,GAFA5E,EAAoBoE,EAAEO,GACtB7F,OAAOmF,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvE,EAAoB8D,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3E,EAAoB+E,EAAI,SAASxE,GAChC,IAAIwD,EAASxD,GAAUA,EAAOmE,WAC7B,WAAwB,OAAOnE,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAP,EAAoB8D,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/D,EAAoBgE,EAAI,SAASgB,EAAQC,GAAY,OAAOnG,OAAOC,UAAUC,eAAeC,KAAK+F,EAAQC,IAGzGjF,EAAoBK,EAAI,IAGxBL,EAAoBkF,GAAK,SAAShD,GAA2B,MAApBiD,QAAQjC,MAAMhB,GAAYA,GAEnE,IAAIkD,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAWjG,KAAK2F,KAAKM,GAC5CA,EAAWjG,KAAOf,EAClBgH,EAAaA,EAAWG,QACxB,IAAI,IAAI5G,EAAI,EAAGA,EAAIyG,EAAWvG,OAAQF,IAAKP,EAAqBgH,EAAWzG,IAC3E,IAAIU,EAAsBiG,EAI1B/F,EAAgBJ,KAAK,CAAC,EAAE,kBAEjBM,K,28DCzQI+F,G,oBAAmB,oBAGnBC,EAAiB,gBACjBC,EAAiB,gBAEf,QACbC,MAAO,CACLC,YAAa,IAEfC,QAAS,CAMPD,YANO,SAMKD,GACV,OAAOA,EAAMC,aAQfE,UAfO,SAeGH,GACR,IAAII,EAAOJ,EAAMC,YAAYD,EAAMC,YAAY/G,OAAS,GACxD,GAAIkH,GAAQA,EAAKC,MACf,OAAOD,EAAKC,QAIlBC,SAAO,sBAMJR,GANI,SAMYE,EAAOO,GACtBP,EAAMQ,OAAOV,EAAgBS,MAP1B,iBAeJR,GAfI,SAeYC,EAAOO,GACC,WAAnB,eAAOA,GACTA,EAAQE,SAAQ,SAAAC,GAAI,OAAIV,EAAMQ,OAAOX,EAAkBa,MAEvDV,EAAMQ,OAAOX,EAAkBU,MAnB9B,GAuBPI,WAAS,sBACNd,GADM,SACYG,EAAOO,GACxBP,EAAMC,YAAN,yBAAwBD,EAAMC,aAA9B,CAA2CM,OAFtC,iBAINT,GAJM,SAIUE,EAAOO,GACtBP,EAAMC,YAAcM,KALf,K,kECrDEK,G,8BAAmB,mBACnBC,EAAiB,gBACjBC,EAAgB,eAChBC,EAAmB,kBAEjB,QACbf,MAAO,CACLgB,WAAY,IAEdd,QAAS,CAMPc,WANO,SAMIhB,GACT,OAAOA,EAAMgB,YAEfC,kBATO,SASWjB,GAChB,IAAIjG,EAASiG,EAAMgB,WAAWE,KAAI,SAACC,GAAD,OAAOA,EAAEC,WAC3C,OAAOrH,GAETsH,cAbO,SAaOrB,GACZ,IAAIjG,EAASiG,EAAMgB,WAAWE,KAAI,SAACC,GAAD,OAAOA,EAAEjC,OAC3C,OAAOnF,GAETuH,uBAjBO,SAiBgBtB,GACrB,IAAIjG,EAASiG,EAAMgB,WAAWE,KAAI,SAACC,GAAD,OAAOA,EAAEI,gBAC3C,OAAOxH,IAGXuG,QAAS,GACTK,WAAS,sBACNC,GADM,SACYZ,GACjBA,EAAMgB,WAAa,MAFd,iBAINH,GAJM,SAIUb,EAAOO,GACtBP,EAAMgB,WAAaT,KALd,iBAONO,GAPM,SAOSd,EAAOO,GACrBP,EAAMgB,WAAN,yBAAuBhB,EAAMgB,YAA7B,CAAyCT,OARpC,iBAUNQ,GAVM,SAUYf,EAAOO,GACxBP,EAAMgB,WAAN,eACKhB,EAAMgB,WAAWQ,QAAO,SAACL,GAAD,OAAOA,EAAEC,SAAWb,SAZ5C,K,oCCnCX,IAAMkB,EAAeC,sBAERC,EAAW,WACtB,OAAOjC,OAAOkC,aAAaC,QAAQJ,IAGxBK,EAAY,SAACC,GACxBrC,OAAOkC,aAAaI,QAAQP,EAAcM,IAG/BE,EAAe,WAC1BvC,OAAOkC,aAAaM,WAAWT,IAGlB,QAAEE,WAAUG,YAAWG,iB,qCCdtC,gDAKIE,EAAe,SAASC,EAAWC,GAEnC,IAAIC,EAAMC,KAINC,EAAUC,OAAOC,QAAQN,GAClBK,OAAOE,UAElB,GAAKH,EAAL,CAKA,IAAII,EAAiB,CACjBC,UAAU,GAOVC,EAAS,CAKTC,UAAW,SAASV,GAahB,OAZII,OAAO/J,KAAK8J,GAASQ,IAAI,cACzBV,EAAMG,OAAO/J,KAAK8J,GAAShE,IAAI,eAG/BsE,EAAOG,KAAKZ,GAGZS,EAAOI,QAEPT,OAAO/J,KAAK8J,GAASW,IAAI,aAAcb,IAGpCA,GAMXW,KAAM,SAASZ,GACXC,EAAIE,QAAUA,EACdF,EAAIc,OAAS,GAEbd,EAAIe,MAAQZ,OAAOa,KAAKd,EAAS,sBACjCF,EAAIiB,QAAUd,OAAOa,KAAKd,EAAS,wBACnCF,EAAIkB,OAASf,OAAOa,KAAKd,EAAS,0BAClCF,EAAImB,OAAShB,OAAOa,KAAKd,EAAS,0BAClCF,EAAIhG,IAAMmG,OAAOiB,IAAIpB,EAAIiB,QAAS,mBAClCjB,EAAIqB,OAASlB,OAAOa,KAAKd,EAAS,wBAGlCF,EAAID,QAAUI,OAAOmB,WAAW,GAAIhB,EAAgBP,IAMxDa,MAAO,WAEHT,OAAOoB,SAASvB,EAAIe,MAAO,UAAU,SAASvI,GAG7C,GAFGA,EAAEgJ,iBAEDxB,EAAIe,OAASf,EAAIe,MAAMU,OAASzB,EAAIe,MAAMU,MAAM,GAAI,CACpD,IAAIC,EAAS,IAAIC,WACjBD,EAAO/H,OAAS,SAASnB,GACrB2H,OAAOiB,IAAIpB,EAAIiB,QAAS,mBAAoB,OAAOzI,EAAEuB,OAAOtC,OAAQ,MAExEiK,EAAOE,cAAc5B,EAAIe,MAAMU,MAAM,IAErCtB,OAAO0B,SAAS7B,EAAIE,QAAS,uBAC1BC,OAAO2B,YAAY9B,EAAIE,QAAS,qBAGhCM,EAAOuB,aAAa,cAK5B5B,OAAOoB,SAASvB,EAAIkB,OAAQ,SAAS,SAAS1I,GAC1CA,EAAEgJ,iBAGFhB,EAAOuB,aAAa,UAEvB5B,OAAO2B,YAAY9B,EAAIE,QAAS,uBAC7BC,OAAO2B,YAAY9B,EAAIE,QAAS,qBACnCC,OAAOiB,IAAIpB,EAAIiB,QAAS,mBAAoBjB,EAAIhG,KAChDgG,EAAIe,MAAMzE,MAAQ,GAEX0D,EAAIqB,SACJrB,EAAIqB,OAAO/E,MAAQ,QAK3B6D,OAAOoB,SAASvB,EAAImB,OAAQ,SAAS,SAAS3I,GAC1CA,EAAEgJ,iBAGFhB,EAAOuB,aAAa,UAEvB5B,OAAO2B,YAAY9B,EAAIE,QAAS,uBAC7BC,OAAO0B,SAAS7B,EAAIE,QAAS,qBAChCC,OAAOiB,IAAIpB,EAAIiB,QAAS,mBAAoB,QAC5CjB,EAAIe,MAAMzE,MAAQ,GAEX0D,EAAIqB,SACJrB,EAAIqB,OAAO/E,MAAQ,SAQ/ByF,aAAc,SAASxG,GAEnB,IAAK,IAAI7E,EAAI,EAAGA,EAAIsJ,EAAIc,OAAOlK,OAAQF,IAAK,CACxC,IAAImD,EAAQmG,EAAIc,OAAOpK,GACvB,GAAImD,EAAM0B,MAAQA,EAAM,CACpB,GAAiB,GAAb1B,EAAMmI,IAMN,OAAOnI,EAAMoI,QAAQjL,KAAKiJ,KAAMD,GALhC,GAAmB,GAAfnG,EAAMqI,MAEN,OADAlC,EAAIc,OAAOpK,GAAGwL,OAAQ,EACfrI,EAAMoI,QAAQjL,KAAKiJ,KAAMD,MASpDuB,SAAU,SAAShG,EAAM0G,EAASD,GAQ9B,OAPAhC,EAAIc,OAAO5J,KAAK,CACZqE,KAAMA,EACN0G,QAASA,EACTD,IAAKA,EACLE,OAAO,IAGJlC,IAiCf,OArBAA,EAAImC,YAAc,SAASpC,GACvBO,EAAiBP,GAMrBC,EAAIoC,GAAK,SAAS7G,EAAM0G,GACpB,OAAOzB,EAAOe,SAAShG,EAAM0G,IAMjCjC,EAAIgC,IAAM,SAASzG,EAAM0G,GACrB,OAAOzB,EAAOe,SAAShG,EAAM0G,GAAS,IAI1CzB,EAAOC,UAAUlJ,MAAMyI,EAAK,CAACD,IAEtBC,IAIoD,qBAAnB1H,EAAOD,UAC/CC,EAAOD,QAAUwH,GAGNA,W,0JCjMX,EAAS,WAAa,IAAIwC,EAAIpC,KAASqC,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,gBAC/FE,EAAkB,G,YC0BtB,GACEnH,KAAM,cACNoH,QAFF,WAOI1C,KAAK2C,OAAOC,SAAS,EAAzB,QClC8T,I,wBCQ1TC,EAAY,eACd,EACA,EACAJ,GACA,EACA,KACA,KACA,MAIa,EAAAI,E,oBChBfC,aAAIC,IAAIC,QAEO,UAAIA,OAAO,CACxBzG,KAAM,UACN0G,OAAQ,CACN,CACEC,KAAM,IACNC,SAAU,WACVN,UAAW,kBAAM,iDACjBO,SAAU,CACR,CACEF,KAAM,cACN5H,KAAM,aACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,WACN5H,KAAM,UACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,aACN5H,KAAM,YACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,YACN5H,KAAM,WACNuH,UAAW,kBAAM,kDAOnB,CACEK,KAAM,eACN5H,KAAM,cACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,iBACN5H,KAAM,gBACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,kBACN5H,KAAM,iBACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,wBACN5H,KAAM,uBACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,SACN5H,KAAM,QACNuH,UAAW,kBAAM,uFAEnB,CACEK,KAAM,iBACN5H,KAAM,gBACNuH,UAAW,kBACT,iDACFO,SAAU,CACR,CACEF,KAAM,QACN5H,KAAM,sBACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,QACN5H,KAAM,sBACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,SACN5H,KAAM,uBACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,eACN5H,KAAM,6BACNuH,UAAW,kBACT,kDAEJ,CACEK,KAAM,iBACN5H,KAAM,+BACNuH,UAAW,kBACT,kDAEJ,CACEK,KAAM,OACN5H,KAAM,qBACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,WACN5H,KAAM,yBACNuH,UAAW,kBACT,kDAEJ,CACEK,KAAM,WACN5H,KAAM,yBACNuH,UAAW,kBACT,kDAEJ,CACEK,KAAM,WACN5H,KAAM,yBACNuH,UAAW,kBACT,kDAEJ,CACEK,KAAM,QACN5H,KAAM,sBACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,OACN5H,KAAM,qBACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,gBACN5H,KAAM,8BACNuH,UAAW,kBACT,kDAEJ,CACEK,KAAM,YACN5H,KAAM,0BACNuH,UAAW,kBACT,kDAEJ,CACEK,KAAM,aACN5H,KAAM,2BACNuH,UAAW,kBACT,kDAEJ,CACEK,KAAM,aACN5H,KAAM,2BACNuH,UAAW,kBACT,kDAEJ,CACEK,KAAM,aACN5H,KAAM,2BACNuH,UAAW,kBACT,kDAEJ,CACEK,KAAM,cACN5H,KAAM,4BACNuH,UAAW,kBACT,kDAEJ,CACEK,KAAM,gBACN5H,KAAM,8BACNuH,UAAW,kBACT,kDAEJ,CACEK,KAAM,QACN5H,KAAM,sBACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,cACN5H,KAAM,4BACNuH,UAAW,kBACT,kDAEJ,CACEK,KAAM,YACN5H,KAAM,0BACNuH,UAAW,kBACT,kDAEJ,CACEK,KAAM,qBACN5H,KAAM,mCACNuH,UAAW,kBACT,kDAEJ,CACEK,KAAM,OACN5H,KAAM,qBACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,aACN5H,KAAM,2BACNuH,UAAW,kBACT,kDAEJ,CACEK,KAAM,QACN5H,KAAM,sBACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,QACN5H,KAAM,sBACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,MACN5H,KAAM,oBACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,SACN5H,KAAM,uBACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,aACN5H,KAAM,2BACNuH,UAAW,kBACT,kDAEJ,CACEK,KAAM,iBACN5H,KAAM,+BACNuH,UAAW,kBACT,kDAEJ,CACEK,KAAM,iBACN5H,KAAM,wBACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,gBACN5H,KAAM,uBACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,iBACN5H,KAAM,wBACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,WACN5H,KAAM,yBACNuH,UAAW,kBACT,kDAEJ,CACEK,KAAM,mBACN5H,KAAM,wBACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,QACN5H,KAAM,sBACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,OACN5H,KAAM,qBACNuH,UAAW,kBAAM,oDAIvB,CACEK,KAAM,WACN5H,KAAM,UACNuH,UAAW,kBAAM,iDACjBO,SAAU,CACR,CACEF,KAAM,SACN5H,KAAM,iBACNuH,UAAW,kBAAM,6GAEnB,CACEK,KAAM,UACN5H,KAAM,kBACNuH,UAAW,kBAAM,mIAEnB,CACEK,KAAM,SACN5H,KAAM,iBACNuH,UAAW,kBAAM,mIAEnB,CACEK,KAAM,UACN5H,KAAM,kBACNuH,UAAW,kBAAM,yJAEnB,CACEK,KAAM,YACN5H,KAAM,oBACNuH,UAAW,kBAAM,yJAEnB,CACEK,KAAM,QACN5H,KAAM,gBACNuH,UAAW,kBAAM,yJAEnB,CACEK,KAAM,QACN5H,KAAM,gBACNuH,UAAW,kBAAM,yJAEnB,CACEK,KAAM,SACN5H,KAAM,iBACNuH,UAAW,kBAAM,yJAEnB,CACEK,KAAM,sBACN5H,KAAM,wBACNuH,UAAW,kBACT,yJAEJ,CACEK,KAAM,oBACN5H,KAAM,sBACNuH,UAAW,kBACT,mIAEJ,CACEK,KAAM,QACN5H,KAAM,gBACNuH,UAAW,kBAAM,yJAEnB,CACEK,KAAM,2BACN5H,KAAM,6BACNuH,UAAW,kBACT,yJAEJ,CACEK,KAAM,gBACN5H,KAAM,kBACNuH,UAAW,kBAAM,yJAEnB,CACEK,KAAM,kBACN5H,KAAM,oBACNuH,UAAW,kBACT,yJAEJ,CACEK,KAAM,oBACN5H,KAAM,sBACNuH,UAAW,kBACT,yJAEJ,CACEK,KAAM,uBACN5H,KAAM,wBACNuH,UAAW,kBACT,kDAEJ,CACEK,KAAM,qBACN5H,KAAM,sBACNuH,UAAW,kBACT,yJAEJ,CACEK,KAAM,OACN5H,KAAM,eACNuH,UAAW,kBAAM,yJAEnB,CACEK,KAAM,YACN5H,KAAM,oBACNuH,UAAW,kBAAM,yJAEnB,CACEK,KAAM,WACN5H,KAAM,mBACNuH,UAAW,kBAAM,yJAEnB,CACEK,KAAM,WACN5H,KAAM,mBACNuH,UAAW,kBAAM,2JAIvB,CACEK,KAAM,iBACN5H,KAAM,SACNuH,UAAW,kBAAM,iDACjBO,SAAU,CACR,CACEF,KAAM,WACN5H,KAAM,WACNuH,UAAW,kBAAM,uFAEnB,CACEK,KAAM,WACN5H,KAAM,WACNuH,UAAW,kBAAM,uFAEnB,CACEK,KAAM,WACN5H,KAAM,WACNuH,UAAW,kBAAM,uFAEnB,CACEK,KAAM,WACN5H,KAAM,WACNuH,UAAW,kBAAM,yFAIvB,CACEK,KAAM,kBACN5H,KAAM,UACNuH,UAAW,kBAAM,iDACjBO,SAAU,CACR,CACEF,KAAM,UACN5H,KAAM,UACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,aACN5H,KAAM,aACNuH,UAAW,kBAAM,oDAIvB,CACEK,KAAM,gBACN5H,KAAM,eACNuH,UAAW,kBAAM,iDACjBO,SAAU,CACR,CACEF,KAAM,UACN5H,KAAM,UACNuH,UAAW,kBAAM,2FAM3B,CACEK,KAAM,gBACN5H,KAAM,QACNuH,UAAW,kBAAM,iDACjBO,SAAU,CACR,CACEF,KAAM,UACN5H,KAAM,UACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,UACN5H,KAAM,UACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,UACN5H,KAAM,UACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,UACN5H,KAAM,UACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,UACN5H,KAAM,UACNuH,UAAW,kBAAM,kDAEnB,CACEK,KAAM,UACN5H,KAAM,UACNuH,UAAW,kBAAM,oDAIvB,CACEK,KAAM,IACNL,UAAW,kBAAM,iDACjBO,SAAU,CACR,CACE9H,KAAM,WACN4H,KAAM,YACNL,UAAW,kBAAM,oDAIvB,CACEK,KAAM,IACNC,SAAU,QAEZ,CAEED,KAAM,OACN5H,KAAM,MACNuH,UAAW,kBAAM,qD,kHC3fVQ,EAAS,CACpBC,WAAY,CACVC,OAAQ,wBAEVC,KAAM,CACJC,IAAK,MACLC,QAAS,UACTC,YAAa,kBACbC,MAAO,QACPC,SAAU,WACVC,KAAM,OACNC,UAAW,aAEbC,KAAM,CACJC,QAAS,CACPC,GAAI,KACJC,cAAe,SACfC,WAAY,yBACZC,cAAe,UACfC,cAAe,kBACfC,YAAa,OACbC,QAAS,UACTC,MAAO,QACPC,QAAS,WAEXC,MAAO,CACLC,MAAO,gBACPC,OAAQ,WAEVC,OAAQ,CACNF,MAAO,mBACPG,KAAM,0CACNC,QAAS,6CAEXC,SAAU,CACRL,MAAO,UACPG,KAAM,4CACNC,QAAS,iDAEXE,MAAO,CACLC,MAAO,QACPC,SAAU,WACVC,SAAU,WACVC,iBAAkB,mBAClBC,SAAU,YAEZC,WAAY,CACVC,QAAS,wBACTC,SAAU,uBACVC,WAAY,qCACZC,mBAAoB,4CACpBC,UAAW,sCACXC,cAAe,gCACfC,eAAgB,iBAChBC,iBAAkB,wBAClBC,iBAAkB,wBAClBC,cAAe,uBAGnBC,UAAW,CACTC,OAAQ,CACNC,uBAAwB,2BACxBC,IAAK,MACLC,UAAW,YACXC,OAAQ,SACRC,OAAQ,SACRC,UAAW,YACXC,QAAS,UACTC,SAAU,WACVC,WAAY,aACZC,OAAQ,SACRC,cAAe,iBAEjBZ,UAAW,YACXa,UAAW,CACTA,UAAW,YACXC,eAAgB,iBAChBC,aAAc,eACdC,uBAAwB,CACtBvC,MAAO,kBACPwC,YAAa,oDACbC,iBAAkB,0BAClBC,QAAS,6BAEXC,sBAAuB,CACrB3C,MAAO,mBACPwC,YAAa,yDACbC,iBAAkB,4BAClBC,QAAS,wCAEXE,cAAe,CACb5C,MAAO,iDACP0C,QAAS,4DAEXG,KAAM,CACJC,eAAgB,4BAChBC,YAAa,gCChGRtE,EAAS,CACpBC,WAAY,CACVC,OAAQ,UAEVC,KAAM,CACJC,IAAK,IACLC,QAAS,KACTC,YAAa,QACbC,MAAO,QACPC,SAAU,KACVC,KAAM,KACNC,UAAW,OAEbC,KAAM,CACJC,QAAS,CACPC,GAAI,KACJC,cAAe,KACfC,WAAY,QACZC,cAAe,KACfC,cAAe,OACfC,YAAa,KACbC,QAAS,KACTC,MAAO,KACPC,QAAS,MAEXC,MAAO,CACLC,MAAO,OACPC,OAAQ,MAEVC,OAAQ,CACNF,MAAO,mBACPG,KAAM,0CACNC,QAAS,6CAEXC,SAAU,CACRL,MAAO,UACPG,KAAM,4CACNC,QAAS,iDAEXE,MAAO,CACLC,MAAO,QACPC,SAAU,WACVC,SAAU,WACVC,iBAAkB,mBAClBC,SAAU,OAEZC,WAAY,CACVC,QAAS,wBACTC,SAAU,uBACVC,WAAY,qCACZC,mBAAoB,4CACpBC,UAAW,sCACXC,cAAe,gCACfC,eAAgB,iBAChBC,iBAAkB,wBAClBC,iBAAkB,wBAClBC,cAAe,uBAGnBC,UAAW,CACTC,OAAQ,CACNC,uBAAwB,2BACxBC,IAAK,MACLC,UAAW,YACXC,OAAQ,SACRC,OAAQ,SACRC,UAAW,YACXC,QAAS,UACTC,SAAU,WACVC,WAAY,aACZC,OAAQ,SACRC,cAAe,iBAEjBZ,UAAW,YACXa,UAAW,CACTA,UAAW,KACXC,eAAgB,OAChBC,aAAc,eACdC,uBAAwB,CACtBvC,MAAO,kBACPwC,YAAa,oDACbC,iBAAkB,0BAClBC,QAAS,6BAEXC,sBAAuB,CACrB3C,MAAO,mBACPwC,YAAa,yDACbC,iBAAkB,4BAClBC,QAAS,wCAEXE,cAAe,CACb5C,MAAO,iDACP0C,QAAS,4DAEXG,KAAM,CACJC,eAAgB,4BAChBC,YAAa,gCChGRtE,EAAS,CACpBC,WAAY,CACVC,OAAQ,mBAEVC,KAAM,CACJC,IAAK,QACLC,QAAS,iBACTC,YAAa,0BACbC,MAAO,QACPC,SAAU,kBACVC,KAAM,eACNC,UAAW,WAEbC,KAAM,CACJC,QAAS,CACPC,GAAI,IACJC,cAAe,SACfC,WAAY,wBACZC,cAAe,aACfC,cAAe,6BACfC,YAAa,UACbC,QAAS,YACTC,MAAO,QACPC,QAAS,YAEXC,MAAO,CACLC,MAAO,mBACPC,OAAQ,eAEVC,OAAQ,CACNF,MAAO,uBACPG,KAAM,+DACNC,QAAS,6CAEXC,SAAU,CACRL,MAAO,UACPG,KAAM,4CACNC,QAAS,iDAEXE,MAAO,CACLC,MAAO,QACPC,SAAU,WACVC,SAAU,WACVC,iBAAkB,mBAClBC,SAAU,WAEZC,WAAY,CACVC,QAAS,wBACTC,SAAU,uBACVC,WAAY,qCACZC,mBAAoB,4CACpBC,UAAW,sCACXC,cAAe,gCACfC,eAAgB,iBAChBC,iBAAkB,wBAClBC,iBAAkB,wBAClBC,cAAe,uBAGnBC,UAAW,CACTC,OAAQ,CACNC,uBAAwB,2BACxBC,IAAK,MACLC,UAAW,YACXC,OAAQ,SACRC,OAAQ,SACRC,UAAW,YACXC,QAAS,UACTC,SAAU,WACVC,WAAY,aACZC,OAAQ,SACRC,cAAe,iBAEjBZ,UAAW,YACXa,UAAW,CACTA,UAAW,YACXC,eAAgB,iBAChBC,aAAc,eACdC,uBAAwB,CACtBvC,MAAO,kBACPwC,YAAa,oDACbC,iBAAkB,0BAClBC,QAAS,6BAEXC,sBAAuB,CACrB3C,MAAO,mBACPwC,YAAa,yDACbC,iBAAkB,4BAClBC,QAAS,wCAEXE,cAAe,CACb5C,MAAO,iDACP0C,QAAS,4DAEXG,KAAM,CACJC,eAAgB,4BAChBC,YAAa,gCChGRtE,EAAS,CACpBC,WAAY,CACVC,OAAQ,oBAEVC,KAAM,CACJC,IAAK,MACLC,QAAS,KACTC,YAAa,WACbC,MAAO,QACPC,SAAU,KACVC,KAAM,MACNC,UAAW,WAEbC,KAAM,CACJC,QAAS,CACPC,GAAI,MACJC,cAAe,OACfC,WAAY,gBACZC,cAAe,SACfC,cAAe,eACfC,YAAa,MACbC,QAAS,SACTC,MAAO,KACPC,QAAS,MAEXC,MAAO,CACLC,MAAO,iBACPC,OAAQ,WAEVC,OAAQ,CACNF,MAAO,mBACPG,KAAM,0CACNC,QAAS,6CAEXC,SAAU,CACRL,MAAO,UACPG,KAAM,4CACNC,QAAS,iDAEXE,MAAO,CACLC,MAAO,QACPC,SAAU,WACVC,SAAU,WACVC,iBAAkB,mBAClBC,SAAU,SAEZC,WAAY,CACVC,QAAS,wBACTC,SAAU,uBACVC,WAAY,qCACZC,mBAAoB,4CACpBC,UAAW,sCACXC,cAAe,gCACfC,eAAgB,iBAChBC,iBAAkB,wBAClBC,iBAAkB,wBAClBC,cAAe,uBAGnBC,UAAW,CACTC,OAAQ,CACNC,uBAAwB,2BACxBC,IAAK,MACLC,UAAW,YACXC,OAAQ,SACRC,OAAQ,SACRC,UAAW,YACXC,QAAS,UACTC,SAAU,WACVC,WAAY,aACZC,OAAQ,SACRC,cAAe,iBAEjBZ,UAAW,YACXa,UAAW,CACTA,UAAW,YACXC,eAAgB,iBAChBC,aAAc,eACdC,uBAAwB,CACtBvC,MAAO,kBACPwC,YAAa,oDACbC,iBAAkB,0BAClBC,QAAS,6BAEXC,sBAAuB,CACrB3C,MAAO,mBACPwC,YAAa,yDACbC,iBAAkB,4BAClBC,QAAS,wCAEXE,cAAe,CACb5C,MAAO,iDACP0C,QAAS,4DAEXG,KAAM,CACJC,eAAgB,4BAChBC,YAAa,gCChGRtE,EAAS,CACpBC,WAAY,CACVC,OAAQ,uBAEVC,KAAM,CACJC,IAAK,MACLC,QAAS,WACTC,YAAa,oCACbC,MAAO,QACPC,SAAU,gBACVC,KAAM,OACNC,UAAW,qBAEbC,KAAM,CACJC,QAAS,CACPC,GAAI,OACJC,cAAe,aACfC,WAAY,sBACZC,cAAe,WACfC,cAAe,qBACfC,YAAa,SACbC,QAAS,eACTC,MAAO,QACPC,QAAS,WAEXC,MAAO,CACLC,MAAO,iBACPC,OAAQ,WAEVC,OAAQ,CACNF,MAAO,mBACPG,KAAM,0CACNC,QAAS,6CAEXC,SAAU,CACRL,MAAO,UACPG,KAAM,4CACNC,QAAS,iDAEXE,MAAO,CACLC,MAAO,QACPC,SAAU,WACVC,SAAU,WACVC,iBAAkB,mBAClBC,SAAU,cAEZC,WAAY,CACVC,QAAS,wBACTC,SAAU,uBACVC,WAAY,qCACZC,mBAAoB,4CACpBC,UAAW,sCACXC,cAAe,gCACfC,eAAgB,iBAChBC,iBAAkB,wBAClBC,iBAAkB,wBAClBC,cAAe,uBAGnBC,UAAW,CACTC,OAAQ,CACNC,uBAAwB,2BACxBC,IAAK,MACLC,UAAW,YACXC,OAAQ,SACRC,OAAQ,SACRC,UAAW,YACXC,QAAS,UACTC,SAAU,WACVC,WAAY,aACZC,OAAQ,SACRC,cAAe,iBAEjBZ,UAAW,YACXa,UAAW,CACTA,UAAW,YACXC,eAAgB,iBAChBC,aAAc,eACdC,uBAAwB,CACtBvC,MAAO,kBACPwC,YAAa,oDACbC,iBAAkB,0BAClBC,QAAS,6BAEXC,sBAAuB,CACrB3C,MAAO,mBACPwC,YAAa,yDACbC,iBAAkB,4BAClBC,QAAS,wCAEXE,cAAe,CACb5C,MAAO,iDACP0C,QAAS,4DAEXG,KAAM,CACJC,eAAgB,4BAChBC,YAAa,gCChGRtE,EAAS,CACpBC,WAAY,CACVC,OAAQ,2BAEVC,KAAM,CACJC,IAAK,UACLC,QAAS,QACTC,YAAa,wBACbC,MAAO,QACPC,SAAU,kBACVC,KAAM,eACNC,UAAW,mBAEbC,KAAM,CACJC,QAAS,CACPC,GAAI,KACJC,cAAe,YACfC,WAAY,0BACZC,cAAe,WACfC,cAAe,sBACfC,YAAa,OACbC,QAAS,UACTC,MAAO,QACPC,QAAS,WAEXC,MAAO,CACLC,MAAO,kBACPC,OAAQ,WAEVC,OAAQ,CACNF,MAAO,mBACPG,KAAM,0CACNC,QAAS,6CAEXC,SAAU,CACRL,MAAO,UACPG,KAAM,4CACNC,QAAS,iDAEXE,MAAO,CACLC,MAAO,QACPC,SAAU,WACVC,SAAU,eACVC,iBAAkB,mBAClBC,SAAU,qBAEZC,WAAY,CACVC,QAAS,4BACTC,SAAU,sBACVC,WAAY,qCACZC,mBAAoB,4CACpBC,UAAW,sCACXC,cAAe,gCACfC,eAAgB,iBAChBC,iBAAkB,wBAClBC,iBAAkB,wBAClBC,cAAe,uBAGnBC,UAAW,CACTC,OAAQ,CACNC,uBAAwB,0CACxBC,IAAK,MACLC,UAAW,YACXC,OAAQ,SACRC,OAAQ,SACRC,UAAW,YACXC,QAAS,UACTC,SAAU,WACVC,WAAY,aACZC,OAAQ,SACRC,cAAe,iBAEjBZ,UAAW,YACXa,UAAW,CACTA,UAAW,cACXC,eAAgB,oBAChBC,aAAc,iBACdC,uBAAwB,CACtBvC,MAAO,wBACPwC,YAAa,uDACbC,iBAAkB,0CAClBC,QAAS,4BAEXC,sBAAuB,CACrB3C,MAAO,wBACPwC,YACE,sEACFC,iBAAkB,6BAClBC,QAAS,8CAEXE,cAAe,CACb5C,MAAO,2DACP0C,QACE,mEAEJG,KAAM,CACJC,eAAgB,6BAChBC,YAAa,2BCxFrB7E,aAAIC,IAAI6E,QAER,IAAIC,EAAW,GACfA,EAAW,iCAAKA,GAAR,IAAkBC,KAAIC,KAAIC,KAAIC,KAAIC,KAAIC,OAG9C,IAAMC,EAAO/I,aAAaC,QAAQ,aAAe,KAG3C+I,EAAO,IAAIT,OAAQ,CACvBvE,OAAQ+E,EACRP,aAGaQ,I,YCtBfvF,aAAIC,IAAIuF,QAEO,UAAIA,OAAQ,CACzBC,MAAO,CACLzI,QAAS,CACP0I,kBAAkB,GAEpBC,OAAQ,CACNC,MAAO,CACLC,QAAS,UACTC,UAAW,UACXC,OAAQ,UACR7N,MAAO,UACP8N,KAAM,UACNC,QAAS,UACTC,QAAS,e,qBCfjBlG,aAAIC,IAAIkG,KAEOA,EAAf,EAAeA,I,wBCDfnG,aAAIC,IAAImG,QAERpG,aAAIC,IAAIoG,Q,yBCFRrG,aAAIC,IAAIqG,K,8GCORtG,aAAIC,IAAIsG,OAAgB,CAEtBC,UAAW,CACTC,SACAC,eACAC,SACAC,W,gBCdJ5G,aAAIC,IAAI4G,sB,0BCAR7G,aAAIC,IAAI6G,MAER9G,aAAID,UAAU,YAAa+G,M,6KCHvBC,GAAkB,WAElB,IAAIC,EAGHC,EAAa,WAChB,IAAIC,EAYJ,OAVAA,EAAS9J,OAAO+J,cAAcD,OAEpBF,IACAE,EAASA,EAASE,SAAShK,OAAOiB,IAAI2I,EAAU,eAAiBI,SAAShK,OAAOiB,IAAI2I,EAAU,mBAGnGE,GAAkBG,eAAeC,YACjCJ,GAAkBK,kBAAkBD,YACpCJ,GAAkBM,eAAeF,YAEhCJ,GAIR,MAAO,CACNtJ,KAAM,SAAS6J,GACLT,EAAW5J,OAAOC,QAAQoK,IAGpCH,UAAW,WACV,OAAOL,KAGFS,WAAY,WACR,OAAOV,IAhCG,GAuCPD,MCvCXS,GAAiB,WAEjB,IAAIR,EAGHC,EAAa,WAChB,IAAIC,EAAS,EAMb,OAJUF,IACAE,EAAS9J,OAAOuK,aAAaX,IAGhCE,GAIR,MAAO,CACNtJ,KAAM,SAAS6J,GACLT,EAAW5J,OAAOC,QAAQoK,IAGpCH,UAAW,WACV,OAAOL,KAGFS,WAAY,WACR,OAAOV,IA1BE,GAiCNQ,M,0BCjCXI,GAAqB,WAExB,IAAIZ,EACGa,EAGHC,EAAQ,WACX,IAAIC,EAAS,IAEiB,qBAAnBV,iBACVU,EAASV,eAAeC,aAGnBO,EAAU,IAAIG,OAAOhB,EAAU,CACpCiB,OAAQ,CACPF,OAAQA,EACRG,OAAQ,GACRC,SAAU,CACTC,IAAK,WACJ,IAAIC,EAAM,EACmBjL,OAAOE,UAkBpC,OAhBIF,OAAOkL,eAAe,OACK,qBAAnBjB,gBAAkCA,eAAekB,YAC3DF,GAAYhB,eAAeC,aAGK,qBAAtBC,mBAAqCA,kBAAkBgB,YACjEF,GAAYd,kBAAkBD,cAGD,qBAAnBD,gBAAkCA,eAAemB,qBAC3DH,GAAYhB,eAAeoB,sBAI7BJ,GAAY,EAELA,GAERK,KAAM,SAASC,GACd,OAAOvL,OAAO2K,OAAOf,GAAU0B,MAEhCE,MAAO,SAASD,GACf,IAAIE,EAAOzL,OAAOE,UAEdwL,EAAY1B,SAAShK,OAAOiB,IAAI2I,EAAU,UAC1C+B,EAAY3B,SAAShK,OAAOiB,IAAIwK,EAAM,UACtCG,EAAiB5L,OAAO2K,OAAOf,GAAU0B,KAE7C,OAAOK,EAAYD,EAAYE,OAMnCnB,EAAQoB,aAER7L,OAAO8L,kBAAiB,WACvBrB,EAAQsB,mBAKV,MAAO,CACNvL,KAAM,SAAS6J,GACLT,EAAW5J,OAAOC,QAAQoK,GAErBT,GAKdc,KAGDsB,OAAQ,WACHvB,GACHA,EAAQsB,iBA9Ea,GAsFVvB,MCtFXyB,I,UAAwB,WAE3B,IAAIrC,EAGAc,EAAQ,WACX,IAAIwB,EAASlM,OAAOa,KAAK+I,EAAU,gBAC/BuC,EAAWnM,OAAOa,KAAK+I,EAAU,cACjCwC,EAAapM,OAAOa,KAAK+I,EAAU,gBAEnCE,EAASH,gBAAgBO,YAE7BJ,GAAkBE,SAAShK,OAAOuK,aAAa6B,IAE/CtC,EAASA,EAASE,SAAShK,OAAOiB,IAAI2I,EAAU,cAAgBI,SAAShK,OAAOiB,IAAI2I,EAAU,iBAC9FE,EAASA,EAASE,SAAShK,OAAOiB,IAAI2I,EAAU,eAAiBI,SAAShK,OAAOiB,IAAI2I,EAAU,kBAE/FE,EAASA,EAASE,SAAShK,OAAOiB,IAAIkL,EAAU,eAAiBnC,SAAShK,OAAOiB,IAAIkL,EAAU,kBAC/FrC,EAASA,EAASE,SAAShK,OAAOiB,IAAIkL,EAAU,cAAgBnC,SAAShK,OAAOiB,IAAIkL,EAAU,iBAE9FrC,GAAkB,EAElB9J,OAAOiB,IAAIiL,EAAQ,SAAUpC,EAAS,OAIvC,MAAO,CACNtJ,KAAM,SAAS6J,GACLT,EAAW5J,OAAOC,QAAQoK,GAErBT,IAKdc,IAGS1K,OAAO8L,kBAAiB,WAChCpB,SAIFsB,OAAQ,WACPtB,MA5CyB,IAmDbuB,MCnDX9B,GAAoB,WAEpB,IAAIP,EAGAC,EAAa,WACb,IAAIC,EAAS,EAMb,OAJIF,IACAE,EAAS9J,OAAOuK,aAAaX,IAG1BE,GAId,MAAO,CACNtJ,KAAM,SAAS6J,GACLT,EAAW5J,OAAOC,QAAQoK,IAO9Bc,QAAS,WACL,OAAOnL,OAAOqM,SAASrM,OAAOE,UAAW,oBAG7CoK,WAAY,WACR,OAAOV,GAGXM,UAAW,WACP,OAAOL,MAlCK,GAyCTM,MCxCXmC,GAAe,WAElB,IAAI5B,EAAQ,SAAU3K,GACrB,IAAIwM,EAAWvM,OAAOa,KAAKd,EAAS,WAChCyM,EAAaxM,OAAOa,KAAKd,EAAS,cAClC0M,EAAezM,OAAOa,KAAKd,EAAS,gBACpC2M,EAAe1M,OAAOa,KAAKd,EAAS,gBAEnCwM,IAKLvM,OAAO2M,WAAWJ,EAAU,CAC3BK,cAAc,EACdC,oBAAoB,EACpBC,qBAAqB,EACrBC,sBAAsB,EACtBC,oBAAoB,EACpBC,kBAAkB,EAClBnD,OAAQ,WACP,IAAIA,EAEJ,OAAI9J,OAAOkN,iBAAiB,MACpBlN,OAAOmN,QAAQZ,EAAU,sBAAwBvC,SAAShK,OAAOoN,KAAKb,EAAU,uBAAyB,IACtGvM,OAAOkL,eAAe,OAASlL,OAAOmN,QAAQZ,EAAU,eAC3DvC,SAAShK,OAAOoN,KAAKb,EAAU,iBAEtCzC,EAASH,gBAAgBO,YAErBqC,IACHzC,EAASA,EAASE,SAAShK,OAAOiB,IAAIsL,EAAU,eAAiBvC,SAAShK,OAAOiB,IAAIsL,EAAU,mBAG5FE,IACH3C,GAAkBE,SAAShK,OAAOiB,IAAIwL,EAAc,WACpD3C,EAASA,EAASE,SAAShK,OAAOiB,IAAIwL,EAAc,eAAiBzC,SAAShK,OAAOiB,IAAIwL,EAAc,mBAGpGD,IACH1C,EAASA,EAASE,SAAShK,OAAOiB,IAAIuL,EAAY,gBAAkBxC,SAAShK,OAAOiB,IAAIuL,EAAY,oBAGjGE,IACH5C,GAAkBE,SAAShK,OAAOiB,IAAIyL,EAAc,WACpD5C,EAASA,EAASE,SAAShK,OAAOiB,IAAIyL,EAAc,eAAiB1C,SAAShK,OAAOiB,IAAIyL,EAAc,mBAKzG5C,GAAkB,EAEXA,MAKT9J,OAAOiC,GAAGlC,EAAS,wBAAyB,WAAW,SAAS1H,GAC/D,GAAiB,IAAbA,EAAEgV,QAIL,OAHAC,EAAgBvN,GAChB1H,EAAEgJ,kBAEK,KAITrB,OAAOiC,GAAGlC,EAAS,0BAA2B,SAAS,SAAS1H,GAC/DiV,EAAgBvN,QAIduN,EAAkB,SAASvN,GAC9B,IAAIwN,EAAavN,OAAOa,KAAKd,EAAS,aAClCwM,EAAWvM,OAAOa,KAAKd,EAAS,WAC1ByN,EAAWxN,OAAOa,KAAKd,EAAS,YAEpC,GAA8B,IAA1ByN,EAASrR,MAAM1F,OAAnB,CAIN,IAAIgX,EAAO3U,SAASQ,cAAc,OAClC0G,OAAO0B,SAAS+L,EAAM,2CAEtB,IAiBIC,EAjBAC,EAAO,GACXA,GAAQ,0CACRA,GAAQ,UACRA,GAAQ,2DACRA,GAAQ,gGACRA,GAAQ,WACRA,GAAQ,sDACRA,GAAQ,2DACRA,GAAQ,WACRA,GAAQ,SACRA,GAAQ,oHAAsHH,EAASrR,MAAQ,SAE/I6D,OAAO4N,QAAQH,EAAME,GACrBJ,EAAWnT,YAAYqT,GACvBD,EAASrR,MAAQ,GACjBoQ,EAASsB,UAAY7D,SAAShK,OAAOiB,IAAIsM,EAAY,YAGjDG,EAAK1N,OAAO/J,KAAKsW,GAAUxQ,IAAI,QAClC2R,EAAG1B,SAGJ1Q,YAAW,WACV,IAAImS,EAAO3U,SAASQ,cAAc,OAClC0G,OAAO0B,SAAS+L,EAAM,6CAEtB,IAmBIC,EAnBAC,EAAO,GACXA,GAAQ,0CACRA,GAAQ,sDACRA,GAAQ,2DACRA,GAAQ,WACRA,GAAQ,UACRA,GAAQ,uGACRA,GAAQ,4DACRA,GAAQ,WACRA,GAAQ,SACRA,GAAQ,mHACRA,GAAQ,kEACRA,GAAQ,SAER3N,OAAO4N,QAAQH,EAAME,GACrBJ,EAAWnT,YAAYqT,GACvBD,EAASrR,MAAQ,GACjBoQ,EAASsB,UAAY7D,SAAShK,OAAOiB,IAAIsM,EAAY,YAGjDG,EAAK1N,OAAO/J,KAAKsW,GAAUxQ,IAAI,QAClC2R,EAAG1B,WAEF,OAIJ,MAAO,CACNxL,KAAM,SAAS6J,GAEdK,EAAM1K,OAAOC,QAAQoK,IAGsB,kBAAvCyD,UAAU7Q,OAAO8Q,SAASC,WAAwE,sBAAvCF,UAAU7Q,OAAO8Q,SAASC,WACxF1S,YAAW,WACD,IAAK2S,SAASC,UAAU,qBAAsB,CAC1C,IAAIC,EAAU,IAAIC,MAAK,IAAIA,MAAOC,UAAY,MAE1DJ,SAASK,UAAU,oBAAqB,EAAG,CAAEH,QAASA,IAElDnO,OAAOC,QAAQ,2BAClBD,OAAOC,QAAQ,0BAA0BsO,WAGnC,MAILC,MAAO,SAASzO,GACZ2K,EAAM3K,KA9JC,GAqKJuM,M,0BCtKXmC,GAAyB,WAEzB,IAAI7E,EAIAc,EAAQ,WACW,IAAIgE,YAAY9E,EAAU,CACzC+E,SAAS,EACTC,UAAW,YACXC,UAAW,QACXC,QAAS,sBACTC,SAAU,yBAGd,IAAIC,EAAShP,OAAOa,KAAK+I,EAAU,qBAC/BqF,EAAUjP,OAAOa,KAAK+I,EAAU,sBAChC9I,EAAUd,OAAOa,KAAK+I,EAAU,sBAChCsF,EAASlP,OAAOa,KAAK+I,EAAU,qBAEnC5J,OAAO2M,WAAW7L,EAAS,CACvBqO,kBAAkB,EAClBpC,sBAAsB,EACtBC,oBAAoB,EACpBlD,OAAQ,WACJ,IAAIA,EAASE,SAAShK,OAAO+J,cAAcD,QA6B3C,OA3BIkF,IACAlF,GAAkBE,SAAShK,OAAOuK,aAAayE,IAC/ClF,GAAkBE,SAAShK,OAAOiB,IAAI+N,EAAQ,cAC9ClF,GAAkBE,SAAShK,OAAOiB,IAAI+N,EAAQ,kBAG9CC,IACAnF,GAAkBE,SAAShK,OAAOiB,IAAIgO,EAAS,cAC/CnF,GAAkBE,SAAShK,OAAOiB,IAAIgO,EAAS,kBAG/CnO,IACAgJ,GAAkBE,SAAShK,OAAOiB,IAAIH,EAAS,cAC/CgJ,GAAkBE,SAAShK,OAAOiB,IAAIH,EAAS,kBAG/CoO,IACApF,GAAkBE,SAAShK,OAAOuK,aAAa2E,IAC/CpF,GAAkBE,SAAShK,OAAOiB,IAAIiO,EAAQ,cAC9CpF,GAAkBE,SAAShK,OAAOiB,IAAIiO,EAAQ,kBAGlDpF,GAAkBE,SAAShK,OAAOiB,IAAI2I,EAAU,eAChDE,GAAkBE,SAAShK,OAAOiB,IAAI2I,EAAU,kBAEhDE,GAAkB,EAEXA,MAMnB,MAAO,CACHtJ,KAAM,SAAS6J,GACXT,EAAW5J,OAAOC,QAAQoK,GAErBT,GAKLc,MArEiB,GA4Ed+D,MC5EXW,GAA6B,WAE7B,IAAIxF,EAIAc,EAAQ,WACR,IAAIsE,EAAShP,OAAOa,KAAK+I,EAAU,qBAC/BqF,EAAUjP,OAAOa,KAAK+I,EAAU,sBAEjB,IAAI8E,YAAY9E,EAAU,CACzC+E,SAAS,EACTC,UAAW,YACXC,UAAW,QACXC,QAAS,+BACTC,SAAU,kCAGd/O,OAAO2M,WAAWsC,EAAS,CACvBE,kBAAkB,EAClBpC,sBAAsB,EACtBC,oBAAoB,EACpBlD,OAAQ,WACJ,IAAIA,EAASE,SAAShK,OAAO+J,cAAcD,QAkB3C,OAhBIkF,IACAlF,GAAkBE,SAAShK,OAAOuK,aAAayE,IAC/ClF,GAAkBE,SAAShK,OAAOiB,IAAI+N,EAAQ,cAC9ClF,GAAkBE,SAAShK,OAAOiB,IAAI+N,EAAQ,kBAG9CC,IACAnF,GAAkBE,SAAShK,OAAOiB,IAAIgO,EAAS,cAC/CnF,GAAkBE,SAAShK,OAAOiB,IAAIgO,EAAS,kBAGnDnF,GAAkBE,SAAShK,OAAOiB,IAAI2I,EAAU,eAChDE,GAAkBE,SAAShK,OAAOiB,IAAI2I,EAAU,kBAEhDE,GAAkB,EAEXA,MAMnB,MAAO,CACHtJ,KAAM,SAAS6J,GACXT,EAAW5J,OAAOC,QAAQoK,GAErBT,GAKLc,KAGJJ,WAAY,WACR,OAAOV,IA5Dc,GAmElBwF,MCnEXC,GAAqB,WAErB,IAAIzF,EAEA0F,EACAC,EACAC,EAGAC,EAAoB,WACpB,IAEIT,EAAShP,OAAOa,KAAK+I,EAAU,qBAC/BqF,EAAUjP,OAAOa,KAAK+I,EAAU,sBAEhCE,EAASE,SAAShK,OAAO+J,cAAcD,QAkB3C,OAhBIkF,IACAlF,GAAkBE,SAAShK,OAAOuK,aAAayE,IAC/ClF,GAAkBE,SAAShK,OAAOiB,IAAI+N,EAAQ,cAC9ClF,GAAkBE,SAAShK,OAAOiB,IAAI+N,EAAQ,kBAG9CC,IACAnF,GAAkBE,SAAShK,OAAOiB,IAAIgO,EAAS,cAC/CnF,GAAkBE,SAAShK,OAAOiB,IAAIgO,EAAS,kBAGnDnF,GAAkBE,SAAShK,OAAOiB,IAAI2I,EAAU,eAChDE,GAAkBE,SAAShK,OAAOiB,IAAI2I,EAAU,kBAEhDE,GAAkB,EAEXA,GAGPY,EAAQ,WACW,IAAIgE,YAAY9E,EAAU,CACzC+E,SAAS,EACTC,UAAW,YACXC,UAAW,QACXC,QAAS,uBACTC,SAAU,2BAIdW,EAAqB,WACrB1P,OAAO2M,WAAW2C,EAAuB,CACrCzC,oBAAoB,EACpBE,sBAAsB,EACtBC,oBAAoB,EACpBlD,OAAQ,WACJ,OAAO2F,QAKfE,EAAY,WACZ3P,OAAO2M,WAAW4C,EAAc,CAC5B1C,oBAAoB,EACpBE,sBAAsB,EACtBC,oBAAoB,EACpBlD,OAAQ,WACJ,OAAO2F,QAKfG,EAAgB,WAChB5P,OAAO2M,WAAW6C,EAAkB,CAChC3C,oBAAoB,EACpBE,sBAAsB,EACtBC,oBAAoB,EACpBlD,OAAQ,WACJ,OAAO2F,QAcnB,MAAO,CACHjP,KAAM,SAAS6J,GACXT,EAAW5J,OAAOC,QAAQoK,GAC1BiF,EAAwBtP,OAAOC,QAAQ,gCACvCsP,EAAevP,OAAOC,QAAQ,uBAC9BuP,EAAmBxP,OAAOC,QAAQ,2BAElCyK,IACAgF,IACAC,IACAC,MAlGa,GA2GVP,MC3GXQ,GAAsB,WAEtB,IAAIjG,EAIAc,EAAQ,WACR,IAAIsE,EAAShP,OAAOa,KAAK+I,EAAU,qBAC/BqF,EAAUjP,OAAOa,KAAK+I,EAAU,sBAChCkG,EAAO9P,OAAOa,KAAK+I,EAAU,sBAC7BmG,EAAU/P,OAAOa,KAAK+I,EAAU,yBAEjB,IAAI8E,YAAY9E,EAAU,CACzC+E,SAAS,EACTC,UAAW,YACXC,UAAW,QACXC,QAAS,wBACTC,SAAU,2BAGd/O,OAAO2M,WAAWoD,EAAS,CACvBZ,kBAAkB,EAClBpC,sBAAsB,EACtBC,oBAAoB,EACpBlD,OAAQ,WACJ,IAAIA,EAASE,SAAShK,OAAO+J,cAAcD,QA2B3C,OAzBIkF,IACAlF,GAAkBE,SAAShK,OAAOuK,aAAayE,IAC/ClF,GAAkBE,SAAShK,OAAOiB,IAAI+N,EAAQ,cAC9ClF,GAAkBE,SAAShK,OAAOiB,IAAI+N,EAAQ,kBAG9CC,IACAnF,GAAkBE,SAAShK,OAAOiB,IAAIgO,EAAS,cAC/CnF,GAAkBE,SAAShK,OAAOiB,IAAIgO,EAAS,kBAG/Cc,IACAjG,GAAkBE,SAAShK,OAAOuK,aAAauF,IAC/ChG,GAAkBE,SAAShK,OAAOiB,IAAI6O,EAAM,cAC5ChG,GAAkBE,SAAShK,OAAOiB,IAAI6O,EAAM,iBAE5ChG,GAAkBE,SAAShK,OAAOiB,IAAI8O,EAAS,cAC/CjG,GAAkBE,SAAShK,OAAOiB,IAAI8O,EAAS,kBAGnDjG,GAAkBE,SAAShK,OAAOiB,IAAI2I,EAAU,eAChDE,GAAkBE,SAAShK,OAAOiB,IAAI2I,EAAU,kBAEhDE,GAAkB,EAEXA,MAMnB,MAAO,CACHtJ,KAAM,SAAS6J,GACXT,EAAW5J,OAAOC,QAAQoK,GAErBT,GAKLc,KAGJJ,WAAY,WACR,OAAOV,IAvEO,GA8EXiG,M,0BC3EXG,GAAiB,WAEjB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEAC,EAAS,GAETC,GAAa,EACbC,GAAW,EACXC,GAAgB,EAChBC,EAAkB,IAClBC,EAAgB,qCAChBC,EAAe,0BACfC,EAAa,EAGbC,EAAgB,WAChBL,GAAgB,EAChB5Q,OAAO0B,SAAS8O,EAAqBM,GAEjCV,GACApQ,OAAOkR,KAAKd,IAIhBe,EAAgB,WAChBP,GAAgB,EAChB5Q,OAAO2B,YAAY6O,EAAqBM,GAEpCV,IACID,EAAOhU,MAAM1F,OAASua,EACtBhR,OAAOkR,KAAKd,GAEZpQ,OAAOoR,KAAKhB,EAAY,UAKhCiB,EAAgB,WACZd,IAA0BvQ,OAAOqM,SAASiE,EAAiB,UAC3DgB,EAAEf,GAAuBgB,SAAS,UAClCD,EAAEf,GAAuBgB,SAAS,YAItCC,EAAgB,WACZjB,GAAyBvQ,OAAOqM,SAASiE,EAAiB,SAC1DgB,EAAEf,GAAuBgB,SAAS,WAItCE,EAAiB,WACjB,GAAIf,GAAcD,IAAWN,EAAOhU,MAMhC,OALAgV,IACAnR,OAAO0B,SAASuO,EAASc,GACzBM,SACArR,OAAO0R,aAAarB,GAKxBI,EAASN,EAAOhU,MAEhB6D,OAAO2B,YAAYsO,EAASc,GAC5BE,IACAO,IAEAlW,YAAW,WACPgW,EAAEK,KAAK,CACHC,IAAKC,SAAW,wBAChB5b,KAAM,CACF6b,MAAOrB,GAEXsB,SAAU,OACVlJ,QAAS,SAASmJ,GACdtB,GAAa,EACbS,IACAnR,OAAO0B,SAASuO,EAASc,GACzB/Q,OAAO4N,QAAQyC,EAAgB2B,GAC/BX,IACArR,OAAO0R,aAAarB,IAExBvV,MAAO,SAASkX,GACZtB,GAAa,EACbS,IACAnR,OAAO0B,SAASuO,EAASc,GACzB/Q,OAAO4N,QAAQyC,EAAgB,8FAC/BgB,IACArR,OAAO0R,aAAarB,QAG7B,MAGH4B,EAAgB,SAAS5Z,GACzB8X,EAAOhU,MAAQ,GACfsU,EAAS,GACTC,GAAa,EACb1Q,OAAOkR,KAAKd,GACZpQ,OAAO2B,YAAYsO,EAASc,GAC5BS,KAGAU,EAAgB,WAChB,GAAI/B,EAAOhU,MAAM1F,OAASua,EAItB,OAHAG,SACAK,IAKiB,GAAjBZ,IAIAD,GACA5V,aAAa4V,GAGjBA,EAAWrV,YAAW,WAClBmW,MACDZ,KAIP,MAAO,CACHrQ,KAAM,SAAS6J,GACX4F,EAAUjQ,OAAOC,QAAQoK,GAEpB4F,IAILC,EAAQlQ,OAAOa,KAAKoP,EAAS,sBAC7BE,EAASnQ,OAAOa,KAAKoP,EAAS,iBAC9BG,EAAapQ,OAAOa,KAAKoP,EAAS,uBAClCI,EAAiBrQ,OAAOa,KAAKoP,EAAS,yBACtCK,EAAkBtQ,OAAOa,KAAKoP,EAAS,kBACvCM,EAAwBvQ,OAAOa,KAAKoP,EAAS,4BAC/BjQ,OAAOa,KAAKoP,EAAS,gBACnCO,EAAsBxQ,OAAOa,KAAKoP,EAAS,oCAG3CjQ,OAAOoB,SAAS+O,EAAQ,QAAS+B,GACjClS,OAAOoB,SAAS+O,EAAQ,QAAS+B,GAGjChC,EAAMiC,WAAa,SAAS9Z,GACxB,IAAIoE,EAAMpE,EAAE+Z,UAAY/Z,EAAEgV,SAAW,EAC1B,IAAP5Q,GACApE,EAAEgJ,kBAIVrB,OAAOoB,SAASgP,EAAY,QAAS6B,OAUlCjC,MC7Kf/S,OAAO+C,OAASA,QAGhB/C,OAAO2N,OAASA,QAGhB3N,OAAOgR,SAAWA,QAGlBhR,OAAOoV,SAAWA,QAGlBpV,OAAOqV,SAAWA,QAGlBrV,OAAOyC,aAAeA,QAGtBzC,OAAOsV,OAASA,QAGhBtV,OAAOyR,YAAcA,QAGrBzR,OAAOuV,YAAcA,QAGrBvV,OAAOwV,SAAWA,QAGlBxV,OAAOyV,SAAWA,QAIlBzV,OAAO0V,cAAgBA,QAGvB1V,OAAO2V,kBAAoBA,QAG3B3V,OAAO0M,gBAAkBA,GAGzB1M,OAAOmN,eAAiBA,GAGxBnN,OAAOgN,eAAiBA,QAGxBhN,OAAO4V,qBAAuBA,QAG9B5V,OAAOuN,mBAAqBA,GAG5BvN,OAAOgP,sBAAwBA,GAG/BhP,OAAOkN,kBAAoBA,GAI3BlN,OAAOqP,aAAeA,GAGtBrP,OAAO6V,iBAAmBA,QAG1B7V,OAAO8V,qBAAuBA,QAG9B9V,OAAOwR,uBAAyBA,GAGhCxR,OAAOmS,2BAA6BA,GAGpCnS,OAAOoS,mBAAqBA,GAG5BpS,OAAO4S,oBAAsBA,GAG7B5S,OAAO+V,kBAAoBA,QAG3B/V,OAAOgW,kBAAoBA,QAG3BhW,OAAO+S,eAAiBA,G,4BCxFxBpN,aAAIC,IAAIqQ,MAERtQ,aAAID,UAAU,aAAcuQ,M,UCI5BtQ,aAAIuQ,OAAOC,eAAgB,EAM3BnW,OAAOiM,iBAAmBA,OAE1BjM,OAAOoW,YAAcA,IAgBrBC,OAAW9S,OAEX+S,EAAOC,YAAW,SAACC,EAAIC,EAAMC,GAE3Bnb,QAAQ+C,IAAI,CAACqY,OAAMlR,SAASmR,UAAexZ,KAAKsZ,GAGhDC,OAAMlR,SAASoR,QAGfxY,YAAW,WACT2B,OAAO8W,SAAS,EAAG,KAClB,QAKLnR,aAAIC,IAAImR,IAAM,CACZC,KAAM,CACJC,SAAUjV,uCACVkV,UAAWlV,oFACXmV,yBAAyB,EAEzBC,YACEpV,uBAEFqV,sBACErV,iCAIFsV,mBAAmB,GAErB5a,QAAS,CACP6a,OAAQ,CAACvV,0DAIb,IAAI2D,aAAI,CACN2Q,SACAK,aACAzL,OACAsM,UACAC,OAAQ,SAACC,GAAD,OAAOA,EAAEC,MAChBC,OAAO,S,kLCxEGC,EAAoB,kBACpBhB,EAAsB,oBACtBiB,EAAyB,uBACzBC,EAA8B,2BAI5B,QACbzX,MAAO,CACL4V,OAAQA,EACR8B,QAAS9B,GAEX1V,QAAS,CAMPyX,aAAc,SAAA3X,GAAK,OAAI,SAACyF,EAAMmS,GAC5B,OAAOC,IAAWrZ,IAAIwB,EAAM4V,OAAQnQ,EAAMmS,MAG9CtX,SAAO,sBAMJiX,GANI,SAMevX,EAAOO,GACzBP,EAAMQ,OAAO+W,EAAmBhX,MAP7B,iBAcJgW,GAdI,SAciBvW,GACpBA,EAAMQ,OAAO+V,MAfV,iBAsBJiB,GAtBI,SAsBoBxX,GACvBA,EAAMQ,OAAOgX,MAvBV,iBA+BJC,GA/BI,SA+ByBzX,EAAOO,GACnCP,EAAMQ,OAAOiX,EAA6BlX,MAhCvC,GAmCPI,WAAS,sBACN4W,GADM,SACavX,EAAOO,GACzBP,EAAM4V,OAASrV,KAFV,iBAINgW,GAJM,SAIevW,GACpBA,EAAM4V,OAASzc,OAAO2e,OAAO,GAAI9X,EAAM0X,YALlC,iBAONF,GAPM,SAOkBxX,GACvBA,EAAM4V,OAAS5V,EAAM0X,QAAUve,OAAO2e,OACpC,GACA9X,EAAM0X,QACNK,KAAKC,MAAMpW,aAAaC,QAAQ,eAX7B,iBAcN4V,GAdM,SAcuBzX,EAAOO,GACnCP,EAAM4V,OAASqC,IAAMjY,EAAM4V,OAAQrV,MAf9B,K,oCC9DX,W,qCCAA,sCAKIwU,EAAW,SAAS3S,EAAWC,GAE/B,IAAIC,EAAMC,KAINC,EAAUC,OAAOC,QAAQN,GACzB8L,EAAOzL,OAAOE,UAElB,QAAgB7E,IAAZ0E,EAAJ,CAKA,IAAII,EAAiB,CACjBwK,OAAQ,CACJ8K,SAAS,EACTC,iBAAiB,GAErBC,gBAAiB,CACbF,SAAS,EACTC,iBAAiB,IAQrBrV,EAAS,CAKTC,UAAW,SAASV,GAahB,OAZII,OAAO/J,KAAK8J,GAASQ,IAAI,UACzBV,EAAMG,OAAO/J,KAAK8J,GAAShE,IAAI,WAG/BsE,EAAOG,KAAKZ,GAGZS,EAAOI,QAEPT,OAAO/J,KAAK8J,GAASW,IAAI,SAAUb,IAGhCA,GAOXW,KAAM,SAASZ,GACXC,EAAIc,OAAS,GAGbd,EAAID,QAAUI,OAAOmB,WAAW,GAAIhB,EAAgBP,IAOxDa,MAAO,WACH,IAAImV,GAAoB,EACpBC,EAAgB,EAEpB5Y,OAAO6Y,iBAAiB,UAAU,WAC9B,IAAgBC,EAAZpL,EAAS,EAET3K,OAAOkN,iBAAiB,QAAgD,IAAvCrN,EAAID,QAAQ+K,OAAO+K,iBAIpD1V,OAAOkL,eAAe,QAAwC,IAA/BrL,EAAID,QAAQ+K,OAAO8K,UAIlDzV,OAAOkL,eAAe,MACtBP,EAAS9K,EAAID,QAAQ+K,OAAO8K,QACrBzV,OAAOkN,iBAAiB,QAC/BvC,EAAS9K,EAAID,QAAQ+K,OAAO+K,iBAGhCK,EAAK/V,OAAOgW,eAGPhW,OAAOkN,iBAAiB,OAASrN,EAAID,QAAQ+V,gBAAgBD,iBAC7D1V,OAAOkL,eAAe,OAASrL,EAAID,QAAQ+V,gBAAgBF,SAExDM,EAAKpL,GAAUkL,EAAgBE,IACiB,IAA5CtK,EAAKwK,aAAa,uBAClBxK,EAAK5Q,aAAa,qBAAsB,MAGxC+a,IACAvV,EAAOuB,aAAa,WAAY/B,GAChC+V,GAAoB,MAGwB,IAA5CnK,EAAKwK,aAAa,uBAClBxK,EAAKyK,gBAAgB,sBAGA,GAArBN,IACAvV,EAAOuB,aAAa,YAAa/B,GACjC+V,GAAoB,IAI5BC,EAAgBE,GAEZA,EAAKpL,IAC2C,IAA5Cc,EAAKwK,aAAa,uBAClBxK,EAAK5Q,aAAa,qBAAsB,MAGxC+a,IACAvV,EAAOuB,aAAa,WAAY/B,GAChC+V,GAAoB,MAGwB,IAA5CnK,EAAKwK,aAAa,uBAClBxK,EAAKyK,gBAAgB,sBAGA,GAArBN,IACAvV,EAAOuB,aAAa,YAAa/B,GACjC+V,GAAoB,SAUxChU,aAAc,SAASxG,EAAM+a,GACzB,IAAK,IAAI5f,EAAI,EAAGA,EAAIsJ,EAAIc,OAAOlK,OAAQF,IAAK,CACxC,IAAImD,EAAQmG,EAAIc,OAAOpK,GACvB,GAAImD,EAAM0B,MAAQA,EAAM,CACpB,GAAiB,GAAb1B,EAAMmI,IAMN,OAAOnI,EAAMoI,QAAQjL,KAAKiJ,KAAMD,EAAKsW,GALrC,GAAmB,GAAfzc,EAAMqI,MAEN,OADAlC,EAAIc,OAAOpK,GAAGwL,OAAQ,EACfrI,EAAMoI,QAAQjL,KAAKiJ,KAAMD,EAAKsW,MASzD/U,SAAU,SAAShG,EAAM0G,EAASD,GAC9BhC,EAAIc,OAAO5J,KAAK,CACZqE,KAAMA,EACN0G,QAASA,EACTD,IAAKA,EACLE,OAAO,MAmCnB,OAtBAlC,EAAImC,YAAc,SAASpC,GACvBO,EAAiBP,GAMrBC,EAAIoC,GAAK,SAAS7G,EAAM0G,GACpB,OAAOzB,EAAOe,SAAShG,EAAM0G,IAQjCzB,EAAOC,UAAUlJ,MAAMyI,EAAK,CAACD,KAGtB,EAGAC,IAIoD,qBAAnB1H,EAAOD,UAC/CC,EAAOD,QAAUoa,GAGNA,W,6DC/Mf,IAAIW,EAAoB,WAEpB,IAAIrJ,EAIAc,EAAQ,WACE,IAAI8H,YAAY5I,EAAU,CAClCe,OAAQ,IACRyL,MAAO,OAKhB,MAAO,CACN5V,KAAM,SAAS6J,GACLT,EAAW5J,OAAOC,QAAQoK,GAErBT,GAKLc,KAGJJ,WAAY,WACR,OAAOV,IA3BK,GAkCTqJ,U,oCCpCf,oGAUArQ,aAAIC,IAAIwT,QAEO,WAAIA,OAAKC,MAAM,CAC5Btf,QAAS,CACPid,YACAsC,iBACApD,cACA3V,mBACAgZ,eACAjY,sB,qCCnBJ,gDAKIgU,EAAS,SAAS5S,EAAWC,GAE7B,IAAIC,EAAMC,KACNU,GAAO,EAGPT,EAAUC,OAAOC,QAAQN,GACzB8L,EAAOzL,OAAOE,UAElB,GAAKH,EAAL,CAKA,IAAII,EAAiB,CAEjB+L,OAAQ,CACJe,kBAAkB,GAItBwJ,UAAW,CACPC,WAAY,IACZC,YAAY,EACZC,gBAAiB,KACjBC,WAAW,GAIftF,SAAU,CACN5W,QAAS,MAQb0F,EAAS,CAKTC,UAAW,SAASV,GAgBhB,OAfII,OAAO/J,KAAK8J,GAASQ,IAAI,QACzBV,EAAMG,OAAO/J,KAAK8J,GAAShE,IAAI,SAG/BsE,EAAOG,KAAKZ,GAGZS,EAAOyW,QAGPzW,EAAOI,QAEPT,OAAO/J,KAAK8J,GAASW,IAAI,OAAQb,IAG9BA,GAOXW,KAAM,SAASZ,GACXC,EAAIc,OAAS,GAEbd,EAAIkX,cAAgB,GAGpBlX,EAAID,QAAUI,OAAOmB,WAAW,GAAIhB,EAAgBP,GAGpDC,EAAImX,uBAAyB,EAE7BnX,EAAIoX,IAAMjX,OAAOkX,eAGrBlL,OAAQ,SAASpM,GAEbC,EAAID,QAAUI,OAAOmB,WAAW,GAAIhB,EAAgBP,GAGpDC,EAAImX,uBAAyB,EAG7B3W,EAAOyW,QAEPjX,EAAIkX,cAAgB,GAGpB1W,EAAOI,QAEPT,OAAO/J,KAAK8J,GAASW,IAAI,OAAQb,IAGrCsX,OAAQ,WAEJ9W,EAAOyW,QAGPzW,EAAOI,QAGPJ,EAAO+W,qBAOX3W,MAAO,WAEHZ,EAAIkX,cAAc,WAAa/W,OAAOiC,GAAIlC,EAAS,eAAgB,QAASM,EAAOgX,yBAGnD,aAA5BhX,EAAOiX,kBAAmCjX,EAAOkX,kCAEjD1X,EAAIkX,cAAc,WAAa/W,OAAOiC,GAAIlC,EAAS,6BAA8B,YAAaM,EAAOmX,gCACrG3X,EAAIkX,cAAc,WAAa/W,OAAOiC,GAAIlC,EAAS,6BAA8B,WAAYM,EAAOoX,+BAGpG5X,EAAIkX,cAAc,WAAa/W,OAAOiC,GAAIlC,EAAS,kGAAmG,QAASM,EAAOqX,4BACtK7X,EAAIkX,cAAc,WAAa/W,OAAOiC,GAAIlC,EAAS,8FAA+F,QAASM,EAAOsX,gCAItK9X,EAAIkX,cAAc,WAAa/W,OAAOiC,GAAGlC,EAAS,wEAAyE,QAASM,EAAOuX,iBAGvI/X,EAAID,QAAQsM,QAAUrM,EAAID,QAAQsM,OAAOpC,QACzCzJ,EAAOsM,cAQfmK,MAAO,WACH9W,OAAO6X,IAAK9X,EAAS,QAASF,EAAIkX,cAAc,YAGhD/W,OAAO6X,IAAK9X,EAAS,YAAaF,EAAIkX,cAAc,YACpD/W,OAAO6X,IAAK9X,EAAS,WAAYF,EAAIkX,cAAc,YAGnD/W,OAAO6X,IAAK9X,EAAS,QAASF,EAAIkX,cAAc,YAChD/W,OAAO6X,IAAK9X,EAAS,QAASF,EAAIkX,cAAc,YAGhD/W,OAAO6X,IAAI9X,EAAS,QAASF,EAAIkX,cAAc,aAOnDpK,WAAY,WACH9M,EAAID,QAAQsM,QAAUrM,EAAID,QAAQsM,OAAOpC,QAC1C9J,OAAO8X,cAAc/X,GAAS,GAC9BC,OAAO2M,WAAW5M,EAAS,CAAC8M,oBAAoB,EAAMD,cAAc,EAAOG,sBAAsB,EAAMC,oBAAoB,EAAMlD,OAAQjK,EAAID,QAAQsM,OAAOpC,OAAQmD,iBAAkBpN,EAAID,QAAQsM,OAAOe,oBAEzMjN,OAAO8X,cAAc/X,GAAS,IAOtC2R,aAAc,WACL7R,EAAID,QAAQsM,QAAUrM,EAAID,QAAQsM,OAAOpC,QAC1C9J,OAAO0R,aAAa3R,IAO5B8N,UAAW,WACFhO,EAAID,QAAQsM,QAAUrM,EAAID,QAAQsM,OAAOpC,QAC1C9J,OAAO6N,UAAU9N,IAQzBuX,eAAgB,SAASS,GACrB,OAAK/X,OAAOkL,eAAe,MACnB6M,GAAM/X,OAAOmN,QAAQ4K,EAAI,qBAA8D,SAAvC/X,OAAOoN,KAAK2K,EAAI,oBACzD,WAGN/X,OAAOgY,MAAMnY,EAAID,QAAQqY,QAAS,sBAC9BjY,OAAOkY,WAAWzM,EAAM5L,EAAID,QAAQqY,QAAQxC,QAAQlY,MAAMkO,MACpD5L,EAAID,QAAQqY,QAAQxC,QAAQlY,MAAMlB,KAElCwD,EAAID,QAAQqY,QAAQxC,QAAQ0C,QAE/BnY,OAAOgY,MAAMnY,EAAID,QAAQqY,QAAS,WACnCpY,EAAID,QAAQqY,QAAQxC,aADxB,EAGCzV,OAAOkL,eAAe,OAASlL,OAAOkN,iBAAiB,OAASlN,OAAOgY,MAAMnY,EAAID,QAAQqY,QAAS,UACnGpY,EAAID,QAAQqY,QAAQG,UACnBpY,OAAOkN,iBAAiB,QAASlN,OAAOgY,MAAMnY,EAAID,QAAQqY,QAAS,YACpEpY,EAAID,QAAQqY,QAAQI,QAUnCd,6BAA8B,WAC1B,SAAKvX,OAAOkL,eAAe,QAASlL,OAAOgY,MAAMnY,EAAID,QAAQqY,QAAS,wBAY1Eb,kBAAmB,SAAS/e,GACxB,IAAIigB,EAAWtY,OAAOuY,QAAQxY,EAAS,iBACvC,GAAKuY,EACD,IAAK,IAAI/hB,EAAI,EAAGiiB,EAAMF,EAAS7hB,OAAQF,EAAIiiB,EAAKjiB,IAAK,CACjD,IAAI0hB,EAAUK,EAAS,GAEvBtY,OAAOiB,IAAIgX,EAAS,UAAW,IAC/BjY,OAAOiB,IAAIgX,EAAS,WAAY,IAE5BA,EAAQhC,aAAa,wBACrBjW,OAAO2B,YAAYsW,EAAS,qBAC5BjY,OAAO2B,YAAYsW,EAAS,sBAC5BjY,OAAO0B,SAASuW,EAASA,EAAQ/e,aAAa,0BAU9Dse,+BAAgC,SAASnf,GACrC,GAAqC,cAAhCgI,EAAOiX,eAAexX,QAIQ,IAA9BD,EAAI4Y,sBAAT,CAIA,IAAIxa,EAAO6B,KAE6B,KAAnC7B,EAAK/E,aAAa,gBACnB+E,EAAKiY,gBAAgB,cACrBnb,aAAckD,EAAK/E,aAAa,iBAChC+E,EAAKiY,gBAAgB,iBAGzB7V,EAAOqY,oBAAoBza,KAO/BwZ,8BAA+B,SAASpf,GACpC,IAAmC,IAA9BwH,EAAI4Y,uBAI4B,cAAhCpY,EAAOiX,eAAexX,MAA3B,CAIA,IAAI7B,EAAO6B,KACP6Y,EAAO9Y,EAAID,QAAQ2R,SAAS5W,QAE5BA,EAAUW,YAAW,WACmB,KAAnC2C,EAAK/E,aAAa,eACnBmH,EAAOuY,oBAAoB3a,GAAM,KAEtC0a,GAEH1a,EAAKpD,aAAa,aAAc,KAChCoD,EAAKpD,aAAa,eAAgBF,KAOtC+c,2BAA4B,SAASrf,GACjC,GAAqC,cAAhCgI,EAAOiX,eAAexX,MAA3B,CAIA,IAAI7B,EAAO6B,KAAK+Y,QAAQ,cAGpBvhB,EAAS+I,EAAOuB,aAAa,gBAAiB9B,KAAMzH,IACzC,IAAXf,GAIgD,aAA/C2G,EAAK/E,aAAa,6BAI2B,IAA7C8G,OAAOqM,SAASpO,EAAM,oBACvB+B,OAAO0B,SAASzD,EAAM,2BACtBoC,EAAOqY,oBAAoBza,KAE3B+B,OAAO2B,YAAY1D,EAAM,2BACzBoC,EAAOuY,oBAAoB3a,GAAM,IAGrC5F,EAAEgJ,oBAONsW,8BAA+B,SAAStf,GACpC,GAAoC,cAAhCgI,EAAOiX,eAAexX,MAA1B,CAGA,IAAI7B,EAAO6B,KAAK+Y,QAAQ,cAGpBvhB,EAAS+I,EAAOuB,aAAa,gBAAiB9B,KAAMzH,IACzC,IAAXf,GAI+C,aAA/C2G,EAAK/E,aAAa,4BAI0B,GAA5C8G,OAAOqM,SAASpO,EAAM,qBACtB+B,OAAO0B,SAASzD,EAAM,2BACtBoC,EAAOqY,oBAAoBza,IAG/B5F,EAAEgJ,oBAONuW,gBAAiB,SAASvf,GACtB,IAAI4f,EAAUnY,KAAK+Y,QAAQ,gCAGvBvhB,EAAS+I,EAAOuB,aAAa,YAAa9B,KAAMzH,IACrC,IAAXf,GAIC2gB,GAA8C,aAAnC5X,EAAOiX,eAAeW,IAClC5X,EAAOyY,wBAQfC,2BAA4B,SAAS1gB,EAAG0f,GAEpC,GAAkC,cAA9B1X,EAAOiX,eAAeS,GAA1B,CAIA,IAAIiB,EAAQjZ,EAAQkZ,iBAAiB,qEAGrC,GAAID,EAAMviB,OAAS,IAA4C,IAAvCuJ,OAAOqM,SAAS0L,EAAI,gBAA2E,IAA/CA,EAAGkB,iBAAiB,gBAAgBxiB,OAExG,IAAK,IAAIF,EAAI,EAAGiiB,EAAMQ,EAAMviB,OAAQF,EAAIiiB,EAAKjiB,IACzC8J,EAAOuY,oBAAoBI,EAAM,IAAI,KASjD3B,uBAAwB,SAAShf,EAAG0f,GAChC,IAAIjG,EACA7T,EAAO8Z,GAAUjY,KAGjBxI,EAAS+I,EAAOuB,aAAa,gBAAiB9B,KAAMzH,GACxD,IAAe,IAAXf,EAIJ,GAAmC,aAA9B+I,EAAOiX,eAAeS,KAAuBjG,EAAQ7T,EAAK4a,QAAQ,gBACf,aAAhD/G,EAAM5Y,aAAa,0BACnBb,EAAEgJ,qBAFV,CAOA,IAAI6X,EAAKjb,EAAK4a,QAAQ,cAClBZ,EAAUjY,OAAOmZ,MAAMD,EAAI,8BAE/B,IAAIlZ,OAAOqM,SAASpO,EAAK4a,QAAQ,cAAe,0BAI3CK,GAAMjB,EAAU,CACjB5f,EAAEgJ,iBACF,IAAI+U,EAAQvW,EAAID,QAAQ6W,UAAUC,WAGlC,IAA+C,IAA1C1W,OAAOqM,SAAS6M,EAAI,kBAA8B,CAEnD,IAAyC,IAApCrZ,EAAID,QAAQ6W,UAAUI,UAAsB,CAC7C,IAAIuC,EAASnb,EAAK4a,QAAQ,2BACtBQ,EAAYrZ,OAAOkD,SAASkW,EAAQ,gGAExC,GAAKA,GAAUC,EACX,IAAK,IAAI9iB,EAAI,EAAGiiB,EAAMa,EAAU5iB,OAAQF,EAAIiiB,EAAKjiB,IAAK,CAClD,IAAI+iB,EAAMD,EAAU,GAChBE,EAAWvZ,OAAOmZ,MAAMG,EAAK,iBAC5BC,GACDvZ,OAAOwZ,QAAQD,EAAUnD,GAAO,WAC5B/V,EAAOqR,eACP1R,OAAO2B,YAAY2X,EAAK,sBAO5CtZ,OAAOyZ,UAAUxB,EAAS7B,GAAO,WAC7B/V,EAAOqZ,aAAazb,GACpBoC,EAAOqR,eAEPrR,EAAOuB,aAAa,gBAAiBqW,EAAS5f,MAGlD2H,OAAO0B,SAASwX,EAAI,uBAGpBlZ,OAAOwZ,QAAQvB,EAAS7B,GAAO,WAC3B/V,EAAOqZ,aAAazb,GACpBoC,EAAOuB,aAAa,gBAAiBqW,EAAS5f,MAGlD2H,OAAO2B,YAAYuX,EAAI,qBASnCQ,aAAc,SAASzb,GAEd+B,OAAOkL,eAAe,OAAUrL,EAAID,QAAQ6W,UAAUE,YAA2D,MAA7C5W,EAAQ7G,aAAa,qBAC1F8G,OAAO+T,SAAS9V,EAAM4B,EAAID,QAAQ6W,UAAUG,kBAQpDgC,oBAAqB,SAAS3a,EAAM0b,GAE3BA,IACD3Z,OAAO2B,YAAY1D,EAAM,mBACzB+B,OAAO2B,YAAY1D,EAAM,yBAI7BA,EAAKiY,gBAAgB,cAEhBjY,EAAK/E,aAAa,2BACnB8G,OAAO2B,YAAY8J,EAAMxN,EAAK/E,aAAa,2BAG/C,IAAIyB,EAAUsD,EAAK/E,aAAa,gBAChC+E,EAAKiY,gBAAgB,gBACrBnb,aAAaJ,IAOjBme,qBAAsB,WAClB,IAAIc,EACJ,GAAKA,EAAQ7Z,EAAQkZ,iBAAiB,yFAClC,IAAK,IAAIxhB,EAAI,EAAGoiB,EAAMD,EAAMnjB,OAAQgB,EAAIoiB,EAAKpiB,IACzC4I,EAAOuY,oBAAoBgB,EAAMniB,IAAI,IASjDihB,oBAAqB,SAASza,GAE1B,IAAI6b,EAAO/Z,EAAQkZ,iBAAiB,+EAEpC,GAAKa,EACD,IAAK,IAAIvjB,EAAI,EAAGiiB,EAAMsB,EAAKrjB,OAAQF,EAAIiiB,EAAKjiB,IAAK,CAC7C,IAAIwhB,EAAK+B,EAAKvjB,GACT0H,IAAS8Z,IAA4B,IAAtBA,EAAGgC,SAAS9b,KAAyC,IAAtBA,EAAK8b,SAAShC,IAC7D1X,EAAOuY,oBAAoBb,GAAI,GAM3C/X,OAAO0B,SAASzD,EAAM,mBAGtB,IAAIga,EAAUjY,OAAOa,KAAK5C,EAAM,iBAE5Bga,IAA0D,IAA/CA,EAAQhC,aAAa,wBAC5BjW,OAAOqM,SAAS4L,EAAS,qBACzBA,EAAQpd,aAAa,qBAAsB,qBACpCmF,OAAOqM,SAAS4L,EAAS,uBAChCA,EAAQpd,aAAa,qBAAsB,uBAI9Cod,IAAuD,IAA5CjY,OAAOga,YAAY/B,EAAS,OAAQ,KAChDjY,OAAO2B,YAAYsW,EAAS,qBAC5BjY,OAAO0B,SAASuW,EAAS,uBACjBA,IAAwD,IAA7CjY,OAAOga,YAAY/B,EAAS,QAAS,MACxDjY,OAAO2B,YAAYsW,EAAS,sBAC5BjY,OAAO0B,SAASuW,EAAS,sBAGxBha,EAAK/E,aAAa,2BACnB8G,OAAO0B,SAAS+J,EAAMxN,EAAK/E,aAAa,4BAQhD+gB,kCAAmC,SAASlC,GACxC,IAAIjG,EACAhH,GAAUgH,EAAQ9R,OAAOmZ,MAAMpB,EAAI,iBAAmB/X,OAAOiB,IAAI6Q,EAAO,WAAa,GAAK,EAE1FoI,EAAUphB,SAASQ,cAAc,6HAA+HwR,EAAS,YAE7KW,EAAKrR,YAAY8f,GAEjBla,OAAOoB,SAAS8Y,EAAS,SAAS,SAAS7hB,GACvCA,EAAE8hB,kBACF9hB,EAAEgJ,iBACFrB,OAAOgB,OAAOlB,MACdO,EAAOuY,oBAAoBb,GAAI,OAQvCqC,mBAAoB,SAASzB,GACzB,IAAI0B,EAAO,IAAIjM,KAEfvO,EAAImX,uBAAyBqD,EAAKhM,UAAYsK,GAOlDF,oBAAqB,WACjB,IAAI4B,EAAO,IAAIjM,KAEf,OAAQiM,EAAKhM,UAAYxO,EAAImX,wBAOjCsD,gBAAiB,SAASrc,GACtB,IAAI6b,EACAS,EAEJT,EAAO/Z,EAAQkZ,iBAAiB,qBAEhC,IAAK,IAAI1iB,EAAI,EAAGiiB,EAAMsB,EAAKrjB,OAAQF,EAAIiiB,EAAKjiB,IAAK,CAC7C,IAAIwhB,EAAK+B,EAAK,GACd9Z,OAAO2B,YAAYoW,EAAI,oBACvB/X,OAAOkR,KAAMlR,OAAOmZ,MAAMpB,EAAI,kBAC9BwC,EAAUva,OAAOua,QAAQxC,EAAI,uBAAyB,GAEtD,IAAK,IAAIyC,EAAK,EAAGC,EAAOF,EAAQ9jB,OAAQ+jB,EAAKC,EAAMD,IAAM,CACrD,IAAIlB,EAAMiB,EAAQhkB,GAClByJ,OAAO2B,YAAY2X,EAAK,kBACxBtZ,OAAOkR,KAAMlR,OAAOmZ,MAAMG,EAAK,mBAKvC,IAAyC,IAApCzZ,EAAID,QAAQ6W,UAAUI,YAClBiD,EAAO/Z,EAAQkZ,iBAAiB,oBACjC,IAAS1iB,EAAI,EAAGiiB,EAAMsB,EAAKrjB,OAAQF,EAAIiiB,EAAKjiB,IACxCyJ,OAAO2B,YAAY4Y,EAAQ,GAAI,mBAU/CG,cAAe,SAASzc,GAEpBoC,EAAOia,kBAGP,IADA,IAAIC,EAAUva,OAAOua,QAAQtc,EAAM,uBAAyB,GACnD1H,EAAI,EAAGiiB,EAAM+B,EAAQ9jB,OAAQF,EAAIiiB,EAAKjiB,IAC3CyJ,OAAO0B,SAAS6Y,EAAQhkB,GAAI,kBAGhCyJ,OAAO0B,SAASzD,EAAM,qBAO1B0c,eAAgB,SAAS1c,GACrB,IAAI6T,EACAtU,EAAc,GACdod,EAAO5a,OAAOmZ,MAAMlb,EAAM,cAE9BT,EAAYzG,KAAK,CACb8jB,KAAO/I,EAAQ9R,OAAOmZ,MAAMyB,EAAM,cAAgB9I,EAAMgJ,UAAY,GACpEld,MAAOgd,EAAK1hB,aAAa,SACzBP,KAAMiiB,EAAK1hB,aAAa,UAI5B,IADA,IAAIqhB,EAAUva,OAAOua,QAAQtc,EAAM,sBAC1B1H,EAAI,EAAGiiB,EAAM+B,EAAQ9jB,OAAQF,EAAIiiB,EAAKjiB,IAAK,CAChD,IAAIwkB,EAAc/a,OAAOmZ,MAAMoB,EAAQhkB,GAAI,cAE3CiH,EAAYzG,KAAK,CACb8jB,KAAO/I,EAAQ9R,OAAOmZ,MAAM4B,EAAa,cAAgBjJ,EAAMgJ,UAAY,GAC3Eld,MAAOmd,EAAY7hB,aAAa,SAChCP,KAAMoiB,EAAY7hB,aAAa,UAIvC,OAAQsE,EAAYwd,WAOxBC,aAAc,SAAShd,GACnB,IAAI6T,EAEJ,OAAgB9R,OAAOmZ,MAAMlb,EAAM,cAAgB6T,EAAMgJ,UAAY,IAMzElZ,aAAc,SAASxG,EAAMxB,EAAQvB,GACjC,IAAK,IAAI9B,EAAI,EAAGA,EAAIsJ,EAAIc,OAAOlK,OAAQF,IAAM,CACzC,IAAImD,EAAQmG,EAAIc,OAAOpK,GACvB,GAAKmD,EAAM0B,MAAQA,EAAO,CACtB,GAAkB,GAAb1B,EAAMmI,IAMP,OAAOnI,EAAMoI,QAAQjL,KAAKiJ,KAAMlG,EAAQvB,GALxC,GAAoB,GAAfqB,EAAMqI,MAEP,OADAlC,EAAIc,OAAOpK,GAAGwL,OAAQ,EACfrI,EAAMoI,QAAQjL,KAAKiJ,KAAMlG,EAAQvB,MAS5D+I,SAAU,SAAShG,EAAM0G,EAASD,GAC9BhC,EAAIc,OAAO5J,KAAK,CACZqE,KAAMA,EACN0G,QAASA,EACTD,IAAKA,EACLE,OAAO,KAIfmZ,YAAa,SAAS9f,GACdyE,EAAIc,OAAOvF,WACJyE,EAAIc,OAAOvF,KA2I9B,OA9HAyE,EAAImC,YAAc,SAASpC,GACvBO,EAAiBP,GAMrBC,EAAI6R,aAAe,WACf,OAAOrR,EAAOqR,gBAMlB7R,EAAIsb,aAAe,WACf,OAAO9a,EAAOsM,cAMlB9M,EAAIgO,UAAY,WACZ,OAAOxN,EAAOwN,aAMlBhO,EAAI6a,cAAgB,SAASzc,GACzB,OAAOoC,EAAOqa,cAAczc,IAGhC4B,EAAIsX,OAAS,WACT,OAAO9W,EAAO8W,UAGlBtX,EAAImM,OAAS,SAASpM,GAClB,OAAOS,EAAO2L,OAAOpM,IAMzBC,EAAI8a,eAAiB,SAAS1c,GAC1B,OAAOoC,EAAOsa,eAAe1c,IAMjC4B,EAAIob,aAAe,SAAShd,GACxB,OAAOoC,EAAO4a,aAAahd,IAM/B4B,EAAIyX,eAAiB,SAASS,GAC1B,OAAO1X,EAAOiX,eAAeS,IAOjClY,EAAIub,aAAe,SAASnd,GACxBoC,EAAOuY,oBAAoB3a,GAAM,IAOrC4B,EAAIwb,cAAgB,WAChBhb,EAAOyY,wBAOXjZ,EAAIua,mBAAqB,SAASzB,GAC9BtY,EAAO+Z,mBAAmBzB,IAO9B9Y,EAAI4Y,oBAAsB,WACtB,OAAOpY,EAAOoY,uBAMlB5Y,EAAIoC,GAAK,SAAS7G,EAAM0G,GACpB,OAAOzB,EAAOe,SAAShG,EAAM0G,IAGjCjC,EAAIgY,IAAM,SAASzc,GACf,OAAOiF,EAAO6a,YAAY9f,IAG9ByE,EAAIgC,IAAM,SAASzG,EAAM0G,GACrB,OAAOzB,EAAOe,SAAShG,EAAM0G,GAAS,IAQ1CzB,EAAOC,UAAUlJ,MAAMyI,EAAK,CAACD,IAG7BI,OAAO8L,kBAAiB,WAChBtL,GACAX,EAAIsX,YAKZ3W,GAAO,EAGAX,IAIoD,qBAAnB1H,EAAOD,UAC/CC,EAAOD,QAAUqa,GAIrBzZ,SAASgd,iBAAiB,SAAS,SAAUzd,GACzC,IACIyZ,EADArG,EAAOzL,OAAOsb,aAAa,QAAQ,GAEvC,GAAKxJ,EAAQrG,EAAKwN,iBAAiB,yGAC/B,IAAK,IAAI1iB,EAAI,EAAGiiB,EAAM1G,EAAMrb,OAAQF,EAAIiiB,EAAKjiB,IAAK,CAC9C,IAAIwJ,EAAU+R,EAAMvb,GAAGsiB,QAAQ,aAAa5e,WAE5C,GAAK8F,EAAU,CACX,IAAIF,EAAMG,OAAO/J,KAAK8J,GAAShE,IAAI,QAEnC,IAAM8D,EACF,MAGJ,IAAMA,GAAgC,aAAzBA,EAAIyX,iBACb,MAGCjf,EAAEuB,SAAWmG,IAA0C,IAA/BA,EAAQga,SAAS1hB,EAAEuB,SAC5CiG,EAAIwb,qBAOT9I,W,qLCn4BFgJ,EAAqB,mBACrBC,EAAwB,sBACxBC,EAAgB,eAEhBC,EAA4B,yBAE1B,QACbne,MAAO,CACLoe,QAAS,IAEXle,QAAS,CACPme,WAAY,SAAAre,GAAK,OAAI,SAAAwN,GACnB,MAAwB,qBAAbA,EACFxN,EAAMoe,QAAQ5Q,GAEhBxN,EAAMoe,WAGjB9d,SAAO,sBACJ0d,GADI,SACgBM,EAASC,GAC5BhjB,SAAS2S,KAAKsQ,UAAUC,IAAIF,MAFzB,iBAIJN,GAJI,SAImBK,EAASC,GAC/BhjB,SAAS2S,KAAKsQ,UAAU/a,OAAO8a,MAL5B,iBAOJL,GAPI,SAOWI,EAAS/d,GACvB+d,EAAQ9d,OAAO2d,EAA2B5d,MARvC,GAWPI,UAAW,kBACRwd,GADM,SACqBne,EAAOO,GACjC,IAAQiN,EAAwBjN,EAAxBiN,SAAU+Q,EAAche,EAAdge,UACbve,EAAMoe,QAAQ5Q,KACjBxN,EAAMoe,QAAQ5Q,GAAY,IAE5BxN,EAAMoe,QAAQ5Q,GAAUhU,KAAK+kB,Q,gKC1B7BxI,EAAa,CACjB9S,KADiB,WAEfoC,aAAIC,IAAIoZ,IAAUC,KAClBtZ,aAAIsZ,MAAMC,SAASC,QAAUnd,yDAM/Bod,UATiB,WAUfzZ,aAAIsZ,MAAMC,SAASG,QAAQC,OACzB,iBADF,iBAEcC,OAAWtd,aAG3B4S,MAfiB,SAeX2K,EAAUC,GAKd5c,KAAKuc,YAGL,IAAI/kB,EAASsL,aAAIsZ,MAAMngB,IAAI0gB,EAAUC,GAAQC,OAAM,SAAC7hB,GAClD,IAAIA,EAAMK,QAAQyhB,SAAS,OAWzB,MAAM,IAAI7iB,MAAJ,0BAA6Be,IAVnCiC,QAAQ8f,IAAI,0CACZjJ,OAAMlR,SAASoa,QAAsBziB,MAAK,WACxC0C,QAAQ8f,IAAI,yDAEZvlB,EAASsL,aAAIsZ,MAAMngB,IAAI0gB,EAAUC,GAAQC,OAAM,SAAC7hB,GAE9C,MADAiC,QAAQ8f,IAAI,gBACN,IAAI9iB,MAAJ,0BAA6Be,aAQ3C,OAAOxD,GASTyE,IAhDiB,SAgDb0gB,GAAqB,IAAXM,EAAW,uDAAJ,GACnB,OAAOna,aAAIsZ,MAAMngB,IAAV,UAAiB0gB,EAAjB,YAA6BM,IAAQJ,OAAM,SAAC7hB,GACjD,MAAM,IAAIf,MAAJ,0BAA6Be,QAUvCkiB,KA5DiB,SA4DZP,EAAUxN,GACbnP,KAAKuc,YAGL,IAAI/kB,EAASsL,aAAIsZ,MAAMc,KAAKP,EAAUxN,GAAS0N,OAAM,SAAC7hB,GACpD,IAAIA,EAAMK,QAAQyhB,SAAS,OAWzB,MAAM,IAAI7iB,MAAJ,0BAA6Be,IAVnCiC,QAAQ8f,IAAI,0CACZjJ,OAAMlR,SAASoa,QAAsBziB,MAAK,WACxC0C,QAAQ8f,IAAI,yDAEZvlB,EAASsL,aAAIsZ,MAAMngB,IAAI0gB,EAAUC,QAAQC,OAAM,SAAC7hB,GAE9C,MADAiC,QAAQ8f,IAAI,gBACN,IAAI9iB,MAAJ,0BAA6Be,aAQ3C,OAAOxD,GAUT0U,OA1FiB,SA0FVyQ,EAAUM,EAAML,GACrB,OAAO9Z,aAAIsZ,MAAMe,IAAV,UAAiBR,EAAjB,YAA6BM,GAAQL,IAS9CO,IApGiB,SAoGbR,EAAUC,GACZ,OAAO9Z,aAAIsZ,MAAMe,IAAV,UAAiBR,GAAYC,IAQtCQ,OA7GiB,SA6GVT,GACL,OAAO7Z,aAAIsZ,MAAMgB,OAAOT,GAAUE,OAAM,SAAC7hB,GAEvC,MAAM,IAAIf,MAAJ,2BAA8Be,SAK3BwY,U,4QC1HFO,G,UAAc,cACdpP,EAAQ,QACR0Y,EAAS,SACTL,EAAuB,qBAGvBM,EAAa,SACbC,EAAW,UAEXC,EAAY,WAEnB/f,EAAQ,CACZggB,OAAQ,KACRC,kBAAmBhB,OAAWtd,WAC9Bue,YAAa,IAGThgB,EAAU,CACdigB,YADc,SACFngB,GACV,OAAOA,EAAMogB,MAEfH,gBAJc,SAIEjgB,GAEd,OADAR,QAAQ8f,IAAR,+BAAoCtf,EAAMigB,kBACnCjgB,EAAMigB,kBAIX3f,GAAO,sBACV4G,GADU,WACD,WACR,OAAO,IAAIjM,SAAQ,SAACC,GAClB,EAAKyJ,IAAI0b,MAAMC,SACfplB,UAJO,iBAOV0kB,GAPU,SAOFtB,GACPA,EAAQ9d,OAAOqf,GACftd,KAAKoC,IAAI0b,MAAME,aATN,iBAWVjK,GAXU,SAWGgI,GAAS,WACrB9e,QAAQ8f,IAAI,4BAEZ,IAAIkB,EAAY9gB,OAAOkC,aAAaC,QAApB,eACNH,uCADM,uBAIZ+e,EAAiBllB,SAASmlB,OAAOrB,SAAS,eAE9C,GAAImB,GAAaC,EAAgB,CAE/BjhB,QAAQ8f,IAAI,aACZhB,EAAQ9d,OAAOqf,GACfngB,OAAOkC,aAAa+e,QAKpB,IAFA,IAAIC,EAAUrlB,SAASmlB,OAAOG,MAAM,KAE3B7nB,EAAI,EAAGA,EAAI4nB,EAAQ1nB,OAAQF,IAAK,CACvC,IAAI0nB,EAASE,EAAQ5nB,GACjB8nB,EAAQJ,EAAOK,QAAQ,KACvBljB,EAAOijB,GAAS,EAAIJ,EAAOM,OAAO,EAAGF,GAASJ,EAClDnlB,SAASmlB,OAAS7iB,EAAO,0CAG3B,IAAIojB,EAAW1lB,SAASmlB,OAAOG,MAAM,MACrCrhB,QAAQ8f,IAAIvH,KAAKmJ,UAAUD,IAM3BvhB,OAAO8Q,SAASoJ,SAGlB,IAAIrX,KAAKoC,IAAI0b,MAAMJ,kBAMjB,OADAzgB,QAAQ8f,IAAI,kBACL,IAAIrkB,SAAQ,SAACC,GAClB,EAAKyJ,IAAI0b,MAAMC,SACfplB,OAPEqH,KAAKoC,IAAI0b,MAAM3nB,KAAKwnB,aACtB5B,EAAQ9d,OAAOsf,EAAUvd,KAAKoC,IAAI0b,MAAM3nB,KAAKwnB,gBAhDxC,iBA2DVX,GA3DU,SA2DYjB,GAAS,WAC9B,OAAO,IAAIrjB,SAAQ,SAACC,GACd,EAAKyJ,IAAI0b,MAAMJ,oBAGjBzgB,QAAQ8f,IAAI,+BACZ9f,QAAQ8f,IAAR,wBAA6B,EAAK3a,IAAI0b,MAAM3nB,KAAKwnB,cACjD,EAAKvb,IAAI0b,MAAMc,eACf3hB,QAAQ8f,IAAR,uBAA4B,EAAK3a,IAAI0b,MAAM3nB,KAAKwnB,cAChD5B,EAAQ9d,OAAOsf,EAAU,EAAKnb,IAAI0b,MAAM3nB,KAAKwnB,cAE/ChlB,UAtEO,GA2EPyF,GAAS,sBACZof,GADY,SACD/f,EAAOzC,GACjByC,EAAMggB,OAASziB,KAFJ,iBAIZuiB,GAJY,SAIF9f,EAAO+B,GAChBvC,QAAQ8f,IAAR,wBAA6Bvd,IAC7B/B,EAAMigB,iBAAkB,EACxBjgB,EAAMggB,OAAS,GACfhgB,EAAMkgB,YAAcne,EAGpBkd,OAAWnd,UAAU9B,EAAMkgB,aAG3BnK,OAAW+I,eAdA,iBAgBZe,GAhBY,SAgBA7f,GACXR,QAAQ8f,IAAI,gBACZtf,EAAMigB,iBAAkB,EACxBjgB,EAAMkgB,YAAc,GACpBlgB,EAAMggB,OAAS,GAGff,OAAWhd,kBAvBA,GA2BA,QACbjC,QACAM,UACAK,YACAT,Y,oCC1IF,cAEIsV,EAAuB,WAEvB,IAAInJ,EAIAc,EAAQ,WACR,IAAIsE,EAAShP,OAAOa,KAAK+I,EAAU,qBAC/BqF,EAAUjP,OAAOa,KAAK+I,EAAU,sBAEjB,IAAI8E,YAAY9E,EAAU,CACzC+E,SAAS,EACTC,UAAW,YACXC,UAAW,QACXC,QAAS,yBACTC,SAAU,4BAGd/O,OAAO2M,WAAWsC,EAAS,CACvBE,kBAAkB,EAClBpC,sBAAsB,EACtBC,oBAAoB,EACpBlD,OAAQ,WACJ,IAAIA,EAASE,SAAShK,OAAO+J,cAAcD,QAkB3C,OAhBIkF,IACAlF,GAAkBE,SAAShK,OAAOuK,aAAayE,IAC/ClF,GAAkBE,SAAShK,OAAOiB,IAAI+N,EAAQ,cAC9ClF,GAAkBE,SAAShK,OAAOiB,IAAI+N,EAAQ,kBAG9CC,IACAnF,GAAkBE,SAAShK,OAAOiB,IAAIgO,EAAS,cAC/CnF,GAAkBE,SAAShK,OAAOiB,IAAIgO,EAAS,kBAGnDnF,GAAkBE,SAAShK,OAAOiB,IAAI2I,EAAU,eAChDE,GAAkBE,SAAShK,OAAOiB,IAAI2I,EAAU,kBAEhDE,GAAkB,EAEXA,MAMnB,MAAO,CACHtJ,KAAM,SAAS6J,GACXT,EAAW5J,OAAOC,QAAQoK,GAErBT,GAKLc,KAGJJ,WAAY,WACR,OAAOV,IA5DQ,GAmEZmJ,U,oCCrEf,cAEIC,EAAoB,WAEpB,IAAIpJ,EAIAc,EAAQ,WACR,IAAIsE,EAAShP,OAAOa,KAAK+I,EAAU,qBAC/BqF,EAAUjP,OAAOa,KAAK+I,EAAU,sBAEjB,IAAI8E,YAAY9E,EAAU,CACzC+E,SAAS,EACTC,UAAW,YACXC,UAAW,QACXC,QAAS,sBACTC,SAAU,yBAGd/O,OAAO2M,WAAWsC,EAAS,CACvBE,kBAAkB,EAClBpC,sBAAsB,EACtBC,oBAAoB,EACpBlD,OAAQ,WACJ,IAAIA,EAASE,SAAShK,OAAO+J,cAAcD,QAkB3C,OAhBIkF,IACAlF,GAAkBE,SAAShK,OAAOuK,aAAayE,IAC/ClF,GAAkBE,SAAShK,OAAOiB,IAAI+N,EAAQ,cAC9ClF,GAAkBE,SAAShK,OAAOiB,IAAI+N,EAAQ,kBAG9CC,IACAnF,GAAkBE,SAAShK,OAAOiB,IAAIgO,EAAS,cAC/CnF,GAAkBE,SAAShK,OAAOiB,IAAIgO,EAAS,kBAGnDnF,GAAkBE,SAAShK,OAAOiB,IAAI2I,EAAU,eAChDE,GAAkBE,SAAShK,OAAOiB,IAAI2I,EAAU,kBAEhDE,GAAkB,EAEXA,MAMnB,MAAO,CACHtJ,KAAM,SAAS6J,GACXT,EAAW5J,OAAOC,QAAQoK,GAErBT,GAKLc,KAGJJ,WAAY,WACR,OAAOV,IA5DK,GAmEToJ,U,4DCrEf,sCAKIX,EAAW,SAASzS,GAEpB,IAGIG,EAHAF,EAAMC,KAIN2L,EAAOzL,OAAOE,UAGdC,EAAiB,CACjB,UAAc,aACd,KAAU,SACV,MAAU,IACV,MAAU,UACV,QAAY,cAOZE,EAAS,CAKTC,UAAW,SAASV,GAGhB,OAFAS,EAAOG,KAAKZ,GAELC,GAMXW,KAAM,SAASZ,GACXC,EAAIc,OAAS,GAGbd,EAAID,QAAUI,OAAOmB,WAAW,GAAIhB,EAAgBP,GAEpDC,EAAItC,OAAQ,GAMhB6T,KAAM,WAoBF,OAnBA/Q,EAAOuB,aAAa,QAEpB7B,EAAUjH,SAASQ,cAAc,OACjC0G,OAAO4N,QAAQ7N,EAASF,EAAID,QAAQzE,SAEpC6E,OAAO0B,SAAS3B,EAAS,uBACzBC,OAAO0B,SAAS3B,EAAS,UAAYF,EAAID,QAAQrC,OACjDyC,OAAO0B,SAAS3B,EAAS,UAAYF,EAAID,QAAQrG,MAEpB,cAAzBsG,EAAID,QAAQiP,WACZ7O,OAAO0B,SAAS3B,EAAS,qBAG7B0L,EAAKrR,YAAY2F,GAEjBF,EAAItC,MAAQ,QAEZ8C,EAAOuB,aAAa,SAEb/B,GAMXqR,KAAM,WAUF,OATInR,IACAM,EAAOuB,aAAa,QAEpB7B,EAAQiB,SACRnB,EAAItC,MAAQ,SAEZ8C,EAAOuB,aAAa,WAGjB/B,GAMX+B,aAAc,SAASxG,GACnB,IAAK,IAAI7E,EAAI,EAAGA,EAAIsJ,EAAIc,OAAOlK,OAAQF,IAAK,CACxC,IAAImD,EAAQmG,EAAIc,OAAOpK,GAEvB,GAAImD,EAAM0B,MAAQA,EAAM,CACpB,GAAiB,GAAb1B,EAAMmI,IAMN,OAAOnI,EAAMoI,QAAQjL,KAAKiJ,KAAMD,GALhC,GAAmB,GAAfnG,EAAMqI,MAEN,OADAlC,EAAIc,OAAOpK,GAAGwL,OAAQ,EACfrI,EAAMoI,QAAQjL,KAAKiJ,KAAMD,MASpDuB,SAAU,SAAShG,EAAM0G,EAASD,GAQ9B,OAPAhC,EAAIc,OAAO5J,KAAK,CACZqE,KAAMA,EACN0G,QAASA,EACTD,IAAKA,EACLE,OAAO,IAGJlC,IA+Df,OAnDAA,EAAImC,YAAc,SAASpC,GACvBO,EAAiBP,GAMrBC,EAAImZ,MAAQ,WACR,MAAoB,SAAbnZ,EAAItC,OAMfsC,EAAIqB,OAAS,WACT,MAAoB,UAAbrB,EAAItC,OAMfsC,EAAIuR,KAAO,WACP,OAAO/Q,EAAO+Q,QAMlBvR,EAAIqR,KAAO,WACP,OAAO7Q,EAAO6Q,QAOlBrR,EAAIoC,GAAK,SAAS7G,EAAM0G,GACpB,OAAOzB,EAAOe,SAAShG,EAAM0G,IAOjCjC,EAAIgC,IAAM,SAASzG,EAAM0G,GACrB,OAAOzB,EAAOe,SAAShG,EAAM0G,GAAS,IAI1CzB,EAAOC,UAAUlJ,MAAMyI,EAAK,CAACD,IAEtBC,GAIoD,qBAAnB1H,EAAOD,UAC/CC,EAAOD,QAAUma,GAGNA,W,4DC9Lf,gDAKIK,EAAW,SAAS/S,EAAWC,GAE/B,IAAIC,EAAMC,KAINC,EAAUC,OAAOC,QAAQN,GAClBK,OAAOE,UAElB,GAAKH,EAAL,CAKA,IAAII,EAAiB,CACjBwe,UAAW,EACXC,gBAAgB,GAOhBve,EAAS,CAKTC,UAAW,SAASV,GAahB,OAZII,OAAO/J,KAAK8J,GAASQ,IAAI,UACzBV,EAAMG,OAAO/J,KAAK8J,GAAShE,IAAI,WAG/BsE,EAAOG,KAAKZ,GAGZS,EAAOI,QAEPT,OAAO/J,KAAK8J,GAASW,IAAI,SAAUb,IAGhCA,GAMXW,KAAM,SAASZ,GACXC,EAAIE,QAAUA,EACdF,EAAIc,OAAS,GAGbd,EAAID,QAAUI,OAAOmB,WAAW,GAAIhB,EAAgBP,GAGpDC,EAAIgf,MAAQ7e,OAAOuY,QAAQxY,EAAS,6BAEpCF,EAAIif,QAAU9e,OAAOa,KAAKd,EAAS,oCACnCF,EAAIkf,QAAU/e,OAAOa,KAAKd,EAAS,oCACnCF,EAAImf,UAAYhf,OAAOa,KAAKd,EAAS,sCAGrCF,EAAIc,OAAS,GACbd,EAAIof,SAAW,EACfpf,EAAIqf,YAAc,EAClBrf,EAAIsf,QAAU,EACdtf,EAAIuf,SAAU,EACdvf,EAAIwf,WAAaxf,EAAIgf,MAAMpoB,OAGvBoJ,EAAID,QAAQ+e,UAAY,GACxBte,EAAOif,KAAKzf,EAAID,QAAQ+e,WAI5Bte,EAAOkf,YAMX9e,MAAO,WAEHT,OAAOoB,SAASvB,EAAIif,QAAS,SAAS,SAASzmB,GAC3CA,EAAEgJ,iBAGFhB,EAAOmf,WAAWnf,EAAOof,gBAGa,IAAlCpf,EAAOuB,aAAa,WACpBvB,EAAOif,KAAKjf,EAAOof,kBAK3Bzf,OAAOoB,SAASvB,EAAIkf,QAAS,SAAS,SAAS1mB,GAC3CA,EAAEgJ,iBAGFhB,EAAOmf,WAAWnf,EAAOqf,gBAGa,IAAlCrf,EAAOuB,aAAa,WACpBvB,EAAOif,KAAKjf,EAAOqf,mBAIQ,IAA/B7f,EAAID,QAAQgf,gBACZ5e,OAAOiC,GAAGlC,EAAS,4BAA6B,SAAS,WACrD,IAAI4f,EAAQ3f,OAAO2f,MAAM7f,MAAQ,EAE7B6f,IAAU9f,EAAIqf,cACd7e,EAAOmf,WAAWG,IAGoB,IAAlCtf,EAAOuB,aAAa,WACpBvB,EAAOif,KAAKK,OAO5B3f,OAAOoB,SAASvB,EAAImf,UAAW,SAAS,SAAS3mB,GAC7CA,EAAEgJ,iBAEFhB,EAAOuB,aAAa,cAO5B0d,KAAM,SAASM,GAEX,IAAoB,IAAhB/f,EAAIuf,SAMR,KAAIQ,IAAW/f,EAAIqf,aAAeU,EAAS/f,EAAIwf,YAAcO,EAAS,GAgBtE,OAXAA,EAAS5V,SAAS4V,GAGlB/f,EAAIof,SAAWpf,EAAIqf,YACnBrf,EAAIqf,YAAcU,EAClB/f,EAAIsf,QAAU,EAEd9e,EAAOkf,WAEPlf,EAAOuB,aAAa,WAEb/B,OArBHA,EAAIuf,SAAU,GA2BtBS,KAAM,WACFhgB,EAAIuf,SAAU,GAMlBU,OAAQ,WACJjgB,EAAIuf,SAAU,GAMlBW,WAAY,WACR,OAAOlgB,EAAIqf,cAAgBrf,EAAIwf,YAMnCW,YAAa,WACT,OAA2B,IAApBngB,EAAIqf,aAMfe,cAAe,WACX,OAA+B,IAAxB5f,EAAO0f,eAAmD,IAAzB1f,EAAO2f,eAMnDT,SAAU,WACN,IAAIW,EAAW,GACXP,EAAQ9f,EAAIqf,YAAc,EAG1BgB,EADA7f,EAAO0f,aACI,OACJ1f,EAAO2f,cACH,QAEA,UAGfhgB,OAAOoN,KAAKvN,EAAIE,QAAS,oBAAqBmgB,GAG9C,IAAIrB,EAAQ7e,OAAOuY,QAAQ1Y,EAAIE,QAAS,6BAExC,GAAI8e,GAASA,EAAMpoB,OAAS,EACxB,IAAK,IAAIF,EAAI,EAAGiiB,EAAMqG,EAAMpoB,OAAQF,EAAIiiB,EAAKjiB,IACrCA,GAAKopB,EACL3f,OAAOoN,KAAKyR,EAAMtoB,GAAI,oBAAqB,WAEvCA,EAAIopB,EACJ3f,OAAOoN,KAAKyR,EAAMtoB,GAAI,oBAAqB,QAE3CyJ,OAAOoN,KAAKyR,EAAMtoB,GAAI,oBAAqB,WAO3D,IAAI4pB,EAAYngB,OAAOuY,QAAQ1Y,EAAIE,QAAS,kCAC5C,GAAIogB,GAAYA,EAAU1pB,OAAS,EAC/B,IAASF,EAAI,EAAGiiB,EAAM2H,EAAU1pB,OAAQF,EAAIiiB,EAAKjiB,IACzCA,GAAKopB,EACL3f,OAAOoN,KAAK+S,EAAU5pB,GAAI,oBAAqB,WAE/CyJ,OAAOogB,WAAWD,EAAU5pB,GAAI,qBAM5C,IAAI8pB,EAAergB,OAAOuY,QAAQ1Y,EAAIE,QAAS,qCAC/C,GAAIsgB,GAAeA,EAAa5pB,OAAS,EACrC,IAASF,EAAI,EAAGiiB,EAAM6H,EAAa5pB,OAAQF,EAAIiiB,EAAKjiB,IAC5CA,GAAKopB,EACL3f,OAAOoN,KAAKiT,EAAa9pB,GAAI,oBAAqB,WAElDyJ,OAAOogB,WAAWC,EAAa9pB,GAAI,sBASnDkpB,YAAa,WACT,OAAI5f,EAAIwf,YAAexf,EAAIqf,YAAc,EAC9Brf,EAAIqf,YAAc,EAElBrf,EAAIwf,YAOnBK,YAAa,WACT,OAAK7f,EAAIqf,YAAc,GAAM,EAClBrf,EAAIqf,YAAc,EAElB,GAOfoB,WAAY,WACR,OAAOzgB,EAAIsf,SAMfK,WAAY,SAASe,GACjB1gB,EAAIsf,QAAUoB,GAMlB3e,aAAc,SAASxG,EAAMolB,GAEzB,IAAK,IAAIjqB,EAAI,EAAGA,EAAIsJ,EAAIc,OAAOlK,OAAQF,IAAK,CACxC,IAAImD,EAAQmG,EAAIc,OAAOpK,GACvB,GAAImD,EAAM0B,MAAQA,EAAM,CACpB,GAAiB,GAAb1B,EAAMmI,IAMN,OAAOnI,EAAMoI,QAAQjL,KAAKiJ,KAAMD,GALhC,GAAmB,GAAfnG,EAAMqI,MAEN,OADAlC,EAAIc,OAAOpK,GAAGwL,OAAQ,EACfrI,EAAMoI,QAAQjL,KAAKiJ,KAAMD,MASpDuB,SAAU,SAAShG,EAAM0G,EAASD,GAQ9B,OAPAhC,EAAIc,OAAO5J,KAAK,CACZqE,KAAMA,EACN0G,QAASA,EACTD,IAAKA,EACLE,OAAO,IAGJlC,IAqHf,OAzGAA,EAAImC,YAAc,SAASpC,GACvBO,EAAiBP,GAMrBC,EAAI4gB,OAAS,WACT,OAAOpgB,EAAOif,KAAKjf,EAAOof,gBAM9B5f,EAAI6gB,OAAS,WACT,OAAOrgB,EAAOif,KAAKjf,EAAOqf,gBAM9B7f,EAAI8gB,OAAS,WACT,OAAOtgB,EAAOif,KAAKjf,EAAOugB,gBAM9B/gB,EAAIghB,QAAU,WACV,OAAOxgB,EAAOif,KAAKjf,EAAOygB,iBAM9BjhB,EAAIyf,KAAO,SAASM,GAChB,OAAOvf,EAAOif,KAAKM,IAMvB/f,EAAIggB,KAAO,WACP,OAAOxf,EAAOwf,QAMlBhgB,EAAIigB,OAAS,WACT,OAAOzf,EAAOyf,UAMlBjgB,EAAIkhB,QAAU,WACV,OAAOlhB,EAAIqf,aAMfrf,EAAIygB,WAAa,WACb,OAAOjgB,EAAOigB,cAMlBzgB,EAAI2f,WAAa,SAASI,GACtBvf,EAAOmf,WAAWI,IAMtB/f,EAAIkgB,WAAa,WACb,OAAO1f,EAAO0f,cAMlBlgB,EAAImgB,YAAc,WACd,OAAO3f,EAAO2f,eAMlBngB,EAAIoC,GAAK,SAAS7G,EAAM0G,GACpB,OAAOzB,EAAOe,SAAShG,EAAM0G,IAMjCjC,EAAIgC,IAAM,SAASzG,EAAM0G,GACrB,OAAOzB,EAAOe,SAAShG,EAAM0G,GAAS,IAI1CzB,EAAOC,UAAUlJ,MAAMyI,EAAK,CAACD,IAEtBC,IAIoD,qBAAnB1H,EAAOD,UAC/CC,EAAOD,QAAUwa,GAGNA,W,mJChcFsO,EAAuB,yBACvBC,EAAsB,wBAGtBC,EAAoB,kBACpBC,EAAmB,iBAE1B5jB,EAAQ,CACZ6jB,mBAAoB,CAClBC,MAAO,yBACPjmB,KAAM,SACNkmB,QAAS,MACTC,aAAc,cACdC,IAAK,wBACLC,MAAO,uBACPC,MAAO,iBACPC,aAAc,eAEhBC,kBAAmB,CACjBC,SAAU,SACVJ,MAAO,uBACPK,SAAU,UACVC,UAAW,4BACXC,cAAe,CACbP,OAAO,EACPQ,KAAK,EACLP,OAAO,GAETQ,cAAc,IAIZzkB,EAAU,CACd0kB,wBADc,SACU5kB,GACtB,OAAOA,EAAM6jB,oBAGfgB,uBALc,SAKS7kB,GACrB,OAAOA,EAAMqkB,oBAIX/jB,GAAO,sBACVmjB,GADU,SACYnF,EAAS/d,GAC9B+d,EAAQ9d,OAAOmjB,EAAmBpjB,MAFzB,iBAIVmjB,GAJU,SAIWpF,EAAS/d,GAC7B+d,EAAQ9d,OAAOojB,EAAkBrjB,MALxB,GASPI,GAAS,sBACZgjB,GADY,SACO3jB,EAAO6jB,GACzB7jB,EAAM6jB,mBAAqBA,KAFhB,iBAIZD,GAJY,SAIM5jB,EAAOqkB,GACxBrkB,EAAMqkB,kBAAoBA,KALf,GASA,QACbrkB,QACAM,UACAK,YACAT,Y,mCCjEF,wKAWK4kB,QAAQ1rB,UAAU2rB,UACtBD,QAAQ1rB,UAAU2rB,QAAUD,QAAQ1rB,UAAU4rB,mBAAqBF,QAAQ1rB,UAAU6rB,uBAOjFH,QAAQ1rB,UAAUkiB,UACjBwJ,QAAQ1rB,UAAU2rB,UACtBD,QAAQ1rB,UAAU2rB,QAAUD,QAAQ1rB,UAAU4rB,mBAAqBF,QAAQ1rB,UAAU6rB,uBAEtFH,QAAQ1rB,UAAUkiB,QAAU,SAAUhhB,GACrC,IAAIkgB,EAAKjY,KACL2iB,EAAW3iB,KACf,IAAKhH,SAAS4pB,gBAAgB3I,SAAShC,GAAK,OAAO,KACnD,EAAG,CACF,GAAI0K,EAASH,QAAQzqB,GAAI,OAAO4qB,EAChCA,EAAWA,EAASE,oBACC,OAAbF,GACT,OAAO;;;;;;IAUT,SAAWG,GACV,IAAK,IAAIrsB,EAAI,EAAGA,EAAIqsB,EAAKnsB,OAAQF,IAC3B0G,OAAO2lB,EAAKrsB,OAAO,WAAY0G,OAAO2lB,EAAKrsB,IAAII,aACpDsG,OAAO2lB,EAAKrsB,IAAII,UAAUqK,OAAS,WAClClB,KAAK7F,WAAWC,YAAY4F,QAJ/B,CAOG,CAAC,UAAW,gBAAiB,iBAY/B,WAGG,IAFA,IAAI+iB,EAAW,EACXC,EAAU,CAAC,SAAU,OAChBpkB,EAAI,EAAGA,EAAIokB,EAAQrsB,SAAWwG,OAAO8lB,wBAAyBrkB,EACnEzB,OAAO8lB,sBAAwB9lB,OAAO6lB,EAAQpkB,GAAK,yBACnDzB,OAAO+lB,qBACH/lB,OAAO6lB,EAAQpkB,GAAK,yBAA2BzB,OAAO6lB,EAAQpkB,GAAK,+BAGtEzB,OAAO8lB,wBACR9lB,OAAO8lB,sBAAwB,SAASE,GACpC,IAAIC,GAAW,IAAI9U,MAAOC,UACtB8U,EAAaC,KAAKC,IAAI,EAAG,IAAMH,EAAWL,IAC1CxY,EAAKpN,OAAO3B,YAAW,WACvB2nB,EAASC,EAAWC,KACrBA,GAEH,OADAN,EAAWK,EAAWC,EACf9Y,IAGVpN,OAAO+lB,uBACR/lB,OAAO+lB,qBAAuB,SAAS3Y,GACnCtP,aAAasP,KAtBxB,GA2BD,SAAUiZ,GACNA,EAAItlB,SAAQ,SAASC,GACbA,EAAKrH,eAAe,YAGxBF,OAAOmF,eAAeoC,EAAM,UAAW,CACnCslB,cAAc,EACdznB,YAAY,EACZ0nB,UAAU,EACVrnB,MAAO,WACH,IAAIsnB,EAASC,MAAM/sB,UAAUwG,MAAMtG,KAAK8sB,WACpCC,EAAU9qB,SAAS+qB,yBAEvBJ,EAAOzlB,SAAQ,SAAS8lB,GACpB,IAAIC,EAASD,aAAmBE,KAChCJ,EAAQxpB,YAAY2pB,EAASD,EAAUhrB,SAASmrB,eAAeC,OAAOJ,QAG1EhkB,KAAKqkB,aAAaP,EAAS9jB,KAAKskB,kBAlBhD,CAsBG,CAAC/B,QAAQ1rB,UAAW0tB,SAAS1tB,UAAW2tB,iBAAiB3tB,iBAGjB0E,GAAvCgnB,QAAQ1rB,UAAU4tB,oBACpBlC,QAAQ1rB,UAAU4tB,kBAAoB,WAIpC,IAHA,IAAIC,EAAa1kB,KAAK0kB,WAClB/tB,EAAS+tB,EAAW/tB,OACpBa,EAAS,IAAIosB,MAAMjtB,GACdF,EAAI,EAAGA,EAAIE,EAAQF,IAC1Be,EAAOf,GAAKiuB,EAAWjuB,GAAG6E,KAE5B,OAAO9D,IAKX2F,OAAOwnB,uBAAyB,GAChCxnB,OAAOynB,yBAA2B,EAClCznB,OAAO0nB,6BAA+B,GAEtC,IAAI3kB,EAAS,WACT,IAAI4kB,EAAiB,GAGjBC,EAAc,CACdC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,MAOJC,EAAuB,WACvB,IAQIC,EARAC,EAAqB,WAErB,IAAK,IAAI7uB,EAAI,EAAGA,EAAIquB,EAAenuB,OAAQF,IAAK,CAC5C,IAAI8uB,EAAOT,EAAeruB,GAC1B8uB,EAAKxuB,SAMboG,OAAO6Y,iBAAiB,UAAU,WAC9B9V,EAAOslB,SAASH,GAAO,WACnBC,MACD,SAIX,MAAO,CAOH5kB,KAAM,SAAS+kB,GACPA,GAAYA,EAASV,cACrBA,EAAcU,EAASV,aAG3BK,KAOJpZ,iBAAkB,SAASmX,GACvB2B,EAAe7tB,KAAKksB,IAOxBuC,oBAAqB,SAASvC,GAC1B,IAAK,IAAI1sB,EAAI,EAAGA,EAAIquB,EAAenuB,OAAQF,IACnC0sB,IAAa2B,EAAeruB,WACrBquB,EAAeruB,IAQlCkvB,kBAAmB,WACfL,sBAGJM,OAAQ,WACJ,GAAsB,oBAAXC,MAEP1oB,OAAO2oB,cAAc,IAAID,MAAM,eAC5B,CAGH,IAAIE,EAAM5oB,OAAOnE,SAASgtB,YAAY,YACtCD,EAAIE,YAAY,UAAU,GAAM,EAAO9oB,OAAQ,GAC/CA,OAAO2oB,cAAcC,KAS7BG,YAAa,SAASC,GAClB,IACI1vB,EAAG2vB,EADHC,EAAelpB,OAAO8Q,SAASqY,OAAOC,UAAU,GACxC3J,EAASyJ,EAAa/H,MAAM,KAExC,IAAK7nB,EAAI,EAAGA,EAAImmB,EAAOjmB,OAAQF,IAE3B,GADA2vB,EAAMxJ,EAAOnmB,GAAG6nB,MAAM,KAClB8H,EAAI,IAAMD,EACV,OAAOK,SAASJ,EAAI,IAI5B,OAAO,MAOXK,eAAgB,WACZ,IAAIC,EAAQ1mB,KAAKiK,cAAc0c,MAAQ3mB,KAAK4mB,cAAc,MAO1D,OALa,IAATF,IAEAA,EAA6C,MAAtCG,UAAUC,UAAUC,MAAM,UAG9BL,GAOXM,gBAAiB,WACb,OAAO9mB,EAAOumB,kBAQlBxc,YAAa,WACT,IAAI1R,EAAI4E,OACJ8pB,EAAI,QAMR,MALM,eAAgB9pB,SAClB8pB,EAAI,SACJ1uB,EAAIS,SAAS4pB,iBAAmB5pB,SAAS2S,MAGtC,CACHgb,MAAOpuB,EAAE0uB,EAAI,SACbjd,OAAQzR,EAAE0uB,EAAI,YAUtBC,oBAAqB,SAAS3qB,GAC1B,IAAI4qB,EAAannB,KAAKiK,cAAc0c,MAEpC,MAAY,WAARpqB,IAEe,WAARA,GAAqB4qB,GAAennB,KAAK4mB,cAAc,MAAQ,IAEvD,UAARrqB,GAAqB4qB,GAAennB,KAAK4mB,cAAc,MAAQ,GAAMO,EAAannB,KAAK4mB,cAAc,QAE7F,UAARrqB,GAAoB4qB,GAAcnnB,KAAK4mB,cAAc,QAE7C,sBAARrqB,GAAgC4qB,GAAennB,KAAK4mB,cAAc,MAAQ,IAElE,qBAARrqB,GAA+B4qB,GAAcnnB,KAAK4mB,cAAc,OAExD,6BAARrqB,GAAuC4qB,GAAcnnB,KAAK4mB,cAAc,YAavFxb,eAAgB,SAAS7O,GACrB,IAAIoqB,EAAQ3mB,KAAKiK,cAAc0c,MACpCQ,EAAannB,KAAK4mB,cAAcrqB,GAEpC,OAAQoqB,GAASQ,GAGlB/Z,iBAAkB,SAAS7Q,GACjB,IAAIoqB,EAAQ3mB,KAAKiK,cAAc0c,MACpCQ,EAAannB,KAAK4mB,cAAcrqB,GAEpC,OAAQoqB,EAAQQ,GAQX/P,YAAa,SAASgQ,GAClB,OAAOA,EAAS9D,KAAK+D,MAAM/D,KAAKgE,UAAY,IAAIhZ,MAAQC,YAQ5DqY,cAAe,SAASrqB,GACpB,OAAOwoB,EAAYxoB,IASvB2b,MAAO,SAASqP,EAAKC,GACjB,IAAIC,EAIJ,GAFAD,EAAOA,GAAQ,IAEY,IAAvBA,EAAKhJ,QAAQ,KACb,MAAM,IAAIvkB,MAAM,qCAGpButB,EAAOA,EAAKlJ,MAAM,KAElB,EAAG,CACC,QAAY/iB,IAARgsB,EACA,OAAO,EAKX,GAFAE,EAAQD,EAAKpwB,SAERmwB,EAAIzwB,eAAe2wB,GACpB,OAAO,EAGXF,EAAMA,EAAIE,SAELD,EAAK7wB,QAEd,OAAO,GAQX+wB,iBAAkB,SAASzP,GACvB,IAAIhN,EAAU5O,EAEd,MAAO4b,GAAMA,IAAOjf,SAAU,CAM1B,GAFAiS,EAAW/K,EAAOiB,IAAI8W,EAAI,aAET,aAAbhN,GAAwC,aAAbA,GAAwC,UAAbA,KAKtD5O,EAAQ6N,SAAShK,EAAOiB,IAAI8W,EAAI,aAE3B0P,MAAMtrB,IAAoB,IAAVA,GACjB,OAAOA,EAIf4b,EAAKA,EAAG9d,WAGZ,OAAO,MAQXytB,yBAA0B,SAAS3P,GAC/B,IAAIhN,EAEJ,MAAOgN,GAAMA,IAAOjf,SAAU,CAG1B,GAFAiS,EAAW/K,EAAOiB,IAAI8W,EAAI,YAET,UAAbhN,EACA,OAAO,EAGXgN,EAAKA,EAAG9d,WAGZ,OAAO,GAMX0tB,MAAO,SAASC,GAEZ,IADA,IAAIC,GAAQ,IAAIzZ,MAAOC,UACd9X,EAAI,EAAGA,EAAI,IAAKA,IACrB,IAAK,IAAI6X,MAAOC,UAAYwZ,EAASD,EACjC,OAWZE,aAAc,SAASC,EAAK1E,GACxB,OAAOD,KAAK+D,MAAM/D,KAAKgE,UAAY/D,EAAM0E,EAAM,IAAMA,GAOzDC,iBAAkB,WACd,YAAuB3sB,IAAhB4B,OAAOgrB,MAMlB9mB,WAAY,SAAS+mB,GACjBA,EAAMA,GAAO,GAEb,IAAK,IAAI3xB,EAAI,EAAGA,EAAIotB,UAAUltB,OAAQF,IAAK,CACvC,IAAI8wB,EAAM1D,UAAUptB,GAEpB,GAAK8wB,EAGL,IAAK,IAAI5qB,KAAO4qB,EACRA,EAAIzwB,eAAe6F,KACK,WAApB,eAAO4qB,EAAI5qB,IACXyrB,EAAIzrB,GAAOuD,EAAOmB,WAAW+mB,EAAIzrB,GAAM4qB,EAAI5qB,IAE3CyrB,EAAIzrB,GAAO4qB,EAAI5qB,IAK/B,OAAOyrB,GAIXC,OAAQ,SAASD,GACbA,EAAMA,GAAO,GAEb,IAAK,IAAI3xB,EAAI,EAAGA,EAAIotB,UAAUltB,OAAQF,IAClC,GAAKotB,UAAUptB,GAGf,IAAK,IAAIkG,KAAOknB,UAAUptB,GAClBotB,UAAUptB,GAAGK,eAAe6F,KAC5ByrB,EAAIzrB,GAAOknB,UAAUptB,GAAGkG,IAIpC,OAAOyrB,GAGXjoB,QAAS,SAAS8X,GACd,MAAkB,kBAAPA,EACAjf,SAASsvB,eAAerQ,GAExBA,GAIfsQ,SAAU,SAASvW,GACf,OAAOhZ,SAASC,qBAAqB+Y,IAGzCwJ,aAAc,SAASxJ,GACnB,OAAOhZ,SAASC,qBAAqB+Y,IAGzCwW,WAAY,SAASxW,GACjB,OAAOhZ,SAASyvB,uBAAuBzW,IAG3C5R,QAAS,WACL,OAAOpH,SAASC,qBAAqB,QAAQ,IASjDmf,WAAY,SAASH,EAAI4D,GACrB,GAAK5D,EAAL,CAMA,IAFA,IAAIyQ,EAAa7M,EAAQyC,MAAM,KAEtB7nB,EAAI,EAAGA,EAAIiyB,EAAW/xB,OAAQF,IACnC,GAAuD,GAAnDyJ,EAAOqM,SAAS0L,EAAI/X,EAAOyoB,KAAKD,EAAWjyB,KAC3C,OAAO,EAIf,OAAO,IAGX8V,SAAU,SAAS0L,EAAI+D,GACnB,GAAK/D,EAIL,OAAOA,EAAGgE,UAAYhE,EAAGgE,UAAUhC,SAAS+B,GAAa,IAAI4M,OAAO,MAAQ5M,EAAY,OAAO0K,KAAKzO,EAAG+D,YAG3Gpa,SAAU,SAASqW,EAAI+D,GACnB,GAAK/D,GAA2B,qBAAd+D,EAAlB,CAIA,IAAI6M,EAAa7M,EAAUsC,MAAM,KAEjC,GAAIrG,EAAGgE,UACH,IAAK,IAAIxlB,EAAI,EAAGA,EAAIoyB,EAAWlyB,OAAQF,IAC/BoyB,EAAWpyB,IAAMoyB,EAAWpyB,GAAGE,OAAS,GACxCshB,EAAGgE,UAAUC,IAAIhc,EAAOyoB,KAAKE,EAAWpyB,UAG7C,IAAKyJ,EAAOqM,SAAS0L,EAAI+D,GAC5B,IAAK,IAAIpd,EAAI,EAAGA,EAAIiqB,EAAWlyB,OAAQiI,IACnCqZ,EAAG+D,WAAa,IAAM9b,EAAOyoB,KAAKE,EAAWjqB,MAKzDiD,YAAa,SAASoW,EAAI+D,GACxB,GAAK/D,GAA2B,qBAAd+D,EAAlB,CAIE,IAAI6M,EAAa7M,EAAUsC,MAAM,KAEjC,GAAIrG,EAAGgE,UACH,IAAK,IAAIxlB,EAAI,EAAGA,EAAIoyB,EAAWlyB,OAAQF,IACnCwhB,EAAGgE,UAAU/a,OAAOhB,EAAOyoB,KAAKE,EAAWpyB,UAE5C,GAAIyJ,EAAOqM,SAAS0L,EAAI+D,GAC3B,IAAK,IAAIpd,EAAI,EAAGA,EAAIiqB,EAAWlyB,OAAQiI,IACnCqZ,EAAG+D,UAAY/D,EAAG+D,UAAU8M,QAAQ,IAAIF,OAAO,MAAQ1oB,EAAOyoB,KAAKE,EAAWjqB,IAAM,MAAO,KAAM,MAK7GmqB,mBAAoB,SAAS9Q,EAAI+Q,EAAW7yB,GACxC,IAAIyD,EACAuD,OAAO8rB,YACPrvB,EAAQ,IAAIqvB,YAAYD,EAAW,CAC/BE,OAAQ/yB,KAGZyD,EAAQZ,SAASgtB,YAAY,eAC7BpsB,EAAMuvB,gBAAgBH,GAAW,GAAM,EAAM7yB,IAGjD8hB,EAAG6N,cAAclsB,IAGrBwvB,aAAc,SAASzb,EAAMqb,GAEzB,IAAIK,EACJ,GAAI1b,EAAK2b,cACLD,EAAM1b,EAAK2b,kBACR,IAAqB,GAAjB3b,EAAK4b,SAIZ,MAAM,IAAItvB,MAAM,qCAAuC0T,EAAKpD,IAF5D8e,EAAM1b,EAKV,GAAIA,EAAKmY,cAAe,CAEpB,IAAI0D,EAAa,GAKjB,OAAQR,GACR,IAAK,QACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,UACDQ,EAAa,cACb,MAEJ,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,SACDA,EAAa,aACb,MAEJ,QACI,KAAM,sDAAwDR,EAAY,KAG9E,IAAIpvB,EAAQyvB,EAAIrD,YAAYwD,GAExBC,EAAuB,UAAbT,EACdpvB,EAAM8vB,UAAUV,EAAWS,GAAS,GAEpC7vB,EAAM+vB,WAAY,EAElBhc,EAAKmY,cAAclsB,GAAO,QACvB,GAAI+T,EAAKic,UAAW,CAEnBhwB,EAAQyvB,EAAIQ,oBAChBjwB,EAAM+vB,WAAY,EAClBhc,EAAKic,UAAU,KAAOZ,EAAWpvB,KAIzCimB,MAAO,SAAU5H,GAEb,IADA,IAAItc,EAAIsc,EAAG9d,WAAWiJ,SAAU3M,EAAI,EAC9BA,EAAIkF,EAAEhF,OAAQF,IAChB,GAAIkF,EAAElF,IAAMwhB,EAAK,OAAOxhB,GAGhCkyB,KAAM,SAASmB,GACX,OAAOA,EAAOnB,QAGlBoB,eAAgB,SAASxxB,GACrB,QAAIA,EAAEyxB,cAAcC,QAAQC,YAGxB3xB,EAAEyxB,cAAcC,QAAQC,WAAY,GAE7B,IAIfhpB,OAAQ,SAAS+W,GACTA,GAAMA,EAAG9d,YACT8d,EAAG9d,WAAWC,YAAY6d,IAIlClX,KAAM,SAASopB,EAAQnY,GAEnB,GADAmY,EAASjqB,EAAOC,QAAQgqB,GACpBA,EACA,OAAOA,EAAOC,cAAcpY,IAIpCyG,QAAS,SAAS0R,EAAQnY,GAEtB,GADAmY,EAASjqB,EAAOC,QAAQgqB,GACpBA,EACA,OAAOA,EAAOhR,iBAAiBnH,IAIvCqY,YAAa,SAASpS,EAAIqS,GACtB,OAAOA,EAAcnwB,WAAWkqB,aAAapM,EAAIqS,EAAcC,cAGnE9P,QAAS,SAASqI,EAAM0H,GAEfjI,QAAQ1rB,UAAU2rB,UACnBD,QAAQ1rB,UAAU2rB,QACdD,QAAQ1rB,UAAU4zB,iBAClBlI,QAAQ1rB,UAAU6zB,oBAClBnI,QAAQ1rB,UAAU4rB,mBAClBF,QAAQ1rB,UAAU8zB,kBAClBpI,QAAQ1rB,UAAU6rB,uBAClB,SAAS3qB,GACL,IAAIyqB,GAAWxiB,KAAKhH,UAAYgH,KAAKspB,eAAenQ,iBAAiBphB,GACjEtB,EAAI+rB,EAAQ7rB,OAChB,QAASF,GAAK,GAAK+rB,EAAQrkB,KAAK1H,KAAOuJ,MACvC,OAAOvJ,GAAK,IAQxB,IAHA,IAAIgkB,EAAU,GAGNqI,GAAQA,IAAS9pB,SAAU8pB,EAAOA,EAAK3oB,WACvCqwB,EACI1H,EAAKN,QAAQgI,IACb/P,EAAQxjB,KAAK6rB,GAIrBrI,EAAQxjB,KAAK6rB,GAIjB,OAAOrI,GAGXrX,SAAU,SAAS6U,EAAIuS,EAAUzN,GAC7B,GAAK9E,GAAOA,EAAG2S,WAAf,CAQA,IAJA,IAAIpzB,EAAS,GACTf,EAAI,EACJ6B,EAAI2f,EAAG2S,WAAWj0B,OAEVF,EAAI6B,IAAK7B,EACgB,GAA7BwhB,EAAG2S,WAAWn0B,GAAG8yB,UAAiBrpB,EAAOsiB,QAAQvK,EAAG2S,WAAWn0B,GAAI+zB,EAAUzN,IAC7EvlB,EAAOP,KAAKghB,EAAG2S,WAAWn0B,IAIlC,OAAOe,IAGX6hB,MAAO,SAASpB,EAAIuS,EAAUzN,GAC1B,IAAI3Z,EAAWlD,EAAOkD,SAAS6U,EAAIuS,EAAUzN,GAE7C,OAAO3Z,EAAWA,EAAS,GAAK,MAGpCof,QAAS,SAASvK,EAAIuS,EAAUzN,GAC5B,IAAI5kB,EAAIoqB,QAAQ1rB,UACZg0B,EAAI1yB,EAAEqqB,SAAWrqB,EAAEuqB,uBAAyBvqB,EAAEuyB,oBAAsBvyB,EAAEsqB,mBAAqB,SAAS1qB,GACpG,OAAgE,IAAzD,GAAGymB,QAAQznB,KAAKiC,SAASmgB,iBAAiBphB,GAAIiI,OAGzD,SAAIiY,IAAMA,EAAG6S,UACFD,EAAE9zB,KAAKkhB,EAAIuS,IAM1Br0B,KAAM,SAAS8hB,GACX,MAAO,CACHrX,IAAK,SAAStF,EAAMnF,GACX8hB,SAIoB1c,IAArB0c,EAAG8S,gBACH5tB,OAAOynB,2BACP3M,EAAG8S,cAAgB5tB,OAAOynB,+BAG0BrpB,IAApD4B,OAAOwnB,uBAAuB1M,EAAG8S,iBACjC5tB,OAAOwnB,uBAAuB1M,EAAG8S,eAAiB,IAGtD5tB,OAAOwnB,uBAAuB1M,EAAG8S,eAAezvB,GAAQnF,IAG5D8F,IAAK,SAASX,GACV,GAAK2c,EAIL,YAAyB1c,IAArB0c,EAAG8S,cACI,KAGJ/qB,KAAKS,IAAInF,GAAQ6B,OAAOwnB,uBAAuB1M,EAAG8S,eAAezvB,GAAQ,MAGpFmF,IAAK,SAASnF,GACV,QAAK2c,SAIoB1c,IAArB0c,EAAG8S,kBAIC5tB,OAAOwnB,uBAAuB1M,EAAG8S,iBAAkB5tB,OAAOwnB,uBAAuB1M,EAAG8S,eAAezvB,MAG/G4F,OAAQ,SAAS5F,GACT2c,GAAMjY,KAAKS,IAAInF,WACR6B,OAAOwnB,uBAAuB1M,EAAG8S,eAAezvB,MAMvE0vB,WAAY,SAAS/S,EAAIgT,GACrB,IAAItE,EAEJ,OAAe,IAAXsE,GACAtE,EAAQuE,WAAWjT,EAAGkT,aACtBxE,GAASuE,WAAWhrB,EAAOiB,IAAI8W,EAAI,gBAAkBiT,WAAWhrB,EAAOiB,IAAI8W,EAAI,iBAExEiT,WAAWvE,KAElBA,EAAQuE,WAAWjT,EAAGkT,aAEfxE,IAIf9b,OAAQ,SAASoN,GACb,IAAImT,EAAMC,EAEV,GAAMpT,EASN,OAAMA,EAAGqT,iBAAiB30B,QAK1By0B,EAAOnT,EAAGsT,wBACVF,EAAMpT,EAAGqR,cAAckC,YAEhB,CACHtgB,IAAKkgB,EAAKlgB,IAAMmgB,EAAII,YACpBjgB,KAAM4f,EAAK5f,KAAO6f,EAAIK,cATf,CAAExgB,IAAK,EAAGM,KAAM,IAa/BxB,OAAQ,SAASiO,GACb,OAAO/X,EAAOiB,IAAI8W,EAAI,WAG1B0T,YAAa,SAAS1T,EAAI2T,GACtB,IACIC,EADA7hB,EAASiO,EAAG6T,aAGhB,MAA0B,qBAAfF,IAA6C,IAAfA,GACrCC,EAAQE,iBAAiB9T,GACzBjO,GAAUE,SAAS2hB,EAAMG,WAAa9hB,SAAS2hB,EAAMI,cAE9CjiB,GAEAA,GAIfkiB,QAAS,SAASjU,GACd,QAA4B,IAAnBA,EAAGkT,aAAyC,IAApBlT,EAAG6T,eAGxCxe,KAAM,SAAS2K,EAAI3c,EAAMe,GACrB,QAAUd,GAAN0c,EAIJ,YAAc1c,IAAVc,EAGO4b,EAAG7e,aAAakC,QAFvB2c,EAAGld,aAAaO,EAAMe,IAM9BgR,QAAS,SAAS4K,EAAI3c,GAClB,QAAUC,GAAN0c,EAIJ,QAAOA,EAAG7e,aAAakC,IAG3BglB,WAAY,SAASrI,EAAI3c,QACXC,GAAN0c,GAIJA,EAAG7B,gBAAgB9a,IAGvB6wB,QAAS,SAASvY,EAAMD,EAAIyY,EAAUlgB,EAAQmgB,EAAQC,GAKlD,IAAIC,EAAU,GAUd,GAPAA,EAAQC,OAAS,SAASlwB,EAAGmwB,EAAG9wB,EAAGC,GAC/B,OAAOD,EAAIW,EAAIV,EAAI6wB,GAGvBJ,EAASE,EAAQC,OAGG,kBAAT5Y,GACO,kBAAPD,GACa,kBAAbyY,GACW,oBAAXlgB,EAHX,CAQoB,oBAATogB,IACPA,EAAO,cAIX,IAAII,EAAMvvB,OAAO8lB,uBAAyB,SAASE,GAC/ChmB,OAAO3B,WAAW2nB,EAAU,KAK5BwJ,EAAShZ,EAAKC,EAgBlB1H,EAAO0H,GAGP,IAAImU,EAAQ5qB,OAAOyvB,aAAezvB,OAAOyvB,YAAYC,IAAM1vB,OAAOyvB,YAAYC,OAAS,IAAIve,KAE3Foe,EAAII,GAnBJ,SAASA,EAAKC,GACV,IAAIlU,GAAQkU,IAAc,IAAIze,MAAUyZ,EAEpClP,GAAQ,GACR3M,EAAOmgB,EAAOxT,EAAMjF,EAAM+Y,EAAQP,IAElCvT,GAAQ,GAAKA,GAAQuT,GACrBlgB,EAAOyH,GACP2Y,KAEAI,EAAII,KAYhBE,UAAW,SAAS/U,EAAIgV,EAAMC,GAC1B,IAOQ7wB,EAPJ8E,EAAM,GAEV,GAAI8W,aAAckV,eAAgB,EAIlC,OAAKlV,EAAG7e,aAAa,aAAe6zB,KAAmB,IAAVC,EAsBlChC,WAAWjT,EAAG7e,aAAa,aAAe6zB,KAjBjD9rB,EAAM8W,EAAG4T,MAAMuB,QACfnV,EAAG4T,MAAMuB,QAAU,0DAEP,SAARH,EACA5wB,EAAQ4b,EAAGkT,YACI,UAAR8B,IACP5wB,EAAQ4b,EAAG6T,cAGf7T,EAAG4T,MAAMuB,QAAUjsB,EAGnB8W,EAAGld,aAAa,aAAekyB,EAAM5wB,GAE9B6uB,WAAW7uB,KAO1BoO,aAAc,SAASwN,EAAIiV,GACvB,OAAOhtB,EAAO8sB,UAAU/U,EAAI,SAAUiV,IAG1CG,YAAa,SAASpV,EAAIiV,GACtB,OAAOhtB,EAAO8sB,UAAU/U,EAAI,QAASiV,IAGzCI,UAAW,SAASrtB,EAASstB,GAGzB,OADAA,EAAS,SAAWA,EACZttB,GAAW9C,QAAU8C,GAAWjH,SACpCw0B,KAAgB,aAAVD,EAAyB,cAAgB,gBAC9CE,yBAA2Bz0B,SAAS4pB,gBAAgB2K,IACrDv0B,SAAS2S,KAAK4hB,GACdttB,EAAQstB,IAGhBpsB,IAAK,SAAS8W,EAAIyV,EAAWrxB,GACzB,GAAK4b,EAIL,QAAc1c,IAAVc,EACA4b,EAAG4T,MAAM6B,GAAarxB,MACnB,CACH,IAAImvB,GAAevT,EAAGqR,eAAiBtwB,UAAUwyB,YAEjD,GAAIA,GAAeA,EAAYO,iBAI3B,OADA2B,EAAYA,EAAU5E,QAAQ,WAAY,OAAO6E,cAC1CnC,EAAYO,iBAAiB9T,EAAI,MAAM2V,iBAAiBF,GAC5D,GAAIzV,EAAG4V,aAOV,OALAH,EAAYA,EAAU5E,QAAQ,WAAW,SAASgF,EAAKC,GACnD,OAAOA,EAAOC,iBAElB3xB,EAAQ4b,EAAG4V,aAAaH,GAEpB,sBAAsBhH,KAAKrqB,GACnB,SAASA,GACb,IAAI4xB,EAAUhW,EAAG4T,MAAMrgB,KACnB0iB,EAAYjW,EAAGkW,aAAa3iB,KAMhC,OALAyM,EAAGkW,aAAa3iB,KAAOyM,EAAG4V,aAAariB,KACvCyM,EAAG4T,MAAMrgB,KAAOnP,GAAS,EACzBA,EAAQ4b,EAAG4T,MAAMuC,UAAY,KAC7BnW,EAAG4T,MAAMrgB,KAAOyiB,EAChBhW,EAAGkW,aAAa3iB,KAAO0iB,EAChB7xB,EARH,CASLA,GAEAA,IAKnBgyB,MAAO,SAASpW,EAAIqW,EAAKhY,EAAO6M,EAAUoL,GACtC,MAAKtW,GAAc,MAAPqW,IAAsC,IAAvBpuB,EAAOgsB,QAAQjU,IAA0B,QAAPqW,IAAwC,IAAvBpuB,EAAOgsB,QAAQjU,IAA7F,CAIA3B,EAASA,GAAgB,IACzB,IAAIkY,EAAatuB,EAAOuK,aAAawN,GACjCwW,GAAiB,EACjBC,GAAoB,EAEpBxuB,EAAOiB,IAAI8W,EAAI,iBAA+D,IAA7C/X,EAAO/J,KAAK8hB,GAAIxX,IAAI,sBACrDP,EAAO/J,KAAK8hB,GAAIrX,IAAI,oBAAqBV,EAAOiB,IAAI8W,EAAI,gBAGxD/X,EAAOiB,IAAI8W,EAAI,oBAAqE,IAAhD/X,EAAO/J,KAAK8hB,GAAIxX,IAAI,yBACxDP,EAAO/J,KAAK8hB,GAAIrX,IAAI,uBAAwBV,EAAOiB,IAAI8W,EAAI,mBAG3D/X,EAAO/J,KAAK8hB,GAAIxX,IAAI,uBACpBguB,EAAiBvkB,SAAShK,EAAO/J,KAAK8hB,GAAIhc,IAAI,uBAG9CiE,EAAO/J,KAAK8hB,GAAIxX,IAAI,0BACpBiuB,EAAoBxkB,SAAShK,EAAO/J,KAAK8hB,GAAIhc,IAAI,0BAG1C,MAAPqyB,GACArW,EAAG4T,MAAMuB,QAAU,oCAEfqB,GACAvuB,EAAOisB,QAAQ,EAAGsC,EAAgBnY,GAAO,SAASja,GAC9C4b,EAAG4T,MAAM8C,WAAcF,EAAiBpyB,EAAS,OAClD,UAGHqyB,GACAxuB,EAAOisB,QAAQ,EAAGuC,EAAmBpY,GAAO,SAASja,GACjD4b,EAAG4T,MAAM+C,cAAiBF,EAAoBryB,EAAS,OACxD,UAGP6D,EAAOisB,QAAQ,EAAGqC,EAAYlY,GAAO,SAASja,GAC1C4b,EAAG4T,MAAM7hB,OAAUwkB,EAAanyB,EAAS,OAC1C,UAAU,WACT4b,EAAG4T,MAAM7hB,OAAS,GAClBiO,EAAG4T,MAAMgD,QAAU,OAEK,oBAAb1L,GACPA,QAKM,QAAPmL,IACPrW,EAAG4T,MAAMuB,QAAU,oCAEfqB,GACAvuB,EAAOisB,QAAQ,EAAGsC,EAAgBnY,GAAO,SAASja,GAC9C4b,EAAG4T,MAAM8C,WAAatyB,EAAQ,OAC/B,UAAU,WACT4b,EAAG4T,MAAM8C,WAAa,MAI1BD,GACAxuB,EAAOisB,QAAQ,EAAGuC,EAAmBpY,GAAO,SAASja,GACjD4b,EAAG4T,MAAM+C,cAAgBvyB,EAAQ,OAClC,UAAU,WACT4b,EAAG4T,MAAM+C,cAAgB,MAIjC1uB,EAAOisB,QAAQ,EAAGqC,EAAYlY,GAAO,SAASja,GAC1C4b,EAAG4T,MAAM7hB,OAAS3N,EAAQ,OAC3B,UAAU,WACT4b,EAAG4T,MAAM7hB,OAAS,GAClBiO,EAAG4T,MAAMgD,QAAU,GACnB5W,EAAG4T,MAAMiD,SAAW,GAEI,oBAAb3L,GACPA,UAMhBzJ,QAAS,SAASzB,EAAI3B,EAAO6M,GACzBjjB,EAAOmuB,MAAMpW,EAAI,KAAM3B,EAAO6M,IAGlCxJ,UAAW,SAAS1B,EAAI3B,EAAO6M,GAC3BjjB,EAAOmuB,MAAMpW,EAAI,OAAQ3B,EAAO6M,IAGpC7R,KAAM,SAAS2G,EAAI4W,GACG,qBAAP5W,IACPA,EAAG4T,MAAMgD,QAAWA,GAAoB,UAIhDzd,KAAM,SAAS6G,GACO,qBAAPA,IACPA,EAAG4T,MAAMgD,QAAU,SAI3BvtB,SAAU,SAAS2W,EAAIxe,EAAMuI,EAASD,GAChB,qBAAPkW,GAA6B,OAAPA,GAC7BA,EAAGjC,iBAAiBvc,EAAMuI,IAIlCoZ,YAAa,SAASnD,EAAIxe,EAAMuI,GACjB,OAAPiW,GACAA,EAAG8W,oBAAoBt1B,EAAMuI,IAIrCG,GAAI,SAASlC,EAASuqB,EAAU5wB,EAAOoI,GACnC,GAAKwoB,EAAL,CAIA,IAAIwE,EAAU9uB,EAAOkX,YAAY,SAmBjC,OAjBAja,OAAO0nB,6BAA6BmK,GAAW,SAASz2B,GACpD,IAAI02B,EAAUhvB,EAAQkZ,iBAAiBqR,GACnC1wB,EAASvB,EAAEuB,OAEf,MAAOA,GAAUA,IAAWmG,EAAS,CACjC,IAAK,IAAIxJ,EAAI,EAAGkB,EAAIs3B,EAAQt4B,OAAQF,EAAIkB,EAAGlB,IACnCqD,IAAWm1B,EAAQx4B,IACnBuL,EAAQjL,KAAK+C,EAAQvB,GAI7BuB,EAASA,EAAOK,aAIxB+F,EAAOoB,SAASrB,EAASrG,EAAOuD,OAAO0nB,6BAA6BmK,IAE7DA,IAGXjX,IAAK,SAAS9X,EAASrG,EAAOo1B,GACrB/uB,GAAY9C,OAAO0nB,6BAA6BmK,KAIrD9uB,EAAOkb,YAAYnb,EAASrG,EAAOuD,OAAO0nB,6BAA6BmK,WAEhE7xB,OAAO0nB,6BAA6BmK,KAG/CjtB,IAAK,SAAiBkW,EAAIxe,EAAM0pB,GAC5BlL,EAAGjC,iBAAiBvc,GAAM,SAASy1B,EAAO32B,GAYtC,OAVIA,EAAEuB,QAAUvB,EAAEuB,OAAOi1B,qBACrBx2B,EAAEuB,OAAOi1B,oBAAoBx2B,EAAEkB,KAAMy1B,GAIrCjX,GAAMA,EAAG8W,qBACrBx2B,EAAEyxB,cAAc+E,oBAAoBx2B,EAAEkB,KAAMy1B,GAI7B/L,EAAS5qB,OAIxB42B,KAAM,SAASrB,GACX,IACIr3B,EAAG24B,EADHD,EAAO,EAGX,GAAmB,IAAfrB,EAAIn3B,OAAc,OAAOw4B,EAC7B,IAAK14B,EAAI,EAAGA,EAAIq3B,EAAIn3B,OAAQF,IACxB24B,EAAMtB,EAAIuB,WAAW54B,GACrB04B,GAASA,GAAQ,GAAKA,EAAQC,EAC9BD,GAAQ,EAGZ,OAAOA,GAGXG,aAAc,SAASrX,EAAIsX,EAAepM,GACtC,IAAIqM,EACAC,EAAa,CACbD,UAAW,eACXE,WAAY,gBACZC,aAAc,kBACdC,gBAAiB,qBACjBC,YAAa,kBAGjB,IAAK,IAAIvzB,KAAKmzB,OACUl0B,IAAhB0c,EAAG4T,MAAMvvB,KACTkzB,EAAYC,EAAWnzB,IAI/B4D,EAAO0B,SAASqW,EAAI,YAAcsX,GAElCrvB,EAAO6B,IAAIkW,EAAIuX,GAAW,WACtBtvB,EAAO2B,YAAYoW,EAAI,YAAcsX,MAGrCpM,GACAjjB,EAAO6B,IAAIkW,EAAIuX,EAAWrM,IAIlC2M,cAAe,SAAS7X,EAAIkL,GACxB,IAAI4M,EACAC,EAAc,CACdD,WAAY,gBACZE,YAAa,iBACbC,cAAe,mBACfC,iBAAkB,sBAClBC,aAAc,mBAGlB,IAAK,IAAI9zB,KAAK0zB,OACUz0B,IAAhB0c,EAAG4T,MAAMvvB,KACTyzB,EAAaC,EAAY1zB,IAIjC4D,EAAO6B,IAAIkW,EAAI8X,EAAY5M,IAG/BkN,aAAc,SAASpY,EAAIkL,GACvB,IAAIqM,EACAC,EAAa,CACbD,UAAW,eACXE,WAAY,gBACZC,aAAc,kBACdC,gBAAiB,qBACjBC,YAAa,kBAGjB,IAAK,IAAIvzB,KAAKmzB,OACUl0B,IAAhB0c,EAAG4T,MAAMvvB,KACTkzB,EAAYC,EAAWnzB,IAI/B4D,EAAO6B,IAAIkW,EAAIuX,EAAWrM,IAG9BmN,aAAc,SAASrY,EAAI5b,GAEvB,IADA,IAAI2mB,EAAU,CAAC,UAAW,OAAQ,MAAO,KAAM,IACtCvsB,EAAI,EAAGA,EAAIusB,EAAQrsB,OAAQF,IAChCyJ,EAAOiB,IAAI8W,EAAI+K,EAAQvsB,GAAK,kBAAmB4F,IAIvDk0B,gBAAiB,SAAStY,EAAI5b,GAE1B,IADA,IAAI2mB,EAAU,CAAC,UAAW,OAAQ,MAAO,KAAM,IACtCvsB,EAAI,EAAGA,EAAIusB,EAAQrsB,OAAQF,IAChCyJ,EAAOiB,IAAI8W,EAAI+K,EAAQvsB,GAAK,qBAAsB4F,IAI1D4X,SAAU,SAASna,EAAQ+Q,EAAQuhB,GAC3BA,EAAWA,GAAsB,IAArC,IAGIxY,EAAMD,EAFN6c,EAAY12B,EAASoG,EAAO2K,OAAO/Q,GAAQoR,IAAM,EACjDulB,EAAYtzB,OAAOsuB,aAAezyB,SAAS4pB,gBAAgB7U,WAAa/U,SAAS2S,KAAKoC,WAAa,EAGnGlD,IACA4lB,GAAa5lB,GAGjB+I,EAAO6c,EACP9c,EAAK6c,EAELtwB,EAAOisB,QAAQvY,EAAMD,EAAIyY,GAAU,SAAS/vB,GACxCrD,SAAS4pB,gBAAgB7U,UAAY1R,EACrCrD,SAAS2S,KAAKxR,WAAW4T,UAAY1R,EACrCrD,SAAS2S,KAAKoC,UAAY1R,MAIlC0R,UAAW,SAASlD,EAAQuhB,GACxBlsB,EAAO+T,SAAS,KAAMpJ,EAAQuhB,IAGlCsE,QAAS,SAASnJ,GACd,OAAOA,GAAO3D,MAAM8M,QAAQnJ,IAGhCoJ,MAAO,SAASxN,IACRnqB,SAAS43B,YAAsC,aAAxB53B,SAAS63B,WAAoD,YAAxB73B,SAAS63B,YACrE1N,IAEAnqB,SAASgd,iBAAiB,mBAAoBmN,IAItD2N,QAAS,SAASvJ,GACd,IAAK,IAAI0F,KAAQ1F,EACb,GAAIA,EAAIzwB,eAAem2B,GACnB,OAAO,EAIf,OAAO,GAGX8D,aAAc,SAASC,GACnBA,GAAQ,GACR,IAAIpyB,EAAIoyB,EAAK1S,MAAM,KACf2S,EAAKryB,EAAE,GACPsyB,EAAKtyB,EAAEjI,OAAS,EAAI,IAAMiI,EAAE,GAAK,GACjCuyB,EAAM,eACV,MAAOA,EAAIzK,KAAKuK,GACZA,EAAKA,EAAGnI,QAAQqI,EAAK,SAEzB,OAAOF,EAAKC,GAGhBE,SAAU,WACN,IAAIC,EAAKl0B,OAAO0pB,UAAUC,UAgBtBwK,EAAOD,EAAG7S,QAAQ,SACtB,GAAI8S,EAAO,EAEP,OAAOpnB,SAASmnB,EAAG9K,UAAU+K,EAAO,EAAGD,EAAG7S,QAAQ,IAAK8S,IAAQ,IAGnE,IAAIC,EAAUF,EAAG7S,QAAQ,YACzB,GAAI+S,EAAU,EAAG,CAEb,IAAIC,EAAKH,EAAG7S,QAAQ,OACpB,OAAOtU,SAASmnB,EAAG9K,UAAUiL,EAAK,EAAGH,EAAG7S,QAAQ,IAAKgT,IAAM,IAG/D,IAAIC,EAAOJ,EAAG7S,QAAQ,SACtB,OAAIiT,EAAO,GAEAvnB,SAASmnB,EAAG9K,UAAUkL,EAAO,EAAGJ,EAAG7S,QAAQ,IAAKiT,IAAQ,KAOvEC,MAAO,WACH,IAAI7jB,EAAO3N,EAAOsb,aAAa,QAAQ,GAEvC,GAAI3N,EACA,MAA0C,OAAlC3N,EAAOoN,KAAKO,EAAM,cAKlChB,WAAY,SAAS5M,EAASH,GAC1B,GAAKG,EAAL,CAKA,IAAI0xB,EAAmB,CACnBC,WAAY,GACZC,aAAa,EACbC,kBAAkB,EAClBC,mBAAoB,GACpBC,mBAAoB,IACpBC,iBAAiB,GAGrBnyB,EAAUI,EAAOmB,WAAW,GAAIswB,EAAkB7xB,GAmHlDY,IAGIZ,EAAQoN,oBACRhN,EAAO8L,kBAAiB,WACpBtL,OArHR,SAASA,IACL,IAAIkN,EACA5D,EAGAkoB,EAAQjyB,EAAQwkB,oBA4BpB,GA3BIyN,EAAMv7B,OAAS,GACfu7B,EAAMh0B,SAAQ,SAASi0B,GAE5B,GAAK,YAAazL,KAAKyL,IACwD,GAA9D,CAAC,SAAU,SAAU,iBAAiBrV,SAASsV,GAAsB,CACrE,IAAIA,EAAaD,EAASrJ,QAAQ,QAAS,IAAI6E,cAAc7E,QAAQ,gBAAgB,SAAS/B,GACzG,OAAOA,EAAM+B,QAAQ,IAAK,IAAIkF,iBAGnBluB,EAAQsyB,GAAclyB,EAAOmyB,cAAcpyB,EAAQ7G,aAAa+4B,QAO5EnoB,EADAlK,EAAQkK,kBAAkBsoB,SACjBxyB,EAAQkK,OAAOjT,QAEQ,IAA5BmJ,EAAOumB,kBAA6B3mB,EAAQyyB,aACnCroB,SAASpK,EAAQyyB,cACnBzyB,EAAQkK,OACNE,SAASpK,EAAQkK,QAEjBE,SAAShK,EAAOiB,IAAIlB,EAAS,YAI/B,IAAX+J,EAAJ,CASA,GAHAA,EAASE,SAASF,IAGblK,EAAQiN,oBAAsBjN,EAAQuP,oBAAiD,IAA5BnP,EAAOumB,iBAmBnE,OAlBA7Y,EAAK1N,EAAO/J,KAAK8J,GAAShE,IAAI,WAC1B2R,GACI9N,EAAQmN,qBACR/M,EAAOiB,IAAIlB,EAAS,SAAU,SAE9BC,EAAOiB,IAAIlB,EAAS,WAAY,QAC5B+J,EAAS,GACT9J,EAAOiB,IAAIlB,EAAS,SAAU+J,EAAS,OAI/C4D,EAAG4kB,UACH5kB,EAAK1N,EAAO/J,KAAK8J,GAASiB,OAAO,OAC1B8I,EAAS,IAChB9J,EAAOiB,IAAIlB,EAAS,WAAY,QAChCC,EAAOiB,IAAIlB,EAAS,SAAU+J,EAAS,QAU/C,GAJIA,EAAS,GACT9J,EAAOiB,IAAIlB,EAAS,SAAU+J,EAAS,MAGvClK,EAAQkN,oBACR9M,EAAOiB,IAAIlB,EAAS,WAAY,YADpC,CAMkD,QAA9CC,EAAOoN,KAAKrN,EAAS,wBACpBH,EAAQgN,cAAe,GAI5Bc,EAAK1N,EAAO/J,KAAK8J,GAAShE,IAAI,MAE1B2R,EACAA,EAAG1B,UAEHhM,EAAOiB,IAAIlB,EAAS,WAAY,UAChCC,EAAO0B,SAAS3B,EAAS,UAEzB2N,EAAK,IAAIxE,iBAAiBnJ,EAASH,GAEnCI,EAAO/J,KAAK8J,GAASW,IAAI,KAAMgN,IAInC,IAAIuJ,EAAMjX,EAAOoN,KAAKrN,EAAS,MAG/B,IAAiC,IAA7BH,EAAQqN,kBAA6BgB,UAAYgJ,EAAK,CACtD,GAAIhJ,SAASC,UAAU+I,GAAM,CACzB,IAAIhM,EAAMjB,SAASiE,SAASC,UAAU+I,IAElChM,EAAM,IACNlL,EAAQ8N,UAAY5C,GAI5BlL,EAAQ+V,iBAAiB,eAAe,WACpC7H,SAASK,UAAU2I,EAAKlX,EAAQ8N,qBAxEpC7N,EAAO8X,cAAc/X,GAAS,KAwF1C2R,aAAc,SAAS3R,GACnB,IAAI2N,EAAK1N,EAAO/J,KAAK8J,GAAShE,IAAI,MAC9B2R,GACAA,EAAG1B,UAIXumB,gBAAiB,SAAStI,GAEtB,IADA,IAAIuI,EAAYxyB,EAAOuY,QAAQ0R,EAAQ,OAC9B1zB,EAAI,EAAGiiB,EAAMga,EAAU/7B,OAAQF,EAAIiiB,EAAKjiB,IAC7CyJ,EAAO0R,aAAa8gB,EAAUj8B,KAItCuhB,cAAe,SAAS/X,EAAS0yB,GAC7B,IAAI/kB,EAAK1N,EAAO/J,KAAK8J,GAAShE,IAAI,MAE9B2R,IACAA,EAAG4kB,UACH5kB,EAAK1N,EAAO/J,KAAK8J,GAASiB,OAAO,OAGjCjB,GAAW0yB,IACX1yB,EAAQ4rB,MAAM+G,YAAY,WAAY,IACtC3yB,EAAQ4rB,MAAM+G,YAAY,SAAU,MAI5CP,cAAe,SAASjM,GAE7B,OAAY,IAARA,GAAwB,SAARA,IAIR,IAARA,GAAyB,UAARA,GAILA,GAGXtY,QAAS,SAASmK,EAAIpK,GAClBoK,EAAG+C,UAAYnN,GAGnBglB,QAAS,SAAS5a,GACd,GAAIA,EACA,OAAOA,EAAG+C,WAIlB8X,kBAAmB,WACf,IAAInnB,EAAO3S,SAAS2S,KAChBkC,EAAO7U,SAAS4pB,gBAEpB,OAAOU,KAAKC,IAAK5X,EAAKonB,aAAcpnB,EAAKmgB,aAAcje,EAAKmlB,aAAcnlB,EAAKklB,aAAcllB,EAAKie,eAGtG5V,aAAc,WACV,OAASld,SAASi6B,kBAAoBj6B,SAAS4pB,iBAAiB7U,WAGpEmlB,YAAa,SAASC,EAAKC,GAEvB,IAAIC,GAAW,EAED,KAAVF,EAAI,KACJA,EAAMA,EAAI91B,MAAM,GAChBg2B,GAAW,GAGf,IAAIC,EAAMppB,SAASipB,EAAI,IAEnBj3B,GAAKo3B,GAAO,IAAMF,EAElBl3B,EAAI,IAAKA,EAAI,IACPA,EAAI,IAAGA,EAAI,GAErB,IAAIuwB,GAAM6G,GAAO,EAAK,KAAUF,EAE5B3G,EAAI,IAAKA,EAAI,IACPA,EAAI,IAAGA,EAAI,GAErB,IAAI8G,GAAW,IAAND,GAAkBF,EAK3B,OAHIG,EAAI,IAAKA,EAAI,IACRA,EAAI,IAAGA,EAAI,IAEZF,EAAS,IAAI,KAAOE,EAAK9G,GAAK,EAAMvwB,GAAK,IAAKs3B,SAAS,KAKnEhO,SAAW,SAAUH,EAAOoO,EAAMC,GAE7BrO,IAKJA,EAAU7pB,YAAW,WACpBi4B,IAIApO,OAAU9pB,IACRm4B,KAIJC,SAAU,SAAUtO,EAAOoO,EAAMC,GAEhCz4B,aAAaoqB,GAGbA,EAAU7pB,WAAWi4B,EAAMC,IAG5BE,QAAS,SAAS3b,EAAI4b,EAAKx4B,EAASy4B,GAChC,GAAK7b,IAIkB,qBAAZ6b,IAAuC,IAAZA,GAClC5zB,EAAOoN,KAAK2K,EAAI,YAAY,GAG5B4b,IACA3zB,EAAO0B,SAASqW,EAAI4b,GACpB3zB,EAAOoN,KAAK2K,EAAI,aAAc4b,IAG9Bx4B,GAAS,CACT,IAAIwD,EAAUqB,EAAOa,KAAKkX,EAAI,gBAE1BpZ,GACAqB,EAAO/J,KAAK0I,GAAS+B,IAAI,UAAWV,EAAO2yB,QAAQh0B,IACnDqB,EAAO4N,QAAQjP,EAASxD,KAExB6E,EAAO/J,KAAK8hB,GAAIrX,IAAI,UAAWV,EAAO2yB,QAAQ5a,IAC9C/X,EAAO4N,QAAQmK,EAAI5c,MAK/B04B,WAAY,SAAS9b,GACjB,GAAKA,EAAL,CAKA/X,EAAOogB,WAAWrI,EAAI,YAElB/X,EAAOmN,QAAQ4K,EAAI,eACnB/X,EAAO2B,YAAYoW,EAAI/X,EAAOoN,KAAK2K,EAAI,eAG3C,IAAIpZ,EAAUqB,EAAOa,KAAKkX,EAAI,gBAE1BpZ,GAAWqB,EAAO/J,KAAK0I,GAAS4B,IAAI,WACpCP,EAAO4N,QAAQjP,EAASqB,EAAO/J,KAAK0I,GAAS5C,IAAI,YAC1CiE,EAAO/J,KAAK8hB,GAAIxX,IAAI,YAC3BP,EAAO4N,QAAQmK,EAAI/X,EAAO/J,KAAK8hB,GAAIhc,IAAI,cAI/Cie,YAAa,SAASjC,EAAI+b,EAAWnpB,GACjCA,EAASA,GAAU,EAEnB,IAAIopB,EAAc/zB,EAAO+J,cAAc0c,MACnCuN,EAAeh0B,EAAO+J,cAAcD,OAEpCkB,EAAMhL,EAAO2K,OAAOoN,GAAI/M,IACxBlB,EAAS9J,EAAOyrB,YAAY1T,GAAMpN,EAClCW,EAAOtL,EAAO2K,OAAOoN,GAAIzM,KACzBmb,EAAQzmB,EAAO8qB,WAAW/S,GAAMpN,EAEpC,GAAiB,UAAbmpB,EAAuB,CACvB,GAAIE,EAAehpB,EAAMlB,EACrB,OAAO,EACJ,GAAIkqB,EAAehpB,EAAe,IAATlB,EAC5B,OAAO,EAIf,GAAiB,OAAbgqB,EAAoB,CACpB,GAAI9oB,EAAM,EACN,OAAO,EACJ,GAAIA,EAAMlB,EACb,OAAO,EAIf,MAAiB,QAAbgqB,GACIxoB,EAAO,GAQE,SAAbwoB,GACIC,EAAczoB,EAAOmb,IAznD5B,GAuoDkD,qBAAnBtuB,EAAOD,UAC/CC,EAAOD,QAAU8H,GAIrBA,EAAOywB,OAAM,WACiB,qBAAlBwD,cACVj0B,EAAOQ,KAAKyzB,eAEZj0B,EAAOQ,UAKTvD,OAAOzD,OAAS,WACZ,IAAIlC,EAAS0I,EAAOsb,aAAa,QAC7BhkB,GAAUA,EAAO,IACjB0I,EAAO2B,YAAYrK,EAAO,GAAI,iBAIvB0I,W,2DC7xDf,cAEI8S,EAAmB,WAEnB,IAAIohB,EAAkB,SAASn0B,GAC3B,IAAIo0B,EAAWp0B,EACS,qBAAbo0B,IACPA,EAAWr7B,SAASmgB,iBAAiB,2EAGzC,IAAK,IAAI1iB,EAAI,EAAGA,EAAI49B,EAAS19B,SAAUF,EAAG,CACtC,IAAI69B,EAAUD,EAAS59B,GACnB89B,EAAOr0B,OAAOa,KAAKuzB,EAAS,iBAE5BE,EAAY,IAAIjhB,YAAYghB,EAAM,CAClCz6B,OAAQ,SAAS26B,GACb,IAAIH,EAAUG,EAAQ1b,QAAQ,YAC1Bd,EAAK/X,OAAOa,KAAKuzB,EAAS,kCAM9B,OAJKrc,IACDA,EAAK/X,OAAOa,KAAKuzB,EAAS,kBAGvBrc,KAIfuc,EAAUryB,GAAG,WAAW,SAAS5J,GAC7B2H,OAAO0B,SAASrJ,EAAEk8B,QAAS,kBAC3Bl8B,EAAEm8B,iBAEFl5B,YAAW,WACP0E,OAAO2B,YAAYtJ,EAAEk8B,QAAS,oBAC/B,UAKXE,EAAkB,SAAS10B,GAC3B,IACIo0B,EAAWp0B,EACf,GAAwB,qBAAbo0B,EACHA,EAAWr7B,SAASmgB,iBAAiB,4BAG7C,IAAK,IAAI1iB,EAAI,EAAGA,EAAI49B,EAAS19B,SAAUF,EAAG,CACtC,IAAI69B,EAAUD,EAAS59B,GACnBm+B,EAAS10B,OAAOa,KAAKuzB,EAAS,mBAC9BC,EAAOr0B,OAAOa,KAAKuzB,EAAS,iBAGhCp0B,OAAOoB,SAASszB,EAAQ,SAAS,WAC7B,IAAIN,EAAUt0B,KAAK+Y,QAAQ,YACvB7e,EAAQgG,OAAOa,KAAKuzB,EAAS,iBAC7Bv0B,EAAMC,KAENE,OAAOqM,SAASvM,KAAM,mBACtBE,OAAOwZ,QAAQxf,EAAM,KAAK,WACtBgG,OAAO2B,YAAY9B,EAAK,mBACxBG,OAAO2B,YAAY3H,EAAM,mBACzBgG,OAAOkR,KAAKlX,OAGhBgG,OAAO0B,SAAS1H,EAAM,mBACtBgG,OAAO0B,SAAS5B,KAAM,mBACtBE,OAAOyZ,UAAUzf,EAAM,KAAK,WACxBgG,OAAOoR,KAAKpX,UAMxB,IAAIs6B,EAAY,IAAIjhB,YAAYghB,EAAM,CAClCz6B,OAAQ,SAAS26B,GACb,IAAIH,EAAUG,EAAQ1b,QAAQ,YAC1Bd,EAAK/X,OAAOa,KAAKuzB,EAAS,kCAM9B,OAJKrc,IACDA,EAAK/X,OAAOa,KAAKuzB,EAAS,kBAGvBrc,KAIfuc,EAAUryB,GAAG,WAAW,SAAS5J,GAC7B2H,OAAO0B,SAASrJ,EAAEk8B,QAAS,kBAC3Bl8B,EAAEm8B,iBAEFl5B,YAAW,WACP0E,OAAO2B,YAAYtJ,EAAEk8B,QAAS,oBAC/B,UAKf,MAAO,CACH/zB,KAAM,SAAST,EAASH,GACpBs0B,EAAgBn0B,GAChB00B,EAAgB10B,KAjGL,GAwGR+S,U,mCC1Gf,sCAKIpE,EAAc,SAAS/O,EAAWC,GAElC,IAAIC,EAAMC,KAINC,EAAUC,OAAOC,QAAQN,GACzB8L,EAAOzL,OAAOE,UAElB,GAAKH,EAAL,CAKA,IAAII,EAAiB,CACjBw0B,WAAY,IAOZt0B,EAAS,CACTC,UAAW,SAASV,GAahB,OAZII,OAAO/J,KAAK8J,GAASQ,IAAI,aACzBV,EAAMG,OAAO/J,KAAK8J,GAAShE,IAAI,cAG/BsE,EAAOG,KAAKZ,GAGZS,EAAOI,QAEPT,OAAO/J,KAAK8J,GAASW,IAAI,YAAab,IAGnCA,GAGXW,KAAM,SAASZ,GACXC,EAAIc,OAAS,GAGbd,EAAID,QAAUI,OAAOmB,WAAW,GAAIhB,EAAgBP,GAEpDC,EAAI+0B,UAAY/0B,EAAID,QAAQgP,UAC5B/O,EAAI80B,WAAa90B,EAAID,QAAQ+0B,WAC7B90B,EAAIg1B,WAAah1B,EAAI+0B,UAAY,MACjC/0B,EAAIi1B,aAAej1B,EAAI+0B,UAAY,WACnC/0B,EAAIjG,OAEJiG,EAAItC,MAAQyC,OAAOqM,SAAStM,EAASF,EAAIg1B,YAAc,QAAU,UAGrEp0B,MAAO,WAEH,GAAIZ,EAAID,QAAQmP,SACZ,GAAoC,kBAAzBlP,EAAID,QAAQmP,SACnB/O,OAAOoB,SAASpB,OAAOC,QAAQJ,EAAID,QAAQmP,UAAW,SAAS,SAAS1W,GACpEA,EAAEgJ,iBACFxB,EAAIjG,OAASkG,KACbO,EAAOq0B,iBAER,GAAI70B,EAAID,QAAQmP,UAAYlP,EAAID,QAAQmP,SAAS,GACpD,GAAIlP,EAAID,QAAQmP,SAAS,GAAGnV,OACxB,IAAK,IAAIrD,KAAKsJ,EAAID,QAAQmP,SACtB/O,OAAOoB,SAASpB,OAAOC,QAAQJ,EAAID,QAAQmP,SAASxY,GAAGqD,QAAS,SAAS,SAASvB,GAC9EA,EAAEgJ,iBACFxB,EAAIjG,OAASkG,KACbO,EAAOq0B,iBAIf,IAAK,IAAIn+B,KAAKsJ,EAAID,QAAQmP,SACtB/O,OAAOoB,SAASpB,OAAOC,QAAQJ,EAAID,QAAQmP,SAASxY,IAAK,SAAS,SAAS8B,GACvEA,EAAEgJ,iBACFxB,EAAIjG,OAASkG,KACbO,EAAOq0B,iBAKZ70B,EAAID,QAAQmP,UAAYlP,EAAID,QAAQmP,SAASnV,QACpDoG,OAAOoB,SAAUpB,OAAOC,QAAQJ,EAAID,QAAQmP,SAASnV,QAAS,SAAS,SAASvB,GAC5EA,EAAEgJ,iBACFxB,EAAIjG,OAASkG,KACbO,EAAOq0B,YAMnB,IAAI5lB,EAAU9O,OAAOC,QAAQJ,EAAID,QAAQkP,SACrCA,GACA9O,OAAOoB,SAAS0N,EAAS,SAAS,SAASzW,GACvCA,EAAEgJ,iBACFxB,EAAIjG,OAASkG,KACbO,EAAO6Q,WAKnB6jB,QAAS,WACL,MAAqB,SAAbl1B,EAAItC,OAGhBm3B,OAAQ,WACJr0B,EAAOuB,aAAa,UAEH,SAAb/B,EAAItC,MACJ8C,EAAO6Q,OAEP7Q,EAAO+Q,QAIfA,KAAM,WACe,SAAbvR,EAAItC,QAIR8C,EAAOuB,aAAa,cAEpBvB,EAAO20B,YAAY,QAGnBh1B,OAAOoN,KAAK3B,EAAM,kBAAoB5L,EAAI+0B,UAAW,MACrD50B,OAAO0B,SAAS3B,EAASF,EAAIg1B,YAEzBh1B,EAAI80B,WAAWl+B,OAAS,GACxBuJ,OAAOoN,KAAK3B,EAAM,kBAAoB5L,EAAIo1B,YAAa,MAI3Dp1B,EAAItC,MAAQ,QAERsC,EAAID,QAAQ+O,UACZ9O,EAAI8O,QAAU3O,OAAOmqB,YAAYrxB,SAASQ,cAAc,OAASyG,GACjEC,OAAO0B,SAAS7B,EAAI8O,QAAS9O,EAAIi1B,cAEjC90B,OAAOoB,SAASvB,EAAI8O,QAAS,SAAS,SAAStW,GAE3CA,EAAEgJ,iBACFhB,EAAO6Q,KAAKrR,EAAIjG,YAIxByG,EAAOuB,aAAa,eAGxBsP,KAAM,WACe,UAAbrR,EAAItC,QAIR8C,EAAOuB,aAAa,cAEpBvB,EAAO20B,YAAY,QAEnBh1B,OAAOogB,WAAW3U,EAAM,kBAAoB5L,EAAI+0B,WAChD50B,OAAO2B,YAAY5B,EAASF,EAAIg1B,YAE5Bh1B,EAAI80B,WAAWl+B,OAAS,GACxBuJ,OAAOogB,WAAW3U,EAAM,kBAAoB5L,EAAI80B,YAGpD90B,EAAItC,MAAQ,SAERsC,EAAID,QAAQ+O,SAAW9O,EAAI8O,SAC3B3O,OAAOgB,OAAOnB,EAAI8O,SAGtBtO,EAAOuB,aAAa,eAGxBozB,YAAa,SAAS34B,GAClB,IACI0S,EADA1E,EAAKrK,OAAOoN,KAAKvN,EAAIjG,OAAQ,MAGjC,GAAIiG,EAAID,QAAQmP,UAAYlP,EAAID,QAAQmP,SAAS,IAAMlP,EAAID,QAAQmP,SAAS,GAAGnV,OAC3E,IAAK,IAAIrD,KAAKsJ,EAAID,QAAQmP,SAClBlP,EAAID,QAAQmP,SAASxY,GAAGqD,SAAWyQ,IACnC0E,EAAWlP,EAAID,QAAQmP,SAASxY,SAGjCsJ,EAAID,QAAQmP,UAAYlP,EAAID,QAAQmP,SAASnV,SACpDmV,EAAWlP,EAAID,QAAQmP,UAG3B,GAAIA,EAAU,CACV,IAAIgJ,EAAK/X,OAAOC,QAAQ8O,EAASnV,QAEpB,SAATyC,GACA2D,OAAO0B,SAASqW,EAAIhJ,EAASxR,OAGpB,SAATlB,GACA2D,OAAO2B,YAAYoW,EAAIhJ,EAASxR,SAK5CqE,aAAc,SAASxG,EAAM+a,GACzB,IAAK,IAAI5f,EAAI,EAAGA,EAAIsJ,EAAIc,OAAOlK,OAAQF,IAAK,CACxC,IAAImD,EAAQmG,EAAIc,OAAOpK,GACvB,GAAImD,EAAM0B,MAAQA,EAAM,CACpB,GAAiB,GAAb1B,EAAMmI,IAMN,OAAOnI,EAAMoI,QAAQjL,KAAKiJ,KAAMD,EAAKsW,GALrC,GAAmB,GAAfzc,EAAMqI,MAEN,OADAlC,EAAIc,OAAOpK,GAAGwL,OAAQ,EACfrI,EAAMoI,QAAQjL,KAAKiJ,KAAMD,EAAKsW,MASzD/U,SAAU,SAAShG,EAAM0G,EAASD,GAC9BhC,EAAIc,OAAO5J,KAAK,CACZqE,KAAMA,EACN0G,QAASA,EACTD,IAAKA,EACLE,OAAO,MAoEnB,OAvDAlC,EAAImC,YAAc,SAASpC,GACvBO,EAAiBP,GAOrBC,EAAIk1B,QAAU,WACV,OAAO10B,EAAO00B,WAMlBl1B,EAAIqR,KAAO,WACP,OAAO7Q,EAAO6Q,QAMlBrR,EAAIuR,KAAO,WACP,OAAO/Q,EAAO+Q,QAQlBvR,EAAIoC,GAAK,SAAS7G,EAAM0G,GACpB,OAAOzB,EAAOe,SAAShG,EAAM0G,IAQjCjC,EAAIgC,IAAM,SAASzG,EAAM0G,GACrB,OAAOzB,EAAOe,SAAShG,EAAM0G,GAAS,IAQ1CzB,EAAOC,UAAUlJ,MAAMyI,EAAK,CAACD,KAGtB,EAGAC,IAIoD,qBAAnB1H,EAAOD,UAC/CC,EAAOD,QAAUwW,GAGNA,W,4DChTf,sCAKI8D,EAAc,SAAS7S,EAAWC,GAElC,IAAIC,EAAMC,KAINC,EAAUC,OAAOC,QAAQN,GACzB8L,EAAOzL,OAAOE,UAElB,GAAKH,EAAL,CAKA,IAAII,EAAiB,CACjBwK,OAAQ,IACRyL,MAAO,KAOP/V,EAAS,CAKTC,UAAW,SAASV,GAahB,OAZII,OAAO/J,KAAK8J,GAASQ,IAAI,aACzBV,EAAMG,OAAO/J,KAAK8J,GAAShE,IAAI,cAG/BsE,EAAOG,KAAKZ,GAGZS,EAAOI,QAEPT,OAAO/J,KAAK8J,GAASW,IAAI,YAAab,IAGnCA,GAOXW,KAAM,SAASZ,GACXC,EAAIc,OAAS,GAGbd,EAAID,QAAUI,OAAOmB,WAAW,GAAIhB,EAAgBP,IAGxDa,MAAO,WACH,IAAI0kB,EAEJloB,OAAO6Y,iBAAiB,UAAU,WAC9B9V,OAAOslB,SAASH,GAAO,WACnB9kB,EAAO60B,WACR,QAIPl1B,OAAOoB,SAASrB,EAAS,QAASM,EAAO6L,SAM7CgpB,OAAQ,WACJ,IAAIjqB,EAAMjL,OAAOgW,eAEb/K,EAAMpL,EAAID,QAAQ+K,QAC0B,IAAxCc,EAAKwK,aAAa,mBAClBxK,EAAK5Q,aAAa,iBAAkB,OAGI,IAAxC4Q,EAAKwK,aAAa,mBAClBxK,EAAKyK,gBAAgB,mBAQjChK,OAAQ,SAAS7T,GACbA,EAAEgJ,iBAEFrB,OAAO6N,UAAU,EAAGhO,EAAID,QAAQwW,QAOpCxU,aAAc,SAASxG,EAAM+a,GACzB,IAAK,IAAI5f,EAAI,EAAGA,EAAIsJ,EAAIc,OAAOlK,OAAQF,IAAK,CACxC,IAAImD,EAAQmG,EAAIc,OAAOpK,GACvB,GAAImD,EAAM0B,MAAQA,EAAM,CACpB,GAAiB,GAAb1B,EAAMmI,IAMP,OAAOnI,EAAMoI,QAAQjL,KAAKiJ,KAAMD,EAAKsW,GALpC,GAAmB,GAAfzc,EAAMqI,MAEN,OADAlC,EAAIc,OAAOpK,GAAGwL,OAAQ,EACfrI,EAAMoI,QAAQjL,KAAKiJ,KAAMD,EAAKsW,MASzD/U,SAAU,SAAShG,EAAM0G,EAASD,GAC9BhC,EAAIc,OAAO5J,KAAK,CACZqE,KAAMA,EACN0G,QAASA,EACTD,IAAKA,EACLE,OAAO,MA2CnB,OA9BAlC,EAAImC,YAAc,SAASpC,GACvBO,EAAiBP,GAMrBC,EAAIoC,GAAK,SAAS7G,EAAM0G,GACpB,OAAOzB,EAAOe,SAAShG,EAAM0G,IAOjCjC,EAAIgC,IAAM,SAASzG,EAAM0G,GACrB,OAAOzB,EAAOe,SAAShG,EAAM0G,GAAS,IAQ1CzB,EAAOC,UAAUlJ,MAAMyI,EAAK,CAACD,KAGtB,EAGAC,IAIoD,qBAAnB1H,EAAOD,UAC/CC,EAAOD,QAAUsa,GAGNA,W,4DC/Kf,sCAKIC,EAAW,SAAS0iB,EAAeC,EAAex1B,GAElD,IAAIC,EAAMC,KAINC,EAAUo1B,EACVv7B,EAASw7B,EAEb,GAAKr1B,EAAL,CAKA,IAAII,EAAiB,CACjBk1B,iBAAkB,SAOlBh1B,EAAS,CAKTC,UAAW,SAASV,GAahB,OAZII,OAAO/J,KAAK8J,GAASQ,IAAI,UACzBV,EAAMG,OAAO/J,KAAK8J,GAAShE,IAAI,WAG/BsE,EAAOG,KAAKZ,GAGZS,EAAOI,QAEPT,OAAO/J,KAAK8J,GAASW,IAAI,SAAUb,IAGhCA,GAMXW,KAAM,SAASZ,GACXC,EAAIE,QAAUA,EACdF,EAAIc,OAAS,GAGbd,EAAID,QAAUI,OAAOmB,WAAW,GAAIhB,EAAgBP,GAGpDC,EAAIjG,OAASA,EAEbiG,EAAIy1B,YAAcz1B,EAAID,QAAQ01B,YAC9Bz1B,EAAI01B,YAAc11B,EAAID,QAAQ21B,YAEM,SAAhC11B,EAAID,QAAQy1B,iBACZx1B,EAAItC,MAAQyC,OAAOkY,WAAWrY,EAAIjG,OAAQiG,EAAIy1B,aAAe,KAAO,MAEpEz1B,EAAItC,MAAQyC,OAAOmN,QAAQtN,EAAIjG,OAAQ,QAAUiG,EAAIy1B,aAAet1B,OAAOoN,KAAKvN,EAAIjG,OAAQ,QAAUiG,EAAIy1B,aAAe,OAOjI70B,MAAO,WACHT,OAAOoB,SAASrB,EAAS,UAAWM,EAAOq0B,SAM/CA,OAAQ,SAASr8B,GAab,OAZAgI,EAAOuB,aAAa,gBAEH,OAAb/B,EAAItC,MACJ8C,EAAOm1B,WAEPn1B,EAAOo1B,YAGXp1B,EAAOuB,aAAa,eAEpBvJ,EAAEgJ,iBAEKxB,GAMX21B,SAAU,WAmBN,OAlBAn1B,EAAOuB,aAAa,YAEgB,SAAhC/B,EAAID,QAAQy1B,iBACZr1B,OAAO0B,SAAS7B,EAAIjG,OAAQiG,EAAIy1B,aAEhCt1B,OAAOoN,KAAKvN,EAAIjG,OAAQ,QAAUiG,EAAIy1B,YAAa,MAGnDz1B,EAAI01B,aACJv1B,OAAO0B,SAAS3B,EAASF,EAAI01B,aAGjC11B,EAAItC,MAAQ,KAEZ8C,EAAOuB,aAAa,WAEpBvB,EAAOuB,aAAa,UAEb/B,GAMX41B,UAAW,WAmBP,OAlBAp1B,EAAOuB,aAAa,aAEgB,SAAhC/B,EAAID,QAAQy1B,iBACZr1B,OAAO2B,YAAY9B,EAAIjG,OAAQiG,EAAIy1B,aAEnCt1B,OAAOogB,WAAWvgB,EAAIjG,OAAQ,QAAUiG,EAAIy1B,aAG5Cz1B,EAAI01B,aACJv1B,OAAO2B,YAAY5B,EAASF,EAAI01B,aAGpC11B,EAAItC,MAAQ,MAEZ8C,EAAOuB,aAAa,YAEpBvB,EAAOuB,aAAa,UAEb/B,GAMX+B,aAAc,SAASxG,GACnB,IAAK,IAAI7E,EAAI,EAAGA,EAAIsJ,EAAIc,OAAOlK,OAAQF,IAAK,CACxC,IAAImD,EAAQmG,EAAIc,OAAOpK,GAEvB,GAAImD,EAAM0B,MAAQA,EAAM,CACpB,GAAiB,GAAb1B,EAAMmI,IAMN,OAAOnI,EAAMoI,QAAQjL,KAAKiJ,KAAMD,GALhC,GAAmB,GAAfnG,EAAMqI,MAEN,OADAlC,EAAIc,OAAOpK,GAAGwL,OAAQ,EACfrI,EAAMoI,QAAQjL,KAAKiJ,KAAMD,MASpDuB,SAAU,SAAShG,EAAM0G,EAASD,GAQ9B,OAPAhC,EAAIc,OAAO5J,KAAK,CACZqE,KAAMA,EACN0G,QAASA,EACTD,IAAKA,EACLE,OAAO,IAGJlC,IA+Df,OAnDAA,EAAImC,YAAc,SAASpC,GACvBO,EAAiBP,GAMrBC,EAAI61B,SAAW,WACX,OAAO71B,EAAItC,OAMfsC,EAAI60B,OAAS,WACT,OAAOr0B,EAAOq0B,UAMlB70B,EAAI21B,SAAW,WACX,OAAOn1B,EAAOm1B,YAMlB31B,EAAI41B,UAAY,WACZ,OAAOp1B,EAAOo1B,aAOlB51B,EAAIoC,GAAK,SAAS7G,EAAM0G,GACpB,OAAOzB,EAAOe,SAAShG,EAAM0G,IAOjCjC,EAAIgC,IAAM,SAASzG,EAAM0G,GACrB,OAAOzB,EAAOe,SAAShG,EAAM0G,GAAS,IAI1CzB,EAAOC,UAAUlJ,MAAMyI,EAAK,CAACD,IAEtBC,IAIoD,qBAAnB1H,EAAOD,UAC/CC,EAAOD,QAAUua,GAGNA,W,2DCpPf,IAAII,EAAuB,WAE1B,IAAI8iB,EAIGjrB,EAAQ,WACE,IAAI+H,SAASkjB,EAAgB31B,OAAOE,UAAW,CAC9Do1B,YAAa,mBACbC,YAAa,YAKf,MAAO,CACN/0B,KAAM,SAAS6J,GACLsrB,EAAiB31B,OAAOC,QAAQoK,GAEpCsrB,GAKIjrB,KAGJkrB,iBAAkB,WACd,OAAOD,IA3BQ,GAkCZ9iB,U,kCClCf,IAAID,EAAoB,WAEpB,IAAIhJ,EACAisB,EAGHnrB,EAAQ,WAEXmrB,EAAc,IAAItjB,OAAO3I,EAAU,CAElCqO,QAAS,CACRxC,QAAS,YACT2C,OAAQ,YACRC,OAAQ,aAIT5B,UAAW,CACVI,WAAW,KAKbgf,EAAY5zB,GAAG,aAAa,SAAS6zB,GACpCnjB,cAAcojB,eAAe7kB,WAK/B,MAAO,CACN1Q,KAAM,SAAS6J,GACLT,EAAW5J,OAAOC,QAAQoK,GAErBT,GAKLc,KAGVJ,WAAY,WACX,OAAOV,GAGFosB,QAAS,WACd,OAAOH,GAGFzb,mBAAoB,SAASzB,GAC9Bkd,GACHA,EAAYzb,mBAAmBzB,IAIjCsd,qBAAsB,WACjBJ,GAAe71B,OAAOumB,kBACzBsP,EAAY3kB,SAzDQ,GAiET0B,U,mCCnEf,gDAKIhI,EAAS,SAASjL,EAAWC,GAE7B,IAAIC,EAAMC,KAINC,EAAUC,OAAOC,QAAQN,GACzB8L,EAAOzL,OAAOE,UAElB,GAAKH,EAAL,CAKA,IAAII,EAAiB,CACjB+1B,YAAa,IACbrrB,OAAQ,CACJ8K,iBAAiB,EACjBhL,OAAQ,IACRG,OAAQ,MAQZzK,EAAS,CAKTC,UAAW,SAASV,GAahB,OAZII,OAAO/J,KAAK8J,GAASQ,IAAI,QACzBV,EAAMG,OAAO/J,KAAK8J,GAAShE,IAAI,SAG/BsE,EAAOG,KAAKZ,GAGZS,EAAOI,QAEPT,OAAO/J,KAAK8J,GAASW,IAAI,OAAQb,IAG9BA,GAMXW,KAAM,SAASZ,GACXC,EAAIE,QAAUA,EACdF,EAAIc,OAAS,GAGbd,EAAID,QAAUI,OAAOmB,WAAW,GAAIhB,EAAgBP,GACpDC,EAAImP,OAAShP,OAAOmZ,MAAMpZ,EAAS,gBACnCF,EAAIqP,OAASlP,OAAOmZ,MAAMpZ,EAAS,gBAE/BC,OAAOmZ,MAAMpZ,EAAS,cACtBF,EAAI4L,KAAOzL,OAAOmZ,MAAMpZ,EAAS,cAC1BC,OAAOmZ,MAAMpZ,EAAS,WAC7BF,EAAI4L,KAAOzL,OAAOmZ,MAAMpZ,EAAS,WAOzCU,MAAO,WAEH,IAAIO,EAAShB,OAAOa,KAAKhB,EAAImP,OAAQ,2BACjChO,GACAhB,OAAOoB,SAASJ,EAAQ,SAAS,SAAS3I,GACtCA,EAAEgJ,iBACFhB,EAAOW,YAKf,IAAImW,EAASnX,OAAOa,KAAKhB,EAAImP,OAAQ,2BACjCmI,GACAnX,OAAOoB,SAAS+V,EAAQ,SAAS,SAAS9e,GACtCA,EAAEgJ,iBACFhB,EAAO8W,YAKf,IAAIud,EAAS10B,OAAOa,KAAKhB,EAAImP,OAAQ,2BACjC0lB,GACA10B,OAAOoB,SAASszB,EAAQ,SAAS,SAASr8B,GACtCA,EAAEgJ,iBACFhB,EAAOq0B,aAQnB7oB,WAAY,WAEKhM,EAAID,QAAQiL,OAAOF,OAE3B9K,EAAImP,QAIZ/R,OAAO6Y,iBAAiB,SAAUzV,EAAO81B,iBAM7CA,eAAgB,SAAS99B,GACxB,IAAIsS,EAAS9K,EAAID,QAAQiL,OAAOF,OAEhC,IAAG8c,MAAM9c,GAAT,CAEA,IAAIoL,EAAK/V,OAAOgW,eAEZD,GAAMpL,IAAsD,IAA5C3K,OAAOqM,SAASZ,EAAM,mBACzCpL,EAAOuB,aAAa,YAEpB5B,OAAO0B,SAAS+J,EAAM,kBAEtBpL,EAAO0L,gBAEO,IAAHgK,GAAWpL,GAAU3K,OAAOqM,SAASZ,EAAM,oBAEtDpL,EAAOuB,aAAa,aAEpB5B,OAAO2B,YAAY8J,EAAM,kBAEzBpL,EAAO+1B,iBAINrqB,aAAc,WAKV,IAAIf,EASIM,EAOAE,EApBH3L,EAAImP,SAMLhP,OAAOqM,SAASZ,EAAM,oBAElBT,EADAnL,EAAID,QAAQiL,OAAOE,SAASC,eAAeonB,SACrCpoB,SAASnK,EAAID,QAAQiL,OAAOE,SAASC,IAAInU,KAAKiJ,KAAMD,IAEpDmK,SAASnK,EAAID,QAAQiL,OAAOE,SAASC,KAK3CM,EADAzL,EAAID,QAAQiL,OAAOE,SAASO,gBAAgB8mB,SACrCpoB,SAASnK,EAAID,QAAQiL,OAAOE,SAASO,KAAKzU,KAAKiJ,KAAMD,IAErDmK,SAASnK,EAAID,QAAQiL,OAAOE,SAASO,MAK5CE,EADA3L,EAAID,QAAQiL,OAAOE,SAASS,iBAAiB4mB,SACrCpoB,SAASnK,EAAID,QAAQiL,OAAOE,SAASS,MAAM3U,KAAKiJ,KAAMD,IAEtDmK,SAASnK,EAAID,QAAQiL,OAAOE,SAASS,OAGjDxL,OAAOiB,IAAIpB,EAAImP,OAAQ,UAAWnP,EAAID,QAAQiL,OAAOC,QACrD9K,OAAOiB,IAAIpB,EAAImP,OAAQ,MAAOhE,EAAM,MACpChL,OAAOiB,IAAIpB,EAAImP,OAAQ,OAAQ1D,EAAO,MACtCtL,OAAOiB,IAAIpB,EAAImP,OAAQ,QAASxD,EAAQ,SAIhD4qB,YAAa,WACJv2B,EAAImP,SAIuC,IAA5ChP,OAAOqM,SAASZ,EAAM,oBACtBzL,OAAOiB,IAAIpB,EAAImP,OAAQ,UAAW,IAClChP,OAAOiB,IAAIpB,EAAImP,OAAQ,MAAO,IAC9BhP,OAAOiB,IAAIpB,EAAImP,OAAQ,OAAQ,IAC/BhP,OAAOiB,IAAIpB,EAAImP,OAAQ,QAAS,MAOxChO,OAAQ,YACwC,IAAxCX,EAAOuB,aAAa,kBAIxB5B,OAAOgB,OAAOjB,GAEdM,EAAOuB,aAAa,iBAMxBy0B,WAAY,SAAS1oB,GACbA,IACA9N,EAAI4L,KAAKqP,UAAYnN,IAO7BzN,QAAS,WACL,OAAOL,EAAI4L,MAMf6qB,QAAS,WACL,OAAOv2B,GAMXoX,OAAQ,WACJ9W,EAAOuB,aAAa,WAMxB8yB,OAAQ,WACA10B,OAAOqM,SAAStM,EAAS,kBAAoBC,OAAOqM,SAAStM,EAAS,kBACtEM,EAAOk2B,SAEPl2B,EAAOm2B,YAOfA,SAAU,YACwC,IAA1Cn2B,EAAOuB,aAAa,oBAIxB5B,OAAOwZ,QAAQ3Z,EAAI4L,KAAM5L,EAAID,QAAQs2B,aAAa,WAC9C71B,EAAOuB,aAAa,oBAGxB5B,OAAO0B,SAAS3B,EAAS,mBAM7Bw2B,OAAQ,YACwC,IAAxCl2B,EAAOuB,aAAa,kBAIxB5B,OAAOyZ,UAAU5Z,EAAI4L,KAAM5L,EAAID,QAAQs2B,aAAa,WAChD71B,EAAOuB,aAAa,kBAGxB5B,OAAO2B,YAAY5B,EAAS,iBAC5BC,OAAO2B,YAAY5B,EAAS,oBAMhC6B,aAAc,SAASxG,GAEnB,IAAK,IAAI7E,EAAI,EAAGA,EAAIsJ,EAAIc,OAAOlK,OAAQF,IAAK,CACxC,IAAImD,EAAQmG,EAAIc,OAAOpK,GACvB,GAAImD,EAAM0B,MAAQA,EAAM,CACpB,GAAiB,GAAb1B,EAAMmI,IAMN,OAAOnI,EAAMoI,QAAQjL,KAAKiJ,KAAMD,GALhC,GAAmB,GAAfnG,EAAMqI,MAEN,OADAlC,EAAIc,OAAOpK,GAAGwL,OAAQ,EACfrI,EAAMoI,QAAQjL,KAAKiJ,KAAMD,MASpDuB,SAAU,SAAShG,EAAM0G,EAASD,GAQ9B,OAPAhC,EAAIc,OAAO5J,KAAK,CACZqE,KAAMA,EACN0G,QAASA,EACTD,IAAKA,EACLE,OAAO,IAGJlC,IAwHf,OA5GAA,EAAImC,YAAc,SAASpC,GACvBO,EAAiBP,GAMrBC,EAAImB,OAAS,WACT,OAAOX,EAAOW,OAAO2M,OAMzB9N,EAAIgM,WAAa,WACb,OAAOxL,EAAOwL,cAMlBhM,EAAIkM,aAAe,WACf,OAAO1L,EAAO0L,gBAMlBlM,EAAIu2B,YAAc,WACd,OAAO/1B,EAAO+1B,eAMrBv2B,EAAI42B,cAAgB,WACnBp2B,EAAO+1B,cACPn5B,OAAO4xB,oBAAoB,SAAUxuB,EAAO81B,iBAM1Ct2B,EAAIsX,OAAS,WACT,OAAO9W,EAAO8W,UAMlBtX,EAAIw2B,WAAa,SAAS1oB,GACtB,OAAOtN,EAAOg2B,WAAW1oB,IAM7B9N,EAAI60B,OAAS,WACT,OAAOr0B,EAAOq0B,UAMlB70B,EAAI22B,SAAW,WACX,OAAOn2B,EAAOm2B,YAMlB32B,EAAI02B,OAAS,WACT,OAAOl2B,EAAOk2B,UAOlB12B,EAAIK,QAAU,WACV,OAAOG,EAAOH,WAOlBL,EAAIy2B,QAAU,WACV,OAAOj2B,EAAOi2B,WAMlBz2B,EAAIoC,GAAK,SAAS7G,EAAM0G,GACpB,OAAOzB,EAAOe,SAAShG,EAAM0G,IAMjCjC,EAAIgC,IAAM,SAASzG,EAAM0G,GACrB,OAAOzB,EAAOe,SAAShG,EAAM0G,GAAS,IAI1CzB,EAAOC,UAAUlJ,MAAMyI,EAAK,CAACD,IAEtBC,IAIoD,qBAAnB1H,EAAOD,UAC/CC,EAAOD,QAAU0S,GAGNA,W,2DChbf,IAAIX,EAAiB,WAEjB,IAAIL,EACA8sB,EACAjsB,EAKAZ,EAAa,WACb,IAAIC,EAAS,EAMb,OAJIF,IACAE,EAAS9J,OAAOuK,aAAaX,GAAY,GAGtCE,GAIP6sB,EAAsB,WACtB,IAAI7sB,EAIJ,OAFAA,EAAS9J,OAAOuK,aAAamsB,GAEtB5sB,GAId,MAAO,CACNtJ,KAAM,SAAS6J,EAAIusB,GACThtB,EAAW5J,OAAOC,QAAQoK,GAC1BqsB,EAAoB12B,OAAOC,QAAQ22B,IAOvCzrB,QAAS,WACL,OAAOnL,OAAOqM,SAASrM,OAAOE,UAAW,iBAG7CkL,iBAAkB,WACd,OAAOpL,OAAOqM,SAASrM,OAAOE,UAAW,wBAG7CoK,WAAY,WACR,OAAOV,GAGXitB,oBAAqB,WACjB,OAAOH,GAGXI,UAAW,WACP,OAAOrsB,GAGXP,UAAW,WACP,OAAOL,KAGXwB,mBAAoB,WAChB,OAAOsrB,MAhEE,GAuEN1sB,U,mCCzEf,4EAMIgE,EAAW,WACb,MAAO,CAGLC,UAAW,SAAS9S,GAClB,IAAIknB,EAAUxpB,SAASmlB,OAAO4I,MAAM,IAAI6B,OACtC,WAAattB,EAAKwtB,QAAQ,+BAAgC,QAAU,aAEtE,OAAOtG,EAAUyU,mBAAmBzU,EAAQ,SAAMjnB,GAIpDiT,UAAW,SAASlT,EAAMe,EAAOyD,GAC1BA,IACDA,EAAU,IAGdA,EAAUlJ,OAAO2e,OAAO,GAAI,CAACrS,KAAM,KAAMpD,GAErCA,EAAQuO,mBAAmBC,OAC7BxO,EAAQuO,QAAUvO,EAAQuO,QAAQ6oB,eAGpC,IAAIC,EAAgBC,mBAAmB97B,GAAQ,IAAM87B,mBAAmB/6B,GAExE,IAAK,IAAIg7B,KAAav3B,EACpB,GAAKA,EAAQhJ,eAAeugC,GAA5B,CAGAF,GAAiB,KAAOE,EACxB,IAAIC,EAAcx3B,EAAQu3B,IACN,IAAhBC,IACFH,GAAiB,IAAMG,GAI3Bt+B,SAASmlB,OAASgZ,GAGpBI,aAAc,SAASj8B,GACrBkT,UAAUlT,EAAM,GAAI,CAClB,WAAY,MAzCL,GAgDgD,qBAAnBjD,EAAOD,UACjDC,EAAOD,QAAU+V,GAGJA,W,2DCxDf,IAAI0E,EAAgB,WAEhB,IACI/I,EACA0tB,EACAC,EAIH7sB,EAAQ,WACX,IAAI8sB,EAAiBx3B,OAAOqM,SAASzC,EAAU,2BAA6B,0BAA4B,QAGxG2tB,EAAmB,IAAI7oB,YAAY9E,EAAU,CAC5CgF,UAAW4oB,EACX7oB,SAAS,EACTG,QAAS,qBACTC,SAAU,CAAC,0BAA2B,wCAIjC0oB,EAAc,WACdz3B,OAAO2M,WAAW2qB,EAA0B,CACxCnoB,kBAAkB,EAClBpC,sBAAsB,EACtBC,oBAAoB,EACpBlD,OAAQ,WACJ,IAAIA,EAASE,SAAShK,OAAO+J,cAAcD,QAI3C,OAFAA,GAAmBE,SAAShK,OAAOiB,IAAIq2B,EAA2B,iBAAmBttB,SAAShK,OAAOiB,IAAIq2B,EAA0B,cAE5HxtB,MAMtB,MAAO,CACNtJ,KAAM,SAAS6J,GACLT,EAAW5J,OAAOC,QAAQoK,GAC1BitB,EAA4Bt3B,OAAOC,QAAQ,yBACnCD,OAAOE,UAEV0J,IAKLc,IACA+sB,MAGJntB,WAAY,WACR,OAAOV,GAGXmsB,aAAc,WACV,OAAOwB,IAzDC,GAgEL5kB","file":"js/app.c5218559.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-01c0881e\":\"82443544\",\"chunk-10489fb8\":\"8428afa2\",\"chunk-4b9d610c\":\"f0826e30\",\"chunk-49591308\":\"23c62676\",\"chunk-06e1fb61\":\"b9ac2b07\",\"chunk-0e535982\":\"9a908309\",\"chunk-1ab5055c\":\"aedea81f\",\"chunk-383ffa24\":\"77871a24\",\"chunk-64ab7b04\":\"e296f454\",\"chunk-0426a207\":\"b505e5f7\",\"chunk-03ba90ab\":\"618bfbb8\",\"chunk-9bc7df60\":\"b2f78649\",\"chunk-0286d9e1\":\"50a14d07\",\"chunk-12de33e3\":\"eed2f479\",\"chunk-17357dca\":\"00692599\",\"chunk-2b7654df\":\"9fc6b6b3\",\"chunk-2f4178c2\":\"66e7d065\",\"chunk-3ec58d68\":\"044db3e4\",\"chunk-51134f3e\":\"902db0b7\",\"chunk-6074e79c\":\"c856c603\",\"chunk-7e984fb2\":\"4299348a\",\"chunk-f8fc270c\":\"e6c9c5bc\",\"chunk-535846a5\":\"6779d344\",\"chunk-27a70734\":\"9ffbf4ef\",\"chunk-20f67ecf\":\"ea98789c\",\"chunk-fc47658a\":\"298a158f\",\"chunk-02cb6c96\":\"4f04f147\",\"chunk-dddde980\":\"8f0e0e87\",\"chunk-2d0a4489\":\"628aec43\",\"chunk-2d0b2158\":\"0019dd58\",\"chunk-2d0c0351\":\"82e2bd1d\",\"chunk-2d0c0c06\":\"c46cbaa2\",\"chunk-2d0c4d85\":\"389643b5\",\"chunk-0c50f90c\":\"0db1c118\",\"chunk-429e73dd\":\"7b3516a0\",\"chunk-48030104\":\"95788b01\",\"chunk-9cbb2af0\":\"6dbda2ee\",\"chunk-f79c329a\":\"15cb52e2\",\"chunk-2d0ccfe8\":\"14785553\",\"chunk-2d0d2f90\":\"a7b3c753\",\"chunk-2d0e1b9e\":\"bfcee09a\",\"chunk-2d0e6172\":\"ab08cf75\",\"chunk-2d210200\":\"fa65e0ea\",\"chunk-2d216256\":\"7f9c856a\",\"chunk-2d2163d4\":\"310832f1\",\"chunk-2d21f11c\":\"f1c4c0a1\",\"chunk-2d230496\":\"b92a0101\",\"chunk-2d230bd7\":\"1e627639\",\"chunk-376884b6\":\"8011eb04\",\"chunk-3768c625\":\"57cb90c0\",\"chunk-3768c647\":\"48bbc4c5\",\"chunk-3768f920\":\"4ced45f5\",\"chunk-3768f94e\":\"ac7a52c1\",\"chunk-376900b2\":\"f09fffb9\",\"chunk-37697ca5\":\"daa7a909\",\"chunk-3769e020\":\"fe252824\",\"chunk-376a6cff\":\"b2a5c995\",\"chunk-376a941d\":\"72e85309\",\"chunk-376acc6c\":\"1a53b89a\",\"chunk-376acc7e\":\"d82d88e4\",\"chunk-376acca9\":\"82a82582\",\"chunk-376b809c\":\"7f04a336\",\"chunk-376bfecc\":\"4f1e3d37\",\"chunk-376c3eab\":\"fbb3e751\",\"chunk-376c6d21\":\"e3ead5af\",\"chunk-376c708f\":\"1e32fa89\",\"chunk-376cef0f\":\"e542f0b5\",\"chunk-377e5862\":\"135c8cb0\",\"chunk-377e7527\":\"10d5f0cc\",\"chunk-377ed9f8\":\"19af0ab2\",\"chunk-377f12a5\":\"6e340be5\",\"chunk-377f14a2\":\"e22624af\",\"chunk-377f5235\":\"a4ed4b03\",\"chunk-377f9005\":\"fb32d065\",\"chunk-377fada0\":\"ab7ade45\",\"chunk-377fbbbf\":\"17781036\",\"chunk-3780970d\":\"9fadb532\",\"chunk-3780a904\":\"cc9d1af6\",\"chunk-3780ad51\":\"929ad066\",\"chunk-3780b720\":\"5b8e34b4\",\"chunk-3780de1e\":\"a31e42de\",\"chunk-3780e609\":\"50f559fe\",\"chunk-3780ed6d\":\"4f06edf2\",\"chunk-3781564e\":\"a78e0ff4\",\"chunk-45d0b026\":\"ab972973\",\"chunk-558578a4\":\"db7d04c3\",\"chunk-6c985d88\":\"3b207f0e\",\"chunk-6e00c051\":\"6201e59b\",\"chunk-77d5e372\":\"d6b7a053\",\"chunk-953f4ac8\":\"8e9fc1fa\",\"chunk-a061067a\":\"5535d71b\",\"chunk-cd7ac142\":\"048abae6\",\"chunk-cf09472e\":\"36d3d5d7\",\"chunk-dcf6e014\":\"c010e41a\",\"chunk-f4b02d80\":\"7b12972b\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-01c0881e\":1,\"chunk-10489fb8\":1,\"chunk-4b9d610c\":1,\"chunk-49591308\":1,\"chunk-06e1fb61\":1,\"chunk-0e535982\":1,\"chunk-1ab5055c\":1,\"chunk-383ffa24\":1,\"chunk-64ab7b04\":1,\"chunk-0426a207\":1,\"chunk-03ba90ab\":1,\"chunk-9bc7df60\":1,\"chunk-0286d9e1\":1,\"chunk-12de33e3\":1,\"chunk-17357dca\":1,\"chunk-2b7654df\":1,\"chunk-2f4178c2\":1,\"chunk-3ec58d68\":1,\"chunk-51134f3e\":1,\"chunk-6074e79c\":1,\"chunk-7e984fb2\":1,\"chunk-f8fc270c\":1,\"chunk-535846a5\":1,\"chunk-27a70734\":1,\"chunk-fc47658a\":1,\"chunk-02cb6c96\":1,\"chunk-dddde980\":1,\"chunk-0c50f90c\":1,\"chunk-429e73dd\":1,\"chunk-48030104\":1,\"chunk-9cbb2af0\":1,\"chunk-f79c329a\":1,\"chunk-45d0b026\":1,\"chunk-558578a4\":1,\"chunk-6c985d88\":1,\"chunk-6e00c051\":1,\"chunk-77d5e372\":1,\"chunk-953f4ac8\":1,\"chunk-a061067a\":1,\"chunk-cd7ac142\":1,\"chunk-cf09472e\":1,\"chunk-dcf6e014\":1,\"chunk-f4b02d80\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-01c0881e\":\"9aa9e98a\",\"chunk-10489fb8\":\"4e9e8c57\",\"chunk-4b9d610c\":\"4b7f13da\",\"chunk-49591308\":\"2b308121\",\"chunk-06e1fb61\":\"cd5d323e\",\"chunk-0e535982\":\"10b0b74a\",\"chunk-1ab5055c\":\"c947416e\",\"chunk-383ffa24\":\"ebf25ca4\",\"chunk-64ab7b04\":\"89f6eace\",\"chunk-0426a207\":\"22b08391\",\"chunk-03ba90ab\":\"9288b667\",\"chunk-9bc7df60\":\"ca6df252\",\"chunk-0286d9e1\":\"77bd3a37\",\"chunk-12de33e3\":\"bce9a239\",\"chunk-17357dca\":\"41f288d8\",\"chunk-2b7654df\":\"058ca54a\",\"chunk-2f4178c2\":\"8461420b\",\"chunk-3ec58d68\":\"618aa989\",\"chunk-51134f3e\":\"3d21ec1f\",\"chunk-6074e79c\":\"bfb541c1\",\"chunk-7e984fb2\":\"4fc444a7\",\"chunk-f8fc270c\":\"d74c2f9a\",\"chunk-535846a5\":\"8b8f4869\",\"chunk-27a70734\":\"7f7cc8fb\",\"chunk-20f67ecf\":\"31d6cfe0\",\"chunk-fc47658a\":\"e92d480e\",\"chunk-02cb6c96\":\"19a658d4\",\"chunk-dddde980\":\"e7dd7d07\",\"chunk-2d0a4489\":\"31d6cfe0\",\"chunk-2d0b2158\":\"31d6cfe0\",\"chunk-2d0c0351\":\"31d6cfe0\",\"chunk-2d0c0c06\":\"31d6cfe0\",\"chunk-2d0c4d85\":\"31d6cfe0\",\"chunk-0c50f90c\":\"24aacb15\",\"chunk-429e73dd\":\"bf08febf\",\"chunk-48030104\":\"749fb168\",\"chunk-9cbb2af0\":\"e9bbe203\",\"chunk-f79c329a\":\"21c58e12\",\"chunk-2d0ccfe8\":\"31d6cfe0\",\"chunk-2d0d2f90\":\"31d6cfe0\",\"chunk-2d0e1b9e\":\"31d6cfe0\",\"chunk-2d0e6172\":\"31d6cfe0\",\"chunk-2d210200\":\"31d6cfe0\",\"chunk-2d216256\":\"31d6cfe0\",\"chunk-2d2163d4\":\"31d6cfe0\",\"chunk-2d21f11c\":\"31d6cfe0\",\"chunk-2d230496\":\"31d6cfe0\",\"chunk-2d230bd7\":\"31d6cfe0\",\"chunk-376884b6\":\"31d6cfe0\",\"chunk-3768c625\":\"31d6cfe0\",\"chunk-3768c647\":\"31d6cfe0\",\"chunk-3768f920\":\"31d6cfe0\",\"chunk-3768f94e\":\"31d6cfe0\",\"chunk-376900b2\":\"31d6cfe0\",\"chunk-37697ca5\":\"31d6cfe0\",\"chunk-3769e020\":\"31d6cfe0\",\"chunk-376a6cff\":\"31d6cfe0\",\"chunk-376a941d\":\"31d6cfe0\",\"chunk-376acc6c\":\"31d6cfe0\",\"chunk-376acc7e\":\"31d6cfe0\",\"chunk-376acca9\":\"31d6cfe0\",\"chunk-376b809c\":\"31d6cfe0\",\"chunk-376bfecc\":\"31d6cfe0\",\"chunk-376c3eab\":\"31d6cfe0\",\"chunk-376c6d21\":\"31d6cfe0\",\"chunk-376c708f\":\"31d6cfe0\",\"chunk-376cef0f\":\"31d6cfe0\",\"chunk-377e5862\":\"31d6cfe0\",\"chunk-377e7527\":\"31d6cfe0\",\"chunk-377ed9f8\":\"31d6cfe0\",\"chunk-377f12a5\":\"31d6cfe0\",\"chunk-377f14a2\":\"31d6cfe0\",\"chunk-377f5235\":\"31d6cfe0\",\"chunk-377f9005\":\"31d6cfe0\",\"chunk-377fada0\":\"31d6cfe0\",\"chunk-377fbbbf\":\"31d6cfe0\",\"chunk-3780970d\":\"31d6cfe0\",\"chunk-3780a904\":\"31d6cfe0\",\"chunk-3780ad51\":\"31d6cfe0\",\"chunk-3780b720\":\"31d6cfe0\",\"chunk-3780de1e\":\"31d6cfe0\",\"chunk-3780e609\":\"31d6cfe0\",\"chunk-3780ed6d\":\"31d6cfe0\",\"chunk-3781564e\":\"31d6cfe0\",\"chunk-45d0b026\":\"4fff12ce\",\"chunk-558578a4\":\"5093f554\",\"chunk-6c985d88\":\"9b94748d\",\"chunk-6e00c051\":\"a0b54c68\",\"chunk-77d5e372\":\"0e443c0e\",\"chunk-953f4ac8\":\"ee6b3c47\",\"chunk-a061067a\":\"08480b4f\",\"chunk-cd7ac142\":\"1a277322\",\"chunk-cf09472e\":\"84f98409\",\"chunk-dcf6e014\":\"b810e9f8\",\"chunk-f4b02d80\":\"b5f32203\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","// action types\nexport const APPEND_BREADCRUM = \"appendBreadcrumb\";\n\n// mutation types\nexport const SET_BREADCRUMB = \"setBreadcrumb\";\nexport const ADD_BREADCRUMB = \"addBreadcrumb\";\n\nexport default {\n state: {\n breadcrumbs: []\n },\n getters: {\n /**\n * Get list of breadcrumbs for current page\n * @param state\n * @returns {*}\n */\n breadcrumbs(state) {\n return state.breadcrumbs;\n },\n\n /**\n * Get the page title\n * @param state\n * @returns {*}\n */\n pageTitle(state) {\n let last = state.breadcrumbs[state.breadcrumbs.length - 1];\n if (last && last.title) {\n return last.title;\n }\n }\n },\n actions: {\n /**\n * Set the breadcrumbs list\n * @param state\n * @param payload\n */\n [SET_BREADCRUMB](state, payload) {\n state.commit(SET_BREADCRUMB, payload);\n },\n\n /**\n * Add breadcrumb\n * @param state\n * @param payload\n */\n [ADD_BREADCRUMB](state, payload) {\n if (typeof payload === \"object\") {\n payload.forEach(item => state.commit(APPEND_BREADCRUM, item));\n } else {\n state.commit(APPEND_BREADCRUM, payload);\n }\n }\n },\n mutations: {\n [APPEND_BREADCRUM](state, payload) {\n state.breadcrumbs = [...state.breadcrumbs, payload];\n },\n [SET_BREADCRUMB](state, payload) {\n state.breadcrumbs = payload;\n }\n }\n};\n","// action types\n\n// mutation types\nexport const CLEAR_RECIPIENTS = \"clearRecipients\";\nexport const SET_RECIPIENTS = \"setRecipients\";\nexport const ADD_RECIPIENT = \"addRecipient\";\nexport const REMOVE_RECIPIENT = \"removeRecipient\";\n\nexport default {\n state: {\n recipients: [],\n },\n getters: {\n /**\n * Get list of recipients\n * @param state\n * @returns {*}\n */\n recipients(state) {\n return state.recipients;\n },\n recipientCaptions(state) {\n let result = state.recipients.map((x) => x.caption);\n return result;\n },\n recipientKeys(state) {\n let result = state.recipients.map((x) => x.key);\n return result;\n },\n recipientMobileNumbers(state) {\n let result = state.recipients.map((x) => x.mobileNumber);\n return result;\n },\n },\n actions: {},\n mutations: {\n [CLEAR_RECIPIENTS](state) {\n state.recipients = [];\n },\n [SET_RECIPIENTS](state, payload) {\n state.recipients = payload;\n },\n [ADD_RECIPIENT](state, payload) {\n state.recipients = [...state.recipients, payload];\n },\n [REMOVE_RECIPIENT](state, payload) {\n state.recipients = [\n ...state.recipients.filter((x) => x.caption != payload),\n ];\n },\n },\n};\n","const ID_TOKEN_KEY = process.env.VUE_APP__AUTH_TOKEN_ID;\n\nexport const getToken = () => {\n return window.localStorage.getItem(ID_TOKEN_KEY);\n};\n\nexport const saveToken = (token) => {\n window.localStorage.setItem(ID_TOKEN_KEY, token);\n};\n\nexport const destroyToken = () => {\n window.localStorage.removeItem(ID_TOKEN_KEY);\n};\n\nexport default { getToken, saveToken, destroyToken };\n","\"use strict\";\n\nimport KTUtil from \"./util\";\n\n// Component Definition \nvar KTImageInput = function(elementId, options) {\n // Main object\n var the = this;\n var init = false;\n\n // Get element object\n var element = KTUtil.getById(elementId);\n var body = KTUtil.getBody();\n\n if (!element) {\n return;\n }\n\n // Default options\n var defaultOptions = {\n editMode: false\n };\n\n ////////////////////////////\n // ** Private Methods ** //\n ////////////////////////////\n\n var Plugin = {\n /**\n * Construct\n */\n\n construct: function(options) {\n if (KTUtil.data(element).has('imageinput')) {\n the = KTUtil.data(element).get('imageinput');\n } else {\n // reset menu\n Plugin.init(options);\n\n // build menu\n Plugin.build();\n\n KTUtil.data(element).set('imageinput', the);\n }\n\n return the;\n },\n\n /**\n * Init avatar\n */\n init: function(options) {\n the.element = element;\n the.events = [];\n\n the.input = KTUtil.find(element, 'input[type=\"file\"]');\n the.wrapper = KTUtil.find(element, '.image-input-wrapper');\n the.cancel = KTUtil.find(element, '[data-action=\"cancel\"]');\n the.remove = KTUtil.find(element, '[data-action=\"remove\"]');\n the.src = KTUtil.css(the.wrapper, 'backgroundImage');\n the.hidden = KTUtil.find(element, 'input[type=\"hidden\"]');\n\n // merge default and user defined options\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\n },\n\n /**\n * Build\n */\n build: function() {\n // Handle change\n KTUtil.addEvent(the.input, 'change', function(e) {\n e.preventDefault();\n\n\t if (the.input && the.input.files && the.input.files[0]) {\n\t var reader = new FileReader();\n\t reader.onload = function(e) {\n\t KTUtil.css(the.wrapper, 'background-image', 'url('+e.target.result +')');\n\t }\n\t reader.readAsDataURL(the.input.files[0]);\n\n\t KTUtil.addClass(the.element, 'image-input-changed');\n KTUtil.removeClass(the.element, 'image-input-empty');\n\n // Fire change event\n Plugin.eventTrigger('change');\n\t }\n });\n\n // Handle cancel\n KTUtil.addEvent(the.cancel, 'click', function(e) {\n e.preventDefault();\n\n // Fire cancel event\n Plugin.eventTrigger('cancel');\n\n\t KTUtil.removeClass(the.element, 'image-input-changed');\n KTUtil.removeClass(the.element, 'image-input-empty');\n\t KTUtil.css(the.wrapper, 'background-image', the.src);\n\t the.input.value = \"\";\n\n if (the.hidden) {\n the.hidden.value = \"0\";\n }\n });\n\n // Handle remove\n KTUtil.addEvent(the.remove, 'click', function(e) {\n e.preventDefault();\n\n // Fire cancel event\n Plugin.eventTrigger('remove');\n\n\t KTUtil.removeClass(the.element, 'image-input-changed');\n KTUtil.addClass(the.element, 'image-input-empty');\n\t KTUtil.css(the.wrapper, 'background-image', \"none\");\n\t the.input.value = \"\";\n\n if (the.hidden) {\n the.hidden.value = \"1\";\n }\n });\n },\n\n /**\n * Trigger events\n */\n eventTrigger: function(name) {\n //KTUtil.triggerCustomEvent(name);\n for (var i = 0; i < the.events.length; i++) {\n var event = the.events[i];\n if (event.name == name) {\n if (event.one == true) {\n if (event.fired == false) {\n the.events[i].fired = true;\n return event.handler.call(this, the);\n }\n } else {\n return event.handler.call(this, the);\n }\n }\n }\n },\n\n addEvent: function(name, handler, one) {\n the.events.push({\n name: name,\n handler: handler,\n one: one,\n fired: false\n });\n\n return the;\n }\n };\n\n //////////////////////////\n // ** Public Methods ** //\n //////////////////////////\n\n /**\n * Set default options\n */\n\n the.setDefaults = function(options) {\n defaultOptions = options;\n };\n\n /**\n * Attach event\n */\n the.on = function(name, handler) {\n return Plugin.addEvent(name, handler);\n };\n\n /**\n * Attach event that will be fired once\n */\n the.one = function(name, handler) {\n return Plugin.addEvent(name, handler, true);\n };\n\n // Construct plugin\n Plugin.construct.apply(the, [options]);\n\n return the;\n};\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = KTImageInput;\n}\n\nexport default KTImageInput;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=661a56a7&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\nimport Router from \"vue-router\";\n\nVue.use(Router);\n\nexport default new Router({\n mode: \"history\",\n routes: [\n {\n path: \"/\",\n redirect: \"/compose\",\n component: () => import(\"@/view/layout/Layout\"),\n children: [\n {\n path: \"/signed-out\",\n name: \"signed-out\",\n component: () => import(\"@/view/pages/logout/Logout.vue\"),\n },\n {\n path: \"/compose\",\n name: \"compose\",\n component: () => import(\"@/view/pages/Compose.vue\"),\n },\n {\n path: \"/dashboard\",\n name: \"dashboard\",\n component: () => import(\"@/view/pages/Dashboard.vue\"),\n },\n {\n path: \"/contacts\",\n name: \"contacts\",\n component: () => import(\"@/view/pages/contacts/ManageContacts.vue\"),\n },\n // {\n // path: \"/lists\",\n // name: \"lists\",\n // component: () => import(\"@/view/pages/lists/ManageLists.vue\"),\n // },\n {\n path: \"/admin/users\",\n name: \"admin/users\",\n component: () => import(\"@/view/pages/admin/ManageUsers.vue\"),\n },\n {\n path: \"/admin/senders\",\n name: \"admin/senders\",\n component: () => import(\"@/view/pages/admin/ManageSenders.vue\"),\n },\n {\n path: \"/admin/messages\",\n name: \"admin/messages\",\n component: () => import(\"@/view/pages/admin/MessageHistory.vue\"),\n },\n {\n path: \"/admin/messagereports\",\n name: \"admin/messagereports\",\n component: () => import(\"@/view/pages/admin/MessageReports.vue\"),\n },\n {\n path: \"/lists\",\n name: \"lists\",\n component: () => import(\"@/view/pages/lists/ManageLists.vue\"),\n },\n {\n path: \"/vue-bootstrap\",\n name: \"vue-bootstrap\",\n component: () =>\n import(\"@/view/pages/vue-bootstrap/VueBootstrap.vue\"),\n children: [\n {\n path: \"alert\",\n name: \"vue-bootstrap-alert\",\n component: () => import(\"@/view/pages/vue-bootstrap/Alert.vue\"),\n },\n {\n path: \"badge\",\n name: \"vue-bootstrap-badge\",\n component: () => import(\"@/view/pages/vue-bootstrap/Badge.vue\"),\n },\n {\n path: \"button\",\n name: \"vue-bootstrap-button\",\n component: () => import(\"@/view/pages/vue-bootstrap/Button.vue\"),\n },\n {\n path: \"button-group\",\n name: \"vue-bootstrap-button-group\",\n component: () =>\n import(\"@/view/pages/vue-bootstrap/ButtonGroup.vue\"),\n },\n {\n path: \"button-toolbar\",\n name: \"vue-bootstrap-button-toolbar\",\n component: () =>\n import(\"@/view/pages/vue-bootstrap/ButtonToolbar.vue\"),\n },\n {\n path: \"card\",\n name: \"vue-bootstrap-card\",\n component: () => import(\"@/view/pages/vue-bootstrap/Card.vue\"),\n },\n {\n path: \"carousel\",\n name: \"vue-bootstrap-carousel\",\n component: () =>\n import(\"@/view/pages/vue-bootstrap/Carousel.vue\"),\n },\n {\n path: \"collapse\",\n name: \"vue-bootstrap-collapse\",\n component: () =>\n import(\"@/view/pages/vue-bootstrap/Collapse.vue\"),\n },\n {\n path: \"dropdown\",\n name: \"vue-bootstrap-dropdown\",\n component: () =>\n import(\"@/view/pages/vue-bootstrap/Dropdown.vue\"),\n },\n {\n path: \"embed\",\n name: \"vue-bootstrap-embed\",\n component: () => import(\"@/view/pages/vue-bootstrap/Embed.vue\"),\n },\n {\n path: \"form\",\n name: \"vue-bootstrap-form\",\n component: () => import(\"@/view/pages/vue-bootstrap/Form.vue\"),\n },\n {\n path: \"form-checkbox\",\n name: \"vue-bootstrap-form-checkbox\",\n component: () =>\n import(\"@/view/pages/vue-bootstrap/FormCheckbox.vue\"),\n },\n {\n path: \"form-file\",\n name: \"vue-bootstrap-form-file\",\n component: () =>\n import(\"@/view/pages/vue-bootstrap/FormFile.vue\"),\n },\n {\n path: \"form-group\",\n name: \"vue-bootstrap-form-group\",\n component: () =>\n import(\"@/view/pages/vue-bootstrap/FormGroup.vue\"),\n },\n {\n path: \"form-input\",\n name: \"vue-bootstrap-form-input\",\n component: () =>\n import(\"@/view/pages/vue-bootstrap/FormInput.vue\"),\n },\n {\n path: \"form-radio\",\n name: \"vue-bootstrap-form-radio\",\n component: () =>\n import(\"@/view/pages/vue-bootstrap/FormRadio.vue\"),\n },\n {\n path: \"form-select\",\n name: \"vue-bootstrap-form-select\",\n component: () =>\n import(\"@/view/pages/vue-bootstrap/FormSelect.vue\"),\n },\n {\n path: \"form-textarea\",\n name: \"vue-bootstrap-form-textarea\",\n component: () =>\n import(\"@/view/pages/vue-bootstrap/FormTextarea.vue\"),\n },\n {\n path: \"image\",\n name: \"vue-bootstrap-image\",\n component: () => import(\"@/view/pages/vue-bootstrap/Image.vue\"),\n },\n {\n path: \"input-group\",\n name: \"vue-bootstrap-input-group\",\n component: () =>\n import(\"@/view/pages/vue-bootstrap/InputGroup.vue\"),\n },\n {\n path: \"jumbotron\",\n name: \"vue-bootstrap-jumbotron\",\n component: () =>\n import(\"@/view/pages/vue-bootstrap/Jumbotron.vue\"),\n },\n {\n path: \"layout-grid-system\",\n name: \"vue-bootstrap-layout-grid-system\",\n component: () =>\n import(\"@/view/pages/vue-bootstrap/LayoutGridSystem.vue\"),\n },\n {\n path: \"link\",\n name: \"vue-bootstrap-link\",\n component: () => import(\"@/view/pages/vue-bootstrap/Link.vue\"),\n },\n {\n path: \"list-group\",\n name: \"vue-bootstrap-list-group\",\n component: () =>\n import(\"@/view/pages/vue-bootstrap/ListGroup.vue\"),\n },\n {\n path: \"media\",\n name: \"vue-bootstrap-media\",\n component: () => import(\"@/view/pages/vue-bootstrap/Media.vue\"),\n },\n {\n path: \"modal\",\n name: \"vue-bootstrap-modal\",\n component: () => import(\"@/view/pages/vue-bootstrap/Modal.vue\"),\n },\n {\n path: \"nav\",\n name: \"vue-bootstrap-nav\",\n component: () => import(\"@/view/pages/vue-bootstrap/Nav.vue\"),\n },\n {\n path: \"navbar\",\n name: \"vue-bootstrap-navbar\",\n component: () => import(\"@/view/pages/vue-bootstrap/Navbar.vue\"),\n },\n {\n path: \"pagination\",\n name: \"vue-bootstrap-pagination\",\n component: () =>\n import(\"@/view/pages/vue-bootstrap/Pagination.vue\"),\n },\n {\n path: \"pagination-nav\",\n name: \"vue-bootstrap-pagination-nav\",\n component: () =>\n import(\"@/view/pages/vue-bootstrap/PaginationNav.vue\"),\n },\n {\n path: \"notify-popover\",\n name: \"vue-bootstrap-popover\",\n component: () => import(\"@/view/pages/vue-bootstrap/Popover.vue\"),\n },\n {\n path: \"notify-toasts\",\n name: \"vue-bootstrap-toasts\",\n component: () => import(\"@/view/pages/vue-bootstrap/Toasts.vue\"),\n },\n {\n path: \"notify-tooltip\",\n name: \"vue-bootstrap-tooltip\",\n component: () => import(\"@/view/pages/vue-bootstrap/Tooltip.vue\"),\n },\n {\n path: \"progress\",\n name: \"vue-bootstrap-progress\",\n component: () =>\n import(\"@/view/pages/vue-bootstrap/Progress.vue\"),\n },\n {\n path: \"progress-spinner\",\n name: \"vue-bootstrap-spinner\",\n component: () => import(\"@/view/pages/vue-bootstrap/Spinner.vue\"),\n },\n {\n path: \"table\",\n name: \"vue-bootstrap-table\",\n component: () => import(\"@/view/pages/vue-bootstrap/Table.vue\"),\n },\n {\n path: \"tabs\",\n name: \"vue-bootstrap-tabs\",\n component: () => import(\"@/view/pages/vue-bootstrap/Tabs.vue\"),\n },\n ],\n },\n {\n path: \"/vuetify\",\n name: \"vuetify\",\n component: () => import(\"@/view/pages/vuetify/Vuetify.vue\"),\n children: [\n {\n path: \"alerts\",\n name: \"vuetify-alerts\",\n component: () => import(\"@/view/pages/vuetify/Alerts.vue\"),\n },\n {\n path: \"avatars\",\n name: \"vuetify-avatars\",\n component: () => import(\"@/view/pages/vuetify/Avatars.vue\"),\n },\n {\n path: \"badges\",\n name: \"vuetify-badges\",\n component: () => import(\"@/view/pages/vuetify/Badges.vue\"),\n },\n {\n path: \"buttons\",\n name: \"vuetify-buttons\",\n component: () => import(\"@/view/pages/vuetify/Buttons.vue\"),\n },\n {\n path: \"calendars\",\n name: \"vuetify-calendars\",\n component: () => import(\"@/view/pages/vuetify/Calendars.vue\"),\n },\n {\n path: \"cards\",\n name: \"vuetify-cards\",\n component: () => import(\"@/view/pages/vuetify/Cards.vue\"),\n },\n {\n path: \"chips\",\n name: \"vuetify-chips\",\n component: () => import(\"@/view/pages/vuetify/Chips.vue\"),\n },\n {\n path: \"dialog\",\n name: \"vuetify-dialog\",\n component: () => import(\"@/view/pages/vuetify/Dialog.vue\"),\n },\n {\n path: \"forms-autocompletes\",\n name: \"vuetify-autocompletes\",\n component: () =>\n import(\"@/view/pages/vuetify/forms/Autocompletes.vue\"),\n },\n {\n path: \"forms-file-inputs\",\n name: \"vuetify-file-inputs\",\n component: () =>\n import(\"@/view/pages/vuetify/forms/FileInputs.vue\"),\n },\n {\n path: \"forms\",\n name: \"vuetify-forms\",\n component: () => import(\"@/view/pages/vuetify/forms/Forms.vue\"),\n },\n {\n path: \"forms-selection-controls\",\n name: \"vuetify-selection-controls\",\n component: () =>\n import(\"@/view/pages/vuetify/forms/SelectionControls.vue\"),\n },\n {\n path: \"forms-selects\",\n name: \"vuetify-selects\",\n component: () => import(\"@/view/pages/vuetify/forms/Selects.vue\"),\n },\n {\n path: \"forms-textareas\",\n name: \"vuetify-textareas\",\n component: () =>\n import(\"@/view/pages/vuetify/forms/Textareas.vue\"),\n },\n {\n path: \"forms-text-fields\",\n name: \"vuetify-text-fields\",\n component: () =>\n import(\"@/view/pages/vuetify/forms/TextFields.vue\"),\n },\n {\n path: \"tables-simple-tables\",\n name: \"vuetify-simple-tables\",\n component: () =>\n import(\"@/view/pages/vuetify/tables/SimpleTables.vue\"),\n },\n {\n path: \"tables-data-tables\",\n name: \"vuetify-data-tables\",\n component: () =>\n import(\"@/view/pages/vuetify/tables/DataTables.vue\"),\n },\n {\n path: \"tabs\",\n name: \"vuetify-tabs\",\n component: () => import(\"@/view/pages/vuetify/Tabs.vue\"),\n },\n {\n path: \"timelines\",\n name: \"vuetify-timelines\",\n component: () => import(\"@/view/pages/vuetify/Timelines.vue\"),\n },\n {\n path: \"tooltips\",\n name: \"vuetify-tooltips\",\n component: () => import(\"@/view/pages/vuetify/Tooltips.vue\"),\n },\n {\n path: \"treeview\",\n name: \"vuetify-treeview\",\n component: () => import(\"@/view/pages/vuetify/Treeview.vue\"),\n },\n ],\n },\n {\n path: \"/custom-wizard\",\n name: \"wizard\",\n component: () => import(\"@/view/pages/wizard/Wizard.vue\"),\n children: [\n {\n path: \"wizard-1\",\n name: \"wizard-1\",\n component: () => import(\"@/view/pages/wizard/Wizard-1.vue\"),\n },\n {\n path: \"wizard-2\",\n name: \"wizard-2\",\n component: () => import(\"@/view/pages/wizard/Wizard-2.vue\"),\n },\n {\n path: \"wizard-3\",\n name: \"wizard-3\",\n component: () => import(\"@/view/pages/wizard/Wizard-3.vue\"),\n },\n {\n path: \"wizard-4\",\n name: \"wizard-4\",\n component: () => import(\"@/view/pages/wizard/Wizard-4.vue\"),\n },\n ],\n },\n {\n path: \"/custom-plugins\",\n name: \"plugins\",\n component: () => import(\"@/view/pages/plugins/Plugins.vue\"),\n children: [\n {\n path: \"cropper\",\n name: \"cropper\",\n component: () => import(\"@/view/pages/plugins/Cropper.vue\"),\n },\n {\n path: \"treeselect\",\n name: \"treeselect\",\n component: () => import(\"@/view/pages/plugins/Treeselect.vue\"),\n },\n ],\n },\n {\n path: \"/custom-pages\",\n name: \"custom-pages\",\n component: () => import(\"@/view/pages/custom_pages/CustomPages.vue\"),\n children: [\n {\n path: \"profile\",\n name: \"profile\",\n component: () => import(\"@/view/pages/custom_pages/Profile.vue\"),\n },\n ],\n },\n ],\n },\n {\n path: \"/custom-error\",\n name: \"error\",\n component: () => import(\"@/view/pages/error/Error.vue\"),\n children: [\n {\n path: \"error-1\",\n name: \"error-1\",\n component: () => import(\"@/view/pages/error/Error-1.vue\"),\n },\n {\n path: \"error-2\",\n name: \"error-2\",\n component: () => import(\"@/view/pages/error/Error-2.vue\"),\n },\n {\n path: \"error-3\",\n name: \"error-3\",\n component: () => import(\"@/view/pages/error/Error-3.vue\"),\n },\n {\n path: \"error-4\",\n name: \"error-4\",\n component: () => import(\"@/view/pages/error/Error-4.vue\"),\n },\n {\n path: \"error-5\",\n name: \"error-5\",\n component: () => import(\"@/view/pages/error/Error-5.vue\"),\n },\n {\n path: \"error-6\",\n name: \"error-6\",\n component: () => import(\"@/view/pages/error/Error-6.vue\"),\n },\n ],\n },\n {\n path: \"/\",\n component: () => import(\"@/view/pages/auth/Register\"),\n children: [\n {\n name: \"register\",\n path: \"/register\",\n component: () => import(\"@/view/pages/auth/Register\"),\n },\n ],\n },\n {\n path: \"*\",\n redirect: \"/404\",\n },\n {\n // the 404 route, when none of the above matches\n path: \"/404\",\n name: \"404\",\n component: () => import(\"@/view/pages/error/Error-1.vue\"),\n },\n ],\n});\n","// USA\nexport const locale = {\n TRANSLATOR: {\n SELECT: \"Select your language\"\n },\n MENU: {\n NEW: \"new\",\n ACTIONS: \"Actions\",\n CREATE_POST: \"Create New Post\",\n PAGES: \"Pages\",\n FEATURES: \"Features\",\n APPS: \"Apps\",\n DASHBOARD: \"Dashboard\"\n },\n AUTH: {\n GENERAL: {\n OR: \"Or\",\n SUBMIT_BUTTON: \"Submit\",\n NO_ACCOUNT: \"Don't have an account?\",\n SIGNUP_BUTTON: \"Sign Up\",\n FORGOT_BUTTON: \"Forgot Password\",\n BACK_BUTTON: \"Back\",\n PRIVACY: \"Privacy\",\n LEGAL: \"Legal\",\n CONTACT: \"Contact\"\n },\n LOGIN: {\n TITLE: \"Login Account\",\n BUTTON: \"Sign In\"\n },\n FORGOT: {\n TITLE: \"Forgot Password?\",\n DESC: \"Enter your email to reset your password\",\n SUCCESS: \"Your account has been successfully reset.\"\n },\n REGISTER: {\n TITLE: \"Sign Up\",\n DESC: \"Enter your details to create your account\",\n SUCCESS: \"Your account has been successfuly registered.\"\n },\n INPUT: {\n EMAIL: \"Email\",\n FULLNAME: \"Fullname\",\n PASSWORD: \"Password\",\n CONFIRM_PASSWORD: \"Confirm Password\",\n USERNAME: \"Username\"\n },\n VALIDATION: {\n INVALID: \"{{name}} is not valid\",\n REQUIRED: \"{{name}} is required\",\n MIN_LENGTH: \"{{name}} minimum length is {{min}}\",\n AGREEMENT_REQUIRED: \"Accepting terms & conditions are required\",\n NOT_FOUND: \"The requested {{name}} is not found\",\n INVALID_LOGIN: \"The login detail is incorrect\",\n REQUIRED_FIELD: \"Required field\",\n MIN_LENGTH_FIELD: \"Minimum field length:\",\n MAX_LENGTH_FIELD: \"Maximum field length:\",\n INVALID_FIELD: \"Field is not valid\"\n }\n },\n ECOMMERCE: {\n COMMON: {\n SELECTED_RECORDS_COUNT: \"Selected records count: \",\n ALL: \"All\",\n SUSPENDED: \"Suspended\",\n ACTIVE: \"Active\",\n FILTER: \"Filter\",\n BY_STATUS: \"by Status\",\n BY_TYPE: \"by Type\",\n BUSINESS: \"Business\",\n INDIVIDUAL: \"Individual\",\n SEARCH: \"Search\",\n IN_ALL_FIELDS: \"in all fields\"\n },\n ECOMMERCE: \"eCommerce\",\n CUSTOMERS: {\n CUSTOMERS: \"Customers\",\n CUSTOMERS_LIST: \"Customers list\",\n NEW_CUSTOMER: \"New Customer\",\n DELETE_CUSTOMER_SIMPLE: {\n TITLE: \"Customer Delete\",\n DESCRIPTION: \"Are you sure to permanently delete this customer?\",\n WAIT_DESCRIPTION: \"Customer is deleting...\",\n MESSAGE: \"Customer has been deleted\"\n },\n DELETE_CUSTOMER_MULTY: {\n TITLE: \"Customers Delete\",\n DESCRIPTION: \"Are you sure to permanently delete selected customers?\",\n WAIT_DESCRIPTION: \"Customers are deleting...\",\n MESSAGE: \"Selected customers have been deleted\"\n },\n UPDATE_STATUS: {\n TITLE: \"Status has been updated for selected customers\",\n MESSAGE: \"Selected customers status have successfully been updated\"\n },\n EDIT: {\n UPDATE_MESSAGE: \"Customer has been updated\",\n ADD_MESSAGE: \"Customer has been created\"\n }\n }\n }\n};\n","// China\nexport const locale = {\n TRANSLATOR: {\n SELECT: \"选择你的语言\"\n },\n MENU: {\n NEW: \"新\",\n ACTIONS: \"行动\",\n CREATE_POST: \"创建新帖子\",\n PAGES: \"Pages\",\n FEATURES: \"特征\",\n APPS: \"应用\",\n DASHBOARD: \"仪表板\"\n },\n AUTH: {\n GENERAL: {\n OR: \"要么\",\n SUBMIT_BUTTON: \"提交\",\n NO_ACCOUNT: \"没有账号?\",\n SIGNUP_BUTTON: \"注册\",\n FORGOT_BUTTON: \"忘记密码\",\n BACK_BUTTON: \"背部\",\n PRIVACY: \"隐私\",\n LEGAL: \"法律\",\n CONTACT: \"联系\"\n },\n LOGIN: {\n TITLE: \"创建帐号\",\n BUTTON: \"签到\"\n },\n FORGOT: {\n TITLE: \"Forgot Password?\",\n DESC: \"Enter your email to reset your password\",\n SUCCESS: \"Your account has been successfully reset.\"\n },\n REGISTER: {\n TITLE: \"Sign Up\",\n DESC: \"Enter your details to create your account\",\n SUCCESS: \"Your account has been successfuly registered.\"\n },\n INPUT: {\n EMAIL: \"Email\",\n FULLNAME: \"Fullname\",\n PASSWORD: \"Password\",\n CONFIRM_PASSWORD: \"Confirm Password\",\n USERNAME: \"用戶名\"\n },\n VALIDATION: {\n INVALID: \"{{name}} is not valid\",\n REQUIRED: \"{{name}} is required\",\n MIN_LENGTH: \"{{name}} minimum length is {{min}}\",\n AGREEMENT_REQUIRED: \"Accepting terms & conditions are required\",\n NOT_FOUND: \"The requested {{name}} is not found\",\n INVALID_LOGIN: \"The login detail is incorrect\",\n REQUIRED_FIELD: \"Required field\",\n MIN_LENGTH_FIELD: \"Minimum field length:\",\n MAX_LENGTH_FIELD: \"Maximum field length:\",\n INVALID_FIELD: \"Field is not valid\"\n }\n },\n ECOMMERCE: {\n COMMON: {\n SELECTED_RECORDS_COUNT: \"Selected records count: \",\n ALL: \"All\",\n SUSPENDED: \"Suspended\",\n ACTIVE: \"Active\",\n FILTER: \"Filter\",\n BY_STATUS: \"by Status\",\n BY_TYPE: \"by Type\",\n BUSINESS: \"Business\",\n INDIVIDUAL: \"Individual\",\n SEARCH: \"Search\",\n IN_ALL_FIELDS: \"in all fields\"\n },\n ECOMMERCE: \"eCommerce\",\n CUSTOMERS: {\n CUSTOMERS: \"顾客\",\n CUSTOMERS_LIST: \"客户名单\",\n NEW_CUSTOMER: \"New Customer\",\n DELETE_CUSTOMER_SIMPLE: {\n TITLE: \"Customer Delete\",\n DESCRIPTION: \"Are you sure to permanently delete this customer?\",\n WAIT_DESCRIPTION: \"Customer is deleting...\",\n MESSAGE: \"Customer has been deleted\"\n },\n DELETE_CUSTOMER_MULTY: {\n TITLE: \"Customers Delete\",\n DESCRIPTION: \"Are you sure to permanently delete selected customers?\",\n WAIT_DESCRIPTION: \"Customers are deleting...\",\n MESSAGE: \"Selected customers have been deleted\"\n },\n UPDATE_STATUS: {\n TITLE: \"Status has been updated for selected customers\",\n MESSAGE: \"Selected customers status have successfully been updated\"\n },\n EDIT: {\n UPDATE_MESSAGE: \"Customer has been updated\",\n ADD_MESSAGE: \"Customer has been created\"\n }\n }\n }\n};\n","// Spain\nexport const locale = {\n TRANSLATOR: {\n SELECT: \"Elige tu idioma\"\n },\n MENU: {\n NEW: \"nuevo\",\n ACTIONS: \"Comportamiento\",\n CREATE_POST: \"Crear nueva publicación\",\n PAGES: \"Pages\",\n FEATURES: \"Caracteristicas\",\n APPS: \"Aplicaciones\",\n DASHBOARD: \"Tablero\"\n },\n AUTH: {\n GENERAL: {\n OR: \"O\",\n SUBMIT_BUTTON: \"Enviar\",\n NO_ACCOUNT: \"No tienes una cuenta?\",\n SIGNUP_BUTTON: \"Regístrate\",\n FORGOT_BUTTON: \"Se te olvidó tu contraseña\",\n BACK_BUTTON: \"Espalda\",\n PRIVACY: \"Intimidad\",\n LEGAL: \"Legal\",\n CONTACT: \"Contacto\"\n },\n LOGIN: {\n TITLE: \"Crear una cuenta\",\n BUTTON: \"Registrarse\"\n },\n FORGOT: {\n TITLE: \"Contraseña olvidada?\",\n DESC: \"Ingrese su correo electrónico para restablecer su contraseña\",\n SUCCESS: \"Your account has been successfully reset.\"\n },\n REGISTER: {\n TITLE: \"Sign Up\",\n DESC: \"Enter your details to create your account\",\n SUCCESS: \"Your account has been successfuly registered.\"\n },\n INPUT: {\n EMAIL: \"Email\",\n FULLNAME: \"Fullname\",\n PASSWORD: \"Password\",\n CONFIRM_PASSWORD: \"Confirm Password\",\n USERNAME: \"Usuario\"\n },\n VALIDATION: {\n INVALID: \"{{name}} is not valid\",\n REQUIRED: \"{{name}} is required\",\n MIN_LENGTH: \"{{name}} minimum length is {{min}}\",\n AGREEMENT_REQUIRED: \"Accepting terms & conditions are required\",\n NOT_FOUND: \"The requested {{name}} is not found\",\n INVALID_LOGIN: \"The login detail is incorrect\",\n REQUIRED_FIELD: \"Required field\",\n MIN_LENGTH_FIELD: \"Minimum field length:\",\n MAX_LENGTH_FIELD: \"Maximum field length:\",\n INVALID_FIELD: \"Field is not valid\"\n }\n },\n ECOMMERCE: {\n COMMON: {\n SELECTED_RECORDS_COUNT: \"Selected records count: \",\n ALL: \"All\",\n SUSPENDED: \"Suspended\",\n ACTIVE: \"Active\",\n FILTER: \"Filter\",\n BY_STATUS: \"by Status\",\n BY_TYPE: \"by Type\",\n BUSINESS: \"Business\",\n INDIVIDUAL: \"Individual\",\n SEARCH: \"Search\",\n IN_ALL_FIELDS: \"in all fields\"\n },\n ECOMMERCE: \"eCommerce\",\n CUSTOMERS: {\n CUSTOMERS: \"Customers\",\n CUSTOMERS_LIST: \"Customers list\",\n NEW_CUSTOMER: \"New Customer\",\n DELETE_CUSTOMER_SIMPLE: {\n TITLE: \"Customer Delete\",\n DESCRIPTION: \"Are you sure to permanently delete this customer?\",\n WAIT_DESCRIPTION: \"Customer is deleting...\",\n MESSAGE: \"Customer has been deleted\"\n },\n DELETE_CUSTOMER_MULTY: {\n TITLE: \"Customers Delete\",\n DESCRIPTION: \"Are you sure to permanently delete selected customers?\",\n WAIT_DESCRIPTION: \"Customers are deleting...\",\n MESSAGE: \"Selected customers have been deleted\"\n },\n UPDATE_STATUS: {\n TITLE: \"Status has been updated for selected customers\",\n MESSAGE: \"Selected customers status have successfully been updated\"\n },\n EDIT: {\n UPDATE_MESSAGE: \"Customer has been updated\",\n ADD_MESSAGE: \"Customer has been created\"\n }\n }\n }\n};\n","// Japan\nexport const locale = {\n TRANSLATOR: {\n SELECT: \"あなたが使う言語を選んでください\"\n },\n MENU: {\n NEW: \"新しい\",\n ACTIONS: \"行動\",\n CREATE_POST: \"新しい投稿を作成\",\n PAGES: \"Pages\",\n FEATURES: \"特徴\",\n APPS: \"アプリ\",\n DASHBOARD: \"ダッシュボード\"\n },\n AUTH: {\n GENERAL: {\n OR: \"または\",\n SUBMIT_BUTTON: \"提出する\",\n NO_ACCOUNT: \"アカウントを持っていない?\",\n SIGNUP_BUTTON: \"サインアップ\",\n FORGOT_BUTTON: \"パスワードをお忘れですか\",\n BACK_BUTTON: \"バック\",\n PRIVACY: \"プライバシー\",\n LEGAL: \"法的\",\n CONTACT: \"接触\"\n },\n LOGIN: {\n TITLE: \"Create Account\",\n BUTTON: \"Sign In\"\n },\n FORGOT: {\n TITLE: \"Forgot Password?\",\n DESC: \"Enter your email to reset your password\",\n SUCCESS: \"Your account has been successfully reset.\"\n },\n REGISTER: {\n TITLE: \"Sign Up\",\n DESC: \"Enter your details to create your account\",\n SUCCESS: \"Your account has been successfuly registered.\"\n },\n INPUT: {\n EMAIL: \"Email\",\n FULLNAME: \"Fullname\",\n PASSWORD: \"Password\",\n CONFIRM_PASSWORD: \"Confirm Password\",\n USERNAME: \"ユーザー名\"\n },\n VALIDATION: {\n INVALID: \"{{name}} is not valid\",\n REQUIRED: \"{{name}} is required\",\n MIN_LENGTH: \"{{name}} minimum length is {{min}}\",\n AGREEMENT_REQUIRED: \"Accepting terms & conditions are required\",\n NOT_FOUND: \"The requested {{name}} is not found\",\n INVALID_LOGIN: \"The login detail is incorrect\",\n REQUIRED_FIELD: \"Required field\",\n MIN_LENGTH_FIELD: \"Minimum field length:\",\n MAX_LENGTH_FIELD: \"Maximum field length:\",\n INVALID_FIELD: \"Field is not valid\"\n }\n },\n ECOMMERCE: {\n COMMON: {\n SELECTED_RECORDS_COUNT: \"Selected records count: \",\n ALL: \"All\",\n SUSPENDED: \"Suspended\",\n ACTIVE: \"Active\",\n FILTER: \"Filter\",\n BY_STATUS: \"by Status\",\n BY_TYPE: \"by Type\",\n BUSINESS: \"Business\",\n INDIVIDUAL: \"Individual\",\n SEARCH: \"Search\",\n IN_ALL_FIELDS: \"in all fields\"\n },\n ECOMMERCE: \"eCommerce\",\n CUSTOMERS: {\n CUSTOMERS: \"Customers\",\n CUSTOMERS_LIST: \"Customers list\",\n NEW_CUSTOMER: \"New Customer\",\n DELETE_CUSTOMER_SIMPLE: {\n TITLE: \"Customer Delete\",\n DESCRIPTION: \"Are you sure to permanently delete this customer?\",\n WAIT_DESCRIPTION: \"Customer is deleting...\",\n MESSAGE: \"Customer has been deleted\"\n },\n DELETE_CUSTOMER_MULTY: {\n TITLE: \"Customers Delete\",\n DESCRIPTION: \"Are you sure to permanently delete selected customers?\",\n WAIT_DESCRIPTION: \"Customers are deleting...\",\n MESSAGE: \"Selected customers have been deleted\"\n },\n UPDATE_STATUS: {\n TITLE: \"Status has been updated for selected customers\",\n MESSAGE: \"Selected customers status have successfully been updated\"\n },\n EDIT: {\n UPDATE_MESSAGE: \"Customer has been updated\",\n ADD_MESSAGE: \"Customer has been created\"\n }\n }\n }\n};\n","// Germany\nexport const locale = {\n TRANSLATOR: {\n SELECT: \"Wähle deine Sprache\"\n },\n MENU: {\n NEW: \"Neu\",\n ACTIONS: \"Aktionen\",\n CREATE_POST: \"Erstellen Sie einen neuen Beitrag\",\n PAGES: \"Pages\",\n FEATURES: \"Eigenschaften\",\n APPS: \"Apps\",\n DASHBOARD: \"Instrumententafel\"\n },\n AUTH: {\n GENERAL: {\n OR: \"Oder\",\n SUBMIT_BUTTON: \"einreichen\",\n NO_ACCOUNT: \"Hast du kein Konto?\",\n SIGNUP_BUTTON: \"Anmelden\",\n FORGOT_BUTTON: \"Passwort vergessen\",\n BACK_BUTTON: \"Zurück\",\n PRIVACY: \"Privatsphäre\",\n LEGAL: \"Legal\",\n CONTACT: \"Kontakt\"\n },\n LOGIN: {\n TITLE: \"Create Account\",\n BUTTON: \"Sign In\"\n },\n FORGOT: {\n TITLE: \"Forgot Password?\",\n DESC: \"Enter your email to reset your password\",\n SUCCESS: \"Your account has been successfully reset.\"\n },\n REGISTER: {\n TITLE: \"Sign Up\",\n DESC: \"Enter your details to create your account\",\n SUCCESS: \"Your account has been successfuly registered.\"\n },\n INPUT: {\n EMAIL: \"Email\",\n FULLNAME: \"Fullname\",\n PASSWORD: \"Password\",\n CONFIRM_PASSWORD: \"Confirm Password\",\n USERNAME: \"Nutzername\"\n },\n VALIDATION: {\n INVALID: \"{{name}} is not valid\",\n REQUIRED: \"{{name}} is required\",\n MIN_LENGTH: \"{{name}} minimum length is {{min}}\",\n AGREEMENT_REQUIRED: \"Accepting terms & conditions are required\",\n NOT_FOUND: \"The requested {{name}} is not found\",\n INVALID_LOGIN: \"The login detail is incorrect\",\n REQUIRED_FIELD: \"Required field\",\n MIN_LENGTH_FIELD: \"Minimum field length:\",\n MAX_LENGTH_FIELD: \"Maximum field length:\",\n INVALID_FIELD: \"Field is not valid\"\n }\n },\n ECOMMERCE: {\n COMMON: {\n SELECTED_RECORDS_COUNT: \"Selected records count: \",\n ALL: \"All\",\n SUSPENDED: \"Suspended\",\n ACTIVE: \"Active\",\n FILTER: \"Filter\",\n BY_STATUS: \"by Status\",\n BY_TYPE: \"by Type\",\n BUSINESS: \"Business\",\n INDIVIDUAL: \"Individual\",\n SEARCH: \"Search\",\n IN_ALL_FIELDS: \"in all fields\"\n },\n ECOMMERCE: \"eCommerce\",\n CUSTOMERS: {\n CUSTOMERS: \"Customers\",\n CUSTOMERS_LIST: \"Customers list\",\n NEW_CUSTOMER: \"New Customer\",\n DELETE_CUSTOMER_SIMPLE: {\n TITLE: \"Customer Delete\",\n DESCRIPTION: \"Are you sure to permanently delete this customer?\",\n WAIT_DESCRIPTION: \"Customer is deleting...\",\n MESSAGE: \"Customer has been deleted\"\n },\n DELETE_CUSTOMER_MULTY: {\n TITLE: \"Customers Delete\",\n DESCRIPTION: \"Are you sure to permanently delete selected customers?\",\n WAIT_DESCRIPTION: \"Customers are deleting...\",\n MESSAGE: \"Selected customers have been deleted\"\n },\n UPDATE_STATUS: {\n TITLE: \"Status has been updated for selected customers\",\n MESSAGE: \"Selected customers status have successfully been updated\"\n },\n EDIT: {\n UPDATE_MESSAGE: \"Customer has been updated\",\n ADD_MESSAGE: \"Customer has been created\"\n }\n }\n }\n};\n","// France\nexport const locale = {\n TRANSLATOR: {\n SELECT: \"choisissez votre langue\"\n },\n MENU: {\n NEW: \"Nouveau\",\n ACTIONS: \"Actes\",\n CREATE_POST: \"Créer un nouveau Post\",\n PAGES: \"Pages\",\n FEATURES: \"Fonctionnalités\",\n APPS: \"Applications\",\n DASHBOARD: \"Tableau de Bord\"\n },\n AUTH: {\n GENERAL: {\n OR: \"Ou\",\n SUBMIT_BUTTON: \"Soumettre\",\n NO_ACCOUNT: \"Ne pas avoir de compte?\",\n SIGNUP_BUTTON: \"Registre\",\n FORGOT_BUTTON: \"Mot de passe oublié\",\n BACK_BUTTON: \"Back\",\n PRIVACY: \"Privacy\",\n LEGAL: \"Legal\",\n CONTACT: \"Contact\"\n },\n LOGIN: {\n TITLE: \"Créer un compte\",\n BUTTON: \"Sign In\"\n },\n FORGOT: {\n TITLE: \"Forgot Password?\",\n DESC: \"Enter your email to reset your password\",\n SUCCESS: \"Your account has been successfully reset.\"\n },\n REGISTER: {\n TITLE: \"Sign Up\",\n DESC: \"Enter your details to create your account\",\n SUCCESS: \"Your account has been successfuly registered.\"\n },\n INPUT: {\n EMAIL: \"Email\",\n FULLNAME: \"Fullname\",\n PASSWORD: \"Mot de passe\",\n CONFIRM_PASSWORD: \"Confirm Password\",\n USERNAME: \"Nom d'utilisateur\"\n },\n VALIDATION: {\n INVALID: \"{{name}} n'est pas valide\",\n REQUIRED: \"{{name}} est requis\",\n MIN_LENGTH: \"{{name}} minimum length is {{min}}\",\n AGREEMENT_REQUIRED: \"Accepting terms & conditions are required\",\n NOT_FOUND: \"The requested {{name}} is not found\",\n INVALID_LOGIN: \"The login detail is incorrect\",\n REQUIRED_FIELD: \"Required field\",\n MIN_LENGTH_FIELD: \"Minimum field length:\",\n MAX_LENGTH_FIELD: \"Maximum field length:\",\n INVALID_FIELD: \"Field is not valid\"\n }\n },\n ECOMMERCE: {\n COMMON: {\n SELECTED_RECORDS_COUNT: \"Nombre d'enregistrements sélectionnés: \",\n ALL: \"All\",\n SUSPENDED: \"Suspended\",\n ACTIVE: \"Active\",\n FILTER: \"Filter\",\n BY_STATUS: \"by Status\",\n BY_TYPE: \"by Type\",\n BUSINESS: \"Business\",\n INDIVIDUAL: \"Individual\",\n SEARCH: \"Search\",\n IN_ALL_FIELDS: \"in all fields\"\n },\n ECOMMERCE: \"éCommerce\",\n CUSTOMERS: {\n CUSTOMERS: \"Les clients\",\n CUSTOMERS_LIST: \"Liste des clients\",\n NEW_CUSTOMER: \"Nouveau client\",\n DELETE_CUSTOMER_SIMPLE: {\n TITLE: \"Suppression du client\",\n DESCRIPTION: \"Êtes-vous sûr de supprimer définitivement ce client?\",\n WAIT_DESCRIPTION: \"Le client est en train de supprimer ...\",\n MESSAGE: \"Le client a été supprimé\"\n },\n DELETE_CUSTOMER_MULTY: {\n TITLE: \"Supprimer les clients\",\n DESCRIPTION:\n \"Êtes-vous sûr de supprimer définitivement les clients sélectionnés?\",\n WAIT_DESCRIPTION: \"Les clients suppriment ...\",\n MESSAGE: \"Les clients sélectionnés ont été supprimés\"\n },\n UPDATE_STATUS: {\n TITLE: \"Le statut a été mis à jour pour les clients sélectionnés\",\n MESSAGE:\n \"Le statut des clients sélectionnés a été mis à jour avec succès\"\n },\n EDIT: {\n UPDATE_MESSAGE: \"Le client a été mis à jour\",\n ADD_MESSAGE: \"Le client a été créé\"\n }\n }\n }\n};\n","import Vue from \"vue\";\nimport VueI18n from \"vue-i18n\";\n\n// Localisation language list\nimport { locale as en } from \"@/core/config/i18n/en\";\nimport { locale as ch } from \"@/core/config/i18n/ch\";\nimport { locale as es } from \"@/core/config/i18n/es\";\nimport { locale as jp } from \"@/core/config/i18n/jp\";\nimport { locale as de } from \"@/core/config/i18n/de\";\nimport { locale as fr } from \"@/core/config/i18n/fr\";\n\nVue.use(VueI18n);\n\nlet messages = {};\nmessages = { ...messages, en, ch, es, jp, de, fr };\n\n// get current selected language\nconst lang = localStorage.getItem(\"language\") || \"en\";\n\n// Create VueI18n instance with options\nconst i18n = new VueI18n({\n locale: lang, // set locale\n messages // set locale messages\n});\n\nexport default i18n;\n","import Vue from \"vue\";\nimport Vuetify from \"vuetify/lib/framework\";\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: {\n options: {\n customProperties: true\n },\n themes: {\n light: {\n primary: \"#5867dd\",\n secondary: \"#e8ecfa\",\n accent: \"#5d78ff\",\n error: \"#fd397a\",\n info: \"#5578eb\",\n success: \"#0abb87\",\n warning: \"#ffb822\"\n }\n }\n }\n});\n","import Vue from \"vue\";\nimport PortalVue from \"portal-vue\";\n\nVue.use(PortalVue);\n\nexport default PortalVue;\n","import Vue from \"vue\";\nimport { BootstrapVue, IconsPlugin } from \"bootstrap-vue\";\n\n// Install BootstrapVue\nVue.use(BootstrapVue);\n// Optionally install the BootstrapVue icon components plugin\nVue.use(IconsPlugin);\n","import Vue from \"vue\";\nimport PerfectScrollbar from \"vue2-perfect-scrollbar\";\n\n// Perfect scrollbar\nVue.use(PerfectScrollbar);\n","import Vue from \"vue\";\n// Highlight js\nimport VueHighlightJS from \"vue-highlight.js\";\n// Highlight.js languages (Only required languages)\nimport scss from \"highlight.js/lib/languages/scss\";\nimport javascript from \"highlight.js/lib/languages/javascript\";\nimport json from \"highlight.js/lib/languages/json\";\nimport vue from \"vue-highlight.js/lib/languages/vue\";\nimport \"highlight.js/styles/github-gist.css\";\n\n// highlight js\nVue.use(VueHighlightJS, {\n // Register only languages that you want\n languages: {\n scss,\n javascript,\n json,\n vue\n }\n});\n","import Vue from \"vue\";\nimport { InlineSvgPlugin } from \"vue-inline-svg\";\n\nVue.use(InlineSvgPlugin);\n","import Vue from \"vue\";\nimport VueApexCharts from \"vue-apexcharts\";\n\nVue.use(VueApexCharts);\n\nVue.component(\"apexchart\", VueApexCharts);\n","\"use strict\";\n\nvar KTLayoutContent = function() {\n // Private properties\n var _element;\n\n\t// Private functions\n\tvar _getHeight = function() {\n\t\tvar height;\n\n\t\theight = KTUtil.getViewPort().height;\n\n if (_element) {\n height = height - parseInt(KTUtil.css(_element, 'paddingTop')) - parseInt(KTUtil.css(_element, 'paddingBottom'));\n } \n\n height = height - KTLayoutHeader.getHeight();\n height = height - KTLayoutSubheader.getHeight();\n height = height - KTLayoutFooter.getHeight();\n\n\t\treturn height;\n\t}\n\n // Public methods\n\treturn {\n\t\tinit: function(id) {\n _element = KTUtil.getById(id);\n\t\t},\n\n\t\tgetHeight: function() {\n\t\t\treturn _getHeight();\n\t\t},\n\n getElement: function() {\n return _element;\n }\n\t};\n}();\n\n\n\nexport default KTLayoutContent;","\"use strict\";\n\nvar KTLayoutFooter = function() {\n // Private properties\n var _element;\n\n\t// Private functions\n\tvar _getHeight = function() {\n\t\tvar height = 0;\n\n if (_element) {\n height = KTUtil.actualHeight(_element);\n }\n\n\t\treturn height;\n\t}\n\n // Public methods\n\treturn {\n\t\tinit: function(id) {\n _element = KTUtil.getById(id);\n\t\t},\n\n\t\tgetHeight: function() {\n\t\t\treturn _getHeight();\n\t\t},\n\n getElement: function() {\n return _element;\n }\n\t};\n}();\n\n\n\nexport default KTLayoutFooter;","\"use strict\";\n\nvar KTLayoutStickyCard = function() {\n // Private properties\n\tvar _element;\n var _object;\n\n\t// Private functions\n\tvar _init = function() {\n\t\tvar offset = 300;\n\n\t\tif (typeof KTLayoutHeader !== 'undefined') {\n\t\t\toffset = KTLayoutHeader.getHeight();\n\t\t}\n\n _object = new KTCard(_element, {\n\t\t\tsticky: {\n\t\t\t\toffset: offset,\n\t\t\t\tzIndex: 90,\n\t\t\t\tposition: {\n\t\t\t\t\ttop: function() {\n\t\t\t\t\t\tvar pos = 0;\n var body = KTUtil.getBody();\n\n\t\t\t\t\t\tif (KTUtil.isBreakpointUp('lg')) {\n\t\t\t\t\t\t\tif (typeof KTLayoutHeader !== 'undefined' && KTLayoutHeader.isFixed()) {\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutHeader.getHeight();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (typeof KTLayoutSubheader !== 'undefined' && KTLayoutSubheader.isFixed()) {\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutSubheader.getHeight();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (typeof KTLayoutHeader !== 'undefined' && KTLayoutHeader.isFixedForMobile()) {\n\t\t\t\t\t\t\t\tpos = pos + KTLayoutHeader.getHeightForMobile();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tpos = pos - 1; // remove header border width\n\n\t\t\t\t\t\treturn pos;\n\t\t\t\t\t},\n\t\t\t\t\tleft: function(card) {\n\t\t\t\t\t\treturn KTUtil.offset(_element).left;\n\t\t\t\t\t},\n\t\t\t\t\tright: function(card) {\n\t\t\t\t\t\tvar body = KTUtil.getBody();\n\n\t\t\t\t\t\tvar cardWidth = parseInt(KTUtil.css(_element, 'width'));\n\t\t\t\t\t\tvar bodyWidth = parseInt(KTUtil.css(body, 'width'));\n\t\t\t\t\t\tvar cardOffsetLeft = KTUtil.offset(_element).left;\n\n\t\t\t\t\t\treturn bodyWidth - cardWidth - cardOffsetLeft;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t_object.initSticky();\n\n\t\tKTUtil.addResizeHandler(function() {\n\t\t\t_object.updateSticky();\n\t\t});\n\t}\n\n // Public methods\n\treturn {\n\t\tinit: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n\t\t\t_init();\n\t\t},\n\n\t\tupdate: function() {\n\t\t\tif (_object) {\n\t\t\t\t_object.updateSticky();\n\t\t\t}\n\t\t}\n\t};\n}();\n\n\n\nexport default KTLayoutStickyCard;","\"use strict\";\n\nvar KTLayoutStretchedCard = function() {\n // Private properties\n\tvar _element;\n\n\t// Private functions\n\tvar _init = function() {\n\t\tvar scroll = KTUtil.find(_element, '.card-scroll');\n\t\tvar cardBody = KTUtil.find(_element, '.card-body');\n\t\tvar cardHeader = KTUtil.find(_element, '.card-header');\n\n\t\tvar height = KTLayoutContent.getHeight();\n\n\t\theight = height - parseInt(KTUtil.actualHeight(cardHeader));\n\n\t\theight = height - parseInt(KTUtil.css(_element, 'marginTop')) - parseInt(KTUtil.css(_element, 'marginBottom'));\n\t\theight = height - parseInt(KTUtil.css(_element, 'paddingTop')) - parseInt(KTUtil.css(_element, 'paddingBottom'));\n\n\t\theight = height - parseInt(KTUtil.css(cardBody, 'paddingTop')) - parseInt(KTUtil.css(cardBody, 'paddingBottom'));\n\t\theight = height - parseInt(KTUtil.css(cardBody, 'marginTop')) - parseInt(KTUtil.css(cardBody, 'marginBottom'));\n\n\t\theight = height - 3;\n\n\t\tKTUtil.css(scroll, 'height', height + 'px');\n\t}\n\n // Public methods\n\treturn {\n\t\tinit: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n\t\t\t_init();\n\n // Re-calculate on window resize\n KTUtil.addResizeHandler(function() {\n\t\t\t\t_init();\n\t\t\t});\n\t\t},\n\n\t\tupdate: function() {\n\t\t\t_init();\n\t\t}\n\t};\n}();\n\n\n\nexport default KTLayoutStretchedCard;","\"use strict\";\n\nvar KTLayoutSubheader = function() {\n // Private properties\n var _element;\n\n // Private functions\n var _getHeight = function() {\n var height = 0;\n\n if (_element) {\n height = KTUtil.actualHeight(_element);\n }\n\n return height;\n }\n\n // Public methods\n\treturn {\n\t\tinit: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\t\t},\n\n isFixed: function() {\n return KTUtil.hasClass(KTUtil.getBody(), 'subheader-fixed');\n },\n\n getElement: function() {\n return _element;\n },\n\n getHeight: function() {\n return _getHeight();\n }\n\t};\n}();\n\n\n\nexport default KTLayoutSubheader;","\"use strict\";\n\n// Class definition\nvar KTLayoutChat = function () {\n\t// Private functions\n\tvar _init = function (element) {\n\t\tvar scrollEl = KTUtil.find(element, '.scroll');\n\t\tvar cardBodyEl = KTUtil.find(element, '.card-body');\n\t\tvar cardHeaderEl = KTUtil.find(element, '.card-header');\n\t\tvar cardFooterEl = KTUtil.find(element, '.card-footer');\n\n\t\tif (!scrollEl) {\n\t\t\treturn;\n\t\t}\n\n\t\t// initialize perfect scrollbar(see: https://github.com/utatti/perfect-scrollbar)\n\t\tKTUtil.scrollInit(scrollEl, {\n\t\t\twindowScroll: false, // allow browser scroll when the scroll reaches the end of the side\n\t\t\tmobileNativeScroll: true, // enable native scroll for mobile\n\t\t\tdesktopNativeScroll: false, // disable native scroll and use custom scroll for desktop\n\t\t\tresetHeightOnDestroy: true, // reset css height on scroll feature destroyed\n\t\t\thandleWindowResize: true, // recalculate hight on window resize\n\t\t\trememberPosition: true, // remember scroll position in cookie\n\t\t\theight: function() { // calculate height\n\t\t\t\tvar height;\n\n\t\t\t\tif (KTUtil.isBreakpointDown('lg')) { // Mobile mode\n\t\t\t\t\treturn KTUtil.hasAttr(scrollEl, 'data-mobile-height') ? parseInt(KTUtil.attr(scrollEl, 'data-mobile-height')) : 400;\n\t\t\t\t} else if (KTUtil.isBreakpointUp('lg') && KTUtil.hasAttr(scrollEl, 'data-height')) { // Desktop Mode\n\t\t\t\t\treturn parseInt(KTUtil.attr(scrollEl, 'data-height'));\n\t\t\t\t} else {\n\t\t\t\t\theight = KTLayoutContent.getHeight();\n\n\t\t\t\t\tif (scrollEl) {\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(scrollEl, 'margin-top')) - parseInt(KTUtil.css(scrollEl, 'margin-bottom'));\n\t\t\t\t\t}\n\n\t\t\t\t\tif (cardHeaderEl) {\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardHeaderEl, 'height'));\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardHeaderEl, 'margin-top')) - parseInt(KTUtil.css(cardHeaderEl, 'margin-bottom'));\n\t\t\t\t\t}\n\n\t\t\t\t\tif (cardBodyEl) {\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardBodyEl, 'padding-top')) - parseInt(KTUtil.css(cardBodyEl, 'padding-bottom'));\n\t\t\t\t\t}\n\n\t\t\t\t\tif (cardFooterEl) {\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardFooterEl, 'height'));\n\t\t\t\t\t\theight = height - parseInt(KTUtil.css(cardFooterEl, 'margin-top')) - parseInt(KTUtil.css(cardFooterEl, 'margin-bottom'));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Remove additional space\n\t\t\t\theight = height - 2;\n\n\t\t\t\treturn height;\n\t\t\t}\n\t\t});\n\n\t\t// attach events\n\t\tKTUtil.on(element, '.card-footer textarea', 'keydown', function(e) {\n\t\t\tif (e.keyCode == 13) {\n\t\t\t\t_handeMessaging(element);\n\t\t\t\te.preventDefault();\n\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\n\t\tKTUtil.on(element, '.card-footer .chat-send', 'click', function(e) {\n\t\t\t_handeMessaging(element);\n\t\t});\n\t}\n\n\tvar _handeMessaging = function(element) {\n\t\tvar messagesEl = KTUtil.find(element, '.messages');\n\t\tvar scrollEl = KTUtil.find(element, '.scroll');\n var textarea = KTUtil.find(element, 'textarea');\n\n if (textarea.value.length === 0 ) {\n return;\n }\n\n\t\tvar node = document.createElement(\"DIV\");\n\t\tKTUtil.addClass(node, 'd-flex flex-column mb-5 align-items-end');\n\n\t\tvar html = '';\n\t\thtml += '
';\n\t\thtml += '\t
';\n\t\thtml += '\t\t2 Hours';\n\t\thtml += '\t\tYou';\n\t\thtml += '\t
';\n\t\thtml += '\t
';\n\t\thtml += '\t\t\"Pic\"';\n\t\thtml += '\t
';\n\t\thtml += '
';\n\t\thtml += '
' + textarea.value + '
';\n\n\t\tKTUtil.setHTML(node, html);\n\t\tmessagesEl.appendChild(node);\n\t\ttextarea.value = '';\n\t\tscrollEl.scrollTop = parseInt(KTUtil.css(messagesEl, 'height'));\n\n\t\tvar ps;\n\t\tif (ps = KTUtil.data(scrollEl).get('ps')) {\n\t\t\tps.update();\n\t\t}\n\n\t\tsetTimeout(function() {\n\t\t\tvar node = document.createElement(\"DIV\");\n\t\t\tKTUtil.addClass(node, 'd-flex flex-column mb-5 align-items-start');\n\n\t\t\tvar html = '';\n\t\t\thtml += '
';\n\t\t\thtml += '\t
';\n\t\t\thtml += '\t\t\"Pic\"';\n\t\t\thtml += '\t
';\n\t\t\thtml += '\t
';\n\t\t\thtml += '\t\tMatt Pears';\n\t\t\thtml += '\t\tJust now';\n\t\t\thtml += '\t
';\n\t\t\thtml += '
';\n\t\t\thtml += '
';\n\t\t\thtml += 'Right before vacation season we have the next Big Deal for you.';\n\t\t\thtml += '
';\n\n\t\t\tKTUtil.setHTML(node, html);\n\t\t\tmessagesEl.appendChild(node);\n\t\t\ttextarea.value = '';\n\t\t\tscrollEl.scrollTop = parseInt(KTUtil.css(messagesEl, 'height'));\n\n\t\t\tvar ps;\n\t\t\tif (ps = KTUtil.data(scrollEl).get('ps')) {\n\t\t\t\tps.update();\n\t\t\t}\n\t\t}, 2000);\n\t}\n\n\t// Public methods\n\treturn {\n\t\tinit: function(id) {\n\t\t\t// Init modal chat example\n\t\t\t_init(KTUtil.getById(id));\n\n\t\t\t// Trigger click to show popup modal chat on page load\n\t\t\tif (encodeURI(window.location.hostname) == 'keenthemes.com' || encodeURI(window.location.hostname) == 'www.keenthemes.com') {\n\t\t\t\tsetTimeout(function() {\n\t\t if (!KTCookie.getCookie('kt_app_chat_shown')) {\n\t\t var expires = new Date(new Date().getTime() + 60 * 60 * 1000); // expire in 60 minutes from now\n\n\t\t\t\t\t\tKTCookie.setCookie('kt_app_chat_shown', 1, { expires: expires });\n\n\t\t\t\t\t\tif (KTUtil.getById('kt_app_chat_launch_btn')) {\n\t\t\t\t\t\t\tKTUtil.getById('kt_app_chat_launch_btn').click();\n\t\t\t\t\t\t}\n\t\t }\n\t\t }, 2000);\n\t }\n },\n\n setup: function(element) {\n _init(element);\n }\n\t};\n}();\n\n\n\nexport default KTLayoutChat;","\"use strict\";\n\nvar KTLayoutQuickCartPanel = function() {\n // Private properties\n var _element;\n var _offcanvasObject;\n\n // Private functions\n var _init = function() {\n _offcanvasObject = new KTOffcanvas(_element, {\n overlay: true,\n baseClass: 'offcanvas',\n placement: 'right',\n closeBy: 'kt_quick_cart_close',\n toggleBy: 'kt_quick_cart_toggle'\n });\n\n var header = KTUtil.find(_element, '.offcanvas-header');\n var content = KTUtil.find(_element, '.offcanvas-content');\n var wrapper = KTUtil.find(_element, '.offcanvas-wrapper');\n var footer = KTUtil.find(_element, '.offcanvas-footer');\n\n KTUtil.scrollInit(wrapper, {\n disableForMobile: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n var height = parseInt(KTUtil.getViewPort().height);\n\n if (header) {\n height = height - parseInt(KTUtil.actualHeight(header));\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\n }\n\n if (content) {\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\n }\n\n if (wrapper) {\n height = height - parseInt(KTUtil.css(wrapper, 'marginTop'));\n height = height - parseInt(KTUtil.css(wrapper, 'marginBottom'));\n }\n\n if (footer) {\n height = height - parseInt(KTUtil.actualHeight(footer));\n height = height - parseInt(KTUtil.css(footer, 'marginTop'));\n height = height - parseInt(KTUtil.css(footer, 'marginBottom'));\n }\n\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\n\n height = height - 2;\n\n return height;\n }\n });\n }\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n }\n };\n}();\n\n\n\nexport default KTLayoutQuickCartPanel;","\"use strict\";\n\nvar KTLayoutQuickNotifications = function() {\n // Private properties\n var _element;\n var _offcanvasObject;\n\n // Private functions\n var _init = function() {\n var header = KTUtil.find(_element, '.offcanvas-header');\n var content = KTUtil.find(_element, '.offcanvas-content');\n\n _offcanvasObject = new KTOffcanvas(_element, {\n overlay: true,\n baseClass: 'offcanvas',\n placement: 'right',\n closeBy: 'kt_quick_notifications_close',\n toggleBy: 'kt_quick_notifications_toggle'\n });\n\n KTUtil.scrollInit(content, {\n disableForMobile: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n var height = parseInt(KTUtil.getViewPort().height);\n\n if (header) {\n height = height - parseInt(KTUtil.actualHeight(header));\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\n }\n\n if (content) {\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\n }\n\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\n\n height = height - 2;\n\n return height;\n }\n });\n }\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n },\n\n getElement: function() {\n return _element;\n }\n };\n}();\n\n\n\nexport default KTLayoutQuickNotifications;","\"use strict\";\n\nvar KTLayoutQuickPanel = function() {\n // Private properties\n var _element;\n var _offcanvasObject;\n var _notificationsElement;\n var _logsElement;\n var _settingsElement;\n\n // Private functions\n var _getContentHeight = function() {\n var height;\n\n var header = KTUtil.find(_element, '.offcanvas-header');\n var content = KTUtil.find(_element, '.offcanvas-content');\n\n var height = parseInt(KTUtil.getViewPort().height);\n\n if (header) {\n height = height - parseInt(KTUtil.actualHeight(header));\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\n }\n\n if (content) {\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\n }\n\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\n\n height = height - 2;\n\n return height;\n }\n\n var _init = function() {\n _offcanvasObject = new KTOffcanvas(_element, {\n overlay: true,\n baseClass: 'offcanvas',\n placement: 'right',\n closeBy: 'kt_quick_panel_close',\n toggleBy: 'kt_quick_panel_toggle'\n });\n }\n\n var _initNotifications = function() {\n KTUtil.scrollInit(_notificationsElement, {\n mobileNativeScroll: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n return _getContentHeight();\n }\n });\n }\n\n var _initLogs = function() {\n KTUtil.scrollInit(_logsElement, {\n mobileNativeScroll: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n return _getContentHeight();\n }\n });\n }\n\n var _initSettings = function() {\n KTUtil.scrollInit(_settingsElement, {\n mobileNativeScroll: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n return _getContentHeight();\n }\n });\n }\n\n var _updateScrollbars = function() {\n $(_element).find('a[data-toggle=\"tab\"]').on('shown.bs.tab', function (e) {\n KTUtil.scrollUpdate(_notificationsElement);\n KTUtil.scrollUpdate(_logsElement);\n KTUtil.scrollUpdate(_settingsElement);\n });\n }\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n _notificationsElement = KTUtil.getById('kt_quick_panel_notifications');\n _logsElement = KTUtil.getById('kt_quick_panel_logs');\n _settingsElement = KTUtil.getById('kt_quick_panel_settings');\n\n _init();\n _initNotifications();\n _initLogs();\n _initSettings();\n\n \n }\n };\n}();\n\n\n\nexport default KTLayoutQuickPanel;","\"use strict\";\n\nvar KTLayoutQuickSearch = function() {\n // Private properties\n var _element;\n var _offcanvasObject;\n\n // Private functions\n var _init = function() {\n var header = KTUtil.find(_element, '.offcanvas-header');\n var content = KTUtil.find(_element, '.offcanvas-content');\n var form = KTUtil.find(_element, '.quick-search-form');\n var results = KTUtil.find(_element, '.quick-search-wrapper');\n\n _offcanvasObject = new KTOffcanvas(_element, {\n overlay: true,\n baseClass: 'offcanvas',\n placement: 'right',\n closeBy: 'kt_quick_search_close',\n toggleBy: 'kt_quick_search_toggle'\n });\n\n KTUtil.scrollInit(results, {\n disableForMobile: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n var height = parseInt(KTUtil.getViewPort().height);\n\n if (header) {\n height = height - parseInt(KTUtil.actualHeight(header));\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\n }\n\n if (content) {\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\n }\n\n if (results) {\n height = height - parseInt(KTUtil.actualHeight(form));\n height = height - parseInt(KTUtil.css(form, 'marginTop'));\n height = height - parseInt(KTUtil.css(form, 'marginBottom'));\n\n height = height - parseInt(KTUtil.css(results, 'marginTop'));\n height = height - parseInt(KTUtil.css(results, 'marginBottom'));\n }\n\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\n\n height = height - 2;\n\n return height;\n }\n });\n }\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n },\n\n getElement: function() {\n return _element;\n }\n };\n}();\n\n\n\nexport default KTLayoutQuickSearch;","\"use strict\";\n//\n// Handle User Quick Search For Dropdown, Inline and Offcanvas Search Panels\n//\n\nvar KTLayoutSearch = function() {\n // Private properties\n var _target;\n var _form;\n var _input;\n var _closeIcon;\n var _resultWrapper;\n var _resultDropdown;\n var _resultDropdownToggle;\n var _closeIconContainer;\n var _inputGroup;\n var _query = '';\n\n var _hasResult = false;\n var _timeout = false;\n var _isProcessing = false;\n var _requestTimeout = 200; // ajax request fire timeout in milliseconds\n var _spinnerClass = 'spinner spinner-sm spinner-primary';\n var _resultClass = 'quick-search-has-result';\n var _minLength = 2;\n\n // Private functions\n var _showProgress = function() {\n _isProcessing = true;\n KTUtil.addClass(_closeIconContainer, _spinnerClass);\n\n if (_closeIcon) {\n KTUtil.hide(_closeIcon);\n }\n }\n\n var _hideProgress = function() {\n _isProcessing = false;\n KTUtil.removeClass(_closeIconContainer, _spinnerClass);\n\n if (_closeIcon) {\n if (_input.value.length < _minLength) {\n KTUtil.hide(_closeIcon);\n } else {\n KTUtil.show(_closeIcon, 'flex');\n }\n }\n }\n\n var _showDropdown = function() {\n if (_resultDropdownToggle && !KTUtil.hasClass(_resultDropdown, 'show')) {\n $(_resultDropdownToggle).dropdown('toggle');\n $(_resultDropdownToggle).dropdown('update');\n }\n }\n\n var _hideDropdown = function() {\n if (_resultDropdownToggle && KTUtil.hasClass(_resultDropdown, 'show')) {\n $(_resultDropdownToggle).dropdown('toggle');\n }\n }\n\n var _processSearch = function() {\n if (_hasResult && _query === _input.value) {\n _hideProgress();\n KTUtil.addClass(_target, _resultClass);\n _showDropdown();\n KTUtil.scrollUpdate(_resultWrapper);\n\n return;\n }\n\n _query = _input.value;\n\n KTUtil.removeClass(_target, _resultClass);\n _showProgress();\n _hideDropdown();\n\n setTimeout(function() {\n $.ajax({\n url: HOST_URL + '/api/quick_search.php',\n data: {\n query: _query\n },\n dataType: 'html',\n success: function(res) {\n _hasResult = true;\n _hideProgress();\n KTUtil.addClass(_target, _resultClass);\n KTUtil.setHTML(_resultWrapper, res);\n _showDropdown();\n KTUtil.scrollUpdate(_resultWrapper);\n },\n error: function(res) {\n _hasResult = false;\n _hideProgress();\n KTUtil.addClass(_target, _resultClass);\n KTUtil.setHTML(_resultWrapper, 'Connection error. Please try again later..');\n _showDropdown();\n KTUtil.scrollUpdate(_resultWrapper);\n }\n });\n }, 1000);\n }\n\n var _handleCancel = function(e) {\n _input.value = '';\n _query = '';\n _hasResult = false;\n KTUtil.hide(_closeIcon);\n KTUtil.removeClass(_target, _resultClass);\n _hideDropdown();\n }\n\n var _handleSearch = function() {\n if (_input.value.length < _minLength) {\n _hideProgress();\n _hideDropdown();\n\n return;\n }\n\n if (_isProcessing == true) {\n return;\n }\n\n if (_timeout) {\n clearTimeout(_timeout);\n }\n\n _timeout = setTimeout(function() {\n _processSearch();\n }, _requestTimeout);\n }\n\n // Public methods\n return {\n init: function(id) {\n _target = KTUtil.getById(id);\n\n if (!_target) {\n return;\n }\n\n _form = KTUtil.find(_target, '.quick-search-form');\n _input = KTUtil.find(_target, '.form-control');\n _closeIcon = KTUtil.find(_target, '.quick-search-close');\n _resultWrapper = KTUtil.find(_target, '.quick-search-wrapper');\n _resultDropdown = KTUtil.find(_target, '.dropdown-menu');\n _resultDropdownToggle = KTUtil.find(_target, '[data-toggle=\"dropdown\"]');\n _inputGroup = KTUtil.find(_target, '.input-group');\n _closeIconContainer = KTUtil.find(_target, '.input-group .input-group-append');\n\n // Attach input keyup handler\n KTUtil.addEvent(_input, 'keyup', _handleSearch);\n KTUtil.addEvent(_input, 'focus', _handleSearch);\n\n // Prevent enter click\n _form.onkeypress = function(e) {\n var key = e.charCode || e.keyCode || 0;\n if (key == 13) {\n e.preventDefault();\n }\n }\n\n KTUtil.addEvent(_closeIcon, 'click', _handleCancel);\n }\n };\n};\n\n\n\nvar KTLayoutSearchInline = KTLayoutSearch;\nvar KTLayoutSearchOffcanvas = KTLayoutSearch;\n\nexport default KTLayoutSearch;","// Keenthemes plugins\nimport KTUtil from \"@/assets/js/components/util.js\";\nwindow.KTUtil = KTUtil;\n\nimport KTCard from \"@/assets/js/components/card.js\";\nwindow.KTCard = KTCard;\n\nimport KTCookie from \"@/assets/js/components/cookie.js\";\nwindow.KTCookie = KTCookie;\n\nimport KTDialog from \"@/assets/js/components/dialog.js\";\nwindow.KTDialog = KTDialog;\n\nimport KTHeader from \"@/assets/js/components/header.js\";\nwindow.KTHeader = KTHeader;\n\nimport KTImageInput from \"@/assets/js/components/image-input.js\";\nwindow.KTImageInput = KTImageInput;\n\nimport KTMenu from \"@/assets/js/components/menu.js\";\nwindow.KTMenu = KTMenu;\n\nimport KTOffcanvas from \"@/assets/js/components/offcanvas.js\";\nwindow.KTOffcanvas = KTOffcanvas;\n\nimport KTScrolltop from \"@/assets/js/components/scrolltop.js\";\nwindow.KTScrolltop = KTScrolltop;\n\nimport KTToggle from \"@/assets/js/components/toggle.js\";\nwindow.KTToggle = KTToggle;\n\nimport KTWizard from \"@/assets/js/components/wizard.js\";\nwindow.KTWizard = KTWizard;\n\n// Metronic layout base js\nimport KTLayoutAside from \"@/assets/js/layout/base/aside.js\";\nwindow.KTLayoutAside = KTLayoutAside;\n\nimport KTLayoutAsideMenu from \"@/assets/js/layout/base/aside-menu.js\";\nwindow.KTLayoutAsideMenu = KTLayoutAsideMenu;\n\nimport KTLayoutContent from \"@/assets/js/layout/base/content.js\";\nwindow.KTLayoutContent = KTLayoutContent;\n\nimport KTLayoutFooter from \"@/assets/js/layout/base/footer.js\";\nwindow.KTLayoutFooter = KTLayoutFooter;\n\nimport KTLayoutHeader from \"@/assets/js/layout/base/header.js\";\nwindow.KTLayoutHeader = KTLayoutHeader;\n\nimport KTLayoutHeaderTopbar from \"@/assets/js/layout/base/header-topbar.js\";\nwindow.KTLayoutHeaderTopbar = KTLayoutHeaderTopbar;\n\nimport KTLayoutStickyCard from \"@/assets/js/layout/base/sticky-card.js\";\nwindow.KTLayoutStickyCard = KTLayoutStickyCard;\n\nimport KTLayoutStretchedCard from \"@/assets/js/layout/base/stretched-card.js\";\nwindow.KTLayoutStretchedCard = KTLayoutStretchedCard;\n\nimport KTLayoutSubheader from \"@/assets/js/layout/base/subheader.js\";\nwindow.KTLayoutSubheader = KTLayoutSubheader;\n\n// Metronic layout extended js\nimport KTLayoutChat from \"@/assets/js/layout/extended/chat.js\";\nwindow.KTLayoutChat = KTLayoutChat;\n\nimport KTLayoutExamples from \"@/assets/js/layout/extended/examples.js\";\nwindow.KTLayoutExamples = KTLayoutExamples;\n\nimport KTLayoutQuickActions from \"@/assets/js/layout/extended/quick-actions.js\";\nwindow.KTLayoutQuickActions = KTLayoutQuickActions;\n\nimport KTLayoutQuickCartPanel from \"@/assets/js/layout/extended/quick-cart.js\";\nwindow.KTLayoutQuickCartPanel = KTLayoutQuickCartPanel;\n\nimport KTLayoutQuickNotifications from \"@/assets/js/layout/extended/quick-notifications.js\";\nwindow.KTLayoutQuickNotifications = KTLayoutQuickNotifications;\n\nimport KTLayoutQuickPanel from \"@/assets/js/layout/extended/quick-panel.js\";\nwindow.KTLayoutQuickPanel = KTLayoutQuickPanel;\n\nimport KTLayoutQuickSearch from \"@/assets/js/layout/extended/quick-search.js\";\nwindow.KTLayoutQuickSearch = KTLayoutQuickSearch;\n\nimport KTLayoutQuickUser from \"@/assets/js/layout/extended/quick-user.js\";\nwindow.KTLayoutQuickUser = KTLayoutQuickUser;\n\nimport KTLayoutScrolltop from \"@/assets/js/layout/extended/scrolltop.js\";\nwindow.KTLayoutScrolltop = KTLayoutScrolltop;\n\nimport KTLayoutSearch from \"@/assets/js/layout/extended/search.js\";\nwindow.KTLayoutSearch = KTLayoutSearch;\n","import Vue from \"vue\";\nimport Treeselect from \"@riophae/vue-treeselect\";\n\nVue.use(Treeselect);\n\nVue.component(\"treeselect\", Treeselect);\n","import Vue from \"vue\";\nimport App from \"./App.vue\";\nimport router from \"./router\";\nimport store from \"@/core/services/store\";\nimport ApiService from \"@/core/services/api.service\";\nimport { VERIFY_AUTH } from \"@/core/services/store/auth.module\";\nimport { RESET_LAYOUT_CONFIG } from \"@/core/services/store/config.module\";\nimport msal from \"vue-msal\";\n\nVue.config.productionTip = false;\n\n// Global 3rd party plugins\nimport \"popper.js\";\nimport \"tooltip.js\";\nimport PerfectScrollbar from \"perfect-scrollbar\";\nwindow.PerfectScrollbar = PerfectScrollbar;\nimport ClipboardJS from \"clipboard\";\nwindow.ClipboardJS = ClipboardJS;\n\n// Vue 3rd party plugins\nimport i18n from \"@/core/plugins/vue-i18n\";\nimport vuetify from \"@/core/plugins/vuetify\";\nimport \"@/core/plugins/portal-vue\";\nimport \"@/core/plugins/bootstrap-vue\";\nimport \"@/core/plugins/perfect-scrollbar\";\nimport \"@/core/plugins/highlight-js\";\nimport \"@/core/plugins/inline-svg\";\nimport \"@/core/plugins/apexcharts\";\nimport \"@/core/plugins/metronic\";\nimport \"@/core/plugins/treeselect\";\nimport \"@mdi/font/css/materialdesignicons.css\";\n\n// API service init\nApiService.init();\n\nrouter.beforeEach((to, from, next) => {\n // Ensure we checked auth before each page load.\n Promise.all([store.dispatch(VERIFY_AUTH)]).then(next);\n\n // reset config to initial state\n store.dispatch(RESET_LAYOUT_CONFIG);\n\n // Scroll page to top on every route change\n setTimeout(() => {\n window.scrollTo(0, 0);\n }, 100);\n});\n\n// initialise the msal authentication\n// TODO: need to make all these settings configuration driven between environments\nVue.use(msal, {\n auth: {\n clientId: process.env.VUE_APP__CLIENT_ID,\n authority: process.env.VUE_APP__AUTHORITY,\n requireAuthOnInitialize: false, // we handle this manually in our auth mechanics\n\n redirectUri:\n process.env.VUE_APP__BASEURL_ROOT + process.env.VUE_APP__BASEURL_PATH,\n\n postLogoutRedirectUri:\n process.env.VUE_APP__BASEURL_ROOT +\n process.env.VUE_APP__BASEURL_PATH +\n process.env.VUE_APP__SIGN_OUT_PAGE,\n\n validateAuthority: false,\n },\n request: {\n scopes: [process.env.VUE_APP__API_SCOPE],\n },\n});\n\nnew Vue({\n router,\n store,\n i18n,\n vuetify,\n render: (h) => h(App),\n}).$mount(\"#app\");\n","import objectPath from \"object-path\";\nimport merge from \"deepmerge\";\nimport config from \"@/core/config/layout.config.json\";\n\n// action types\nexport const SET_LAYOUT_CONFIG = \"setLayoutConfig\";\nexport const RESET_LAYOUT_CONFIG = \"resetLayoutConfig\";\nexport const OVERRIDE_LAYOUT_CONFIG = \"overrideLayoutConfig\";\nexport const OVERRIDE_PAGE_LAYOUT_CONFIG = \"overridePageLayoutConfig\";\n\n// mutation types\n\nexport default {\n state: {\n config: config,\n initial: config\n },\n getters: {\n /**\n * Get config from layout config\n * @param state\n * @returns {function(path, defaultValue): *}\n */\n layoutConfig: state => (path, defaultValue) => {\n return objectPath.get(state.config, path, defaultValue);\n }\n },\n actions: {\n /**\n * Set and replace the whole config\n * @param state\n * @param payload\n */\n [SET_LAYOUT_CONFIG](state, payload) {\n state.commit(SET_LAYOUT_CONFIG, payload);\n },\n\n /**\n * Reset the config at the initial state\n * @param state\n */\n [RESET_LAYOUT_CONFIG](state) {\n state.commit(RESET_LAYOUT_CONFIG);\n },\n\n /**\n * Reset the config using saved config in the cache by the layout builder\n * @param state\n */\n [OVERRIDE_LAYOUT_CONFIG](state) {\n state.commit(OVERRIDE_LAYOUT_CONFIG);\n },\n\n /**\n * Override config by page level\n * @param state\n * @param payload\n */\n [OVERRIDE_PAGE_LAYOUT_CONFIG](state, payload) {\n state.commit(OVERRIDE_PAGE_LAYOUT_CONFIG, payload);\n }\n },\n mutations: {\n [SET_LAYOUT_CONFIG](state, payload) {\n state.config = payload;\n },\n [RESET_LAYOUT_CONFIG](state) {\n state.config = Object.assign({}, state.initial);\n },\n [OVERRIDE_LAYOUT_CONFIG](state) {\n state.config = state.initial = Object.assign(\n {},\n state.initial,\n JSON.parse(localStorage.getItem(\"config\"))\n );\n },\n [OVERRIDE_PAGE_LAYOUT_CONFIG](state, payload) {\n state.config = merge(state.config, payload);\n }\n }\n};\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","\"use strict\";\n\nimport KTUtil from \"./util\";\n\n// Component Definition\nvar KTHeader = function(elementId, options) {\n // Main object\n var the = this;\n var init = false;\n\n // Get element object\n var element = KTUtil.getById(elementId);\n var body = KTUtil.getBody();\n\n if (element === undefined) {\n return;\n }\n\n // Default options\n var defaultOptions = {\n offset: {\n desktop: true,\n tabletAndMobile: true\n },\n releseOnReverse: {\n desktop: false,\n tabletAndMobile: false\n }\n };\n\n ////////////////////////////\n // ** Private Methods ** //\n ////////////////////////////\n\n var Plugin = {\n /**\n * Run plugin\n * @returns {KTHeader}\n */\n construct: function(options) {\n if (KTUtil.data(element).has('header')) {\n the = KTUtil.data(element).get('header');\n } else {\n // reset header\n Plugin.init(options);\n\n // build header\n Plugin.build();\n\n KTUtil.data(element).set('header', the);\n }\n\n return the;\n },\n\n /**\n * Handles subheader click toggle\n * @returns {KTHeader}\n */\n init: function(options) {\n the.events = [];\n\n // merge default and user defined options\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\n },\n\n /**\n * Reset header\n * @returns {KTHeader}\n */\n build: function() {\n var eventTriggerState = true;\n var lastScrollTop = 0;\n\n window.addEventListener('scroll', function() {\n var offset = 0, st, attrName;\n\n if (KTUtil.isBreakpointDown('lg') && the.options.offset.tabletAndMobile === false) {\n return;\n }\n\n if (KTUtil.isBreakpointUp('lg') && the.options.offset.desktop === false) {\n return;\n }\n\n if (KTUtil.isBreakpointUp('lg')) {\n offset = the.options.offset.desktop;\n } else if (KTUtil.isBreakpointDown('lg')) {\n offset = the.options.offset.tabletAndMobile;\n }\n\n st = KTUtil.getScrollTop();\n\n if (\n (KTUtil.isBreakpointDown('lg') && the.options.releseOnReverse.tabletAndMobile) ||\n (KTUtil.isBreakpointUp('lg') && the.options.releseOnReverse.desktop)\n ) {\n if (st > offset && lastScrollTop < st) { // down scroll mode\n if (body.hasAttribute('data-header-scroll') === false) {\n body.setAttribute('data-header-scroll', 'on');\n }\n\n if (eventTriggerState) {\n Plugin.eventTrigger('scrollOn', the);\n eventTriggerState = false;\n }\n } else { // back scroll mode\n if (body.hasAttribute('data-header-scroll') === true) {\n body.removeAttribute('data-header-scroll');\n }\n\n if (eventTriggerState == false) {\n Plugin.eventTrigger('scrollOff', the);\n eventTriggerState = true;\n }\n }\n\n lastScrollTop = st;\n } else {\n if (st > offset) { // down scroll mode\n if (body.hasAttribute('data-header-scroll') === false) {\n body.setAttribute('data-header-scroll', 'on');\n }\n\n if (eventTriggerState) {\n Plugin.eventTrigger('scrollOn', the);\n eventTriggerState = false;\n }\n } else { // back scroll mode\n if (body.hasAttribute('data-header-scroll') === true) {\n body.removeAttribute('data-header-scroll');\n }\n\n if (eventTriggerState == false) {\n Plugin.eventTrigger('scrollOff', the);\n eventTriggerState = true;\n }\n }\n }\n });\n },\n\n /**\n * Trigger events\n */\n eventTrigger: function(name, args) {\n for (var i = 0; i < the.events.length; i++) {\n var event = the.events[i];\n if (event.name == name) {\n if (event.one == true) {\n if (event.fired == false) {\n the.events[i].fired = true;\n return event.handler.call(this, the, args);\n }\n } else {\n return event.handler.call(this, the, args);\n }\n }\n }\n },\n\n addEvent: function(name, handler, one) {\n the.events.push({\n name: name,\n handler: handler,\n one: one,\n fired: false\n });\n }\n };\n\n //////////////////////////\n // ** Public Methods ** //\n //////////////////////////\n\n /**\n * Set default options\n */\n\n the.setDefaults = function(options) {\n defaultOptions = options;\n };\n\n /**\n * Register event\n */\n the.on = function(name, handler) {\n return Plugin.addEvent(name, handler);\n };\n\n ///////////////////////////////\n // ** Plugin Construction ** //\n ///////////////////////////////\n\n // Run plugin\n Plugin.construct.apply(the, [options]);\n\n // Init done\n init = true;\n\n // Return plugin instance\n return the;\n};\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = KTHeader;\n}\n\nexport default KTHeader;","\"use strict\";\n\nvar KTLayoutScrolltop = function() {\n // Private properties\n var _element;\n var _object;\n\n // Private functions\n var _init = function() {\n _object = new KTScrolltop(_element, {\n offset: 300,\n speed: 600,\n });\n }\n\n // Public methods\n\treturn {\n\t\tinit: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n\t\t},\n\n getElement: function() {\n return _element;\n }\n\t};\n}();\n\n\n\nexport default KTLayoutScrolltop;","import Vue from \"vue\";\nimport Vuex from \"vuex\";\n\nimport auth from \"./auth.module\";\nimport htmlClass from \"./htmlclass.module\";\nimport config from \"./config.module\";\nimport breadcrumbs from \"./breadcrumbs.module\";\nimport profile from \"./profile.module\";\nimport recipients from \"./recipients.module\";\n\nVue.use(Vuex);\n\nexport default new Vuex.Store({\n modules: {\n auth,\n htmlClass,\n config,\n breadcrumbs,\n profile,\n recipients,\n },\n});\n","\"use strict\";\n\nimport KTUtil from \"./util\";\n\n// Component Definition\nvar KTMenu = function(elementId, options) {\n // Main object\n var the = this;\n var init = false;\n\n // Get element object\n var element = KTUtil.getById(elementId);\n var body = KTUtil.getBody();\n\n if (!element) {\n return;\n }\n\n // Default options\n var defaultOptions = {\n // scrollable area with Perfect Scroll\n scroll: {\n rememberPosition: false\n },\n\n // accordion submenu mode\n accordion: {\n slideSpeed: 200, // accordion toggle slide speed in milliseconds\n autoScroll: false, // enable auto scrolling(focus) to the clicked menu item\n autoScrollSpeed: 1200,\n expandAll: true // allow having multiple expanded accordions in the menu\n },\n\n // dropdown submenu mode\n dropdown: {\n timeout: 500 // timeout in milliseconds to show and hide the hoverable submenu dropdown\n }\n };\n\n ////////////////////////////\n // ** Private Methods ** //\n ////////////////////////////\n\n var Plugin = {\n /**\n * Run plugin\n * @returns {KTMenu}\n */\n construct: function(options) {\n if (KTUtil.data(element).has('menu')) {\n the = KTUtil.data(element).get('menu');\n } else {\n // reset menu\n Plugin.init(options);\n\n // reset menu\n Plugin.reset();\n\n // build menu\n Plugin.build();\n\n KTUtil.data(element).set('menu', the);\n }\n\n return the;\n },\n\n /**\n * Handles submenu click toggle\n * @returns {KTMenu}\n */\n init: function(options) {\n the.events = [];\n\n the.eventHandlers = {};\n\n // merge default and user defined options\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\n\n // pause menu\n the.pauseDropdownHoverTime = 0;\n\n the.uid = KTUtil.getUniqueID();\n },\n\n update: function(options) {\n // merge default and user defined options\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\n\n // pause menu\n the.pauseDropdownHoverTime = 0;\n\n // reset menu\n Plugin.reset();\n\n the.eventHandlers = {};\n\n // build menu\n Plugin.build();\n\n KTUtil.data(element).set('menu', the);\n },\n\n reload: function() {\n // reset menu\n Plugin.reset();\n\n // build menu\n Plugin.build();\n\n // reset submenu props\n Plugin.resetSubmenuProps();\n },\n\n /**\n * Reset menu\n * @returns {KTMenu}\n */\n build: function() {\n // General accordion submenu toggle\n the.eventHandlers['event_1'] = KTUtil.on( element, '.menu-toggle', 'click', Plugin.handleSubmenuAccordion);\n\n // Dropdown mode(hoverable)\n if (Plugin.getSubmenuMode() === 'dropdown' || Plugin.isConditionalSubmenuDropdown()) {\n // dropdown submenu - hover toggle\n the.eventHandlers['event_2'] = KTUtil.on( element, '[data-menu-toggle=\"hover\"]', 'mouseover', Plugin.handleSubmenuDrodownHoverEnter);\n the.eventHandlers['event_3'] = KTUtil.on( element, '[data-menu-toggle=\"hover\"]', 'mouseout', Plugin.handleSubmenuDrodownHoverExit);\n\n // dropdown submenu - click toggle\n the.eventHandlers['event_4'] = KTUtil.on( element, '[data-menu-toggle=\"click\"] > .menu-toggle, [data-menu-toggle=\"click\"] > .menu-link .menu-toggle', 'click', Plugin.handleSubmenuDropdownClick);\n the.eventHandlers['event_5'] = KTUtil.on( element, '[data-menu-toggle=\"tab\"] > .menu-toggle, [data-menu-toggle=\"tab\"] > .menu-link .menu-toggle', 'click', Plugin.handleSubmenuDropdownTabClick);\n }\n\n // Handle general link click\n the.eventHandlers['event_6'] = KTUtil.on(element, '.menu-item > .menu-link:not(.menu-toggle):not(.menu-link-toggle-skip)', 'click', Plugin.handleLinkClick);\n\n // Init scrollable menu\n if (the.options.scroll && the.options.scroll.height) {\n Plugin.scrollInit();\n }\n },\n\n /**\n * Reset menu\n * @returns {KTMenu}\n */\n reset: function() {\n KTUtil.off( element, 'click', the.eventHandlers['event_1']);\n\n // dropdown submenu - hover toggle\n KTUtil.off( element, 'mouseover', the.eventHandlers['event_2']);\n KTUtil.off( element, 'mouseout', the.eventHandlers['event_3']);\n\n // dropdown submenu - click toggle\n KTUtil.off( element, 'click', the.eventHandlers['event_4']);\n KTUtil.off( element, 'click', the.eventHandlers['event_5']);\n\n // handle link click\n KTUtil.off(element, 'click', the.eventHandlers['event_6']);\n },\n\n /**\n * Init scroll menu\n *\n */\n scrollInit: function() {\n if ( the.options.scroll && the.options.scroll.height ) {\n KTUtil.scrollDestroy(element, true);\n KTUtil.scrollInit(element, {mobileNativeScroll: true, windowScroll: false, resetHeightOnDestroy: true, handleWindowResize: true, height: the.options.scroll.height, rememberPosition: the.options.scroll.rememberPosition});\n } else {\n KTUtil.scrollDestroy(element, true);\n }\n },\n\n /**\n * Update scroll menu\n */\n scrollUpdate: function() {\n if ( the.options.scroll && the.options.scroll.height ) {\n KTUtil.scrollUpdate(element);\n }\n },\n\n /**\n * Scroll top\n */\n scrollTop: function() {\n if ( the.options.scroll && the.options.scroll.height ) {\n KTUtil.scrollTop(element);\n }\n },\n\n /**\n * Get submenu mode for current breakpoint and menu state\n * @returns {KTMenu}\n */\n getSubmenuMode: function(el) {\n if ( KTUtil.isBreakpointUp('lg') ) {\n if (el && KTUtil.hasAttr(el, 'data-menu-toggle') && KTUtil.attr(el, 'data-menu-toggle') == 'hover') {\n return 'dropdown';\n }\n\n if ( KTUtil.isset(the.options.submenu, 'desktop.state.body') ) {\n if ( KTUtil.hasClasses(body, the.options.submenu.desktop.state.body) ) {\n return the.options.submenu.desktop.state.mode;\n } else {\n return the.options.submenu.desktop.default;\n }\n } else if ( KTUtil.isset(the.options.submenu, 'desktop') ) {\n return the.options.submenu.desktop;\n }\n } else if ( KTUtil.isBreakpointUp('md') && KTUtil.isBreakpointDown('lg') && KTUtil.isset(the.options.submenu, 'tablet') ) {\n return the.options.submenu.tablet;\n } else if ( KTUtil.isBreakpointDown('md') && KTUtil.isset(the.options.submenu, 'mobile') ) {\n return the.options.submenu.mobile;\n } else {\n return false;\n }\n },\n\n /**\n * Get submenu mode for current breakpoint and menu state\n * @returns {KTMenu}\n */\n isConditionalSubmenuDropdown: function() {\n if ( KTUtil.isBreakpointUp('lg') && KTUtil.isset(the.options.submenu, 'desktop.state.body') ) {\n return true;\n } else {\n return false;\n }\n },\n\n\n /**\n * Reset submenu attributes\n * @returns {KTMenu}\n */\n resetSubmenuProps: function(e) {\n var submenus = KTUtil.findAll(element, '.menu-submenu');\n if ( submenus ) {\n for (var i = 0, len = submenus.length; i < len; i++) {\n var submenu = submenus[0];\n\n KTUtil.css(submenu, 'display', '');\n KTUtil.css(submenu, 'overflow', '');\n\n if (submenu.hasAttribute('data-hor-direction')) {\n KTUtil.removeClass(submenu, 'menu-submenu-left');\n KTUtil.removeClass(submenu, 'menu-submenu-right');\n KTUtil.addClass(submenu, submenu.getAttribute('data-hor-direction'));\n }\n }\n }\n },\n\n /**\n * Handles submenu hover toggle\n * @returns {KTMenu}\n */\n handleSubmenuDrodownHoverEnter: function(e) {\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\n return;\n }\n\n if ( the.resumeDropdownHover() === false ) {\n return;\n }\n\n var item = this;\n\n if ( item.getAttribute('data-hover') == '1' ) {\n item.removeAttribute('data-hover');\n clearTimeout( item.getAttribute('data-timeout') );\n item.removeAttribute('data-timeout');\n }\n\n Plugin.showSubmenuDropdown(item);\n },\n\n /**\n * Handles submenu hover toggle\n * @returns {KTMenu}\n */\n handleSubmenuDrodownHoverExit: function(e) {\n if ( the.resumeDropdownHover() === false ) {\n return;\n }\n\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\n return;\n }\n\n var item = this;\n var time = the.options.dropdown.timeout;\n\n var timeout = setTimeout(function() {\n if ( item.getAttribute('data-hover') == '1' ) {\n Plugin.hideSubmenuDropdown(item, true);\n }\n }, time);\n\n item.setAttribute('data-hover', '1');\n item.setAttribute('data-timeout', timeout);\n },\n\n /**\n * Handles submenu click toggle\n * @returns {KTMenu}\n */\n handleSubmenuDropdownClick: function(e) {\n if ( Plugin.getSubmenuMode(this) === 'accordion' ) {\n return;\n }\n\n var item = this.closest('.menu-item');\n\n // Trigger click event handlers\n var result = Plugin.eventTrigger('submenuToggle', this, e);\n if (result === false) {\n return;\n }\n\n if ( item.getAttribute('data-menu-submenu-mode') == 'accordion' ) {\n return;\n }\n\n if ( KTUtil.hasClass(item, 'menu-item-hover') === false ) {\n KTUtil.addClass(item, 'menu-item-open-dropdown');\n Plugin.showSubmenuDropdown(item);\n } else {\n KTUtil.removeClass(item, 'menu-item-open-dropdown' );\n Plugin.hideSubmenuDropdown(item, true);\n }\n\n e.preventDefault();\n },\n\n /**\n * Handles tab click toggle\n * @returns {KTMenu}\n */\n handleSubmenuDropdownTabClick: function(e) {\n if (Plugin.getSubmenuMode(this) === 'accordion') {\n return;\n }\n var item = this.closest('.menu-item');\n\n // Trigger click event handlers\n var result = Plugin.eventTrigger('submenuToggle', this, e);\n if (result === false) {\n return;\n }\n\n if (item.getAttribute('data-menu-submenu-mode') == 'accordion') {\n return;\n }\n\n if (KTUtil.hasClass(item, 'menu-item-hover') == false) {\n KTUtil.addClass(item, 'menu-item-open-dropdown');\n Plugin.showSubmenuDropdown(item);\n }\n\n e.preventDefault();\n },\n\n /**\n * Handles link click\n * @returns {KTMenu}\n */\n handleLinkClick: function(e) {\n var submenu = this.closest('.menu-item.menu-item-submenu');\n\n // Trigger click event handlers\n var result = Plugin.eventTrigger('linkClick', this, e);\n if (result === false) {\n return;\n }\n\n if ( submenu && Plugin.getSubmenuMode(submenu) === 'dropdown' ) {\n Plugin.hideSubmenuDropdowns();\n }\n },\n\n /**\n * Handles submenu dropdown close on link click\n * @returns {KTMenu}\n */\n handleSubmenuDropdownClose: function(e, el) {\n // exit if its not submenu dropdown mode\n if (Plugin.getSubmenuMode(el) === 'accordion') {\n return;\n }\n\n var shown = element.querySelectorAll('.menu-item.menu-item-submenu.menu-item-hover:not(.menu-item-tabs)');\n\n // check if currently clicked link's parent item ha\n if (shown.length > 0 && KTUtil.hasClass(el, 'menu-toggle') === false && el.querySelectorAll('.menu-toggle').length === 0) {\n // close opened dropdown menus\n for (var i = 0, len = shown.length; i < len; i++) {\n Plugin.hideSubmenuDropdown(shown[0], true);\n }\n }\n },\n\n /**\n * helper functions\n * @returns {KTMenu}\n */\n handleSubmenuAccordion: function(e, el) {\n var query;\n var item = el ? el : this;\n\n // Trigger click event handlers\n var result = Plugin.eventTrigger('submenuToggle', this, e);\n if (result === false) {\n return;\n }\n\n if ( Plugin.getSubmenuMode(el) === 'dropdown' && (query = item.closest('.menu-item') ) ) {\n if (query.getAttribute('data-menu-submenu-mode') != 'accordion' ) {\n e.preventDefault();\n return;\n }\n }\n\n var li = item.closest('.menu-item');\n var submenu = KTUtil.child(li, '.menu-submenu, .menu-inner');\n\n if (KTUtil.hasClass(item.closest('.menu-item'), 'menu-item-open-always')) {\n return;\n }\n\n if ( li && submenu ) {\n e.preventDefault();\n var speed = the.options.accordion.slideSpeed;\n var hasClosables = false;\n\n if ( KTUtil.hasClass(li, 'menu-item-open') === false ) {\n // hide other accordions\n if ( the.options.accordion.expandAll === false ) {\n var subnav = item.closest('.menu-nav, .menu-subnav');\n var closables = KTUtil.children(subnav, '.menu-item.menu-item-open.menu-item-submenu:not(.menu-item-here):not(.menu-item-open-always)');\n\n if ( subnav && closables ) {\n for (var i = 0, len = closables.length; i < len; i++) {\n var el_ = closables[0];\n var submenu_ = KTUtil.child(el_, '.menu-submenu');\n if ( submenu_ ) {\n KTUtil.slideUp(submenu_, speed, function() {\n Plugin.scrollUpdate();\n KTUtil.removeClass(el_, 'menu-item-open');\n });\n }\n }\n }\n }\n\n KTUtil.slideDown(submenu, speed, function() {\n Plugin.scrollToItem(item);\n Plugin.scrollUpdate();\n\n Plugin.eventTrigger('submenuToggle', submenu, e);\n });\n\n KTUtil.addClass(li, 'menu-item-open');\n\n } else {\n KTUtil.slideUp(submenu, speed, function() {\n Plugin.scrollToItem(item);\n Plugin.eventTrigger('submenuToggle', submenu, e);\n });\n\n KTUtil.removeClass(li, 'menu-item-open');\n }\n }\n },\n\n /**\n * scroll to item function\n * @returns {KTMenu}\n */\n scrollToItem: function(item) {\n // handle auto scroll for accordion submenus\n if ( KTUtil.isBreakpointUp('lg') && the.options.accordion.autoScroll && element.getAttribute('data-menu-scroll') !== '1' ) {\n KTUtil.scrollTo(item, the.options.accordion.autoScrollSpeed);\n }\n },\n\n /**\n * Hide submenu dropdown\n * @returns {KTMenu}\n */\n hideSubmenuDropdown: function(item, classAlso) {\n // remove submenu activation class\n if ( classAlso ) {\n KTUtil.removeClass(item, 'menu-item-hover');\n KTUtil.removeClass(item, 'menu-item-active-tab');\n }\n\n // clear timeout\n item.removeAttribute('data-hover');\n\n if ( item.getAttribute('data-menu-toggle-class') ) {\n KTUtil.removeClass(body, item.getAttribute('data-menu-toggle-class'));\n }\n\n var timeout = item.getAttribute('data-timeout');\n item.removeAttribute('data-timeout');\n clearTimeout(timeout);\n },\n\n /**\n * Hide submenu dropdowns\n * @returns {KTMenu}\n */\n hideSubmenuDropdowns: function() {\n var items;\n if ( items = element.querySelectorAll('.menu-item-submenu.menu-item-hover:not(.menu-item-tabs):not([data-menu-toggle=\"tab\"])') ) {\n for (var j = 0, cnt = items.length; j < cnt; j++) {\n Plugin.hideSubmenuDropdown(items[j], true);\n }\n }\n },\n\n /**\n * helper functions\n * @returns {KTMenu}\n */\n showSubmenuDropdown: function(item) {\n // close active submenus\n var list = element.querySelectorAll('.menu-item-submenu.menu-item-hover, .menu-item-submenu.menu-item-active-tab');\n\n if ( list ) {\n for (var i = 0, len = list.length; i < len; i++) {\n var el = list[i];\n if ( item !== el && el.contains(item) === false && item.contains(el) === false ) {\n Plugin.hideSubmenuDropdown(el, true);\n }\n }\n }\n\n // add submenu activation class\n KTUtil.addClass(item, 'menu-item-hover');\n\n // Change the alignment of submenu is offscreen.\n var submenu = KTUtil.find(item, '.menu-submenu');\n\n if (submenu && submenu.hasAttribute('data-hor-direction') === false) {\n if (KTUtil.hasClass(submenu, 'menu-submenu-left')) {\n submenu.setAttribute('data-hor-direction', 'menu-submenu-left');\n } else if (KTUtil.hasClass(submenu, 'menu-submenu-right')) {\n submenu.setAttribute('data-hor-direction', 'menu-submenu-right');\n }\n }\n\n if ( submenu && KTUtil.isOffscreen(submenu, 'left', 15) === true ) {\n KTUtil.removeClass(submenu, 'menu-submenu-left');\n KTUtil.addClass(submenu, 'menu-submenu-right');\n } else if ( submenu && KTUtil.isOffscreen(submenu, 'right', 15) === true ) {\n KTUtil.removeClass(submenu, 'menu-submenu-right');\n KTUtil.addClass(submenu, 'menu-submenu-left');\n }\n\n if ( item.getAttribute('data-menu-toggle-class') ) {\n KTUtil.addClass(body, item.getAttribute('data-menu-toggle-class'));\n }\n },\n\n /**\n * Handles submenu slide toggle\n * @returns {KTMenu}\n */\n createSubmenuDropdownClickDropoff: function(el) {\n var query;\n var zIndex = (query = KTUtil.child(el, '.menu-submenu') ? KTUtil.css(query, 'z-index') : 0) - 1;\n\n var dropoff = document.createElement('
');\n\n body.appendChild(dropoff);\n\n KTUtil.addEvent(dropoff, 'click', function(e) {\n e.stopPropagation();\n e.preventDefault();\n KTUtil.remove(this);\n Plugin.hideSubmenuDropdown(el, true);\n });\n },\n\n /**\n * Handles submenu hover toggle\n * @returns {KTMenu}\n */\n pauseDropdownHover: function(time) {\n var date = new Date();\n\n the.pauseDropdownHoverTime = date.getTime() + time;\n },\n\n /**\n * Handles submenu hover toggle\n * @returns {KTMenu}\n */\n resumeDropdownHover: function() {\n var date = new Date();\n\n return (date.getTime() > the.pauseDropdownHoverTime ? true : false);\n },\n\n /**\n * Reset menu's current active item\n * @returns {KTMenu}\n */\n resetActiveItem: function(item) {\n var list;\n var parents;\n\n list = element.querySelectorAll('.menu-item-active');\n\n for (var i = 0, len = list.length; i < len; i++) {\n var el = list[0];\n KTUtil.removeClass(el, 'menu-item-active');\n KTUtil.hide( KTUtil.child(el, '.menu-submenu') );\n parents = KTUtil.parents(el, '.menu-item-submenu') || [];\n\n for (var i_ = 0, len_ = parents.length; i_ < len_; i_++) {\n var el_ = parents[i];\n KTUtil.removeClass(el_, 'menu-item-open');\n KTUtil.hide( KTUtil.child(el_, '.menu-submenu') );\n }\n }\n\n // close open submenus\n if ( the.options.accordion.expandAll === false ) {\n if ( list = element.querySelectorAll('.menu-item-open') ) {\n for (var i = 0, len = list.length; i < len; i++) {\n KTUtil.removeClass(parents[0], 'menu-item-open');\n }\n }\n }\n },\n\n /**\n * Sets menu's active item\n * @returns {KTMenu}\n */\n setActiveItem: function(item) {\n // reset current active item\n Plugin.resetActiveItem();\n\n var parents = KTUtil.parents(item, '.menu-item-submenu') || [];\n for (var i = 0, len = parents.length; i < len; i++) {\n KTUtil.addClass(parents[i], 'menu-item-open');\n }\n\n KTUtil.addClass(item, 'menu-item-active');\n },\n\n /**\n * Returns page breadcrumbs for the menu's active item\n * @returns {KTMenu}\n */\n getBreadcrumbs: function(item) {\n var query;\n var breadcrumbs = [];\n var link = KTUtil.child(item, '.menu-link');\n\n breadcrumbs.push({\n text: (query = KTUtil.child(link, '.menu-text') ? query.innerHTML : ''),\n title: link.getAttribute('title'),\n href: link.getAttribute('href')\n });\n\n var parents = KTUtil.parents(item, '.menu-item-submenu');\n for (var i = 0, len = parents.length; i < len; i++) {\n var submenuLink = KTUtil.child(parents[i], '.menu-link');\n\n breadcrumbs.push({\n text: (query = KTUtil.child(submenuLink, '.menu-text') ? query.innerHTML : ''),\n title: submenuLink.getAttribute('title'),\n href: submenuLink.getAttribute('href')\n });\n }\n\n return breadcrumbs.reverse();\n },\n\n /**\n * Returns page title for the menu's active item\n * @returns {KTMenu}\n */\n getPageTitle: function(item) {\n var query;\n\n return (query = KTUtil.child(item, '.menu-text') ? query.innerHTML : '');\n },\n\n /**\n * Trigger events\n */\n eventTrigger: function(name, target, e) {\n for (var i = 0; i < the.events.length; i++ ) {\n var event = the.events[i];\n if ( event.name == name ) {\n if ( event.one == true ) {\n if ( event.fired == false ) {\n the.events[i].fired = true;\n return event.handler.call(this, target, e);\n }\n } else {\n return event.handler.call(this, target, e);\n }\n }\n }\n },\n\n addEvent: function(name, handler, one) {\n the.events.push({\n name: name,\n handler: handler,\n one: one,\n fired: false\n });\n },\n\n removeEvent: function(name) {\n if (the.events[name]) {\n delete the.events[name];\n }\n }\n };\n\n //////////////////////////\n // ** Public Methods ** //\n //////////////////////////\n\n /**\n * Set default options\n */\n\n the.setDefaults = function(options) {\n defaultOptions = options;\n };\n\n /**\n * Update scroll\n */\n the.scrollUpdate = function() {\n return Plugin.scrollUpdate();\n };\n\n /**\n * Re-init scroll\n */\n the.scrollReInit = function() {\n return Plugin.scrollInit();\n };\n\n /**\n * Scroll top\n */\n the.scrollTop = function() {\n return Plugin.scrollTop();\n };\n\n /**\n * Set active menu item\n */\n the.setActiveItem = function(item) {\n return Plugin.setActiveItem(item);\n };\n\n the.reload = function() {\n return Plugin.reload();\n };\n\n the.update = function(options) {\n return Plugin.update(options);\n };\n\n /**\n * Set breadcrumb for menu item\n */\n the.getBreadcrumbs = function(item) {\n return Plugin.getBreadcrumbs(item);\n };\n\n /**\n * Set page title for menu item\n */\n the.getPageTitle = function(item) {\n return Plugin.getPageTitle(item);\n };\n\n /**\n * Get submenu mode\n */\n the.getSubmenuMode = function(el) {\n return Plugin.getSubmenuMode(el);\n };\n\n /**\n * Hide dropdown\n * @returns {Object}\n */\n the.hideDropdown = function(item) {\n Plugin.hideSubmenuDropdown(item, true);\n };\n\n /**\n * Hide dropdowns\n * @returns {Object}\n */\n the.hideDropdowns = function() {\n Plugin.hideSubmenuDropdowns();\n };\n\n /**\n * Disable menu for given time\n * @returns {Object}\n */\n the.pauseDropdownHover = function(time) {\n Plugin.pauseDropdownHover(time);\n };\n\n /**\n * Disable menu for given time\n * @returns {Object}\n */\n the.resumeDropdownHover = function() {\n return Plugin.resumeDropdownHover();\n };\n\n /**\n * Register event\n */\n the.on = function(name, handler) {\n return Plugin.addEvent(name, handler);\n };\n\n the.off = function(name) {\n return Plugin.removeEvent(name);\n };\n\n the.one = function(name, handler) {\n return Plugin.addEvent(name, handler, true);\n };\n\n ///////////////////////////////\n // ** Plugin Construction ** //\n ///////////////////////////////\n\n // Run plugin\n Plugin.construct.apply(the, [options]);\n\n // Handle plugin on window resize\n KTUtil.addResizeHandler(function() {\n if (init) {\n the.reload();\n }\n });\n\n // Init done\n init = true;\n\n // Return plugin instance\n return the;\n};\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = KTMenu;\n}\n\n// Plugin global lazy initialization\ndocument.addEventListener(\"click\", function (e) {\n var body = KTUtil.getByTagName('body')[0];\n var query;\n if ( query = body.querySelectorAll('.menu-nav .menu-item.menu-item-submenu.menu-item-hover:not(.menu-item-tabs)[data-menu-toggle=\"click\"]') ) {\n for (var i = 0, len = query.length; i < len; i++) {\n var element = query[i].closest('.menu-nav').parentNode;\n\n if ( element ) {\n var the = KTUtil.data(element).get('menu');\n\n if ( !the ) {\n break;\n }\n\n if ( !the || the.getSubmenuMode() !== 'dropdown' ) {\n break;\n }\n\n if ( e.target !== element && element.contains(e.target) === false ) {\n the.hideDropdowns();\n }\n }\n }\n }\n});\n\nexport default KTMenu;","// action types\nexport const ADD_BODY_CLASSNAME = \"addBodyClassName\";\nexport const REMOVE_BODY_CLASSNAME = \"removeBodyClassName\";\nexport const ADD_CLASSNAME = \"addClassName\";\n// mutation types\nexport const SET_CLASSNAME_BY_POSITION = \"setClassNameByPosition\";\n\nexport default {\n state: {\n classes: {}\n },\n getters: {\n getClasses: state => position => {\n if (typeof position !== \"undefined\") {\n return state.classes[position];\n }\n return state.classes;\n }\n },\n actions: {\n [ADD_BODY_CLASSNAME](context, className) {\n document.body.classList.add(className);\n },\n [REMOVE_BODY_CLASSNAME](context, className) {\n document.body.classList.remove(className);\n },\n [ADD_CLASSNAME](context, payload) {\n context.commit(SET_CLASSNAME_BY_POSITION, payload);\n }\n },\n mutations: {\n [SET_CLASSNAME_BY_POSITION](state, payload) {\n const { position, className } = payload;\n if (!state.classes[position]) {\n state.classes[position] = [];\n }\n state.classes[position].push(className);\n }\n }\n};\n","import Vue from \"vue\";\nimport axios from \"axios\";\nimport VueAxios from \"vue-axios\";\nimport JwtService from \"@/core/services/jwt.service\";\nimport store from \"@/core/services/store\";\nimport { REFRESH_ACCESS_TOKEN } from \"@/core/services/store/auth.module\";\n\n/**\n * Service to call HTTP request via Axios\n */\nconst ApiService = {\n init() {\n Vue.use(VueAxios, axios);\n Vue.axios.defaults.baseURL = process.env.VUE_APP__OLINQUAAPI;\n },\n\n /**\n * Set the default HTTP request headers\n */\n setHeader() {\n Vue.axios.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${JwtService.getToken()}`;\n },\n\n query(resource, params) {\n // this is a WIP function - the console logging is here so I can see what happens when tokens expire (MM 29/10/20)\n // console.log(JSON.stringify(Vue.axios.defaults.baseURL));\n // console.log(JSON.stringify(resource));\n\n this.setHeader();\n //console.log(JSON.stringify(Vue.axios.defaults.headers.common));\n\n let result = Vue.axios.get(resource, params).catch((error) => {\n if (error.message.includes(\"401\")) {\n console.log(\"401 caught - trying to get a new token\");\n store.dispatch(REFRESH_ACCESS_TOKEN).then(() => {\n console.log(\"finished trying to get a new token - trying API again\");\n\n result = Vue.axios.get(resource, params).catch((error) => {\n console.log(\"retry failed\");\n throw new Error(`[KT] ApiService ${error}`);\n });\n });\n } else {\n throw new Error(`[KT] ApiService ${error}`);\n }\n });\n\n return result;\n },\n\n /**\n * Send the GET HTTP request\n * @param resource\n * @param slug\n * @returns {*}\n */\n get(resource, slug = \"\") {\n return Vue.axios.get(`${resource}/${slug}`).catch((error) => {\n throw new Error(`[KT] ApiService ${error}`);\n });\n },\n\n /**\n * Set the POST HTTP request\n * @param resource\n * @param params\n * @returns {*}\n */\n post(resource, content) {\n this.setHeader();\n //console.log(JSON.stringify(Vue.axios.defaults.headers.common));\n\n let result = Vue.axios.post(resource, content).catch((error) => {\n if (error.message.includes(\"401\")) {\n console.log(\"401 caught - trying to get a new token\");\n store.dispatch(REFRESH_ACCESS_TOKEN).then(() => {\n console.log(\"finished trying to get a new token - trying API again\");\n\n result = Vue.axios.get(resource, params).catch((error) => {\n console.log(\"retry failed\");\n throw new Error(`[KT] ApiService ${error}`);\n });\n });\n } else {\n throw new Error(`[KT] ApiService ${error}`);\n }\n });\n\n return result;\n },\n\n /**\n * Send the UPDATE HTTP request\n * @param resource\n * @param slug\n * @param params\n * @returns {IDBRequest | Promise}\n */\n update(resource, slug, params) {\n return Vue.axios.put(`${resource}/${slug}`, params);\n },\n\n /**\n * Send the PUT HTTP request\n * @param resource\n * @param params\n * @returns {IDBRequest | Promise}\n */\n put(resource, params) {\n return Vue.axios.put(`${resource}`, params);\n },\n\n /**\n * Send the DELETE HTTP request\n * @param resource\n * @returns {*}\n */\n delete(resource) {\n return Vue.axios.delete(resource).catch((error) => {\n // console.log(error);\n throw new Error(`[RWV] ApiService ${error}`);\n });\n },\n};\n\nexport default ApiService;\n","import ApiService from \"@/core/services/api.service\";\nimport JwtService from \"@/core/services/jwt.service\";\nimport { _ } from \"core-js\";\n\n// action types\nexport const VERIFY_AUTH = \"verifyAuth\";\nexport const LOGIN = \"login\";\nexport const LOGOUT = \"logout\";\nexport const REFRESH_ACCESS_TOKEN = \"refreshAccessToken\";\n\n// mutation types\nexport const PURGE_AUTH = \"logOut\";\nexport const SET_AUTH = \"setUser\";\nexport const SET_PASSWORD = \"setPassword\";\nexport const SET_ERROR = \"setError\";\n\nconst state = {\n errors: null,\n isAuthenticated: !!JwtService.getToken(),\n accessToken: \"\",\n};\n\nconst getters = {\n currentUser(state) {\n return state.user;\n },\n isAuthenticated(state) {\n console.log(`State authenticated: ${state.isAuthenticated}`);\n return state.isAuthenticated;\n },\n};\n\nconst actions = {\n [LOGIN]() {\n return new Promise((resolve) => {\n this._vm.$msal.signIn();\n resolve();\n });\n },\n [LOGOUT](context) {\n context.commit(PURGE_AUTH);\n this._vm.$msal.signOut();\n },\n [VERIFY_AUTH](context) {\n console.log(\"Verifying authentication\");\n\n let msalError = window.localStorage.getItem(\n `msal.${process.env.VUE_APP__CLIENT_ID}.error.description`\n );\n // let hasMsalError = msalError ? msalError.startsWith(\"AADB2C90077\") : false;\n let hasCookieError = document.cookie.includes(\"AADB2C90077\");\n\n if (msalError || hasCookieError) {\n // this detects the MSAL error and kicks off an interactive signIn\n console.log(\"signingin\");\n context.commit(PURGE_AUTH);\n window.localStorage.clear();\n\n // purge all cookies for domain\n var cookies = document.cookie.split(\";\");\n\n for (var i = 0; i < cookies.length; i++) {\n var cookie = cookies[i];\n var eqPos = cookie.indexOf(\"=\");\n var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;\n document.cookie = name + \"=;expires=Thu, 01 Jan 1970 00:00:00 GMT\";\n }\n\n var cookies2 = document.cookie.split(\"; \");\n console.log(JSON.stringify(cookies2));\n // window.location =\n // process.env.VUE_APP__BASEURL_ROOT +\n // \"/\" +\n // process.env.VUE_APP__BASEURL_PATH;\n\n window.location.reload();\n }\n\n if (this._vm.$msal.isAuthenticated()) {\n if (this._vm.$msal.data.accessToken) {\n context.commit(SET_AUTH, this._vm.$msal.data.accessToken);\n }\n } else {\n console.log(\"trying relogin\");\n return new Promise((resolve) => {\n this._vm.$msal.signIn();\n resolve();\n });\n context.commit(PURGE_AUTH);\n }\n },\n [REFRESH_ACCESS_TOKEN](context) {\n return new Promise((resolve) => {\n if (this._vm.$msal.isAuthenticated()) {\n // leaving this console logging to help debug authentication until we're confident in it\n // (MM 29/10/2020)\n console.log(\"refresh access token called\");\n console.log(`token before: ${this._vm.$msal.data.accessToken}`);\n this._vm.$msal.acquireToken();\n console.log(`token after: ${this._vm.$msal.data.accessToken}`);\n context.commit(SET_AUTH, this._vm.$msal.data.accessToken);\n }\n resolve();\n });\n },\n};\n\nconst mutations = {\n [SET_ERROR](state, error) {\n state.errors = error;\n },\n [SET_AUTH](state, token) {\n console.log(`Access token: ${token}`);\n state.isAuthenticated = true;\n state.errors = {};\n state.accessToken = token;\n\n // manually save our access token to the service\n JwtService.saveToken(state.accessToken);\n\n // set the axios header\n ApiService.setHeader();\n },\n [PURGE_AUTH](state) {\n console.log(\"purging auth\");\n state.isAuthenticated = false;\n state.accessToken = \"\";\n state.errors = {};\n\n // manually destroy token\n JwtService.destroyToken();\n },\n};\n\nexport default {\n state,\n actions,\n mutations,\n getters,\n};\n","\"use strict\";\n\nvar KTLayoutQuickActions = function() {\n // Private properties\n var _element;\n var _offcanvasObject;\n\n // Private functions\n var _init = function() {\n var header = KTUtil.find(_element, '.offcanvas-header');\n var content = KTUtil.find(_element, '.offcanvas-content');\n\n _offcanvasObject = new KTOffcanvas(_element, {\n overlay: true,\n baseClass: 'offcanvas',\n placement: 'right',\n closeBy: 'kt_quick_actions_close',\n toggleBy: 'kt_quick_actions_toggle'\n });\n\n KTUtil.scrollInit(content, {\n disableForMobile: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n var height = parseInt(KTUtil.getViewPort().height);\n\n if (header) {\n height = height - parseInt(KTUtil.actualHeight(header));\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\n }\n\n if (content) {\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\n }\n\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\n\n height = height - 2;\n\n return height;\n }\n });\n }\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n },\n\n getElement: function() {\n return _element;\n }\n };\n}();\n\n\n\nexport default KTLayoutQuickActions;","\"use strict\";\n\nvar KTLayoutQuickUser = function() {\n // Private properties\n var _element;\n var _offcanvasObject;\n\n // Private functions\n var _init = function() {\n var header = KTUtil.find(_element, '.offcanvas-header');\n var content = KTUtil.find(_element, '.offcanvas-content');\n\n _offcanvasObject = new KTOffcanvas(_element, {\n overlay: true,\n baseClass: 'offcanvas',\n placement: 'right',\n closeBy: 'kt_quick_user_close',\n toggleBy: 'kt_quick_user_toggle'\n });\n\n KTUtil.scrollInit(content, {\n disableForMobile: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n var height = parseInt(KTUtil.getViewPort().height);\n\n if (header) {\n height = height - parseInt(KTUtil.actualHeight(header));\n height = height - parseInt(KTUtil.css(header, 'marginTop'));\n height = height - parseInt(KTUtil.css(header, 'marginBottom'));\n }\n\n if (content) {\n height = height - parseInt(KTUtil.css(content, 'marginTop'));\n height = height - parseInt(KTUtil.css(content, 'marginBottom'));\n }\n\n height = height - parseInt(KTUtil.css(_element, 'paddingTop'));\n height = height - parseInt(KTUtil.css(_element, 'paddingBottom'));\n\n height = height - 2;\n\n return height;\n }\n });\n }\n\n // Public methods\n return {\n init: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n },\n\n getElement: function() {\n return _element;\n }\n };\n}();\n\n\n\nexport default KTLayoutQuickUser;","\"use strict\";\n\nimport KTUtil from \"./util\";\n\n// Component Definition \nvar KTDialog = function(options) {\n // Main object\n var the = this;\n\n // Get element object\n var element;\n var body = KTUtil.getBody();\n\n // Default options\n var defaultOptions = {\n 'placement' : 'top center',\n 'type' : 'loader',\n 'width' : 100,\n 'state' : 'default',\n 'message' : 'Loading...'\n };\n\n ////////////////////////////\n // ** Private Methods ** //\n ////////////////////////////\n\n var Plugin = {\n /**\n * Construct\n */\n\n construct: function(options) {\n Plugin.init(options);\n\n return the;\n },\n\n /**\n * Handles subtoggle click toggle\n */\n init: function(options) {\n the.events = [];\n\n // merge default and user defined options\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\n\n the.state = false;\n },\n\n /**\n * Show dialog\n */\n show: function() {\n Plugin.eventTrigger('show');\n\n element = document.createElement(\"DIV\");\n KTUtil.setHTML(element, the.options.message);\n\n KTUtil.addClass(element, 'dialog dialog-shown');\n KTUtil.addClass(element, 'dialog-' + the.options.state);\n KTUtil.addClass(element, 'dialog-' + the.options.type);\n\n if (the.options.placement == 'top center') {\n KTUtil.addClass(element, 'dialog-top-center');\n }\n\n body.appendChild(element);\n\n the.state = 'shown';\n\n Plugin.eventTrigger('shown');\n\n return the;\n },\n\n /**\n * Hide dialog\n */\n hide: function() {\n if (element) {\n Plugin.eventTrigger('hide');\n\n element.remove();\n the.state = 'hidden';\n\n Plugin.eventTrigger('hidden');\n }\n\n return the;\n },\n\n /**\n * Trigger events\n */\n eventTrigger: function(name) {\n for (var i = 0; i < the.events.length; i++) {\n var event = the.events[i];\n\n if (event.name == name) {\n if (event.one == true) {\n if (event.fired == false) {\n the.events[i].fired = true;\n return event.handler.call(this, the);\n }\n } else {\n return event.handler.call(this, the);\n }\n }\n }\n },\n\n addEvent: function(name, handler, one) {\n the.events.push({\n name: name,\n handler: handler,\n one: one,\n fired: false\n });\n\n return the;\n }\n };\n\n //////////////////////////\n // ** Public Methods ** //\n //////////////////////////\n\n /**\n * Set default options\n */\n\n the.setDefaults = function(options) {\n defaultOptions = options;\n };\n\n /**\n * Check shown state\n */\n the.shown = function() {\n return the.state == 'shown';\n };\n\n /**\n * Check hidden state\n */\n the.hidden = function() {\n return the.state == 'hidden';\n };\n\n /**\n * Show dialog\n */\n the.show = function() {\n return Plugin.show();\n };\n\n /**\n * Hide dialog\n */\n the.hide = function() {\n return Plugin.hide();\n };\n\n /**\n * Attach event\n * @returns {KTToggle}\n */\n the.on = function(name, handler) {\n return Plugin.addEvent(name, handler);\n };\n\n /**\n * Attach event that will be fired once\n * @returns {KTToggle}\n */\n the.one = function(name, handler) {\n return Plugin.addEvent(name, handler, true);\n };\n\n // Construct plugin\n Plugin.construct.apply(the, [options]);\n\n return the;\n};\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = KTDialog;\n}\n\nexport default KTDialog;","\"use strict\";\n\nimport KTUtil from \"./util\";\n\n// Component Definition\nvar KTWizard = function(elementId, options) {\n // Main object\n var the = this;\n var init = false;\n\n // Get element object\n var element = KTUtil.getById(elementId);\n var body = KTUtil.getBody();\n\n if (!element) {\n return;\n }\n\n // Default options\n var defaultOptions = {\n startStep: 1,\n clickableSteps: false // to make steps clickable this set value true and add data-wizard-clickable=\"true\" in HTML for class=\"wizard\" element\n };\n\n ////////////////////////////\n // ** Private Methods ** //\n ////////////////////////////\n\n var Plugin = {\n /**\n * Construct\n */\n\n construct: function(options) {\n if (KTUtil.data(element).has('wizard')) {\n the = KTUtil.data(element).get('wizard');\n } else {\n // reset menu\n Plugin.init(options);\n\n // build menu\n Plugin.build();\n\n KTUtil.data(element).set('wizard', the);\n }\n\n return the;\n },\n\n /**\n * Init wizard\n */\n init: function(options) {\n the.element = element;\n the.events = [];\n\n // merge default and user defined options\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\n\n // Elements\n the.steps = KTUtil.findAll(element, '[data-wizard-type=\"step\"]');\n\n the.btnNext = KTUtil.find(element, '[data-wizard-type=\"action-next\"]');\n the.btnPrev = KTUtil.find(element, '[data-wizard-type=\"action-prev\"]');\n the.btnSubmit = KTUtil.find(element, '[data-wizard-type=\"action-submit\"]');\n\n // Variables\n the.events = [];\n the.lastStep = 0;\n the.currentStep = 1;\n the.newStep = 0;\n the.stopped = false;\n the.totalSteps = the.steps.length;\n\n // Init current step\n if (the.options.startStep > 1) {\n Plugin.goTo(the.options.startStep);\n }\n\n // Init UI\n Plugin.updateUI();\n },\n\n /**\n * Build Form Wizard\n */\n build: function() {\n // Next button event handler\n KTUtil.addEvent(the.btnNext, 'click', function(e) {\n e.preventDefault();\n\n // Set new step number\n Plugin.setNewStep(Plugin.getNextStep());\n\n // Trigger change event\n if (Plugin.eventTrigger('change') !== false) {\n Plugin.goTo(Plugin.getNextStep());\n }\n });\n\n // Prev button event handler\n KTUtil.addEvent(the.btnPrev, 'click', function(e) {\n e.preventDefault();\n\n // Set new step number\n Plugin.setNewStep(Plugin.getPrevStep());\n\n // Trigger change event\n if (Plugin.eventTrigger('change') !== false) {\n Plugin.goTo(Plugin.getPrevStep());\n }\n });\n\n if (the.options.clickableSteps === true) {\n KTUtil.on(element, '[data-wizard-type=\"step\"]', 'click', function() {\n var index = KTUtil.index(this) + 1;\n\n if (index !== the.currentStep) {\n Plugin.setNewStep(index);\n\n // Trigger change event\n if (Plugin.eventTrigger('change') !== false) {\n Plugin.goTo(index);\n }\n }\n });\n }\n\n // Submit button event handler\n KTUtil.addEvent(the.btnSubmit, 'click', function(e) {\n e.preventDefault();\n\n Plugin.eventTrigger('submit');\n });\n },\n\n /**\n * Handles wizard click wizard\n */\n goTo: function(number) {\n // Skip if stopped\n if (the.stopped === true) {\n the.stopped = false;\n return;\n }\n\n // Skip if this step is already shown\n if (number === the.currentStep || number > the.totalSteps || number < 0) {\n return;\n }\n\n // Validate step number\n number = parseInt(number);\n\n // Set current step\n the.lastStep = the.currentStep;\n the.currentStep = number;\n the.newStep = 0;\n\n Plugin.updateUI();\n\n Plugin.eventTrigger('changed');\n\n return the;\n },\n\n /**\n * Stop wizard\n */\n stop: function() {\n the.stopped = true;\n },\n\n /**\n * Resume wizard\n */\n resume: function() {\n the.stopped = false;\n },\n\n /**\n * Check last step\n */\n isLastStep: function() {\n return the.currentStep === the.totalSteps;\n },\n\n /**\n * Check first step\n */\n isFirstStep: function() {\n return the.currentStep === 1;\n },\n\n /**\n * Check between step\n */\n isBetweenStep: function() {\n return Plugin.isLastStep() === false && Plugin.isFirstStep() === false;\n },\n\n /**\n * Update wizard UI after step change\n */\n updateUI: function() {\n var stepType = '';\n var index = the.currentStep - 1;\n\n if (Plugin.isLastStep()) {\n stepType = 'last';\n } else if (Plugin.isFirstStep()) {\n stepType = 'first';\n } else {\n stepType = 'between';\n }\n\n KTUtil.attr(the.element, 'data-wizard-state', stepType);\n\n // Steps\n var steps = KTUtil.findAll(the.element, '[data-wizard-type=\"step\"]');\n\n if (steps && steps.length > 0) {\n for (var i = 0, len = steps.length; i < len; i++) {\n if (i == index) {\n KTUtil.attr(steps[i], 'data-wizard-state', 'current');\n } else {\n if (i < index) {\n KTUtil.attr(steps[i], 'data-wizard-state', 'done');\n } else {\n KTUtil.attr(steps[i], 'data-wizard-state', 'pending');\n }\n }\n }\n }\n\n // Steps Info\n var stepsInfo = KTUtil.findAll(the.element, '[data-wizard-type=\"step-info\"]');\n if (stepsInfo &&stepsInfo.length > 0) {\n for (var i = 0, len = stepsInfo.length; i < len; i++) {\n if (i == index) {\n KTUtil.attr(stepsInfo[i], 'data-wizard-state', 'current');\n } else {\n KTUtil.removeAttr(stepsInfo[i], 'data-wizard-state');\n }\n }\n }\n\n // Steps Content\n var stepsContent = KTUtil.findAll(the.element, '[data-wizard-type=\"step-content\"]');\n if (stepsContent&& stepsContent.length > 0) {\n for (var i = 0, len = stepsContent.length; i < len; i++) {\n if (i == index) {\n KTUtil.attr(stepsContent[i], 'data-wizard-state', 'current');\n } else {\n KTUtil.removeAttr(stepsContent[i], 'data-wizard-state');\n }\n }\n }\n },\n\n /**\n * Get next step number\n */\n getNextStep: function() {\n if (the.totalSteps >= (the.currentStep + 1)) {\n return the.currentStep + 1;\n } else {\n return the.totalSteps;\n }\n },\n\n /**\n * Get prev step number\n */\n getPrevStep: function() {\n if ((the.currentStep - 1) >= 1) {\n return the.currentStep - 1;\n } else {\n return 1;\n }\n },\n\n /**\n * Get new step number\n */\n getNewStep: function() {\n return the.newStep;\n },\n\n /**\n * Set new step\n */\n setNewStep: function(step) {\n the.newStep = step;\n },\n\n /**\n * Trigger events\n */\n eventTrigger: function(name, nested) {\n //KTUtil.triggerCustomEvent(name);\n for (var i = 0; i < the.events.length; i++) {\n var event = the.events[i];\n if (event.name == name) {\n if (event.one == true) {\n if (event.fired == false) {\n the.events[i].fired = true;\n return event.handler.call(this, the);\n }\n } else {\n return event.handler.call(this, the);\n }\n }\n }\n },\n\n addEvent: function(name, handler, one) {\n the.events.push({\n name: name,\n handler: handler,\n one: one,\n fired: false\n });\n\n return the;\n }\n };\n\n //////////////////////////\n // ** Public Methods ** //\n //////////////////////////\n\n /**\n * Set default options\n */\n\n the.setDefaults = function(options) {\n defaultOptions = options;\n };\n\n /**\n * Go to the next step\n */\n the.goNext = function() {\n return Plugin.goTo(Plugin.getNextStep());\n };\n\n /**\n * Go to the prev step\n */\n the.goPrev = function() {\n return Plugin.goTo(Plugin.getPrevStep());\n };\n\n /**\n * Go to the last step\n */\n the.goLast = function() {\n return Plugin.goTo(Plugin.getLastStep());\n };\n\n /**\n * Go to the first step\n */\n the.goFirst = function() {\n return Plugin.goTo(Plugin.getFirstStep());\n };\n\n /**\n * Go to a step\n */\n the.goTo = function(number) {\n return Plugin.goTo(number);\n };\n\n /**\n * Stop wizard\n */\n the.stop = function() {\n return Plugin.stop();\n };\n\n /**\n * Resume wizard\n */\n the.resume = function() {\n return Plugin.resume();\n };\n\n /**\n * Get current step number\n */\n the.getStep = function() {\n return the.currentStep;\n };\n\n /**\n * Get new step number\n */\n the.getNewStep = function() {\n return Plugin.getNewStep();\n };\n\n /**\n * Set new step number\n */\n the.setNewStep = function(number) {\n Plugin.setNewStep(number);\n };\n\n /**\n * Check last step\n */\n the.isLastStep = function() {\n return Plugin.isLastStep();\n };\n\n /**\n * Check first step\n */\n the.isFirstStep = function() {\n return Plugin.isFirstStep();\n };\n\n /**\n * Attach event(\"change\", \"changed\", \"submit\")\n */\n the.on = function(name, handler) {\n return Plugin.addEvent(name, handler);\n };\n\n /**\n * Attach event that will be fired once\n */\n the.one = function(name, handler) {\n return Plugin.addEvent(name, handler, true);\n };\n\n // Construct plugin\n Plugin.construct.apply(the, [options]);\n\n return the;\n};\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = KTWizard;\n}\n\nexport default KTWizard;","// action types\nexport const UPDATE_PERSONAL_INFO = \"updateUserPersonalInfo\";\nexport const UPDATE_ACCOUNT_INFO = \"updateUserAccountInfo\";\n\n// mutation types\nexport const SET_PERSONAL_INFO = \"setPersonalInfo\";\nexport const SET_ACCOUNT_INFO = \"setAccountInfo\";\n\nconst state = {\n user_personal_info: {\n photo: \"media/users/300_21.jpg\",\n name: \"Martin\",\n surname: \"Moz\",\n company_name: \"Fifestudios\",\n job: \"Application Developer\",\n email: \"matt@fifestudios.com\",\n phone: \"44(76)34254578\",\n company_site: \"fifestudios\",\n },\n user_account_info: {\n username: \"nick84\",\n email: \"nick.watson@loop.com\",\n language: \"English\",\n time_zone: \"(GMT-11:00) Midway Island\",\n communication: {\n email: true,\n sms: true,\n phone: false,\n },\n verification: true,\n },\n};\n\nconst getters = {\n currentUserPersonalInfo(state) {\n return state.user_personal_info;\n },\n\n currentUserAccountInfo(state) {\n return state.user_account_info;\n },\n};\n\nconst actions = {\n [UPDATE_PERSONAL_INFO](context, payload) {\n context.commit(SET_PERSONAL_INFO, payload);\n },\n [UPDATE_ACCOUNT_INFO](context, payload) {\n context.commit(SET_ACCOUNT_INFO, payload);\n },\n};\n\nconst mutations = {\n [SET_PERSONAL_INFO](state, user_personal_info) {\n state.user_personal_info = user_personal_info;\n },\n [SET_ACCOUNT_INFO](state, user_account_info) {\n state.user_account_info = user_account_info;\n },\n};\n\nexport default {\n state,\n actions,\n mutations,\n getters,\n};\n","\"use strict\";\n\n/**\n * @class KTUtil base utilize class that privides helper functions\n */\n\n// Polyfills\n/**\n * Element.matches() polyfill (simple version)\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\n */\nif (!Element.prototype.matches) {\n\tElement.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n}\n\n/**\n * Element.closest() polyfill\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill\n */\nif (!Element.prototype.closest) {\n\tif (!Element.prototype.matches) {\n\t\tElement.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n\t}\n\tElement.prototype.closest = function (s) {\n\t\tvar el = this;\n\t\tvar ancestor = this;\n\t\tif (!document.documentElement.contains(el)) return null;\n\t\tdo {\n\t\t\tif (ancestor.matches(s)) return ancestor;\n\t\t\tancestor = ancestor.parentElement;\n\t\t} while (ancestor !== null);\n\t\treturn null;\n\t};\n}\n\n/**\n * ChildNode.remove() polyfill\n * https://gomakethings.com/removing-an-element-from-the-dom-the-es6-way/\n * @author Chris Ferdinandi\n * @license MIT\n */\n(function (elem) {\n\tfor (var i = 0; i < elem.length; i++) {\n\t\tif (!window[elem[i]] || 'remove' in window[elem[i]].prototype) continue;\n\t\twindow[elem[i]].prototype.remove = function () {\n\t\t\tthis.parentNode.removeChild(this);\n\t\t};\n\t}\n})(['Element', 'CharacterData', 'DocumentType']);\n\n\n//\n// requestAnimationFrame polyfill by Erik Möller.\n// With fixes from Paul Irish and Tino Zijdel\n//\n// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\n//\n// MIT license\n//\n(function() {\n var lastTime = 0;\n var vendors = ['webkit', 'moz'];\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\n window.cancelAnimationFrame =\n window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\n }\n\n if (!window.requestAnimationFrame)\n window.requestAnimationFrame = function(callback) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = window.setTimeout(function() {\n callback(currTime + timeToCall);\n }, timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n\n if (!window.cancelAnimationFrame)\n window.cancelAnimationFrame = function(id) {\n clearTimeout(id);\n };\n}());\n\n// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/prepend()/prepend().md\n(function(arr) {\n arr.forEach(function(item) {\n if (item.hasOwnProperty('prepend')) {\n return;\n }\n Object.defineProperty(item, 'prepend', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: function prepend() {\n var argArr = Array.prototype.slice.call(arguments),\n docFrag = document.createDocumentFragment();\n\n argArr.forEach(function(argItem) {\n var isNode = argItem instanceof Node;\n docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)));\n });\n\n this.insertBefore(docFrag, this.firstChild);\n }\n });\n });\n})([Element.prototype, Document.prototype, DocumentFragment.prototype]);\n\n// getAttributeNames\nif (Element.prototype.getAttributeNames == undefined) {\n Element.prototype.getAttributeNames = function () {\n var attributes = this.attributes;\n var length = attributes.length;\n var result = new Array(length);\n for (var i = 0; i < length; i++) {\n result[i] = attributes[i].name;\n }\n return result;\n };\n}\n\n// Global variables\nwindow.KTUtilElementDataStore = {};\nwindow.KTUtilElementDataStoreID = 0;\nwindow.KTUtilDelegatedEventHandlers = {};\n\nvar KTUtil = function() {\n var resizeHandlers = [];\n\n /** @type {object} breakpoints The device width breakpoints **/\n var breakpoints = {\n sm: 544, // Small screen / phone\n md: 768, // Medium screen / tablet\n lg: 992, // Large screen / desktop\n xl: 1200 // Extra large screen / wide desktop\n };\n\n /**\n * Handle window resize event with some\n * delay to attach event handlers upon resize complete\n */\n var _windowResizeHandler = function() {\n var _runResizeHandlers = function() {\n // reinitialize other subscribed elements\n for (var i = 0; i < resizeHandlers.length; i++) {\n var each = resizeHandlers[i];\n each.call();\n }\n };\n\n var timer;\n\n window.addEventListener('resize', function() {\n KTUtil.throttle(timer, function() {\n _runResizeHandlers();\n }, 200);\n });\n };\n\n return {\n /**\n * Class main initializer.\n * @param {object} settings.\n * @returns null\n */\n //main function to initiate the theme\n init: function(settings) {\n if (settings && settings.breakpoints) {\n breakpoints = settings.breakpoints;\n }\n\n _windowResizeHandler();\n },\n\n /**\n * Adds window resize event handler.\n * @param {function} callback function.\n */\n addResizeHandler: function(callback) {\n resizeHandlers.push(callback);\n },\n\n /**\n * Removes window resize event handler.\n * @param {function} callback function.\n */\n removeResizeHandler: function(callback) {\n for (var i = 0; i < resizeHandlers.length; i++) {\n if (callback === resizeHandlers[i]) {\n delete resizeHandlers[i];\n }\n }\n },\n\n /**\n * Trigger window resize handlers.\n */\n runResizeHandlers: function() {\n _runResizeHandlers();\n },\n\n resize: function() {\n if (typeof(Event) === 'function') {\n // modern browsers\n window.dispatchEvent(new Event('resize'));\n } else {\n // for IE and other old browsers\n // causes deprecation warning on modern browsers\n var evt = window.document.createEvent('UIEvents');\n evt.initUIEvent('resize', true, false, window, 0);\n window.dispatchEvent(evt);\n }\n },\n\n /**\n * Get GET parameter value from URL.\n * @param {string} paramName Parameter name.\n * @returns {string}\n */\n getURLParam: function(paramName) {\n var searchString = window.location.search.substring(1),\n i, val, params = searchString.split(\"&\");\n\n for (i = 0; i < params.length; i++) {\n val = params[i].split(\"=\");\n if (val[0] == paramName) {\n return unescape(val[1]);\n }\n }\n\n return null;\n },\n\n /**\n * Checks whether current device is mobile touch.\n * @returns {boolean}\n */\n isMobileDevice: function() {\n var test = (this.getViewPort().width < this.getBreakpoint('lg') ? true : false);\n\n if (test === false) {\n // For use within normal web clients\n test = navigator.userAgent.match(/iPad/i) != null;\n }\n\n return test;\n },\n\n /**\n * Checks whether current device is desktop.\n * @returns {boolean}\n */\n isDesktopDevice: function() {\n return KTUtil.isMobileDevice() ? false : true;\n },\n\n /**\n * Gets browser window viewport size. Ref:\n * http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/\n * @returns {object}\n */\n getViewPort: function() {\n var e = window,\n a = 'inner';\n if (!('innerWidth' in window)) {\n a = 'client';\n e = document.documentElement || document.body;\n }\n\n return {\n width: e[a + 'Width'],\n height: e[a + 'Height']\n };\n },\n\n /**\n * Checks whether given device mode is currently activated.\n * @param {string} mode Responsive mode name(e.g: desktop,\n * desktop-and-tablet, tablet, tablet-and-mobile, mobile)\n * @returns {boolean}\n */\n isInResponsiveRange: function(mode) {\n var breakpoint = this.getViewPort().width;\n\n if (mode == 'general') {\n return true;\n } else if (mode == 'desktop' && breakpoint >= (this.getBreakpoint('lg') + 1)) {\n return true;\n } else if (mode == 'tablet' && (breakpoint >= (this.getBreakpoint('md') + 1) && breakpoint < this.getBreakpoint('lg'))) {\n return true;\n } else if (mode == 'mobile' && breakpoint <= this.getBreakpoint('md')) {\n return true;\n } else if (mode == 'desktop-and-tablet' && breakpoint >= (this.getBreakpoint('md') + 1)) {\n return true;\n } else if (mode == 'tablet-and-mobile' && breakpoint <= this.getBreakpoint('lg')) {\n return true;\n } else if (mode == 'minimal-desktop-and-below' && breakpoint <= this.getBreakpoint('xl')) {\n return true;\n }\n\n return false;\n },\n\n\t\t/**\n * Checks whether given device mode is currently activated.\n * @param {string} mode Responsive mode name(e.g: desktop,\n * desktop-and-tablet, tablet, tablet-and-mobile, mobile)\n * @returns {boolean}\n */\n isBreakpointUp: function(mode) {\n var width = this.getViewPort().width;\n\t\t\tvar breakpoint = this.getBreakpoint(mode);\n\n\t\t\treturn (width >= breakpoint);\n },\n\n\t\tisBreakpointDown: function(mode) {\n var width = this.getViewPort().width;\n\t\t\tvar breakpoint = this.getBreakpoint(mode);\n\n\t\t\treturn (width < breakpoint);\n },\n\n /**\n * Generates unique ID for give prefix.\n * @param {string} prefix Prefix for generated ID\n * @returns {boolean}\n */\n getUniqueID: function(prefix) {\n return prefix + Math.floor(Math.random() * (new Date()).getTime());\n },\n\n /**\n * Gets window width for give breakpoint mode.\n * @param {string} mode Responsive mode name(e.g: xl, lg, md, sm)\n * @returns {number}\n */\n getBreakpoint: function(mode) {\n return breakpoints[mode];\n },\n\n /**\n * Checks whether object has property matchs given key path.\n * @param {object} obj Object contains values paired with given key path\n * @param {string} keys Keys path seperated with dots\n * @returns {object}\n */\n isset: function(obj, keys) {\n var stone;\n\n keys = keys || '';\n\n if (keys.indexOf('[') !== -1) {\n throw new Error('Unsupported object path notation.');\n }\n\n keys = keys.split('.');\n\n do {\n if (obj === undefined) {\n return false;\n }\n\n stone = keys.shift();\n\n if (!obj.hasOwnProperty(stone)) {\n return false;\n }\n\n obj = obj[stone];\n\n } while (keys.length);\n\n return true;\n },\n\n /**\n * Gets highest z-index of the given element parents\n * @param {object} el jQuery element object\n * @returns {number}\n */\n getHighestZindex: function(el) {\n var position, value;\n\n while (el && el !== document) {\n // Ignore z-index if position is set to a value where z-index is ignored by the browser\n // This makes behavior of this function consistent across browsers\n // WebKit always returns auto if the element is positioned\n position = KTUtil.css(el, 'position');\n\n if (position === \"absolute\" || position === \"relative\" || position === \"fixed\") {\n // IE returns 0 when zIndex is not specified\n // other browsers return a string\n // we ignore the case of nested elements with an explicit value of 0\n //
\n value = parseInt(KTUtil.css(el, 'z-index'));\n\n if (!isNaN(value) && value !== 0) {\n return value;\n }\n }\n\n el = el.parentNode;\n }\n\n return null;\n },\n\n /**\n * Checks whether the element has any parent with fixed positionfreg\n * @param {object} el jQuery element object\n * @returns {boolean}\n */\n hasFixedPositionedParent: function(el) {\n var position;\n\n while (el && el !== document) {\n position = KTUtil.css(el, 'position');\n\n if (position === \"fixed\") {\n return true;\n }\n\n el = el.parentNode;\n }\n\n return false;\n },\n\n /**\n * Simulates delay\n */\n sleep: function(milliseconds) {\n var start = new Date().getTime();\n for (var i = 0; i < 1e7; i++) {\n if ((new Date().getTime() - start) > milliseconds) {\n break;\n }\n }\n },\n\n /**\n * Gets randomly generated integer value within given min and max range\n * @param {number} min Range start value\n * @param {number} max Range end value\n * @returns {number}\n */\n getRandomInt: function(min, max) {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n },\n\n /**\n * Checks whether Angular library is included\n * @returns {boolean}\n */\n isAngularVersion: function() {\n return window.Zone !== undefined ? true : false;\n },\n\n // jQuery Workarounds\n\n // Deep extend: $.extend(true, {}, objA, objB);\n deepExtend: function(out) {\n out = out || {};\n\n for (var i = 1; i < arguments.length; i++) {\n var obj = arguments[i];\n\n if (!obj)\n continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (typeof obj[key] === 'object')\n out[key] = KTUtil.deepExtend(out[key], obj[key]);\n else\n out[key] = obj[key];\n }\n }\n }\n\n return out;\n },\n\n // extend: $.extend({}, objA, objB);\n extend: function(out) {\n out = out || {};\n\n for (var i = 1; i < arguments.length; i++) {\n if (!arguments[i])\n continue;\n\n for (var key in arguments[i]) {\n if (arguments[i].hasOwnProperty(key))\n out[key] = arguments[i][key];\n }\n }\n\n return out;\n },\n\n getById: function(el) {\n if (typeof el === 'string') {\n return document.getElementById(el);\n } else {\n return el;\n }\n },\n\n getByTag: function(query) {\n return document.getElementsByTagName(query);\n },\n\n getByTagName: function(query) {\n return document.getElementsByTagName(query);\n },\n\n getByClass: function(query) {\n return document.getElementsByClassName(query);\n },\n\n getBody: function() {\n return document.getElementsByTagName('body')[0];\n },\n\n /**\n * Checks whether the element has given classes\n * @param {object} el jQuery element object\n * @param {string} Classes string\n * @returns {boolean}\n */\n hasClasses: function(el, classes) {\n if (!el) {\n return;\n }\n\n var classesArr = classes.split(\" \");\n\n for (var i = 0; i < classesArr.length; i++) {\n if (KTUtil.hasClass(el, KTUtil.trim(classesArr[i])) == false) {\n return false;\n }\n }\n\n return true;\n },\n\n hasClass: function(el, className) {\n if (!el) {\n return;\n }\n\n return el.classList ? el.classList.contains(className) : new RegExp('\\\\b' + className + '\\\\b').test(el.className);\n },\n\n addClass: function(el, className) {\n if (!el || typeof className === 'undefined') {\n return;\n }\n\n var classNames = className.split(' ');\n\n if (el.classList) {\n for (var i = 0; i < classNames.length; i++) {\n if (classNames[i] && classNames[i].length > 0) {\n el.classList.add(KTUtil.trim(classNames[i]));\n }\n }\n } else if (!KTUtil.hasClass(el, className)) {\n for (var x = 0; x < classNames.length; x++) {\n el.className += ' ' + KTUtil.trim(classNames[x]);\n }\n }\n },\n\n removeClass: function(el, className) {\n if (!el || typeof className === 'undefined') {\n return;\n }\n\n var classNames = className.split(' ');\n\n if (el.classList) {\n for (var i = 0; i < classNames.length; i++) {\n el.classList.remove(KTUtil.trim(classNames[i]));\n }\n } else if (KTUtil.hasClass(el, className)) {\n for (var x = 0; x < classNames.length; x++) {\n el.className = el.className.replace(new RegExp('\\\\b' + KTUtil.trim(classNames[x]) + '\\\\b', 'g'), '');\n }\n }\n },\n\n triggerCustomEvent: function(el, eventName, data) {\n var event;\n if (window.CustomEvent) {\n event = new CustomEvent(eventName, {\n detail: data\n });\n } else {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(eventName, true, true, data);\n }\n\n el.dispatchEvent(event);\n },\n\n triggerEvent: function(node, eventName) {\n // Make sure we use the ownerDocument from the provided node to avoid cross-window problems\n var doc;\n if (node.ownerDocument) {\n doc = node.ownerDocument;\n } else if (node.nodeType == 9) {\n // the node may be the document itself, nodeType 9 = DOCUMENT_NODE\n doc = node;\n } else {\n throw new Error(\"Invalid node passed to fireEvent: \" + node.id);\n }\n\n if (node.dispatchEvent) {\n // Gecko-style approach (now the standard) takes more work\n var eventClass = \"\";\n\n // Different events have different event classes.\n // If this switch statement can't map an eventName to an eventClass,\n // the event firing is going to fail.\n switch (eventName) {\n case \"click\": // Dispatching of 'click' appears to not work correctly in Safari. Use 'mousedown' or 'mouseup' instead.\n case \"mouseenter\":\n case \"mouseleave\":\n case \"mousedown\":\n case \"mouseup\":\n eventClass = \"MouseEvents\";\n break;\n\n case \"focus\":\n case \"change\":\n case \"blur\":\n case \"select\":\n eventClass = \"HTMLEvents\";\n break;\n\n default:\n throw \"fireEvent: Couldn't find an event class for event '\" + eventName + \"'.\";\n break;\n }\n var event = doc.createEvent(eventClass);\n\n var bubbles = eventName == \"change\" ? false : true;\n event.initEvent(eventName, bubbles, true); // All events created as bubbling and cancelable.\n\n event.synthetic = true; // allow detection of synthetic events\n // The second parameter says go ahead with the default action\n node.dispatchEvent(event, true);\n } else if (node.fireEvent) {\n // IE-old school style\n var event = doc.createEventObject();\n event.synthetic = true; // allow detection of synthetic events\n node.fireEvent(\"on\" + eventName, event);\n }\n },\n\n index: function( el ){\n var c = el.parentNode.children, i = 0;\n for(; i < c.length; i++ )\n if( c[i] == el ) return i;\n },\n\n trim: function(string) {\n return string.trim();\n },\n\n eventTriggered: function(e) {\n if (e.currentTarget.dataset.triggered) {\n return true;\n } else {\n e.currentTarget.dataset.triggered = true;\n\n return false;\n }\n },\n\n remove: function(el) {\n if (el && el.parentNode) {\n el.parentNode.removeChild(el);\n }\n },\n\n find: function(parent, query) {\n parent = KTUtil.getById(parent);\n if (parent) {\n return parent.querySelector(query);\n }\n },\n\n findAll: function(parent, query) {\n parent = KTUtil.getById(parent);\n if (parent) {\n return parent.querySelectorAll(query);\n }\n },\n\n insertAfter: function(el, referenceNode) {\n return referenceNode.parentNode.insertBefore(el, referenceNode.nextSibling);\n },\n\n parents: function(elem, selector) {\n // Element.matches() polyfill\n if (!Element.prototype.matches) {\n Element.prototype.matches =\n Element.prototype.matchesSelector ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.oMatchesSelector ||\n Element.prototype.webkitMatchesSelector ||\n function(s) {\n var matches = (this.document || this.ownerDocument).querySelectorAll(s),\n i = matches.length;\n while (--i >= 0 && matches.item(i) !== this) {}\n return i > -1;\n };\n }\n\n // Set up a parent array\n var parents = [];\n\n // Push each parent element to the array\n for ( ; elem && elem !== document; elem = elem.parentNode ) {\n if (selector) {\n if (elem.matches(selector)) {\n parents.push(elem);\n }\n continue;\n }\n parents.push(elem);\n }\n\n // Return our parent array\n return parents;\n },\n\n children: function(el, selector, log) {\n if (!el || !el.childNodes) {\n return;\n }\n\n var result = [],\n i = 0,\n l = el.childNodes.length;\n\n for (var i; i < l; ++i) {\n if (el.childNodes[i].nodeType == 1 && KTUtil.matches(el.childNodes[i], selector, log)) {\n result.push(el.childNodes[i]);\n }\n }\n\n return result;\n },\n\n child: function(el, selector, log) {\n var children = KTUtil.children(el, selector, log);\n\n return children ? children[0] : null;\n },\n\n matches: function(el, selector, log) {\n var p = Element.prototype;\n var f = p.matches || p.webkitMatchesSelector || p.mozMatchesSelector || p.msMatchesSelector || function(s) {\n return [].indexOf.call(document.querySelectorAll(s), this) !== -1;\n };\n\n if (el && el.tagName) {\n return f.call(el, selector);\n } else {\n return false;\n }\n },\n\n data: function(el) {\n return {\n set: function(name, data) {\n if (!el) {\n return;\n }\n\n if (el.customDataTag === undefined) {\n window.KTUtilElementDataStoreID++;\n el.customDataTag = window.KTUtilElementDataStoreID;\n }\n\n if (window.KTUtilElementDataStore[el.customDataTag] === undefined) {\n window.KTUtilElementDataStore[el.customDataTag] = {};\n }\n\n window.KTUtilElementDataStore[el.customDataTag][name] = data;\n },\n\n get: function(name) {\n if (!el) {\n return;\n }\n\n if (el.customDataTag === undefined) {\n return null;\n }\n\n return this.has(name) ? window.KTUtilElementDataStore[el.customDataTag][name] : null;\n },\n\n has: function(name) {\n if (!el) {\n return false;\n }\n\n if (el.customDataTag === undefined) {\n return false;\n }\n\n return (window.KTUtilElementDataStore[el.customDataTag] && window.KTUtilElementDataStore[el.customDataTag][name]) ? true : false;\n },\n\n remove: function(name) {\n if (el && this.has(name)) {\n delete window.KTUtilElementDataStore[el.customDataTag][name];\n }\n }\n };\n },\n\n outerWidth: function(el, margin) {\n var width;\n\n if (margin === true) {\n width = parseFloat(el.offsetWidth);\n width += parseFloat(KTUtil.css(el, 'margin-left')) + parseFloat(KTUtil.css(el, 'margin-right'));\n\n return parseFloat(width);\n } else {\n width = parseFloat(el.offsetWidth);\n\n return width;\n }\n },\n\n offset: function(el) {\n var rect, win;\n\n if ( !el ) {\n return;\n }\n\n // Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n // Support: IE <=11 only\n // Running getBoundingClientRect on a\n // disconnected node in IE throws an error\n\n if ( !el.getClientRects().length ) {\n return { top: 0, left: 0 };\n }\n\n // Get document-relative position by adding viewport scroll to viewport-relative gBCR\n rect = el.getBoundingClientRect();\n win = el.ownerDocument.defaultView;\n\n return {\n top: rect.top + win.pageYOffset,\n left: rect.left + win.pageXOffset\n };\n },\n\n height: function(el) {\n return KTUtil.css(el, 'height');\n },\n\n outerHeight: function(el, withMargin) {\n var height = el.offsetHeight;\n var style;\n\n if (typeof withMargin !== 'undefined' && withMargin === true) {\n style = getComputedStyle(el);\n height += parseInt(style.marginTop) + parseInt(style.marginBottom);\n\n return height;\n } else {\n return height;\n }\n },\n\n visible: function(el) {\n return !(el.offsetWidth === 0 && el.offsetHeight === 0);\n },\n\n attr: function(el, name, value) {\n if (el == undefined) {\n return;\n }\n\n if (value !== undefined) {\n el.setAttribute(name, value);\n } else {\n return el.getAttribute(name);\n }\n },\n\n hasAttr: function(el, name) {\n if (el == undefined) {\n return;\n }\n\n return el.getAttribute(name) ? true : false;\n },\n\n removeAttr: function(el, name) {\n if (el == undefined) {\n return;\n }\n\n el.removeAttribute(name);\n },\n\n animate: function(from, to, duration, update, easing, done) {\n /**\n * TinyAnimate.easings\n * Adapted from jQuery Easing\n */\n var easings = {};\n var easing;\n\n easings.linear = function(t, b, c, d) {\n return c * t / d + b;\n };\n\n easing = easings.linear;\n\n // Early bail out if called incorrectly\n if (typeof from !== 'number' ||\n typeof to !== 'number' ||\n typeof duration !== 'number' ||\n typeof update !== 'function') {\n return;\n }\n\n // Create mock done() function if necessary\n if (typeof done !== 'function') {\n done = function() {};\n }\n\n // Pick implementation (requestAnimationFrame | setTimeout)\n var rAF = window.requestAnimationFrame || function(callback) {\n window.setTimeout(callback, 1000 / 50);\n };\n\n // Animation loop\n var canceled = false;\n var change = to - from;\n\n function loop(timestamp) {\n var time = (timestamp || +new Date()) - start;\n\n if (time >= 0) {\n update(easing(time, from, change, duration));\n }\n if (time >= 0 && time >= duration) {\n update(to);\n done();\n } else {\n rAF(loop);\n }\n }\n\n update(from);\n\n // Start animation loop\n var start = window.performance && window.performance.now ? window.performance.now() : +new Date();\n\n rAF(loop);\n },\n\n actualCss: function(el, prop, cache) {\n var css = '';\n\n if (el instanceof HTMLElement === false) {\n return;\n }\n\n if (!el.getAttribute('kt-hidden-' + prop) || cache === false) {\n var value;\n\n // the element is hidden so:\n // making the el block so we can meassure its height but still be hidden\n css = el.style.cssText;\n el.style.cssText = 'position: absolute; visibility: hidden; display: block;';\n\n if (prop == 'width') {\n value = el.offsetWidth;\n } else if (prop == 'height') {\n value = el.offsetHeight;\n }\n\n el.style.cssText = css;\n\n // store it in cache\n el.setAttribute('kt-hidden-' + prop, value);\n\n return parseFloat(value);\n } else {\n // store it in cache\n return parseFloat(el.getAttribute('kt-hidden-' + prop));\n }\n },\n\n actualHeight: function(el, cache) {\n return KTUtil.actualCss(el, 'height', cache);\n },\n\n actualWidth: function(el, cache) {\n return KTUtil.actualCss(el, 'width', cache);\n },\n\n getScroll: function(element, method) {\n // The passed in `method` value should be 'Top' or 'Left'\n method = 'scroll' + method;\n return (element == window || element == document) ? (\n self[(method == 'scrollTop') ? 'pageYOffset' : 'pageXOffset'] ||\n (browserSupportsBoxModel && document.documentElement[method]) ||\n document.body[method]\n ) : element[method];\n },\n\n css: function(el, styleProp, value) {\n if (!el) {\n return;\n }\n\n if (value !== undefined) {\n el.style[styleProp] = value;\n } else {\n var defaultView = (el.ownerDocument || document).defaultView;\n // W3C standard way:\n if (defaultView && defaultView.getComputedStyle) {\n // sanitize property name to css notation\n // (hyphen separated words eg. font-Size)\n styleProp = styleProp.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);\n } else if (el.currentStyle) { // IE\n // sanitize property name to camelCase\n styleProp = styleProp.replace(/\\-(\\w)/g, function(str, letter) {\n return letter.toUpperCase();\n });\n value = el.currentStyle[styleProp];\n // convert other units to pixels on IE\n if (/^\\d+(em|pt|%|ex)?$/i.test(value)) {\n return (function(value) {\n var oldLeft = el.style.left,\n oldRsLeft = el.runtimeStyle.left;\n el.runtimeStyle.left = el.currentStyle.left;\n el.style.left = value || 0;\n value = el.style.pixelLeft + \"px\";\n el.style.left = oldLeft;\n el.runtimeStyle.left = oldRsLeft;\n return value;\n })(value);\n }\n return value;\n }\n }\n },\n\n slide: function(el, dir, speed, callback, recalcMaxHeight) {\n if (!el || (dir == 'up' && KTUtil.visible(el) === false) || (dir == 'down' && KTUtil.visible(el) === true)) {\n return;\n }\n\n speed = (speed ? speed : 600);\n var calcHeight = KTUtil.actualHeight(el);\n var calcPaddingTop = false;\n var calcPaddingBottom = false;\n\n if (KTUtil.css(el, 'padding-top') && KTUtil.data(el).has('slide-padding-top') !== true) {\n KTUtil.data(el).set('slide-padding-top', KTUtil.css(el, 'padding-top'));\n }\n\n if (KTUtil.css(el, 'padding-bottom') && KTUtil.data(el).has('slide-padding-bottom') !== true) {\n KTUtil.data(el).set('slide-padding-bottom', KTUtil.css(el, 'padding-bottom'));\n }\n\n if (KTUtil.data(el).has('slide-padding-top')) {\n calcPaddingTop = parseInt(KTUtil.data(el).get('slide-padding-top'));\n }\n\n if (KTUtil.data(el).has('slide-padding-bottom')) {\n calcPaddingBottom = parseInt(KTUtil.data(el).get('slide-padding-bottom'));\n }\n\n if (dir == 'up') { // up\n el.style.cssText = 'display: block; overflow: hidden;';\n\n if (calcPaddingTop) {\n KTUtil.animate(0, calcPaddingTop, speed, function(value) {\n el.style.paddingTop = (calcPaddingTop - value) + 'px';\n }, 'linear');\n }\n\n if (calcPaddingBottom) {\n KTUtil.animate(0, calcPaddingBottom, speed, function(value) {\n el.style.paddingBottom = (calcPaddingBottom - value) + 'px';\n }, 'linear');\n }\n\n KTUtil.animate(0, calcHeight, speed, function(value) {\n el.style.height = (calcHeight - value) + 'px';\n }, 'linear', function() {\n el.style.height = '';\n el.style.display = 'none';\n\n if (typeof callback === 'function') {\n callback();\n }\n });\n\n\n } else if (dir == 'down') { // down\n el.style.cssText = 'display: block; overflow: hidden;';\n\n if (calcPaddingTop) {\n KTUtil.animate(0, calcPaddingTop, speed, function(value) {//\n el.style.paddingTop = value + 'px';\n }, 'linear', function() {\n el.style.paddingTop = '';\n });\n }\n\n if (calcPaddingBottom) {\n KTUtil.animate(0, calcPaddingBottom, speed, function(value) {\n el.style.paddingBottom = value + 'px';\n }, 'linear', function() {\n el.style.paddingBottom = '';\n });\n }\n\n KTUtil.animate(0, calcHeight, speed, function(value) {\n el.style.height = value + 'px';\n }, 'linear', function() {\n el.style.height = '';\n el.style.display = '';\n el.style.overflow = '';\n\n if (typeof callback === 'function') {\n callback();\n }\n });\n }\n },\n\n slideUp: function(el, speed, callback) {\n KTUtil.slide(el, 'up', speed, callback);\n },\n\n slideDown: function(el, speed, callback) {\n KTUtil.slide(el, 'down', speed, callback);\n },\n\n show: function(el, display) {\n if (typeof el !== 'undefined') {\n el.style.display = (display ? display : 'block');\n }\n },\n\n hide: function(el) {\n if (typeof el !== 'undefined') {\n el.style.display = 'none';\n }\n },\n\n addEvent: function(el, type, handler, one) {\n if (typeof el !== 'undefined' && el !== null) {\n el.addEventListener(type, handler);\n }\n },\n\n removeEvent: function(el, type, handler) {\n if (el !== null) {\n el.removeEventListener(type, handler);\n }\n },\n\n on: function(element, selector, event, handler) {\n if (!selector) {\n return;\n }\n\n var eventId = KTUtil.getUniqueID('event');\n\n window.KTUtilDelegatedEventHandlers[eventId] = function(e) {\n var targets = element.querySelectorAll(selector);\n var target = e.target;\n\n while (target && target !== element) {\n for (var i = 0, j = targets.length; i < j; i++) {\n if (target === targets[i]) {\n handler.call(target, e);\n }\n }\n\n target = target.parentNode;\n }\n }\n\n KTUtil.addEvent(element, event, window.KTUtilDelegatedEventHandlers[eventId]);\n\n return eventId;\n },\n\n off: function(element, event, eventId) {\n if (!element || !window.KTUtilDelegatedEventHandlers[eventId]) {\n return;\n }\n\n KTUtil.removeEvent(element, event, window.KTUtilDelegatedEventHandlers[eventId]);\n\n delete window.KTUtilDelegatedEventHandlers[eventId];\n },\n\n one: function onetime(el, type, callback) {\n el.addEventListener(type, function callee(e) {\n // remove event\n if (e.target && e.target.removeEventListener) {\n e.target.removeEventListener(e.type, callee);\n }\n\n // need to verify from https://themeforest.net/author_dashboard#comment_23615588\n if (el && el.removeEventListener) {\n\t\t\t\t e.currentTarget.removeEventListener(e.type, callee);\n\t\t\t }\n\n // call handler\n return callback(e);\n });\n },\n\n hash: function(str) {\n var hash = 0,\n i, chr;\n\n if (str.length === 0) return hash;\n for (i = 0; i < str.length; i++) {\n chr = str.charCodeAt(i);\n hash = ((hash << 5) - hash) + chr;\n hash |= 0; // Convert to 32bit integer\n }\n\n return hash;\n },\n\n animateClass: function(el, animationName, callback) {\n var animation;\n var animations = {\n animation: 'animationend',\n OAnimation: 'oAnimationEnd',\n MozAnimation: 'mozAnimationEnd',\n WebkitAnimation: 'webkitAnimationEnd',\n msAnimation: 'msAnimationEnd',\n };\n\n for (var t in animations) {\n if (el.style[t] !== undefined) {\n animation = animations[t];\n }\n }\n\n KTUtil.addClass(el, 'animated ' + animationName);\n\n KTUtil.one(el, animation, function() {\n KTUtil.removeClass(el, 'animated ' + animationName);\n });\n\n if (callback) {\n KTUtil.one(el, animation, callback);\n }\n },\n\n transitionEnd: function(el, callback) {\n var transition;\n var transitions = {\n transition: 'transitionend',\n OTransition: 'oTransitionEnd',\n MozTransition: 'mozTransitionEnd',\n WebkitTransition: 'webkitTransitionEnd',\n msTransition: 'msTransitionEnd'\n };\n\n for (var t in transitions) {\n if (el.style[t] !== undefined) {\n transition = transitions[t];\n }\n }\n\n KTUtil.one(el, transition, callback);\n },\n\n animationEnd: function(el, callback) {\n var animation;\n var animations = {\n animation: 'animationend',\n OAnimation: 'oAnimationEnd',\n MozAnimation: 'mozAnimationEnd',\n WebkitAnimation: 'webkitAnimationEnd',\n msAnimation: 'msAnimationEnd'\n };\n\n for (var t in animations) {\n if (el.style[t] !== undefined) {\n animation = animations[t];\n }\n }\n\n KTUtil.one(el, animation, callback);\n },\n\n animateDelay: function(el, value) {\n var vendors = ['webkit-', 'moz-', 'ms-', 'o-', ''];\n for (var i = 0; i < vendors.length; i++) {\n KTUtil.css(el, vendors[i] + 'animation-delay', value);\n }\n },\n\n animateDuration: function(el, value) {\n var vendors = ['webkit-', 'moz-', 'ms-', 'o-', ''];\n for (var i = 0; i < vendors.length; i++) {\n KTUtil.css(el, vendors[i] + 'animation-duration', value);\n }\n },\n\n scrollTo: function(target, offset, duration) {\n var duration = duration ? duration : 500;\n var targetPos = target ? KTUtil.offset(target).top : 0;\n var scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n var from, to;\n\n if (offset) {\n scrollPos += offset;\n }\n\n from = scrollPos;\n to = targetPos;\n\n KTUtil.animate(from, to, duration, function(value) {\n document.documentElement.scrollTop = value;\n document.body.parentNode.scrollTop = value;\n document.body.scrollTop = value;\n }); //, easing, done\n },\n\n scrollTop: function(offset, duration) {\n KTUtil.scrollTo(null, offset, duration);\n },\n\n isArray: function(obj) {\n return obj && Array.isArray(obj);\n },\n\n ready: function(callback) {\n if (document.attachEvent ? document.readyState === \"complete\" : document.readyState !== \"loading\") {\n callback();\n } else {\n document.addEventListener('DOMContentLoaded', callback);\n }\n },\n\n isEmpty: function(obj) {\n for (var prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n return false;\n }\n }\n\n return true;\n },\n\n numberString: function(nStr) {\n nStr += '';\n var x = nStr.split('.');\n var x1 = x[0];\n var x2 = x.length > 1 ? '.' + x[1] : '';\n var rgx = /(\\d+)(\\d{3})/;\n while (rgx.test(x1)) {\n x1 = x1.replace(rgx, '$1' + ',' + '$2');\n }\n return x1 + x2;\n },\n\n detectIE: function() {\n var ua = window.navigator.userAgent;\n\n // Test values; Uncomment to check result …\n\n // IE 10\n // ua = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)';\n\n // IE 11\n // ua = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko';\n\n // Edge 12 (Spartan)\n // ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0';\n\n // Edge 13\n // ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586';\n\n var msie = ua.indexOf('MSIE ');\n if (msie > 0) {\n // IE 10 or older => return version number\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n }\n\n var trident = ua.indexOf('Trident/');\n if (trident > 0) {\n // IE 11 => return version number\n var rv = ua.indexOf('rv:');\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n }\n\n var edge = ua.indexOf('Edge/');\n if (edge > 0) {\n // Edge (IE 12+) => return version number\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n }\n\n // other browser\n return false;\n },\n\n isRTL: function() {\n var html = KTUtil.getByTagName('html')[0];\n\n if (html) {\n return (KTUtil.attr(html, 'direction') == 'rtl');\n }\n },\n\n // Scroller\n scrollInit: function(element, options) {\n if (!element) {\n return;\n }\n\n // Learn more: https://github.com/mdbootstrap/perfect-scrollbar#options\n var pluginDefOptions = {\n wheelSpeed: 0.5,\n swipeEasing: true,\n wheelPropagation: false,\n minScrollbarLength: 40,\n maxScrollbarLength: 300,\n suppressScrollX: true\n };\n\n options = KTUtil.deepExtend({}, pluginDefOptions, options);\n\n // Define init function\n function init() {\n var ps;\n var height;\n\n // Get extra options via data attributes\n var attrs = element.getAttributeNames();\n if (attrs.length > 0) {\n attrs.forEach(function(attrName) {\n \t\t\t// more options; https://github.com/ganlanyuan/tiny-slider#options\n \t\t\tif ((/^data-.*/g).test(attrName)) {\n if (['scroll', 'height', 'mobile-height'].includes(optionName) == false) {\n var optionName = attrName.replace('data-', '').toLowerCase().replace(/(?:[\\s-])\\w/g, function(match) {\n \t\t\t\t\treturn match.replace('-', '').toUpperCase();\n \t\t\t\t});\n\n options[optionName] = KTUtil.filterBoolean(element.getAttribute(attrName));\n }\n \t\t\t}\n \t\t});\n }\n\n if (options.height instanceof Function) {\n height = options.height.call();\n } else {\n if (KTUtil.isMobileDevice() === true && options.mobileHeight) {\n height = parseInt(options.mobileHeight);\n } else if (options.height) {\n height = parseInt(options.height);\n } else {\n height = parseInt(KTUtil.css(element, 'height'));\n }\n }\n\n if (height === false) {\n KTUtil.scrollDestroy(element, true);\n\n return;\n }\n\n height = parseInt(height);\n\n // Destroy scroll on table and mobile modes\n if ((options.mobileNativeScroll || options.disableForMobile) && KTUtil.isMobileDevice() === true) {\n ps = KTUtil.data(element).get('ps');\n if (ps) {\n if (options.resetHeightOnDestroy) {\n KTUtil.css(element, 'height', 'auto');\n } else {\n KTUtil.css(element, 'overflow', 'auto');\n if (height > 0) {\n KTUtil.css(element, 'height', height + 'px');\n }\n }\n\n ps.destroy();\n ps = KTUtil.data(element).remove('ps');\n } else if (height > 0){\n KTUtil.css(element, 'overflow', 'auto');\n KTUtil.css(element, 'height', height + 'px');\n }\n\n return;\n }\n\n if (height > 0) {\n KTUtil.css(element, 'height', height + 'px');\n }\n\n if (options.desktopNativeScroll) {\n KTUtil.css(element, 'overflow', 'auto');\n return;\n }\n\n // Pass options via HTML Attributes\n if (KTUtil.attr(element, 'data-window-scroll') == 'true') {\n options.windowScroll = true;\n }\n\n // Init scroll\n ps = KTUtil.data(element).get('ps');\n\n if (ps) {\n ps.update();\n } else {\n KTUtil.css(element, 'overflow', 'hidden');\n KTUtil.addClass(element, 'scroll');\n\n ps = new PerfectScrollbar(element, options);\n\n KTUtil.data(element).set('ps', ps);\n }\n\n // Remember scroll position in cookie\n var uid = KTUtil.attr(element, 'id');\n\n // Todo:Consider using Localstorage\n if (options.rememberPosition === true && KTCookie && uid) {\n if (KTCookie.getCookie(uid)) {\n var pos = parseInt(KTCookie.getCookie(uid));\n\n if (pos > 0) {\n element.scrollTop = pos;\n }\n }\n\n element.addEventListener('ps-scroll-y', function() {\n KTCookie.setCookie(uid, element.scrollTop);\n });\n }\n }\n\n // Init\n init();\n\n // Handle window resize\n if (options.handleWindowResize) {\n KTUtil.addResizeHandler(function() {\n init();\n });\n }\n },\n\n scrollUpdate: function(element) {\n var ps = KTUtil.data(element).get('ps');\n if (ps) {\n ps.update();\n }\n },\n\n scrollUpdateAll: function(parent) {\n var scrollers = KTUtil.findAll(parent, '.ps');\n for (var i = 0, len = scrollers.length; i < len; i++) {\n KTUtil.scrollUpdate(scrollers[i]);\n }\n },\n\n scrollDestroy: function(element, resetAll) {\n var ps = KTUtil.data(element).get('ps');\n\n if (ps) {\n ps.destroy();\n ps = KTUtil.data(element).remove('ps');\n }\n\n if (element && resetAll) {\n element.style.setProperty('overflow', '');\n element.style.setProperty('height', '');\n }\n },\n\n filterBoolean: function(val) {\n // Convert string boolean\n\t\t\tif (val === true || val === 'true') {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (val === false || val === 'false') {\n\t\t\t\treturn false;\n\t\t\t}\n\n return val;\n },\n\n setHTML: function(el, html) {\n el.innerHTML = html;\n },\n\n getHTML: function(el) {\n if (el) {\n return el.innerHTML;\n }\n },\n\n getDocumentHeight: function() {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight );\n },\n\n getScrollTop: function() {\n return (document.scrollingElement || document.documentElement).scrollTop;\n },\n\n changeColor: function(col, amt) {\n\n var usePound = false;\n\n if (col[0] == \"#\") {\n col = col.slice(1);\n usePound = true;\n }\n\n var num = parseInt(col,16);\n\n var r = (num >> 16) + amt;\n\n if (r > 255) r = 255;\n else if (r < 0) r = 0;\n\n var b = ((num >> 8) & 0x00FF) + amt;\n\n if (b > 255) b = 255;\n else if (b < 0) b = 0;\n\n var g = (num & 0x0000FF) + amt;\n\n if (g > 255) g = 255;\n else if (g < 0) g = 0;\n\n return (usePound?\"#\":\"\") + (g | (b << 8) | (r << 16)).toString(16);\n\n },\n\n // Throttle function: Input as function which needs to be throttled and delay is the time interval in milliseconds\n throttle: function (timer, func, delay) {\n \t// If setTimeout is already scheduled, no need to do anything\n \tif (timer) {\n \t\treturn;\n \t}\n\n \t// Schedule a setTimeout after delay seconds\n \ttimer = setTimeout(function () {\n \t\tfunc();\n\n \t\t// Once setTimeout function execution is finished, timerId = undefined so that in
\n \t\t// the next scroll event function execution can be scheduled by the setTimeout\n \t\ttimer = undefined;\n \t}, delay);\n },\n\n // Debounce function: Input as function which needs to be debounced and delay is the debounced time in milliseconds\n debounce: function (timer, func, delay) {\n \t// Cancels the setTimeout method execution\n \tclearTimeout(timer)\n\n \t// Executes the func after delay time.\n \ttimer = setTimeout(func, delay);\n },\n\n btnWait: function(el, cls, message, disable) {\n if (!el) {\n return;\n }\n\n if (typeof disable !== 'undefined' && disable === true) {\n KTUtil.attr(el, \"disabled\", true);\n }\n\n if (cls) {\n KTUtil.addClass(el, cls);\n KTUtil.attr(el, \"wait-class\", cls);\n }\n\n if (message) {\n var caption = KTUtil.find(el, '.btn-caption');\n\n if (caption) {\n KTUtil.data(caption).set('caption', KTUtil.getHTML(caption));\n KTUtil.setHTML(caption, message);\n } else {\n KTUtil.data(el).set('caption', KTUtil.getHTML(el));\n KTUtil.setHTML(el, message);\n }\n }\n },\n\n btnRelease: function(el) {\n if (!el) {\n return;\n }\n\n /// Show loading state on button\n KTUtil.removeAttr(el, \"disabled\");\n\n if (KTUtil.hasAttr(el, \"wait-class\")) {\n KTUtil.removeClass(el, KTUtil.attr(el, \"wait-class\"));\n }\n\n var caption = KTUtil.find(el, '.btn-caption');\n\n if (caption && KTUtil.data(caption).has('caption')) {\n KTUtil.setHTML(caption, KTUtil.data(caption).get('caption'));\n } else if (KTUtil.data(el).has('caption')) {\n KTUtil.setHTML(el, KTUtil.data(el).get('caption'));\n }\n },\n\n isOffscreen: function(el, direction, offset) {\n offset = offset || 0;\n\n var windowWidth = KTUtil.getViewPort().width;\n var windowHeight = KTUtil.getViewPort().height;\n\n var top = KTUtil.offset(el).top;\n var height = KTUtil.outerHeight(el) + offset;\n var left = KTUtil.offset(el).left;\n var width = KTUtil.outerWidth(el) + offset;\n\n if (direction == 'bottom') {\n if (windowHeight < top + height) {\n return true;\n } else if (windowHeight > top + height * 1.5) {\n return true;\n }\n }\n\n if (direction == 'top') {\n if (top < 0) {\n return true;\n } else if (top > height) {\n return true;\n }\n }\n\n if (direction == 'left') {\n if (left < 0) {\n return true;\n } else if (left * 2 > width) {\n //console.log('left 2');\n //return true;\n }\n }\n\n if (direction == 'right') {\n if (windowWidth < left + width) {\n return true;\n } else {\n //console.log('right 2');\n //return true;\n }\n }\n\n return false;\n }\n }\n}();\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = KTUtil;\n}\n\n// Initialize KTUtil class on document ready\nKTUtil.ready(function() {\n\tif (typeof KTAppSettings !== 'undefined') {\n\t\tKTUtil.init(KTAppSettings);\n\t} else {\n\t\tKTUtil.init();\n\t}\n});\n\n// CSS3 Transitions only after page load(.page-loading class added to body tag and remove with JS on page load)\nwindow.onload = function() {\n var result = KTUtil.getByTagName('body');\n if (result && result[0]) {\n KTUtil.removeClass(result[0], 'page-loading');\n }\n}\n\nexport default KTUtil;","\"use strict\";\n\nvar KTLayoutExamples = function() {\n\n var initDefaultMode = function(element) {\n var elements = element;\n if (typeof elements === 'undefined') {\n elements = document.querySelectorAll('.example:not(.example-compact):not(.example-hover):not(.example-basic)');\n }\n\n for (var i = 0; i < elements.length; ++i) {\n var example = elements[i];\n var copy = KTUtil.find(example, '.example-copy');\n\n var clipboard = new ClipboardJS(copy, {\n target: function(trigger) {\n var example = trigger.closest('.example');\n var el = KTUtil.find(example, '.example-code .tab-pane.active');\n\n if (!el) {\n el = KTUtil.find(example, '.example-code');\n }\n\n return el;\n }\n });\n\n clipboard.on('success', function(e) {\n KTUtil.addClass(e.trigger, 'example-copied');\n e.clearSelection();\n\n setTimeout(function() {\n KTUtil.removeClass(e.trigger, 'example-copied');\n }, 2000);\n });\n }\n }\n\n var initCompactMode = function(element) {\n var example,code,toggle,copy, clipboard;\n var elements = element;\n if (typeof elements === 'undefined') {\n var elements = document.querySelectorAll('.example.example-compact');\n }\n\n for (var i = 0; i < elements.length; ++i) {\n var example = elements[i];\n var toggle = KTUtil.find(example, '.example-toggle');\n var copy = KTUtil.find(example, '.example-copy');\n\n // Handle toggle\n KTUtil.addEvent(toggle, 'click', function() {\n var example = this.closest('.example');\n var code = KTUtil.find(example, '.example-code');\n var the = this;\n\n if (KTUtil.hasClass(this, 'example-toggled')) {\n KTUtil.slideUp(code, 300, function() {\n KTUtil.removeClass(the, 'example-toggled');\n KTUtil.removeClass(code, 'example-code-on');\n KTUtil.hide(code);\n });\n } else {\n KTUtil.addClass(code, 'example-code-on');\n KTUtil.addClass(this, 'example-toggled');\n KTUtil.slideDown(code, 300, function() {\n KTUtil.show(code);\n });\n }\n });\n\n // Handle copy\n var clipboard = new ClipboardJS(copy, {\n target: function(trigger) {\n var example = trigger.closest('.example');\n var el = KTUtil.find(example, '.example-code .tab-pane.active');\n\n if (!el) {\n el = KTUtil.find(example, '.example-code');\n }\n\n return el;\n }\n });\n\n clipboard.on('success', function(e) {\n KTUtil.addClass(e.trigger, 'example-copied');\n e.clearSelection();\n\n setTimeout(function() {\n KTUtil.removeClass(e.trigger, 'example-copied');\n }, 2000);\n });\n }\n }\n\n return {\n init: function(element, options) {\n initDefaultMode(element);\n initCompactMode(element);\n }\n };\n}();\n\n\n\nexport default KTLayoutExamples;","\"use strict\";\n\nimport KTUtil from \"./util\";\n\n// Component Definition\nvar KTOffcanvas = function(elementId, options) {\n // Main object\n var the = this;\n var init = false;\n\n // Get element object\n var element = KTUtil.getById(elementId);\n var body = KTUtil.getBody();\n\n if (!element) {\n return;\n }\n\n // Default options\n var defaultOptions = {\n attrCustom: ''\n };\n\n ////////////////////////////\n // ** Private Methods ** //\n ////////////////////////////\n\n var Plugin = {\n construct: function(options) {\n if (KTUtil.data(element).has('offcanvas')) {\n the = KTUtil.data(element).get('offcanvas');\n } else {\n // Reset offcanvas\n Plugin.init(options);\n\n // Build offcanvas\n Plugin.build();\n\n KTUtil.data(element).set('offcanvas', the);\n }\n\n return the;\n },\n\n init: function(options) {\n the.events = [];\n\n // merge default and user defined options\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\n\n the.classBase = the.options.baseClass;\n the.attrCustom = the.options.attrCustom;\n the.classShown = the.classBase + '-on';\n the.classOverlay = the.classBase + '-overlay';\n the.target;\n\n the.state = KTUtil.hasClass(element, the.classShown) ? 'shown' : 'hidden';\n },\n\n build: function() {\n // offcanvas toggle\n if (the.options.toggleBy) {\n if (typeof the.options.toggleBy === 'string') {\n KTUtil.addEvent(KTUtil.getById(the.options.toggleBy), 'click', function(e) {\n e.preventDefault();\n the.target = this;\n Plugin.toggle();\n });\n } else if (the.options.toggleBy && the.options.toggleBy[0]) {\n if (the.options.toggleBy[0].target) {\n for (var i in the.options.toggleBy) {\n KTUtil.addEvent(KTUtil.getById(the.options.toggleBy[i].target), 'click', function(e) {\n e.preventDefault();\n the.target = this;\n Plugin.toggle();\n });\n }\n } else {\n for (var i in the.options.toggleBy) {\n KTUtil.addEvent(KTUtil.getById(the.options.toggleBy[i]), 'click', function(e) {\n e.preventDefault();\n the.target = this;\n Plugin.toggle();\n });\n }\n }\n\n } else if (the.options.toggleBy && the.options.toggleBy.target) {\n KTUtil.addEvent( KTUtil.getById(the.options.toggleBy.target), 'click', function(e) {\n e.preventDefault();\n the.target = this;\n Plugin.toggle();\n });\n }\n }\n\n // offcanvas close\n var closeBy = KTUtil.getById(the.options.closeBy);\n if (closeBy) {\n KTUtil.addEvent(closeBy, 'click', function(e) {\n e.preventDefault();\n the.target = this;\n Plugin.hide();\n });\n }\n },\n\n isShown: function() {\n return (the.state == 'shown' ? true : false);\n },\n\n toggle: function() {;\n Plugin.eventTrigger('toggle');\n\n if (the.state == 'shown') {\n Plugin.hide();\n } else {\n Plugin.show();\n }\n },\n\n show: function() {\n if (the.state == 'shown') {\n return;\n }\n\n Plugin.eventTrigger('beforeShow');\n\n Plugin.toggleClass('show');\n\n // Offcanvas panel\n KTUtil.attr(body, 'data-offcanvas-' + the.classBase, 'on');\n KTUtil.addClass(element, the.classShown);\n\n if (the.attrCustom.length > 0) {\n KTUtil.attr(body, 'data-offcanvas-' + the.classCustom, 'on');\n //KTUtil.addClass(body, the.classCustom);\n }\n\n the.state = 'shown';\n\n if (the.options.overlay) {\n the.overlay = KTUtil.insertAfter(document.createElement('DIV') , element );\n KTUtil.addClass(the.overlay, the.classOverlay);\n\n KTUtil.addEvent(the.overlay, 'click', function(e) {\n //e.stopPropagation();\n e.preventDefault();\n Plugin.hide(the.target);\n });\n }\n\n Plugin.eventTrigger('afterShow');\n },\n\n hide: function() {\n if (the.state == 'hidden') {\n return;\n }\n\n Plugin.eventTrigger('beforeHide');\n\n Plugin.toggleClass('hide');\n\n KTUtil.removeAttr(body, 'data-offcanvas-' + the.classBase);\n KTUtil.removeClass(element, the.classShown);\n\n if (the.attrCustom.length > 0) {\n KTUtil.removeAttr(body, 'data-offcanvas-' + the.attrCustom);\n }\n\n the.state = 'hidden';\n\n if (the.options.overlay && the.overlay) {\n KTUtil.remove(the.overlay);\n }\n\n Plugin.eventTrigger('afterHide');\n },\n\n toggleClass: function(mode) {\n var id = KTUtil.attr(the.target, 'id');\n var toggleBy;\n\n if (the.options.toggleBy && the.options.toggleBy[0] && the.options.toggleBy[0].target) {\n for (var i in the.options.toggleBy) {\n if (the.options.toggleBy[i].target === id) {\n toggleBy = the.options.toggleBy[i];\n }\n }\n } else if (the.options.toggleBy && the.options.toggleBy.target) {\n toggleBy = the.options.toggleBy;\n }\n\n if (toggleBy) {\n var el = KTUtil.getById(toggleBy.target);\n\n if (mode === 'show') {\n KTUtil.addClass(el, toggleBy.state);\n }\n\n if (mode === 'hide') {\n KTUtil.removeClass(el, toggleBy.state);\n }\n }\n },\n\n eventTrigger: function(name, args) {\n for (var i = 0; i < the.events.length; i++) {\n var event = the.events[i];\n if (event.name == name) {\n if (event.one == true) {\n if (event.fired == false) {\n the.events[i].fired = true;\n return event.handler.call(this, the, args);\n }\n } else {\n return event.handler.call(this, the, args);\n }\n }\n }\n },\n\n addEvent: function(name, handler, one) {\n the.events.push({\n name: name,\n handler: handler,\n one: one,\n fired: false\n });\n }\n };\n\n //////////////////////////\n // ** Public Methods ** //\n //////////////////////////\n\n /**\n * Set default options\n * @param options\n */\n the.setDefaults = function(options) {\n defaultOptions = options;\n };\n\n /**\n * Check if canvas is shown\n * @returns {boolean}\n */\n the.isShown = function() {\n return Plugin.isShown();\n };\n\n /**\n * Set to hide the canvas\n */\n the.hide = function() {\n return Plugin.hide();\n };\n\n /**\n * Set to show the canvas\n */\n the.show = function() {\n return Plugin.show();\n };\n\n /**\n * Attach event\n * @param name\n * @param handler\n */\n the.on = function(name, handler) {\n return Plugin.addEvent(name, handler);\n };\n\n /**\n * Attach event that will be fired once\n * @param name\n * @param handler\n */\n the.one = function(name, handler) {\n return Plugin.addEvent(name, handler, true);\n };\n\n ///////////////////////////////\n // ** Plugin Construction ** //\n ///////////////////////////////\n\n // Run plugin\n Plugin.construct.apply(the, [options]);\n\n // Init done\n init = true;\n\n // Return plugin instance\n return the;\n};\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = KTOffcanvas;\n}\n\nexport default KTOffcanvas;","\"use strict\";\n\nimport KTUtil from \"./util\";\n\n// Component Definition\nvar KTScrolltop = function(elementId, options) {\n // Main object\n var the = this;\n var init = false;\n\n // Get element object\n var element = KTUtil.getById(elementId);\n var body = KTUtil.getBody();\n\n if (!element) {\n return;\n }\n\n // Default options\n var defaultOptions = {\n offset: 300,\n speed: 6000\n };\n\n ////////////////////////////\n // ** Private Methods ** //\n ////////////////////////////\n\n var Plugin = {\n /**\n * Run plugin\n * @returns {mscrolltop}\n */\n construct: function(options) {\n if (KTUtil.data(element).has('scrolltop')) {\n the = KTUtil.data(element).get('scrolltop');\n } else {\n // reset scrolltop\n Plugin.init(options);\n\n // build scrolltop\n Plugin.build();\n\n KTUtil.data(element).set('scrolltop', the);\n }\n\n return the;\n },\n\n /**\n * Handles subscrolltop click toggle\n * @returns {mscrolltop}\n */\n init: function(options) {\n the.events = [];\n\n // merge default and user defined options\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\n },\n\n build: function() {\n var timer;\n\n window.addEventListener('scroll', function() {\n KTUtil.throttle(timer, function() {\n Plugin.handle();\n }, 200);\n });\n\n // handle button click\n KTUtil.addEvent(element, 'click', Plugin.scroll);\n },\n\n /**\n * Handles scrolltop click scrollTop\n */\n handle: function() {\n var pos = KTUtil.getScrollTop(); // current vertical position\n\n if (pos > the.options.offset) {\n if (body.hasAttribute('data-scrolltop') === false) {\n body.setAttribute('data-scrolltop', 'on');\n }\n } else {\n if (body.hasAttribute('data-scrolltop') === true) {\n body.removeAttribute('data-scrolltop');\n }\n }\n },\n\n /**\n * Handles scrolltop click scrollTop\n */\n scroll: function(e) {\n e.preventDefault();\n\n KTUtil.scrollTop(0, the.options.speed);\n },\n\n\n /**\n * Trigger events\n */\n eventTrigger: function(name, args) {\n for (var i = 0; i < the.events.length; i++) {\n var event = the.events[i];\n if (event.name == name) {\n if (event.one == true) {\n if (event.fired == false) {\n the.events[i].fired = true;\n return event.handler.call(this, the, args);\n }\n } else {\n return event.handler.call(this, the, args);\n }\n }\n }\n },\n\n addEvent: function(name, handler, one) {\n the.events.push({\n name: name,\n handler: handler,\n one: one,\n fired: false\n });\n }\n };\n\n //////////////////////////\n // ** Public Methods ** //\n //////////////////////////\n\n /**\n * Set default options\n */\n\n the.setDefaults = function(options) {\n defaultOptions = options;\n };\n\n /**\n * Get subscrolltop mode\n */\n the.on = function(name, handler) {\n return Plugin.addEvent(name, handler);\n };\n\n /**\n * Set scrolltop content\n * @returns {mscrolltop}\n */\n the.one = function(name, handler) {\n return Plugin.addEvent(name, handler, true);\n };\n\n ///////////////////////////////\n // ** Plugin Construction ** //\n ///////////////////////////////\n\n // Run plugin\n Plugin.construct.apply(the, [options]);\n\n // Init done\n init = true;\n\n // Return plugin instance\n return the;\n};\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = KTScrolltop;\n}\n\nexport default KTScrolltop;","\"use strict\";\n\nimport KTUtil from \"./util\";\n\n// Component Definition\nvar KTToggle = function(toggleElement, targetElement, options) {\n // Main object\n var the = this;\n var init = false;\n\n // Get element object\n var element = toggleElement;\n var target = targetElement;\n\n if (!element) {\n return;\n }\n\n // Default options\n var defaultOptions = {\n targetToggleMode: 'class' // class|attribute\n };\n\n ////////////////////////////\n // ** Private Methods ** //\n ////////////////////////////\n\n var Plugin = {\n /**\n * Construct\n */\n\n construct: function(options) {\n if (KTUtil.data(element).has('toggle')) {\n the = KTUtil.data(element).get('toggle');\n } else {\n // reset menu\n Plugin.init(options);\n\n // build menu\n Plugin.build();\n\n KTUtil.data(element).set('toggle', the);\n }\n\n return the;\n },\n\n /**\n * Handles subtoggle click toggle\n */\n init: function(options) {\n the.element = element;\n the.events = [];\n\n // Merge default and user defined options\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\n\n //alert(the.options.target.tagName);\n the.target = target;\n\n the.targetState = the.options.targetState;\n the.toggleState = the.options.toggleState;\n\n if (the.options.targetToggleMode == 'class') {\n the.state = KTUtil.hasClasses(the.target, the.targetState) ? 'on' : 'off';\n } else {\n the.state = KTUtil.hasAttr(the.target, 'data-' + the.targetState) ? KTUtil.attr(the.target, 'data-' + the.targetState) : 'off';\n }\n },\n\n /**\n * Setup toggle\n */\n build: function() {\n KTUtil.addEvent(element, 'mouseup', Plugin.toggle);\n },\n\n /**\n * Handles offcanvas click toggle\n */\n toggle: function(e) {\n Plugin.eventTrigger('beforeToggle');\n\n if (the.state == 'off') {\n Plugin.toggleOn();\n } else {\n Plugin.toggleOff();\n }\n\n Plugin.eventTrigger('afterToggle');\n\n e.preventDefault();\n\n return the;\n },\n\n /**\n * Handles toggle click toggle\n */\n toggleOn: function() {\n Plugin.eventTrigger('beforeOn');\n\n if (the.options.targetToggleMode == 'class') {\n KTUtil.addClass(the.target, the.targetState);\n } else {\n KTUtil.attr(the.target, 'data-' + the.targetState, 'on');\n }\n\n if (the.toggleState) {\n KTUtil.addClass(element, the.toggleState);\n }\n\n the.state = 'on';\n\n Plugin.eventTrigger('afterOn');\n\n Plugin.eventTrigger('toggle');\n\n return the;\n },\n\n /**\n * Handles toggle click toggle\n */\n toggleOff: function() {\n Plugin.eventTrigger('beforeOff');\n\n if (the.options.targetToggleMode == 'class') {\n KTUtil.removeClass(the.target, the.targetState);\n } else {\n KTUtil.removeAttr(the.target, 'data-' + the.targetState);\n }\n\n if (the.toggleState) {\n KTUtil.removeClass(element, the.toggleState);\n }\n\n the.state = 'off';\n\n Plugin.eventTrigger('afterOff');\n\n Plugin.eventTrigger('toggle');\n\n return the;\n },\n\n /**\n * Trigger events\n */\n eventTrigger: function(name) {\n for (var i = 0; i < the.events.length; i++) {\n var event = the.events[i];\n\n if (event.name == name) {\n if (event.one == true) {\n if (event.fired == false) {\n the.events[i].fired = true;\n return event.handler.call(this, the);\n }\n } else {\n return event.handler.call(this, the);\n }\n }\n }\n },\n\n addEvent: function(name, handler, one) {\n the.events.push({\n name: name,\n handler: handler,\n one: one,\n fired: false\n });\n\n return the;\n }\n };\n\n //////////////////////////\n // ** Public Methods ** //\n //////////////////////////\n\n /**\n * Set default options\n */\n\n the.setDefaults = function(options) {\n defaultOptions = options;\n };\n\n /**\n * Get toggle state\n */\n the.getState = function() {\n return the.state;\n };\n\n /**\n * Toggle\n */\n the.toggle = function() {\n return Plugin.toggle();\n };\n\n /**\n * Toggle on\n */\n the.toggleOn = function() {\n return Plugin.toggleOn();\n };\n\n /**\n * Toggle off\n */\n the.toggleOff = function() {\n return Plugin.toggleOff();\n };\n\n /**\n * Attach event\n * @returns {KTToggle}\n */\n the.on = function(name, handler) {\n return Plugin.addEvent(name, handler);\n };\n\n /**\n * Attach event that will be fired once\n * @returns {KTToggle}\n */\n the.one = function(name, handler) {\n return Plugin.addEvent(name, handler, true);\n };\n\n // Construct plugin\n Plugin.construct.apply(the, [options]);\n\n return the;\n};\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = KTToggle;\n}\n\nexport default KTToggle;","\"use strict\";\n\nvar KTLayoutHeaderTopbar = function() {\n // Private properties\n\tvar _toggleElement;\n var _toggleObject;\n\n // Private functions\n var _init = function() {\n\t\t_toggleObject = new KTToggle(_toggleElement, KTUtil.getBody(), {\n\t\t\ttargetState: 'topbar-mobile-on',\n\t\t\ttoggleState: 'active'\n\t\t});\n }\n\n // Public methods\n\treturn {\n\t\tinit: function(id) {\n _toggleElement = KTUtil.getById(id);\n\n\t\t\tif (!_toggleElement) {\n return;\n }\n\n // Initialize\n _init();\n\t\t},\n\n getToggleElement: function() {\n return _toggleElement;\n }\n\t};\n}();\n\n\n\nexport default KTLayoutHeaderTopbar;","\"use strict\";\n\nvar KTLayoutAsideMenu = function() {\n // Private properties\n var _element;\n var _menuObject;\n\n\t// Initialize\n\tvar _init = function() {\n \n\t\t_menuObject = new KTMenu(_element, {\n\t\t\t// Submenu setup\n\t\t\tsubmenu: {\n\t\t\t\tdesktop: 'accordion',\n\t\t\t\ttablet: 'accordion', // menu set to accordion in tablet mode\n\t\t\t\tmobile: 'accordion' // menu set to accordion in mobile mode\n\t\t\t},\n\n\t\t\t// Accordion setup\n\t\t\taccordion: {\n\t\t\t\texpandAll: false // allow having multiple expanded accordions in the menu\n\t\t\t}\n\t\t});\n\n\t\t// Close aside offcanvas panel before page reload On tablet and mobile\n\t\t_menuObject.on('linkClick', function(menu) {\n\t\t\tKTLayoutAside.getOffcanvas().hide(); // Hide offcanvas after general link click\n\t\t});\n\t}\n\n // Public methods\n\treturn {\n\t\tinit: function(id) {\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize menu\n _init();\n\t\t},\n\n\t\tgetElement: function() {\n\t\t\treturn _element;\n\t\t},\n\n getMenu: function() {\n\t\t\treturn _menuObject;\n\t\t},\n\n pauseDropdownHover: function(time) {\n\t\t\tif (_menuObject) {\n\t\t\t\t_menuObject.pauseDropdownHover(time);\n\t\t\t}\n\t\t},\n\n\t\tcloseMobileOffcanvas: function() {\n\t\t\tif (_menuObject && KTUtil.isMobileDevice()) {\n\t\t\t\t_menuObject.hide();\n\t\t\t}\n\t\t}\n\t};\n}();\n\n\n\nexport default KTLayoutAsideMenu;","\"use strict\";\n\nimport KTUtil from \"./util\";\n\n// Component Definition\nvar KTCard = function(elementId, options) {\n // Main object\n var the = this;\n var init = false;\n\n // Get element object\n var element = KTUtil.getById(elementId);\n var body = KTUtil.getBody();\n\n if (!element) {\n return;\n }\n\n // Default options\n var defaultOptions = {\n toggleSpeed: 400,\n sticky: {\n releseOnReverse: false,\n offset: 300,\n zIndex: 101\n }\n };\n\n ////////////////////////////\n // ** Private Methods ** //\n ////////////////////////////\n\n var Plugin = {\n /**\n * Construct\n */\n\n construct: function(options) {\n if (KTUtil.data(element).has('card')) {\n the = KTUtil.data(element).get('card');\n } else {\n // reset menu\n Plugin.init(options);\n\n // build menu\n Plugin.build();\n\n KTUtil.data(element).set('card', the);\n }\n\n return the;\n },\n\n /**\n * Init card\n */\n init: function(options) {\n the.element = element;\n the.events = [];\n\n // merge default and user defined options\n the.options = KTUtil.deepExtend({}, defaultOptions, options);\n the.header = KTUtil.child(element, '.card-header');\n the.footer = KTUtil.child(element, '.card-footer');\n\n if (KTUtil.child(element, '.card-body')) {\n the.body = KTUtil.child(element, '.card-body');\n } else if (KTUtil.child(element, '.form')) {\n the.body = KTUtil.child(element, '.form');\n }\n },\n\n /**\n * Build Form Wizard\n */\n build: function() {\n // Remove\n var remove = KTUtil.find(the.header, '[data-card-tool=remove]');\n if (remove) {\n KTUtil.addEvent(remove, 'click', function(e) {\n e.preventDefault();\n Plugin.remove();\n });\n }\n\n // Reload\n var reload = KTUtil.find(the.header, '[data-card-tool=reload]');\n if (reload) {\n KTUtil.addEvent(reload, 'click', function(e) {\n e.preventDefault();\n Plugin.reload();\n });\n }\n\n // Toggle\n var toggle = KTUtil.find(the.header, '[data-card-tool=toggle]');\n if (toggle) {\n KTUtil.addEvent(toggle, 'click', function(e) {\n e.preventDefault();\n Plugin.toggle();\n });\n }\n },\n\n /**\n * Enable stickt mode\n */\n initSticky: function() {\n var lastScrollTop = 0;\n var offset = the.options.sticky.offset;\n\n if (!the.header) {\n return;\n }\n\n\t window.addEventListener('scroll', Plugin.onScrollSticky);\n },\n\n\t /**\n\t * Window scroll handle event for sticky card\n\t */\n\t onScrollSticky: function(e) {\n\t\t var offset = the.options.sticky.offset;\n\n\t\t if(isNaN(offset)) return;\n\n\t\t var st = KTUtil.getScrollTop();\n\n\t\t if (st >= offset && KTUtil.hasClass(body, 'card-sticky-on') === false) {\n\t\t\t Plugin.eventTrigger('stickyOn');\n\n\t\t\t KTUtil.addClass(body, 'card-sticky-on');\n\n\t\t\t Plugin.updateSticky();\n\n\t\t } else if ((st*1.5) <= offset && KTUtil.hasClass(body, 'card-sticky-on')) {\n\t\t\t // Back scroll mode\n\t\t\t Plugin.eventTrigger('stickyOff');\n\n\t\t\t KTUtil.removeClass(body, 'card-sticky-on');\n\n\t\t\t Plugin.resetSticky();\n\t\t }\n\t },\n\n updateSticky: function() {\n if (!the.header) {\n return;\n }\n\n var top;\n\n if (KTUtil.hasClass(body, 'card-sticky-on')) {\n if (the.options.sticky.position.top instanceof Function) {\n top = parseInt(the.options.sticky.position.top.call(this, the));\n } else {\n top = parseInt(the.options.sticky.position.top);\n }\n\n var left;\n if (the.options.sticky.position.left instanceof Function) {\n left = parseInt(the.options.sticky.position.left.call(this, the));\n } else {\n left = parseInt(the.options.sticky.position.left);\n }\n\n var right;\n if (the.options.sticky.position.right instanceof Function) {\n right = parseInt(the.options.sticky.position.right.call(this, the));\n } else {\n right = parseInt(the.options.sticky.position.right);\n }\n\n KTUtil.css(the.header, 'z-index', the.options.sticky.zIndex);\n KTUtil.css(the.header, 'top', top + 'px');\n KTUtil.css(the.header, 'left', left + 'px');\n KTUtil.css(the.header, 'right', right + 'px');\n }\n },\n\n resetSticky: function() {\n if (!the.header) {\n return;\n }\n\n if (KTUtil.hasClass(body, 'card-sticky-on') === false) {\n KTUtil.css(the.header, 'z-index', '');\n KTUtil.css(the.header, 'top', '');\n KTUtil.css(the.header, 'left', '');\n KTUtil.css(the.header, 'right', '');\n }\n },\n\n /**\n * Remove card\n */\n remove: function() {\n if (Plugin.eventTrigger('beforeRemove') === false) {\n return;\n }\n\n KTUtil.remove(element);\n\n Plugin.eventTrigger('afterRemove');\n },\n\n /**\n * Set content\n */\n setContent: function(html) {\n if (html) {\n the.body.innerHTML = html;\n }\n },\n\n /**\n * Get body\n */\n getBody: function() {\n return the.body;\n },\n\n /**\n * Get self\n */\n getSelf: function() {\n return element;\n },\n\n /**\n * Reload\n */\n reload: function() {\n Plugin.eventTrigger('reload');\n },\n\n /**\n * Toggle\n */\n toggle: function() {\n if (KTUtil.hasClass(element, 'card-collapse') || KTUtil.hasClass(element, 'card-collapsed')) {\n Plugin.expand();\n } else {\n Plugin.collapse();\n }\n },\n\n /**\n * Collapse\n */\n collapse: function() {\n if (Plugin.eventTrigger('beforeCollapse') === false) {\n return;\n }\n\n KTUtil.slideUp(the.body, the.options.toggleSpeed, function() {\n Plugin.eventTrigger('afterCollapse');\n });\n\n KTUtil.addClass(element, 'card-collapse');\n },\n\n /**\n * Expand\n */\n expand: function() {\n if (Plugin.eventTrigger('beforeExpand') === false) {\n return;\n }\n\n KTUtil.slideDown(the.body, the.options.toggleSpeed, function() {\n Plugin.eventTrigger('afterExpand');\n });\n\n KTUtil.removeClass(element, 'card-collapse');\n KTUtil.removeClass(element, 'card-collapsed');\n },\n\n /**\n * Trigger events\n */\n eventTrigger: function(name) {\n //KTUtil.triggerCustomEvent(name);\n for (var i = 0; i < the.events.length; i++) {\n var event = the.events[i];\n if (event.name == name) {\n if (event.one == true) {\n if (event.fired == false) {\n the.events[i].fired = true;\n return event.handler.call(this, the);\n }\n } else {\n return event.handler.call(this, the);\n }\n }\n }\n },\n\n addEvent: function(name, handler, one) {\n the.events.push({\n name: name,\n handler: handler,\n one: one,\n fired: false\n });\n\n return the;\n }\n };\n\n //////////////////////////\n // ** Public Methods ** //\n //////////////////////////\n\n /**\n * Set default options\n */\n\n the.setDefaults = function(options) {\n defaultOptions = options;\n };\n\n /**\n * Remove card\n */\n the.remove = function() {\n return Plugin.remove(html);\n };\n\n /**\n * Init sticky card\n */\n the.initSticky = function() {\n return Plugin.initSticky();\n };\n\n /**\n * Rerender sticky layout\n */\n the.updateSticky = function() {\n return Plugin.updateSticky();\n };\n\n /**\n * Reset the sticky\n */\n the.resetSticky = function() {\n return Plugin.resetSticky();\n };\n\n\t/**\n\t * Destroy sticky card\n\t */\n\tthe.destroySticky = function() {\n\t\tPlugin.resetSticky();\n\t\twindow.removeEventListener('scroll', Plugin.onScrollSticky);\n\t};\n\n /**\n * Reload card\n */\n the.reload = function() {\n return Plugin.reload();\n };\n\n /**\n * Set card content\n */\n the.setContent = function(html) {\n return Plugin.setContent(html);\n };\n\n /**\n * Toggle card\n */\n the.toggle = function() {\n return Plugin.toggle();\n };\n\n /**\n * Collapse card\n */\n the.collapse = function() {\n return Plugin.collapse();\n };\n\n /**\n * Expand card\n */\n the.expand = function() {\n return Plugin.expand();\n };\n\n /**\n * Get cardbody\n * @returns {jQuery}\n */\n the.getBody = function() {\n return Plugin.getBody();\n };\n\n /**\n * Get cardbody\n * @returns {jQuery}\n */\n the.getSelf = function() {\n return Plugin.getSelf();\n };\n\n /**\n * Attach event\n */\n the.on = function(name, handler) {\n return Plugin.addEvent(name, handler);\n };\n\n /**\n * Attach event that will be fired once\n */\n the.one = function(name, handler) {\n return Plugin.addEvent(name, handler, true);\n };\n\n // Construct plugin\n Plugin.construct.apply(the, [options]);\n\n return the;\n};\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = KTCard;\n}\n\nexport default KTCard;","\"use strict\";\n\nvar KTLayoutHeader = function() {\n // Private properties\n var _element;\n var _elementForMobile;\n var _object;\n\n\t// Private functions\n\n // Get height\n var _getHeight = function() {\n var height = 0;\n\n if (_element) {\n height = KTUtil.actualHeight(_element) + 1;\n }\n\n return height;\n }\n\n // Get height\n var _getHeightForMobile = function() {\n var height;\n\n height = KTUtil.actualHeight(_elementForMobile);\n\n return height;\n }\n\n // Public methods\n\treturn {\n\t\tinit: function(id, idForMobile) {\n _element = KTUtil.getById(id);\n _elementForMobile = KTUtil.getById(idForMobile);\n\n if (!_element) {\n return;\n }\n\t\t},\n\n isFixed: function() {\n return KTUtil.hasClass(KTUtil.getBody(), 'header-fixed')\n },\n\n isFixedForMobile: function() {\n return KTUtil.hasClass(KTUtil.getBody(), 'header-mobile-fixed')\n },\n\n getElement: function() {\n return _element;\n },\n\n getElementForMobile: function() {\n return _elementForMobile;\n },\n\n getHeader: function() {\n return _object;\n },\n\n getHeight: function() {\n return _getHeight();\n },\n\n getHeightForMobile: function() {\n return _getHeightForMobile();\n }\n\t};\n}();\n\n\n\nexport default KTLayoutHeader;","\"use strict\";\n\nimport KTUtil from \"./util\";\n// DOCS: https://javascript.info/cookie\n\n// Component Definition\nvar KTCookie = function() {\n return {\n // returns the cookie with the given name,\n // or undefined if not found\n getCookie: function(name) {\n var matches = document.cookie.match(new RegExp(\n \"(?:^|; )\" + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + \"=([^;]*)\"\n ));\n return matches ? decodeURIComponent(matches[1]) : undefined;\n },\n // Please note that a cookie value is encoded,\n // so getCookie uses a built-in decodeURIComponent function to decode it.\n setCookie: function(name, value, options) {\n if (!options) {\n options = {};\n }\n\n options = Object.assign({}, {path: '/'}, options);\n\n if (options.expires instanceof Date) {\n options.expires = options.expires.toUTCString();\n }\n\n var updatedCookie = encodeURIComponent(name) + \"=\" + encodeURIComponent(value);\n\n for (var optionKey in options) {\n if (!options.hasOwnProperty(optionKey)) {\n continue;\n }\n updatedCookie += \"; \" + optionKey;\n var optionValue = options[optionKey];\n if (optionValue !== true) {\n updatedCookie += \"=\" + optionValue;\n }\n }\n\n document.cookie = updatedCookie;\n },\n // To delete a cookie, we can call it with a negative expiration date:\n deleteCookie: function(name) {\n setCookie(name, \"\", {\n 'max-age': -1\n })\n }\n }\n}();\n\n// webpack support\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = KTCookie;\n}\n\nexport default KTCookie;","\"use strict\";\n\nvar KTLayoutAside = function() {\n // Private properties\n var _body;\n var _element;\n var _asideMenuWrapperElement;\n var _offcanvasObject;\n\n // Private functions\n\t// Initialize\n\tvar _init = function() {\n\t\tvar offcanvasClass = KTUtil.hasClass(_element, 'aside-offcanvas-default') ? 'aside-offcanvas-default' : 'aside';\n\n // Initialize mobile aside offcanvas\n\t\t_offcanvasObject = new KTOffcanvas(_element, {\n\t\t\tbaseClass: offcanvasClass,\n\t\t\toverlay: true,\n\t\t\tcloseBy: 'kt_aside_close_btn',\n\t\t\ttoggleBy: ['kt_aside_desktop_toggle', 'kt_aside_tablet_and_mobile_toggle']\n\t\t});\n\t}\n\n var _initScroll = function() {\n KTUtil.scrollInit(_asideMenuWrapperElement, {\n disableForMobile: true,\n resetHeightOnDestroy: true,\n handleWindowResize: true,\n height: function() {\n var height = parseInt(KTUtil.getViewPort().height);\n\n height = height - (parseInt(KTUtil.css(_asideMenuWrapperElement , 'marginBottom')) + parseInt(KTUtil.css(_asideMenuWrapperElement, 'marginTop')));\n\n return height;\n }\n });\n }\n\n // Public methods\n\treturn {\n\t\tinit: function(id) {\n _element = KTUtil.getById(id);\n _asideMenuWrapperElement = KTUtil.getById('kt_aside_menu_wrapper');\n _body = KTUtil.getBody();\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n _initScroll();\n },\n\n getElement: function() {\n return _element;\n },\n\n getOffcanvas: function() {\n return _offcanvasObject;\n }\n\t};\n}();\n\n\n\nexport default KTLayoutAside;"],"sourceRoot":""}