{"version":3,"sources":["router/utility/index.js","utility/hooks/useSkin.js","views/screens/Operations/paths.ts","@core/layouts/components/navbar/IntlDropdown.js","redux/sagas/settings/secretKey.js","redux/sagas/settings/webtrackClassicUrl.js","hooks/useShortcuts/index.ts","assets/images/portrait/small/avatar-s-15.jpg","assets/images/portrait/small/avatar-s-3.jpg","redux/actions/layout/index.js","@core/layouts/components/layout-wrapper/index.js","views/screens/VehicleFuel/routes.tsx","views/screens/Assets/routes.ts","views/screens/BusinessPartners/routes.ts","views/screens/Operators/routes.ts","views/screens/Organizations/routes.ts","views/screens/Agents/routes.ts","views/screens/Divisions/routes.ts","views/screens/Subdivisions/routes.ts","views/screens/ServiceClasses/routes.ts","views/screens/Modules/routes.ts","views/screens/Vehicles/routes.ts","views/screens/SIMs/routes.ts","views/screens/Locations/routes.tsx","views/screens/Sensors/routes.ts","views/screens/Schedules/routes.ts","views/screens/Workplans/routes.tsx","views/screens/Routes/routes.tsx","views/screens/vehicleMaintenance/routes.tsx","views/screens/Forms/routes.ts","views/screens/Geofences/routes.tsx","views/screens/Jobs/routes.tsx","views/screens/SafeDriver/routes.tsx","views/screens/Dashboard/routes.tsx","views/screens/Telemetry/routes.tsx","views/screens/TrackingUnits/routes.ts","views/screens/Reports/routes.ts","views/screens/Drivers/routes.tsx","views/screens/People/routes.ts","views/screens/Users/routes.ts","views/screens/Optimizations/routes.tsx","views/screens/Notifications/routes.ts","views/screens/Operations/routes.ts","views/screens/Groups/routes.tsx","views/screens/Console/routes.tsx","views/screens/Contracts/routes.tsx","views/screens/ExternalLogin/routes.tsx","views/screens/ExternalLogin/paths.ts","views/screens/Customers/routes.tsx","views/screens/Offices/routes.tsx","views/screens/Contacts/routes.tsx","views/screens/Quotations/routes.ts","views/screens/ContractTemplates/routes.tsx","views/screens/KnowledgeBase/paths.ts","views/screens/KnowledgeBase/routes.ts","views/screens/Protocols/routes.ts","router/routes/index.tsx","@core/layouts/BlankLayout.js","@core/components/customizer/index.js","views/components/Clock/index.js","@core/layouts/components/navbar/UserDropdown.js","assets/images/portrait/small/avatar-s-11.jpg","@core/layouts/components/help/components/Accordion/AccordionComponent.jsx","@core/layouts/components/help/components/SlidingPaneHelp/SlidingPaneHelp.jsx","@core/layouts/components/navbar/HelpDropdown.js","utility/hooks/useOnClickOutside.js","@core/layouts/components/navbar/OrganizationDropdown.js","@core/layouts/components/navbar/ClassicWebtrackLoginButton.js","@core/layouts/components/navbar/AdminProductButton.js","@core/layouts/components/navbar/BasicProductButton.js","@core/layouts/components/navbar/CrmProductButton.js","@core/layouts/components/navbar/MonitoringProductButton.js","@core/layouts/components/navbar/ProductDropdown.js","@core/layouts/components/navbar/SlidingPaneUserNotifications.tsx","@core/layouts/components/navbar/NavbarUser.js","@core/components/autocomplete/index.js","@core/layouts/components/navbar/NavbarBookmarks.js","redux/services/search.ts","redux/hooks/useGetSearch.ts","@core/layouts/components/navbar/FiltersDropdown.js","@core/layouts/components/navbar/NavbarSearch.js","@core/layouts/components/navbar/index.js","@core/layouts/components/footer/index.js","navigation/horizontal/index.js","@core/layouts/utils.js","@core/layouts/components/menu/horizontal-menu/HorizontalNavMenuLink.js","@core/layouts/components/menu/horizontal-menu/HorizontalNavMenuGroup.js","@core/layouts/components/menu/horizontal-menu/HorizontalNavMenuItems.js","@core/layouts/components/menu/horizontal-menu/index.js","utility/hooks/useRTL.js","utility/hooks/useNavbarType.js","utility/hooks/useFooterType.js","utility/hooks/useNavbarColor.js","@core/layouts/HorizontalLayout.js","layouts/HorizontalLayout.js","@core/layouts/components/menu/vertical-menu/VerticalMenuHeader.js","@core/layouts/components/menu/vertical-menu/VerticalNavMenuLink.js","@core/layouts/components/menu/vertical-menu/VerticalNavMenuGroup.js","@core/layouts/components/menu/vertical-menu/VerticalNavMenuSectionHeader.js","@core/layouts/components/menu/vertical-menu/VerticalNavMenuItems.js","@core/layouts/components/menu/vertical-menu/index.js","@core/layouts/VerticalLayout.js","layouts/VerticalLayout.js","auth/utils.js","views/components/RefreshToken/index.tsx","views/screens/Entities/views/EntitiesController/index.tsx","router/Router.js","utility/hooks/useLayout.js","utility/hooks/useRouterTransition.js","App.js"],"names":["useCRM","getUseCRM","useConsole","getUseConsole","authUserHasPermission","permissions","userPermissions","some","permission","includes","homeScreenCascadeByPermissions","homeScreenId","accessLevelId","isWebtrackUser","DefaultRoute","screens","dashboardPermissions","dashboard","dashboardPaths","reportsPermissions","listReports","reportsPaths","reportList","trackingUnitsPermissions","trackingUnitsList","trackingUnitsPaths","listTrackingUnits","unitsPermissions","listFleet","geofencesPermissions","listGeofences","geofencesPaths","geofencesList","listAsignedGeofences","geofencesAssignedList","locationsPermissions","listLocations","locationsPaths","locationsList","importLocation","importLocations","jobsPermissions","listJobsBacklog","jobsPaths","backlog","jobsImport","import","jobsBoard","board","jobsReport","report","jobsWorkingActivity","workingActivityReport","safeDriverPermissions","safedriver","safeDriverPaths","list","routesPermissions","viewRouteCatalog","routesPaths","routeList","viewRouteMonitor","routeMonitor","viewRouteReport","routeReport","assignRoute","importRouteAssignments","routeAssignUnit","routeETAMonitor","workplansPermissions","viewWorkplanCatalog","workplansPaths","workplanList","viewWorkplanMonitor","workplanMonitor","viewWorkplanReport","workplanReport","scheduledWorkplanList","scheduledWorkplan","assignWorkplan","workplanAssignUnit","telemetryPermissions","temperatureCatalog","telemetryPaths","telemetryTemperature","fuelCatalog","telemetryFuelMonitor","fuelReport","telemetryUnits","telemtryUnits","telemetryFuelReport","obd2Monitor","optimizationsPermissions","viewOptimizations","optimizationsPaths","listOptimization","vehicleMaintenancePermissions","preventiveNotices","vehicleMaintenancePaths","maintenanceLines","maintenanceLineList","sparepartsCatalog","workshopCatalog","categoriesCatalog","providersCatalog","generalReport","byCategoryReport","byUnitReport","byWorkShopReport","importTicket","addTickets","addWorkshopOrders","vehicleFuelPermissions","addTicket","vehicleFuelPaths","consolidatedReport","operatorPermissions","operatorList","operatorPaths","listOperator","organizationPermissions","organizationCatalog","organizationPaths","listOrganization","divisionPermissions","listDivision","divisionPaths","subdivisionPermissions","subdivisionCatalog","subdivisionPaths","listSubdivision","serviceClassPermissions","listServiceClass","serviceClassPaths","agentPermissions","agentList","agentPaths","listAgent","customersPermissions","listCustomers","customersPaths","listCustomer","groupsPermissions","listGroup","groupsPaths","schedulePermissions","schedule","schedulePaths","listShift","listTrigger","usersPermissions","listUsers","usersPaths","driversPermissions","listDrivers","driversPaths","peoplePermissions","listPerson","peoplePaths","listPeople","formPermissions","listForms","formPaths","listProtocols","protocolsPaths","protocolsList","answersFormReport","reportAnswerForms","modulePermissions","listModule","Number","parseInt","modulePaths","simPermissions","listSim","simPaths","sensorPermissions","listSensor","sensorPaths","assetPermissions","assetCatalog","assetPaths","listAsset","vehiclePermissions","listVehicle","vehiclePaths","notificationsPermissions","listEmailNotification","notificationsPaths","listEmailNotifications","listConsoleNotification","listConsoleNotifications","listWebServiceNotification","listWebServiceNotifications","listSystemNotification","listSystemNotifications","telemetryOBD2","contractsPaths","consolidateContract","editContract","listContract","listContractVersions","consolePermissions","console","consolePaths","businessPartnersPaths","editPartner","webServiceRates","getProhibitedPathsByPermissions","ProhibitedPaths","push","mileageReport","reportMileage","hourMetersReport","reportHourMeters","consolidatedUnitActivityReport","reportConsolidatedUnitActivity","consolidatedEventActivityReport","reportConsolidatedEventActivity","parkedGeofenceReport","reportParkedGeofence","consolidatedStopSummaryReport","reportConsolidatedStopSummary","consolidatedOpportunityOfCharge","reportHourOpportunityCharge","runningTimeReport","reportRunningTime","byUnitStopSummaryReport","reportByUnitStopSummary","byUnitScriptsHistoryReport","reportByUnitScriptsHistory","systemCommunicationsDiagReport","reportSystemCommunicationsDiag","systemNotificationsReport","reportSystemNotifications","consumptionAPIReport","reportSystemApiConsumption","consolidatedSummary","reportConsolidatedSummary","systemUserHistory","reportSystemUserHistory","systemAdministrativeReport","reportSystemAdministrative","trackingUnitsEdit","trackingUnitsCreate","editTrackingUnits","asignGeofenceToUnit","geofencesAssign","editRoute","addRoute","routeEdit","addWorkplan","editWorkplan","workplanEdit","maintenanceLineAdd","maintenanceLineEdit","protocolPermissions","listProtocol","editProtocol","createProtocol","deleteProtocol","operatorEdit","operatorAdd","editOperator","organizationAdd","organizationEdit","editOrganization","editDivision","addDivision","subdivisionAdd","subdivisionEdit","editSubdivision","editServiceClass","addServiceClass","agentEdit","agentAdd","editAgent","editGroup","addUser","editUser","editUsers","editUserPermissions","rolesPermissionsUsers","editDriver","addDriver","editDrivers","massAssignment","operationsPaths","massiveDriverAssignment","editPerson","editPeople","addForm","editForm","editForms","listAllUserAnswersForm","answersReportForms","editModule","addModule","editSim","addSim","editSensor","addSensor","addVehicle","editVehicle","assetEdit","assetAdd","editAsset","useSkin","useState","item","window","localStorage","getItem","JSON","parse","themeConfig","layout","skin","error","setSkin","useEffect","element","document","body","classList","remove","add","dark","bordered","value","valueToStore","Function","setItem","stringify","paths","peopleAssignment","IntlDropdown","intlContext","useContext","IntlContext","handleLangUpdate","e","lang","Swal","isVisible","close","setTimeout","preventDefault","switchLanguage","setLanguage","store","useSelector","state","countryCode","authSelectors","language","toLowerCase","countryFlag","setCountryFlag","env","REACT_APP_IP_GEOLOCATION_API","log","axios","get","then","response","country_code","data","toUpperCase","catch","tag","className","onClick","svg","right","id","SECRET_KEY","WEBTRACK_CLASSIC_URL","REACT_APP_WEBTRACK_CLASSIC_URL","isValidChar","c","test","generateKey","s","combination","key","ctrl","stringAlt","alt","stringShift","shift","useShortcuts","shortcuts","dependencies","dShortcuts","useMemo","reduce","shortcutDict","onKeyPressed","useCallback","event","getKeyboardModifiers","parsedKey","generatedKey","shortcut","callback","handleShortcuts","forEach","Error","addEventListener","removeEventListener","handleContentWidth","type","payload","handleMenuCollapsed","handleMenuHidden","handleMenuPinner","LayoutWrapper","props","children","appLayout","wrapperClass","transition","routeMeta","dispatch","useDispatch","permanentNotifications","getPermanentUserNotifications","contentWidth","showPermanentAlert","setShowPermanentAlert","Tag","Fragment","menuCollapsed","menuHidden","length","location","pathname","classnames","map","notification","index","Alert","color","getMessageTypesStyles","messageType","status","startReadingUserNotification","notificationId","styles","marginTop","marginRight","marginLeft","img","undefined","imgWidth","imgHeight","getMessageTypeAvatarProps","style","justifyContent","messageTitle","dangerouslySetInnerHTML","__html","message","Routes","path","component","lazy","recordMultiple","reportForms","telemetryFuelReportByVehicles","REACT_APP_SAT_MONITOR","reportScheduledReports","assignUnitsToUser","editOptimization","listNotifications","externalLogin","meta","publicRoute","listOffice","listContact","listQuotations","editQuotations","followUpQuotations","listTemplate","editTemplate","homeKnowledgeBase","articleKnowledgeBase","categoryKnoledgeBase","vehicleFuelRoutes","assetRoutes","businessPartnersRoutes","operatorRoutes","organizationRoutes","agentRoutes","divisionRoutes","subdivisionRoutes","serviceClassRoutes","moduleRoutes","vehicleRoutes","simRoutes","locationsRoutes","sensorRoutes","scheduleRoutes","workplansRoutes","routesRoutes","vehicleMaintenance","formRoutes","geofencesRoutes","jobsRoutes","safeDriverRoutes","dashboardRoutes","telemetryRoutes","trackingUnitsRoutes","reportsRoutes","driversRoutes","peopleRoutes","usersRoutes","optimizationsRoutes","notificationsRoutes","operationsRoutes","groupsRoutes","consoleRoutes","contractsRoutes","customerRoutes","officeRoutes","contactRoutes","quotationRoutes","contractTemplatesRoutes","knowledgeBaseRoutes","protocolRoutes","quotationPaths","webPageQuotations","sendingDiscountQuotations","authRoute","BlankLayout","isMounted","setIsMounted","Customizer","isRtl","setIsRtl","setLayout","navbarType","setNavbarType","footerType","setFooterType","navbarColor","setNavbarColor","isHidden","setIsHidden","setContentWidth","setMenuCollapsed","setTransition","openCustomizer","setOpenCustomizer","handleToggle","transitionOptions","label","transitionValue","find","i","open","href","size","FormGroup","skinsArr","name","checked","radio","marginCondition","CustomInput","onChange","renderSkinsRadio","theme","selectThemeColors","classNamePrefix","defaultValue","options","isClearable","selected","border","navbarTypeArr","renderNavbarTypeRadio","footerTypeArr","renderFooterTypeRadio","Clock","timezoneName","moment","date","setDate","clockTimeout","setClockTimeout","intl","useIntl","startTime","locale","clearTimeout","tz","format","UserDropdown","userData","UncontrolledDropdown","DropdownToggle","imageName","userImageUrl","content","completeName","initials","DropdownMenu","isUserLoggedIn","DropdownItem","Link","to","tabIndexProfile","params","activeT","AuthActions","AccordionComponent","Accordion","defaultActiveKey","Item","eventKey","Header","Body","SlidingPaneHelp","title","isOpenSlidingPaneHelp","closeSlidingPaneHelp","overlayClassName","isOpen","width","onRequestClose","Container","Row","Col","Jumbotron","fluid","xs","sm","order","offset","md","defaultProps","inputs","useTable","heightTable","hasButtonSubmit","hasButtonCancel","columnsTable","dataTable","HelpDropdown","history","useHistory","tooltipOpen","setTooltipOpen","tooltip","cursor","process","Tooltip","placement","target","toggle","trigger","useOnClickOutside","ref","handler","listener","current","contains","OrganizationDropdown","container","useRef","setIsOpen","useForm","control","handleSubmit","Dropdown","isDefaultPrevented","icon","header","formatMessage","Membership","fetchEntities","colSize","useUserOperator","useUserOrganization","useUserDivision","useUserSubdivision","Button","Ripple","block","values","authActions","membership","alerts","success","ClassicWebtrackLoginButton","height","ciphertext","bytes","CryptoJS","AES","decrypt","toString","enc","Utf8","form","createElement","appendChild","method","action","Object","keys","input","submit","AdminProductButton","productId","businessPartnerPaths","padding","ButtonToolbar","marginBottom","DefaultButton","iconSize","Label","for","BasicProductButton","user","getIsWebtrackUser","routerUtility","CrmProductButton","organizationContractsPaths","MonitoringProductButton","ProductDropdown","showDropdown","SlidingPaneUserNotifications","notifications","isFetching","isOpenSlidingPane","closeSlidingPane","selectedNotifications","setSelectedNotifications","tooltipState","setTooltipState","unReadNotifications","filter","notif","showToast","toastTime","readNotifications","dynamicFormattedFooterDate","inputDate","formattedDate","setFormattedDate","updateFormattedDate","diff","fromNow","dateFormatted","startOf","charAt","slice","interval","setInterval","clearInterval","fontSize","formatDateBasedOnProximity","dateString","now","isSame","Spinner","prev","startDate","userNotificationActions","prevState","display","alignItems","margin","NavbarUser","userOperatorId","userOrganizationId","userNotifications","userNotificationSelectors","unReadUserNotifications","isFetchingUserNotifications","isOpenSlidinPaneUserNotifications","setIsOpenSlidinPaneUserNotifications","startFetchingUserNotifications","operatorId","organizationId","toastNotifications","shownAtLogin","cumulativeTime","timeouts","timeoutId","toast","autoClose","closeOnClick","pauseOnHover","userNotificationShown","position","Badge","pill","top","transform","Autocomplete","suggestionsListComponent","inputElRef","suggestionsListRef","query","setQuery","focused","setFocused","activeSuggestion","setActiveSuggestion","showSuggestions","setShowSuggestions","userInput","setUserInput","filteredData","onSuggestionItemClick","url","filterKey","onSuggestionClick","onSuggestionItemHover","renderGroupedSuggestion","arr","customRender","suggestionURL","link","active","indexOf","onMouseEnter","renderSuggestion","defaultSuggestions","ReactDOM","findDOMNode","autoFocus","focus","clearInput","onSuggestionsShown","externalClick","timeOutId","wheelPropagation","grouped","filterHeaderKey","suggestions","suggestion","sortData","searchLimit","suggestionLimit","sortSingleData","startCondition","startsWith","includeCondition","renderUngroupedSuggestions","renderSuggestions","normalizedText","normalizeInputText","currentTarget","onKeyDown","suggestionList","keyCode","scrollTop","scrollHeight","placeholder","stopPropagation","onFocus","onBlur","NavbarBookmarks","setMenuVisibility","setValue","openSearch","setOpenSearch","navbarStore","navbar","startFetchingBookmarks","itemHasUserPermissions","accessLevels","handleClearQueryInStore","handleSearchQuery","NavItem","NavLink","bookmarks","iconName","UncontrolledTooltip","BOOKMARKS_TO_SHOW","show","sg","bm","useTranslation","handleClearInput","isBookmarked","updateBookmarkedStarted","getSearchService","request","configActions","a","httpWebtrack","HttpWebtrack","configureInterceptors","ConfigureWebtrackInterceptor","setConfigActions","post","cancelToken","requestCancelToken","useGetSearch","entities","setData","setIsFetching","CancelToken","source","errorAction","successAction","locations","groupTitle","camelcaseKeysData","camelcaseKeys","locationName","units","unitsList","unitName","geofences","geofenceName","routes","routesList","routeName","executionRoutes","executionRoutesList","drivers","driversList","driverName","section","search","token","cancel","FiltersDropdown","primary","getComputedStyle","handleClickEntity","entity","Media","DefaultSimpleButton","tooltipMessage","handleClick","obj","divider","logo","require","REACT_APP_FLAVOR","default","defaultEntities","defaultValues","highlightQuery","text","replace","split","RegExp","part","findMatches","match","NavbarSearch","locationRoute","useLocation","reset","formValues","watch","navbarSearch","setNavbarSearch","searchType","setSearchType","setEntities","handleExternalClick","searchLocations","handleClearForm","handleSuggestionItemClick","locationsRouteParam","locationsOperatorId","locationsOrganizationId","geofencesRouteParam","geofencesOperatorId","geofencesOrganizationId","unitsRouteParam","unitsOperatorId","unitsOrganizationId","routesRouteParam","routesOperatorId","routesOrganizationId","routeAssignmentId","googleLocation","googleLocationsRouteParam","navbarSearchActive","searchExternalLocations","src","shouldUnregister","render","field","normalizeString","func","handleListItemClick","locationClassIconName","getUnitIcon","themeId","shape","unitId","imei","deviceIdentifier","privateCode","privateCode2","licensePlate","routeId","abbreviation","locationId","geofenceId","driverId","fieldState","fieldstate","setLocationType","ThemeNavbar","Footer","Date","getFullYear","rel","sidebarOptions","option","isNavLinkActive","currentURL","routerProps","navLink","isNavGroupActive","child","navigation","result","getAllParents","res","recurse","HorizontalNavMenuLink","setOpenDropdown","setGroupActive","activeItem","setActiveItem","currentActiveItem","isChild","LinkTag","externalLink","parents","allParents","pop","searchParents","disabled","newTab","isActive","HorizontalNavMenuGroup","submenu","groupActive","onMouseLeave","openDropdown","menuModifiers","setMaxHeight","enabled","fn","stylesObj","pageHeight","innerHeight","ddTop","instance","reference","getBoundingClientRect","popper","maxHeight","overflowY","ddRef","left","innerWidth","closest","modifiers","parentItem","items","HorizontalNavMenuItems","Components","checkItemHasUserPermissions","TagName","resolveNavItemComponent","HorizontalMenu","splice","useRTL","isRTL","getElementsByTagName","setAttribute","handleRTL","useNavbarType","useFooterType","footer","useNavbarColor","backgroundColor","HorizontalLayout","menu","navbarScrolled","setNavbarScrolled","layoutStore","pageYOffset","footerClasses","static","sticky","hidden","navbarClasses","floating","bgColorCondition","Navbar","expand","app","appLogoImage","light","customizer","val","showUnder","bottom","VerticalMenuHeader","setGroupOpen","menuHover","menuPinner","setMenuPinner","Toggler","data-tour","Pinner","appLogo","VerticalNavMenuLink","groupOpen","toggleActiveGroup","matchPath","exact","strict","mouseEnter","setMouseEnter","resetActiveGroup","screenId","badgeText","badge","VerticalNavMenuGroup","activeArr","openArr","onCollapseClick","toggleOpenGroup","Collapse","VerticalNavMenuItems","VerticalNavMenuSectionHeader","VerticalMenuNavItems","Sidebar","setMenuHover","shadowRef","expanded","onScrollY","scrollMenu","sidebarOptionsCRM","sidebarOptionsMonitoring","sidebarOptionsAdmin","VerticalLayout","menuVisibility","windowWidth","setWindowWidth","handleWindowWidth","onShow","FreshworksWidget","onHide","getUserData","exp","RefreshToken","reviewTime","expiration","failCount","setFailCount","onRefresh","getTime","TOKEN_LIFE_TIME","actions","isAuthenticated","isLoggedIn","notSessionScreens","EntitiesController","entityActions","listen","loc","connect","auth","stateProps","dispatchProps","ownProps","setUserPermissions","lastLayout","setLastLayout","handleLayout","useLayout","routerTransition","useRouterTransition","DefaultLayout","AbilityContext","Layouts","NotAuthorized","FinalRoute","route","resource","voiceflow","chat","basename","prohibitedPath","LayoutTag","LayoutRoutes","LayoutPaths","LayoutRoutesAndPaths","assign","fallback","App"],"mappings":"gIAAA,owBAmFMA,GAASC,cACTC,GAAaC,cAEbC,GAAwB,eAACC,EAAD,uDAAe,GAAIC,EAAnB,uDAAqC,GAArC,OAC5BD,EAAYE,MAAK,SAACC,GAAD,OAAgBF,EAAgBG,SAASD,OAE/CE,GAAiC,SAC5CC,EACAL,EACAM,EACAC,GAEI,IADJC,EACG,uDADY,QAEf,OAAOH,IAAiBI,KACtBX,GAAsB,CAACY,IAAqBC,WAAYX,GACtDY,IAAeD,UACfN,IAAiBI,KAAeX,GAAsB,CAAC,SAAUE,GACjEQ,EACAH,IAAiBI,MACjBX,GAAsB,CAACe,KAAmBC,aAAcd,GACxDe,IAAaC,WACbX,IAAiBI,MACjBX,GAAsB,CAACmB,KAAyBC,mBAAoBlB,GACpEmB,IAAmBC,kBACnBf,IAAiBI,KACjBX,GAAsB,CAACuB,KAAiBC,WAAYtB,GACpDmB,IAAmBG,UACnBjB,IAAiBI,KACjBX,GAAsB,CAACyB,IAAqBC,eAAgBxB,GAC5DyB,IAAeC,cACfrB,IAAiBI,KACjBX,GAAsB,CAACyB,IAAqBI,sBAAuB3B,GACnEyB,IAAeG,sBACfvB,IAAiBI,KACjBX,GAAsB,CAAC+B,IAAqBC,eAAgB9B,GAC5D+B,IAAeC,cACf3B,IAAiBI,KACjBX,GAAsB,CAAC+B,IAAqBI,gBAAiBjC,GAC7D+B,IAAeG,gBACf7B,IAAiBI,KACjBX,GAAsB,CAACqC,IAAgBC,iBAAkBpC,GACzDqC,IAAUC,QACVjC,IAAiBI,KACjBX,GAAsB,CAACqC,IAAgBI,YAAavC,GACpDqC,IAAUG,OACVnC,IAAiBI,KACjBX,GAAsB,CAACqC,IAAgBM,WAAYzC,GACnDqC,IAAUK,MACVrC,IAAiBI,KACjBX,GAAsB,CAACqC,IAAgBQ,YAAa3C,GACpDqC,IAAUO,OACVvC,IAAiBI,KACjBX,GAAsB,CAACqC,IAAgBU,qBAAsB7C,GAC7DqC,IAAUS,sBACVzC,IAAiBI,MACjBX,GAAsB,CAACiD,KAAsBC,YAAahD,GAC1DiD,IAAgBC,KAChB7C,IAAiBI,KACjBX,GAAsB,CAACqD,KAAkBC,kBAAmBpD,GAC5DqD,IAAYC,UACZjD,IAAiBI,KACjBX,GAAsB,CAACqD,KAAkBI,kBAAmBvD,GAC5DqD,IAAYG,aACZnD,IAAiBI,KACjBX,GAAsB,CAACqD,KAAkBM,iBAAkBzD,GAC3DqD,IAAYK,YACZrD,IAAiBI,KACjBX,GAAsB,CAACqD,KAAkBQ,aAAc3D,GACvDqD,IAAYO,uBACZvD,IAAiBI,KACjBX,GAAsB,CAACqD,KAAkBS,wBAAyB5D,GAClEqD,IAAYQ,gBACZxD,IAAiBI,KACjBX,GAAsB,CAACqD,KAAkBW,iBAAkB9D,GAC3DqD,IAAYS,gBACZzD,IAAiBI,MACjBX,GAAsB,CAACiE,KAAqBC,qBAAsBhE,GAClEiE,IAAeC,aACf7D,IAAiBI,MACjBX,GAAsB,CAACiE,KAAqBI,qBAAsBnE,GAClEiE,IAAeG,gBACf/D,IAAiBI,MACjBX,GAAsB,CAACiE,KAAqBM,oBAAqBrE,GACjEiE,IAAeK,eACfjE,IAAiBI,MACjBX,GAAsB,CAACiE,KAAqBQ,uBAAwBvE,GACpEiE,IAAeO,kBACfnE,IAAiBI,KACjBX,GAAsB,CAACiE,KAAqBU,gBAAiBzE,GAC7DiE,IAAeS,mBACfrE,IAAiBI,MACjBX,GAAsB,CAAC6E,KAAqBC,oBAAqB5E,GACjE6E,IAAeC,qBACfzE,IAAiBI,KACjBX,GAAsB,CAAC6E,KAAqBI,aAAc/E,GAC1D6E,IAAeG,qBACf3E,IAAiBI,KACjBX,GAAsB,CAAC6E,KAAqBM,YAAajF,GACzD6E,IAAeK,eACf7E,IAAiBI,MACjBX,GAAsB,CAAC6E,KAAqBQ,eAAgBnF,GAC5D6E,IAAeO,oBACf/E,IAAiBI,MACjBX,GAAsB,CAAC6E,KAAqBU,aAAcrF,GAC1D6E,IAAeQ,YACfhF,IAAiBI,KACjBX,GAAsB,CAACwF,KAAyBC,mBAAoBvF,GACpEwF,IAAmBC,iBACnBpF,IAAiBI,KACjBX,GAAsB,CAAC4F,KAA8BC,mBAAoB3F,GACzE4F,IAAwBD,kBACxBtF,IAAiBI,KACjBX,GAAsB,CAAC4F,KAA8BG,kBAAmB7F,GACxE4F,IAAwBE,oBACxBzF,IAAiBI,MACjBX,GAAsB,CAAC4F,KAA8BK,mBAAoB/F,GACzE4F,IAAwBG,kBACxB1F,IAAiBI,MACjBX,GAAsB,CAAC4F,KAA8BM,iBAAkBhG,GACvE4F,IAAwBI,gBACxB3F,IAAiBI,MACjBX,GAAsB,CAAC4F,KAA8BO,mBAAoBjG,GACzE4F,IAAwBK,kBACxB5F,IAAiBI,MACjBX,GAAsB,CAAC4F,KAA8BQ,kBAAmBlG,GACxE4F,IAAwBM,iBACxB7F,IAAiBI,KACjBX,GAAsB,CAAC4F,KAA8BS,eAAgBnG,GACrE4F,IAAwBO,cACxB9F,IAAiBI,KACjBX,GAAsB,CAAC4F,KAA8BU,kBAAmBpG,GACxE4F,IAAwBQ,iBACxB/F,IAAiBI,KACjBX,GAAsB,CAAC4F,KAA8BW,cAAerG,GACpE4F,IAAwBS,aACxBhG,IAAiBI,KACjBX,GAAsB,CAAC4F,KAA8BY,kBAAmBtG,GACxE4F,IAAwBU,iBACxBjG,IAAiBI,KACjBX,GAAsB,CAAC4F,KAA8Ba,cAAevG,GACpE4F,IAAwBW,aACxBlG,IAAiBI,MACjBX,GAAsB,CAAC4F,KAA8Bc,YAAaxG,GAClE4F,IAAwBa,kBACxBpG,IAAiBI,KACjBX,GAAsB,CAAC4G,KAAuBC,WAAY3G,GAC1D4G,IAAiBD,UACjBtG,IAAiBI,KACjBX,GAAsB,CAAC4G,KAAuBH,cAAevG,GAC7D4G,IAAiBL,aACjBlG,IAAiBI,KACjBX,GAAsB,CAAC4G,KAAuBG,oBAAqB7G,GACnE4G,IAAiBC,mBACjBxG,IAAiBI,KACjBX,GAAsB,CAAC4G,KAAuBL,cAAerG,GAC7D4G,IAAiBP,aACjBhG,IAAiBI,KACjBX,GAAsB,CAACgH,KAAoBC,cAAe/G,GAC1DgH,IAAcC,aACd5G,IAAiBI,KACjBX,GAAsB,CAACoH,KAAwBC,qBAAsBnH,GACrEoH,IAAkBC,iBAClBhH,IAAiBI,KACjBX,GAAsB,CAACwH,IAAoBC,cAAevH,GAC1DwH,IAAcD,aACdlH,IAAiBI,MACjBX,GAAsB,CAAC2H,KAAuBC,oBAAqB1H,GACnE2H,IAAiBC,gBACjBvH,IAAiBI,MACjBX,GAAsB,CAAC+H,KAAwBC,kBAAmB9H,GAClE+H,IAAkBD,iBAClBzH,IAAiBI,KACjBX,GAAsB,CAACkI,IAAiBC,WAAYjI,GACpDkI,IAAWC,UACX9H,IAAiBI,KACjBX,GAAsB,CAACsI,IAAqBC,eAAgBrI,GAC5DsI,IAAeC,aACflI,IAAiBI,KACjBX,GAAsB,CAAC0I,IAAkBC,WAAYzI,GACrD0I,IAAYD,UACZpI,IAAiBI,MACjBX,GAAsB,CAAC6I,KAAoBC,UAAW5I,GACtD6I,IAAcC,UACdzI,IAAiBI,MACjBX,GAAsB,CAAC6I,KAAoBC,UAAW5I,GACtD6I,IAAcE,YACd1I,IAAiBI,MACjBX,GAAsB,CAACkJ,KAAiBC,WAAYjJ,GACpDkJ,IAAWD,UACX5I,IAAiBI,KACjBX,GAAsB,CAACqJ,IAAmBC,aAAcpJ,GACxDqJ,IAAaD,YACb/I,IAAiBI,KACjBX,GAAsB,CAACwJ,KAAkBC,YAAavJ,GACtDwJ,IAAYC,WACZpJ,IAAiBI,KACjBX,GAAsB,CAAC4J,IAAgBC,WAAY3J,GACnD4J,IAAUD,UACVtJ,IAAiBI,MACjBX,GAAsB,CAAC4J,IAAgBG,eAAgB7J,GACvD8J,IAAeC,cACf1J,IAAiBI,KACjBX,GAAsB,CAAC4J,IAAgBM,mBAAoBhK,GAC3D4J,IAAUK,kBACV5J,IAAiBI,KACjBX,GAAsB,CAACoK,KAAkBC,YAAanK,KACrD,CAAC,EAAG,GAAGG,SAASiK,OAAOC,SAAP,OAAgB/J,QAAhB,IAAgBA,IAAiB,IAClDgK,IAAYH,WACZ9J,IAAiBI,MACjBX,GAAsB,CAACyK,KAAeC,SAAUxK,KAC/C,CAAC,EAAG,GAAGG,SAASiK,OAAOC,SAAP,OAAgB/J,QAAhB,IAAgBA,IAAiB,IAClDmK,IAASD,QACTnK,IAAiBI,MACjBX,GAAsB,CAAC4K,KAAkBC,YAAa3K,GACtD4K,IAAYD,WACZtK,IAAiBI,KACjBX,GAAsB,CAAC+K,IAAiBC,cAAe9K,GACvD+K,IAAWC,UACX3K,IAAiBI,MACjBX,GAAsB,CAACmL,KAAmBC,aAAclL,GACxDmL,IAAaD,YACb7K,IAAiBI,KACjBX,GAAsB,CAACsL,KAAyBC,uBAAwBrL,GACxEsL,IAAmBC,uBACnBlL,IAAiBI,KACjBX,GAAsB,CAACsL,KAAyBI,yBAA0BxL,GAC1EsL,IAAmBG,yBACnBpL,IAAiBI,MACjBX,GAAsB,CAACsL,KAAyBM,4BAA6B1L,GAC7EsL,IAAmBK,4BACnBtL,IAAiBI,MACjBX,GAAsB,CAACsL,KAAyBQ,wBAAyB5L,GACzEsL,IAAmBO,wBACnB/L,GAAsB,CAACY,IAAqBC,WAAYX,GACxDY,IAAeD,UACfb,GAAsB,CAAC,UACvBU,EACAV,GAAsB,CAACe,KAAmBC,aAAcd,GACxDe,IAAaC,WACblB,GAAsB,CAACmB,KAAyBC,mBAAoBlB,GACpEmB,IAAmBC,kBACnBtB,GAAsB,CAACuB,KAAiBC,WAAYtB,GACpDmB,IAAmBG,UACnBxB,GAAsB,CAACyB,IAAqBC,eAAgBxB,GAC5DyB,IAAeC,cACf5B,GAAsB,CAACyB,IAAqBI,sBAAuB3B,GACnEyB,IAAeG,sBACf9B,GAAsB,CAAC+B,IAAqBC,eAAgB9B,GAC5D+B,IAAeC,cACflC,GAAsB,CAAC+B,IAAqBI,gBAAiBjC,GAC7D+B,IAAeG,gBACfpC,GAAsB,CAACqC,IAAgBC,iBAAkBpC,GACzDqC,IAAUC,QACVxC,GAAsB,CAACqC,IAAgBI,YAAavC,GACpDqC,IAAUG,OACV1C,GAAsB,CAACqC,IAAgBM,WAAYzC,GACnDqC,IAAUK,MACV5C,GAAsB,CAACqC,IAAgBQ,YAAa3C,GACpDqC,IAAUO,OACV9C,GAAsB,CAACqC,IAAgBU,qBAAsB7C,GAC7DqC,IAAUS,sBACVhD,GAAsB,CAACiD,KAAsBC,YAAahD,GAC1DiD,IAAgBC,KAChBpD,GAAsB,CAACqD,KAAkBC,kBAAmBpD,GAC5DqD,IAAYC,UACZxD,GAAsB,CAACqD,KAAkBI,kBAAmBvD,GAC5DqD,IAAYG,aACZ1D,GAAsB,CAACqD,KAAkBM,iBAAkBzD,GAC3DqD,IAAYO,uBACZ9D,GAAsB,CAACqD,KAAkBS,wBAAyB5D,GAClEqD,IAAYK,YACZ5D,GAAsB,CAACqD,KAAkBQ,aAAc3D,GACvDqD,IAAYQ,gBACZ/D,GAAsB,CAACiE,KAAqBC,qBAAsBhE,GAClEiE,IAAeC,aACfpE,GAAsB,CAACiE,KAAqBI,qBAAsBnE,GAClEiE,IAAeG,gBACftE,GAAsB,CAACiE,KAAqBM,oBAAqBrE,GACjEiE,IAAeK,eACfxE,GAAsB,CAACiE,KAAqBQ,uBAAwBvE,GACpEiE,IAAeO,kBACf1E,GAAsB,CAACiE,KAAqBU,gBAAiBzE,GAC7DiE,IAAeS,mBACf5E,GAAsB,CAAC6E,KAAqBC,oBAAqB5E,GACjE6E,IAAeC,qBACfhF,GAAsB,CAAC6E,KAAqBI,aAAc/E,GAC1D6E,IAAeG,qBACflF,GAAsB,CAAC6E,KAAqBM,YAAajF,GACzD6E,IAAeK,eACfpF,GAAsB,CAAC6E,KAAqBQ,eAAgBnF,GAC5D6E,IAAeO,oBACftF,GAAsB,CAAC6E,KAAqBU,aAAcrF,GAC1D6E,IAAeiH,cACfhM,GAAsB,CAACwF,KAAyBC,mBAAoBvF,GACpEwF,IAAmBC,iBACnB3F,GAAsB,CAAC4F,KAA8BC,mBAAoB3F,GACzE4F,IAAwBD,kBACxB7F,GAAsB,CAAC4F,KAA8BG,kBAAmB7F,GACxE4F,IAAwBE,oBACxBhG,GAAsB,CAAC4F,KAA8BK,mBAAoB/F,GACzE4F,IAAwBG,kBACxBjG,GAAsB,CAAC4F,KAA8BM,iBAAkBhG,GACvE4F,IAAwBI,gBACxBlG,GAAsB,CAAC4F,KAA8BO,mBAAoBjG,GACzE4F,IAAwBK,kBACxBnG,GAAsB,CAAC4F,KAA8BQ,kBAAmBlG,GACxE4F,IAAwBM,iBACxBpG,GAAsB,CAAC4F,KAA8BS,eAAgBnG,GACrE4F,IAAwBO,cACxBrG,GAAsB,CAAC4F,KAA8BU,kBAAmBpG,GACxE4F,IAAwBQ,iBACxBtG,GAAsB,CAAC4F,KAA8BW,cAAerG,GACpE4F,IAAwBS,aACxBvG,GAAsB,CAAC4F,KAA8BY,kBAAmBtG,GACxE4F,IAAwBU,iBACxBxG,GAAsB,CAAC4F,KAA8Ba,cAAevG,GACpE4F,IAAwBW,aACxBzG,GAAsB,CAAC4G,KAAuBC,WAAY3G,GAC1D4G,IAAiBD,UACjB7G,GAAsB,CAAC4G,KAAuBH,cAAevG,GAC7D4G,IAAiBL,aACjBzG,GAAsB,CAAC4G,KAAuBG,oBAAqB7G,GACnE4G,IAAiBC,mBACjB/G,GAAsB,CAAC4G,KAAuBL,cAAerG,GAC7D4G,IAAiBP,aACjBvG,GAAsB,CAACgH,KAAoBC,cAAe/G,GAC1DgH,IAAcC,aACdnH,GAAsB,CAACoH,KAAwBC,qBAAsBnH,GACrEoH,IAAkBC,iBAClBvH,GAAsB,CAACwH,IAAoBC,cAAevH,GAC1DwH,IAAcD,aACdzH,GAAsB,CAAC2H,KAAuBC,oBAAqB1H,GACnE2H,IAAiBC,gBACjB9H,GAAsB,CAAC+H,KAAwBC,kBAAmB9H,GAClE+H,IAAkBD,iBAClBhI,GAAsB,CAACkI,IAAiBC,WAAYjI,GACpDkI,IAAWC,UACXrI,GAAsB,CAACsI,IAAqBC,eAAgBrI,GAC5DsI,IAAeC,aACf7I,GACAqM,IAAeC,oBACftM,GACAqM,IAAeE,aACfvM,GACAqM,IAAeG,aACfxM,GACAqM,IAAeI,qBACfvM,GAAaE,GAAsB,CAACsM,IAAmBC,SAAUrM,GACjEsM,IAAaD,QACb9L,EACAgM,IAAsBC,YACtBjM,EACAgM,IAAsBE,gBACtB3M,GAAsB,CAAC0I,IAAkBC,WAAYzI,GACrD0I,IAAYD,UACZ3I,GAAsB,CAAC6I,KAAoBC,UAAW5I,GACtD6I,IAAcC,UACdhJ,GAAsB,CAACkJ,KAAiBC,WAAYjJ,GACpDkJ,IAAWD,UACXnJ,GAAsB,CAACqJ,IAAmBC,aAAcpJ,GACxDqJ,IAAaD,YACbtJ,GAAsB,CAACwJ,KAAkBC,YAAavJ,GACtDwJ,IAAYC,WACZ3J,GAAsB,CAAC4J,IAAgBC,WAAY3J,GACnD4J,IAAUD,UACV7J,GAAsB,CAAC4J,IAAgBM,mBAAoBhK,GAC3D4J,IAAUK,kBACVnK,GAAsB,CAACoK,KAAkBC,YAAanK,KACrD,CAAC,EAAG,GAAGG,SAASiK,OAAOC,SAAP,OAAgB/J,QAAhB,IAAgBA,IAAiB,IAClDgK,IAAYH,WACZrK,GAAsB,CAACyK,KAAeC,SAAUxK,KAC/C,CAAC,EAAG,GAAGG,SAASiK,OAAOC,SAAP,OAAgB/J,QAAhB,IAAgBA,IAAiB,IAClDmK,IAASD,QACT1K,GAAsB,CAAC4K,KAAkBC,YAAa3K,GACtD4K,IAAYD,WACZ7K,GAAsB,CAAC+K,IAAiBC,cAAe9K,GACvD+K,IAAWC,UACXlL,GAAsB,CAACmL,KAAmBC,aAAclL,GACxDmL,IAAaD,YACbpL,GAAsB,CAACsL,KAAyBC,uBAAwBrL,GACxEsL,IAAmBC,uBACnBzL,GAAsB,CAACsL,KAAyBI,yBAA0BxL,GAC1EsL,IAAmBG,yBACnB3L,GAAsB,CAACsL,KAAyBM,4BAA6B1L,GAC7EsL,IAAmBK,4BACnB7L,GAAsB,CAACsL,KAAyBQ,wBAAyB5L,GACzEsL,IAAmBO,wBACnBrL,GAGOkM,GAAkC,SAAC1M,EAAiBM,EAAeC,GAC9E,IAAMoM,EAAkB,GA6gBxB,OA1gBC7M,GAAsB,CAACY,IAAqBC,WAAYX,IACrD2M,EAAgBC,KAAKhM,IAAeD,YAIvCb,GAAsB,CAAC,SAAUE,IAAmB2M,EAAgBC,KAAK,UAGzE9M,GAAsB,CAACe,KAAmBC,aAAcd,IACrD2M,EAAgBC,KAAK7L,IAAaC,aAErClB,GAAsB,CAACe,KAAmBgM,eAAgB7M,IACvD2M,EAAgBC,KAAK7L,IAAa+L,gBAErChN,GAAsB,CAACe,KAAmBkM,kBAAmB/M,IAC1D2M,EAAgBC,KAAK7L,IAAaiM,mBAErClN,GAAsB,CAACe,KAAmBoM,gCAAiCjN,IACxE2M,EAAgBC,KAAK7L,IAAamM,iCAErCpN,GAAsB,CAACe,KAAmBsM,iCAAkCnN,IACzE2M,EAAgBC,KAAK7L,IAAaqM,kCAErCtN,GAAsB,CAACe,KAAmBwM,sBAAuBrN,IAC9D2M,EAAgBC,KAAK7L,IAAauM,uBAErCxN,GAAsB,CAACe,KAAmB0M,+BAAgCvN,IACvE2M,EAAgBC,KAAK7L,IAAayM,gCAErC1N,GAAsB,CAACe,KAAmB4M,iCAAkCzN,IACzE2M,EAAgBC,KAAK7L,IAAa2M,8BAErC5N,GAAsB,CAACe,KAAmB8M,mBAAoB3N,IAC3D2M,EAAgBC,KAAK7L,IAAa6M,oBAErC9N,GAAsB,CAACe,KAAmBgN,yBAA0B7N,IACjE2M,EAAgBC,KAAK7L,IAAa+M,0BAErChO,GAAsB,CAACe,KAAmBkN,4BAA6B/N,IACpE2M,EAAgBC,KAAK7L,IAAaiN,6BAErClO,GAAsB,CAACe,KAAmBoN,gCAAiCjO,IACxE2M,EAAgBC,KAAK7L,IAAamN,iCAErCpO,GAAsB,CAACe,KAAmBsN,2BAA4BnO,IACnE2M,EAAgBC,KAAK7L,IAAaqN,4BAErCtO,GAAsB,CAACe,KAAmBwN,sBAAuBrO,IAC9D2M,EAAgBC,KAAK7L,IAAauN,6BAGrCxO,GAAsB,CAACe,KAAmB0N,qBAAsBvO,IAC7D2M,EAAgBC,KAAK7L,IAAayN,4BAErC1O,GAAsB,CAACe,KAAmB4N,mBAAoBzO,IAC3D2M,EAAgBC,KAAK7L,IAAa2N,0BAErC5O,GAAsB,CAACe,KAAmB8N,4BAA6B3O,IACtE2M,EAAgBC,KAAK7L,IAAa6N,6BAInC9O,GAAsB,CAACmB,KAAyBC,mBAAoBlB,IACjE2M,EAAgBC,KAAKzL,IAAmBC,oBAE3CtB,GAAsB,CAACuB,KAAiBC,WAAYtB,IACjD2M,EAAgBC,KAAKzL,IAAmBG,YAE3CxB,GACC,CAACmB,KAAyB4N,kBAAmB5N,KAAyB6N,qBACtE9O,IAEE2M,EAAgBC,KAAKzL,IAAmB4N,oBAK3CjP,GAAsB,CAACyB,IAAqBC,eAAgBxB,IACzD2M,EAAgBC,KAAKnL,IAAeC,gBAEvC5B,GAAsB,CAACyB,IAAqBI,sBAAuB3B,IAChE2M,EAAgBC,KAAKnL,IAAeG,wBAEvC9B,GAAsB,CAACyB,IAAqByN,qBAAsBhP,IAC/D2M,EAAgBC,KAAKnL,IAAewN,kBAIvCnP,GAAsB,CAAC+B,IAAqBC,eAAgB9B,IACzD2M,EAAgBC,KAAK7K,IAAeC,gBAEvClC,GAAsB,CAAC+B,IAAqBI,gBAAiBjC,IAC1D2M,EAAgBC,KAAK7K,IAAeG,kBAIvCpC,GAAsB,CAACqC,IAAgBC,iBAAkBpC,IACtD2M,EAAgBC,KAAKvK,IAAUC,UAGlCxC,GAAsB,CAACqC,IAAgBM,WAAYzC,IAChD2M,EAAgBC,KAAKvK,IAAUK,QAGlC5C,GAAsB,CAACqC,IAAgBI,YAAavC,IACjD2M,EAAgBC,KAAKvK,IAAUG,SAGlC1C,GAAsB,CAACqC,IAAgBQ,YAAa3C,IACjD2M,EAAgBC,KAAKvK,IAAUO,SAGlC9C,GAAsB,CAACqC,IAAgBU,qBAAsB7C,IAC1D2M,EAAgBC,KAAKvK,IAAUS,wBAIlChD,GAAsB,CAACiD,KAAsBC,YAAahD,IACvD2M,EAAgBC,KAAK3J,IAAgBC,OAIxCpD,GAAsB,CAACqD,KAAkBC,kBAAmBpD,IACzD2M,EAAgBC,KAAKvJ,IAAYC,YAGpCxD,GAAsB,CAACqD,KAAkB+L,UAAW/L,KAAkBgM,UAAWnP,IAC9E2M,EAAgBC,KAAKvJ,IAAY+L,YAGpCtP,GAAsB,CAACqD,KAAkBI,kBAAmBvD,IACzD2M,EAAgBC,KAAKvJ,IAAYG,eAGpC1D,GAAsB,CAACqD,KAAkBS,wBAAyB5D,IAC/D2M,EAAgBC,KAAKvJ,IAAYO,yBAGpC9D,GAAsB,CAACqD,KAAkBM,iBAAkBzD,IACxD2M,EAAgBC,KAAKvJ,IAAYK,cAGpC5D,GAAsB,CAACqD,KAAkBQ,aAAc3D,IACpD2M,EAAgBC,KAAKvJ,IAAYQ,kBAGpC/D,GAAsB,CAACqD,KAAkBW,iBAAkB9D,IACxD2M,EAAgBC,KAAKvJ,IAAYS,kBAIpChE,GAAsB,CAACiE,KAAqBC,qBAAsBhE,IAC/D2M,EAAgBC,KAAK3I,IAAeC,eAGvCpE,GACC,CAACiE,KAAqBsL,YAAatL,KAAqBuL,cACxDtP,IAEE2M,EAAgBC,KAAK3I,IAAesL,eAGvCzP,GAAsB,CAACiE,KAAqBI,qBAAsBnE,IAC/D2M,EAAgBC,KAAK3I,IAAeG,kBAGvCtE,GAAsB,CAACiE,KAAqBM,oBAAqBrE,IAC9D2M,EAAgBC,KAAK3I,IAAeK,iBAGvCxE,GAAsB,CAACiE,KAAqBQ,uBAAwBvE,IACjE2M,EAAgBC,KAAK3I,IAAeO,oBAGvC1E,GAAsB,CAACiE,KAAqBU,gBAAiBzE,IAC1D2M,EAAgBC,KAAK3I,IAAeS,qBAIvC5E,GAAsB,CAAC6E,KAAqBQ,eAAgBnF,IACzD2M,EAAgBC,KAAK/H,IAAeK,iBAGvCpF,GAAsB,CAAC6E,KAAqBU,aAAcrF,IACvD2M,EAAgBC,KAAK/H,IAAeiH,gBAGvChM,GAAsB,CAAC6E,KAAqBC,oBAAqB5E,IAC9D2M,EAAgBC,KAAK/H,IAAeC,uBAGvChF,GAAsB,CAAC6E,KAAqBI,aAAc/E,IACvD2M,EAAgBC,KAAK/H,IAAeG,uBAGvClF,GAAsB,CAAC6E,KAAqBM,YAAajF,IACtD2M,EAAgBC,KAAK/H,IAAeO,sBAIvCtF,GAAsB,CAACwF,KAAyBC,mBAAoBvF,IACjE2M,EAAgBC,KAAKpH,IAAmBC,mBAK3C3F,GAAsB,CAAC4F,KAA8BC,mBAAoB3F,IACtE2M,EAAgBC,KAAKhH,IAAwBD,oBAIhD7F,GAAsB,CAAC4F,KAA8BG,kBAAmB7F,IACrE2M,EAAgBC,KAAKhH,IAAwBE,sBAGhDhG,GACC,CACE4F,KAA8B8J,mBAC9B9J,KAA8B+J,qBAEhCzP,IAEE2M,EAAgBC,KAAKhH,IAAwB6J,sBAIhD3P,GAAsB,CAAC4F,KAA8BK,mBAAoB/F,IACtE2M,EAAgBC,KAAKhH,IAAwBG,oBAGhDjG,GAAsB,CAAC4F,KAA8BM,iBAAkBhG,IACpE2M,EAAgBC,KAAKhH,IAAwBI,kBAGhDlG,GAAsB,CAAC4F,KAA8BO,mBAAoBjG,IACtE2M,EAAgBC,KAAKhH,IAAwBK,oBAGhDnG,GAAsB,CAAC4F,KAA8BQ,kBAAmBlG,IACrE2M,EAAgBC,KAAKhH,IAAwBM,mBAGhDpG,GACC,CACE4P,KAAoBC,aACpBD,KAAoBE,aACpBF,KAAoBG,eACpBH,KAAoBI,gBAEtB9P,IAEE2M,EAAgBC,KAAK9C,IAAeC,gBAIvCjK,GAAsB,CAAC4F,KAA8BS,eAAgBnG,IAClE2M,EAAgBC,KAAKhH,IAAwBO,gBAGhDrG,GAAsB,CAAC4F,KAA8BU,kBAAmBpG,IACrE2M,EAAgBC,KAAKhH,IAAwBQ,mBAGhDtG,GAAsB,CAAC4F,KAA8BW,cAAerG,IACjE2M,EAAgBC,KAAKhH,IAAwBS,eAGhDvG,GAAsB,CAAC4F,KAA8BY,kBAAmBtG,IACrE2M,EAAgBC,KAAKhH,IAAwBU,mBAIhDxG,GAAsB,CAAC4F,KAA8Ba,cAAevG,IACjE2M,EAAgBC,KAAKhH,IAAwBW,eAKhDzG,GAAsB,CAAC4G,KAAuBC,WAAY3G,IACvD2M,EAAgBC,KAAKhG,IAAiBD,YAGzC7G,GAAsB,CAAC4G,KAAuBH,cAAevG,IAC1D2M,EAAgBC,KAAKhG,IAAiBL,eAIzCzG,GAAsB,CAAC4G,KAAuBG,oBAAqB7G,IAChE2M,EAAgBC,KAAKhG,IAAiBC,qBAGzC/G,GAAsB,CAAC4G,KAAuBL,cAAerG,IAC1D2M,EAAgBC,KAAKhG,IAAiBP,eAKzCvG,GAAsB,CAACgH,KAAoBC,cAAe/G,IACvD2M,EAAgBC,KAAK5F,IAAcC,eAGtCnH,GACC,CAACgH,KAAoBiJ,aAAcjJ,KAAoBkJ,aACvDhQ,IAEE2M,EAAgBC,KAAK5F,IAAciJ,eAItCnQ,GAAsB,CAACoH,KAAwBC,qBAAsBnH,IAClE2M,EAAgBC,KAAKxF,IAAkBC,mBAG1CvH,GACC,CAACoH,KAAwBgJ,gBAAiBhJ,KAAwBiJ,kBAClEnQ,IAEE2M,EAAgBC,KAAKxF,IAAkBgJ,mBAI1CtQ,GAAsB,CAACwH,IAAoBC,cAAevH,IACvD2M,EAAgBC,KAAKpF,IAAcD,eAGtCzH,GACC,CAACwH,IAAoB+I,aAAc/I,IAAoBgJ,aACvDtQ,IAEE2M,EAAgBC,KAAKpF,IAAc6I,eAItCvQ,GAAsB,CAAC2H,KAAuBC,oBAAqB1H,IAChE2M,EAAgBC,KAAKjF,IAAiBC,kBAGzC9H,GACC,CAAC2H,KAAuB8I,eAAgB9I,KAAuB+I,iBAC/DxQ,IAEE2M,EAAgBC,KAAKjF,IAAiB8I,kBAIzC3Q,GAAsB,CAAC+H,KAAwBC,kBAAmB9H,IAC/D2M,EAAgBC,KAAK7E,IAAkBD,mBAG1ChI,GACC,CAAC+H,KAAwB6I,iBAAkB7I,KAAwB8I,iBACnE3Q,IAEE2M,EAAgBC,KAAK7E,IAAkB2I,mBAI1C5Q,GAAsB,CAACkI,IAAiBC,WAAYjI,IACjD2M,EAAgBC,KAAK1E,IAAWC,YAGnCrI,GAAsB,CAACkI,IAAiB4I,UAAW5I,IAAiB6I,UAAW7Q,IAC5E2M,EAAgBC,KAAK1E,IAAW4I,YAInChR,GAAsB,CAACsI,IAAqBC,eAAgBrI,IACzD2M,EAAgBC,KAAKtE,IAAeC,eAIvC7I,IAASiN,EAAgBC,KAAKb,IAAeC,sBAC7CtM,IAASiN,EAAgBC,KAAKb,IAAeE,eAC7CvM,IAASiN,EAAgBC,KAAKb,IAAeG,eAC7CxM,IAASiN,EAAgBC,KAAKb,IAAeI,wBAE5CvM,KAAcE,GAAsB,CAACsM,IAAmBC,SAAUrM,KAChE2M,EAAgBC,KAAKN,IAAaD,UAErC9L,GAAiBoM,EAAgBC,KAAKL,IAAsBC,cAC5DjM,GAAiBoM,EAAgBC,KAAKL,IAAsBE,kBAG5D3M,GAAsB,CAAC0I,IAAkBC,WAAYzI,IAClD2M,EAAgBC,KAAKlE,IAAYD,YAGpC3I,GAAsB,CAAC0I,IAAkBuI,WAAY/Q,IAClD2M,EAAgBC,KAAKlE,IAAYqI,YAIpCjR,GAAsB,CAAC6I,KAAoBC,UAAW5I,IACnD2M,EAAgBC,KAAhB,MAAAD,EAAwB,CAAC9D,IAAcE,YAAaF,IAAcC,aAKrEhJ,GAAsB,CAACkJ,KAAiBC,WAAYjJ,IACjD2M,EAAgBC,KAAK1D,IAAWD,YAGnCnJ,GAAsB,CAACkJ,KAAiBgI,QAAShI,KAAiBiI,UAAWjR,IAC1E2M,EAAgBC,KAAK1D,IAAWgI,YAGnCpR,GAAsB,CAACkJ,KAAiBmI,qBAAsBnR,IAC3D2M,EAAgBC,KAAK1D,IAAWkI,wBAInCtR,GAAsB,CAACqJ,IAAmBC,aAAcpJ,IACrD2M,EAAgBC,KAAKvD,IAAaD,cAGrCtJ,GACC,CAACqJ,IAAmBkI,WAAYlI,IAAmBmI,WACnDtR,IAEE2M,EAAgBC,KAAKvD,IAAakI,cAGrCzR,GAAsB,CAACqJ,IAAmBqI,gBAAiBxR,IACxD2M,EAAgBC,KAAK6E,IAAgBC,0BAIxC5R,GAAsB,CAACwJ,KAAkBC,YAAavJ,IACnD2M,EAAgBC,KAAKpD,IAAYC,aAGpC3J,GAAsB,CAACwJ,KAAkBqI,YAAa3R,IACnD2M,EAAgBC,KAAKpD,IAAYoI,aAIpC9R,GAAsB,CAAC4J,IAAgBC,WAAY3J,IAChD2M,EAAgBC,KAAKhD,IAAUD,YAGlC7J,GAAsB,CAAC4J,IAAgBmI,QAASnI,IAAgBoI,UAAW9R,IACxE2M,EAAgBC,KAAKhD,IAAUmI,YAGlCjS,GAAsB,CAAC4J,IAAgBsI,wBAAyBhS,IAC7D2M,EAAgBC,KAAKhD,IAAUqI,sBAKlCnS,GAAsB,CAACoK,KAAkBC,YAAanK,IACvD,CAAC,EAAG,GAAGG,SAASiK,OAAOC,SAASD,OAAOC,SAAP,OAAgB/J,QAAhB,IAAgBA,IAAiB,OAC7DqM,EAAgBC,KAAKtC,IAAYH,aAGpCrK,GACC,CAACoK,KAAkBgI,WAAYhI,KAAkBiI,WACjDnS,IAEE2M,EAAgBC,KAAKtC,IAAY4H,cAIpCpS,GAAsB,CAACyK,KAAeC,SAAUxK,IACjD,CAAC,EAAG,GAAGG,SAASiK,OAAOC,SAASD,OAAOC,SAAP,OAAgB/J,QAAhB,IAAgBA,IAAiB,OAC7DqM,EAAgBC,KAAKnC,IAASD,UAGjC1K,GAAsB,CAACyK,KAAe6H,QAAS7H,KAAe8H,QAASrS,IACpE2M,EAAgBC,KAAKnC,IAAS2H,UAIjCtS,GAAsB,CAAC4K,KAAkBC,YAAa3K,IACnD2M,EAAgBC,KAAKhC,IAAYD,aAGpC7K,GACC,CAAC4K,KAAkB4H,WAAY5H,KAAkB6H,WACjDvS,IAEE2M,EAAgBC,KAAKhC,IAAY0H,aAIpCxS,GAAsB,CAACmL,KAAmBC,aAAclL,IACrD2M,EAAgBC,KAAKzB,IAAaD,cAGrCpL,GACC,CAACmL,KAAmBuH,WAAYvH,KAAmBwH,aACnDzS,IAEE2M,EAAgBC,KAAKzB,IAAasH,cAIrC3S,GAAsB,CAAC+K,IAAiBC,cAAe9K,IACpD2M,EAAgBC,KAAK7B,IAAWC,YAGnClL,GAAsB,CAAC+K,IAAiB6H,UAAW7H,IAAiB8H,UAAW3S,IAC5E2M,EAAgBC,KAAK7B,IAAW6H,YAInC9S,GAAsB,CAACsL,KAAyBC,uBAAwBrL,IACrE2M,EAAgBC,KAAKtB,IAAmBC,yBAG3CzL,GAAsB,CAACsL,KAAyBI,yBAA0BxL,IACvE2M,EAAgBC,KAAKtB,IAAmBG,2BAG3C3L,GAAsB,CAACsL,KAAyBM,4BAA6B1L,IAC1E2M,EAAgBC,KAAKtB,IAAmBK,8BAG3C7L,GAAsB,CAACsL,KAAyBQ,wBAAyB5L,IACtE2M,EAAgBC,KAAKtB,IAAmBO,yBAGrCc,I,wGCj+BIkG,EAAU,WAErB,MAAwBC,oBAAS,WAC/B,IAEE,IAAMC,EAAOC,OAAOC,aAAaC,QAAQ,QAEzC,OAAOH,EAAOI,KAAKC,MAAML,GAAQM,IAAYC,OAAOC,KACpD,MAAOC,GAEP,OAAOH,IAAYC,OAAOC,SAR9B,mBAAOA,EAAP,KAAaE,EAAb,KA8CA,OApBAC,qBAAU,WAAO,IAAD,EAERC,EAAUX,OAAOY,SAASC,MAUhC,EAAAF,EAAQG,WAAUC,OAAlB,oBAA4BJ,EAAQG,YAGvB,UAATP,GACFI,EAAQG,UAAUE,IAXD,CACjBC,KAAM,cACNC,SAAU,kBACV,YAAa,oBAQoBX,MAElC,CAACA,IAEG,CAACA,EAjCS,SAACY,GAChB,IAEE,IAAMC,EAAeD,aAAiBE,SAAWF,EAAMZ,GAAQY,EAE/DV,EAAQW,GAERpB,OAAOC,aAAaqB,QAAQ,OAAQnB,KAAKoB,UAAUH,IACnD,MAAOZ,S,kCCxBEgB,IALD,CACZ9C,wBAAyB,4BACzB+C,iBAAkB,gC,2LCgILC,IApHM,WAAO,IAAD,IAEnBC,EAAcC,qBAAWC,KASzBC,GALC,IACA,IAIkB,SAAnBA,EAAoBC,EAAGC,GAGtBC,IAAKC,aAKRD,IAAKE,QACLC,YAAW,kBAAMN,EAAiBC,EAAGC,KAAO,MAL5CD,EAAEM,iBACFV,EAAYW,eAAeN,GAC3BO,EAAYP,MAMVQ,EAAQC,aAAY,SAACC,GAAD,OAAWA,KAC/BC,EAAW,UAAGC,cAA0BJ,GAAOG,mBAApC,QAAmD,KACpE,EAAgC7C,mBAAQ,UAACG,aAAaC,QAAQ,eAAtB,QAAiC,aAAzE,mBAAO2C,EAAP,KAAiBN,EAAjB,KACA,EAAsCzC,mBAAS6C,EAAYG,eAA3D,mBAAOC,EAAP,KAAoBC,EAApB,KA8DA,OAJAtC,qBAAU,WAAO,IAAD,EACkC,KAA5C,UAACuC,IAAIC,oCAAL,QAAqC,KAAyB,aAAZL,IAlDtDxJ,QAAQ8J,IAAI,cAEZC,IACGC,IAAIJ,IAAIC,8BACRI,MAAK,SAACC,GACL,IAEIC,EAFOD,EAASE,KAEID,aAMtB,CACE,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACArW,SAASqW,EAAaE,gBAExB/B,EAAYW,eAAe,MAC3BC,EAAY,MACZS,EAAeQ,KAEf7B,EAAYW,eAAe,MAC3BC,EAAY,MACZS,EAAe,UAGlBW,OAAM,SAACnD,GACNnH,QAAQ8J,IAAI3C,SAMf,IAGD,eAAC,IAAD,CAAsBoD,IAAI,MAAMC,UAAU,6BAA1C,UACE,cAAC,IAAD,CAAgBD,IAAK,IAAKC,UAAU,WAAWC,QAAS,SAAC/B,GAAD,OAAOA,EAAEM,kBAAjE,SACE,cAAC,IAAD,CACEwB,UAAU,yBACVlB,YAAyB,MAAZE,EAAmBE,EAAc,KAC9CgB,KAAG,MAIP,eAAC,IAAD,CAAcF,UAAU,OAAOG,OAAK,EAApC,UACE,eAAC,IAAD,CAAcJ,IAAK,IAAKE,QAAS,SAAC/B,GAAD,OAAOD,EAAiBC,EAAG,OAA5D,UACE,cAAC,IAAD,CAAkB8B,UAAU,eAAelB,YAAY,KAAKoB,KAAG,IAC/D,sBAAMF,UAAU,OAAhB,SACE,cAAC,IAAD,CAAkBI,GAAG,0BAGzB,eAAC,IAAD,CAAcL,IAAK,IAAKE,QAAS,SAAC/B,GAAD,OAAOD,EAAiBC,EAAG,OAA5D,UACE,cAAC,IAAD,CAAkB8B,UAAU,eAAelB,YAAaI,EAAagB,KAAG,IACxE,sBAAMF,UAAU,OAAhB,SACE,cAAC,IAAD,CAAkBI,GAAG,kC,kCCrHlBC,IADI,oC,kCCJnB,IAKMC,EALN,OAK6BlB,EAAImB,+BAClBD,O,gGCyBTE,EAAc,SAACC,GACnB,MAAO,QAAQC,KAAKD,IAGhBE,EAAc,SAACC,GACnB,IAAQC,EAAqBD,EAArBC,YAAaC,EAAQF,EAARE,IACbC,EAAqBF,EAArBE,KAEFC,EAFuBH,EAAfI,IAEY,MAAQ,GAC5BC,EAHuBL,EAAVM,MAGW,QAAU,GAIxC,MADkB,UALGJ,EAAO,OAAS,IAKnB,OAAmBC,GAAnB,OAA+BE,GAA/B,OAA6CJ,EAAI7B,gBAS/DmC,EAAe,SAACC,GAAqD,IAA9BC,EAA6B,uDAAP,GAE3DC,EAA6BC,mBAAQ,WACzC,OAAOH,EAAUI,QAAO,SAACC,EAAcd,GAGrC,OADAc,EADqBf,EAAYC,IACJA,EACtBc,IACN,MALqC,CAMtCL,GANsC,mBAMxBC,KAEZK,EAAeC,uBACnB,SAACC,GAEC,IAAQf,EAAQe,EAARf,IACR,EAAwCgB,YAAqBD,GAArDd,EAAR,EAAQA,KAAMI,EAAd,EAAcA,MAAOF,EAArB,EAAqBA,IAAKc,EAA1B,EAA0BA,UACpBC,EAAerB,EAAY,CAE/BG,IAAG,OAAEiB,QAAF,IAAEA,IAAajB,EAClBD,YAAa,CAAEM,QAAOJ,OAAME,SAGxBgB,EAAiCV,EAAWS,GAGhB,oBAA9B,OAAOC,QAAP,IAAOA,OAAP,EAAOA,EAAUC,YACnBL,EAAMrD,iBACNyD,EAASC,SAASL,MAhBQ,CAmB7BN,GAnB6B,mBAmBdD,KAGZa,EAAkBP,uBACtB,SAACC,GACCF,EAAaE,KAFkB,CAIhCR,GAJgC,mBAIlBC,KAiBjB,OAdAzE,qBAAU,WASR,OARAwE,EAAUe,SAAQ,SAACH,GACjB,IAAKzB,EAAYyB,EAASnB,KACxB,MAAM,IAAIuB,MAAM,mCAIpBlG,OAAOmG,iBAAiB,UAAWH,GAE5B,WACLhG,OAAOoG,oBAAoB,UAAWJ,MAEvC,CAACA,IAEG,CAAEA,qB,8ECzGX,OAAe,cAA0B,yC,kCCAzC,OAAe,cAA0B,wC,qUCC5BK,EAAqB,SAAClF,GAAD,MAAY,CAC5CmF,KAAM,uBACNC,QAASpF,IAIEqF,EAAsB,SAACrF,GAAD,MAAY,CAC7CmF,KAAM,wBACNC,QAASpF,IAIEsF,EAAmB,SAACtF,GAAD,MAAY,CAC1CmF,KAAM,qBACNC,QAASpF,IAIEuF,EAAmB,SAACvF,GAAD,MAAY,CAC1CmF,KAAM,qBACNC,QAASpF,I,0BC2HIwF,EA1HO,SAACC,GAErB,IAAQtG,EAAqEsG,EAArEtG,OAAQuG,EAA6DD,EAA7DC,SAAUC,EAAmDF,EAAnDE,UAAWC,EAAwCH,EAAxCG,aAAcC,EAA0BJ,EAA1BI,WAAYC,EAAcL,EAAdK,UAGzDC,EAAWC,cACX3E,EAAQC,aAAY,SAACC,GAAD,OAAWA,KAC/B0E,EAAyB3E,aAAY,SAACC,GAAD,OAAW2E,YAA8B3E,MAE9E4E,EAAe9E,EAAMlC,OAAOgH,aAElC,EAAoDxH,oBAAS,GAA7D,mBAAOyH,EAAP,KAA2BC,EAA3B,KAGMC,EAAiB,qBAAXnH,GAAkCwG,EAAoBY,WAAR,MAuC1D,OArBAhH,qBAAU,WAYR,OAXIuG,IACEA,EAAUK,cACZJ,EAASb,EAAmBY,EAAUK,eAEpCL,EAAUU,eACZT,EAASV,EAAoBS,EAAUU,gBAErCV,EAAUW,YACZV,EAAST,EAAiBQ,EAAUW,cAGjC,WA1BHX,IACEA,EAAUK,cACZJ,EAASb,EAAmB,SAE1BY,EAAUU,eACZT,EAASV,GAAqBS,EAAUU,gBAEtCV,EAAUW,YACZV,EAAST,GAAkBQ,EAAUW,iBAmBxC,IAEHlH,qBAAU,WACJ0G,EAAuBS,OAAS,GAClCL,GAAsB,KAEvB,CAACJ,IAGF,sBACEvD,UACG,CAAC,QAASrC,IAAMpF,WAAWjP,SAAS0Z,EAASD,MAAMkB,SAASC,UAKzDC,IAAW,8DAAD,eACPjB,EAAeA,IALlBiB,IAAW,sCAAD,eACPjB,EAAeA,IAJ1B,UAaE,qBAAKlD,UAAU,oBACf,qBAAKA,UAAU,yBACf,sBACEA,UAAWmE,IAAW,aACpB,mBAAoBlB,EACpB,uBAAwBA,EACxB,gBAAkC,UAAjBQ,GAHE,qCAIYN,GAA8B,SAAfA,GAAyBA,EAAWa,SALtF,UAQGN,GACCH,EAAuBa,KAAI,SAACC,EAAcC,GAAf,OACzB,eAACC,EAAA,EAAD,CAEEC,MAAOC,YAAsBJ,EAAaK,aAAaF,MACvDvE,QAAS,WACqB,IAAxBoE,EAAaM,QACftB,EAASuB,YAA6B,CAACP,EAAaQ,mBAExD7E,UAAS,gBAAmC,IAAxBqE,EAAaM,OAAe,aAAe,IAC/DG,OAAQ,CAAEC,UAAW,MAAOC,YAAa,MAAOC,WAAY,OAR9D,UAUE,sBAAKjF,UAAU,0BAAf,UACE,cAAC,IAAD,aAEEkF,SAAKC,EACLnF,UAAW,QACXoF,SAAU,GACVC,UAAW,IACPC,YAA0BjB,EAAaK,eAE7C,sBAAMa,MAAO,CAAEC,eAAgB,SAAUP,WAAY,OAArD,SACGZ,EAAaoB,kBAGlB,qBACEzF,UAAU,aACV0F,wBAAyB,CAAEC,OAAQtB,EAAauB,aAxB7CtB,MA4BX,cAACV,EAAD,2BAEkB,qBAAXnH,GAAkCwG,EAEnC,GADA,CAAEjD,UAAWmE,IAAW,CAAE,gBAAiBlB,MAHjD,aAOGD,Y,oCC/GI6C,EAvBA,CACb,CACEC,KAAMnI,IAAM7N,UACZiW,UAAWC,gBAAK,kBAAM,4DAExB,CACEF,KAAMnI,IAAMjO,aACZqW,UAAWC,gBAAK,kBAAM,0DAExB,CACEF,KAAMnI,IAAM3N,mBACZ+V,UAAWC,gBAAK,kBAAM,0DAExB,CACEF,KAAMnI,IAAMnO,aACZuW,UAAWC,gBAAK,kBAAM,4DAExB,CACEF,KAAMnI,IAAMsI,eACZF,UAAWC,gBAAK,kBAAM,6D,SCRXH,EAXA,CACb,CACEC,KAAMnI,IAAMxJ,UACZ4R,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,IAAM5B,UACZgK,UAAWC,gBAAK,kBAAM,qCCIXH,EAXA,CACb,CACEC,KAAMnI,IAAMhI,YACZoQ,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,IAAM/H,gBACZmQ,UAAWC,gBAAK,kBAAM,qC,SCIXH,EAXA,CACb,CACEC,KAAMnI,IAAMvN,aACZ2V,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,IAAMvE,aACZ2M,UAAWC,gBAAK,kBAAM,sC,SCIXH,EAXA,CACb,CACEC,KAAMnI,IAAMnN,iBACZuV,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,IAAMpE,iBACZwM,UAAWC,gBAAK,kBAAM,sC,SCIXH,EAXA,CACb,CACEC,KAAMnI,IAAMrM,UACZyU,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,IAAM1D,UACZ8L,UAAWC,gBAAK,kBAAM,sC,SCIXH,EAXA,CACb,CACEC,KAAMnI,IAAMjN,aACZqV,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,IAAMnE,aACZuM,UAAWC,gBAAK,kBAAM,sC,SCIXH,EAXA,CACb,CACEC,KAAMnI,IAAM5M,gBACZgV,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,IAAM/D,gBACZmM,UAAWC,gBAAK,kBAAM,sC,SCIXH,EAXA,CACb,CACEC,KAAMnI,IAAM1M,iBACZ8U,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,IAAM9D,iBACZkM,UAAWC,gBAAK,kBAAM,qC,SCIXH,EAXA,CACb,CACEC,KAAMnI,IAAMrK,WACZyS,UAAWC,gBAAK,kBAAM,iEAExB,CACEF,KAAMnI,IAAMtC,WACZ0K,UAAWC,gBAAK,kBAAM,sC,SCIXH,EAXA,CACb,CACEC,KAAMnI,IAAMtJ,YACZ0R,UAAWC,gBAAK,kBAAM,kEAExB,CACEF,KAAMnI,IAAM/B,YACZmK,UAAWC,gBAAK,kBAAM,4E,SCIXH,GAXA,CACb,CACEC,KAAMnI,IAAMhK,QACZoS,UAAWC,gBAAK,kBAAM,iEAExB,CACEF,KAAMnI,IAAMpC,QACZwK,UAAWC,gBAAK,kBAAM,oE,UCKXH,GAXA,CACb,CACEC,KAAMnI,KAAMxS,cACZ4a,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,KAAMtS,gBACZ0a,UAAWC,gBAAK,kBAAM,kE,UCGXH,GAXA,CACb,CACEC,KAAMnI,KAAM7J,WACZiS,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,KAAMlC,WACZsK,UAAWC,gBAAK,kBAAM,oE,UCIXH,GAXA,CACb,CACEC,KAAMnI,KAAMzL,YACZ6T,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,KAAM1L,UACZ8T,UAAWC,gBAAK,kBAAM,sC,UCwBXH,GA/BA,CACb,CACEC,KAAMnI,KAAMtQ,aACZ0Y,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,KAAMjF,aACZqN,UAAWC,gBAAK,kBAAM,iFAExB,CACEF,KAAMnI,KAAMpQ,gBACZwY,UAAWC,gBAAK,kBAAM,iFAExB,CACEF,KAAMnI,KAAMlQ,eACZsY,UAAWC,gBAAK,kBAAM,iFAExB,CACEF,KAAMnI,KAAMhQ,kBACZoY,UAAWC,gBAAK,kBAAM,iEAExB,CACEF,KAAMnI,KAAM9P,mBACZkY,UAAWC,gBAAK,kBAAM,qCCSXH,GA/BA,CACb,CACEC,KAAMnI,IAAMlR,UACZsZ,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,IAAMpF,UACZwN,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,IAAMhR,aACZoZ,UAAWC,gBAAK,kBAAM,iFAExB,CACEF,KAAMnI,IAAM9Q,YACZkZ,UAAWC,gBAAK,kBAAM,iFAExB,CACEF,KAAMnI,IAAM3Q,gBACZ+Y,UAAWC,gBAAK,kBAAM,oCAExB,CACEF,KAAMnI,IAAM5Q,uBACZgZ,UAAWC,gBAAK,kBAAM,iEAExB,CACEF,KAAMnI,IAAM1Q,gBACZ8Y,UAAWC,gBAAK,kBAAM,kF,UC8BXH,GA1DA,CAEb,CACEC,KAAMnI,KAAMvO,kBACZ2W,UAAWC,gBAAK,kBAAM,iEAExB,CACEF,KAAMnI,KAAMzO,kBACZ6W,UAAWC,gBAAK,kBAAM,0EAExB,CACEF,KAAMnI,KAAMtO,iBACZ0W,UAAWC,gBAAK,kBAAM,iEAExB,CACEF,KAAMnI,KAAMxO,gBACZ4W,UAAWC,gBAAK,kBAAM,iEAIxB,CACEF,KAAMnI,KAAMrO,cACZyW,UAAWC,gBAAK,kBAAM,kEAExB,CACEF,KAAMnI,KAAMnO,aACZuW,UAAWC,gBAAK,kBAAM,0DAExB,CACEF,KAAMnI,KAAMlO,iBACZsW,UAAWC,gBAAK,kBAAM,0DAExB,CACEF,KAAMnI,KAAMpO,iBACZwW,UAAWC,gBAAK,kBAAM,0DAExB,CACEF,KAAMnI,KAAMjO,aACZqW,UAAWC,gBAAK,kBAAM,iEAExB,CACEF,KAAMnI,KAAM7O,kBACZiX,UAAWC,gBAAK,kBAAM,2DAExB,CACEF,KAAMnI,KAAM1O,oBACZ8W,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,KAAM/E,oBACZmN,UAAWC,gBAAK,kBAAM,2DAExB,CACEF,KAAMnI,KAAM/N,kBACZmW,UAAWC,gBAAK,kBAAM,0E,UC9BXH,GAxBA,CACb,CACEC,KAAMnI,KAAM7K,UACZiT,UAAWC,gBAAK,kBAAM,4DAExB,CACEF,KAAMnI,KAAMzC,UACZ6K,UAAWC,gBAAK,kBAAM,4DAExB,CACEF,KAAMnI,KAAMvC,mBACZ2K,UAAWC,gBAAK,kBAAM,4DAExB,CACEF,KAAMnI,KAAMuI,YACZH,UAAWC,gBAAK,kBAAM,2DACtBvJ,OAAQ,eAEV,CACEqJ,KAAMnI,KAAMvK,kBACZ2S,UAAWC,gBAAK,kBAAM,6D,UCJXH,GAfA,CACb,CACEC,KAAMnI,KAAM9S,cACZkb,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,KAAMvF,gBACZ2N,UAAWC,gBAAK,kBAAM,oCAExB,CACEF,KAAMnI,KAAM5S,sBACZgb,UAAWC,gBAAK,kBAAM,qC,UCYXH,GAvBA,CACb,CACEC,KAAMnI,KAAMlS,QACZsa,UAAWC,gBAAK,kBAAM,oEAExB,CACEF,KAAMnI,KAAMhS,OACZoa,UAAWC,gBAAK,kBAAM,iEAExB,CACEF,KAAMnI,KAAM9R,MACZka,UAAWC,gBAAK,kBAAM,6EAExB,CACEF,KAAMnI,KAAM5R,OACZga,UAAWC,gBAAK,kBAAM,iFAExB,CACEF,KAAMnI,KAAM1R,sBACZ8Z,UAAWC,gBAAK,kBAAM,2DCZXH,GAPA,CACb,CACEC,K,QAAMnI,EAAMtR,KACZ0Z,UAAWC,gBAAK,kBAAM,sCCIXH,GAPA,CACb,CACEC,K,QAAMnI,EAAM7T,UACZic,UAAWC,gBAAK,kBAAM,sC,UCwBXH,GA3BA,CACb,CACEC,KAAMnI,KAAM1P,qBACZ8X,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,KAAMxP,qBACZ4X,UAAWC,gBAAK,kBAAM,0DAExB,CACEF,KAAMnI,KAAMpP,oBACZwX,UAAWC,gBAAK,kBAAM,oEAExB,CACEF,KAAMnI,KAAMtP,eACZ0X,UAAWC,gBAAK,kBAAM,oCAExB,CACEF,KAAMnI,KAAMwI,8BACZJ,UAAWC,gBAAK,kBAAM,0DAExB,CACEF,KAAMnI,KAAM1I,cACZ8Q,UAAWC,gBAAK,kBAAM,sC,oBCJXH,GAnBA,CACb,CACEC,KAAMnI,KAAMpT,kBACZwb,UAAWC,gBAAK,kBAAM,oCAExB,CACEF,KAAMnI,KAAMzF,kBACZ6N,UAAWC,gBAAK,kBAAM,0EAExB,CACEF,KAAMnI,KAAMlT,UACZsb,UAAWC,gBAAK,wBACZxS,SAAQ,UAAC4L,KAAIgH,6BAAL,QAA8B,KACpC,sDACA,kE,UC4DKP,GA3EA,CACb,CACEC,KAAMnI,KAAM1H,cACZ8P,UAAWC,gBAAK,kBAAM,0DAExB,CACEF,KAAMnI,KAAMxH,iBACZ4P,UAAWC,gBAAK,kBAAM,mEAExB,CACEF,KAAMnI,KAAM9G,4BACZkP,UAAWC,gBAAK,kBAAM,0EAExB,CACEF,KAAMnI,KAAMpH,gCACZwP,UAAWC,gBAAK,kBAAM,0DAExB,CACEF,KAAMnI,KAAMlH,qBACZsP,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,KAAMtH,+BACZ0P,UAAWC,gBAAK,kBAAM,0DAExB,CACEF,KAAMnI,KAAMhH,8BACZoP,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,KAAMhG,0BACZoO,UAAWC,gBAAK,kBAAM,0DAExB,CACEF,KAAMnI,KAAM5G,kBACZgP,UAAWC,gBAAK,kBAAM,0DAExB,CACEF,KAAMnI,KAAM1G,wBACZ8O,UAAWC,gBAAK,kBAAM,0DAExB,CACEF,KAAMnI,KAAMxG,2BACZ4O,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,KAAM0I,uBACZN,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,KAAMtG,+BACZ0O,UAAWC,gBAAK,kBAAM,mFAExB,CACEF,KAAMnI,KAAMlG,2BACZsO,UAAWC,gBAAK,kBAAM,0DAExB,CACEF,KAAMnI,KAAMpG,0BACZwO,UAAWC,gBAAK,kBAAM,oCAExB,CACEF,KAAMnI,KAAM9F,wBACZkO,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,KAAM5F,2BACZgO,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,KAAMxT,WACZ4b,UAAWC,gBAAK,kBAAM,qC,UC3DXH,GAXA,CACb,CACEC,KAAMnI,KAAMpL,YACZwT,UAAWC,gBAAK,kBAAM,iEAExB,CACEF,KAAMnI,KAAMjD,YACZqL,UAAWC,gBAAK,kBAAM,kE,UCGXH,GAXA,CACb,CACEC,KAAMnI,KAAM/K,WACZmT,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,KAAM5C,WACZgL,UAAWC,gBAAK,kBAAM,kE,UCYXH,GAnBA,CACb,CACEC,KAAMnI,KAAMvL,UACZ2T,UAAWC,gBAAK,kBAAM,oCAExB,CACEF,KAAMnI,KAAMtD,UACZ0L,UAAWC,gBAAK,kBAAM,iEAExB,CACEF,KAAMnI,KAAMpD,sBACZwL,UAAWC,gBAAK,kBAAM,oCAExB,CACEF,KAAMnI,KAAM2I,kBACZP,UAAWC,gBAAK,kBAAM,sC,UCHXH,GAXA,CACb,CACEC,KAAMnI,KAAM/O,iBACZmX,UAAWC,gBAAK,kBAAM,0DAExB,CACEF,KAAMnI,KAAM4I,iBACZR,UAAWC,gBAAK,kBAAM,kE,UCGXH,GAXA,CACb,CACEC,KAAMnI,KAAM3I,wBACZ+Q,UAAWC,gBAAK,kBAAM,mEAExB,CACEF,KAAMnI,KAAM6I,kBACZT,UAAWC,gBAAK,kBAAM,sCCAXH,GAPA,CACb,CACEC,K,QAAMnI,EAAM9C,wBACZkL,UAAWC,gBAAK,kBAAM,qC,UCSXH,GAXA,CACb,CACEC,KAAMnI,KAAM/L,UACZmU,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,KAAMzD,UACZ6L,UAAWC,gBAAK,kBAAM,sCCAXH,GAPA,CACb,CACEC,K,QAAMnI,EAAMnI,QACZuQ,UAAWC,gBAAK,kBAAM,qECgBXH,GAnBA,CACb,CACEC,KAAMnI,IAAMtI,aACZ0Q,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,IAAMvI,aACZ2Q,UAAWC,gBAAK,kBAAM,iEAExB,CACEF,KAAMnI,IAAMrI,qBACZyQ,UAAWC,gBAAK,kBAAM,6DAExB,CACEF,KAAMnI,IAAMxI,oBACZ4Q,UAAWC,gBAAK,kBAAM,kECNXH,GAVA,CACb,CACEC,KCLU,CACZW,cAAe,0BDIDA,cACZV,UAAWC,gBAAK,kBAAM,yEACtBU,KAAM,CACJC,aAAa,KEGJd,GAPA,CACb,CACEC,K,OAAMnI,EAAMjM,aACZqU,UAAWC,gBAAK,kBAAM,kECIXH,GAPA,CACb,CACEC,K,QAAMnI,EAAMiJ,WACZb,UAAWC,gBAAK,kBAAM,sCCIXH,GAPA,CACb,CACEC,K,QAAMnI,EAAMkJ,YACZd,UAAWC,gBAAK,kBAAM,sC,WCWXH,GAfA,CACb,CACEC,KAAMnI,KAAMmJ,eACZf,UAAWC,gBAAK,kBAAM,2DAExB,CACEF,KAAMnI,KAAMoJ,eACZhB,UAAWC,gBAAK,kBAAM,iEAExB,CACEF,KAAMnI,KAAMqJ,mBACZjB,UAAWC,gBAAK,kBAAM,kE,WCCXH,GAXA,CACb,CACEC,KAAMnI,KAAMsJ,aACZlB,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAMnI,KAAMuJ,aACZnB,UAAWC,gBAAK,kBAAM,sCCLXrI,GAND,CACZwJ,kBAAmB,sBACnBC,qBAAsB,wEACtBC,qBAAsB,uCCeTxB,GAfA,CACb,CACEC,KAAMnI,GAAMwJ,kBACZpB,UAAWC,gBAAK,kBAAM,oEAExB,CACEF,KAAMnI,GAAMyJ,qBACZrB,UAAWC,gBAAK,kBAAM,4DAExB,CACEF,KAAMnI,GAAM0J,qBACZtB,UAAWC,gBAAK,kBAAM,6DCHXH,GAPA,CACb,CACEC,K,QAAMnI,EAAMzK,cACZ6S,UAAWC,gBAAK,kBAAM,sCCkDpBH,GAAM,sBACPyB,GADO,YAEPC,GAFO,YAGPC,GAHO,YAIPC,GAJO,YAKPC,GALO,YAMPC,GANO,YAOPC,GAPO,YAQPC,GARO,YASPC,GATO,YAUPC,GAVO,YAWPC,GAXO,YAYPC,IAZO,YAaPC,IAbO,YAcPC,IAdO,YAePC,IAfO,YAgBPC,IAhBO,YAiBPC,IAjBO,YAkBPC,IAlBO,YAmBPC,IAnBO,YAoBPC,IApBO,YAqBPC,IArBO,YAsBPC,IAtBO,YAuBPC,IAvBO,YAwBPC,IAxBO,YAyBPC,IAzBO,YA0BPC,IA1BO,YA2BPC,IA3BO,YA4BPC,IA5BO,YA6BPC,IA7BO,YA8BPC,IA9BO,YA+BPC,IA/BO,YAgCPC,IAhCO,YAiCPC,IAjCO,YAkCPC,IAlCO,YAmCPC,IAnCO,YAoCP/C,IApCO,YAqCPgD,IArCO,YAsCPC,IAtCO,YAuCPC,IAvCO,YAwCPC,IAxCO,YAyCPC,IAzCO,YA0CPC,IA1CO,YA2CPC,IA3CO,CA4CV,CACEjE,KAAM,QACNC,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAM,2BACNC,UAAWC,gBAAK,kBAAM,2DACtBvJ,OAAQ,eAEV,CACEqJ,KAAMkE,KAAeC,kBACrBlE,UAAWC,gBAAK,kBAAM,0DACtBvJ,OAAQ,eAEV,CACEqJ,KAAMkE,KAAeE,0BACrBnE,UAAWC,gBAAK,kBAAM,oCACtBvJ,OAAQ,eAEV,CACEqJ,KAAM,eACNC,UAAWC,gBAAK,kBAAM,qCAExB,CACEF,KAAM,SACNC,UAAWC,gBAAK,kBAAM,2DACtBvJ,OAAQ,cACRiK,KAAM,CACJyD,WAAW,IAGf,CACErE,KAAM,oBACNC,UAAWC,gBAAK,kBAAM,gFAExB,CACEF,KAAM,SACNC,UAAWC,gBAAK,kBAAM,oCAGxB,CACEF,KAAM,kBACNrJ,OAAQ,cACRsJ,UAAWC,gBAAK,kBAAM,oCAExB,CACEF,KAAM,sCACNC,UAAWC,gBAAK,kBAAM,oCACtBvJ,OAAQ,iB,+BCnHG2N,GA5BK,SAAC,GAA2B,IAAzBpH,EAAwB,EAAxBA,SAErB,GAF6C,6BAErBhH,gBAAxB,mBAGA,GAHA,UAGkCC,oBAAS,IAA3C,mBAAOoO,EAAP,KAAkBC,EAAlB,KAQA,OALAzN,qBAAU,WAER,OADAyN,GAAa,GACN,kBAAMA,GAAa,MACzB,IAEED,EAKH,qBAAKrK,UAAU,aAAf,SACE,qBAAKA,UAAU,sBAAf,SACE,qBAAKA,UAAU,kBAAf,SACE,qBAAKA,UAAU,eAAf,SAA+BgD,UAP9B,M,0ICuWIuH,I,QA7WI,SAACxH,GAElB,IACErG,EAoBEqG,EApBFrG,KACAE,EAmBEmG,EAnBFnG,QACA4N,EAkBEzH,EAlBFyH,MACAC,EAiBE1H,EAjBF0H,SACAhO,EAgBEsG,EAhBFtG,OACAiO,EAeE3H,EAfF2H,UACAC,EAcE5H,EAdF4H,WACAC,EAaE7H,EAbF6H,cACAC,EAYE9H,EAZF8H,WACAC,EAWE/H,EAXF+H,cACAC,EAUEhI,EAVFgI,YACAC,EASEjI,EATFiI,eACAC,EAQElI,EARFkI,SACAC,EAOEnI,EAPFmI,YACAzH,EAMEV,EANFU,aACA0H,EAKEpI,EALFoI,gBACArH,EAIEf,EAJFe,cACAsH,EAGErI,EAHFqI,iBACAjI,EAEEJ,EAFFI,WACAkI,EACEtI,EADFsI,cAIF,EAA4CpP,oBAAS,GAArD,mBAAOqP,EAAP,KAAuBC,EAAvB,KAGMC,EAAe,SAACtN,GACpBA,EAAEM,iBACF+M,GAAmBD,IA8JfG,EAAoB,CACxB,CAAEnO,MAAO,SAAUoO,MAAO,QAC1B,CAAEpO,MAAO,aAAcoO,MAAO,gBAC9B,CAAEpO,MAAO,SAAUoO,MAAO,WAC1B,CAAEpO,MAAO,OAAQoO,MAAO,SAIpBC,EAAkBF,EAAkBG,MAAK,SAACC,GAAD,OAAOA,EAAEvO,QAAU6F,KAElE,OACE,sBACEnD,UAAWmE,IAAW,+BAAgC,CACpD2H,KAAMR,IAFV,UAKE,mBACES,KAAK,IACL/L,UAAU,qEACVC,QAASuL,EAHX,SAKE,cAAC,KAAD,CAAUQ,KAAM,GAAIhM,UAAU,cAEhC,eAAC,KAAD,CAAkBA,UAAU,qBAA5B,UACE,sBAAKA,UAAU,qDAAf,UACE,oBAAIA,UAAU,OAAd,8BACA,mBAAGA,UAAU,MAAb,8CACA,mBAAG+L,KAAK,IAAI/L,UAAU,mBAAmBC,QAASuL,EAAlD,SACE,cAAC,KAAD,SAIJ,uBAEA,sBAAKxL,UAAU,OAAf,UACE,eAACiM,GAAA,EAAD,CAAWjM,UAAU,OAArB,UACE,mBAAGA,UAAU,mBAAb,kBACA,qBAAKA,UAAU,SAAf,SA/Le,WACvB,IAAMkM,EAAW,CACf,CACEC,KAAM,QACNT,MAAO,QACPU,QAAkB,UAAT1P,GAEX,CACEyP,KAAM,WACNT,MAAO,WACPU,QAAkB,aAAT1P,GAEX,CACEyP,KAAM,OACNT,MAAO,OACPU,QAAkB,SAAT1P,GAEX,CACEyP,KAAM,YACNT,MAAO,YACPU,QAAkB,cAAT1P,IAIb,OAAOwP,EAAS9H,KAAI,SAACiI,EAAO/H,GAC1B,IAAMgI,EAAkBhI,IAAU4H,EAASlI,OAAS,EAEpD,MAAe,qBAAXvH,GAAgD,cAAf4P,EAAMF,KAClC,KAIP,cAACI,GAAA,EAAD,CAEE9J,KAAK,QACLrC,GAAIiM,EAAMF,KACVT,MAAOW,EAAMX,MACbU,QAASC,EAAMD,QACfI,SAAU,kBAAM5P,EAAQyP,EAAMF,OAC9BnM,UAAWmE,IAAW,CAAE,OAAQmI,KAN3BhI,MA8JsBmI,QAG3B,eAACR,GAAA,EAAD,CAAWjM,UAAU,OAArB,UACE,mBAAGA,UAAU,mBAAb,2BACA,sBAAKA,UAAU,SAAf,UACE,cAACuM,GAAA,EAAD,CACE9J,KAAK,QACLrC,GAAG,aACHJ,UAAU,OACV0L,MAAM,aACNU,QAA0B,SAAjB3I,EACT+I,SAAU,kBAAMrB,EAAgB,WAElC,cAACoB,GAAA,EAAD,CACE9J,KAAK,QACLrC,GAAG,QACHsL,MAAM,QACNU,QAA0B,UAAjB3I,EACT+I,SAAU,kBAAMrB,EAAgB,kBAKtC,cAACc,GAAA,EAAD,CAAWjM,UAAU,OAArB,SACE,sBAAKA,UAAU,SAAf,UACE,mBAAGA,UAAU,gCAAb,iBACA,cAACuM,GAAA,EAAD,CACE9J,KAAK,SACLrC,GAAG,MACH+L,KAAK,MACLC,QAAS5B,EACTgC,SAAU,kBAAM/B,GAAUD,WAKhC,cAACyB,GAAA,EAAD,CAAWjM,UAAU,OAArB,SACE,sBAAKA,UAAU,oDAAf,UACE,mBAAGA,UAAU,wBAAb,+BACA,cAAC,KAAD,CACE0M,MAAOC,KACP3M,UAAU,eACV4M,gBAAgB,SAChBC,aAAcpB,EAAkB,GAChCnO,MAAOqO,EACPmB,QAASrB,EACTsB,aAAa,EACbP,SAAU,gBAAGlP,EAAH,EAAGA,MAAH,OAAe+N,EAAc/N,cAM/C,uBAEA,sBAAK0C,UAAU,OAAf,UACE,mBAAGA,UAAU,mBAAb,yBACA,cAACiM,GAAA,EAAD,CAAWjM,UAAU,OAArB,SACE,sBAAKA,UAAU,4BAAf,UACE,cAACuM,GAAA,EAAD,CACE9J,KAAK,QACLrC,GAAG,kBACHsL,MAAM,WACNU,QAAoB,mBAAX3P,EACT+P,SAAU,kBAAM9B,EAAU,aAC1B1K,UAAU,SAEZ,cAACuM,GAAA,EAAD,CACE9J,KAAK,QACLrC,GAAG,oBACHsL,MAAM,aACNU,QAAoB,qBAAX3P,EACT+P,SAAU,kBAAM9B,EAAU,sBAIpB,qBAAXjO,EACC,cAACwP,GAAA,EAAD,CAAWjM,UAAU,OAArB,SACE,sBAAKA,UAAU,4BAAf,UACE,mBAAGA,UAAU,gCAAb,4BACA,cAACuM,GAAA,EAAD,CACE9J,KAAK,SACLrC,GAAG,iBACH+L,KAAK,iBACLC,QAAStI,EACT0I,SAAU,kBAAMpB,GAAkBtH,WAItC,KAEJ,cAACmI,GAAA,EAAD,CAAWjM,UAAU,OAArB,SACE,sBAAKA,UAAU,4BAAf,UACE,mBAAGA,UAAU,gCAAb,yBACA,cAACuM,GAAA,EAAD,CACE9J,KAAK,SACLrC,GAAG,cACH+L,KAAK,cACLC,QAASnB,EACTuB,SAAU,kBAAMtB,GAAaD,cAMrC,uBAEA,sBAAKjL,UAAU,OAAf,UACc,qBAAXvD,EACC,eAACwP,GAAA,EAAD,CAAWjM,UAAU,OAArB,UACE,mBAAGA,UAAU,mBAAb,0BACA,oBAAIA,UAAU,4BAAd,SAhQQ,CAChB,QACA,UACA,YACA,UACA,SACA,OACA,UACA,QAGeoE,KAAI,SAACI,GAAD,OACnB,oBAEExE,UAAWmE,IAAW,gBAAD,OAAiBK,GAAS,CAC7CwI,SAAUjC,IAAgBvG,EAC1ByI,OAAkB,UAAVzI,IAEVvE,QAAS,kBAAM+K,EAAexG,KALzBA,WAuPC,KAEJ,eAACyH,GAAA,EAAD,CAAWjM,UAAU,OAArB,UACE,oBAAGA,UAAU,mBAAb,UACc,qBAAXvD,EAAgC,OAAS,SAD5C,WAGA,qBAAKuD,UAAU,SAAf,SAlPoB,WAC5B,IAAMkN,EAAgB,CACpB,CACEf,KAAM,WACNT,MAAO,WACPU,QAAwB,aAAfzB,GAEX,CACEwB,KAAM,SACNT,MAAO,SACPU,QAAwB,WAAfzB,GAEX,CACEwB,KAAM,SACNT,MAAO,SACPU,QAAwB,WAAfzB,GAEX,CACEwB,KAAM,SACNT,MAAO,SACPU,QAAwB,WAAfzB,IAIb,OAAOuC,EAAc9I,KAAI,SAACiI,EAAO/H,GAC/B,IAAMgI,EAAkBhI,IAAU4I,EAAclJ,OAAS,EAEzD,MAAe,qBAAXvH,GAAgD,WAAf4P,EAAMF,KAClC,KAIP,cAACI,GAAA,EAAD,CAEE9J,KAAK,QACLrC,GAAIiM,EAAMF,KACVT,MAAOW,EAAMX,MACbU,QAASC,EAAMD,QACfI,SAAU,kBAAM5B,EAAcyB,EAAMF,OACpCnM,UAAWmE,IAAW,CAAE,OAAQmI,KAN3BhI,MAiNsB6I,WAI7B,uBAEA,qBAAKnN,UAAU,OAAf,SACE,eAACiM,GAAA,EAAD,CAAWjM,UAAU,OAArB,UACE,mBAAGA,UAAU,mBAAb,yBACA,qBAAKA,UAAU,SAAf,SA7MoB,WAC5B,IAAMoN,EAAgB,CACpB,CACEjB,KAAM,SACNT,MAAO,SACPU,QAAwB,WAAfvB,GAEX,CACEsB,KAAM,SACNT,MAAO,SACPU,QAAwB,WAAfvB,GAEX,CACEsB,KAAM,SACNT,MAAO,SACPU,QAAwB,WAAfvB,IAIb,OAAOuC,EAAchJ,KAAI,SAACiI,EAAO/H,GAC/B,IAAMgI,EAAkBhI,IAAU8I,EAAcpJ,OAAS,EAEzD,OACE,cAACuI,GAAA,EAAD,CAEE9J,KAAK,QACLrC,GAAE,iBAAYiM,EAAMF,MACpBT,MAAOW,EAAMX,MACbU,QAASC,EAAMD,QACfI,SAAU,kBAAM1B,EAAcuB,EAAMF,OACpCnM,UAAWmE,IAAW,CAAE,OAAQmI,KAN3BhI,MAqLsB+I,kB,iIC5WtB,SAASC,KACtB,IAAMC,EAAe3O,aAAY,SAACC,GAAD,OAAWE,0BAAsCF,MAElF,EAAwB5C,mBAASuR,QAAjC,mBAAOC,EAAP,KAAaC,EAAb,KACA,EAAwCzR,mBAAS,MAAjD,mBAAO0R,EAAP,KAAqBC,EAArB,KACMC,EAAOC,eAEb,SAASC,IACPL,EAAQF,QACRI,EAAgBrP,YAAW,kBAAMwP,MAAa,MAWhD,OAdAP,KAAOQ,OAAOH,EAAKG,QAMnBnR,qBAAU,WAGR,OAFAkR,IAEO,WACLE,aAAaN,MAEd,IAGD,qCACE,sBAAM3N,UAAU,6BAAhB,SACGyN,EAAKS,GAAGX,GAAcY,OAAO,eAEhC,sBAAMnO,UAAU,cAAhB,SACGyN,EAAKS,GAAGX,GAAcY,OAAsB,MAAfN,EAAKG,OAAiB,qBAAuB,sB,aCsFpEI,ICvHA,IDgCM,WAEnB,IAAM/K,EAAWC,cAWX+K,EAAWtP,cAA0BH,aAAY,SAACC,GAAD,OAAWA,MAGlE,OACE,eAACyP,GAAA,EAAD,CAAsBvO,IAAI,KAAKC,UAAU,yBAAzC,UACE,eAACuO,GAAA,EAAD,CACExC,KAAK,IACL3L,GAAG,eACHL,IAAI,IACJC,UAAU,8BACVC,QAAS,SAAC/B,GAAD,OAAOA,EAAEM,kBALpB,UAOE,qBAAKwB,UAAU,4BAAf,SAQG,cAACsN,GAAD,MAEH,cAAC,IAAD,CACElN,GAAG,SACH8E,IAA2B,MAAtBmJ,EAASG,eAAoBrJ,EAAYkJ,EAASI,aACvDpJ,UAAU,KACVD,SAAS,KACTZ,MAAM,gBACNkK,QAAkC,MAAzBL,EAASM,aAAuB,GAAKN,EAASM,aACvDC,UAAQ,EACRjK,OAAO,cAGX,eAACkK,GAAA,EAAD,CAAc7O,UAAU,aAAxB,UACG8O,eACC,qCACE,eAACC,GAAA,EAAD,CACEhP,IAAKiP,IACLC,GAAI,CAAE/K,SAAU,oBAAqBrF,MAAO,CAAEqQ,gBAAiB,IAFjE,UAIE,cAAC,KAAD,CAAMlD,KAAM,GAAIhM,UAAU,UAC1B,sBAAMA,UAAU,eAAhB,SACE,cAAC,KAAD,CAAkBI,GAAG,yBAGzB,eAAC2O,GAAA,EAAD,CACEhP,IAAKiP,IACLC,GAAI,CAAE/K,SAAU,oBAAqBrF,MAAO,CAAEqQ,gBAAiB,IAC/DC,OAAQ,CAAEC,QAAS,GAHrB,UAKE,cAAC,KAAD,CAAMpD,KAAM,GAAIhM,UAAU,UAC1B,sBAAMA,UAAU,eAAhB,SACE,cAAC,KAAD,CAAkBI,GAAG,mCAM7B,eAAC2O,GAAA,EAAD,CACE3O,GAAG,SACHL,IAAKiP,IACLC,GAAG,SACHhP,QAAS,kBAAMoD,EAASgM,QAJ1B,UAME,cAAC,KAAD,CAAOrD,KAAM,GAAIhM,UAAU,UAC3B,sBAAMA,UAAU,eAAhB,SACE,cAAC,KAAD,CAAkBI,GAAG,gC,kGE7ElBkP,GA/BY,SAACvM,GAC1B,OACE,8BACE,eAACwM,GAAA,EAAD,CAAWC,iBAAiB,IAA5B,UACE,eAACD,GAAA,EAAUE,KAAX,CAAgBC,SAAS,IAAzB,UACE,cAACH,GAAA,EAAUI,OAAX,gCACA,cAACJ,GAAA,EAAUK,KAAX,+cASF,eAACL,GAAA,EAAUE,KAAX,CAAgBC,SAAS,IAAzB,UACE,cAACH,GAAA,EAAUI,OAAX,gCACA,cAACJ,GAAA,EAAUK,KAAX,qdCXJC,GAAkB,SAAC9M,GACvB,IAAQ+M,EAAuD/M,EAAvD+M,MAAOC,EAAgDhN,EAAhDgN,sBAAuBC,EAAyBjN,EAAzBiN,qBAEtC,OACE,cAAC,KAAD,CACEhQ,UAAU,2BACViQ,iBAAkB,8BAClBC,OAAQH,EACRD,MAAOA,EACPK,MAAO,QACPC,eAAgB,kBAAMJ,KANxB,SAQE,eAAC,KAAD,WACE,eAACK,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,UACE,cAACC,GAAA,EAAD,UACE,cAACC,GAAA,EAAD,CAAWC,OAAK,EAAhB,SACE,eAACJ,GAAA,EAAD,CAAWI,OAAK,EAAhB,UACE,oBAAIzQ,UAAU,eAAd,+BACA,mDACA,mBAAGA,UAAU,uCAAb,suBAgBR,eAACsQ,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAKG,GAAG,IAAR,oBACA,cAACH,GAAA,EAAD,CAAKG,GAAG,OAAR,gDACA,cAACH,GAAA,EAAD,CAAKG,GAAG,IAAR,uBAEF,eAACJ,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAKG,GAAG,IAAR,oBACA,cAACH,GAAA,EAAD,CAAKG,GAAG,IAAR,uBAEF,eAACJ,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAKG,GAAG,IAAIC,GAAG,IAAf,8BAGA,cAACJ,GAAA,EAAD,CAAKG,GAAG,IAAIC,GAAG,IAAf,8BAGA,cAACJ,GAAA,EAAD,CAAKI,GAAG,IAAR,0BAEF,cAACL,GAAA,EAAD,UACE,cAACC,GAAA,EAAD,CAAKI,GAAI,CAAE3E,KAAM,EAAG4E,MAAO,EAAGC,OAAQ,GAAtC,0DAIF,cAACP,GAAA,EAAD,UACE,cAACC,GAAA,EAAD,CAAKI,GAAG,KAAKG,GAAI,CAAE9E,KAAM,EAAG6E,OAAQ,GAApC,qDAIF,eAACP,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAKI,GAAI,CAAE3E,KAAM,OAAQ6E,OAAQ,GAAjC,sCACA,cAACN,GAAA,EAAD,CAAKI,GAAI,CAAE3E,KAAM,OAAQ6E,OAAQ,GAAjC,4CAGJ,cAAC,GAAD,UAMRhB,GAAgBkB,aAAe,CAC7BC,OAAQ,GACRC,UAAU,EACVC,YAAa,IACbC,iBAAiB,EACjBC,iBAAiB,EACjBC,aAAc,GACdC,UAAW,IAGEzB,I,oBCtDA0B,GAjCM,WACnB,IAAMC,EAAUC,cAEhB,EAAsCxV,oBAAS,GAA/C,mBAAOyV,EAAP,KAAoBC,EAApB,KAGA,OACE,mCACE,gCACE,cAAC,KAAD,CACEvR,GAAG,aACHwR,QAAQ,wBACRrM,MAAO,CAAEsM,OAAQ,WACjBrN,MAXQsN,UAYR9F,KAAM,GACN/L,QAAS,WACPuR,EAAQzb,KAAK,0BAGjB,cAACgc,GAAA,EAAD,CACEC,UAAU,OACV9B,OAAQwB,EACRO,OAAO,aACPC,OAnBO,kBAAMP,GAAgBD,IAoB7BS,QAAQ,cALV,yC,qBCvBKC,GAAoB,SAACC,EAAKC,GACrCzV,qBACE,WACE,IAAM0V,EAAW,SAAA1Q,GAEVwQ,EAAIG,UAAWH,EAAIG,QAAQC,SAAS5Q,EAAMoQ,SAK/CK,EAAQzQ,IAMV,OAHA9E,SAASuF,iBAAiB,YAAaiQ,GACvCxV,SAASuF,iBAAiB,aAAciQ,GAEjC,WACLxV,SAASwF,oBAAoB,YAAagQ,GAC1CxV,SAASwF,oBAAoB,aAAcgQ,MAS/C,CAACF,EAAKC,K,kBC6DKI,GAvEc,WAC3B,IAAMC,EAAYC,iBAAO,MACnB/E,EAAOC,eACPzK,EAAWC,cACjB,EAA4BrH,qBAA5B,mBAAOiU,EAAP,KAAe2C,EAAf,KACA,EAAkCC,eAA1BC,EAAR,EAAQA,QAASC,EAAjB,EAAiBA,aAIjB,OAFAZ,GAAkBO,GAAW,kBAAME,GAAU,MAG3C,qBAAKR,IAAKM,EAAWpN,MAAO,CAAEsM,OAAQ,WAAtC,SACE,eAACoB,GAAA,EAAD,CACElT,IAAI,KACJC,UAAU,uCACVkQ,OAAQA,EACRgC,OAAQ,SAACrQ,GAEJqO,IACqC,oBAArC,OAAOrO,QAAP,IAAOA,OAAP,EAAOA,EAAOqR,qBAAsCrR,EAAMqR,uBAE3DL,GAAW3C,IATjB,UAYE,cAAC3B,GAAA,EAAD,CAAgBxO,IAAI,MAApB,SACE,cAAC,KAAD,CAAMoT,KAAM,gBAAiB3O,MAAO0L,EAAS,OAAS,GAAIlE,KAAM,OAElE,eAAC6C,GAAA,EAAD,CAAc9O,IAAI,KAAKI,OAAK,EAACH,UAAU,2BAAvC,UACE,oBAAIA,UAAU,uBAAd,SACE,cAAC+O,GAAA,EAAD,CAAc/O,UAAU,SAASD,IAAI,MAAMqT,QAAM,EAAjD,SACE,oBAAIpT,UAAU,kCAAd,SACG6N,EAAKwF,cAAc,CAAEjT,GAAI,mCAIhC,qBAAKJ,UAAU,OAAf,SACE,cAACsT,GAAA,EAAD,CACEP,QAASA,EACT5G,KAAM,aACNoH,eAAe,EACfzG,QAAS,CACP0G,QAAS,KACTC,iBAAiB,EACjBC,qBAAqB,EACrBC,iBAAiB,EACjBC,oBAAoB,OAI1B,oBAAI5T,UAAU,uBAAd,SACE,cAAC6T,GAAA,EAAOC,OAAR,CACEtP,MAAM,UACNuP,OAAK,EACL9T,QAAS+S,GAAa,SAACgB,GACrB3Q,EAAS4Q,IAAiCD,EAAOE,aACjDrB,GAAU,GACVsB,sBAA0B,CACxBC,QAASvG,EAAKwF,cAAc,CAC1BjT,GAAI,sDARZ,SAaGyN,EAAKwF,cAAc,CAAEjT,GAAI,6B,8DC3CzBiU,GAjCoB,WACjC,IAAMxG,EAAOC,eACb,OACE,cAAC+F,GAAA,EAAOC,OAAR,CACEtP,MAAM,UACNxE,UAAU,kCACVuF,MAAO,CAAE+O,OAAQ,QACjBrU,QAAS,WAEP,IAAMsU,EAAanY,aAAaC,QAAQ,8BACxC,GAAIkY,EAAY,CACd,IAAMC,EAAQC,KAASC,IAAIC,QAAQJ,EAAYlU,MACzC2Q,EAAS1U,KAAKC,MAAMiY,EAAMI,SAASH,KAASI,IAAIC,OAClDC,EAAOhY,SAASiY,cAAc,QAClCjY,SAASC,KAAKiY,YAAYF,GAC1BA,EAAKG,OAAS,OACdH,EAAKI,OAAL,UAAiB7U,KAAjB,sBACA8U,OAAOC,KAAKrE,GAAQ5M,KAAI,SAAC+H,GACvB,IAAImJ,EAAQvY,SAASiY,cAAc,SACnCM,EAAM7S,KAAO,SACb6S,EAAMnJ,KAAOA,EACbmJ,EAAMhY,MAAQ0T,EAAO7E,GACrB4I,EAAKE,YAAYK,MAEnBP,EAAKQ,WArBX,SAyBG1H,EAAKwF,cAAc,CAAEjT,GAAI,sB,qDCsBjBoV,GA7CY,SAACzS,GAC1B,IAAM8K,EAAOC,eACPzK,EAAWC,cACTvN,EAAS0b,cAAT1b,KAER,EAAyD6I,aAAY,SAACC,GAAD,MAAY,CAC/ErV,aAAcuV,0BAAsCF,GACpD1V,gBAAiB4V,yBAAqCF,GACtDpV,cAAesV,2BAAuCF,OAHxD,EAAQrV,aAAR,EAAsBL,gBAAtB,EAAuCM,cAMvC,OACE,sBACEuW,UAAS,kEACa,IAApB+C,EAAM0S,UAAkB,iCAAmC,IAE7DxV,QAAS,WACiB,IAApB8C,EAAM0S,YACRpS,EAAS4Q,IAAiC,IAC1Cle,EAAK2f,IAAqB/f,cAE5BoN,EAAMzE,SAERiH,MAAO,CAAEoQ,QAAS,OAXpB,UAaE,cAACC,GAAA,EAAD,CACE5V,UAAW,wBACXuF,MAAO,CAAEP,YAAa,MAAO6Q,aAAc,GAF7C,SAIE,cAAC,WAAD,UACE,cAACC,GAAA,EAAD,CACE1V,GAAI,qBACJ+S,KAAM,WACN4C,SAAU,GACV/V,UAAW,0BAIjB,cAACgW,GAAA,EAAD,CAAOhW,UAAU,aAAaiW,IAAK,qBAAnC,SACGpI,EAAKwF,cAAc,CAAEjT,GAAI,8BCgBnB8V,GAvDY,SAACnT,GAC1B,IAAM8K,EAAOC,eACPzK,EAAWC,cACTvN,EAAS0b,cAAT1b,KAER,EAA+D6I,aAAY,SAACC,GAAD,MAAY,CACrFrV,aAAcuV,0BAAsCF,GACpD1V,gBAAiB4V,yBAAqCF,GACtDpV,cAAesV,2BAAuCF,GACtDsX,KAAMpX,2BAAuCF,OAJvCrV,EAAR,EAAQA,aAAcL,EAAtB,EAAsBA,gBAAiBM,EAAvC,EAAuCA,cAAe0sB,EAAtD,EAAsDA,KAOhDzsB,EAAiB0sB,YAAkBD,GAEzC,OACE,sBACEnW,UAAS,kEACa,IAApB+C,EAAM0S,UAAkB,iCAAmC,IAE7DxV,QAAS,WACiB,IAApB8C,EAAM0S,YACRpS,EAAS4Q,IAAiC,IAC1Cle,EACEsgB,KACE7sB,EACAL,EACAM,EACAC,KAINqZ,EAAMzE,SAERiH,MAAO,CAAEoQ,QAAS,OAlBpB,UAoBE,cAACC,GAAA,EAAD,CACE5V,UAAW,wBACXuF,MAAO,CAAEP,YAAa,MAAO6Q,aAAc,GAF7C,SAIE,cAAC,WAAD,UACE,cAACC,GAAA,EAAD,CACE1V,GAAI,qBACJ+S,KAAM,YACN4C,SAAU,GACV/V,UAAW,0BAIjB,cAACgW,GAAA,EAAD,CAAOhW,UAAU,aAAaiW,IAAK,qBAAnC,SACGpI,EAAKwF,cAAc,CAAEjT,GAAI,8BCLnBkW,GA5CU,SAACvT,GACxB,IAAM8K,EAAOC,eACPzK,EAAWC,cACTvN,EAAS0b,cAAT1b,KAER,EAA0C6I,aAAY,SAACC,GAAD,MAAY,CAChErV,aAAcuV,0BAAsCF,GACpD1V,gBAAiB4V,yBAAqCF,OAFxD,EAAQrV,aAAR,EAAsBL,gBAKtB,OACE,sBACE6W,UAAS,kEACa,IAApB+C,EAAM0S,UAAkB,iCAAmC,IAE7DxV,QAAS,WACiB,IAApB8C,EAAM0S,YACRpS,EAAS4Q,IAAiC,IAC1Cle,EAAKwgB,IAA2BlhB,eAElC0N,EAAMzE,SAERiH,MAAO,CAAEoQ,QAAS,QAXpB,UAaE,cAACC,GAAA,EAAD,CACE5V,UAAW,wBACXuF,MAAO,CAAEP,YAAa,MAAO6Q,aAAc,GAF7C,SAIE,cAAC,WAAD,UACE,cAACC,GAAA,EAAD,CACE1V,GAAI,mBACJ+S,KAAM,MACN4C,SAAU,GACV/V,UAAW,wBAIjB,cAACgW,GAAA,EAAD,CAAOhW,UAAU,aAAaiW,IAAK,mBAAnC,SACGpI,EAAKwF,cAAc,CAAEjT,GAAI,4BCKnBoW,GA5CiB,SAACzT,GAC/B,IAAM8K,EAAOC,eACPzK,EAAWC,cACTvN,EAAS0b,cAAT1b,KAER,EAA0C6I,aAAY,SAACC,GAAD,MAAY,CAChErV,aAAcuV,0BAAsCF,GACpD1V,gBAAiB4V,yBAAqCF,OAFxD,EAAQrV,aAAR,EAAsBL,gBAKtB,OACE,sBACE6W,UAAS,kEACa,IAApB+C,EAAM0S,UAAkB,iCAAmC,IAE7DxV,QAAS,WACiB,IAApB8C,EAAM0S,YACRpS,EAAS4Q,IAAiC,IAC1Cle,EAAK,aAEPgN,EAAMzE,SAERiH,MAAO,CAAEoQ,QAAS,OAXpB,UAaE,cAACC,GAAA,EAAD,CACE5V,UAAW,wBACXuF,MAAO,CAAEP,YAAa,MAAO6Q,aAAc,GAF7C,SAIE,cAAC,WAAD,UACE,cAACC,GAAA,EAAD,CACE1V,GAAI,0BACJ+S,KAAM,aACN4C,SAAU,GACV/V,UAAW,+BAIjB,cAACgW,GAAA,EAAD,CAAOC,IAAK,0BAAZ,SACGpI,EAAKwF,cAAc,CAAEjT,GAAI,mCC4CnBqW,GA9ES,WACtB,IAAM9D,EAAYC,iBAAO,MACnB/E,EAAOC,eACb,EAA4B7R,qBAA5B,mBAAOiU,EAAP,KAAe2C,EAAf,KAEA,EAA6CjU,aAAY,SAACC,GAAD,MAAY,CACnE4W,UAAW1W,uBAAmCF,GAC9CsX,KAAMpX,2BAAuCF,GAC7C1V,gBAAiB4V,yBAAqCF,OAHhD4W,EAAR,EAAQA,UAAWU,EAAnB,EAAmBA,KAAMhtB,EAAzB,EAAyBA,gBAKnBO,EAAiB0sB,YAAkBD,GAKnC7X,EAAQ,WACZuU,GAAU,IAMNhqB,EAASC,cACTC,EAAaC,gBAAa,OAAMG,QAAN,IAAMA,OAAN,EAAMA,EAAiBG,SAASiM,KAAmBC,UAE7EkhB,EAAe7tB,GAAUE,GAAcW,EAI7C,OAFA0oB,GAAkBO,GAAW,kBAAMrU,OAGjCoY,GACE,qBAAKrE,IAAKM,EAAWpN,MAAO,CAAEsM,OAAQ,WAAtC,SACE,eAACoB,GAAA,EAAD,CACElT,IAAI,KACJC,UAAU,uCACVkQ,OAAQA,EACRgC,OAAQ,SAACrQ,GAEJqO,IACqC,oBAArC,OAAOrO,QAAP,IAAOA,OAAP,EAAOA,EAAOqR,qBAAsCrR,EAAMqR,uBApBrEL,GAAW3C,IAaP,UAYE,cAAC3B,GAAA,EAAD,CAAgBxO,IAAI,MAApB,SACE,cAAC,KAAD,CACEoT,KAAM,cACN3O,MAAO0L,EAAS,OAAS,GACzBlE,KAAM,GACN5L,GAAI,4BAGR,eAACyO,GAAA,EAAD,CACE9O,IAAI,KACJI,OAAK,EACLH,UAAU,2BACVuF,MAAO,CAAE4K,MAAO,QAAS0B,OAAQ,UAJnC,UAME,oBAAI7R,UAAU,uBAAd,SACE,cAAC+O,GAAA,EAAD,CAAc/O,UAAU,SAASD,IAAI,MAAMqT,QAAM,EAAjD,SACE,oBAAIpT,UAAU,kCAAd,SACE,4BAAI6N,EAAKwF,cAAc,CAAEjT,GAAI,2BAInC,gCACE,cAAC,GAAD,CAAoBqV,UAAWA,EAAWnX,MAAOA,IAChDzV,GAAU,cAAC,GAAD,CAAkB4sB,UAAWA,EAAWnX,MAAOA,IACzDvV,GAAc,cAAC,GAAD,CAAyB0sB,UAAWA,EAAWnX,MAAOA,IACpE5U,GAAkB,cAAC,GAAD,CAAoB+rB,UAAWA,EAAWnX,MAAOA,gB,mFCwLnEqY,GAzPsB,SAAC5T,GACpC,IAAQ6T,EAA0E7T,EAA1E6T,cAAeC,EAA2D9T,EAA3D8T,WAAYC,EAA+C/T,EAA/C+T,kBAAmBC,EAA4BhU,EAA5BgU,iBAAkB5G,EAAUpN,EAAVoN,MAClEtC,EAAOC,eACPzK,EAAWC,cAEjB,EAA0DrH,mBAAmB,IAA7E,mBAAO+a,EAAP,KAA8BC,EAA9B,KACA,EAAwChb,mBAAS,IAAjD,mBAAOib,EAAP,KAAqBC,EAArB,KAEMC,EAAsBR,EACzBS,QAAO,SAACC,GAAD,OAA4B,IAAjBA,EAAM3S,UACxB0S,QAAO,SAACC,GAAD,QAAiC,IAApBA,EAAMC,WAAuC,IAApBD,EAAME,cAChDC,EAAoBb,EACvBS,QAAO,SAACC,GAAD,OAA4B,IAAjBA,EAAM3S,UACxB0S,QAAO,SAACC,GAAD,QAAiC,IAApBA,EAAMC,WAAuC,IAApBD,EAAME,cAiBhDE,EAA6B,SAAC,GAAmB,IAAjBC,EAAgB,EAAhBA,UACpC,EAA0C1b,mBAAS,IAAnD,mBAAO2b,EAAP,KAAsBC,EAAtB,KAkBA,OAhBAhb,qBAAU,WACR,IAAMib,EAAsB,WAC1B,IAAMrK,EAAOD,KAAOmK,GAEpB,GAAInK,OAASuK,KAAKtK,EAAM,WAAa,GACnCoK,EAAiBpK,EAAKuK,SAAQ,QACzB,CACL,IAAMC,EAAgBxK,EAAKyK,QAAQ,QAAQF,UAC3CH,EAAiBI,EAAcE,OAAO,GAAGtY,cAAgBoY,EAAcG,MAAM,MAGjFN,IACA,IAAMO,EAAWC,YAAYR,EAAqB,KAClD,OAAO,kBAAMS,cAAcF,MAC1B,CAACV,IAEG,sBAAMpS,MAAO,CAAEiT,SAAU,QAAzB,SAAoCZ,KAGvCa,EAA6B,SAACC,GAClC,IAAMC,EAAMnL,OACNC,EAAOD,KAAOkL,GAEpB,GAAIjL,EAAKmL,OAAOD,EAAK,OACnB,OAAOlL,EAAKU,OAAO,UACd,GAAIV,EAAKmL,OAAOD,EAAK,QAAS,CACnC,IAAMf,EAAgBnK,EAAKU,OAAO,eAClC,OAAOyJ,EAAcO,OAAO,GAAGtY,cAAgB+X,EAAcQ,MAAM,GAEnE,OAAO3K,EAAKU,OAAO,QAIvB,OACE,cAAC,KAAD,CACEnO,UAAU,kEACViQ,iBAAiB,8BACjBC,OAAQ4G,EACR3G,MAAOA,GAAS,QAChBL,MACE,sBAAK9P,UAAW,iCAAhB,UACG6N,EAAKwF,cAAc,CAAEjT,GAAI,gCACzBgX,EAAoBpT,OAAS,GAC5B,sBAAMhE,UAAW,+BAAjB,SAAkDoX,EAAoBpT,YAI5EoM,eAAgB,kBAAM2G,GAAiB,IAbzC,SAeE,qCACGF,GACC,qBAAK7W,UAAU,qCAAf,SACE,cAAC6Y,GAAA,EAAD,CAASrU,MAAM,cAGa,IAA/B4S,EAAoBpT,QAA6C,IAA7ByT,EAAkBzT,QACrD,qBAAKhE,UAAU,wBAAf,SACE,qBAAKA,UAAU,oBAAf,SACE,oBAAIA,UAAU,OAAd,SACE,cAAC,KAAD,CAAkBI,GAAG,+CAK5BgX,EAAoBpT,OAAS,IAAM6S,GAClC,qBAAK7W,UAAU,yBAAf,SACGoX,EAAoBhT,KAAI,SAACC,EAAcwH,GAAf,OACvB,qBAAa7L,UAAW,uBAAxB,SACE,sBACEA,UAAS,mCACPgX,EAAsB1tB,SAAS+a,EAAaQ,gBACxC,gBACA,IAEN5E,QAAS,kBArFA4E,EAqFsBR,EAAaQ,oBApF1DoS,GAAyB,SAAC6B,GAAD,OACvBA,EAAKxvB,SAASub,GACViU,EAAKzB,QAAO,SAACjX,GAAD,OAAQA,IAAOyE,KAD/B,sBAEQiU,GAFR,CAEcjU,OAJM,IAACA,GA+EX,UAQE,sBAAK7E,UAAU,yBAAf,UACE,cAAC,IAAD,aAEEkF,SAAKC,EACLnF,UAAW,QACXoF,SAAU,GACVC,UAAW,IACPC,YAA0BjB,EAAaK,eAE7C,sBAAK1E,UAAU,gCAAf,UACE,sBAAMA,UAAU,6BAAhB,SACGqE,EAAaoB,eAEhB,sBAAMF,MAAO,CAAEiT,SAAU,QAAzB,SACGC,EAA2BpU,EAAa0U,gBAG7C,sBAAK/Y,UAAU,sCAAf,UACE,qBACEI,GAAE,uBAAkBiE,EAAaQ,gBACjC7E,UAAU,4BACVC,QAAS,kBACPoD,EACE2V,IAAqD,QACnD3U,QADmD,IACnDA,OADmD,EACnDA,EAAcQ,qBAKtB,cAACkN,GAAA,EAAD,CAEE7B,OACEgH,EAAa,gBAAD,OAAiB7S,EAAaQ,mBAAqB,EAEjEoN,OAAM,uBAAkB5N,EAAaQ,gBACrCqN,OAAQ,kBAjIP9R,EAiI2B,gBAAD,OAAiBiE,EAAaQ,qBAhI7EsS,GAAgB,SAAC8B,GAAD,mBAAC,eACZA,GADW,kBAEb7Y,GAAM6Y,EAAU7Y,QAHC,IAACA,GAkID+R,QAAQ,QAPV,SASGtE,EAAKwF,cAAc,CAAEjT,GAAI,4BAT5B,4BAC4ByL,UAYhC,qBACE7L,UAAU,4BACV0F,wBAAyB,CAAEC,OAAQtB,EAAauB,WAElD,qBAAK5F,UAAU,8BAAf,SACE,sBAAMuF,MAAO,CAAEiT,SAAU,QAAzB,SACGd,EAA2B,CAAEC,UAAWtT,EAAa0U,oBAzDpDlN,QAiEfuL,EAAoBpT,OAAS,GAAKyT,EAAkBzT,OAAS,GAC5D,qBACEuB,MAAO,CACL2T,QAAS,OACTC,WAAY,SACZ3T,eAAgB,SAChB4T,OAAQ,WALZ,SAQE,qBAAKpZ,UAAU,8BAGlByX,EAAkBzT,OAAS,IAAM6S,GAChC,qBAAK7W,UAAU,yBAAf,SACGyX,EAAkBrT,KAAI,SAACC,EAAcwH,GAAf,OACrB,qBAAa7L,UAAW,uBAAxB,SACE,sBAAKA,UAAW,yBAAhB,UACE,sBAAKA,UAAU,yBAAf,UACE,cAAC,IAAD,aAEEkF,SAAKC,EACLnF,UAAW,QACXoF,SAAU,GACVC,UAAW,IACPC,YAA0BjB,EAAaK,eAE7C,sBAAK1E,UAAU,gCAAf,UACE,sBAAMA,UAAU,6BAAhB,SACGqE,EAAaoB,eAEhB,sBAAMF,MAAO,CAAEiT,SAAU,QAAzB,SACGC,EAA2BpU,EAAa0U,mBAI/C,qBACE/Y,UAAU,4BACV0F,wBAAyB,CAAEC,OAAQtB,EAAauB,WAElD,qBAAK5F,UAAU,8BAAf,SACE,sBAAMuF,MAAO,CAAEiT,SAAU,QAAzB,SACGd,EAA2B,CAAEC,UAAWtT,EAAa0U,oBA1BpDlN,QAkChB,uBACA,uBACA,uBACA,uBACCuL,EAAoBpT,OAAS,GAC5B,cAACsM,GAAA,EAAD,CAAKtQ,UAAW,kCAAhB,SACE,cAAC6T,GAAA,EAAOC,OAAR,CACEtP,MAAM,UACNvE,QAAS,WACH+W,EAAsBhT,OAAS,EACjCX,EACE2V,IAAqDhC,IAGvD3T,EACE2V,IACE5B,EAAoBhT,KAAI,SAACC,GAAD,OAAkBA,EAAaQ,qBAVjE,SAgBoC,IAAjCmS,EAAsBhT,OACrB,cAAC,KAAD,CAAkB5D,GAAG,gCAErB,cAAC,KAAD,CAAkBA,GAAG,uC,WCrFtBiZ,I,QA9II,SAACtW,GAEQA,EAAlBrG,KAAkBqG,EAAZnG,QAAd,IAEMuZ,EAAOvX,aAAY,SAACC,GAAD,OAAWE,2BAAuCF,MACrEya,EAAiB1a,aAAY,SAACC,GAAD,OAAWE,wBAAoCF,MAC5E0a,EAAqB3a,aAAY,SAACC,GAAD,OAAWE,4BAAwCF,MAC1F,EAAoFD,aAClF,SAACC,GAAD,MAAY,CACV2a,kBAAmBC,IAAmD5a,GACtE6a,wBAAyBD,IACK5a,GAC3BwY,QAAO,SAAChT,GAAD,QAA+C,IAA3BA,EAAakT,WAA8C,IAA3BlT,EAAamT,cAC3EmC,4BAA6BF,IAA0D5a,OANnF2a,EAAR,EAAQA,kBAAmBE,EAA3B,EAA2BA,wBAAyBC,EAApD,EAAoDA,4BAU9CtW,EAAWC,cAEjB,EAAkFrH,oBAAS,GAA3F,mBAAO2d,EAAP,KAA0CC,EAA1C,KA4DA,OAjDAhd,qBAAU,WACJyc,GAAkBC,GACpBlW,EACEyW,YAA+B,CAC7BC,WAAYT,EACZU,eAAgBT,OAGrB,CAACD,EAAgBC,IAEpB1c,qBAAU,WACR,IAAMod,EAAqBP,EAAwBrC,QACjD,SAACC,GAAD,OAA+B,IAApBA,EAAMC,YAAoBD,EAAM4C,cAAoC,IAApB5C,EAAME,aAGnE,GAAIyC,EAAmBjW,OAAS,IAAM2V,EAA6B,CACjE,IAAIQ,EAAiB,EACfC,EAAW,GA0BjB,OAxBAH,EAAmB7X,SAAQ,SAACkV,EAAOhT,GACjC6V,GAAkB7C,EAAME,UAAY,KACpC,IAAM6C,EAAY9b,YAAW,WAC3B+b,aACE,cAAC,kCAAD,CACExK,MAAOwH,EAAM7R,aACbG,QAAS0R,EAAM1R,QACflB,YAAa4S,EAAM5S,cAErB,CACE1E,UAAW,kCACXua,UAAWjD,EAAME,UACjBgD,cAAc,EACdC,cAAc,IAIlBpX,EAASqX,YAAsBpD,EAAMzS,mBAEpCsV,GAEHC,EAASrkB,KAAKskB,MAGT,WACLD,EAAShY,QAAQ6L,kBAGpB,CAAC0L,IAGF,qCAYE,qBAAI3Z,UAAU,4CAAd,UACG8O,eAAoB,cAAC,GAAD,IACrB,cAACjR,GAAA,EAAD,IAMCiR,eAAoB,cAAC,GAAD,KACnB,CAAC,GAAI,GAAI,EAAG,EAAG,EAAG,IAAIxlB,SAASkK,SAAS2iB,EAAK1sB,iBAAmBqlB,eAChE,cAAC,GAAD,IAGDA,eAAoB,cAAC,GAAD,IACpBA,eACC,sBAAKvJ,MAAO,CAAEoV,SAAU,WAAYzB,QAAS,gBAAkBlZ,UAAW,cAA1E,UACE,cAAC,KAAD,CACEmT,KAAM,QACNnH,KAAM,GACN/L,QAAS,kBAAM4Z,GAAqC,MAErDH,EAAwB1V,OAAS,GAChC,cAAC4W,GAAA,EAAD,CACEC,MAAI,EACJrW,MAAM,SACNe,MAAO,CACLoV,SAAU,WACVG,IAAK,EACL3a,MAAO,EACP4a,UAAW,uBACXvC,SAAU,QARd,SAWGkB,EAAwB1V,YAKjC,cAAC,GAAD,OAED4V,GACC,cAAC,GAAD,CACEhD,cAAe4C,EACf1C,kBAAmB8C,EACnB7C,iBAAkB,kBAAM8C,GAAqC,W,4EC2MxDmB,I,gBA5VM,SAACjY,GAEG6P,iBAAO,MAA9B,IAuSIqI,EAtSEtI,EAAYC,iBAAO,MACnBsI,EAAatI,iBAAO,MACpBuI,EAAqBvI,iBAAO,MAGlC,EAA0B3W,mBAAS,IAAnC,mBAAOmf,EAAP,KAAcC,EAAd,KACA,EAA8Bpf,oBAAS,GAAvC,mBAAOqf,EAAP,KAAgBC,EAAhB,KACA,EAAgDtf,mBAAS,GAAzD,mBAAOuf,EAAP,KAAyBC,EAAzB,KACA,EAA8Cxf,oBAAS,GAAvD,mBAAOyf,EAAP,KAAwBC,EAAxB,KACA,EAAkC1f,mBAAS8G,EAAMzF,MAAQyF,EAAMzF,MAAQ,IAAvE,mBAAOse,EAAP,KAAkBC,EAAlB,KAIMrK,GAHO1D,eAGG2D,eACZqK,EAAe,GAGbC,EAAwB,SAACC,EAAK9d,GAClCud,EAAoB,GACpBE,GAAmB,GACnBE,EAAaC,EAAaN,GAAkBzY,EAAMkZ,iBACtC9W,IAAR6W,GAA6B,OAARA,GACvBxK,EAAQzb,KAAKimB,GAGXjZ,EAAMmZ,mBACRnZ,EAAMmZ,kBAAkBF,EAAK9d,IAK3Bie,EAAwB,SAAC7X,GAC7BmX,EAAoBnX,IAqEhB8X,EAA0B,SAACC,GAC/B,IAAQJ,EAA4BlZ,EAA5BkZ,UAAWK,EAAiBvZ,EAAjBuZ,aAkCnB,OAAOD,EAAIjY,KAAI,SAAClI,EAAM2P,GACpB,OAjCuB,SAAC3P,EAAM2P,GAC9B,GAAKyQ,EAgBE,OAAIA,EACFA,EACLpgB,EACA2P,EACAiQ,EACAN,EACAO,EACAI,EACAP,GAGK,KA1BP,IAAMW,OAA8BpX,IAAdjJ,EAAKsgB,MAAoC,OAAdtgB,EAAKsgB,KAAgBtgB,EAAKsgB,KAAO,KAClF,OACE,oBACExc,UAAWmE,IAAW,kBAAmB,CACvCsY,OAAQX,EAAaY,QAAQxgB,KAAUsf,IAGzCvb,QAAS,SAAC/B,GAAD,OAAO6d,EAAsBQ,EAAere,IACrDye,aAAc,WACZR,EAAsBL,EAAaY,QAAQxgB,KAP/C,SAUGA,EAAK+f,IAND/f,EAAK+f,IAyBTW,CAAiB1gB,EAAM2P,OAqLlC,OA5EAhP,qBAAU,WACJkG,EAAM8Z,oBAAsBvB,GAC9BK,GAAmB,KAEpB,CAACL,EAASvY,EAAM8Z,qBAGnBhgB,qBAAU,WAIU,OAHAigB,KAASC,YAAY7B,EAAW1I,UAGxBzP,EAAMia,WAC9B9B,EAAW1I,QAAQyK,QAIjBla,EAAM8Z,oBAAsBvB,GAC9BK,GAAmB,GAIjB5Y,EAAMma,YACRna,EAAMma,WAAWtB,EAAWC,GAI1B9Y,EAAMoa,oBAAsBzB,GAC9B3Y,EAAMoa,mBAAmBvB,KAE1B,CAACD,EAAoBL,EAASM,EAAWF,EAAiB3Y,IAG7DqP,GAAkBO,GAAW,WAC3BgJ,GAAmB,GACf5Y,EAAMqa,eACRra,EAAMqa,mBAKVvgB,qBAAU,WACR,IAAMwgB,EAAY9e,YAAW,WACvB6c,KAxPS,SAACld,GAChB,IAAM0d,EAAY1d,EAAE+T,OAAO3U,MAC3Bme,EAAoB,GACpBE,GAAmB,GACnBE,EAAaD,GACT1d,EAAE+T,OAAO3U,MAAQ,GACnBqe,GAAmB,GAmPjBnP,CAAS4O,GACLrY,EAAMyJ,UACRzJ,EAAMyJ,SAAS4O,MAGlB,KACH,OAAO,kBAAMnN,aAAaoP,MACzB,CAACjC,IAIAM,IACFT,EACE,cAAC,KAAD,CACEjb,UAAWmE,IAAW,mBAAD,eAClBpB,EAAMG,aAAeH,EAAMG,eAE9BmP,IAAK8I,EACLpV,UAAW,MACX+G,QAAS,CAAEwQ,kBAAkB,GAN/B,SAQE,eAAChN,GAAA,EAAD,CAAKtQ,UAAU,OAAf,UACG+C,EAAM8T,YACL,cAACtG,GAAA,EAAD,CAAKI,GAAG,KAAK3Q,UAAW,0CAAxB,SACE,cAAC6Y,GAAA,EAAD,CAASrU,MAAM,UAAUwH,KAAK,SAzGhB,WACqCjJ,EAArDkZ,UAAR,IAAmBsB,EAA0Cxa,EAA1Cwa,QAASC,EAAiCza,EAAjCya,gBAAiBC,EAAgB1a,EAAhB0a,YAG7C,YAAgBtY,IAAZoY,GAAqC,OAAZA,GAAqBA,GAGhDzB,EAAe,GACR2B,EAAYrZ,KAAI,SAACsZ,EAAY7R,GAAO,IAAD,EAClC8R,EAAWD,EAAW9d,KAAKwY,MAAM,EAAGsF,EAAWE,aAErD,OADA,EAAA9B,GAAa/lB,KAAb,oBAAqB4nB,IAEnB,eAAC,WAAD,WACE,cAACpN,GAAA,EAAD,CACEI,GAAG,KACH3Q,UAAS,mDAAmD,GAAL6L,EAAS,GAAK,QAFvE,SAIE,oBAAI7L,UAAU,mBAAd,SACG,cAAC,KAAD,CAAkBI,GAAIsd,EAAWF,SAGrCG,EAAS3Z,OACRoY,EAAwBuB,GAExB,eAACpN,GAAA,EAAD,CAAKI,GAAG,KAAK3Q,UAAU,4BAAvB,UACE,cAAC,KAAD,CAAagM,KAAM,KAAO,IAC1B,sBAAMhM,UAAU,qBAAhB,SACE,cAAC,KAAD,CAAkBI,GAAG,4BAfdsd,EAAWF,QA1EC,WAAO,IAAD,EAC/BvB,EAA0DlZ,EAA1DkZ,UAAWwB,EAA+C1a,EAA/C0a,YAAanB,EAAkCvZ,EAAlCuZ,aAAcuB,EAAoB9a,EAApB8a,gBAE9C/B,EAAe,GACf,IAAMgC,EAAiBL,EACpBpG,QAAO,SAACxL,GACP,IAAMkS,EAAiBlS,EAAEoQ,GAAWhd,cAAc+e,WAAWpC,EAAU3c,eACrEgf,EAAmBpS,EAAEoQ,GAAWhd,cAAc3V,SAASsyB,EAAU3c,eACnE,OAAI8e,KAEQA,GAAkBE,EACrBA,EAEA,SAGV7F,MAAM,EAAGyF,GAEZ,OADA,EAAA/B,GAAa/lB,KAAb,oBAAqB+nB,IACjBA,EAAe9Z,OACV8Z,EAAe1Z,KAAI,SAACsZ,EAAYpZ,GACrC,IAAMiY,OACgBpX,IAApBuY,EAAWlB,MAA0C,OAApBkB,EAAWlB,KAAgBkB,EAAWlB,KAAO,KAChF,OAAKF,EAaMA,EACFA,EACLoB,EACApZ,EACAwX,EACAN,EACAO,EACAI,EACAP,GAGK,KAtBL,oBACE5b,UAAWmE,IAAW,kBAAmB,CACvCsY,OAAQX,EAAaY,QAAQgB,KAAgBlC,IAG/Cvb,QAAS,SAAC/B,GAAD,OAAO6d,EAAsBQ,EAAere,IACrDye,aAAc,kBAAMR,EAAsBL,EAAaY,QAAQgB,KANjE,SAQGA,EAAWzB,IAJPyB,EAAWzB,OAuBtB,qBAAIjc,UAAU,4BAAd,UACE,cAAC,KAAD,CAAagM,KAAM,KAAO,IAC1B,sBAAMhM,UAAU,qBAAhB,SACE,cAAC,KAAD,CAAkBI,GAAG,0BAapB8d,GAuGFC,SAOP,sBAAKne,UAAU,yBAAf,UACE,uBACEyC,KAAK,OACL+J,SAAU,SAACtO,GACTmd,EAASnd,GACT,IAAMkgB,EAAiBC,YAAmBngB,EAAEogB,cAAchhB,OAC1Due,EAAauC,IAEfG,UAAW,SAACrgB,GAAD,OAnRC,SAACA,GACjB,IAAM+d,EAAYlZ,EAAMkZ,UAClBuC,EAAiB1B,KAASC,YAAY5B,EAAmB3I,SAG/D,GAAkB,KAAdtU,EAAEugB,SAAuC,IAArBjD,EACtBC,EAAoBD,EAAmB,GAGrCtd,EAAE+T,OAAO3U,MAAM0G,QAAU,GACN,OAAnBwa,GACAhD,GAAoBM,EAAa9X,OAAS,IAE1Cwa,EAAeE,UAAY,QAExB,GAAkB,KAAdxgB,EAAEugB,SAAkBjD,EAAmBM,EAAa9X,OAAS,EAEtEyX,EAAoBD,EAAmB,GAGrCtd,EAAE+T,OAAO3U,MAAM0G,QAAU,GACN,OAAnBwa,GACAhD,GAAoBM,EAAa9X,OAAS,IAE1Cwa,EAAeE,UAAYF,EAAeG,mBAEvC,GAAkB,KAAdzgB,EAAEugB,QAEX9C,GAAmB,GACnBE,EAAa,QACR,IAAkB,KAAd3d,EAAEugB,UAAkB/C,EAS7B,YAPsCvW,GAAlC2W,EAAaN,KAEfO,EAAsBD,EAAaN,GAAkBgB,KAAMte,GAC3D2d,EAAaC,EAAaN,GAAkBS,IAC5CN,GAAmB,SAOCxW,IAApBpC,EAAMwb,WAA+C,OAApBxb,EAAMwb,WACzCxb,EAAMwb,UAAUrgB,EAAG0d,GAuOC2C,CAAUrgB,IAC5BZ,MAAOse,EACP5b,UAAS,8BAAyB+C,EAAM/C,UAAY+C,EAAM/C,UAAY,IACtE4e,YAAa7b,EAAM6b,YACnB3e,QA5Re,SAAC/B,GACpBA,EAAE2gB,mBA4RExM,IAAK6I,EACL4D,QAAS,SAAC5gB,GAAD,OAAOqd,GAAW,IAC3ByB,UAAWja,EAAMia,UACjB+B,OAAQ,SAAC7gB,GACH6E,EAAMgc,QAAQhc,EAAMgc,OAAO7gB,GAC/Bqd,GAAW,MAGdN,O,+BClFQ+D,GA5PS,SAACjc,GAEvB,IAAQkc,EAAsBlc,EAAtBkc,kBAGR,EAA0BhjB,mBAAS,IAAnC,mBAAOqB,EAAP,KAAc4hB,EAAd,KACA,EAAoCjjB,oBAAS,GAA7C,mBAAOkjB,EAAP,KAAmBC,EAAnB,KAGM/b,EAAWC,cACX+b,EAAczgB,aAAY,SAACC,GAAD,OAAWA,EAAMygB,UAC3C3gB,EAAQC,aAAY,SAACC,GAAD,OAAWA,KAC/BgP,EAAOC,eAEbjR,qBAAU,WACRwG,EAASkc,kBACR,IAEH,IAAMC,EAAyB,SAACtjB,GAAU,IAAD,EACvC,OAC+B,IAA5B,UAAAA,EAAKhT,mBAAL,eAAkB8a,SACjBjF,+BAA2CJ,EAAOzC,EAAKhT,iBACvDgT,EAAKujB,cACuB,GAA5BvjB,EAAKujB,aAAazb,QAClBjF,yCAAqDJ,EAAOzC,EAAKujB,gBAmEjEC,EAA0B,kBAAMrc,EAASsc,aAAkB,MA4CjE,OACE,eAAC,WAAD,WACE,oBAAI3f,UAAU,uBAAd,SACE,cAAC4f,GAAA,EAAD,CAAS5f,UAAU,sBAAnB,SACE,cAAC6f,GAAA,EAAD,CACE7f,UAAU,gDACVC,QAAS,kBAAMgf,GAAkB,IAFnC,SAIE,cAAC,KAAD,CAAkBjf,UAAU,gBAIlC,qBAAIA,UAAU,gCAAd,UAtHEqf,EAAYS,UAAU9b,OACjBqb,EAAYS,UAChB1b,KAAI,SAAClI,GAEJ,OACEsjB,EAAuBtjB,IACrB,cAAC0jB,GAAA,EAAD,CAAuB5f,UAAU,oBAAjC,SACE,eAAC6f,GAAA,EAAD,CAAS9f,IAAKiP,IAAMC,GAAI/S,EAAKsgB,KAAMpc,GAAIlE,EAAKkE,GAA5C,UACE,cAAC,KAAD,CAAMJ,UAAU,QAAQmT,KAAMjX,EAAK6jB,WACnC,cAACC,GAAA,EAAD,CAAqB/N,OAAQ/V,EAAKkE,GAAlC,SACE,cAAC,KAAD,CAAkBA,GAAIlE,EAAK4T,cAJnB5T,EAAKkE,OAYxBgY,MAAM,EAzEW,GA2Eb,KAMLiH,EAAYS,UAAU9b,QAAUic,EAEhC,cAACL,GAAA,EAAD,CAAS5f,UAAU,oBAAnB,SACE,cAAC6f,GAAA,EAAD,CAAS9f,IAAI,OAAb,SACE,eAACuO,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CAAgBxO,IAAI,OAApB,SACE,cAAC,KAAD,CAAyBC,UAAU,YAErC,cAAC6O,GAAA,EAAD,CAAc1O,OAAK,EAAnB,SACGkf,EAAYS,UACV1b,KAAI,SAAClI,GAEJ,OACEsjB,EAAuBtjB,IACrB,eAAC6S,GAAA,EAAD,CAAchP,IAAKiP,IAAMC,GAAI/S,EAAKsgB,KAAlC,UAEE,cAAC,KAAD,CAAMxc,UAAU,QAAQmT,KAAMjX,EAAK6jB,SAAU/T,KAAM,KACnD,sBAAMhM,UAAU,eAAhB,SACE,cAAC,KAAD,CAAkBI,GAAIlE,EAAK4T,YAJc5T,EAAKkE,OAUvDgY,MAAM,YAOZ,KAgEL,eAACwH,GAAA,EAAD,CAAS5f,UAAU,6BAAnB,UACE,cAAC6f,GAAA,EAAD,CAAS7f,UAAU,gBAAgBC,QA5CV,WAC/Bmf,GAAeD,GACfD,EAAS,IACTQ,KAyCM,SACE,cAAC,KAAD,CAAkB1f,UAAU,yBAE9B,sBACEA,UAAWmE,IAAW,8BAA+B,CACnD+b,KAAMf,IAFV,UAKE,qBAAKnf,UAAU,sBAAf,SACE,cAAC,KAAD,CAAoBgM,KAAM,OAE3BmT,GAAcE,EAAY5B,YAAYzZ,OACrC,cAAC,GAAD,CACEd,aAAciB,IAAW,mCAAoC,CAC3D+b,KAAMf,IAERnf,UAAU,eACVyd,YACGngB,EAAM0G,OAOHqb,EAAY5B,YACTpG,QAAO,SAACnb,GAAD,OAAUsjB,EAAuBtjB,MACxCkI,KAAI,SAAC+b,GAAD,mBAAC,eACDA,GADA,IAEHrQ,MAAOjC,EAAKwF,cAAc,CAAEjT,GAAI+f,EAAE,aAVtCd,EAAYS,UACTzI,QAAO,SAACnb,GAAD,OAAUsjB,EAAuBtjB,MACxCkI,KAAI,SAACgc,GAAD,mBAAC,eACDA,GADA,IAEHtQ,MAAOjC,EAAKwF,cAAc,CAAEjT,GAAIggB,EAAE,aAS5CC,gBAAgB,EAChBpE,UAAU,QACVe,WAAW,EACXH,oBAAkB,EAClBgB,gBAAkBvgB,EAAM0G,OAAwC,EAA/Bqb,EAAYS,UAAU9b,OACvD4a,YAAa/Q,EAAKwF,cAAc,CAAEjT,GAAI,kBACtCgd,cArEc,YACP,IAAf+B,IACFC,GAAc,GACdM,MAmEUxC,WAAY,SAACtB,EAAWC,GAAZ,OA9DD,SAACA,GACnBsD,IACHtD,EAAa,IACb6D,KA2DmDY,CAAiBzE,IAC1D0C,UAjGI,SAACrgB,GACC,KAAdA,EAAEugB,SAAgC,KAAdvgB,EAAEugB,SACxBlgB,YAAW,WACT6gB,GAAc,GACdM,MACC,IA6FOpiB,MAAOA,EACPkP,SA/EY,SAACtO,GACzBghB,EAAShhB,EAAE+T,OAAO3U,OAClB+F,EAASsc,aAAkBzhB,EAAE+T,OAAO3U,SA8ExBgf,aAAc,SACZpgB,EACA2P,EACAiQ,EACAN,EACAO,EACAI,GAGA,OACE,qBAEEQ,aAAc,kBAAMR,EAAsBL,EAAaY,QAAQxgB,KAC/D8D,UAAWmE,IACT,oEACA,CACEsY,OAAQX,EAAaY,QAAQxgB,KAAUsf,IAN7C,UAUE,cAAC,IAAD,CACEvM,GAAI/S,EAAKsgB,KACTxc,UAAU,wDACVC,QAAS,WACPmf,GAAc,GACdM,KAEFna,MAAO,CACL4K,MAAO,aARX,SAWE,sBAAKnQ,UAAU,kEAAf,UAEE,cAAC,KAAD,CAAMA,UAAU,QAAQgM,KAAM,KAAMmH,KAAMjX,EAAK6jB,WAC/C,sBAAM/f,UAAU,wBAAhB,SACE,cAAC,KAAD,CAAkBI,GAAIlE,EAAK4T,eAIjC,cAAC,KAAD,CACE9D,KAAM,KACNhM,UAAWmE,IAAW,4BAA6B,CACjD,eAAgBjI,EAAKqkB,eAEvBtgB,QAAS,kBAtIDG,EAsI4BlE,EAAKkE,GAtI1BiD,EAASmd,aAAwBpgB,IAAzC,IAACA,OAqGLyL,MAuCX,kB,2GC3QH4U,GAAgB,yCAAG,WAAOC,EAAcC,GAArB,gBAAAC,EAAA,6DACxBC,EAAe,IAAIC,KACzBC,KAAsBC,6BAA6BriB,KAAOkiB,GAE1DA,EAAaI,iBAAiBN,GAJA,kBAMvBE,EAAaK,KAAb,UARc,UAQd,QAAoCR,EAAS,CAAES,YAAaT,EAAQU,sBAN7C,2CAAH,wDCkJdC,GApJM,SACnBjG,EACAkG,GAKA,MAAwBrlB,mBAAgB,IAAxC,mBAAO2D,EAAP,KAAa2hB,EAAb,KACA,EAAoCtlB,oBAAkB,GAAtD,mBAAO4a,EAAP,KAAmB2K,EAAnB,KAyIA,OArBA3kB,qBAAU,WACR,IAAMukB,EAAqB7hB,KAAMkiB,YAAYC,SAC7C,GAAItG,GAAShG,OAAOpB,OAAOsN,GAAUjK,QAAO,SAAC/Z,GAAD,OAAWA,KAAO0G,OAAS,EAGrE,OAFAwd,GAAc,GArHH,SAACpG,EAAOkG,EAAUF,GAC/BX,GACE,CAAErF,QAAOkG,WAAUF,sBACnB,CACEO,YAAa,WACXJ,EAAQ,IACRC,GAAc,IAEhBI,cAAe,SAACliB,GACU,IAAD,yBAAvB,OAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAU0U,SACZmN,EACE,CACED,EAASO,UACL,CACEC,WAAY,sBACZliB,KAAI,oBACFF,EAASE,KAAKzU,qBADZ,aACF,EAA6BiZ,KAAI,SAACxE,GAChC,IAAMmiB,EAAoBC,KAAcpiB,GACxC,OAAO,aACL6C,KAAM,YACN+Z,KAAM,QACN1M,MAAOiS,EAAkBE,cACtBF,aAPL,QASI,SAEV5c,EACJmc,EAASY,MACL,CACEJ,WAAY,cACZliB,KAAI,oBACFF,EAASE,KAAKuiB,iBADZ,aACF,EAAyB/d,KAAI,SAACxE,GAC5B,IAAMmiB,EAAoBC,KAAcpiB,GACxC,OAAO,aACL6C,KAAM,QACN+Z,KAAM,QACN1M,MAAOiS,EAAkBK,UACtBL,aAPL,QASI,SAEV5c,EACJmc,EAASe,UACL,CACEP,WAAY,sBACZliB,KAAI,oBACFF,EAASE,KAAK/U,qBADZ,aACF,EAA6BuZ,KAAI,SAACxE,GAChC,IAAMmiB,EAAoBC,KAAcpiB,GACxC,OAAO,aACL6C,KAAM,YACN+Z,KAAM,QACN1M,MAAOiS,EAAkBO,cACtBP,aAPL,QASI,SAEV5c,EACJmc,EAASiB,OACL,CACET,WAAY,gBACZliB,KAAI,oBACFF,EAASE,KAAK4iB,kBADZ,aACF,EAA0Bpe,KAAI,SAACxE,GAC7B,IAAMmiB,EAAoBC,KAAcpiB,GACxC,OAAO,aACL6C,KAAM,SACN+Z,KAAM,cACN1M,MAAOiS,EAAkBU,WACtBV,aAPL,QASI,SAEV5c,EACJmc,EAASoB,gBACL,CACEZ,WAAY,uBACZliB,KAAI,oBACFF,EAASE,KAAK+iB,2BADZ,aACF,EAAmCve,KAAI,SAACxE,GACtC,IAAMmiB,EAAoBC,KAAcpiB,GACxC,OAAO,aACL6C,KAAM,kBACN+Z,KAAM,iBACN1M,MAAOiS,EAAkBU,WACtBV,aAPL,QASI,SAEV5c,EACJmc,EAASsB,QACL,CACEd,WAAY,kBACZliB,KAAI,oBACFF,EAASE,KAAKijB,mBADZ,aACF,EAA2Bze,KAAI,SAACxE,GAC9B,IAAMmiB,EAAoBC,KAAcpiB,GACxC,OAAO,aACL6C,KAAM,UACN+Z,KAAM,eACN1M,MAAOiS,EAAkBe,YACtBf,aAPL,QASI,SAEV5c,GACJkS,QAAO,SAAC0L,GAAD,OAAaA,MAEnBxB,EAAQ,IACfC,GAAc,MAGlB1hB,OAAM,SAACnD,GACP4kB,EAAQ,IACRC,GAAc,MAQdwB,CAAO5H,EAAOkG,EAAUF,EAAmB6B,OACpC,WACL7B,EAAmB8B,UAGrB3B,EAAQ,IACRC,GAAc,KAEf,CACDpG,EADC,OAEDkG,QAFC,IAEDA,OAFC,EAEDA,EAAUO,UAFT,OAGDP,QAHC,IAGDA,OAHC,EAGDA,EAAUY,MAHT,OAIDZ,QAJC,IAIDA,OAJC,EAIDA,EAAUiB,OAJT,OAKDjB,QALC,IAKDA,OALC,EAKDA,EAAUe,UALT,OAMDf,QANC,IAMDA,OANC,EAMDA,EAAUoB,gBANT,OAODpB,QAPC,IAODA,OAPC,EAODA,EAAUsB,UAEL,CAAEhjB,OAAMiX,e,oDC+DFsM,GA3MS,SAACpgB,GACvB,IAAM4P,EAAYC,iBAAO,MACjBtV,EAA2ByF,EAA3BzF,MAAOkP,EAAoBzJ,EAApByJ,SAAU4O,EAAUrY,EAAVqY,MAEnBgI,GADQC,iBAAiBtmB,SAASC,MACxB8U,WAChB,EAA4B7V,qBAA5B,mBAAOiU,EAAP,KAAe2C,EAAf,KA0BMyQ,EAAoB,SAACplB,EAAGqlB,GAC5BrlB,EAAEM,iBACFgO,EAAS,2BAAKlP,GAAN,kBAAcimB,GAAUjmB,EAAMimB,OAGxCnR,GAAkBO,GAAW,kBAAME,GAAU,MAE7ChW,qBAAU,WACRgW,GAAU,KACT,CAACuI,IAEJ,IAAMzc,EAAQC,aAAY,SAACC,GAAD,OAAWA,KAErC,OACE,qBAAKwT,IAAK,SAACA,GAAD,OAAUM,EAAUH,QAAUH,GAAxC,SACE,eAACY,GAAA,EAAD,CACE/C,OAAQA,EACRgC,OAAQ,SAACrQ,GAEJqO,IACqC,oBAArC,OAAOrO,QAAP,IAAOA,OAAP,EAAOA,EAAOqR,qBAAsCrR,EAAMqR,uBAE3DL,GAAW3C,IAPjB,UAUE,cAAC3B,GAAA,EAAD,CAAgBxO,IAAI,MAApB,SACE,cAAC,KAAD,CAAQyE,MAAO0L,EAASkT,OAAUje,EAAWnF,UAAU,iBAEzD,eAAC6O,GAAA,EAAD,CAAc7O,UAAU,kBAAxB,UACE,cAAC+O,GAAA,EAAD,CAAcqE,QAAM,EAApB,SACE,sBAAKpT,UAAU,iCAAf,UACE,cAAC,KAAD,CAAkBI,GAAG,mBACrB,eAACojB,GAAA,EAAD,WACE,cAACC,GAAA,EAAD,CACErjB,GAAG,gCACHsjB,eAAgB,cAAC,KAAD,CAAkBtjB,GAAG,uBACrC+S,KAAK,SACL3O,MAAO,OACPmf,YA9DI,WAClBnX,EACE4I,OAAOC,KAAK/X,GAAOmE,QACjB,SAACmiB,EAAK1nB,GAAN,mBAAC,eACI0nB,GADL,kBAEG1nB,GAAO,MAEV,QAyDQ,cAACunB,GAAA,EAAD,CACErjB,GAAG,8BACHJ,UAAU,QACV0jB,eAAgB,cAAC,KAAD,CAAkBtjB,GAAG,qBACrC+S,KAAK,cACL3O,MAAO,OACPmf,YA1DE,WAChBnX,EACE4I,OAAOC,KAAK/X,GAAOmE,QACjB,SAACmiB,EAAK1nB,GAAN,mBAAC,eACI0nB,GADL,kBAEG1nB,GAAO,MAEV,gBAwDE,cAAC6S,GAAA,EAAD,CAAc8U,SAAO,IACpB9kB,+BAA2CJ,EAAO,CAAC,WAClD,eAACoQ,GAAA,EAAD,CACE/O,UAAU,0DACVC,QAAS,SAAC/B,GAAD,OAAOolB,EAAkBplB,EAAG,cAFvC,UAIE,gCACE,cAAC,KAAD,CAAM8N,KAAM,GAAImH,KAAK,SAASnT,UAAU,UACxC,sBAAMA,UAAU,eAAhB,SACE,cAAC,KAAD,CAAkBI,GAAG,6BAGzB,cAAC,KAAD,CACE4L,KAAM,GACNmH,MAAW,OAAL7V,QAAK,IAALA,OAAA,EAAAA,EAAOukB,WAAY,cAAgB,SACzC7hB,UAAU,QACVwE,OAAY,OAALlH,QAAK,IAALA,OAAA,EAAAA,EAAOukB,WAAYuB,OAAUje,OAIzCpG,+BAA2CJ,EAAO,CAAC,WAClD,eAACoQ,GAAA,EAAD,CACE/O,UAAU,0DACVC,QAAS,SAAC/B,GAAD,OAAOolB,EAAkBplB,EAAG,UAFvC,UAIE,gCACE,cAAC,KAAD,CAAM8N,KAAM,GAAImH,KAAK,YAAYnT,UAAU,UAC3C,sBAAMA,UAAU,eAAhB,SACE,cAAC,KAAD,CAAkBI,GAAG,qBAGzB,cAAC,KAAD,CACE4L,KAAM,GACNmH,MAAW,OAAL7V,QAAK,IAALA,OAAA,EAAAA,EAAO4kB,OAAQ,cAAgB,SACrCliB,UAAU,QACVwE,OAAY,OAALlH,QAAK,IAALA,OAAA,EAAAA,EAAO4kB,OAAQkB,OAAUje,OAIrCpG,+BAA2CJ,EAAO,CAAC,WAClD,eAACoQ,GAAA,EAAD,CACE/O,UAAU,0DACVC,QAAS,SAAC/B,GAAD,OAAOolB,EAAkBplB,EAAG,cAFvC,UAIE,gCACE,cAAC,KAAD,CAAM8N,KAAM,GAAImH,KAAK,YAAYnT,UAAU,UAC3C,sBAAMA,UAAU,eAAhB,SACE,cAAC,KAAD,CAAkBI,GAAG,6BAGzB,cAAC,KAAD,CACE4L,KAAM,GACNmH,MAAW,OAAL7V,QAAK,IAALA,OAAA,EAAAA,EAAO+kB,WAAY,cAAgB,SACzCriB,UAAU,QACVwE,OAAY,OAALlH,QAAK,IAALA,OAAA,EAAAA,EAAO+kB,WAAYe,OAAUje,OAIzCpG,+BAA2CJ,EAAO,CAAC,WAClD,eAACoQ,GAAA,EAAD,CACE/O,UAAU,0DACVC,QAAS,SAAC/B,GAAD,OAAOolB,EAAkBplB,EAAG,WAFvC,UAIE,gCACE,cAAC,KAAD,CAAM8N,KAAM,GAAImH,KAAK,QAAQnT,UAAU,UACvC,sBAAMA,UAAU,eAAhB,SACE,cAAC,KAAD,CAAkBI,GAAG,uBAGzB,cAAC,KAAD,CACE4L,KAAM,GACNmH,MAAW,OAAL7V,QAAK,IAALA,OAAA,EAAAA,EAAOilB,QAAS,cAAgB,SACtCviB,UAAU,QACVwE,OAAY,OAALlH,QAAK,IAALA,OAAA,EAAAA,EAAOilB,QAASa,OAAUje,OAItCpG,+BAA2CJ,EAAO,CAAC,WAClD,eAACoQ,GAAA,EAAD,CACE/O,UAAU,0DACVC,QAAS,SAAC/B,GAAD,OAAOolB,EAAkBplB,EAAG,oBAFvC,UAIE,gCACE,cAAC,KAAD,CAAM8N,KAAM,GAAImH,KAAK,eAAenT,UAAU,UAC9C,sBAAMA,UAAU,eAAhB,SACE,cAAC,KAAD,CAAkBI,GAAG,8BAGzB,cAAC,KAAD,CACE4L,KAAM,GACNmH,MAAW,OAAL7V,QAAK,IAALA,OAAA,EAAAA,EAAOolB,iBAAkB,cAAgB,SAC/C1iB,UAAU,QACVwE,OAAY,OAALlH,QAAK,IAALA,OAAA,EAAAA,EAAOolB,iBAAkBU,OAAUje,OAI/CpG,+BAA2CJ,EAAO,CAAC,WAClD,eAACoQ,GAAA,EAAD,CACE/O,UAAU,0DACVC,QAAS,SAAC/B,GAAD,OAAOolB,EAAkBplB,EAAG,YAFvC,UAIE,gCACE,cAAC,KAAD,CAAM8N,KAAM,GAAImH,KAAK,QAAQnT,UAAU,UACvC,sBAAMA,UAAU,eAAhB,SACE,cAAC,KAAD,CAAkBI,GAAG,yBAGzB,cAAC,KAAD,CACE4L,KAAM,GACNmH,MAAW,OAAL7V,QAAK,IAALA,OAAA,EAAAA,EAAOslB,SAAU,cAAgB,SACvC5iB,UAAU,QACVwE,OAAY,OAALlH,QAAK,IAALA,OAAA,EAAAA,EAAOslB,SAAUQ,OAAUje,gBCtL5C2e,GAAOC,OAAQ,YAA2B3kB,IAAI4kB,iBAAhC,aAA4DC,QAE1EC,GAAkB,CACtBrC,WAAW,EACXK,OAAO,EACPG,WAAW,EACXE,QAAQ,EACRG,iBAAiB,EACjBE,SAAS,GAGLuB,GAAgB,CACpB/I,MAAO,IAGHgJ,GAAiB,SAACC,EAAMjJ,GAC5B,OAAKA,GAILA,GAFAA,EAAQA,EAAMkJ,QAAQ,OAAQ,MAEhBA,QAAQ,KAAM,KACdD,EAAKE,MAAM,IAAIC,OAAJ,WAAepJ,EAAf,KAAyB,OAErChX,KAAI,SAACqgB,EAAMngB,GAAP,OACf8W,EAAMmJ,MAAM,KAAKj7B,SAASm7B,EAAKxlB,gBAAkBwlB,EAAKxlB,gBAAkBmc,EAAMnc,cAC5E,sBAAMe,UAAU,uBAAhB,SACGykB,GADyCngB,GAI5CmgB,MAbeJ,GAkBfK,GAAc,SAACL,EAAMjJ,GACzB,OAAKiJ,GACAjJ,GAILA,GAFAA,EAAQA,EAAMkJ,QAAQ,OAAQ,MAEhBA,QAAQ,KAAM,KACZD,EAAKM,MAAM,IAAIH,OAAJ,WAAepJ,EAAf,KAAyB,QANlC,MA6fLwJ,GAnfM,WAAO,IAAD,IACnBjS,EAAYC,iBAAO,MACnB/E,EAAOC,eACP0D,EAAUC,cACVoT,EAAgBC,cACtB,EAAkChS,aAAQ,CACxCqR,cAAeA,KADTpR,EAAR,EAAQA,QAASgS,EAAjB,EAAiBA,MAGXC,GAAaC,EAHnB,EAAwBA,SAIxB,EAAwBrmB,aAAY,SAACC,GAAD,MAAY,CAC9CF,MAAOE,EACPsX,KAAMpX,cAA0BF,OAF1BF,EAAR,EAAQA,MAKR,GALA,EAAewX,KAKyBla,oBAAS,IAAjD,mBAAOipB,EAAP,KAAqBC,EAArB,KACA,EAAoClpB,mBAAS,GAA7C,mBAAOmpB,EAAP,KAAmBC,EAAnB,KACA,EAAgCppB,mBAAQ,UACtCK,KAAKC,MAAMH,aAAaC,QAAQ,+BADM,QACqB6nB,IAD7D,mBAAO5C,EAAP,KAAiBgE,EAAjB,KAIAlkB,aACE,CACE,CACEN,IAAK,IACLD,YAAa,CACXI,KAAK,EACLF,MAAM,EACNI,OAAO,GAETe,SAAU,SAACL,GACTrM,QAAQ8J,IAAI,QAASuC,GACrBsjB,GAAgB,GAChBI,MAGJ,CACEzkB,IAAK,IACLD,YAAa,CACXI,KAAK,EACLF,MAAM,EACNI,OAAO,GAETe,SAAU,SAACL,GACTrM,QAAQ8J,IAAI,QAASuC,GACrBsjB,GAAgB,GAChBI,OAIN,IAIF,MAA0ClE,GACxC2D,EAAW5J,MADyC,UAEpD,CACEyG,YAAY9iB,+BAA2CJ,EAAO,CAC5D3T,KAAqBw6B,mBAGnBlE,EAASO,UACbK,QAAQnjB,+BAA2CJ,EAAO,CAAC,WAAoB2iB,EAASY,MACxFG,YAAYtjB,+BAA2CJ,EAAO,CAAC,WAE3D2iB,EAASe,UACbE,SAASxjB,+BAA2CJ,EAAO,CAAC,WAExD2iB,EAASiB,OACbG,kBAAkB3jB,+BAA2CJ,EAAO,CAAC,WAEjE2iB,EAASoB,gBACbE,UAAU7jB,+BAA2CJ,EAAO,CAAC,WAEzD2iB,EAASsB,gBApBqC,QAqB/C,IArBOnF,EAAd,EAAQ7d,KAAmBiX,EAA3B,EAA2BA,WA6BrB4O,EAAkB,WACtBV,EAAMZ,IACN/nB,aAAaqB,QAAQ,sBAAuBnB,KAAKoB,UAAU4jB,KAIvDiE,EAAsB,WAC1BF,EAAc,IACO,IAAjBH,IACFC,GAAgB,GAChBM,MAaElH,EAAY,SAACrgB,GACC,KAAdA,EAAEugB,SAAgC,KAAdvgB,EAAEugB,SACxBlgB,YAAW,WACT4mB,GAAgB,GAChBM,MACC,IAKDC,EAA4B,SAAC1J,EAAK9f,GACtCE,aAAaqB,QAAQ,sBAAuBnB,KAAKoB,UAAU4jB,SAE/Cnc,IAAR6W,GAA6B,OAARA,IACL,cAAd9f,EAAKuG,KACP+O,EAAQzb,KACN,CAAEmO,SAAU8X,GACZ,CACE2J,oBAAqB,CAACzpB,GACtB0pB,oBAAmB,OAAE1pB,QAAF,IAAEA,OAAF,EAAEA,EAAM6d,WAC3B8L,wBAAuB,OAAE3pB,QAAF,IAAEA,OAAF,EAAEA,EAAM8d,iBAGZ,cAAd9d,EAAKuG,KACd+O,EAAQzb,KACN,CAAEmO,SAAU8X,GACZ,CACE8J,oBAAqB,CAAC5pB,GACtB6pB,oBAAmB,OAAE7pB,QAAF,IAAEA,OAAF,EAAEA,EAAM6d,WAC3BiM,wBAAuB,OAAE9pB,QAAF,IAAEA,OAAF,EAAEA,EAAM8d,iBAGZ,UAAd9d,EAAKuG,KACd+O,EAAQzb,KAAK,CACXmO,SAAU,QACVrF,MAAO,CACLonB,gBAAiB,CAAC/pB,GAClBgqB,gBAAe,OAAEhqB,QAAF,IAAEA,OAAF,EAAEA,EAAM6d,WACvBoM,oBAAmB,OAAEjqB,QAAF,IAAEA,OAAF,EAAEA,EAAM8d,eAC3BkL,cAAc,KAGK,WAAdhpB,EAAKuG,KACd+O,EAAQzb,KACN,CAAEmO,SAAU8X,GACZ,CACEoK,iBAAkB,CAAClqB,GACnBmqB,iBAAgB,OAAEnqB,QAAF,IAAEA,OAAF,EAAEA,EAAM6d,WACxBuM,qBAAoB,OAAEpqB,QAAF,IAAEA,OAAF,EAAEA,EAAM8d,iBAGT,oBAAd9d,EAAKuG,KACd+O,EAAQzb,KACN,CAAEmO,SAAU8X,GACZ,CACEuK,kBAAmBrqB,EAAKqqB,oBAGvB/U,EAAQzb,KAAKimB,IAEtBmJ,GAAgB,GAChBM,KAyCF,OA3BArT,GAAkBO,GAAW,WAC3B4S,OAGF1oB,qBAAU,YACR,OAAImoB,QAAJ,IAAIA,OAAJ,EAAIA,EAAYwB,kBACdhV,EAAQzb,KACN,CAAEmO,SAAU,SACZ,CACEuiB,0BAAyB,OAAEzB,QAAF,IAAEA,OAAF,EAAEA,EAAYwB,iBAG3CjB,OAED,QAACP,QAAD,IAACA,OAAD,EAACA,EAAYwB,iBAEhB3pB,qBAAU,WACJqoB,GAA2C,UAA3BL,EAAc3gB,UAChCsN,EAAQzb,KACN,CAAEmO,SAAU,SACZ,CACEwiB,oBAAoB,MAIzB,CAACxB,IAGF,eAACtF,GAAA,EAAD,CAAS5f,UAAU,mCAAmCC,QAAS,kBAAMklB,GAAgB,IAArF,UACE,cAACtF,GAAA,EAAD,CAAS7f,UAAU,kBAAnB,SACE,cAAC,KAAD,CAAQA,UAAU,QAAQgM,KAAM,UAElC,sBACEhM,UAAWmE,IAAW,eAAgB,CACpC2H,MAAuB,IAAjBoZ,IAFV,UAKE,sBAAK7S,IAAK,SAACA,GAAD,OAAUM,EAAUH,QAAUH,GAAxC,UACE,qBAAKrS,UAAU,oBAAf,SACE,eAACwjB,GAAA,EAAD,WACE,cAAC,KAAD,CAAQje,MAAO,CAAER,UAAW,SACZ,IAAfqgB,GACC,qCACGrmB,+BAA2CJ,EAAO,CACjD3T,KAAqB27B,2BAErB,qCACE,cAAC3G,GAAA,EAAD,CAAqBhO,UAAW,MAAOC,OAAQ,uBAA/C,SACGpE,EAAKwF,cAAc,CAAEjT,GAAI,4BAE5B,qBACEwmB,IAAK9C,GACL7iB,IAAI,OACJb,GAAI,uBACJmF,MAAO,CAAER,UAAW,OACpB/E,UAAW,OACXsU,OAAQ,OACRrU,QAAS,kBAAMolB,EAAc,SAInC,cAAC,GAAD,CACEjK,MAAO4J,EAAW5J,MAClB9d,MAAOgkB,EACP9U,SAAU8Y,YAMnBJ,EACgB,IAAfE,EACE,cAAC,KAAD,CACErS,QAASA,EACT8T,kBAAgB,EAChB1a,KAAM,QACN2a,OAAQ,kBAAGC,EAAH,EAAGA,MAAH,OACN,cAAC,GAAD,CACE/mB,UAAU,oBACVyd,YAAaA,EACbxB,UAAU,QACVuB,gBAAgB,aAChB3G,WAAYA,EACZ0G,SAAS,EACTqB,YAAa/Q,EAAKwF,cAAc,CAAEjT,GAAI,0BACtC4c,WAAW,EACXjB,sBAAuB2J,EACvBxI,WAAY,SAACtB,EAAWC,GAAZ,OA1KL,SAACA,GACnBqJ,IACHrJ,EAAa,IACb4J,KAuKuDnF,CAAiBzE,IAC1D0C,UAAWA,EACXjhB,MAAK,UAAEypB,EAAMzpB,aAAR,QAAiB,GACtBkP,SAAU,SAAC3K,GAAW,IAAD,EACbwiB,EAAI,OAAGxiB,QAAH,IAAGA,GAAH,UAAGA,EAAOoQ,cAAV,aAAG,EAAe3U,MAE5B,GAAK+mB,EAAL,CAKA,IAAMjG,EAAiB4I,aAAgB3C,GAEvC0C,EAAMva,SAAS4R,QANb2I,EAAMva,SAAS,KAQnB8P,aAAc,SACZpgB,EACA2P,EACAiQ,EACAN,EACAO,EACAI,GACI,IAAD,UACH,OACE,eAAC5L,GAAA,EAAD,CACEI,GAAG,IACH3Q,UAAWmE,IAAW,kBAAmB,CACvCsY,OAAQX,EAAaY,QAAQxgB,KAAUsf,IAGzCvb,QAAS,SAAC/B,GAAD,OA/HL,SAAC+oB,EAAMzK,EAAMte,EAAGhC,GAC1C+qB,EAAK/qB,EAAKsgB,KAAMtgB,GAEhBqC,YAAW,WACT4mB,GAAgB,KACf,GACHM,IA0HwByB,CAAoBxB,EAA2BxpB,EAAKsgB,KAAMte,EAAGhC,IAE/DygB,aAAc,kBAAMR,EAAsBL,EAAaY,QAAQxgB,KATjE,UAWE,sBAAK8D,UAAU,wBAAf,UACiB,cAAd9D,EAAKuG,KACJ,cAAC,KAAD,CAAM0Q,KAAI,UAAEjX,EAAKirB,6BAAP,QAAgC,UAAWnb,KAAM,KAC3C,UAAd9P,EAAKuG,KACP,cAAC,KAAD,CAAM0Q,KAAMiU,aAAYlrB,EAAKmrB,SAAUrb,KAAM,KAC7B,cAAd9P,EAAKuG,KACP,cAAC,KAAD,CACE0Q,KACiB,MAAfjX,EAAKorB,MACD,SACe,MAAfprB,EAAKorB,MACL,SACe,MAAfprB,EAAKorB,MACL,UACA,YAEN9iB,MACEtI,EAAKsI,OACD,UAAAtI,EAAKsI,aAAL,eAAYlb,SAAS,MACnB4S,EAAKsI,MADP,WAEMtI,EAAKsI,YACXW,EAEN6G,KAAM,KAEQ,WAAd9P,EAAKuG,KACP,cAAC,KAAD,CAAM0Q,KAAM,QAASnH,KAAM,KACX,oBAAd9P,EAAKuG,KACP,cAAC,KAAD,CAAM0Q,KAAM,eAAgBnH,KAAM,KAClB,YAAd9P,EAAKuG,KACP,cAAC,KAAD,CAAM0Q,KAAM,QAASnH,KAAM,KACzB,KACJ,sBAAKhM,UAAU,iBAAf,UACE,mBAAGA,UAAU,oBAAb,SACGokB,GAAeloB,EAAK4T,MAAOkV,EAAW5J,SAE1B,UAAdlf,EAAKuG,KACJ,mCACE,wBAAOzC,UAAU,aAAjB,UACE,cAAC,KAAD,CAAkBI,GAAG,cACpB,KACAgkB,GAAeloB,EAAKqrB,OAAS,GAAIvC,EAAW5J,OAC5C,MACD,cAAC,KAAD,CAAkBhb,GAAG,uBALvB,sBAMQlE,EAAK+lB,oBANb,QAM6B,MAC1ByC,GAAYxoB,EAAKsrB,KAAMxC,EAAW5J,OACjC,qCACE,uBACA,cAAC,KAAD,CAAkBhb,GAAG,iBACpB,KACAgkB,GAAeloB,EAAKsrB,KAAMxC,EAAW5J,UAEtC,KACHsJ,GAAYxoB,EAAKurB,iBAAkBzC,EAAW5J,OAC7C,qCACE,uBACA,cAAC,KAAD,CAAkBhb,GAAG,6BACpB,KACAgkB,GAAeloB,EAAKurB,iBAAkBzC,EAAW5J,UAElD,KACHsJ,GAAYxoB,EAAKwrB,YAAa1C,EAAW5J,OACxC,qCACE,uBACA,cAAC,KAAD,CAAkBhb,GAAG,sBACpB,KACAgkB,GAAeloB,EAAKwrB,YAAa1C,EAAW5J,UAE7C,KACHsJ,GAAYxoB,EAAKyrB,aAAc3C,EAAW5J,OACzC,qCACE,uBACA,cAAC,KAAD,CAAkBhb,GAAG,uBACpB,KACAgkB,GAAeloB,EAAKyrB,aAAc3C,EAAW5J,UAE9C,KACHsJ,GAAYxoB,EAAK4mB,WAAYkC,EAAW5J,OACvC,qCACE,uBACA,cAAC,KAAD,CAAkBhb,GAAG,uBACpB,KACAgkB,GAAeloB,EAAK4mB,WAAYkC,EAAW5J,UAE5C,KACHsJ,GAAYxoB,EAAK0rB,aAAc5C,EAAW5J,OACzC,qCACE,uBACA,cAAC,KAAD,CAAkBhb,GAAG,0BACpB,KACAgkB,GAAeloB,EAAK0rB,aAAc5C,EAAW5J,UAE9C,UAGQ,WAAdlf,EAAKuG,KACP,wBAAOzC,UAAU,aAAjB,UACE,cAAC,KAAD,CAAkBI,GAAG,cACpB,KACAgkB,GAAeloB,EAAK2rB,QAAU,GAAI7C,EAAW5J,OAC7C,MACD,cAAC,KAAD,CAAkBhb,GAAG,wBALvB,sBAMQlE,EAAK4rB,oBANb,QAM6B,SAEb,oBAAd5rB,EAAKuG,KACP,wBAAOzC,UAAU,aAAjB,UACE,cAAC,KAAD,CAAkBI,GAAG,cACpB,KACAgkB,GAAeloB,EAAKqqB,kBAAoB,GAAIvB,EAAW5J,OACvD,MAED,cAAC,KAAD,CAAkBhb,GAAG,eANvB,sBAOQlE,EAAKkmB,gBAPb,QAOyB,SAET,cAAdlmB,EAAKuG,KACP,wBAAOzC,UAAU,aAAjB,UACE,cAAC,KAAD,CAAkBI,GAAG,cACpB,KACAgkB,GAAeloB,EAAK6rB,WAAa,GAAI/C,EAAW5J,OAChDsJ,GAAYxoB,EAAKwrB,YAAa1C,EAAW5J,OACxC,qCACE,uBACA,cAAC,KAAD,CAAkBhb,GAAG,0BACpB,KACAgkB,GAAeloB,EAAKwrB,YAAa1C,EAAW5J,UAE7C,QAEU,cAAdlf,EAAKuG,KACP,wBAAOzC,UAAU,aAAjB,UACE,cAAC,KAAD,CAAkBI,GAAG,cACpB,KACAgkB,GAAeloB,EAAK8rB,WAAa,GAAIhD,EAAW5J,OAChDsJ,GAAYxoB,EAAKwrB,YAAa1C,EAAW5J,OACxC,qCACE,uBACA,cAAC,KAAD,CAAkBhb,GAAG,0BACpB,KACAgkB,GAAeloB,EAAKwrB,YAAa1C,EAAW5J,UAE7C,QAEU,YAAdlf,EAAKuG,KACP,wBAAOzC,UAAU,aAAjB,UACE,cAAC,KAAD,CAAkBI,GAAG,cACpB,KACAgkB,GAAeloB,EAAK+rB,SAAW,GAAIjD,EAAW5J,UAE/C,WAGPlf,EAAK8P,MAAQ9P,EAAKuR,KACjB,qBAAKzN,UAAU,iBAAf,SACE,uBAAOA,UAAU,aAAjB,SACG9D,EAAK8P,KAAO9P,EAAK8P,KAAO9P,EAAKuR,KAAOvR,EAAKuR,KAAO,SAGnD,OAnKC5B,SA2KjB,qBAAK7L,UAAW,iBAAhB,SACE,cAAC,KAAD,CACE+S,QAASA,EACT8T,kBAAgB,EAChB1a,KAAM,iBACN2a,OAAQ,gBAAGC,EAAH,EAAGA,MAAOmB,EAAV,EAAUA,WAAV,OACN,cAAC,KAAD,CACEnB,MAAOA,EACPoB,WAAYD,EACZE,gBAAiB,kBAAM/C,EAAc,WAM7C,QAEN,qBAAKrlB,UAAU,qBAAf,SACE,cAAC,KAAD,CACEA,UAAU,QACVC,QAAS,SAAC/B,GACRA,EAAE2gB,kBACFsG,GAAgB,GAChBM,gBCrhBC4C,GAfK,SAACtlB,GAEnB,IAAQrG,EAAqCqG,EAArCrG,KAAME,EAA+BmG,EAA/BnG,QAASqiB,EAAsBlc,EAAtBkc,kBAEvB,OACE,eAAC,WAAD,WACE,sBAAKjf,UAAU,6CAAf,UACE,cAAC,GAAD,CAAiBif,kBAAmBA,IACpC,cAAC,GAAD,OAEF,cAAC,GAAD,CAAYviB,KAAMA,EAAME,QAASA,QCGxB0rB,GAnBA,WACb,OACE,mBAAGtoB,UAAU,gBAAb,SACE,uBAAMA,UAAU,gDAAhB,6BACe,IAAIuoB,MAAOC,cAAe,IACvC,mBACEzc,KAAK,2BACLkG,OAAO,SACPwW,IAAI,sBACJzoB,UAAU,0CAJZ,sBAOK,IATP,KAUK8R,oB,UCdI,eACV4W,KACAtkB,KAAI,SAACukB,GAAD,OAA8B,MAAjBA,EAAOvV,OAAiBuV,EAAS,QAClDtR,QAAO,SAACsR,GAAD,OAAsB,MAAVA,MCgCXC,GAAkB,SAACpM,EAAMqM,EAAYC,GAChD,OACED,IAAerM,GACdsM,GAAeA,EAAYpiB,MAAQoiB,EAAYpiB,KAAKqiB,SAAWD,EAAYpiB,KAAKqiB,UAAYvM,GAmBpFwM,GAAmB,SAAnBA,EAAoBhmB,EAAU6lB,EAAYC,GACrD,OAAO9lB,EAAS5Z,MAAK,SAAA6/B,GAEnB,OAAIA,EAAMjmB,SACDgmB,EAAiBC,EAAMjmB,SAAU6lB,EAAYC,GAG/CF,GAAgBK,EAAMF,QAASF,EAAYC,OA+BzC9F,GAAS,SAATA,EAAUkG,EAAYL,EAAYC,GAC7C,IAAIK,EAkBJ,OAjBAD,EAAW9/B,MAAK,SAAA6/B,GACd,IAAIjmB,EAEJ,OAAIimB,EAAMjmB,WAAaA,EAAWggB,EAAOiG,EAAMjmB,SAAU6lB,EAAYC,IAC3DK,EAAS,CACf/oB,GAAI6oB,EAAM7oB,GACV4C,YAKA4lB,GAAgBK,EAAMF,QAASF,EAAYC,GACrCK,EAAS,CACf/oB,GAAI6oB,EAAM7oB,SAFd,KAMK+oB,GAOIC,GAAgB,SAACxF,EAAKe,GACjC,IAAM0E,EAAM,GAgBZ,OAfgB,SAAVC,EAAW1F,EAAKpR,GACpB,IAAK,IAAM1R,KAAO8iB,EAAK,CACrB,IAAMtmB,EAAQsmB,EAAI9iB,QACJqE,IAAV7H,IACEA,GAA0B,kBAAVA,EAClBgsB,EAAQhsB,EAAOwD,GAEXA,IAAQ6jB,GACV0E,EAAItzB,KAAKuH,KAMnBgsB,CAAQ1F,GACDyF,GCvCME,GAtFe,SAAC,GASxB,IARLrtB,EAQI,EARJA,KACAstB,EAOI,EAPJA,gBACAC,EAMI,EANJA,eACAC,EAKI,EALJA,WACAC,EAII,EAJJA,cACAb,EAGI,EAHJA,YACAc,EAEI,EAFJA,kBACAC,EACI,EADJA,QAGMC,EAAU5tB,EAAK6tB,aAAe,IAAMlK,IAGpC5b,EAAW6gB,cACX+D,EAAa5kB,EAASC,SAEN0kB,GAAgB1sB,EAAK6sB,QAASF,EAAYC,GAsBhE,OARAjsB,qBAAU,WACR,GAA0B,OAAtB+sB,EAA4B,CAC9BD,EAAcC,GACd,IAAMvN,EAdY,SAAC6M,EAAYL,GACjC,IAAMmB,EAAUhH,GAAOkG,EAAYL,EAAYC,GACzCmB,EAAab,GAAcY,EAAS,MAE1C,OADAC,EAAWC,MACJD,EAUOE,CAAcjB,GAAYL,GACtCY,EAAe,YAAIpN,OAEpB,CAACpY,IAGF,oBACEjE,UAAWmE,IAAW,WAAY,CAChCsY,OAAQvgB,EAAK6sB,UAAYW,EACzBU,SAAUluB,EAAKkuB,WAEjBnqB,QAjBuB,kBAAMupB,EAAgB,KAY/C,SAOE,eAACM,EAAD,yBACE9pB,UAAWmE,IAAW,4BAA6B,CACjD,gBAAiB0lB,EACjB,YAAaA,IAEf9pB,IAAK+pB,EACL7X,OAAQ/V,EAAKmuB,OAAS,cAAWllB,IAEN,IAAtBjJ,EAAK6tB,aACN,CACEhe,KAAM7P,EAAK6sB,SAAW,KAExB,CACE9Z,GAAI/S,EAAK6sB,SAAW,IACpBuB,SAAU,SAAC3F,EAAO1gB,GAChB,IAAK0gB,EACH,OAAO,EAIPA,EAAM3I,KACQ,KAAd2I,EAAM3I,KACN2I,EAAM3I,MAAQ9f,EAAK6sB,UAEnBa,EAAoB1tB,EAAK6sB,YAxBrC,cA8BG7sB,EAAKiX,KACN,+BACE,cAAC,KAAD,CAAkB/S,GAAIlE,EAAK4T,iBC0BtBya,GAzGgB,SAACxnB,GAE9B,IACE7G,EAYE6G,EAZF7G,KACAsuB,EAWEznB,EAXFynB,QACAC,EAUE1nB,EAVF0nB,YACA9N,EASE5Z,EATF4Z,aACA+N,EAQE3nB,EARF2nB,aACAC,EAOE5nB,EAPF4nB,aACAlB,EAME1mB,EANF0mB,eACAC,EAKE3mB,EALF2mB,WACAC,EAIE5mB,EAJF4mB,cACAb,EAGE/lB,EAHF+lB,YACAU,EAEEzmB,EAFFymB,gBACAI,EACE7mB,EADF6mB,kBAIIf,EAAa/D,cAAc5gB,SAG3B0mB,EAAgB,CACpBC,aAAc,CACZC,SAAS,EACTC,GAAI,SAACnrB,GACH,IAGeorB,EAHTC,EAAa9uB,OAAO+uB,YACxBC,EAAQvrB,EAAKwrB,SAASC,UAAUC,wBAAwBxQ,IAKtDmQ,EAAaE,EAJJvrB,EAAK2rB,OAAOjX,OAIW,GAAK,IAEvC0W,EAAY,CACVQ,UAFUP,EAAaE,EAAQ,GAG/BM,UAAW,SAIf,IAAMC,EAAQ9rB,EAAKwrB,SAASG,OAAOD,wBAOnC,OAJII,EAAMC,KAAOD,EAAMvb,OAAShU,OAAOyvB,WAAa,KAAO,GACzDhsB,EAAKwrB,SAASG,OAAOM,QAAQ,aAAa5uB,UAAUE,IAAI,YAGnD,2BACFyC,GADL,IAEEkF,OAAO,eACFkmB,QAMb,OACE,eAAC/X,GAAA,EAAD,CACElT,IAAI,KACJC,UAAWmE,IAAW,CACpB,YAAwB,IAAZqmB,EACZ,oBAAgC,IAAZA,EACpB,8BACExB,GAAiB9sB,EAAK8G,SAAU6lB,EAAYC,IAAgB2B,EAAYnhC,SAAS4S,EAAKkE,MAE1F8P,OAAQya,EAAarhC,SAAS4S,EAAKkE,IACnC8R,OAAQ,kBAAMyK,EAAazgB,EAAKkE,KAChCuc,aAAc,kBAAMA,EAAazgB,EAAKkE,KACtCsqB,aAAc,kBAAMA,EAAaxuB,EAAKkE,KAXxC,UAaE,eAACmO,GAAA,EAAD,CACEU,GAAG,IACHlP,IAAKiP,IACLhP,UAAWmE,IAAW,4CAA6C,CACjE,iBAA6B,IAAZqmB,EACjB,YAAwB,IAAZA,IAEdvqB,QAAS,SAAC/B,GAAD,OAAOA,EAAEM,kBAPpB,UASGtC,EAAKiX,KACN,+BACE,cAAC,KAAD,CAAkB/S,GAAIlE,EAAK4T,aAG/B,cAACjB,GAAA,EAAD,CAAc9O,IAAI,KAAK+rB,UAAWlB,EAAlC,SACE,cAAC,GAAD,CACEJ,SAAS,EACTuB,WAAY7vB,EACZ8vB,MAAO9vB,EAAK8G,SACZ0mB,WAAYA,EACZe,YAAaA,EACb3B,YAAaA,EACb6B,aAAcA,EACdhO,aAAcA,EACd+N,aAAcA,EACdf,cAAeA,EACfF,eAAgBA,EAChBI,SAAS,EACTL,gBAAiBA,EACjBI,kBAAmBA,UCtEdqC,GAnCgB,SAAClpB,GAE9B,IAAMmpB,EAAa,CACjB3B,0BACAhB,0BAGI4C,EAA8B,SAA9BA,EAA+BjwB,GACnC,OAAIA,EAAK8G,SACA9G,EAAK8G,SAAS5Z,MAAK,SAAC6/B,GAAD,OAAWkD,EAA4BlD,OAGlC,IAA5B,UAAA/sB,EAAKhT,mBAAL,eAAkB8a,SACjBjF,+BAA2CJ,EAAOzC,EAAKhT,iBACvDgT,EAAKujB,cACuB,GAA5BvjB,EAAKujB,aAAazb,QAClBjF,yCAAqDJ,EAAOzC,EAAKujB,eAN/D,IAAD,GAUH9gB,EAAQC,aAAY,SAACC,GAAD,OAAWA,KAYrC,OAVuBkE,EAAMipB,MAAM5nB,KAAI,SAAClI,EAAMoI,GAC5C,IAAM8nB,EAAUF,EHZiC,SAAAhwB,GACnD,OAAIA,EAAK8G,SAAiB,yBACnB,wBGUsBqpB,CAAwBnwB,IAEnD,OACEiwB,EAA4BjwB,IAC1B,cAACkwB,EAAD,aAASlwB,KAAMA,EAAMoI,MAAOA,GAAyBvB,GAAb7G,EAAKkE,QCiBtCksB,GA1CQ,SAAC,GAAwC,IAAtC1C,EAAqC,EAArCA,kBAAmBd,EAAkB,EAAlBA,YAE3C,EAAoC7sB,mBAAS,MAA7C,mBAAOytB,EAAP,KAAmBC,EAAnB,KACA,EAAsC1tB,mBAAS,IAA/C,mBAAOwuB,EAAP,KAAoBhB,EAApB,KACA,EAAwCxtB,mBAAS,IAAjD,mBAAO0uB,EAAP,KAAqBnB,EAArB,KAgBA,OACE,qBAAKxpB,UAAU,qCAAf,SACE,oBAAIA,UAAU,iBAAiBI,GAAG,uBAAlC,SACE,cAAC,GAAD,CACEoqB,SAAS,EACTwB,MAAO9C,GACPQ,WAAYA,EACZe,YAAaA,EACb3B,YAAaA,EACbnM,aAtBa,SAAAvc,GACnB,IAAMic,EAAMsO,EACZtO,EAAItmB,KAAKqK,GACTopB,EAAgB,YAAInN,KAoBdqO,aAhBa,SAAAtqB,GACnB,IAAMic,EAAMsO,EACZtO,EAAIkQ,OAAOlQ,EAAIK,QAAQtc,GAAK,GAC5BopB,EAAgB,YAAInN,KAcdsO,aAAcA,EACdhB,cAAeA,EACfF,eAAgBA,EAChBD,gBAAiBA,EACjBI,kBAAmBA,SCrChB4C,GAAS,WAEpB,IAAMnpB,EAAWC,cACXkH,EAAQ5L,aAAY,SAACC,GAAD,OAAWA,EAAMpC,OAAOgwB,SAyBlD,OAZA5vB,qBAAU,WAER,IAAMC,EAAUC,SAAS2vB,qBAAqB,QAAQ,GAGlDliB,EACF1N,EAAQ6vB,aAAa,MAAO,OAE5B7vB,EAAQ6vB,aAAa,MAAO,SAE7B,CAACniB,IAEG,CAACA,EAtBS,SAAClN,GAChB,IAEE,IAAMC,EAAeD,aAAiBE,SAAWF,EAAMkN,GAASlN,EAChE+F,EhFQmB,SAAC/F,GAAD,MAAY,CAAEmF,KAAM,aAAcC,QAASpF,GgFRrDsvB,CAAUrvB,IACnB,MAAOZ,QCZAkwB,GAAgB,WAE3B,MAAoC5wB,oBAAS,WAC3C,IACE,OAAOO,IAAYC,OAAO6iB,OAAO7c,KACjC,MAAO9F,GAEP,OAAOH,IAAYC,OAAO6iB,OAAO7c,SALrC,mBAAOkI,EAAP,KAAmBC,EAAnB,KAsBA,MAAO,CAACD,EAZS,SAACrN,GAChB,IAEE,IAAMC,EAAeD,aAAiBE,SAAWF,EAAMqN,GAAcrN,EAGrEsN,EAAcrN,GACd,MAAOZ,QCnBAmwB,GAAgB,WAE3B,MAAoC7wB,oBAAS,WAC3C,IACE,OAAOO,IAAYC,OAAOswB,OAAOtqB,KACjC,MAAO9F,GAEP,OAAOH,IAAYC,OAAOswB,OAAOtqB,SALrC,mBAAOoI,EAAP,KAAmBC,EAAnB,KAsBA,MAAO,CAACD,EAZS,SAACvN,GAChB,IAEE,IAAMC,EAAeD,aAAiBE,SAAWF,EAAMuN,GAAcvN,EAGrEwN,EAAcvN,GACd,MAAOZ,QCnBAqwB,GAAiB,WAE5B,MAAsC/wB,oBAAS,WAC7C,IACE,OAAOO,IAAYC,OAAO6iB,OAAO2N,gBACjC,MAAOtwB,GAEP,OAAOH,IAAYC,OAAO6iB,OAAO2N,oBALrC,mBAAOliB,EAAP,KAAoBC,EAApB,KAsBA,MAAO,CAACD,EAZS,SAACzN,GAChB,IAEE,IAAMC,EAAeD,aAAiBE,SAAWF,EAAMyN,GAAezN,EAGtE0N,EAAezN,GACf,MAAOZ,QC+MEuwB,I,QAvMU,SAACnqB,GAAW,IAAD,EAE1BC,EACND,EADMC,SAAUsc,EAChBvc,EADgBuc,OAAQyN,EACxBhqB,EADwBgqB,OAAQI,EAChCpqB,EADgCoqB,KAAMvD,EACtC7mB,EADsC6mB,kBAAmBd,EACzD/lB,EADyD+lB,YAI3D,EAAwB9sB,eAAxB,mBAAOU,EAAP,KAAaE,EAAb,KACA,EAA0B4vB,KAA1B,mBAAOhiB,EAAP,KAAcC,EAAd,KACA,EAAoCoiB,KAApC,mBAAOliB,EAAP,KAAmBC,EAAnB,KACA,EAAoCkiB,KAApC,mBAAOjiB,EAAP,KAAmBC,EAAnB,KACA,EAAsCkiB,KAAtC,mBAAOjiB,EAAP,KAAoBC,EAApB,KAGA,EAAkC/O,oBAAS,GAA3C,mBAAOoO,EAAP,KAAkBC,EAAlB,KACA,EAA4CrO,oBAAS,GAArD,mBAAOmxB,EAAP,KAAuBC,EAAvB,KAGMhqB,EAAWC,cACXgqB,EAAc1uB,aAAY,SAACC,GAAD,OAAWA,EAAMpC,UAG3CgH,EAAe6pB,EAAY7pB,aAC3BwH,EAAWqiB,EAAYvpB,WAe7BlH,qBAAU,WAUR,OATAyN,GAAa,GACbnO,OAAOmG,iBAAiB,UAAU,WAC5BnG,OAAOoxB,YAAc,KAAyB,IAAnBH,GAC7BC,GAAkB,GAEhBlxB,OAAOoxB,YAAc,IACvBF,GAAkB,MAGf,kBAfP/iB,GAAa,QACb+iB,GAAkB,MAejB,IAGH,IAAMG,EAAgB,CACpBC,OAAQ,gBACRC,OAAQ,eACRC,OAAQ,iBASJC,EAAgB,CACpBC,SAAU,eACVH,OAAQ,aAGJI,EACY,KAAhB/iB,GAAsC,UAAhBA,GAA2C,UAAhBA,EAEnD,OAAKV,EAKH,8CACErK,UAAWmE,IAAW,6CAAD,OApBI,CAC3B0pB,SAAU,kBACVH,OAAQ,gBACRD,OAAQ,iBAmBmB9iB,IAAe,kBAFnB,YAGf6iB,EAAc3iB,IAAe,gBAHd,oBAKhBI,EAAW,CAAE,WAAY,YAAe,IAN/C,cAQE,eAAC8iB,GAAA,EAAD,CACEC,OAAO,KACPhuB,UAAWmE,IACT,kFACA,CACE,kBAAmBipB,IALzB,WASI9N,GACA,qBAAKtf,UAAU,kCAAf,SACE,oBAAIA,UAAU,iBAAd,SACE,cAAC4f,GAAA,EAAD,UACE,cAAC,IAAD,CAAM3Q,GAAG,IAAIjP,UAAU,eAAvB,SACE,+BACE,qBACE4mB,IAAKpqB,IAAYyxB,IAAIC,aACrBluB,UAAU,qBACViB,IAAI,mBAUlB,qBAAKjB,UAAU,kCAAf,SACGsf,GAAkB,cAAC,GAAD,CAAiB5iB,KAAMA,EAAME,QAASA,SAG3DqO,EA2BE,KA1BF,qBAAKjL,UAAU,0BAAf,SACE,cAAC+tB,GAAA,EAAD,CACEhuB,IAAI,MACJiuB,OAAO,KACPG,MAAgB,SAATzxB,EACPU,KAAe,SAATV,GAAmBoxB,EACzB9tB,UAAWmE,IAAW,6DAAD,mBAGhBypB,EAAcjjB,GAA6B,WAAfA,GAHZ,cAIjB,gBACIijB,EAAcjjB,IAA8B,WAAfA,GAChB,aAAfA,GANe,IALvB,SAeGwiB,GAGC,cAAC,GAAD,CACErE,YAAaA,EACbc,kBAAmBA,QAO5B5mB,GACkC,IAAlCxG,IAAYC,OAAO2xB,WAClB,cAAC,GAAD,CACE1xB,KAAMA,EACNE,QAASA,EACTiO,WAAYA,EACZC,cAAeA,EACfH,WAAYA,EACZC,cAAeA,EACfG,YAAaA,EACbC,eAAgBA,EAChBR,MAAOA,EACPC,SAAUA,EACVhO,OAAQsG,EAAMtG,OACdiO,UAAW3H,EAAM2H,UACjBO,SAAUA,EACVC,YArIY,SAACmjB,GAAD,OAAShrB,EAAST,EAAiByrB,KAsI/C5qB,aAAcA,EACd0H,gBA1IgB,SAACkjB,GAAD,OAAShrB,EAASb,EAAmB6rB,KA2IrDlrB,WAAYJ,EAAMI,WAClBkI,cAAetI,EAAMsI,cACrB7O,YAAaA,MAEb,KACJ,wBACEwD,UAAWmE,IAAW,uBAAD,OACIqpB,EAAc3iB,IAAe,iBACpD,CACE,SAAyB,WAAfA,IAJhB,SAQGkiB,GAGC,cAAC,GAAD,CACEliB,WAAYA,EACZ2iB,cAAeA,OAKa,IAAjChxB,IAAYC,OAAOiiB,UAClB,qBAAK1e,UAAU,gBAAf,SACE,cAAC,KAAD,CAAasuB,UAAW,IAAK/oB,MAAO,CAAEgpB,OAAQ,MAA9C,SACE,cAAC1a,GAAA,EAAD,CAAQ7T,UAAU,WAAWwE,MAAM,UAAnC,SACE,cAAC,KAAD,CAASwH,KAAM,WAInB,SA3HC,OCpGIkhB,GAFU,SAAAnqB,GAAK,OAAI,cAAC,GAAD,2BAAYA,GAAZ,aAAoBA,EAAMC,a,qBCmH7CwrB,GA3GY,SAACzrB,GAE1B,IACEe,EAOEf,EAPFe,cACAsH,EAMErI,EANFqI,iBACA6T,EAKElc,EALFkc,kBACAwP,EAIE1rB,EAJF0rB,aACAC,EAGE3rB,EAHF2rB,UACAC,EAEE5rB,EAFF4rB,WACAC,EACE7rB,EADF6rB,cAIF/xB,qBAAU,YACH6xB,GAAa5qB,GAAe2qB,EAAa,MAC7C,CAACC,EAAW5qB,IAGf,IAAM+qB,EAAU,WACd,OAAK/qB,EAWD,cAAC,KAAD,CACEkI,KAAM,GACN8iB,YAAU,cACV9uB,UAAU,0CACVC,QAAS,kBAAMmL,GAAiB,MAblC,cAAC,KAAD,CACEY,KAAM,GACN8iB,YAAU,cACV9uB,UAAU,0CACVC,QAAS,kBAAMmL,GAAiB,OAgBlC2jB,EAAS,WACb,OAAKJ,EAYD,cAAC,KAAD,CACE3iB,KAAM,GAENmH,KAAM,gBACNnT,UAAU,0CACVC,QAAS,kBAAM2uB,GAAc,MAf/B,cAAC,KAAD,CACE5iB,KAAM,GAENmH,KAAM,gBACNnT,UAAU,0CACVC,QAAS,kBAAM2uB,GAAc,OAgBrC,OACE,qBAAK5uB,UAAU,gBAAf,SACE,qBAAIA,UAAU,0BAAd,UACE,oBAAIA,UAAU,mBAAd,SACE,cAAC,IAAD,CAASiP,GAAG,IAAIjP,UAAU,oBAA1B,SACE,+BACE,qBACE4mB,IACE8H,IAAc5qB,EACVtH,IAAYyxB,IAAIC,aAChB1xB,IAAYyxB,IAAIe,QAEtBhvB,UAAU,qBACVuF,MAAO,CACL+O,OAAQoa,IAAc5qB,EAAgB,OAAS,OAC/CsV,OAAQsV,IAAc5qB,EAAgB,IAAM,WAE9C7C,IAAI,eAKZ,oBAAIjB,UAAU,sBAAd,SACE,qBAAKA,UAAU,4CAAf,SACE,cAAC+uB,EAAD,QAGJ,oBAAI/uB,UAAU,sBAAd,SACE,sBAAKA,UAAU,4CAAf,UACE,cAAC6uB,EAAD,IACA,cAAC,KAAD,CACE5uB,QAAS,kBAAMgf,GAAkB,IACjCjf,UAAU,uCACVgM,KAAM,gBC+CLijB,I,MAvIa,SAAC,GAYtB,IAXL/yB,EAWI,EAXJA,KAEAutB,GASI,EAVJgB,YAUI,EATJhB,gBACAC,EAQI,EARJA,WACAC,EAOI,EAPJA,cAEA8E,GAKI,EANJS,UAMI,EALJT,cACAU,EAII,EAJJA,kBACApD,EAGI,EAHJA,WACAjD,EAEI,EAFJA,YACAc,EACI,EADJA,kBAEM/b,EAAOC,eACPnP,EAAQC,aAAY,SAACC,GAAD,OAAWA,KAC/BwE,EAAWC,cAEXwmB,EAAU5tB,EAAK6tB,aAAe,IAAMlK,IACpCyN,EAAc3uB,EAAMlC,OAGpBwH,EAAW6gB,cACX+D,EAAa5kB,EAASC,SAGtBygB,EAAQyK,YAAUvG,EAAY,CAClC/iB,KAAK,GAAD,OAAK5J,EAAK6sB,QAAV,WACJsG,OAAO,EACPC,QAAQ,IAGV,EAAoCrzB,oBAAS,GAA7C,mBAAOszB,EAAP,KAAmBC,EAAnB,KA8BA,OARA3yB,qBAAU,WACR,GAA0B,OAAtB+sB,EAA4B,CAC9BD,EAAcC,GACd,IAAMvN,EAtBY,SAAC6M,EAAYL,GACjC,IAAMmB,EAAUhH,GAAOkG,EAAYL,EAAYC,GAE/C,OADmBM,GAAcY,EAAS,MAoB5BG,CAAcjB,KAAYL,GACtCY,EAAe,YAAIpN,OAEpB,CAACpY,IAGF,oBACEjE,UAAWmE,IAAW,CACpB,YAAajI,EAAK8G,SAClBonB,SAAUluB,EAAKkuB,SACf3N,OAAQvgB,EAAK6sB,UAAYW,IAJ7B,SAOE,eAACI,EAAD,yBACE9pB,UAAU,oDACVI,GAAMlE,EAAKkE,GACX6R,OAAQ/V,EAAKmuB,OAAS,cAAWllB,IAEN,IAAtBjJ,EAAK6tB,aACN,CACEhe,KAAM7P,EAAK6sB,SAAW,KAExB,CACE9Z,GAAI/S,EAAK6sB,SAAW,IACpBuB,SAAU,SAAC3F,EAAO1gB,GAChB,IAAK0gB,EACH,OAAO,EAGLA,EAAM3I,KAAqB,KAAd2I,EAAM3I,KAAc2I,EAAM3I,MAAQ9f,EAAK6sB,UACtDa,EAAoB1tB,EAAK6sB,YAjBrC,IAsBE9oB,QAAS,SAAC/B,GACHhC,EAAK6sB,QAAQ/kB,QAChB9F,EAAEM,iBAEJutB,EAtDiB,SAAChD,GACxB,IAAMiB,EAAUhH,GAAOkG,KAAYH,EAASpE,GAC5CwK,EAAkBjzB,EAAKkE,GAAI4pB,GAoDRyF,CAAiBvzB,EAAK6sB,UA/CzCU,EAAe,IACfgF,EAAa,MAgDT9R,aAAc,kBAAM6S,GAAc,IAClC9E,aAAc,kBAAM8E,GAAc,IA7BpC,UAgCE,sBAAKxvB,UAAW,SAAhB,UACE,cAAC,KAAD,CAAMmT,KAAMjX,EAAK6jB,WACjB,sBAAM/f,UAAU,kCAAhB,SACE,cAAC,KAAD,CAAkBI,GAAIlE,EAAK4T,kBAGZ3K,IAAlBjJ,EAAKwzB,UACNxzB,EAAKwzB,WAAa3wB,0BAAsCJ,GACtD,cAAC,KAAD,CAAMqN,KAAM,GAAImH,KAAM,kBACpB,KACHoc,QACoBpqB,IAAnBjJ,EAAKyzB,YACsB,IAA3BrC,EAAYqB,YACZzyB,EAAKwzB,WAAa3wB,0BAAsCJ,IACtD,cAAC,KAAD,CACEqN,KAAM,GACNhM,UAAW,cACXmT,KAAM,gBACNlT,QAAS,WACPoD,EAAS4Q,IAAA,UAA8C/X,EAAKwzB,YAC5DrsB,EAASR,GAAiB,OAIjC3G,EAAKyzB,UACJ,cAAC/U,GAAA,EAAD,CAAO5a,UAAS,8BAAyB9D,EAAK0zB,MAAQ1zB,EAAK0zB,MAAQ,UAAY/U,MAAI,EAAnF,SACGhN,EAAKwF,cAAc,CAAEjT,GAAIlE,EAAKyzB,cAE/B,a,WCWGE,GAlJc,SAAC,GAavB,IAkEuBzvB,EA9E5BlE,EAYI,EAZJA,KACAuuB,EAWI,EAXJA,YACAhB,EAUI,EAVJA,eACAC,EASI,EATJA,WACAC,EAQI,EARJA,cACAuF,EAOI,EAPJA,UACAT,EAMI,EANJA,aACA1C,EAKI,EALJA,WACAjoB,EAII,EAJJA,cACA4qB,EAGI,EAHJA,UACA5F,EAEI,EAFJA,YACAc,EACI,EADJA,kBAEM/b,EAAOC,eAEP+a,EAAa/D,cAAc5gB,SA2B3BirB,EAAoB,SAACjzB,EAAM6vB,GAC/B,IACI9B,EADA6F,EAAYrF,EAGZsB,GACF9B,EAAab,GAAc2C,EAAY,MACvC+D,EAAY7F,GAEZ6F,EAAUxmC,SAAS4S,GACf4zB,EAAUvD,OAAOuD,EAAUpT,QAAQxgB,GAAO,GAC1C4zB,EAAU/5B,KAAKmG,GAIrB,IAAM6zB,EAAUb,EAAU7X,QAAO,SAACgX,GAAD,OAAUyB,EAAUxmC,SAAS+kC,MAC9DI,EAAa,YAAIsB,IAGjBtG,EAAe,YAAIqG,KAIfE,EAAkB,SAAC9xB,EAAGhC,GAEvBuuB,GAAeA,EAAYnhC,SAAS4S,EAAKkE,KAC1C4oB,GAAiB9sB,EAAK8G,SAAU6lB,EAAYC,GAE5CqG,EAAkBjzB,EAAKkE,IAnDH,SAAClE,EAAM6vB,GAC7B,IACI9B,EADA8F,EAAUb,EAGVnD,IACF9B,EAAab,GAAc2C,EAAY,OAC5B7B,MAITgF,GAAajF,GAAciF,EAAU,KAAOjF,EAAW,GACzDiF,EAAU5lC,SAAS4S,GAAQ6zB,EAAQxD,OAAOwD,EAAQrT,QAAQxgB,GAAO,GAAK6zB,EAAQh6B,KAAKmG,IAEnF6zB,EAAU,GACLb,EAAU5lC,SAAS4S,IACtB6zB,EAAQh6B,KAAKmG,IAKjBuyB,EAAa,YAAIsB,IAiCfE,CAAgB/zB,EAAKkE,GAAI2rB,GAG3B7tB,EAAEM,kBAeJ,OACE,qBACEwB,UAAWmE,IAAW,mBAAoB,CACxC2H,MAdsB1L,EAcGlE,EAAKkE,GAb7B0D,GAAiB4qB,IAAgC,IAAlB5qB,KAC9B2mB,EAAYnhC,SAAS8W,KAAO8uB,EAAU5lC,SAAS4S,EAAKkE,WAAxD,IAGSqqB,EAAYnhC,SAAS8W,KAAO0D,IAA+B,IAAd4qB,IAG/C,MAOL,sBAAuBjE,EAAYnhC,SAAS4S,EAAKkE,IACjD,uBAAwBqqB,EAAYnhC,SAAS4S,EAAKkE,KAAO8uB,EAAU5lC,SAAS4S,EAAKkE,MAJrF,UAOE,eAAC,IAAD,CACEJ,UAAU,4BACViP,GAAG,IACH7O,GAAIlE,EAAKkE,GACTH,QAAS,SAAC/B,GAAD,OAAO8xB,EAAgB9xB,EAAGhC,IAJrC,UAQE,cAAC,KAAD,CAAMiX,KAAMjX,EAAK6jB,WACjB,sBAAM/f,UAAU,mCAAhB,SACE,cAAC,KAAD,CAAkBI,GAAIlE,EAAK4T,UAE5B5T,EAAKyzB,UACJ,cAAC/U,GAAA,EAAD,CAAO5a,UAAS,8BAAyB9D,EAAK0zB,MAAQ1zB,EAAK0zB,MAAQ,UAAY/U,MAAI,EAAnF,SACGhN,EAAKwF,cAAc,CAAEjT,GAAIlE,EAAKyzB,cAE/B,QAIN,oBAAI3vB,UAAU,eAAd,SACE,cAACkwB,GAAA,EAAD,CACEhgB,OACGua,GAAeA,EAAYnhC,SAAS4S,EAAKkE,KACzC8uB,GAAaA,EAAU5lC,SAAS4S,EAAKkE,IAH1C,SAME,cAAC+vB,GAAD,CACEnE,MAAO9vB,EAAK8G,SACZynB,YAAaA,EACbhB,eAAgBA,EAChByF,UAAWA,EACXT,aAAcA,EACdU,kBAAmBA,EACnBpD,WAAY7vB,EACZ4H,cAAeA,EACf4qB,UAAWA,EACX5F,YAAaA,EACbc,kBAAmBA,EACnBF,WAAYA,EACZC,cAAeA,Y,WC/HZyG,GApBsB,SAAC,GAAqB,IAAnBl0B,EAAkB,EAAlBA,KAChC2R,GADkD,EAAZvJ,MAC/BwJ,gBACb,OACE,qBAAI9N,UAAU,oBAAd,UACG9D,EAAK6jB,UACJ,cAAC,KAAD,CAAMxa,MAAO,CAAEP,YAAa,KAAMC,WAAY,OAASkO,KAAMjX,EAAK6jB,WAEpE,+BACE,cAAC,KAAD,CAAkB3f,GAAIlE,EAAKkX,WAE5BlX,EAAKyzB,UACJ,cAAC/U,GAAA,EAAD,CAAO5a,UAAS,8BAAyB9D,EAAK0zB,MAAQ1zB,EAAK0zB,MAAQ,UAAY/U,MAAI,EAAnF,SACGhN,EAAKwF,cAAc,CAAEjT,GAAIlE,EAAKyzB,cAE/B,KACJ,cAAC,KAAD,CAAgB3vB,UAAU,gCCwBjBqwB,GApCc,SAACttB,GAE5B,IAAMmpB,EAAa,CACjBkE,gCACAP,wBACAZ,wBAEItwB,EAAQC,aAAY,SAACC,GAAD,OAAWA,KA0BrC,OAxBuBkE,EAAMipB,MAAM5nB,KAAI,SAAClI,EAAMoI,GAC5C,IAAM8nB,EAAUF,EfX+B,SAAAhwB,GACjD,OAAIA,EAAKkX,OAAe,+BACpBlX,EAAK8G,SAAiB,uBACnB,sBeQsBqpB,CAAwBnwB,IAgBnD,OAdoC,SAA9BiwB,EAA+BjwB,GACnC,OAAIA,EAAK8G,SACA9G,EAAK8G,SAAS5Z,MAAK,SAAC6/B,GAAD,OAAWkD,EAA4BlD,OAGlC,IAA5B,UAAA/sB,EAAKhT,mBAAL,eAAkB8a,SACjBjF,+BAA2CJ,EAAOzC,EAAKhT,iBACvDgT,EAAKujB,cACuB,GAA5BvjB,EAAKujB,aAAazb,QAClBjF,yCAAqDJ,EAAOzC,EAAKujB,eAN/D,IAAD,EAYP0M,CAA4BjwB,IAC1B,cAACkwB,EAAD,aAAsClwB,KAAMA,GAAU6G,GAAxC7G,EAAKkE,IAAMlE,EAAKkX,YCkFvBkd,GAjGC,SAACvtB,GAEf,IAAQe,EAA8Df,EAA9De,cAAeglB,EAA+C/lB,EAA/C+lB,YAAaqE,EAAkCpqB,EAAlCoqB,KAAMvD,EAA4B7mB,EAA5B6mB,kBAAmBltB,EAASqG,EAATrG,KAGvD7T,EAASC,cACTC,EAAaC,cAGnB,EAAkCiT,mBAAS,IAA3C,mBAAOizB,EAAP,KAAkBT,EAAlB,KACA,EAAsCxyB,mBAAS,IAA/C,mBAAOwuB,EAAP,KAAoBhB,EAApB,KACA,EAAoCxtB,mBAAS,MAA7C,mBAAOytB,EAAP,KAAmBC,EAAnB,KAGA,EAAkC1tB,oBAAS,GAA3C,mBAAOyyB,EAAP,KAAkB6B,EAAlB,KAGMC,EAAY5d,iBAAO,MAEnB6C,EAAY7W,aAAY,SAACC,GAAD,OAAWE,uBAAmCF,MAsB5E,OACE,cAAC,WAAD,UACE,qBACEmB,UAAWmE,IAAW,kDAAmD,CACvEssB,SAAU/B,IAA+B,IAAlB5qB,EACvB,aAAuB,cAATpH,GAAiC,SAATA,EACtC,YAAsB,cAATA,GAAiC,SAATA,IAEvCigB,aA3Be,WACf7Y,GACFysB,GAAa,IA0BX7F,aAAc,kBAAM6F,GAAa,IAPnC,SASGpD,GAGC,eAAC,WAAD,WAEE,cAAC,GAAD,aAAoBsB,aAAcA,EAAcC,UAAWA,GAAe3rB,IAE1E,qBAAK/C,UAAU,gBAAgBqS,IAAKme,IAEpC,cAAC,KAAD,CACExwB,UAAU,oBACV8M,QAAS,CAAEwQ,kBAAkB,GAC7BoT,UAAW,SAAC/d,GAAD,OAnCJ,SAACA,GACd6d,GAAa7d,EAAU+L,UAAY,EAChC8R,EAAUhe,QAAQvV,UAAUwV,SAAS,YACxC+d,EAAUhe,QAAQvV,UAAUE,IAAI,WAG9BqzB,EAAUhe,QAAQvV,UAAUwV,SAAS,YACvC+d,EAAUhe,QAAQvV,UAAUC,OAAO,WA4BHyzB,CAAWhe,IAHvC,SAKE,oBAAI3S,UAAU,6BAAd,SACE,cAACmwB,GAAD,CACEnE,MACgB,IAAdvW,GAAmB5sB,EACf+nC,KACc,IAAdnb,GAAmB1sB,EACnB8nC,KACc,IAAdpb,EACAqb,KACA5H,KAENuB,YAAaA,EACbhB,eAAgBA,EAChBC,WAAYA,EACZC,cAAeA,EACfuF,UAAWA,EACXT,aAAcA,EACd3F,YAAaA,EACbhlB,cAAeA,EACf4qB,UAAWA,EACX9E,kBAAmBA,gBCgJtBmH,I,gBArNQ,SAAChuB,GAEtB,IAAQC,EAAmED,EAAnEC,SAAUsc,EAAyDvc,EAAzDuc,OAAQyN,EAAiDhqB,EAAjDgqB,OAAQI,EAAyCpqB,EAAzCoqB,KAAMrE,EAAmC/lB,EAAnC+lB,YAAac,EAAsB7mB,EAAtB6mB,kBAGrD,EAAwB5tB,eAAxB,mBAAOU,EAAP,KAAaE,EAAb,KACA,EAA0B4vB,KAA1B,mBAAOhiB,EAAP,KAAcC,EAAd,KACA,EAAoCoiB,KAApC,mBAAOliB,EAAP,KAAmBC,EAAnB,KACA,EAAoCkiB,KAApC,mBAAOjiB,EAAP,KAAmBC,EAAnB,KACA,EAAsCkiB,KAAtC,mBAAOjiB,EAAP,KAAoBC,EAApB,KAGA,EAAkC/O,oBAAS,GAA3C,mBAAOoO,EAAP,KAAkBC,EAAlB,KACA,EAA4CrO,oBAAS,GAArD,mBAAO+0B,EAAP,KAAuB/R,EAAvB,KACA,EAAsChjB,mBAASE,OAAOyvB,YAAtD,mBAAOqF,EAAP,KAAoBC,EAApB,KAGM7tB,EAAWC,cACXgqB,EAAc1uB,aAAY,SAACC,GAAD,OAAWA,EAAMpC,UAG3C00B,EAAoB,WACxBD,EAAe/0B,OAAOyvB,aAIlB3nB,GAAW6gB,cACXrhB,GAAe6pB,EAAY7pB,aAC3BK,GAAgBwpB,EAAYxpB,cAC5B6qB,GAAarB,EAAYqB,WACzB1jB,GAAWqiB,EAAYvpB,WAGvBqH,GAAmB,SAACijB,GAAD,OAAShrB,EAASV,EAAoB0rB,KAY/DxxB,qBAAU,WACJm0B,GAAkBC,EAAc,MAClChS,GAAkB,KAEnB,CAAChb,KAGJpH,qBAAU,gBACOsI,IAAXhJ,QACFA,OAAOmG,iBAAiB,SAAU6uB,KAEnC,CAACF,IAGJp0B,qBAAU,WAER,OADAyN,GAAa,GACN,kBAAMA,GAAa,MACzB,IAGH,IAAMkjB,GAAgB,CACpBC,OAAQ,gBACRC,OAAQ,eACRC,OAAQ,iBAiBJG,GAAmC,KAAhB/iB,GAAsC,UAAhBA,GAA2C,UAAhBA,EAE1E,OAAKV,EAIH,8CACErK,UAAWmE,IAAW,2BAAD,OArBI,CAC3B0pB,SAAU,kBACVH,OAAQ,gBACRD,OAAQ,gBACRE,OAAQ,iBAkB4ChjB,IAAe,kBAD5C,YAEjB6iB,GAAc3iB,IAAe,iBAE/B,CAEE,uBAAwBomB,GAAe,KACvC,iBAAkBntB,IAAiBmtB,GAAe,KAClD,iBAAkBntB,IAAiBmtB,EAAc,KAGjD,wBAAyBA,EAAc,KACvC,aAAcD,GAAkBC,EAAc,KAC9C,YAAaD,GAAkBC,EAAc,QAG5ChmB,GAAW,CAAE,WAAY,YAAe,IAjB/C,cAmBIA,GAaE,KAZF,cAAC,GAAD,CACEvO,KAAMA,EACNywB,KAAMA,EACNrpB,cAAeA,GACfktB,eAAgBA,EAChBrC,WAAYA,GACZvjB,iBAAkBA,GAClB6T,kBAAmBA,EACnB2P,cA7Ec,SAACP,GAAD,OAAShrB,EAASR,EAAiBwrB,KA8EjDvF,YAAaA,EACbc,kBAAmBA,IAIvB,cAACmE,GAAA,EAAD,CACEC,OAAO,KACPG,MAAgB,SAATzxB,EACPU,KAAe,SAATV,GAAmBoxB,GACzBtpB,MAAOspB,GAAmB/iB,OAAc5F,EACxCnF,UAAWmE,IAAW,2CAAD,OApDL,CACpB0pB,SAAU,eACVH,OAAQ,YACRD,OAAQ,oBACRE,OAAQ,UAkDchjB,IAAe,eAFZ,mBALvB,SAWE,qBAAK3K,UAAU,kCAAf,SACGsf,GAGC,cAAC,GAAD,CAAiBL,kBAAmBA,EAAmBviB,KAAMA,EAAME,QAASA,QAIjFoG,EAGD,qBACEhD,UAAWmE,IAAW,kBAAmB,CACvC+b,KAAM8Q,IAER/wB,QAAS,kBAAMgf,GAAkB,OAIA,IAAlCziB,IAAYC,OAAO2xB,WAClB,cAAC,GAAD,CACE1xB,KAAMA,EACNE,QAASA,EACTiO,WAAYA,EACZC,cAAeA,EACfH,WAAYA,EACZC,cAAeA,EACfG,YAAaA,EACbC,eAAgBA,EAChBR,MAAOA,EACPC,SAAUA,EACVhO,OAAQsG,EAAMtG,OACdiO,UAAW3H,EAAM2H,UACjBO,SAAUA,GACVC,YAnIY,SAACmjB,GAAD,OAAShrB,EAAST,EAAiByrB,KAoI/C5qB,aAAcA,GACd0H,gBAxIgB,SAACkjB,GAAD,OAAShrB,EAASb,EAAmB6rB,KAyIrDvqB,cAAeA,GACfsH,iBAAkBA,GAClBjI,WAAYJ,EAAMI,WAClBkI,cAAetI,EAAMsI,cACrB7O,YAAaA,MAEb,KACJ,wBACEwD,UAAWmE,IAAW,uBAAD,OACIqpB,GAAc3iB,IAAe,iBACpD,CACE,SAAyB,WAAfA,IAJhB,SAQGkiB,GAGC,cAAC,GAAD,CAAiBliB,WAAYA,EAAY2iB,cAAeA,QAI1B,IAAjChxB,IAAYC,OAAOiiB,UAClB,qBAAK1e,UAAU,gBAAf,SACE,cAAC,KAAD,CACEoxB,OAAQ,kBAAMj1B,OAAOk1B,iBAAiB,SACtCC,OAAQ,kBAAMn1B,OAAOk1B,iBAAiB,SACtC/C,UAAW,IACX/oB,MAAO,CAAEgpB,OAAQ,MAJnB,SAME,cAAC1a,GAAA,EAAD,CAAQ7T,UAAU,WAAWwE,MAAM,UAAnC,SACE,cAAC,KAAD,CAASwH,KAAM,WAInB,SAxHC,OC1HI+kB,GAFQ,SAAAhuB,GAAK,OAAI,cAAC,GAAD,2BAAYA,GAAZ,aAAoBA,EAAMC,a,cCKnD,IAAM8L,GAAiB,WAC5B,IAAImU,EAAQ7mB,aAAaC,QAAQ,QAC7BgS,EAAWkjB,KAEf,OAAOtO,GAAS5U,GAAYA,EAASmjB,IAAMjJ,KAAK5P,MAAQ,KAG7C4Y,GAAc,kBAAMj1B,KAAKC,MAAMH,aAAaC,QAAQ,c,WC+ClDo1B,GAjDM,SAAC,GAAoB,IAAlBC,EAAiB,EAAjBA,WAChBlgB,EAAUC,cACVpO,EAAWC,cACXquB,EAAa/yB,YAAYG,qBAC/B,EAAkC9C,mBAAS,GAA3C,mBAAO21B,EAAP,KAAkBC,EAAlB,KACMC,EAAY,SAACH,GAEbA,GADQ,IAAIpJ,MAAOwJ,UAAY,IACZC,KAAkB,GAAG3uB,EAAS4uB,QAEjD5Z,EAAWzF,mBACTsf,EAAoBtzB,aAAY,SAACC,GAAD,YAAY,CAClDqzB,gBAAe,UAAEnzB,eAA2BF,UAA7B,aADTqzB,gBAoCR,OAhCAr1B,qBAAU,WACR,IAAMs1B,EAAarjB,KASnB,OARIojB,GAAmBC,GACjB9Z,EAAS7F,QAAS+F,cAAcF,EAAS7F,SACxCsf,EAAUH,GACftZ,EAAS7F,QAAU8F,aAAY,kBAAMwZ,EAAUH,KAAaD,IAExDrZ,EAAS7F,SAAS+F,cAAcF,EAAS7F,SAGxC,WACD6F,EAAS7F,SAAS+F,cAAcF,EAAS7F,YAE9C,CAACkf,EAAYQ,EAAiBP,IAEjC90B,qBAAU,WACR,IAAMs1B,EAAarjB,KAEfojB,GAAoBC,GACrBh2B,OAAO8H,SAAS8H,KAAKziB,SAAS,WAC9B6S,OAAO8H,SAAS8H,KAAKziB,SAAS,mBAQ/BuoC,EAAa,IANbA,EAAaD,EAAY,GACrBA,GAAa,IACfvuB,EAAS4uB,OACTzgB,EAAQzb,KAAK,cAKhB,CAACm8B,IAEG,M,UCtDHE,GAAoB,CAAC,IAAK,SAAU,mBAsB3BC,GApBY,WACzB,IAAM7gB,EAAUC,cACVxN,EAAW6gB,cACXzhB,EAAWC,cAcjB,OAZAzG,qBAAU,WACHu1B,GAAkB9oC,SAAS2a,EAASC,WACvCb,EAASivB,UACV,CAACruB,IAEJpH,qBAAU,WACR2U,EAAQ+gB,QAAO,SAACC,GACTJ,GAAkB9oC,SAASkpC,EAAItuB,WAClCb,EAASivB,aAEZ,IAEI,MC+QMG,gBACb,SAAC5zB,GAAW,IAAD,IACHrV,EAAeuV,0BAAsCF,GACrD3V,EAAW,OAAG2V,QAAH,IAAGA,GAAH,UAAGA,EAAO6zB,YAAV,iBAAG,EAAavc,YAAhB,aAAG,EAAmBjtB,YACjCusB,EAAY1W,uBAAmCF,GAC/CpV,EAAgBsV,2BAAuCF,GACvDsX,EAAOpX,2BAAuCF,GAEpD,MAAO,CAAErV,eAAcN,cAAausB,YAAWhsB,gBAAeC,eADvC0sB,YAAkBD,WAG3ChR,GACA,SAACwtB,EAAYC,EAAeC,GAA5B,mBAAC,eACIF,GACAE,KAbQJ,EAjQA,SAAC,GAA6E,IAA3EjpC,EAA0E,EAA1EA,aAAcN,EAA4D,EAA5DA,YAAausB,EAA+C,EAA/CA,UAAWhsB,EAAoC,EAApCA,cAAeC,EAAqB,EAArBA,eACrE,EAA8CuS,mBAAS/S,EAAcA,EAAYq7B,MAAM,KAAO,IAA9F,mBAAOp7B,EAAP,KAAwB2pC,EAAxB,KACMzvB,EAAWC,cAEjBzG,qBAAU,WACRi2B,EAAmB5pC,EAAcA,EAAYq7B,MAAM,KAAO,MACzD,CAACr7B,IAGJ,IAAML,EAASC,cACTC,EAAaC,cAGnB,EC7CuB,WAEvB,MAAoCiT,mBAAS,MAA7C,mBAAO82B,EAAP,KAAmBC,EAAnB,KACA,EAA4B/2B,oBAAS,WACnC,IACE,OAAOO,IAAYC,OAAOgG,KAC1B,MAAO9F,GAEP,OAAOH,IAAYC,OAAOgG,SAL9B,mBAAOhG,EAAP,KAAeiO,EAAf,KAsBMuoB,EAAe,WAEJ,eAAXx2B,GAA2BN,OAAOyvB,YAAc,OAClDlhB,EAAU,YACVsoB,EAAc,eAGG,eAAfD,GAA+B52B,OAAOyvB,YAAc,MACtDlhB,EAAU,eAcd,OATA7N,qBAAU,WACRo2B,MACC,IAEHp2B,qBAAU,WAERV,OAAOmG,iBAAiB,SAAU2wB,KACjC,CAACx2B,EAAQs2B,IAEL,CAACt2B,EAlCS,SAACa,GAChB,IAEE,IAAMC,EAAeD,aAAiBE,SAAWF,EAAMb,GAAUa,EAGjEoN,EAAUnN,GACV,MAAOZ,ODyBiBu2B,GAA5B,mBAAOz2B,EAAP,KAAeiO,EAAf,KACA,EE9CiC,WAEjC,MAAoCzO,oBAAS,WAC3C,IACE,OAAOO,IAAYC,OAAO02B,iBAC1B,MAAOx2B,GAEP,OAAOH,IAAYC,OAAO02B,qBAL9B,mBAAOhwB,EAAP,KAAmBkI,EAAnB,KAsBA,MAAO,CAAClI,EAZS,SAAC7F,GAChB,IAEE,IAAMC,EAAeD,aAAiBE,SAAWF,EAAM6F,GAAc7F,EAGrE+N,EAAc9N,GACd,MAAOZ,OF2ByBy2B,GAApC,mBAAOjwB,EAAP,KAAmBkI,EAAnB,KAMMgoB,GAHUt1B,qBAAWu1B,KAGM,eAAX72B,EAA0B,mBAAqB,kBAG/D82B,EAAU,CAAEnpB,eAAa2mB,kBAAgB7D,qBAKzCp3B,EAAkBugB,KACtBltB,EACAM,EACAC,GAyBI8pC,EAAgBxtB,gBAAK,kBAAM,mCAG3B3D,EAAQ2D,gBAAK,kBAAM,mCAQnBytB,EAAa,SAAC1wB,GAClB,IAAM2wB,EAAQ3wB,EAAM2wB,MASpB,GALIA,EAAMhtB,OACCgtB,EAAMhtB,KAAKyO,OAASue,EAAMhtB,KAAKyO,OAAS,KACtCue,EAAMhtB,KAAKitB,SAAWD,EAAMhtB,KAAKitB,SAAW,OAIrD7kB,oBAAmC3J,IAAfuuB,EAAMhtB,OAC1BoI,eAAoB4kB,EAAMhtB,OAASgtB,EAAMhtB,KAAKyD,YAAcupB,EAAMhtB,KAAKC,YASzE,OADAtD,EAAS4Q,OACF,cAAC,IAAD,CAAUhF,GAAG,WACf,GAAIykB,EAAMhtB,MAAQgtB,EAAMhtB,KAAKyD,WAAa2E,cAAkB,CAAC,IAAD,EAE7D3S,OAAOk1B,kBAAkBl1B,OAAOk1B,iBAAiB,SACrD,UAAIl1B,OAAOy3B,iBAAX,aAAI,EAAkBC,OAAM13B,OAAOy3B,UAAUC,KAAK3T,OACpC9jB,aAAaC,QAAQ,QAEnC,OAAO,cAAC,IAAD,CAAU4S,GAAG,MAYpB,OAAO,cAACykB,EAAM3tB,UAAP,eAAqBhD,KAyFhC,OACE,eAAC,IAAD,CAAW+wB,SAAU,GAArB,UACE,cAAC,GAAD,CAAcpC,WAAY,MAC1B,cAAC,GAAD,IACA,eAAC,IAAD,YAEI5iB,eACA,cAAC,IAAD,CACEugB,OAAK,EACLvpB,KAAK,IACLghB,OAAQ,WAEN,OADAzjB,EAAS4Q,OACF,cAAC,IAAD,CAAUhF,GAAG,cAI1B,cAAC,IAAD,CACEogB,OAAK,EACLvpB,KAAK,IACLghB,OAAQ,WACN,OACE,cAAC,IAAD,CACE7X,GACgB,IAAdwG,GAAmB5sB,EACf0tB,IAA2BlhB,aACb,IAAdogB,GAAmB1sB,EACnB,WACc,IAAd0sB,GAAmB/rB,EACnBgM,IAAsBC,YACtB0gB,KACE7sB,EACAL,EACAM,EACAC,QAQfoM,EAAgBsO,KAAI,SAAC2vB,EAAgBzvB,GAAjB,OACnB,cAAC,IAAD,CAEE+qB,OAAK,EACLvpB,KAAMiuB,EACNjN,OAAQ,SAAC/jB,GAAD,OACN,cAACwwB,EAAQnpB,YAAT,UACE,cAACopB,EAAD,QALClvB,MA9HN8Q,OAAOC,KAAKke,GAASnvB,KAAI,SAAC3H,EAAQ6H,GAIvC,IAAM0vB,EAAYT,EAAQ92B,GAG1B,EArFyB,SAACA,GAC5B,IAAMw3B,EAAe,GACfC,EAAc,GAgBpB,OAdIruB,IACFA,GAAOwR,QAAO,SAACqc,IAGXA,EAAMj3B,SAAWA,QACC0I,IAAjBuuB,EAAMj3B,QAAwB42B,IAAkB52B,KAGjDw3B,EAAal+B,KAAK29B,GAClBQ,EAAYn+B,KAAK29B,EAAM5tB,UAKtB,CAAEmuB,eAAcC,eAmEiBC,CAAqB13B,GAAnDw3B,EAAR,EAAQA,aAAcC,EAAtB,EAAsBA,YAQhBpL,EAAc,GAEpB,OACE,cAAC,IAAD,CAAOhjB,KAAMouB,EAAb,SACE,cAACF,EAAD,CACElL,YAAaA,EACbrsB,OAAQA,EACRiO,UAAWA,EACXvH,WAAYA,EACZkI,cAAeA,EACfue,kBAhHgB,KA0GlB,SAQE,cAAC,IAAD,UACGqK,EAAa7vB,KAAI,SAACsvB,GACjB,OACE,cAAC,IAAD,CAEE5tB,KAAM4tB,EAAM5tB,KACZupB,OAAuB,IAAhBqE,EAAMrE,MACbvI,OAAQ,SAAC/jB,GAOP,OALAqS,OAAOgf,OAAOtL,EAAd1T,OAAA,IAAAA,QAAA,IAAAA,CAAA,GACKrS,GADL,IAEE2D,KAAMgtB,EAAMhtB,QAIZ,cAAC,WAAD,CAAU2tB,SAAU,cAAC,KAAD,IAApB,SAEE,cAAC,EAAD,iDACE53B,OAAQ42B,EACRlwB,WAAYA,EACZkI,cAAeA,GAGVqoB,EAAMzwB,UACP,CACEA,UAAWywB,EAAMzwB,WAEnB,IACCywB,EAAMhtB,KACP,CACEtD,UAAWswB,EAAMhtB,MAEnB,IACCgtB,EAAM1zB,UACP,CACEkD,aAAcwwB,EAAM1zB,WAEtB,IApBN,aAwBE,cAACyzB,EAAD,aAAYC,MAAOA,GAAW3wB,WArCjC2wB,EAAM5tB,cAbQxB,MAwH/B,cAAC,IAAD,CAAOwB,KAAK,IAAIC,UAAW1D,IAnD7B,a,QGxOSiyB,UAFH,SAACvxB,GAAD,OAAW,cAAC,GAAD","file":"static/js/39.bf62a59f.chunk.js","sourcesContent":["// ** Screens\nimport * as screens from '@core/layouts/components/menu/screens';\n\n// ** Utils\nimport { getUseCRM, getUseConsole } from '../../utility/Utils';\n\n// ** Modules routes\nimport agentPaths from 'views/screens/Agents/paths';\nimport assetPaths from 'views/screens/Assets/paths';\nimport businessPartnersPaths from 'views/screens/BusinessPartners/paths';\nimport consolePaths from 'views/screens/Console/paths';\nimport contractsPaths from 'views/screens/Contracts/paths';\nimport customersPaths from 'views/screens/Customers/paths';\nimport dashboardPaths from 'views/screens/Dashboard/paths';\nimport divisionPaths from 'views/screens/Divisions/paths';\nimport driversPaths from 'views/screens/Drivers/paths';\nimport formPaths from 'views/screens/Forms/paths';\nimport geofencesPaths from 'views/screens/Geofences/paths';\nimport groupsPaths from 'views/screens/Groups/paths';\nimport jobsPaths from 'views/screens/Jobs/paths';\nimport locationsPaths from 'views/screens/Locations/paths';\nimport modulePaths from 'views/screens/Modules/paths';\nimport notificationsPaths from 'views/screens/Notifications/paths';\nimport operationsPaths from 'views/screens/Operations/paths';\nimport operatorPaths from 'views/screens/Operators/paths';\nimport optimizationsPaths from 'views/screens/Optimizations/paths';\nimport organizationPaths from 'views/screens/Organizations/paths';\nimport peoplePaths from 'views/screens/People/paths';\nimport protocolsPaths from 'views/screens/Protocols/paths';\nimport reportsPaths from 'views/screens/Reports/paths';\nimport routesPaths from 'views/screens/Routes/paths';\nimport simPaths from 'views/screens/SIMs/paths';\nimport safeDriverPaths from 'views/screens/SafeDriver/paths';\nimport schedulePaths from 'views/screens/Schedules/paths';\nimport sensorPaths from 'views/screens/Sensors/paths';\nimport serviceClassPaths from 'views/screens/ServiceClasses/paths';\nimport subdivisionPaths from 'views/screens/Subdivisions/paths';\nimport telemetryPaths from 'views/screens/Telemetry/paths';\nimport trackingUnitsPaths from 'views/screens/TrackingUnits/paths';\nimport usersPaths from 'views/screens/Users/paths';\nimport vehicleFuelPaths from 'views/screens/VehicleFuel/paths';\nimport vehiclePaths from 'views/screens/Vehicles/paths';\nimport workplansPaths from 'views/screens/Workplans/paths';\nimport vehicleMaintenancePaths from 'views/screens/vehicleMaintenance/paths';\n\n// ** Permissions\nimport agentPermissions from 'views/screens/Agents/permissions';\nimport assetPermissions from 'views/screens/Assets/permissions';\nimport consolePermissions from 'views/screens/Console/permissions';\nimport customersPermissions from 'views/screens/Customers/permissions';\nimport dashboardPermissions from 'views/screens/Dashboard/permissions';\nimport divisionPermissions from 'views/screens/Divisions/permissions';\nimport driversPermissions from 'views/screens/Drivers/permissions';\nimport formPermissions from 'views/screens/Forms/permissions';\nimport geofencesPermissions from 'views/screens/Geofences/permissions';\nimport groupsPermissions from 'views/screens/Groups/permissions';\nimport jobsPermissions from 'views/screens/Jobs/permissions';\nimport locationsPermissions from 'views/screens/Locations/permissions';\nimport modulePermissions from 'views/screens/Modules/permissions';\nimport notificationsPermissions from 'views/screens/Notifications/permissions';\nimport operatorPermissions from 'views/screens/Operators/permissions';\nimport optimizationsPermissions from 'views/screens/Optimizations/permissions';\nimport organizationPermissions from 'views/screens/Organizations/permissions';\nimport peoplePermissions from 'views/screens/People/permissions';\nimport protocolPermissions from 'views/screens/Protocols/permissions';\nimport reportsPermissions from 'views/screens/Reports/permissions';\nimport routesPermissions from 'views/screens/Routes/permissions';\nimport simPermissions from 'views/screens/SIMs/permissions';\nimport safeDriverPermissions from 'views/screens/SafeDriver/permissions';\nimport schedulePermissions from 'views/screens/Schedules/permissions';\nimport sensorPermissions from 'views/screens/Sensors/permissions';\nimport serviceClassPermissions from 'views/screens/ServiceClasses/permissions';\nimport subdivisionPermissions from 'views/screens/Subdivisions/permissions';\nimport telemetryPermissions from 'views/screens/Telemetry/permissions';\nimport trackingUnitsPermissions from 'views/screens/TrackingUnits/permissions';\nimport unitsPermissions from 'views/screens/Units/permissions';\nimport usersPermissions from 'views/screens/Users/permissions';\nimport vehicleFuelPermissions from 'views/screens/VehicleFuel/permissions';\nimport vehiclePermissions from 'views/screens/Vehicles/permissions';\nimport workplansPermissions from 'views/screens/Workplans/permissions';\nimport vehicleMaintenancePermissions from 'views/screens/vehicleMaintenance/permissions';\n\n// ** Env\nconst useCRM = getUseCRM();\nconst useConsole = getUseConsole();\n\nconst authUserHasPermission = (permissions = [], userPermissions = []) =>\n permissions.some((permission) => userPermissions.includes(permission));\n\nexport const homeScreenCascadeByPermissions = (\n homeScreenId,\n userPermissions,\n accessLevelId,\n isWebtrackUser,\n DefaultRoute = '/home'\n) => {\n return homeScreenId === screens.DASHBOARD &&\n authUserHasPermission([dashboardPermissions.dashboard], userPermissions)\n ? dashboardPaths.dashboard\n : homeScreenId === screens.MAP && authUserHasPermission(['BA001'], userPermissions)\n ? DefaultRoute\n : homeScreenId === screens.REPORTS &&\n authUserHasPermission([reportsPermissions.listReports], userPermissions)\n ? reportsPaths.reportList\n : homeScreenId === screens.TRACKING_UNITS &&\n authUserHasPermission([trackingUnitsPermissions.trackingUnitsList], userPermissions)\n ? trackingUnitsPaths.listTrackingUnits\n : homeScreenId === screens.FLEET &&\n authUserHasPermission([unitsPermissions.listFleet], userPermissions)\n ? trackingUnitsPaths.listFleet\n : homeScreenId === screens.GEOFENCES_CATALOG &&\n authUserHasPermission([geofencesPermissions.listGeofences], userPermissions)\n ? geofencesPaths.geofencesList\n : homeScreenId === screens.ASSIGNED_GEOFENCES &&\n authUserHasPermission([geofencesPermissions.listAsignedGeofences], userPermissions)\n ? geofencesPaths.geofencesAssignedList\n : homeScreenId === screens.LOCATIONS_CATALOG &&\n authUserHasPermission([locationsPermissions.listLocations], userPermissions)\n ? locationsPaths.locationsList\n : homeScreenId === screens.IMPORT_LOCATIONS &&\n authUserHasPermission([locationsPermissions.importLocation], userPermissions)\n ? locationsPaths.importLocations\n : homeScreenId === screens.BACKLOG_JOBS &&\n authUserHasPermission([jobsPermissions.listJobsBacklog], userPermissions)\n ? jobsPaths.backlog\n : homeScreenId === screens.IMPORT_JOBS &&\n authUserHasPermission([jobsPermissions.jobsImport], userPermissions)\n ? jobsPaths.import\n : homeScreenId === screens.JOBS_BOARD &&\n authUserHasPermission([jobsPermissions.jobsBoard], userPermissions)\n ? jobsPaths.board\n : homeScreenId === screens.JOBS_REPORT &&\n authUserHasPermission([jobsPermissions.jobsReport], userPermissions)\n ? jobsPaths.report\n : homeScreenId === screens.JOBS_WORK_ACTIVITY &&\n authUserHasPermission([jobsPermissions.jobsWorkingActivity], userPermissions)\n ? jobsPaths.workingActivityReport\n : homeScreenId === screens.SAFE_DRIVER &&\n authUserHasPermission([safeDriverPermissions.safedriver], userPermissions)\n ? safeDriverPaths.list\n : homeScreenId === screens.LOGISTIC_ROUTE_CATALOG &&\n authUserHasPermission([routesPermissions.viewRouteCatalog], userPermissions)\n ? routesPaths.routeList\n : homeScreenId === screens.LOGISTIC_ROUTE_MONITOR &&\n authUserHasPermission([routesPermissions.viewRouteMonitor], userPermissions)\n ? routesPaths.routeMonitor\n : homeScreenId === screens.LOGISTIC_ROUTE_REPORT &&\n authUserHasPermission([routesPermissions.viewRouteReport], userPermissions)\n ? routesPaths.routeReport\n : homeScreenId === screens.ASSIGN_LOGISTIC_ROUTE &&\n authUserHasPermission([routesPermissions.assignRoute], userPermissions)\n ? routesPaths.importRouteAssignments\n : homeScreenId === screens.IMPORT_ROUTE_ASSIGNMENTS &&\n authUserHasPermission([routesPermissions.importRouteAssignments], userPermissions)\n ? routesPaths.routeAssignUnit\n : homeScreenId === screens.LOGISTIC_ROUTE_ETA_MONITOR &&\n authUserHasPermission([routesPermissions.routeETAMonitor], userPermissions)\n ? routesPaths.routeETAMonitor\n : homeScreenId === screens.WORK_PLAN_CATALOG &&\n authUserHasPermission([workplansPermissions.viewWorkplanCatalog], userPermissions)\n ? workplansPaths.workplanList\n : homeScreenId === screens.WORK_PLAN_MONITOR &&\n authUserHasPermission([workplansPermissions.viewWorkplanMonitor], userPermissions)\n ? workplansPaths.workplanMonitor\n : homeScreenId === screens.WORK_PLAN_REPORT &&\n authUserHasPermission([workplansPermissions.viewWorkplanReport], userPermissions)\n ? workplansPaths.workplanReport\n : homeScreenId === screens.SCHEDULED_WORKPLANS &&\n authUserHasPermission([workplansPermissions.scheduledWorkplanList], userPermissions)\n ? workplansPaths.scheduledWorkplan\n : homeScreenId === screens.ASSIGN_WORK_PLAN &&\n authUserHasPermission([workplansPermissions.assignWorkplan], userPermissions)\n ? workplansPaths.workplanAssignUnit\n : homeScreenId === screens.TEMPERATURE_TELEMETRY &&\n authUserHasPermission([telemetryPermissions.temperatureCatalog], userPermissions)\n ? telemetryPaths.telemetryTemperature\n : homeScreenId === screens.FUEL_TELEMETRY_MONITOR &&\n authUserHasPermission([telemetryPermissions.fuelCatalog], userPermissions)\n ? telemetryPaths.telemetryFuelMonitor\n : homeScreenId === screens.FUEL_TELEMETRY_REPORT &&\n authUserHasPermission([telemetryPermissions.fuelReport], userPermissions)\n ? telemetryPaths.telemetryUnits\n : homeScreenId === screens.TELEMETRY_UNITS &&\n authUserHasPermission([telemetryPermissions.telemtryUnits], userPermissions)\n ? telemetryPaths.telemetryFuelReport\n : homeScreenId === screens.TELEMETRY_OBD2 &&\n authUserHasPermission([telemetryPermissions.obd2Monitor], userPermissions)\n ? telemetryPaths.obd2Monitor\n : homeScreenId === screens.OPTIMIZATIONS &&\n authUserHasPermission([optimizationsPermissions.viewOptimizations], userPermissions)\n ? optimizationsPaths.listOptimization\n : homeScreenId === screens.PREVENTIVE_NOTICES &&\n authUserHasPermission([vehicleMaintenancePermissions.preventiveNotices], userPermissions)\n ? vehicleMaintenancePaths.preventiveNotices\n : homeScreenId === screens.MAINTENANCE_RANGES &&\n authUserHasPermission([vehicleMaintenancePermissions.maintenanceLines], userPermissions)\n ? vehicleMaintenancePaths.maintenanceLineList\n : homeScreenId === screens.SPAREPARTS_CATALOG &&\n authUserHasPermission([vehicleMaintenancePermissions.sparepartsCatalog], userPermissions)\n ? vehicleMaintenancePaths.sparepartsCatalog\n : homeScreenId === screens.WORKMANSHIPS_CATALOG &&\n authUserHasPermission([vehicleMaintenancePermissions.workshopCatalog], userPermissions)\n ? vehicleMaintenancePaths.workshopCatalog\n : homeScreenId === screens.SPAREPARTS_CATEGORIES_CATALOG &&\n authUserHasPermission([vehicleMaintenancePermissions.categoriesCatalog], userPermissions)\n ? vehicleMaintenancePaths.categoriesCatalog\n : homeScreenId === screens.SPAREPARTS_PROVIDERS_CATALOG &&\n authUserHasPermission([vehicleMaintenancePermissions.providersCatalog], userPermissions)\n ? vehicleMaintenancePaths.providersCatalog\n : homeScreenId === screens.GENERAL_MAINTENANCE_REPORT &&\n authUserHasPermission([vehicleMaintenancePermissions.generalReport], userPermissions)\n ? vehicleMaintenancePaths.generalReport\n : homeScreenId === screens.BY_CATEGORY_REPORT &&\n authUserHasPermission([vehicleMaintenancePermissions.byCategoryReport], userPermissions)\n ? vehicleMaintenancePaths.byCategoryReport\n : homeScreenId === screens.BY_UNIT_REPORT &&\n authUserHasPermission([vehicleMaintenancePermissions.byUnitReport], userPermissions)\n ? vehicleMaintenancePaths.byUnitReport\n : homeScreenId === screens.BY_WORKSHOP_REPORT &&\n authUserHasPermission([vehicleMaintenancePermissions.byWorkShopReport], userPermissions)\n ? vehicleMaintenancePaths.byWorkShopReport\n : homeScreenId === screens.IMPORT_MAINTENANCE_TICKETS &&\n authUserHasPermission([vehicleMaintenancePermissions.importTicket], userPermissions)\n ? vehicleMaintenancePaths.importTicket\n : homeScreenId === screens.WORKSHOP_ADD_ORDER &&\n authUserHasPermission([vehicleMaintenancePermissions.addTickets], userPermissions)\n ? vehicleMaintenancePaths.addWorkshopOrders\n : homeScreenId === screens.NEW_TICKET &&\n authUserHasPermission([vehicleFuelPermissions.addTicket], userPermissions)\n ? vehicleFuelPaths.addTicket\n : homeScreenId === screens.IMPORT_FUEL_TICKETS &&\n authUserHasPermission([vehicleFuelPermissions.importTicket], userPermissions)\n ? vehicleFuelPaths.importTicket\n : homeScreenId === screens.FUEL_TICKETS_CONSOLIDATED_REPORT &&\n authUserHasPermission([vehicleFuelPermissions.consolidatedReport], userPermissions)\n ? vehicleFuelPaths.consolidatedReport\n : homeScreenId === screens.FUEL_TICKETS_REPORT_BY_UNIT &&\n authUserHasPermission([vehicleFuelPermissions.byUnitReport], userPermissions)\n ? vehicleFuelPaths.byUnitReport\n : homeScreenId === screens.OPERATOR &&\n authUserHasPermission([operatorPermissions.operatorList], userPermissions)\n ? operatorPaths.listOperator\n : homeScreenId === screens.ORGANIZATION &&\n authUserHasPermission([organizationPermissions.organizationCatalog], userPermissions)\n ? organizationPaths.listOrganization\n : homeScreenId === screens.DIVISION &&\n authUserHasPermission([divisionPermissions.listDivision], userPermissions)\n ? divisionPaths.listDivision\n : homeScreenId === screens.SUBDIVISION &&\n authUserHasPermission([subdivisionPermissions.subdivisionCatalog], userPermissions)\n ? subdivisionPaths.listSubdivision\n : homeScreenId === screens.SERVICE_CLASSES &&\n authUserHasPermission([serviceClassPermissions.listServiceClass], userPermissions)\n ? serviceClassPaths.listServiceClass\n : homeScreenId === screens.AGENT &&\n authUserHasPermission([agentPermissions.agentList], userPermissions)\n ? agentPaths.listAgent\n : homeScreenId === screens.CUSTOMERS &&\n authUserHasPermission([customersPermissions.listCustomers], userPermissions)\n ? customersPaths.listCustomer\n : homeScreenId === screens.GROUPS &&\n authUserHasPermission([groupsPermissions.listGroup], userPermissions)\n ? groupsPaths.listGroup\n : homeScreenId === screens.SHIFT &&\n authUserHasPermission([schedulePermissions.schedule], userPermissions)\n ? schedulePaths.listShift\n : homeScreenId === screens.TRIGGER &&\n authUserHasPermission([schedulePermissions.schedule], userPermissions)\n ? schedulePaths.listTrigger\n : homeScreenId === screens.USERS &&\n authUserHasPermission([usersPermissions.listUsers], userPermissions)\n ? usersPaths.listUsers\n : homeScreenId === screens.DRIVERS &&\n authUserHasPermission([driversPermissions.listDrivers], userPermissions)\n ? driversPaths.listDrivers\n : homeScreenId === screens.PEOPLE &&\n authUserHasPermission([peoplePermissions.listPerson], userPermissions)\n ? peoplePaths.listPeople\n : homeScreenId === screens.FORMS_CATALOG &&\n authUserHasPermission([formPermissions.listForms], userPermissions)\n ? formPaths.listForms\n : homeScreenId === screens.PROTOCOL_CATALOG &&\n authUserHasPermission([formPermissions.listProtocols], userPermissions)\n ? protocolsPaths.protocolsList\n : homeScreenId === screens.ANSWERS_FORMS &&\n authUserHasPermission([formPermissions.answersFormReport], userPermissions)\n ? formPaths.reportAnswerForms\n : homeScreenId === screens.DEVICES &&\n authUserHasPermission([modulePermissions.listModule], userPermissions) &&\n ![4, 2].includes(Number.parseInt(accessLevelId ?? 0))\n ? modulePaths.listModule\n : homeScreenId === screens.SIMS &&\n authUserHasPermission([simPermissions.listSim], userPermissions) &&\n ![4, 2].includes(Number.parseInt(accessLevelId ?? 0))\n ? simPaths.listSim\n : homeScreenId === screens.SENSORS &&\n authUserHasPermission([sensorPermissions.listSensor], userPermissions)\n ? sensorPaths.listSensor\n : homeScreenId === screens.ASSETS &&\n authUserHasPermission([assetPermissions.assetCatalog], userPermissions)\n ? assetPaths.listAsset\n : homeScreenId === screens.VEHICLES &&\n authUserHasPermission([vehiclePermissions.listVehicle], userPermissions)\n ? vehiclePaths.listVehicle\n : homeScreenId === screens.EMAIL_NOTIFICATIONS &&\n authUserHasPermission([notificationsPermissions.listEmailNotification], userPermissions)\n ? notificationsPaths.listEmailNotifications\n : homeScreenId === screens.CONSOLE_NOTIFICATIONS &&\n authUserHasPermission([notificationsPermissions.listConsoleNotification], userPermissions)\n ? notificationsPaths.listConsoleNotifications\n : homeScreenId === screens.WEB_SERVICE_NOTIFICATIONS &&\n authUserHasPermission([notificationsPermissions.listWebServiceNotification], userPermissions)\n ? notificationsPaths.listWebServiceNotifications\n : homeScreenId === screens.SYSTEM_NOTIFICATIONS &&\n authUserHasPermission([notificationsPermissions.listSystemNotification], userPermissions)\n ? notificationsPaths.listSystemNotifications\n : authUserHasPermission([dashboardPermissions.dashboard], userPermissions)\n ? dashboardPaths.dashboard\n : authUserHasPermission(['BA001'])\n ? DefaultRoute\n : authUserHasPermission([reportsPermissions.listReports], userPermissions)\n ? reportsPaths.reportList\n : authUserHasPermission([trackingUnitsPermissions.trackingUnitsList], userPermissions)\n ? trackingUnitsPaths.listTrackingUnits\n : authUserHasPermission([unitsPermissions.listFleet], userPermissions)\n ? trackingUnitsPaths.listFleet\n : authUserHasPermission([geofencesPermissions.listGeofences], userPermissions)\n ? geofencesPaths.geofencesList\n : authUserHasPermission([geofencesPermissions.listAsignedGeofences], userPermissions)\n ? geofencesPaths.geofencesAssignedList\n : authUserHasPermission([locationsPermissions.listLocations], userPermissions)\n ? locationsPaths.locationsList\n : authUserHasPermission([locationsPermissions.importLocation], userPermissions)\n ? locationsPaths.importLocations\n : authUserHasPermission([jobsPermissions.listJobsBacklog], userPermissions)\n ? jobsPaths.backlog\n : authUserHasPermission([jobsPermissions.jobsImport], userPermissions)\n ? jobsPaths.import\n : authUserHasPermission([jobsPermissions.jobsBoard], userPermissions)\n ? jobsPaths.board\n : authUserHasPermission([jobsPermissions.jobsReport], userPermissions)\n ? jobsPaths.report\n : authUserHasPermission([jobsPermissions.jobsWorkingActivity], userPermissions)\n ? jobsPaths.workingActivityReport\n : authUserHasPermission([safeDriverPermissions.safedriver], userPermissions)\n ? safeDriverPaths.list\n : authUserHasPermission([routesPermissions.viewRouteCatalog], userPermissions)\n ? routesPaths.routeList\n : authUserHasPermission([routesPermissions.viewRouteMonitor], userPermissions)\n ? routesPaths.routeMonitor\n : authUserHasPermission([routesPermissions.viewRouteReport], userPermissions)\n ? routesPaths.importRouteAssignments\n : authUserHasPermission([routesPermissions.importRouteAssignments], userPermissions)\n ? routesPaths.routeReport\n : authUserHasPermission([routesPermissions.assignRoute], userPermissions)\n ? routesPaths.routeAssignUnit\n : authUserHasPermission([workplansPermissions.viewWorkplanCatalog], userPermissions)\n ? workplansPaths.workplanList\n : authUserHasPermission([workplansPermissions.viewWorkplanMonitor], userPermissions)\n ? workplansPaths.workplanMonitor\n : authUserHasPermission([workplansPermissions.viewWorkplanReport], userPermissions)\n ? workplansPaths.workplanReport\n : authUserHasPermission([workplansPermissions.scheduledWorkplanList], userPermissions)\n ? workplansPaths.scheduledWorkplan\n : authUserHasPermission([workplansPermissions.assignWorkplan], userPermissions)\n ? workplansPaths.workplanAssignUnit\n : authUserHasPermission([telemetryPermissions.temperatureCatalog], userPermissions)\n ? telemetryPaths.telemetryTemperature\n : authUserHasPermission([telemetryPermissions.fuelCatalog], userPermissions)\n ? telemetryPaths.telemetryFuelMonitor\n : authUserHasPermission([telemetryPermissions.fuelReport], userPermissions)\n ? telemetryPaths.telemetryUnits\n : authUserHasPermission([telemetryPermissions.telemtryUnits], userPermissions)\n ? telemetryPaths.telemetryFuelReport\n : authUserHasPermission([telemetryPermissions.obd2Monitor], userPermissions)\n ? telemetryPaths.telemetryOBD2\n : authUserHasPermission([optimizationsPermissions.viewOptimizations], userPermissions)\n ? optimizationsPaths.listOptimization\n : authUserHasPermission([vehicleMaintenancePermissions.preventiveNotices], userPermissions)\n ? vehicleMaintenancePaths.preventiveNotices\n : authUserHasPermission([vehicleMaintenancePermissions.maintenanceLines], userPermissions)\n ? vehicleMaintenancePaths.maintenanceLineList\n : authUserHasPermission([vehicleMaintenancePermissions.sparepartsCatalog], userPermissions)\n ? vehicleMaintenancePaths.sparepartsCatalog\n : authUserHasPermission([vehicleMaintenancePermissions.workshopCatalog], userPermissions)\n ? vehicleMaintenancePaths.workshopCatalog\n : authUserHasPermission([vehicleMaintenancePermissions.categoriesCatalog], userPermissions)\n ? vehicleMaintenancePaths.categoriesCatalog\n : authUserHasPermission([vehicleMaintenancePermissions.providersCatalog], userPermissions)\n ? vehicleMaintenancePaths.providersCatalog\n : authUserHasPermission([vehicleMaintenancePermissions.generalReport], userPermissions)\n ? vehicleMaintenancePaths.generalReport\n : authUserHasPermission([vehicleMaintenancePermissions.byCategoryReport], userPermissions)\n ? vehicleMaintenancePaths.byCategoryReport\n : authUserHasPermission([vehicleMaintenancePermissions.byUnitReport], userPermissions)\n ? vehicleMaintenancePaths.byUnitReport\n : authUserHasPermission([vehicleMaintenancePermissions.byWorkShopReport], userPermissions)\n ? vehicleMaintenancePaths.byWorkShopReport\n : authUserHasPermission([vehicleMaintenancePermissions.importTicket], userPermissions)\n ? vehicleMaintenancePaths.importTicket\n : authUserHasPermission([vehicleFuelPermissions.addTicket], userPermissions)\n ? vehicleFuelPaths.addTicket\n : authUserHasPermission([vehicleFuelPermissions.importTicket], userPermissions)\n ? vehicleFuelPaths.importTicket\n : authUserHasPermission([vehicleFuelPermissions.consolidatedReport], userPermissions)\n ? vehicleFuelPaths.consolidatedReport\n : authUserHasPermission([vehicleFuelPermissions.byUnitReport], userPermissions)\n ? vehicleFuelPaths.byUnitReport\n : authUserHasPermission([operatorPermissions.operatorList], userPermissions)\n ? operatorPaths.listOperator\n : authUserHasPermission([organizationPermissions.organizationCatalog], userPermissions)\n ? organizationPaths.listOrganization\n : authUserHasPermission([divisionPermissions.listDivision], userPermissions)\n ? divisionPaths.listDivision\n : authUserHasPermission([subdivisionPermissions.subdivisionCatalog], userPermissions)\n ? subdivisionPaths.listSubdivision\n : authUserHasPermission([serviceClassPermissions.listServiceClass], userPermissions)\n ? serviceClassPaths.listServiceClass\n : authUserHasPermission([agentPermissions.agentList], userPermissions)\n ? agentPaths.listAgent\n : authUserHasPermission([customersPermissions.listCustomers], userPermissions)\n ? customersPaths.listCustomer\n : useCRM\n ? contractsPaths.consolidateContract\n : useCRM\n ? contractsPaths.editContract\n : useCRM\n ? contractsPaths.listContract\n : useCRM\n ? contractsPaths.listContractVersions\n : useConsole & authUserHasPermission([consolePermissions.console], userPermissions)\n ? consolePaths.console\n : isWebtrackUser\n ? businessPartnersPaths.editPartner\n : isWebtrackUser\n ? businessPartnersPaths.webServiceRates\n : authUserHasPermission([groupsPermissions.listGroup], userPermissions)\n ? groupsPaths.listGroup\n : authUserHasPermission([schedulePermissions.schedule], userPermissions)\n ? schedulePaths.listShift\n : authUserHasPermission([usersPermissions.listUsers], userPermissions)\n ? usersPaths.listUsers\n : authUserHasPermission([driversPermissions.listDrivers], userPermissions)\n ? driversPaths.listDrivers\n : authUserHasPermission([peoplePermissions.listPerson], userPermissions)\n ? peoplePaths.listPeople\n : authUserHasPermission([formPermissions.listForms], userPermissions)\n ? formPaths.listForms\n : authUserHasPermission([formPermissions.answersFormReport], userPermissions)\n ? formPaths.reportAnswerForms\n : authUserHasPermission([modulePermissions.listModule], userPermissions) &&\n ![4, 2].includes(Number.parseInt(accessLevelId ?? 0))\n ? modulePaths.listModule\n : authUserHasPermission([simPermissions.listSim], userPermissions) &&\n ![4, 2].includes(Number.parseInt(accessLevelId ?? 0))\n ? simPaths.listSim\n : authUserHasPermission([sensorPermissions.listSensor], userPermissions)\n ? sensorPaths.listSensor\n : authUserHasPermission([assetPermissions.assetCatalog], userPermissions)\n ? assetPaths.listAsset\n : authUserHasPermission([vehiclePermissions.listVehicle], userPermissions)\n ? vehiclePaths.listVehicle\n : authUserHasPermission([notificationsPermissions.listEmailNotification], userPermissions)\n ? notificationsPaths.listEmailNotifications\n : authUserHasPermission([notificationsPermissions.listConsoleNotification], userPermissions)\n ? notificationsPaths.listConsoleNotifications\n : authUserHasPermission([notificationsPermissions.listWebServiceNotification], userPermissions)\n ? notificationsPaths.listWebServiceNotifications\n : authUserHasPermission([notificationsPermissions.listSystemNotification], userPermissions)\n ? notificationsPaths.listSystemNotifications\n : DefaultRoute;\n};\n\nexport const getProhibitedPathsByPermissions = (userPermissions, accessLevelId, isWebtrackUser) => {\n const ProhibitedPaths = [];\n\n // ** Dashboard paths\n !authUserHasPermission([dashboardPermissions.dashboard], userPermissions)\n ? ProhibitedPaths.push(dashboardPaths.dashboard)\n : '';\n\n // ** Map paths\n !authUserHasPermission(['BA001'], userPermissions) ? ProhibitedPaths.push('/home') : '';\n\n // ** Reports paths\n !authUserHasPermission([reportsPermissions.listReports], userPermissions)\n ? ProhibitedPaths.push(reportsPaths.reportList)\n : '';\n !authUserHasPermission([reportsPermissions.mileageReport], userPermissions)\n ? ProhibitedPaths.push(reportsPaths.reportMileage)\n : '';\n !authUserHasPermission([reportsPermissions.hourMetersReport], userPermissions)\n ? ProhibitedPaths.push(reportsPaths.reportHourMeters)\n : '';\n !authUserHasPermission([reportsPermissions.consolidatedUnitActivityReport], userPermissions)\n ? ProhibitedPaths.push(reportsPaths.reportConsolidatedUnitActivity)\n : '';\n !authUserHasPermission([reportsPermissions.consolidatedEventActivityReport], userPermissions)\n ? ProhibitedPaths.push(reportsPaths.reportConsolidatedEventActivity)\n : '';\n !authUserHasPermission([reportsPermissions.parkedGeofenceReport], userPermissions)\n ? ProhibitedPaths.push(reportsPaths.reportParkedGeofence)\n : '';\n !authUserHasPermission([reportsPermissions.consolidatedStopSummaryReport], userPermissions)\n ? ProhibitedPaths.push(reportsPaths.reportConsolidatedStopSummary)\n : '';\n !authUserHasPermission([reportsPermissions.consolidatedOpportunityOfCharge], userPermissions)\n ? ProhibitedPaths.push(reportsPaths.reportHourOpportunityCharge)\n : '';\n !authUserHasPermission([reportsPermissions.runningTimeReport], userPermissions)\n ? ProhibitedPaths.push(reportsPaths.reportRunningTime)\n : '';\n !authUserHasPermission([reportsPermissions.byUnitStopSummaryReport], userPermissions)\n ? ProhibitedPaths.push(reportsPaths.reportByUnitStopSummary)\n : '';\n !authUserHasPermission([reportsPermissions.byUnitScriptsHistoryReport], userPermissions)\n ? ProhibitedPaths.push(reportsPaths.reportByUnitScriptsHistory)\n : '';\n !authUserHasPermission([reportsPermissions.systemCommunicationsDiagReport], userPermissions)\n ? ProhibitedPaths.push(reportsPaths.reportSystemCommunicationsDiag)\n : '';\n !authUserHasPermission([reportsPermissions.systemNotificationsReport], userPermissions)\n ? ProhibitedPaths.push(reportsPaths.reportSystemNotifications)\n : '';\n !authUserHasPermission([reportsPermissions.consumptionAPIReport], userPermissions)\n ? ProhibitedPaths.push(reportsPaths.reportSystemApiConsumption)\n : '';\n\n !authUserHasPermission([reportsPermissions.consolidatedSummary], userPermissions)\n ? ProhibitedPaths.push(reportsPaths.reportConsolidatedSummary)\n : '';\n !authUserHasPermission([reportsPermissions.systemUserHistory], userPermissions)\n ? ProhibitedPaths.push(reportsPaths.reportSystemUserHistory)\n : '';\n !authUserHasPermission([reportsPermissions.systemAdministrativeReport], userPermissions)\n ? ProhibitedPaths.push(reportsPaths.reportSystemAdministrative)\n : '';\n\n // ** Tracking Units paths\n !authUserHasPermission([trackingUnitsPermissions.trackingUnitsList], userPermissions)\n ? ProhibitedPaths.push(trackingUnitsPaths.listTrackingUnits)\n : '';\n !authUserHasPermission([unitsPermissions.listFleet], userPermissions)\n ? ProhibitedPaths.push(trackingUnitsPaths.listFleet)\n : '';\n !authUserHasPermission(\n [trackingUnitsPermissions.trackingUnitsEdit, trackingUnitsPermissions.trackingUnitsCreate],\n userPermissions\n )\n ? ProhibitedPaths.push(trackingUnitsPaths.editTrackingUnits)\n : '';\n\n // ** Points of Interest paths\n // Geofences\n !authUserHasPermission([geofencesPermissions.listGeofences], userPermissions)\n ? ProhibitedPaths.push(geofencesPaths.geofencesList)\n : '';\n !authUserHasPermission([geofencesPermissions.listAsignedGeofences], userPermissions)\n ? ProhibitedPaths.push(geofencesPaths.geofencesAssignedList)\n : '';\n !authUserHasPermission([geofencesPermissions.asignGeofenceToUnit], userPermissions)\n ? ProhibitedPaths.push(geofencesPaths.geofencesAssign)\n : '';\n\n //Locations\n !authUserHasPermission([locationsPermissions.listLocations], userPermissions)\n ? ProhibitedPaths.push(locationsPaths.locationsList)\n : '';\n !authUserHasPermission([locationsPermissions.importLocation], userPermissions)\n ? ProhibitedPaths.push(locationsPaths.importLocations)\n : '';\n\n // ** Jobs paths\n !authUserHasPermission([jobsPermissions.listJobsBacklog], userPermissions)\n ? ProhibitedPaths.push(jobsPaths.backlog)\n : '';\n\n !authUserHasPermission([jobsPermissions.jobsBoard], userPermissions)\n ? ProhibitedPaths.push(jobsPaths.board)\n : '';\n\n !authUserHasPermission([jobsPermissions.jobsImport], userPermissions)\n ? ProhibitedPaths.push(jobsPaths.import)\n : '';\n\n !authUserHasPermission([jobsPermissions.jobsReport], userPermissions)\n ? ProhibitedPaths.push(jobsPaths.report)\n : '';\n\n !authUserHasPermission([jobsPermissions.jobsWorkingActivity], userPermissions)\n ? ProhibitedPaths.push(jobsPaths.workingActivityReport)\n : '';\n\n // ** SafeDriver paths\n !authUserHasPermission([safeDriverPermissions.safedriver], userPermissions)\n ? ProhibitedPaths.push(safeDriverPaths.list)\n : '';\n\n // ** Logistic Route paths\n !authUserHasPermission([routesPermissions.viewRouteCatalog], userPermissions)\n ? ProhibitedPaths.push(routesPaths.routeList)\n : '';\n\n !authUserHasPermission([routesPermissions.editRoute, routesPermissions.addRoute], userPermissions)\n ? ProhibitedPaths.push(routesPaths.routeEdit)\n : '';\n\n !authUserHasPermission([routesPermissions.viewRouteMonitor], userPermissions)\n ? ProhibitedPaths.push(routesPaths.routeMonitor)\n : '';\n\n !authUserHasPermission([routesPermissions.importRouteAssignments], userPermissions)\n ? ProhibitedPaths.push(routesPaths.importRouteAssignments)\n : '';\n\n !authUserHasPermission([routesPermissions.viewRouteReport], userPermissions)\n ? ProhibitedPaths.push(routesPaths.routeReport)\n : '';\n\n !authUserHasPermission([routesPermissions.assignRoute], userPermissions)\n ? ProhibitedPaths.push(routesPaths.routeAssignUnit)\n : '';\n \n !authUserHasPermission([routesPermissions.routeETAMonitor], userPermissions)\n ? ProhibitedPaths.push(routesPaths.routeETAMonitor)\n : '';\n\n // ** Work Plan paths\n !authUserHasPermission([workplansPermissions.viewWorkplanCatalog], userPermissions)\n ? ProhibitedPaths.push(workplansPaths.workplanList)\n : '';\n\n !authUserHasPermission(\n [workplansPermissions.addWorkplan, workplansPermissions.editWorkplan],\n userPermissions\n )\n ? ProhibitedPaths.push(workplansPaths.workplanEdit)\n : '';\n\n !authUserHasPermission([workplansPermissions.viewWorkplanMonitor], userPermissions)\n ? ProhibitedPaths.push(workplansPaths.workplanMonitor)\n : '';\n\n !authUserHasPermission([workplansPermissions.viewWorkplanReport], userPermissions)\n ? ProhibitedPaths.push(workplansPaths.workplanReport)\n : '';\n\n !authUserHasPermission([workplansPermissions.scheduledWorkplanList], userPermissions)\n ? ProhibitedPaths.push(workplansPaths.scheduledWorkplan)\n : '';\n\n !authUserHasPermission([workplansPermissions.assignWorkplan], userPermissions)\n ? ProhibitedPaths.push(workplansPaths.workplanAssignUnit)\n : '';\n\n // ** Telemetry paths\n !authUserHasPermission([telemetryPermissions.telemtryUnits], userPermissions)\n ? ProhibitedPaths.push(telemetryPaths.telemetryUnits)\n : '';\n\n !authUserHasPermission([telemetryPermissions.obd2Monitor], userPermissions)\n ? ProhibitedPaths.push(telemetryPaths.telemetryOBD2)\n : '';\n\n !authUserHasPermission([telemetryPermissions.temperatureCatalog], userPermissions)\n ? ProhibitedPaths.push(telemetryPaths.telemetryTemperature)\n : '';\n\n !authUserHasPermission([telemetryPermissions.fuelCatalog], userPermissions)\n ? ProhibitedPaths.push(telemetryPaths.telemetryFuelMonitor)\n : '';\n\n !authUserHasPermission([telemetryPermissions.fuelReport], userPermissions)\n ? ProhibitedPaths.push(telemetryPaths.telemetryFuelReport)\n : '';\n\n // ** Telemetry paths\n !authUserHasPermission([optimizationsPermissions.viewOptimizations], userPermissions)\n ? ProhibitedPaths.push(optimizationsPaths.listOptimization)\n : '';\n\n // ** Vehicle Maintenance paths\n // Preventive Notices\n !authUserHasPermission([vehicleMaintenancePermissions.preventiveNotices], userPermissions)\n ? ProhibitedPaths.push(vehicleMaintenancePaths.preventiveNotices)\n : '';\n\n //MaintenanceLines\n !authUserHasPermission([vehicleMaintenancePermissions.maintenanceLines], userPermissions)\n ? ProhibitedPaths.push(vehicleMaintenancePaths.maintenanceLineList)\n : '';\n\n !authUserHasPermission(\n [\n vehicleMaintenancePermissions.maintenanceLineAdd,\n vehicleMaintenancePermissions.maintenanceLineEdit\n ],\n userPermissions\n )\n ? ProhibitedPaths.push(vehicleMaintenancePaths.maintenanceLineEdit)\n : '';\n\n // Catalogs\n !authUserHasPermission([vehicleMaintenancePermissions.sparepartsCatalog], userPermissions)\n ? ProhibitedPaths.push(vehicleMaintenancePaths.sparepartsCatalog)\n : '';\n\n !authUserHasPermission([vehicleMaintenancePermissions.workshopCatalog], userPermissions)\n ? ProhibitedPaths.push(vehicleMaintenancePaths.workshopCatalog)\n : '';\n\n !authUserHasPermission([vehicleMaintenancePermissions.categoriesCatalog], userPermissions)\n ? ProhibitedPaths.push(vehicleMaintenancePaths.categoriesCatalog)\n : '';\n\n !authUserHasPermission([vehicleMaintenancePermissions.providersCatalog], userPermissions)\n ? ProhibitedPaths.push(vehicleMaintenancePaths.providersCatalog)\n : '';\n\n !authUserHasPermission(\n [\n protocolPermissions.listProtocol,\n protocolPermissions.editProtocol,\n protocolPermissions.createProtocol,\n protocolPermissions.deleteProtocol\n ],\n userPermissions\n )\n ? ProhibitedPaths.push(protocolsPaths.protocolsList)\n : '';\n\n // Reports\n !authUserHasPermission([vehicleMaintenancePermissions.generalReport], userPermissions)\n ? ProhibitedPaths.push(vehicleMaintenancePaths.generalReport)\n : '';\n\n !authUserHasPermission([vehicleMaintenancePermissions.byCategoryReport], userPermissions)\n ? ProhibitedPaths.push(vehicleMaintenancePaths.byCategoryReport)\n : '';\n\n !authUserHasPermission([vehicleMaintenancePermissions.byUnitReport], userPermissions)\n ? ProhibitedPaths.push(vehicleMaintenancePaths.byUnitReport)\n : '';\n\n !authUserHasPermission([vehicleMaintenancePermissions.byWorkShopReport], userPermissions)\n ? ProhibitedPaths.push(vehicleMaintenancePaths.byWorkShopReport)\n : '';\n\n // Import Tickets\n !authUserHasPermission([vehicleMaintenancePermissions.importTicket], userPermissions)\n ? ProhibitedPaths.push(vehicleMaintenancePaths.importTicket)\n : '';\n\n // ** Fuel paths\n // Tickets\n !authUserHasPermission([vehicleFuelPermissions.addTicket], userPermissions)\n ? ProhibitedPaths.push(vehicleFuelPaths.addTicket)\n : '';\n\n !authUserHasPermission([vehicleFuelPermissions.importTicket], userPermissions)\n ? ProhibitedPaths.push(vehicleFuelPaths.importTicket)\n : '';\n\n // Reports\n !authUserHasPermission([vehicleFuelPermissions.consolidatedReport], userPermissions)\n ? ProhibitedPaths.push(vehicleFuelPaths.consolidatedReport)\n : '';\n\n !authUserHasPermission([vehicleFuelPermissions.byUnitReport], userPermissions)\n ? ProhibitedPaths.push(vehicleFuelPaths.byUnitReport)\n : '';\n\n // ** Affiliations\n // Operators\n !authUserHasPermission([operatorPermissions.operatorList], userPermissions)\n ? ProhibitedPaths.push(operatorPaths.listOperator)\n : '';\n\n !authUserHasPermission(\n [operatorPermissions.operatorEdit, operatorPermissions.operatorAdd],\n userPermissions\n )\n ? ProhibitedPaths.push(operatorPaths.editOperator)\n : '';\n\n // Organizations\n !authUserHasPermission([organizationPermissions.organizationCatalog], userPermissions)\n ? ProhibitedPaths.push(organizationPaths.listOrganization)\n : '';\n\n !authUserHasPermission(\n [organizationPermissions.organizationAdd, organizationPermissions.organizationEdit],\n userPermissions\n )\n ? ProhibitedPaths.push(organizationPaths.editOrganization)\n : '';\n\n // Divisions\n !authUserHasPermission([divisionPermissions.listDivision], userPermissions)\n ? ProhibitedPaths.push(divisionPaths.listDivision)\n : '';\n\n !authUserHasPermission(\n [divisionPermissions.editDivision, divisionPermissions.addDivision],\n userPermissions\n )\n ? ProhibitedPaths.push(divisionPaths.editDivision)\n : '';\n\n // Subdivisions\n !authUserHasPermission([subdivisionPermissions.subdivisionCatalog], userPermissions)\n ? ProhibitedPaths.push(subdivisionPaths.listSubdivision)\n : '';\n\n !authUserHasPermission(\n [subdivisionPermissions.subdivisionAdd, subdivisionPermissions.subdivisionEdit],\n userPermissions\n )\n ? ProhibitedPaths.push(subdivisionPaths.editSubdivision)\n : '';\n\n // Service Classes\n !authUserHasPermission([serviceClassPermissions.listServiceClass], userPermissions)\n ? ProhibitedPaths.push(serviceClassPaths.listServiceClass)\n : '';\n\n !authUserHasPermission(\n [serviceClassPermissions.editServiceClass, serviceClassPermissions.addServiceClass],\n userPermissions\n )\n ? ProhibitedPaths.push(serviceClassPaths.editServiceClass)\n : '';\n\n // Agents\n !authUserHasPermission([agentPermissions.agentList], userPermissions)\n ? ProhibitedPaths.push(agentPaths.listAgent)\n : '';\n\n !authUserHasPermission([agentPermissions.agentEdit, agentPermissions.agentAdd], userPermissions)\n ? ProhibitedPaths.push(agentPaths.editAgent)\n : '';\n\n // ** Customers\n !authUserHasPermission([customersPermissions.listCustomers], userPermissions)\n ? ProhibitedPaths.push(customersPaths.listCustomer)\n : '';\n\n // ** Contracts\n !useCRM ? ProhibitedPaths.push(contractsPaths.consolidateContract) : '';\n !useCRM ? ProhibitedPaths.push(contractsPaths.editContract) : '';\n !useCRM ? ProhibitedPaths.push(contractsPaths.listContract) : '';\n !useCRM ? ProhibitedPaths.push(contractsPaths.listContractVersions) : '';\n\n !(useConsole && authUserHasPermission([consolePermissions.console], userPermissions))\n ? ProhibitedPaths.push(consolePaths.console)\n : '';\n !isWebtrackUser ? ProhibitedPaths.push(businessPartnersPaths.editPartner) : '';\n !isWebtrackUser ? ProhibitedPaths.push(businessPartnersPaths.webServiceRates) : '';\n\n // ** Groups\n !authUserHasPermission([groupsPermissions.listGroup], userPermissions)\n ? ProhibitedPaths.push(groupsPaths.listGroup)\n : '';\n\n !authUserHasPermission([groupsPermissions.editGroup], userPermissions)\n ? ProhibitedPaths.push(groupsPaths.editGroup)\n : '';\n\n // ** Scheduling\n !authUserHasPermission([schedulePermissions.schedule], userPermissions)\n ? ProhibitedPaths.push(...[schedulePaths.listTrigger, schedulePaths.listShift])\n : '';\n\n // ** Catalogs\n //Users\n !authUserHasPermission([usersPermissions.listUsers], userPermissions)\n ? ProhibitedPaths.push(usersPaths.listUsers)\n : '';\n\n !authUserHasPermission([usersPermissions.addUser, usersPermissions.editUser], userPermissions)\n ? ProhibitedPaths.push(usersPaths.editUsers)\n : '';\n\n !authUserHasPermission([usersPermissions.editUserPermissions], userPermissions)\n ? ProhibitedPaths.push(usersPaths.rolesPermissionsUsers)\n : '';\n\n //Drivers\n !authUserHasPermission([driversPermissions.listDrivers], userPermissions)\n ? ProhibitedPaths.push(driversPaths.listDrivers)\n : '';\n\n !authUserHasPermission(\n [driversPermissions.editDriver, driversPermissions.addDriver],\n userPermissions\n )\n ? ProhibitedPaths.push(driversPaths.editDrivers)\n : '';\n\n !authUserHasPermission([driversPermissions.massAssignment], userPermissions)\n ? ProhibitedPaths.push(operationsPaths.massiveDriverAssignment)\n : '';\n\n //People\n !authUserHasPermission([peoplePermissions.listPerson], userPermissions)\n ? ProhibitedPaths.push(peoplePaths.listPeople)\n : '';\n\n !authUserHasPermission([peoplePermissions.editPerson], userPermissions)\n ? ProhibitedPaths.push(peoplePaths.editPeople)\n : '';\n\n // ** Forms\n !authUserHasPermission([formPermissions.listForms], userPermissions)\n ? ProhibitedPaths.push(formPaths.listForms)\n : '';\n\n !authUserHasPermission([formPermissions.addForm, formPermissions.editForm], userPermissions)\n ? ProhibitedPaths.push(formPaths.editForms)\n : '';\n\n !authUserHasPermission([formPermissions.listAllUserAnswersForm], userPermissions)\n ? ProhibitedPaths.push(formPaths.answersReportForms)\n : '';\n\n // ** Inventories\n // Modules\n !authUserHasPermission([modulePermissions.listModule], userPermissions) ||\n [4, 2].includes(Number.parseInt(Number.parseInt(accessLevelId ?? 0)))\n ? ProhibitedPaths.push(modulePaths.listModule)\n : '';\n\n !authUserHasPermission(\n [modulePermissions.editModule, modulePermissions.addModule],\n userPermissions\n )\n ? ProhibitedPaths.push(modulePaths.editModule)\n : '';\n\n // SIM\n !authUserHasPermission([simPermissions.listSim], userPermissions) ||\n [4, 2].includes(Number.parseInt(Number.parseInt(accessLevelId ?? 0)))\n ? ProhibitedPaths.push(simPaths.listSim)\n : '';\n\n !authUserHasPermission([simPermissions.editSim, simPermissions.addSim], userPermissions)\n ? ProhibitedPaths.push(simPaths.editSim)\n : '';\n\n // Sensors\n !authUserHasPermission([sensorPermissions.listSensor], userPermissions)\n ? ProhibitedPaths.push(sensorPaths.listSensor)\n : '';\n\n !authUserHasPermission(\n [sensorPermissions.editSensor, sensorPermissions.addSensor],\n userPermissions\n )\n ? ProhibitedPaths.push(sensorPaths.editSensor)\n : '';\n\n // Vehicles\n !authUserHasPermission([vehiclePermissions.listVehicle], userPermissions)\n ? ProhibitedPaths.push(vehiclePaths.listVehicle)\n : '';\n\n !authUserHasPermission(\n [vehiclePermissions.addVehicle, vehiclePermissions.editVehicle],\n userPermissions\n )\n ? ProhibitedPaths.push(vehiclePaths.editVehicle)\n : '';\n\n // Assets\n !authUserHasPermission([assetPermissions.assetCatalog], userPermissions)\n ? ProhibitedPaths.push(assetPaths.listAsset)\n : '';\n\n !authUserHasPermission([assetPermissions.assetEdit, assetPermissions.assetAdd], userPermissions)\n ? ProhibitedPaths.push(assetPaths.editAsset)\n : '';\n\n // ** Notifications\n !authUserHasPermission([notificationsPermissions.listEmailNotification], userPermissions)\n ? ProhibitedPaths.push(notificationsPaths.listEmailNotifications)\n : '';\n\n !authUserHasPermission([notificationsPermissions.listConsoleNotification], userPermissions)\n ? ProhibitedPaths.push(notificationsPaths.listConsoleNotifications)\n : '';\n\n !authUserHasPermission([notificationsPermissions.listWebServiceNotification], userPermissions)\n ? ProhibitedPaths.push(notificationsPaths.listWebServiceNotifications)\n : '';\n\n !authUserHasPermission([notificationsPermissions.listSystemNotification], userPermissions)\n ? ProhibitedPaths.push(notificationsPaths.listSystemNotifications)\n : '';\n\n return ProhibitedPaths;\n};\n","//** React Imports\r\nimport { useState, useEffect } from 'react';\r\n\r\n// ** Configs\r\nimport themeConfig from '@configs/themeConfig';\r\n\r\nexport const useSkin = () => {\r\n // ** State\r\n const [skin, setSkin] = useState(() => {\r\n try {\r\n // ** Get from local storage by key\r\n const item = window.localStorage.getItem('skin');\r\n // ** Parse stored json or if none return initialValue\r\n return item ? JSON.parse(item) : themeConfig.layout.skin;\r\n } catch (error) {\r\n // ** If error also return initialValue\r\n return themeConfig.layout.skin;\r\n }\r\n });\r\n\r\n // ** Return a wrapped version of useState's setter function\r\n const setValue = (value) => {\r\n try {\r\n // ** Allow value to be a function so we have same API as useState\r\n const valueToStore = value instanceof Function ? value(skin) : value;\r\n // ** Set state\r\n setSkin(valueToStore);\r\n // ** Save to local storage\r\n window.localStorage.setItem('skin', JSON.stringify(valueToStore));\r\n } catch (error) {\r\n // ** A more advanced implementation would handle the error case\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n // ** Get Body Tag\r\n const element = window.document.body;\r\n\r\n // ** Define classnames for skins\r\n const classNames = {\r\n dark: 'dark-layout',\r\n bordered: 'bordered-layout',\r\n 'semi-dark': 'semi-dark-layout'\r\n };\r\n\r\n // ** Remove all classes from Body on mount\r\n element.classList.remove(...element.classList);\r\n\r\n // ** If skin is not light add skin class\r\n if (skin !== 'light') {\r\n element.classList.add(classNames[skin]);\r\n }\r\n }, [skin]);\r\n\r\n return [skin, setValue];\r\n};\r\n","const paths = {\n massiveDriverAssignment: '/driver/massiveAssignment',\n peopleAssignment: '/operation/peopleAssignment'\n};\n\nexport default paths;\n","// ** React Imports\nimport { useContext, useState, useEffect } from 'react';\nimport { env } from 'env';\n// ** Third Party Components\nimport ReactCountryFlag from 'react-country-flag';\nimport axios from 'axios';\nimport { UncontrolledDropdown, DropdownMenu, DropdownItem, DropdownToggle } from 'reactstrap';\nimport { Link } from 'react-router-dom';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport Swal from 'sweetalert2';\n// ** Internationalization Context\nimport { useSelector } from 'react-redux';\nimport { IntlContext } from '@src/utility/context/Internationalization';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nconst IntlDropdown = () => {\n // ** Context\n const intlContext = useContext(IntlContext);\n\n // ** Vars\n const langObj = {\n en: ,\n es: \n };\n\n // ** Function to switch Language\n const handleLangUpdate = (e, lang) => {\n //Error with swal if it is open so we need to close it first\n // https://github.com/sweetalert2/sweetalert2/issues/1320\n if (!Swal.isVisible()) {\n e.preventDefault();\n intlContext.switchLanguage(lang);\n setLanguage(lang);\n } else {\n Swal.close();\n setTimeout(() => handleLangUpdate(e, lang), 10);\n }\n };\n const store = useSelector((state) => state);\n const countryCode = authSelectors.getAuthUser(store).countryCode ?? 'gt'; // paƭs de la zona horaria del usuario por defecto guatemala\n const [language, setLanguage] = useState(localStorage.getItem('lang') ?? 'undefined'); //leguaje seleccionado en plataforma\n const [countryFlag, setCountryFlag] = useState(countryCode.toLowerCase());\n\n /*\n si el pais de origen es de habla espaƱola entonces hay que cambiar la bandera de espaƱol\n\n si el pais de origen NO es de habla espaƱola entonces se coloca US \n */\n\n const getGeoInfo = () => {\n console.log('request ip');\n\n axios\n .get(env.REACT_APP_IP_GEOLOCATION_API)\n .then((response) => {\n let data = response.data;\n\n let country_code = data.country_code;\n\n //paises con espaƱol -- http://www.lingoes.net/en/translator/langcode.htm\n //si no hay definido un lenguaje en el localStorage y el pais no es de habla espaƱol seateamos por defecto ingles\n\n if (\n [\n 'AR',\n 'BO',\n 'CL',\n 'CO',\n 'CR',\n 'DO',\n 'EC',\n 'ES',\n 'GT',\n 'HN',\n 'MX',\n 'NI',\n 'PA',\n 'PE',\n 'PR',\n 'PY',\n 'SV',\n 'UY',\n 'VE'\n ].includes(country_code.toUpperCase())\n ) {\n intlContext.switchLanguage('es');\n setLanguage('es');\n setCountryFlag(country_code);\n } else {\n intlContext.switchLanguage('en');\n setLanguage('en');\n setCountryFlag('es');\n }\n })\n .catch((error) => {\n console.log(error);\n });\n };\n\n useEffect(() => {\n if ((env.REACT_APP_IP_GEOLOCATION_API ?? '') != '' && language == 'undefined') getGeoInfo();\n }, []);\n\n return (\n \n e.preventDefault()}>\n \n {/* {langObj[intlContext.locale]} */}\n \n \n handleLangUpdate(e, 'en')}>\n \n \n \n \n \n handleLangUpdate(e, 'es')}>\n \n \n \n \n \n \n \n );\n};\n\nexport default IntlDropdown;\n","/* eslint-disable semi */\n/* -------------------------------------------------------------------------- */\n/* SECRET_KEY */\n/* -------------------------------------------------------------------------- */\nconst SECRET_KEY = 'webtrack_encrypt_and_decrypt_key';\nexport default SECRET_KEY;\n","/* eslint-disable semi */\nimport { env } from '../../../env';\n/* -------------------------------------------------------------------------- */\n/* WEBTRACK_CLASSIC_URL */\n/* -------------------------------------------------------------------------- */\nconst WEBTRACK_CLASSIC_URL = env.REACT_APP_WEBTRACK_CLASSIC_URL;\nexport default WEBTRACK_CLASSIC_URL;\n","import { useCallback, useReducer, useEffect, useMemo } from 'react';\nimport { getKeyboardModifiers } from 'utility/Utils';\nimport { Char, Dict } from 'utility/types';\n\n/** Interface Combination\n * shift: boolean for validation, default false\n * alt: boolean for validation, default false\n * ctrl: boolean for validation, default false\n */\ninterface Combination {\n shift: boolean;\n alt: boolean;\n ctrl: boolean;\n}\n\n/** Shortcut\n * Key: Character that must be pressed to execute the provided callback\n * combination: check if the provided combination is pressed\n * callback: function that executes after validation\n */\ninterface Shortcut {\n key: Char;\n combination: Partial;\n callback(event: KeyboardEvent): void;\n}\n\n/**\n * isValidChar\n * @param c : Char to validate\n * @returns true if is valid char, false if is not allowed\n */\nconst isValidChar = (c: Char) => {\n return /[a-z]/.test(c);\n};\n\nconst generateKey = (s: Omit) => {\n const { combination, key } = s;\n const { ctrl, alt, shift } = combination;\n const stringCtrl = !!ctrl ? 'ctrl' : '';\n const stringAlt = !!alt ? 'alt' : '';\n const stringShift = !!shift ? 'shift' : '';\n\n // creates key for the dictionary\n const generatedKey = `${stringCtrl}${stringAlt}${stringShift}${key.toLowerCase()}`;\n return generatedKey;\n};\n\n/**\n * Use shortcut\n * @param shortcuts: Array of shortcuts configuration\n * @returns callback to use in component\n */\nconst useShortcuts = (shortcuts: Shortcut[], dependencies: any[] = []) => {\n // creates shortcuts dictionary\n const dShortcuts: Dict = useMemo(() => {\n return shortcuts.reduce((shortcutDict, s: Shortcut): Dict => {\n const generatedKey = generateKey(s);\n shortcutDict[generatedKey] = s;\n return shortcutDict;\n }, {});\n }, [shortcuts, ...dependencies]);\n // validates each shortcut config\n const onKeyPressed = useCallback(\n (event: KeyboardEvent) => {\n // validates each combination\n const { key } = event;\n const { ctrl, shift, alt, parsedKey } = getKeyboardModifiers(event);\n const generatedKey = generateKey({\n // @ts-ignore unreachable error\n key: parsedKey ?? key,\n combination: { shift, ctrl, alt }\n });\n\n const shortcut: Shortcut | undefined = dShortcuts[generatedKey];\n\n // executes callback\n if (typeof shortcut?.callback === 'function') {\n event.preventDefault();\n shortcut.callback(event);\n }\n },\n [dShortcuts, ...dependencies]\n );\n\n const handleShortcuts = useCallback(\n (event: KeyboardEvent) => {\n onKeyPressed(event);\n },\n [shortcuts, ...dependencies]\n );\n\n useEffect(() => {\n shortcuts.forEach((shortcut) => {\n if (!isValidChar(shortcut.key)) {\n throw new Error('Not allowed key for shortcut');\n }\n });\n\n window.addEventListener('keydown', handleShortcuts);\n\n return () => {\n window.removeEventListener('keydown', handleShortcuts);\n };\n }, [handleShortcuts]);\n\n return { handleShortcuts };\n};\n\nexport { useShortcuts };\n","export default __webpack_public_path__ + \"static/media/avatar-s-15.37a99cd4.jpg\";","export default __webpack_public_path__ + \"static/media/avatar-s-3.c1d416e5.jpg\";","// ** Handles Layout Content Width (full / boxed)\r\nexport const handleContentWidth = (value) => ({\r\n type: 'HANDLE_CONTENT_WIDTH',\r\n payload: value\r\n});\r\n\r\n// ** Handles Menu Collapsed State (Bool)\r\nexport const handleMenuCollapsed = (value) => ({\r\n type: 'HANDLE_MENU_COLLAPSED',\r\n payload: value\r\n});\r\n\r\n// ** Handles Menu Hidden State (Bool)\r\nexport const handleMenuHidden = (value) => ({\r\n type: 'HANDLE_MENU_HIDDEN',\r\n payload: value\r\n});\r\n\r\n// ** Handles Menu Pinner State (Bool)\r\nexport const handleMenuPinner = (value) => ({\r\n type: 'HANDLE_MENU_PINNER',\r\n payload: value\r\n});\r\n\r\n// ** Handles RTL (Bool)\r\nexport const handleRTL = (value) => ({ type: 'HANDLE_RTL', payload: value });\r\n","// ** React Imports\r\nimport { Fragment, useEffect, useState } from 'react';\r\nimport { Alert } from 'reactstrap';\r\nimport Avatar from '../../../../@core/components/avatar';\r\nimport {\r\n getMessageTypeAvatarProps,\r\n getMessageTypesStyles\r\n} from '../../../../views/screens/Notifications/views/listSystemNotifications/utils';\r\n\r\n// ** Third Party Components\r\nimport classnames from 'classnames';\r\n\r\n// ** Store & Actions\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { getPermanentUserNotifications } from 'views/screens/Notifications/reducers';\r\nimport { startReadingUserNotification } from 'views/screens/Notifications/actions';\r\nimport { handleContentWidth, handleMenuCollapsed, handleMenuHidden } from '@store/actions/layout';\r\n\r\n// ** Styles\r\nimport 'animate.css/animate.css';\r\nimport paths from 'views/screens/Routes/paths';\r\n\r\nconst LayoutWrapper = (props) => {\r\n // ** Props\r\n const { layout, children, appLayout, wrapperClass, transition, routeMeta } = props;\r\n\r\n // ** Store Vars\r\n const dispatch = useDispatch();\r\n const store = useSelector((state) => state);\r\n const permanentNotifications = useSelector((state) => getPermanentUserNotifications(state));\r\n\r\n const contentWidth = store.layout.contentWidth;\r\n\r\n const [showPermanentAlert, setShowPermanentAlert] = useState(false);\r\n\r\n //** Vars\r\n const Tag = layout === 'HorizontalLayout' && !appLayout ? 'div' : Fragment;\r\n\r\n // ** Clean Up Function\r\n const cleanUp = () => {\r\n if (routeMeta) {\r\n if (routeMeta.contentWidth) {\r\n dispatch(handleContentWidth('full'));\r\n }\r\n if (routeMeta.menuCollapsed) {\r\n dispatch(handleMenuCollapsed(!routeMeta.menuCollapsed));\r\n }\r\n if (routeMeta.menuHidden) {\r\n dispatch(handleMenuHidden(!routeMeta.menuHidden));\r\n }\r\n }\r\n };\r\n\r\n // ** ComponentDidMount\r\n useEffect(() => {\r\n if (routeMeta) {\r\n if (routeMeta.contentWidth) {\r\n dispatch(handleContentWidth(routeMeta.contentWidth));\r\n }\r\n if (routeMeta.menuCollapsed) {\r\n dispatch(handleMenuCollapsed(routeMeta.menuCollapsed));\r\n }\r\n if (routeMeta.menuHidden) {\r\n dispatch(handleMenuHidden(routeMeta.menuHidden));\r\n }\r\n }\r\n return () => cleanUp();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (permanentNotifications.length > 0) {\r\n setShowPermanentAlert(true);\r\n }\r\n }, [permanentNotifications]);\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n {showPermanentAlert &&\r\n permanentNotifications.map((notification, index) => (\r\n {\r\n if (notification.status === 1)\r\n dispatch(startReadingUserNotification([notification.notificationId]));\r\n }}\r\n className={`alert ${notification.status === 1 ? 'alert-glow' : ''}`}\r\n styles={{ marginTop: '4px', marginRight: '4px', marginLeft: '4px' }}\r\n >\r\n
\r\n \r\n \r\n {notification.messageTitle}\r\n \r\n
\r\n
\r\n \r\n ))}\r\n \r\n {children}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LayoutWrapper;\r\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.addTicket,\n component: lazy(() => import('./views/addTicket'))\n },\n {\n path: paths.importTicket,\n component: lazy(() => import('./views/importTickets'))\n },\n {\n path: paths.consolidatedReport,\n component: lazy(() => import('./views/consolidatedReport'))\n },\n {\n path: paths.byUnitReport,\n component: lazy(() => import('./views/byUnitReport'))\n },\n {\n path: paths.recordMultiple,\n component: lazy(() => import('./views/RecordMultipleFuelTickets'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listAsset,\n component: lazy(() => import('./views/listAsset'))\n },\n {\n path: paths.editAsset,\n component: lazy(() => import('./views/editAsset'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.editPartner,\n component: lazy(() => import('./views/editPartner'))\n },\n {\n path: paths.webServiceRates,\n component: lazy(() => import('./views/webServiceRates'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listOperator,\n component: lazy(() => import('./views/listOperator'))\n },\n {\n path: paths.editOperator,\n component: lazy(() => import('./views/editOperator'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listOrganization,\n component: lazy(() => import('./views/listOrganization'))\n },\n {\n path: paths.editOrganization,\n component: lazy(() => import('./views/editOrganization'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listAgent,\n component: lazy(() => import('./views/listAgent'))\n },\n {\n path: paths.editAgent,\n component: lazy(() => import('./views/editAgent'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listDivision,\n component: lazy(() => import('./views/listDivision'))\n },\n {\n path: paths.editDivision,\n component: lazy(() => import('./views/editDivision'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listSubdivision,\n component: lazy(() => import('./views/listSubdivision'))\n },\n {\n path: paths.editSubdivision,\n component: lazy(() => import('./views/editSubdivision'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listServiceClass,\n component: lazy(() => import('./views/listServiceClass'))\n },\n {\n path: paths.editServiceClass,\n component: lazy(() => import('./views/editServiceClass'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listModule,\n component: lazy(() => import('./views/listModule'))\n },\n {\n path: paths.editModule,\n component: lazy(() => import('./views/editModule'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listVehicle,\n component: lazy(() => import('./views/listVehicle'))\n },\n {\n path: paths.editVehicle,\n component: lazy(() => import('./views/editVehicle'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listSim,\n component: lazy(() => import('./views/listSim'))\n },\n {\n path: paths.editSim,\n component: lazy(() => import('./views/editSim'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\n\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.locationsList,\n component: lazy(() => import('./views/LocationsListScreen'))\n },\n {\n path: paths.importLocations,\n component: lazy(() => import('./views/ImportLocationsScreen'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listSensor,\n component: lazy(() => import('./views/listSensor'))\n },\n {\n path: paths.editSensor,\n component: lazy(() => import('./views/editSensor'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listTrigger,\n component: lazy(() => import('./views/listTrigger'))\n },\n {\n path: paths.listShift,\n component: lazy(() => import('./views/listShift'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.workplanList,\n component: lazy(() => import('./views/WorkplansListScreen'))\n },\n {\n path: paths.workplanEdit,\n component: lazy(() => import('./views/WorkplanEditScreen'))\n },\n {\n path: paths.workplanMonitor,\n component: lazy(() => import('./views/WorkplansMonitorScreen'))\n },\n {\n path: paths.workplanReport,\n component: lazy(() => import('./views/WorkplansReportScreen'))\n },\n {\n path: paths.scheduledWorkplan,\n component: lazy(() => import('./views/ScheduledWorkplanCatalog'))\n },\n {\n path: paths.workplanAssignUnit,\n component: lazy(() => import('./views/WorkplansAssignUnitScreen'))\n }\n /* {\n path: paths.workplanImport,\n component: lazy(() => import('./views/WorkplanImport'))\n } */\n];\n\nexport default Routes;\n","import { lazy } from 'react';\n\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.routeList,\n component: lazy(() => import('./views/RoutesListScreen'))\n },\n {\n path: paths.routeEdit,\n component: lazy(() => import('./views/RoutesEditScreen'))\n },\n {\n path: paths.routeMonitor,\n component: lazy(() => import('./views/RoutesMonitorScreen'))\n },\n {\n path: paths.routeReport,\n component: lazy(() => import('./views/RoutesReportScreen'))\n },\n {\n path: paths.routeAssignUnit,\n component: lazy(() => import('./views/RoutesAssignUnitScreen'))\n },\n {\n path: paths.importRouteAssignments,\n component: lazy(() => import('./views/ImportRouteAssignmentsScreen'))\n },\n {\n path: paths.routeETAMonitor,\n component: lazy(() => import('./views/RoutesETAMonitorScreen'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n // Catalogos\n {\n path: paths.categoriesCatalog,\n component: lazy(() => import('./views/catalogs/categories'))\n },\n {\n path: paths.sparepartsCatalog,\n component: lazy(() => import('./views/catalogs/sparepart'))\n },\n {\n path: paths.providersCatalog,\n component: lazy(() => import('./views/catalogs/providers'))\n },\n {\n path: paths.workshopCatalog,\n component: lazy(() => import('./views/catalogs/workmanship'))\n },\n\n //Reportes\n {\n path: paths.generalReport,\n component: lazy(() => import('./views/reports/general'))\n },\n {\n path: paths.byUnitReport,\n component: lazy(() => import('./views/reports/byUnit'))\n },\n {\n path: paths.byWorkShopReport,\n component: lazy(() => import('./views/reports/byWorkShop'))\n },\n {\n path: paths.byCategoryReport,\n component: lazy(() => import('./views/reports/byCategory'))\n },\n {\n path: paths.importTicket,\n component: lazy(() => import('./views/importTickets'))\n },\n {\n path: paths.preventiveNotices,\n component: lazy(() => import('./views/preventiveNotices'))\n },\n {\n path: paths.maintenanceLineList,\n component: lazy(() => import('../MaintenanceLines/views/ListMaintenanceLine'))\n },\n {\n path: paths.maintenanceLineEdit,\n component: lazy(() => import('../MaintenanceLines/views/EditMaintenanceLine'))\n },\n {\n path: paths.addWorkshopOrders,\n component: lazy(() => import('./views/AddWorkshopOrders'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listForms,\n component: lazy(() => import('./views/listForm'))\n },\n {\n path: paths.editForms,\n component: lazy(() => import('./views/editForm'))\n },\n {\n path: paths.answersReportForms,\n component: lazy(() => import('./views/answersReportForms'))\n },\n {\n path: paths.reportForms,\n component: lazy(() => import('./views/reportForm/reportAnswers')),\n layout: 'BlankLayout'\n },\n {\n path: paths.reportAnswerForms,\n component: lazy(() => import('./views/reportForm/singleAnswer'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\n\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.geofencesList,\n component: lazy(() => import('./views/GeofencesListScreen'))\n },\n {\n path: paths.geofencesAssign,\n component: lazy(() => import('./views/GeofencesAssignScreen'))\n },\n {\n path: paths.geofencesAssignedList,\n component: lazy(() => import('./views/GeofencesAssignedListScreen'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\n\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.backlog,\n component: lazy(() => import('./views/JobsBacklogScreen'))\n },\n {\n path: paths.import,\n component: lazy(() => import('./views/ImportJobsScreen'))\n },\n {\n path: paths.board,\n component: lazy(() => import('./views/JobsBoardScreen'))\n },\n {\n path: paths.report,\n component: lazy(() => import('./views/JobsReportScreen'))\n },\n {\n path: paths.workingActivityReport,\n component: lazy(() => import('./views/JobsWorkingActivityReportScreen'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\n\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.list,\n component: lazy(() => import('./views/SafeDriverScreen'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\n\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.dashboard,\n component: lazy(() => import('./views/DashboardScreen'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\n\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.telemetryTemperature,\n component: lazy(() => import('./views/TelemetryTemperatureScreen'))\n },\n {\n path: paths.telemetryFuelMonitor,\n component: lazy(() => import('./views/TelemetryFuelMonitorScreen'))\n },\n {\n path: paths.telemetryFuelReport,\n component: lazy(() => import('./views/TelemetryFuelReportScreen'))\n },\n {\n path: paths.telemetryUnits,\n component: lazy(() => import('./views/TelemetryUnits'))\n },\n {\n path: paths.telemetryFuelReportByVehicles,\n component: lazy(() => import('./views/TelemetryFuelReportByVehiclesScreen'))\n },\n {\n path: paths.telemetryOBD2,\n component: lazy(() => import('./views/TelemetryOBD2'))\n }\n];\n\nexport default Routes;\n","import { env } from 'env';\nimport { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listTrackingUnits,\n component: lazy(() => import('./views/listTrackingUnits'))\n },\n {\n path: paths.editTrackingUnits,\n component: lazy(() => import('./views/editTrackingUnits'))\n },\n {\n path: paths.listFleet,\n component: lazy(() =>\n !!parseInt(env.REACT_APP_SAT_MONITOR ?? '0')\n ? import('./views/listFleetSat')\n : import('./views/listFleet')\n )\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.reportMileage,\n component: lazy(() => import('./views/consolidated/reportMileage'))\n },\n {\n path: paths.reportHourMeters,\n component: lazy(() => import('./views/consolidated/reportHourMeters'))\n },\n {\n path: paths.reportHourOpportunityCharge,\n component: lazy(() => import('./views/consolidated/reportOpportunityChargeTime'))\n },\n {\n path: paths.reportConsolidatedEventActivity,\n component: lazy(() => import('./views/consolidated/reportConsolidatedEventActivity'))\n },\n {\n path: paths.reportParkedGeofence,\n component: lazy(() => import('./views/consolidated/reportCpGeofence'))\n },\n {\n path: paths.reportConsolidatedUnitActivity,\n component: lazy(() => import('./views/consolidated/reportConsolidatedUnitActivity'))\n },\n {\n path: paths.reportConsolidatedStopSummary,\n component: lazy(() => import('./views/consolidated/reportConsolidatedStopSummary'))\n },\n {\n path: paths.reportConsolidatedSummary,\n component: lazy(() => import('./views/consolidated/reportConsolidatedSummary'))\n },\n {\n path: paths.reportRunningTime,\n component: lazy(() => import('./views/byUnit/reportRunningTime'))\n },\n {\n path: paths.reportByUnitStopSummary,\n component: lazy(() => import('./views/byUnit/reportStopSummary'))\n },\n {\n path: paths.reportByUnitScriptsHistory,\n component: lazy(() => import('./views/byUnit/reportScriptHistory'))\n },\n {\n path: paths.reportScheduledReports,\n component: lazy(() => import('./views/reportScheduled'))\n },\n {\n path: paths.reportSystemCommunicationsDiag,\n component: lazy(() => import('./views/system/reportCommunicationsDiag'))\n },\n {\n path: paths.reportSystemApiConsumption,\n component: lazy(() => import('./views/system/reportApiConsumption'))\n },\n {\n path: paths.reportSystemNotifications,\n component: lazy(() => import('./views/system/reportNotifications'))\n },\n {\n path: paths.reportSystemUserHistory,\n component: lazy(() => import('./views/system/reportUserHistory'))\n },\n {\n path: paths.reportSystemAdministrative, \n component: lazy(() => import('./views/system/reportAdministrative'))\n },\n {\n path: paths.reportList,\n component: lazy(() => import('./views/listReport'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\n\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listDrivers,\n component: lazy(() => import('./views/listDriver'))\n },\n {\n path: paths.editDrivers,\n component: lazy(() => import('./views/editDriver'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listPeople,\n component: lazy(() => import('./views/listPeople'))\n },\n {\n path: paths.editPeople,\n component: lazy(() => import('./views/editPeople'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listUsers,\n component: lazy(() => import('./views/listUser'))\n },\n {\n path: paths.editUsers,\n component: lazy(() => import('./views/editUser'))\n },\n {\n path: paths.rolesPermissionsUsers,\n component: lazy(() => import('./views/rolesPermissionsUser'))\n },\n {\n path: paths.assignUnitsToUser,\n component: lazy(() => import('./views/AssignUnitsToUser'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\n\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listOptimization,\n component: lazy(() => import('./views/OptimizationsListScreen'))\n },\n {\n path: paths.editOptimization,\n component: lazy(() => import('./views/OptimizationEditScreen'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listSystemNotifications,\n component: lazy(() => import('./views/listSystemNotifications'))\n },\n {\n path: paths.listNotifications,\n component: lazy(() => import('./views/listNotification'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.massiveDriverAssignment,\n component: lazy(() => import('./views/massiveDriverAssigment'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\n\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listGroup,\n component: lazy(() => import('./views/listGroup'))\n },\n {\n path: paths.editGroup,\n component: lazy(() => import('./views/editGroup'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\n\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.console,\n component: lazy(() => import('./views/ConsoleScreen'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\n\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listContract,\n component: lazy(() => import('./views/listContract'))\n },\n {\n path: paths.editContract,\n component: lazy(() => import('./views/editContract'))\n },\n {\n path: paths.listContractVersions,\n component: lazy(() => import('./views/listContractVersions'))\n },\n {\n path: paths.consolidateContract,\n component: lazy(() => import('./views/editContract'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.externalLogin,\n component: lazy(() => import('./views/ExternalLoginScreen')),\n meta: {\n publicRoute: true\n }\n }\n];\n\nexport default Routes;\n","const paths = {\n externalLogin: '/external-login/:token'\n};\n\nexport default paths;\n","import { lazy } from 'react';\n\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listCustomer,\n component: lazy(() => import('./views/listCustomer'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\n\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listOffice,\n component: lazy(() => import('./views/listOffice'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\n\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listContact,\n component: lazy(() => import('./views/listContact'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listQuotations,\n component: lazy(() => import('./views/listQuotations'))\n },\n {\n path: paths.editQuotations,\n component: lazy(() => import('./views/editQuotations'))\n },\n {\n path: paths.followUpQuotations,\n component: lazy(() => import('./views/editQuotations'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\n\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.listTemplate,\n component: lazy(() => import('./views/listContractTemplate'))\n },\n {\n path: paths.editTemplate,\n component: lazy(() => import('./views/editContractTemplate'))\n }\n];\n\nexport default Routes;\n","const paths = {\n homeKnowledgeBase: '/knowledgebase/home', //display all categories\n articleKnowledgeBase: '/knowledgebase/category/:categoryId/topic/:topicId/article/:articleId',\n categoryKnoledgeBase: '/knowledgebase/category/:categoryId'\n};\n\nexport default paths;\n","import { lazy } from 'react';\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.homeKnowledgeBase,\n component: lazy(() => import('./views/homeKnowledgeBase'))\n },\n {\n path: paths.articleKnowledgeBase,\n component: lazy(() => import('./views/articleKnowledgeBase'))\n },\n {\n path: paths.categoryKnoledgeBase,\n component: lazy(() => import('./views/categoryKnowledgeBase'))\n }\n];\n\nexport default Routes;\n","import { lazy } from 'react';\n\nimport paths from './paths';\n\nconst Routes = [\n {\n path: paths.protocolsList,\n component: lazy(() => import('./views/listProtocol'))\n }\n];\n\nexport default Routes;\n","/* eslint-disable semi */\nimport { lazy } from 'react';\n\n// ** Document title\nconst TemplateTitle = '%s - Webtrack';\n\n// ** Default Route\nconst DefaultRoute = '/home';\n\n// ** Modules routes\nimport vehicleFuelRoutes from 'views/screens/VehicleFuel/routes';\nimport assetRoutes from 'views/screens/Assets/routes';\nimport businessPartnersRoutes from 'views/screens/BusinessPartners/routes';\nimport operatorRoutes from 'views/screens/Operators/routes';\nimport organizationRoutes from 'views/screens/Organizations/routes';\nimport agentRoutes from 'views/screens/Agents/routes';\nimport divisionRoutes from 'views/screens/Divisions/routes';\nimport subdivisionRoutes from 'views/screens/Subdivisions/routes';\nimport serviceClassRoutes from 'views/screens/ServiceClasses/routes';\nimport moduleRoutes from 'views/screens/Modules/routes';\nimport vehicleRoutes from 'views/screens/Vehicles/routes';\nimport simRoutes from 'views/screens/SIMs/routes';\nimport locationsRoutes from 'views/screens/Locations/routes';\nimport sensorRoutes from 'views/screens/Sensors/routes';\nimport scheduleRoutes from 'views/screens/Schedules/routes';\nimport workplansRoutes from 'views/screens/Workplans/routes';\nimport routesRoutes from 'views/screens/Routes/routes';\nimport vehicleMaintenance from 'views/screens/vehicleMaintenance/routes';\nimport formRoutes from 'views/screens/Forms/routes';\nimport geofencesRoutes from 'views/screens/Geofences/routes';\nimport jobsRoutes from 'views/screens/Jobs/routes';\nimport safeDriverRoutes from 'views/screens/SafeDriver/routes';\nimport dashboardRoutes from 'views/screens/Dashboard/routes';\nimport telemetryRoutes from 'views/screens/Telemetry/routes';\nimport trackingUnitsRoutes from 'views/screens/TrackingUnits/routes';\nimport reportsRoutes from 'views/screens/Reports/routes';\nimport driversRoutes from 'views/screens/Drivers/routes';\nimport peopleRoutes from 'views/screens/People/routes';\nimport usersRoutes from 'views/screens/Users/routes';\nimport optimizationsRoutes from 'views/screens/Optimizations/routes';\nimport notificationsRoutes from 'views/screens/Notifications/routes';\nimport operationsRoutes from 'views/screens/Operations/routes';\nimport groupsRoutes from 'views/screens/Groups/routes';\nimport consoleRoutes from 'views/screens/Console/routes';\nimport contractsRoutes from 'views/screens/Contracts/routes';\nimport externalLogin from 'views/screens/ExternalLogin/routes';\nimport customerRoutes from 'views/screens/Customers/routes';\nimport officeRoutes from 'views/screens/Offices/routes';\nimport contactRoutes from 'views/screens/Contacts/routes';\nimport quotationRoutes from 'views/screens/Quotations/routes';\nimport contractTemplatesRoutes from 'views/screens/ContractTemplates/routes';\nimport quotationPaths from 'views/screens/Quotations/paths';\nimport knowledgeBaseRoutes from 'views/screens/KnowledgeBase/routes';\nimport protocolRoutes from 'views/screens/Protocols/routes';\nimport { getUseCRM, getUseConsole } from 'utility/Utils';\n\n// ** Merge Routes\nconst Routes = [\n ...vehicleFuelRoutes,\n ...assetRoutes,\n ...businessPartnersRoutes,\n ...operatorRoutes,\n ...organizationRoutes,\n ...agentRoutes,\n ...divisionRoutes,\n ...subdivisionRoutes,\n ...serviceClassRoutes,\n ...moduleRoutes,\n ...vehicleRoutes,\n ...simRoutes,\n ...locationsRoutes,\n ...sensorRoutes,\n ...scheduleRoutes,\n ...workplansRoutes,\n ...routesRoutes,\n ...vehicleMaintenance,\n ...formRoutes,\n ...geofencesRoutes,\n ...jobsRoutes,\n ...safeDriverRoutes,\n ...dashboardRoutes,\n ...telemetryRoutes,\n ...trackingUnitsRoutes,\n ...reportsRoutes,\n ...driversRoutes,\n ...peopleRoutes,\n ...usersRoutes,\n ...optimizationsRoutes,\n ...notificationsRoutes,\n ...operationsRoutes,\n ...groupsRoutes,\n ...consoleRoutes,\n ...contractsRoutes,\n ...externalLogin,\n ...customerRoutes,\n ...officeRoutes,\n ...contactRoutes,\n ...quotationRoutes,\n ...contractTemplatesRoutes,\n ...knowledgeBaseRoutes,\n ...protocolRoutes,\n {\n path: '/home',\n component: lazy(() => import('../../views/screens/MapHome'))\n },\n {\n path: '/report-viewer/:reportId',\n component: lazy(() => import('../../views/formComponents/ReportViewer')),\n layout: 'BlankLayout'\n },\n {\n path: quotationPaths.webPageQuotations,\n component: lazy(() => import('../../views/screens/Quotations/views/webPageQuotations')),\n layout: 'BlankLayout'\n },\n {\n path: quotationPaths.sendingDiscountQuotations,\n component: lazy(() => import('../../views/screens/Quotations/views/sendingDiscountQuotations')),\n layout: 'BlankLayout'\n },\n {\n path: '/second-page',\n component: lazy(() => import('../../views/SecondPage'))\n },\n {\n path: '/login',\n component: lazy(() => import('../../views/screens/Login')),\n layout: 'BlankLayout',\n meta: {\n authRoute: true\n }\n },\n {\n path: '/account-settings',\n component: lazy(() => import('../../views/screens/AccountSettings'))\n },\n {\n path: '/error',\n component: lazy(() => import('../../views/Error'))\n // layout: 'BlankLayout'\n },\n {\n path: '/not-authorized',\n layout: 'BlankLayout',\n component: lazy(() => import('../../views/NotAuthorized'))\n },\n {\n path: '/track/:unitId/:latitude/:longitude',\n component: lazy(() => import('../../views/screens/TrackUnitMap')),\n layout: 'BlankLayout'\n }\n];\n\nexport { DefaultRoute, TemplateTitle, Routes };\n","// ** React Imports\r\nimport { useEffect, useState } from 'react'\r\n\r\n// ** Custom Hooks\r\nimport { useSkin } from '@hooks/useSkin'\r\n\r\nconst BlankLayout = ({ children, ...rest }) => {\r\n // ** Hooks\r\n const [skin, setSkin] = useSkin()\r\n\r\n // ** States\r\n const [isMounted, setIsMounted] = useState(false)\r\n\r\n //** ComponentDidMount\r\n useEffect(() => {\r\n setIsMounted(true)\r\n return () => setIsMounted(false)\r\n }, [])\r\n\r\n if (!isMounted) {\r\n return null\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
{children}
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default BlankLayout\r\n","// ** React Imports\nimport { useState } from \"react\";\n\n// ** Third Party Components\nimport Select from \"react-select\";\nimport classnames from \"classnames\";\nimport { Settings, X } from \"react-feather\";\nimport { CustomInput, FormGroup } from \"reactstrap\";\nimport PerfectScrollbar from \"react-perfect-scrollbar\";\nimport { selectThemeColors } from \"@utils\";\n\n// ** Styles\nimport \"@styles/react/libs/react-select/_react-select.scss\";\n\nconst Customizer = (props) => {\n // ** Props\n const {\n skin,\n setSkin,\n isRtl,\n setIsRtl,\n layout,\n setLayout,\n navbarType,\n setNavbarType,\n footerType,\n setFooterType,\n navbarColor,\n setNavbarColor,\n isHidden,\n setIsHidden,\n contentWidth,\n setContentWidth,\n menuCollapsed,\n setMenuCollapsed,\n transition,\n setTransition,\n } = props;\n\n // ** State\n const [openCustomizer, setOpenCustomizer] = useState(false);\n\n // ** Toggles Customizer\n const handleToggle = (e) => {\n e.preventDefault();\n setOpenCustomizer(!openCustomizer);\n };\n\n // ** Render Layout Skin Options\n const renderSkinsRadio = () => {\n const skinsArr = [\n {\n name: \"light\",\n label: \"Light\",\n checked: skin === \"light\",\n },\n {\n name: \"bordered\",\n label: \"Bordered\",\n checked: skin === \"bordered\",\n },\n {\n name: \"dark\",\n label: \"Dark\",\n checked: skin === \"dark\",\n },\n {\n name: \"semi-dark\",\n label: \"Semi Dark\",\n checked: skin === \"semi-dark\",\n },\n ];\n\n return skinsArr.map((radio, index) => {\n const marginCondition = index !== skinsArr.length - 1;\n\n if (layout === \"HorizontalLayout\" && radio.name === \"semi-dark\") {\n return null;\n }\n\n return (\n setSkin(radio.name)}\n className={classnames({ \"mr-1\": marginCondition })}\n />\n );\n });\n };\n\n // ** Render Navbar Colors Options\n const renderNavbarColors = () => {\n const colorsArr = [\n \"white\",\n \"primary\",\n \"secondary\",\n \"success\",\n \"danger\",\n \"info\",\n \"warning\",\n \"dark\",\n ];\n\n return colorsArr.map((color) => (\n setNavbarColor(color)}\n >\n ));\n };\n\n // ** Render Navbar Type Options\n const renderNavbarTypeRadio = () => {\n const navbarTypeArr = [\n {\n name: \"floating\",\n label: \"Floating\",\n checked: navbarType === \"floating\",\n },\n {\n name: \"sticky\",\n label: \"Sticky\",\n checked: navbarType === \"sticky\",\n },\n {\n name: \"static\",\n label: \"Static\",\n checked: navbarType === \"static\",\n },\n {\n name: \"hidden\",\n label: \"Hidden\",\n checked: navbarType === \"hidden\",\n },\n ];\n\n return navbarTypeArr.map((radio, index) => {\n const marginCondition = index !== navbarTypeArr.length - 1;\n\n if (layout === \"HorizontalLayout\" && radio.name === \"hidden\") {\n return null;\n }\n\n return (\n setNavbarType(radio.name)}\n className={classnames({ \"mr-1\": marginCondition })}\n />\n );\n });\n };\n\n // ** Render Footer Type Options\n const renderFooterTypeRadio = () => {\n const footerTypeArr = [\n {\n name: \"sticky\",\n label: \"Sticky\",\n checked: footerType === \"sticky\",\n },\n {\n name: \"static\",\n label: \"Static\",\n checked: footerType === \"static\",\n },\n {\n name: \"hidden\",\n label: \"Hidden\",\n checked: footerType === \"hidden\",\n },\n ];\n\n return footerTypeArr.map((radio, index) => {\n const marginCondition = index !== footerTypeArr.length - 1;\n\n return (\n setFooterType(radio.name)}\n className={classnames({ \"mr-1\": marginCondition })}\n />\n );\n });\n };\n\n // ** Router Transition Options\n const transitionOptions = [\n { value: \"fadeIn\", label: \"Fade\" },\n { value: \"fadeInLeft\", label: \"Fade In Left\" },\n { value: \"zoomIn\", label: \"Zoom In\" },\n { value: \"none\", label: \"None\" },\n ];\n\n // ** Get Current Transition\n const transitionValue = transitionOptions.find((i) => i.value === transition);\n\n return (\n \n \n \n \n \n
\n

Theme Customizer

\n

Customize & Preview in Real Time

\n \n \n \n
\n\n
\n\n
\n \n

Skin

\n
{renderSkinsRadio()}
\n
\n\n \n

Content Width

\n
\n setContentWidth(\"full\")}\n />\n setContentWidth(\"boxed\")}\n />\n
\n
\n\n \n
\n

RTL

\n setIsRtl(!isRtl)}\n />\n
\n
\n\n \n
\n

Router Transition

\n setTransition(value)}\n />\n
\n
\n
\n\n
\n\n
\n

Menu Layout

\n \n
\n setLayout(\"vertical\")}\n className=\"mr-1\"\n />\n setLayout(\"horizontal\")}\n />\n
\n
\n {layout !== \"HorizontalLayout\" ? (\n \n
\n

Menu Collapsed

\n setMenuCollapsed(!menuCollapsed)}\n />\n
\n
\n ) : null}\n\n \n
\n

Menu Hidden

\n setIsHidden(!isHidden)}\n />\n
\n
\n
\n\n
\n\n
\n {layout !== \"HorizontalLayout\" ? (\n \n

Navbar Color

\n
    \n {renderNavbarColors()}\n
\n
\n ) : null}\n\n \n

\n {layout === \"HorizontalLayout\" ? \"Menu\" : \"Navbar\"} Type\n

\n
{renderNavbarTypeRadio()}
\n
\n
\n\n
\n\n
\n \n

Footer Type

\n
{renderFooterTypeRadio()}
\n
\n
\n
\n \n );\n};\n\nexport default Customizer;\n","import React, { useEffect, useState } from 'react';\nimport moment from 'moment-timezone';\nimport 'moment/locale/es';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport * as authSelectors from '../../../redux/reducers/auth';\n\nexport default function Clock() {\n const timezoneName = useSelector((state) => authSelectors.getAuthUserTimezoneName(state));\n\n const [date, setDate] = useState(moment());\n const [clockTimeout, setClockTimeout] = useState(null);\n const intl = useIntl();\n moment.locale(intl.locale);\n function startTime() {\n setDate(moment());\n setClockTimeout(setTimeout(() => startTime(), 500));\n }\n\n useEffect(() => {\n startTime();\n\n return () => {\n clearTimeout(clockTimeout);\n };\n }, []);\n\n return (\n <>\n \n {date.tz(timezoneName).format('h:mm:ss A')}\n \n \n {date.tz(timezoneName).format(intl.locale == 'es' ? 'dddd, DD [de] MMMM' : 'dddd, MMMM DD')}\n \n \n );\n}\n","// ** React Imports\r\nimport { useEffect, useState } from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\n// ** Custom Components\r\nimport Avatar from '@components/avatar';\r\n\r\n// ** Utils\r\nimport { isUserLoggedIn } from '@utils';\r\n\r\n// ** Store & Actions\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport * as AuthActions from '../../../../redux/actions/auth';\r\n// ** Third Party Components\r\nimport { UncontrolledDropdown, DropdownMenu, DropdownToggle, DropdownItem } from 'reactstrap';\r\nimport {\r\n User,\r\n Lock,\r\n CheckSquare,\r\n MessageSquare,\r\n Settings,\r\n CreditCard,\r\n HelpCircle,\r\n Power\r\n} from 'react-feather';\r\nimport Clock from '../../../../views/components/Clock';\r\nimport * as authSelectors from '../../../../redux/reducers/auth';\r\nimport { FormattedMessage } from 'react-intl';\r\n\r\n// ** Default Avatar Image\r\nimport defaultAvatar from '@src/assets/images/portrait/small/avatar-s-11.jpg';\r\n\r\nconst UserDropdown = () => {\r\n // ** Store Vars\r\n const dispatch = useDispatch();\r\n\r\n // ** State\r\n // const [userData, setUserData] = useState(null);\r\n\r\n // //** ComponentDidMount\r\n // useEffect(() => {\r\n // if (isUserLoggedIn() !== null) {\r\n // setUserData(JSON.parse(localStorage.getItem(\"userData\")));\r\n // }\r\n // }, []);\r\n const userData = authSelectors.getAuthUser(useSelector((state) => state));\r\n //** Vars\r\n\r\n return (\r\n \r\n e.preventDefault()}\r\n >\r\n
\r\n {/* \r\n {(userData && userData[\"username\"]) || \"John Doe\"}\r\n \r\n \r\n {(userData && userData.role) || \"Admin\"}\r\n */}\r\n\r\n {}\r\n
\r\n \r\n \r\n \r\n {isUserLoggedIn() && (\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 dispatch(AuthActions.logout())}\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 UserDropdown;\r\n","export default __webpack_public_path__ + \"static/media/avatar-s-11.1d46cc62.jpg\";","import { Row, Col } from 'reactstrap';\nimport Accordion from 'react-bootstrap/Accordion';\n\nconst AccordionComponent = (props) => {\n return (\n
\n \n \n Accordion Item #1\n \n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor\n incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud\n exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure\n dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt\n mollit anim id est laborum.\n \n \n \n Accordion Item #2\n \n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor\n incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud\n exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure\n dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt\n mollit anim id est laborum.\n \n \n \n
\n );\n};\n\nexport default AccordionComponent;\n","import { Controller, useForm } from 'react-hook-form';\nimport { FormattedMessage } from 'react-intl';\nimport SlidingPane from 'react-sliding-pane';\nimport { Button, Container, Jumbotron, Col, Form, Row } from 'reactstrap';\nimport NumericalInput from 'views/formComponents/NumericalInput';\nimport TextInput from 'views/formComponents/TextInput';\nimport PerfectScrollbar from 'react-perfect-scrollbar';\nimport AccordionComponent from '../Accordion/AccordionComponent';\n\nconst SlidingPaneHelp = (props) => {\n const { title, isOpenSlidingPaneHelp, closeSlidingPaneHelp } = props;\n\n return (\n closeSlidingPaneHelp()}\n >\n \n \n \n \n \n \n

Ruta LogĆ­stica

\n

Manual de Usuario

\n

\n El sistema de Ruta LogĆ­stica es un sistema de software WEB diseƱado para recibir\n y procesar tramas de datos provenientes de dispositivos GPS instalados en\n camiones o cualquier tipo de activo como contenedores o maquinaria pesada. Una\n vez procesada la trama de datos el sistema es capaz de generar informaciĆ³n\n relevante, precisa y oportuna acerca del estado y avance de un camiĆ³n de\n transporte asignado a trasladar un determinado producto desde un punto origen a\n uno o varios puntos de destino (entregas). El mismo manda notificaciones\n logĆ­sticas y alertas de seguridad automĆ”ticas en caso suceda un evento en el\n cual un conductor del camiĆ³n NO RESPETE las reglas configuradas para la ruta\n asignada.\n

\n
\n
\n \n
\n \n .col-3\n .col-auto - variable width content\n .col-3\n \n \n .col-6\n .col-6\n \n \n \n .col-6 .col-sm-4\n \n \n .col-6 .col-sm-4\n \n .col-sm-4\n \n \n \n .col-sm-6 .col-sm-order-2 .col-sm-offset-2\n \n \n \n \n .col-sm-12 .col-md-6 .col-md-offset-3\n \n \n \n .col-sm .col-sm-offset-1\n .col-sm .col-sm-offset-1\n \n
\n \n
\n \n );\n};\n\nSlidingPaneHelp.defaultProps = {\n inputs: [],\n useTable: false,\n heightTable: 200,\n hasButtonSubmit: true,\n hasButtonCancel: true,\n columnsTable: [],\n dataTable: []\n};\n\nexport default SlidingPaneHelp;\n","import React, { Fragment, useState } from 'react';\nimport SlidingPaneHelp from '../help/components/SlidingPaneHelp/SlidingPaneHelp.jsx';\nimport { HelpCircle } from 'react-feather';\nimport { Tooltip } from 'reactstrap';\nimport { useHistory } from 'react-router-dom';\nimport { FormattedMessage } from 'react-intl';\n\nconst HelpDropdown = () => {\n const history = useHistory();\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const toggle = () => setTooltipOpen(!tooltipOpen);\n\n return (\n <>\n
\n {\n history.push('/knowledgebase/home');\n }}\n />\n \n Base de Conocimientos\n \n
\n \n );\n};\n\nexport default HelpDropdown;\n","//** React Imports\r\nimport { useEffect } from 'react'\r\n\r\nexport const useOnClickOutside = (ref, handler) => {\r\n useEffect(\r\n () => {\r\n const listener = event => {\r\n // ** Do nothing if clicking ref's element or descendent elements\r\n if (!ref.current || ref.current.contains(event.target)) {\r\n return\r\n }\r\n\r\n // ** Call passed function on click outside\r\n handler(event)\r\n }\r\n\r\n document.addEventListener('mousedown', listener)\r\n document.addEventListener('touchstart', listener)\r\n\r\n return () => {\r\n document.removeEventListener('mousedown', listener)\r\n document.removeEventListener('touchstart', listener)\r\n }\r\n },\r\n // ** Add ref and handler to effect dependencies\r\n // ** It's worth noting that because passed in handler is a new ...\r\n // ** ... function on every render that will cause this effect ...\r\n // ** ... callback/cleanup to run every render. It's not a big deal ...\r\n // ** ... but to optimize you can wrap handler in useCallback before ...\r\n // ** ... passing it into this hook.\r\n [ref, handler]\r\n )\r\n}\r\n","import { useState, useRef } from 'react';\nimport Membership from 'views/formComponents/Membership';\nimport * as authActions from 'redux/actions/auth';\nimport {\n Button,\n Row,\n Media,\n CustomInput,\n DropdownMenu,\n DropdownItem,\n DropdownToggle,\n Dropdown\n} from 'reactstrap';\nimport { useIntl } from 'react-intl';\nimport { Controller, useForm } from 'react-hook-form';\nimport { useOnClickOutside } from '@hooks/useOnClickOutside';\nimport { useDispatch } from 'react-redux';\nimport Icon from 'utility/icomoon';\nimport * as alerts from 'redux/utils/alerts';\n\nconst OrganizationDropdown = () => {\n const container = useRef(null);\n const intl = useIntl();\n const dispatch = useDispatch();\n const [isOpen, setIsOpen] = useState();\n const { control, handleSubmit } = useForm();\n\n useOnClickOutside(container, () => setIsOpen(false));\n\n return (\n
\n {\n if (\n !isOpen ||\n (typeof event?.isDefaultPrevented === 'function' && !event.isDefaultPrevented())\n )\n setIsOpen(!isOpen);\n }}\n >\n \n \n \n \n
  • \n \n

    \n {intl.formatMessage({ id: 'common.defaultMembership' })}\n

    \n
    \n
  • \n
    \n \n
    \n
  • \n {\n dispatch(authActions.setSessionMembership(values.membership));\n setIsOpen(false);\n alerts.showSuccessMessage({\n success: intl.formatMessage({\n id: 'organizations.changeMembershipSuccessMessage'\n })\n });\n })}\n >\n {intl.formatMessage({ id: 'common.save' })}\n \n
  • \n
    \n \n
    \n );\n};\n\nexport default OrganizationDropdown;\n","import CryptoJS from 'crypto-js';\nimport { useIntl } from 'react-intl';\nimport { Button } from 'reactstrap';\nimport SECRET_KEY from 'redux/sagas/settings/secretKey';\nimport WEBTRACK_CLASSIC_URL from 'redux/sagas/settings/webtrackClassicUrl';\n\nconst ClassicWebtrackLoginButton = () => {\n const intl = useIntl();\n return (\n {\n //Se encripta la informaciĆ³n para guardarla en el estado\n const ciphertext = localStorage.getItem('classicWebtrackInformation');\n if (ciphertext) {\n const bytes = CryptoJS.AES.decrypt(ciphertext, SECRET_KEY);\n const inputs = JSON.parse(bytes.toString(CryptoJS.enc.Utf8));\n var form = document.createElement('form');\n document.body.appendChild(form);\n form.method = 'post';\n form.action = `${WEBTRACK_CLASSIC_URL}/execute_login.asp`;\n Object.keys(inputs).map((name) => {\n var input = document.createElement('input');\n input.type = 'hidden';\n input.name = name;\n input.value = inputs[name];\n form.appendChild(input);\n });\n form.submit();\n }\n }}\n >\n {intl.formatMessage({ id: 'common.classic' })}\n \n );\n};\n\nexport default ClassicWebtrackLoginButton;\n","import { useIntl } from 'react-intl';\nimport { ButtonToolbar, Label } from 'reactstrap';\nimport DefaultButton from 'views/components/DefaultButton';\nimport * as authActions from 'redux/actions/auth';\nimport * as authSelectors from 'redux/reducers/auth';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Fragment } from 'react';\nimport * as routerUtility from '../../../../router/utility';\nimport businessPartnerPaths from 'views/screens/BusinessPartners/paths';\nimport { useHistory } from 'react-router';\n\nconst AdminProductButton = (props) => {\n const intl = useIntl();\n const dispatch = useDispatch();\n const { push } = useHistory();\n\n const { homeScreenId, userPermissions, accessLevelId } = useSelector((state) => ({\n homeScreenId: authSelectors.getAuthUserHomeScreenId(state),\n userPermissions: authSelectors.getAuthUserPermissions(state),\n accessLevelId: authSelectors.getAuthUserAccessLevelId(state)\n }));\n\n return (\n {\n if (props.productId !== 4) {\n dispatch(authActions.startChangingProduct(4));\n push(businessPartnerPaths.editPartner);\n }\n props.close();\n }}\n style={{ padding: '4px' }}\n >\n \n \n \n \n \n \n \n );\n};\n\nexport default AdminProductButton;\n","import { useIntl } from 'react-intl';\nimport { ButtonToolbar, Label } from 'reactstrap';\nimport DefaultButton from 'views/components/DefaultButton';\nimport * as authActions from 'redux/actions/auth';\nimport * as authSelectors from 'redux/reducers/auth';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Fragment } from 'react';\nimport * as routerUtility from '../../../../router/utility';\nimport { useHistory } from 'react-router';\nimport { getIsWebtrackUser } from 'utility/Utils';\n\nconst BasicProductButton = (props) => {\n const intl = useIntl();\n const dispatch = useDispatch();\n const { push } = useHistory();\n\n const { homeScreenId, userPermissions, accessLevelId, user } = useSelector((state) => ({\n homeScreenId: authSelectors.getAuthUserHomeScreenId(state),\n userPermissions: authSelectors.getAuthUserPermissions(state),\n accessLevelId: authSelectors.getAuthUserAccessLevelId(state),\n user: authSelectors.getAuthUserForMembership(state)\n }));\n\n const isWebtrackUser = getIsWebtrackUser(user);\n\n return (\n {\n if (props.productId !== 1) {\n dispatch(authActions.startChangingProduct(1));\n push(\n routerUtility.homeScreenCascadeByPermissions(\n homeScreenId,\n userPermissions,\n accessLevelId,\n isWebtrackUser\n )\n );\n }\n props.close();\n }}\n style={{ padding: '4px' }}\n >\n \n \n \n \n \n \n \n );\n};\n\nexport default BasicProductButton;\n","import { useIntl } from 'react-intl';\nimport { ButtonToolbar, Label } from 'reactstrap';\nimport DefaultButton from 'views/components/DefaultButton';\nimport * as authActions from 'redux/actions/auth';\nimport * as authSelectors from 'redux/reducers/auth';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Fragment } from 'react';\nimport * as routerUtility from '../../../../router/utility';\nimport { useHistory } from 'react-router';\nimport organizationContractsPaths from 'views/screens/Contracts/paths';\n\nconst CrmProductButton = (props) => {\n const intl = useIntl();\n const dispatch = useDispatch();\n const { push } = useHistory();\n\n const { homeScreenId, userPermissions } = useSelector((state) => ({\n homeScreenId: authSelectors.getAuthUserHomeScreenId(state),\n userPermissions: authSelectors.getAuthUserPermissions(state)\n }));\n\n return (\n {\n if (props.productId !== 2) {\n dispatch(authActions.startChangingProduct(2));\n push(organizationContractsPaths.listContract);\n }\n props.close();\n }}\n style={{ padding: '4px ' }}\n >\n \n \n \n \n \n \n \n );\n};\n\nexport default CrmProductButton;\n","import { useIntl } from 'react-intl';\nimport { ButtonToolbar, Label } from 'reactstrap';\nimport DefaultButton from 'views/components/DefaultButton';\nimport * as authActions from 'redux/actions/auth';\nimport * as authSelectors from 'redux/reducers/auth';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Fragment } from 'react';\nimport * as routerUtility from '../../../../router/utility';\nimport { useHistory } from 'react-router';\n\nconst MonitoringProductButton = (props) => {\n const intl = useIntl();\n const dispatch = useDispatch();\n const { push } = useHistory();\n\n const { homeScreenId, userPermissions } = useSelector((state) => ({\n homeScreenId: authSelectors.getAuthUserHomeScreenId(state),\n userPermissions: authSelectors.getAuthUserPermissions(state)\n }));\n\n return (\n {\n if (props.productId !== 3) {\n dispatch(authActions.startChangingProduct(3));\n push('/console');\n }\n props.close();\n }}\n style={{ padding: '4px' }}\n >\n \n \n \n \n \n \n \n );\n};\n\nexport default MonitoringProductButton;\n","import { useOnClickOutside } from '@hooks/useOnClickOutside';\nimport { useRef, useState } from 'react';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { Dropdown, DropdownItem, DropdownMenu, DropdownToggle } from 'reactstrap';\nimport * as authSelectors from 'redux/reducers/auth';\nimport { getIsWebtrackUser, getUseCRM, getUseConsole } from 'utility/Utils';\nimport Icon from 'utility/icomoon';\nimport consolePermissions from 'views/screens/Console/permissions';\nimport AdminProductButton from './AdminProductButton';\nimport BasicProductButton from './BasicProductButton';\nimport CrmProductButton from './CrmProductButton';\nimport MonitoringProductButton from './MonitoringProductButton';\n\nconst ProductDropdown = () => {\n const container = useRef(null);\n const intl = useIntl();\n const [isOpen, setIsOpen] = useState();\n\n const { productId, user, userPermissions } = useSelector((state) => ({\n productId: authSelectors.getNavigationProduct(state),\n user: authSelectors.getAuthUserForMembership(state),\n userPermissions: authSelectors.getAuthUserPermissions(state)\n }));\n const isWebtrackUser = getIsWebtrackUser(user);\n\n const open = () => {\n setIsOpen(true);\n };\n const close = () => {\n setIsOpen(false);\n };\n const toggle = () => {\n setIsOpen(!isOpen);\n };\n\n const useCRM = getUseCRM();\n const useConsole = getUseConsole() && userPermissions?.includes(consolePermissions.console);\n\n const showDropdown = useCRM || useConsole || isWebtrackUser;\n\n useOnClickOutside(container, () => close());\n\n return (\n showDropdown && (\n
    \n {\n if (\n !isOpen ||\n (typeof event?.isDefaultPrevented === 'function' && !event.isDefaultPrevented())\n )\n toggle();\n }}\n >\n \n \n \n \n
  • \n \n

    \n {intl.formatMessage({ id: 'common.product' })}\n

    \n
    \n
  • \n
    \n \n {useCRM && }\n {useConsole && }\n {isWebtrackUser && }\n
    \n \n \n
    \n )\n );\n};\n\nexport default ProductDropdown;\n","import SlidingPane from 'react-sliding-pane';\nimport { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport * as userNotificationActions from '../../../../views/screens/Notifications/actions';\nimport { useIntl, FormattedMessage } from 'react-intl';\nimport moment from 'moment';\nimport { Spinner, Row, Button, Tooltip } from 'reactstrap';\nimport Avatar from '../../../../@core/components/avatar';\nimport { getMessageTypeAvatarProps } from '../../../../views/screens/Notifications/views/listSystemNotifications/utils';\n\ninterface Props {\n notifications: any[];\n isFetching: boolean;\n isOpenSlidingPane: any;\n closeSlidingPane: any;\n width?: string;\n}\n\nconst SlidingPaneUserNotifications = (props: Props) => {\n const { notifications, isFetching, isOpenSlidingPane, closeSlidingPane, width } = props;\n const intl = useIntl();\n const dispatch = useDispatch();\n\n const [selectedNotifications, setSelectedNotifications] = useState([]);\n const [tooltipState, setTooltipState] = useState({});\n\n const unReadNotifications = notifications\n .filter((notif) => notif.status === 1)\n .filter((notif) => !(notif.showToast === 1 && notif.toastTime === 0));\n const readNotifications = notifications\n .filter((notif) => notif.status !== 1)\n .filter((notif) => !(notif.showToast === 1 && notif.toastTime === 0));\n\n const toggleTooltip = (id) => {\n setTooltipState((prevState) => ({\n ...prevState,\n [id]: !prevState[id]\n }));\n };\n\n const handleCardClick = (notificationId: number) => {\n setSelectedNotifications((prev) =>\n prev.includes(notificationId)\n ? prev.filter((id) => id !== notificationId)\n : [...prev, notificationId]\n );\n };\n\n const dynamicFormattedFooterDate = ({ inputDate }) => {\n const [formattedDate, setFormattedDate] = useState('');\n\n useEffect(() => {\n const updateFormattedDate = () => {\n const date = moment(inputDate);\n\n if (moment().diff(date, 'minutes') < 60) {\n setFormattedDate(date.fromNow(true));\n } else {\n const dateFormatted = date.startOf('hour').fromNow();\n setFormattedDate(dateFormatted.charAt(0).toUpperCase() + dateFormatted.slice(1));\n }\n };\n updateFormattedDate();\n const interval = setInterval(updateFormattedDate, 60000);\n return () => clearInterval(interval);\n }, [inputDate]);\n\n return {formattedDate};\n };\n\n const formatDateBasedOnProximity = (dateString) => {\n const now = moment();\n const date = moment(dateString);\n\n if (date.isSame(now, 'day')) {\n return date.format('h:mm A');\n } else if (date.isSame(now, 'week')) {\n const formattedDate = date.format('dddd, h:mma');\n return formattedDate.charAt(0).toUpperCase() + formattedDate.slice(1);\n } else {\n return date.format('lll');\n }\n };\n\n return (\n \n {intl.formatMessage({ id: 'notifications.notifications' })}\n {unReadNotifications.length > 0 && (\n {unReadNotifications.length}\n )}\n \n }\n onRequestClose={() => closeSlidingPane(false)}\n >\n <>\n {isFetching && (\n
    \n \n
    \n )}\n {unReadNotifications.length === 0 && readNotifications.length === 0 && (\n
    \n
    \n

    \n \n

    \n
    \n
    \n )}\n {unReadNotifications.length > 0 && !isFetching && (\n
    \n {unReadNotifications.map((notification, i) => (\n
    \n handleCardClick(notification.notificationId)}\n >\n
    \n \n
    \n \n {notification.messageTitle}\n \n \n {formatDateBasedOnProximity(notification.startDate)}\n \n
    \n
    \n \n dispatch(\n userNotificationActions.startReadingUserNotification([\n notification?.notificationId\n ])\n )\n }\n >
    \n toggleTooltip(`unread-badge-${notification.notificationId}`)}\n trigger=\"hover\"\n >\n {intl.formatMessage({ id: 'notifications.markRead' })}\n \n
    \n
    \n
    \n
    \n \n {dynamicFormattedFooterDate({ inputDate: notification.startDate })}\n \n
    \n \n \n ))}\n \n )}\n {unReadNotifications.length > 0 && readNotifications.length > 0 && (\n \n
    \n \n )}\n {readNotifications.length > 0 && !isFetching && (\n
    \n {readNotifications.map((notification, i) => (\n
    \n
    \n
    \n \n
    \n \n {notification.messageTitle}\n \n \n {formatDateBasedOnProximity(notification.startDate)}\n \n
    \n
    \n
    \n
    \n \n {dynamicFormattedFooterDate({ inputDate: notification.startDate })}\n \n
    \n
    \n
    \n ))}\n \n )}\n
    \n
    \n
    \n
    \n {unReadNotifications.length > 0 && (\n \n {\n if (selectedNotifications.length > 0) {\n dispatch(\n userNotificationActions.startReadingUserNotification(selectedNotifications)\n );\n } else {\n dispatch(\n userNotificationActions.startReadingUserNotification(\n unReadNotifications.map((notification) => notification.notificationId)\n )\n );\n }\n }}\n >\n {selectedNotifications.length === 0 ? (\n \n ) : (\n \n )}\n \n \n )}\n \n \n );\n};\n\nexport default SlidingPaneUserNotifications;\n","// ** Dropdowns Imports\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport IntlDropdown from './IntlDropdown';\r\nimport { useState, useEffect } from 'react';\r\n// import CartDropdown from './CartDropdown'\r\nimport * as authSelectors from 'redux/reducers/auth';\r\nimport * as userNotificationSelectors from '../../../../views/screens/Notifications/reducers';\r\nimport {\r\n userNotificationShown,\r\n startFetchingUserNotifications\r\n} from 'views/screens/Notifications/actions';\r\nimport UserDropdown from './UserDropdown';\r\n\r\nimport HelpDropdown from './HelpDropdown';\r\nimport OrganizationDropdown from './OrganizationDropdown';\r\n\r\n// ** Third Party Components\r\nimport { Moon, Sun } from 'react-feather';\r\nimport ClassicWebtrackLoginButton from './ClassicWebtrackLoginButton';\r\nimport ProductDropdown from './ProductDropdown';\r\nimport NotificationDropdown from './NotificationDropdown';\r\nimport FetchEntities from '../../../../../src/views/screens/Entities/views/FetchEntities';\r\nimport Icon from 'utility/icomoon';\r\nimport { Badge } from 'reactstrap';\r\nimport SlidingPaneUserNotifications from './SlidingPaneUserNotifications';\r\nimport { CustomToastNotificationContent } from 'redux/utils/alerts';\r\nimport { toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { isUserLoggedIn } from '@utils';\r\n\r\nconst NavbarUser = (props) => {\r\n // ** Props\r\n const { skin, setSkin } = props;\r\n\r\n const user = useSelector((state) => authSelectors.getAuthUserForMembership(state));\r\n const userOperatorId = useSelector((state) => authSelectors.getAuthUserOperatorId(state));\r\n const userOrganizationId = useSelector((state) => authSelectors.getAuthUserOrganizationId(state));\r\n const { userNotifications, unReadUserNotifications, isFetchingUserNotifications } = useSelector(\r\n (state) => ({\r\n userNotifications: userNotificationSelectors.getUserNotificationsList(state),\r\n unReadUserNotifications: userNotificationSelectors\r\n .getUnreadUserNotifications(state)\r\n .filter((notification) => !(notification.showToast === 1 && notification.toastTime === 0)),\r\n isFetchingUserNotifications: userNotificationSelectors.isFetchingListUserNotifications(state)\r\n })\r\n );\r\n\r\n const dispatch = useDispatch();\r\n\r\n const [isOpenSlidinPaneUserNotifications, setIsOpenSlidinPaneUserNotifications] = useState(false);\r\n\r\n // ** Function to toggle Theme (Light/Dark)\r\n const ThemeToggler = () => {\r\n if (skin === 'dark') {\r\n return setSkin('light')} />;\r\n } else {\r\n return setSkin('dark')} />;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (userOperatorId && userOrganizationId)\r\n dispatch(\r\n startFetchingUserNotifications({\r\n operatorId: userOperatorId,\r\n organizationId: userOrganizationId\r\n })\r\n );\r\n }, [userOperatorId, userOrganizationId]);\r\n\r\n useEffect(() => {\r\n const toastNotifications = unReadUserNotifications.filter(\r\n (notif) => notif.showToast === 1 && !notif.shownAtLogin && notif.toastTime !== 0\r\n );\r\n\r\n if (toastNotifications.length > 0 && !isFetchingUserNotifications) {\r\n let cumulativeTime = 0;\r\n const timeouts = [];\r\n\r\n toastNotifications.forEach((notif, index) => {\r\n cumulativeTime += notif.toastTime + 1500;\r\n const timeoutId = setTimeout(() => {\r\n toast(\r\n ,\r\n {\r\n className: 'react-custom-toast-notification',\r\n autoClose: notif.toastTime,\r\n closeOnClick: true,\r\n pauseOnHover: true\r\n }\r\n );\r\n // Marcar la notificacion como mostrada al usuario\r\n dispatch(userNotificationShown(notif.notificationId));\r\n //}\r\n }, cumulativeTime);\r\n\r\n timeouts.push(timeoutId);\r\n });\r\n\r\n return () => {\r\n timeouts.forEach(clearTimeout);\r\n };\r\n }\r\n }, [isFetchingUserNotifications]);\r\n\r\n return (\r\n <>\r\n {/*
    */}\r\n {/*
    */}\r\n {/* {userOperatorId && userOrganizationId && (\r\n \r\n )} */}\r\n
      \r\n {isUserLoggedIn() && }\r\n \r\n {/* \r\n \r\n \r\n \r\n */}\r\n {isUserLoggedIn() && }\r\n {![11, 13, 7, 4, 2, 20].includes(parseInt(user.accessLevelId)) && isUserLoggedIn() && (\r\n \r\n )}\r\n {/* */}\r\n {isUserLoggedIn() && }\r\n {isUserLoggedIn() && (\r\n
      \r\n setIsOpenSlidinPaneUserNotifications(true)}\r\n />\r\n {unReadUserNotifications.length > 0 && (\r\n \r\n {unReadUserNotifications.length}\r\n \r\n )}\r\n
      \r\n )}\r\n \r\n
    \r\n {isOpenSlidinPaneUserNotifications && (\r\n setIsOpenSlidinPaneUserNotifications(false)}\r\n />\r\n )}\r\n \r\n );\r\n};\r\nexport default NavbarUser;\r\n","// ** React Imports\nimport { Fragment, useEffect, useState, useRef } from 'react';\nimport { Row, Col, Spinner } from 'reactstrap';\nimport ReactDOM from 'react-dom';\nimport { useHistory } from 'react-router-dom';\n\n// ** Third Party Components\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport { AlertCircle } from 'react-feather';\nimport PerfectScrollbar from 'react-perfect-scrollbar';\n\n// ** Custom Hooks\nimport { useOnClickOutside } from '@hooks/useOnClickOutside';\n\n// ** Styles\nimport '@styles/base/bootstrap-extended/_include.scss';\nimport './autocomplete.scss';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { normalizeInputText } from 'utility/Utils';\n\nconst Autocomplete = (props) => {\n // ** Refs\n const innerContainer = useRef(null);\n const container = useRef(null);\n const inputElRef = useRef(null);\n const suggestionsListRef = useRef(null);\n\n // ** States\n const [query, setQuery] = useState('');\n const [focused, setFocused] = useState(false);\n const [activeSuggestion, setActiveSuggestion] = useState(0);\n const [showSuggestions, setShowSuggestions] = useState(false);\n const [userInput, setUserInput] = useState(props.value ? props.value : '');\n const intl = useIntl();\n\n // ** Vars\n const history = useHistory();\n let filteredData = [];\n\n // ** Suggestion Item Click Event\n const onSuggestionItemClick = (url, e) => {\n setActiveSuggestion(0);\n setShowSuggestions(false);\n setUserInput(filteredData[activeSuggestion][props.filterKey]);\n if (url !== undefined && url !== null) {\n history.push(url);\n }\n\n if (props.onSuggestionClick) {\n props.onSuggestionClick(url, e);\n }\n };\n\n // ** Suggestion Hover Event\n const onSuggestionItemHover = (index) => {\n setActiveSuggestion(index);\n };\n\n // ** Input On Change Event\n const onChange = (e) => {\n const userInput = e.target.value;\n setActiveSuggestion(0);\n setShowSuggestions(true);\n setUserInput(userInput);\n if (e.target.value < 1) {\n setShowSuggestions(false);\n }\n };\n\n // ** Input Click Event\n const onInputClick = (e) => {\n e.stopPropagation();\n };\n\n // ** Input's Keydown Event\n const onKeyDown = (e) => {\n const filterKey = props.filterKey;\n const suggestionList = ReactDOM.findDOMNode(suggestionsListRef.current);\n\n // ** User pressed the up arrow\n if (e.keyCode === 38 && activeSuggestion !== 0) {\n setActiveSuggestion(activeSuggestion - 1);\n\n if (\n e.target.value.length > -1 &&\n suggestionList !== null &&\n activeSuggestion <= filteredData.length / 2\n ) {\n suggestionList.scrollTop = 0;\n }\n } else if (e.keyCode === 40 && activeSuggestion < filteredData.length - 1) {\n // ** User pressed the down arrow\n setActiveSuggestion(activeSuggestion + 1);\n\n if (\n e.target.value.length > -1 &&\n suggestionList !== null &&\n activeSuggestion >= filteredData.length / 2\n ) {\n suggestionList.scrollTop = suggestionList.scrollHeight;\n }\n } else if (e.keyCode === 27) {\n // ** User Pressed ESC\n setShowSuggestions(false);\n setUserInput('');\n } else if (e.keyCode === 13 && showSuggestions) {\n // ** User Pressed ENTER\n if (filteredData[activeSuggestion] != undefined) {\n // ** User Pressed ENTER\n onSuggestionItemClick(filteredData[activeSuggestion].link, e);\n setUserInput(filteredData[activeSuggestion][filterKey]);\n setShowSuggestions(false);\n }\n } else {\n return;\n }\n\n // ** Custom Keydown Event\n if (props.onKeyDown !== undefined && props.onKeyDown !== null) {\n props.onKeyDown(e, userInput);\n }\n };\n\n // ** Function To Render Grouped Suggestions\n const renderGroupedSuggestion = (arr) => {\n const { filterKey, customRender } = props;\n\n const renderSuggestion = (item, i) => {\n if (!customRender) {\n const suggestionURL = item.link !== undefined && item.link !== null ? item.link : null;\n return (\n onSuggestionItemClick(suggestionURL, e)}\n onMouseEnter={() => {\n onSuggestionItemHover(filteredData.indexOf(item));\n }}\n >\n {item[filterKey]}\n \n );\n } else if (customRender) {\n return customRender(\n item,\n i,\n filteredData,\n activeSuggestion,\n onSuggestionItemClick,\n onSuggestionItemHover,\n userInput\n );\n } else {\n return null;\n }\n };\n\n return arr.map((item, i) => {\n return renderSuggestion(item, i);\n });\n };\n\n // ** Function To Render Ungrouped Suggestions\n const renderUngroupedSuggestions = () => {\n const { filterKey, suggestions, customRender, suggestionLimit } = props;\n\n filteredData = [];\n const sortSingleData = suggestions\n .filter((i) => {\n const startCondition = i[filterKey].toLowerCase().startsWith(userInput.toLowerCase()),\n includeCondition = i[filterKey].toLowerCase().includes(userInput.toLowerCase());\n if (startCondition) {\n return startCondition;\n } else if (!startCondition && includeCondition) {\n return includeCondition;\n } else {\n return null;\n }\n })\n .slice(0, suggestionLimit);\n filteredData.push(...sortSingleData);\n if (sortSingleData.length) {\n return sortSingleData.map((suggestion, index) => {\n const suggestionURL =\n suggestion.link !== undefined && suggestion.link !== null ? suggestion.link : null;\n if (!customRender) {\n return (\n onSuggestionItemClick(suggestionURL, e)}\n onMouseEnter={() => onSuggestionItemHover(filteredData.indexOf(suggestion))}\n >\n {suggestion[filterKey]}\n \n );\n } else if (customRender) {\n return customRender(\n suggestion,\n index,\n filteredData,\n activeSuggestion,\n onSuggestionItemClick,\n onSuggestionItemHover,\n userInput\n );\n } else {\n return null;\n }\n });\n } else {\n return (\n
  • \n {' '}\n \n \n \n
  • \n );\n }\n };\n\n // ** Function To Render Suggestions\n const renderSuggestions = () => {\n const { filterKey, grouped, filterHeaderKey, suggestions } = props;\n\n // ** Checks if suggestions are grouped or not.\n if (grouped === undefined || grouped === null || !grouped) {\n return renderUngroupedSuggestions();\n } else {\n filteredData = [];\n return suggestions.map((suggestion, i) => {\n const sortData = suggestion.data.slice(0, suggestion.searchLimit);\n filteredData.push(...sortData);\n return (\n \n \n
    \n {}\n
    \n \n {sortData.length ? (\n renderGroupedSuggestion(sortData)\n ) : (\n \n {' '}\n \n \n \n \n )}\n
    \n );\n });\n }\n };\n\n //** ComponentDidMount\n useEffect(() => {\n if (props.defaultSuggestions && focused) {\n setShowSuggestions(true);\n }\n }, [focused, props.defaultSuggestions]);\n\n //** ComponentDidUpdate\n useEffect(() => {\n const textInput = ReactDOM.findDOMNode(inputElRef.current);\n\n // ** For searchbar focus\n if (textInput !== null && props.autoFocus) {\n inputElRef.current.focus();\n }\n\n // ** If user has passed default suggestions & focus then show default suggestions\n if (props.defaultSuggestions && focused) {\n setShowSuggestions(true);\n }\n\n // ** Function to run on user passed Clear Input\n if (props.clearInput) {\n props.clearInput(userInput, setUserInput);\n }\n\n // ** Function on Suggestions Shown\n if (props.onSuggestionsShown && showSuggestions) {\n props.onSuggestionsShown(userInput);\n }\n }, [setShowSuggestions, focused, userInput, showSuggestions, props]);\n\n // ** On External Click Close The Search & Call Passed Function\n useOnClickOutside(container, () => {\n setShowSuggestions(false);\n if (props.externalClick) {\n props.externalClick();\n }\n });\n\n // Delay del query\n useEffect(() => {\n const timeOutId = setTimeout(() => {\n if (query) {\n onChange(query);\n if (props.onChange) {\n props.onChange(query);\n }\n }\n }, 1000);\n return () => clearTimeout(timeOutId);\n }, [query]);\n\n let suggestionsListComponent;\n\n if (showSuggestions) {\n suggestionsListComponent = (\n \n \n {props.isFetching && (\n \n \n \n )}\n {renderSuggestions()}\n \n \n );\n }\n\n return (\n
    \n {\n setQuery(e);\n const normalizedText = normalizeInputText(e.currentTarget.value);\n setUserInput(normalizedText);\n }}\n onKeyDown={(e) => onKeyDown(e)}\n value={userInput}\n className={`autocomplete-search ${props.className ? props.className : ''}`}\n placeholder={props.placeholder}\n onClick={onInputClick}\n ref={inputElRef}\n onFocus={(e) => setFocused(true)}\n autoFocus={props.autoFocus}\n onBlur={(e) => {\n if (props.onBlur) props.onBlur(e);\n setFocused(false);\n }}\n />\n {suggestionsListComponent}\n
    \n );\n};\n\nexport default Autocomplete;\n\n// ** PropTypes\nAutocomplete.propTypes = {\n suggestions: PropTypes.array.isRequired,\n filterKey: PropTypes.string.isRequired,\n defaultValue: PropTypes.string,\n wrapperClass: PropTypes.string,\n filterHeaderKey: PropTypes.string,\n placeholder: PropTypes.string,\n suggestionLimit: PropTypes.number,\n grouped: PropTypes.bool,\n autoFocus: PropTypes.bool,\n onKeyDown: PropTypes.func,\n onChange: PropTypes.func,\n onSuggestionsShown: PropTypes.func,\n onSuggestionItemClick: PropTypes.func,\n clearInput: PropTypes.func,\n externalClick: PropTypes.func\n};\n","// ** React Imports\nimport { Fragment, useEffect, useState } from 'react';\nimport { Link } from 'react-router-dom';\n\nconst BOOKMARKS_TO_SHOW = 5;\n// ** Third Party Components\nimport * as IconFeather from 'react-feather';\nimport Icon from 'utility/icomoon';\nimport classnames from 'classnames';\nimport Autocomplete from '@components/autocomplete';\nimport {\n NavItem,\n NavLink,\n UncontrolledTooltip,\n UncontrolledDropdown,\n DropdownToggle,\n DropdownMenu,\n DropdownItem\n} from 'reactstrap';\n\n// ** Store & Actions\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useIntl, FormattedMessage } from 'react-intl';\nimport {\n startFetchingBookmarks,\n updateBookmarkedStarted,\n handleSearchQuery\n} from '@store/actions/navbar';\nimport * as authSelectors from '../../../../redux/reducers/auth';\n\nconst NavbarBookmarks = (props) => {\n // ** Props\n const { setMenuVisibility } = props;\n\n // ** State\n const [value, setValue] = useState('');\n const [openSearch, setOpenSearch] = useState(false);\n\n // ** Store Vars\n const dispatch = useDispatch();\n const navbarStore = useSelector((state) => state.navbar);\n const store = useSelector((state) => state);\n const intl = useIntl();\n // ** ComponentDidMount\n useEffect(() => {\n dispatch(startFetchingBookmarks());\n }, []);\n\n const itemHasUserPermissions = (item) => {\n return (\n (item.permissions?.length == 0 ||\n authSelectors.getAuthUserHasPermissionsAny(store, item.permissions)) &&\n (!item.accessLevels ||\n item.accessLevels.length == 0 ||\n authSelectors.getAuthUserHasPermissionByAccessLevels(store, item.accessLevels))\n );\n };\n // ** Loops through Bookmarks Array to return Bookmarks\n const renderBookmarks = () => {\n if (navbarStore.bookmarks.length) {\n return navbarStore.bookmarks\n .map((item) => {\n // const IconFeatherTag = IconFeather[item.icon];\n return (\n itemHasUserPermissions(item) && (\n \n \n \n \n \n \n \n \n // <>\n )\n );\n })\n .slice(0, BOOKMARKS_TO_SHOW);\n } else {\n return null;\n }\n };\n\n // ** If user has more than BOOKMARKS_TO_SHOW bookmarks then add the extra Bookmarks to a dropdown\n const renderExtraBookmarksDropdown = () => {\n if (navbarStore.bookmarks.length >= BOOKMARKS_TO_SHOW + 1) {\n return (\n \n \n \n \n \n \n \n {navbarStore.bookmarks\n .map((item) => {\n // const IconFeatherTag = IconFeather[item.icon];\n return (\n itemHasUserPermissions(item) && (\n \n {/* */}\n \n \n \n \n \n )\n );\n })\n .slice(5)}\n \n \n \n \n );\n } else {\n return null;\n }\n };\n\n // ** Removes query in navbarStore\n const handleClearQueryInStore = () => dispatch(handleSearchQuery(''));\n\n // ** Loops through Bookmarks Array to return Bookmarks\n const onKeyDown = (e) => {\n if (e.keyCode === 27 || e.keyCode === 13) {\n setTimeout(() => {\n setOpenSearch(false);\n handleClearQueryInStore();\n }, 1);\n }\n };\n\n // ** Function to toggle Bookmarks\n const handleBookmarkUpdate = (id) => dispatch(updateBookmarkedStarted(id));\n\n // ** Function to handle Bookmarks visibility\n const handleBookmarkVisibility = () => {\n setOpenSearch(!openSearch);\n setValue('');\n handleClearQueryInStore();\n };\n\n // ** Function to handle Input change\n const handleInputChange = (e) => {\n setValue(e.target.value);\n dispatch(handleSearchQuery(e.target.value));\n };\n\n // ** Function to handle external Input click\n const handleExternalClick = () => {\n if (openSearch === true) {\n setOpenSearch(false);\n handleClearQueryInStore();\n }\n };\n\n // ** Function to clear input value\n const handleClearInput = (setUserInput) => {\n if (!openSearch) {\n setUserInput('');\n handleClearQueryInStore();\n }\n };\n\n return (\n \n
      \n \n setMenuVisibility(true)}\n >\n \n \n \n
    \n
      \n {renderBookmarks()}\n {renderExtraBookmarksDropdown()}\n \n \n \n \n \n
      \n \n
      \n {openSearch && navbarStore.suggestions.length ? (\n itemHasUserPermissions(item))\n .map((bm) => ({\n ...bm,\n title: intl.formatMessage({ id: bm['title'] })\n }))\n : navbarStore.suggestions\n .filter((item) => itemHasUserPermissions(item))\n .map((sg) => ({\n ...sg,\n title: intl.formatMessage({ id: sg['title'] })\n }))\n }\n useTranslation={true}\n filterKey=\"title\"\n autoFocus={true}\n defaultSuggestions\n suggestionLimit={!value.length ? navbarStore.bookmarks.length : 6}\n placeholder={intl.formatMessage({ id: 'common.search' })}\n externalClick={handleExternalClick}\n clearInput={(userInput, setUserInput) => handleClearInput(setUserInput)}\n onKeyDown={onKeyDown}\n value={value}\n onChange={handleInputChange}\n customRender={(\n item,\n i,\n filteredData,\n activeSuggestion,\n onSuggestionItemClick,\n onSuggestionItemHover\n ) => {\n // const IconFeatherTag = IconFeather[item.icon ? item.icon : 'X'];\n return (\n onSuggestionItemHover(filteredData.indexOf(item))}\n className={classnames(\n 'suggestion-item d-flex align-items-center justify-content-between',\n {\n active: filteredData.indexOf(item) === activeSuggestion\n }\n )}\n >\n {\n setOpenSearch(false);\n handleClearQueryInStore();\n }}\n style={{\n width: 'calc(90%)'\n }}\n >\n
      \n {/* */}\n \n \n \n \n
      \n \n handleBookmarkUpdate(item.id)}\n />\n \n );\n }}\n />\n ) : null}\n \n
      \n
    \n
    \n );\n};\n\nexport default NavbarBookmarks;\n","import { store } from 'redux/storeConfig/store';\nimport { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from 'utility/http/http-events';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\n\nexport const baseUrl = '/search';\n\nexport const getSearchService = async (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n\n return httpWebtrack.post(`${baseUrl}/get`, request, { cancelToken: request.requestCancelToken });\n};\n","import axios from 'axios';\nimport camelcaseKeys from 'camelcase-keys';\nimport { useEffect, useState } from 'react';\nimport { getSearchService } from '../services/search';\n\nconst useGetSearch = (\n query: string | null | undefined,\n entities: any\n): {\n data: any[];\n isFetching: boolean;\n} => {\n const [data, setData] = useState([]);\n const [isFetching, setIsFetching] = useState(false);\n\n const search = (query, entities, requestCancelToken) => {\n getSearchService(\n { query, entities, requestCancelToken },\n {\n errorAction: () => {\n setData([]);\n setIsFetching(false);\n },\n successAction: (response) => {\n if (response?.success) {\n setData(\n [\n entities.locations\n ? {\n groupTitle: 'locations.locations',\n data:\n response.data.locationsList?.map((data) => {\n const camelcaseKeysData = camelcaseKeys(data);\n return {\n type: 'locations',\n link: '/home',\n title: camelcaseKeysData.locationName,\n ...camelcaseKeysData\n };\n }) ?? []\n }\n : undefined,\n entities.units\n ? {\n groupTitle: 'units.units',\n data:\n response.data.unitsList?.map((data) => {\n const camelcaseKeysData = camelcaseKeys(data);\n return {\n type: 'units',\n link: '/home',\n title: camelcaseKeysData.unitName,\n ...camelcaseKeysData\n };\n }) ?? []\n }\n : undefined,\n entities.geofences\n ? {\n groupTitle: 'geofences.geofences',\n data:\n response.data.geofencesList?.map((data) => {\n const camelcaseKeysData = camelcaseKeys(data);\n return {\n type: 'geofences',\n link: '/home',\n title: camelcaseKeysData.geofenceName,\n ...camelcaseKeysData\n };\n }) ?? []\n }\n : undefined,\n entities.routes\n ? {\n groupTitle: 'routes.routes',\n data:\n response.data.routesList?.map((data) => {\n const camelcaseKeysData = camelcaseKeys(data);\n return {\n type: 'routes',\n link: '/route/edit',\n title: camelcaseKeysData.routeName,\n ...camelcaseKeysData\n };\n }) ?? []\n }\n : undefined,\n entities.executionRoutes\n ? {\n groupTitle: 'routes.runningStatus',\n data:\n response.data.executionRoutesList?.map((data) => {\n const camelcaseKeysData = camelcaseKeys(data);\n return {\n type: 'executionRoutes',\n link: '/route/monitor',\n title: camelcaseKeysData.routeName,\n ...camelcaseKeysData\n };\n }) ?? []\n }\n : undefined,\n entities.drivers\n ? {\n groupTitle: 'drivers.drivers',\n data:\n response.data.driversList?.map((data) => {\n const camelcaseKeysData = camelcaseKeys(data);\n return {\n type: 'drivers',\n link: '/driver/list',\n title: camelcaseKeysData.driverName,\n ...camelcaseKeysData\n };\n }) ?? []\n }\n : undefined\n ].filter((section) => section)\n );\n } else setData([]);\n setIsFetching(false);\n }\n }\n ).catch((error) => {\n setData([]);\n setIsFetching(true);\n });\n };\n\n useEffect(() => {\n const requestCancelToken = axios.CancelToken.source();\n if (query && Object.values(entities).filter((value) => value).length > 0) {\n setIsFetching(true);\n search(query, entities, requestCancelToken.token);\n return () => {\n requestCancelToken.cancel();\n };\n } else {\n setData([]);\n setIsFetching(false);\n }\n }, [\n query,\n entities?.locations,\n entities?.units,\n entities?.routes,\n entities?.geofences,\n entities?.executionRoutes,\n entities?.drivers\n ]);\n return { data, isFetching };\n};\n\nexport default useGetSearch;\n","import { useState, useRef, useEffect } from 'react';\nimport { Filter } from 'react-feather';\nimport { FormattedMessage } from 'react-intl';\nimport { Dropdown, DropdownItem, DropdownMenu, DropdownToggle, Media } from 'reactstrap';\nimport Icon from 'utility/icomoon';\nimport DefaultSimpleButton from 'views/components/DefaultSimpleButton';\nimport * as authSelectors from 'redux/reducers/auth';\nimport { useSelector } from 'react-redux';\nimport { useOnClickOutside } from '@hooks/useOnClickOutside';\n\nconst FiltersDropdown = (props) => {\n const container = useRef(null);\n const { value, onChange, query } = props;\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n const [isOpen, setIsOpen] = useState();\n\n const deselectAll = () => {\n onChange(\n Object.keys(value).reduce(\n (obj, item) => ({\n ...obj,\n [item]: false\n }),\n {}\n )\n );\n };\n\n const selectAll = () => {\n onChange(\n Object.keys(value).reduce(\n (obj, item) => ({\n ...obj,\n [item]: true\n }),\n {}\n )\n );\n };\n\n const handleClickEntity = (e, entity) => {\n e.preventDefault();\n onChange({ ...value, [entity]: !value[entity] });\n };\n\n useOnClickOutside(container, () => setIsOpen(false));\n\n useEffect(() => {\n setIsOpen(false);\n }, [query]);\n\n const store = useSelector((state) => state);\n\n return (\n
    (container.current = ref)}>\n {\n if (\n !isOpen ||\n (typeof event?.isDefaultPrevented === 'function' && !event.isDefaultPrevented())\n )\n setIsOpen(!isOpen);\n }}\n >\n \n \n \n \n \n
    \n \n \n }\n icon=\"Square\"\n color={'gray'}\n handleClick={deselectAll}\n />\n }\n icon=\"CheckSquare\"\n color={'gray'}\n handleClick={selectAll}\n />\n \n
    \n
    \n \n {authSelectors.getAuthUserHasPermissionsAny(store, ['LO009']) && (\n handleClickEntity(e, 'locations')}\n >\n
    \n \n \n \n \n
    \n \n
    \n )}\n {authSelectors.getAuthUserHasPermissionsAny(store, ['UP021']) && (\n handleClickEntity(e, 'units')}\n >\n
    \n \n \n \n \n
    \n \n \n )}\n {authSelectors.getAuthUserHasPermissionsAny(store, ['GF009']) && (\n handleClickEntity(e, 'geofences')}\n >\n
    \n \n \n \n \n
    \n \n \n )}\n {authSelectors.getAuthUserHasPermissionsAny(store, ['RL025']) && (\n handleClickEntity(e, 'routes')}\n >\n
    \n \n \n \n \n
    \n \n \n )}\n {authSelectors.getAuthUserHasPermissionsAny(store, ['RL033']) && (\n handleClickEntity(e, 'executionRoutes')}\n >\n
    \n \n \n \n \n
    \n \n \n )}\n {authSelectors.getAuthUserHasPermissionsAny(store, ['SD001']) && (\n handleClickEntity(e, 'drivers')}\n >\n
    \n \n \n \n \n
    \n \n \n )}\n
    \n \n
    \n );\n};\n\nexport default FiltersDropdown;\n","import Autocomplete from '@components/autocomplete';\nimport { useOnClickOutside } from '@hooks/useOnClickOutside';\nimport classnames from 'classnames';\nimport { env } from 'env';\nimport { useShortcuts } from 'hooks/useShortcuts';\nimport { useEffect, useRef, useState } from 'react';\nimport { Search, X } from 'react-feather';\nimport { Controller, useForm } from 'react-hook-form';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { useHistory, useLocation } from 'react-router';\nimport { Col, Media, NavItem, NavLink, UncontrolledTooltip } from 'reactstrap';\nimport useGetSearch from 'redux/hooks/useGetSearch';\nimport * as authSelectors from 'redux/reducers/auth';\nimport Icon from 'utility/icomoon';\nimport { normalizeString } from 'utility/Utils';\nimport GoogleLocationsDropdownInput from 'views/formComponents/GoogleLocationDropDown';\nimport locationsPermissions from 'views/screens/Locations/permissions';\nimport { getUnitIcon } from 'views/screens/Units/utils';\nimport FiltersDropdown from './FiltersDropdown';\n\nconst logo = require(`@src/assets/images/logo/${env.REACT_APP_FLAVOR}logo.svg`).default;\n\nconst defaultEntities = {\n locations: false,\n units: true,\n geofences: false,\n routes: false,\n executionRoutes: false,\n drivers: false\n};\n\nconst defaultValues = {\n query: ''\n};\n\nconst highlightQuery = (text, query) => {\n if (!query) return text;\n // remove query double spaces\n query = query.replace(/\\s+/g, ' ');\n // replace query spaces with regex OR\n query = query.replace(/ /g, '|');\n const parts = text.split(new RegExp(`(${query})`, 'gi'));\n\n return parts.map((part, index) =>\n query.split('|').includes(part.toLowerCase()) || part.toLowerCase() === query.toLowerCase() ? (\n \n {part}\n \n ) : (\n part\n )\n );\n};\n\nconst findMatches = (text, query) => {\n if (!text) return null;\n if (!query) return null;\n // remove query double spaces\n query = query.replace(/\\s+/g, ' ');\n // replace query spaces with regex OR\n query = query.replace(/ /g, '|');\n const matches = text.match(new RegExp(`(${query})`, 'gi'));\n return matches;\n};\n\nconst NavbarSearch = () => {\n const container = useRef(null);\n const intl = useIntl();\n const history = useHistory();\n const locationRoute = useLocation();\n const { control, reset, watch } = useForm({\n defaultValues: defaultValues\n });\n const formValues = watch();\n const { store, user } = useSelector((state) => ({\n store: state,\n user: authSelectors.getAuthUser(state)\n }));\n // ** States\n const [navbarSearch, setNavbarSearch] = useState(false);\n const [searchType, setSearchType] = useState(1);\n const [entities, setEntities] = useState(\n JSON.parse(localStorage.getItem('filtersPageEntities')) ?? defaultEntities\n );\n\n useShortcuts(\n [\n {\n key: 'f',\n combination: {\n alt: false,\n ctrl: true,\n shift: true\n },\n callback: (event) => {\n console.log('event', event);\n setNavbarSearch(true);\n handleExternalClick();\n }\n },\n {\n key: 'b',\n combination: {\n alt: false,\n ctrl: true,\n shift: false\n },\n callback: (event) => {\n console.log('event', event);\n setNavbarSearch(true);\n handleExternalClick();\n }\n }\n ],\n []\n );\n\n // ** Update suggestions\n const { data: suggestions, isFetching } = useGetSearch(\n formValues.query,\n {\n locations: !authSelectors.getAuthUserHasPermissionsAny(store, [\n locationsPermissions.searchLocations\n ])\n ? false\n : entities.locations,\n units: !authSelectors.getAuthUserHasPermissionsAny(store, ['UP021']) ? false : entities.units,\n geofences: !authSelectors.getAuthUserHasPermissionsAny(store, ['GF009'])\n ? false\n : entities.geofences,\n routes: !authSelectors.getAuthUserHasPermissionsAny(store, ['RL025'])\n ? false\n : entities.routes,\n executionRoutes: !authSelectors.getAuthUserHasPermissionsAny(store, ['RL033'])\n ? false\n : entities.executionRoutes,\n drivers: !authSelectors.getAuthUserHasPermissionsAny(store, ['SD001'])\n ? false\n : entities.drivers\n } ?? {}\n );\n\n // useScript(\n // `https://maps.googleapis.com/maps/api/js?key=${user.googleMapsApiKey}&libraries=places`\n // );\n\n // ** Removes query in store\n const handleClearForm = () => {\n reset(defaultValues);\n localStorage.setItem('filtersPageEntities', JSON.stringify(entities));\n };\n\n // ** Function to handle external Input click\n const handleExternalClick = () => {\n setSearchType(1);\n if (navbarSearch === true) {\n setNavbarSearch(false);\n handleClearForm();\n }\n };\n\n // ** Function to clear input value\n const handleClearInput = (setUserInput) => {\n if (!navbarSearch) {\n setUserInput('');\n handleClearForm();\n }\n };\n\n // ** Function to close search on ESC & ENTER Click\n const onKeyDown = (e) => {\n if (e.keyCode === 27 || e.keyCode === 13) {\n setTimeout(() => {\n setNavbarSearch(false);\n handleClearForm();\n }, 1);\n }\n };\n\n // ** Function to handle search suggestion Click\n const handleSuggestionItemClick = (url, item) => {\n localStorage.setItem('filtersPageEntities', JSON.stringify(entities));\n\n if (url !== undefined && url !== null) {\n if (item.type === 'locations') {\n history.push(\n { pathname: url },\n {\n locationsRouteParam: [item],\n locationsOperatorId: item?.operatorId,\n locationsOrganizationId: item?.organizationId\n }\n );\n } else if (item.type === 'geofences') {\n history.push(\n { pathname: url },\n {\n geofencesRouteParam: [item],\n geofencesOperatorId: item?.operatorId,\n geofencesOrganizationId: item?.organizationId\n }\n );\n } else if (item.type === 'units') {\n history.push({\n pathname: '/home',\n state: {\n unitsRouteParam: [item],\n unitsOperatorId: item?.operatorId,\n unitsOrganizationId: item?.organizationId,\n navbarSearch: true\n }\n });\n } else if (item.type === 'routes') {\n history.push(\n { pathname: url },\n {\n routesRouteParam: [item],\n routesOperatorId: item?.operatorId,\n routesOrganizationId: item?.organizationId\n }\n );\n } else if (item.type === 'executionRoutes') {\n history.push(\n { pathname: url },\n {\n routeAssignmentId: item.routeAssignmentId\n }\n );\n } else history.push(url);\n }\n setNavbarSearch(false);\n handleClearForm();\n };\n\n // Function to handle search list Click\n const handleListItemClick = (func, link, e, item) => {\n func(item.link, item);\n\n setTimeout(() => {\n setNavbarSearch(false);\n }, 1);\n handleClearForm();\n };\n\n // ** On External Click Close The Search & Call Passed Function\n useOnClickOutside(container, () => {\n handleExternalClick();\n });\n\n useEffect(() => {\n if (formValues?.googleLocation) {\n history.push(\n { pathname: '/home' },\n {\n googleLocationsRouteParam: formValues?.googleLocation\n }\n );\n handleExternalClick();\n }\n }, [formValues?.googleLocation]);\n\n useEffect(() => {\n if (navbarSearch && locationRoute.pathname === '/home') {\n history.push(\n { pathname: '/home' },\n {\n navbarSearchActive: true\n }\n );\n }\n }, [navbarSearch]);\n\n return (\n setNavbarSearch(true)}>\n \n \n \n \n
    (container.current = ref)}>\n
    \n \n \n {searchType === 1 && (\n <>\n {authSelectors.getAuthUserHasPermissionsAny(store, [\n locationsPermissions.searchExternalLocations\n ]) && (\n <>\n \n {intl.formatMessage({ id: 'common.systemEntities' })}\n \n setSearchType(2)}\n />\n \n )}\n \n \n )}\n \n
    \n {navbarSearch ? (\n searchType === 1 ? (\n (\n handleClearInput(setUserInput)}\n onKeyDown={onKeyDown}\n value={field.value ?? ''}\n onChange={(event) => {\n const text = event?.target?.value;\n\n if (!text) {\n field.onChange('');\n return;\n }\n\n const normalizedText = normalizeString(text);\n\n field.onChange(normalizedText);\n }}\n customRender={(\n item,\n i,\n filteredData,\n activeSuggestion,\n onSuggestionItemClick,\n onSuggestionItemHover\n ) => {\n return (\n \n handleListItemClick(handleSuggestionItemClick, item.link, e, item)\n }\n onMouseEnter={() => onSuggestionItemHover(filteredData.indexOf(item))}\n >\n
    \n {item.type === 'locations' ? (\n \n ) : item.type === 'units' ? (\n \n ) : item.type === 'geofences' ? (\n \n ) : item.type === 'routes' ? (\n \n ) : item.type === 'executionRoutes' ? (\n \n ) : item.type === 'drivers' ? (\n \n ) : null}\n
    \n

    \n {highlightQuery(item.title, formValues.query)}\n

    \n {item.type === 'units' ? (\n <>\n \n \n {': '}\n {highlightQuery(item.unitId + '', formValues.query)}\n {' - '}\n \n {`: ${item.locationName ?? null}`}\n {findMatches(item.imei, formValues.query) ? (\n <>\n
    \n \n {': '}\n {highlightQuery(item.imei, formValues.query)}\n \n ) : null}\n {findMatches(item.deviceIdentifier, formValues.query) ? (\n <>\n
    \n \n {': '}\n {highlightQuery(item.deviceIdentifier, formValues.query)}\n \n ) : null}\n {findMatches(item.privateCode, formValues.query) ? (\n <>\n
    \n \n {': '}\n {highlightQuery(item.privateCode, formValues.query)}\n \n ) : null}\n {findMatches(item.privateCode2, formValues.query) ? (\n <>\n
    \n \n {': '}\n {highlightQuery(item.privateCode2, formValues.query)}\n \n ) : null}\n {findMatches(item.driverName, formValues.query) ? (\n <>\n
    \n \n {': '}\n {highlightQuery(item.driverName, formValues.query)}\n \n ) : null}\n {findMatches(item.licensePlate, formValues.query) ? (\n <>\n
    \n \n {': '}\n {highlightQuery(item.licensePlate, formValues.query)}\n \n ) : null}\n
    \n \n ) : item.type === 'routes' ? (\n \n \n {': '}\n {highlightQuery(item.routeId + '', formValues.query)}\n {' - '}\n \n {`: ${item.abbreviation ?? null}`}\n \n ) : item.type === 'executionRoutes' ? (\n \n \n {': '}\n {highlightQuery(item.routeAssignmentId + '', formValues.query)}\n {' - '}\n\n \n {`: ${item.unitName ?? null}`}\n \n ) : item.type === 'locations' ? (\n \n \n {': '}\n {highlightQuery(item.locationId + '', formValues.query)}\n {findMatches(item.privateCode, formValues.query) ? (\n <>\n
    \n \n {': '}\n {highlightQuery(item.privateCode, formValues.query)}\n \n ) : null}\n
    \n ) : item.type === 'geofences' ? (\n \n \n {': '}\n {highlightQuery(item.geofenceId + '', formValues.query)}\n {findMatches(item.privateCode, formValues.query) ? (\n <>\n
    \n \n {': '}\n {highlightQuery(item.privateCode, formValues.query)}\n \n ) : null}\n
    \n ) : item.type === 'drivers' ? (\n \n \n {': '}\n {highlightQuery(item.driverId + '', formValues.query)}\n \n ) : null}\n
    \n
    \n {item.size || item.date ? (\n
    \n \n {item.size ? item.size : item.date ? item.date : null}\n \n
    \n ) : null}\n \n );\n }}\n />\n )}\n />\n ) : (\n
    \n (\n setSearchType(1)}\n />\n )}\n />\n
    \n )\n ) : null}\n
    \n
    \n {\n e.stopPropagation();\n setNavbarSearch(false);\n handleClearForm();\n }}\n />\n
    \n \n
    \n );\n};\n\nexport default NavbarSearch;\n","// ** React Imports\nimport { Fragment } from 'react';\n\n// ** Custom Components\nimport NavbarUser from './NavbarUser';\nimport NavbarBookmarks from './NavbarBookmarks';\nimport NavbarSearch from './NavbarSearch';\n\nconst ThemeNavbar = (props) => {\n // ** Props\n const { skin, setSkin, setMenuVisibility } = props;\n\n return (\n \n
    \n \n \n
    \n \n
    \n );\n};\n\nexport default ThemeNavbar;\n","// ** Icons Import\r\n\r\nconst Footer = () => {\r\n return (\r\n

    \r\n \r\n Copyright Ā© {new Date().getFullYear()}{' '}\r\n \r\n Webtrack\r\n {' '}\r\n v.{process.env.REACT_APP_VERSION}\r\n \r\n

    \r\n );\r\n};\r\n\r\nexport default Footer;\r\n","import sidebarOptions from '../vertical';\r\nexport default [\r\n ...sidebarOptions\r\n .map((option) => (option.header == null ? option : null))\r\n .filter((option) => option != null)\r\n];\r\n","// ** React Imports\r\nimport { useContext } from 'react'\r\nimport { AbilityContext } from '@src/utility/context/Can'\r\n\r\n/**\r\n * Return which component to render based on it's data/context\r\n * @param {Object} item nav menu item\r\n */\r\nexport const resolveVerticalNavMenuItemComponent = item => {\r\n if (item.header) return 'VerticalNavMenuSectionHeader'\r\n if (item.children) return 'VerticalNavMenuGroup'\r\n return 'VerticalNavMenuLink'\r\n}\r\n\r\n/**\r\n * Return which component to render based on it's data/context\r\n * @param {Object} item nav menu item\r\n */\r\nexport const resolveHorizontalNavMenuItemComponent = item => {\r\n if (item.children) return 'HorizontalNavMenuGroup'\r\n return 'HorizontalNavMenuLink'\r\n}\r\n\r\n/**\r\n * Check if nav-link is active\r\n * @param {Object} link nav-link object\r\n */\r\n// export const isNavLinkActive = (link, currentURL, match) => {\r\n// // return currentURL === link || (URLParams && Object.keys(URLParams).length && currentURLFilter === item.navLink)\r\n// const getFirstObjProp = obj => obj[Object.keys(obj)[0]]\r\n// return (\r\n// currentURL === link ||\r\n// (match !== null && match !== undefined && match.url === `${link}/${getFirstObjProp(match.params)}`)\r\n// )\r\n// }\r\n\r\nexport const isNavLinkActive = (link, currentURL, routerProps) => {\r\n return (\r\n currentURL === link ||\r\n (routerProps && routerProps.meta && routerProps.meta.navLink && routerProps.meta.navLink === link)\r\n )\r\n // return currentURL === link\r\n}\r\n\r\n/**\r\n * Check if nav group is\r\n * @param {Array} children Group children\r\n */\r\n// export const isNavGroupActive = (children, currentURL, match) => {\r\n// return children.some(child => {\r\n// // If child have children => It's group => Go deeper(recursive)\r\n// if (child.children) {\r\n// return isNavGroupActive(child.children, currentURL, match)\r\n// }\r\n// // else it's link => Check for matched Route\r\n// return isNavLinkActive(child.navLink, currentURL, match)\r\n// })\r\n// }\r\nexport const isNavGroupActive = (children, currentURL, routerProps) => {\r\n return children.some(child => {\r\n // If child have children => It's group => Go deeper(recursive)\r\n if (child.children) {\r\n return isNavGroupActive(child.children, currentURL, routerProps)\r\n }\r\n // else it's link => Check for matched Route\r\n return isNavLinkActive(child.navLink, currentURL, routerProps)\r\n })\r\n}\r\n\r\n/**\r\n * Search for parent object\r\n * @param {Array} navigation Group children\r\n * @param {string} currentURL current URL\r\n */\r\n// export const search = (navigation, currentURL, match) => {\r\n// let result\r\n// navigation.some(child => {\r\n// let children\r\n// // If child have children => It's group => Go deeper(recursive)\r\n// if (child.children && (children = search(child.children, currentURL, match))) {\r\n// return (result = {\r\n// id: child.id,\r\n// children\r\n// })\r\n// }\r\n\r\n// // else it's link => Check for matched Route\r\n// if (isNavLinkActive(child.navLink, currentURL, match)) {\r\n// return (result = {\r\n// id: child.id\r\n// })\r\n// }\r\n// })\r\n// return result\r\n// }\r\n\r\nexport const search = (navigation, currentURL, routerProps) => {\r\n let result\r\n navigation.some(child => {\r\n let children\r\n // If child have children => It's group => Go deeper(recursive)\r\n if (child.children && (children = search(child.children, currentURL, routerProps))) {\r\n return (result = {\r\n id: child.id,\r\n children\r\n })\r\n }\r\n\r\n // else it's link => Check for matched Route\r\n if (isNavLinkActive(child.navLink, currentURL, routerProps)) {\r\n return (result = {\r\n id: child.id\r\n })\r\n }\r\n })\r\n return result\r\n}\r\n\r\n/**\r\n * Loop through nested object\r\n * @param {object} obj nested object\r\n */\r\nexport const getAllParents = (obj, match) => {\r\n const res = []\r\n const recurse = (obj, current) => {\r\n for (const key in obj) {\r\n const value = obj[key]\r\n if (value !== undefined) {\r\n if (value && typeof value === 'object') {\r\n recurse(value, key)\r\n } else {\r\n if (key === match) {\r\n res.push(value)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n recurse(obj)\r\n return res\r\n}\r\n\r\nexport const canViewMenuGroup = item => {\r\n const ability = useContext(AbilityContext)\r\n // ! This same logic is used in canViewHorizontalNavMenuGroup and canViewHorizontalNavMenuHeaderGroup. So make sure to update logic in them as well\r\n const hasAnyVisibleChild = item.children && item.children.some(i => ability.can(i.action, i.resource))\r\n\r\n // ** If resource and action is defined in item => Return based on children visibility (Hide group if no child is visible)\r\n // ** Else check for ability using provided resource and action along with checking if has any visible child\r\n if (!(item.action && item.resource)) {\r\n return hasAnyVisibleChild\r\n }\r\n return ability.can(item.action, item.resource) && hasAnyVisibleChild\r\n}\r\n\r\nexport const canViewMenuItem = item => {\r\n const ability = useContext(AbilityContext)\r\n return ability.can(item.action, item.resource)\r\n}\r\n","// ** React Imports\r\nimport { useEffect } from \"react\";\r\nimport { NavLink, useLocation } from \"react-router-dom\";\r\n\r\n// ** Horizontal menu items array\r\nimport navigation from \"@src/navigation/horizontal\";\r\n\r\n// ** Third Party Components\r\nimport classnames from \"classnames\";\r\nimport { FormattedMessage } from \"react-intl\";\r\n\r\n// ** Utils\r\nimport { isNavLinkActive, search, getAllParents } from \"@layouts/utils\";\r\n\r\nconst HorizontalNavMenuLink = ({\r\n item,\r\n setOpenDropdown,\r\n setGroupActive,\r\n activeItem,\r\n setActiveItem,\r\n routerProps,\r\n currentActiveItem,\r\n isChild,\r\n}) => {\r\n // ** Conditional Link Tag, if item has newTab or externalLink props use tag else use NavLink\r\n const LinkTag = item.externalLink ? \"a\" : NavLink;\r\n\r\n // ** URL Vars\r\n const location = useLocation();\r\n const currentURL = location.pathname;\r\n\r\n const navLinkActive = isNavLinkActive(item.navLink, currentURL, routerProps);\r\n\r\n // ** Get parents of current items\r\n const searchParents = (navigation, currentURL) => {\r\n const parents = search(navigation, currentURL, routerProps); // Search for parent object\r\n const allParents = getAllParents(parents, \"id\"); // Parents Object to Parents Array\r\n allParents.pop();\r\n return allParents;\r\n };\r\n\r\n // ** Remove all items from OpenDropdown array\r\n const resetOpenDropdowns = () => setOpenDropdown([]);\r\n\r\n // ** On mount update active group array\r\n useEffect(() => {\r\n if (currentActiveItem !== null) {\r\n setActiveItem(currentActiveItem);\r\n const arr = searchParents(navigation, currentURL);\r\n setGroupActive([...arr]);\r\n }\r\n }, [location]);\r\n\r\n return (\r\n \r\n {\r\n if (!match) {\r\n return false;\r\n }\r\n\r\n if (\r\n match.url &&\r\n match.url !== \"\" &&\r\n match.url === item.navLink\r\n ) {\r\n currentActiveItem = item.navLink;\r\n }\r\n },\r\n })}\r\n /*eslint-enable */\r\n >\r\n {item.icon}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default HorizontalNavMenuLink;\r\n","// ** React Imports\r\nimport { Link, useLocation } from 'react-router-dom';\r\n\r\n// ** Third Party Components\r\nimport classnames from 'classnames';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport { Dropdown, DropdownMenu, DropdownToggle } from 'reactstrap';\r\n\r\n// ** Utils\r\nimport { isNavGroupActive } from '@layouts/utils';\r\n\r\n// ** Horizontal Menu Items Component\r\nimport HorizontalNavMenuItems from './HorizontalNavMenuItems';\r\n\r\nconst HorizontalNavMenuGroup = (props) => {\r\n // ** Props\r\n const {\r\n item,\r\n submenu,\r\n groupActive,\r\n onMouseEnter,\r\n onMouseLeave,\r\n openDropdown,\r\n setGroupActive,\r\n activeItem,\r\n setActiveItem,\r\n routerProps,\r\n setOpenDropdown,\r\n currentActiveItem\r\n } = props;\r\n\r\n // ** URL Var\r\n const currentURL = useLocation().pathname;\r\n\r\n // ** Dropdown menu modifiers\r\n const menuModifiers = {\r\n setMaxHeight: {\r\n enabled: true,\r\n fn: (data) => {\r\n const pageHeight = window.innerHeight,\r\n ddTop = data.instance.reference.getBoundingClientRect().top,\r\n ddHeight = data.popper.height;\r\n let maxHeight, stylesObj;\r\n\r\n // ** Calculate and set height\r\n if (pageHeight - ddTop - ddHeight - 28 < 1) {\r\n maxHeight = pageHeight - ddTop - 25;\r\n stylesObj = {\r\n maxHeight,\r\n overflowY: 'auto'\r\n };\r\n }\r\n\r\n const ddRef = data.instance.popper.getBoundingClientRect();\r\n\r\n // ** If there is not space left to open sub menu open it to the right\r\n if (ddRef.left + ddRef.width - (window.innerWidth - 16) >= 0) {\r\n data.instance.popper.closest('.dropdown').classList.add('openLeft');\r\n }\r\n\r\n return {\r\n ...data,\r\n styles: {\r\n ...stylesObj\r\n }\r\n };\r\n }\r\n }\r\n };\r\n return (\r\n onMouseEnter(item.id)}\r\n onMouseEnter={() => onMouseEnter(item.id)}\r\n onMouseLeave={() => onMouseLeave(item.id)}\r\n >\r\n e.preventDefault()}\r\n >\r\n {item.icon}\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 HorizontalNavMenuGroup;\r\n","// ** Menu Components Imports\r\nimport HorizontalNavMenuLink from './HorizontalNavMenuLink';\r\nimport HorizontalNavMenuGroup from './HorizontalNavMenuGroup';\r\nimport { resolveHorizontalNavMenuItemComponent as resolveNavItemComponent } from '@layouts/utils';\r\nimport * as authSelectors from '../../../../../../src/redux/reducers/auth';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst HorizontalNavMenuItems = (props) => {\r\n // ** Components Object\r\n const Components = {\r\n HorizontalNavMenuGroup,\r\n HorizontalNavMenuLink\r\n };\r\n\r\n const checkItemHasUserPermissions = (item) => {\r\n if (item.children) {\r\n return item.children.some((child) => checkItemHasUserPermissions(child));\r\n } else {\r\n return (\r\n (item.permissions?.length == 0 ||\r\n authSelectors.getAuthUserHasPermissionsAny(store, item.permissions)) &&\r\n (!item.accessLevels ||\r\n item.accessLevels.length == 0 ||\r\n authSelectors.getAuthUserHasPermissionByAccessLevels(store, item.accessLevels))\r\n );\r\n }\r\n };\r\n const store = useSelector((state) => state);\r\n // ** Render Nav Items\r\n const RenderNavItems = props.items.map((item, index) => {\r\n const TagName = Components[resolveNavItemComponent(item)];\r\n\r\n return (\r\n checkItemHasUserPermissions(item) && (\r\n \r\n )\r\n );\r\n });\r\n\r\n return RenderNavItems;\r\n};\r\n\r\nexport default HorizontalNavMenuItems;\r\n","// ** React Imports\r\nimport { useState } from 'react'\r\n\r\n// ** Horizontal Menu Array\r\nimport navigation from '@src/navigation/horizontal'\r\n\r\n// ** Horizontal Menu Components\r\nimport HorizontalNavMenuItems from './HorizontalNavMenuItems'\r\n\r\nconst HorizontalMenu = ({ currentActiveItem, routerProps }) => {\r\n // ** States\r\n const [activeItem, setActiveItem] = useState(null)\r\n const [groupActive, setGroupActive] = useState([])\r\n const [openDropdown, setOpenDropdown] = useState([])\r\n\r\n // ** On mouse enter push the ID to openDropdown array\r\n const onMouseEnter = id => {\r\n const arr = openDropdown\r\n arr.push(id)\r\n setOpenDropdown([...arr])\r\n }\r\n\r\n // ** On mouse leave remove the ID to openDropdown array\r\n const onMouseLeave = id => {\r\n const arr = openDropdown\r\n arr.splice(arr.indexOf(id), 1)\r\n setOpenDropdown([...arr])\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default HorizontalMenu\r\n","//** React Imports\r\nimport { useEffect } from 'react';\r\n\r\n// ** Store & Actions\r\nimport { handleRTL } from '@store/actions/layout';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nexport const useRTL = () => {\r\n // ** Store Vars\r\n const dispatch = useDispatch();\r\n const isRtl = useSelector((state) => state.layout.isRTL);\r\n\r\n // ** Return a wrapped version of useState's setter function\r\n const setValue = (value) => {\r\n try {\r\n // ** Allow value to be a function so we have same API as useState\r\n const valueToStore = value instanceof Function ? value(isRtl) : value;\r\n dispatch(handleRTL(valueToStore));\r\n } catch (error) {\r\n // ** A more advanced implementation would handle the error case\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n // ** Get HTML Tag\r\n const element = document.getElementsByTagName('html')[0];\r\n\r\n // ** If isRTL then add attr dir='rtl' with HTML else attr dir='ltr'\r\n if (isRtl) {\r\n element.setAttribute('dir', 'rtl');\r\n } else {\r\n element.setAttribute('dir', 'ltr');\r\n }\r\n }, [isRtl]);\r\n\r\n return [isRtl, setValue];\r\n};\r\n","//** React Imports\r\nimport { useState } from 'react';\r\n\r\n// ** Configs\r\nimport themeConfig from '@configs/themeConfig';\r\n\r\nexport const useNavbarType = () => {\r\n // ** State\r\n const [navbarType, setNavbarType] = useState(() => {\r\n try {\r\n return themeConfig.layout.navbar.type;\r\n } catch (error) {\r\n // ** If error return initialValue\r\n return themeConfig.layout.navbar.type;\r\n }\r\n });\r\n\r\n // ** Return a wrapped version of useState's setter function\r\n const setValue = (value) => {\r\n try {\r\n // ** Allow value to be a function so we have same API as useState\r\n const valueToStore = value instanceof Function ? value(navbarType) : value;\r\n\r\n // ** Set state\r\n setNavbarType(valueToStore);\r\n } catch (error) {\r\n // ** A more advanced implementation would handle the error case\r\n }\r\n };\r\n\r\n return [navbarType, setValue];\r\n};\r\n","// ** React Imports\r\nimport { useState } from 'react';\r\n\r\n// ** Configs\r\nimport themeConfig from '@configs/themeConfig';\r\n\r\nexport const useFooterType = () => {\r\n // ** State\r\n const [footerType, setFooterType] = useState(() => {\r\n try {\r\n return themeConfig.layout.footer.type;\r\n } catch (error) {\r\n // ** If error also initialValue\r\n return themeConfig.layout.footer.type;\r\n }\r\n });\r\n\r\n // ** Return a wrapped version of useState's setter function\r\n const setValue = (value) => {\r\n try {\r\n // ** Allow value to be a function so we have same API as useState\r\n const valueToStore = value instanceof Function ? value(footerType) : value;\r\n\r\n // ** Set state\r\n setFooterType(valueToStore);\r\n } catch (error) {\r\n // ** A more advanced implementation would handle the error case\r\n }\r\n };\r\n\r\n return [footerType, setValue];\r\n};\r\n","//** React Imports\r\nimport { useState } from 'react';\r\n\r\n// ** Configs\r\nimport themeConfig from '@configs/themeConfig';\r\n\r\nexport const useNavbarColor = () => {\r\n // ** State\r\n const [navbarColor, setNavbarColor] = useState(() => {\r\n try {\r\n return themeConfig.layout.navbar.backgroundColor;\r\n } catch (error) {\r\n // ** If error return initialValue\r\n return themeConfig.layout.navbar.backgroundColor;\r\n }\r\n });\r\n\r\n // ** Return a wrapped version of useState's setter function\r\n const setValue = (value) => {\r\n try {\r\n // ** Allow value to be a function so we have same API as useState\r\n const valueToStore = value instanceof Function ? value(navbarColor) : value;\r\n\r\n // ** Set state\r\n setNavbarColor(valueToStore);\r\n } catch (error) {\r\n // ** A more advanced implementation would handle the error case\r\n }\r\n };\r\n\r\n return [navbarColor, setValue];\r\n};\r\n","// ** React Imports\r\nimport { useState, useEffect } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\n// ** Store & Actions\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { handleMenuHidden, handleContentWidth } from \"@store/actions/layout\";\r\n\r\n// ** Third Party Components\r\nimport classnames from \"classnames\";\r\nimport { ArrowUp } from \"react-feather\";\r\nimport ScrollToTop from \"react-scroll-up\";\r\nimport { Navbar, NavItem, Button } from \"reactstrap\";\r\n\r\n// ** Configs\r\nimport themeConfig from \"@configs/themeConfig\";\r\n\r\n// ** Custom Components\r\nimport Customizer from \"@components/customizer\";\r\nimport NavbarComponent from \"./components/navbar\";\r\nimport FooterComponent from \"./components/footer\";\r\nimport MenuComponent from \"./components/menu/horizontal-menu\";\r\n\r\n// ** Custom Hooks\r\nimport { useRTL } from \"@hooks/useRTL\";\r\nimport { useSkin } from \"@hooks/useSkin\";\r\nimport { useNavbarType } from \"@hooks/useNavbarType\";\r\nimport { useFooterType } from \"@hooks/useFooterType\";\r\nimport { useNavbarColor } from \"@hooks/useNavbarColor\";\r\n\r\n// ** Styles\r\nimport \"@styles/base/core/menu/menu-types/horizontal-menu.scss\";\r\n\r\nconst HorizontalLayout = (props) => {\r\n // ** Props\r\n const { children, navbar, footer, menu, currentActiveItem, routerProps } =\r\n props;\r\n\r\n // ** Hooks\r\n const [skin, setSkin] = useSkin();\r\n const [isRtl, setIsRtl] = useRTL();\r\n const [navbarType, setNavbarType] = useNavbarType();\r\n const [footerType, setFooterType] = useFooterType();\r\n const [navbarColor, setNavbarColor] = useNavbarColor();\r\n\r\n // ** States\r\n const [isMounted, setIsMounted] = useState(false);\r\n const [navbarScrolled, setNavbarScrolled] = useState(false);\r\n\r\n // ** Store Vars\r\n const dispatch = useDispatch();\r\n const layoutStore = useSelector((state) => state.layout);\r\n\r\n // ** Vars\r\n const contentWidth = layoutStore.contentWidth;\r\n const isHidden = layoutStore.menuHidden;\r\n\r\n // ** Handles Content Width\r\n const setContentWidth = (val) => dispatch(handleContentWidth(val));\r\n\r\n // ** Handles Content Width\r\n const setIsHidden = (val) => dispatch(handleMenuHidden(val));\r\n\r\n // ** UseEffect Cleanup\r\n const cleanup = () => {\r\n setIsMounted(false);\r\n setNavbarScrolled(false);\r\n };\r\n\r\n //** ComponentDidMount\r\n useEffect(() => {\r\n setIsMounted(true);\r\n window.addEventListener(\"scroll\", function () {\r\n if (window.pageYOffset > 65 && navbarScrolled === false) {\r\n setNavbarScrolled(true);\r\n }\r\n if (window.pageYOffset < 65) {\r\n setNavbarScrolled(false);\r\n }\r\n });\r\n return () => cleanup();\r\n }, []);\r\n\r\n // ** Vars\r\n const footerClasses = {\r\n static: \"footer-static\",\r\n sticky: \"footer-fixed\",\r\n hidden: \"footer-hidden\",\r\n };\r\n\r\n const navbarWrapperClasses = {\r\n floating: \"navbar-floating\",\r\n sticky: \"navbar-sticky\",\r\n static: \"navbar-static\",\r\n };\r\n\r\n const navbarClasses = {\r\n floating: \"floating-nav\",\r\n sticky: \"fixed-top\",\r\n };\r\n\r\n const bgColorCondition =\r\n navbarColor !== \"\" && navbarColor !== \"light\" && navbarColor !== \"white\";\r\n\r\n if (!isMounted) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n {!navbar && (\r\n
    \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n {/*

      {themeConfig.app.appName}

      */}\r\n \r\n
      \r\n
    \r\n
    \r\n )}\r\n\r\n
    \r\n {navbar ? navbar : }\r\n
    \r\n \r\n {!isHidden ? (\r\n
    \r\n \r\n {menu ? (\r\n menu\r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n ) : null}\r\n\r\n {children}\r\n {themeConfig.layout.customizer === true ? (\r\n \r\n ) : null}\r\n \r\n {footer ? (\r\n footer\r\n ) : (\r\n \r\n )}\r\n \r\n\r\n {themeConfig.layout.scrollTop === true ? (\r\n
    \r\n \r\n \r\n \r\n
    \r\n ) : null}\r\n \r\n );\r\n};\r\nexport default HorizontalLayout;\r\n","// !Do not remove the Layout import\r\nimport Layout from '@layouts/HorizontalLayout'\r\n\r\nconst HorizontalLayout = props => {props.children}\r\n\r\nexport default HorizontalLayout\r\n","// ** React Imports\r\nimport { useEffect } from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\nimport Icon from '../../../../../utility/icomoon';\r\n\r\n// ** Third Party Components\r\nimport { Disc, X, Circle } from 'react-feather';\r\n\r\n// ** Config\r\nimport themeConfig from '@configs/themeConfig';\r\n\r\nconst VerticalMenuHeader = (props) => {\r\n // ** Props\r\n const {\r\n menuCollapsed,\r\n setMenuCollapsed,\r\n setMenuVisibility,\r\n setGroupOpen,\r\n menuHover,\r\n menuPinner,\r\n setMenuPinner\r\n } = props;\r\n\r\n // ** Reset open group\r\n useEffect(() => {\r\n if (!menuHover && menuCollapsed) setGroupOpen([]);\r\n }, [menuHover, menuCollapsed]);\r\n\r\n // ** Menu toggler component\r\n const Toggler = () => {\r\n if (!menuCollapsed) {\r\n return (\r\n setMenuCollapsed(true)}\r\n />\r\n );\r\n } else {\r\n return (\r\n setMenuCollapsed(false)}\r\n />\r\n );\r\n }\r\n };\r\n\r\n // ** Menu pinner component\r\n const Pinner = () => {\r\n if (!menuPinner) {\r\n return (\r\n setMenuPinner(true)}\r\n />\r\n );\r\n } else {\r\n return (\r\n setMenuPinner(false)}\r\n />\r\n );\r\n }\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
      \r\n \r\n
      \r\n
    • \r\n
    • \r\n
      \r\n \r\n setMenuVisibility(false)}\r\n className=\"toggle-icon icon-x d-block d-xl-none\"\r\n size={20}\r\n />\r\n
      \r\n
    • \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default VerticalMenuHeader;\r\n","// ** React Imports\r\nimport { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { NavLink, useLocation, matchPath, useParams } from 'react-router-dom';\r\nimport * as authSelectors from 'redux/reducers/auth';\r\nimport * as authActions from 'redux/actions/auth';\r\nimport * as screens from '@core/layouts/components/menu/screens';\r\n\r\n// ** Third Party Components\r\nimport { Badge } from 'reactstrap';\r\nimport classnames from 'classnames';\r\nimport { FormattedMessage, useIntl } from 'react-intl';\r\nimport Icon from '../../../../../utility/icomoon';\r\nimport { handleMenuPinner } from '@store/actions/layout';\r\n\r\n// ** Vertical Menu Array Of Items\r\nimport navigation from '@src/navigation/vertical';\r\n\r\n// ** Utils\r\nimport { isNavLinkActive, search, getAllParents } from '@layouts/utils';\r\n\r\nconst VerticalNavMenuLink = ({\r\n item,\r\n groupActive,\r\n setGroupActive,\r\n activeItem,\r\n setActiveItem,\r\n groupOpen,\r\n setGroupOpen,\r\n toggleActiveGroup,\r\n parentItem,\r\n routerProps,\r\n currentActiveItem\r\n}) => {\r\n const intl = useIntl();\r\n const store = useSelector((state) => state);\r\n const dispatch = useDispatch();\r\n // ** Conditional Link Tag, if item has newTab or externalLink props use
    tag else use NavLink\r\n const LinkTag = item.externalLink ? 'a' : NavLink;\r\n const layoutStore = store.layout;\r\n\r\n // ** URL Vars\r\n const location = useLocation();\r\n const currentURL = location.pathname;\r\n\r\n // ** To match path\r\n const match = matchPath(currentURL, {\r\n path: `${item.navLink}/:param`,\r\n exact: true,\r\n strict: false\r\n });\r\n\r\n const [mouseEnter, setMouseEnter] = useState(false);\r\n\r\n // ** Search for current item parents\r\n const searchParents = (navigation, currentURL) => {\r\n const parents = search(navigation, currentURL, routerProps); // Search for parent object\r\n const allParents = getAllParents(parents, 'id'); // Parents Object to Parents Array\r\n return allParents;\r\n };\r\n\r\n // ** URL Vars\r\n const resetActiveGroup = (navLink) => {\r\n const parents = search(navigation, navLink, match);\r\n toggleActiveGroup(item.id, parents);\r\n };\r\n\r\n // ** Reset Active & Open Group Arrays\r\n const resetActiveAndOpenGroups = () => {\r\n setGroupActive([]);\r\n setGroupOpen([]);\r\n };\r\n\r\n // ** Checks url & updates active item\r\n useEffect(() => {\r\n if (currentActiveItem !== null) {\r\n setActiveItem(currentActiveItem);\r\n const arr = searchParents(navigation, currentURL);\r\n setGroupActive([...arr]);\r\n }\r\n }, [location]);\r\n\r\n return (\r\n \r\n {\r\n if (!match) {\r\n return false;\r\n }\r\n\r\n if (match.url && match.url !== '' && match.url === item.navLink) {\r\n currentActiveItem = item.navLink;\r\n }\r\n }\r\n })}\r\n /*eslint-enable */\r\n onClick={(e) => {\r\n if (!item.navLink.length) {\r\n e.preventDefault();\r\n }\r\n parentItem ? resetActiveGroup(item.navLink) : resetActiveAndOpenGroups();\r\n }}\r\n onMouseEnter={() => setMouseEnter(true)}\r\n onMouseLeave={() => setMouseEnter(false)}\r\n >\r\n {/* {item.icon} */}\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n {item.screenId !== undefined &&\r\n item.screenId === authSelectors.getAuthUserHomeScreenId(store) ? (\r\n \r\n ) : null}\r\n {mouseEnter &&\r\n item.badgeText === undefined &&\r\n layoutStore.menuPinner === true &&\r\n item.screenId !== authSelectors.getAuthUserHomeScreenId(store) && (\r\n {\r\n dispatch(authActions.startUpdatingProfileHomeScreen(`${item.screenId}`));\r\n dispatch(handleMenuPinner(false));\r\n }}\r\n />\r\n )}\r\n {item.badgeText ? (\r\n \r\n {intl.formatMessage({ id: item.badgeText })}\r\n \r\n ) : null}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default VerticalNavMenuLink;\r\n","// ** React Imports\r\nimport { Link, useLocation } from 'react-router-dom';\r\n\r\n// ** Third Party Components\r\nimport classnames from 'classnames';\r\nimport { Collapse, Badge } from 'reactstrap';\r\nimport { FormattedMessage, useIntl } from 'react-intl';\r\n\r\n// ** Vertical Menu Items Component\r\nimport VerticalNavMenuItems from './VerticalNavMenuItems';\r\nimport Icon from '../../../../../utility/icomoon';\r\n\r\n// ** Utils\r\nimport { isNavGroupActive, getAllParents } from '@layouts/utils';\r\n\r\nconst VerticalNavMenuGroup = ({\r\n item,\r\n groupActive,\r\n setGroupActive,\r\n activeItem,\r\n setActiveItem,\r\n groupOpen,\r\n setGroupOpen,\r\n parentItem,\r\n menuCollapsed,\r\n menuHover,\r\n routerProps,\r\n currentActiveItem\r\n}) => {\r\n const intl = useIntl();\r\n // ** Current Val\r\n const currentURL = useLocation().pathname;\r\n\r\n // ** Toggles Open Group\r\n const toggleOpenGroup = (item, parentItem) => {\r\n let openArr = groupOpen;\r\n let allParents;\r\n\r\n if (parentItem) {\r\n allParents = getAllParents(parentItem, 'id');\r\n allParents.pop();\r\n }\r\n\r\n // ** If user clicked on menu group inside already opened group i.g. when user click on blog group inside pages group\r\n if (groupOpen && allParents && groupOpen[0] === allParents[0]) {\r\n groupOpen.includes(item) ? openArr.splice(openArr.indexOf(item), 1) : openArr.push(item);\r\n } else {\r\n openArr = [];\r\n if (!groupOpen.includes(item)) {\r\n openArr.push(item);\r\n }\r\n }\r\n\r\n // ** Set Open Group\r\n setGroupOpen([...openArr]);\r\n };\r\n\r\n // ** Toggle Active Group\r\n const toggleActiveGroup = (item, parentItem) => {\r\n let activeArr = groupActive;\r\n let allParents;\r\n\r\n if (parentItem) {\r\n allParents = getAllParents(parentItem, 'id');\r\n activeArr = allParents;\r\n } else {\r\n activeArr.includes(item)\r\n ? activeArr.splice(activeArr.indexOf(item), 1)\r\n : activeArr.push(item);\r\n }\r\n\r\n // ** Set open group removing any activegroup item present in opengroup state\r\n const openArr = groupOpen.filter((val) => !activeArr.includes(val));\r\n setGroupOpen([...openArr]);\r\n\r\n // ** Set Active Group\r\n setGroupActive([...activeArr]);\r\n };\r\n\r\n // ** On Group Item Click\r\n const onCollapseClick = (e, item) => {\r\n if (\r\n (groupActive && groupActive.includes(item.id)) ||\r\n isNavGroupActive(item.children, currentURL, routerProps)\r\n ) {\r\n toggleActiveGroup(item.id);\r\n } else {\r\n toggleOpenGroup(item.id, parentItem);\r\n }\r\n\r\n e.preventDefault();\r\n };\r\n\r\n // ** Returns condition to add open class\r\n const openClassCondition = (id) => {\r\n if ((menuCollapsed && menuHover) || menuCollapsed === false) {\r\n if (groupActive.includes(id) || groupOpen.includes(item.id)) {\r\n return true;\r\n }\r\n } else if (groupActive.includes(id) && menuCollapsed && menuHover === false) {\r\n return false;\r\n } else {\r\n return null;\r\n }\r\n };\r\n return (\r\n \r\n onCollapseClick(e, item)}\r\n >\r\n {/* {item.icon} */}\r\n\r\n \r\n \r\n \r\n \r\n {item.badgeText ? (\r\n \r\n {intl.formatMessage({ id: item.badgeText })}\r\n \r\n ) : null}\r\n \r\n\r\n {/* Render Child Recursively Through VerticalNavMenuItems Component */}\r\n
      \r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default VerticalNavMenuGroup;\r\n","// ** Third Party Components\r\nimport { MoreHorizontal } from 'react-feather';\r\nimport { Badge } from 'reactstrap';\r\nimport { FormattedMessage, useIntl } from 'react-intl';\r\nimport Icon from '../../../../../utility/icomoon';\r\n\r\nconst VerticalNavMenuSectionHeader = ({ item, index }) => {\r\n const intl = useIntl();\r\n return (\r\n
  • \r\n {item.iconName && (\r\n \r\n )}\r\n \r\n \r\n \r\n {item.badgeText ? (\r\n \r\n {intl.formatMessage({ id: item.badgeText })}\r\n \r\n ) : null}\r\n \r\n
  • \r\n );\r\n};\r\n\r\nexport default VerticalNavMenuSectionHeader;\r\n","// ** Vertical Menu Components\r\nimport VerticalNavMenuLink from './VerticalNavMenuLink';\r\nimport VerticalNavMenuGroup from './VerticalNavMenuGroup';\r\nimport VerticalNavMenuSectionHeader from './VerticalNavMenuSectionHeader';\r\nimport { useSelector } from 'react-redux';\r\nimport * as authSelectors from '../../../../../../src/redux/reducers/auth';\r\n// ** Utils\r\nimport { resolveVerticalNavMenuItemComponent as resolveNavItemComponent } from '@layouts/utils';\r\n\r\nconst VerticalMenuNavItems = (props) => {\r\n // ** Components Object\r\n const Components = {\r\n VerticalNavMenuSectionHeader,\r\n VerticalNavMenuGroup,\r\n VerticalNavMenuLink\r\n };\r\n const store = useSelector((state) => state);\r\n // ** Render Nav Menu Items\r\n const RenderNavItems = props.items.map((item, index) => {\r\n const TagName = Components[resolveNavItemComponent(item)];\r\n\r\n const checkItemHasUserPermissions = (item) => {\r\n if (item.children) {\r\n return item.children.some((child) => checkItemHasUserPermissions(child));\r\n } else {\r\n return (\r\n (item.permissions?.length == 0 ||\r\n authSelectors.getAuthUserHasPermissionsAny(store, item.permissions)) &&\r\n (!item.accessLevels ||\r\n item.accessLevels.length == 0 ||\r\n authSelectors.getAuthUserHasPermissionByAccessLevels(store, item.accessLevels))\r\n );\r\n }\r\n };\r\n\r\n return (\r\n checkItemHasUserPermissions(item) && (\r\n \r\n )\r\n );\r\n });\r\n\r\n return RenderNavItems;\r\n};\r\n\r\nexport default VerticalMenuNavItems;\r\n","// ** React Imports\r\nimport { Fragment, useState, useRef } from 'react';\r\n\r\n// ** Vertical Menu Items Array\r\nimport navigation, {\r\n sidebarOptionsCRM,\r\n sidebarOptionsMonitoring,\r\n sidebarOptionsAdmin\r\n} from '@src/navigation/vertical';\r\n\r\n// ** Third Party Components\r\nimport classnames from 'classnames';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\n\r\n// ** Vertical Menu Components\r\nimport VerticalMenuHeader from './VerticalMenuHeader';\r\nimport VerticalNavMenuItems from './VerticalNavMenuItems';\r\n\r\nimport * as authSelectors from 'redux/reducers/auth';\r\nimport { useSelector } from 'react-redux';\r\nimport { getUseCRM, getUseConsole } from 'utility/Utils';\r\n\r\nconst Sidebar = (props) => {\r\n // ** Props\r\n const { menuCollapsed, routerProps, menu, currentActiveItem, skin } = props;\r\n\r\n // ** Env\r\n const useCRM = getUseCRM();\r\n const useConsole = getUseConsole();\r\n\r\n // ** States\r\n const [groupOpen, setGroupOpen] = useState([]);\r\n const [groupActive, setGroupActive] = useState([]);\r\n const [activeItem, setActiveItem] = useState(null);\r\n\r\n // ** Menu Hover State\r\n const [menuHover, setMenuHover] = useState(false);\r\n\r\n // ** Ref\r\n const shadowRef = useRef(null);\r\n\r\n const productId = useSelector((state) => authSelectors.getNavigationProduct(state));\r\n\r\n // ** Function to handle Mouse Enter\r\n const onMouseEnter = () => {\r\n if (menuCollapsed) {\r\n setMenuHover(true);\r\n }\r\n };\r\n\r\n // ** Scroll Menu\r\n const scrollMenu = (container) => {\r\n if (shadowRef && container.scrollTop > 0) {\r\n if (!shadowRef.current.classList.contains('d-block')) {\r\n shadowRef.current.classList.add('d-block');\r\n }\r\n } else {\r\n if (shadowRef.current.classList.contains('d-block')) {\r\n shadowRef.current.classList.remove('d-block');\r\n }\r\n }\r\n };\r\n\r\n return (\r\n \r\n setMenuHover(false)}\r\n >\r\n {menu ? (\r\n menu\r\n ) : (\r\n \r\n {/* Vertical Menu Header */}\r\n \r\n {/* Vertical Menu Header Shadow */}\r\n
    \r\n {/* Perfect Scrollbar */}\r\n scrollMenu(container)}\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 Sidebar;\r\n","// ** React Imports\r\nimport { useState, useEffect } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\n// ** Store & Actions\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport {\r\n handleMenuCollapsed,\r\n handleContentWidth,\r\n handleMenuHidden,\r\n handleMenuPinner\r\n} from '@store/actions/layout';\r\n\r\n// ** Third Party Components\r\nimport classnames from 'classnames';\r\nimport { ArrowUp } from 'react-feather';\r\nimport ScrollToTop from 'react-scroll-up';\r\nimport { Navbar, Button, Alert } from 'reactstrap';\r\n\r\n// ** Configs\r\nimport themeConfig from '@configs/themeConfig';\r\n\r\n// ** Custom Components\r\nimport Customizer from '@components/customizer';\r\nimport FooterComponent from './components/footer';\r\nimport NavbarComponent from './components/navbar';\r\nimport SidebarComponent from './components/menu/vertical-menu';\r\n\r\n// ** Custom Hooks\r\nimport { useRTL } from '@hooks/useRTL';\r\nimport { useSkin } from '@hooks/useSkin';\r\nimport { useNavbarType } from '@hooks/useNavbarType';\r\nimport { useFooterType } from '@hooks/useFooterType';\r\nimport { useNavbarColor } from '@hooks/useNavbarColor';\r\n\r\n// ** Styles\r\nimport '@styles/base/core/menu/menu-types/vertical-menu.scss';\r\nimport '@styles/base/core/menu/menu-types/vertical-overlay-menu.scss';\r\n\r\nconst VerticalLayout = (props) => {\r\n // ** Props\r\n const { children, navbar, footer, menu, routerProps, currentActiveItem } = props;\r\n\r\n // ** Hooks\r\n const [skin, setSkin] = useSkin();\r\n const [isRtl, setIsRtl] = useRTL();\r\n const [navbarType, setNavbarType] = useNavbarType();\r\n const [footerType, setFooterType] = useFooterType();\r\n const [navbarColor, setNavbarColor] = useNavbarColor();\r\n\r\n // ** States\r\n const [isMounted, setIsMounted] = useState(false);\r\n const [menuVisibility, setMenuVisibility] = useState(false);\r\n const [windowWidth, setWindowWidth] = useState(window.innerWidth);\r\n\r\n // ** Store Vars\r\n const dispatch = useDispatch();\r\n const layoutStore = useSelector((state) => state.layout);\r\n\r\n // ** Update Window Width\r\n const handleWindowWidth = () => {\r\n setWindowWidth(window.innerWidth);\r\n };\r\n\r\n // ** Vars\r\n const location = useLocation();\r\n const contentWidth = layoutStore.contentWidth;\r\n const menuCollapsed = layoutStore.menuCollapsed;\r\n const menuPinner = layoutStore.menuPinner;\r\n const isHidden = layoutStore.menuHidden;\r\n\r\n // ** Toggles Menu Collapsed\r\n const setMenuCollapsed = (val) => dispatch(handleMenuCollapsed(val));\r\n\r\n // ** Handles Content Width\r\n const setContentWidth = (val) => dispatch(handleContentWidth(val));\r\n\r\n // ** Handles Menu Hidden\r\n const setIsHidden = (val) => dispatch(handleMenuHidden(val));\r\n\r\n // ** Handles Menu Pinner\r\n const setMenuPinner = (val) => dispatch(handleMenuPinner(val));\r\n\r\n //** This function will detect the Route Change and will hide the menu on menu item click\r\n useEffect(() => {\r\n if (menuVisibility && windowWidth < 1200) {\r\n setMenuVisibility(false);\r\n }\r\n }, [location]);\r\n\r\n //** Sets Window Size & Layout Props\r\n useEffect(() => {\r\n if (window !== undefined) {\r\n window.addEventListener('resize', handleWindowWidth);\r\n }\r\n }, [windowWidth]);\r\n\r\n //** ComponentDidMount\r\n useEffect(() => {\r\n setIsMounted(true);\r\n return () => setIsMounted(false);\r\n }, []);\r\n\r\n // ** Vars\r\n const footerClasses = {\r\n static: 'footer-static',\r\n sticky: 'footer-fixed',\r\n hidden: 'footer-hidden'\r\n };\r\n\r\n const navbarWrapperClasses = {\r\n floating: 'navbar-floating',\r\n sticky: 'navbar-sticky',\r\n static: 'navbar-static',\r\n hidden: 'navbar-hidden'\r\n };\r\n\r\n const navbarClasses = {\r\n floating: 'floating-nav',\r\n sticky: 'fixed-top',\r\n static: 'navbar-static-top',\r\n hidden: 'd-none'\r\n };\r\n\r\n const bgColorCondition = navbarColor !== '' && navbarColor !== 'light' && navbarColor !== 'white';\r\n\r\n if (!isMounted) {\r\n return null;\r\n }\r\n return (\r\n = 1200,\r\n 'menu-collapsed': menuCollapsed && windowWidth >= 1200,\r\n 'menu-expanded': !menuCollapsed && windowWidth > 1200,\r\n\r\n // Overlay Menu\r\n 'vertical-overlay-menu': windowWidth < 1200,\r\n 'menu-hide': !menuVisibility && windowWidth < 1200,\r\n 'menu-open': menuVisibility && windowWidth < 1200\r\n }\r\n )}\r\n {...(isHidden ? { 'data-col': '1-column' } : {})}\r\n >\r\n {!isHidden ? (\r\n \r\n ) : null}\r\n\r\n \r\n
    \r\n {navbar ? (\r\n navbar\r\n ) : (\r\n \r\n )}\r\n
    \r\n \r\n {children}\r\n\r\n {/* Vertical Nav Menu Overlay */}\r\n setMenuVisibility(false)}\r\n >\r\n {/* Vertical Nav Menu Overlay */}\r\n\r\n {themeConfig.layout.customizer === true ? (\r\n \r\n ) : null}\r\n \r\n {footer ? (\r\n footer\r\n ) : (\r\n \r\n )}\r\n \r\n\r\n {themeConfig.layout.scrollTop === true ? (\r\n
    \r\n window.FreshworksWidget('hide')}\r\n onHide={() => window.FreshworksWidget('show')}\r\n showUnder={300}\r\n style={{ bottom: '5%' }}\r\n >\r\n \r\n \r\n
    \r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nexport default VerticalLayout;\r\n","// !Do not remove the Layout import\r\nimport Layout from '@layouts/VerticalLayout'\r\n\r\nconst VerticalLayout = props => {props.children}\r\n\r\nexport default VerticalLayout\r\n","import useJwt from '@src/@core/auth/jwt/useJwt';\r\n\r\n/**\r\n * Return if user is logged in\r\n * This is completely up to you and how you want to store the token in your frontend application\r\n * e.g. If you are using cookies to store the application please update this function\r\n */\r\n// eslint-disable-next-line arrow-body-style\r\nexport const isUserLoggedIn = () => {\r\n let token = localStorage.getItem('auth');\r\n let userData = getUserData();\r\n\r\n return token && userData && userData.exp > Date.now() / 1000;\r\n};\r\n\r\nexport const getUserData = () => JSON.parse(localStorage.getItem('userData'));\r\n\r\n/**\r\n * This function is used for demo purpose route navigation\r\n * In real app you won't need this function because your app will navigate to same route for each users regardless of ability\r\n * Please note role field is just for showing purpose it's not used by anything in frontend\r\n * We are checking role just for ease\r\n * NOTE: If you have different pages to navigate based on user ability then this function can be useful. However, you need to update it.\r\n * @param {String} userRole Role of user\r\n */\r\nexport const getHomeRouteForLoggedInUser = (userRole) => {\r\n if (userRole === 'admin') return '/';\r\n if (userRole === 'client') return { name: 'access-control' };\r\n return { name: 'auth-login' };\r\n};\r\n","/* -------------------------------------------------------------------------- */\n/* Componente RefreshToken */\n/* -------------------------------------------------------------------------- */\n// Este componente es un componente vacio que actualiza el token del usuario en sesiĆ³n.\n\nimport { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport * as authSelectors from '../../../redux/reducers/auth';\nimport * as actions from '../../../redux/actions/auth';\nimport { isUserLoggedIn } from '../../../auth/utils';\nimport TOKEN_LIFE_TIME from 'redux/sagas/settings/tokenLifeTime';\n\nconst RefreshToken = ({ reviewTime }) => {\n const history = useHistory();\n const dispatch = useDispatch();\n const expiration = useSelector(authSelectors.getAuthExpiration);\n const [failCount, setFailCount] = useState(0);\n const onRefresh = (expiration) => {\n const now = new Date().getTime() / 1000;\n if (expiration - now < TOKEN_LIFE_TIME / 2) dispatch(actions.startRefreshToken());\n };\n const interval = useRef();\n const { isAuthenticated } = useSelector((state) => ({\n isAuthenticated: authSelectors.getAuthToken(state) ?? false\n }));\n\n useEffect(() => {\n const isLoggedIn = isUserLoggedIn();\n if (isAuthenticated && isLoggedIn) {\n if (interval.current) clearInterval(interval.current);\n else onRefresh(expiration);\n interval.current = setInterval(() => onRefresh(expiration), reviewTime);\n } else {\n if (interval.current) clearInterval(interval.current);\n }\n\n return () => {\n if (interval.current) clearInterval(interval.current);\n };\n }, [reviewTime, isAuthenticated, expiration]);\n\n useEffect(() => {\n const isLoggedIn = isUserLoggedIn();\n if (\n (!isAuthenticated || !isLoggedIn) &&\n !window.location.href.includes('/login') &&\n !window.location.href.includes('/external-login')\n ) {\n setFailCount(failCount + 1);\n if (failCount >= 3) {\n dispatch(actions.logout());\n history.push('/login');\n }\n } else {\n setFailCount(0);\n }\n }, [isAuthenticated]);\n\n return null;\n};\n\nexport default RefreshToken;\n","import { useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useLocation, useHistory } from 'react-router-dom';\nimport * as entityActions from '../../actions';\n\nconst notSessionScreens = ['/', '/login', '/external-login'];\n\nconst EntitiesController = () => {\n const history = useHistory();\n const location = useLocation();\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (!notSessionScreens.includes(location.pathname))\n dispatch(entityActions.startFetchingEntities());\n }, [location]);\n\n useEffect(() => {\n history.listen((loc: any) => {\n if (!notSessionScreens.includes(loc.pathname))\n dispatch(entityActions.resetIsFetchedEntities());\n });\n }, []);\n\n return null;\n};\n\nexport default EntitiesController;\n","// ** React Imports\r\nimport { Suspense, lazy, useContext, useEffect, useState } from 'react';\r\n\r\n// ** Utils\r\nimport { useLayout } from '@hooks/useLayout';\r\nimport { useRouterTransition } from '@hooks/useRouterTransition';\r\nimport { AbilityContext } from '@src/utility/context/Can';\r\nimport { isUserLoggedIn } from '@utils';\r\nimport { connect } from 'react-redux';\r\nimport * as authActions from '../../src/redux/actions/auth';\r\nimport * as authSelectors from '../../src/redux/reducers/auth';\r\n\r\nimport { getIsWebtrackUser } from 'utility/Utils';\r\nimport businessPartnersPaths from 'views/screens/BusinessPartners/paths';\r\nimport organizationContractsPaths from 'views/screens/Contracts/paths';\r\n\r\n// ** Custom Components\r\nimport LayoutWrapper from '@layouts/components/layout-wrapper';\r\n// ** Router Components\r\nimport { BrowserRouter as AppRouter, Redirect, Route, Switch } from 'react-router-dom';\r\n\r\n// ** Routes & Default Routes\r\nimport { useDispatch } from 'react-redux';\r\nimport { Routes } from './routes';\r\n\r\n// ** Layouts\r\nimport Spinner from '@core/components/spinner/Fallback-spinner';\r\nimport BlankLayout from '@layouts/BlankLayout';\r\nimport HorizontalLayout from '@src/layouts/HorizontalLayout';\r\nimport VerticalLayout from '@src/layouts/VerticalLayout';\r\n\r\n// ** RefreshToken\r\nimport RefreshToken from 'views/components/RefreshToken';\r\n\r\nimport { getUseCRM, getUseConsole } from 'utility/Utils';\r\nimport EntitiesController from 'views/screens/Entities/views/EntitiesController';\r\nimport * as routerUtility from './utility/index';\r\n\r\nconst Router = ({ homeScreenId, permissions, productId, accessLevelId, isWebtrackUser }) => {\r\n const [userPermissions, setUserPermissions] = useState(permissions ? permissions.split(',') : []);\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n setUserPermissions(permissions ? permissions.split(',') : []);\r\n }, [permissions]);\r\n\r\n // ** Env\r\n const useCRM = getUseCRM();\r\n const useConsole = getUseConsole();\r\n\r\n // ** Hooks\r\n const [layout, setLayout] = useLayout();\r\n const [transition, setTransition] = useRouterTransition();\r\n\r\n // ** ACL Ability Context\r\n const ability = useContext(AbilityContext);\r\n\r\n // ** Default Layout\r\n const DefaultLayout = layout === 'horizontal' ? 'HorizontalLayout' : 'VerticalLayout';\r\n\r\n // ** All of the available layouts\r\n const Layouts = { BlankLayout, VerticalLayout, HorizontalLayout };\r\n\r\n // ** Current Active Item\r\n const currentActiveItem = null;\r\n\r\n const ProhibitedPaths = routerUtility.getProhibitedPathsByPermissions(\r\n userPermissions,\r\n accessLevelId,\r\n isWebtrackUser\r\n );\r\n\r\n // ** Return Filtered Array of Routes & Paths\r\n const LayoutRoutesAndPaths = (layout) => {\r\n const LayoutRoutes = [];\r\n const LayoutPaths = [];\r\n\r\n if (Routes) {\r\n Routes.filter((route) => {\r\n // ** Checks if Route layout or Default layout matches current layout\r\n if (\r\n route.layout === layout ||\r\n (route.layout === undefined && DefaultLayout === layout) /*&&\r\n !ProhibitedPaths.includes(route.path)*/\r\n ) {\r\n LayoutRoutes.push(route);\r\n LayoutPaths.push(route.path);\r\n }\r\n });\r\n }\r\n\r\n return { LayoutRoutes, LayoutPaths };\r\n };\r\n\r\n const NotAuthorized = lazy(() => import('@src/views/NotAuthorized'));\r\n\r\n // ** Init Error Component\r\n const Error = lazy(() => import('@src/views/Error'));\r\n\r\n // User Selector to check permissions\r\n // const store = useSelector((state) => state);\r\n\r\n /**\r\n ** Final Route Component Checks for Login & User Role and then redirects to the route\r\n */\r\n const FinalRoute = (props) => {\r\n const route = props.route;\r\n let action, resource;\r\n\r\n // ** Assign vars based on route meta\r\n if (route.meta) {\r\n action = route.meta.action ? route.meta.action : null;\r\n resource = route.meta.resource ? route.meta.resource : null;\r\n }\r\n\r\n if (\r\n (!isUserLoggedIn() && route.meta === undefined) ||\r\n (!isUserLoggedIn() && route.meta && !route.meta.authRoute && !route.meta.publicRoute)\r\n ) {\r\n /**\r\n ** If user is not Logged in & route meta is undefined\r\n ** OR\r\n ** If user is not Logged in & route.meta.authRoute, !route.meta.publicRoute are undefined\r\n ** Then redirect user to login\r\n */\r\n dispatch(authActions.logout());\r\n return ;\r\n } else if (route.meta && route.meta.authRoute && isUserLoggedIn()) {\r\n // ** If route has meta and authRole and user is Logged in then redirect user to home page (DefaultRoute)\r\n if (window.FreshworksWidget) window.FreshworksWidget('show');\r\n if (window.voiceflow?.chat) window.voiceflow.chat.show();\r\n const token = localStorage.getItem('auth');\r\n //dispatch();\r\n return ;\r\n // } else if (\r\n // isUserLoggedIn() &&\r\n // !authSelectors.getAuthUserHasPermissionsAny(\r\n // store,\r\n // props.permissions != null ? props.permissions : []\r\n // )\r\n // ) {\r\n // // ** If user is Logged in and doesn't have ability to visit the page redirect the user to Not Authorized\r\n // return ;\r\n } else {\r\n // ** If none of the above render component\r\n return ;\r\n }\r\n };\r\n\r\n // ** Return Route to Render\r\n const ResolveRoutes = () => {\r\n return Object.keys(Layouts).map((layout, index) => {\r\n // ** Convert Layout parameter to Layout Component\r\n // ? Note: make sure to keep layout and component name equal\r\n\r\n const LayoutTag = Layouts[layout];\r\n\r\n // ** Get Routes and Paths of the Layout\r\n const { LayoutRoutes, LayoutPaths } = LayoutRoutesAndPaths(layout);\r\n\r\n // ** We have freedom to display different layout for different route\r\n // ** We have made LayoutTag dynamic based on layout, we can also replace it with the only layout component,\r\n // ** that we want to implement like VerticalLayout or HorizontalLayout\r\n // ** We segregated all the routes based on the layouts and Resolved all those routes inside layouts\r\n\r\n // ** RouterProps to pass them to Layouts\r\n const routerProps = {};\r\n\r\n return (\r\n \r\n \r\n \r\n {LayoutRoutes.map((route) => {\r\n return (\r\n {\r\n // ** Assign props to routerProps\r\n Object.assign(routerProps, {\r\n ...props,\r\n meta: route.meta\r\n });\r\n\r\n return (\r\n }>\r\n {/* Layout Wrapper to add classes based on route's layout, appLayout and className */}\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 return (\r\n \r\n \r\n \r\n \r\n {/* If user is logged in Redirect user to DefaultRoute else to login */}\r\n {!isUserLoggedIn() && (\r\n {\r\n dispatch(authActions.logout());\r\n return ;\r\n }}\r\n />\r\n )}\r\n {\r\n return (\r\n \r\n );\r\n }}\r\n />\r\n {/* Not Auth Route */}\r\n {ProhibitedPaths.map((prohibitedPath, index) => (\r\n (\r\n \r\n \r\n \r\n )}\r\n />\r\n ))}\r\n {ResolveRoutes()}\r\n {/* NotFound Error page */}\r\n /\r\n \r\n \r\n );\r\n};\r\n\r\nexport default connect(\r\n (state) => {\r\n const homeScreenId = authSelectors.getAuthUserHomeScreenId(state);\r\n const permissions = state?.auth?.user?.permissions;\r\n const productId = authSelectors.getNavigationProduct(state);\r\n const accessLevelId = authSelectors.getAuthUserAccessLevelId(state);\r\n const user = authSelectors.getAuthUserForMembership(state);\r\n const isWebtrackUser = getIsWebtrackUser(user);\r\n return { homeScreenId, permissions, productId, accessLevelId, isWebtrackUser };\r\n },\r\n undefined,\r\n (stateProps, dispatchProps, ownProps) => ({\r\n ...stateProps,\r\n ...ownProps\r\n })\r\n)(Router);\r\n","//** React Imports\r\nimport { useState, useEffect } from 'react';\r\n\r\n// ** Configs\r\nimport themeConfig from '@configs/themeConfig';\r\n\r\nexport const useLayout = () => {\r\n // ** States\r\n const [lastLayout, setLastLayout] = useState(null);\r\n const [layout, setLayout] = useState(() => {\r\n try {\r\n return themeConfig.layout.type;\r\n } catch (error) {\r\n // ** If error return initialValue\r\n return themeConfig.layout.type;\r\n }\r\n });\r\n\r\n // ** Return a wrapped version of useState's setter function\r\n const setValue = (value) => {\r\n try {\r\n // ** Allow value to be a function so we have same API as useState\r\n const valueToStore = value instanceof Function ? value(layout) : value;\r\n\r\n // ** Set state\r\n setLayout(valueToStore);\r\n } catch (error) {\r\n // ** A more advanced implementation would handle the error case\r\n }\r\n };\r\n\r\n const handleLayout = () => {\r\n // ** If layout is horizontal & screen size is equals to or below 1200\r\n if (layout === 'horizontal' && window.innerWidth <= 1200) {\r\n setLayout('vertical');\r\n setLastLayout('horizontal');\r\n }\r\n // ** If lastLayout is horizontal & screen size is equals to or above 1200\r\n if (lastLayout === 'horizontal' && window.innerWidth >= 1200) {\r\n setLayout('horizontal');\r\n }\r\n };\r\n\r\n // ** ComponentDidMount\r\n useEffect(() => {\r\n handleLayout();\r\n }, []);\r\n\r\n useEffect(() => {\r\n // ** Window Resize Event\r\n window.addEventListener('resize', handleLayout);\r\n }, [layout, lastLayout]);\r\n\r\n return [layout, setValue];\r\n};\r\n","//** React Imports\r\nimport { useState } from 'react';\r\n\r\n// ** Configs\r\nimport themeConfig from '@configs/themeConfig';\r\n\r\nexport const useRouterTransition = () => {\r\n // ** State\r\n const [transition, setTransition] = useState(() => {\r\n try {\r\n return themeConfig.layout.routerTransition;\r\n } catch (error) {\r\n // ** If error return initialValue\r\n return themeConfig.layout.routerTransition;\r\n }\r\n });\r\n\r\n // ** Return a wrapped version of useState's setter function\r\n const setValue = (value) => {\r\n try {\r\n // ** Allow value to be a function so we have same API as useState\r\n const valueToStore = value instanceof Function ? value(transition) : value;\r\n\r\n // ** Set state\r\n setTransition(valueToStore);\r\n } catch (error) {\r\n // ** A more advanced implementation would handle the error case\r\n }\r\n };\r\n\r\n return [transition, setValue];\r\n};\r\n","// ** Router Import\r\nimport Router from './router/Router';\r\nimport './globals';\r\n\r\nconst App = (props) => ;\r\n\r\nexport default App;\r\n"],"sourceRoot":""}