{"version":3,"sources":["_metronic/_helpers/AssetsHelpers.js","_metronic/_helpers/RouterHelpers.js","app/modules/Auth/__mocks__/userTableMock.js","app/modules/Auth/_redux/authRedux.js","app/modules/Auth/_redux/authCrud.js","app/modules/Comun/Departamento/_redux/dptoSlice.js","app/modules/Comun/Localidad/_redux/localidadSlice.js","app/modules/Documents/_redux/Certificates/certificateSlice.js","components/versionsCheck/_redux/apiVersionSlice.js","redux/rootReducer.js","redux/store.js","_metronic/i18n/Metronici18n.js","_metronic/i18n/I18nProvider.js","_metronic/layout/_core/HTMLClassService.js","_metronic/layout/_core/MetronicLayout.js","_metronic/layout/_core/LayoutConfig.js","_metronic/layout/components/extras/dropdowns/search/SearchResult.js","_metronic/_partials/dropdowns/DropdownCustomToggler.js","_metronic/_partials/dropdowns/DropdownTopbarItemToggler.js","_metronic/layout/components/extras/dropdowns/search/SearchDropdown.js","_metronic/layout/components/extras/dropdowns/UserNotificationsDropdown.js","_metronic/layout/components/extras/dropdowns/QuickActionsDropdown.js","_metronic/layout/components/extras/dropdowns/MyCartDropdown.js","_metronic/layout/components/extras/dropdowns/LanguageSelectorDropdown.js","utils/userInfo.js","_metronic/layout/components/extras/dropdowns/UserProfileDropdown.js","_metronic/layout/components/extras/QuiclUserToggler.js","_metronic/layout/components/header/Topbar.js","_metronic/layout/components/header/header-menu/HeaderMenu.js","_metronic/layout/components/header/header-menu/HeaderMenuWrapper.js","_metronic/_partials/controls/Card.js","_metronic/_partials/controls/AnimateLoading.js","_metronic/_partials/controls/Notice.js","_metronic/layout/components/header/Header.js","_metronic/layout/components/header-mobile/HeaderMobile.js","_metronic/layout/components/footer/Footer.js","_metronic/_assets/js/layout/base/header.js","_metronic/_assets/js/layout/base/header-menu.js","_metronic/_assets/js/layout/base/header-topbar.js","_metronic/_assets/js/layout/base/brand.js","_metronic/_assets/js/layout/base/aside.js","_metronic/_assets/js/layout/base/subheader.js","_metronic/_assets/js/layout/base/sticky-card.js","_metronic/_assets/js/layout/base/aside-menu.js","_metronic/_assets/js/layout/base/aside-toggle.js","_metronic/_assets/js/layout/base/footer.js","_metronic/_assets/js/layout/base/content.js","_metronic/_assets/js/layout/extended/scrolltop.js","_metronic/_assets/js/layout/base/stretched-card.js","_metronic/_assets/js/layout/extended/quick-panel.js","_metronic/_assets/js/layout/extended/quick-user.js","_metronic/layout/components/subheader/components/QuickActions.js","_metronic/layout/_core/MetronicSubheader.js","_metronic/layout/_core/MetronicSplashScreen.js","_metronic/layout/_core/MaterialThemeProvider.js","components/layoutPublic/Layout.js","app/modules/Comun/SnackBars/SnackBarCustom.js","app/modules/Comun/Buttons/ReadPDF.js","app/modules/Documents/pages/Certificates/components/Certificate.js","app/modules/Documents/pages/Certificates/components/HelpLinks.js","app/modules/Documents/_redux/config.js","app/modules/Documents/_redux/Certificates/certificateCrud.js","app/modules/Documents/_redux/Certificates/certificateActions.js","app/modules/Public/Documents/Certificates/CertificateDetail.js","app/modules/Public/Documents/Certificates/CertificatesLandign.js","app/modules/Public/Documents/SearchForm.js","app/modules/Public/Documents/Search.js","routes/routes.js","utils/authConst.js","services/authService.js","providers/authProvider.js","components/versionsCheck/config.js","components/versionsCheck/_redux/apiVersionCrud.js","components/versionsCheck/_redux/apiVersionActions.js","components/versionsCheck/index.js","app/App.js","index.js","redux/setupAxios.js","_metronic/_assets/js/components/cookie.js","_metronic/_assets/js/components/offcanvas.js","_metronic/_assets/js/components/util.js","_metronic/_assets/js/components/menu.js","_metronic/_assets/js/components/toggle.js","_metronic/_assets/js/components/card.js","_metronic/_assets/js/components/scrolltop.js","app/modules/Files/insctructivoFirmaDigital.pdf"],"names":["toAbsoluteUrl","pathname","process","checkIsActive","location","url","current","split","getCurrentUrl","indexOf","saga","actionTypes","initialAuthState","user","undefined","authToken","reducer","persistReducer","storage","key","whitelist","state","action","type","payload","actions","takeLatest","loginSaga","put","registerSaga","userRequested","axios","get","data","initialInscripcion","listLoading","actionsLoading","totalCount","entities","departamento","lastError","callTypes","dptoSlice","createSlice","name","initialState","reducers","catchError","error","clientMessage","callType","starCall","departamentosFetched","departamentos","length","localidad","localidadSlice","localidadesFetched","localidades","initialCertificateState","certificates","certificate","certificateFile","certificatesSlice","startCall","certificateFetched","certificateDownload","certificatesFetched","clearAll","initialApiVersion","apiVersionState","apiVersionSlice","apiVersionFetched","reiniciarDatos","rootSaga","rootReducer","combineReducers","auth","apiVersion","all","sagaMiddleware","createSagaMiddleware","middleware","getDefaultMiddleware","immutableCheck","serializableCheck","thunk","store","configureStore","devTools","enhancers","reduxBatch","persistor","persistStore","run","I18N_CONFIG_KEY","REACT_APP_I18N_CONFIG_KEY","selectedLang","getConfig","ls","localStorage","getItem","JSON","parse","er","console","I18nContext","createContext","useLang","useContext","Consumer","MetronicI18nProvider","children","lang","useMemo","Provider","value","allMessages","de","en","es","fr","ja","zh","I18nProvider","locale","messages","HtmlClassService","layoutConfig","this","config","preInit","classes","header","header_container","header_mobile","header_menu","aside","aside_menu","subheader","subheader_container","content","content_container","footer_container","attributes","initLayout","initLoader","initHeader","initSubheader","initContent","initAside","initFooter","initTheme","updatedConfig","Object","assign","headerSelfFixedDesktop","objectPath","style","fixed","path","toString","Array","isArray","join","brandSkin","logo","getLogo","selfBodyBackgroundImage","document","body","backgroundImage","_selfBodyClass","forEach","cssClass","classList","add","push","headerMenuSelfLayout","headerMenuLayoutCssClass","subheaderFixed","subheaderStyle","subheaderClass","asideSelfDisplay","asideMenuDropdown","asideSubmenuDHoverTimeout","brandSelfTheme","headerSelfTheme","LAYOUT_CONFIG_KEY","REACT_APP_LAYOUT_CONFIG_KEY","demo","js","breakpoints","sm","md","lg","xl","xxl","colors","theme","base","light","inverse","gray","fontFamily","loader","enabled","message","toolbar","display","self","width","desktop","mobile","menu","layout","arrow","toggle","submenu","accordion","displayDesc","displayDaterangepicker","clear","brand","minimize","default","hoverable","footer","dropdown","scroll","extras","search","offcanvas","direction","notifications","directions","languages","cart","chat","scrolltop","HtmlClassServiceContext","useHtmlClassService","MetronicLayoutProvider","lc","hcs","service","setConfig","perfectScrollbarOptions","wheelSpeed","wheelPropagation","SearchResult","maxHeight","overflow","className","options","position","src","href","React","forwardRef","props","ref","onClick","e","preventDefault","DropdownTopbarItemToggler","displayName","fakeData","text","description","iconImage","iconClassName","SearchDropdown","timeoutId","useState","loading","setLoading","setData","searchValue","setSearchValue","clearTimeout","useEffect","uiService","layoutProps","id","Dropdown","alignRight","drop","onToggle","Toggle","as","OverlayTrigger","placement","overlay","Tooltip","Menu","clsx","autoFocus","placeholder","onChange","event","target","setTimeout","UserNotificationsDropdown","setKey","bgImage","Tab","Container","defaultActiveKey","Nav","onSelect","_key","Item","Link","eventKey","Content","Pane","QuickActionsDropdown","MyCartDropdown","alt","flag","LanguageSelectorDropdown","currentLanguage","find","x","map","language","active","setItem","stringify","window","reload","setLanguage","UserInfo","authParse","sessionStorage","userInfo","profile","email","UserProfileDropdown","toUpperCase","to","QuickUserToggler","Topbar","viewSearchDisplay","viewNotificationsDisplay","viewQuickActionsDisplay","viewCartDisplay","viewQuickPanelDisplay","viewLanguagesDisplay","viewUserDisplay","data-toggle","title","data-placement","HeaderMenu","useLocation","getMenuItemActive","ktMenuClasses","headerMenuAttributes","ulClasses","rootArrowEnabled","data-menu-toggle","menuDesktopToggle","aria-haspopup","HeaderMenuWrapper","getClasses","getAttributes","disabledAsideSelfDisplay","CardHeaderTitle","CardHeaderToolbar","CardHeader","icon","sticky","labelRef","top","setTop","windowHeight","setWindowHeight","handleResize","innerWidth","addEventListener","removeEventListener","headerElement","querySelector","subheaderElement","headerMobileElement","nextMarginTop","getComputedStyle","height","offsetHeight","contains","backgroundColor","isFragment","CardBody","fit","fluid","Card","fluidHeight","AnimateLoading","routeChanged","nextProps","animate","scrollToTop","scrollToTopBtn","getElementById","click","animateTimeout","setState","stopAnimate","animateInterval","stopAnimateTimeout","ProgressBar","variant","now","Component","withRouter","svg","iconRef","textRef","iconWrapperRef","role","Header","sinUser","headerClasses","headerAttributes","headerContainerClasses","menuHeaderDisplay","HeaderMobile","headerLogo","getStickyLogo","asideDisplay","headerMenuSelfDisplay","headerMobileCssClasses","headerMobileAttributes","Footer","today","Date","getFullYear","footerClasses","footerContainerClasses","rel","KTLayoutHeader","_element","_elementForMobile","init","idForMobile","KTUtil","getById","isFixed","hasClass","getBody","isFixedForMobile","getElement","getElementForMobile","getHeader","getHeight","actualHeight","_getHeight","getHeightForMobile","KTLayoutHeaderMenu","_menuElement","_menuObject","_offcanvasElement","_offcanvasObject","menuId","offcanvasId","KTOffcanvas","baseClass","closeBy","toggleBy","KTMenu","tablet","slideSpeed","expandAll","on","isBreakpointDown","hide","getMenuElement","getOffcanvasElement","getMenu","pauseDropdownHover","time","getOffcanvas","closeMobileOffcanvas","isMobileDevice","_toggleElement","KTLayoutBrand","KTLayoutAside","_body","offcanvasClass","_init","isMinimized","isHoverable","KTLayoutSubheader","KTLayoutStickyCard","_object","offset","KTCard","zIndex","pos","isBreakpointUp","left","card","right","cardWidth","parseInt","css","initSticky","addResizeHandler","updateSticky","update","KTLayoutAsideMenu","menuDesktopMode","attr","rememberPosition","getViewPort","insideTm","outsideTm","addEvent","addClass","scrollUpdate","scrollTop","removeClass","_initHover","_toggleObject","KTLayoutFooter","KTLayoutContent","cardBody","cardHeader","_notificationsElement","_logsElement","_settingsElement","_getContentHeight","SubheaderContext","MetronicSubheaderProvider","setTitle","breadcrumbs","setBreadcrumbs","MetronicSplashScreenContext","MetronicSplashScreenProvider","count","setCount","visible","timeout","splashScreen","remove","LayoutSplashScreen","prev","createMuiTheme","typography","palette","primary","main","secondary","MuiButtonBase","disableRipple","MuiPopover","elevation","MaterialThemeProvider","ThemeProvider","Layout","selfLayout","subheaderDisplay","stickyToolbarDisplay","desktopHeaderDisplay","contentCssClasses","contentContainerClasses","contentExtended","SnackBarCustom","agree","useSnackbar","enqueueSnackbar","closeSnackbar","autoHideDuration","onClose","anchorOrigin","vertical","horizontal","IconButton","aria-label","color","close","ReadPDF","pdf","open","numPages","setNumPages","pageNumber","setPageNumber","Dialog","maxWidth","DialogContent","file","onLoadSuccess","DialogActions","disabled","download","useStyles","makeStyles","cardTitle","background","textAlign","border","borderRadius","padding","onlyTitle","buttonUI","fontSize","margin","buttonUI2","Certificate","item","isPrivate","certificadoId","urlPDF","viewPDF","setViewPDF","tipo","CardContent","nombreCompleto","escuela","cue","cicloLectivo","statusId","status","HelpLinks","API_BASE_URL","API_URL_CERTIFICATEByDNI","API_URL_CERTIFICATEByID","a","result","fetchCertificate","params","dispatch","requestFromServer","then","response","catch","mensaje","CertificateDetail","match","history","useHistory","substring","useDispatch","useSelector","shallowEqual","actionsCertificates","Button","size","minHeight","Spinner","animation","replace","CertificatesLandign","controls","without","PDF","SearchForm","formSchema","Yup","shape","code","required","enableReinitialize","initialValues","validationSchema","onSubmit","values","setSubmitting","formik","htmlFor","maxLength","Search","Routes","component","exact","from","IDENTITY_CONFIG","authority","client_id","redirect_uri","silent_redirect_uri","REACT_APP_SILENT_REDIRECT_URL","post_logout_redirect_uri","response_type","scope","METADATA_OIDC","issuer","jwks_uri","authorization_endpoint","token_endpoint","userinfo_endpoint","end_session_endpoint","check_session_iframe","revocation_endpoint","introspection_endpoint","AuthService","signinRedirectCallback","UserManager","getUser","parseJwt","token","base64","atob","signinRedirect","navigateToScreen","isAuthenticated","oidcStorage","access_token","signinSilent","log","err","signinSilentCallback","createSigninRequest","logout","signoutRedirect","id_token_hint","clearStaleState","signoutRedirectCallback","REACT_APP_PUBLIC_URL","userStore","WebStorageStateStore","metadata","Log","logger","level","DEBUG","events","addUserLoaded","addSilentRenewError","addAccessTokenExpired","AuthContext","AuthProvider","authService","API_VERSION_URL","getApiVersion","VersionsCheck","clienteDesactualizado","setClienteDesactualizado","clientVersion","createBrowserHistory","App","basename","Suspense","fallback","maxSnack","listen","ReactGA","set","page","pageview","interceptors","request","use","headers","Authorization","Promise","reject","ReactDOM","render","KTCookie","getCookie","matches","cookie","RegExp","decodeURIComponent","setCookie","expires","toUTCString","updatedCookie","encodeURIComponent","optionKey","hasOwnProperty","optionValue","deleteCookie","module","exports","elementId","the","element","defaultOptions","attrCustom","Plugin","construct","has","build","deepExtend","classBase","classShown","classOverlay","i","isShown","eventTrigger","show","toggleClass","classCustom","insertAfter","createElement","removeAttr","mode","el","args","one","handler","call","fired","setDefaults","apply","Element","prototype","msMatchesSelector","webkitMatchesSelector","closest","s","ancestor","documentElement","parentElement","elem","parentNode","removeChild","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","callback","currTime","getTime","timeToCall","Math","max","Document","DocumentFragment","defineProperty","configurable","enumerable","writable","argArr","slice","arguments","docFrag","createDocumentFragment","argItem","isNode","Node","appendChild","createTextNode","String","insertBefore","firstChild","getAttributeNames","KTUtilElementDataStore","KTUtilElementDataStoreID","KTUtilDelegatedEventHandlers","resizeHandlers","_windowResizeHandler","throttle","timer","_runResizeHandlers","settings","removeResizeHandler","runResizeHandlers","resize","Event","dispatchEvent","evt","createEvent","initUIEvent","getURLParam","paramName","val","unescape","test","getBreakpoint","navigator","userAgent","isDesktopDevice","isInResponsiveRange","breakpoint","getUniqueID","prefix","floor","random","isset","obj","keys","stone","Error","shift","getHighestZindex","isNaN","hasFixedPositionedParent","sleep","milliseconds","start","getRandomInt","min","isAngularVersion","Zone","out","extend","getByTag","query","getElementsByTagName","getByTagName","getByClass","getElementsByClassName","hasClasses","classesArr","trim","classNames","triggerCustomEvent","eventName","CustomEvent","detail","initCustomEvent","triggerEvent","node","doc","ownerDocument","nodeType","eventClass","bubbles","initEvent","synthetic","fireEvent","createEventObject","index","c","string","eventTriggered","currentTarget","dataset","triggered","parent","findAll","querySelectorAll","referenceNode","nextSibling","parents","selector","matchesSelector","mozMatchesSelector","oMatchesSelector","childNodes","l","child","p","f","tagName","customDataTag","outerWidth","parseFloat","offsetWidth","rect","win","getClientRects","getBoundingClientRect","defaultView","pageYOffset","pageXOffset","outerHeight","withMargin","marginTop","marginBottom","getAttribute","setAttribute","hasAttr","removeAttribute","duration","easing","done","easings","linear","t","b","d","rAF","change","performance","loop","timestamp","actualCss","prop","cache","HTMLElement","cssText","actualWidth","getScroll","method","browserSupportsBoxModel","styleProp","toLowerCase","getPropertyValue","currentStyle","str","letter","oldLeft","oldRsLeft","runtimeStyle","pixelLeft","slide","dir","speed","recalcMaxHeight","calcHeight","calcPaddingTop","calcPaddingBottom","paddingTop","paddingBottom","slideUp","slideDown","removeEvent","eventId","targets","j","off","callee","hash","charCodeAt","animateClass","animationName","animations","OAnimation","MozAnimation","WebkitAnimation","msAnimation","transitionEnd","transition","transitions","OTransition","MozTransition","WebkitTransition","msTransition","animationEnd","animateDelay","animateDuration","scrollTo","targetPos","scrollPos","ready","attachEvent","readyState","isEmpty","numberString","nStr","x1","x2","rgx","detectIE","ua","msie","rv","edge","isRTL","html","scrollInit","swipeEasing","minScrollbarLength","maxScrollbarLength","suppressScrollX","handleWindowResize","ps","attrs","attrName","includes","optionName","filterBoolean","Function","mobileHeight","mobileNativeScroll","disableForMobile","desktopNativeScroll","windowScroll","PerfectScrollbar","uid","resetHeightOnDestroy","destroy","scrollDestroy","scrollUpdateAll","scrollers","len","resetAll","setProperty","setHTML","innerHTML","getHTML","getDocumentHeight","scrollHeight","clientHeight","getScrollTop","scrollingElement","changeColor","col","amt","usePound","num","r","g","func","delay","debounce","btnWait","cls","disable","caption","btnRelease","isOffscreen","windowWidth","KTAppSettings","onload","getSubmenuMode","hideDropdowns","autoScroll","autoScrollSpeed","reset","eventHandlers","pauseDropdownHoverTime","resetSubmenuProps","handleSubmenuAccordion","isConditionalSubmenuDropdown","handleSubmenuDrodownHoverEnter","handleSubmenuDrodownHoverExit","handleSubmenuDropdownClick","handleSubmenuDropdownTabClick","handleLinkClick","submenus","hasAttribute","resumeDropdownHover","showSubmenuDropdown","hideSubmenuDropdown","hideSubmenuDropdowns","handleSubmenuDropdownClose","shown","li","subnav","closables","el_","submenu_","scrollToItem","classAlso","items","cnt","list","createSubmenuDropdownClickDropoff","dropoff","stopPropagation","date","resetActiveItem","i_","len_","setActiveItem","getBreadcrumbs","link","submenuLink","reverse","getPageTitle","scrollReInit","hideDropdown","KTToggle","toggleElement","targetElement","targetToggleMode","targetState","toggleState","toggleOn","toggleOff","getState","toggleSpeed","releseOnReverse","onScrollSticky","st","resetSticky","setContent","getSelf","expand","collapse","destroySticky","KTScrolltop","handle"],"mappings":"2YASO,IAAMA,EAAgB,SAAAC,GAAQ,MAAIC,GAAyBD,GC2C3D,SAASE,EAAcC,EAAUC,GACpC,IAAMC,EALH,SAAuBF,GAC1B,OAAOA,EAASH,SAASM,MAAM,QAAQ,GAIvBC,CAAcJ,GAC9B,SAAKE,IAAYD,KAIbC,IAAYD,GAIZC,EAAQG,QAAQJ,IAAQ,G,qBCnDvBL,EAAc,2BA0BdA,EAAc,0BA0BdA,EAAc,4B,uGCFNU,GAxDJC,EACJ,iBADIA,EAEH,kBAFGA,EAGD,oBAHCA,EAII,wBAJJA,EAKC,uBAGRC,EAAmB,CACvBC,UAAMC,EACNC,eAAWD,GAGAE,EAAUC,YACrB,CAAEC,YAASC,IAAK,kBAAmBC,UAAW,CAAC,OAAQ,eACvD,WAAuC,IAAtCC,EAAqC,uDAA7BT,EAAkBU,EAAW,uCACpC,OAAQA,EAAOC,MACb,KAAKZ,EAAoB,IACfI,EAAcO,EAAOE,QAArBT,UAER,MAAO,CAAEA,YAAWF,UAAMC,GAG5B,KAAKH,EAAuB,IAClBI,EAAcO,EAAOE,QAArBT,UAER,MAAO,CAAEA,YAAWF,UAAMC,GAG5B,KAAKH,EAEH,OAAOC,EAGT,KAAKD,EAAyB,IACpBE,EAASS,EAAOE,QAAhBX,KACR,OAAO,2BAAKQ,GAAZ,IAAmBR,SAGrB,QACE,OAAOQ,MAKFI,EAOE,SAAAZ,GAAI,MAAK,CAAEU,KAAMZ,EAA2Ba,QAAS,CAAEX,UAPzDY,EAQE,SAAAZ,GAAI,MAAK,CAAEU,KAAMZ,EAAwBa,QAAS,CAAEX,UAG5D,SAAUH,IAAV,iEACL,OADK,SACCgB,YAAWf,EAAD,UAAoB,SAAUgB,IAAV,iEAClC,OADkC,SAC5BC,YAAIH,KADwB,oCAAUE,OADzC,OAKL,OALK,SAKCD,YAAWf,EAAD,UAAuB,SAAUkB,IAAV,iEACrC,OADqC,SAC/BD,YAAIH,KAD2B,oCAAUI,OAL5C,OASL,OATK,SASCH,YAAWf,EAAD,UAA4B,SAAUmB,IAAV,yEACnB,OADmB,SChDrCC,IAAMC,IAhBO,UDgEwB,OAG1C,OAH0C,SAC5BnB,EAD4B,EAClCoB,KADkC,SAGpCL,YAAIH,EAAoBZ,IAHY,oCAAUiB,OATjD,uCE3DP,IAAMI,EAAqB,CACvBC,aAAa,EACbC,gBAAgB,EAChBC,WAAY,EACZC,SAAU,KACVC,kBAAczB,EACd0B,UAAW,MAGAC,EACL,OAIKC,EAAYC,YAAY,CACjCC,KAAK,eACLC,aAAaX,EACbY,SAAS,CACPC,WAAW,SAAC1B,EAAMC,GACdD,EAAM2B,MAAQ1B,EAAOE,QAAQwB,MAAMC,cAChC3B,EAAOE,QAAQ0B,WAAWT,EACzBpB,EAAMc,aAAY,EAElBd,EAAMe,gBAAe,GAG7Be,SAAS,SAAC9B,EAAMC,GACZD,EAAM2B,MAAM,KACT1B,EAAOE,QAAQ0B,WAAWT,EACzBpB,EAAMc,aAAY,EAElBd,EAAMe,gBAAe,GAe7BgB,qBAAsB,SAAC/B,EAAOC,GAAY,IAC9B+B,EAAkB/B,EAAOE,QAAzB6B,cACRhC,EAAMc,aAAc,EACpBd,EAAM2B,MAAQ,KACd3B,EAAMiB,SAAWe,EACjBhC,EAAMgB,WAAagB,GAAiBA,EAAcC,WCnDxDpB,EAAqB,CACvBC,aAAa,EACbC,gBAAgB,EAChBC,WAAY,EACZC,SAAU,KACViB,eAAWzC,EACX0B,UAAW,MAGAC,EACL,OAIKe,EAAiBb,YAAY,CACtCC,KAAK,YACLC,aAAaX,EACbY,SAAS,CACPC,WAAW,SAAC1B,EAAMC,GACdD,EAAM2B,MAAQ1B,EAAOE,QAAQwB,MAAMC,cAChC3B,EAAOE,QAAQ0B,WAAWT,EACzBpB,EAAMc,aAAY,EAElBd,EAAMe,gBAAe,GAG7Be,SAAS,SAAC9B,EAAMC,GACZD,EAAM2B,MAAM,KACT1B,EAAOE,QAAQ0B,WAAWT,EACzBpB,EAAMc,aAAY,EAElBd,EAAMe,gBAAe,GAe7BqB,mBAAoB,SAACpC,EAAOC,GAAY,IAC5BoC,EAAgBpC,EAAOE,QAAvBkC,YACRrC,EAAMc,aAAc,EACpBd,EAAM2B,MAAQ,KACd3B,EAAMiB,SAAWoB,EACjBrC,EAAMgB,WAAaqB,GAAeA,EAAYJ,WCnDpDK,EAA0B,CAC5BxB,aAAa,EACbC,gBAAgB,EAChBC,WAAY,EACZuB,kBAAc9C,EACd+C,iBAAa/C,EACbgD,qBAAgBhD,EAChBkC,MAAO,MAEEP,EACH,OAIGsB,EAAoBpB,YAAY,CACzCC,KAAM,eACNC,aAAcc,EACdb,SAAU,CACNC,WAAY,SAAC1B,EAAOC,GAChBD,EAAM2B,MAAQ1B,EAAOE,QAAQwB,MACzB1B,EAAOE,QAAQ0B,WAAaT,EAC5BpB,EAAMc,aAAc,EAEpBd,EAAMe,gBAAiB,GAG/B4B,UAAW,SAAC3C,EAAOC,GACfD,EAAM2B,WAAQlC,EACVQ,EAAOE,QAAQ0B,WAAaT,EAC5BpB,EAAMc,aAAc,EAEpBd,EAAMe,gBAAiB,GAI/B6B,mBAAoB,SAAC5C,EAAOC,GACxBD,EAAMc,aAAc,EACpBd,EAAMwC,YAAcvC,EAAOE,QAAQqC,YACnCxC,EAAM2B,MAAQ,MAGlBkB,oBAAqB,SAAC7C,EAAOC,GACzBD,EAAMc,aAAc,EACpBd,EAAMyC,gBAAkBxC,EAAOE,QAAQsC,gBACvCzC,EAAM2B,MAAQ,MAGlBmB,oBAAqB,SAAC9C,EAAOC,GACzBD,EAAMc,aAAc,EACpBd,EAAMuC,aAAetC,EAAOE,QAAQoC,aACpCvC,EAAM2B,MAAQ,MAElBoB,SAAS,SAAC/C,EAAMC,GACZD,EAAMc,aAAc,EACpBd,EAAMe,gBAAiB,EACvBf,EAAMwC,iBAAa/C,EACnBO,EAAMyC,qBAAiBhD,EACvBO,EAAMuC,kBAAe9C,EACrBO,EAAM2B,MAAQ,SC1DpBqB,EAAoB,CACtBlC,aAAa,EACbC,gBAAgB,EAChBC,WAAY,EACZiC,qBAAiBxD,EACjBkC,MAAO,MAGIP,EACL,OAIK8B,EAAgB5B,YAAY,CACvCC,KAAK,aACLC,aAAawB,EACbvB,SAAS,CACPC,WAAW,SAAC1B,EAAMC,GACdD,EAAM2B,MAAQ1B,EAAOE,QAAQwB,MAAMC,cACnC5B,EAAMiD,qBAAgBxD,EACnBQ,EAAOE,QAAQ0B,WAAWT,EACzBpB,EAAMc,aAAY,EAElBd,EAAMe,gBAAe,GAG7Be,SAAS,SAAC9B,EAAMC,GACZD,EAAM2B,MAAM,KACT1B,EAAOE,QAAQ0B,WAAWT,EACzBpB,EAAMc,aAAY,EAElBd,EAAMe,gBAAe,GAG7BoC,kBAAkB,SAACnD,EAAMC,GACrBD,EAAMc,aAAY,EAClBd,EAAMiD,gBAAgBhD,EAAOE,QAAQ8C,gBACrCjD,EAAM2B,MAAM,MAEhByB,eAAe,SAACpD,EAAMC,GAClBD,EAAMe,gBAAe,EACrBf,EAAMc,aAAY,EAClBd,EAAMiD,qBAAgBxD,EACtBO,EAAM2B,MAAM,S,WCdL0B,GAdJC,EAAcC,YAAgB,CACzCC,KAAMA,EACNtC,aAAcG,EAAU1B,QACxBuC,UAAWC,EAAexC,QAM1B4C,aAAcG,EAAkB/C,QAEhC8D,WAAWP,EAAgBvD,UAGtB,SAAU0D,IAAV,iEACL,OADK,SACCK,YAAI,CAACF,MADN,uCCzBP,IAAMG,EAAiBC,cACjBC,EAAU,sBACXC,YAAqB,CACtBC,gBAAgB,EAChBC,mBAAmB,EACnBC,OAAO,KAJK,CAMdN,IAGIO,EAAQC,YAAe,CAC3BxE,QAAS2D,EACTO,aACAO,UAAUvF,EACVwF,UAAW,CAACC,gBAODC,GAAYC,YAAaN,GAEtCP,EAAec,IAAIpB,GAEJa,S,2EC3BTQ,GAAkB7F,wmBAAY8F,2BAA6B,aAC3DnD,GAAe,CACjBoD,aAAc,MAGlB,SAASC,KACP,IAAMC,EAAKC,aAAaC,QAAQN,IAChC,GAAII,EACF,IACE,OAAOG,KAAKC,MAAMJ,GAClB,MAAOK,GACPC,QAAQzD,MAAMwD,GAGlB,OAAO3D,GAST,IAAM6D,GAAcC,0BAEb,SAASC,KACd,OAAOC,qBAAWH,IAAaT,aAiBLS,GAAYI,SAEjC,SAASC,GAAT,GAA6C,IAAbC,EAAY,EAAZA,SAC/BC,EAAOC,kBAAQhB,GAAW,IAEhC,OAAO,kBAACQ,GAAYS,SAAb,CAAsBC,MAAOH,GAAOD,G,eClCvCK,I,iDAAc,CAClBC,G,OACAC,G,OACAC,G,OACAC,G,OACAC,G,OACAC,G,SAGK,SAASC,GAAT,GAAqC,IAAbZ,EAAY,EAAZA,SACvBa,EAASjB,KACTkB,EAAWT,GAAYQ,GAE7B,OACE,kBAAC,KAAD,CAAcA,OAAQA,EAAQC,SAAUA,GACrCd,G,uBC9BA,IAAMe,GAAb,oGAUYC,GACRC,KAAKC,OAASD,KAAKE,QAAQH,GAG3BC,KAAKG,QAAU,CACbC,OAAQ,GACRC,iBAAkB,GAClBC,cAAe,GACfC,YAAa,GACbC,MAAO,GACPC,WAAY,GACZC,UAAW,GACXC,oBAAqB,GACrBC,QAAS,GACTC,kBAAmB,GACnBC,iBAAkB,IAGpBd,KAAKe,WAAa,CAChBN,WAAY,GACZH,cAAe,GACfC,YAAa,IAIfP,KAAKgB,aACLhB,KAAKiB,aAGLjB,KAAKkB,aACLlB,KAAKmB,gBAELnB,KAAKoB,cAELpB,KAAKqB,YAGLrB,KAAKsB,aAGLtB,KAAKuB,cAlDT,8BAqDUxB,GACN,IAAMyB,EAAgBC,OAAOC,OAAO,GAAI3B,GAClC4B,EAAyBC,KAAW7H,IAAIyH,EAAe,6BAS7D,OARuBI,KAAW7H,IAAIyH,EAAe,oBAC/BG,EAEpBH,EAAcd,UAAUmB,MAAQ,QAGhCL,EAAcd,UAAUoB,OAAQ,EAE3BN,IAhEX,iCAyEaO,EAAMC,GACf,GAAID,EAAM,CACR,IAAM5B,EAAUyB,KAAW7H,IAAIiG,KAAKG,QAAS4B,IAAS,GACtD,OAAIC,GAAYC,MAAMC,QAAQ/B,GACrBA,EAAQgC,KAAK,KAEfhC,EAAQ6B,WAEjB,OAAOhC,KAAKG,UAjFhB,oCAoFgB4B,GACZ,OAAIA,GACiBH,KAAW7H,IAAIiG,KAAKe,WAAYgB,IAG9C,KAzFX,gCA6FI,IAAMK,EAAYR,KAAW7H,IAAIiG,KAAKC,OAAQ,oBAC9C,OAESlI,EAFS,UAAdqK,EAEmB,wCAGA,iDAnG3B,sCAwGI,IAAIC,EAAOT,KAAW7H,IAAIiG,KAAKC,OAAQ,oBAIvC,MAHoB,qBAAToC,IACTA,EAAOrC,KAAKsC,WAEPD,EAAO,KA5GlB,mCAmHI,IAAME,EAA0BX,KAAW7H,IAAIiG,KAAKC,OAAQ,8BACxDsC,IACFC,SAASC,KAAKZ,MAAMa,gBAApB,eAA8CH,EAA9C,SAGF,IAAMI,EAAiBf,KAAW7H,IAAIiG,KAAKC,OAAQ,mBAC/C0C,GACkBA,EAAeX,WAAW1J,MAAM,KACxCsK,SAAQ,SAAAC,GAAQ,OAAIL,SAASC,KAAKK,UAAUC,IAAIF,MAI9DL,SAASC,KAAKK,UAAUC,IAAI,qBAC5BP,SAASC,KAAKK,UAAUC,IAAI,oBAC5BP,SAASC,KAAKK,UAAUC,IAAI,qBAjIhC,yEA8JI,GAhB+BnB,KAAW7H,IAAIiG,KAAKC,OAAQ,8BAEzDuC,SAASC,KAAKK,UAAUC,IAAI,gBAC5BnB,KAAWoB,KAAKhD,KAAKG,QAAS,SAAU,iBAExCqC,SAASC,KAAKK,UAAUC,IAAI,iBAGCnB,KAAW7H,IAAIiG,KAAKC,OAAQ,8BAEzDuC,SAASC,KAAKK,UAAUC,IAAI,uBAC5BnB,KAAWoB,KAAKhD,KAAKG,QAAS,gBAAiB,wBAInByB,KAAW7H,IAAIiG,KAAKC,OAAQ,4BAC/B,CACzB,IAAMgD,EAAuBrB,KAAW7H,IAAIiG,KAAKC,OAAQ,2BACnDiD,EAAwB,6BAAyBD,GACvDrB,KAAWoB,KAAKhD,KAAKG,QAAS,cAAe+C,GAEnCtB,KAAW7H,IAAIiG,KAAKC,OAAQ,gCACpC2B,KAAWoB,KAAKhD,KAAKG,QAAS,cAAe,0BAKzB,UADAyB,KAAW7H,IAAIiG,KAAKC,OAAQ,qBAElD2B,KAAWoB,KAAKhD,KAAKG,QAAS,mBAAoB,mBAElDyB,KAAWoB,KAAKhD,KAAKG,QAAS,mBAAoB,eA5KxD,sCAqLI,GADyByB,KAAW7H,IAAIiG,KAAKC,OAAQ,qBACrD,CACEuC,SAASC,KAAKK,UAAUC,IAAI,qBAM9B,IAAMI,EAAiBvB,KAAW7H,IAAIiG,KAAKC,OAAQ,mBAC7C0B,EAAyBC,KAAW7H,IAAIiG,KAAKC,OAAQ,6BACvDkD,GAAkBxB,GACpBa,SAASC,KAAKK,UAAUC,IAAI,mBAM9B,IAAMK,EAAiBxB,KAAW7H,IAAIiG,KAAKC,OAAQ,mBACnD,GAAImD,EAAgB,CAClB,IAAMC,EAAc,oBAAgBD,GACpCxB,KAAWoB,KAAKhD,KAAKG,QAAS,YAAakD,GAItB,UADAzB,KAAW7H,IAAIiG,KAAKC,OAAQ,mBAEjD2B,KAAWoB,KAAKhD,KAAKG,QAAS,sBAAuB,mBAErDyB,KAAWoB,KAAKhD,KAAKG,QAAS,sBAAuB,aAGnDyB,KAAW7H,IAAIiG,KAAKC,OAAQ,oBAC9B2B,KAAWoB,KAAKhD,KAAKG,QAAS,YAAa,WAnNjD,oCA2NQyB,KAAW7H,IAAIiG,KAAKC,OAAQ,oBAC9B2B,KAAWoB,KAAKhD,KAAKG,QAAS,UAAW,QAGvCyB,KAAW7H,IAAIiG,KAAKC,OAAQ,uBAC9B2B,KAAWoB,KAAKhD,KAAKG,QAAS,UAAW,QAGU,UAAjDyB,KAAW7H,IAAIiG,KAAKC,OAAQ,iBAC9B2B,KAAWoB,KAAKhD,KAAKG,QAAS,oBAAqB,mBAEnDyB,KAAWoB,KAAKhD,KAAKG,QAAS,oBAAqB,eAtOzD,kCA+OI,IAAMmD,EAAmB1B,KAAW7H,IAAIiG,KAAKC,OAAQ,sBACrD,GAAKqD,IAKLd,SAASC,KAAKK,UAAUC,IAAI,iBAGLnB,KAAW7H,IAAIiG,KAAKC,OAAQ,qBAEjDuC,SAASC,KAAKK,UAAUC,IAAI,eAC5BnB,KAAWoB,KAAKhD,KAAKG,QAAS,QAAS,gBAEvCqC,SAASC,KAAKK,UAAUC,IAAI,gBAIzBO,GAAL,CAKI1B,KAAW7H,IAAIiG,KAAKC,OAAQ,gCAC9BuC,SAASC,KAAKK,UAAUC,IAAI,kBAG1BnB,KAAW7H,IAAIiG,KAAKC,OAAQ,kCAC9BuC,SAASC,KAAKK,UAAUC,IAAI,4BAK9B,IAAMQ,EAAoB3B,KAAW7H,IAAIiG,KAAKC,OAAQ,uBAClDsD,IACF3B,KAAWoB,KAAKhD,KAAKG,QAAS,aAAc,uBAC5CH,KAAKe,WAAWN,WAAW,sBAAwB,KAIrDT,KAAKe,WAAWN,WAAW,oBAAsB8C,EAAoB,IAAM,IAE3E,IAAMC,EAA4B5B,KAAW7H,IAC3CiG,KAAKC,OACL,6CAEEuD,IACFxD,KAAKe,WAAWN,WACd,8BACE+C,MAhSV,mCAySQ5B,KAAW7H,IAAIiG,KAAKC,OAAQ,iBAC9BuC,SAASC,KAAKK,UAAUC,IAAI,gBAG2B,UAArDnB,KAAW7H,IAAIiG,KAAKC,OAAQ,qBAC9B2B,KAAWoB,KAAKhD,KAAKG,QAAS,mBAAoB,mBAElDyB,KAAWoB,KAAKhD,KAAKG,QAAS,mBAAoB,eAhTxD,kCAuTI,GADyByB,KAAW7H,IAAIiG,KAAKC,OAAQ,sBAI9C,CACL,IAAMwD,EAAiB7B,KAAW7H,IAAIiG,KAAKC,OAAQ,oBACnDuC,SAASC,KAAKK,UAAUC,IAAxB,gBAAqCU,QALhB,CACrB,IAAMC,EAAkB9B,KAAW7H,IAAIiG,KAAKC,OAAQ,qBACpDuC,SAASC,KAAKK,UAAUC,IAAxB,gBAAqCW,SAzT3C,KCCMC,GACJ1L,wmBAAY2L,6BAA+B,eAE7C,SAAS3F,KACP,IAAMC,EAAKC,aAAaC,QAAQuF,IAChC,GAAIzF,EACF,IACE,OAAOG,KAAKC,MAAMJ,GAClB,MAAOK,GACPC,QAAQzD,MAAMwD,GAGlB,MCdO,CACLsF,KAAM,QACNC,GAAI,CACFC,YAAc,CACZC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,OACJC,IAAK,QAEPC,OAAQ,CACNC,MAAO,CACLC,KAAM,CACJ,MAAS,UACT,QAAW,UACX,UAAa,UACb,QAAW,UACX,KAAQ,UACR,QAAW,UACX,OAAU,UACV,MAAS,UACT,KAAQ,WAEVC,MAAO,CACL,MAAS,UACT,QAAW,UACX,UAAa,UACb,QAAW,UACX,KAAQ,UACR,QAAW,UACX,OAAU,UACV,MAAS,UACT,KAAQ,WAEVC,QAAS,CACP,MAAS,UACT,QAAW,UACX,UAAa,UACb,QAAW,UACX,KAAQ,UACR,QAAW,UACX,OAAU,UACV,MAAS,UACT,KAAQ,YAGZC,KAAM,CACJ,QAAW,UACX,QAAW,UACX,QAAW,UACX,QAAW,UACX,QAAW,UACX,QAAW,UACX,QAAW,UACX,QAAW,UACX,QAAW,YAGfC,WAAY,WAGdC,OAAQ,CACNC,SAAS,EACTvL,KAAM,GACN+I,KAAMtK,EAAc,iCACpB+M,QAAS,eAGXC,QAAS,CACPC,SAAS,GAEX5E,OAAQ,CACN6E,KAAM,CACJC,MAAO,QACPZ,MAAO,QACPxC,MAAO,CACLqD,SAAS,EACTC,QAAQ,IAGZC,KAAM,CACJJ,KAAM,CACJD,SAAS,EACTM,OAAQ,UACR,cAAc,EACd,aAAc,WAEhBH,QAAS,CACPI,OAAO,EACPC,OAAQ,QACRC,QAAS,CACPnB,MAAO,QACPiB,OAAO,IAGXH,OAAQ,CACNK,QAAS,CACPnB,MAAO,OACPoB,WAAW,MAKnBhF,UAAW,CACTsE,SAAS,EACTW,aAAa,EACbC,wBAAwB,EACxBN,OAAQ,eACRxD,OAAO,EACPoD,MAAO,QACPW,OAAO,EACPhE,MAAO,SAETjB,QAAS,CACPsE,MAAO,SAETY,MAAO,CACLb,KAAM,CACJX,MAAO,UAGX9D,MAAO,CACLyE,KAAM,CACJX,MAAO,QACPU,SAAS,EACTlD,OAAO,EACPiE,SAAU,CACRP,QAAQ,EACRQ,SAAS,EACTC,WAAW,IAGfC,OAAQ,CACNjB,KAAM,CACJD,SAAS,IAGbK,KAAM,CACJc,UAAU,EACVC,QAAQ,EACR,aAAc,UACdX,QAAS,CACPC,WAAW,EACXS,SAAU,CACRZ,OAAO,EACP,gBAAiB,QAKzBW,OAAQ,CACNjB,KAAM,CACJnD,OAAO,EACPoD,MAAO,UAGXmB,OAAQ,CACNC,OAAQ,CACNtB,SAAS,EACTM,OAAQ,WACRiB,UAAW,CACTC,UAAW,UAGfC,cAAe,CACbzB,SAAS,EACTM,OAAQ,WACRa,SAAU,CACRtE,MAAO,QAET0E,UAAW,CACTG,WAAY,UAGhB,gBAAiB,CACf1B,SAAS,EACTM,OAAQ,WACRa,SAAU,CACRtE,MAAO,QAET0E,UAAW,CACTG,WAAY,UAGhB9N,KAAM,CACJoM,SAAS,EACTM,OAAQ,WACRa,SAAU,CACRtE,MAAO,SAET0E,UAAW,CACTG,WAAY,UAGhBC,UAAW,CACT3B,SAAS,GAEX4B,KAAM,CACJ5B,SAAS,EACTmB,SAAU,CACRtE,MAAO,SAGX,cAAe,CACbmD,SAAS,EACTuB,UAAW,CACTG,WAAY,UAGhBG,KAAM,CACJ7B,SAAS,GAEXD,QAAS,CACPC,SAAS,GAEX8B,UAAW,CACT9B,SAAS,KDjMjB,IAAM+B,GAA0BrI,0BAQzB,SAASsI,KACd,OAAOpI,qBAAWmI,IAkBoBA,GAAwBlI,SAEzD,SAASoI,GAAT,GAA+C,IAAblI,EAAY,EAAZA,SACjCmI,EAAKjI,kBAAQhB,GAAW,IACxBkJ,EAAMlI,mBAAQ,WAClB,IAAMmI,EAAU,IAAItH,GAIpB,OAFAsH,EAAQC,UAAUH,GAEXE,IACN,CAACF,IAEJ,OACE,kBAACH,GAAwB7H,SAAzB,CAAkCC,MAAOgI,GACtCpI,G,0EE5DDuI,GAA0B,CAC9BC,WAAY,EACZC,kBAAkB,GAGb,SAASC,GAAT,GAAiC,IAATzN,EAAQ,EAARA,KAC7B,OAAKA,EAIe,IAAhBA,EAAKqB,OAEL,yBACEwG,MAAO,CAAE6F,UAAW,QAASC,SAAU,UACvCC,UAAU,+CAEV,yBAAKA,UAAU,uBACb,yBAAKA,UAAU,qBAAf,qBAON,yBACE/F,MAAO,CAAE6F,UAAW,QAASC,SAAU,UACvCC,UAAU,+CAEV,kBAAC,KAAD,CACEC,QAASP,GACTM,UAAU,SACV/F,MAAO,CAAE6F,UAAW,QAASI,SAAU,aAEvC,yBAAKF,UAAU,uBAEb,yBAAKA,UAAU,oEAAf,aAGA,yBAAKA,UAAU,SACb,yBAAKA,UAAU,8CACb,yBAAKA,UAAU,iDACb,kBAAC,IAAD,CAAKG,IAAKhQ,EAAc,+BAE1B,yBAAK6P,UAAU,qCACb,uBACEI,KAAK,IACLJ,UAAU,iDAFZ,wBAMA,0BAAMA,UAAU,4CAAhB,kBAMJ,yBAAKA,UAAU,8CACb,yBAAKA,UAAU,iDACb,kBAAC,IAAD,CAAKG,IAAKhQ,EAAc,+BAE1B,yBAAK6P,UAAU,qCACb,uBACEI,KAAK,IACLJ,UAAU,iDAFZ,yBAMA,0BAAMA,UAAU,4CAAhB,mBAMJ,yBAAKA,UAAU,8CACb,yBAAKA,UAAU,iDACb,kBAAC,IAAD,CAAKG,IAAKhQ,EAAc,+BAE1B,yBAAK6P,UAAU,qCACb,uBACEI,KAAK,IACLJ,UAAU,iDAFZ,sBAMA,0BAAMA,UAAU,4CAAhB,mBAMJ,yBAAKA,UAAU,8CACb,yBAAKA,UAAU,iDACb,kBAAC,IAAD,CAAKG,IAAKhQ,EAAc,+BAE1B,yBAAK6P,UAAU,qCACb,uBACEI,KAAK,IACLJ,UAAU,iDAFZ,gCAMA,0BAAMA,UAAU,4CAAhB,qBASN,yBAAKA,UAAU,oEAAf,WAGA,yBAAKA,UAAU,SACb,yBAAKA,UAAU,8CACb,yBAAKA,UAAU,mCACb,yBACEA,UAAU,eACV/F,MAAO,CACLa,gBAAgB,OAAD,OAAS3K,EACtB,2BADa,SAMrB,yBAAK6P,UAAU,qCACb,uBACEI,KAAK,IACLJ,UAAU,iDAFZ,iBAMA,0BAAMA,UAAU,4CAAhB,iBAKJ,yBAAKA,UAAU,8CACb,yBAAKA,UAAU,mCACb,yBACEA,UAAU,eACV/F,MAAO,CACLa,gBAAgB,OAAD,OAAS3K,EACtB,gCAKR,yBAAK6P,UAAU,qCACb,uBACEI,KAAK,IACLJ,UAAU,iDAFZ,qBAMA,0BAAMA,UAAU,4CAAhB,uBAKJ,yBAAKA,UAAU,8CACb,yBAAKA,UAAU,mCACb,yBACEA,UAAU,eACV/F,MAAO,CACLa,gBAAgB,OAAD,OAAS3K,EACtB,2BADa,SAMrB,yBAAK6P,UAAU,qCACb,uBACEI,KAAK,IACLJ,UAAU,iDAFZ,eAMA,0BAAMA,UAAU,4CAAhB,wBAKJ,yBAAKA,UAAU,8CACb,yBAAKA,UAAU,mCACb,yBACEA,UAAU,eACV/F,MAAO,CACLa,gBAAgB,OAAD,OAAS3K,EACtB,2BADa,SAMrB,yBAAK6P,UAAU,qCACb,uBACEI,KAAK,IACLJ,UAAU,iDAFZ,aAMA,0BAAMA,UAAU,4CAAhB,0BASN,yBAAKA,UAAU,oEAAf,SAGA,yBAAKA,UAAU,SACb,yBAAKA,UAAU,8CACb,yBAAKA,UAAU,gDACb,yBAAKA,UAAU,gBACb,uBAAGA,UAAU,gCAGjB,yBAAKA,UAAU,qCACb,uBACEI,KAAK,IACLJ,UAAU,iDAFZ,0BAMA,0BAAMA,UAAU,4CAAhB,kBAKJ,yBAAKA,UAAU,8CACb,yBAAKA,UAAU,gDACb,yBAAKA,UAAU,gBACb,uBAAGA,UAAU,yCAGjB,yBAAKA,UAAU,qCACb,uBACEI,KAAK,IACLJ,UAAU,iDAFZ,6BAMA,0BAAMA,UAAU,4CAAhB,qBAKJ,yBAAKA,UAAU,8CACb,yBAAKA,UAAU,gDACb,yBAAKA,UAAU,gBACb,uBAAGA,UAAU,gDAGjB,yBAAKA,UAAU,qCACb,uBACEI,KAAK,IACLJ,UAAU,iDAFZ,yBAMA,0BAAMA,UAAU,4CAAhB,uBAKJ,yBAAKA,UAAU,8CACb,yBAAKA,UAAU,gDACb,yBAAKA,UAAU,gBACb,uBAAGA,UAAU,mDAGjB,yBAAKA,UAAU,qCACb,uBACEI,KAAK,IACLJ,UAAU,iDAFZ,yBAMA,0BAAMA,UAAU,4CAAhB,2BAlRL,KCV0BK,IAAMC,YAAW,SAACC,EAAOC,GAC5D,OACE,uBACEA,IAAKA,EACLR,UAAU,wDACVS,QAAS,SAAAC,GACPA,EAAEC,iBACFJ,EAAME,QAAQC,KAGfH,EAAMpJ,aAVN,ICDMyJ,GAA4BP,IAAMC,YAAW,SAACC,EAAOC,GAChE,OACE,yBACEA,IAAKA,EACLR,UAAU,cACVS,QAAS,SAAAC,GACPA,EAAEC,iBACFJ,EAAME,QAAQC,KAGfH,EAAMpJ,aAKbyJ,GAA0BC,YAAc,4BCRxC,IAAMC,GAAW,CACf,CACEpP,KAAM,EACNqP,KAAM,WAER,CACErP,KAAM,EACNqP,KAAM,uBACNC,YAAa,eACbC,UAAW9Q,EAAc,yBAE3B,CACEuB,KAAM,EACNqP,KAAM,wBACNC,YAAa,gBACbC,UAAW9Q,EAAc,yBAE3B,CACEuB,KAAM,EACNqP,KAAM,qBACNC,YAAa,eACbC,UAAW9Q,EAAc,yBAE3B,CACEuB,KAAM,EACNqP,KAAM,uBACNC,YAAa,eACbC,UAAW9Q,EAAc,yBAE3B,CACE4Q,KAAM,YACNrP,KAAM,GAER,CACEA,KAAM,EACNqP,KAAM,cACNC,YAAa,qBACbC,UAAW9Q,EAAc,4BAE3B,CACEuB,KAAM,EACNqP,KAAM,gBACNC,YAAa,cACbC,UAAW9Q,EAAc,4BAE3B,CACEuB,KAAM,EACNqP,KAAM,oBACNC,YAAa,oBACbC,UAAW9Q,EAAc,4BAE3B,CACEuB,KAAM,EACNqP,KAAM,cACNC,YAAa,qBACbC,UAAW9Q,EAAc,2BAE3B,CACEuB,KAAM,EACNqP,KAAM,SAER,CACErP,KAAM,EACNqP,KAAM,wBACNC,YAAa,oBACbE,cAAe,6BAEjB,CACExP,KAAM,EACNqP,KAAM,yBACNC,YAAa,eACbE,cAAe,2BAEjB,CACExP,KAAM,EACNqP,KAAM,4BACNC,YAAa,kBACbE,cAAe,sCAEjB,CACExP,KAAM,EACNqP,KAAM,wBACNC,YAAa,oBACbE,cAAe,8CAIZ,SAASC,KAAkB,IAI5BC,EAJ2B,EACDC,oBAAS,GADR,oBACxBC,EADwB,KACfC,EADe,OAEPF,mBAAS,MAFF,oBAExBjP,EAFwB,KAElBoP,EAFkB,OAGOH,mBAAS,IAHhB,oBAGxBI,EAHwB,KAGXC,EAHW,KAMzBC,EAAe,SAAfA,IACAP,IACFO,IACAP,OAAYnQ,IA0BhB2Q,qBAAU,WACR,OAAO,WACLD,OAGD,IAEH,IAAME,EAAYzC,KACZ0C,EAAczK,mBAAQ,WAC1B,MAAO,CACLsH,UAEE,cADA3E,KAAW7H,IAAI0P,EAAUxJ,OAAQ,2BAGpC,CAACwJ,IAEJ,OACE,oCACGC,EAAYnD,WACX,yBAAKqB,UAAU,eACb,yBACEA,UAAU,qCACV+B,GAAG,0BAEH,0BAAM/B,UAAU,yCACd,kBAAC,IAAD,CAAKG,IAAKhQ,EAAc,6CAK9B2R,EAAYnD,WACZ,kBAACqD,GAAA,EAAD,CACEC,YAAU,EACVC,KAAK,OACLC,SAAU,WACRX,EAAQ,MACRD,GAAW,GACXG,EAAe,KAEjBK,GAAG,0BAEH,kBAACC,GAAA,EAASI,OAAV,CAAiBC,GAAIzB,IACnB,kBAAC0B,GAAA,EAAD,CACEC,UAAU,SACVC,QAAS,kBAACC,GAAA,EAAD,CAASV,GAAG,wBAAZ,iBAET,yBAAK/B,UAAU,mDACb,0BAAMA,UAAU,yCACd,kBAAC,IAAD,CACEG,IAAKhQ,EAAc,6CAM7B,kBAAC6R,GAAA,EAASU,KAAV,CAAe1C,UAAU,oFACvB,yBACE+B,GAAG,2BACH/B,UAAW2C,aAAK,qCAAsC,CACpD,0BAA2BvQ,GAAQA,EAAKqB,UAG1C,0BAAMuM,UAAU,qBACd,yBAAKA,UAAU,eACb,yBAAKA,UAAS,uBACZ,0BAAMA,UAAU,oBACd,0BAAMA,UAAU,wBACd,kBAAC,IAAD,CACEG,IAAKhQ,EACH,4CAMV,2BACEuB,KAAK,OACLkR,WAAW,EACXC,YAAY,YACZtL,MAAOkK,EACPqB,SAtGS,SAACC,GAC1BvB,EAAQ,MACRE,EAAeqB,EAAMC,OAAOzL,OAExBwL,EAAMC,OAAOzL,MAAM9D,OAAS,IAC9BkO,IAEAJ,GAAW,GAGXH,EAAY6B,YAAW,WACrBzB,EAAQV,IACRS,GAAW,KACV,OA0FWvB,UAAU,iBAGZ,yBACEA,UAAS,6BACPsB,EAAU,qCAAuC,GAD1C,QAIT,0BAAMtB,UAAU,oBACd,uBACE/F,MAAO,CACLmD,QACEkE,GAAWG,GAAeA,EAAYhO,OAAS,EAC3C,OACA,QAERgN,QAtGR,WACZe,EAAQ,MACRE,EAAe,KAqGK1B,UAAU,0DAMpB,kBAACH,GAAD,CAAczN,KAAMA,Q,0BChO5BsN,GAA0B,CAC9BC,WAAY,EACZC,kBAAkB,GAGb,SAASsD,KAA6B,IAAD,EACpB7B,mBAAS,UADW,oBACnC/P,EADmC,KAC9B6R,EAD8B,KAEpCC,EAAUjT,EAAc,wBAExB0R,EAAYzC,KACZ0C,EAAczK,mBAAQ,WAC1B,MAAO,CACLsH,UAEE,cADA3E,KAAW7H,IAAI0P,EAAUxJ,OAAQ,kCAGpC,CAACwJ,IAEJ,OACE,oCACGC,EAAYnD,WACX,yBAAKqB,UAAU,eACb,yBACEA,UAAU,yDACV+B,GAAG,iCAEH,0BAAM/B,UAAU,yCACd,kBAAC,IAAD,CAAKG,IAAKhQ,EAAc,0CAE1B,0BAAM6P,UAAU,kBAIpB8B,EAAYnD,WACZ,kBAACqD,GAAA,EAAD,CAAUE,KAAK,OAAOD,YAAU,GAC9B,kBAACD,GAAA,EAASI,OAAV,CACEC,GAAIzB,GACJmB,GAAG,iCAEH,kBAACO,GAAA,EAAD,CACEC,UAAU,SACVC,QACE,kBAACC,GAAA,EAAD,CAASV,GAAG,6BAAZ,uBAKF,yBACE/B,UAAU,yDACV+B,GAAG,iCAEH,0BAAM/B,UAAU,yCACd,kBAAC,IAAD,CACEG,IAAKhQ,EAAc,0CAGvB,0BAAM6P,UAAU,eAChB,0BAAMA,UAAU,kBAKtB,kBAACgC,GAAA,EAASU,KAAV,CAAe1C,UAAU,oFACvB,8BAEE,yBACEA,UAAU,oEACV/F,MAAO,CAAEa,gBAAgB,OAAD,OAASsI,EAAT,OAExB,wBAAIpD,UAAU,kCACZ,0BAAMA,UAAU,cAAhB,sBACA,0BAAMA,UAAU,qEAAhB,WAKF,kBAACqD,GAAA,EAAIC,UAAL,CAAeC,iBAAkBjS,GAC/B,kBAACkS,GAAA,EAAD,CACEnB,GAAG,KACHrC,UAAU,qIACVyD,SAAU,SAACC,GAAD,OAAUP,EAAOO,KAE3B,kBAACF,GAAA,EAAIG,KAAL,CAAU3D,UAAU,WAAWqC,GAAG,MAChC,kBAACmB,GAAA,EAAII,KAAL,CACEC,SAAS,SACT7D,UAAS,wBACC,WAAR1O,EAAmB,SAAW,KAHlC,WASF,kBAACkS,GAAA,EAAIG,KAAL,CAAUtB,GAAG,MACX,kBAACmB,GAAA,EAAII,KAAL,CACEC,SAAS,SACT7D,UAAS,wBACC,WAAR1O,EAAmB,SAAW,KAHlC,WASF,kBAACkS,GAAA,EAAIG,KAAL,CAAUtB,GAAG,MACX,kBAACmB,GAAA,EAAII,KAAL,CACEC,SAAS,OACT7D,UAAS,wBACC,SAAR1O,EAAiB,SAAW,KAHhC,UAWJ,kBAAC+R,GAAA,EAAIS,QAAL,CAAa9D,UAAU,eACrB,kBAACqD,GAAA,EAAIU,KAAL,CAAUF,SAAS,SAAS7D,UAAU,OACpC,kBAAC,KAAD,CACEC,QAASP,GACTM,UAAU,oBACV/F,MAAO,CAAE6F,UAAW,QAASI,SAAU,aAEvC,yBAAKF,UAAU,kCACb,yBAAKA,UAAU,8CACb,0BAAMA,UAAU,gBACd,kBAAC,IAAD,CACEG,IAAKhQ,EACH,qCAEF6P,UAAU,mCAIhB,yBAAKA,UAAU,uCACb,uBACEI,KAAK,IACLJ,UAAU,kDAFZ,gBAMA,0BAAMA,UAAU,cAAhB,0CAKJ,yBAAKA,UAAU,kCACb,yBAAKA,UAAU,8CACb,0BAAMA,UAAU,gBACd,kBAAC,IAAD,CACEG,IAAKhQ,EACH,4CAEF6P,UAAU,mCAIhB,yBAAKA,UAAU,uCACb,uBACEI,KAAK,IACLJ,UAAU,qDAFZ,gBAMA,0BAAMA,UAAU,cAAhB,0CAKJ,yBAAKA,UAAU,kCACb,yBAAKA,UAAU,8CACb,0BAAMA,UAAU,gBACd,kBAAC,IAAD,CACEG,IAAKhQ,EACH,iDAEF6P,UAAU,mCAIhB,yBAAKA,UAAU,uCACb,uBACEI,KAAK,IACLJ,UAAU,kDAFZ,gBAMA,0BAAMA,UAAU,cAAhB,0CAKJ,yBAAKA,UAAU,kCACb,yBAAKA,UAAU,6CACb,0BAAMA,UAAU,gBACd,kBAAC,IAAD,CACEG,IAAKhQ,EACH,4CAEF6P,UAAU,kCAIhB,yBAAKA,UAAU,uCACb,uBACEI,KAAK,IACLJ,UAAU,kDAFZ,gBAMA,0BAAMA,UAAU,cAAhB,0CAKJ,yBAAKA,UAAU,kCACb,yBAAKA,UAAU,2CACb,0BAAMA,UAAU,gBACd,kBAAC,IAAD,CACEG,IAAKhQ,EACH,4CAEF6P,UAAU,gCAIhB,yBAAKA,UAAU,uCACb,uBACEI,KAAK,IACLJ,UAAU,kDAFZ,gBAMA,0BAAMA,UAAU,cAAhB,0CAKJ,yBAAKA,UAAU,kCACb,yBAAKA,UAAU,2CACb,0BAAMA,UAAU,gBACd,kBAAC,IAAD,CACEG,IAAKhQ,EACH,wDAEF6P,UAAU,gCAIhB,yBAAKA,UAAU,uCACb,uBACEI,KAAK,IACLJ,UAAU,kDAFZ,gBAMA,0BAAMA,UAAU,cAAhB,0CAKJ,yBAAKA,UAAU,kCACb,yBAAKA,UAAU,2CACb,0BAAMA,UAAU,gBACd,kBAAC,IAAD,CACEG,IAAKhQ,EACH,sCAEF6P,UAAU,gCAIhB,yBAAKA,UAAU,uCACb,uBACEI,KAAK,IACLJ,UAAU,kDAFZ,gBAMA,0BAAMA,UAAU,cAAhB,4CAOR,kBAACqD,GAAA,EAAIU,KAAL,CACEF,SAAS,SACT9B,GAAG,+BAEH,kBAAC,KAAD,CACE9B,QAASP,GACTM,UAAU,8BACV/F,MAAO,CAAE6F,UAAW,QAASI,SAAU,aAEvC,uBAAGE,KAAK,IAAIJ,UAAU,aACpB,yBAAKA,UAAU,aACb,yBAAKA,UAAU,kBACb,uBAAGA,UAAU,uCAEf,yBAAKA,UAAU,aACb,yBAAKA,UAAU,oBAAf,gCAGA,yBAAKA,UAAU,cAAf,iBAKN,uBAAGI,KAAK,IAAIJ,UAAU,aACpB,yBAAKA,UAAU,aACb,yBAAKA,UAAU,kBACb,uBAAGA,UAAU,uCAEf,yBAAKA,UAAU,aACb,yBAAKA,UAAU,oBAAf,qCAGA,yBAAKA,UAAU,cAAf,iBAKN,uBAAGI,KAAK,IAAIJ,UAAU,aACpB,yBAAKA,UAAU,aACb,yBAAKA,UAAU,kBACb,uBAAGA,UAAU,iDAEf,yBAAKA,UAAU,aACb,yBAAKA,UAAU,oBAAf,+BAGA,yBAAKA,UAAU,cAAf,gBAKN,uBAAGI,KAAK,IAAIJ,UAAU,aACpB,yBAAKA,UAAU,aACb,yBAAKA,UAAU,kBACb,uBAAGA,UAAU,gCAEf,yBAAKA,UAAU,aACb,yBAAKA,UAAU,oBAAf,8BAGA,yBAAKA,UAAU,cAAf,gBAKN,uBAAGI,KAAK,IAAIJ,UAAU,aACpB,yBAAKA,UAAU,aACb,yBAAKA,UAAU,kBACb,uBAAGA,UAAU,+BAEf,yBAAKA,UAAU,aACb,yBAAKA,UAAU,oBAAf,iCAGA,yBAAKA,UAAU,cAAf,gBAKN,uBAAGI,KAAK,IAAIJ,UAAU,aACpB,yBAAKA,UAAU,aACb,yBAAKA,UAAU,kBACb,uBAAGA,UAAU,wCAEf,yBAAKA,UAAU,qBACb,yBAAKA,UAAU,oBAAf,8BAGA,yBAAKA,UAAU,cAAf,gBAKN,uBAAGI,KAAK,IAAIJ,UAAU,aACpB,yBAAKA,UAAU,aACb,yBAAKA,UAAU,kBACb,uBAAGA,UAAU,oCAEf,yBAAKA,UAAU,aACb,yBAAKA,UAAU,oBAAf,8BAGA,yBAAKA,UAAU,cAAf,gBAKN,uBAAGI,KAAK,IAAIJ,UAAU,aACpB,yBAAKA,UAAU,aACb,yBAAKA,UAAU,kBACb,uBAAGA,UAAU,qCAEf,yBAAKA,UAAU,aACb,yBAAKA,UAAU,oBAAf,iDAGA,yBAAKA,UAAU,cAAf,iBAKN,uBAAGI,KAAK,IAAIJ,UAAU,aACpB,yBAAKA,UAAU,aACb,yBAAKA,UAAU,kBACb,uBAAGA,UAAU,kDAEf,yBAAKA,UAAU,aACb,yBAAKA,UAAU,oBAAf,6BAGA,yBAAKA,UAAU,cAAf,iBAKN,uBAAGI,KAAK,IAAIJ,UAAU,aACpB,yBAAKA,UAAU,aACb,yBAAKA,UAAU,kBACb,uBAAGA,UAAU,yCAEf,yBAAKA,UAAU,aACb,yBAAKA,UAAU,oBAAf,4BAGA,yBAAKA,UAAU,cAAf,iBAKN,uBAAGI,KAAK,IAAIJ,UAAU,aACpB,yBAAKA,UAAU,aACb,yBAAKA,UAAU,kBACb,uBAAGA,UAAU,gCAEf,yBAAKA,UAAU,aACb,yBAAKA,UAAU,oBAAf,gCAGA,yBAAKA,UAAU,cAAf,iBAKN,uBAAGI,KAAK,IAAIJ,UAAU,aACpB,yBAAKA,UAAU,aACb,yBAAKA,UAAU,kBACb,uBAAGA,UAAU,qCAEf,yBAAKA,UAAU,aACb,yBAAKA,UAAU,oBAAf,qCAGA,yBAAKA,UAAU,cAAf,iBAKN,uBAAGI,KAAK,IAAIJ,UAAU,aACpB,yBAAKA,UAAU,aACb,yBAAKA,UAAU,kBACb,uBAAGA,UAAU,oCAEf,yBAAKA,UAAU,aACb,yBAAKA,UAAU,oBAAf,iCAGA,yBAAKA,UAAU,cAAf,iBAKN,uBAAGI,KAAK,IAAIJ,UAAU,aACpB,yBAAKA,UAAU,aACb,yBAAKA,UAAU,kBACb,uBAAGA,UAAU,wCAEf,yBAAKA,UAAU,aACb,yBAAKA,UAAU,oBAAf,8BAGA,yBAAKA,UAAU,cAAf,mBAMV,kBAACqD,GAAA,EAAIU,KAAL,CAAUF,SAAS,OAAO9B,GAAG,6BAC3B,yBAAK/B,UAAU,yDAAf,iBAEE,6BAFF,iCC3ef,SAASgE,KACd,IAAMZ,EAAUjT,EAAc,wBACxB0R,EAAYzC,KACZ0C,EAAczK,mBAAQ,WAC1B,MAAO,CACLsH,UAEE,cADA3E,KAAW7H,IAAI0P,EAAUxJ,OAAQ,kCAGpC,CAACwJ,IAEJ,OACE,oCACGC,EAAYnD,WACX,kBAAC2D,GAAA,EAAD,CACEC,UAAU,OACVC,QAAS,kBAACC,GAAA,EAAD,CAASV,GAAG,yBAAZ,kBAET,yBAAK/B,UAAU,eACb,yBACEA,UAAU,kDACV+B,GAAG,2BAEH,0BAAM/B,UAAU,yCACd,kBAAC,IAAD,CACEG,IAAKhQ,EAAc,+CAO7B2R,EAAYnD,WACZ,kBAACqD,GAAA,EAAD,CAAUE,KAAK,OAAOD,YAAU,GAC9B,kBAACD,GAAA,EAASI,OAAV,CACEC,GAAIzB,GACJmB,GAAG,iCAEH,kBAACO,GAAA,EAAD,CACEC,UAAU,SACVC,QACE,kBAACC,GAAA,EAAD,CAASV,GAAG,yBAAZ,kBAGF,yBAAK/B,UAAU,mDACb,0BAAMA,UAAU,yCACd,kBAAC,IAAD,CACEG,IAAKhQ,EAAc,8CAO7B,kBAAC6R,GAAA,EAASU,KAAV,CAAe1C,UAAU,6FACvB,8BAEE,yBACEA,UAAU,oHACV/F,MAAO,CAAEa,gBAAgB,OAAD,OAASsI,EAAT,OAExB,wBAAIpD,UAAU,2CAAd,iBAGA,0BAAMA,UAAU,oDAAhB,qBAMF,yBAAKA,UAAU,uBACb,yBAAKA,UAAU,SACb,uBACEI,KAAK,IACLJ,UAAU,4EAEV,0BAAMA,UAAU,yCACd,kBAAC,IAAD,CACEG,IAAKhQ,EACH,yCAIN,0BAAM6P,UAAU,gEAAhB,cAGA,0BAAMA,UAAU,qCAAhB,eAMJ,yBAAKA,UAAU,SACb,uBACEI,KAAK,IACLJ,UAAU,+DAET,IACD,0BAAMA,UAAU,yCACd,kBAAC,IAAD,CACEG,IAAKhQ,EACH,yDAIN,0BAAM6P,UAAU,gEAAhB,kBAGA,0BAAMA,UAAU,qCAAhB,aAMJ,yBAAKA,UAAU,SACb,uBACEI,KAAK,IACLJ,UAAU,8DAEV,0BAAMA,UAAU,yCACd,kBAAC,IAAD,CACEG,IAAKhQ,EACH,yCAIN,0BAAM6P,UAAU,gEAAhB,YAGA,0BAAMA,UAAU,qCAAhB,mBAMJ,yBAAKA,UAAU,SACb,uBACEI,KAAK,IACLJ,UAAU,iDAEV,0BAAMA,UAAU,yCACd,kBAAC,IAAD,CACEG,IAAKhQ,EACH,+CAIN,0BAAM6P,UAAU,gEAAhB,aAGA,0BAAMA,UAAU,qCAAhB,uBCvJpB,IAAMN,GAA0B,CAC9BC,WAAY,EACZC,kBAAkB,GAGb,SAASqE,KACd,IAAMb,EAAUjT,EAAc,wBAC9B,OACE,kBAAC6R,GAAA,EAAD,CAAUE,KAAK,OAAOD,YAAU,GAC9B,kBAACD,GAAA,EAASI,OAAV,CACEC,GAAIzB,GACJmB,GAAG,kCAEH,kBAACO,GAAA,EAAD,CACEC,UAAU,OACVC,QAAS,kBAACC,GAAA,EAAD,CAASV,GAAG,wBAAZ,cAET,yBAAK/B,UAAU,sCACb,0BAAMA,UAAU,yCACd,kBAAC,IAAD,CAAKG,IAAKhQ,EAAc,6CAKhC,kBAAC6R,GAAA,EAASU,KAAV,CAAe1C,UAAU,6FACvB,8BACE,yBACEA,UAAU,gFACV/F,MAAO,CAAEa,gBAAgB,OAAD,OAASsI,EAAT,OAExB,0BAAMpD,UAAU,0CACd,uBAAGA,UAAU,4CAEf,wBAAIA,UAAU,mCAAd,WACA,4BAAQtO,KAAK,SAASsO,UAAU,0BAAhC,YAIF,kBAAC,KAAD,CACEC,QAASP,GACTM,UAAU,SACV/F,MAAO,CAAE6F,UAAW,OAAQI,SAAU,aAEtC,yBAAKF,UAAU,yDACb,yBAAKA,UAAU,2BACb,uBACEI,KAAK,IACLJ,UAAU,iEAFZ,YAMA,0BAAMA,UAAU,cAAhB,6BACA,yBAAKA,UAAU,kCACb,0BAAMA,UAAU,kDAAhB,SAGA,0BAAMA,UAAU,mBAAhB,OACA,0BAAMA,UAAU,kDAAhB,KAGA,uBACEI,KAAK,IACLJ,UAAU,8CAEV,uBAAGA,UAAU,yBAEf,uBAAGI,KAAK,IAAIJ,UAAU,yCACpB,uBAAGA,UAAU,0BAInB,uBAAGI,KAAK,IAAIJ,UAAU,kCACpB,yBACEG,IAAKhQ,EAAc,kCACnB+T,IAAI,OAKV,yBAAKlE,UAAU,8BAEf,yBAAKA,UAAU,yDACb,yBAAKA,UAAU,2BACb,uBACEI,KAAK,IACLJ,UAAU,iEAFZ,gBAMA,0BAAMA,UAAU,cAAhB,0BACA,yBAAKA,UAAU,kCACb,0BAAMA,UAAU,kDAAhB,SAGA,0BAAMA,UAAU,mBAAhB,OACA,0BAAMA,UAAU,kDAAhB,KAGA,uBACEI,KAAK,IACLJ,UAAU,8CAEV,uBAAGA,UAAU,yBAEf,uBAAGI,KAAK,IAAIJ,UAAU,yCACpB,uBAAGA,UAAU,0BAInB,uBAAGI,KAAK,IAAIJ,UAAU,kCACpB,yBACEG,IAAKhQ,EAAc,kCACnB+T,IAAI,OAKV,yBAAKlE,UAAU,8BAEf,yBAAKA,UAAU,yDACb,yBAAKA,UAAU,2BACb,uBACEI,KAAK,IACLJ,UAAU,iEAFZ,WAMA,0BAAMA,UAAU,cAAhB,8CAGA,yBAAKA,UAAU,kCACb,0BAAMA,UAAU,mDAAhB,SAGA,0BAAMA,UAAU,mBAAhB,OACA,0BAAMA,UAAU,mDAAhB,KAGA,uBACEI,KAAK,IACLJ,UAAU,8CAEV,uBAAGA,UAAU,yBAEf,uBAAGI,KAAK,IAAIJ,UAAU,yCACpB,uBAAGA,UAAU,0BAInB,uBAAGI,KAAK,IAAIJ,UAAU,kCACpB,yBACEG,IAAKhQ,EAAc,kCACnB+T,IAAI,OAKV,yBAAKlE,UAAU,8BAEf,yBAAKA,UAAU,yDACb,yBAAKA,UAAU,2BACb,uBACEI,KAAK,IACLJ,UAAU,6DAFZ,aAMA,0BAAMA,UAAU,cAAhB,gCACA,yBAAKA,UAAU,kCACb,0BAAMA,UAAU,mDAAhB,UAGA,0BAAMA,UAAU,mBAAhB,OACA,0BAAMA,UAAU,mDAAhB,KAGA,uBACEI,KAAK,IACLJ,UAAU,8CAEV,uBAAGA,UAAU,yBAEf,uBAAGI,KAAK,IAAIJ,UAAU,yCACpB,uBAAGA,UAAU,0BAInB,uBAAGI,KAAK,IAAIJ,UAAU,kCACpB,yBACEG,IAAKhQ,EAAc,kCACnB+T,IAAI,QAMZ,yBAAKlE,UAAU,OACb,yBAAKA,UAAU,0DACb,0BAAMA,UAAU,iDAAhB,SAGA,0BAAMA,UAAU,8CAAhB,aAIF,yBAAKA,UAAU,0DACb,0BAAMA,UAAU,iDAAhB,aAGA,0BAAMA,UAAU,8CAAhB,aAIF,yBAAKA,UAAU,cACb,4BACEtO,KAAK,SACLsO,UAAU,oCAFZ,oBCvNd,IAAMjB,GAAY,CAChB,CACE3H,KAAM,KACNrE,KAAM,UACNoR,KAAMhU,EAAc,2CAEtB,CACEiH,KAAM,KACNrE,KAAM,WACNoR,KAAMhU,EAAc,mCAEtB,CACEiH,KAAM,KACNrE,KAAM,UACNoR,KAAMhU,EAAc,mCAEtB,CACEiH,KAAM,KACNrE,KAAM,WACNoR,KAAMhU,EAAc,mCAEtB,CACEiH,KAAM,KACNrE,KAAM,SACNoR,KAAMhU,EAAc,qCAEtB,CACEiH,KAAM,KACNrE,KAAM,SACNoR,KAAMhU,EAAc,qCAIjB,SAASiU,KACd,IAAMhN,EAAOL,KACPsN,EAAkBtF,GAAUuF,MAAK,SAACC,GAAD,OAAOA,EAAEnN,OAASA,KACzD,OACE,kBAAC4K,GAAA,EAAD,CAAUE,KAAK,OAAOD,YAAU,GAC9B,kBAACD,GAAA,EAASI,OAAV,CACEC,GAAIzB,GACJmB,GAAG,2BAEH,kBAACO,GAAA,EAAD,CACEC,UAAU,SACVC,QACE,kBAACC,GAAA,EAAD,CAASV,GAAG,0BAAZ,oBAGF,yBAAK/B,UAAU,mDACb,yBACEA,UAAU,wBACVG,IAAKkE,EAAgBF,KACrBD,IAAKG,EAAgBtR,UAK7B,kBAACiP,GAAA,EAASU,KAAV,CAAe1C,UAAU,4EACvB,wBAAIA,UAAU,wBACXjB,GAAUyF,KAAI,SAACC,GAAD,OACb,wBACEnT,IAAKmT,EAASrN,KACd4I,UAAW2C,aAAK,YAAa,CAC3B+B,OAAQD,EAASrN,OAASiN,EAAgBjN,QAG5C,uBACEgJ,KAAK,IACLK,QAAS,kBZvDlB,SAAqBrJ,GAC1Bb,aAAaoO,QAAQzO,GAAiBO,KAAKmO,UAAU,CAAExO,aAAcgB,KACrEyN,OAAOtU,SAASuU,SYqDaC,CAAYN,EAASrN,OACpC4I,UAAU,aAEV,0BAAMA,UAAU,yBACd,yBAAKG,IAAKsE,EAASN,KAAMD,IAAKO,EAAS1R,QAEzC,0BAAMiN,UAAU,aAAayE,EAAS1R,cClFvC,SAASiS,KACtB,IACIC,EADEjQ,EAAOkQ,eAAe1O,QAAf,oBAAoCnG,8BAApC,YAAsEA,oBAEhF2E,IACDiQ,EAAYxO,KAAKC,MAAM1B,IAEzB,IAAImQ,EAAW,GAKf,OAJIF,GAAaA,EAAUG,UACzBD,EAASE,MAAQJ,EAAUG,QAAQC,OAG9BF,ECAF,SAASG,KAEd,IAAMH,EAAWH,KAEXnD,EAAYzC,KACZ0C,EAAczK,mBAAQ,WAC1B,MAAO,CACLuF,MAEE,UADA5C,KAAW7H,IAAI0P,EAAUxJ,OAAQ,iCAGpC,CAACwJ,IAEJ,OACE,kBAACG,GAAA,EAAD,CAAUE,KAAK,OAAOD,YAAU,GAC9B,kBAACD,GAAA,EAASI,OAAV,CACEC,GAAIzB,GACJmB,GAAG,gCAEH,yBACE/B,UACE,uEAGF,0BAAMA,UAAU,sEAAhB,SAEQ,IACPmF,GACC,oCACA,0BAAMnF,UAAU,0EAEbmF,EAASE,MAAM3U,MAAM,KAAK,IAE7B,0BAAMsP,UAAU,yCACd,0BAAMA,UAAU,8CAEbmF,EAASE,MAAM,GAAGE,mBAO7B,kBAACvD,GAAA,EAASU,KAAV,CAAe1C,UAAU,6FACvB,oCAEG8B,EAAYlF,OACX,oCACE,yBAAKoD,UAAU,6CACb,yBAAKA,UAAU,wDACb,yBAAKG,IAAKhQ,EAAc,4BAA6B+T,IAAI,sBAE3D,yBAAKlE,UAAU,+CACZmF,GAAYA,EAASE,QAM1B,yBAAKrF,UAAU,gCAIjB8B,EAAYlF,OACZ,yBACEoD,UAAU,2GACV/F,MAAO,CACLa,gBAAgB,OAAD,OAAS3K,EACtB,wBADa,OAKjB,yBAAK6P,UAAU,6BACb,0BAAMA,UAAU,2DAAhB,MAKF,yBAAKA,UAAU,gDAAf,cAGA,0BAAMA,UAAU,8DAAhB,gBAON,yBAAKA,UAAU,6BA0Db,yBAAKA,UAAU,0BACb,kBAAC,KAAD,CACEwF,GAAG,UACHxF,UAAU,+CAFZ,aCrJL,SAASyF,KAEd,IAAMN,EAAWH,KACXnD,EAAYzC,KACZ0C,EAAczK,mBAAQ,WAC1B,MAAO,CACLsH,UAAsE,cAA3D3E,KAAW7H,IAAI0P,EAAUxJ,OAAQ,yBAE7C,CAACwJ,IAEJ,OAAQ,oCACDC,EAAYnD,WAAc,kBAAC2D,GAAA,EAAD,CACvBC,UAAU,SACVC,QAAS,kBAACC,GAAA,EAAD,CAASV,GAAG,sBAAZ,gBAEX,yBAAK/B,UAAU,eACb,yBAAKA,UAAU,sEACV+B,GAAG,wBACN,oCACE,0BAAM/B,UAAU,sEAAhB,SACA,0BAAMA,UAAU,0EAEbmF,GAAYA,EAASE,MAAM3U,MAAM,KAAK,IAEzC,0BAAMsP,UAAU,yCAEZ,0BAAMA,UAAU,8CAA8CmF,GAAYA,EAASE,MAAM,GAAGE,qBAOtGzD,EAAYnD,WAAc,kBAAC2G,GAAD,OC7B7B,SAASI,KACd,IAAM7D,EAAYzC,KAEZ0C,EAAczK,mBAAQ,WAC1B,MAAO,CACLsO,kBAAmB3L,KAAW7H,IAC5B0P,EAAUxJ,OACV,yBAEFuN,yBAA0B5L,KAAW7H,IACnC0P,EAAUxJ,OACV,gCAEFwN,wBAAyB7L,KAAW7H,IAClC0P,EAAUxJ,OACV,gCAEFyN,gBAAiB9L,KAAW7H,IAAI0P,EAAUxJ,OAAQ,uBAClD0N,sBAAuB/L,KAAW7H,IAChC0P,EAAUxJ,OACV,8BAEF2N,qBAAsBhM,KAAW7H,IAC/B0P,EAAUxJ,OACV,4BAEF4N,gBAAiBjM,KAAW7H,IAAI0P,EAAUxJ,OAAQ,0BAEnD,CAACwJ,IAEJ,OACE,yBAAK7B,UAAU,UACZ8B,EAAY6D,mBAAqB,kBAACxE,GAAD,MAEjCW,EAAY8D,0BAA4B,kBAAC1C,GAAD,MAExCpB,EAAY+D,yBAA2B,kBAAC7B,GAAD,MAEvClC,EAAYgE,iBAAmB,kBAAC7B,GAAD,MAE/BnC,EAAYiE,uBACX,kBAACzD,GAAA,EAAD,CACEC,UAAU,SACVC,QAAS,kBAACC,GAAA,EAAD,CAASV,GAAG,uBAAZ,gBAET,yBACE/B,UAAU,cACVkG,cAAY,UACZC,MAAM,cACNC,iBAAe,SAEf,yBACEpG,UAAU,qCACV+B,GAAG,yBAEH,0BAAM/B,UAAU,yCACd,kBAAC,IAAD,CACEG,IAAKhQ,EACH,qDASb2R,EAAYkE,sBAAwB,kBAAC5B,GAAD,MAEpCtC,EAAYmE,iBAAmB,kBAACR,GAAD,OC5E/B,SAASY,GAAT,GAAsC,IAAhBvE,EAAe,EAAfA,YACnBvR,EAAW+V,eACXC,EAAoB,SAAC/V,GACvB,OAAOF,EAAcC,EAAUC,GAAO,mBAAqB,IAG/D,OAAO,uCACHuR,GAAG,iBACH/B,UAAS,yCAAoC8B,EAAY0E,gBACrD1E,EAAY2E,sBAGhB,wBAAIzG,UAAS,mBAAc8B,EAAY4E,YAEnC,wBAAI1G,UAAS,kCAA6BuG,EAAkB,gBACxD,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,cAC9B,0BAAMxF,UAAU,aAAhB,aACC8B,EAAY6E,kBAAqB,uBAAG3G,UAAU,iBAOvD,wBACI4G,mBAAkB9E,EAAY+E,kBAC9BC,gBAAc,OACd9G,UAAS,oDAA+CuG,EAAkB,sBAC1E,kBAAC,KAAD,CAASvG,UAAU,wBAAwBwF,GAAG,oBAC1C,0BAAMxF,UAAU,aAAhB,eACA,uBAAGA,UAAU,gBAEjB,yBAAKA,UAAU,uDACX,wBAAIA,UAAU,eAEV,wBACIA,UAAS,sCAAiCuG,EAAkB,4BAC5DK,mBAAiB,QACjBE,gBAAc,QAEd,kBAAC,KAAD,CAAS9G,UAAU,wBAAwBwF,GAAG,2BAC1C,0BAAMxF,UAAU,sBACZ,kBAAC,IAAD,CAAKG,IAAKhQ,EAAc,+CAE5B,0BAAM6P,UAAU,aAAhB,UAGA,uBAAGA,UAAU,gBAEjB,yBAAKA,UAAS,wDACV,wBAAIA,UAAU,eAEV,wBAAIA,UAAS,oBAAeuG,EAAkB,0CAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,wCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,kBAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,qCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,mCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,aAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,wCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,sCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,gBAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,qCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,mCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,aAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,2CAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,yCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,mBAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,qCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,mCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,aAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,sCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,oCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,cAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,yCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,uCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,iBAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,2CAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,yCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,sBAUpB,wBACIA,UAAS,sCAAiCuG,EAAkB,gCAC5DK,mBAAiB,QACjBE,gBAAc,QAEd,kBAAC,KAAD,CAAS9G,UAAU,wBAAwBwF,GAAG,+BAC1C,0BAAMxF,UAAU,sBACZ,kBAAC,IAAD,CAAKG,IAAKhQ,EAAc,sDAE5B,0BAAM6P,UAAU,aAAhB,cAGA,uBAAGA,UAAU,gBAEjB,yBAAKA,UAAS,wDACV,wBAAIA,UAAU,eAEV,wBAAIA,UAAS,oBAAeuG,EAAkB,mDAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,iDAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,uBAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,6CAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,2CAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,iBAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,wCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,sCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,aAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,uCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,qCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,cAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,uCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,qCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,WAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,0CAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,wCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,cAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,sCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,oCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,aAUpB,wBACIA,UAAS,sCAAiCuG,EAAkB,8BAC5DK,mBAAiB,QACjBE,gBAAc,QAEd,kBAAC,KAAD,CAAS9G,UAAU,wBAAwBwF,GAAG,6BAC1C,0BAAMxF,UAAU,sBACZ,kBAAC,IAAD,CAAKG,IAAKhQ,EAAc,sDAE5B,0BAAM6P,UAAU,aAAhB,YAGA,uBAAGA,UAAU,gBAEjB,yBAAKA,UAAS,wDACV,wBAAIA,UAAU,eAEV,wBAAIA,UAAS,oBAAeuG,EAAkB,uCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,qCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,aAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,qCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,mCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,WAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,qCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,mCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,WAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,gDAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,8CAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,yBAUpB,wBACIA,UAAS,sCAAiCuG,EAAkB,8BAC5DK,mBAAiB,QACjBE,gBAAc,QAEd,kBAAC,KAAD,CAAS9G,UAAU,wBAAwBwF,GAAG,6BAC1C,0BAAMxF,UAAU,sBACZ,kBAAC,IAAD,CAAKG,IAAKhQ,EAAc,6CAE5B,0BAAM6P,UAAU,aAAhB,YAGA,uBAAGA,UAAU,gBAEjB,yBAAKA,UAAS,wDACV,wBAAIA,UAAU,eAEV,wBAAIA,UAAS,oBAAeuG,EAAkB,wCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,sCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,cAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,uCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,qCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,aAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,yCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,uCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,kBAUpB,wBACIA,UAAS,sCAAiCuG,EAAkB,mCAC5DK,mBAAiB,QACjBE,gBAAc,QAEd,kBAAC,KAAD,CAAS9G,UAAU,wBAAwBwF,GAAG,kCAC1C,0BAAMxF,UAAU,sBACZ,kBAAC,IAAD,CAAKG,IAAKhQ,EAAc,wCAE5B,0BAAM6P,UAAU,aAAhB,gBAGA,uBAAGA,UAAU,gBAEjB,yBAAKA,UAAS,wDACV,wBAAIA,UAAU,eAEV,wBAAIA,UAAS,oBAAeuG,EAAkB,wCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,0CAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,aAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,2CAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,yCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,YAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,0CAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,wCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,WAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,6CAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,2CAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,cAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,0CAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,wCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,WAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,0CAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,wCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,WAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,2CAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,yCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,YAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,6CAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,2CAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,cAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,+CAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,6CAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,mBAUpB,wBACIA,UAAS,sCAAiCuG,EAAkB,2BAC5DK,mBAAiB,QACjBE,gBAAc,QAEd,kBAAC,KAAD,CAAS9G,UAAU,wBAAwBwF,GAAG,0BAC1C,0BAAMxF,UAAU,sBACZ,kBAAC,IAAD,CAAKG,IAAKhQ,EAAc,6CAE5B,0BAAM6P,UAAU,aAAhB,SAGA,uBAAGA,UAAU,gBAEjB,yBAAKA,UAAS,wDACV,wBAAIA,UAAU,eAEV,wBAAIA,UAAS,oBAAeuG,EAAkB,gDAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,8CAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,yBAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,kCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,gCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,WAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,mCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,iCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,YAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,oCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,kCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,aAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,mCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,iCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,YAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,mCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,iCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,YAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,wCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,sCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,iBAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,4CAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,0CAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,sBAUpB,wBACIA,UAAS,sCAAiCuG,EAAkB,4BAC5DK,mBAAiB,QACjBE,gBAAc,QAEd,kBAAC,KAAD,CAAS9G,UAAU,wBAAwBwF,GAAG,2BAC1C,0BAAMxF,UAAU,sBACZ,kBAAC,IAAD,CAAKG,IAAKhQ,EAAc,qDAE5B,0BAAM6P,UAAU,aAAhB,UAGA,uBAAGA,UAAU,gBAEjB,yBAAKA,UAAS,wDACV,wBAAIA,UAAU,eAEV,wBAAIA,UAAS,oBAAeuG,EAAkB,iCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,+BAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,SAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,uCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,qCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,eAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,kCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,gCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,UAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,uCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,qCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,eAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,oCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,kCAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,kBAgBhC,wBACIA,UAAS,oDAA+CuG,EAAkB,qBAC1EK,mBAAkB9E,EAAY+E,kBAC9BC,gBAAc,QAEd,kBAAC,KAAD,CAAS9G,UAAU,wBAAwBwF,GAAG,oBAC1C,0BAAMxF,UAAU,aAAhB,aACA,uBAAGA,UAAU,gBAEjB,yBACIA,UAAU,oDACV/F,MAAO,CAAEqD,MAAO,WAEhB,yBAAK0C,UAAU,eACX,wBAAIA,UAAU,gBACV,wBAAIA,UAAU,cACV,wBAAIA,UAAU,4BACV,uBAAGA,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,WACA,uBAAGA,UAAU,gBAEjB,wBAAIA,UAAU,cAEV,wBAAIA,UAAS,oBAAeuG,EAAkB,4BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,0BAC9B,0BAAMxF,UAAU,aAAhB,YAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,gCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,8BAC9B,0BAAMxF,UAAU,aAAhB,eAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,4BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,0BAC9B,0BAAMxF,UAAU,aAAhB,WAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,iCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,+BAC9B,0BAAMxF,UAAU,aAAhB,gBAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,8BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,4BAC9B,0BAAMxF,UAAU,aAAhB,aAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,mCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,iCAC9B,0BAAMxF,UAAU,aAAhB,kBAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,4BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,0BAC9B,0BAAMxF,UAAU,aAAhB,aAMhB,wBAAIA,UAAU,cACV,wBAAIA,UAAU,cACV,wBAAIA,UAAU,4BACV,uBAAGA,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,WACA,uBAAGA,UAAU,gBAGjB,wBAAIA,UAAS,oBAAeuG,EAAkB,+BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,6BAC9B,0BAAMxF,UAAU,aAAhB,cAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,gCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,8BAC9B,0BAAMxF,UAAU,aAAhB,eAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,4BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,0BAC9B,0BAAMxF,UAAU,aAAhB,WAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,kCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,gCAC9B,0BAAMxF,UAAU,aAAhB,iBAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,6BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,2BAC9B,0BAAMxF,UAAU,aAAhB,YAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,8BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,4BAC9B,0BAAMxF,UAAU,aAAhB,aAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,gCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,8BAC9B,0BAAMxF,UAAU,aAAhB,iBAMhB,wBAAIA,UAAU,cACV,wBAAIA,UAAU,4BACV,uBAAGA,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,WACA,uBAAGA,UAAU,gBAEjB,wBAAIA,UAAU,cAEV,wBAAIA,UAAS,oBAAeuG,EAAkB,iCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,+BAC9B,0BAAMxF,UAAU,aAAhB,gBAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,4BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,0BAC9B,0BAAMxF,UAAU,aAAhB,WAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,2BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,yBAC9B,0BAAMxF,UAAU,aAAhB,UAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,6BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,2BAC9B,0BAAMxF,UAAU,aAAhB,YAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,+BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,6BAC9B,0BAAMxF,UAAU,aAAhB,cAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,iCAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,+BAC9B,0BAAMxF,UAAU,aAAhB,gBAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,+BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,6BAC9B,0BAAMxF,UAAU,aAAhB,gBAMhB,wBAAIA,UAAU,cACV,wBAAIA,UAAU,4BACV,uBAAGA,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,WACA,uBAAGA,UAAU,gBAEjB,wBAAIA,UAAU,cAEV,wBAAIA,UAAS,oBAAeuG,EAAkB,+BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,6BAC9B,0BAAMxF,UAAU,aAAhB,cAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,+BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,6BAC9B,0BAAMxF,UAAU,aAAhB,cAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,4BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,0BAC9B,0BAAMxF,UAAU,aAAhB,WAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,2BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,yBAC9B,0BAAMxF,UAAU,aAAhB,UAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,+BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,6BAC9B,0BAAMxF,UAAU,aAAhB,cAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,6BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,2BAC9B,0BAAMxF,UAAU,aAAhB,kBAahC,wBACI4G,mBAAkB9E,EAAY+E,kBAC9BC,gBAAc,OACd9G,UAAS,oDAA+CuG,EAAkB,aAC1E,kBAAC,KAAD,CAASvG,UAAU,wBAAwBwF,GAAG,WAC1C,0BAAMxF,UAAU,aAAhB,UACA,uBAAGA,UAAU,gBAEjB,yBAAKA,UAAU,uDACX,wBAAIA,UAAU,eAEV,wBACIA,UAAS,sCAAiCuG,EAAkB,gBAC5DK,mBAAiB,QACjBE,gBAAc,QAEd,kBAAC,KAAD,CAAS9G,UAAU,wBAAwBwF,GAAG,eAC1C,0BAAMxF,UAAU,aAAhB,aAGA,uBAAGA,UAAU,gBAEjB,yBAAKA,UAAS,wDACV,wBAAIA,UAAU,eAEV,wBAAIA,UAAS,oBAAeuG,EAAkB,2BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,yBAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,eAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,0BAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,wBAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,iBAUpB,wBAAIA,UAAS,oBAAeuG,EAAkB,cAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,YAC9B,0BAAMxF,UAAU,aAAhB,oBAMR,wBACIA,UAAS,sCAAiCuG,EAAkB,WAC5DK,mBAAiB,QACjBE,gBAAc,QAEd,kBAAC,KAAD,CAAS9G,UAAU,wBAAwBwF,GAAG,UAC1C,0BAAMxF,UAAU,aAAhB,eAGA,uBAAGA,UAAU,gBAEjB,yBAAKA,UAAS,wDACV,wBAAIA,UAAU,eAEV,wBAAIA,UAAS,oBAAeuG,EAAkB,qBAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,mBAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,aAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,qBAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,mBAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,aAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,qBAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,mBAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,aAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,qBAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,mBAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,aAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,qBAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,mBAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,aAMR,wBAAIA,UAAS,oBAAeuG,EAAkB,qBAC1C,kBAAC,KAAD,CAASvG,UAAU,YAAYwF,GAAG,mBAC9B,uBAAGxF,UAAU,+BAA8B,gCAC3C,0BAAMA,UAAU,aAAhB,qBCp9BrC,SAAS+G,KACZ,IAAMlF,EAAYzC,KACZ0C,EAAczK,mBAAQ,WACxB,MAAO,CACHgB,OAAQwJ,EAAUxJ,OAClBmO,cAAe3E,EAAUmF,WAAW,eAAe,GACnDL,iBAAkB3M,KAAW7H,IACzB0P,EAAUxJ,OACV,+BAEJwO,kBAAmB7M,KAAW7H,IAAI0P,EAAUxJ,OAAQ,8BACpDoO,qBAAsB5E,EAAUoF,cAAc,eAC9CnL,gBAAiB9B,KAAW7H,IAAI0P,EAAUxJ,OAAQ,qBAClDqO,UAAW7E,EAAUmF,WAAW,mBAAmB,GACnDE,0BAC+D,IAA3DlN,KAAW7H,IAAI0P,EAAUxJ,OAAQ,yBAE1C,CAACwJ,IAWJ,OAAO,oCAEH,yBAAK7B,UAAU,+CAA+C+B,GAAG,0BAC5DD,EAAYoF,0BACT,oCAEI,yBAAKlH,UAAU,eACX,kBAAC,KAAD,CAAMwF,GAAG,KACL,yBAAKtB,IAAI,OAAO/D,KAhBhC2B,EAAYhG,iBAAmBgG,EAAYhG,gBAKxC3L,EAAc,gBAAD,OADX,sCAmBL,kBAACkW,GAAD,CAAYvE,YAAaA,M,sDC1CxBqF,IAJiB7G,sBAAW,WAAgBE,GAAhB,IAAGR,EAAH,EAAGA,UAAH,OACvC,0BAAMQ,IAAKA,EAAKR,UAAW2C,aAAK,iBAAkB3C,QAGrBM,sBAAW,WAA0BE,GAA1B,IAAGR,EAAH,EAAGA,UAAcO,EAAjB,qCAExC,wCAAQA,EAAR,CAAeC,IAAKA,EAAKR,UAAW2C,aAAK,aAAc3C,UAG5CoH,GAAoB9G,sBAC/B,WAAoCE,GAApC,IAAGrJ,EAAH,EAAGA,SAAU6I,EAAb,EAAaA,UAAcO,EAA3B,gDACE,yCAASA,EAAT,CAAgBC,IAAKA,EAAKR,UAAW2C,aAAK,eAAgB3C,KACvD7I,MAKMkQ,GAAa/G,sBACxB,WAWEE,GACI,IAVFrJ,EAUC,EAVDA,SACAmQ,EASC,EATDA,KACAnB,EAQC,EARDA,MACAhJ,EAOC,EAPDA,QACA6C,EAMC,EANDA,UAMC,IALDuH,cAKC,SAJDC,EAIC,EAJDA,SAIC,yFACmBnG,mBAAS,IAD5B,oBACIoG,EADJ,KACSC,EADT,OAEqCrG,mBAAS,GAF9C,oBAEIsG,EAFJ,KAEkBC,EAFlB,KAqDH,OAjDAhG,qBAAU,WAGR,SAASiG,IACPD,EAAgB/C,OAAOiD,YAKzB,OARAD,IAMAhD,OAAOkD,iBAAiB,SAAUF,GAE3B,WACLhD,OAAOmD,oBAAoB,SAAUH,OAIzCjG,qBAAU,WAER,GAAK2F,GAA2B,IAAjBI,EAAf,CAIA,IAAMM,EAAgBrN,SAASsN,cAAc,WACvCC,EAAmBvN,SAASsN,cAAc,cAC1CE,EAAsBxN,SAASsN,cAAc,kBAE/CG,EAAgB,EAGkC,QAAlDxD,OAAOyD,iBAAiBL,GAAeM,OACzCF,EAAgBD,EAAoBI,aAGhC5N,SAASC,KAAKK,UAAUuN,SAAS,0BAEnCJ,EAAgB,IAGZzN,SAASC,KAAKK,UAAUuN,SAAS,kBACnCJ,GAAiBJ,EAAcO,cAG7B5N,SAASC,KAAKK,UAAUuN,SAAS,qBACnCJ,GAAiBF,EAAiBK,eAKxCd,EAAOW,MACN,CAACd,EAAQI,IAGV,yBACEnH,IAAKA,EACLR,UAAU,cACV/F,MACGsN,EAEG,CAAEE,MAAKvH,SAAU,SAAUwI,gBAAiB,aAD5CzX,GAII,MAATkV,GACC,yBAAK3F,IAAKgH,EAAUxH,UAAW2C,aAAK,aAAc3C,IAC/CsH,EAGgB,kBAAVnB,GAAsBwC,sBAAWxC,GACtC,kBAACgB,GAAD,KAAkBhB,GAElBA,GAKLhJ,EACAhG,MAMIyR,GAAWtI,sBACtB,WAAsCE,GAAtC,IAAGqI,EAAH,EAAGA,IAAKC,EAAR,EAAQA,MAAO9I,EAAf,EAAeA,UAAcO,EAA7B,mDACE,yCACMA,EADN,CAEEC,IAAKA,EACLR,UAAW2C,aACT,YACA,CACE,gBAAiBkG,EACjB,kBAAmBC,GAErB9I,SAUK+I,IAJazI,sBAAW,WAA0BE,GAA1B,IAAGR,EAAH,EAAGA,UAAcO,EAAjB,qCACnC,yCAASA,EAAT,CAAgBC,IAAKA,EAAKR,UAAW2C,aAAK,cAAe3C,SAGvCM,sBAAW,WAAuCE,GAAvC,IAAGwI,EAAH,EAAGA,YAAahJ,EAAhB,EAAgBA,UAAcO,EAA9B,mDAC7B,yCACMA,EADN,CAEEC,IAAKA,EACLR,UAAW2C,aACT,4BACA,CAAE,oBAAqBqG,GACvBhJ,U,2CC5IAiJ,G,+MAGJzX,MAAQ,CACN8L,MAAO,EACP4L,cAAc,G,kEAGGC,GACb/Q,KAAKmI,MAAMhQ,SAASH,WAAa+Y,EAAU5Y,SAASH,WACtDgI,KAAKgR,UACLhR,KAAKiR,iB,oCAKP,IAAMC,EAAiB1O,SAAS2O,eAAe,gBAC3CD,GACFA,EAAeE,U,gCAIR,IAAD,OACRpR,KAAKqR,eAAiBxG,YAAW,WAC3B,EAAKzR,MAAM8L,OAAS,KACtB,EAAKoM,SAAS,CAAEpM,MAAO,EAAK9L,MAAM8L,MAAQ,KAC1C,EAAK8L,WAEL,EAAKO,gBAEN,M,oCAEU,IAAD,OACZhI,aAAavJ,KAAKwR,iBAClBxR,KAAKyR,mBAAqB5G,YAAW,WACnC,EAAKyG,SAAS,CAAEpM,MAAO,MACtB,O,6CAGClF,KAAKyR,oBACPlI,aAAavJ,KAAKyR,oBAEhBzR,KAAKqR,gBACP9H,aAAavJ,KAAKqR,kB,+BAIpB,OACE,yBACEzJ,UAAU,sBACV/F,MAAO,CAAEsO,OAAQ,MAAOjL,MAAO,SAE9BlF,KAAK5G,MAAM8L,MAAQ,GAClB,kBAACwM,GAAA,EAAD,CAAaC,QAAQ,OAAOC,IAAK5R,KAAK5G,MAAM8L,MAAOrD,MAAO,CAAEsO,OAAQ,c,GArDjDlI,IAAM4J,WA4DpBC,gBAAWjB,I,QC5DJ3I,sBACpB,WAWEE,GACG,EAVD8G,KAUC,EATD6C,IASC,EARDC,QAQE,IAPFC,EAOC,EAPDA,QAEArK,GAKC,EANDsK,eAMC,EALDtK,WACA7I,EAIC,EAJDA,SACGoJ,EAGF,2FACH,OACE,yCACMA,EADN,CAEEC,IAAKA,EACL+J,KAAK,QACLvK,UAAW2C,aACT,uDACA3C,KAGF,yBAAKA,UAAU,6BACb,0BAAMA,UAAU,8CACd,kBAAC,IAAD,CACEG,IAAKhQ,EAAc,0CAKzB,yBAAK6P,UAAU,aAAaQ,IAAK6J,GAC9BlT,O,eC7BJ,SAASqT,GAAT,GAA8B,IAAZC,EAAW,EAAXA,QACjB5I,EAAYzC,KAEZ0C,EAAczK,mBAAQ,WAC1B,MAAO,CACLqT,cAAe7I,EAAUmF,WAAW,UAAU,GAC9C2D,iBAAkB9I,EAAUoF,cAAc,UAC1C2D,uBAAwB/I,EAAUmF,WAAW,oBAAoB,GACjElL,gBAAiB9B,KAAW7H,IAAI0P,EAAUxJ,OAAQ,qBAClDwS,kBAAmB7Q,KAAW7H,IAC5B0P,EAAUxJ,OACV,+BAGH,CAACwJ,IAYJ,OACE,oCAEE,uCACE7B,UAAS,iBAAY8B,EAAY4I,eACjC3I,GAAG,aACCD,EAAY6I,kBAGhB,yBAAK3K,UAAS,WAAM8B,EAAY8I,uBAAlB,wDACZ,kBAAC,GAAD,MAEC9I,EAAY+I,mBAAqB,kBAAC9D,GAAD,MAKlC,yBAAK/G,UAAU,+CAA+C+B,GAAG,0BAE/D,yBAAK/B,UAAU,eACb,kBAAC,KAAD,CAAMwF,GAAG,KACP,yBAAKtB,IAAI,OAAO/D,KA7BxB2B,EAAYhG,iBAAmBgG,EAAYhG,gBAKxC3L,EAAc,gBAAD,OADX,8BAyByC8J,MAAO,CAAEqD,MAAO,WAOvDmN,GACH,kBAAC/E,GAAD,SCxDL,SAASoF,GAAT,GAAkC,IAAXL,EAAU,EAAVA,QACtB5I,EAAYzC,KAEZ0C,EAAczK,mBAAQ,WAC1B,MAAO,CACL0T,WAAYlJ,EAAUmJ,gBACtBC,aAAcjR,KAAW7H,IAAI0P,EAAUxJ,OAAQ,sBAC/C6S,uBACmE,IAAjElR,KAAW7H,IAAI0P,EAAUxJ,OAAQ,4BACnC8S,uBAAwBtJ,EAAUmF,WAAW,iBAAiB,GAC9DoE,uBAAwBvJ,EAAUoF,cAAc,oBAEjD,CAACpF,IAEJ,OACE,oCAEE,uCACEE,GAAG,mBACH/B,UAAS,2CAAsC8B,EAAYqJ,yBACvDrJ,EAAYsJ,wBAGhB,kBAAC,KAAD,CAAM5F,GAAG,KACP,yBAAKtB,IAAI,OAAO/D,IAAK2B,EAAYiJ,WAAY9Q,MAAO,CAAEqD,MAAO,QAK/D,yBAAK0C,UAAU,6BACZ8B,EAAYmJ,cACX,oCAEE,4BAAQjL,UAAU,uCAAuC+B,GAAG,0BAC1D,iCAMLD,EAAYoJ,uBACX,oCAEE,4BAAQlL,UAAU,2BAA2B+B,GAAG,2BAC9C,kCAgBD0I,GACH,kBAACnF,GAAD,SClEL,SAAS+F,KACd,IAAMC,GAAQ,IAAIC,MAAOC,cACnB3J,EAAYzC,KAEZ0C,EAAczK,mBAAQ,WAC1B,MAAO,CACLoU,cAAe5J,EAAUmF,WAAW,UAAU,GAC9C0E,uBAAwB7J,EAAUmF,WAAW,oBAAoB,MAElE,CAACnF,IAEJ,OACE,yBACE7B,UAAS,sDAAiD8B,EAAY2J,eACtE1J,GAAG,aAEH,yBACE/B,UAAS,UAAK8B,EAAY4J,uBAAjB,+EAET,yBAAK1L,UAAU,gCACb,0BAAMA,UAAU,oCAAoCsL,EAAMlR,YAD5D,QACsF,IACpF,uBACEgG,KAAK,iBACL4C,OAAO,SACP2I,IAAI,sBACJ3L,UAAU,mCAJZ,0CASF,yBAAKA,UAAU,mCACb,uBACEI,KAAK,iBACL4C,OAAO,SACP2I,IAAI,sBACJ3L,UAAU,sBAJZ,aAgBA,uBACEI,KAAK,iBACL4C,OAAO,SACP2I,IAAI,sBACJ3L,UAAU,sBAJZ,e,YC4BK4L,OAzEM,WAEjB,IAAIC,EACAC,EAyBP,MAAO,CACNC,KAAM,SAAShK,EAAIiK,GACTH,EAAWI,KAAOC,QAAQnK,GAC1B+J,EAAoBG,KAAOC,QAAQF,IAOvCG,QAAS,WACL,OAAOF,KAAOG,SAASH,KAAOI,UAAW,iBAG7CC,iBAAkB,WACd,OAAOL,KAAOG,SAASH,KAAOI,UAAW,wBAG7CE,WAAY,WACR,OAAOV,GAGXW,oBAAqB,WACjB,OAAOV,GAGXW,UAAW,aAIXC,UAAW,WACP,OAnDS,WACb,IAAInE,EAAS,EAMb,OAJIsD,IACAtD,EAAS0D,KAAOU,aAAad,GAAY,GAGtCtD,EA4CIqE,IAGXC,mBAAoB,WAChB,OAzCKZ,KAAOU,aAAab,KAtBhB,G,oBC0FNgB,OAxFU,WAExB,IAAIC,EACGC,EACAC,EACAC,EAmCP,MAAO,CACAnB,KAAM,SAASoB,EAAQC,GACnBL,EAAed,KAAOC,QAAQiB,GAC9BF,EAAoBhB,KAAOC,QAAQkB,GAE9BL,IApCfG,EAAmB,IAAIG,KAAYJ,EAAmB,CACrDzK,SAAS,EACT8K,UAAW,sBACXC,QAAS,kCACTC,SAAU,CACTxK,OAAQ,0BACRxR,MAAO,2BAITwb,EAAc,IAAIS,KAAOV,EAAc,CACtClP,QAAS,CACRN,QAAS,WACTmQ,OAAQ,YACRlQ,OAAQ,aAETM,UAAW,CACV6P,WAAY,IACZC,WAAW,MAKKC,GAAG,aAAa,SAASpQ,GAC7BwO,KAAO6B,iBAAiB,OACxBZ,EAAiBa,YAmB/BC,eAAgB,WACf,OAAOjB,GAGFkB,oBAAqB,WAC1B,OAAOhB,GAGFiB,QAAS,WACd,OAAOlB,GAGRmB,mBAAoB,SAASC,GACxBpB,GACHA,EAAYmB,mBAAmBC,IAI3BC,aAAc,WACnB,OAAOnB,GAGRoB,qBAAsB,WACjBtB,GAAef,KAAOsC,kBACzBrB,EAAiBa,SA7EI,G,WCDE,WAE1B,IAAIS,EAFsB,GCuCZC,OAxCK,WAEhB,IAAI5C,EAcP,MAAO,CACNE,KAAM,SAAShK,GACL8J,EAAWI,KAAOC,QAAQnK,IAO9BwK,WAAY,WACR,OAAOV,GAGXa,UAAW,WACP,OAzBS,WACb,IAAInE,EAAS,EAMb,OAJIsD,IACAtD,EAAS0D,KAAOU,aAAad,IAG1BtD,EAkBIqE,KA9BC,GCiEL8B,OAhEK,WAEhB,IAAIC,EACA9C,EACAqB,EAoBP,MAAO,CACNnB,KAAM,SAAShK,GACL8J,EAAWI,KAAOC,QAAQnK,GAC1B4M,EAAQ1C,KAAOI,UAEVR,GArBJ,WACX,IAAI+C,EAAiB3C,KAAOG,SAASP,EAAU,2BAA6B,0BAA4B,QAGxGqB,EAAmB,IAAIG,KAAYxB,EAAU,CAC5CyB,UAAWsB,EACXpM,SAAS,EACT+K,QAAS,qBACTC,SAAU,CACTxK,OAAQ,yBACRxR,MAAO,0BAgBCqd,IAGJtC,WAAY,WACR,OAAOV,GAGXwC,aAAc,WACV,OAAOnB,GAGXf,QAAS,WACL,OAAOF,KAAOG,SAASuC,EAAO,gBAGlCG,YAAa,WACT,OAAQ7C,KAAOG,SAASuC,EAAO,gBAAkB1C,KAAOG,SAASuC,EAAO,mBAG5EI,YAAa,WACT,OAAQ9C,KAAOG,SAASuC,EAAO,gBAAkB1C,KAAOG,SAASuC,EAAO,8BAtDhE,G,UC2CLK,OA5CS,WAEpB,IAAInD,EAcP,MAAO,CACNE,KAAM,SAAShK,GACL8J,EAAWI,KAAOC,QAAQnK,IAO9BoK,QAAS,WACL,OAAOF,KAAOG,SAASH,KAAOI,UAAW,oBAG7CE,WAAY,WACR,OAAOV,GAGXa,UAAW,WACP,OA7BS,WACb,IAAInE,EAAS,EAMb,OAJIsD,IACAtD,EAAS0D,KAAOU,aAAad,IAG1BtD,EAsBIqE,KAlCK,GC4FTqC,OAzFU,WAExB,IAAIpD,EACGqD,EA6DP,MAAO,CACNnD,KAAM,SAAShK,IACL8J,EAAWI,KAAOC,QAAQnK,KA5DzB,WACX,IAAIoN,EAAS,IAEiB,qBAAnBvD,KACVuD,EAASvD,GAAec,cAGnBwC,EAAU,IAAIE,KAAOvD,EAAU,CACpCtE,OAAQ,CACP4H,OAAQA,EACRE,OAAQ,GACRnP,SAAU,CACTuH,IAAK,WACJ,IAAI6H,EAAM,EACmBrD,KAAOI,UAkBpC,OAhBIJ,KAAOsD,eAAe,OACK,qBAAnB3D,IAAkCA,GAAeO,YAC3DmD,GAAY1D,GAAec,aAGK,qBAAtBsC,IAAqCA,GAAkB7C,YACjEmD,GAAYN,GAAkBtC,cAGD,qBAAnBd,IAAkCA,GAAeU,qBAC3DgD,GAAY1D,GAAeiB,sBAI7ByC,GAAY,GAIbE,KAAM,SAASC,GACd,OAAOxD,KAAOkD,OAAOtD,GAAU2D,MAEhCE,MAAO,SAASD,GACf,IAAI5U,EAAOoR,KAAOI,UAEdsD,EAAYC,SAAS3D,KAAO4D,IAAIhE,EAAU,UAI9C,OAHgB+D,SAAS3D,KAAO4D,IAAIhV,EAAM,UAGvB8U,EAFE1D,KAAOkD,OAAOtD,GAAU2D,WAQzCM,aAER7D,KAAO8D,kBAAiB,WACvBb,EAAQc,kBAcRnB,IAGDoB,OAAQ,WACHf,GACHA,EAAQc,iBA9Ea,GCArBE,GAAoB,WAEpB,IAAIvB,EACA9C,EACAmB,EA4GP,MAAO,CACNjB,KAAM,SAAShK,GACL4M,EAAQ1C,KAAOI,WACfR,EAAWI,KAAOC,QAAQnK,MA5GzB,WACX,IACUvD,EADN2R,EAAmE,MAAhDlE,KAAOmE,KAAKvE,EAAU,sBAAgC,WAAa,YAGxC,MAA9CI,KAAOmE,KAAKvE,EAAU,sBACzBrN,EAAS,CACR6R,kBAAkB,EAClB9H,OAAQ,WACP,IAAIA,EAASqH,SAAS3D,KAAOqE,cAAc/H,QAQ3C,OANI0D,KAAOsD,eAAe,QACzBhH,GAAkBkG,GAAc/B,aAGjCnE,GAAmBqH,SAAS3D,KAAO4D,IAAIhE,EAAU,iBAAmB+D,SAAS3D,KAAO4D,IAAIhE,EAAU,cAE3FtD,KAKVyE,EAAc,IAAIS,KAAO5B,EAAU,CAElCrN,OAAQA,EAGRX,QAAS,CACRN,QAAS4S,EACTzC,OAAQ,YACRlQ,OAAQ,aAITM,UAAW,CACV8P,WAAW,KAiFHiB,GA5ES,WAGlB,IAAI0B,EACAC,EAFDvE,KAAOG,SAASuC,EAAO,gBAAkB1C,KAAOG,SAASuC,EAAO,8BAKnE1C,KAAOwE,SAAS5E,EAAU,cAAc,SAASnL,GAChDA,EAAEC,kBAEkC,IAAhCsL,KAAOsD,eAAe,QAItBiB,IACH7O,aAAa6O,GACbA,EAAY,MAGGD,IACf5O,aAAa4O,GACbA,EAAW,MAGZA,EAAWtN,YAAW,WACjBgJ,KAAOG,SAASuC,EAAO,mBAAqB1C,KAAOsD,eAAe,QAErEtD,KAAOyE,SAAS/B,EAAO,wBAEvBuB,GAAkBhC,UAAUyC,eAC5BT,GAAkBhC,UAAU0C,eAE3B,QAGJ3E,KAAOwE,SAAS/B,GAAcnC,aAAc,cAAc,SAAS7L,GAClEA,EAAEC,kBAEkC,IAAhCsL,KAAOsD,eAAe,QAItBgB,IACH5O,aAAa4O,GACbA,EAAW,MAGIC,IACf7O,aAAa6O,GACbA,EAAY,MAGbA,EAAYvN,YAAW,WACfgJ,KAAOG,SAASuC,EAAO,yBAA2B1C,KAAOsD,eAAe,QAC3EtD,KAAO4E,YAAYlC,EAAO,wBAGXuB,GAAkBhC,UAAUyC,eAC9CT,GAAkBhC,UAAU0C,eAE3B,UAiBKE,KAGVvE,WAAY,WACX,OAAOV,GAGFqC,QAAS,WACd,OAAOlB,GAGFmB,mBAAoB,SAASC,GAC9BpB,GACHA,EAAYmB,mBAAmBC,IAIjCE,qBAAsB,WACjBtB,GAAef,KAAOsC,kBACzBvB,EAAYe,SA9IQ,GAyJTmC,U,WCvJW,WAEtB,IAAIvB,EACA9C,EACAkF,EAJkB,GC+BXC,OApCM,WAEjB,IAAInF,EAcP,MAAO,CACNE,KAAM,SAAShK,GACL8J,EAAWI,KAAOC,QAAQnK,IAGpC2K,UAAW,WACV,OAjBe,WAChB,IAAInE,EAAS,EAMb,OAJUsD,IACAtD,EAAS0D,KAAOU,aAAad,IAGhCtD,EAUCqE,IAGFL,WAAY,WACR,OAAOV,IA1BE,GC6CNoF,OA1CO,WAElB,IAAIpF,EAoBP,MAAO,CACNE,KAAM,SAAShK,GACL8J,EAAWI,KAAOC,QAAQnK,IAGpC2K,UAAW,WACV,OAvBe,WAChB,IAAInE,EAYJ,OAVAA,EAAS0D,KAAOqE,cAAc/H,OAEpBsD,IACAtD,EAASA,EAASqH,SAAS3D,KAAO4D,IAAIhE,EAAU,eAAiB+D,SAAS3D,KAAO4D,IAAIhE,EAAU,mBAGnGtD,GAAkBqD,GAAec,YACjCnE,GAAkByG,GAAkBtC,YACpCnE,GAAkByI,GAAetE,YAY/BE,IAGFL,WAAY,WACR,OAAOV,IAhCG,G,WCFE,WAEpB,IAAIA,EAFgB,ICAI,WAE3B,IAAIA,EAGAgD,EAAQ,WACX,IAAIrQ,EAASyN,KAAO3H,KAAKuH,EAAU,gBAC/BqF,EAAWjF,KAAO3H,KAAKuH,EAAU,cACjCsF,EAAalF,KAAO3H,KAAKuH,EAAU,gBAEnCtD,EAAS0I,GAAgBvE,YAQ7BnE,GADAA,GAFAA,GADAA,GAFAA,GAAkBqH,SAAS3D,KAAOU,aAAawE,KAE7BvB,SAAS3D,KAAO4D,IAAIhE,EAAU,cAAgB+D,SAAS3D,KAAO4D,IAAIhE,EAAU,kBAC5E+D,SAAS3D,KAAO4D,IAAIhE,EAAU,eAAiB+D,SAAS3D,KAAO4D,IAAIhE,EAAU,mBAE7E+D,SAAS3D,KAAO4D,IAAIqB,EAAU,eAAiBtB,SAAS3D,KAAO4D,IAAIqB,EAAU,mBAC7EtB,SAAS3D,KAAO4D,IAAIqB,EAAU,cAAgBtB,SAAS3D,KAAO4D,IAAIqB,EAAU,iBAE9F3I,GAAkB,EAElB0D,KAAO4D,IAAIrR,EAAQ,SAAU+J,EAAS,OAtBZ,ICAH,WAErB,IAAIsD,EAEAuF,EACAC,EACAC,EAGAC,EAAoB,WACpB,IAEI/Y,EAASyT,KAAO3H,KAAKuH,EAAU,qBAC/B7S,EAAUiT,KAAO3H,KAAKuH,EAAU,sBAEhCtD,EAASqH,SAAS3D,KAAOqE,cAAc/H,QAkB3C,OAhBI/P,IACA+P,GAAkBqH,SAAS3D,KAAOU,aAAanU,IAC/C+P,GAAkBqH,SAAS3D,KAAO4D,IAAIrX,EAAQ,cAC9C+P,GAAkBqH,SAAS3D,KAAO4D,IAAIrX,EAAQ,kBAG9CQ,IACAuP,GAAkBqH,SAAS3D,KAAO4D,IAAI7W,EAAS,cAC/CuP,GAAkBqH,SAAS3D,KAAO4D,IAAI7W,EAAS,kBAGnDuP,GAAkBqH,SAAS3D,KAAO4D,IAAIhE,EAAU,eAChDtD,GAAkBqH,SAAS3D,KAAO4D,IAAIhE,EAAU,kBAEhDtD,GAAkB,GA/BD,ICAD,WAEpB,IAAIsD,EAFgB,GCGWvL,sBAAW,SAACC,EAAOC,GACpD,OACE,uBACEA,IAAKA,EACLJ,KAAK,IACLK,QAAS,SAAAC,GACPA,EAAEC,iBACFJ,EAAME,QAAQC,IAEhBqB,GAAG,6BACH/B,UAAU,iCAET,IACD,0BAAMA,UAAU,yCACd,0BAAMA,UAAU,gCACd,kBAAC,IAAD,CAAMG,IAAKhQ,EAAc,gDC4BnC,IAAMqhB,GAAmB1a,0BAMQ0a,GAAiBva,SAE3C,SAASwa,GAAT,GAAkD,IAAbta,EAAY,EAAZA,SAAY,EAC5BkK,mBAAS,IADmB,oBAC/C8E,EAD+C,KACxCuL,EADwC,OAEhBrQ,mBAAS,IAFO,oBAGhD9J,EAAQ,CAAE4O,QAAOuL,WAAUC,YAHqB,KAGRC,eAHQ,MAItD,OACE,kBAACJ,GAAiBla,SAAlB,CAA2BC,MAAOA,GAC/BJ,GChEP,IAAM0a,GAA8B/a,0BAE7B,SAASgb,GAAT,GAAqD,IAAb3a,EAAY,EAAZA,SAAY,EAC/BkK,mBAAS,GADsB,oBAClD0Q,EADkD,KAC3CC,EAD2C,KAErDC,EAAUF,EAAQ,EA2BtB,OAzBAnQ,qBAAU,WACR,IAYIsQ,EAZEC,EAAevX,SAAS2O,eAAe,iBAG7C,OAAI4I,GAAgBF,GAClBE,EAAajX,UAAUkX,OAAO,UAEvB,WACLD,EAAajX,UAAUC,IAAI,aAM3BgX,IAAiBF,IACnBC,EAAUjP,YAAW,WACnBkP,EAAajX,UAAUC,IAAI,YAC1B,MAGE,WACLwG,aAAauQ,OAEd,CAACD,IAGF,kBAACJ,GAA4Bva,SAA7B,CAAsCC,MAAOya,GAC1C7a,GAKA,SAASkb,GAAT,GAAiD,IAAD,IAAlBJ,eAAkB,SAE/CD,EAAWhb,qBAAW6a,IAkB5B,OAhBAjQ,qBAAU,WACR,GAAKqQ,EAQL,OAJAD,GAAS,SAAAM,GACP,OAAOA,EAAO,KAGT,WACLN,GAAS,SAAAM,GACP,OAAOA,EAAO,QAGjB,CAACN,EAAUC,IAEP,K,yBCzDHvV,GAAQ6V,aAIZ,CAEEC,WAAY,CACVzV,WAAY,CAAC,WAAWxC,KAAK,MAG/BkY,QAAS,CACPC,QAAS,CAEPC,KAAM,WAIRC,UAAW,CAETD,KAAM,WAIRxf,MAAO,CAELwf,KAAM,YASVpS,MAAO,CAELsS,cAAe,CAEbC,eAAe,GAIjBC,WAAY,CACVC,UAAW,MAMZ,SAASC,GAAsB1S,GAAQ,IACpCpJ,EAAaoJ,EAAbpJ,SAER,OAAO,kBAAC+b,GAAA,EAAD,CAAexW,MAAOA,IAAQvF,GC3CvC,IAwDegc,GAxDA,SAAC,GAAkB,IAAhBhc,EAAe,EAAfA,SAER0K,EAAYzC,KAEZ0C,EAAczK,mBAAQ,WACxB,MAAO,CACHc,aAAc0J,EAAUxJ,OACxB+a,WAAYpZ,KAAW7H,IAAI0P,EAAUxJ,OAAQ,eAC7C4S,aAAcjR,KAAW7H,IAAI0P,EAAUxJ,OAAQ,sBAC/Cgb,iBAAkBrZ,KAAW7H,IAAI0P,EAAUxJ,OAAQ,qBACnDib,qBAAsBtZ,KAAW7H,IAAI0P,EAAUxJ,OAAQ,0BACvDkb,qBAAsBvZ,KAAW7H,IAC7B0P,EAAUxJ,OACV,6BAEJmb,kBAAmB3R,EAAUmF,WAAW,WAAW,GACnDyM,wBAAyB5R,EAAUmF,WAAW,qBAAqB,GACnE0M,gBAAiB1Z,KAAW7H,IAAI0P,EAAUxJ,OAAQ,uBAEvD,CAACwJ,IACJ,OACI,oCACI,kBAACiJ,GAAD,CAAcL,SAAS,IACvB,yBAAKzK,UAAU,gCAEX,yBAAKA,UAAU,0CAGX,yBAAKA,UAAU,4CAA4C+B,GAAG,cAC1D,kBAACyI,GAAD,CAAQC,SAAS,IAEjB,yBAAK1I,GAAG,aAAa/B,UAAS,kBAAa8B,EAAY0R,kBAAzB,2CAGxB1R,EAAY4R,iBACV,yBAAK1T,UAAU,4BAEX,yBAAKA,UAAW8B,EAAY2R,yBACvBtc,KAQjB,kBAACkU,GAAD,W,+DC3BTsI,GAzBQ,SAAC,GAA8B,IAA5BjiB,EAA2B,EAA3BA,KAAMwL,EAAqB,EAArBA,QAAS0W,EAAY,EAAZA,MAAY,EACNC,eAAnCC,EADyC,EACzCA,gBAAiBC,EADwB,EACxBA,cAOzB,OAAOD,EAAgB5W,EAAS,CAC5B6M,QAASrY,EACTsiB,iBAAkBJ,EAAQ,IAAQ,IAClCK,QAASL,GAAgB,KACzBM,aAAc,CAAEC,SAAU,SAAUC,WAAY,SAChD3iB,OAAQ,SAAAH,GAAG,OACP,kBAAC+iB,GAAA,EAAD,CAAY/iB,IAAI,QAAQgjB,aAAW,QAAQC,MAAM,UAAU9T,QAAS,kBAZ5E,SAAenP,GACPsiB,GACAA,IAEJG,EAAcziB,GAQgEkjB,CAAMljB,KAC3EsiB,EACG,kBAAC,KAAD,MAEA,kBAAC,KAAD,W,qJCsCLa,GAxDC,SAAC,GAA0B,IAAxBC,EAAuB,EAAvBA,IAAKC,EAAkB,EAAlBA,KAAMH,EAAY,EAAZA,MAAY,EACNnT,mBAAS,MADH,oBAC/BuT,EAD+B,KACrBC,EADqB,OAEFxT,mBAAS,GAFP,oBAE/ByT,EAF+B,KAEnBC,EAFmB,KAkBtC,OACI,kBAACC,GAAA,EAAD,CACIL,KAAMA,EACNV,QAASO,EACTS,SAAU,KAEV,kBAACC,GAAA,EAAD,KACI,6BACI,kBAAC,KAAD,CACIC,KAAMT,EACNU,cAxBpB,YAA8C,IAAbR,EAAY,EAAZA,SAC7BC,EAAYD,KAyBI,kBAAC,KAAD,CAAME,WAAYA,OAK9B,kBAACO,GAAA,EAAD,CAAerV,UAAU,iCACrB,kBAACqU,GAAA,EAAD,CAAYrU,UAAU,OAAOS,QA7BpB,WACbqU,EAAa,GACbC,EAAcD,EAAa,IA2B6BQ,WAAYR,EAAa,IACzE,kBAAC,KAAD,OAEJ,wCAAWA,EAAX,OAA2BF,GAC3B,kBAAEP,GAAA,EAAF,CAAarU,UAAU,OAAOS,QA3BzB,WACTmU,EAAWE,GACXC,EAAcD,EAAa,IAyB0BQ,WAAYV,EAAWE,IACpE,kBAAC,KAAD,QAGR,kBAACO,GAAA,EAAD,KACI,uBAAGjV,KAAMsU,EAAKa,UAAQ,GAClB,kBAAC,KAAD,CAAQhB,MAAM,UAAUvU,UAAU,QAAlC,cAGJ,kBAAC,KAAD,CAAQuU,MAAM,YAAYvU,UAAU,OAAOS,QAAS+T,GAApD,a,qHC1CVgB,GAAYC,aAAW,CAGzBC,UAAW,CACPC,WAAY,UACZC,UAAW,SACXC,OAAQ,EACRC,aAAc,EAEdvB,MAAO,QACPhM,OAAQ,GACRwN,QAAS,OAEbC,UAAW,CACPJ,UAAW,SACXrB,MAAO,WAEX0B,SAAU,CACN1B,MAAO,UACPsB,OAAQ,oBACRC,aAAc,EACdI,SAAU,GACVC,OAAQ,mBAEZC,UAAW,CACP7B,MAAO,UACPsB,OAAQ,oBACRC,aAAc,EACdI,SAAU,IAEdnV,KAAM,CACFmV,SAAU,MAkDHG,GA9CK,SAAC,GAAyB,IAAvBC,EAAsB,EAAtBA,KAAMC,EAAgB,EAAhBA,UACjBC,EAAkBF,EAAlBE,cACFC,EAAM,UAAMpmB,sCAAN,+CAA0EmmB,GAEhFje,EAAUid,KAJyB,EAMXnU,oBAAS,GANE,oBAMlCqV,EANkC,KAMzBC,EANyB,KAQzC,OACI,yBAAK3W,UAAWuW,EAAY,+BAAiC,iCACzD,kBAAC,KAAD,KACI,kBAAC,KAAD,CAAYvW,UAAWzH,EAAQmd,UAAWvP,MAAK,UAAKmQ,EAAKM,QACzD,kBAACC,GAAA,EAAD,MACMN,GACE,wBAAIvW,UAAU,eAAesW,EAAKQ,gBAEtC,2BAAIR,EAAKS,SACT,2BAAG,oCAAaT,EAAKU,KACrB,2BAAG,8CAAuBV,EAAKW,cAC/B,wBAAIjX,UAAU,eAAiC,IAAlBsW,EAAKY,SAAiB,kBAAC,KAAD,CAAiBlX,UAAU,OAAOuU,MAAM,YAAe,kBAAC,KAAD,CAAWvU,UAAU,OAAO/F,MAAO,CAAEsa,MAAO,YAAtJ,IAAuK+B,EAAKa,QAC5K,yBAAKnX,UAAU,8BACX,kBAAC,KAAD,CAAQA,UAAWzH,EAAQ0d,SAAUxV,QAAS,kBAAMkW,GAAW,KAC/D,kBAAC,KAAD,CAAyB3W,UAAU,cADnC,eAEmB,IAAlBsW,EAAKY,UACF,uBAAG9W,KAAMqW,EAAQlB,UAAQ,GACrB,kBAAC,KAAD,CAAQvV,UAAWzH,EAAQ0d,UAC1B,kBAAC,KAAD,CAA2BjW,UAAU,cADtC,kBAgBnB0W,GAAW,kBAAC,GAAD,CAAShC,IAAK+B,EAAQ9B,KAAM+B,EAASlC,MAAO,kBAAMmC,GAAW,QCxEtES,GAZG,WACd,OACI,yBAAKpX,UAAU,QACX,6BACA,6BACA,6BACA,6BACA,kBAAC,KAAD,CAAMwF,GAAG,UAAS,qEAAgD,+B,UCZxE6R,GAAahnB,sCAENinB,GAAyB,GAAD,OAAID,GAAJ,mCACxBE,GAAwB,GAAD,OAAIF,GAAJ,6BACM,GAAD,OAAIA,GAAJ,wC,+CCQlC,mCAAAG,EAAA,6DAAsCzV,EAAtC,EAAsCA,GAAIrQ,EAA1C,EAA0CA,KACvClB,EADH,UACqB,QAATkB,EAAiB4lB,GAA2BC,IADxD,OACkFxV,GADlF,SAEkB7P,IAAMC,IAAI3B,GAF5B,cAEGinB,EAFH,yBAGIA,EAAOrlB,MAHX,4C,sBAkBP,IC3BQR,GAAYsC,EAAZtC,QAEK8lB,GAAmB,SAAAC,GAAM,OAAI,SAAAC,GAEtC,OADAA,EAAShmB,GAAQuC,UAAU,CAAEd,SAAUT,KDMpC,SAAP,mCCLWilB,CACmBF,GACrBG,MAAK,SAAAC,GACF,IAAM/jB,EAAc+jB,EACpBH,EAAShmB,GAAQwC,mBAAmB,CAAEJ,oBAEzCgkB,OAAM,SAAA7kB,GACHA,EAAMC,cAAgBD,EAAM4kB,WAAa5kB,EAAM4kB,SAAS3lB,KAAK6lB,SAAW9kB,EAAM4kB,SAAS3lB,MACvFwlB,EAAShmB,GAAQsB,WAAW,CAAEC,QAAOE,SAAUT,UCCrD4iB,GAAYC,aAAW,CACzBO,UAAW,CACPJ,UAAW,SACXrB,MAAO,aAsEA2D,GAlEW,SAAC3X,GAAW,IAC1BwB,EAAOxB,EAAM4X,MAAMR,OAAnB5V,GACFqW,EAAUC,eACV9nB,EAAW+V,eAHgB,EAIHjF,oBAAS,GAJN,oBAI1BC,EAJ0B,KAIjBC,EAJiB,KAK3BpH,EAAO5J,EAASH,SAASkoB,UAAU,EAAG,GAEtC/f,EAAUid,KAGVoC,EAAWW,eAVgB,EAYWC,cACxC,SAAAhnB,GAAK,OAAIA,EAAMuC,eACf0kB,MAFIzkB,EAZyB,EAYzBA,YAAab,EAZY,EAYZA,MAAOb,EAZK,EAYLA,YAS5B,OALAsP,qBAAU,WACNgW,EAASc,GAAqC,CAAE3W,KAAIrQ,KAAe,QAATyI,EAAiB,MAAQ,MACnFoH,GAAW,KACZ,CAACqW,EAAUrW,EAAYQ,EAAI5H,IAG1B,kBAAC4O,GAAD,KACI,kBAAC1B,GAAD,CAAYlB,MAAM,gBACd,kBAACiB,GAAD,KACI,kBAAC,KAAD,CAAM5B,GAAG,aACL,kBAACmT,GAAA,EAAD,CAAQC,KAAK,KAAK7O,QAAQ,kBAAkB/J,UAAU,iBAAtD,IAAiF,QAAT7F,EAAiB,QAAU,SAAnG,QAIZ,kBAACyO,GAAD,KAEI,6BACA,yBAAK5I,UAAU,yCACV1N,GAAegP,EACZ,yBAAKtB,UAAU,mDAAmD/F,MAAO,CAAE4e,UAAW,MAClF,6BACI,yBAAK7Y,UAAU,iCACX,kBAAC8Y,GAAA,EAAD,CAAS9Y,UAAS,eAAUzH,EAAQyd,WAAa+C,UAAU,YAE/D,wBAAI/Y,UAAWzH,EAAQyd,WAAvB,4BAIRhiB,GAAwC,IAAzBA,EAAYkjB,SACvB,kBAAC,GAAD,CAAaZ,KAAMtiB,IAEnB,oCACI,kBAAC,KAAD,CAAagM,UAAU,mBAAmB/F,MAAO,CAAEic,SAAU,OAC7D,wBAAIlW,UAAU,2BAAd,gDACA,kBAAC2Y,GAAA,EAAD,CACI3Y,UAAU,OACV+J,QAAQ,iBACRtJ,QAAS,kBAAM2X,EAAQY,QAAQ,eACxB,QAAT7e,EAAiB,SAAW,WAGzChH,GAAS,kBAAC,GAAD,CAAOzB,KAAK,QAAQwL,QAAS/J,KAE3C,kBAAC,GAAD,S,qBCZD8lB,GA/Da,WACxB,OACI,kBAAClQ,GAAD,KACI,kBAAC1B,GAAD,CAAYlB,MAAM,yCACd,kBAACiB,GAAD,KACI,kBAAC,KAAD,CAAM5B,GAAG,aACL,kBAACmT,GAAA,EAAD,CAAQC,KAAK,KAAK7O,QAAQ,kBAAkB/J,UAAU,iBAAtD,eAKZ,kBAAC4I,GAAD,KACI,6BACA,yBAAK5I,UAAU,yCACX,wBAAIA,UAAU,qBAAd,gCACA,yBAAKA,UAAU,qBACX,4BACI+B,GAAG,WACHrQ,KAAK,YACLyU,MAAM,gBACN+S,SAAU,EACV5b,MAAM,MACNiL,OAAO,MACPpI,IAAI,+CAGZ,yBAAKH,UAAU,+BACX,4BACI+B,GAAG,WACHrQ,KAAK,YACLyU,MAAM,gBACN+S,SAAU,EACV5b,MAAM,MACNiL,OAAO,MACPpI,IAAI,+CAGZ,yBAAKH,UAAU,qBACX,4BACI+B,GAAG,WACHrQ,KAAK,YACLyU,MAAM,gBACN+S,SAAU,EAEV3Q,OAAO,MACPpI,IAAI,gDAIhB,6BACA,6BACA,6BACA,wBAAIH,UAAU,cACd,4BAAI,uBAAGI,KAAK,wFAAwF4C,OAAO,SAASmW,SAAO,EAACxN,IAAI,uBAA5H,iEACJ,4BAAI,uBAAGvL,KAAMgZ,KAAKpW,OAAO,SAASmW,SAAO,EAACxN,IAAI,uBAA1C,uCACJ,qIAAoG,6BAChG,uBAAGvL,KAAK,mCAAmC4C,OAAO,SAASmW,SAAO,EAACxN,IAAI,uBAAvE,sC,UCSL0N,GAjEI,WACf,IAAMjB,EAAUC,eAMViB,EAAaC,OAAaC,MAAM,CAGlCC,KAAMF,OAEDG,SAAS,8CAElB,OACI,oCACI,wBAAI1Z,UAAU,4BAAd,yBACA,kBAAC,KAAD,CACI2Z,oBAAkB,EAClBC,cAjBU,CAElBH,KAAM,IAgBEI,iBAAkBP,EAClBQ,SAAU,SAACC,EAAD,GAAgC,IAArBC,EAAoB,EAApBA,cACjB5B,EAAQhd,KAAR,oBAA0B2e,EAAON,OACjCO,GAAc,MAGjB,SAAAC,GAAM,OACH,kBAAC,KAAD,KAWI,yBAAKja,UAAU,8BACX,yBAAKA,UAAU,8BACX,2BAAOka,QAAQ,QAAf,oCACA,kBAAC,KAAD,CACInnB,KAAK,OACLrB,KAAK,SACLyoB,UAAW,GACXna,UAAU,eACV6C,YAAY,2BAEhB,6DACA,yBAAK7C,UAAU,eAAc,kBAAC,KAAD,CAAcjN,KAAK,YAGxD,yBAAKiN,UAAU,mCACX,kBAAC2Y,GAAA,EAAD,CACI5O,QAAQ,UACRrY,KAAK,UAFT,iBC3Bb0oB,GAvBA,WACX,OACI,kBAACrR,GAAD,KACI,kBAAC1B,GAAD,CAAYlB,MAAM,eAUlB,kBAACyC,GAAD,KACA,6BACI,kBAAC,GAAD,MACA,kBAAC,GAAD,SCPHyR,GACT,gBAAC,GAAD,KACA,gBAAC,KAAD,KAgBI,gBAAC,KAAD,CAAOlgB,KAAK,iBAAiBmgB,UAAWpC,KACxC,gBAAC,KAAD,CAAO/d,KAAK,gBAAgBmgB,UAAWpC,KAEvC,gBAAC,KAAD,CAAO/d,KAAK,YAAYmgB,UAAWF,KACnC,gBAAC,KAAD,CAAOjgB,KAAK,SAASmgB,UAAWrB,KAChC,gBAAC,KAAD,CAAUsB,OAAK,EAACC,KAAK,IAAIhV,GAAG,gBCzCvBiV,GAAkB,CAC7BC,UAAWrqB,8BACXsqB,UAAWtqB,kBACXuqB,aAAcvqB,+CACdwqB,oBAAqBxqB,wmBAAYyqB,8BACjCC,yBAA0B1qB,mDAE1B2qB,cAAe3qB,iBAGf4qB,MAAO5qB,2CAGI6qB,GAAgB,CAC3BC,OAAQ9qB,8BACR+qB,SAAU/qB,oEACVgrB,uBAAwBhrB,gDACxBirB,eAAgBjrB,4CAChBkrB,kBAAmBlrB,+CACnBmrB,qBAAsBnrB,iDACtBorB,qBAAsBprB,mDACtBqrB,oBAAqBrrB,iDACrBsrB,uBAAwBtrB,kD,UCpBLurB,GAGjB,aAAe,IAAD,iCA0BdC,uBAAyB,WACrB,EAAKC,YAAYD,yBAAyB/D,MAAK,gBA3BrC,KAiCdiE,QAjCc,uBAiCJ,4BAAAvE,EAAA,sEACa,EAAKsE,YAAYC,UAD9B,UACA/qB,EADA,uCAGW,EAAK8qB,YAAYD,yBAH5B,wEAKC7qB,GALD,2CAjCI,KAyCdgrB,SAAW,SAACC,GACR,IACMC,EADYD,EAAMvrB,MAAM,KAAK,GACVsoB,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KACxD,OAAOviB,KAAKC,MAAMmO,OAAOsX,KAAKD,KA5CpB,KAgDdE,eAAiB,WACb7lB,aAAaoO,QAAQ,cAAeE,OAAOtU,SAASH,UACpD,EAAK0rB,YAAYM,eAAe,KAlDtB,KAsDdC,iBAAmB,WACfxX,OAAOtU,SAASyoB,QAAQ,MAvDd,KA2DdsD,gBAAkB,WACd,IAAMC,EAAc9lB,KAAKC,MAAMwO,eAAe1O,QAAf,oBAAoCnG,8BAApC,YAAsEA,qBAErG,QAAUksB,KAAiBA,EAAYC,cA9D7B,KAiEdC,aAAe,WACX,EAAKX,YAAYW,eACZ3E,MAAK,SAAC9mB,GACH4F,QAAQ8lB,IAAI,YAAa1rB,MAE5BgnB,OAAM,SAAC2E,GACJ/lB,QAAQ8lB,IAAIC,OAvEV,KA0EdC,qBAAuB,WACnB,EAAKd,YAAYc,wBA3EP,KA8EdC,oBAAsB,WAClB,OAAO,EAAKf,YAAYe,uBA/Ed,KAkFdC,OAAS,WACL,EAAKhB,YAAYiB,gBAAgB,CAC7BC,cAAezmB,aAAaC,QAAQ,cAExC,EAAKslB,YAAYmB,mBAtFP,KAyFdC,wBAA0B,WACtB,EAAKpB,YAAYoB,0BAA0BpF,MAAK,WAC5CvhB,aAAa0H,QACb4G,OAAOtU,SAASyoB,QAAQ3oB,wmBAAY8sB,yBAExC,EAAKrB,YAAYmB,mBA7FjB7kB,KAAK0jB,YAAc,IAAIA,eAAJ,2BACZrB,IADY,IAEf2C,UAAW,IAAIC,wBAAqB,CAAE3nB,MAAOmP,OAAOK,iBACpDoY,SAAS,eACFpC,OAIXqC,OAAIC,OAAS5mB,QACb2mB,OAAIE,MAAQF,OAAIG,MAChBtlB,KAAK0jB,YAAY6B,OAAOC,eAAc,SAAC5sB,IACkB,IAAjD6T,OAAOtU,SAAS6P,KAAKxP,QAAQ,gBAC7B,EAAKyrB,sBAGbjkB,KAAK0jB,YAAY6B,OAAOE,qBAAoB,SAACnd,GACzC9J,QAAQ8lB,IAAI,qBAAsBhc,EAAExD,YAGxC9E,KAAK0jB,YAAY6B,OAAOG,uBAAsB,WAC1ClnB,QAAQ8lB,IAAI,iBACZ,EAAKI,aCzBXiB,GAAc1d,IAAMvJ,cAAc,CACpC+kB,uBAAwB,iBAAO,IAC/BiB,OAAQ,iBAAO,IACfI,wBAAyB,iBAAO,IAChCZ,gBAAiB,iBAAO,IACxBF,eAAgB,iBAAO,IACvBQ,qBAAsB,iBAAO,IAC7BC,oBAAqB,iBAAO,MAKnBmB,IAFeD,GAAY9mB,SAExC,oDAEI,WAAYsJ,GAAQ,IAAD,+BACf,cAAMA,IACD0d,YAAc,IAAIrC,GAFR,EAFvB,sDAOQ,OAAO,kBAACmC,GAAYzmB,SAAb,CAAsBC,MAAOa,KAAK6lB,aAAc7lB,KAAKmI,MAAMpJ,cAP1E,GAAkC8S,c,mBCd5BoN,GAAY,UAAMhnB,uCAElB6tB,GAAe,UAAM7G,GAAN,YCCR8G,GAAa,wCAAG,4BAAA3G,EAAA,sEACJtlB,IAAMC,IAAI+rB,IADN,cACnBzG,EADmB,yBAElBA,EAAOrlB,MAFW,2CAAH,qDCAlBR,GAAY8C,EAAZ9C,QCEKwsB,GAAgB,WACzB,IAAMxG,EAAWW,eADc,EAE2BlX,oBAAS,GAFpC,oBAExBgd,EAFwB,KAEDC,EAFC,KAIvBrpB,EAAeujB,cACnB,SAAChnB,GAAD,MAAY,CAAEyD,WAAYzD,EAAMyD,cAChCwjB,MAFIxjB,WAKJR,EAGAQ,EAHAR,gBACAnC,EAEA2C,EAFA3C,YACAa,EACA8B,EADA9B,MAqBJ,OAlBAyO,qBAAU,WAGNgW,GDjBsC,SAAAA,GAE1C,OADAA,EAAShmB,GAAQ0B,SAAS,CAAEV,UAAWA,KAChCilB,KACFC,MAAK,SAAAC,GACF,IAAMtjB,EAAkBsjB,EAAS9iB,WACjC2iB,EAAShmB,GAAQ+C,kBAAkB,CAAEF,wBAExCujB,OAAM,SAAA7kB,GACHA,EAAMC,cAAgBD,EAAM4kB,WAAa5kB,EAAM4kB,SAAS3lB,KAAK6lB,SAAW9kB,EAAM4kB,SAAS3lB,MACvFwlB,EAAShmB,GAAQsB,WAAW,CAAEC,QAAOE,SAAUT,WCSnD,IAAI2rB,EAAgBhoB,aAAagoB,cAAgB9nB,KAAKC,MAAMH,aAAagoB,oBAAiBttB,EACtFwD,IAAoBnC,IACfisB,IACDA,EAAgB9pB,EAChB8B,aAAagoB,cAAgB9nB,KAAKmO,UAAUnQ,IAE5C8pB,IAAkB9pB,GAClB8B,aAAagoB,cAAgB9nB,KAAKmO,UAAUnQ,GAC5C6pB,GAAyB,IAEzBA,GAAyB,MAGlC,CAAC1G,EAAUnjB,EAAiBnC,IAE3B,oCACK+rB,GAAyB,kBAAC,GAAD,CAAgB3sB,KAAK,UAAUwL,QA/BvC,2DA+BmE0W,MAAO,kBAAM/O,OAAOtU,SAASuU,YAChH3R,GAAU,kBAAC,GAAD,CAAgBzB,KAAK,QAAQwL,QAAS/J,MCrBxDilB,GAAUoG,eAOD,SAASC,GAAT,GAA8C,IAA/B/oB,EAA8B,EAA9BA,MAAOK,EAAuB,EAAvBA,UAAW2oB,EAAY,EAAZA,SAC9C,OACE,kBAAC,KAAD,CAAQtG,QAASA,IAGf,kBAAC,KAAD,CAAU1iB,MAAOA,GAEf,kBAAC,KAAD,CAAaK,UAAWA,EAAWuL,QAAS,kBAAC+Q,GAAD,OAE1C,kBAAC,IAAMsM,SAAP,CAAgBC,SAAU,kBAACvM,GAAD,OACxB,kBAAC,KAAD,CAAkBwM,SAAU,GAC1B,kBAAC,GAAD,MAEA,kBAAC,KAAD,CAAeH,SAAUA,GAEvB,kBAACzL,GAAD,KAEE,kBAAClb,GAAD,KAEE,kBAAC,GAAD,KAEE,kBAAC,KAAD,CAAeZ,SAAUkjB,GAAQqE,SAAU,eA1BjEtG,GAAQ0G,QAAO,SAAAvuB,GACbwuB,KAAQC,IAAI,CAAEC,KAAM1uB,EAASH,WAC7B2uB,KAAQG,SAAS3uB,EAASH,a,wDCwBV8B,IC/CVitB,aAAaC,QAAQC,KACzB,SAAAhnB,GAKE,IACI4M,EADEjQ,EAAOkQ,eAAe1O,QAAf,oBAAoCnG,8BAApC,YAAsEA,oBAMnF,GAJG2E,IACDiQ,EAAYxO,KAAKC,MAAM1B,IAGrBiQ,GAAaA,EAAUuX,aAAc,CACvC,IAAMtrB,EAAY+T,EAAUuX,aAC5BnkB,EAAOinB,QAAQC,cAAf,iBAAyCruB,GAK3C,OAAOmH,KAET,SAAAskB,GAAG,OAAI6C,QAAQC,OAAO9C,MD4B1B+C,IAASC,OACP,kBAACzoB,GAAD,KACE,kBAACmI,GAAD,KACE,kBAACoS,GAAD,KACE,kBAACK,GAAD,KACE,kBAAC2M,GAAD,CAAK/oB,MAAOA,GAAOK,UAAWA,GAAW2oB,SAtB5BruB,SA2BrBuK,SAAS2O,eAAe,U,kCE5D1B,8CAKO,IAAIqW,EACF,CAGLC,UAAW,SAAS9sB,GAClB,IAAI+sB,EAAUllB,SAASmlB,OAAO5H,MAAM,IAAI6H,OACtC,WAAajtB,EAAKimB,QAAQ,+BAAgC,QAAU,aAEtE,OAAO8G,EAAUG,mBAAmBH,EAAQ,SAAM7uB,GAIpDivB,UAAW,SAASntB,EAAMwE,EAAO0I,GAC1BA,IACDA,EAAU,KAGdA,EAAUpG,OAAOC,OAAO,GAAI,CAACK,KAAM,KAAM8F,IAE7BkgB,mBAAmB5U,OAC7BtL,EAAQkgB,QAAUlgB,EAAQkgB,QAAQC,eAGpC,IAAIC,EAAgBC,mBAAmBvtB,GAAQ,IAAMutB,mBAAmB/oB,GAExE,IAAK,IAAIgpB,KAAatgB,EACpB,GAAKA,EAAQugB,eAAeD,GAA5B,CAGAF,GAAiB,KAAOE,EACxB,IAAIE,EAAcxgB,EAAQsgB,IACN,IAAhBE,IACFJ,GAAiB,IAAMI,GAI3B7lB,SAASmlB,OAASM,GAGpBK,aAAc,SAAS3tB,GACrBmtB,UAAUntB,EAAM,GAAI,CAClB,WAAY,MAOwB4tB,EAAOC,U,uDCrDnD,uBA6S4CD,EAAOC,QAIpCvT,IA3SG,SAASwT,EAAW5gB,GAElC,IAAI6gB,EAAM1oB,KAIN2oB,EAAU9U,IAAOC,QAAQ2U,GACzBhmB,EAAOoR,IAAOI,UAElB,GAAK0U,EAAL,CAKA,IAAIC,EAAiB,CACjBC,WAAY,IAOZC,EAAS,CACTC,UAAW,SAASlhB,GAahB,OAZIgM,IAAO7Z,KAAK2uB,GAASK,IAAI,aACzBN,EAAM7U,IAAO7Z,KAAK2uB,GAAS5uB,IAAI,cAG/B+uB,EAAOnV,KAAK9L,GAGZihB,EAAOG,QAEPpV,IAAO7Z,KAAK2uB,GAAS/B,IAAI,YAAa8B,IAGnCA,GAGX/U,KAAM,SAAS9L,GACX6gB,EAAInD,OAAS,GAGbmD,EAAI7gB,QAAUgM,IAAOqV,WAAW,GAAIN,EAAgB/gB,GAEpD6gB,EAAIS,UAAYT,EAAI7gB,QAAQqN,UAC5BwT,EAAIG,WAAaH,EAAI7gB,QAAQghB,WAC7BH,EAAIU,WAAaV,EAAIS,UAAY,MACjCT,EAAIW,aAAeX,EAAIS,UAAY,WACnCT,EAAI9d,OAEJ8d,EAAItvB,MAAQya,IAAOG,SAAS2U,EAASD,EAAIU,YAAc,QAAU,UAGrEH,MAAO,WAEH,GAAIP,EAAI7gB,QAAQuN,SACZ,GAAoC,kBAAzBsT,EAAI7gB,QAAQuN,SACnBvB,IAAOwE,SAASxE,IAAOC,QAAQ4U,EAAI7gB,QAAQuN,UAAW,SAAS,SAAS9M,GACpEA,EAAEC,iBACFmgB,EAAI9d,OAAS5K,KACb8oB,EAAOtjB,iBAER,GAAIkjB,EAAI7gB,QAAQuN,UAAYsT,EAAI7gB,QAAQuN,SAAS,GACpD,GAAIsT,EAAI7gB,QAAQuN,SAAS,GAAGxK,OACxB,IAAK,IAAI0e,KAAKZ,EAAI7gB,QAAQuN,SACtBvB,IAAOwE,SAASxE,IAAOC,QAAQ4U,EAAI7gB,QAAQuN,SAASkU,GAAG1e,QAAS,SAAS,SAAStC,GAC9EA,EAAEC,iBACFmgB,EAAI9d,OAAS5K,KACb8oB,EAAOtjB,iBAIf,IAAK,IAAI8jB,KAAKZ,EAAI7gB,QAAQuN,SACtBvB,IAAOwE,SAASxE,IAAOC,QAAQ4U,EAAI7gB,QAAQuN,SAASkU,IAAK,SAAS,SAAShhB,GACvEA,EAAEC,iBACFmgB,EAAI9d,OAAS5K,KACb8oB,EAAOtjB,iBAKZkjB,EAAI7gB,QAAQuN,UAAYsT,EAAI7gB,QAAQuN,SAASxK,QACpDiJ,IAAOwE,SAAUxE,IAAOC,QAAQ4U,EAAI7gB,QAAQuN,SAASxK,QAAS,SAAS,SAAStC,GAC5EA,EAAEC,iBACFmgB,EAAI9d,OAAS5K,KACb8oB,EAAOtjB,YAMnB,IAAI2P,EAAUtB,IAAOC,QAAQ4U,EAAI7gB,QAAQsN,SACrCA,GACAtB,IAAOwE,SAASlD,EAAS,SAAS,SAAS7M,GACvCA,EAAEC,iBACFmgB,EAAI9d,OAAS5K,KACb8oB,EAAOnT,WAKnB4T,QAAS,WACL,MAAqB,SAAbb,EAAItvB,OAGhBoM,OAAQ,WACJsjB,EAAOU,aAAa,UAEH,SAAbd,EAAItvB,MACJ0vB,EAAOnT,OAEPmT,EAAOW,QAIfA,KAAM,WACe,SAAbf,EAAItvB,QAIR0vB,EAAOU,aAAa,cAEpBV,EAAOY,YAAY,QAGnB7V,IAAOmE,KAAKvV,EAAM,kBAAoBimB,EAAIS,UAAW,MACrDtV,IAAOyE,SAASqQ,EAASD,EAAIU,YAEzBV,EAAIG,WAAWxtB,OAAS,GACxBwY,IAAOmE,KAAKvV,EAAM,kBAAoBimB,EAAIiB,YAAa,MAI3DjB,EAAItvB,MAAQ,QAERsvB,EAAI7gB,QAAQuC,UACZse,EAAIte,QAAUyJ,IAAO+V,YAAYpnB,SAASqnB,cAAc,OAASlB,GACjE9U,IAAOyE,SAASoQ,EAAIte,QAASse,EAAIW,cAEjCxV,IAAOwE,SAASqQ,EAAIte,QAAS,SAAS,SAAS9B,GAE3CA,EAAEC,iBACFugB,EAAOnT,KAAK+S,EAAI9d,YAIxBke,EAAOU,aAAa,eAGxB7T,KAAM,WACe,UAAb+S,EAAItvB,QAIR0vB,EAAOU,aAAa,cAEpBV,EAAOY,YAAY,QAEnB7V,IAAOiW,WAAWrnB,EAAM,kBAAoBimB,EAAIS,WAChDtV,IAAO4E,YAAYkQ,EAASD,EAAIU,YAE5BV,EAAIG,WAAWxtB,OAAS,GACxBwY,IAAOiW,WAAWrnB,EAAM,kBAAoBimB,EAAIG,YAGpDH,EAAItvB,MAAQ,SAERsvB,EAAI7gB,QAAQuC,SAAWse,EAAIte,SAC3ByJ,IAAOmG,OAAO0O,EAAIte,SAGtB0e,EAAOU,aAAa,eAGxBE,YAAa,SAASK,GAClB,IACI3U,EADAzL,EAAKkK,IAAOmE,KAAK0Q,EAAI9d,OAAQ,MAGjC,GAAI8d,EAAI7gB,QAAQuN,UAAYsT,EAAI7gB,QAAQuN,SAAS,IAAMsT,EAAI7gB,QAAQuN,SAAS,GAAGxK,OAC3E,IAAK,IAAI0e,KAAKZ,EAAI7gB,QAAQuN,SAClBsT,EAAI7gB,QAAQuN,SAASkU,GAAG1e,SAAWjB,IACnCyL,EAAWsT,EAAI7gB,QAAQuN,SAASkU,SAGjCZ,EAAI7gB,QAAQuN,UAAYsT,EAAI7gB,QAAQuN,SAASxK,SACpDwK,EAAWsT,EAAI7gB,QAAQuN,UAG3B,GAAIA,EAAU,CACV,IAAI4U,EAAKnW,IAAOC,QAAQsB,EAASxK,QAEpB,SAATmf,GACAlW,IAAOyE,SAAS0R,EAAI5U,EAAShc,OAGpB,SAAT2wB,GACAlW,IAAO4E,YAAYuR,EAAI5U,EAAShc,SAK5CowB,aAAc,SAAS7uB,EAAMsvB,GACzB,IAAK,IAAIX,EAAI,EAAGA,EAAIZ,EAAInD,OAAOlqB,OAAQiuB,IAAK,CACxC,IAAI3e,EAAQ+d,EAAInD,OAAO+D,GACvB,GAAI3e,EAAMhQ,MAAQA,EAAM,CACpB,GAAiB,GAAbgQ,EAAMuf,IAMN,OAAOvf,EAAMwf,QAAQC,KAAKpqB,KAAM0oB,EAAKuB,GALrC,GAAmB,GAAftf,EAAM0f,MAEN,OADA3B,EAAInD,OAAO+D,GAAGe,OAAQ,EACf1f,EAAMwf,QAAQC,KAAKpqB,KAAM0oB,EAAKuB,MASzD5R,SAAU,SAAS1d,EAAMwvB,EAASD,GAC9BxB,EAAInD,OAAOviB,KAAK,CACZrI,KAAMA,EACNwvB,QAASA,EACTD,IAAKA,EACLG,OAAO,MAoEnB,OAvDA3B,EAAI4B,YAAc,SAASziB,GACvB+gB,EAAiB/gB,GAOrB6gB,EAAIa,QAAU,WACV,OAAOT,EAAOS,WAMlBb,EAAI/S,KAAO,WACP,OAAOmT,EAAOnT,QAMlB+S,EAAIe,KAAO,WACP,OAAOX,EAAOW,QAQlBf,EAAIjT,GAAK,SAAS9a,EAAMwvB,GACpB,OAAOrB,EAAOzQ,SAAS1d,EAAMwvB,IAQjCzB,EAAIwB,IAAM,SAASvvB,EAAMwvB,GACrB,OAAOrB,EAAOzQ,SAAS1d,EAAMwvB,GAAS,IAQ1CrB,EAAOC,UAAUwB,MAAM7B,EAAK,CAAC7gB,KAGtB,EAGA6gB,M,qDCzSX,oEAgBK8B,QAAQC,UAAU/C,UACtB8C,QAAQC,UAAU/C,QAAU8C,QAAQC,UAAUC,mBAAqBF,QAAQC,UAAUE,uBAOjFH,QAAQC,UAAUG,UACjBJ,QAAQC,UAAU/C,UACtB8C,QAAQC,UAAU/C,QAAU8C,QAAQC,UAAUC,mBAAqBF,QAAQC,UAAUE,uBAEtFH,QAAQC,UAAUG,QAAU,SAAUC,GACrC,IACIC,EAAW9qB,KACf,IAAKwC,SAASuoB,gBAAgB1a,SAFrBrQ,MAEmC,OAAO,KACnD,EAAG,CACF,GAAI8qB,EAASpD,QAAQmD,GAAI,OAAOC,EAChCA,EAAWA,EAASE,oBACC,OAAbF,GACT,OAAO,OAUT,SAAWG,GACV,IAAK,IAAI3B,EAAI,EAAGA,EAAI2B,EAAK5vB,OAAQiuB,IAC3B7c,OAAOwe,EAAK3B,OAAO,WAAY7c,OAAOwe,EAAK3B,IAAImB,aACpDhe,OAAOwe,EAAK3B,IAAImB,UAAUzQ,OAAS,WAClCha,KAAKkrB,WAAWC,YAAYnrB,QAJ/B,CAOG,CAAC,UAAW,gBAAiB,iBAY/B,WAGG,IAFA,IAAIorB,EAAW,EACXC,EAAU,CAAC,SAAU,OAChBlf,EAAI,EAAGA,EAAIkf,EAAQhwB,SAAWoR,OAAO6e,wBAAyBnf,EACnEM,OAAO6e,sBAAwB7e,OAAO4e,EAAQlf,GAAK,yBACnDM,OAAO8e,qBACH9e,OAAO4e,EAAQlf,GAAK,yBAA2BM,OAAO4e,EAAQlf,GAAK,+BAGtEM,OAAO6e,wBACR7e,OAAO6e,sBAAwB,SAASE,GACpC,IAAIC,GAAW,IAAItY,MAAOuY,UACtBC,EAAaC,KAAKC,IAAI,EAAG,IAAMJ,EAAWL,IAC1CzhB,EAAK8C,OAAO5B,YAAW,WACvB2gB,EAASC,EAAWE,KACrBA,GAEH,OADAP,EAAWK,EAAWE,EACfhiB,IAGV8C,OAAO8e,uBACR9e,OAAO8e,qBAAuB,SAAS5hB,GACnCJ,aAAaI,KAtBxB,GAiDE,CAAC6gB,QAAQC,UAAWqB,SAASrB,UAAWsB,iBAAiBtB,WArBpD7nB,SAAQ,SAASsb,GACbA,EAAKkK,eAAe,YAGxB3mB,OAAOuqB,eAAe9N,EAAM,UAAW,CACnC+N,cAAc,EACdC,YAAY,EACZC,UAAU,EACVhtB,MAAO,WACH,IAAIitB,EAASnqB,MAAMwoB,UAAU4B,MAAMjC,KAAKkC,WACpCC,EAAU/pB,SAASgqB,yBAEvBJ,EAAOxpB,SAAQ,SAAS6pB,GACpB,IAAIC,EAASD,aAAmBE,KAChCJ,EAAQK,YAAYF,EAASD,EAAUjqB,SAASqqB,eAAeC,OAAOL,QAG1EzsB,KAAK+sB,aAAaR,EAASvsB,KAAKgtB,uBAOLn0B,GAAvC2xB,QAAQC,UAAUwC,oBACpBzC,QAAQC,UAAUwC,kBAAoB,WAIpC,IAHA,IAAIlsB,EAAaf,KAAKe,WAClB1F,EAAS0F,EAAW1F,OACpBgkB,EAAS,IAAIpd,MAAM5G,GACdiuB,EAAI,EAAGA,EAAIjuB,EAAQiuB,IAC1BjK,EAAOiK,GAAKvoB,EAAWuoB,GAAG3uB,KAE5B,OAAO0kB,IAKX5S,OAAOygB,uBAAyB,GAChCzgB,OAAO0gB,yBAA2B,EAClC1gB,OAAO2gB,6BAA+B,GAE/B,IAAIvZ,EAAS,WAChB,IAAIwZ,EAAiB,GAGjBtpB,EAAc,CACdC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,MAOJmpB,EAAuB,WAWvB7gB,OAAOkD,iBAAiB,UAAU,WAC9BkE,EAAO0Z,cAHPC,GAGuB,YAXF,WAErB,IAAK,IAAIlE,EAAI,EAAGA,EAAI+D,EAAehyB,OAAQiuB,IAAK,CACjC+D,EAAe/D,GACrBc,QAQLqD,KACD,SAIX,MAAO,CAOH9Z,KAAM,SAAS+Z,GACPA,GAAYA,EAAS3pB,cACrBA,EAAc2pB,EAAS3pB,aAG3BupB,KAOJ3V,iBAAkB,SAAS6T,GACvB6B,EAAerqB,KAAKwoB,IAOxBmC,oBAAqB,SAASnC,GAC1B,IAAK,IAAIlC,EAAI,EAAGA,EAAI+D,EAAehyB,OAAQiuB,IACnCkC,IAAa6B,EAAe/D,WACrB+D,EAAe/D,IAQlCsE,kBAAmB,WACfH,sBAGJI,OAAQ,WACJ,GAAsB,oBAAXC,MAEPrhB,OAAOshB,cAAc,IAAID,MAAM,eAC5B,CAGH,IAAIE,EAAMvhB,OAAOjK,SAASyrB,YAAY,YACtCD,EAAIE,YAAY,UAAU,GAAM,EAAOzhB,OAAQ,GAC/CA,OAAOshB,cAAcC,KAS7BG,YAAa,SAASC,GAClB,IACI9E,EAAG+E,EAAK9O,EADO9S,OAAOtU,SAASmO,OAAO4Z,UAAU,GAClB5nB,MAAM,KAExC,IAAKgxB,EAAI,EAAGA,EAAI/J,EAAOlkB,OAAQiuB,IAE3B,IADA+E,EAAM9O,EAAO+J,GAAGhxB,MAAM,MACd,IAAM81B,EACV,OAAOE,SAASD,EAAI,IAI5B,OAAO,MAOXlY,eAAgB,WACZ,IAAIoY,EAAQvuB,KAAKkY,cAAchT,MAAQlF,KAAKwuB,cAAc,MAO1D,OALa,IAATD,IAEAA,EAA6C,MAAtCE,UAAUC,UAAU3O,MAAM,UAG9BwO,GAOXI,gBAAiB,WACb,OAAO9a,EAAOsC,kBAQlB+B,YAAa,WACT,IAAI5P,EAAImE,OACJ2S,EAAI,QAMR,MALM,eAAgB3S,SAClB2S,EAAI,SACJ9W,EAAI9F,SAASuoB,iBAAmBvoB,SAASC,MAGtC,CACHyC,MAAOoD,EAAE8W,EAAI,SACbjP,OAAQ7H,EAAE8W,EAAI,YAUtBwP,oBAAqB,SAAS7E,GAC1B,IAAI8E,EAAa7uB,KAAKkY,cAAchT,MAEpC,MAAY,WAAR6kB,IAEe,WAARA,GAAqB8E,GAAe7uB,KAAKwuB,cAAc,MAAQ,IAEvD,UAARzE,GAAqB8E,GAAe7uB,KAAKwuB,cAAc,MAAQ,GAAMK,EAAa7uB,KAAKwuB,cAAc,QAE7F,UAARzE,GAAoB8E,GAAc7uB,KAAKwuB,cAAc,QAE7C,sBAARzE,GAAgC8E,GAAe7uB,KAAKwuB,cAAc,MAAQ,IAElE,qBAARzE,GAA+B8E,GAAc7uB,KAAKwuB,cAAc,OAExD,6BAARzE,GAAuC8E,GAAc7uB,KAAKwuB,cAAc,YAavFrX,eAAgB,SAAS4S,GAI9B,OAHqB/pB,KAAKkY,cAAchT,OACvBlF,KAAKwuB,cAAczE,IAKrCrU,iBAAkB,SAASqU,GAI1B,OAHqB/pB,KAAKkY,cAAchT,MACvBlF,KAAKwuB,cAAczE,IAU/B+E,YAAa,SAASC,GAClB,OAAOA,EAASnD,KAAKoD,MAAMpD,KAAKqD,UAAY,IAAI9b,MAAQuY,YAQ5D8C,cAAe,SAASzE,GACpB,OAAOhmB,EAAYgmB,IASvBmF,MAAO,SAASC,EAAKC,GACjB,IAAIC,EAIJ,IAA2B,KAF3BD,EAAOA,GAAQ,IAEN52B,QAAQ,KACb,MAAM,IAAI82B,MAAM,qCAGpBF,EAAOA,EAAK92B,MAAM,KAElB,EAAG,CACC,QAAYO,IAARs2B,EACA,OAAO,EAKX,GAFAE,EAAQD,EAAKG,SAERJ,EAAI/G,eAAeiH,GACpB,OAAO,EAGXF,EAAMA,EAAIE,SAELD,EAAK/zB,QAEd,OAAO,GAQXm0B,iBAAkB,SAASxF,GAGvB,IAFA,IAAIliB,EAAU3I,EAEP6qB,GAAMA,IAAOxnB,UAAU,CAM1B,IAAiB,cAFjBsF,EAAW+L,EAAO4D,IAAIuS,EAAI,cAEkB,aAAbliB,GAAwC,UAAbA,KAKtD3I,EAAQqY,SAAS3D,EAAO4D,IAAIuS,EAAI,aAE3ByF,MAAMtwB,IAAoB,IAAVA,GACjB,OAAOA,EAIf6qB,EAAKA,EAAGkB,WAGZ,OAAO,MAQXwE,yBAA0B,SAAS1F,GAG/B,KAAOA,GAAMA,IAAOxnB,UAAU,CAG1B,GAAiB,UAFNqR,EAAO4D,IAAIuS,EAAI,YAGtB,OAAO,EAGXA,EAAKA,EAAGkB,WAGZ,OAAO,GAMXyE,MAAO,SAASC,GAEZ,IADA,IAAIC,GAAQ,IAAI1c,MAAOuY,UACdpC,EAAI,EAAGA,EAAI,QACX,IAAInW,MAAOuY,UAAYmE,EAASD,GADhBtG,OAa7BwG,aAAc,SAASC,EAAKlE,GACxB,OAAOD,KAAKoD,MAAMpD,KAAKqD,UAAYpD,EAAMkE,EAAM,IAAMA,GAOzDC,iBAAkB,WACd,YAAuBn3B,IAAhB4T,OAAOwjB,MAMlB/G,WAAY,SAASgH,GACjBA,EAAMA,GAAO,GAEb,IAAK,IAAI5G,EAAI,EAAGA,EAAIgD,UAAUjxB,OAAQiuB,IAAK,CACvC,IAAI6F,EAAM7C,UAAUhD,GAEpB,GAAK6F,EAGL,IAAK,IAAIj2B,KAAOi2B,EACRA,EAAI/G,eAAelvB,KACK,kBAAbi2B,EAAIj2B,GACXg3B,EAAIh3B,GAAO2a,EAAOqV,WAAWgH,EAAIh3B,GAAMi2B,EAAIj2B,IAE3Cg3B,EAAIh3B,GAAOi2B,EAAIj2B,IAK/B,OAAOg3B,GAIXC,OAAQ,SAASD,GACbA,EAAMA,GAAO,GAEb,IAAK,IAAI5G,EAAI,EAAGA,EAAIgD,UAAUjxB,OAAQiuB,IAClC,GAAKgD,UAAUhD,GAGf,IAAK,IAAIpwB,KAAOozB,UAAUhD,GAClBgD,UAAUhD,GAAGlB,eAAelvB,KAC5Bg3B,EAAIh3B,GAAOozB,UAAUhD,GAAGpwB,IAIpC,OAAOg3B,GAGXpc,QAAS,SAASkW,GACd,MAAkB,kBAAPA,EACAxnB,SAAS2O,eAAe6Y,GAExBA,GAIfoG,SAAU,SAASC,GACf,OAAO7tB,SAAS8tB,qBAAqBD,IAGzCE,aAAc,SAASF,GACnB,OAAO7tB,SAAS8tB,qBAAqBD,IAGzCG,WAAY,SAASH,GACjB,OAAO7tB,SAASiuB,uBAAuBJ,IAG3Cpc,QAAS,WACL,OAAOzR,SAAS8tB,qBAAqB,QAAQ,IASjDI,WAAY,SAAS1G,EAAI7pB,GACrB,GAAK6pB,EAAL,CAMA,IAFA,IAAI2G,EAAaxwB,EAAQ7H,MAAM,KAEtBgxB,EAAI,EAAGA,EAAIqH,EAAWt1B,OAAQiuB,IACnC,GAAuD,GAAnDzV,EAAOG,SAASgW,EAAInW,EAAO+c,KAAKD,EAAWrH,KAC3C,OAAO,EAIf,OAAO,IAGXtV,SAAU,SAASgW,EAAIpiB,GACnB,GAAKoiB,EAIL,OAAOA,EAAGlnB,UAAYknB,EAAGlnB,UAAUuN,SAASzI,GAAa,IAAIggB,OAAO,MAAQhgB,EAAY,OAAO2mB,KAAKvE,EAAGpiB,YAG3G0Q,SAAU,SAAS0R,EAAIpiB,GACnB,GAAKoiB,GAA2B,qBAAdpiB,EAAlB,CAIA,IAAIipB,EAAajpB,EAAUtP,MAAM,KAEjC,GAAI0xB,EAAGlnB,UACH,IAAK,IAAIwmB,EAAI,EAAGA,EAAIuH,EAAWx1B,OAAQiuB,IAC/BuH,EAAWvH,IAAMuH,EAAWvH,GAAGjuB,OAAS,GACxC2uB,EAAGlnB,UAAUC,IAAI8Q,EAAO+c,KAAKC,EAAWvH,UAG7C,IAAKzV,EAAOG,SAASgW,EAAIpiB,GAC5B,IAAK,IAAIuE,EAAI,EAAGA,EAAI0kB,EAAWx1B,OAAQ8Q,IACnC6d,EAAGpiB,WAAa,IAAMiM,EAAO+c,KAAKC,EAAW1kB,MAKzDsM,YAAa,SAASuR,EAAIpiB,GACxB,GAAKoiB,GAA2B,qBAAdpiB,EAAlB,CAIE,IAAIipB,EAAajpB,EAAUtP,MAAM,KAEjC,GAAI0xB,EAAGlnB,UACH,IAAK,IAAIwmB,EAAI,EAAGA,EAAIuH,EAAWx1B,OAAQiuB,IACnCU,EAAGlnB,UAAUkX,OAAOnG,EAAO+c,KAAKC,EAAWvH,UAE5C,GAAIzV,EAAOG,SAASgW,EAAIpiB,GAC3B,IAAK,IAAIuE,EAAI,EAAGA,EAAI0kB,EAAWx1B,OAAQ8Q,IACnC6d,EAAGpiB,UAAYoiB,EAAGpiB,UAAUgZ,QAAQ,IAAIgH,OAAO,MAAQ/T,EAAO+c,KAAKC,EAAW1kB,IAAM,MAAO,KAAM,MAK7G2kB,mBAAoB,SAAS9G,EAAI+G,EAAW/2B,GACxC,IAAI2Q,EACA8B,OAAOukB,YACPrmB,EAAQ,IAAIqmB,YAAYD,EAAW,CAC/BE,OAAQj3B,KAGZ2Q,EAAQnI,SAASyrB,YAAY,gBACvBiD,gBAAgBH,GAAW,GAAM,EAAM/2B,GAGjDgwB,EAAG+D,cAAcpjB,IAGrBwmB,aAAc,SAASC,EAAML,GAEzB,IAAIM,EACJ,GAAID,EAAKE,cACLD,EAAMD,EAAKE,kBACR,IAAqB,GAAjBF,EAAKG,SAIZ,MAAM,IAAIjC,MAAM,qCAAuC8B,EAAKznB,IAF5D0nB,EAAMD,EAKV,GAAIA,EAAKrD,cAAe,CAEpB,IAAIyD,EAAa,GAKjB,OAAQT,GACR,IAAK,QACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,UACDS,EAAa,cACb,MAEJ,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,SACDA,EAAa,aACb,MAEJ,QACI,KAAM,sDAAwDT,EAAY,KAG9E,IAEIU,EAAuB,UAAbV,GAFVpmB,EAAQ0mB,EAAIpD,YAAYuD,IAGtBE,UAAUX,EAAWU,GAAS,GAEpC9mB,EAAMgnB,WAAY,EAElBP,EAAKrD,cAAcpjB,GAAO,QACvB,GAAIymB,EAAKQ,UAAW,CAEvB,IAAIjnB,KAAQ0mB,EAAIQ,qBACVF,WAAY,EAClBP,EAAKQ,UAAU,KAAOb,EAAWpmB,KAIzCmnB,MAAO,SAAU9H,GAEb,IADA,IAAI+H,EAAI/H,EAAGkB,WAAWnsB,SAAUuqB,EAAI,EAC9BA,EAAIyI,EAAE12B,OAAQiuB,IAChB,GAAIyI,EAAEzI,IAAMU,EAAK,OAAOV,GAGhCsH,KAAM,SAASoB,GACX,OAAOA,EAAOpB,QAGlBqB,eAAgB,SAAS3pB,GACrB,QAAIA,EAAE4pB,cAAcC,QAAQC,YAGxB9pB,EAAE4pB,cAAcC,QAAQC,WAAY,GAE7B,IAIfpY,OAAQ,SAASgQ,GACTA,GAAMA,EAAGkB,YACTlB,EAAGkB,WAAWC,YAAYnB,IAIlC9d,KAAM,SAASmmB,EAAQhC,GAEnB,GADAgC,EAASxe,EAAOC,QAAQue,GAEpB,OAAOA,EAAOviB,cAAcugB,IAIpCiC,QAAS,SAASD,EAAQhC,GAEtB,GADAgC,EAASxe,EAAOC,QAAQue,GAEpB,OAAOA,EAAOE,iBAAiBlC,IAIvCzG,YAAa,SAASI,EAAIwI,GACtB,OAAOA,EAActH,WAAW6B,aAAa/C,EAAIwI,EAAcC,cAGnEC,QAAS,SAASzH,EAAM0H,GAEfnI,QAAQC,UAAU/C,UACnB8C,QAAQC,UAAU/C,QACd8C,QAAQC,UAAUmI,iBAClBpI,QAAQC,UAAUoI,oBAClBrI,QAAQC,UAAUC,mBAClBF,QAAQC,UAAUqI,kBAClBtI,QAAQC,UAAUE,uBAClB,SAASE,GAGL,IAFA,IAAInD,GAAW1nB,KAAKwC,UAAYxC,KAAKsxB,eAAeiB,iBAAiB1H,GACjEvB,EAAI5B,EAAQrsB,SACPiuB,GAAK,GAAK5B,EAAQxJ,KAAKoL,KAAOtpB,OACvC,OAAOspB,GAAK,IAQxB,IAHA,IAAIoJ,EAAU,GAGNzH,GAAQA,IAASzoB,SAAUyoB,EAAOA,EAAKC,WACvCyH,EACI1H,EAAKvD,QAAQiL,IACbD,EAAQ1vB,KAAKioB,GAIrByH,EAAQ1vB,KAAKioB,GAIjB,OAAOyH,GAGX3zB,SAAU,SAASirB,EAAI2I,EAAUrO,GAC7B,GAAK0F,GAAOA,EAAG+I,WAAf,CAQA,IAJA,IAAI1T,EAAS,GACTiK,EAAI,EACJ0J,EAAIhJ,EAAG+I,WAAW13B,OAEViuB,EAAI0J,IAAK1J,EACgB,GAA7BU,EAAG+I,WAAWzJ,GAAGiI,UAAiB1d,EAAO6T,QAAQsC,EAAG+I,WAAWzJ,GAAIqJ,EAAUrO,IAC7EjF,EAAOrc,KAAKgnB,EAAG+I,WAAWzJ,IAIlC,OAAOjK,IAGX4T,MAAO,SAASjJ,EAAI2I,EAAUrO,GAC1B,IAAIvlB,EAAW8U,EAAO9U,SAASirB,EAAI2I,EAAUrO,GAE7C,OAAOvlB,EAAWA,EAAS,GAAK,MAGpC2oB,QAAS,SAASsC,EAAI2I,EAAUrO,GAC5B,IAAI4O,EAAI1I,QAAQC,UACZ0I,EAAID,EAAExL,SAAWwL,EAAEvI,uBAAyBuI,EAAEL,oBAAsBK,EAAExI,mBAAqB,SAASG,GACpG,OAAgE,IAAzD,GAAGryB,QAAQ4xB,KAAK5nB,SAAS+vB,iBAAiB1H,GAAI7qB,OAGzD,SAAIgqB,IAAMA,EAAGoJ,UACFD,EAAE/I,KAAKJ,EAAI2I,IAM1B34B,KAAM,SAASgwB,GACX,MAAO,CACHpD,IAAK,SAASjsB,EAAMX,GACXgwB,SAIoBnxB,IAArBmxB,EAAGqJ,gBACH5mB,OAAO0gB,2BACPnD,EAAGqJ,cAAgB5mB,OAAO0gB,+BAG0Bt0B,IAApD4T,OAAOygB,uBAAuBlD,EAAGqJ,iBACjC5mB,OAAOygB,uBAAuBlD,EAAGqJ,eAAiB,IAGtD5mB,OAAOygB,uBAAuBlD,EAAGqJ,eAAe14B,GAAQX,IAG5DD,IAAK,SAASY,GACV,GAAKqvB,EAIL,YAAyBnxB,IAArBmxB,EAAGqJ,cACI,KAGJrzB,KAAKgpB,IAAIruB,GAAQ8R,OAAOygB,uBAAuBlD,EAAGqJ,eAAe14B,GAAQ,MAGpFquB,IAAK,SAASruB,GACV,QAAKqvB,SAIoBnxB,IAArBmxB,EAAGqJ,kBAIC5mB,OAAOygB,uBAAuBlD,EAAGqJ,iBAAkB5mB,OAAOygB,uBAAuBlD,EAAGqJ,eAAe14B,MAG/Gqf,OAAQ,SAASrf,GACTqvB,GAAMhqB,KAAKgpB,IAAIruB,WACR8R,OAAOygB,uBAAuBlD,EAAGqJ,eAAe14B,MAMvE24B,WAAY,SAAStJ,EAAIjM,GACrB,IAAI7Y,EAEJ,OAAe,IAAX6Y,GACA7Y,EAAQquB,WAAWvJ,EAAGwJ,aACtBtuB,GAASquB,WAAW1f,EAAO4D,IAAIuS,EAAI,gBAAkBuJ,WAAW1f,EAAO4D,IAAIuS,EAAI,iBAExEuJ,WAAWruB,IAElBA,EAAQquB,WAAWvJ,EAAGwJ,cAM9Bzc,OAAQ,SAASiT,GACb,IAAIyJ,EAAMC,EAEV,GAAM1J,EASN,OAAMA,EAAG2J,iBAAiBt4B,QAK1Bo4B,EAAOzJ,EAAG4J,wBACVF,EAAM1J,EAAGsH,cAAcuC,YAEhB,CACHxkB,IAAKokB,EAAKpkB,IAAMqkB,EAAII,YACpB1c,KAAMqc,EAAKrc,KAAOsc,EAAIK,cATf,CAAE1kB,IAAK,EAAG+H,KAAM,IAa/BjH,OAAQ,SAAS6Z,GACb,OAAOnW,EAAO4D,IAAIuS,EAAI,WAG1BgK,YAAa,SAAShK,EAAIiK,GACtB,IACIpyB,EADAsO,EAAS6Z,EAAG5Z,aAGhB,MAA0B,qBAAf6jB,IAA6C,IAAfA,GACrCpyB,EAAQqO,iBAAiB8Z,GACzB7Z,GAAUqH,SAAS3V,EAAMqyB,WAAa1c,SAAS3V,EAAMsyB,eAI9ChkB,GAIf0J,QAAS,SAASmQ,GACd,QAA4B,IAAnBA,EAAGwJ,aAAyC,IAApBxJ,EAAG5Z,eAGxC4H,KAAM,SAASgS,EAAIrvB,EAAMwE,GACrB,QAAUtG,GAANmxB,EAIJ,YAAcnxB,IAAVsG,EAGO6qB,EAAGoK,aAAaz5B,QAFvBqvB,EAAGqK,aAAa15B,EAAMwE,IAM9Bm1B,QAAS,SAAStK,EAAIrvB,GAClB,QAAU9B,GAANmxB,EAIJ,QAAOA,EAAGoK,aAAaz5B,IAG3BmvB,WAAY,SAASE,EAAIrvB,QACX9B,GAANmxB,GAIJA,EAAGuK,gBAAgB55B,IAGvBqW,QAAS,SAASoR,EAAMhV,EAAIonB,EAAU3c,EAAQ4c,EAAQC,GAKlD,IAAIC,EAAU,GAUd,GAPAA,EAAQC,OAAS,SAASC,EAAGC,EAAG/C,EAAGgD,GAC/B,OAAOhD,EAAI8C,EAAIE,EAAID,GAGvBL,EAASE,EAAQC,OAGG,kBAATxS,GACO,kBAAPhV,GACa,kBAAbonB,GACW,oBAAX3c,EAHX,CAQoB,oBAAT6c,IACPA,EAAO,cAIX,IAAIM,EAAMvoB,OAAO6e,uBAAyB,SAASE,GAC/C/e,OAAO5B,WAAW2gB,EAAU,KAK5ByJ,EAAS7nB,EAAKgV,EAgBlBvK,EAAOuK,GAGP,IAAIyN,EAAQpjB,OAAOyoB,aAAezoB,OAAOyoB,YAAYtjB,IAAMnF,OAAOyoB,YAAYtjB,OAAS,IAAIuB,KAE3F6hB,GAnBA,SAASG,EAAKC,GACV,IAAIpf,GAAQof,IAAc,IAAIjiB,MAAU0c,EAEpC7Z,GAAQ,GACR6B,EAAO4c,EAAOze,EAAMoM,EAAM6S,EAAQT,IAElCxe,GAAQ,GAAKA,GAAQwe,GACrB3c,EAAOzK,GACPsnB,KAEAM,EAAIG,QAYhBE,UAAW,SAASrL,EAAIsL,EAAMC,GAC1B,IAOQp2B,EAPJsY,EAAM,GAEV,GAAIuS,aAAcwL,eAAgB,EAIlC,OAAKxL,EAAGoK,aAAa,aAAekB,KAAmB,IAAVC,EAsBlChC,WAAWvJ,EAAGoK,aAAa,aAAekB,KAjBjD7d,EAAMuS,EAAGnoB,MAAM4zB,QACfzL,EAAGnoB,MAAM4zB,QAAU,0DAEP,SAARH,EACAn2B,EAAQ6qB,EAAGwJ,YACI,UAAR8B,IACPn2B,EAAQ6qB,EAAG5Z,cAGf4Z,EAAGnoB,MAAM4zB,QAAUhe,EAGnBuS,EAAGqK,aAAa,aAAeiB,EAAMn2B,GAE9Bo0B,WAAWp0B,KAO1BoV,aAAc,SAASyV,EAAIuL,GACvB,OAAO1hB,EAAOwhB,UAAUrL,EAAI,SAAUuL,IAG1CG,YAAa,SAAS1L,EAAIuL,GACtB,OAAO1hB,EAAOwhB,UAAUrL,EAAI,QAASuL,IAGzCI,UAAW,SAAShN,EAASiN,GAGzB,OADAA,EAAS,SAAWA,EACZjN,GAAWlc,QAAUkc,GAAWnmB,SACpCyC,KAAgB,aAAV2wB,EAAyB,cAAgB,gBAC9CC,yBAA2BrzB,SAASuoB,gBAAgB6K,IACrDpzB,SAASC,KAAKmzB,GACdjN,EAAQiN,IAGhBne,IAAK,SAASuS,EAAI8L,EAAW32B,GACzB,GAAK6qB,EAIL,QAAcnxB,IAAVsG,EACA6qB,EAAGnoB,MAAMi0B,GAAa32B,MACnB,CACH,IAAI00B,GAAe7J,EAAGsH,eAAiB9uB,UAAUqxB,YAEjD,GAAIA,GAAeA,EAAY3jB,iBAI3B,OADA4lB,EAAYA,EAAUlV,QAAQ,WAAY,OAAOmV,cAC1ClC,EAAY3jB,iBAAiB8Z,EAAI,MAAMgM,iBAAiBF,GAC5D,GAAI9L,EAAGiM,aAOV,OALAH,EAAYA,EAAUlV,QAAQ,WAAW,SAASsV,EAAKC,GACnD,OAAOA,EAAOhpB,iBAElBhO,EAAQ6qB,EAAGiM,aAAaH,GAEpB,sBAAsBvH,KAAKpvB,GACnB,SAASA,GACb,IAAIi3B,EAAUpM,EAAGnoB,MAAMuV,KACnBif,EAAYrM,EAAGsM,aAAalf,KAMhC,OALA4S,EAAGsM,aAAalf,KAAO4S,EAAGiM,aAAa7e,KACvC4S,EAAGnoB,MAAMuV,KAAOjY,GAAS,EACzBA,EAAQ6qB,EAAGnoB,MAAM00B,UAAY,KAC7BvM,EAAGnoB,MAAMuV,KAAOgf,EAChBpM,EAAGsM,aAAalf,KAAOif,EAChBl3B,EARH,CASLA,GAEAA,IAKnBq3B,MAAO,SAASxM,EAAIyM,EAAKC,EAAOlL,EAAUmL,GACtC,MAAK3M,GAAc,MAAPyM,IAAsC,IAAvB5iB,EAAOgG,QAAQmQ,IAA0B,QAAPyM,IAAwC,IAAvB5iB,EAAOgG,QAAQmQ,IAA7F,CAIA0M,EAASA,GAAgB,IACzB,IAAIE,EAAa/iB,EAAOU,aAAayV,GACjC6M,GAAiB,EACjBC,GAAoB,EAEpBjjB,EAAO4D,IAAIuS,EAAI,iBAA+D,IAA7CnW,EAAO7Z,KAAKgwB,GAAIhB,IAAI,sBACrDnV,EAAO7Z,KAAKgwB,GAAIpD,IAAI,oBAAqB/S,EAAO4D,IAAIuS,EAAI,gBAGxDnW,EAAO4D,IAAIuS,EAAI,oBAAqE,IAAhDnW,EAAO7Z,KAAKgwB,GAAIhB,IAAI,yBACxDnV,EAAO7Z,KAAKgwB,GAAIpD,IAAI,uBAAwB/S,EAAO4D,IAAIuS,EAAI,mBAG3DnW,EAAO7Z,KAAKgwB,GAAIhB,IAAI,uBACpB6N,EAAiBrf,SAAS3D,EAAO7Z,KAAKgwB,GAAIjwB,IAAI,uBAG9C8Z,EAAO7Z,KAAKgwB,GAAIhB,IAAI,0BACpB8N,EAAoBtf,SAAS3D,EAAO7Z,KAAKgwB,GAAIjwB,IAAI,0BAG1C,MAAP08B,GACAzM,EAAGnoB,MAAM4zB,QAAU,oCAEfoB,GACAhjB,EAAO7C,QAAQ,EAAG6lB,EAAgBH,GAAO,SAASv3B,GAC9C6qB,EAAGnoB,MAAMk1B,WAAcF,EAAiB13B,EAAS,OAClD,UAGH23B,GACAjjB,EAAO7C,QAAQ,EAAG8lB,EAAmBJ,GAAO,SAASv3B,GACjD6qB,EAAGnoB,MAAMm1B,cAAiBF,EAAoB33B,EAAS,OACxD,UAGP0U,EAAO7C,QAAQ,EAAG4lB,EAAYF,GAAO,SAASv3B,GAC1C6qB,EAAGnoB,MAAMsO,OAAUymB,EAAaz3B,EAAS,OAC1C,UAAU,WACT6qB,EAAGnoB,MAAMsO,OAAS,GAClB6Z,EAAGnoB,MAAMmD,QAAU,OAEK,oBAAbwmB,GACPA,QAKM,QAAPiL,IACPzM,EAAGnoB,MAAM4zB,QAAU,oCAEfoB,GACAhjB,EAAO7C,QAAQ,EAAG6lB,EAAgBH,GAAO,SAASv3B,GAC9C6qB,EAAGnoB,MAAMk1B,WAAa53B,EAAQ,OAC/B,UAAU,WACT6qB,EAAGnoB,MAAMk1B,WAAa,MAI1BD,GACAjjB,EAAO7C,QAAQ,EAAG8lB,EAAmBJ,GAAO,SAASv3B,GACjD6qB,EAAGnoB,MAAMm1B,cAAgB73B,EAAQ,OAClC,UAAU,WACT6qB,EAAGnoB,MAAMm1B,cAAgB,MAIjCnjB,EAAO7C,QAAQ,EAAG4lB,EAAYF,GAAO,SAASv3B,GAC1C6qB,EAAGnoB,MAAMsO,OAAShR,EAAQ,OAC3B,UAAU,WACT6qB,EAAGnoB,MAAMsO,OAAS,GAClB6Z,EAAGnoB,MAAMmD,QAAU,GACnBglB,EAAGnoB,MAAM8F,SAAW,GAEI,oBAAb6jB,GACPA,UAMhByL,QAAS,SAASjN,EAAI0M,EAAOlL,GACzB3X,EAAO2iB,MAAMxM,EAAI,KAAM0M,EAAOlL,IAGlC0L,UAAW,SAASlN,EAAI0M,EAAOlL,GAC3B3X,EAAO2iB,MAAMxM,EAAI,OAAQ0M,EAAOlL,IAGpC/B,KAAM,SAASO,EAAIhlB,GACG,qBAAPglB,IACPA,EAAGnoB,MAAMmD,QAAWA,GAAoB,UAIhD2Q,KAAM,SAASqU,GACO,qBAAPA,IACPA,EAAGnoB,MAAMmD,QAAU,SAI3BqT,SAAU,SAAS2R,EAAI1wB,EAAM6wB,EAASD,GAChB,qBAAPF,GAA6B,OAAPA,GAC7BA,EAAGra,iBAAiBrW,EAAM6wB,IAIlCgN,YAAa,SAASnN,EAAI1wB,EAAM6wB,GACjB,OAAPH,GACAA,EAAGpa,oBAAoBtW,EAAM6wB,IAIrC1U,GAAI,SAASkT,EAASgK,EAAUhoB,EAAOwf,GACnC,GAAKwI,EAAL,CAIA,IAAIyE,EAAUvjB,EAAOib,YAAY,SAmBjC,OAjBAriB,OAAO2gB,6BAA6BgK,GAAW,SAAS9uB,GAIpD,IAHA,IAAI+uB,EAAU1O,EAAQ4J,iBAAiBI,GACnC/nB,EAAStC,EAAEsC,OAERA,GAAUA,IAAW+d,GAAS,CACjC,IAAK,IAAIW,EAAI,EAAGgO,EAAID,EAAQh8B,OAAQiuB,EAAIgO,EAAGhO,IACnC1e,IAAWysB,EAAQ/N,IACnBa,EAAQC,KAAKxf,EAAQtC,GAI7BsC,EAASA,EAAOsgB,aAIxBrX,EAAOwE,SAASsQ,EAAShe,EAAO8B,OAAO2gB,6BAA6BgK,IAE7DA,IAGXG,IAAK,SAAS5O,EAAShe,EAAOysB,GACrBzO,GAAYlc,OAAO2gB,6BAA6BgK,KAIrDvjB,EAAOsjB,YAAYxO,EAAShe,EAAO8B,OAAO2gB,6BAA6BgK,WAEhE3qB,OAAO2gB,6BAA6BgK,KAG/ClN,IAAK,SAAiBF,EAAI1wB,EAAMkyB,GAC5BxB,EAAGra,iBAAiBrW,GAAM,SAASk+B,EAAOlvB,GAYtC,OAVIA,EAAEsC,QAAUtC,EAAEsC,OAAOgF,qBACrBtH,EAAEsC,OAAOgF,oBAAoBtH,EAAEhP,KAAMk+B,GAIrCxN,GAAMA,EAAGpa,qBACrBtH,EAAE4pB,cAActiB,oBAAoBtH,EAAEhP,KAAMk+B,GAI7BhM,EAASljB,OAIxBmvB,KAAM,SAASvB,GACX,IACI5M,EADAmO,EAAO,EAGX,GAAmB,IAAfvB,EAAI76B,OAAc,OAAOo8B,EAC7B,IAAKnO,EAAI,EAAGA,EAAI4M,EAAI76B,OAAQiuB,IAExBmO,GAASA,GAAQ,GAAKA,EADhBvB,EAAIwB,WAAWpO,GAErBmO,GAAQ,EAGZ,OAAOA,GAGXE,aAAc,SAAS3N,EAAI4N,EAAepM,GACtC,IAAI7K,EACAkX,EAAa,CACblX,UAAW,eACXmX,WAAY,gBACZC,aAAc,kBACdC,gBAAiB,qBACjBC,YAAa,kBAGjB,IAAK,IAAIpD,KAAKgD,OACUh/B,IAAhBmxB,EAAGnoB,MAAMgzB,KACTlU,EAAYkX,EAAWhD,IAI/BhhB,EAAOyE,SAAS0R,EAAI,YAAc4N,GAElC/jB,EAAOqW,IAAIF,EAAIrJ,GAAW,WACtB9M,EAAO4E,YAAYuR,EAAI,YAAc4N,MAGrCpM,GACA3X,EAAOqW,IAAIF,EAAIrJ,EAAW6K,IAIlC0M,cAAe,SAASlO,EAAIwB,GACxB,IAAI2M,EACAC,EAAc,CACdD,WAAY,gBACZE,YAAa,iBACbC,cAAe,mBACfC,iBAAkB,sBAClBC,aAAc,mBAGlB,IAAK,IAAI3D,KAAKuD,OACUv/B,IAAhBmxB,EAAGnoB,MAAMgzB,KACTsD,EAAaC,EAAYvD,IAIjChhB,EAAOqW,IAAIF,EAAImO,EAAY3M,IAG/BiN,aAAc,SAASzO,EAAIwB,GACvB,IAAI7K,EACAkX,EAAa,CACblX,UAAW,eACXmX,WAAY,gBACZC,aAAc,kBACdC,gBAAiB,qBACjBC,YAAa,kBAGjB,IAAK,IAAIpD,KAAKgD,OACUh/B,IAAhBmxB,EAAGnoB,MAAMgzB,KACTlU,EAAYkX,EAAWhD,IAI/BhhB,EAAOqW,IAAIF,EAAIrJ,EAAW6K,IAG9BkN,aAAc,SAAS1O,EAAI7qB,GAEvB,IADA,IAAIksB,EAAU,CAAC,UAAW,OAAQ,MAAO,KAAM,IACtC/B,EAAI,EAAGA,EAAI+B,EAAQhwB,OAAQiuB,IAChCzV,EAAO4D,IAAIuS,EAAIqB,EAAQ/B,GAAK,kBAAmBnqB,IAIvDw5B,gBAAiB,SAAS3O,EAAI7qB,GAE1B,IADA,IAAIksB,EAAU,CAAC,UAAW,OAAQ,MAAO,KAAM,IACtC/B,EAAI,EAAGA,EAAI+B,EAAQhwB,OAAQiuB,IAChCzV,EAAO4D,IAAIuS,EAAIqB,EAAQ/B,GAAK,qBAAsBnqB,IAI1Dy5B,SAAU,SAAShuB,EAAQmM,EAAQyd,GAC3BA,EAAWA,GAAsB,IAArC,IAGIpS,EAAMhV,EAFNyrB,EAAYjuB,EAASiJ,EAAOkD,OAAOnM,GAAQyE,IAAM,EACjDypB,EAAYrsB,OAAOqnB,aAAetxB,SAASuoB,gBAAgBvS,WAAahW,SAASC,KAAK+V,WAAa,EAGnGzB,IACA+hB,GAAa/hB,GAGjBqL,EAAO0W,EACP1rB,EAAKyrB,EAELhlB,EAAO7C,QAAQoR,EAAMhV,EAAIonB,GAAU,SAASr1B,GACxCqD,SAASuoB,gBAAgBvS,UAAYrZ,EACrCqD,SAASC,KAAKyoB,WAAW1S,UAAYrZ,EACrCqD,SAASC,KAAK+V,UAAYrZ,MAIlCqZ,UAAW,SAASzB,EAAQyd,GACxB3gB,EAAO+kB,SAAS,KAAM7hB,EAAQyd,IAGlCtyB,QAAS,SAASitB,GACd,OAAOA,GAAOltB,MAAMC,QAAQitB,IAGhC4J,MAAO,SAASvN,IACRhpB,SAASw2B,YAAsC,aAAxBx2B,SAASy2B,WAAoD,YAAxBz2B,SAASy2B,YACrEzN,IAEAhpB,SAASmN,iBAAiB,mBAAoB6b,IAItD0N,QAAS,SAAS/J,GACd,IAAK,IAAImG,KAAQnG,EACb,GAAIA,EAAI/G,eAAekN,GACnB,OAAO,EAIf,OAAO,GAGX6D,aAAc,SAASC,GAMnB,IAJA,IAAIjtB,GADJitB,GAAQ,IACK9gC,MAAM,KACf+gC,EAAKltB,EAAE,GACPmtB,EAAKntB,EAAE9Q,OAAS,EAAI,IAAM8Q,EAAE,GAAK,GACjCotB,EAAM,eACHA,EAAIhL,KAAK8K,IACZA,EAAKA,EAAGzY,QAAQ2Y,EAAK,SAEzB,OAAOF,EAAKC,GAGhBE,SAAU,WACN,IAAIC,EAAKhtB,OAAOgiB,UAAUC,UAgBtBgL,EAAOD,EAAGjhC,QAAQ,SACtB,GAAIkhC,EAAO,EAEP,OAAOliB,SAASiiB,EAAGvZ,UAAUwZ,EAAO,EAAGD,EAAGjhC,QAAQ,IAAKkhC,IAAQ,IAInE,GADcD,EAAGjhC,QAAQ,YACX,EAAG,CAEb,IAAImhC,EAAKF,EAAGjhC,QAAQ,OACpB,OAAOgf,SAASiiB,EAAGvZ,UAAUyZ,EAAK,EAAGF,EAAGjhC,QAAQ,IAAKmhC,IAAM,IAG/D,IAAIC,EAAOH,EAAGjhC,QAAQ,SACtB,OAAIohC,EAAO,GAEApiB,SAASiiB,EAAGvZ,UAAU0Z,EAAO,EAAGH,EAAGjhC,QAAQ,IAAKohC,IAAQ,KAOvEC,MAAO,WACH,IAAIC,EAAOjmB,EAAO0c,aAAa,QAAQ,GAEvC,GAAIuJ,EACA,MAA0C,OAAlCjmB,EAAOmE,KAAK8hB,EAAM,cAKlCC,WAAY,SAASpR,EAAS9gB,GAC1B,GAAK8gB,EAAL,CAcA9gB,EAAUgM,EAAOqV,WAAW,GATL,CACnB3hB,WAAY,GACZyyB,aAAa,EACbxyB,kBAAkB,EAClByyB,mBAAoB,GACpBC,mBAAoB,IACpBC,iBAAiB,GAG6BtyB,GAoIlD8L,IAGI9L,EAAQuyB,oBACRvmB,EAAO8D,kBAAiB,WACpBhE,OAtIR,SAASA,IACL,IAAI0mB,EACAlqB,EAGAmqB,EAAQ3R,EAAQsE,oBA4BpB,GA3BIqN,EAAMj/B,OAAS,GACfi/B,EAAM13B,SAAQ,SAAS23B,GAE5B,GAAK,YAAahM,KAAKgM,IACwD,GAA9D,CAAC,SAAU,SAAU,iBAAiBC,SAASC,GAAsB,CACrE,IAAIA,EAAaF,EAAS3Z,QAAQ,QAAS,IAAImV,cAAcnV,QAAQ,gBAAgB,SAASb,GACzG,OAAOA,EAAMa,QAAQ,IAAK,IAAIzT,iBAGnBtF,EAAQ4yB,GAAc5mB,EAAO6mB,cAAc/R,EAAQyL,aAAamG,SAkBjE,KAXXpqB,EADAtI,EAAQsI,kBAAkBwqB,SACjB9yB,EAAQsI,OAAOia,QAEQ,IAA5BvW,EAAOsC,kBAA6BtO,EAAQ+yB,aACnCpjB,SAAS3P,EAAQ+yB,cACnB/yB,EAAQsI,OACNqH,SAAS3P,EAAQsI,QAEjBqH,SAAS3D,EAAO4D,IAAIkR,EAAS,YAa9C,GAHAxY,EAASqH,SAASrH,IAGbtI,EAAQgzB,qBAAsBhzB,EAAQizB,mBAAiD,IAA5BjnB,EAAOsC,iBA0BvE,GAJIhG,EAAS,GACT0D,EAAO4D,IAAIkR,EAAS,SAAUxY,EAAS,MAGvCtI,EAAQkzB,oBACRlnB,EAAO4D,IAAIkR,EAAS,WAAY,YADpC,CAMkD,QAA9C9U,EAAOmE,KAAK2Q,EAAS,wBACpB9gB,EAAQmzB,cAAe,IAI5BX,EAAKxmB,EAAO7Z,KAAK2uB,GAAS5uB,IAAI,OAG1BsgC,EAAGxiB,UAEHhE,EAAO4D,IAAIkR,EAAS,WAAY,UAChC9U,EAAOyE,SAASqQ,EAAS,UAEzB0R,EAAK,IAAIY,UAAiBtS,EAAS9gB,GAEnCgM,EAAO7Z,KAAK2uB,GAAS/B,IAAI,KAAMyT,IAInC,IAAIa,EAAMrnB,EAAOmE,KAAK2Q,EAAS,MAC/B,IACE,GAAIuS,EAAK,CACP,IAAIvT,EAASH,IAASC,UAAUyT,GAChC,IAAiC,IAA7BrzB,EAAQoQ,kBAA6B0P,GACnCzQ,EAAMM,SAASmQ,IACT,IACNgB,EAAQnQ,UAAYtB,GAExByR,EAAQhZ,iBAAiB,eAAe,WACpC6X,IAASM,UAAUoT,EAAKvS,EAAQnQ,UAAW,QAKrD,MAAOlQ,GACH9J,QAAQzD,MAAMuN,GAIlB,IAAiC,IAA7BT,EAAQoQ,kBAA6BuP,KAAY0T,EAAK,CAElD,IAAIhkB,EADR,GAAIsQ,IAASC,UAAUyT,IACfhkB,EAAMM,SAASgQ,IAASC,UAAUyT,KAE5B,IACNvS,EAAQnQ,UAAYtB,GAI5ByR,EAAQhZ,iBAAiB,eAAe,WACpC6X,IAASM,UAAUoT,EAAKvS,EAAQnQ,oBAhFpC6hB,EAAKxmB,EAAO7Z,KAAK2uB,GAAS5uB,IAAI,QAEtB8N,EAAQszB,qBACRtnB,EAAO4D,IAAIkR,EAAS,SAAU,SAE9B9U,EAAO4D,IAAIkR,EAAS,WAAY,QAC5BxY,EAAS,GACT0D,EAAO4D,IAAIkR,EAAS,SAAUxY,EAAS,OAI/CkqB,EAAGe,UACHf,EAAKxmB,EAAO7Z,KAAK2uB,GAAS3O,OAAO,OAC1B7J,EAAS,IAChB0D,EAAO4D,IAAIkR,EAAS,WAAY,QAChC9U,EAAO4D,IAAIkR,EAAS,SAAUxY,EAAS,YAxB3C0D,EAAOwnB,cAAc1S,GAAS,KAyG1CpQ,aAAc,SAASoQ,GACnB,IAAI0R,EAAKxmB,EAAO7Z,KAAK2uB,GAAS5uB,IAAI,MAC9BsgC,GACAA,EAAGxiB,UAIXyjB,gBAAiB,SAASjJ,GAEtB,IADA,IAAIkJ,EAAY1nB,EAAOye,QAAQD,EAAQ,OAC9B/I,EAAI,EAAGkS,EAAMD,EAAUlgC,OAAQiuB,EAAIkS,EAAKlS,IAC7CzV,EAAO0E,aAAagjB,EAAUjS,KAItC+R,cAAe,SAAS1S,EAAS8S,GAC7B,IAAIpB,EAAKxmB,EAAO7Z,KAAK2uB,GAAS5uB,IAAI,MAE9BsgC,IACAA,EAAGe,UACHf,EAAKxmB,EAAO7Z,KAAK2uB,GAAS3O,OAAO,OAGjC2O,GAAW8S,IACX9S,EAAQ9mB,MAAM65B,YAAY,WAAY,IACtC/S,EAAQ9mB,MAAM65B,YAAY,SAAU,MAI5ChB,cAAe,SAASrM,GAE7B,OAAY,IAARA,GAAwB,SAARA,IAIR,IAARA,GAAyB,UAARA,GAILA,GAGXsN,QAAS,SAAS3R,EAAI8P,GAClB9P,EAAG4R,UAAY9B,GAGnB+B,QAAS,SAAS7R,GACd,GAAIA,EACA,OAAOA,EAAG4R,WAIlBE,kBAAmB,WACf,IAAIr5B,EAAOD,SAASC,KAChBq3B,EAAOt3B,SAASuoB,gBAEpB,OAAOa,KAAKC,IAAKppB,EAAKs5B,aAAct5B,EAAK2N,aAAc0pB,EAAKkC,aAAclC,EAAKiC,aAAcjC,EAAK1pB,eAGtG6rB,aAAc,WACV,OAASz5B,SAAS05B,kBAAoB15B,SAASuoB,iBAAiBvS,WAGpE2jB,YAAa,SAASC,EAAKC,GAEvB,IAAIC,GAAW,EAED,KAAVF,EAAI,KACJA,EAAMA,EAAI/P,MAAM,GAChBiQ,GAAW,GAGf,IAAIC,EAAM/kB,SAAS4kB,EAAI,IAEnBI,GAAKD,GAAO,IAAMF,EAElBG,EAAI,IAAKA,EAAI,IACPA,EAAI,IAAGA,EAAI,GAErB,IAAI1H,GAAMyH,GAAO,EAAK,KAAUF,EAE5BvH,EAAI,IAAKA,EAAI,IACPA,EAAI,IAAGA,EAAI,GAErB,IAAI2H,GAAW,IAANF,GAAkBF,EAK3B,OAHII,EAAI,IAAKA,EAAI,IACRA,EAAI,IAAGA,EAAI,IAEZH,EAAS,IAAI,KAAOG,EAAK3H,GAAK,EAAM0H,GAAK,IAAKx6B,SAAS,KAKnEurB,SAAW,SAAUC,EAAOkP,EAAMC,GAE7BnP,IAKJA,EAAU3iB,YAAW,WACpB6xB,IAIAlP,OAAU30B,IACR8jC,KAIJC,SAAU,SAAUpP,EAAOkP,EAAMC,GAEhCpzB,aAAaikB,GAGbA,EAAU3iB,WAAW6xB,EAAMC,IAG5BE,QAAS,SAAS7S,EAAI8S,EAAKh4B,EAASi4B,GAChC,GAAK/S,IAIkB,qBAAZ+S,IAAuC,IAAZA,GAClClpB,EAAOmE,KAAKgS,EAAI,YAAY,GAG5B8S,IACAjpB,EAAOyE,SAAS0R,EAAI8S,GACpBjpB,EAAOmE,KAAKgS,EAAI,aAAc8S,IAG9Bh4B,GAAS,CACT,IAAIk4B,EAAUnpB,EAAO3H,KAAK8d,EAAI,gBAE1BgT,GACAnpB,EAAO7Z,KAAKgjC,GAASpW,IAAI,UAAW/S,EAAOgoB,QAAQmB,IACnDnpB,EAAO8nB,QAAQqB,EAASl4B,KAExB+O,EAAO7Z,KAAKgwB,GAAIpD,IAAI,UAAW/S,EAAOgoB,QAAQ7R,IAC9CnW,EAAO8nB,QAAQ3R,EAAIllB,MAK/Bm4B,WAAY,SAASjT,GACjB,GAAKA,EAAL,CAKAnW,EAAOiW,WAAWE,EAAI,YAElBnW,EAAOygB,QAAQtK,EAAI,eACnBnW,EAAO4E,YAAYuR,EAAInW,EAAOmE,KAAKgS,EAAI,eAG3C,IAAIgT,EAAUnpB,EAAO3H,KAAK8d,EAAI,gBAE1BgT,GAAWnpB,EAAO7Z,KAAKgjC,GAAShU,IAAI,WACpCnV,EAAO8nB,QAAQqB,EAASnpB,EAAO7Z,KAAKgjC,GAASjjC,IAAI,YAC1C8Z,EAAO7Z,KAAKgwB,GAAIhB,IAAI,YAC3BnV,EAAO8nB,QAAQ3R,EAAInW,EAAO7Z,KAAKgwB,GAAIjwB,IAAI,cAI/CmjC,YAAa,SAASlT,EAAIxjB,EAAWuQ,GACjCA,EAASA,GAAU,EAEnB,IAAIomB,EAActpB,EAAOqE,cAAchT,MACnCqK,EAAesE,EAAOqE,cAAc/H,OAEpCd,EAAMwE,EAAOkD,OAAOiT,GAAI3a,IACxBc,EAAS0D,EAAOmgB,YAAYhK,GAAMjT,EAClCK,EAAOvD,EAAOkD,OAAOiT,GAAI5S,KACzBlS,EAAQ2O,EAAOyf,WAAWtJ,GAAMjT,EAEpC,GAAiB,UAAbvQ,EAAuB,CACvB,GAAI+I,EAAeF,EAAMc,EACrB,OAAO,EACJ,GAAIZ,EAAeF,EAAe,IAATc,EAC5B,OAAO,EAIf,GAAiB,OAAb3J,EAAoB,CACpB,GAAI6I,EAAM,EACN,OAAO,EACJ,GAAIA,EAAMc,EACb,OAAO,EAIf,MAAiB,QAAb3J,GACI4Q,EAAO,GAQE,SAAb5Q,GACI22B,EAAc/lB,EAAOlS,IA1oDrB,GAwpDwBqjB,EAAOC,QAKnD3U,EAAOklB,OAAM,WACiB,qBAAlBqE,cACVvpB,EAAOF,KAAKypB,eAEZvpB,EAAOF,UAKTlH,OAAO4wB,OAAS,WACZ,IAAIhe,EAASxL,EAAO0c,aAAa,QAC7BlR,GAAUA,EAAO,IACjBxL,EAAO4E,YAAY4G,EAAO,GAAI,mB,uDC/yDtC,uBAs2B4CkJ,EAAOC,QAKnDhmB,SAASmN,iBAAiB,SAAS,SAAUrH,GACzC,IACI+nB,EACJ,GAAKA,EAFMxc,IAAO0c,aAAa,QAAQ,GAErBgC,iBAAiB,yGAC/B,IAAK,IAAIjJ,EAAI,EAAGkS,EAAMnL,EAAMh1B,OAAQiuB,EAAIkS,EAAKlS,IAAK,CAC9C,IAAIX,EAAU0H,EAAM/G,GAAGsB,QAAQ,aAAaM,WAE5C,GAAKvC,EAAU,CACX,IAAID,EAAM7U,IAAO7Z,KAAK2uB,GAAS5uB,IAAI,QAEnC,IAAM2uB,EACF,MAGJ,IAAMA,GAAgC,aAAzBA,EAAI4U,iBACb,MAGCh1B,EAAEsC,SAAW+d,IAA0C,IAA/BA,EAAQtY,SAAS/H,EAAEsC,SAC5C8d,EAAI6U,qBAOTloB,IA/3BF,SAASoT,EAAW5gB,GAE7B,IAAI6gB,EAAM1oB,KACN2T,GAAO,EAGPgV,EAAU9U,IAAOC,QAAQ2U,GACzBhmB,EAAOoR,IAAOI,UAElB,GAAK0U,EAAL,CAKA,IAAIC,EAAiB,CAEjBxiB,OAAQ,CACJ6R,kBAAkB,GAItBvS,UAAW,CACP6P,WAAY,IACZioB,YAAY,EACZC,gBAAiB,KACjBjoB,WAAW,GAIfrP,SAAU,CACN2T,QAAS,MAQbgP,EAAS,CAKTC,UAAW,SAASlhB,GAgBhB,OAfIgM,IAAO7Z,KAAK2uB,GAASK,IAAI,QACzBN,EAAM7U,IAAO7Z,KAAK2uB,GAAS5uB,IAAI,SAG/B+uB,EAAOnV,KAAK9L,GAGZihB,EAAO4U,QAGP5U,EAAOG,QAEPpV,IAAO7Z,KAAK2uB,GAAS/B,IAAI,OAAQ8B,IAG9BA,GAOX/U,KAAM,SAAS9L,GACX6gB,EAAInD,OAAS,GAEbmD,EAAIiV,cAAgB,GAGpBjV,EAAI7gB,QAAUgM,IAAOqV,WAAW,GAAIN,EAAgB/gB,GAGpD6gB,EAAIkV,uBAAyB,EAE7BlV,EAAIwS,IAAMrnB,IAAOib,eAGrBjX,OAAQ,SAAShQ,GAEb6gB,EAAI7gB,QAAUgM,IAAOqV,WAAW,GAAIN,EAAgB/gB,GAGpD6gB,EAAIkV,uBAAyB,EAG7B9U,EAAO4U,QAEPhV,EAAIiV,cAAgB,GAGpB7U,EAAOG,QAEPpV,IAAO7Z,KAAK2uB,GAAS/B,IAAI,OAAQ8B,IAGrChc,OAAQ,WAEJoc,EAAO4U,QAGP5U,EAAOG,QAGPH,EAAO+U,qBAOX5U,MAAO,WAEHP,EAAIiV,cAAJ,QAA+B9pB,IAAO4B,GAAIkT,EAAS,eAAgB,QAASG,EAAOgV,yBAGnD,aAA5BhV,EAAOwU,kBAAmCxU,EAAOiV,kCAEjDrV,EAAIiV,cAAJ,QAA+B9pB,IAAO4B,GAAIkT,EAAS,6BAA8B,YAAaG,EAAOkV,gCACrGtV,EAAIiV,cAAJ,QAA+B9pB,IAAO4B,GAAIkT,EAAS,6BAA8B,WAAYG,EAAOmV,+BAGpGvV,EAAIiV,cAAJ,QAA+B9pB,IAAO4B,GAAIkT,EAAS,kGAAmG,QAASG,EAAOoV,4BACtKxV,EAAIiV,cAAJ,QAA+B9pB,IAAO4B,GAAIkT,EAAS,8FAA+F,QAASG,EAAOqV,gCAItKzV,EAAIiV,cAAJ,QAA+B9pB,IAAO4B,GAAGkT,EAAS,wEAAyE,QAASG,EAAOsV,iBAGvI1V,EAAI7gB,QAAQzB,QAAUsiB,EAAI7gB,QAAQzB,OAAO+J,QACzC2Y,EAAOiR,cAQf2D,MAAO,WACH7pB,IAAO0jB,IAAK5O,EAAS,QAASD,EAAIiV,cAAJ,SAG9B9pB,IAAO0jB,IAAK5O,EAAS,YAAaD,EAAIiV,cAAJ,SAClC9pB,IAAO0jB,IAAK5O,EAAS,WAAYD,EAAIiV,cAAJ,SAGjC9pB,IAAO0jB,IAAK5O,EAAS,QAASD,EAAIiV,cAAJ,SAC9B9pB,IAAO0jB,IAAK5O,EAAS,QAASD,EAAIiV,cAAJ,SAG9B9pB,IAAO0jB,IAAI5O,EAAS,QAASD,EAAIiV,cAAJ,UAOjC5D,WAAY,WACHrR,EAAI7gB,QAAQzB,QAAUsiB,EAAI7gB,QAAQzB,OAAO+J,QAC1C0D,IAAOwnB,cAAc1S,GAAS,GAC9B9U,IAAOkmB,WAAWpR,EAAS,CAACkS,oBAAoB,EAAMG,cAAc,EAAOG,sBAAsB,EAAMf,oBAAoB,EAAMjqB,OAAQuY,EAAI7gB,QAAQzB,OAAO+J,OAAQ8H,iBAAkByQ,EAAI7gB,QAAQzB,OAAO6R,oBAEzMpE,IAAOwnB,cAAc1S,GAAS,IAOtCpQ,aAAc,WACLmQ,EAAI7gB,QAAQzB,QAAUsiB,EAAI7gB,QAAQzB,OAAO+J,QAC1C0D,IAAO0E,aAAaoQ,IAO5BnQ,UAAW,WACFkQ,EAAI7gB,QAAQzB,QAAUsiB,EAAI7gB,QAAQzB,OAAO+J,QAC1C0D,IAAO2E,UAAUmQ,IAQzB2U,eAAgB,SAAStT,GACrB,OAAKnW,IAAOsD,eAAe,MACnB6S,GAAMnW,IAAOygB,QAAQtK,EAAI,qBAA8D,SAAvCnW,IAAOmE,KAAKgS,EAAI,oBACzD,WAGNnW,IAAOqb,MAAMxG,EAAI7gB,QAAQpC,QAAS,sBAC9BoO,IAAO6c,WAAWjuB,EAAMimB,EAAI7gB,QAAQpC,QAAQN,QAAQ/L,MAAMqJ,MACpDimB,EAAI7gB,QAAQpC,QAAQN,QAAQ/L,MAAM2wB,KAElCrB,EAAI7gB,QAAQpC,QAAQN,QAAQa,QAE/B6N,IAAOqb,MAAMxG,EAAI7gB,QAAQpC,QAAS,WACnCijB,EAAI7gB,QAAQpC,QAAQN,aADxB,EAGC0O,IAAOsD,eAAe,OAAStD,IAAO6B,iBAAiB,OAAS7B,IAAOqb,MAAMxG,EAAI7gB,QAAQpC,QAAS,UACnGijB,EAAI7gB,QAAQpC,QAAQ6P,UACnBzB,IAAO6B,iBAAiB,QAAS7B,IAAOqb,MAAMxG,EAAI7gB,QAAQpC,QAAS,YACpEijB,EAAI7gB,QAAQpC,QAAQL,QAUnC24B,6BAA8B,WAC1B,SAAKlqB,IAAOsD,eAAe,QAAStD,IAAOqb,MAAMxG,EAAI7gB,QAAQpC,QAAS,wBAY1Eo4B,kBAAmB,SAASv1B,GACxB,IAAI+1B,EAAWxqB,IAAOye,QAAQ3J,EAAS,iBACvC,GAAK0V,EACD,IAAK,IAAI/U,EAAI,EAAGkS,EAAM6C,EAAShjC,OAAQiuB,EAAIkS,EAAKlS,IAAK,CACjD,IAAI7jB,EAAU44B,EAAS,GAEvBxqB,IAAO4D,IAAIhS,EAAS,UAAW,IAC/BoO,IAAO4D,IAAIhS,EAAS,WAAY,IAE5BA,EAAQ64B,aAAa,wBACrBzqB,IAAO4E,YAAYhT,EAAS,qBAC5BoO,IAAO4E,YAAYhT,EAAS,sBAC5BoO,IAAOyE,SAAS7S,EAASA,EAAQ2uB,aAAa,0BAU9D4J,+BAAgC,SAAS11B,GACrC,GAAqC,cAAhCwgB,EAAOwU,eAAet9B,QAIQ,IAA9B0oB,EAAI6V,sBAAT,CAMwC,KAF7Bv+B,KAEDo0B,aAAa,gBAFZp0B,KAGFu0B,gBAAgB,cACrBhrB,aAJOvJ,KAIYo0B,aAAa,iBAJzBp0B,KAKFu0B,gBAAgB,iBAGzBzL,EAAO0V,oBARIx+B,QAefi+B,8BAA+B,SAAS31B,GACpC,IAAmC,IAA9BogB,EAAI6V,uBAI4B,cAAhCzV,EAAOwU,eAAet9B,MAA3B,CAIA,IAAIke,EAAOle,KACPgW,EAAO0S,EAAI7gB,QAAQ1B,SAAS2T,QAE5BA,EAAUjP,YAAW,WACmB,KAAnCqT,EAAKkW,aAAa,eACnBtL,EAAO2V,oBAAoBvgB,GAAM,KAEtClI,GAEHkI,EAAKmW,aAAa,aAAc,KAChCnW,EAAKmW,aAAa,eAAgBva,KAOtCokB,2BAA4B,SAAS51B,GACjC,GAAqC,cAAhCwgB,EAAOwU,eAAet9B,MAA3B,CAIA,IAAIke,EAAOle,KAAK4qB,QAAQ,eAIT,IADF9B,EAAOU,aAAa,gBAAiBxpB,KAAMsI,IAKJ,aAA/C4V,EAAKkW,aAAa,6BAI2B,IAA7CvgB,IAAOG,SAASkK,EAAM,oBACvBrK,IAAOyE,SAAS4F,EAAM,2BACtB4K,EAAO0V,oBAAoBtgB,KAE3BrK,IAAO4E,YAAYyF,EAAM,2BACzB4K,EAAO2V,oBAAoBvgB,GAAM,IAGrC5V,EAAEC,oBAON41B,8BAA+B,SAAS71B,GACpC,GAAoC,cAAhCwgB,EAAOwU,eAAet9B,MAA1B,CAGA,IAAIke,EAAOle,KAAK4qB,QAAQ,eAIT,IADF9B,EAAOU,aAAa,gBAAiBxpB,KAAMsI,IAKL,aAA/C4V,EAAKkW,aAAa,4BAI0B,GAA5CvgB,IAAOG,SAASkK,EAAM,qBACtBrK,IAAOyE,SAAS4F,EAAM,2BACtB4K,EAAO0V,oBAAoBtgB,IAG/B5V,EAAEC,oBAON61B,gBAAiB,SAAS91B,GACtB,IAAI7C,EAAUzF,KAAK4qB,QAAQ,iCAIZ,IADF9B,EAAOU,aAAa,YAAaxpB,KAAMsI,IAK/C7C,GAA8C,aAAnCqjB,EAAOwU,eAAe73B,IAClCqjB,EAAO4V,wBAQfC,2BAA4B,SAASr2B,EAAG0hB,GAEpC,GAAkC,cAA9BlB,EAAOwU,eAAetT,GAA1B,CAIA,IAAI4U,EAAQjW,EAAQ4J,iBAAiB,qEAGrC,GAAIqM,EAAMvjC,OAAS,IAA4C,IAAvCwY,IAAOG,SAASgW,EAAI,gBAA2E,IAA/CA,EAAGuI,iBAAiB,gBAAgBl3B,OAExG,IAAK,IAAIiuB,EAAI,EAAGkS,EAAMoD,EAAMvjC,OAAQiuB,EAAIkS,EAAKlS,IACzCR,EAAO2V,oBAAoBG,EAAM,IAAI,KASjDd,uBAAwB,SAASx1B,EAAG0hB,GAChC,IAAIqG,EACAnS,EAAO8L,GAAUhqB,KAIrB,IAAe,IADF8oB,EAAOU,aAAa,gBAAiBxpB,KAAMsI,GAKxD,GAAmC,aAA9BwgB,EAAOwU,eAAetT,KAAuBqG,EAAQnS,EAAK0M,QAAQ,gBACf,aAAhDyF,EAAM+D,aAAa,0BACnB9rB,EAAEC,qBAFV,CAOA,IAAIs2B,EAAK3gB,EAAK0M,QAAQ,cAClBnlB,EAAUoO,IAAOof,MAAM4L,EAAI,8BAE/B,IAAIhrB,IAAOG,SAASkK,EAAK0M,QAAQ,cAAe,0BAI3CiU,GAAMp5B,EAAU,CACjB6C,EAAEC,iBACF,IAAImuB,EAAQhO,EAAI7gB,QAAQnC,UAAU6P,WAGlC,IAA+C,IAA1C1B,IAAOG,SAAS6qB,EAAI,kBAA8B,CAEnD,IAAyC,IAApCnW,EAAI7gB,QAAQnC,UAAU8P,UAAsB,CAC7C,IAAIspB,EAAS5gB,EAAK0M,QAAQ,2BACtBmU,EAAYlrB,IAAO9U,SAAS+/B,EAAQ,gGAExC,GAAKA,GAAUC,EACX,IAAK,IAAIzV,EAAI,EAAGkS,EAAMuD,EAAU1jC,OAAQiuB,EAAIkS,EAAKlS,IAAK,CAClD,IAAI0V,EAAMD,EAAU,GAChBE,EAAWprB,IAAOof,MAAM+L,EAAK,iBAC5BC,GACDprB,IAAOojB,QAAQgI,EAAUvI,GAAO,WAC5B5N,EAAOvQ,eACP1E,IAAO4E,YAAYumB,EAAK,sBAO5CnrB,IAAOqjB,UAAUzxB,EAASixB,GAAO,WAC7B5N,EAAOoW,aAAahhB,GACpB4K,EAAOvQ,eAEPuQ,EAAOU,aAAa,gBAAiB/jB,EAAS6C,MAGlDuL,IAAOyE,SAASumB,EAAI,uBAGpBhrB,IAAOojB,QAAQxxB,EAASixB,GAAO,WAC3B5N,EAAOoW,aAAahhB,GACpB4K,EAAOU,aAAa,gBAAiB/jB,EAAS6C,MAGlDuL,IAAO4E,YAAYomB,EAAI,qBASnCK,aAAc,SAAShhB,GAEdrK,IAAOsD,eAAe,OAAUuR,EAAI7gB,QAAQnC,UAAU83B,YAA2D,MAA7C7U,EAAQyL,aAAa,qBAC1FvgB,IAAO+kB,SAAS1a,EAAMwK,EAAI7gB,QAAQnC,UAAU+3B,kBAQpDgB,oBAAqB,SAASvgB,EAAMihB,GAE3BA,IACDtrB,IAAO4E,YAAYyF,EAAM,mBACzBrK,IAAO4E,YAAYyF,EAAM,yBAI7BA,EAAKqW,gBAAgB,cAEhBrW,EAAKkW,aAAa,2BACnBvgB,IAAO4E,YAAYhW,EAAMyb,EAAKkW,aAAa,2BAG/C,IAAIta,EAAUoE,EAAKkW,aAAa,gBAChClW,EAAKqW,gBAAgB,gBACrBhrB,aAAauQ,IAOjB4kB,qBAAsB,WAClB,IAAIU,EACJ,GAAKA,EAAQzW,EAAQ4J,iBAAiB,yFAClC,IAAK,IAAI+E,EAAI,EAAG+H,EAAMD,EAAM/jC,OAAQi8B,EAAI+H,EAAK/H,IACzCxO,EAAO2V,oBAAoBW,EAAM9H,IAAI,IASjDkH,oBAAqB,SAAStgB,GAE1B,IAAIohB,EAAO3W,EAAQ4J,iBAAiB,+EAEpC,GAAK+M,EACD,IAAK,IAAIhW,EAAI,EAAGkS,EAAM8D,EAAKjkC,OAAQiuB,EAAIkS,EAAKlS,IAAK,CAC7C,IAAIU,EAAKsV,EAAKhW,GACTpL,IAAS8L,IAA4B,IAAtBA,EAAG3Z,SAAS6N,KAAyC,IAAtBA,EAAK7N,SAAS2Z,IAC7DlB,EAAO2V,oBAAoBzU,GAAI,GAM3CnW,IAAOyE,SAAS4F,EAAM,mBAGtB,IAAIzY,EAAUoO,IAAO3H,KAAKgS,EAAM,iBAE5BzY,IAA0D,IAA/CA,EAAQ64B,aAAa,wBAC5BzqB,IAAOG,SAASvO,EAAS,qBACzBA,EAAQ4uB,aAAa,qBAAsB,qBACpCxgB,IAAOG,SAASvO,EAAS,uBAChCA,EAAQ4uB,aAAa,qBAAsB,uBAI9C5uB,IAAuD,IAA5CoO,IAAOqpB,YAAYz3B,EAAS,OAAQ,KAChDoO,IAAO4E,YAAYhT,EAAS,qBAC5BoO,IAAOyE,SAAS7S,EAAS,uBACjBA,IAAwD,IAA7CoO,IAAOqpB,YAAYz3B,EAAS,QAAS,MACxDoO,IAAO4E,YAAYhT,EAAS,sBAC5BoO,IAAOyE,SAAS7S,EAAS,sBAGxByY,EAAKkW,aAAa,2BACnBvgB,IAAOyE,SAAS7V,EAAMyb,EAAKkW,aAAa,4BAQhDmL,kCAAmC,SAASvV,GACxC,IAAIqG,EACApZ,GAAUoZ,EAAQxc,IAAOof,MAAMjJ,EAAI,iBAAmBnW,IAAO4D,IAAI4Y,EAAO,WAAa,GAAK,EAE1FmP,EAAUh9B,SAASqnB,cAAc,6HAA+H5S,EAAS,YAE7KxU,EAAKmqB,YAAY4S,GAEjB3rB,IAAOwE,SAASmnB,EAAS,SAAS,SAASl3B,GACvCA,EAAEm3B,kBACFn3B,EAAEC,iBACFsL,IAAOmG,OAAOha,MACd8oB,EAAO2V,oBAAoBzU,GAAI,OAQvCjU,mBAAoB,SAASC,GACzB,IAAI0pB,EAAO,IAAIvsB,KAEfuV,EAAIkV,uBAAyB8B,EAAKhU,UAAY1V,GAOlDuoB,oBAAqB,WAGjB,OAFW,IAAIprB,MAEFuY,UAAYhD,EAAIkV,wBAOjC+B,gBAAiB,SAASzhB,GAMtB,IALA,IAAIohB,EACA5M,EAIKpJ,EAAI,EAAGkS,GAFhB8D,EAAO3W,EAAQ4J,iBAAiB,sBAELl3B,OAAQiuB,EAAIkS,EAAKlS,IAAK,CAC7C,IAAIU,EAAKsV,EAAK,GACdzrB,IAAO4E,YAAYuR,EAAI,oBACvBnW,IAAO8B,KAAM9B,IAAOof,MAAMjJ,EAAI,kBAG9B,IAAK,IAAI4V,EAAK,EAAGC,GAFjBnN,EAAU7e,IAAO6e,QAAQ1I,EAAI,uBAAyB,IAEtB3uB,OAAQukC,EAAKC,EAAMD,IAAM,CACrD,IAAIZ,EAAMtM,EAAQpJ,GAClBzV,IAAO4E,YAAYumB,EAAK,kBACxBnrB,IAAO8B,KAAM9B,IAAOof,MAAM+L,EAAK,mBAKvC,IAAyC,IAApCtW,EAAI7gB,QAAQnC,UAAU8P,YAClB8pB,EAAO3W,EAAQ4J,iBAAiB,oBACjC,IAASjJ,EAAI,EAAGkS,EAAM8D,EAAKjkC,OAAQiuB,EAAIkS,EAAKlS,IACxCzV,IAAO4E,YAAYia,EAAQ,GAAI,mBAU/CoN,cAAe,SAAS5hB,GAEpB4K,EAAO6W,kBAGP,IADA,IAAIjN,EAAU7e,IAAO6e,QAAQxU,EAAM,uBAAyB,GACnDoL,EAAI,EAAGkS,EAAM9I,EAAQr3B,OAAQiuB,EAAIkS,EAAKlS,IAC3CzV,IAAOyE,SAASoa,EAAQpJ,GAAI,kBAGhCzV,IAAOyE,SAAS4F,EAAM,qBAO1B6hB,eAAgB,SAAS7hB,GACrB,IAAImS,EACA9W,EAAc,GACdymB,EAAOnsB,IAAOof,MAAM/U,EAAM,cAE9B3E,EAAYvW,KAAK,CACb2F,KAAO0nB,EAAQxc,IAAOof,MAAM+M,EAAM,cAAgB3P,EAAMuL,UAAY,GACpE7tB,MAAOiyB,EAAK5L,aAAa,SACzBpsB,KAAMg4B,EAAK5L,aAAa,UAI5B,IADA,IAAI1B,EAAU7e,IAAO6e,QAAQxU,EAAM,sBAC1BoL,EAAI,EAAGkS,EAAM9I,EAAQr3B,OAAQiuB,EAAIkS,EAAKlS,IAAK,CAChD,IAAI2W,EAAcpsB,IAAOof,MAAMP,EAAQpJ,GAAI,cAE3C/P,EAAYvW,KAAK,CACb2F,KAAO0nB,EAAQxc,IAAOof,MAAMgN,EAAa,cAAgB5P,EAAMuL,UAAY,GAC3E7tB,MAAOkyB,EAAY7L,aAAa,SAChCpsB,KAAMi4B,EAAY7L,aAAa,UAIvC,OAAQ7a,EAAY2mB,WAOxBC,aAAc,SAASjiB,GACnB,IAAImS,EAEJ,OAAgBxc,IAAOof,MAAM/U,EAAM,cAAgBmS,EAAMuL,UAAY,IAMzEpS,aAAc,SAAS7uB,EAAMiQ,EAAQtC,GACjC,IAAK,IAAIghB,EAAI,EAAGA,EAAIZ,EAAInD,OAAOlqB,OAAQiuB,IAAM,CACzC,IAAI3e,EAAQ+d,EAAInD,OAAO+D,GACvB,GAAK3e,EAAMhQ,MAAQA,EAAO,CACtB,GAAkB,GAAbgQ,EAAMuf,IAMP,OAAOvf,EAAMwf,QAAQC,KAAKpqB,KAAM4K,EAAQtC,GALxC,GAAoB,GAAfqC,EAAM0f,MAEP,OADA3B,EAAInD,OAAO+D,GAAGe,OAAQ,EACf1f,EAAMwf,QAAQC,KAAKpqB,KAAM4K,EAAQtC,MAS5D+P,SAAU,SAAS1d,EAAMwvB,EAASD,GAC9BxB,EAAInD,OAAOviB,KAAK,CACZrI,KAAMA,EACNwvB,QAASA,EACTD,IAAKA,EACLG,OAAO,KAIf8M,YAAa,SAASx8B,GACd+tB,EAAInD,OAAO5qB,WACJ+tB,EAAInD,OAAO5qB,KA2I9B,OA9HA+tB,EAAI4B,YAAc,SAASziB,GACvB+gB,EAAiB/gB,GAMrB6gB,EAAInQ,aAAe,WACf,OAAOuQ,EAAOvQ,gBAMlBmQ,EAAI0X,aAAe,WACf,OAAOtX,EAAOiR,cAMlBrR,EAAIlQ,UAAY,WACZ,OAAOsQ,EAAOtQ,aAMlBkQ,EAAIoX,cAAgB,SAAS5hB,GACzB,OAAO4K,EAAOgX,cAAc5hB,IAGhCwK,EAAIhc,OAAS,WACT,OAAOoc,EAAOpc,UAGlBgc,EAAI7Q,OAAS,SAAShQ,GAClB,OAAOihB,EAAOjR,OAAOhQ,IAMzB6gB,EAAIqX,eAAiB,SAAS7hB,GAC1B,OAAO4K,EAAOiX,eAAe7hB,IAMjCwK,EAAIyX,aAAe,SAASjiB,GACxB,OAAO4K,EAAOqX,aAAajiB,IAM/BwK,EAAI4U,eAAiB,SAAStT,GAC1B,OAAOlB,EAAOwU,eAAetT,IAOjCtB,EAAI2X,aAAe,SAASniB,GACxB4K,EAAO2V,oBAAoBvgB,GAAM,IAOrCwK,EAAI6U,cAAgB,WAChBzU,EAAO4V,wBAOXhW,EAAI3S,mBAAqB,SAASC,GAC9B8S,EAAO/S,mBAAmBC,IAO9B0S,EAAI6V,oBAAsB,WACtB,OAAOzV,EAAOyV,uBAMlB7V,EAAIjT,GAAK,SAAS9a,EAAMwvB,GACpB,OAAOrB,EAAOzQ,SAAS1d,EAAMwvB,IAGjCzB,EAAI6O,IAAM,SAAS58B,GACf,OAAOmuB,EAAOqO,YAAYx8B,IAG9B+tB,EAAIwB,IAAM,SAASvvB,EAAMwvB,GACrB,OAAOrB,EAAOzQ,SAAS1d,EAAMwvB,GAAS,IAQ1CrB,EAAOC,UAAUwB,MAAM7B,EAAK,CAAC7gB,IAG7BgM,IAAO8D,kBAAiB,WAChBhE,GACA+U,EAAIhc,YAKZiH,GAAO,EAGA+U,M,uDCl2BX,uBAmP4CH,EAAOC,QAIpC8X,IAjPA,SAASC,EAAeC,EAAe34B,GAElD,IAAI6gB,EAAM1oB,KAIN2oB,EAAU4X,EACV31B,EAAS41B,EAEb,GAAK7X,EAAL,CAKA,IAAIC,EAAiB,CACjB6X,iBAAkB,SAOlB3X,EAAS,CAKTC,UAAW,SAASlhB,GAahB,OAZIgM,IAAO7Z,KAAK2uB,GAASK,IAAI,UACzBN,EAAM7U,IAAO7Z,KAAK2uB,GAAS5uB,IAAI,WAG/B+uB,EAAOnV,KAAK9L,GAGZihB,EAAOG,QAEPpV,IAAO7Z,KAAK2uB,GAAS/B,IAAI,SAAU8B,IAGhCA,GAMX/U,KAAM,SAAS9L,GACX6gB,EAAIC,QAAUA,EACdD,EAAInD,OAAS,GAGbmD,EAAI7gB,QAAUgM,IAAOqV,WAAW,GAAIN,EAAgB/gB,GAGpD6gB,EAAI9d,OAASA,EAEb8d,EAAIgY,YAAchY,EAAI7gB,QAAQ64B,YAC9BhY,EAAIiY,YAAcjY,EAAI7gB,QAAQ84B,YAEM,SAAhCjY,EAAI7gB,QAAQ44B,iBACZ/X,EAAItvB,MAAQya,IAAO6c,WAAWhI,EAAI9d,OAAQ8d,EAAIgY,aAAe,KAAO,MAEpEhY,EAAItvB,MAAQya,IAAOygB,QAAQ5L,EAAI9d,OAAQ,QAAU8d,EAAIgY,aAAe7sB,IAAOmE,KAAK0Q,EAAI9d,OAAQ,QAAU8d,EAAIgY,aAAe,OAOjIzX,MAAO,WACHpV,IAAOwE,SAASsQ,EAAS,UAAWG,EAAOtjB,SAM/CA,OAAQ,SAAS8C,GAab,OAZAwgB,EAAOU,aAAa,gBAEH,OAAbd,EAAItvB,MACJ0vB,EAAO8X,WAEP9X,EAAO+X,YAGX/X,EAAOU,aAAa,eAEpBlhB,EAAEC,iBAEKmgB,GAMXkY,SAAU,WAmBN,OAlBA9X,EAAOU,aAAa,YAEgB,SAAhCd,EAAI7gB,QAAQ44B,iBACZ5sB,IAAOyE,SAASoQ,EAAI9d,OAAQ8d,EAAIgY,aAEhC7sB,IAAOmE,KAAK0Q,EAAI9d,OAAQ,QAAU8d,EAAIgY,YAAa,MAGnDhY,EAAIiY,aACJ9sB,IAAOyE,SAASqQ,EAASD,EAAIiY,aAGjCjY,EAAItvB,MAAQ,KAEZ0vB,EAAOU,aAAa,WAEpBV,EAAOU,aAAa,UAEbd,GAMXmY,UAAW,WAmBP,OAlBA/X,EAAOU,aAAa,aAEgB,SAAhCd,EAAI7gB,QAAQ44B,iBACZ5sB,IAAO4E,YAAYiQ,EAAI9d,OAAQ8d,EAAIgY,aAEnC7sB,IAAOiW,WAAWpB,EAAI9d,OAAQ,QAAU8d,EAAIgY,aAG5ChY,EAAIiY,aACJ9sB,IAAO4E,YAAYkQ,EAASD,EAAIiY,aAGpCjY,EAAItvB,MAAQ,MAEZ0vB,EAAOU,aAAa,YAEpBV,EAAOU,aAAa,UAEbd,GAMXc,aAAc,SAAS7uB,GACnB,IAAK,IAAI2uB,EAAI,EAAGA,EAAIZ,EAAInD,OAAOlqB,OAAQiuB,IAAK,CACxC,IAAI3e,EAAQ+d,EAAInD,OAAO+D,GAEvB,GAAI3e,EAAMhQ,MAAQA,EAAM,CACpB,GAAiB,GAAbgQ,EAAMuf,IAMN,OAAOvf,EAAMwf,QAAQC,KAAKpqB,KAAM0oB,GALhC,GAAmB,GAAf/d,EAAM0f,MAEN,OADA3B,EAAInD,OAAO+D,GAAGe,OAAQ,EACf1f,EAAMwf,QAAQC,KAAKpqB,KAAM0oB,MASpDrQ,SAAU,SAAS1d,EAAMwvB,EAASD,GAQ9B,OAPAxB,EAAInD,OAAOviB,KAAK,CACZrI,KAAMA,EACNwvB,QAASA,EACTD,IAAKA,EACLG,OAAO,IAGJ3B,IA+Df,OAnDAA,EAAI4B,YAAc,SAASziB,GACvB+gB,EAAiB/gB,GAMrB6gB,EAAIoY,SAAW,WACX,OAAOpY,EAAItvB,OAMfsvB,EAAIljB,OAAS,WACT,OAAOsjB,EAAOtjB,UAMlBkjB,EAAIkY,SAAW,WACX,OAAO9X,EAAO8X,YAMlBlY,EAAImY,UAAY,WACZ,OAAO/X,EAAO+X,aAOlBnY,EAAIjT,GAAK,SAAS9a,EAAMwvB,GACpB,OAAOrB,EAAOzQ,SAAS1d,EAAMwvB,IAOjCzB,EAAIwB,IAAM,SAASvvB,EAAMwvB,GACrB,OAAOrB,EAAOzQ,SAAS1d,EAAMwvB,GAAS,IAI1CrB,EAAOC,UAAUwB,MAAM7B,EAAK,CAAC7gB,IAEtB6gB,M,4tqBC/OX,uBA+a4CH,EAAOC,QAIpCxR,IA7aF,SAASyR,EAAW5gB,GAE7B,IAAI6gB,EAAM1oB,KAIN2oB,EAAU9U,IAAOC,QAAQ2U,GACzBhmB,EAAOoR,IAAOI,UAElB,GAAK0U,EAAL,CAKA,IAAIC,EAAiB,CACjBmY,YAAa,IACb5xB,OAAQ,CACJ6xB,iBAAiB,EACjBjqB,OAAQ,IACRE,OAAQ,MAQZ6R,EAAS,CAKTC,UAAW,SAASlhB,GAahB,OAZIgM,IAAO7Z,KAAK2uB,GAASK,IAAI,QACzBN,EAAM7U,IAAO7Z,KAAK2uB,GAAS5uB,IAAI,SAG/B+uB,EAAOnV,KAAK9L,GAGZihB,EAAOG,QAEPpV,IAAO7Z,KAAK2uB,GAAS/B,IAAI,OAAQ8B,IAG9BA,GAMX/U,KAAM,SAAS9L,GACX6gB,EAAIC,QAAUA,EACdD,EAAInD,OAAS,GAGbmD,EAAI7gB,QAAUgM,IAAOqV,WAAW,GAAIN,EAAgB/gB,GACpD6gB,EAAItoB,OAASyT,IAAOof,MAAMtK,EAAS,gBACnCD,EAAIxiB,OAAS2N,IAAOof,MAAMtK,EAAS,gBAE/B9U,IAAOof,MAAMtK,EAAS,cACtBD,EAAIjmB,KAAOoR,IAAOof,MAAMtK,EAAS,cAC1B9U,IAAOof,MAAMtK,EAAS,WAC7BD,EAAIjmB,KAAOoR,IAAOof,MAAMtK,EAAS,WAOzCM,MAAO,WAEH,IAAIjP,EAASnG,IAAO3H,KAAKwc,EAAItoB,OAAQ,2BACjC4Z,GACAnG,IAAOwE,SAAS2B,EAAQ,SAAS,SAAS1R,GACtCA,EAAEC,iBACFugB,EAAO9O,YAKf,IAAItN,EAASmH,IAAO3H,KAAKwc,EAAItoB,OAAQ,2BACjCsM,GACAmH,IAAOwE,SAAS3L,EAAQ,SAAS,SAASpE,GACtCA,EAAEC,iBACFugB,EAAOpc,YAKf,IAAIlH,EAASqO,IAAO3H,KAAKwc,EAAItoB,OAAQ,2BACjCoF,GACAqO,IAAOwE,SAAS7S,EAAQ,SAAS,SAAS8C,GACtCA,EAAEC,iBACFugB,EAAOtjB,aAQnBkS,WAAY,WAEKgR,EAAI7gB,QAAQsH,OAAO4H,OAE3B2R,EAAItoB,QAIZqM,OAAOkD,iBAAiB,SAAUmZ,EAAOmY,iBAM7CA,eAAgB,SAAS34B,GACxB,IAAIyO,EAAS2R,EAAI7gB,QAAQsH,OAAO4H,OAEhC,IAAG0Y,MAAM1Y,GAAT,CAEA,IAAImqB,EAAKrtB,IAAOooB,eAEZiF,GAAMnqB,IAAsD,IAA5ClD,IAAOG,SAASvR,EAAM,mBACzCqmB,EAAOU,aAAa,YAEpB3V,IAAOyE,SAAS7V,EAAM,kBAEtBqmB,EAAOlR,gBAEO,IAAHspB,GAAWnqB,GAAUlD,IAAOG,SAASvR,EAAM,oBAEtDqmB,EAAOU,aAAa,aAEpB3V,IAAO4E,YAAYhW,EAAM,kBAEzBqmB,EAAOqY,iBAINvpB,aAAc,WAKV,IAAIvI,EASI+H,EAOAE,EApBHoR,EAAItoB,SAMLyT,IAAOG,SAASvR,EAAM,oBAElB4M,EADAqZ,EAAI7gB,QAAQsH,OAAOrH,SAASuH,eAAesrB,SACrCnjB,SAASkR,EAAI7gB,QAAQsH,OAAOrH,SAASuH,IAAI+a,KAAKpqB,KAAM0oB,IAEpDlR,SAASkR,EAAI7gB,QAAQsH,OAAOrH,SAASuH,KAK3C+H,EADAsR,EAAI7gB,QAAQsH,OAAOrH,SAASsP,gBAAgBujB,SACrCnjB,SAASkR,EAAI7gB,QAAQsH,OAAOrH,SAASsP,KAAKgT,KAAKpqB,KAAM0oB,IAErDlR,SAASkR,EAAI7gB,QAAQsH,OAAOrH,SAASsP,MAK5CE,EADAoR,EAAI7gB,QAAQsH,OAAOrH,SAASwP,iBAAiBqjB,SACrCnjB,SAASkR,EAAI7gB,QAAQsH,OAAOrH,SAASwP,MAAM8S,KAAKpqB,KAAM0oB,IAEtDlR,SAASkR,EAAI7gB,QAAQsH,OAAOrH,SAASwP,OAGjDzD,IAAO4D,IAAIiR,EAAItoB,OAAQ,UAAWsoB,EAAI7gB,QAAQsH,OAAO8H,QACrDpD,IAAO4D,IAAIiR,EAAItoB,OAAQ,MAAOiP,EAAM,MACpCwE,IAAO4D,IAAIiR,EAAItoB,OAAQ,OAAQgX,EAAO,MACtCvD,IAAO4D,IAAIiR,EAAItoB,OAAQ,QAASkX,EAAQ,SAIhD6pB,YAAa,WACJzY,EAAItoB,SAIuC,IAA5CyT,IAAOG,SAASvR,EAAM,oBACtBoR,IAAO4D,IAAIiR,EAAItoB,OAAQ,UAAW,IAClCyT,IAAO4D,IAAIiR,EAAItoB,OAAQ,MAAO,IAC9ByT,IAAO4D,IAAIiR,EAAItoB,OAAQ,OAAQ,IAC/ByT,IAAO4D,IAAIiR,EAAItoB,OAAQ,QAAS,MAOxC4Z,OAAQ,YACwC,IAAxC8O,EAAOU,aAAa,kBAIxB3V,IAAOmG,OAAO2O,GAEdG,EAAOU,aAAa,iBAMxB4X,WAAY,SAAStH,GACbA,IACApR,EAAIjmB,KAAKm5B,UAAY9B,IAO7B7lB,QAAS,WACL,OAAOyU,EAAIjmB,MAMf4+B,QAAS,WACL,OAAO1Y,GAMXjc,OAAQ,WACJoc,EAAOU,aAAa,WAMxBhkB,OAAQ,WACAqO,IAAOG,SAAS2U,EAAS,kBAAoB9U,IAAOG,SAAS2U,EAAS,kBACtEG,EAAOwY,SAEPxY,EAAOyY,YAOfA,SAAU,YACwC,IAA1CzY,EAAOU,aAAa,oBAIxB3V,IAAOojB,QAAQvO,EAAIjmB,KAAMimB,EAAI7gB,QAAQk5B,aAAa,WAC9CjY,EAAOU,aAAa,oBAGxB3V,IAAOyE,SAASqQ,EAAS,mBAM7B2Y,OAAQ,YACwC,IAAxCxY,EAAOU,aAAa,kBAIxB3V,IAAOqjB,UAAUxO,EAAIjmB,KAAMimB,EAAI7gB,QAAQk5B,aAAa,WAChDjY,EAAOU,aAAa,kBAGxB3V,IAAO4E,YAAYkQ,EAAS,iBAC5B9U,IAAO4E,YAAYkQ,EAAS,oBAMhCa,aAAc,SAAS7uB,GAEnB,IAAK,IAAI2uB,EAAI,EAAGA,EAAIZ,EAAInD,OAAOlqB,OAAQiuB,IAAK,CACxC,IAAI3e,EAAQ+d,EAAInD,OAAO+D,GACvB,GAAI3e,EAAMhQ,MAAQA,EAAM,CACpB,GAAiB,GAAbgQ,EAAMuf,IAMN,OAAOvf,EAAMwf,QAAQC,KAAKpqB,KAAM0oB,GALhC,GAAmB,GAAf/d,EAAM0f,MAEN,OADA3B,EAAInD,OAAO+D,GAAGe,OAAQ,EACf1f,EAAMwf,QAAQC,KAAKpqB,KAAM0oB,MASpDrQ,SAAU,SAAS1d,EAAMwvB,EAASD,GAQ9B,OAPAxB,EAAInD,OAAOviB,KAAK,CACZrI,KAAMA,EACNwvB,QAASA,EACTD,IAAKA,EACLG,OAAO,IAGJ3B,IAwHf,OA5GAA,EAAI4B,YAAc,SAASziB,GACvB+gB,EAAiB/gB,GAMrB6gB,EAAI1O,OAAS,WACT,OAAO8O,EAAO9O,OAAO8f,OAMzBpR,EAAIhR,WAAa,WACb,OAAOoR,EAAOpR,cAMlBgR,EAAI9Q,aAAe,WACf,OAAOkR,EAAOlR,gBAMlB8Q,EAAIyY,YAAc,WACd,OAAOrY,EAAOqY,eAMrBzY,EAAI8Y,cAAgB,WACnB1Y,EAAOqY,cACP10B,OAAOmD,oBAAoB,SAAUkZ,EAAOmY,iBAM1CvY,EAAIhc,OAAS,WACT,OAAOoc,EAAOpc,UAMlBgc,EAAI0Y,WAAa,SAAStH,GACtB,OAAOhR,EAAOsY,WAAWtH,IAM7BpR,EAAIljB,OAAS,WACT,OAAOsjB,EAAOtjB,UAMlBkjB,EAAI6Y,SAAW,WACX,OAAOzY,EAAOyY,YAMlB7Y,EAAI4Y,OAAS,WACT,OAAOxY,EAAOwY,UAOlB5Y,EAAIzU,QAAU,WACV,OAAO6U,EAAO7U,WAOlByU,EAAI2Y,QAAU,WACV,OAAOvY,EAAOuY,WAMlB3Y,EAAIjT,GAAK,SAAS9a,EAAMwvB,GACpB,OAAOrB,EAAOzQ,SAAS1d,EAAMwvB,IAMjCzB,EAAIwB,IAAM,SAASvvB,EAAMwvB,GACrB,OAAOrB,EAAOzQ,SAAS1d,EAAMwvB,GAAS,IAI1CrB,EAAOC,UAAUwB,MAAM7B,EAAK,CAAC7gB,IAEtB6gB,M,uDC3aX,uBA4K4CH,EAAOC,QAIpCiZ,IA1KG,SAAShZ,EAAW5gB,GAElC,IAAI6gB,EAAM1oB,KAIN2oB,EAAU9U,IAAOC,QAAQ2U,GACzBhmB,EAAOoR,IAAOI,UAElB,GAAK0U,EAAL,CAKA,IAAIC,EAAiB,CACjB7R,OAAQ,IACR2f,MAAO,KAOP5N,EAAS,CAKTC,UAAW,SAASlhB,GAahB,OAZIgM,IAAO7Z,KAAK2uB,GAASK,IAAI,aACzBN,EAAM7U,IAAO7Z,KAAK2uB,GAAS5uB,IAAI,cAG/B+uB,EAAOnV,KAAK9L,GAGZihB,EAAOG,QAEPpV,IAAO7Z,KAAK2uB,GAAS/B,IAAI,YAAa8B,IAGnCA,GAOX/U,KAAM,SAAS9L,GACX6gB,EAAInD,OAAS,GAGbmD,EAAI7gB,QAAUgM,IAAOqV,WAAW,GAAIN,EAAgB/gB,IAGxDohB,MAAO,WAGHxc,OAAOkD,iBAAiB,UAAU,WAC9BkE,IAAO0Z,cAHPC,GAGuB,WACnB1E,EAAO4Y,WACR,QAIP7tB,IAAOwE,SAASsQ,EAAS,QAASG,EAAO1iB,SAM7Cs7B,OAAQ,WACM7tB,IAAOooB,eAEPvT,EAAI7gB,QAAQkP,QAC0B,IAAxCtU,EAAK67B,aAAa,mBAClB77B,EAAK4xB,aAAa,iBAAkB,OAGI,IAAxC5xB,EAAK67B,aAAa,mBAClB77B,EAAK8xB,gBAAgB,mBAQjCnuB,OAAQ,SAASkC,GACbA,EAAEC,iBAEFsL,IAAO2E,UAAU,EAAGkQ,EAAI7gB,QAAQ6uB,QAOpClN,aAAc,SAAS7uB,EAAMsvB,GACzB,IAAK,IAAIX,EAAI,EAAGA,EAAIZ,EAAInD,OAAOlqB,OAAQiuB,IAAK,CACxC,IAAI3e,EAAQ+d,EAAInD,OAAO+D,GACvB,GAAI3e,EAAMhQ,MAAQA,EAAM,CACpB,GAAiB,GAAbgQ,EAAMuf,IAMP,OAAOvf,EAAMwf,QAAQC,KAAKpqB,KAAM0oB,EAAKuB,GALpC,GAAmB,GAAftf,EAAM0f,MAEN,OADA3B,EAAInD,OAAO+D,GAAGe,OAAQ,EACf1f,EAAMwf,QAAQC,KAAKpqB,KAAM0oB,EAAKuB,MASzD5R,SAAU,SAAS1d,EAAMwvB,EAASD,GAC9BxB,EAAInD,OAAOviB,KAAK,CACZrI,KAAMA,EACNwvB,QAASA,EACTD,IAAKA,EACLG,OAAO,MA2CnB,OA9BA3B,EAAI4B,YAAc,SAASziB,GACvB+gB,EAAiB/gB,GAMrB6gB,EAAIjT,GAAK,SAAS9a,EAAMwvB,GACpB,OAAOrB,EAAOzQ,SAAS1d,EAAMwvB,IAOjCzB,EAAIwB,IAAM,SAASvvB,EAAMwvB,GACrB,OAAOrB,EAAOzQ,SAAS1d,EAAMwvB,GAAS,IAQ1CrB,EAAOC,UAAUwB,MAAM7B,EAAK,CAAC7gB,KAGtB,EAGA6gB,M,yCCxKXH,EAAOC,QAAU,IAA0B,sD","file":"static/js/main.4d4954cf.chunk.js","sourcesContent":["export function removeCSSClass(ele, cls) {\n const reg = new RegExp(\"(\\\\s|^)\" + cls + \"(\\\\s|$)\");\n ele.className = ele.className.replace(reg, \" \");\n}\n\nexport function addCSSClass(ele, cls) {\n ele.classList.add(cls);\n}\n\nexport const toAbsoluteUrl = pathname => process.env.PUBLIC_URL + pathname;\n","import * as utils from \"./LocalStorageHelpers\";\n\nconst localStorageLastLocationKey = \"metronic-lastLocation\";\n\nfunction acceptLocation(lastLocation) {\n if (\n lastLocation &&\n lastLocation.pathname &&\n lastLocation.pathname !== \"/\" &&\n lastLocation.pathname.indexOf(\"auth\") === -1 &&\n lastLocation.pathname !== \"/logout\"\n ) {\n return true;\n }\n\n return false;\n}\n\nexport function saveLastLocation(lastLocation) {\n if (acceptLocation(lastLocation)) {\n utils.setStorage(\n localStorageLastLocationKey,\n JSON.stringify(lastLocation),\n 120\n );\n }\n}\n\nexport function forgotLastLocation() {\n utils.removeStorage(localStorageLastLocationKey);\n}\n\nexport function getLastLocation() {\n const defaultLocation = { pathname: \"/\", title: \"Dashboard\"};\n const localStorateLocations = utils.getStorage(localStorageLastLocationKey);\n if (!localStorateLocations) {\n return { pathname: \"/\", title: \"Dashboard\"};\n }\n\n try {\n const result = JSON.parse(localStorateLocations);\n return result;\n } catch (error) {\n console.error(error);\n return defaultLocation;\n }\n}\n\nexport function getCurrentUrl(location) {\n return location.pathname.split(/[?#]/)[0];\n}\n\nexport function checkIsActive(location, url) {\n const current = getCurrentUrl(location);\n if (!current || !url) {\n return false;\n }\n\n if (current === url) {\n return true;\n }\n\n if (current.indexOf(url) > -1) {\n return true;\n }\n\n return false;\n}\n","import {toAbsoluteUrl} from \"../../../../_metronic/_helpers\";\n\nexport default [\n {\n id: 1,\n username: \"admin\",\n password: \"demo\",\n email: \"admin@demo.com\",\n accessToken: \"access-token-8f3ae836da744329a6f93bf20594b5cc\",\n refreshToken: \"access-token-f8c137a2c98743f48b643e71161d90aa\",\n roles: [1], // Administrator\n pic: toAbsoluteUrl(\"/media/users/300_25.jpg\"),\n fullname: \"Sean\",\n occupation: \"CEO\",\n companyName: \"Keenthemes\",\n phone: \"456669067890\",\n address: {\n addressLine: \"L-12-20 Vertex, Cybersquare\",\n city: \"San Francisco\",\n state: \"California\",\n postCode: \"45000\"\n },\n socialNetworks: {\n linkedIn: \"https://linkedin.com/admin\",\n facebook: \"https://facebook.com/admin\",\n twitter: \"https://twitter.com/admin\",\n instagram: \"https://instagram.com/admin\"\n }\n },\n {\n id: 2,\n username: \"user\",\n password: \"demo\",\n email: \"user@demo.com\",\n accessToken: \"access-token-6829bba69dd3421d8762-991e9e806dbf\",\n refreshToken: \"access-token-f8e4c61a318e4d618b6c199ef96b9e55\",\n roles: [2], // Manager\n pic: toAbsoluteUrl(\"/media/users/100_2.jpg\"),\n fullname: \"Megan\",\n occupation: \"Deputy Head of Keenthemes in New York office\",\n companyName: \"Keenthemes\",\n phone: \"456669067891\",\n address: {\n addressLine: \"3487 Ingram Road\",\n city: \"Greensboro\",\n state: \"North Carolina\",\n postCode: \"27409\"\n },\n socialNetworks: {\n linkedIn: \"https://linkedin.com/user\",\n facebook: \"https://facebook.com/user\",\n twitter: \"https://twitter.com/user\",\n instagram: \"https://instagram.com/user\"\n }\n },\n {\n id: 3,\n username: \"guest\",\n password: \"demo\",\n email: \"guest@demo.com\",\n accessToken: \"access-token-d2dff7b82f784de584b60964abbe45b9\",\n refreshToken: \"access-token-c999ccfe74aa40d0aa1a64c5e620c1a5\",\n roles: [3], // Guest\n pic: toAbsoluteUrl(\"/media/users/default.jpg\"),\n fullname: \"Ginobili Maccari\",\n occupation: \"CFO\",\n companyName: \"Keenthemes\",\n phone: \"456669067892\",\n address: {\n addressLine: \"1467 Griffin Street\",\n city: \"Phoenix\",\n state: \"Arizona\",\n postCode: \"85012\"\n },\n socialNetworks: {\n linkedIn: \"https://linkedin.com/guest\",\n facebook: \"https://facebook.com/guest\",\n twitter: \"https://twitter.com/guest\",\n instagram: \"https://instagram.com/guest\"\n }\n }\n];\n","import { persistReducer } from \"redux-persist\";\nimport storage from \"redux-persist/lib/storage\";\nimport { put, takeLatest } from \"redux-saga/effects\";\nimport { getUserByToken } from \"./authCrud\";\n\nexport const actionTypes = {\n Login: \"[Login] Action\",\n Logout: \"[Logout] Action\",\n Register: \"[Register] Action\",\n UserRequested: \"[Request User] Action\",\n UserLoaded: \"[Load User] Auth API\"\n};\n\nconst initialAuthState = {\n user: undefined,\n authToken: undefined\n};\n\nexport const reducer = persistReducer(\n { storage, key: \"v711-demo1-auth\", whitelist: [\"user\", \"authToken\"] },\n (state = initialAuthState, action) => {\n switch (action.type) {\n case actionTypes.Login: {\n const { authToken } = action.payload;\n\n return { authToken, user: undefined };\n }\n\n case actionTypes.Register: {\n const { authToken } = action.payload;\n\n return { authToken, user: undefined };\n }\n\n case actionTypes.Logout: {\n // TODO: Change this code. Actions in reducer aren't allowed.\n return initialAuthState;\n }\n\n case actionTypes.UserLoaded: {\n const { user } = action.payload;\n return { ...state, user };\n }\n\n default:\n return state;\n }\n }\n);\n\nexport const actions = {\n login: authToken => ({ type: actionTypes.Login, payload: { authToken } }),\n register: authToken => ({\n type: actionTypes.Register,\n payload: { authToken }\n }),\n logout: () => ({ type: actionTypes.Logout }),\n requestUser: user => ({ type: actionTypes.UserRequested, payload: { user } }),\n fulfillUser: user => ({ type: actionTypes.UserLoaded, payload: { user } })\n};\n\nexport function* saga() {\n yield takeLatest(actionTypes.Login, function* loginSaga() {\n yield put(actions.requestUser());\n });\n\n yield takeLatest(actionTypes.Register, function* registerSaga() {\n yield put(actions.requestUser());\n });\n\n yield takeLatest(actionTypes.UserRequested, function* userRequested() {\n const { data: user } = yield getUserByToken();\n\n yield put(actions.fulfillUser(user));\n });\n}\n","import axios from \"axios\";\n\nexport const LOGIN_URL = \"api/auth/login\";\nexport const REGISTER_URL = \"api/auth/register\";\nexport const REQUEST_PASSWORD_URL = \"api/auth/forgot-password\";\n\nexport const ME_URL = \"api/me\";\n\nexport function login(email, password) {\n return axios.post(LOGIN_URL, { email, password });\n}\n\nexport function register(email, fullname, username, password) {\n return axios.post(REGISTER_URL, { email, fullname, username, password });\n}\n\nexport function requestPassword(email) {\n return axios.post(REQUEST_PASSWORD_URL, { email });\n}\n\nexport function getUserByToken() {\n // Authorization head should be fulfilled in interceptor.\n return axios.get(ME_URL);\n}\n","import {createSlice} from \"@reduxjs/toolkit\";\r\n\r\nconst initialInscripcion = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n departamento: undefined,\r\n lastError: null\r\n };\r\n\r\n export const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n };\r\n\r\n export const dptoSlice = createSlice({\r\n name:\"departamento\",\r\n initialState:initialInscripcion,\r\n reducers:{\r\n catchError:(state,action)=>{\r\n state.error = action.payload.error.clientMessage;\r\n if(action.payload.callType===callTypes.list){\r\n state.listLoading=false;\r\n }else{\r\n state.actionsLoading=false;\r\n };\r\n },\r\n starCall:(state,action)=>{\r\n state.error=null;\r\n if(action.payload.callType===callTypes.list){\r\n state.listLoading=true;\r\n }else{\r\n state.actionsLoading=false;\r\n };\r\n },\r\n // createCustomer\r\n // inscripcionCreated: (state, action) => {\r\n // state.actionsLoading = false;\r\n // state.error = null;\r\n // state.entities.push(action.payload.inscripcion);\r\n // },\r\n // inscripcionFetched: (state, action) => {\r\n // state.actionsLoading = false;\r\n // state.inscripcion = action.payload.inscripcion;\r\n // state.error = null;\r\n // },\r\n // findCustomers\r\n departamentosFetched: (state, action) => {\r\n const { departamentos } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.entities = departamentos;\r\n state.totalCount = departamentos && departamentos.length;\r\n },\r\n }\r\n });","import {createSlice} from \"@reduxjs/toolkit\";\r\n\r\nconst initialInscripcion = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n entities: null,\r\n localidad: undefined,\r\n lastError: null\r\n };\r\n\r\n export const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n };\r\n\r\n export const localidadSlice = createSlice({\r\n name:\"localidad\",\r\n initialState:initialInscripcion,\r\n reducers:{\r\n catchError:(state,action)=>{\r\n state.error = action.payload.error.clientMessage;\r\n if(action.payload.callType===callTypes.list){\r\n state.listLoading=false;\r\n }else{\r\n state.actionsLoading=false;\r\n };\r\n },\r\n starCall:(state,action)=>{\r\n state.error=null;\r\n if(action.payload.callType===callTypes.list){\r\n state.listLoading=true;\r\n }else{\r\n state.actionsLoading=false;\r\n };\r\n },\r\n // createCustomer\r\n // inscripcionCreated: (state, action) => {\r\n // state.actionsLoading = false;\r\n // state.error = null;\r\n // state.entities.push(action.payload.inscripcion);\r\n // },\r\n // inscripcionFetched: (state, action) => {\r\n // state.actionsLoading = false;\r\n // state.inscripcion = action.payload.inscripcion;\r\n // state.error = null;\r\n // },\r\n // findCustomers\r\n localidadesFetched: (state, action) => {\r\n const { localidades } = action.payload;\r\n state.listLoading = false;\r\n state.error = null;\r\n state.entities = localidades;\r\n state.totalCount = localidades && localidades.length;\r\n },\r\n }\r\n });","import { createSlice } from '@reduxjs/toolkit';\r\n\r\nconst initialCertificateState = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n certificates: undefined,\r\n certificate: undefined,\r\n certificateFile:undefined,\r\n error: null\r\n};\r\nexport const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n};\r\n\r\nexport const certificatesSlice = createSlice({\r\n name: \"certificates\",\r\n initialState: initialCertificateState,\r\n reducers: {\r\n catchError: (state, action) => {\r\n state.error = action.payload.error;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = false;\r\n } else {\r\n state.actionsLoading = false;\r\n }\r\n },\r\n startCall: (state, action) => {\r\n state.error = undefined;\r\n if (action.payload.callType === callTypes.list) {\r\n state.listLoading = true;\r\n } else {\r\n state.actionsLoading = true;\r\n }\r\n },\r\n // getCertificateBy certificateId\r\n certificateFetched: (state, action) => {\r\n state.listLoading = false;\r\n state.certificate = action.payload.certificate;\r\n state.error = null;\r\n },\r\n // Download by certificateId\r\n certificateDownload: (state, action) => {\r\n state.listLoading = false;\r\n state.certificateFile = action.payload.certificateFile;\r\n state.error = null;\r\n },\r\n // getCertificatessBy userId\r\n certificatesFetched: (state, action) => {\r\n state.listLoading = false;\r\n state.certificates = action.payload.certificates;\r\n state.error = null;\r\n },\r\n clearAll:(state,action)=>{\r\n state.listLoading = false;\r\n state.actionsLoading = false;\r\n state.certificate =undefined;\r\n state.certificateFile =undefined;\r\n state.certificates = undefined;\r\n state.error = null;\r\n }\r\n }\r\n});","import {createSlice} from \"@reduxjs/toolkit\";\r\n\r\nconst initialApiVersion = {\r\n listLoading: false,\r\n actionsLoading: false,\r\n totalCount: 0,\r\n apiVersionState: undefined,\r\n error: null\r\n };\r\n\r\n export const callTypes = {\r\n list: \"list\",\r\n action: \"action\"\r\n };\r\n\r\n export const apiVersionSlice=createSlice({\r\n name:\"apiVersion\",\r\n initialState:initialApiVersion,\r\n reducers:{\r\n catchError:(state,action)=>{\r\n state.error = action.payload.error.clientMessage;\r\n state.apiVersionState=undefined;\r\n if(action.payload.callType===callTypes.list){\r\n state.listLoading=false;\r\n }else{\r\n state.actionsLoading=false;\r\n };\r\n },\r\n starCall:(state,action)=>{\r\n state.error=null;\r\n if(action.payload.callType===callTypes.list){\r\n state.listLoading=true;\r\n }else{\r\n state.actionsLoading=false;\r\n };\r\n },\r\n apiVersionFetched:(state,action)=>{\r\n state.listLoading=false;\r\n state.apiVersionState=action.payload.apiVersionState;\r\n state.error=null;\r\n },\r\n reiniciarDatos:(state,action)=>{\r\n state.actionsLoading=false;\r\n state.listLoading=false;\r\n state.apiVersionState=undefined;\r\n state.error=null;\r\n }\r\n }\r\n});","import { all } from \"redux-saga/effects\";\nimport { combineReducers } from \"redux\";\n\nimport * as auth from \"../app/modules/Auth/_redux/authRedux\";\nimport { dptoSlice } from \"../app/modules/Comun/Departamento/_redux/dptoSlice\";\nimport { localidadSlice } from \"../app/modules/Comun/Localidad/_redux/localidadSlice\";\n// import {customersSlice} from \"../app/modules/ECommerce/_redux/customers/customersSlice\";\n// import {productsSlice} from \"../app/modules/ECommerce/_redux/products/productsSlice\";\n// import {remarksSlice} from \"../app/modules/ECommerce/_redux/remarks/remarksSlice\";\n// import {specificationsSlice} from \"../app/modules/ECommerce/_redux/specifications/specificationsSlice\";\n\n\nimport { certificatesSlice } from '../app/modules/Documents/_redux/Certificates/certificateSlice';\n\n//CHECK PAGE VERSION\nimport { apiVersionSlice } from '../components/versionsCheck/_redux/apiVersionSlice';\n\nexport const rootReducer = combineReducers({\n auth: auth.reducer,\n departamento: dptoSlice.reducer,\n localidad: localidadSlice.reducer,\n //customers: customersSlice.reducer,\n //products: productsSlice.reducer,\n //remarks: remarksSlice.reducer,\n //specifications: specificationsSlice.reducer,\n\n certificates: certificatesSlice.reducer,\n\n apiVersion:apiVersionSlice.reducer,\n});\n\nexport function* rootSaga() {\n yield all([auth.saga()]);\n}\n","import {configureStore, getDefaultMiddleware} from \"@reduxjs/toolkit\";\nimport createSagaMiddleware from \"redux-saga\";\nimport {reduxBatch} from \"@manaflair/redux-batch\";\nimport {persistStore} from \"redux-persist\";\nimport {rootReducer, rootSaga} from \"./rootReducer\";\n\nconst sagaMiddleware = createSagaMiddleware();\nconst middleware = [\n ...getDefaultMiddleware({\n immutableCheck: false,\n serializableCheck: false,\n thunk: true\n }),\n sagaMiddleware\n];\n\nconst store = configureStore({\n reducer: rootReducer,\n middleware,\n devTools: process.env.NODE_ENV !== \"production\",\n enhancers: [reduxBatch]\n});\n\n/**\n * @see https://github.com/rt2zz/redux-persist#persiststorestore-config-callback\n * @see https://github.com/rt2zz/redux-persist#persistor-object\n */\nexport const persistor = persistStore(store);\n\nsagaMiddleware.run(rootSaga);\n\nexport default store;\n","import React, {createContext} from \"react\";\nimport {useMemo} from \"react\";\nimport {useContext} from \"react\";\n\nconst I18N_CONFIG_KEY = process.env.REACT_APP_I18N_CONFIG_KEY || \"i18nConfig\";\nconst initialState = {\n selectedLang: \"es\"\n };\n\nfunction getConfig() {\n const ls = localStorage.getItem(I18N_CONFIG_KEY);\n if (ls) {\n try {\n return JSON.parse(ls);\n } catch (er) {\n console.error(er);\n }\n }\n return initialState;\n}\n\n// Side effect\nexport function setLanguage(lang) {\n localStorage.setItem(I18N_CONFIG_KEY, JSON.stringify({ selectedLang: lang }));\n window.location.reload();\n}\n\nconst I18nContext = createContext();\n\nexport function useLang() {\n return useContext(I18nContext).selectedLang;\n}\n\nexport function withI18n(Component) {\n class WithI18n extends React.Component {\n static displayName = `WithI18n(${Component.displayName || Component.name})`;\n\n static contextType = I18nContext;\n\n render() {\n return ;\n }\n }\n\n return WithI18n;\n}\n\nexport const I18nConsumer = I18nContext.Consumer;\n\nexport function MetronicI18nProvider({ children }) {\n const lang = useMemo(getConfig, []);\n\n return {children};\n}\n","import React from \"react\";\nimport {useLang} from \"./Metronici18n\";\nimport {IntlProvider} from \"react-intl\";\nimport \"@formatjs/intl-relativetimeformat/polyfill\";\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/en\";\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/de\";\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/es\";\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/fr\";\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/ja\";\nimport \"@formatjs/intl-relativetimeformat/dist/locale-data/zh\";\n\nimport deMessages from \"./messages/de\";\nimport enMessages from \"./messages/en\";\nimport esMessages from \"./messages/es\";\nimport frMessages from \"./messages/fr\";\nimport jaMessages from \"./messages/ja\";\nimport zhMessages from \"./messages/zh\";\n\nconst allMessages = {\n de: deMessages,\n en: enMessages,\n es: esMessages,\n fr: frMessages,\n ja: jaMessages,\n zh: zhMessages\n};\n\nexport function I18nProvider({ children }) {\n const locale = useLang();\n const messages = allMessages[locale];\n\n return (\n \n {children}\n \n );\n}\n","import objectPath from \"object-path\";\nimport {toAbsoluteUrl} from \"../../_helpers\";\n\nexport class HtmlClassService {\n // Public properties\n config;\n classes;\n attributes;\n\n /**\n * Build html element classes from layout config\n * @param layoutConfig\n */\n setConfig(layoutConfig) {\n this.config = this.preInit(layoutConfig);\n\n // scope list of classes\n this.classes = {\n header: [],\n header_container: [],\n header_mobile: [],\n header_menu: [],\n aside: [],\n aside_menu: [],\n subheader: [],\n subheader_container: [],\n content: [],\n content_container: [],\n footer_container: []\n };\n\n this.attributes = {\n aside_menu: {},\n header_mobile: {},\n header_menu: {}\n };\n\n // init base layout\n this.initLayout();\n this.initLoader();\n\n // init header and subheader menu\n this.initHeader();\n this.initSubheader();\n\n this.initContent();\n // init aside and aside menu\n this.initAside();\n\n // init footer\n this.initFooter();\n\n // init theme\n this.initTheme();\n }\n\n preInit(layoutConfig) {\n const updatedConfig = Object.assign({}, layoutConfig);\n const headerSelfFixedDesktop = objectPath.get(updatedConfig, \"header.self.fixed.desktop\");\n const subheaderFixed = objectPath.get(updatedConfig, \"subheader.fixed\");\n if (subheaderFixed && headerSelfFixedDesktop) {\n // Page::setOption('layout', 'subheader/style', 'solid');\n updatedConfig.subheader.style = \"solid\"; \n } else {\n // Page::setOption('layout', 'subheader/fixed', false);\n updatedConfig.subheader.fixed = false;\n }\n return updatedConfig;\n }\n\n /**\n * Returns Classes\n *\n * @param path: string\n * @param toString boolean\n */\n getClasses(path, toString) {\n if (path) {\n const classes = objectPath.get(this.classes, path) || \"\";\n if (toString && Array.isArray(classes)) {\n return classes.join(\" \");\n }\n return classes.toString();\n }\n return this.classes;\n }\n\n getAttributes(path) {\n if (path) {\n const attributes = objectPath.get(this.attributes, path) || [];\n return attributes;\n }\n return [];\n }\n\n getLogo() {\n const brandSkin = objectPath.get(this.config, \"brand.self.theme\");\n if (brandSkin === \"light\") {\n //return toAbsoluteUrl(\"/media/logos/logo-dark.png\");\n return toAbsoluteUrl(\"/media/logos/MEC-EscudoCorrientes.svg\");\n } else {\n //return toAbsoluteUrl(\"/media/logos/logo-light.png\");\n return toAbsoluteUrl(\"/media/logos/MEC-EscudoCorrientes-light.svg\");\n }\n }\n\n getStickyLogo() {\n let logo = objectPath.get(this.config, \"self.logo.sticky\");\n if (typeof logo === \"undefined\") {\n logo = this.getLogo();\n }\n return logo + \"\";\n }\n\n /**\n * Init Layout\n */\n initLayout() {\n const selfBodyBackgroundImage = objectPath.get(this.config, \"self.body.background-image\");\n if (selfBodyBackgroundImage) {\n document.body.style.backgroundImage = `url(\"${selfBodyBackgroundImage}'\")`;\n }\n\n const _selfBodyClass = objectPath.get(this.config, \"self.body.class\");\n if (_selfBodyClass) {\n const bodyClasses = _selfBodyClass.toString().split(\" \");\n bodyClasses.forEach(cssClass => document.body.classList.add(cssClass));\n }\n\n // Offcanvas directions\n document.body.classList.add(\"quick-panel-right\");\n document.body.classList.add(\"demo-panel-right\");\n document.body.classList.add(\"offcanvas-right\");\n }\n\n /**\n * Init Loader\n */\n initLoader() {}\n\n /**\n * Init Header\n */\n initHeader() {\n // Fixed header\n const headerSelfFixedDesktop = objectPath.get(this.config, \"header.self.fixed.desktop\");\n if (headerSelfFixedDesktop) {\n document.body.classList.add(\"header-fixed\");\n objectPath.push(this.classes, \"header\", \"header-fixed\");\n } else {\n document.body.classList.add(\"header-static\");\n }\n\n const headerSelfFixedMobile = objectPath.get(this.config, \"header.self.fixed.mobile\");\n if (headerSelfFixedMobile) {\n document.body.classList.add(\"header-mobile-fixed\");\n objectPath.push(this.classes, \"header_mobile\", \"header-mobile-fixed\");\n }\n\n // Menu\n const headerMenuSelfDisplay = objectPath.get(this.config, \"header.menu.self.display\");\n if (headerMenuSelfDisplay) {\n const headerMenuSelfLayout = objectPath.get(this.config, \"header.menu.self.layout\");\n const headerMenuLayoutCssClass = `header-menu-layout-${headerMenuSelfLayout}`;\n objectPath.push(this.classes, \"header_menu\", headerMenuLayoutCssClass);\n\n if (objectPath.get(this.config, \"header.menu.self.root-arrow\")) {\n objectPath.push(this.classes, \"header_menu\", \"header-menu-root-arrow\");\n }\n }\n\n const headerSelfWidth = objectPath.get(this.config, \"header.self.width\");\n if (headerSelfWidth === \"fluid\") {\n objectPath.push(this.classes, \"header_container\", \"container-fluid\");\n } else {\n objectPath.push(this.classes, \"header_container\", \"container\");\n }\n }\n\n /**\n * Init Subheader\n */\n initSubheader() {\n const subheaderDisplay = objectPath.get(this.config, \"subheader.display\");\n if (subheaderDisplay) {\n document.body.classList.add(\"subheader-enabled\");\n } else {\n return;\n }\n\n // Fixed content head\n const subheaderFixed = objectPath.get(this.config, \"subheader.fixed\");\n const headerSelfFixedDesktop = objectPath.get(this.config, \"header.self.fixed.desktop\");\n if (subheaderFixed && headerSelfFixedDesktop) {\n document.body.classList.add(\"subheader-fixed\");\n // Page::setOption('layout', 'subheader/style', 'solid'); => See preInit()\n } else {\n // Page::setOption('layout', 'subheader/fixed', false); => See preInit()\n }\n\n const subheaderStyle = objectPath.get(this.config, \"subheader.style\");\n if (subheaderStyle) {\n const subheaderClass = `subheader-${subheaderStyle}`;\n objectPath.push(this.classes, \"subheader\", subheaderClass);\n }\n\n const subheaderWidth = objectPath.get(this.config, \"subheader.width\");\n if (subheaderWidth === \"fluid\") {\n objectPath.push(this.classes, \"subheader_container\", \"container-fluid\");\n } else {\n objectPath.push(this.classes, \"subheader_container\", \"container\");\n }\n\n if (objectPath.get(this.config, \"subheader.clear\")) {\n objectPath.push(this.classes, \"subheader\", \"mb-0\");\n }\n }\n\n /**\n * Init Content\n */\n initContent() {\n if (objectPath.get(this.config, \"content.fit-top\")) {\n objectPath.push(this.classes, \"content\", \"pt-0\");\n }\n\n if (objectPath.get(this.config, \"content.fit-bottom\")) {\n objectPath.push(this.classes, \"content\", \"pb-0\");\n }\n\n if (objectPath.get(this.config, \"content.width\") === \"fluid\") {\n objectPath.push(this.classes, \"content_container\", \"container-fluid\");\n } else {\n objectPath.push(this.classes, \"content_container\", \"container\");\n }\n }\n\n /**\n * Init Aside\n */\n initAside() {\n // Check Aside\n const asideSelfDisplay = objectPath.get(this.config, \"aside.self.display\");\n if (!asideSelfDisplay) {\n return;\n }\n\n // Enable Aside\n document.body.classList.add(\"aside-enabled\");\n\n // Fixed Aside\n const asideSelfFixed = objectPath.get(this.config, \"aside.self.fixed\");\n if (asideSelfFixed) {\n document.body.classList.add(\"aside-fixed\");\n objectPath.push(this.classes, \"aside\", \"aside-fixed\");\n } else {\n document.body.classList.add(\"aside-static\");\n }\n\n // Check Aside\n if (!asideSelfDisplay) {\n return;\n }\n\n // Default fixed\n if (objectPath.get(this.config, \"aside.self.minimize.default\")) {\n document.body.classList.add(\"aside-minimize\");\n }\n\n if (objectPath.get(this.config, \"aside.self.minimize.hoverable\")) {\n document.body.classList.add(\"aside-minimize-hoverable\");\n }\n\n // Menu\n // Dropdown Submenu\n const asideMenuDropdown = objectPath.get(this.config, \"aside.menu.dropdown\");\n if (asideMenuDropdown) {\n objectPath.push(this.classes, \"aside_menu\", \"aside-menu-dropdown\");\n this.attributes.aside_menu[\"data-menu-dropdown\"] = \"1\";\n }\n\n // Scrollable Menu\n this.attributes.aside_menu[\"data-menu-scroll\"] = asideMenuDropdown ? \"0\" : \"1\";\n\n const asideSubmenuDHoverTimeout = objectPath.get(\n this.config,\n \"aside.menu.submenu.dropdown.hover-timeout\"\n );\n if (asideSubmenuDHoverTimeout) {\n this.attributes.aside_menu[\n \"data-menu-dropdown-timeout\"\n ] = asideSubmenuDHoverTimeout;\n }\n }\n\n /**\n * Init Footer\n */\n initFooter() {\n // Fixed header\n if (objectPath.get(this.config, \"footer.fixed\")) {\n document.body.classList.add(\"footer-fixed\");\n }\n\n if (objectPath.get(this.config, \"footer.self.width\") === \"fluid\") {\n objectPath.push(this.classes, \"footer_container\", \"container-fluid\");\n } else {\n objectPath.push(this.classes, \"footer_container\", \"container\");\n }\n }\n\n /** Init Theme */\n initTheme() {\n const asideSelfDisplay = objectPath.get(this.config, \"aside.self.display\");\n if (!asideSelfDisplay) {\n const headerSelfTheme = objectPath.get(this.config, \"header.self.theme\");\n document.body.classList.add(`brand-${headerSelfTheme}`);\n } else {\n const brandSelfTheme = objectPath.get(this.config, \"brand.self.theme\");\n document.body.classList.add(`brand-${brandSelfTheme}`);\n }\n }\n}\n","import React, { createContext, useContext, useMemo } from \"react\";\nimport { getInitLayoutConfig } from \"./LayoutConfig\";\nimport { HtmlClassService } from \"./HTMLClassService\";\n\nconst LAYOUT_CONFIG_KEY =\n process.env.REACT_APP_LAYOUT_CONFIG_KEY || \"LayoutConfig\";\n\nfunction getConfig() {\n const ls = localStorage.getItem(LAYOUT_CONFIG_KEY);\n if (ls) {\n try {\n return JSON.parse(ls);\n } catch (er) {\n console.error(er);\n }\n }\n return getInitLayoutConfig();\n}\n\n// Side effect\nexport function setLayoutConfig(config) {\n localStorage.setItem(LAYOUT_CONFIG_KEY, JSON.stringify(config));\n window.location.reload();\n}\n\nconst HtmlClassServiceContext = createContext();\n\n/**\n *\n *\n * @export\n * @returns Layout context from 'localStorage'\n */\nexport function useHtmlClassService() {\n return useContext(HtmlClassServiceContext);\n}\n\nexport function withHtmlClassService(Component) {\n class WithHtmlClassService extends React.Component {\n static displayName = `WithHtmlClassService(${Component.displayName ||\n Component.name})`;\n\n static contextType = HtmlClassServiceContext;\n\n render() {\n return ;\n }\n }\n\n return WithHtmlClassService;\n}\n\nexport const HtmlClassServiceConsumer = HtmlClassServiceContext.Consumer;\n\nexport function MetronicLayoutProvider({ children }) {\n const lc = useMemo(getConfig, []);\n const hcs = useMemo(() => {\n const service = new HtmlClassService();\n\n service.setConfig(lc);\n\n return service;\n }, [lc]);\n\n return (\n \n {children}\n \n );\n}\n","import {toAbsoluteUrl} from \"../../_helpers\";\nexport function getInitLayoutConfig() {\n return {\n demo: \"demo1\",\n js: {\n breakpoints : {\n sm: \"576\",\n md: \"768\",\n lg: \"992\",\n xl: \"1200\",\n xxl: \"1200\"\n },\n colors: {\n theme: {\n base: {\n \"white\": \"#ffffff\",\n \"primary\": \"#6993FF\",\n \"secondary\": \"#E5EAEE\",\n \"success\": \"#1BC5BD\",\n \"info\": \"#8950FC\",\n \"warning\": \"#FFA800\",\n \"danger\": \"#F64E60\",\n \"light\": \"#F3F6F9\",\n \"dark\": \"#212121\"\n },\n light: {\n \"white\": \"#ffffff\",\n \"primary\": \"#E1E9FF\",\n \"secondary\": \"#ECF0F3\",\n \"success\": \"#C9F7F5\",\n \"info\": \"#EEE5FF\",\n \"warning\": \"#FFF4DE\",\n \"danger\": \"#FFE2E5\",\n \"light\": \"#F3F6F9\",\n \"dark\": \"#D6D6E0\"\n },\n inverse: {\n \"white\": \"#ffffff\",\n \"primary\": \"#ffffff\",\n \"secondary\": \"#212121\",\n \"success\": \"#ffffff\",\n \"info\": \"#ffffff\",\n \"warning\": \"#ffffff\",\n \"danger\": \"#ffffff\",\n \"light\": \"#464E5F\",\n \"dark\": \"#ffffff\"\n }\n },\n gray: {\n \"gray100\": \"#F3F6F9\",\n \"gray200\": \"#ECF0F3\",\n \"gray300\": \"#E5EAEE\",\n \"gray400\": \"#D6D6E0\",\n \"gray500\": \"#B5B5C3\",\n \"gray600\": \"#80808F\",\n \"gray700\": \"#464E5F\",\n \"gray800\": \"#1B283F\",\n \"gray900\": \"#212121\"\n }\n },\n fontFamily: \"Poppins\"\n },\n // == Page Splash Screen loading\n loader: {\n enabled: true,\n type: \"\", // default|spinner-message|spinner-logo\n logo: toAbsoluteUrl(\"/media/logos/logo-dark-sm.png\"),\n message: \"Cargando...\"\n },\n // page toolbar\n toolbar: {\n display: false\n },\n header: {\n self: {\n width: \"fluid\", // fixed|fluid\n theme: \"light\", // light|dark\n fixed: {\n desktop: true,\n mobile: true\n }\n },\n menu: {\n self: {\n display: false,\n layout: \"default\", // tab/default\n \"root-arrow\": false,\n \"icon-style\": \"duotone\" // duotone, line, bold, solid\n },\n desktop: {\n arrow: true,\n toggle: \"click\",\n submenu: {\n theme: \"light\", // light|dark\n arrow: true\n }\n },\n mobile: {\n submenu: {\n theme: \"dark\",\n accordion: true\n }\n }\n }\n },\n subheader: {\n display: false,\n displayDesc: false,\n displayDaterangepicker: true,\n layout: \"subheader-v1\",\n fixed: true,\n width: \"fluid\", // fixed/fluid,\n clear: false,\n style: \"solid\" // solid/transparent\n },\n content: {\n width: \"fixed\" // fluid|fixed\n },\n brand: {\n self: {\n theme: \"light\" // light/dark\n }\n },\n aside: {\n self: {\n theme: \"light\", // light/dark\n display: false,\n fixed: true,\n minimize: {\n toggle: true, // allow toggle\n default: false, // default state\n hoverable: true // allow hover\n }\n },\n footer: {\n self: {\n display: true\n }\n },\n menu: {\n dropdown: false, // ok\n scroll: true, // ok\n \"icon-style\": \"duotone\", // duotone, line, bold, solid\n submenu: {\n accordion: true,\n dropdown: {\n arrow: true,\n \"hover-timeout\": 500 // in milliseconds\n }\n }\n }\n },\n footer: {\n self: {\n fixed: true,\n width: \"fixed\" // fluid, fixed\n }\n },\n extras: {\n search: {\n display: false,\n layout: \"dropdown\", // offcanvas, dropdown\n offcanvas: {\n direction: \"right\"\n }\n },\n notifications: {\n display: false,\n layout: \"dropdown\", // offcanvas, dropdown\n dropdown: {\n style: \"dark\" // light, dark\n },\n offcanvas: {\n directions: \"right\"\n }\n },\n \"quick-actions\": {\n display: false,\n layout: \"dropdown\", // offcanvas, dropdown,\n dropdown: {\n style: \"dark\", // light, dark\n },\n offcanvas: {\n directions: \"right\"\n }\n },\n user: {\n display: true,\n layout: \"dropdown\", // offcanvas, dropdown\n dropdown: {\n style: \"light\" // light, dark\n },\n offcanvas: {\n directions: \"right\"\n }\n },\n languages: {\n display: false\n },\n cart: {\n display: false,\n dropdown: {\n style: \"dark\", // ligth, dark\n }\n },\n \"quick-panel\": {\n display: false,\n offcanvas: {\n directions: \"right\"\n }\n },\n chat: {\n display: false\n },\n toolbar: {\n display: false\n },\n scrolltop: {\n display: true\n }\n }\n };\n}\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\nimport React from \"react\";\nimport SVG from \"react-inlinesvg\";\nimport PerfectScrollbar from \"react-perfect-scrollbar\";\nimport { toAbsoluteUrl } from \"../../../../../_helpers\";\n\nconst perfectScrollbarOptions = {\n wheelSpeed: 2,\n wheelPropagation: false,\n};\n\nexport function SearchResult({ data }) {\n if (!data) {\n return null;\n }\n\n if (data.length === 0) {\n return (\n \n
\n
No record found
\n
\n \n );\n }\n\n return (\n \n \n
\n {/* begin: Section */}\n
\n Documents\n
\n
\n
\n
\n \n
\n
\n \n AirPlus Requirements\n \n \n by Grog John\n \n
\n
\n\n
\n
\n \n
\n
\n \n TechNav Documentation\n \n \n by Mary Broun\n \n
\n
\n\n
\n
\n \n
\n
\n \n All Framework Docs\n \n \n by Nick Stone\n \n
\n
\n\n
\n
\n \n
\n
\n \n Finance & Accounting Reports\n \n \n by Jhon Larson\n \n
\n
\n
\n {/* end: Section */}\n\n {/* begin: Section */}\n
\n Members\n
\n
\n
\n
\n \n
\n
\n \n Milena Gibson\n \n \n UI Designer\n \n
\n
\n
\n
\n \n
\n
\n \n Stefan JohnStefan\n \n \n Marketing Manager\n \n
\n
\n
\n
\n \n
\n
\n \n Anna Strong\n \n \n Software Developer\n \n
\n
\n
\n
\n \n
\n
\n \n Nick Bold\n \n \n Project Coordinator\n \n
\n
\n
\n {/* end: Section */}\n\n {/* begin: Section */}\n
\n Files\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n 79 PSD files generated\n \n \n by Grog John\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n \n $2900 worth products sold\n \n \n Total 234 items\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n \n 4 New items submitted\n \n \n Marketing Manager\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n \n 4 New items submitted\n \n \n Marketing Manager\n \n
\n
\n
\n {/* end: Section */}\n
\n \n \n );\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React from \"react\";\n\nexport const DropdownCustomToggler = React.forwardRef((props, ref) => {\n return (\n {\n e.preventDefault();\n props.onClick(e);\n }}\n >\n {props.children}\n \n );\n});\n","import React from \"react\";\n\nexport const DropdownTopbarItemToggler = React.forwardRef((props, ref) => {\n return (\n {\n e.preventDefault();\n props.onClick(e);\n }}\n >\n {props.children}\n \n );\n});\n\nDropdownTopbarItemToggler.displayName = 'DropdownTopbarItemToggler';\n","import React, { useEffect, useState, useMemo } from \"react\";\nimport clsx from \"clsx\";\nimport { Dropdown, OverlayTrigger, Tooltip } from \"react-bootstrap\";\nimport SVG from \"react-inlinesvg\";\nimport objectPath from \"object-path\";\nimport { useHtmlClassService } from \"../../../../_core/MetronicLayout\";\nimport { SearchResult } from \"./SearchResult\";\nimport { toAbsoluteUrl } from \"../../../../../_helpers\";\nimport { DropdownTopbarItemToggler } from \"../../../../../_partials/dropdowns\";\nconst fakeData = [\n {\n type: 0,\n text: \"Reports\",\n },\n {\n type: 1,\n text: \"AirPlus Requirements\",\n description: \"by Grog John\",\n iconImage: toAbsoluteUrl(\"/media/files/doc.svg\"),\n },\n {\n type: 1,\n text: \"TechNav Documentation\",\n description: \"by Mary Brown\",\n iconImage: toAbsoluteUrl(\"/media/files/pdf.svg\"),\n },\n {\n type: 1,\n text: \"All Framework Docs\",\n description: \"by Grog John\",\n iconImage: toAbsoluteUrl(\"/media/files/zip.svg\"),\n },\n {\n type: 1,\n text: \"AirPlus Requirements\",\n description: \"by Tim Hardy\",\n iconImage: toAbsoluteUrl(\"/media/files/xml.svg\"),\n },\n {\n text: \"Customers\",\n type: 0,\n },\n {\n type: 1,\n text: \"Jimmy Curry\",\n description: \"Software Developer\",\n iconImage: toAbsoluteUrl(\"/media/users/300_11.jpg\"),\n },\n {\n type: 1,\n text: \"Milena Gibson\",\n description: \"UI Designer\",\n iconImage: toAbsoluteUrl(\"/media/users/300_16.jpg\"),\n },\n {\n type: 1,\n text: \"Stefan JohnStefan\",\n description: \"Marketing Manager\",\n iconImage: toAbsoluteUrl(\"/media/users/300_22.jpg\"),\n },\n {\n type: 1,\n text: \"Anna Strong\",\n description: \"Software Developer\",\n iconImage: toAbsoluteUrl(\"/media/users/300_5.jpg\"),\n },\n {\n type: 0,\n text: \"Files\",\n },\n {\n type: 1,\n text: \"2 New items submitted\",\n description: \"Marketing Manager\",\n iconClassName: \"flaticon2-box font-danger\",\n },\n {\n type: 1,\n text: \"79 PSD files generated\",\n description: \"by Grog John\",\n iconClassName: \"flaticon-psd font-brand\",\n },\n {\n type: 1,\n text: \"$2900 worth products sold\",\n description: \"Total 234 items\",\n iconClassName: \"flaticon2-supermarket font-warning\",\n },\n {\n type: 1,\n text: \"4 New items submitted\",\n description: \"Marketing Manager\",\n iconClassName: \"flaticon-safe-shield-protection font-info\",\n },\n];\n\nexport function SearchDropdown() {\n const [loading, setLoading] = useState(false);\n const [data, setData] = useState(null);\n const [searchValue, setSearchValue] = useState(\"\");\n let timeoutId;\n\n const clearTimeout = () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = undefined;\n }\n };\n\n const handleSearchChange = (event) => {\n setData(null);\n setSearchValue(event.target.value);\n\n if (event.target.value.length > 2) {\n clearTimeout();\n\n setLoading(true);\n\n // simulate getting search result\n timeoutId = setTimeout(() => {\n setData(fakeData);\n setLoading(false);\n }, 500);\n }\n };\n\n const clear = () => {\n setData(null);\n setSearchValue(\"\");\n };\n\n useEffect(() => {\n return () => {\n clearTimeout();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const uiService = useHtmlClassService();\n const layoutProps = useMemo(() => {\n return {\n offcanvas:\n objectPath.get(uiService.config, \"extras.search.layout\") ===\n \"offcanvas\",\n };\n }, [uiService]);\n\n return (\n <>\n {layoutProps.offcanvas && (\n
\n \n \n \n \n
\n \n )}\n {!layoutProps.offcanvas && (\n {\n setData(null);\n setLoading(false);\n setSearchValue(\"\");\n }}\n id=\"kt_quick_search_toggle\"\n >\n \n Quick search}\n >\n
\n \n \n \n
\n \n
\n \n \n
\n
\n
\n \n \n \n \n \n
\n \n\n \n \n 0\n ? \"none\"\n : \"flex\",\n }}\n onClick={clear}\n className=\"quick-search-close ki ki-close icon-sm text-muted\"\n />\n \n
\n \n
\n \n \n
\n \n )}\n \n );\n}\n","/* eslint-disable no-unused-vars */\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\nimport React, { useState, useMemo } from \"react\";\nimport { Nav, Tab, Dropdown, OverlayTrigger, Tooltip } from \"react-bootstrap\";\nimport PerfectScrollbar from \"react-perfect-scrollbar\";\nimport SVG from \"react-inlinesvg\";\nimport objectPath from \"object-path\";\nimport { useHtmlClassService } from \"../../../_core/MetronicLayout\";\nimport { toAbsoluteUrl } from \"../../../../_helpers\";\nimport { DropdownTopbarItemToggler } from \"../../../../_partials/dropdowns\";\n\nconst perfectScrollbarOptions = {\n wheelSpeed: 2,\n wheelPropagation: false,\n};\n\nexport function UserNotificationsDropdown() {\n const [key, setKey] = useState(\"Alerts\");\n const bgImage = toAbsoluteUrl(\"/media/misc/bg-1.jpg\");\n\n const uiService = useHtmlClassService();\n const layoutProps = useMemo(() => {\n return {\n offcanvas:\n objectPath.get(uiService.config, \"extras.notifications.layout\") ===\n \"offcanvas\",\n };\n }, [uiService]);\n\n return (\n <>\n {layoutProps.offcanvas && (\n
\n \n \n \n \n \n
\n \n )}\n {!layoutProps.offcanvas && (\n \n \n \n User Notifications\n \n }\n >\n \n \n \n \n \n \n \n \n \n\n \n
\n {/** Head */}\n \n

\n User Notifications\n \n 23 new\n \n

\n\n \n setKey(_key)}\n >\n \n \n Alerts\n \n \n \n \n Events\n \n \n \n \n Logs\n \n \n \n\n \n \n \n
\n
\n \n \n \n
\n
\n \n Briviba SaaS\n \n \n PHP, SQLite, Artisan CLIмм\n \n
\n
\n
\n
\n \n \n \n
\n
\n \n Briviba SaaS\n \n \n PHP, SQLite, Artisan CLIмм\n \n
\n
\n
\n
\n \n \n \n
\n
\n \n Briviba SaaS\n \n \n PHP, SQLite, Artisan CLIмм\n \n
\n
\n
\n
\n \n \n \n
\n
\n \n Briviba SaaS\n \n \n PHP, SQLite, Artisan CLIмм\n \n
\n
\n
\n
\n \n \n \n
\n
\n \n Briviba SaaS\n \n \n PHP, SQLite, Artisan CLIмм\n \n
\n
\n
\n
\n \n \n \n
\n
\n \n Briviba SaaS\n \n \n PHP, SQLite, Artisan CLIмм\n \n
\n
\n
\n
\n \n \n \n
\n
\n \n Briviba SaaS\n \n \n PHP, SQLite, Artisan CLIмм\n \n
\n
\n \n
\n \n \n \n
\n
\n \n
\n
\n
\n New report has been received\n
\n
23 hrs ago
\n
\n
\n
\n\n \n
\n
\n \n
\n
\n
\n Finance report has been generated\n
\n
25 hrs ago
\n
\n
\n
\n\n \n
\n
\n \n
\n
\n
\n New order has been received\n
\n
2 hrs ago
\n
\n
\n
\n\n \n
\n
\n \n
\n
\n
\n New customer is registered\n
\n
3 hrs ago
\n
\n
\n
\n\n \n
\n
\n \n
\n
\n
\n Application has been approved\n
\n
3 hrs ago
\n
\n
\n
\n\n \n
\n
\n \n
\n
\n
\n New file has been uploaded\n
\n
5 hrs ago
\n
\n
\n
\n\n \n
\n
\n \n
\n
\n
\n New user feedback received\n
\n
8 hrs ago
\n
\n
\n
\n\n \n
\n
\n \n
\n
\n
\n System reboot has been successfully completed\n
\n
12 hrs ago
\n
\n
\n
\n\n \n
\n
\n \n
\n
\n
\n New order has been placed\n
\n
15 hrs ago
\n
\n
\n
\n\n \n
\n
\n \n
\n
\n
\n Company meeting canceled\n
\n
19 hrs ago
\n
\n
\n
\n\n \n
\n
\n \n
\n
\n
\n New report has been received\n
\n
23 hrs ago
\n
\n
\n
\n\n \n
\n
\n \n
\n
\n
\n Finance report has been generated\n
\n
25 hrs ago
\n
\n
\n
\n\n \n
\n
\n \n
\n
\n
\n New customer comment recieved\n
\n
2 days ago
\n
\n
\n
\n\n \n
\n
\n \n
\n
\n
\n New customer is registered\n
\n
3 days ago
\n
\n
\n
\n \n \n \n
\n All caught up!\n
\n No new notifications.\n
\n
\n
\n
\n \n \n
\n
\n )}\n \n );\n}\n","/* eslint-disable no-restricted-imports */\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\nimport React, { useMemo } from \"react\";\nimport Dropdown from \"react-bootstrap/Dropdown\";\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\nimport SVG from \"react-inlinesvg\";\nimport objectPath from \"object-path\";\nimport { useHtmlClassService } from \"../../../_core/MetronicLayout\";\nimport { toAbsoluteUrl } from \"../../../../_helpers\";\nimport { DropdownTopbarItemToggler } from \"../../../../_partials/dropdowns\";\n\nexport function QuickActionsDropdown() {\n const bgImage = toAbsoluteUrl(\"/media/misc/bg-2.jpg\");\n const uiService = useHtmlClassService();\n const layoutProps = useMemo(() => {\n return {\n offcanvas:\n objectPath.get(uiService.config, \"extras.quick-actions.layout\") ===\n \"offcanvas\",\n };\n }, [uiService]);\n\n return (\n <>\n {layoutProps.offcanvas && (\n Quick actions}\n >\n
\n \n \n \n \n
\n \n \n )}\n {!layoutProps.offcanvas && (\n \n \n Quick actions\n }\n >\n
\n \n \n \n
\n \n \n\n \n
\n {/* begin: Head */}\n \n

\n Quick Actions\n

\n \n 23 tasks pending\n \n \n {/* end: Head */}\n\n
\n
\n \n \n \n \n \n Accounting\n \n \n eCommerce\n \n \n
\n\n
\n \n {\" \"}\n \n \n \n \n Administration\n \n \n Console\n \n \n
\n\n
\n \n \n \n \n \n Projects\n \n \n Pending Tasks\n \n \n
\n\n
\n \n \n \n \n \n Customers\n \n \n Latest cases\n \n \n
\n
\n \n
\n
\n )}\n \n );\n}\n","/* eslint-disable react/style-prop-object */\n/* eslint-disable jsx-a11y/alt-text */\n/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React from \"react\";\nimport PerfectScrollbar from \"react-perfect-scrollbar\";\nimport { Dropdown, OverlayTrigger, Tooltip } from \"react-bootstrap\";\nimport SVG from \"react-inlinesvg\";\nimport { toAbsoluteUrl } from \"../../../../_helpers\";\nimport { DropdownTopbarItemToggler } from \"../../../../_partials/dropdowns\";\n\nconst perfectScrollbarOptions = {\n wheelSpeed: 2,\n wheelPropagation: false,\n};\n\nexport function MyCartDropdown() {\n const bgImage = toAbsoluteUrl(\"/media/misc/bg-1.jpg\");\n return (\n \n \n User Cart}\n >\n
\n \n \n \n
\n \n \n \n
\n \n \n \n \n

My Cart

\n \n \n \n
\n
\n \n iBlender\n \n Best kichen badge in 2020\n
\n \n $ 350\n \n for\n \n 5\n \n \n \n \n \n \n \n
\n
\n \n \n \n
\n\n
\n\n
\n
\n \n SmartCleaner\n \n Smart tool for cooking\n
\n \n $ 650\n \n for\n \n 4\n \n \n \n \n \n \n \n
\n
\n \n \n \n
\n\n
\n\n
\n
\n \n CameraX\n \n \n Professional camera for edge cutting shots\n \n
\n \n $ 150\n \n for\n \n 3\n \n \n \n \n \n \n \n
\n
\n \n \n \n
\n\n
\n\n
\n
\n \n 3DPrinted\n \n Manufactoring unique objects\n
\n \n $ 1450\n \n for\n \n 7\n \n \n \n \n \n \n \n
\n
\n \n \n \n
\n \n\n
\n
\n \n Total\n \n \n $1840.00\n \n
\n
\n \n Sub total\n \n \n $5640.00\n \n
\n
\n \n Place Order\n \n
\n
\n \n
\n
\n );\n}\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\nimport React from \"react\";\nimport clsx from \"clsx\";\nimport { Dropdown } from \"react-bootstrap\";\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\nimport { toAbsoluteUrl } from \"../../../../_helpers\";\nimport { useLang, setLanguage } from \"../../../../i18n\";\nimport { DropdownTopbarItemToggler } from \"../../../../_partials/dropdowns\";\n\nconst languages = [\n {\n lang: \"en\",\n name: \"English\",\n flag: toAbsoluteUrl(\"/media/svg/flags/226-united-states.svg\"),\n },\n {\n lang: \"zh\",\n name: \"Mandarin\",\n flag: toAbsoluteUrl(\"/media/svg/flags/015-china.svg\"),\n },\n {\n lang: \"es\",\n name: \"Spanish\",\n flag: toAbsoluteUrl(\"/media/svg/flags/128-spain.svg\"),\n },\n {\n lang: \"ja\",\n name: \"Japanese\",\n flag: toAbsoluteUrl(\"/media/svg/flags/063-japan.svg\"),\n },\n {\n lang: \"de\",\n name: \"German\",\n flag: toAbsoluteUrl(\"/media/svg/flags/162-germany.svg\"),\n },\n {\n lang: \"fr\",\n name: \"French\",\n flag: toAbsoluteUrl(\"/media/svg/flags/195-france.svg\"),\n },\n];\n\nexport function LanguageSelectorDropdown() {\n const lang = useLang();\n const currentLanguage = languages.find((x) => x.lang === lang);\n return (\n \n \n Select Language\n }\n >\n
\n \n
\n \n \n \n
    \n {languages.map((language) => (\n \n setLanguage(language.lang)}\n className=\"navi-link\"\n >\n \n {language.name}\n \n {language.name}\n \n \n ))}\n
\n
\n
\n );\n}\n","\nexport default function UserInfo() {\n const auth = sessionStorage.getItem(`oidc.user:${process.env.REACT_APP_AUTH_URL}:${process.env.REACT_APP_IDENTITY_CLIENT_ID}`);\n let authParse;\n if(auth){\n authParse = JSON.parse(auth);\n }\n let userInfo = {};\n if (authParse && authParse.profile) {\n userInfo.email = authParse.profile.email\n }\n\n return userInfo;\n};","/* eslint-disable no-restricted-imports */\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\nimport React, { useMemo } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport Dropdown from \"react-bootstrap/Dropdown\";\n//import { useSelector } from \"react-redux\";\nimport objectPath from \"object-path\";\nimport { useHtmlClassService } from \"../../../_core/MetronicLayout\";\nimport { toAbsoluteUrl } from \"../../../../_helpers\";\nimport { DropdownTopbarItemToggler } from \"../../../../_partials/dropdowns\";\nimport UserInfo from \"../../../../../utils/userInfo\";\n\nexport function UserProfileDropdown() {\n //const { user } = useSelector((state) => state.auth);\n const userInfo = UserInfo();\n\n const uiService = useHtmlClassService();\n const layoutProps = useMemo(() => {\n return {\n light:\n objectPath.get(uiService.config, \"extras.user.dropdown.style\") ===\n \"light\",\n };\n }, [uiService]);\n\n return (\n \n \n \n \n Hola,\n {\" \"}\n {userInfo && (\n <>\n \n {/* {user.fullname} */}\n {userInfo.email.split('@')[0]}\n \n \n \n {/* {user.fullname[0]} */}\n {userInfo.email[0].toUpperCase()}\n \n \n \n )}\n \n \n \n <>\n {/** ClassName should be 'dropdown-menu p-0 m-0 dropdown-menu-right dropdown-menu-anim dropdown-menu-top-unround dropdown-menu-xl' */}\n {layoutProps.light && (\n <>\n
\n
\n \"User\n
\n
\n {userInfo && userInfo.email}\n
\n {/* \n 3 messages\n */}\n
\n
\n \n )}\n\n {!layoutProps.light && (\n \n
\n \n S\n \n {/*\"Pic\"*/}\n
\n
\n Sean Stone\n
\n \n 3 messages\n \n \n )}\n \n\n \n
\n
\n );\n}\n","/* eslint-disable no-restricted-imports */\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\nimport React, {useMemo} from \"react\";\nimport {OverlayTrigger, Tooltip} from \"react-bootstrap\";\n//import {useSelector} from \"react-redux\";\nimport objectPath from \"object-path\";\nimport {useHtmlClassService} from \"../../_core/MetronicLayout\";\nimport {UserProfileDropdown} from \"./dropdowns/UserProfileDropdown\";\nimport UserInfo from \"../../../../utils/userInfo\";\n\nexport function QuickUserToggler() {\n //const {user} = useSelector(state => state.auth);\n const userInfo = UserInfo();\n const uiService = useHtmlClassService();\n const layoutProps = useMemo(() => {\n return {\n offcanvas: objectPath.get(uiService.config, \"extras.user.layout\") === \"offcanvas\",\n };\n }, [uiService]);\n\n return (<>\n {layoutProps.offcanvas && (Ver usuario}\n >\n
\n
\n <>\n Hola,\n \n {/* {user.fullname} */}\n {userInfo && userInfo.email.split('@')[0]}\n \n \n {/* {user.fullname[0]} */}\n {userInfo && userInfo.email[0].toUpperCase()}\n \n \n
\n
\n )}\n\n {!layoutProps.offcanvas && ()}\n \n );\n}\n","import React, { useMemo } from \"react\";\nimport objectPath from \"object-path\";\nimport SVG from \"react-inlinesvg\";\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\nimport { toAbsoluteUrl } from \"../../../_helpers\";\nimport { useHtmlClassService } from \"../../_core/MetronicLayout\";\nimport { SearchDropdown } from \"../extras/dropdowns/search/SearchDropdown\";\nimport { UserNotificationsDropdown } from \"../extras/dropdowns/UserNotificationsDropdown\";\nimport { QuickActionsDropdown } from \"../extras/dropdowns/QuickActionsDropdown\";\nimport { MyCartDropdown } from \"../extras/dropdowns/MyCartDropdown\";\nimport { LanguageSelectorDropdown } from \"../extras/dropdowns/LanguageSelectorDropdown\";\nimport { QuickUserToggler } from \"../extras/QuiclUserToggler\";\n//import { Link } from \"react-router-dom\";\n\nexport function Topbar() {\n const uiService = useHtmlClassService();\n\n const layoutProps = useMemo(() => {\n return {\n viewSearchDisplay: objectPath.get(\n uiService.config,\n \"extras.search.display\"\n ),\n viewNotificationsDisplay: objectPath.get(\n uiService.config,\n \"extras.notifications.display\"\n ),\n viewQuickActionsDisplay: objectPath.get(\n uiService.config,\n \"extras.quick-actions.display\"\n ),\n viewCartDisplay: objectPath.get(uiService.config, \"extras.cart.display\"),\n viewQuickPanelDisplay: objectPath.get(\n uiService.config,\n \"extras.quick-panel.display\"\n ),\n viewLanguagesDisplay: objectPath.get(\n uiService.config,\n \"extras.languages.display\"\n ),\n viewUserDisplay: objectPath.get(uiService.config, \"extras.user.display\"),\n };\n }, [uiService]);\n\n return (\n
\n {layoutProps.viewSearchDisplay && }\n\n {layoutProps.viewNotificationsDisplay && }\n\n {layoutProps.viewQuickActionsDisplay && }\n\n {layoutProps.viewCartDisplay && }\n\n {layoutProps.viewQuickPanelDisplay && (\n Quick panel}\n >\n \n \n \n \n \n
\n \n \n )}\n\n {layoutProps.viewLanguagesDisplay && }\n\n {layoutProps.viewUserDisplay && }\n\n {/* SE SACARON TODAS LAS OPCIONES DEL HEADER, SOLO QUEDA EL BOTON SALIR */}\n {/*
\n \n Salir\n \n
*/}\n\n \n );\n}\n","/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\nimport React from \"react\";\nimport { useLocation } from \"react-router\";\nimport { NavLink } from \"react-router-dom\";\nimport SVG from \"react-inlinesvg\";\nimport { toAbsoluteUrl, checkIsActive } from \"../../../../_helpers\";\n\nexport function HeaderMenu({ layoutProps }) {\n const location = useLocation();\n const getMenuItemActive = (url) => {\n return checkIsActive(location, url) ? \"menu-item-active\" : \"\";\n }\n\n return \n {/*begin::Header Nav*/}\n
    \n {/*begin::1 Level*/}\n
  • \n \n Dashboard\n {layoutProps.rootArrowEnabled && ()}\n \n
  • \n {/*end::1 Level*/}\n\n {/*Classic submenu*/}\n {/*begin::1 Level*/}\n \n \n Material UI\n \n \n
    \n
      \n {/*begin::2 Level*/}\n \n \n \n \n \n \n Inputs\n \n \n \n
      \n
        \n {/*begin::3 Level*/}\n
      • \n \n \n Autocomplete\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Buttons\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Checkboxes\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Pickers\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Radio Buttons\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Selects\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Switches\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Text Fields\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Transfer List\n \n
      • \n {/*end::3 Level*/}\n
      \n
      \n \n {/*end::2 Level*/}\n\n {/*begin::2 Level*/}\n \n \n \n \n \n \n Navigation\n \n \n \n
      \n
        \n {/*begin::3 Level*/}\n
      • \n \n \n Bottom Navigation\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Breadcrumbs\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Drawers\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n NavLinks\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Menus\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Steppers\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Tabs\n \n
      • \n {/*end::3 Level*/}\n
      \n
      \n \n {/*end::2 Level*/}\n\n {/*begin::2 Level*/}\n \n \n \n \n \n \n Surfaces\n \n \n \n
      \n
        \n {/*begin::3 Level*/}\n
      • \n \n \n App Bar\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Paper\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Cards\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Expansion Panels\n \n
      • \n {/*end::3 Level*/}\n
      \n
      \n \n {/*end::2 Level*/}\n\n {/*begin::2 Level*/}\n \n \n \n \n \n \n Feedback\n \n \n \n
      \n
        \n {/*begin::3 Level*/}\n
      • \n \n \n Progress\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Dialogs\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Snackbars\n \n
      • \n {/*end::3 Level*/}\n
      \n
      \n \n {/*end::2 Level*/}\n\n {/*begin::2 Level*/}\n \n \n \n \n \n \n Data Display\n \n \n \n
      \n
        \n {/*begin::3 Level*/}\n
      • \n \n \n Avatars\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Badges\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Chips\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Dividers\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Icons\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Lists\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Tables\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Tooltips\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Typography\n \n
      • \n {/*end::3 Level*/}\n
      \n
      \n \n {/*end::2 Level*/}\n\n {/*begin::2 Level*/}\n \n \n \n \n \n \n Utils\n \n \n \n
      \n
        \n {/*begin::3 Level*/}\n
      • \n \n \n Click Away Listener\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Modal\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n No SSR\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Popover\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Popper\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Portal\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Transitions\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n useMediaQuery\n \n
      • \n {/*end::3 Level*/}\n
      \n
      \n \n {/*end::2 Level*/}\n\n {/*begin::2 Level*/}\n \n \n \n \n \n \n Layout\n \n \n \n
      \n
        \n {/*begin::3 Level*/}\n
      • \n \n \n Box\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Container\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Grid\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Grid list\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Hidden\n \n
      • \n {/*end::3 Level*/}\n\n
      \n
      \n \n {/*end::2 Level*/}\n
    \n
    \n \n {/*end::1 Level*/}\n\n {/*Mega submenu*/}\n {/*begin::1 Level*/}\n \n \n Bootstrap\n \n \n \n
    \n
      \n
    • \n

      \n \n A ... C\n \n

      \n
        \n {/*begin::3 Level*/}\n
      • \n \n Alerts\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Accordion\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Badge\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Breadcrumb\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Buttons\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Button Group\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Cards\n \n
      • \n {/*end::3 Level*/}\n
      \n
    • \n
    • \n
        \n

        \n \n C ... J\n \n

        \n {/*begin::3 Level*/}\n
      • \n \n Carousel\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Dropdowns\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Forms\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Input Group\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Images\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Figures\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Jumbotron\n \n
      • \n {/*end::3 Level*/}\n
      \n
    • \n
    • \n

      \n \n L ... P\n \n

      \n
        \n {/*begin::3 Level*/}\n
      • \n \n List group\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Modal\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Navs\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Navbar\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Overlays\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Pagination\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Popovers\n \n
      • \n {/*end::3 Level*/}\n
      \n
    • \n
    • \n

      \n \n P ... T\n \n

      \n
        \n {/*begin::3 Level*/}\n
      • \n \n Progress\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Spinners\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Table\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Tabs\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Tooltips\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n Toasts\n \n
      • \n {/*end::3 Level*/}\n
      \n
    • \n
    \n
    \n \n \n\n {/*Classic submenu*/}\n {/*begin::1 Level*/}\n \n \n Custom\n \n \n
    \n
      \n {/*begin::2 Level*/}\n \n \n \n eCommerce\n \n \n \n
      \n
        \n {/*begin::3 Level*/}\n
      • \n \n \n Customers\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Products\n \n
      • \n {/*end::3 Level*/}\n
      \n
      \n \n {/*end::2 Level*/}\n\n {/*begin::2 Level*/}\n
    • \n \n Layout Builder\n \n
    • \n {/*end::3 Level*/}\n\n {/*begin::2 Level*/}\n \n \n \n Error Pages\n \n \n \n
      \n
        \n {/*begin::3 Level*/}\n
      • \n \n \n Error 1\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Error 2\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Error 3\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Error 4\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Error 5\n \n
      • \n {/*end::3 Level*/}\n\n {/*begin::3 Level*/}\n
      • \n \n \n Error 6\n \n
      • \n {/*end::3 Level*/}\n
      \n
      \n \n {/*end::2 Level*/}\n\n
    \n
    \n \n {/*end::1 Level*/}\n
\n {/*end::Header Nav*/}\n ;\n}\n","import React, {useMemo} from \"react\";\nimport objectPath from \"object-path\";\nimport {Link} from \"react-router-dom\";\nimport {toAbsoluteUrl} from \"../../../../_helpers\";\nimport {useHtmlClassService} from \"../../../_core/MetronicLayout\";\nimport {HeaderMenu} from \"./HeaderMenu\";\n\nexport function HeaderMenuWrapper() {\n const uiService = useHtmlClassService();\n const layoutProps = useMemo(() => {\n return {\n config: uiService.config,\n ktMenuClasses: uiService.getClasses(\"header_menu\", true),\n rootArrowEnabled: objectPath.get(\n uiService.config,\n \"header.menu.self.root-arrow\"\n ),\n menuDesktopToggle: objectPath.get(uiService.config, \"header.menu.desktop.toggle\"),\n headerMenuAttributes: uiService.getAttributes(\"header_menu\"),\n headerSelfTheme: objectPath.get(uiService.config, \"header.self.theme\"),\n ulClasses: uiService.getClasses(\"header_menu_nav\", true),\n disabledAsideSelfDisplay:\n objectPath.get(uiService.config, \"aside.self.display\") === false\n };\n }, [uiService]);\n const getHeaderLogo = () => {\n let result = \"logo-light.png\";\n if (layoutProps.headerSelfTheme && layoutProps.headerSelfTheme !== \"dark\") {\n result = \"logo-dark.png\";\n }\n //Agrego para no romper el template pero que se vea el logo\n result = \"ministerio_de_educacion.png\";\n return toAbsoluteUrl(`/media/logos/${result}`);\n };\n\n return <>\n {/*begin::Header Menu Wrapper*/}\n
\n {layoutProps.disabledAsideSelfDisplay && (\n <>\n {/*begin::Header Logo*/}\n
\n \n \"logo\"\n \n
\n {/*end::Header Logo*/}\n \n )}\n {/*begin::Header Menu*/}\n \n {/*end::Header Menu*/}\n
\n {/*Header Menu Wrapper*/}\n \n}\n","import React, { forwardRef, useEffect, useState } from \"react\";\nimport clsx from \"clsx\";\nimport {isFragment} from \"react-is\";\n\nexport const CardHeaderIcon = forwardRef(({ className }, ref) => (\n \n));\n\nexport const CardHeaderTitle = forwardRef(({ className, ...props }, ref) => (\n // eslint-disable-next-line jsx-a11y/heading-has-content\n

\n));\n\nexport const CardHeaderToolbar = forwardRef(\n ({ children, className, ...props }, ref) => (\n
\n {children}\n
\n )\n);\n\nexport const CardHeader = forwardRef(\n (\n {\n children,\n icon,\n title,\n toolbar,\n className,\n sticky = false,\n labelRef,\n ...props\n },\n ref\n ) => {\n const [top, setTop] = useState(0);\n const [windowHeight, setWindowHeight] = useState(0);\n\n useEffect(() => {\n handleResize();\n\n function handleResize() {\n setWindowHeight(window.innerWidth);\n }\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n });\n\n useEffect(() => {\n // Skip if sticky is disabled or on initial render when we don't know about window height.\n if (!sticky || windowHeight === 0) {\n return;\n }\n\n const headerElement = document.querySelector(\".header\");\n const subheaderElement = document.querySelector(\".subheader\");\n const headerMobileElement = document.querySelector(\".header-mobile\");\n\n let nextMarginTop = 0;\n\n // mobile header\n if (window.getComputedStyle(headerElement).height === \"0px\") {\n nextMarginTop = headerMobileElement.offsetHeight;\n } else {\n // desktop header\n if (document.body.classList.contains(\"header-minimize-topbar\")) {\n // hardcoded minimized header height\n nextMarginTop = 60;\n } else {\n // normal fixed header\n if (document.body.classList.contains(\"header-fixed\")) {\n nextMarginTop += headerElement.offsetHeight;\n }\n\n if (document.body.classList.contains(\"subheader-fixed\")) {\n nextMarginTop += subheaderElement.offsetHeight;\n }\n }\n }\n\n setTop(nextMarginTop);\n }, [sticky, windowHeight]);\n\n return (\n \n {title != null && (\n
\n {icon}\n\n {/* Wrap string and fragments in CardHeaderTitle */\n typeof title === \"string\" || isFragment(title) ? (\n {title}\n ) : (\n title\n )}\n
\n )}\n\n {toolbar}\n {children}\n \n );\n }\n);\n\nexport const CardBody = forwardRef(\n ({ fit, fluid, className, ...props }, ref) => (\n \n )\n);\n\nexport const CardFooter = forwardRef(({ className, ...props }, ref) => (\n
\n));\n\nexport const Card = forwardRef(({ fluidHeight, className, ...props }, ref) => (\n \n));\n\n// Set display names for debugging.\nif (process.env.NODE_ENV !== \"production\") {\n Card.displayName = \"Card\";\n\n CardHeader.displayName = \"CardHeader\";\n CardHeaderIcon.displayName = \"CardHeaderIcon\";\n CardHeaderTitle.displayName = \"CardHeaderTitle\";\n CardHeaderToolbar.displayName = \"CardHeaderToolbar\";\n\n CardBody.displayName = \"CardBody\";\n CardFooter.displayName = \"CardFooter\";\n}\n","import React from \"react\";\nimport {withRouter} from \"react-router-dom\";\nimport {ProgressBar} from \"react-bootstrap\";\n\n// TODO: Should be rewrited to pure function\nclass AnimateLoading extends React.Component {\n animateTimeout;\n stopAnimateTimeout;\n state = {\n width: 0,\n routeChanged: false\n };\n\n componentDidUpdate(nextProps) {\n if (this.props.location.pathname !== nextProps.location.pathname) {\n this.animate();\n this.scrollToTop();\n }\n }\n\n scrollToTop() {\n const scrollToTopBtn = document.getElementById(\"kt_scrolltop\");\n if (scrollToTopBtn) {\n scrollToTopBtn.click();\n }\n }\n\n animate() {\n this.animateTimeout = setTimeout(() => {\n if (this.state.width <= 100) {\n this.setState({ width: this.state.width + 10 });\n this.animate();\n } else {\n this.stopAnimate();\n }\n }, 30);\n }\n stopAnimate() {\n clearTimeout(this.animateInterval);\n this.stopAnimateTimeout = setTimeout(() => {\n this.setState({ width: 0 });\n }, 300);\n }\n componentWillUnmount() {\n if (this.stopAnimateTimeout) {\n clearTimeout(this.stopAnimateTimeout);\n }\n if (this.animateTimeout) {\n clearTimeout(this.animateTimeout);\n }\n }\n render() {\n return (\n \n {this.state.width > 0 && (\n \n )}\n
\n );\n }\n}\n\nexport default withRouter(AnimateLoading);\n","import React, { forwardRef } from \"react\";\nimport clsx from \"clsx\";\nimport SVG from \"react-inlinesvg\";\nimport {toAbsoluteUrl} from \"../../_helpers\";\n\nexport const Notice = forwardRef(\n (\n {\n icon,\n svg,\n iconRef,\n textRef,\n iconWrapperRef,\n className,\n children,\n ...props\n },\n ref\n ) => {\n return (\n \n
\n \n \n \n
\n\n
\n {children}\n
\n \n );\n }\n);\n\n// Set display name for debugging.\nif (process.env.NODE_ENV !== \"production\") {\n Notice.displayName = \"Notice\";\n}\n","import React, { useMemo } from \"react\";\nimport objectPath from \"object-path\";\nimport { useHtmlClassService } from \"../../_core/MetronicLayout\";\nimport { Topbar } from \"./Topbar\";\nimport { HeaderMenuWrapper } from \"./header-menu/HeaderMenuWrapper\";\nimport { AnimateLoading } from \"../../../_partials/controls\";\nimport { Link } from \"react-router-dom\";\nimport { toAbsoluteUrl } from \"../../../_helpers\";\n\nexport function Header({ sinUser }) {\n const uiService = useHtmlClassService();\n\n const layoutProps = useMemo(() => {\n return {\n headerClasses: uiService.getClasses(\"header\", true),\n headerAttributes: uiService.getAttributes(\"header\"),\n headerContainerClasses: uiService.getClasses(\"header_container\", true),\n headerSelfTheme: objectPath.get(uiService.config, \"header.self.theme\"),\n menuHeaderDisplay: objectPath.get(\n uiService.config,\n \"header.menu.self.display\"\n )\n };\n }, [uiService]);\n\n const getHeaderLogo = () => {\n let result = \"logo-light.png\";\n if (layoutProps.headerSelfTheme && layoutProps.headerSelfTheme !== \"dark\") {\n result = \"logo-dark.png\";\n }\n //Agrego para no romper el template pero que se vea el logo\n result = \"MEC-EscudoCorrientes.svg\";\n return toAbsoluteUrl(`/media/logos/${result}`);\n };\n\n return (\n <>\n {/*begin::Header*/}\n \n {/*begin::Container*/}\n
\n \n {/*begin::Header Menu Wrapper*/}\n {layoutProps.menuHeaderDisplay && }\n {/* {!layoutProps.menuHeaderDisplay &&
} */}\n {/*end::Header Menu Wrapper*/}\n\n {/* Agrego el logo en el HEADER */}\n
\n {/*begin::Header Logo*/}\n
\n \n \"logo\"\n \n
\n {/*end::Header Logo*/}\n
\n\n {/*begin::Topbar*/}\n {!(!!sinUser) && (\n \n )}\n {/*end::Topbar*/}\n
\n {/*end::Container*/}\n
\n {/*end::Header*/}\n \n );\n}\n","import React, { useMemo } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport objectPath from \"object-path\";\n//import SVG from \"react-inlinesvg\";\n//import {toAbsoluteUrl} from \"../../../_helpers\";\nimport { useHtmlClassService } from \"../../_core/MetronicLayout\";\nimport { UserProfileDropdown } from \"../extras/dropdowns/UserProfileDropdown\";\n\nexport function HeaderMobile({sinUser}) {\n const uiService = useHtmlClassService();\n\n const layoutProps = useMemo(() => {\n return {\n headerLogo: uiService.getStickyLogo(),\n asideDisplay: objectPath.get(uiService.config, \"aside.self.display\"),\n headerMenuSelfDisplay:\n objectPath.get(uiService.config, \"header.menu.self.display\") === true,\n headerMobileCssClasses: uiService.getClasses(\"header_mobile\", true),\n headerMobileAttributes: uiService.getAttributes(\"header_mobile\")\n };\n }, [uiService]);\n\n return (\n <>\n {/*begin::Header Mobile*/}\n \n {/*begin::Logo*/}\n \n \"logo\"\n \n {/*end::Logo*/}\n\n {/*begin::Toolbar*/}\n
\n {layoutProps.asideDisplay && (\n <>\n {/*begin::Aside Mobile Toggle*/}\n \n {/*end::Aside Mobile Toggle*/}\n \n )}\n\n {layoutProps.headerMenuSelfDisplay && (\n <>\n {/*begin::Header Menu Mobile Toggle*/}\n \n {/*end::Header Menu Mobile Toggle*/}\n \n )}\n\n {/*begin::Topbar Mobile Toggle*/}\n {/* \n \n \n \n */}\n {/*end::Topbar Mobile Toggle*/}\n {!(!!sinUser) && (\n \n )}\n
\n {/*end::Toolbar*/}\n \n {/*end::Header Mobile*/}\n \n );\n}\n","import React, {useMemo} from \"react\";\nimport {useHtmlClassService} from \"../../_core/MetronicLayout\";\n\nexport function Footer() {\n const today = new Date().getFullYear();\n const uiService = useHtmlClassService();\n\n const layoutProps = useMemo(() => {\n return {\n footerClasses: uiService.getClasses(\"footer\", true),\n footerContainerClasses: uiService.getClasses(\"footer_container\", true)\n };\n }, [uiService]);\n\n return (\n \n \n
\n {today.toString()} ©{\" \"}\n \n Ministerio de Educación Corrientes\n \n
\n
\n \n Acerca de\n \n {/* \n Team\n */}\n \n Contacto\n \n
\n \n \n );\n}\n","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./../../components/util.js\";\n\nvar KTLayoutHeader = function() {\n // Private properties\n var _element;\n var _elementForMobile;\n var _object;\n\n\t// Private functions\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// Webpack support\nif (typeof module !== 'undefined') {\n\t// module.exports = KTLayoutHeader;\n}\n\nexport default KTLayoutHeader;","/* eslint-disable */\n\"use strict\";\n\nimport KTOffcanvas from \"./../../components/offcanvas.js\";\nimport KTMenu from \"./../../components/menu.js\";\nimport { KTUtil } from \"./../../components/util.js\";\n\nvar KTLayoutHeaderMenu = function() {\n // Private properties\n\tvar _menuElement;\n var _menuObject;\n var _offcanvasElement;\n var _offcanvasObject;\n\n // Private functions\n\tvar _init = function() {\n\t\t_offcanvasObject = new KTOffcanvas(_offcanvasElement, {\n\t\t\toverlay: true,\n\t\t\tbaseClass: 'header-menu-wrapper',\n\t\t\tcloseBy: 'kt_header_menu_mobile_close_btn',\n\t\t\ttoggleBy: {\n\t\t\t\ttarget: 'kt_header_mobile_toggle',\n\t\t\t\tstate: 'mobile-toggle-active'\n\t\t\t}\n\t\t});\n\t\t\n\t\t_menuObject = new KTMenu(_menuElement, {\n\t\t\tsubmenu: {\n\t\t\t\tdesktop: 'dropdown',\n\t\t\t\ttablet: 'accordion',\n\t\t\t\tmobile: 'accordion'\n\t\t\t},\n\t\t\taccordion: {\n\t\t\t\tslideSpeed: 200, // accordion toggle slide speed in milliseconds\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 _menuObject.on('linkClick', function(menu) {\n if (KTUtil.isBreakpointDown('lg')) { // Tablet and mobile mode\n _offcanvasObject.hide(); // Hide offcanvas after general link click\n }\n });\n\t}\n\n // Public methods\n\treturn {\n init: function(menuId, offcanvasId) {\n _menuElement = KTUtil.getById(menuId);\n _offcanvasElement = KTUtil.getById(offcanvasId);\n\n if (!_menuElement) {\n return;\n }\n\n // Initialize menu\n _init();\n\t\t},\n\n\t\tgetMenuElement: function() {\n\t\t\treturn _menuElement;\n\t\t},\n\n getOffcanvasElement: function() {\n\t\t\treturn _offcanvasElement;\n\t\t},\n\n getMenu: function() {\n\t\t\treturn _menuObject;\n\t\t},\n\n\t\tpauseDropdownHover: function(time) {\n\t\t\tif (_menuObject) {\n\t\t\t\t_menuObject.pauseDropdownHover(time);\n\t\t\t}\n\t\t},\n\n getOffcanvas: function() {\n\t\t\treturn _offcanvasObject;\n\t\t},\n\n\t\tcloseMobileOffcanvas: function() {\n\t\t\tif (_menuObject && KTUtil.isMobileDevice()) {\n\t\t\t\t_offcanvasObject.hide();\n\t\t\t}\n\t\t}\n\t};\n}();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n\t// module.exports = KTLayoutHeaderMenu;\n}\n\nexport default KTLayoutHeaderMenu;","/* eslint-disable */\n\"use strict\";\n\nimport KTToggle from \"./../../components/toggle.js\";\nimport { KTUtil } from \"./../../components/util.js\";\n\nvar KTLayoutHeaderTopbar = function() {\n // Private properties\n\tvar _toggleElement;\n var _toggleObject;\n\n // Private functions\n var _init = function() {\n\t\t\t_toggleObject = new KTToggle(_toggleElement, KTUtil.getBody(), {\n\t\t\t\ttargetState: 'topbar-mobile-on',\n\t\t\t\ttoggleState: 'active',\n\t\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// Webpack support\nif (typeof module !== 'undefined') {\n\t// module.exports = KTLayoutHeaderTopbar;\n}\n\nexport default KTLayoutHeaderTopbar;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./../../components/util.js\";\n\nvar KTLayoutBrand = 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 getElement: function() {\n return _element;\n },\n\n getHeight: function() {\n return _getHeight();\n }\n\t};\n}();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n\t// module.exports = KTLayoutBrand;\n}\n\nexport default KTLayoutBrand;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./../../components/util.js\";\nimport KTOffcanvas from \"./../../components/offcanvas.js\";\n\nvar KTLayoutAside = function() {\n // Private properties\n var _body;\n var _element;\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: {\n\t\t\t\ttarget: 'kt_aside_mobile_toggle',\n\t\t\t\tstate: 'mobile-toggle-active'\n\t\t\t}\n\t\t});\n\t}\n\n // Public methods\n\treturn {\n\t\tinit: function(id) {\n _element = KTUtil.getById(id);\n _body = KTUtil.getBody();\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n },\n\n getElement: function() {\n return _element;\n },\n\n getOffcanvas: function() {\n return _offcanvasObject;\n },\n\n isFixed: function() {\n return KTUtil.hasClass(_body, 'aside-fixed');\n },\n\n isMinimized: function() {\n return (KTUtil.hasClass(_body, 'aside-fixed') && KTUtil.hasClass(_body, 'aside-minimize'));\n },\n\n isHoverable: function() {\n return (KTUtil.hasClass(_body, 'aside-fixed') && KTUtil.hasClass(_body, 'aside-minimize-hoverable'));\n }\n\t};\n}();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n\t// module.exports = KTLayoutAside;\n}\n\nexport default KTLayoutAside;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./../../components/util.js\";\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// Webpack support\nif (typeof module !== 'undefined') {\n\t// module.exports = KTLayoutSubheader;\n}\n\nexport default KTLayoutSubheader;","/* eslint-disable */\n\"use strict\";\n\nimport KTLayoutHeader from \"./header.js\";\nimport KTCard from \"./../../components/card.js\";\nimport { KTUtil } from \"./../../components/util.js\";\nimport KTLayoutSubheader from \"./subheader.js\";\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// Webpack support\nif (typeof module !== 'undefined') {\n\t// module.exports = KTLayoutStickyCard;\n}\n\nexport default KTLayoutStickyCard;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./../../components/util.js\";\nimport KTLayoutBrand from \"./brand.js\";\nimport KTMenu from \"./../../components/menu.js\";\nimport KTLayoutAside from \"./aside.js\";\n\nvar KTLayoutAsideMenu = function() {\n // Private properties\n var _body;\n var _element;\n var _menuObject;\n\n\t// Initialize\n\tvar _init = function() {\n\t\tvar menuDesktopMode = (KTUtil.attr(_element, 'data-menu-dropdown') === '1' ? 'dropdown' : 'accordion');\n var scroll;\n\n\t\tif (KTUtil.attr(_element, 'data-menu-scroll') === '1') {\n\t\t\tscroll = {\n\t\t\t\trememberPosition: true, // remember position on page reload\n\t\t\t\theight: function() { // calculate available scrollable area height\n\t\t\t\t\tvar height = parseInt(KTUtil.getViewPort().height);\n\n\t\t\t\t\tif (KTUtil.isBreakpointUp('lg')) {\n\t\t\t\t\t\theight = height - KTLayoutBrand.getHeight();\n\t\t\t\t\t}\n\n\t\t\t\t\theight = height - (parseInt(KTUtil.css(_element, 'marginBottom')) + parseInt(KTUtil.css(_element, 'marginTop')));\n\n\t\t\t\t\treturn height;\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t_menuObject = new KTMenu(_element, {\n\t\t\t// Vertical scroll\n\t\t\tscroll: scroll,\n\n\t\t\t// Submenu setup\n\t\t\tsubmenu: {\n\t\t\t\tdesktop: menuDesktopMode,\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\t}\n\n var _initHover = function() {\n // Handle Minimized Aside Hover\n\t\tif (KTUtil.hasClass(_body, 'aside-fixed') && KTUtil.hasClass(_body, 'aside-minimize-hoverable')) {\n\t\t\tvar insideTm;\n\t\t\tvar outsideTm;\n\n // Handle Aside Hover Mode\n\t\t\tKTUtil.addEvent(_element, 'mouseenter', function(e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif (KTUtil.isBreakpointUp('lg') === false) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (outsideTm) {\n\t\t\t\t\tclearTimeout(outsideTm);\n\t\t\t\t\toutsideTm = null;\n\t\t\t\t}\n\n if (insideTm) {\n\t\t\t\t\tclearTimeout(insideTm);\n\t\t\t\t\tinsideTm = null;\n\t\t\t\t}\n\n\t\t\t\tinsideTm = setTimeout(function() {\n\t\t\t\t\tif (KTUtil.hasClass(_body, 'aside-minimize') && KTUtil.isBreakpointUp('lg')) {\n\t\t\t\t\t\t// Hover class\n\t\t\t\t\t\tKTUtil.addClass(_body, 'aside-minimize-hover');\n\n\t\t\t\t\t\tKTLayoutAsideMenu.getMenu().scrollUpdate();\n\t\t\t\t\t\tKTLayoutAsideMenu.getMenu().scrollTop();\n\t\t\t\t\t}\n\t\t\t\t}, 50);\n\t\t\t});\n\n\t\t\tKTUtil.addEvent(KTLayoutAside.getElement(), 'mouseleave', function(e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif (KTUtil.isBreakpointUp('lg') === false) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (insideTm) {\n\t\t\t\t\tclearTimeout(insideTm);\n\t\t\t\t\tinsideTm = null;\n\t\t\t\t}\n\n if (outsideTm) {\n\t\t\t\t\tclearTimeout(outsideTm);\n\t\t\t\t\toutsideTm = null;\n\t\t\t\t}\n\n\t\t\t\toutsideTm = setTimeout(function() {\n\t\t\t\t if (KTUtil.hasClass(_body, 'aside-minimize-hover') && KTUtil.isBreakpointUp('lg')) {\n\t\t\t\t\t KTUtil.removeClass(_body, 'aside-minimize-hover');\n\n\t\t\t\t\t\t// Hover class\n KTLayoutAsideMenu.getMenu().scrollUpdate();\n\t\t\t\t\t\tKTLayoutAsideMenu.getMenu().scrollTop();\n\t\t\t\t\t}\n\t\t\t\t}, 100);\n\t\t\t});\n\t\t}\n\t}\n\n // Public methods\n\treturn {\n\t\tinit: function(id) {\n _body = KTUtil.getBody();\n _element = KTUtil.getById(id);\n\n if (!_element) {\n return;\n }\n\n // Initialize menu\n _init();\n _initHover();\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// Webpack support\nif (typeof module !== 'undefined') {\n\t// module.exports = KTLayoutAsideMenu;\n}\n\nexport default KTLayoutAsideMenu;","/* eslint-disable */\n\"use strict\";\n\nimport KTToggle from \"./../../components/toggle.js\";\nimport KTLayoutStickyCard from \"./sticky-card.js\";\nimport KTLayoutHeaderMenu from \"./header-menu.js\";\nimport KTLayoutAsideMenu from \"./aside-menu.js\";\nimport { KTCookie } from \"./../../components/cookie.js\";\nimport { KTUtil } from \"./../../components/util.js\";\n\nvar KTLayoutAsideToggle = function() {\n // Private properties\n var _body;\n var _element;\n var _toggleObject;\n\n\t// Initialize\n\tvar _init = function() {\n\t\t_toggleObject = new KTToggle(_element, _body, {\n\t\t\ttargetState: 'aside-minimize',\n\t\t\ttoggleState: 'active'\n\t\t});\n\n\t\t_toggleObject.on('toggle', function(toggle) {\n // Update sticky card\n if (typeof KTLayoutStickyCard !== 'undefined') {\n KTLayoutStickyCard.update();\n }\n\n // Pause header menu dropdowns\n if (typeof KTLayoutHeaderMenu !== 'undefined') {\n KTLayoutHeaderMenu.pauseDropdownHover(800);\n }\n\n // Pause aside menu dropdowns\n if (typeof KTLayoutAsideMenu !== 'undefined') {\n KTLayoutAsideMenu.pauseDropdownHover(800);\n }\n\n // Remember state in cookie\n\t\t\tKTCookie.setCookie('kt_aside_toggle_state', toggle.getState());\n\t\t\t// to set default minimized left aside use this cookie value in your\n\t\t\t// server side code and add \"kt-primary--minimize aside-minimize\" classes to\n\t\t\t// the body tag in order to initialize the minimized left aside mode during page loading.\n\t\t});\n\n\t\t_toggleObject.on('beforeToggle', function(toggle) {\n\t\t\tif (KTUtil.hasClass(_body, 'aside-minimize') === false && KTUtil.hasClass(_body, 'aside-minimize-hover')) {\n\t\t\t\tKTUtil.removeClass(_body, 'aside-minimize-hover');\n\t\t\t}\n\t\t});\n\t}\n\n // Public methods\n\treturn {\n\t\tinit: function(id) {\n _element = KTUtil.getById(id);\n _body = KTUtil.getBody();\n\n if (!_element) {\n return;\n }\n\n // Initialize\n _init();\n\t\t},\n\n getElement: function() {\n return _element;\n },\n\n getToggle: function() {\n\t\t\treturn _toggleObject;\n\t\t},\n\n\t\tonToggle: function(handler) {\n\t\t\tif (typeof _toggleObject.element !== 'undefined') {\n\t\t\t\t_toggleObject.on('toggle', handler);\n\t\t\t}\n\t\t}\n\t};\n}();\n\n// Webpack support\nif (typeof module !== 'undefined') {\n\t// module.exports = KTLayoutAsideToggle;\n}\n\nexport default KTLayoutAsideToggle;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./../../components/util.js\";\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// Webpack support\nif (typeof module !== 'undefined') {\n\t// module.exports = KTLayoutFooter;\n}\n\nexport default KTLayoutFooter;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./../../components/util.js\";\nimport KTLayoutHeader from \"./header.js\";\nimport KTLayoutSubheader from \"./subheader.js\";\nimport KTLayoutFooter from \"./footer.js\";\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// Webpack support\nif (typeof module !== 'undefined') {\n\t// module.exports = KTLayoutContent;\n}\n\nexport default KTLayoutContent;","/* eslint-disable */\n\"use strict\";\n\nimport KTScrolltop from \"./../../components/scrolltop.js\";\nimport { KTUtil } from \"./../../components/util.js\";\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// Webpack support\nif (typeof module !== 'undefined') {\n\t// module.exports = KTLayoutScrolltop;\n}\n\nexport default KTLayoutScrolltop;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./../../components/util.js\";\nimport KTLayoutContent from \"./content.js\";\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// Webpack support\nif (typeof module !== 'undefined') {\n\t// module.exports = KTLayoutStretchedCard;\n}\n\nexport default KTLayoutStretchedCard;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./../../components/util.js\";\nimport KTOffcanvas from \"./../../components/offcanvas.js\";\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// Webpack support\nif (typeof module !== 'undefined') {\n\t// module.exports = KTLayoutQuickPanel;\n}\n\nexport default KTLayoutQuickPanel;","/* eslint-disable */\n\"use strict\";\n\nimport { KTUtil } from \"./../../components/util.js\";\nimport KTOffcanvas from \"./../../components/offcanvas.js\";\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// Webpack support\nif (typeof module !== 'undefined') {\n\t// module.exports = KTLayoutQuickUser;\n}\n\nexport default KTLayoutQuickUser;","/* eslint-disable no-restricted-imports */\n/* eslint-disable no-script-url,jsx-a11y/anchor-is-valid */\nimport React, {forwardRef} from \"react\";\nimport {OverlayTrigger, Tooltip} from \"react-bootstrap\";\nimport Dropdown from \"react-bootstrap/Dropdown\";\nimport SVG from \"react-inlinesvg\";\nimport {DropdownMenu1} from \"../../../../_partials/dropdowns\";\nimport {toAbsoluteUrl} from \"../../../../_helpers\";\n\nconst QuickActionsDropdownToggle = forwardRef((props, ref) => {\n return (\n {\n e.preventDefault();\n props.onClick(e);\n }}\n id=\"kt_subheader_quick_actions\"\n className=\"btn btn-sm btn-clean btn-icon\"\n >\n {\" \"}\n \n \n \n \n \n \n );\n});\n\nexport function QuickActions() {\n return (\n <>\n Quick actions}\n >\n \n \n\n \n \n \n \n \n \n );\n}\n","import React, { createContext, useState, useContext } from \"react\";\n\nexport function getBreadcrumbsAndTitle(menuId, pathName) {\n const result = {\n breadcrumbs: [],\n title: \"\",\n };\n\n const menu = document.getElementById(menuId);\n if (!menu) {\n return result;\n }\n\n const activeLinksArray = Array.from(\n menu.getElementsByClassName(\"active\") || []\n );\n const activeLinks = activeLinksArray.filter((el) => el.tagName === \"A\");\n if (!activeLinks) {\n return result;\n }\n\n activeLinks.forEach((link) => {\n const titleSpans = link.getElementsByClassName(\"menu-text\");\n if (titleSpans) {\n const titleSpan = Array.from(titleSpans).find(\n (t) => t.innerHTML && t.innerHTML.trim().length > 0\n );\n if (titleSpan) {\n result.breadcrumbs.push({\n pathname: link.pathname,\n title: titleSpan.innerHTML,\n });\n }\n }\n });\n result.title = getTitle(result.breadcrumbs, pathName);\n return result;\n}\n\nexport function getTitle(breadCrumbs, pathname) {\n if (!breadCrumbs || !pathname) {\n return \"\";\n }\n\n const length = breadCrumbs.length;\n if (!length) {\n return \"\";\n }\n\n return breadCrumbs[length - 1].title;\n}\n\nconst SubheaderContext = createContext();\n\nexport function useSubheader() {\n return useContext(SubheaderContext);\n}\n\nexport const SubheaderConsumer = SubheaderContext.Consumer;\n\nexport function MetronicSubheaderProvider({ children }) {\n const [title, setTitle] = useState(\"\");\n const [breadcrumbs, setBreadcrumbs] = useState([]);\n const value = { title, setTitle, breadcrumbs, setBreadcrumbs };\n return (\n \n {children}\n \n );\n}\n","import React, {createContext, useContext, useState, useEffect} from \"react\";\n\nconst MetronicSplashScreenContext = createContext();\n\nexport function MetronicSplashScreenProvider({ children }) {\n const [count, setCount] = useState(0);\n let visible = count > 0;\n\n useEffect(() => {\n const splashScreen = document.getElementById(\"splash-screen\");\n\n // Show SplashScreen\n if (splashScreen && visible) {\n splashScreen.classList.remove(\"hidden\");\n\n return () => {\n splashScreen.classList.add(\"hidden\");\n };\n }\n\n // Hide SplashScreen\n let timeout;\n if (splashScreen && !visible) {\n timeout = setTimeout(() => {\n splashScreen.classList.add(\"hidden\");\n }, 3000);\n }\n\n return () => {\n clearTimeout(timeout);\n };\n }, [visible]);\n\n return (\n \n {children}\n \n );\n}\n\nexport function LayoutSplashScreen({ visible = true }) {\n // Everything are ready - remove splashscreen\n const setCount = useContext(MetronicSplashScreenContext);\n\n useEffect(() => {\n if (!visible) {\n return;\n }\n\n setCount(prev => {\n return prev + 1;\n });\n\n return () => {\n setCount(prev => {\n return prev - 1;\n });\n };\n }, [setCount, visible]);\n\n return null;\n}\n","import React from \"react\";\nimport {createMuiTheme, ThemeProvider} from \"@material-ui/core\";\n\nconst theme = createMuiTheme(\n /**\n * @see https://material-ui.com/customization/themes/#theme-configuration-variables\n */\n {\n // direction: \"rtl\",\n typography: {\n fontFamily: [\"Poppins\"].join(\",\")\n },\n\n palette: {\n primary: {\n // light: will be calculated from palette.primary.main,\n main: \"#17c191\",\n // dark: will be calculated from palette.primary.main,\n // contrastText: \"#fff\" //will be calculated to contrast with palette.primary.main\n },\n secondary: {\n // light: will be calculated from palette.primary.main,\n main: \"#3783e7\",\n // dark: will be calculated from palette.primary.main,\n // contrastText: \"#fff\" //will be calculated to contrast with palette.primary.main\n },\n error: {\n // light: will be calculated from palette.primary.main,\n main: \"#f018a6\",\n // dark: will be calculated from palette.primary.main,\n // contrastText: \"#fff\" //will be calculated to contrast with palette.primary.main\n }\n },\n\n /**\n * @see https://material-ui.com/customization/globals/#default-props\n */\n props: {\n // Name of the component ⚛️\n MuiButtonBase: {\n // The properties to apply\n disableRipple: false // No more ripple, on the whole application 💣!\n },\n\n // Set default elevation to 1 for popovers.\n MuiPopover: {\n elevation: 1\n }\n }\n }\n);\n\nexport function MaterialThemeProvider(props) {\n const { children } = props;\n\n return {children};\n}\n","import React,{useMemo} from 'react';\r\n\r\n//LAYOUT UTILS\r\nimport objectPath from \"object-path\";\r\n// LayoutContext\r\nimport { useHtmlClassService } from \"../../_metronic/layout/_core/MetronicLayout\";\r\n// Import Layout components\r\nimport { Header } from \"../../_metronic/layout/components/header/Header\";\r\nimport { HeaderMobile } from \"../../_metronic/layout/components/header-mobile/HeaderMobile\";\r\n// import {Aside} from \"./aside/Aside\";\r\nimport { Footer } from \"../../_metronic/layout/components/footer/Footer\";\r\n\r\nconst Layout = ({ children }) => {\r\n\r\n const uiService = useHtmlClassService();\r\n // Layout settings (cssClasses/cssAttributes)\r\n const layoutProps = useMemo(() => {\r\n return {\r\n layoutConfig: uiService.config,\r\n selfLayout: objectPath.get(uiService.config, \"self.layout\"),\r\n asideDisplay: objectPath.get(uiService.config, \"aside.self.display\"),\r\n subheaderDisplay: objectPath.get(uiService.config, \"subheader.display\"),\r\n stickyToolbarDisplay: objectPath.get(uiService.config, \"extras.toolbar.display\"),\r\n desktopHeaderDisplay: objectPath.get(\r\n uiService.config,\r\n \"header.self.fixed.desktop\"\r\n ),\r\n contentCssClasses: uiService.getClasses(\"content\", true),\r\n contentContainerClasses: uiService.getClasses(\"content_container\", true),\r\n contentExtended: objectPath.get(uiService.config, \"content.extended\")\r\n };\r\n }, [uiService]);\r\n return (\r\n <>\r\n \r\n
\r\n {/*begin::Page*/}\r\n
\r\n {/* {layoutProps.asideDisplay && (
\r\n {/*end::Page*/}\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Layout;","import React from 'react';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport CheckIcon from '@material-ui/icons/Check';\r\nimport { useSnackbar } from 'notistack';\r\n\r\nconst SnackBarCustom = ({ type, message, agree }) => {\r\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n function close(key) {\r\n if (agree) {\r\n agree();\r\n };\r\n closeSnackbar(key);\r\n };\r\n return enqueueSnackbar(message, {\r\n variant: type,\r\n autoHideDuration: agree ? 10000 : 4000,\r\n onClose: agree ? agree : null,\r\n anchorOrigin: { vertical: 'bottom', horizontal: 'right' },\r\n action: key => (\r\n close(key)} >\r\n {agree ?\r\n \r\n :\r\n \r\n }\r\n \r\n )\r\n })\r\n}\r\n\r\nexport default SnackBarCustom;\r\n\r\n/*\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport ErrorIcon from '@material-ui/icons/Error';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport { amber, green } from '@material-ui/core/colors';\r\nimport WarningIcon from '@material-ui/icons/Warning';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\n\r\nconst variantIcon = {\r\n success: CheckCircleIcon,\r\n warning: WarningIcon,\r\n error: ErrorIcon,\r\n info: InfoIcon,\r\n};\r\nconst useStyles1 = makeStyles(theme => ({\r\n success: {\r\n backgroundColor: green[600],\r\n },\r\n error: {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n info: {\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n warning: {\r\n backgroundColor: amber[700],\r\n },\r\n icon: {\r\n fontSize: 20,\r\n },\r\n iconVariant: {\r\n opacity: 0.9,\r\n marginRight: theme.spacing(1),\r\n },\r\n message: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n}));\r\n const classes = useStyles1();\r\n const Icon = variantIcon[tipo];\r\n(\r\n \r\n \r\n \r\n {mensaje}\r\n \r\n }\r\n action={[\r\n \r\n \r\n ,\r\n ]}\r\n />\r\n \r\n )\r\n\r\n*/","import React, { useState } from 'react';\r\nimport { Document, Page } from 'react-pdf/dist/esm/entry.webpack';\r\nimport { IconButton, Button, Dialog, DialogActions, DialogContent } from '@material-ui/core';\r\nimport ArrowBackIosOutlinedIcon from '@material-ui/icons/ArrowBackIosOutlined';\r\nimport ArrowForwardIosOutlinedIcon from '@material-ui/icons/ArrowForwardIosOutlined';\r\n\r\nconst ReadPDF = ({ pdf, open, close }) => {\r\n const [numPages, setNumPages] = useState(null);\r\n const [pageNumber, setPageNumber] = useState(1);\r\n\r\n function onDocumentLoadSuccess({ numPages }) {\r\n setNumPages(numPages);\r\n };\r\n const previousPage = () => {\r\n if (pageNumber > 1) {\r\n setPageNumber(pageNumber - 1);\r\n };\r\n };\r\n\r\n const nextPAge = () => {\r\n if (numPages > pageNumber) {\r\n setPageNumber(pageNumber + 1);\r\n };\r\n };\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n 1)}>\r\n \r\n \r\n Página {pageNumber} de {numPages}\r\n < IconButton className=\"ml-5\" onClick={nextPAge} disabled={!(numPages > pageNumber)} >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ReadPDF;","import React, { useState } from 'react';\r\nimport ReadPDF from '../../../../Comun/Buttons/ReadPDF';\r\n\r\n//ICONS\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport CloudDownloadOutlinedIcon from '@material-ui/icons/CloudDownloadOutlined';\r\nimport DescriptionOutlinedIcon from '@material-ui/icons/DescriptionOutlined';\r\nimport ErrorIcon from '@material-ui/icons/Error';\r\n\r\n//MATERIAL UI CARD\r\nimport { Card, CardContent, CardHeader, Button, makeStyles } from \"@material-ui/core\";\r\n\r\n\r\nconst useStyles = makeStyles({\r\n //gestion 35aa47\r\n //inscripciones 1BC5BD\r\n cardTitle: {\r\n background: '#1BC5BD',\r\n textAlign: 'center',\r\n border: 0,\r\n borderRadius: 3,\r\n //boxShadow: '0 3px 5px 2px rgba(255, 105, 135, .3)',\r\n color: 'white',\r\n height: 48,\r\n padding: '0px',\r\n },\r\n onlyTitle: {\r\n textAlign: 'center',\r\n color: '#1BC5BD',\r\n },\r\n buttonUI: {\r\n color: \"#1BC5BD\",\r\n border: '0px solid #1BC5BD',\r\n borderRadius: 4,\r\n fontSize: 16,\r\n margin: '0px 5px 0px 5px'\r\n },\r\n buttonUI2: {\r\n color: \"#3783e7\",\r\n border: '0px solid #3783e7',\r\n borderRadius: 4,\r\n fontSize: 16\r\n },\r\n text: {\r\n fontSize: 16\r\n }\r\n});\r\n\r\nconst Certificate = ({ item, isPrivate }) => {\r\n const { certificadoId } = item;\r\n const urlPDF = `${process.env.REACT_APP_API_URL}/Certificado/Download?certificadoId=${certificadoId}`;\r\n //CONSTANTE PARA LOS ESTILOS\r\n const classes = useStyles();\r\n\r\n const [viewPDF, setViewPDF] = useState(false);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {!isPrivate &&\r\n

{item.nombreCompleto}

\r\n }\r\n

{item.escuela}

\r\n

CUE: {item.cue}

\r\n

Ciclo Lectivo: {item.cicloLectivo}

\r\n
{item.statusId === 1 ? : } {item.status}
\r\n
\r\n \r\n {item.statusId !== 4 && (\r\n \r\n \r\n \r\n )}\r\n
\r\n {/*\r\n <>\r\n
{item.status}
\r\n
\r\n \r\n
\r\n \r\n */}\r\n
\r\n
\r\n {viewPDF && setViewPDF(false)} />}\r\n
\r\n )\r\n}\r\n\r\nexport default Certificate;","import React from 'react'\r\nimport { Link } from 'react-router-dom';\r\n\r\n//Para las autoridades que requieran información de firma digital\r\n\r\nconst HelpLinks = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Información sobre la firma digital
\r\n
\r\n )\r\n}\r\n\r\nexport default HelpLinks;","const API_BASE_URL=process.env.REACT_APP_API_URL;\r\n\r\nexport const API_URL_CERTIFICATEByDNI=`${API_BASE_URL}/Certificado/GetByDNIAsync?dni=`;\r\nexport const API_URL_CERTIFICATEByID=`${API_BASE_URL}/Certificado?documentoId=`;\r\nexport const API_URL_CERTIFICADO_DOWNLOAD=`${API_BASE_URL}/Certificado/Download?certificadoId=`;","import axios from 'axios';\r\nimport { API_URL_CERTIFICATEByDNI, API_URL_CERTIFICATEByID, API_URL_CERTIFICADO_DOWNLOAD } from '../config';\r\n\r\n/*\r\nstatusId:\r\n1 - PDF firmado digitalmente\r\n2 - PDF (todavía no se firmó)\r\n3 - No hay anda registrado para ese DNI\r\n*/\r\n\r\n\r\n//ONLY CERTIFICATE (1) FOR certificadoId\r\nexport async function getCertificateDetail({ id, type }) {\r\n const url = `${type === \"DNI\" ? API_URL_CERTIFICATEByDNI : API_URL_CERTIFICATEByID}${id}`;\r\n const result = await axios.get(url);\r\n return result.data;\r\n};\r\n\r\n//DOWNLOAD CERTIFICATE BY ID\r\nexport async function downloadCertificate(id) {\r\n const url = `${API_URL_CERTIFICADO_DOWNLOAD}${id}`;\r\n const result = await axios.get(url);\r\n return result.data;\r\n};\r\n\r\n//GET CERTIFICATES (ALL) FOR usuarioId\r\nexport async function getCertificatesDetail(userId) {\r\n const result = data.filter(item => item.usuarioId === userId);\r\n return result;\r\n};\r\nconst data = [\r\n {\r\n usuarioId: 1,\r\n certificadoId: 1,\r\n certificadoCodigo: '1',\r\n nombre: \"Joaquin\",\r\n apellido: \"Santos\",\r\n cicloLectivo: 2020,\r\n cue: \"1223422-00\",\r\n escuela: \"Comercio\",\r\n tipo: \"Egreso de Nivel\",\r\n statusId: 1,\r\n status: \"Emitido por el establecimiento\",\r\n },\r\n {\r\n usuarioId: 1,\r\n certificadoId: 2,\r\n certificadoCodigo: '2',\r\n nombre: \"Joaquin\",\r\n apellido: \"Santos\",\r\n cicloLectivo: 2020,\r\n cue: \"1223422-00\",\r\n escuela: \"Comercio\",\r\n tipo: \"Egreso de Nivel\",\r\n statusId: 2,\r\n status: \"Validado por dirección de titulo\",\r\n },\r\n {\r\n usuarioId: 1,\r\n certificadoId: 3,\r\n certificadoCodigo: '3',\r\n nombre: \"Joaquin\",\r\n apellido: \"Santos\",\r\n cicloLectivo: 2020,\r\n cue: \"1223422-00\",\r\n escuela: \"Comercio\",\r\n tipo: \"Egreso de Nivel\",\r\n statusId: 2,\r\n status: \"Validado por dirección de titulo\",\r\n }, {\r\n usuarioId: 1,\r\n certificadoId: 4,\r\n certificadoCodigo: '4',\r\n nombre: \"Joaquin\",\r\n apellido: \"Santos\",\r\n cicloLectivo: 2020,\r\n cue: \"1223422-00\",\r\n escuela: \"Comercio\",\r\n tipo: \"Egreso de Nivel\",\r\n statusId: 2,\r\n status: \"Validado por dirección de titulo\",\r\n }, {\r\n usuarioId: 2,\r\n certificadoId: 5,\r\n certificadoCodigo: '5',\r\n nombre: \"Maria\",\r\n apellido: \"Sanchez\",\r\n cicloLectivo: 2020,\r\n cue: \"1223422-00\",\r\n escuela: \"Comercio\",\r\n tipo: \"Egreso de Nivel\",\r\n statusId: 2,\r\n status: \"Validado por dirección de titulo\",\r\n }, {\r\n usuarioId: 2,\r\n certificadoId: 6,\r\n certificadoCodigo: '6',\r\n nombre: \"Maria\",\r\n apellido: \"Sanchez\",\r\n cicloLectivo: 2020,\r\n cue: \"1223422-00\",\r\n escuela: \"Comercio\",\r\n tipo: \"Egreso de Nivel\",\r\n statusId: 2,\r\n status: \"Validado por dirección de titulo\",\r\n }, {\r\n usuarioId: 2,\r\n certificadoId: 7,\r\n certificadoCodigo: '7',\r\n nombre: \"Maria\",\r\n apellido: \"Sanchez\",\r\n cicloLectivo: 2020,\r\n cue: \"1223422-00\",\r\n escuela: \"Comercio\",\r\n tipo: \"Egreso de Nivel\",\r\n statusId: 1,\r\n status: \"Emitido por el establecimiento\",\r\n },\r\n];","import * as requestFromServer from './certificateCrud'\r\nimport { certificatesSlice, callTypes } from './certificateSlice';\r\n\r\nconst { actions } = certificatesSlice;\r\n\r\nexport const fetchCertificate = params => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .getCertificateDetail(params)\r\n .then(response => {\r\n const certificate = response;\r\n dispatch(actions.certificateFetched({ certificate }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = error.response && (error.response.data.mensaje || error.response.data);\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nexport const downloadCertificate = id => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .downloadCertificate(id)\r\n .then(response => {\r\n const certificateFile = response;\r\n dispatch(actions.certificateDownload({ certificateFile }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = error.response && (error.response.data.mensaje || error.response.data);\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\n\r\nexport const fetchCertificates = userId => dispatch => {\r\n dispatch(actions.startCall({ callType: callTypes.list }));\r\n return requestFromServer\r\n .getCertificatesDetail(userId)\r\n .then(response => {\r\n //setTimeout(() => {\r\n const certificates = response;\r\n dispatch(actions.certificatesFetched({ certificates }));\r\n //}, 1000);\r\n })\r\n .catch(error => {\r\n error.clientMessage = error.response && (error.response.data.mensaje || error.response.data);\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};","import React, { useEffect, useState } from 'react';\r\nimport { useDispatch, shallowEqual, useSelector } from \"react-redux\";\r\nimport { Link } from 'react-router-dom'\r\nimport Snack from '../../../Comun/SnackBars/SnackBarCustom';\r\nimport { Spinner, Button } from 'react-bootstrap';\r\nimport { makeStyles } from \"@material-ui/core\";\r\nimport WarningIcon from '@material-ui/icons/Warning';\r\nimport Certificate from '../../../Documents/pages/Certificates/components/Certificate';\r\nimport { useHistory, useLocation } from 'react-router-dom';\r\nimport { Card, CardBody, CardHeader, CardHeaderToolbar } from '../../../../../_metronic/_partials/controls';\r\n\r\nimport HelpLinks from '../../../Documents/pages/Certificates/components/HelpLinks';\r\n\r\n//ACCIONES PARA EL DISPATCH\r\nimport * as actionsCertificates from '../../../Documents/_redux/Certificates/certificateActions';\r\n\r\nconst useStyles = makeStyles({\r\n onlyTitle: {\r\n textAlign: 'center',\r\n color: '#1BC5BD',\r\n },\r\n});\r\n\r\nconst CertificateDetail = (props) => {\r\n const { id } = props.match.params;\r\n const history = useHistory();\r\n const location = useLocation();\r\n const [loading, setLoading] = useState(true);\r\n const path = location.pathname.substring(1, 4);\r\n //CONSTANTE PARA LOS ESTILOS\r\n const classes = useStyles();\r\n\r\n //DISPATCH\r\n const dispatch = useDispatch();\r\n\r\n const { certificate, error, listLoading } = useSelector(\r\n state => state.certificates,\r\n shallowEqual\r\n );\r\n useEffect(() => {\r\n dispatch(actionsCertificates.fetchCertificate({ id, type: path === \"doc\" ? \"DNI\" : \"\" }));\r\n setLoading(false);\r\n }, [dispatch, setLoading, id, path]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n {listLoading || loading ?\r\n
\r\n
\r\n
\r\n \r\n
\r\n

Obteniendo Certificado

\r\n
\r\n
\r\n :\r\n certificate && certificate.statusId !== 3 ?\r\n \r\n :\r\n <>\r\n \r\n

El certificado solicitado no fue encontrado

\r\n history.replace(\"/consulta\")}\r\n >{path === \"doc\" ? \"Volver\" : \"Inicio\"}\r\n \r\n }\r\n {error && }\r\n
\r\n \r\n
\r\n
\r\n\r\n )\r\n}\r\n\r\nexport default CertificateDetail;","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Button } from 'react-bootstrap';\r\nimport { Card, CardBody, CardHeader, CardHeaderToolbar } from '../../../../../_metronic/_partials/controls';\r\nimport PDF from '../../../Files/insctructivoFirmaDigital.pdf';\r\n\r\n\r\nconst CertificatesLandign = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

¿Que es la firma digital?

\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

¿Como funciona la firma digital? Explicativo de Nación

\r\n

¿Como validar la firma digital?

\r\n

Es importante tener la última versión de Adobe Acrobat Reader para visualizar la firma digital.
\r\n Descargar Adobe Acrobat Reader\r\n

\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default CertificatesLandign;","import React from 'react';\r\nimport { Formik, Field, Form, ErrorMessage } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport { Button } from 'react-bootstrap';\r\n\r\nconst SearchForm = () => {\r\n const history = useHistory();\r\n const initialValues = {\r\n // type: \"\",\r\n code: \"\",\r\n };\r\n\r\n const formSchema = Yup.object().shape({\r\n // type: Yup.string()\r\n // .required(\"Debe seleccionar el tipo de documento\"),\r\n code: Yup.string()\r\n //.matches(/^\\d+$/, \"Solo debe ingresar números\")\r\n .required(\"Debe ingresar el número del documento\"),\r\n });\r\n return (\r\n <>\r\n

Consultar Certificado

\r\n {\r\n history.push(`documento/${values.code}`);\r\n setSubmitting(false);\r\n }}\r\n >\r\n {formik =>\r\n
\r\n {/*
\r\n
\r\n \r\n \r\n {formik.values.type.length === 0 && }\r\n \r\n \r\n
\r\n
\r\n
*/}\r\n
\r\n
\r\n \r\n \r\n No ingresar puntos o comas\r\n
\r\n
\r\n
\r\n
\r\n Buscar\r\n
\r\n
\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default SearchForm;\r\n//header\r\n//card verde\r\n//video de","import React from 'react';\r\nimport { Card, CardBody, CardHeader/*, CardHeaderToolbar*/ } from '../../../../_metronic/_partials/controls';\r\nimport HelpLinks from '../../Documents/pages/Certificates/components/HelpLinks';\r\n//import { Button } from 'react-bootstrap';\r\n\r\n//import SpinerBars from '../../Comun/spinners/Bar/SpinerBars';\r\n\r\n//FORM FOR SEACH DOCUMENTS\r\nimport SearchForm from './SearchForm';\r\n\r\nconst Search = () => {\r\n return (\r\n \r\n \r\n {/*\r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n )\r\n}\r\n\r\nexport default Search;","import * as React from \"react\";\nimport { Route, Switch, Redirect } from \"react-router-dom\";\nimport LayoutPublic from '../components/layoutPublic/Layout';\n\n// import { Callback } from \"../components/auth/callback\";\n// import { Logout } from \"../components/auth/logout\";\n// import { LogoutCallback } from \"../components/auth/logoutCallback\";\n// import { PrivateRoute } from \"./privateRoute\";\n// import { Register } from \"../components/auth/register\";\n// import { SilentRenew } from \"../components/auth/silentRenew\";\nimport CertificateDetail from '../app/modules/Public/Documents/Certificates/CertificateDetail';\nimport CertificatesLandign from '../app/modules/Public/Documents/Certificates/CertificatesLandign';\n\nimport Search from '../app/modules/Public/Documents/Search';\n//import { PublicPage } from \"../components/publicPage\";\n//import { PrivatePage } from \"../components/privatePage\";\n// import { Routes as RoutesApp } from \"../app/Routes\";\n\n\nexport const Routes = (\n \n \n {/*\n \n \n \n \n \n */}\n \n \n\n \n \n \n {/* \n \n \n */}\n\n \n \n);\n","\nexport const IDENTITY_CONFIG = {\n authority: process.env.REACT_APP_AUTH_URL,\n client_id: process.env.REACT_APP_IDENTITY_CLIENT_ID,\n redirect_uri: process.env.REACT_APP_REDIRECT_URL,\n silent_redirect_uri: process.env.REACT_APP_SILENT_REDIRECT_URL,\n post_logout_redirect_uri: process.env.REACT_APP_LOGOFF_REDIRECT_URL,\n //audience: process.env.REACT_APP_AUDIENCE,\n response_type: process.env.REACT_APP_RESPONSE_TYPE,\n //automaticSilentRenew: false,\n //loadUserInfo: false,\n scope: process.env.REACT_APP_SCOPE\n};\n\nexport const METADATA_OIDC = {\n issuer: process.env.REACT_APP_ISSUER,\n jwks_uri: process.env.REACT_APP_AUTH_URL + \"/.well-known/openid-configuration/jwks\",\n authorization_endpoint: process.env.REACT_APP_AUTH_URL + \"/connect/authorize\",\n token_endpoint: process.env.REACT_APP_AUTH_URL + \"/connect/token\",\n userinfo_endpoint: process.env.REACT_APP_AUTH_URL + \"/connect/userinfo\",\n end_session_endpoint: process.env.REACT_APP_AUTH_URL + \"/connect/endsession\",\n check_session_iframe: process.env.REACT_APP_AUTH_URL + \"/connect/checksession\",\n revocation_endpoint: process.env.REACT_APP_AUTH_URL + \"/connect/revocation\",\n introspection_endpoint: process.env.REACT_APP_AUTH_URL + \"/connect/introspect\"\n};\n","import { IDENTITY_CONFIG, METADATA_OIDC } from \"../utils/authConst\";\nimport { UserManager, WebStorageStateStore, Log } from \"oidc-client\";\n\nexport default class AuthService {\n UserManager;\n\n constructor() {\n this.UserManager = new UserManager({\n ...IDENTITY_CONFIG,\n userStore: new WebStorageStateStore({ store: window.sessionStorage }),\n metadata: {\n ...METADATA_OIDC\n }\n });\n // Logger\n Log.logger = console;\n Log.level = Log.DEBUG;\n this.UserManager.events.addUserLoaded((user) => {\n if (window.location.href.indexOf(\"signin-oidc\") !== -1) {\n this.navigateToScreen();\n }\n });\n this.UserManager.events.addSilentRenewError((e) => {\n console.log(\"silent renew error\", e.message);\n });\n\n this.UserManager.events.addAccessTokenExpired(() => {\n console.log(\"token expired\");\n this.logout();\n });\n }\n\n signinRedirectCallback = () => {\n this.UserManager.signinRedirectCallback().then(() => {\n \"\";\n });\n };\n\n\n getUser = async () => {\n const user = await this.UserManager.getUser();\n if (!user) {\n return await this.UserManager.signinRedirectCallback();\n }\n return user;\n };\n\n parseJwt = (token) => {\n const base64Url = token.split(\".\")[1];\n const base64 = base64Url.replace(\"-\", \"+\").replace(\"_\", \"/\");\n return JSON.parse(window.atob(base64));\n };\n\n\n signinRedirect = () => {\n localStorage.setItem(\"redirectUri\", window.location.pathname);\n this.UserManager.signinRedirect({});\n };\n\n\n navigateToScreen = () => {\n window.location.replace(\"/\");\n };\n\n\n isAuthenticated = () => {\n const oidcStorage = JSON.parse(sessionStorage.getItem(`oidc.user:${process.env.REACT_APP_AUTH_URL}:${process.env.REACT_APP_IDENTITY_CLIENT_ID}`))\n\n return (!!oidcStorage && !!oidcStorage.access_token)\n };\n\n signinSilent = () => {\n this.UserManager.signinSilent()\n .then((user) => {\n console.log(\"signed in\", user);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n signinSilentCallback = () => {\n this.UserManager.signinSilentCallback();\n };\n\n createSigninRequest = () => {\n return this.UserManager.createSigninRequest();\n };\n\n logout = () => {\n this.UserManager.signoutRedirect({\n id_token_hint: localStorage.getItem(\"id_token\")\n });\n this.UserManager.clearStaleState();\n };\n\n signoutRedirectCallback = () => {\n this.UserManager.signoutRedirectCallback().then(() => {\n localStorage.clear();\n window.location.replace(process.env.REACT_APP_PUBLIC_URL);\n });\n this.UserManager.clearStaleState();\n };\n}\n","import React, { Component } from \"react\";\nimport AuthService from \"../services/authService\";\n\nconst AuthContext = React.createContext({\n signinRedirectCallback: () => ({}),\n logout: () => ({}),\n signoutRedirectCallback: () => ({}),\n isAuthenticated: () => ({}),\n signinRedirect: () => ({}),\n signinSilentCallback: () => ({}),\n createSigninRequest: () => ({})\n});\n\nexport const AuthConsumer = AuthContext.Consumer;\n\nexport class AuthProvider extends Component {\n authService;\n constructor(props) {\n super(props);\n this.authService = new AuthService();\n }\n render() {\n return {this.props.children};\n }\n}\n","\r\nconst API_BASE_URL = `${process.env.REACT_APP_API_URL}`;\r\n\r\nconst API_VERSION_URL = `${API_BASE_URL}/version`;\r\nexport {\r\n API_VERSION_URL\r\n};","import { API_VERSION_URL } from '../config';\r\nimport axios from 'axios';\r\n\r\n\r\nexport const getApiVersion = async () => {\r\n const result = await axios.get(API_VERSION_URL);\r\n return result.data;\r\n //return {ApiVersion:1}\r\n}","import * as requestFromServer from './apiVersionCrud';\r\n\r\nimport { apiVersionSlice, callTypes } from './apiVersionSlice';\r\n\r\nconst { actions } = apiVersionSlice;\r\n\r\nexport const fetchApiVersion = queryParams => dispatch => {\r\n dispatch(actions.starCall({ callTypes: callTypes.list }));\r\n return requestFromServer.getApiVersion()\r\n .then(response => {\r\n const apiVersionState = response.apiVersion;\r\n dispatch(actions.apiVersionFetched({ apiVersionState }));\r\n })\r\n .catch(error => {\r\n error.clientMessage = error.response && (error.response.data.mensaje || error.response.data);\r\n dispatch(actions.catchError({ error, callType: callTypes.list }));\r\n });\r\n};\r\n\r\nexport const stateLimpiar = queryParams => dispatch => {\r\n dispatch(actions.reiniciarDatos());\r\n};","import React, { useEffect, useState } from 'react';\nimport SnackBarCustom from '../../app/modules/Comun/SnackBars/SnackBarCustom';\nimport * as checkActions from './_redux/apiVersionActions';\nimport { useDispatch, shallowEqual, useSelector } from \"react-redux\";\n\n\nexport const VersionsCheck = () => {\n const dispatch = useDispatch();\n const [clienteDesactualizado, setClienteDesactualizado] = useState(false);\n const mensajeApiVersion = 'Estas usando una version desactualizada de la página.';\n const { apiVersion } = useSelector(\n (state) => ({ apiVersion: state.apiVersion }),\n shallowEqual\n );\n const {\n apiVersionState,\n listLoading,\n error\n } = apiVersion;\n\n useEffect(() => {\n //SE DISPARA DOS VECES\n //NO HAY POLQUE\n dispatch(checkActions.fetchApiVersion({}));\n let clientVersion = localStorage.clientVersion ? JSON.parse(localStorage.clientVersion) : undefined;\n if (apiVersionState && !listLoading) {\n if (!clientVersion) {\n clientVersion = apiVersionState;\n localStorage.clientVersion = JSON.stringify(apiVersionState);\n };\n if (clientVersion !== apiVersionState) {\n localStorage.clientVersion = JSON.stringify(apiVersionState);\n setClienteDesactualizado(true);\n } else {\n setClienteDesactualizado(false);\n };\n };\n }, [dispatch, apiVersionState, listLoading]);\n return (\n <>\n {clienteDesactualizado && window.location.reload()} />}\n {(error) && }\n \n );\n};\n","/**\n * Entry application component used to compose providers and render Routes.\n * */\n\nimport React from \"react\";\nimport { Provider } from \"react-redux\";\nimport { Router, BrowserRouter } from \"react-router-dom\";\nimport { PersistGate } from \"redux-persist/integration/react\";\n//import { Routes } from \"../app/Routes\";\nimport { I18nProvider } from \"../_metronic/i18n\";\nimport { LayoutSplashScreen, MaterialThemeProvider } from \"../_metronic/layout\";\nimport { Routes } from \"../routes/routes\";\nimport { AuthProvider } from \"../providers/authProvider\";\n\nimport { createBrowserHistory } from 'history';\nimport ReactGA from 'react-ga';\n//SNACKSBARS\nimport { SnackbarProvider } from 'notistack';\nimport { VersionsCheck } from '../components/versionsCheck';\n\nconst history = createBrowserHistory();\n// Initialize google analytics page view tracking\nhistory.listen(location => {\n ReactGA.set({ page: location.pathname }); // Update the user's current page\n ReactGA.pageview(location.pathname); // Record a pageview for the given page\n});\n\nexport default function App({ store, persistor, basename }) {\n return (\n \n\n {/* Provide Redux store */}\n \n {/* Asynchronously persist redux stores and show `SplashScreen` while it's loading. */}\n }>\n {/* Add high level `Suspense` in case if was not handled inside the React tree. */}\n }>\n \n \n {/* Override `basename` (e.g: `homepage` in `package.json`) */}\n \n {/*This library only returns the location that hasf been active before the recent location change in the current window lifetime.*/}\n \n {/* Provide `react-intl` context synchronized with Redux state. */}\n \n {/* Render routes with provided `Layout`. */}\n \n\n \n \n \n \n \n \n \n \n \n \n );\n}\n","/**\n * Create React App entry point. This and `public/index.html` files can not be\n * changed or moved.\n */\nimport \"react-app-polyfill/ie11\";\nimport \"react-app-polyfill/stable\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport axios from \"axios\";\nimport * as _redux from \"./redux\";\nimport store, { persistor } from \"./redux/store\";\nimport App from \"./app/App\";\nimport \"./index.scss\"; // Standard version\n// import \"./sass/style.react.rtl.css\"; // RTL version\nimport \"./_metronic/_assets/plugins/keenthemes-icons/font/ki.css\";\nimport \"socicon/css/socicon.css\";\nimport \"@fortawesome/fontawesome-free/css/all.min.css\";\nimport \"./_metronic/_assets/plugins/flaticon/flaticon.css\";\nimport \"./_metronic/_assets/plugins/flaticon2/flaticon.css\";\n// Datepicker\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport {\n MetronicLayoutProvider,\n MetronicSplashScreenProvider,\n MetronicSubheaderProvider\n} from \"./_metronic/layout\";\nimport {MetronicI18nProvider} from \"./_metronic/i18n\";\n\n/**\n * Base URL of the website.\n *\n * @see https://facebook.github.io/create-react-app/docs/using-the-public-folder\n */\nconst { PUBLIC_URL } = process.env;\n\n/**\n * Creates `axios-mock-adapter` instance for provided `axios` instance, add\n * basic Metronic mocks and returns it.\n *\n * @see https://github.com/ctimmerm/axios-mock-adapter\n */\n/* const mock = */ //_redux.mockAxios(axios);\n\n/**\n * Inject metronic interceptors for axios.\n *\n * @see https://github.com/axios/axios#interceptors\n */\n_redux.setupAxios(axios, store);\n\nReactDOM.render(\n \n \n \n \n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n","export default function setupAxios(axios, store) {\n axios.interceptors.request.use(\n config => {\n // const {\n // auth: { authToken }\n // } = store.getState();\n\n const auth = sessionStorage.getItem(`oidc.user:${process.env.REACT_APP_AUTH_URL}:${process.env.REACT_APP_IDENTITY_CLIENT_ID}`);\n let authParse;\n if(auth){\n authParse = JSON.parse(auth);\n };\n\n if (authParse && authParse.access_token) {\n const authToken = authParse.access_token;\n config.headers.Authorization = `Bearer ${authToken}`;\n };\n\n //config.headers.AccessControlAllowOrigin = '*';\n\n return config;\n },\n err => Promise.reject(err)\n );\n}\n","/* eslint-disable */\n\"use strict\";\n// DOCS: https://javascript.info/cookie\n\n// Component Definition\nexport var 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","/* eslint-disable */\n\"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;","/* eslint-disable */\n\"use strict\";\n\nimport PerfectScrollbar from \"perfect-scrollbar\";\n\nimport { KTCookie } from \"./cookie.js\";\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\nexport var 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 try {\n if (uid) {\n var cookie = KTCookie.getCookie(uid);\n if (options.rememberPosition === true && cookie) {\n var pos = parseInt(cookie);\n if (pos > 0) {\n element.scrollTop = pos;\n }\n element.addEventListener('ps-scroll-y', function() {\n KTCookie.setCookie(uid, element.scrollTop, {});\n });\n }\n }\n }\n catch (e) {\n console.error(e);\n }\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","/* eslint-disable */\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;","/* eslint-disable */\n\"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;","/* eslint-disable */\n\"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;","/* eslint-disable */\n\"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;","module.exports = __webpack_public_path__ + \"static/media/insctructivoFirmaDigital.39ceba7f.pdf\";"],"sourceRoot":""}