{"version":3,"sources":["app/components/CustomBlock.js","app/components/SideNav.js","app/components/NavBlock.js","app/components/Button.js","app/components/TextBlock.js","app/components/Image.js","app/components/TopNav.js","app/assets/client/icon.svg","app/redux/authRedux.js","app/routes/PrivateRoute.js","app/components/Overlay.js","app/components/SocialIcons/SocialIconButton.js","app/components/SocialIcons/SocialIconSet.js","app/helpers/themeHelper.js","app/components/Headers/TopHeaderDevReference.js","app/components/SelectBlock.js","app/components/Chip.js","app/components/Headers/TopHeaderSearchAndFilter.js","app/components/Headers/DrawerNavigation.js","app/redux/alertToastRedux.js","app/redux/confirmModalRedux.js","app/redux/rootReducer.js","app/redux/store.js","app/services/interceptor/axiosInterceptor.js","app/constants/constants.js","app/services/apiService.js","app/services/cms/menuItemService.js","app/components/Headers/HeaderNavigation.js","app/components/InputBlock.js","app/assets/img/app-store-badge.svg","app/assets/img/google-play-badge.svg","app/components/FooterBlock.js","app/assets/client/logo.svg","app/assets/client/logo-alt-2.svg","app/routes/CMSRoute.js","app/components/DotIndicator.js","app/components/TextHeader.js","app/components/ContentHeader.js","app/components/ModalBlock.js","app/components/ConfirmModal.js","app/components/AlertToast.js","app/components/FormBlock.js","app/helpers/validators/user/LoginValidator.js","app/helpers/helper.js","app/services/management/userService.js","app/pages/admin/authentication/LoginPage.js","app/components/Section.js","app/components/ContentBlock.js","app/components/CheckboxBlock.js","app/helpers/validators/user/RegisterUserValidator.js","app/helpers/validators/user/UpdatePasswordValidator.js","app/helpers/validators/user/EditUserValidator.js","app/pages/admin/management/user/UserListingPage.js","app/components/FileUploadBlock.js","app/components/TextAreaBlock.js","app/services/management/settingService.js","app/services/cms/pageService.js","app/pages/admin/management/settings/SettingsListingPage.js","app/pages/cms/management/menu-item/MenuItemListingPage.js","app/components/FixedActionsBar.js","app/helpers/validators/cms/menuItem/menuItemValidator.js","app/pages/cms/management/menu-item/MenuItemManagementPage.js","app/pages/cms/management/page/PageListingPage.js","app/services/cms/contentSectionService.js","app/helpers/validators/cms/page/pageValidator.js","app/pages/cms/management/page/PageManagementPage.js","app/services/cms/bannerService.js","app/pages/cms/management/content-section/ContentSectionListingPage.js","app/components/SelectablePreview.js","app/components/QuillTextEditor.js","app/assets/img/content-section_default.svg","app/assets/img/content-section_reversed.svg","app/assets/img/content-section_full-width.svg","app/assets/img/content-section_full-width-padded.svg","app/assets/img/content-section_text-only.svg","app/assets/img/content-section_floating-card.svg","app/assets/img/banner-section_dynamic.svg","app/assets/img/content-section_custom.svg","app/helpers/validators/cms/contentSection/ContentSectionValidator.js","app/pages/cms/management/content-section/ContentSectionManagementPage.js","app/assets/img/banner-section.svg","app/helpers/validators/cms/banner/BannerValidator.js","app/helpers/validators/cms/banner/BannerItemValidator.js","app/services/cms/bannerItemService.js","app/pages/cms/management/content-section/BannerManagementPage.js","app/services/cms/assetService.js","app/helpers/validators/cms/asset/AssetValidator.js","app/pages/cms/management/resources/AssetsAndResourcesPage.js","app/services/cms/footerItemService.js","app/helpers/validators/cms/footerItem/FooterItemValidator.js","app/pages/cms/management/footer-items/FooterItemListingPage.js","app/components/ContentSection.js","app/components/Banner.js","app/assets/client/banner-image_default.png","app/assets/client/background-decoration_dark-light-waves.svg","app/pages/cms/pages/ContactPage.js","app/services/management/emailService.js","app/services/management/clientService.js","app/pages/admin/management/client/ClientManagementPage.js","app/pages/admin/management/client/ClientListingPage.js","app/services/management/bidService.js","app/pages/admin/management/bid/BidListingPage.js","app/services/management/benchmarkService.js","app/pages/admin/management/bid/wizard/Step1FileUploadWizard.js","app/pages/admin/management/bid/wizard/Step2LineItemListingWizard.js","app/pages/admin/management/bid/BidManagementPage.js","app/pages/admin/management/bid/BidReportPage.js","app/assets/client/logo.png","app/pages/admin/management/client/BenchmarkPage.js","app/services/cms/blogService.js","app/pages/cms/management/blog/BlogListingPage.js","app/helpers/validators/cms/blog/BlogValidator.js","app/pages/cms/management/blog/BlogManagementPage.js","app/components/ContentStrip.js","app/pages/cms/pages/BlogsAndReviewsListingPage.js","app/assets/client/homepage-banner-image_default.png","app/pages/cms/pages/home/CustomBannerInsert.js","app/components/AnimatedLogo.js","app/pages/cms/pages/home/sections/WebsiteIntroSection.js","app/assets/client/background-texture-1.svg","app/pages/cms/pages/home/sections/AboutIntroSection.js","app/pages/cms/pages/home/sections/ServicesIntroSection.js","app/assets/client/illustration_carrier-contract-negotiation.svg","app/assets/client/illustration_shipping-optimization.svg","app/assets/client/illustration_carrier-bid-management.svg","app/pages/cms/pages/home/HomePage.js","app/services/cms/homeService.js","app/pages/cms/pages/DynamicCMSPage.js","app/Routes.js","app/App.js","reportWebVitals.js","index.js"],"names":["CustomBlock","props","className","style","children","defaultProps","SideNav","backgroundColor","isCollapsible","isExpanded","onClick","_jsxs","concat","_jsx","TbArrowBigLeft","size","NavBlock","title","titleColor","type","iconLeft","iconRight","to","tooltipText","tooltipTextColor","tooltipBackgroundColor","isCollapsed","history","useHistory","navigateToPath","path","push","Button","text","tabIndex","isTextUppercase","isBadge","isLoading","isDisabled","buttonSubActions","isSubActionsVisible","_Fragment","lg","md","sm","xs","xxs","xxxs","icon","input","disabled","AiOutlineLoading","TextBlock","link","containerClassName","position","color","actionText","actionTextColor","actionBackgroundColor","actionSize","actionIconRight","isTargetBlank","isPadded","isUppercase","hasAction","left","center","right","href","target","rel","Image","hasRoundCorners","source","alt","src","TopNav","iconTo","headerTitle","headerTitleColor","returnIconColor","menuItems","menuItemTextColor","menuToggleIcon","activeMenuItemBackgroundColor","routePath","primaryButtonActionText","userInitials","userAvatarBackgroundColor","primaryIconActionOnClick","secondaryIconActionOnClick","optionalIconActionOnClick","hasNavigation","hasReturnAction","hasReturnActionText","hasReturnActionBackground","hasHeaderTitle","onClickAvatar","onClickIcon","goBack","HiChevronLeft","map","menuItem","submenuItems","name","HiChevronDown","submenuItem","TbBellRinging2","TbLogout","TbSettings","actionTypes","initialAuthState","user","firstName","lastName","username","authToken","refreshToken","isAdmin","reducer","persistReducer","storage","key","whitelist","state","action","token","payload","userDetail","decodedToken","jwt_decode","IsAdmin","actions","login","logout","connect","auth","_ref","component","Component","rest","companyIconPath","cmsInfo","currentUser","setCurrentUser","useState","isDrawerOpen","setIsDrawerOpen","isSideNavCollapsed","setIsSideNavCollapsed","isSideNavMenuTitleVisible","setIsSideNavMenuTitleVisible","iconSize","iconColor","useEffect","length","topNavMenuItems","id","TbHome","TbCategory","window","open","TbHomeShare","TbAlignJustified","TbLibrary","TbTableRow","TbVocabulary","TbBoxAlignBottom","TbUsers","TbWorldCog","TbLayoutGrid","TbClipboardText","TbClockEdit","accessLevel","TbAlignBoxLeftBottom","TbFileText","Route","render","Icon","TbX","strokeWidth","TbMenu","Overlay","isContained","overlayDarkness","hasLoader","animateShow","useSpring","opacity","from","loader","normal","dark","SocialIconButton","displayIf","buttonColor","buttonText","socialIcon","onClickAction","useRef","OverlayTrigger","placement","onEntering","node","classList","remove","add","onExiting","overlay","Tooltip","ref","background","SocialIconSet","location","phoneNumber","emailAddress","contactPageURL","find","customLink","icons","setIcons","isOpen","setIsOpen","socialIconColor","locationConfig","headerNav","mobileNav","drawerNav","footer","navigateToPage","useCallback","page","openInNewTab","sendEmail","email","callPhoneNumber","tel","socialIconConfig","platform","youtubeLink","FaYoutube","twitterLink","FaTwitter","googleMapLink","width","height","viewBox","fill","xmlns","d","tikTokLink","fillRule","clipRule","instagramLink","RiInstagramLine","linkedInLink","FaLinkedinIn","facebookLink","FaFacebookF","FaPhoneAlt","TbMailFilled","TbMessage","TbLockFilled","iconSet","filter","item","includes","getThemeColors","root","document","documentElement","colorsRef","theme","primaryColor","primaryLighterColor","primaryLightestColor","secondaryColor","secondaryLighterColor","secondaryLightestColor","altColor","basic","whiteColor","blackColor","lightColor","lighterColor","darkColor","grey","greyColor","lightGreyColor","lighterGreyColor","midGreyColor","darkGreyColor","successColor","dangerColor","infoColor","warningColor","Object","keys","flatMap","group","replace","toLowerCase","value","getComputedStyle","getPropertyValue","trim","TopHeaderDevReference","isDevHeaderToggled","setIsDevHeaderToggled","breakpoint","setBreakpoint","screenWidth","setScreenWidth","innerWidth","themeColors","setThemeColors","getCurrentBreakpoint","handleResize","addEventListener","removeEventListener","themeColorsData","themeHelper","handleScroll","Container","fluid","backgroundImage","backgroundSize","Row","Col","border","paddingTop","paddingBottom","TbArrowBarBoth","TbBrandBootstrap","TbSquareRoundedPlusFilled","TbSquareRoundedMinusFilled","minWidth","alignSelf","borderRadius","SelectBlock","label","labelColor","inputLabel","inputState","errorMessage","successMessage","warningMessage","placeholder","isAsync","isCreatable","isLabelLoading","isMulti","isRequired","hasBorder","inputStates","error","warning","success","marginTop","display","marginBottom","classNamePrefix","Chip","hasSearchBlock","hasChipFilter","onScroll","onKeyDown","e","preventDefault","predefinedFilter","sortBy","priceRange","categories","searchTerm","productTypes","featuredSections","skip","blur","autoBlur","defaultOptions","noOptionsMessage","inputValue","formatOptionLabel","option","process","filePath","onChange","url","DrawerNavigation","headerItems","footerItems","hasOverlay","willCloseOnMaskPress","hasShadow","initialAlertState","visible","showAlert","model","hideAlert","initialConfirmModalState","isVisible","btnAction","console","log","closeBtnAction","rightBtnText","isProcessing","showConfirmModal","hideConfirmModal","setProcessing","appReducer","combineReducers","alertToast","confirmModal","arguments","undefined","sagaMiddleware","createSagaMiddleware","middleware","getDefaultMiddleware","immutableCheck","serializableCheck","thunk","store","configureStore","devTools","enhancers","reduxBatch","persistor","persistStore","isEnabled","config","property","hasOwnProperty","requestHandler","request","a","getState","headers","Authorization","errorHandler","err","originalConfig","response","status","_retry","axiosInstance","post","rs","data","dispatch","Error","message","defaultErrorHandler","Promise","resolve","then","res","Message","localStorage","removeItem","origin","constants","API_URL","REQUIRE_INTERCEPTORS","requestHandlerEnabled","responseHandlerEnabled","CONTENT_SECTION","ContentSectionTypeDefault","ContentSectionTypeReversed","ContentSectionTypeFullWidth","ContentSectionTypeFullWidthPadded","ContentSectionTypeTextOnly","ContentSectionTypeCard","ContentSectionTypeBanner","ContentSectionDynamicBanner","ContentSectionCustom","LeftAlignment","RightAlignment","CenterAlignment","ButtonActionTypePage","ButtonActionTypeLink","ButtonActionTypePhoneNumber","ButtonActionTypeEmail","EXCEL_FILE_TYPES","axios","create","baseURL","interceptors","use","successHandler","ENDPOINTORIGIN","getAllMenuItems","isActive","get","getMenuItemsById","menuItemId","getMenuItemsWithNoParentOrChild","createMenuItem","deleteMenuItem","delete","updateMenuItems","put","removeParentMenuItem","assignParentMenuItem","sortMenuItems","sortChildMenuItems","HeaderNavigation","menuItemsBlockBackgroundColor","menuItemColor","menuToggleIconColor","menuToggleIconSize","mobileMenuItemColor","submenuBlockBackgroundColor","submenuItemColor","fixedNavigationBarBackgroundColor","logo","logoAlt","iconAppearance","socialIconBackgroundColor","primarySocialMediaLink","secondarySocialMediaLink","companyLogos","setOnScroll","handleScrollChange","scrollCheck","scrollY","handleMenuItemClick","pageUrl","menuItemService","setTimeout","toggleDrawer","TopHeaderSearchAndFilter","default","assignedMenuItems","NavLink","Hamburger","toggled","toggle","distance","rounded","maxWidth","TbLock","About","TbNotes","Contact","InputBlock","mask","inputRightButtonText","inputRightButtonBackgroundColor","inputRightButtonIconLeft","iconLeftOnClick","iconRightOnClick","inputRightButtonOnClick","isAutoFocus","options","Flatpickr","autoFocus","paddingLeft","InputMask","FooterBlock","imageSource","bottomFooterBackgroundColor","subheaderColor","subheaderClassName","companyName","copyrightTextColor","footerHeaderTextColor","appStoreLink","googlePlayLink","tiktokLink","hasSocialMediaIconColor","hasEmailSignUp","hasContactBlock","popoverBtnIconStrokeWidth","isMembersLoginModalOpen","setIsMembersLoginModalOpen","isPhonePopoverOpen","setIsPhonePopoverOpen","isEmailPopoverOpen","setIsEmailPopoverOpen","navigateToLink","handlePhonePopoverToggle","handleEmailPopoverToggle","phonePopover","Popover","navigator","clipboard","writeText","LuCopy","LuSmartphone","emailPopover","LuMail","LuMessageSquare","rowGap","columnGap","light","index","wordWrap","lineHeight","inputRightButtonTextColor","trigger","show","onToggle","rootClose","onTouchStart","MdEmail","AppStoreBadge","GooglePlayBadge","Date","getFullYear","CMSRoute","cmsRouteProps","dynamicPageId","isBlog","LogoDefault","LogoLight","companyLogoPath","isSubmenuFullWidth","hasSubmenu","destination","stores","googlePlayStoreLink","DotIndicator","hasDotIndicator","dotIndicatorColor","TextHeader","subtitle","subtitleSize","subtitleClassName","isCentered","iconLeftClassName","textSize","xl","mdlg","ContentHeader","headerSize","primaryButtonText","primaryButtonBackgroundColor","primaryButtonIconLeft","secondaryButtonText","secondaryButtonBackgroundColor","secondaryButtonIconLeft","buttonSize","headerIcon","headerIconContainerClass","primaryButtonTo","secondaryButtonTo","headerIconTo","primaryButtonOnClick","secondaryButtonOnClick","headerIconOnClick","isPrimaryLinkTargetBlank","isSecondaryLinkTargetBlank","isButtonTextUppercase","isPrimaryButtonLoading","isPrimaryButtonDisabled","isSecondaryButtonLoading","isSecondaryButtonDisabled","isTitleCentered","uppercaseText","Link","ModalBlock","closeIconColor","contentHeader","contentDescription","buttonActionsContainerClassName","primaryModalActionType","primaryModalActionText","primaryModalActionColor","secondaryModalActionType","secondaryModalActionText","secondaryModalActionColor","onHide","closeActionOnClick","primaryModalActionOnClick","secondaryModalActionOnClick","hasCloseAction","isPrimaryActionHidden","isSecondaryActionHidden","isPrimaryModalActionIsLoading","thirdModalActionText","thirdModalActionType","thirdModalActionColor","thirdModalActionOnClick","isThirdModalActionIsLoading","Modal","centered","IoClose","handleConfirm","handleCloseBtn","handleEnterKey","event","keyCode","padded","static","contentDescriptionClassName","info","FormBlock","onSubmit","Yup","shape","required","password","getInputClasses","formik","fieldname","touched","errors","convertJsonToFormData","json","form_data","FormData","Array","isArray","forEach","append","setToOptionModel","reOrderDnd","list","startIndex","endIndex","result","splice","removed","x","i","sortOrder","mapContentSectionName","register","getUserById","userId","getAllUsers","updateUser","changeUserPassword","newPassword","oldPassword","initialModel","isPasswordVisible","setIsPasswordVisible","useFormik","initialValues","validationSchema","LoginValidator","values","setSubmitting","loginUser","userService","catch","ex","finally","Logo","TbUserSquareRounded","helper","getFieldProps","TbLockSquareRounded","isSubmitting","isValid","handleSubmit","Section","hasNoContainer","isFullWidth","containerStyle","rowClassName","rowStyle","ContentBlock","cols","CheckboxBlock","labelClassName","isChecked","checked","for","max","fullName","phone","min","confirmPassword","oneOf","nullable","userRegisterModel","initialUpdatePasswordModel","initialEditModel","alert","registerModalVisible","setRegisterModalVisible","updatePasswordModalVisible","setUpdatePasswordRegisterModalVisible","editModalVisible","setEditModalVisible","isConfirmPasswordVisible","setIsConfirmPasswordVisible","userList","setUserList","setIsLoading","updatePasswordModel","setUpdatePasswordModel","editUserModel","setEditUserModel","regiser_user_formik","RegisterUserValidator","registerUser","update_password_user_formik","UpdatePasswordValidator","enableReinitialize","_ref2","updateUserPassword","edit_user_formik","EditUserValidator","_ref3","editUser","closeRegisterModal","resetForm","closeEditModal","columnOptions","sort","print","download","columns","customBodyRenderLite","dataIndex","OverLay","MUIDataTable","selectableRows","jumpToPage","textLabels","pagination","submitForm","FiEye","FiEyeOff","registerPlugin","FilePondPluginImageExifOrientation","FilePondPluginImagePreview","FileUploadBlock","forwardRef","labelIdle","TextAreaBlock","getAllPages","getPageById","pageId","createPage","updatePage","deletePage","assignContentSectionToPage","contentSectionId","unassignContentSection","contentSectionBannerId","sortPageContentSections","sortOrders","deleteBannerImage","isModalVisible","setIsModalVisible","settings","setSettings","selectedSetting","setSelectedSetting","isPageSEOModalVisible","setIsPageSEOModalVisible","pages","setPages","selectedPage","setSelectedPage","getPages","getSettings","async","settingService","pageService","detailedPages","all","pageDetails","updatedSetting","setting","handleModalClose","getSetting","setValues","settingsColumns","setCellProps","search","viewColumns","isSortModalOpen","setIsSortModalOpen","setMenuItems","sortList","setSortList","getMenuItems","b","DragDropContext","onDragEnd","tempArr","Droppable","droppableId","droppableProvided","innerRef","Draggable","draggableId","draggableProvided","draggableProps","dragHandleProps","FixedActionsBar","primaryActionText","primaryActionColor","primaryActionTo","primaryActionOnClick","secondaryActionText","secondaryActionColor","secondaryActionTo","secondaryActionOnClick","optionalText","optionalActionText","optionalActionColor","optionalActionTo","optionalActionOnClick","isLeftBlockTextOnly","top","bottom","parentMenuItemId","intialMenuItemModel","confirmModalRedux","useParams","menuItemModel","setMenuItemModel","selectedOptions","setSelectedOptions","parentMenuItem","pageOptions","setPageOptions","menuItemOptions","setMenuItemOptions","assignmentMenuItemOptions","setAssignmentMenuItemOptions","selectedAssignmentMenuItem","setSelectedAssignmentMenuItem","loadOptionsAndPopulateForm","MenuItemValidator","updateMenuItem","getPageOptions","getMenuItemOptions","getMenuItem","getMenuItemForAssignments","selectedOptionsFromApi","selectedMenuItem","pageList","assignmentlist","Number","menuItemList","isClearable","selectedOpt","setFieldValue","assignMenuItem","parentId","childMenuItemIds","closeMenuOnSelect","getAllContentSections","getContentSectionById","createContentSection","contentSection","updateContentSection","deleteContentSection","getContentSectionOptions","getContentSectionOptionsForBlog","blogId","bannerTitle","isBannerVisible","bannerImageFilePath","bannerColor","keywords","description","intialPageModel","bannerImage","contentSections","typeSelectionOptions","file","setFile","selectedOption","setSelectedOption","contentBannerTypeOption","setContentBannerTypeOption","selectedContentBannerTypeOption","setSelectedContentBannerTypeOption","pageModel","setPageModel","getOptions","PageValidator","getPage","contentSectionService","hideContentSectionModal","bannerId","onupdatefiles","FaSquare","SwatchesPicker","onChangeComplete","c","hex","MdOutlinePlaylistAdd","xcontainerClassName","margin","addContentSection","sortPageContents","getBannerById","createBanner","banner","updateBanner","deleteBanner","setContentSections","isConfirmDeleteModalVisible","setIsConfirmDeleteModalVisible","getContentSections","bannerService","SelectablePreview","isSelected","Block","Quill","import","Blockquote","blotName","tagName","ImageResize","QuillTextEditor","quillRef","quillContainerRef","modules","setModules","toolbar","container","header","font","align","indent","matchVisual","imageResize","parchment","fetchThemeColors","formattedThemeColors","prevModules","initialTop","quillWidth","applyStyles","isFixed","current","querySelector","zIndex","boxShadow","transform","quill","offsetTop","offsetWidth","imageHandler","createElement","setAttribute","click","onchange","files","reader","FileReader","onload","quillEditor","getEditor","range","getSelection","getLength","svgContent","insertEmbed","btoa","setSelection","readAsText","readAsDataURL","handlers","image","ReactQuill","formats","when","is","otherwise","rawHTML","alignment","imagePath","isFloatingCard","hasRoundedCorners","isTextOnly","primaryButtonActionType","primaryButtonLink","secondaryButtonActionType","secondaryButtonLink","initialContentSectionModel","primarButtonLink","linkTypes","alignmentOptions","components","CustomSectionImage","ContentSectionDefaultImage","ContentSectionReversedImage","ContentSectionFulWidthImage","ContentSectionFulWidthPaddedImage","ContentSectionTextOnlyImage","ContentSectionFloatingCardImage","DynamicBannerSectionImage","contentSectionModel","setContentSectionModel","setAlignment","primaryActionType","setPrimaryActionType","secondaryActionType","setSecondaryActionType","getContentSection","ContentSectionValidator","fillSelectedOptions","selectedAlignment","selectedPrimaryActionType","selectedSecondaryActionType","floatingCardProp","isTextOnlyProp","isPaddedProp","alignmentProp","showOrHideFields","opt","onMenuOpen","setFieldTouched","val","testProps","createBannerItem","bannerItem","updateBannerItem","deleteBannerItem","bannerItemId","sortBannerItems","bannerItems","initialBannerModel","BannerDynamicBanner","filePondRef","initialBannerItemModel","bannerModel","setBannerModel","bannerItemModel","setBannerItemModel","getBanner","BannerValidator","formik_bannerItem","BannerItemValidator","bannerItemService","resetBannerItemForm","resetBannerItemEditFormFields","removeFiles","getAsset","updateAsset","streetAddress1","streetAddress2","city","zipCode","primaryWeekDayHours","primaryWeekEndHours","secondaryWeekDayHours","secondaryWeekEndHours","googleAnalyticsId","initialAssetModel","companyLogo","companyIcon","googleAnalyticsLink","seo","facebookPixelCode","assetModel","setAsset","logoFile","setLogoFile","iconFile","setIconFile","logoRef","iconRef","fetchAssets","AssetValidator","saveAsset","assetService","getAllFooterItems","getFooterItemById","footerItemId","createFooterItem","footerItem","updateFooterItem","deleteFooterItem","sortFooterItems","initialFooterItemModel","setFooterItems","footerItemModel","setFooterItemModel","getFooterItems","FooterItemValidator","footerItemService","closeFooterItemModal","getFooterItem","ContentSection","descriptionColor","cardBackgroundColor","isPrimaryActionTargetBlank","isSecondaryActionTargetBlank","isReversed","isTitleUppercase","hasCardBackgroundImage","isFullWidthUnpadded","contentSectionClass","Boolean","join","getDetailBlockClassName","Fade","delay","direction","Banner","bannerBackgroundColor","titlePosition","isDynamicBanner","offset","bannerTextOffset","setBannerTextOffset","calculateHeight","staticBannerHeight","headerNavigationContainerHeight","staticBannerTextHeight","staticBanner","offsetHeight","staticBannerText","headerNavigationContainer","Math","abs","backgroundPosition","textShadow","cascade","damping","captchaRef","googleMapURL","setGoogleMapURL","captchaToken","setCaptchaToken","fetchGoogleMapURL","formattedValues","reCAPTCHAToken","formType","emailService","reset","BannerImage","split","MdLocalPhone","MdLocationPin","allowFullScreen","IllustrationWave","overflow","ReCAPTCHA","sitekey","getAll","getById","update","frequencyOptions","initialClientModel","contactName","contactPhone","contactEmail","address1","address2","reportFrequency","clientId","client","setClient","parseInt","fetchClient","clientService","updateClient","createClient","authRedux","clients","setClients","getAllClients","deleteClient","bids","setBids","getAllBids","bidService","deleteBid","bidId","Step1FileUploadWizard","excelFileUpload","setExcelFileUpload","nextStep","useWizard","acceptedFileTypes","Step2LineItemListingWizard","bidItemColumns","fetchBid","tempExcelJson","setTempExcelJson","previousStep","readExcelFile","readXlsxFile","fetchValuesForUps","fetchValuesForFedEx","excelJson","trackingNumberIndex","indexOf","invoiceDateIndex","invoiceNumberIndex","serviceTypeIndex","actualWeightAmountIndex","ratedWeightAmountIndex","lengthIndex","widthIndex","heightIndex","divisorIndex","zoneCodeIndex","multiWeightNumberIndex","transportationChargeAmountIndex","netChargeAmountIndex","startIndexForTrackingID","accesoryCharges","String","invoiceDate","fedExObj","trackingNumber","substr","invoiceNumber","serviceType","actualWeightAmount","ratedWeightAmount","divisor","zoneCode","multiWeightNumber","transportationChargeAmount","netChargeAmount","arrIndex","j","_","enteredWeightIndex","billedWeightIndex","zoneIndex","chargeDescriptionIndex","basisValueIndex","incentiveAmountIndex","netAmountIndex","grossIndex","moment","format","enteredWeight","billedWeight","Zone","chargeDescription","basisValue","incentiveAmount","netAmount","gross","ReactTable","minRows","pageSizeOptions","defaultPageSize","submitBidItems","bidItemService","carrierOptions","initialBidModel","_uniqueServiceTypes$f","_uniqueServiceTypes$f2","bid","setBid","bidItems","setBidItems","isModalOpen","setIsModalOpen","uniqueServiceTypes","setUniqueServiceTypes","benchmarks","setBenchmarks","invoiceData","setInvoiceData","fetchOptionsAndBid","fetchBenchmarks","fetchClients","benchmarkService","benchms","fetchBidItems","calculateGrossAndIncentives","items","sumOfIncentiveAmount","parseFloat","convertToFloat","trackingIdChargeAmount1","trackingIdChargeAmount2","trackingIdChargeAmount3","trackingIdChargeAmount4","trackingIdChargeAmount5","trackingIdChargeAmount6","trackingIdChargeAmount7","trackingIdChargeAmount8","trackingIdChargeAmount9","trackingIdChargeAmount10","trackingIdChargeAmount11","trackingIdChargeAmount12","trackingIdChargeAmount13","trackingIdChargeAmount14","trackingIdChargeAmount15","trackingIdChargeAmount16","trackingIdChargeAmount17","trackingIdChargeAmount18","trackingIdChargeAmount19","trackingIdChargeAmount20","reduce","calculateSavingsAndVariance","bm","sumOfOldSavings","sumOfVariance","generateInvoiceData","bmPercentage","toFixed","handleInvoice","groupedByServiceType","matchedBenchMark","idsEvaluated","benchmarkGroups","benchmarkGroup","invoiceEntry","processBenchmarkGroup","match","matchedWeights","unmatchedItems","count","totalCharge","totalDiscountAmount","calculateDiscountPercentage","incentiveAmount_AZ","amount","updateBid","createBid","rowIndex","rowData","_rowData$original","original","TbChecks","bidItemColumnsReactTable","Header","accessor","Cell","cellProps","s2ab","s","buf","ArrayBuffer","view","Uint8Array","charCodeAt","Accordion","AccordionSummary","expandIcon","ExpandMoreIcon","TbFileInvoice","handleDownloadInvoice","formattedInvoice","bmAmount","workbook","XLSX","book_new","wscols","wch","worksheet","json_to_sheet","book_append_sheet","workbookBinary","bookType","blob","Blob","URL","createObjectURL","body","appendChild","removeChild","AccordionDetails","Table","striped","bordered","hover","localeCompare","_parseFloat","_parseFloat2","_parseFloat3","defaultExpanded","TbChartInfographic","totalRatedWeight","totalTransportationCharge","totalNetCharge","TbStack2","rowsPerPageOptions","rowsPerPage","fullscreen","Wizard","columnHeaders","upsFirstTableColumnHeaders","upsSecondTableColumnHeaders","headerStyles","StyleSheet","flexDirection","justifyContent","alignItems","marginRight","fontSize","fontWeight","View","Text","reportText","BidReportPage","styles","padding","section","flexGrow","marginLeft","table","borderStyle","borderWidth","borderLeft","borderTop","borderTopWidth","borderRightWidth","borderBottomWidth","tableRow","tableCell","borderLeftWidth","textAlign","columnHeader","textDecoration","cellText","PDFViewer","Document","Page","orientation","wrap","params","initialBenchmark","chargeType","benchmark","setBenchmark","initialGroupModel","benchmarkId","benchmarkName","groupModel","setGroupModel","isNewBenchmarkModalOpen","setIsNewBenchmarkModalOpen","setType","setFedexTransportationCharges","fedexTransportationCharges","minCharge","benchmarkDiscount","setFedexAccessorialCharge","fedexAccessorialCharge","setUpsBMTransportationCharges","upsBMTransportationCharges","setUpsAccessorialCharges","upsAccessorialCharges","addBenchmark","shouldCloseModal","_chargeTypeMap$benchm","benchmarkToAdd","chargeTypeMap","fedex","Accessorial","Transportation","ups","prevCharges","handleValueUpdate","findBenchmark","getValueByName","addGroup","handleInLineChange","order","Tabs","activeKey","onSelect","k","Tab","eventKey","_benchmarks$find","_benchmarks$find$benc","_benchmarks$find2","_benchmarks$find2$ben","TbPlus","TbCurrencyDollar","TbPercentage","groupItem","_ref4","_ref5","_benchmarks$find3","_benchmarks$find3$ben","_benchmarks$find4","_benchmarks$find4$ben","_ref6","_ref7","_ref8","_ref9","_ref10","_benchmarks$find5","_benchmarks$find5$ben","_benchmarks$find6","_benchmarks$find6$ben","_ref11","_ref12","_ref13","_ref14","_ref15","_benchmarks$find7","_benchmarks$find7$ben","_benchmarks$find8","_benchmarks$find8$ben","_ref16","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","_ref23","_ref24","_ref25","_ref26","getAllBlogs","getBlogById","createBlog","blog","updateBlog","deleteBlog","assignContentSectionToBlog","sortBlogContentSections","blogs","setBlogs","getBlogs","blogService","IoMdAddCircle","intialBlogModel","blogModel","setBlogModel","BlogValidator","getBlog","ContentStrip","badgeBackgroundColor","badgeText","leftBlockText","rightBlockText","BlogsAndReviewsListingPage","filteredBlogs","setFilteredBlogs","today","setHours","addedOn","addedBy","getTime","CustomBannerInsert","offsetValue","backgroundRepeat","backgroundPositionX","backgroundPositionY","LiaShippingFastSolid","AnimatedLogo","isAnimating","setIsAnimating","animationKey","setAnimationKey","svgRef","handleLogoAnimation","prevKey","stroke","class","BiRefresh","cursor","WebsiteIntroSection","AboutIntroSection","BackgroundTexture","servicesOverview","illustration","ServicesIntroSection","BackgroundDecorationImage","HomePage","dynamicPageModel","buttonAction","banners","setBanners","setOffset","rotatingBanners","pageContentSectionBanners","Slider","dots","infinite","speed","slidesToShow","slidesToScroll","arrows","autoplay","autoplaySpeed","responsive","getCMSInfo","getDynamicPage","getDynamicBlog","initialDynamicPageModel","DynamicCMSPage","setDynamicPageModel","getDynamicBlogContent","getDynamicPageContent","homeService","actionType","generateContent","dangerouslySetInnerHTML","__html","Helmet","content","blogContentSectionBanners","initialCMSInfo","isAuthorized","setIsAuthorized","setCmsInfo","pathname","useLocation","fetchCMSInfoAndValidate","validateAccess","scrollTo","enableBodyScroll","AlertToast","ConfirmModal","Switch","Redirect","exact","LoginPage","ContactPage","PrivateRoute","UserListingPage","SettingsListingPage","ClientListingPage","ClientManagementPage","BenchmarkPage","BidListingPage","BidManagementPage","MenuItemListingPage","MenuItemManagementPage","PageListingPage","PageManagementPage","BlogListingPage","BlogManagementPage","ContentSectionListingPage","ContentSectionManagementPage","BannerManagementPage","AssetsAndResourcesPage","FooterItemListingPage","App","HttpsRedirect","BrowserRouter","Routes","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode","basename","getElementById"],"mappings":"gaAIMA,EAAc,SAACC,GACnB,IAAQC,EAA+BD,EAA/BC,UAAWC,EAAoBF,EAApBE,MAAOC,EAAaH,EAAbG,SAE1B,OACE,+CACMH,GADN,IAEEC,UAAS,UAAKA,GACdC,MAAOA,EAHT,SAKGC,MAYPJ,EAAYK,aAAe,CACzBH,UAAW,GACXC,MAAO,GACPC,SAAU,MAGGJ,QCpBf,MAAMM,EAAWL,IACf,MAAM,SACJG,EAAQ,gBACRG,EAAe,cACfC,EAAa,WACbC,EAAU,QACVC,GACET,EAGJ,OACEU,eAACX,EAAW,CAACE,UAAS,oBAAAU,OAAsBL,GAAkBH,SAAA,CAC5DS,cAACb,EAAW,CAACE,UAAS,YAAAU,OAAcH,EAAa,WAAa,YAAW,KAAAG,OAAIJ,GAAiB,eAAgBJ,SAC3GA,IAIDI,GAEAK,cAAA,UACEX,UAAU,iBACVQ,QAASA,EAAQN,SAEjBS,cAACb,EAAW,CAACE,UAAS,yBAAAU,OAA2BH,EAAa,WAAa,aAAcL,SACvFS,cAACC,IAAc,CAACC,KAfT,GAeyBb,UAAU,wBAoBtDI,EAAQD,aAAe,CAErBD,SAAU,KACVG,gBAAiB,aACjBC,eAAe,EACfC,YAAY,EACZC,QAAS,MCpDX,MAAMM,EAAYf,IAChB,MAAM,MACJgB,EAAK,WACLC,EAAU,KACVC,EAAI,SACJC,EAAQ,UACRC,EAAS,GACTC,EAAE,QACFZ,EAAO,gBACPH,EAAe,YACfgB,EAAW,iBACXC,EAAgB,uBAChBC,EAAsB,YACtBC,GACEzB,EAEE0B,EAAUC,cAMhB,OACEf,cAACb,EAAW,CAACE,UAAU,sBAAqBE,SAC1CO,eAAA,UACEQ,KAAMA,GAAQ,SACdT,QAASY,EAAK,KAAMO,OARFC,EAQiBR,OAPvCK,EAAQI,KAAKD,GADSA,OAQuBpB,EACzCR,UAAS,aAAAU,OAAeL,GAAkBH,SAAA,CAE1CO,eAACX,EAAW,CAACE,UAAU,0BAAyBE,SAAA,CAE5CgB,GAEET,eAACX,EAAW,CAACE,UAAU,sBAAqBE,SAAA,CACzCgB,EAGCG,GAAeG,GAEbb,cAACb,EAAW,CAACE,UAAS,eAAAU,OAAiBa,GAAyBrB,SAC9DS,cAAA,KAAGX,UAAWsB,EAAiBpB,SAAEmB,SAO7CV,cAACb,EAAW,CAACE,UAAU,kBAAiBE,SACtCS,cAAA,KAAGX,UAAS,SAAAU,OAAWM,GAAad,SAAEa,SAKxCI,GAEER,cAACb,EAAW,CAACE,UAAU,qBAAoBE,SACxCiB,UAuCfL,EAASX,aAAe,CAEtBY,MAAO,GACPC,WAAY,iBACZC,KAAM,GAGNC,SAAU,KACVC,UAAW,KAGXE,YAAa,GACbC,iBAAkB,aAClBC,uBAAwB,iBAGxBlB,gBAAiB,aAGjBe,GAAI,GAGJI,aAAa,EAGbhB,QAAS,MAGIM,Q,kBC3Hf,MAAMgB,EAAU/B,IACd,MAAM,KACJgC,EAAI,KACJlB,EAAI,KACJI,EAAI,MACJhB,EAAK,SACL+B,EAAQ,GACRZ,EAAE,QACFZ,EAAO,UACPR,EAAS,gBACTiC,EAAe,QACfC,EAAO,UACPC,EAAS,WACTC,EAAU,iBACVC,EAAgB,oBAChBC,EAAmB,SACnBpB,EAAQ,UACRC,GACEpB,EAaE0B,EAAUC,cAMhB,OACEjB,eAAA8B,WAAA,CAAArC,SAAA,CACEO,eAAA,UACEuB,SAAUA,EACVf,KAAMA,EACNT,QAASY,EAAK,KAAMO,OATFC,EASiBR,OARvCK,EAAQI,KAAKD,GADSA,OASuBpB,EACzCR,UAAS,SAAAU,OAAWG,GAvBZ,CACZ2B,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,IAAK,QACLC,KAAM,SACNC,KAAM,SACNC,MAAO,kBAe+BlC,GAAK,KAAAH,OAAIV,EAAS,KAAAU,OAAIuB,EAAkB,YAAc,GAAE,KAAAvB,OAAIwB,EAAU,QAAU,IAClHjC,MAAOA,EACP+C,SAAUZ,GAAcD,EAAUjC,SAAA,CAEjCgB,EACAiB,EAAYxB,cAACsC,IAAgB,CAACjD,UAAU,kCAAkCa,KAAM,KAASkB,EACzFZ,KAGDkB,GAEE1B,cAACb,EAAW,CAACE,UAAS,gCAAAU,OAAkC4B,EAAsB,UAAY,UAAWpC,SAClGmC,QAgCbP,EAAO3B,aAAe,CAEpB4B,KAAM,GACNlB,KAAM,GACNI,KAAM,SACNhB,MAAO,GACP+B,UAAW,EACXZ,GAAI,KACJZ,QAASA,OACTR,UAAW,GACXiC,iBAAiB,EACjBC,SAAS,EACTC,WAAW,EACXC,YAAY,EAGZC,iBAAkB,KAClBC,qBAAqB,EAGrBpB,SAAU,KACVC,UAAW,MAGEW,QCjHToB,EAAY,SAACnD,GACjB,IACEkB,EAiBElB,EAjBFkB,KACAc,EAgBEhC,EAhBFgC,KACAoB,EAeEpD,EAfFoD,KACAC,EAcErD,EAdFqD,mBACApD,EAaED,EAbFC,UACAqD,EAYEtD,EAZFsD,SACAC,EAWEvD,EAXFuD,MACAC,EAUExD,EAVFwD,WACAC,EASEzD,EATFyD,gBACAC,EAQE1D,EARF0D,sBACAC,EAOE3D,EAPF2D,WACAC,EAME5D,EANF4D,gBACAnD,EAKET,EALFS,QACAoD,EAIE7D,EAJF6D,cACAC,EAGE9D,EAHF8D,SACAC,EAEE/D,EAFF+D,YACAC,EACEhE,EADFgE,UASF,OACE,eAAC,EAAD,CAAa/D,UAAU,wBAAvB,UACE,eAAC,EAAD,CAAaA,UAAS,qBAAgBqD,GARpB,CACpBW,KAAM,OACNC,OAAQ,SACRC,MAAO,SAK2Db,GAA1C,YAAuDD,EAAvD,YAA6EW,EAAY,aAAe,IAA9H,UAEa,WAAT9C,GAEE,mBAAGjB,UAAS,iBAAY6D,EAAW,SAAW,GAAlC,YAAwCC,EAAc,YAAc,GAApE,YAA0E9D,EAA1E,YAAuFsD,GAAnG,SACGvB,IAMI,cAATd,GAEE,mBAAGjB,UAAS,oBAAe6D,EAAW,SAAW,GAArC,YAA2CC,EAAc,YAAc,GAAvE,YAA6E9D,EAA7E,YAA0FsD,GAAtG,SACGvB,IAMI,gBAATd,GAA0B,qBAAKjB,UAAS,sBAAiBA,EAAjB,YAA8BsD,GAA5C,SAAsDvB,IAIvE,SAATd,GAEE,mBACEkD,KAAMhB,EAAMiB,OAAQR,EAAgB,SAAW,QAC/C5D,UAAS,eAAUA,EAAV,YAAuBsD,GAChCe,IAAI,aAHN,SAKGtC,OAMNgC,GAA4B,KAAfR,GAEZ,cAAC,EAAD,CAAavD,UAAU,8BAAvB,SACE,cAAC,EAAD,CACE+B,KAAMwB,EACNvD,UAAS,4BAAuBwD,EAAvB,YAA0CC,GACnDjD,QAASA,EACTK,KAAM6C,EACNvC,UAAWwC,UAsCzBT,EAAU/C,aAAe,CAEvB4B,KAAM,GACNsB,SAAU,OACVC,MAAO,YACPF,mBAAoB,GACpBpD,UAAW,GAGXmD,KAAM,IAGNI,WAAY,GACZC,gBAAiB,iBACjBC,sBAAuB,GACvBC,WAAY,GACZC,gBAAiB,KAGjBC,eAAe,EACfC,UAAU,EACVC,aAAa,EACbC,WAAW,EAGXvD,QAAS,MAGI0C,QC3If,MAAMoB,EAASvE,IACb,MAAM,GACJqB,EAAE,QACFZ,EAAO,mBACP4C,EAAkB,UAClBpD,EAAS,gBACTuE,EAAe,OACfC,EAAM,IACNC,EAAG,MACH1D,EAAK,MACLd,GACEF,EAEE0B,EAAUC,cAMhB,OACEf,cAAA4B,WAAA,CAAArC,SAEY,KAAPkB,GAAqBZ,EAElBC,eAAA,UACED,QAASY,EAAK,KAAMO,OAVRC,EAUuBR,OAT7CK,EAAQI,KAAKD,GADSA,OAU6BpB,EACzCR,UAAWoD,EACXnC,KAAK,SACLhB,MAAOA,EAAMC,SAAA,CAEbS,cAAA,OACEX,UAAS,QAAAU,OAAU6D,EAAkB,YAAc,GAAE,KAAA7D,OAAIV,GACzD0E,IAAKF,EACLC,IAAKA,IAIK,KAAV1D,GAEEJ,cAACuC,EAAS,CACRjC,KAAK,cACLc,KAAMhB,EACNsC,SAAS,SACTrD,UAAU,mBAMlBS,eAACX,EAAW,CAACE,UAAWoD,EAAmBlD,SAAA,CACzCS,cAAA,OACEX,UAAS,QAAAU,OAAU6D,EAAkB,YAAc,GAAE,KAAA7D,OAAIV,GACzD0E,IAAKF,EACLC,IAAKA,IAIK,KAAV1D,GAEEJ,cAACuC,EAAS,CACRjC,KAAK,cACLc,KAAMhB,EACNsC,SAAS,SACTrD,UAAU,sBAuB9BsE,EAAMnE,aAAe,CAEnBiB,GAAI,GACJqD,IAAK,QACL1D,MAAO,GACPP,QAAS,KACT4C,mBAAoB,GACpBpD,UAAW,GACXuE,iBAAiB,GAGJD,QCnFf,MAAMK,EAAU5E,IACd,MAAM,gBACJM,EAAe,KACfyC,EAAI,OACJ8B,EAAM,YACNC,EAAW,iBACXC,EAAgB,gBAChBC,EAAe,UACfC,EAAS,kBACTC,EAAiB,eACjBC,EAAc,8BACdC,EAA6B,UAC7BC,EAAS,wBACTC,EAAuB,aACvBC,EAAY,0BACZC,EAAyB,yBACzBC,EAAwB,2BACxBC,EAA0B,0BAC1BC,EAAyB,cACzBC,EAAa,gBACbC,EAAe,oBACfC,EAAmB,0BACnBC,EAAyB,eACzBC,EAAc,cACdC,EAAa,YACbC,EAAW,QACXzF,GACET,EAEE0B,EAAUC,cAIVC,EAAkBC,IACtBH,EAAQI,KAAKD,IAGf,OACEnB,eAACX,EAAW,CAACE,UAAU,oBAAmBE,SAAA,CAExCO,eAACX,EAAW,CAACE,UAAS,WAAAU,OAAaL,GAAkBH,SAAA,CACnDO,eAACX,EAAW,CAACE,UAAU,aAAYE,SAAA,CAE/B0F,GAEEnF,eAAA,UACET,UAAS,uBAAAU,OAAyBoF,GAA6B,iCAAgC,KAAApF,QAAKmF,GAAuB,aAC3HrF,QAASA,KACPiB,EAAQyE,UACRhG,SAAA,CAEFS,cAACwF,IAAa,CAACnG,UAAW+E,EAAiBlE,KApBxC,KAqBFgF,GAAuBlF,cAAA,KAAGX,UAAS,sBAAAU,OAAwBqE,GAAkB7E,SAAC,YAKnF4C,GAEEnC,cAACb,EAAW,CACVE,UAAS,QAAAU,OAAUkF,EAAkB,QAAU,GAAE,KAAAlF,OAAIuF,EAAc,kBAAoB,IACvFzF,QAASyF,EAAY/F,SAErBS,cAAC2D,EAAK,CACJE,OAAQ1B,MAKdiD,GAAmBpF,cAAA,KAAGX,UAAS,gBAAAU,OAAkBoE,GAAmB5E,SAAE2E,OAIxEc,GAEEhF,cAACb,EAAW,CAACE,UAAU,mBAAkBE,SACvCS,cAAA,MAAIX,UAAU,aAAYE,SAEtB8E,EAAUoB,KAAKC,GACbA,EAASC,aAEL7F,eAAA,MAAIT,UAAU,cAAaE,SAAA,CACzBS,cAACmB,EAAM,CACLC,KAAMsE,EAASE,KACf/F,QAAS6F,EAASjF,GAAK,IAAMO,EAAe0E,EAASjF,IAAMiF,EAAS7F,QACpER,UAAS,aAAAU,OAAeuE,GACxB9D,UAAWR,cAAC6F,IAAa,MAE3B7F,cAACb,EAAW,CAACE,UAAU,2BAA0BE,SAC/CS,cAAA,MAAIX,UAAU,sBAAqBE,SAE/BmG,EAASC,aAAaF,KAAKK,GACzB9F,cAAA,MAAAT,SACES,cAACG,EAAQ,CACPC,MAAO0F,EAAYF,KACnBnF,GAAIqF,EAAYrF,GAChBZ,QAASiG,EAAYjG,QACrBU,SAAUuF,EAAYvF,SACtBlB,UAAU,wBASxBW,cAAA,MAAAT,SACES,cAACmB,EAAM,CACLC,KAAMsE,EAASE,KACfvG,UAAS,aAAAU,OAAe2F,EAASjF,KAAOgE,EAAY,eAAiBH,EAAiB,KAAAvE,OAAI2F,EAASjF,KAAOgE,EAAYD,EAAgC,IACtJ3E,QAAS6F,EAASjF,GAAK,IAAMO,EAAe0E,EAASjF,IAAMiF,EAAS7F,kBAWxFC,eAACX,EAAW,CAACE,UAAU,gBAAeE,SAAA,CACnCmF,EAED5E,eAACX,EAAW,CAACE,UAAU,eAAcE,SAAA,CAEH,OAA9BwF,GAEE/E,cAAA,UACE,aAAW,cACXH,QAASkF,EACT1F,UAAU,cAAaE,SAEvBS,cAAC+F,IAAc,CAAC1G,UAAWiF,EAAmBpE,KAxGvC,OA8GX4E,GAEE9E,cAAA,UACE,aAAW,cACXH,QAASiF,EACTzF,UAAU,cAAaE,SAEvBS,cAACgG,IAAQ,CAAC3G,UAAWiF,EAAmBpE,KArHjC,OA2HXwE,GAEE1E,cAAA,UACE,aAAW,cACXH,QAASgF,EACTxF,UAAU,cAAaE,SAEvBS,cAACiG,IAAU,CAAC5G,UAAWiF,EAAmBpE,KAlInC,UAwIfF,cAAA,UACEH,QAASwF,EACThG,UAAS,eAAAU,OAAiB6E,GAA4BrF,SAEtDS,cAAA,KAAGX,UAAU,gBAAeE,SAAEoF,YAMpC7E,eAACX,EAAW,CAACE,UAAU,aAAYE,SAAA,CACjCS,cAACb,EAAW,CAACE,UAAU,aAAYE,SAE/B4C,GAEEnC,cAACb,EAAW,CAACE,UAAU,OAAME,SAC3BS,cAAC2D,EAAK,CACJE,OAAQ1B,EACR1B,GAAIwD,QAOdjE,cAACb,EAAW,CAACE,UAAU,gBAAeE,SACpCO,eAACX,EAAW,CAACE,UAAU,eAAcE,SAAA,CACnCS,cAAA,UACEH,QAASwF,EACThG,UAAS,eAAAU,OAAiB6E,GAA4BrF,SAEtDS,cAAA,KAAGX,UAAU,gBAAeE,SAAEoF,MAGhC3E,cAAA,UACEH,QAASA,EACTR,UAAU,cAAaE,SAEtBgF,gBA+CfP,EAAOxE,aAAe,CAEpBE,gBAAiB,aACjByC,KAAM,KACN8B,OAAQ,IACRC,YAAa,KACbC,iBAAkB,iBAClBC,gBAAiB,gBACjBC,UAAW,KACXC,kBAAmB,iBACnBC,eAAgB,KAEhBC,8BAA+B,oCAC/BC,UAAW,GAGXC,wBAAyB,GAGzBC,aAAc,GACdC,0BAA2B,iBAG3BC,yBAA0BA,OAC1BC,2BAA4BA,OAC5BC,0BAA2B,KAC3BM,cAAe,KACfC,YAAa,KACbzF,QAAS,KAGTmF,eAAe,EACfC,iBAAiB,EACjBC,qBAAqB,EACrBC,2BAA2B,EAC3BC,gBAAgB,GAGHpB,QCvTA,MAA0B,iC,2BCO5BkC,EACJ,iBADIA,EAEH,kBAFGA,EAGG,yBAGVC,EAAmB,CACvBC,KAAM,CACJC,UAAW,GACXC,SAAU,GACVC,SAAU,IAEZC,UAAW,GACXC,aAAc,GACdC,QAAS,IAGEC,EAAUC,YACrB,CAAEC,YAASC,IAAK,OAAQC,UAAW,CAAC,OAAQ,YAAa,eAAgB,aACzE,WAAuC,IAAtCC,EAAqC,uDAA7Bb,EAAkBc,EAAW,uCACpC,OAAQA,EAAO3G,MACb,KAAK4F,EACH,IAAQgB,EAAUD,EAAOE,QAAjBD,MACFE,EAAaH,EAAOE,QACpBE,EAAeC,YAAWJ,GAGhC,cAFOE,EAAWF,MAEX,CAAEd,KAAMgB,EAAYZ,UAAWU,EAAOR,QAAkC,SAAzBW,EAAaE,QAAoBd,aAAcW,EAAWX,cAGlH,KAAKP,EACH,IAAQgB,EAAUD,EAAOE,QAAjBD,MACFE,EAAaH,EAAOE,QACpBE,EAAeC,YAAWJ,GAGhC,cAFOE,EAAWF,MAEX,CAAEd,KAAMgB,EAAYZ,UAAWU,EAAOR,QAAkC,SAAzBW,EAAaE,QAAoBd,aAAcW,EAAWX,cAGlH,KAAKP,EACH,OAAOC,EAGT,QACE,OAAOa,MAKFQ,EAAU,CACrBC,MAAO,SAACrB,GAAD,MAAW,CAAE9F,KAAM4F,EAAmBiB,QAASf,IACtDsB,OAAQ,iBAAO,CAAEpH,KAAM4F,IACvBO,aAAc,SAACL,GAAD,MAAW,CAAE9F,KAAM4F,EAA0BiB,QAASf,KCijBvDuB,mBAFYX,IAAK,CAAQY,KAAMZ,EAAMY,QAEV,IAAKA,GAAhCD,EA7hBME,IAAwC,IAArCC,UAAWC,KAAcC,GAAMH,EACrD,MAAM,gBAAEI,GAAoBD,EAAKE,SAC1BC,EAAaC,GAAkBC,mBAAS,KAExCC,EAAcC,GAAmBF,oBAAS,IAK1CG,EAAoBC,GAAyBJ,oBAAS,IACtDK,EAA2BC,GAAgCN,oBAAS,GAErEvH,EAAUC,cACV6H,EAAW,GAEXC,EAAY,eAGlBC,qBAAU,MACHX,EAAYY,OAAS,GACxBX,EAAeJ,EAAKJ,KAAKxB,QAE1B,IAEH,MAuKM4C,EAAkB,CACtB,CACEC,GAAI,EACJrD,KAAM,YACNnF,GAAI,6CACJZ,QAAS,KACTU,SAAUP,cAACkJ,IAAM,CAAC7J,UAAWwJ,EAAW3I,KAAM0I,IAC9CjD,aAAc,MAGhB,CACEsD,GAAI,EACJrD,KAAM,UACNnF,GAAI,4BACJZ,QAAS,KACTU,SAAUP,cAACkJ,IAAM,CAAC7J,UAAWwJ,EAAW3I,KAAM0I,IAC9CjD,aAAc,MAGhB,CACEsD,GAAI,EACJrD,KAAM,UACNnF,GAAI,KACJZ,QAAS,KACTU,SAAUP,cAACmJ,IAAU,CAAC9J,UAAWwJ,EAAW3I,KAAM0I,IAClDjD,aAAc,CACZ,CACEsD,GAAI,EACJrD,KAAM,iBACNnF,GAAI,KACJZ,QAASA,KACPuJ,OAAOC,KAAK,QAAS,WAEvB9I,SAAUP,cAACsJ,IAAW,CAACpJ,KAAM,GAAIb,UAAWwJ,KAE9C,CACEI,GAAI,EACJrD,KAAM,aACNnF,GAAI,6BACJZ,QAAS,KACTU,SAAUP,cAACuJ,IAAgB,CAACrJ,KAAM,GAAIb,UAAWwJ,KAEnD,CACEI,GAAI,EACJrD,KAAM,QACNnF,GAAI,wBACJZ,QAAS,KACTU,SAAUP,cAACwJ,IAAS,CAACtJ,KAAM,GAAIb,UAAWwJ,KAS5C,CACEI,GAAI,EACJrD,KAAM,mBACNnF,GAAI,mCACJZ,QAAS,KACTU,SAAUP,cAACyJ,IAAU,CAACvJ,KAAM,GAAIb,UAAWwJ,KAE7C,CACEI,GAAI,EACJrD,KAAM,YACNnF,GAAI,uCACJZ,QAAS,KACTU,SAAUP,cAAC0J,IAAY,CAACxJ,KAAM,GAAIb,UAAWwJ,KAE/C,CACEI,GAAI,EACJrD,KAAM,eACNnF,GAAI,+BACJZ,QAAS,KACTU,SAAUP,cAAC2J,IAAgB,CAACzJ,KAAM,GAAIb,UAAWwJ,OAKvD,CACEI,GAAI,EACJrD,KAAM,WACNnF,GAAI,GACJZ,QAAS,KACTU,SAAUP,cAACiG,IAAU,CAAC5G,UAAWwJ,EAAW3I,KAAM0I,IAElDjD,aAAc,CACZ,CACEsD,GAAI,EACJrD,KAAM,QACNnF,GAAI,0BACJF,SAAUP,cAAC4J,IAAO,CAAC1J,KAAM,GAAIb,UAAWwJ,QAElB,IAAnBV,EAAYc,IAAqC,UAAzBd,EAAY5B,SAAwB,CAAC,CAChE0C,GAAI,EACJrD,KAAM,UACNnF,GAAI,6BACJF,SAAUP,cAAC6J,IAAU,CAAC3J,KAAM,GAAIb,UAAWwJ,MACxC,MAQIiB,IAOAC,IAOAC,IAGAhC,EAAKJ,KAAKqC,YAIVC,IAOAC,IAOf,OACEnK,cAACoK,IAAK,IACApC,EAAMqC,OAASjL,GACjBU,eAAA8B,WAAA,CAAArC,SAAA,CACES,cAACgE,EAAM,CACLiB,iBAAe,EACfE,2BAAyB,EACzBH,eAAa,EACbI,gBAAc,EACdjD,KAAMmI,EACNrG,OAvUO,SAwUPC,YAAa8D,EAAK5H,MAClBqE,UAAWuD,EAAK/G,KAChB0D,aAAa,KAGbN,UAAW2E,EACX1D,YAAaA,KACXxE,EAAQI,KAAK,eAEfqD,eACE+D,EAEItI,cAACuK,IAAG,CACFrK,KAvVI,GAuViBb,UAAU,cAC/BmL,YAAY,MAGdxK,cAACyK,IAAM,CACLvK,KA5VI,GA4ViBb,UAAU,iBAC/BmL,YAAY,MAIpB1F,2BAA4BA,KAC1BkD,EAAKN,UAEPrC,cAAeA,KACbvE,EAAQI,KAAK,gBAEfrB,QAASA,KA5VjB0I,GAAiBD,MAsdXtI,cAACb,EAAW,CAACE,UAAU,kBAAiBE,SAkCtCS,cAACb,EAAW,CAACE,UAAU,oBAAmBE,SACxCS,cAAC+H,EAAS,IAAK3I,gB,SCxlBvBsL,EAAU,SAACtL,GACf,IACEuL,EAIEvL,EAJFuL,YACAC,EAGExL,EAHFwL,gBACA/K,EAEET,EAFFS,QACAgL,EACEzL,EADFyL,UAQIC,EAAcC,oBAAU,CAAEC,QAAS,EAAGC,KAAM,CAAED,QAAS,KACvDE,EAAU,cAAC,IAAD,CAAkB7L,UAAU,wCAAwCa,KAAM,KAE1F,OACE,mCAEKyK,EAWG,cAAC,EAAD,CAAatL,UAAU,cAAvB,SACGwL,GAAaK,IAVhB,wBACE7L,UAAS,kBAAauL,GAdH,CAC7BO,OAAQ,SACRC,KAAM,QAYoER,IAChEtL,MAAOwL,EACPjL,QAASA,EAHX,SAKGgL,GAAaK,OAqB5BR,EAAQlL,aAAe,CAErBmL,aAAa,EACbC,gBAAiB,SACjB/K,QAAU,aACVgL,WAAW,GAGEH,Q,8CCWAW,MArEWjM,IACxB,MAAM,UACJkM,EAAS,YACTC,EAAW,WACXC,EAAU,WACVC,EAAU,cACVC,EAAa,UACbrM,EAAS,MACTe,GACEhB,EACEqE,EAASkI,iBAAO,MAEtB,OAAKL,EAGHxL,eAAA8B,WAAA,CAAArC,SAAA,CACGa,GACCJ,cAAC4L,IAAc,CACbC,UAAU,SACVC,WAAaC,IACXA,EAAKC,UAAUC,OAAO,QACtBF,EAAKC,UAAUE,IAAI,SAErBC,UAAYJ,IACVA,EAAKC,UAAUC,OAAO,QACtBF,EAAKC,UAAUE,IAAI,SAErBE,QACEpM,cAACqM,IAAO,CAACpD,GAAG,kBAAkB5J,UAAU,iBAAgBE,SACrDa,IAEHb,SAEFO,eAAA,UACEwM,IAAK7I,EACL5D,QAAS6L,EACTrM,UAAS,eAAAU,OAAiBV,GAAa,GAAE,2EACzCC,MAAO,CAAEiN,WAAYhB,GAAchM,SAAA,CAElCkM,EACAD,GACDxL,cAAA,KAAGX,UAAU,6BAA4BE,SACtCiM,UAQPpL,GACAN,eAAA,UACEwM,IAAK7I,EACL5D,QAAS6L,EACTrM,UAAS,eAAAU,OAAiBV,GAAa,GAAE,2EACzCC,MAAO,CAAEiN,WAAYhB,GAAchM,SAAA,CAElCkM,EACAD,GACDxL,cAAA,KAAGX,UAAU,6BAA4BE,SACtCiM,UAhDY,MCyNVgB,OAlNQpN,IACrB,MAAM,QAAE8I,EAAO,QAAEpH,EAAO,SAAE2L,EAAQ,mBAAEhK,GAAuBrD,GACrD,YAAEsN,EAAW,aAAEC,GAAiBzE,EAChC0E,EAAiB1E,EAAQ7D,UAAUwI,MAAMnH,GAA+B,YAAlBA,EAASE,OAAoBkH,YAClFC,EAAOC,GAAY3E,mBAAS,KAC5B4E,EAAQC,GAAa7E,oBAAS,GAC/B8E,EAAkB,OAClBvE,EAAW,KAEXwE,EAAiB,CACrBC,UAAW,CAAC,YAAa,WAAY,UAAW,WAAY,YAAa,aACzEC,UAAW,CAAC,oBACZC,UAAW,CAAC,YAAa,YAAa,WAAY,YAAa,SAC/DC,OAAQ,CAAC,YAAa,YAAa,WAAY,WAAY,YAAa,eAAgB,UAGpFC,EAAiBC,uBAAaC,IAClC7M,EAAQI,KAAKyM,KACZ,CAAC7M,IAEE8M,EAAeF,uBAAalL,IAChC4G,OAAOC,KAAK7G,EAAM,YACjB,IAEGqL,EAAYH,uBAAaI,IAC7B1E,OAAOC,KAAK,UAADtJ,OAAW+N,GAAS,WAC9B,IAEGC,EAAkBL,uBAAaM,IACnC5E,OAAOC,KAAK,OAADtJ,OAAQiO,GAAO,WACzB,IAEGC,EAAmB,CACvB,CACEC,SAAU,UACV5C,UAAmC,OAAxBpD,EAAQiG,YACnB/N,MAAO,UACPmL,YAAa,UACbE,WAAYzL,cAACoO,IAAS,CAACzL,MAAOwK,EAAiBjN,KAAM0I,IACrD8C,cAAeA,IAAMkC,EAAa1F,EAAQiG,cAE5C,CACED,SAAU,UACV5C,UAAmC,OAAxBpD,EAAQmG,YACnBjO,MAAO,UACPmL,YAAa,UACbE,WAAYzL,cAACsO,IAAS,CAAC3L,MAAOwK,EAAiBjN,KAAM0I,IACrD8C,cAAeA,IAAMkC,EAAa1F,EAAQmG,cAE5C,CACEH,SAAU,YACV5C,UAAqC,OAA1BpD,EAAQqG,cACnBnO,MAAO,UACPmL,YAAa,UACbG,cAAeA,IAAMkC,EAAa1F,EAAQqG,eAC1C9C,WACE3L,eAAA,OACE0O,MAAM,KACNC,OAAO,OACPC,QAAQ,cACRC,KAAK,OACLC,MAAM,6BAA4BrP,SAAA,CAElCS,cAAA,QAAM6O,EAAE,ycAAycF,KAAK,YACtd3O,cAAA,QAAM6O,EAAE,gPAAgPF,KAAK,YAC7P3O,cAAA,QAAM6O,EAAE,gPAAgPF,KAAK,YAC7P3O,cAAA,QAAM6O,EAAE,sJAAsJF,KAAK,YACnK3O,cAAA,QAAM6O,EAAE,wJAAwJF,KAAK,gBAI3K,CACET,SAAU,SACV5C,UAAkC,OAAvBpD,EAAQ4G,WACnB1O,MAAO,SACPmL,YAAa,UACbG,cAAeA,IAAMkC,EAAa1F,EAAQ4G,YAC1CrD,WACE3L,eAAA,OACE0O,MAAM,KACNC,OAAO,OACPC,QAAQ,cACRC,KAAK,OACLC,MAAM,6BAA4BrP,SAAA,CAElCS,cAAA,QAAM6O,EAAE,0mCAA0mCF,KAAK,YACvnC3O,cAAA,QAAM6O,EAAE,i7BAAi7BF,KAAK,YAC97B3O,cAAA,QACE+O,SAAS,UACTC,SAAS,UACTH,EAAE,kgBAAkgBF,KAAK,UAE3gB3O,cAAA,QAAM6O,EAAE,qmCAAqmCF,KAAK,cAIxnC,CACET,SAAU,YACV5C,UAAqC,OAA1BpD,EAAQ+G,cACnB7O,MAAO,YACPmL,YAAa,mGACbE,WAAYzL,cAACkP,IAAe,CAACvM,MAAOwK,EAAiBjN,KAAK,OAC1DwL,cAAeA,IAAMkC,EAAa1F,EAAQ+G,gBAE5C,CACEf,SAAU,WACV5C,UAAoC,OAAzBpD,EAAQiH,aACnB/O,MAAO,WACPmL,YAAa,UACbE,WAAYzL,cAACoP,IAAY,CAACzM,MAAOwK,EAAiBjN,KAAM0I,IACxD8C,cAAeA,IAAMkC,EAAa1F,EAAQiH,eAE5C,CACEjB,SAAU,WACV5C,UAAoC,OAAzBpD,EAAQmH,aACnBjP,MAAO,WACPmL,YAAa,4CACbE,WAAYzL,cAACsP,IAAW,CAAC3M,MAAOwK,EAAiBjN,KAAM0I,IACvD8C,cAAeA,IAAMkC,EAAa1F,EAAQmH,eAE5C,CACEnB,SAAU,QACV5C,UAA2B,OAAhBoB,EACXtM,MAAM,GAADL,OAAK2M,GACVnB,YAAa,UACbE,WAAYzL,cAACuP,IAAU,CAAC5M,MAAOwK,EAAiBjN,KAAK,OACrDwL,cAAeA,IAAMqC,EAAgBrB,IAEvC,CACEwB,SAAU,QACV5C,UAA4B,OAAjBqB,EACXvM,MAAM,GAADL,OAAK4M,GACVpB,YAAa,UACbE,WAAYzL,cAACwP,IAAY,CAAC7M,MAAOwK,EAAiBjN,KAAM0I,IACxD8C,cAAeA,IAAMmC,EAAUlB,IAEjC,CACEuB,SAAU,YACV5C,WAAW,EACXlL,MAAO,aACPmL,YAAa,UACbE,WACEzL,cAACyP,IAAS,CACRd,KAAK,eACLtP,UAAU,+CACVa,KAAM0I,IAGV8C,cAAeA,IAAM+B,EAAeb,GAAkB,KACtDvN,UAAW,cAmBb,CACE6O,SAAU,QACV5C,WAAW,EACXlL,MAAO,cACPmL,YAAa,UACbE,WACEzL,cAAC0P,IAAY,CACXf,KAAK,eACLtP,UAAU,qCACVa,KAAM0I,IAGV8C,cAAeA,IAAM+B,EAAe,yBACpCpO,UAAW,UAWf,OAPAyJ,qBAAU,KACR,GAAI2D,EAAU,CACZ,MAAMkD,EAAU1B,EAAiB2B,QAAQC,GAASzC,EAAeX,GAAUqD,SAASD,EAAK3B,YACzFlB,EAAS2C,MAEV,CAAClD,IAGFzM,cAACb,EAAW,CAACE,UAAS,mBAAAU,OAAqB0C,GAAsB,8CAA+ClD,SAC7GwN,EAAMtH,KAAKoK,GACV7P,cAACqL,EAAgB,CAEfC,UAAWuE,EAAKvE,UAChBC,YAAasE,EAAKtE,YAClBC,WAAYqE,EAAKrE,WACjBC,WAAYoE,EAAKpE,WACjBC,cAAemE,EAAKnE,cACpBrM,UAAWwQ,EAAKxQ,UAChBe,MAAOyP,EAAKzP,OAPPyP,EAAK3B,e,iCC7KL,OA9CQ6B,KACrB,MAAMC,EAAOC,SAASC,gBAChBC,EAAY,CAChBC,MAAO,CACLC,aAAc,kBACdC,oBAAqB,0BACrBC,qBAAsB,2BACtBC,eAAgB,oBAChBC,sBAAuB,4BACvBC,uBAAwB,6BACxBC,SAAU,eAEZC,MAAO,CACLC,WAAY,gBACZC,WAAY,gBACZC,WAAY,gBACZC,aAAc,kBACdC,UAAW,gBAEbC,KAAM,CACJC,UAAW,eACXC,eAAgB,qBAChBC,iBAAkB,uBAClBC,aAAc,mBACdC,cAAe,qBAEjBvK,MAAO,CACLwK,aAAc,kBACdC,YAAa,iBACbC,UAAW,eACXC,aAAc,oBAalB,OATyBC,OAAOC,KAAK1B,GAAW2B,SAASC,GAAUH,OAAOC,KAAK1B,EAAU4B,IAAQtM,KAAKqB,IAAG,CACvGiL,QACAnM,KAAMkB,EACHkL,QAAQ,SAAU,IAClBA,QAAQ,kBAAmB,SAC3BC,cACHC,MAAOC,iBAAiBnC,GAAMoC,iBAAiBjC,EAAU4B,GAAOjL,IAAMuL,cC+H3D1K,aAFYX,IAAK,CAAQY,KAAMZ,EAAMY,QAEV,KAA3BD,EAtJe2K,KAE5B,MACOC,EAAoBC,GAAyBnK,oBAAS,IAEtDoK,EAAYC,GAAiBrK,mBAAS,OACtCsK,EAAaC,GAAkBvK,mBAASe,OAAOyJ,aAC/CC,EAAaC,GAAkB1K,mBAAS,IA0C/C,OAxCAS,qBAAU,KACR,MAAMkK,EAAuBA,KAC3B,MAAMxE,EAAQpF,OAAOyJ,WAErB,OADAD,EAAepE,GACXA,EAAQ,IAAY,KACpBA,GAAS,KAAOA,EAAQ,IAAY,KACpCA,GAAS,KAAOA,EAAQ,IAAY,KACpCA,GAAS,KAAOA,EAAQ,KAAa,KACrCA,GAAS,MAAQA,EAAQ,KAAa,KACnC,OAGHyE,EAAeA,IAAMP,EAAcM,KAGzC,OAFAN,EAAcM,KACd5J,OAAO8J,iBAAiB,SAAUD,GAC3B,IAAM7J,OAAO+J,oBAAoB,SAAUF,KACjD,IAEHnK,qBAAU,KACR,IAAKgK,EAAY/J,OAAS,EAAG,CAC3B,MAAMqK,EAAkBC,KACxBN,EAAeK,MAEhB,IAEHtK,qBAAU,KAC2B,CACjC,MAAMwK,EAAeA,KACff,GACFC,GAAsB,IAK1B,OADApJ,OAAO8J,iBAAiB,SAAUI,GAC3B,KACLlK,OAAO+J,oBAAoB,SAAUG,OAGxC,CAACf,IAGFzS,eAACyT,KAAS,CACRC,OAAK,EACLnU,UAAU,MACVC,MAAO,CACLmU,gBAAiB,qHACjBC,eAAgB,aAChBnU,SAAA,CAGFS,cAAC2T,KAAG,CAACtU,UAAU,qBAAoBE,SACjCS,cAAC4T,KAAG,CAAArU,SACFO,eAACX,EAAW,CAACE,UAAU,kDAAkDQ,QAASA,IAAM2S,GAAuBD,GAAoBhT,SAAA,CACjIS,cAAA,KACEX,UAAU,iHACVC,MAAO,CAAEuU,OAAQ,kBAAmBC,WAAY,MAAOC,cAAe,OAAQxU,SAC/E,YAGDO,eAAA,KAAGT,UAAU,iHAAgHE,SAAA,CAC3HS,cAACgU,IAAc,CAAC3U,UAAU,YACzBsT,EACA,IAAI,QAGP7S,eAAA,KAAGT,UAAU,iHAAgHE,SAAA,CAC3HS,cAACiU,IAAgB,CAAC5U,UAAU,YAC3BoT,KAGHzS,cAACb,EAAW,CAACE,UAAU,UAASE,SAC7BgT,EACCvS,cAACkU,IAAyB,CAAC7U,UAAU,yBAErCW,cAACmU,IAA0B,CAAC9U,UAAU,kCAQ/CkT,GACCzS,eAACX,EAAW,CAACE,UAAU,iCAAgCE,SAAA,CAErDO,eAAC6T,KAAG,CAAApU,SAAA,CACFS,cAAA,KAAGX,UAAU,6CAA4CE,SAAC,iBACzDuT,GACD9S,cAAC4T,KAAG,CAACvU,UAAU,4CAA2CE,SACvDuT,EAAYrN,KAAK9C,GAChB7C,eAACX,EAAW,CACOE,UAAU,wCAC3BC,MAAO,CAAE8U,SAAU,QAAS7U,SAAA,CAE5BS,cAAA,QACEV,MAAO,CACLmP,OAAQ,OACR/O,gBAAiBiD,EAAMuP,MACvBmC,UAAW,UACXC,aAAc,iBAGlBtU,cAAA,KACEX,UAAU,+CACVC,MAAO,CAAE+U,UAAW,UAAWC,aAAc,eAAgB/U,SAE5DoD,EAAMiD,SAfJjD,EAAMiD,aAwBnB9F,eAAC6T,KAAG,CAAApU,SAAA,CACFS,cAAA,KAAGX,UAAU,6CAA4CE,SAAC,oBAE1DS,cAAC4T,KAAG,CAACvU,UAAU,4CAA2CE,SACxDS,cAAA,QAAMX,UAAU,aAAYE,SAAC,aAMjCO,eAAC6T,KAAG,CAAApU,SAAA,CACFS,cAAA,KAAGX,UAAU,6CAA4CE,SAAC,oBAE1DS,cAAC4T,KAAG,CAACvU,UAAU,4CAA2CE,SACxDS,cAAA,QAAMX,UAAU,aAAYE,SAAC,sBAY5BoI,I,8BC5JT4M,GAAc,SAACnV,GACnB,IACEqD,EAkBErD,EAlBFqD,mBACA+R,EAiBEpV,EAjBFoV,MACAC,EAgBErV,EAhBFqV,WACAC,EAeEtV,EAfFsV,WACAC,EAcEvV,EAdFuV,WACAC,EAaExV,EAbFwV,aACAC,EAYEzV,EAZFyV,eACAC,EAWE1V,EAXF0V,eACAzV,EAUED,EAVFC,UACAK,EASEN,EATFM,gBACAqV,EAQE3V,EARF2V,YACAC,EAOE5V,EAPF4V,QACAC,EAME7V,EANF6V,YACAC,EAKE9V,EALF8V,eACAC,EAIE/V,EAJF+V,QACAC,EAGEhW,EAHFgW,WACA3T,EAEErC,EAFFqC,WACA4T,EACEjW,EADFiW,UAIIC,EAAc,CAClBC,MAAO,QACPC,QAAS,UACTC,QAAS,UACTpT,SAAU,YAGZ,OACE,eAAC,EAAD,CAAahD,UAAS,gCAA2BoD,GAAjD,UAEIiS,GAEE,uBAAMrV,UAAS,gCAA2BsV,GAA1C,UACGD,EACAU,GAAc,sBAAM/V,UAAU,qBAAhB,eAEb6V,GAEE,cAAC,IAAD,CACE7T,SAAS,KACThC,UAAU,+CACVa,KAAM,GACNZ,MAAO,CAAEoW,WAAY,QAQ/BlB,GAEE,uBAAMnV,UAAS,uBAAkBsV,EAAlB,YAAgCF,GAAcnV,MAAO,CAAEqW,QAAS,eAAgBC,aAAc,IAA7G,UACGpB,EACAY,GAAc,sBAAM/V,UAAU,qBAAhB,eAEb6V,GAEE,cAAC,IAAD,CACE7T,SAAS,KACThC,UAAU,gDACVa,KAAM,QAShB8U,EAEI,cAAC,KAAD,2BACM5V,GADN,IAEE+V,QAASA,EACTJ,YAAaA,IAAgBI,EAAU,iBAAmB,iBAC1DU,gBAAe,UAAKxW,EAAL,YAAkBK,EAAlB,YAAqCiV,GAAcW,EAAYX,GAA/D,YAA8EU,EAAY,YAAc,GAAxG,YAA+GX,GAAeF,EAAmB,GAAX,UACrJ/S,cAAeA,GAA6B,aAAfkT,MAK/BM,EAEI,cAAC,KAAD,2BACM7V,GADN,IAEE+V,QAASA,EACTJ,YAAaA,IAAgBI,EAAU,iBAAmB,iBAC1DU,gBAAe,UAAKxW,GAAa,GAAlB,YAAwBK,EAAxB,YAA2CiV,GAAcW,EAAYX,GAArE,YAAoFU,EAAY,YAAc,GAA9G,YAAqHX,GAAeF,EAAmB,GAAX,UAC3J/S,cAAeA,GAA6B,aAAfkT,MAK/B,cAAC,KAAD,2BACMvV,GADN,IAEE+V,QAASA,EACTJ,YAAaA,IAAgBI,EAAU,iBAAmB,iBAC1DU,gBAAe,UAAKxW,GAAa,GAAlB,YAAwBK,EAAxB,YAA2CiV,GAAcW,EAAYX,GAArE,YAAoFU,EAAY,YAAc,GAA9G,YAAqHX,GAAeF,EAAmB,GAAX,UAC3J/S,cAAeA,GAA6B,aAAfkT,MAQxB,UAAfA,GAEE,sBAAMtV,UAAS,0CAAqCqV,GAAcF,EAAQ,WAAa,IAAvF,SACGI,IAAiBF,GAAcF,EAASE,GAAU,UAAOF,EAAP,YA3FlC,eA2F0E,6BAKhF,YAAfG,GAEE,sBAAMtV,UAAS,4CAAuCqV,GAAcF,EAAQ,WAAa,IAAzF,SACGM,IAKU,YAAfH,GAEE,sBAAMtV,UAAS,4CAAuCqV,GAAcF,EAAQ,WAAa,IAAzF,SACGK,QAsCbN,GAAY/U,aAAe,CAEzBiD,mBAAoB,GAGpB+R,MAAO,GACPC,WAAY,GACZC,WAAY,GAGZC,WAAY,GACZC,aAAc,GACdC,eAAgB,GAChBC,eAAgB,GAGhBzV,UAAW,GACXK,gBAAiB,aACjBqV,YAAa,GAGbC,SAAS,EACTC,aAAa,EACbC,gBAAgB,EAChBC,SAAS,EACTC,YAAY,EACZ3T,YAAY,EACZ4T,WAAW,GAGEd,UC1MTuB,GAAO,SAAC1W,GACZ,IACEoV,EAKEpV,EALFoV,MACAC,EAIErV,EAJFqV,WACA/U,EAGEN,EAHFM,gBACAG,EAEET,EAFFS,QACAwV,EACEjW,EADFiW,UAGF,OACE,cAAC,EAAD,CAAahW,UAAU,iBAAvB,SACE,cAAC,EAAD,CACE+B,KAAMoT,EACN3U,QAASA,EACTR,UAAS,eAAUgW,EAAY,WAAa,GAAnC,YAAyCZ,EAAzC,YAAuD/U,QAmBxEoW,GAAKtW,aAAe,CAElBiV,WAAY,YACZ/U,gBAAiB,oBAGjBG,QAAS,KAGTwV,WAAW,GAGES,UCgDAnO,oBAFYX,IAAK,CAAQY,KAAMZ,EAAMY,QAEV,KAA3BD,EA3FmBvI,IAChC,MAAM,eACJ2W,EAAc,cACdC,EAAa,SACbC,EAAQ,QACRnV,EAAO,KACP8G,GACExI,EAyCJ,OACEU,eAACX,EAAW,CAACE,UAAS,wBAAAU,OAA0BkW,EAAW,YAAc,IAAK1W,SAAA,CAE3EwW,GACC/V,cAACb,EAAW,CAACE,UAAU,eAAcE,SACnCS,cAACuU,GAAW,CACVS,SAAO,EACPD,YAAY,4BACZmB,UA1BmBC,IACb,UAAVA,EAAErP,MACJqP,EAAEC,iBACFtV,EAAQI,KAAK,SAAU,CACrBmV,iBAAkB,CAChBC,OAAQ,GACRC,WAAY,GACZC,WAAY,KACZC,WAAYN,EAAE1S,OAAOyO,MACrBwE,aAAc,GACdC,iBAAkB,KAClBC,KAAM,KAGVT,EAAE1S,OAAOoT,SAaHC,UAAQ,EACRpX,gBAAgB,aAChBwS,MAAO,GACP6E,eAAgB,GAChBC,iBAAmBb,GAAwB,KAAjBA,EAAEc,WAAoB,uBAAyB,yCACzEC,kBA7CiBC,GACzBrX,eAACX,EAAW,CAACE,UAAU,wDAAuDE,SAAA,CAC5ES,cAACb,EAAW,CAACE,UAAU,0BAAyBE,SAC9CS,cAAC2D,EAAK,CAACE,OAAM,GAAA9D,OAAKqX,2CAA6B,gBAAArX,OAAeoX,EAAOE,cAEvErX,cAAA,KAAGX,UAAU,eAAcE,SAAE4X,EAAO3C,WAyC9B8C,SAAWnB,GAAMrV,EAAQI,KAAK,iBAADnB,OAAkBoW,EAAEjE,YAMtD8D,GACChW,cAACb,EAAW,CAACE,UAAU,oBAAmBE,SACxCS,cAACb,EAAW,CAACE,UAAU,mCAAkCE,SA9DvC,CACxB,CAAE0J,GAAI,EAAGrD,KAAM,WAAY2R,IAAK,IAChC,CAAEtO,GAAI,EAAGrD,KAAM,WAAY2R,IAAK,IAChC,CAAEtO,GAAI,EAAGrD,KAAM,WAAY2R,IAAK,IAChC,CAAEtO,GAAI,EAAGrD,KAAM,WAAY2R,IAAK,IAChC,CAAEtO,GAAI,EAAGrD,KAAM,WAAY2R,IAAK,KA0DL9R,KAAKoK,GACtB7P,cAAC8V,GAAI,CAEHT,WAAS,EACTb,MAAO3E,EAAKjK,KACZ/F,QAASA,KAnDD2C,QAoDOoF,EAAKpB,UAAY,wBAA0B,SAnDtE4C,OAAOC,KAAK7G,EAAM,YA+CDqN,EAAK5G,gBC5E1B,MAAMuO,GAAoBpY,IACxB,MAAM,YACJqY,EAAW,SACXlY,EAAQ,YACRmY,EAAW,gBACXhY,EAAe,QACfG,EAAO,OACPoN,EAAM,WACN0K,EAAU,qBACVC,EAAoB,UACpBC,GACEzY,EAEJ,OACEU,eAAA8B,WAAA,CAAArC,SAAA,CAEK0N,GAAU0K,GAET3X,cAAC0K,EAAO,CACN7K,QAAS+X,GAAwB/X,EACjC+K,gBAAgB,SAItB9K,eAACX,EAAW,CAACE,UAAS,qBAAAU,OAAuBkN,EAAS,OAAS,GAAE,KAAAlN,OAAIL,EAAe,KAAAK,OAAI8X,EAAY,cAAgB,IAAKtY,SAAA,CACvHS,cAACb,EAAW,CAACE,UAAU,gBAAeE,SACnCkY,IAGHzX,cAACb,EAAW,CAACE,UAAU,8BAA6BE,SACjDA,IAGHS,cAACb,EAAW,CAACE,UAAU,gBAAeE,SACnCmY,WAwBXF,GAAiBhY,aAAe,CAE9BiY,YAAa,KACblY,SAAU,KACVmY,YAAa,KACbhY,gBAAiB,aAGjBG,QAAS,KAGToN,QAAQ,EACR0K,YAAY,EACZC,sBAAsB,EACtBC,WAAW,GAGEL,U,kGClFFtR,GACA,aADAA,GAEA,aAGP4R,GAAoB,CACxBC,SAAS,EACT3W,KAAM,GACN4F,MAAO,WAyBIQ,GAAU,CACrBwQ,UAAW,SAACC,GAAD,MAAY,CAAE3X,KAAM4F,GAAuBiB,QAAS8Q,IAC/DC,UAAW,iBAAO,CAAE5X,KAAM4F,MClCrB,MAAMA,GACO,qBADPA,GAEO,qBAFPA,GAGI,iBAGXiS,GAA2B,CAC/BC,WAAW,EACXhY,MAAO,GACPgB,KAAM,GACNiX,UAAWA,KACTC,QAAQC,IAAI,uBAEdC,eAAgB,KAChBC,aAAc,GACdC,cAAc,GAiCHlR,GAAU,CACrBmR,iBAAmBV,IAAK,CAAQ3X,KAAM4F,GAA8BiB,QAAS8Q,IAC7EW,iBAAkBA,KAAA,CAAStY,KAAM4F,KACjC2S,cAAeA,KAAA,CAASvY,KAAM4F,MC9ChC,IAAM4S,GAAaC,aAAgB,CACjCnR,KAAMA,EACNoR,WFGqB,WAAwC,IAAvChS,EAAsC,uDAA9B8Q,GAAmB7Q,EAAW,uCAC5D,OAAQA,EAAO3G,MACb,KAAK4F,GACH,MAAO,CACL6R,SAAS,EACT3W,KAAM6F,EAAOE,QAAQ/F,KACrB4F,MAAOC,EAAOE,QAAQH,OAI1B,KAAKd,GACH,OAAO,2BACFc,GADL,IAEE+Q,SAAS,IAIb,QACE,OAAO/Q,IEpBXiS,aDUqB,WAA+C,IAA9CjS,EAAKkS,UAAAnQ,OAAA,QAAAoQ,IAAAD,UAAA,GAAAA,UAAA,GAAGf,GAA0BlR,EAAMiS,UAAAnQ,OAAA,EAAAmQ,UAAA,QAAAC,EAC9D,OAAQlS,EAAO3G,MACb,KAAK4F,GACH,MAAO,CACLkS,WAAW,EACXhY,MAAO6G,EAAOE,QAAQ/G,MACtBgB,KAAM6F,EAAOE,QAAQ/F,KACrBqX,aAAcxR,EAAOE,QAAQsR,aAC7BJ,UAAWpR,EAAOE,QAAQkR,UAC1BG,eAAgBvR,EAAOE,QAAQqR,eAC/BE,cAAc,GAIlB,KAAKxS,GACH,MAAO,IACFc,EACH0R,cAAc,GAIlB,KAAKxS,GACH,OAAOiS,GAGT,QACE,OAAOnR,MExCPoS,GAAiBC,eACjBC,GAAU,uBACXC,aAAqB,CACtBC,gBAAgB,EAChBC,mBAAmB,EACnBC,OAAO,KAJK,CAMdN,KAGIO,GAAQC,aAAe,CAC3BjT,QDJyB,SAACK,EAAOC,GAAR,OAAmB6R,GAAW9R,EAAOC,ICK9DqS,cACAO,UAAUzC,EACV0C,UAAW,CAACC,iBAODC,GAAYC,YAAaN,IAEvBA,MClBTO,GAAY,SAACC,EAAQC,GAAT,OAAsBD,EAAOE,eAAeD,IAAaD,EAAOC,IAG5EE,GAAc,yCAAG,WAAOC,GAAP,kBAAAC,EAAA,6DACjBN,GAAUK,EAAS,2BAA2B,EAChBZ,GAAMc,WAAtBjU,EAD+B,EACvCoB,KAAQpB,UAChB+T,EAAQG,QAAQC,cAAhB,iBAA0CnU,IAE5C+T,EAAQG,QAAQ,gBAAmBR,GAAUK,EAAS,eAAsC,sBAArB,mBACvEA,EAAQG,QAAQ,gCAAkC,6BAN7B,kBAOdH,GAPc,2CAAH,sDAmBdK,GAAY,yCAAG,WAAOC,GAAP,sBAAAL,EAAA,yDACfN,GAAUW,EAAIV,OAAQ,0BAMC,yBADrBW,EANa,eAMSD,EAAIV,SACb5C,MAAiCsD,EAAIE,SAPrC,oBASW,MAAxBF,EAAIE,SAASC,QAAmBF,EAAeG,OATlC,wBAUfH,EAAeG,QAAS,EAVT,WAaItB,GAAMc,WAAf7S,EAbK,EAaLA,KAbK,SAcIsT,GAAcC,KAAK,sBAAuB,CAAE1U,aAAcmB,EAAKnB,cAAgB,CAAEiU,QAAS,CAAEC,cAAc,UAAD,OAAY/S,EAAKpB,cAd9H,YAcP4U,EAdO,QAgBNC,KAAK5F,QAhBC,wBAiBXkE,GAAM2B,SAAS9T,EAAQf,aAAa2U,EAAGC,KAAKjV,OAjBjC,kBAkBJ8U,GAAcJ,IAlBV,cAqBPS,MAAMH,EAAGC,KAAKG,SArBP,mDAuBPC,GAAoBZ,GAvBb,yBA2BXY,GAAoBZ,GA3BT,iDA6BXY,GAAoBZ,GA7BT,0DAAH,sDAiCZY,GAAmB,yCAAG,WAAOV,GAAP,gBAAAP,EAAA,6DACtBgB,EAAU,oEADY,SAGpBE,QAAQC,QAAQZ,EAASA,UAAUa,MAAK,SAACC,GAC7C,GAAIA,EAAK,CAIP,GAHAL,EAAUK,EAAIR,KAAKS,QAGA,MAAfD,EAAIb,OAGN,OAFAe,aAAaC,WAAW,2BACxB5S,OAAOqD,SAAP,UAAqBrD,OAAO6S,OAA5B,WAIiB,MAAfJ,EAAIb,SACN5R,OAAOqD,SAAP,UAAqBrD,OAAO6S,OAA5B,UAfoB,aAoBpBV,MAAMC,GApBc,2CAAH,sDC5BVU,GAtCG,CAChBC,QAAS/E,2CACTgF,qBAAsB,CACpBC,uBAAuB,EACvBC,wBAAwB,GAE1BC,gBAAiB,CACfC,0BAA2B,0BAC3BC,2BAA4B,2BAC5BC,4BAA6B,4BAC7BC,kCAAmC,mCACnCC,2BAA4B,2BAC5BC,uBAAwB,uBACxBC,yBAA0B,yBAC1BC,4BAA6B,iCAC7BC,qBAAsB,yBACtBC,cAAe,OACfC,eAAgB,QAChBC,gBAAiB,SACjBC,qBAAsB,OACtBC,qBAAsB,eACtBC,4BAA6B,cAC7BC,sBAAuB,SAEzBC,iBAAkB,CAChB,2BACA,sBACA,wBACA,yBACA,sBACA,6BACA,kBACA,oBACA,oEACA,aC3BEtC,GAAgBuC,KAAMC,OAAO,CAAEC,QAASzB,GAAUC,UAExDjB,GAAc0C,aAAarD,QAAQsD,KACjC,SAACtD,GAAD,OAAaD,GAAeC,MAG9BW,GAAc0C,aAAa7C,SAAS8C,KAClC,SAAC9C,GAAD,OFWqB,SAACA,GACtB,OAAIb,GAAUa,EAASZ,OAAQ,0BACtBY,EAASM,KAGXN,EEhBO+C,CAAe/C,MAC7B,SAACF,GAAD,OAASD,GAAaC,MAGTK,UCfT6C,GAAiB,YAEjBC,GAAe,yCAAG,WAAOC,GAAP,UAAAzD,EAAA,+EAAoBU,GAAcgD,IAAd,UAAqBH,GAArB,oCAA+DE,GAAY/B,GAAUE,uBAAzG,2CAAH,sDAEf+B,GAAgB,yCAAG,WAAOC,GAAP,UAAA5D,EAAA,+EAAsBU,GAAcgD,IAAd,UAAqBH,GAArB,sCAAiEK,GAAclC,GAAUE,uBAA/G,2CAAH,sDAEhBiC,GAA+B,yCAAG,uBAAA7D,EAAA,+EAAYU,GAAcgD,IAAd,UAAqBH,GAArB,mCAAsE7B,GAAUE,uBAA5F,2CAAH,qDAE/BkC,GAAc,yCAAG,WAAO5Y,GAAP,UAAA8U,EAAA,+EAAoBU,GAAcC,KAAd,UAAsB4C,GAAtB,kBAAsDrY,EAAUwW,GAAUE,uBAA9F,2CAAH,sDAEdmC,GAAc,yCAAG,WAAOtV,GAAP,UAAAuR,EAAA,+EAAcU,GAAcsD,OAAd,UAAwBT,GAAxB,6BAA2D9U,GAAMiT,GAAUE,uBAAzF,2CAAH,sDAEdqC,GAAe,yCAAG,WAAO/Y,GAAP,UAAA8U,EAAA,+EAAoBU,GAAcwD,IAAd,UAAqBX,GAArB,mBAAsDrY,EAAUwW,GAAUE,uBAA9F,2CAAH,sDAEfuC,GAAoB,yCAAG,WAAO1V,GAAP,UAAAuR,EAAA,+EAAcU,GAAcsD,OAAd,UAAwBT,GAAxB,2CAAyE9U,GAAMiT,GAAUE,uBAAvG,2CAAH,sDAEpBwC,GAAoB,yCAAG,WAAO3G,GAAP,UAAAuC,EAAA,+EAAiBU,GAAcwD,IAAd,UAAqBX,GAArB,wBAA2D9F,EAAOiE,GAAUE,uBAA7F,2CAAH,sDAEpByC,GAAa,yCAAG,WAAO5G,GAAP,UAAAuC,EAAA,+EAAiBU,GAAcwD,IAAd,UAAqBX,GAArB,iBAAoD9F,EAAOiE,GAAUE,uBAAtF,2CAAH,sDAEb0C,GAAkB,yCAAG,WAAO7G,GAAP,UAAAuC,EAAA,+EAAiBU,GAAcwD,IAAd,UAAqBX,GAArB,sBAAyD9F,EAAOiE,GAAUE,uBAA3F,2CAAH,sDCKxB,MAAM2C,GAAoB3f,IACxB,MAAM,KACJwI,EAAI,QACJM,EAAO,YAEPwE,EAAW,aACXC,EAAY,gBACZjN,EAAe,8BACfsf,EAA6B,cAC7BC,EAAa,oBACbC,EAAmB,mBACnBC,EAAkB,oBAClBC,EAAmB,4BACnBC,EAA2B,iBAC3BC,EAAgB,kCAChBC,EAAiC,KACjCC,EAAI,QACJC,EAAO,KACPtd,EAAI,SACJyG,EAAQ,eACR8W,EAAc,gBACdvS,EAAe,0BACfwS,EAAyB,uBACzBC,EAAsB,yBACtBC,EAAwB,eACxB9J,EAAc,UACd1R,EAAS,cACT2R,EAAa,gBACbpS,EAAe,QACf9C,EAAO,aACPgf,EAAY,UACZ9H,GACE5Y,GACGkJ,EAAcC,GAAmBF,oBAAS,IAC1C4N,EAAU8J,GAAe1X,oBAAS,GAKzCS,qBAAU,KACR,MAAMkX,EAAqBA,KACzB,MAAMC,EAAc7W,OAAO8W,QAAU,GACrCH,EAAYE,IAId,OADAhQ,SAASiD,iBAAiB,SAAU8M,GAC7B,KACL/P,SAASkD,oBAAoB,SAAU6M,MAExC,CAAC/J,IAEJ,MAAMrI,EAAgBpL,IACpB4G,OAAOC,KAAK7G,EAAM,WAGd2d,EAAuBza,IACF,KAArBA,EAAS0a,SACXC,GAAiC3a,EAASuD,IAAI2S,MAAMC,IAC9CA,EAAI/O,YAAc+O,EAAI/O,WAAWgD,SAAS,SAC5ClC,EAAaiO,EAAI/O,YAEjBhM,EAAQI,KAAK2a,EAAI/O,eAKnBpH,EAAS0a,SAAgC,KAArB1a,EAAS0a,QAC3B1a,EAASkI,aACXA,EAAalI,EAAS0a,SAEtBtf,EAAQI,KAAKwE,EAAS0a,SAEf1a,EAASoH,aACdpH,EAASkI,aACXA,EAAalI,EAASoH,YAEtBhM,EAAQI,KAAKwE,EAASoH,aAI1BwT,YAAW,KACT/X,GAAgB,KACf,MAGCgY,EAAeA,KACnBhY,GAAiBD,IAGnB,OACExI,eAAA8B,WAAA,CAAArC,SAAA,CACEO,eAACX,EAAW,CAACE,UAAS,+BAAAU,OAAiCkW,EAAW,YAAc,IAAK1W,SAAA,EAvDxE6X,GA8DTrB,GAAkBC,IAClBhW,cAACwgB,GAAwB,CACvBzK,eAAgBA,EAChBC,cAAeA,EACfC,SAAUA,EACVnV,QAASA,EACT8G,KAAMA,IAKV9H,eAACX,EAAW,CAACE,UAAU,oBAAmBE,SAAA,CAExCS,cAACb,EAAW,CAACE,UAAU,8BAA6BE,SAClDS,cAAC2D,EAAK,CACJE,OAAmBic,EAAaW,QAChChgB,GAAG,QAKPT,cAACb,EAAW,CAACE,UAAU,oCAAmCE,SACxDS,cAACb,EAAW,CAACE,UAAU,aAAYE,SAChC8E,EAAUoB,KAAKC,GACd5F,eAAA8B,WAAA,CAAArC,SAAA,CAEyC,IAAtCmG,EAASgb,kBAAkB3X,QAC1B/I,cAAC2gB,IAAO,CACNlgB,GAAIiF,EAAS0a,SAAW1a,EAASoH,WACjCjN,QAASA,IAAMsgB,EAAoBza,GACnCrG,UAAU,yDAAwDE,SAEjEmG,EAASE,OAKbF,EAASgb,kBAAkB3X,OAAS,GACnCjJ,eAACX,EAAW,CAACE,UAAU,cAAaE,SAAA,CAClCS,cAAC2gB,IAAO,CACNlgB,GAAIiF,EAAS0a,SAAW1a,EAASoH,WACjCjN,QAASA,IAAMsgB,EAAoBza,GACnCrG,UAAU,yDAAwDE,SAEjEmG,EAASE,OAEZ5F,cAACb,EAAW,CACVE,UAAS,6BAAAU,OAA+Bsf,EAA2B,KAAAtf,OAAI6D,EAAkB,gBAAkB,IAC3GtE,MAAO,CAAEuU,OAAQ,uBAAwBtU,SAEzCS,cAACb,EAAW,CAACE,UAAU,2BAA0BE,SAC9CmG,EAASgb,kBAAkBjb,KAAKK,GAC/B9F,cAAC2gB,IAAO,CACNlgB,GAAIqF,EAAYsa,QAChBvgB,QAASA,IAAMsgB,EAAoBza,GACnCjC,OAAQqC,EAAY8H,aAAe,SAAW,KAC9ClK,IAAKoC,EAAY8H,aAAe,sBAAwB,KACxDvO,UAAU,mEAAkEE,SAE3EuG,EAAYF,yBAajC5F,cAACb,EAAW,CAACE,UAAU,8BAA6BE,SAClDO,eAACX,EAAW,CAACE,UAAU,cAAaE,SAAA,CAClCS,cAACwM,GAAa,CACZtE,QAASA,EACTpH,QAASA,EACT2L,SAAS,cAGXzM,cAACqL,EAAgB,CACfC,WAAS,EACTI,cAAe6U,EACflhB,UAAU,qDAEVoM,WACEzL,cAAC4gB,IAAS,CACRC,QAASvY,EACTwY,OAAQvY,EACRrI,KAAM,GACNuO,OAAQ,GACRsS,SAAS,KACTC,SAAO,iBAUrBhhB,cAACwX,GAAgB,CACfG,YAAU,EACV1K,OAAQ3E,EACRsP,sBAAoB,EACpB/X,QAASA,KACP0gB,KAEFlhB,UAAU,oBACVoY,YACEzX,cAACb,EAAW,CAACE,UAAU,8DAA6DE,SAClFS,cAAC2D,EAAK,CACJE,OAAQic,EAAaW,QACrBhgB,GAAG,IACHgC,mBAAmB,+BACnBnD,MAAO,CAAEkP,MAAO,MAAOyS,SAAU,QAASjW,QAAS,YAIzD0M,YACE1X,cAACb,EAAW,CAACE,UAAU,gCAA+BE,SACpDS,cAACwM,GAAa,CACZtE,QAASA,EACTpH,QAASA,EAET2L,SAAS,SACThK,mBAAmB,OAGvBlD,SAGFO,eAACX,EAAW,CAACE,UAAU,uDAAsDE,SAAA,CAC3EO,eAAC6gB,IAAO,CACNlgB,GAAG,IACHpB,UAAU,qEAAoEE,SAAA,CAE9ES,cAACkJ,IAAM,CAAC7J,UAAU,qBAAqB,UAIzCS,eAAC6gB,IAAO,CACNlgB,GAAG,0BACHpB,UAAU,qEAAoEE,SAAA,CAE9ES,cAACkhB,IAAM,CAAC7hB,UAAU,qBAAqB,WAIzCW,cAAA,MACEX,UAAU,oBACVC,MAAO,CACLmP,OAAQ,MACRzD,QAAS,OACTuB,WAAY,wHACZsH,OAAQ,UAIXxP,EAAUoB,KAAKC,GACd5F,eAACX,EAAW,CAACE,UAAU,GAAEE,SAAA,CAEvBO,eAAC6gB,IAAO,CACNlgB,GAAIiF,EAAS0a,SAAW1a,EAASoH,WACjCjN,QAASA,IAAMsgB,EAAoBza,GACnCrG,UAAU,qEAAoEE,SAAA,CAE7E,CAGC4hB,MAAOnhB,cAACohB,IAAO,CAAC/hB,UAAU,qBAC1BgiB,QAASrhB,cAACyP,IAAS,CAACpQ,UAAU,sBAC9BqG,EAASE,OAAS5F,cAACohB,IAAO,CAAC/hB,UAAU,qBACtCqG,EAASE,QAIXF,EAASgb,kBAAkB3X,OAAS,GACrC/I,cAACb,EAAW,CAACE,UAAU,cAAaE,SAClCS,cAACb,EAAW,CAACE,UAAU,gCAA+BE,SACnDmG,EAASgb,kBAAkBjb,KAAKK,GAC/B9F,cAAC2gB,IAAO,CAENlgB,GAAIqF,EAAYsa,QAChBvgB,QAASA,IAAMsgB,EAAoBra,GACnCrC,OAAQqC,EAAY8H,aAAe,SAAW,KAC9ClK,IAAKoC,EAAY8H,aAAe,sBAAwB,KACxDvO,UAAU,+EAA8EE,SAEvFuG,EAAYF,MAPRE,EAAYmD,wBAsEvC8V,GAAiBvf,aAAe,CAE9BE,gBAAiB,aACjBsf,8BAA+B,KAI/BC,cAAe,eACfC,oBAAqB,eACrBC,mBAAoB,GACpBC,oBAAqB,YAGrBC,4BAA6B,aAC7BC,iBAAkB,eAGlB1W,SAAU,GACVuE,gBAAiB,aACjBwS,0BAA2B,uBAC3BC,uBAAwB,GACxBC,yBAA0B,GAG1B9J,gBAAgB,EAChBC,eAAe,EAEfpS,iBAAiB,GAKJ+D,oBAFYX,IAAK,CAAQY,KAAMZ,EAAMY,QAEV,KAA3BD,CAAiCoX,I,kFC5YhD,MAAMuC,GAAcliB,IAClB,MAAM,GACJ6J,EAAE,mBACFxG,EAAkB,MAClB+R,EAAK,WACLE,EAAU,WACVC,EAAU,aACVC,EAAY,eACZC,EAAc,eACdC,EAAc,KACdxU,EAAI,UACJjB,EAAS,WACToV,EAAU,gBACV/U,EAAe,YACfqV,EAAW,KACXwM,EAAI,GACJ9gB,EAAE,SACFF,EAAQ,UACRC,EAAS,qBACTghB,EAAoB,gCACpBC,EAA+B,yBAC/BC,EAAwB,gBACxBC,EAAe,iBACfC,EAAgB,wBAChBC,EAAuB,WACvBzM,EAAU,UACV5T,EAAS,eACT0T,EAAc,YACd4M,EAAW,WACXrgB,EAAU,UACV4T,EAAS,QACT0M,GACE3iB,EAEEkW,EAAc,CAClBC,MAAO,QACPC,QAAS,UACTC,QAAS,UACTpT,SAAU,YAGNqT,EAAYA,IACZhB,EACK,GACHF,EACG,GAEF,GAGH1T,EAAUC,cAMhB,OACEjB,eAACX,EAAW,CAACE,UAAS,yBAAAU,OAA2B0C,EAAkB,KAAA1C,OAAmB,KAAf2U,GAAqB,QAASnV,SAAA,CAElF,KAAfmV,GAEE5U,eAAA,QAAMT,UAAS,yBAAAU,OAA2B4U,GAAapV,SAAA,CACpDmV,EACAU,GAAcpV,cAAA,QAAMX,UAAU,qBAAoBE,SAAC,MAElD2V,GAEElV,cAACsC,IAAgB,CACfjB,SAAS,KACThC,UAAU,+CACVa,KAAM,GACNZ,MAAO,CAAEoW,WAAY,QAQrB,KAAVlB,GAEE1U,eAAA,QAAMT,UAAS,gBAAAU,OAAkB4U,EAAU,KAAA5U,OAAI0U,EAAU,KAAIlV,SAAA,CAC1DiV,EACAY,GAAcpV,cAAA,QAAMX,UAAU,qBAAoBE,SAAC,MAElD2V,GAEElV,cAACsC,IAAgB,CACfjB,SAAS,KACThC,UAAU,gDACVa,KAAM,QAOlBJ,eAACX,EAAW,CAAAI,SAAA,CAERgB,GAEEP,cAACb,EAAW,CAACE,UAAU,sBAAsBC,MAAO,CAAEoW,UAAWA,KAAcnW,SAC7ES,cAAA,UACEM,KAAK,SACLe,SAAS,KACTxB,QAAS8hB,EAAgBpiB,SAExBgB,MAOE,SAATD,EAEIN,cAACgiB,KAAS,IACJ5iB,EACJ6J,GAAIA,EACJ8L,YAAaA,EACb1V,UAAS,eAAAU,OAAiBV,EAAS,KAAAU,OAAIL,EAAe,KAAAK,OAAI4U,GAAcW,EAAYX,GAAW,KAAA5U,OAAIsV,EAAY,WAAa,GAAE,KAAAtV,OAAK2U,EAAwB,GAAX,UAEhJuN,UAAWH,EACXzf,YAAaZ,GAA6B,aAAfkT,GAC3BrV,MAAO,CAAE4iB,YAAa3hB,EAAW,GAAK,IACtCwhB,QAASA,IAIX/hB,cAACmiB,KAAS,IACJ/iB,EACJ6J,GAAIA,EACJsY,KAAMA,EACNxM,YAAaA,EACb1V,UAAS,eAAAU,OAAiBV,EAAS,KAAAU,OAAIL,EAAe,KAAAK,OAAI4U,EAAaW,EAAYX,GAAc,GAAE,KAAA5U,OAAIsV,EAAY,WAAa,GAAE,KAAAtV,OAAK2U,EAAwB,GAAX,UACpJpU,KAAMA,EACN2hB,UAAWH,IAAe,EAC1Bzf,YAAaZ,GAA6B,aAAfkT,GAC3BrV,MAAO,CAAE4iB,YAAa3hB,EAAW,GAAK,OAM3CiB,GAAahB,GAAaghB,IAEzB1hB,eAACX,EAAW,CAACE,UAAU,uBAAuBC,MAAO,CAAEoW,UAAWA,IAAalH,MAAOgT,EAAuB,SAAW,IAAKjiB,SAAA,CAEzHiC,EAEIxB,cAACsC,IAAgB,CACfjB,SAAS,KACThC,UAAU,0CACVa,KAAM,KAIRF,cAAA,UACEM,KAAK,SACLe,SAAS,KACTxB,QAAS+hB,EAAiBriB,SAEzBiB,IAKPghB,GAEAxhB,cAACmB,EAAM,CACLjB,KAAK,QACLkB,KAAMogB,EACNniB,UAAWoiB,EACX5hB,QAASY,EAAK,KAAMO,OAzHZC,EAyH2BR,OAxHjDK,EAAQI,KAAKD,GADSA,OAyHiC4gB,EACzCthB,SAAUmhB,UAUL,UAAf/M,GAEE3U,cAAA,QAAMX,UAAS,kCAAAU,QAAqC2U,GAAcF,EAAQ,WAAa,IAAKjV,SACzFqV,IAAiBF,GAAcF,EAASE,GAAU,GAAA3U,OAAOyU,EAAK,KAAAzU,OA1J9C,eA0J0E,6BAKhF,YAAf4U,GAEE3U,cAAA,QAAMX,UAAS,oCAAAU,QAAuC2U,GAAcF,EAAQ,WAAa,IAAKjV,SAC3FuV,IAKU,YAAfH,GAEE3U,cAAA,QAAMX,UAAS,oCAAAU,QAAuC2U,GAAcF,EAAQ,WAAa,IAAKjV,SAC3FsV,QAuDbyM,GAAW9hB,aAAe,CAExBiD,mBAAoB,GACpBwG,GAAI,GAGJuL,MAAO,GACPE,WAAY,GAGZC,WAAY,GACZC,aAAc,GACdC,eAAgB,GAChBC,eAAgB,GAGhBxU,KAAM,OACNjB,UAAW,GACXoV,WAAY,YACZ/U,gBAAiB,aACjBqV,YAAa,GACbwM,KAAM,GAGN9gB,GAAI,GAGJF,SAAU,KACVC,UAAW,KACXghB,qBAAsB,GACtBC,gCAAiC,aACjCC,yBAA0B,KAG1BC,gBAAiBA,OACjBC,iBAAkBA,OAClBC,wBAAyBA,OAGzBzM,YAAY,EACZ5T,WAAW,EACX0T,gBAAgB,EAChB4M,aAAa,EACbrgB,YAAY,EACZ4T,WAAW,GAGEiM,UChUA,OAA0B,4CCA1B,OAA0B,8CC2BzC,MAAMc,GAAehjB,IACnB,MAAM,QACJ0B,EAAO,GACPL,EAAE,YACFiM,EAAW,aACXC,EAAY,YACZ0V,EAAW,gBACX3iB,EAAe,4BACf4iB,EAA2B,eAC3BC,EAAc,mBACdC,EAAkB,YAClBC,EAAW,mBACXC,EAAkB,sBAClBC,EAAqB,YACrBjL,EAAW,SACX9O,EAAQ,eACR8W,EAAc,gBACdvS,EAAe,0BACfwS,EAAyB,aACzBiD,EAAY,eACZC,EAAc,aACdxT,EAAY,cACZJ,EAAa,YACbZ,EAAW,aACXc,EAAY,YACZhB,EAAW,WACX2U,EAAU,wBAGVC,EAAuB,eACvBC,EAAc,gBACdC,EAAe,QACf/a,EAAO,aACP4X,GACE1gB,EAEE8jB,EAA4B,KAC3BC,EAAyBC,GAA8B/a,oBAAS,IAChEgb,EAAoBC,GAAyBjb,oBAAS,IACtDkb,EAAoBC,GAAyBnb,oBAAS,GAgBvDob,EAAkBjhB,IACtB4G,OAAOC,KAAK7G,EAAM,WAWdkhB,EAA2BA,KAC/BJ,GAAuBD,IAGnBM,EAA2BA,KAC/BH,GAAuBD,IAGnBK,EACJ9jB,eAAC+jB,KAAO,CAAC5a,GAAG,gBAAgB5J,UAAU,kCAAiCE,SAAA,CACrEO,eAACX,EAAW,CACVE,UAAU,0CACVQ,QAASA,KACPikB,UAAUC,UAAUC,UAAUtX,GAC9B4W,GAAsB,IACtB/jB,SAAA,CAEFS,cAACikB,KAAM,CAAC5kB,UAAU,wBAAwBa,KAjDrB,GAiD+CsK,YAAa0Y,IACjFljB,cAAA,KAAGX,UAAU,4BAA2BE,SAAC,YAK3CS,cAAA,MAAIX,UAAU,6BAA6BC,MAAO,CAAEmP,OAAQ,SAE5D3O,eAACX,EAAW,CACVE,UAAU,0CACVQ,QAASA,KA/BUmO,QAgCDtB,EA/BtBtD,OAAOC,KAAK,OAADtJ,OAAQiO,GAAO,SAgCpBsV,GAAsB,IACtB/jB,SAAA,CAEFS,cAACkkB,KAAY,CAAC7kB,UAAU,wBAAwBa,KAhE3B,GAgEqDsK,YAAa0Y,IACvFljB,cAAA,KAAGX,UAAU,4BAA2BE,SACC,kBAOzC4kB,EACJrkB,eAAC+jB,KAAO,CAAC5a,GAAG,gBAAgB5J,UAAU,gCAA+BE,SAAA,CACnEO,eAACX,EAAW,CACVE,UAAU,wCACVQ,QAASA,KACPikB,UAAUC,UAAUC,UAAUrX,GAC9B6W,GAAsB,IACtBjkB,SAAA,CAEFS,cAACikB,KAAM,CAAC5kB,UAAU,aAAaa,KAlFV,GAkFoCsK,YAAa0Y,IACtEljB,cAAA,KAAGX,UAAU,4BAA2BE,SAAC,YAK3CS,cAAA,MAAIX,UAAU,6BAA6BC,MAAO,CAAEmP,OAAQ,SAE5D3O,eAACX,EAAW,CACVE,UAAU,wCACVQ,QAASA,KApEIiO,QAqEDnB,EApEhBvD,OAAOC,KAAK,UAADtJ,OAAW+N,GAAS,SAqEzB0V,GAAsB,IACtBjkB,SAAA,CAEFS,cAACokB,KAAM,CAAC/kB,UAAU,aAAaa,KAjGV,GAiGoCsK,YAAa0Y,IACtEljB,cAAA,KAAGX,UAAU,4BAA2BE,SACE,qBAK5CS,cAAA,MAAIX,UAAU,6BAA6BC,MAAO,CAAEmP,OAAQ,SAE5D3O,eAACX,EAAW,CACVE,UAAU,wCACVQ,QAASA,KACP,MAAM+M,EAAiB1E,EAAQ7D,UAAUwI,MAAMgD,GAAuB,YAAdA,EAAKjK,OAAoBkH,WACjFhM,EAAQI,KAAK0L,GACb4W,GAAsB,IACtBjkB,SAAA,CAEFS,cAACqkB,KAAe,CAAChlB,UAAU,aAAaa,KAlHnB,GAkH6CsK,YAAa0Y,IAC/EljB,cAAA,KAAGX,UAAU,4BAA2BE,SAAC,6BAO/C,OACEO,eAACX,EAAW,CAACE,UAAU,+BAA8BE,SAAA,CAEnDS,cAACb,EAAW,CAACE,UAAU,wBAAuBE,SAC5CO,eAAA,OAAKT,UAAU,qCAAqCC,MAAO,CAAEglB,OAAQ,OAAQC,UAAW,QAAShlB,SAAA,CAE/FS,cAACb,EAAW,CAACE,UAAU,uGAAsGE,SAC3HS,cAAC2D,EAAK,CACJlD,GAAIA,EACJoD,OAAQic,EAAa0E,MACrBllB,MAAO,CAAEkP,MAAO,aAKpB1O,eAACX,EAAW,CAACE,UAAU,yDAAyDC,MAAO,CAAE8U,SAAU,SAAU7U,SAAA,CAC3GS,cAACuC,EAAS,CACRY,aAAW,EACXD,UAAQ,EACR5C,KAAK,YACLc,KAAK,cACLuB,MAAOggB,EACPtjB,UAAU,uBAGZW,cAACb,EAAW,CAACE,UAAU,0BAAyBE,SAC9CS,cAACb,EAAW,CAACE,UAAU,UAASE,SAC7BmY,EAAYjS,KAAI,CAACoK,EAAM4U,IACtBzkB,cAACb,EAAW,CAACE,UAAU,qBAAoBE,SACzCS,cAAC2gB,IAAO,CACNlgB,GAAIoP,EAAKpP,GACTZ,QAAUsW,KACJtG,EAAKpP,GAAGqP,SAAS,UAAYD,EAAKpP,GAAGqP,SAAS,WAChDqG,EAAEC,iBACFqN,EAAe5T,EAAKpP,MAGxBpB,UAAU,oEACVC,MAAO,CAAEolB,SAAU,aAAcC,WAAY,OAAQplB,SAEpDsQ,EAAK2E,mBAUlB1U,eAACX,EAAW,CAACE,UAAU,2CAA0CE,SAAA,CAC9DyjB,GACCljB,eAACX,EAAW,CAACE,UAAU,OAAME,SAAA,CAC3BS,cAACuC,EAAS,CACRY,aAAW,EACX7C,KAAK,YACLc,KAAK,uBACLuB,MAAOggB,EACPtjB,UAAU,SAGZW,cAACshB,GAAU,CACTvM,YAAY,mBACZyM,qBAAqB,UACrBC,gCAA+B,qBAAA1hB,OAA0C,WAAnB2f,EAA8B,SAAW,IAC/FkF,0BAA0B,YAC1BllB,gBAAgB,aAChBL,UAAS,GAAAU,OAAwB,WAAnB2f,EAA8B,SAAW,SAK5DuD,GACCnjB,eAACX,EAAW,CAACE,UAAU,iCAAgCE,SAAA,CACrDS,cAACuC,EAAS,CACRY,aAAW,EACX7C,KAAK,YACLc,KAAK,aACLuB,MAAOggB,EACPtjB,UAAU,4BAEZS,eAACX,EAAW,CAACE,UAAU,4BAA2BE,SAAA,CAE/CoN,GACD3M,cAAC4L,IAAc,CACbiZ,QAAQ,QACRhZ,UAAU,MACVO,QAAS+X,EACTW,KAAMvB,EACNwB,SAAUpB,EACVqB,WAAS,EAAAzlB,SAETS,cAACb,EAAW,CACVE,UAAU,oCACV4lB,aAActB,EAAyBpkB,SAEvCS,cAACmB,EAAM,CACLC,KAAMuL,EACNtN,UAAU,cACVa,KAAK,KACLK,SAAUP,cAACklB,KAAO,CAAC7lB,UAAU,aAAaa,KAAK,aAOpDwM,GACC1M,cAAC4L,IAAc,CACbiZ,QAAQ,QACRhZ,UAAU,MACVO,QAASwX,EACTkB,KAAMzB,EACN0B,SAAUrB,EACVsB,WAAS,EAAAzlB,SAETS,cAACb,EAAW,CACVE,UAAU,oCACV4lB,aAAcvB,EAAyBnkB,SAEvCS,cAACmB,EAAM,CACLC,KAAMsL,EACNrN,UAAU,gBACVa,KAAK,KACLK,SAAUP,cAACuP,IAAU,CAAClQ,UAAU,aAAaa,KAAK,oBAS9D0iB,GAAgBC,IAChB/iB,eAACX,EAAW,CAACE,UAAU,qBAAoBE,SAAA,CACzCS,cAACuC,EAAS,CACRW,UAAQ,EACRC,aAAW,EACX7C,KAAK,YACLc,KAAK,mBACLuB,MAAO4f,EACPljB,UAAS,GAAAU,OAAKyiB,EAAkB,WAGlC1iB,eAACX,EAAW,CAACE,UAAU,sBAAqBE,SAAA,CACzCqjB,GACD5iB,cAAC2D,EAAK,CACJE,OAAQshB,GACRtlB,QAASA,IAAM4jB,EAAeb,GAC9BvjB,UAAU,OACVC,MAAO,CAAEkP,MAAO,WAIjBqU,GACD7iB,cAAC2D,EAAK,CACJE,OAAQuhB,GACRvlB,QAASA,IAAM4jB,EAAeZ,GAC9BvjB,MAAO,CAAEkP,MAAO,yBAW9BxO,cAACb,EAAW,CAACE,UAAU,oCAAmCE,SACxDS,cAACb,EAAW,CAACE,UAAU,eAAcE,SACnCS,cAACwM,GAAa,CACZtE,QAASA,EACTpH,QAASA,EACT2L,SAAS,eAMf3M,eAACX,EAAW,CAACE,UAAU,yFAAwFE,SAAA,CAC7GO,eAACX,EAAW,CAACE,UAAU,mEAAkEE,SAAA,CACvFS,cAAA,KAAGX,UAAU,sBAAqBE,SAAA,kBAAAQ,QAAiB,IAAIslB,MAAOC,cAAa,KAAAvlB,OAAI0iB,EAAW,OAC1FziB,cAAA,KAAGX,UAAU,sBAAqBE,SAAC,4BAErCS,cAAA,UACEX,UAAU,oDACVQ,QAASA,IAAM4jB,EAAe,wBAAwBlkB,SACvD,iCA4DT6iB,GAAY5iB,aAAe,CAEzBiB,GAAI,IACJf,gBAAiB,aACjB4iB,4BAA6B,qBAC7BD,YAAa,GAGb3V,YAAa,GACbC,aAAc,GAKd4V,eAAgB,iBAChBC,mBAAoB,GAGpBI,aAAc,GACdC,eAAgB,GAGhBja,SAAU,GACVuE,gBAAiB,aACjBwS,0BAA2B,iBAC3BtQ,aAAc,GACdJ,cAAe,GACfZ,YAAa,GACbc,aAAc,GACdhB,YAAa,GACb2U,WAAY,GAGZJ,mBAAoB,eAOpBK,yBAAyB,EACzBC,gBAAgB,EAChBC,iBAAiB,EAEjBvL,YAAa,IAGA0K,UC/dA,OAA0B,iCCA1B,OAA0B,uCC2G1BmD,OA3FGC,IAChB,MAAM,KACJ5d,EACAE,UAAWC,EAAS,QACpBG,EAAO,cAAEud,EAAa,OACtBC,KACG1d,GACDwd,EAEE1F,EAAe,CACnBW,QAASkF,GACTnB,MAAOoB,GACPxa,KAAM,KAGF,gBAAEya,EAAe,gBAAE5d,GAAoBC,GACtC1G,GAAa6G,oBAAS,GAE7B,OACErI,cAACoK,IAAK,IACApC,EAAMqC,OAASjL,GACjBU,eAAA8B,WAAA,CAAArC,SAAA,CACGiC,GAAaxB,cAAC0K,EAAO,CAACG,WAAS,IAChC/K,eAACX,EAAW,CAACE,UAAU,kCAAiCE,SAAA,CACtDS,cAAC+e,GACD,CACE+G,oBAAkB,EAClB5d,QAASA,EACT/F,KAAM8F,EACNuX,KAAMqG,EACN/F,aAAcA,EACdzb,UAAW6D,EAAQ7D,UACnB0hB,YAAU,EACVC,YAAY,QACZtG,eAAe,SACfV,8BAA8B,eAC9BC,cAAc,eACdC,oBAAoB,eACpBU,uBAAwB1X,EAAQmH,aAChC3C,YAAaxE,EAAQwE,YACrBC,aAAczE,EAAQyE,aACtBkT,yBAA0B3X,EAAQ+G,cAClCgX,OAAQ/d,EAAQ+d,OAChBzP,WAAYtO,EAAQsO,WACpBG,iBAAkBzO,EAAQyO,oBACtBvX,IAGNY,cAAC+H,EAAS,IACJ3I,EACJqmB,cAAeA,EACfvd,QAASA,EACTwd,OAAQA,IAGV1lB,cAACoiB,GACD,CACE3hB,GAAG,IACHyH,QAASA,EACTma,YAAawD,EACbpD,YAAava,EAAQua,YACrB/V,YAAaxE,EAAQwE,YACrBC,aAAczE,EAAQyE,aACtBmT,aAAcA,EACdpgB,gBAAgB,eAChB6f,kCAAkC,eAClCoD,sBAAsB,aACtBD,mBAAmB,aACnBJ,4BAA4B,uBAC5B5C,eAAe,SACfC,0BAA0B,uBAC1BxS,gBAAgB,aAChBuK,YAAaxP,EAAQwP,YACrBkL,aAAc1a,EAAQ0a,aACtBC,eAAgB3a,EAAQge,oBACxB7W,aAAcnH,EAAQmH,aACtBJ,cAAe/G,EAAQ+G,cACvBZ,YAAanG,EAAQmG,YACrBc,aAAcjH,EAAQiH,aACtBhB,YAAajG,EAAQiG,YACrB2U,WAAY5a,EAAQ4G,WACpB6H,iBAAkBzO,EAAQyO,oBACtBvX,a,oBC5FZ+mB,GAAe,SAAC/mB,GACpB,IAAQgnB,EAAuChnB,EAAvCgnB,gBAAiBC,EAAsBjnB,EAAtBinB,kBACzB,OACE,mCACGD,GAAmB,cAAC,EAAD,CAAa/mB,UAAS,wBAAmBgnB,QAWnEF,GAAa3mB,aAAe,CAE1B4mB,iBAAiB,EACjBC,kBAAmB,eAGNF,UCpBTG,GAAa,SAAClnB,GAClB,IACEgB,EASEhB,EATFgB,MACAF,EAQEd,EARFc,KACAb,EAOED,EAPFC,UACAknB,EAMEnnB,EANFmnB,SACAC,EAKEpnB,EALFonB,aACAC,EAIErnB,EAJFqnB,kBACAC,EAGEtnB,EAHFsnB,WACAnmB,EAEEnB,EAFFmB,SACAomB,EACEvnB,EADFunB,kBAGIC,EAAW,CACfC,GAAI,OACJhlB,GAAI,OACJC,GAAI,OACJglB,KAAM,SACN/kB,GAAI,OACJC,GAAI,QAGN,OACE,eAAC,EAAD,CAAa3C,UAAU,wBAAvB,UACE,qBAAIA,UAAS,qBAAgBa,GAAQ0mB,EAAS1mB,GAAjC,YAA0Cb,EAA1C,YAAuDqnB,EAAa,WAAa,IAA9F,UAEInmB,GAAY,cAAC,EAAD,CAAalB,UAAS,gCAA2BsnB,GAAjD,SAAuEpmB,IAEpFH,EACD,cAAC,GAAD,eAAkBhB,OAEnBmnB,GAAY,mBAAGlnB,UAAS,8BAAyBmnB,GAAgBI,EAASJ,GAAlD,YAAmEC,GAA/E,SAAqGF,QAwBxHD,GAAW9mB,aAAe,CAExBH,UAAW,GACXa,KAAM,GAGNqmB,SAAU,GACVE,kBAAmB,GACnBD,aAAc,GAGdjmB,SAAU,KACVomB,kBAAmB,GAGnBD,YAAY,GAGCJ,UCtEf,MAAMS,GAAiB3nB,IACrB,MAAM,mBACJqD,EAAkB,MAClBrC,EAAK,SACLmmB,EAAQ,kBACRE,EAAiB,WACjBO,EAAU,kBACVC,EAAiB,6BACjBC,EAA4B,sBAC5BC,EAAqB,oBACrBC,EAAmB,+BACnBC,EAA8B,wBAC9BC,EAAuB,WACvBC,EAAU,WACVC,EAAU,yBACVC,EAAwB,gBACxBC,EAAe,kBACfC,EAAiB,aACjBC,EAAY,qBACZC,EAAoB,uBACpBC,EAAsB,kBACtBC,EAAiB,yBACjBC,EAAwB,2BACxBC,EAA0B,sBAC1BC,EAAqB,uBACrBC,EAAsB,wBACtBC,EAAuB,yBACvBC,EAAwB,0BACxBC,EAAyB,gBACzBC,GACEnpB,EAEJ,OACEU,eAACX,EAAW,CACVE,UAAS,kBAAAU,OAAoBwoB,EAAkB,cAAgB,GAAE,KAAAxoB,OAAI0C,GAAqBlD,SAAA,CAE1FS,cAACsmB,GAAU,IACLlnB,EACJgB,MAAOA,EACPmmB,SAAUA,EACVE,kBAAmBA,EACnBvmB,KAAM8mB,IAERlnB,eAACX,EAAW,CAACE,UAAU,gCAA+BE,SAAA,CAE5B,KAAtB0nB,GAEEjnB,cAACmB,EAAM,CACLC,KAAM6lB,EACNxmB,GAAIinB,EACJ7nB,QAASgoB,EACTja,aAAcoa,EACd3oB,UAAW6nB,EACXhnB,KAAMqnB,EACNiB,cAAeN,EACf1mB,UAAW2mB,EACX1mB,WAAY2mB,EACZ7nB,SAAU4mB,IAMU,KAAxBC,GAEEpnB,cAACmB,EAAM,CACLC,KAAMgmB,EACN3mB,GAAIknB,EACJ9nB,QAASioB,EACT5nB,KAAMqnB,EACN3Z,aAAcqa,EACd5oB,UAAWgoB,EACXmB,cAAeN,EACf1mB,UAAW6mB,EACX5mB,WAAY6mB,EACZ/nB,SAAU+mB,OAMhBE,GAEExnB,cAACb,EAAW,CAACE,UAAS,+BAAAU,OAAiC0nB,GAA2BloB,SAE9EqoB,EAEI5nB,cAACyoB,IAAI,CACHhoB,GAAImnB,EACJ/nB,QAASkoB,GAAiB,SAAgBxoB,SAEzCioB,IAIHxnB,cAAA,UACEH,QAASkoB,GAAiB,SAAgBxoB,SAEzCioB,UA2DrBT,GAAcvnB,aAAe,CAE3BiD,mBAAoB,GAGpBrC,MAAO,GACPmmB,SAAU,GACVE,kBAAmB,GACnBO,WAAY,GAGZC,kBAAmB,GACnBC,6BAA8B,gBAC9BC,sBAAuB,KAGvBC,oBAAqB,GACrBC,+BAAgC,cAChCC,wBAAyB,KAGzBC,WAAY,GAGZC,WAAY,KAGZE,gBAAiB,GACjBC,kBAAmB,GACnBC,aAAc,GACdH,yBAA0B,GAG1BI,qBAAsBA,OACtBC,uBAAwBA,OACxBC,kBAAmBA,OAGnBC,0BAA0B,EAC1BC,4BAA4B,EAC5BC,uBAAuB,EACvBC,wBAAwB,EACxBC,yBAAyB,EACzBC,0BAA0B,EAC1BC,2BAA2B,EAC3BC,iBAAiB,GAGJxB,UC1Mf,MAAM2B,GAActpB,IAClB,MAAM,eACJupB,EAAc,cACdC,EAAa,SACbrC,EAAQ,kBACRU,EAAiB,mBACjB4B,EAAkB,SAClBtpB,EAAQ,gCACRupB,EAA+B,uBAC/BC,EAAsB,uBACtBC,EAAsB,wBACtBC,EAAuB,yBACvBC,EAAwB,yBACxBC,EAAwB,0BACxBC,EAAyB,OACzBC,EAAM,mBACNC,EAAkB,0BAClBC,EAAyB,4BACzBC,EAA2B,UAC3BpR,EAAS,eACTqR,EAAc,gBACdlB,EAAe,sBACfmB,EAAqB,wBACrBC,EAAuB,8BACvBC,EAA6B,qBAC7BC,EAAoB,qBACpBC,EAAoB,sBACpBC,EAAqB,wBACrBC,EAAuB,4BACvBC,GACE7qB,EAEJ,OACEU,eAACoqB,KAAK,IACA9qB,EACJ0lB,KAAM1M,EACNiR,OAAQA,EACRc,UAAQ,EAAA5qB,SAAA,CAGNkqB,GAEEzpB,cAACb,EAAW,CAACE,UAAU,yBAAwBE,SAC7CS,cAAA,UACE,aAAW,aACXX,UAAU,eACVQ,QAASwpB,GAAUC,EAAmB/pB,SAEtCS,cAACoqB,KAAO,CACNlqB,KAAM,GACNb,UAAS,GAAAU,OAAK4oB,GAAkB,oBAO1C7oB,eAACX,EAAW,CAACE,UAAU,wCAAuCE,SAAA,CAC5DS,cAAC+mB,GAAa,IACR3nB,EACJgB,MAAOwoB,EACPrC,SAAUA,EACVU,kBAAmBA,EACnBD,WAAW,OACX3nB,UAAU,cAIVwpB,GAEE7oB,cAACb,EAAW,CAACE,UAAS,GAAAU,OAAKwoB,EAAkB,cAAgB,IAAKhpB,SAChES,cAAA,KAAGX,UAAU,sBAAqBE,SAC/BspB,MAMRtpB,EAGCypB,GAEElpB,eAACX,EAAW,CAACE,UAAS,GAAAU,OAAK+oB,EAA+B,+BAA8BvpB,SAAA,EAEnFoqB,GAEC3pB,cAACmB,EAAM,CACLb,KAAM4oB,EACN9nB,KAAM+nB,EACN9pB,UAAW+pB,EACXvpB,QAASwpB,GAAUG,EACnBtpB,KAAK,OAMT2pB,GACE7pB,cAACmB,EAAM,CACLb,KAAMwpB,EACN1oB,KAAMyoB,EACNxqB,UAAS,QAAAU,OAAUgqB,GACnBlqB,QAASmqB,EACTxoB,UAAWyoB,EACX/pB,KAAK,QAMRwpB,GAEC1pB,cAACmB,EAAM,CACLb,KAAMyoB,EACN3nB,KAAM4nB,EACN3pB,UAAS,QAAAU,OAAUkpB,GACnBppB,QAAS0pB,EACT/nB,UAAWooB,EACX1pB,KAAK,iBAsDzBwoB,GAAWlpB,aAAe,CAExBopB,cAAe,GACfrC,SAAU,GACVU,kBAAmB,GAGnB0B,eAAgB,GAGhBE,mBAAoB,KACpBtpB,SAAU,KAGVupB,gCAAiC,GACjCC,uBAAwB,GACxBC,uBAAwB,GACxBC,wBAAyB,cACzBC,yBAA0B,GAC1BC,yBAA0B,SAC1BC,0BAA2B,aAC3BS,qBAAsB,GACtBC,qBAAsB,GACtBC,sBAAuB,gBAGvBV,OAAQA,OACRC,mBAAoBA,OACpBC,0BAA2BA,OAC3BC,4BAA6BA,OAC7BQ,wBAAyBA,OAGzB5R,WAAW,EACXqR,gBAAgB,EAChBlB,iBAAiB,EACjBmB,uBAAuB,EACvBC,yBAAyB,EACzBC,+BAA+B,EAC/BK,6BAA6B,GAGhBvB,UC/IA/gB,gBAFW,SAACX,GAAD,MAAY,CAAEiS,aAAcjS,EAAMiS,gBAElBA,GAA3BtR,EAzEM,SAACvI,GACpB,IACEwZ,EAGExZ,EAHFwZ,iBACAK,EAEE7Z,EAFF6Z,aACAJ,EACEzZ,EADFyZ,cAGIwR,EAAgB,WACpBxR,IACAI,EAAaZ,aAGTiS,EAAiB,WACrB1R,IACIK,EAAaT,gBAAkBS,EAAaT,kBAG5C+R,EAAiB,SAACC,GACA,KAAlBA,EAAMC,SAAkBxR,EAAab,WACvCiS,KAWJ,OAPAvhB,qBAAU,WAER,OADAM,OAAO8J,iBAAiB,UAAWqX,GAC5B,WACLnhB,OAAO+J,oBAAoB,UAAWoX,MAEvC,CAACtR,EAAab,YAGf,cAAC,GAAD,CACE+R,UAAQ,EACRjqB,KAAK,KACLkY,UAAWa,EAAab,UACxBiR,OAAQiB,EACRb,gBAAc,EACdH,mBAAoBgB,EACpB1B,cAAe3P,EAAa7Y,MAC5BsqB,QAAM,EACNC,QAAM,EACN9B,mBAAoB5P,EAAa7X,KACjCwpB,4BAA4B,OAC5B5B,uBAAuB,GAZzB,SAcE,eAAC,EAAD,CAAa3pB,UAAU,wCAAvB,UACE,cAAC,EAAD,CACE+B,KAAK,SACL/B,UAAU,WACVQ,QAASyqB,EACT7oB,WAAYwX,EAAaP,aACzBxY,KAAK,OAGP,cAAC,EAAD,CACEkB,KAAM6X,EAAaR,aACnBpZ,UAAU,mBACVmC,UAAWyX,EAAaP,aACxBjX,WAAYwX,EAAaP,aACzBxY,KAAK,KAKLL,QAASwqB,Y,oBCfJ1iB,gBAFW,SAACX,GAAD,MAAY,CAAEgS,WAAYhS,EAAMgS,cAEhBA,GAA3BrR,EA/CI,SAACvI,GAClB,IACE8Y,EAEE9Y,EAFF8Y,UACAc,EACE5Z,EADF4Z,WAGFlQ,qBAAU,WACJkQ,EAAWjB,SACbuI,YAAW,WACTpI,MACC,QAEJ,CAACc,EAAWjB,QAASG,IASxB,OACE,cAAC,EAAD,CAAa7Y,UAAS,sCAAiC2Z,EAAWjB,QAAU,UAAY,UAAxF,SACE,cAAC,EAAD,CAAa1Y,UAAU,oBAAvB,SACE,eAAC,EAAD,CAAaA,UAAU,aAAvB,UACE,cAAC,EAAD,CAAaA,UAAU,iBAAvB,SACE,eAAC,EAAD,CAAaA,UAAS,eAAU2Z,EAAWhS,MAZxB,CAC3ByO,QAAS,oBACTF,MAAO,kBACPC,QAAS,qBACTqV,KAAM,oBAQ0E7R,EAAWhS,OAAS,kBAA5F,UACwB,YAArBgS,EAAWhS,OAAuB,cAAC,KAAD,CAAY9G,KAAM,GAAIb,UAAU,iBAC7C,UAArB2Z,EAAWhS,OAAqB,cAAC,IAAD,CAAmB9G,KAAM,GAAIb,UAAU,mBAClD,YAArB2Z,EAAWhS,OAAuB,cAAC,KAAD,CAAW9G,KAAM,GAAIb,UAAU,iBAC5C,SAArB2Z,EAAWhS,OAAoB,cAAC,IAAD,CAAoB9G,KAAM,GAAIb,UAAU,mBAI5E,cAAC,EAAD,CAAaA,UAAU,iBAAvB,SACE,mBAAGA,UAAU,OAAb,SACG2Z,EAAW5X,mB,SC9CpB0pB,GAAY,SAAC1rB,GACjB,IACEC,EAIED,EAJFC,UACAC,EAGEF,EAHFE,MACAC,EAEEH,EAFFG,SACAwrB,EACE3rB,EADF2rB,SAEF,OACE,sBACE1rB,UAAS,+BAA0BA,GACnC0rB,SAAUA,EACVzrB,MAAOA,EAHT,SAKGC,KAcPurB,GAAUtrB,aAAe,CAEvBH,UAAW,GACXE,SAAU,KAGVwrB,SAAU,cAGGD,U,SCtCAE,UAAaC,MAAM,CAChCnd,MAAOkd,OAAaE,SAAS,wBAC7BC,SAAUH,OAAaE,SAAS,0B,8BCC5BE,GAAkB,SAACC,EAAQC,GAC/B,OAAID,EAAOE,QAAQD,IAAcD,EAAOG,OAAOF,GACtC,SAELD,EAAOE,QAAQD,IAAeD,EAAOG,OAAOF,GACvC,KAMLG,GAAwB,SAACC,GAC7B,IAAMC,EAAY,IAAIC,SADgB,WAE3B9kB,GACL+kB,MAAMC,QAAQJ,EAAK5kB,IAAS4kB,EAAK5kB,GAAKilB,SAAQ,SAAClc,GAAD,OAAU8b,EAAUK,OAAOllB,EAAK+I,MAAiB8b,EAAUK,OAAOllB,EAAoB,OAAd4kB,EAAK5kB,GAAiB,GAAK4kB,EAAK5kB,KAD5J,IAAK,IAAMA,KAAO4kB,EAAO,EAAd5kB,GAIX,OAAO6kB,GAGHM,GAAmB,SAACrmB,EAAMsM,GAAP,MAAkB,CAAEsC,MAAO5O,EAAMsM,UAEpDga,GAAa,SAACC,EAAMC,EAAYC,GACpC,IAAMC,EAAST,MAAM5gB,KAAKkhB,GAC1B,EAAkBG,EAAOC,OAAOH,EAAY,GAArCI,EAAP,qBAEA,OADAF,EAAOC,OAAOF,EAAU,EAAGG,GACpBF,EAAO7mB,KAAI,SAACgnB,EAAGC,GAAJ,mBAAC,eAAeD,GAAhB,IAAmBE,UAAWD,QAG5CE,GAAwB,SAACtsB,GAC7B,OAAQA,GACN,KAAK4b,GAAUK,gBAAgBC,0BAC7B,MAAO,4BACT,KAAKN,GAAUK,gBAAgBE,2BAC7B,MAAO,6BACT,KAAKP,GAAUK,gBAAgBG,4BAC7B,MAAO,6BACT,KAAKR,GAAUK,gBAAgBI,kCAC7B,MAAO,sCACT,KAAKT,GAAUK,gBAAgBK,2BAC7B,MAAO,8BACT,KAAKV,GAAUK,gBAAgBM,uBAC7B,MAAO,eACT,KAAKX,GAAUK,gBAAgBO,yBAC7B,MAAO,iBACT,KAAKZ,GAAUK,gBAAgBQ,4BAC7B,MAAO,SACT,KAAKb,GAAUK,gBAAgBS,qBAC7B,MAAO,SACT,QACE,MAAO,KCpDPe,GAAiB,SAEjBtW,GAAK,yCAAG,WAAOrB,GAAP,UAAAoU,EAAA,+EAAgBU,GAAcC,KAAd,UAAsB4C,GAAtB,gBAAoD3X,EAAM8V,GAAUE,uBAApF,2CAAH,sDAELyQ,GAAQ,yCAAG,WAAOzmB,GAAP,UAAAoU,EAAA,+EAAgBU,GAAcC,KAAd,UAAsB4C,GAAtB,YAAgD3X,EAAM8V,GAAUE,uBAAhF,2CAAH,sDAER0Q,GAAW,yCAAG,WAAOC,GAAP,UAAAvS,EAAA,+EAAkBU,GAAcgD,IAAd,UAAqBH,GAArB,sBAAiDgP,GAAU7Q,GAAUE,uBAAvF,2CAAH,sDAEX4Q,GAAW,yCAAG,uBAAAxS,EAAA,+EAAYU,GAAcgD,IAAd,UAAqBH,GAArB,eAAkD7B,GAAUE,uBAAxE,2CAAH,qDAEX6Q,GAAU,yCAAG,WAAO7mB,GAAP,UAAAoU,EAAA,+EAAgBU,GAAcwD,IAAd,UAAqBX,GAArB,cAAiD3X,EAAM8V,GAAUE,uBAAjF,2CAAH,sDAEV8Q,GAAkB,yCAAG,WAAOC,EAAaC,GAApB,UAAA5S,EAAA,+EAAoCU,GAAcwD,IAAd,UAAqBX,GAArB,uCAAkEoP,EAAlE,wBAA6FC,GAAe,GAAIlR,GAAUE,uBAA9J,2CAAH,wDCYxB,MAAMiR,GAAe,CACnBvf,MAAO,GACPqd,SAAU,IA8HGxjB,oBAFYX,IAAK,CAAQY,KAAMZ,EAAMY,QAEV,IAAKA,KAAiBoR,IAAjDrR,EA3HIvI,IACjB,MAAM,UAAE4Y,EAAS,MAAEvQ,EAAK,QAAE3G,GAAY1B,GAC/BkuB,EAAmBC,GAAwBllB,oBAAS,GAcrDgjB,EAASmC,aAAU,CACvBC,cAAeJ,GACfK,iBAAkBC,GAClB5C,SAAUA,CAAC6C,EAAM/lB,KAAyB,IAAvB,cAAEgmB,GAAehmB,EAClCgmB,GAAc,GAfAC,EAAC7V,EAAO4V,KACxBE,GAAkB9V,GAAO2D,MAAMC,IAC7BpU,EAAMoU,GACN/a,EAAQI,KAAK,iDACZ8sB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACTL,GAAc,OAUdC,CAAUF,EAAQC,MAItB,OACE7tB,cAACb,EAAW,CAACE,UAAU,oBAAmBE,SACxCO,eAACX,EAAW,CAACE,UAAU,YAAWE,SAAA,CAChCO,eAACX,EAAW,CAACE,UAAU,aAAYE,SAAA,CACjCS,cAACb,EAAW,CAAAI,SACVS,cAAC2D,EAAK,CACJE,OAAQsqB,OAIZnuB,cAACb,EAAW,CAACE,UAAU,kBAAiBE,SACtCS,cAAA,KAAAT,SAAA,kBAAAQ,QACmB,IAAIslB,MAAQC,cAAa,kDAKhDtlB,cAACb,EAAW,CAACE,UAAU,aAAYE,SACjCO,eAACX,EAAW,CAACE,UAAU,iBAAgBE,SAAA,CACrCS,cAACb,EAAW,CAACE,UAAU,eAAcE,SACnCS,cAAC+mB,GAAa,CACZ3mB,MAAM,gBACNmmB,SAAS,qDACTS,WAAW,SAIflnB,eAACgrB,GAAS,CAAAvrB,SAAA,CACRS,cAACshB,GAAU,CACTrY,GAAG,QACHuL,MAAM,QACNO,YAAY,cACZrV,gBAAgB,aAChBa,SAAUP,cAACouB,IAAmB,CAACluB,KAxD5B,GAwD4Cb,UAAU,KACzDuV,aAAcyW,EAAOG,OAAO1d,MAC5B6G,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,aAC1CA,EAAOiD,cAAc,WAG3BtuB,cAACshB,GAAU,CACTrY,GAAG,WACH3I,KAAMgtB,EAAoB,OAAS,WACnC9Y,MAAM,WACNO,YAAY,iBACZrV,gBAAgB,aAChBa,SAAUP,cAACuuB,IAAmB,CAACruB,KApE5B,GAoE4Cb,UAAU,KACzDmiB,qBAAsB8L,EAAoB,OAAS,OACnDzL,wBAAyBA,IAAM0L,GAAsBD,MACjDjC,EAAOiD,cAAc,YACzB1Z,aAAcyW,EAAOG,OAAOL,SAC5BxW,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,eAiBhDrrB,cAACb,EAAW,CAACE,UAAU,oBAAmBE,SACxCS,cAACmB,EAAM,CACLb,KAAK,SACLc,KAAK,UACL/B,UAAU,cACVmC,UAAW6pB,EAAOmD,aAClB/sB,WAAY4pB,EAAOmD,eAAiBnD,EAAOoD,QAC3C5uB,QAASwrB,EAAOqD,iC,oBChI5BC,GAAU,SAACvvB,GACf,IACEwvB,EAOExvB,EAPFwvB,eACAC,EAMEzvB,EANFyvB,YACAxvB,EAKED,EALFC,UACAyvB,EAIE1vB,EAJF0vB,eACAC,EAGE3vB,EAHF2vB,aACAC,EAEE5vB,EAFF4vB,SACAzvB,EACEH,EADFG,SAGF,OACE,qBACEF,UAAS,UAAKuvB,EAAiB,GAAK,aAA3B,OAAyCC,EAAc,SAAW,GAAlE,YAAwExvB,GACjFC,MAAOwvB,EAFT,SAIE,qBACEzvB,UAAS,cAAS0vB,GAClBzvB,MAAO0vB,EAFT,SAIGzvB,OAmBTovB,GAAQnvB,aAAe,CAErBH,UAAW,GACX0vB,aAAc,GACdD,eAAgB,GAChBE,SAAU,GACVzvB,SAAU,KAGVqvB,gBAAgB,EAChBC,aAAa,GAGAF,UCpDTM,GAAe,SAAC7vB,GACpB,IAAQC,EAA8BD,EAA9BC,UAAW6vB,EAAmB9vB,EAAnB8vB,KAAM3vB,EAAaH,EAAbG,SAgBzB,OACE,qBAAKF,UAAS,UAAK6vB,GAhBD,CAClB,GAAI,sBACJ,GAAI,sBACJ,GAAI,sBACJ,EAAG,oBACH,EAAG,oBACH,EAAG,oBACH,EAAG,oBACH,EAAG,oBACH,EAAG,oBACH,EAAG,oBACH,EAAG,oBACH,EAAG,qBAIoCA,GAAzB,YAAkC7vB,GAAhD,SACGE,KAYP0vB,GAAazvB,aAAe,CAC1B0vB,KAAM,GACN7vB,UAAW,GACXE,SAAU,MAGG0vB,UCjCTE,GAAgB,SAAC/vB,GACrB,IACE6J,EAME7J,EANF6J,GACAxG,EAKErD,EALFqD,mBACA2sB,EAIEhwB,EAJFgwB,eACA5a,EAGEpV,EAHFoV,MACA6a,EAEEjwB,EAFFiwB,UACA/X,EACElY,EADFkY,SAEF,OACE,eAAC,EAAD,CAAajY,UAAS,mCAA8BoD,GAApD,UACE,iDACMrD,GADN,IAEEkB,KAAK,WACLjB,UAAU,iBACViwB,QAASD,EACT/X,SAAUA,KAGZ,iDACMlY,GADN,IAEEC,UAAS,yBAAoB+vB,GAC7BG,IAAKtmB,EAHP,SAKGuL,SAgBT2a,GAAc3vB,aAAe,CAE3ByJ,GAAI,GACJuL,MAAO,GACP/R,mBAAoB,GACpB2sB,eAAgB,GAChBC,WAAW,EACX/X,SAAU,cAGG6X,UCxDAnE,UAAaC,MAAM,CAChC1kB,SAAUykB,OAAaE,SAAS,wBAAwBsE,IAAI,KAC5DC,SAAUzE,OAAaE,SAAS,yBAAyBsE,IAAI,KAC7D1hB,MAAOkd,OAAald,MAAM,4BAA4Bod,SAAS,qBAAqBsE,IAAI,KACxFE,MAAO1E,OAAawE,IAAI,IACxBrE,SAAUH,OACPE,SAAS,wBACTyE,IAAI,EAAG,yDACPH,IAAI,KACPI,gBAAiB5E,OACdE,SAAS,oCACT2E,MAAM,CAAC7E,KAAQ,aAAc,0BAChC/M,SAAU+M,OAAW8E,WACrBppB,QAASskB,OAAW8E,aCbP9E,UAAaC,MAAM,CAChCmC,YAAapC,OACVE,SAAS,4BACTyE,IAAI,EAAG,mCACPH,IAAI,KACPrE,SAAUH,OACPE,SAAS,4BACTyE,IAAI,EAAG,mCACPH,IAAI,KACPI,gBAAiB5E,OACdE,SAAS,8BACT2E,MAAM,CAAC7E,KAAQ,aAAc,0BCXnBA,UAAaC,MAAM,CAChCwE,SAAUzE,OAAaE,SAAS,yBAAyBsE,IAAI,KAC7D1hB,MAAOkd,OAAald,MAAM,oCAAoCod,SAAS,6BAA6BsE,IAAI,KACxGE,MAAO1E,OAAawE,IAAI,IACxBvR,SAAU+M,OAAW8E,aC8BvB,MAAMC,GAAoB,CACxBN,SAAU,GACV3hB,MAAO,GACP4hB,MAAO,GACPnpB,SAAU,GACV4kB,SAAU,GACVyE,gBAAiB,GACjB3R,UAAU,EACVvX,SAAS,GAGLspB,GAA6B,CACjC/mB,GAAI,EACJkiB,SAAU,GACVyE,gBAAiB,IAGbK,GAAmB,CACvBhnB,GAAI,EACJwmB,SAAU,GACV3hB,MAAO,GACP4hB,MAAO,GACPnpB,SAAU,GACV0X,UAAU,EACVvX,SAAS,GAufIiB,oBAFYX,IAAK,CAAQY,KAAMZ,EAAMY,QAEV,IAAKA,KAAiBsoB,IAAjDvoB,EApfUvI,IACvB,MAAM,UAAE4Y,EAAS,KAAEpQ,GAASxI,GACrB+wB,EAAsBC,GAA2B/nB,oBAAS,IAC1DgoB,EAA4BC,GAAyCjoB,oBAAS,IAC9EkoB,EAAkBC,GAAuBnoB,oBAAS,IAClDilB,EAAmBC,GAAwBllB,oBAAS,IACpDooB,EAA0BC,GAA+BroB,oBAAS,IAClEsoB,EAAUC,GAAevoB,mBAAS,KAClC7G,EAAWqvB,GAAgBxoB,oBAAS,IACpCyoB,EAAqBC,GAA0B1oB,mBAAS2nB,KACxDgB,EAAeC,GAAoB5oB,mBAAS4nB,IAC7CrnB,EAAW,GAGjBE,qBAAU,KACRkkB,MACC,IAEH,MAAMkE,EAAsB1D,aAAU,CACpCC,cAAesC,GACfrC,iBAAkByD,GAClBpG,SAAUA,CAAC6C,EAAM/lB,KAAyB,IAAvB,cAAEgmB,GAAehmB,EAClCgmB,GAAc,GACduD,EAAaxD,MAIXyD,EAA8B7D,aAAU,CAC5CC,cAAeqD,EACfpD,iBAAkB4D,GAClBC,oBAAoB,EACpBxG,SAAUA,CAAC6C,EAAM4D,KAAyB,IAAvB,cAAE3D,GAAe2D,EAClC3D,GAAc,GACd4D,EAAmB7D,MAIjB8D,EAAmBlE,aAAU,CACjCC,cAAeuD,EACftD,iBAAkBiE,GAClBJ,oBAAoB,EACpBxG,SAAUA,CAAC6C,EAAMgE,KAAyB,IAAvB,cAAE/D,GAAe+D,EAClC/D,GAAc,GACdgE,EAASjE,MAgBPZ,EAAcA,KAClB6D,GAAa,GACb9C,KAA0BnS,MAAMC,IAC9B+U,EAAY/U,MACXmS,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAIXO,EAAgBnZ,IACpB4Y,GAAa,GACb9C,GAAqB9V,GAAO2D,MAAMC,IAChCmR,IACAhV,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtC8qB,OACC9D,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAIXiB,EAAqBA,KACzB1B,GAAwB,GACxBc,EAAoBa,aAShBN,EAAsBxZ,IAC1B4Y,GAAa,GACb9C,GAA+B9V,EAAMkT,SAAUlT,EAAMmV,aAAaxR,MAAMC,IACtE7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YARxC+pB,EAAuBf,IACvBqB,EAA4BU,YAC5BzB,GAAsC,MAQnCtC,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAIXgB,EAAY5Z,IAChB4Y,GAAa,GACb9C,GAAuB9V,GAAO2D,MAAMC,IAClC7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtCgrB,IACAhF,OACCgB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAIXmB,EAAiBA,KACrBxB,GAAoB,GACpBkB,EAAiBK,YACjBd,EAAiBhB,KAGbgC,EAAgB,CACpBriB,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,GAGNC,EAAU,CACd,CACEzsB,KAAM,KACN4O,MAAO,UACPuN,QAAS,CACPnS,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,EACVE,qBAAuBC,GACrBzyB,eAACX,EAAW,CAACE,UAAU,kDAAiDE,SAAA,CAEpEqI,EAAKlB,SAEH1G,cAACmB,EAAM,CACLC,KAAK,OACL/B,UAAU,mBACVa,KAAK,MACLL,QAASA,KAvGDoJ,QAwGS0nB,EAAS4B,GAAWtpB,GAvGnD4nB,GAAa,GACb9C,GAAwB9kB,GAAI2S,MAAMC,IAChCoV,EAAiBpV,GACjB2U,GAAoB,MACnBxC,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,SAuGJjpB,EAAKxB,KAAK6C,KAAO0nB,EAAS4B,GAAWtpB,IAEpCjJ,cAACmB,EAAM,CACLC,KAAK,iBACL/B,UAAU,qBACVa,KAAK,MACLL,QAASA,KACPywB,GAAsC,WAStD,CACE1qB,KAAM,WACN4O,MAAO,WACPuN,QAASkQ,GAEX,CACErsB,KAAM,WACN4O,MAAO,YACPuN,QAASkQ,GAEX,CACErsB,KAAM,WACN4O,MAAO,kBACPuN,QAAS,CACPnS,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,EACVE,qBAAuBC,GAAevyB,cAAA,KAAAT,SAAIoxB,EAAS4B,GAAWtU,SAAW,MAAQ,SAGrF,CACErY,KAAM,UACN4O,MAAO,iBACPuN,QAAS,CACPnS,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,EACVE,qBAAuBC,GAAevyB,cAAA,KAAAT,SAAIoxB,EAAS4B,GAAW7rB,QAAU,MAAQ,UAKtF,OACE5G,eAAA8B,WAAA,CAAArC,SAAA,CACGiC,GAAaxB,cAACwyB,EAAO,CAAC3nB,WAAS,IAChC7K,cAACb,EAAW,CAACE,UAAU,4BAA2BE,SAChDS,cAAC2uB,GAAO,CAACE,aAAW,EAAAtvB,SAClBS,cAACivB,GAAY,CAAA1vB,SACXO,eAACX,EAAW,CAACE,UAAU,6CAA4CE,SAAA,CACjES,cAAC+mB,GAAa,CACZ3mB,MAAM,QACN4mB,WAAW,KACXC,kBAAmBrf,EAAKlB,QAAU,WAAa,GAC/CmhB,qBAAsBA,KACpBuI,GAAwB,MAI5BpwB,cAACb,EAAW,CAAAI,SACVS,cAACyyB,KAAY,CACXpX,KAAMsV,EACN0B,QAASA,EACTtQ,QAAS,CACP2Q,eAAgB,OAChBN,UAAU,EACVD,OAAO,EACPQ,YAAY,EACZC,WAAY,CAAEC,WAAY,CAAEF,WAAY,2BAUtD3yB,cAAC0oB,GAAU,CACTe,gBAAc,EACdrR,UAAW+X,EACXjwB,KAAK,KACL0oB,cAAc,WACdI,uBAAuB,MACvBC,wBAAwB,cACxBM,0BAA2B2H,EAAoB4B,WAC/C3J,yBAAyB,SACzBC,0BAA0B,aAC1BC,OAAQyI,EAAmBvyB,SAE3BS,cAAC8qB,GAAS,CAACC,SAAUmG,EAAoB4B,WAAWvzB,SAClDO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,YACNI,aAAcsc,EAAoB1F,OAAOjlB,SACzCoO,WAAU,GAAA5U,OAAKsuB,GAAuB6C,EAAqB,gBACvDA,EAAoB5C,cAAc,YACtClZ,YAAU,MAIdpV,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,YACNI,aAAcsc,EAAoB1F,OAAOiE,SACzC9a,WAAU,GAAA5U,OAAKsuB,GAAuB6C,EAAqB,gBACvDA,EAAoB5C,cAAc,YACtClZ,YAAU,MAIdpV,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,QACNI,aAAcsc,EAAoB1F,OAAO1d,MACzC6G,WAAU,GAAA5U,OAAKsuB,GAAuB6C,EAAqB,aACvDA,EAAoB5C,cAAc,SACtClZ,YAAU,MAIdpV,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,eACNI,aAAcsc,EAAoB1F,OAAOkE,MACzC/a,WAAU,GAAA5U,OAAKsuB,GAAuB6C,EAAqB,aACvDA,EAAoB5C,cAAc,SACtC/M,KAAK,qBAITvhB,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACThhB,KAAMgtB,EAAoB,OAAS,WACnC9Y,MAAM,WACNO,YAAY,iBACZvU,UAAW8sB,EAAoBttB,cAAC+yB,KAAK,CAAC7yB,KAAM0I,EAAUvJ,UAAU,mBAAsBW,cAACgzB,KAAQ,CAAC9yB,KAAM0I,EAAUvJ,UAAU,mBAC1HuiB,iBAAkBA,KAChB2L,GAAsBD,IAExB1Y,aAAcsc,EAAoB1F,OAAOL,SACzCxW,WAAU,GAAA5U,OAAKsuB,GAAuB6C,EAAqB,gBACvDA,EAAoB5C,cAAc,YACtClZ,YAAU,MAIdpV,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACThhB,KAAMmwB,EAA2B,OAAS,WAC1Cjc,MAAM,mBACNO,YAAY,iBACZvU,UAAWiwB,EAA2BzwB,cAAC+yB,KAAK,CAAC7yB,KAAM0I,EAAUvJ,UAAU,mBAAsBW,cAACgzB,KAAQ,CAAC9yB,KAAM0I,EAAUvJ,UAAU,mBACjIuiB,iBAAkBA,KAChB8O,GAA6BD,IAE/B7b,aAAcsc,EAAoB1F,OAAOoE,gBACzCjb,WAAU,GAAA5U,OAAKsuB,GAAuB6C,EAAqB,uBACvDA,EAAoB5C,cAAc,mBACtClZ,YAAU,MAIdpV,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACmvB,GAAa,CACZ3a,MAAM,YACNvL,GAAG,aACCioB,EAAoB5C,cAAc,WACtCe,UAAW6B,EAAoBtD,OAAOlnB,YAI1C1G,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACmvB,GAAa,CACZ3a,MAAM,kBACNvL,GAAG,cACCioB,EAAoB5C,cAAc,YACtCe,UAAW6B,EAAoBtD,OAAO3P,oBAQhDje,cAAC0oB,GAAU,CACTe,gBAAc,EACdrR,UAAWiY,EACXnwB,KAAK,KACL0oB,cAAc,sBACdI,uBAAuB,QACvBC,wBAAwB,cACxBM,0BAA2B8H,EAA4ByB,WACvD3J,yBAAyB,SACzBC,0BAA0B,aAC1BC,OAAQA,KACNiH,GAAsC,IACtC/wB,SAEFS,cAAC8qB,GAAS,CAACC,SAAUsG,EAA4ByB,WAAWvzB,SAC1DO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBS,cAACivB,GAAY,CAACC,KAAM,GAAG3vB,SACrBS,cAACshB,GAAU,CACThhB,KAAMgtB,EAAoB,OAAS,WACnC9Y,MAAM,eACNO,YAAY,qBACZvU,UAAW8sB,EAAoBttB,cAAC+yB,KAAK,CAAC7yB,KAAM0I,EAAUvJ,UAAU,mBAAsBW,cAACgzB,KAAQ,CAAC9yB,KAAM0I,EAAUvJ,UAAU,mBAC1HuiB,iBAAkBA,KAChB2L,GAAsBD,IAExB1Y,aAAcyc,EAA4B7F,OAAO4B,YACjDzY,WAAU,GAAA5U,OAAKsuB,GAAuBgD,EAA6B,mBAC/DA,EAA4B/C,cAAc,eAC9ClZ,YAAU,MAGdpV,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACThhB,KAAMgtB,EAAoB,OAAS,WACnC9Y,MAAM,eACNO,YAAY,qBACZvU,UAAW8sB,EAAoBttB,cAAC+yB,KAAK,CAAC7yB,KAAM0I,EAAUvJ,UAAU,mBAAsBW,cAACgzB,KAAQ,CAAC9yB,KAAM0I,EAAUvJ,UAAU,mBAC1HuiB,iBAAkBA,KAChB2L,GAAsBD,IAExB1Y,aAAcyc,EAA4B7F,OAAOL,SACjDxW,WAAU,GAAA5U,OAAKsuB,GAAuBgD,EAA6B,gBAC/DA,EAA4B/C,cAAc,YAC9ClZ,YAAU,MAIdpV,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACThhB,KAAMmwB,EAA2B,OAAS,WAC1Cjc,MAAM,uBACNO,YAAY,uBACZvU,UAAWiwB,EAA2BzwB,cAAC+yB,KAAK,CAAC7yB,KAAM0I,EAAUvJ,UAAU,mBAAsBW,cAACgzB,KAAQ,CAAC9yB,KAAM0I,EAAUvJ,UAAU,mBACjIuiB,iBAAkBA,KAChB8O,GAA6BD,IAE/B7b,aAAcyc,EAA4B7F,OAAOoE,gBACjDjb,WAAU,GAAA5U,OAAKsuB,GAAuBgD,EAA6B,uBAC/DA,EAA4B/C,cAAc,mBAC9ClZ,YAAU,aAQpBpV,cAAC0oB,GAAU,CACTe,gBAAc,EACdrR,UAAWmY,EACXrwB,KAAK,KACL0oB,cAAc,YACdI,uBAAuB,SACvBC,wBAAwB,cACxBM,0BAA2BmI,EAAiBoB,WAC5C3J,yBAAyB,SACzBC,0BAA0B,aAC1BC,OAAQA,KACN2I,KACAzyB,SAEFS,cAAC8qB,GAAS,CAACC,SAAU2G,EAAiBoB,WAAWvzB,SAC/CO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,YACNG,WAAW,WACXtS,UAAQ,EACR+S,YAAU,KACNsc,EAAiBpD,cAAc,gBAIvCtuB,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,YACNI,aAAc8c,EAAiBlG,OAAOiE,SACtC9a,WAAU,GAAA5U,OAAKsuB,GAAuBqD,EAAkB,gBACpDA,EAAiBpD,cAAc,YACnClZ,YAAU,MAIdpV,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,QACNI,aAAc8c,EAAiBlG,OAAO1d,MACtC6G,WAAU,GAAA5U,OAAKsuB,GAAuBqD,EAAkB,aACpDA,EAAiBpD,cAAc,SACnClZ,YAAU,MAIdpV,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,eACNI,aAAc8c,EAAiBlG,OAAOkE,MACtC/a,WAAU,GAAA5U,OAAKsuB,GAAuBqD,EAAkB,aACpDA,EAAiBpD,cAAc,SACnC/M,KAAK,qBAITvhB,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACmvB,GAAa,CACZ3a,MAAM,YACNvL,GAAG,aACCyoB,EAAiBpD,cAAc,WACnCe,UAAWqC,EAAiB9D,OAAOlnB,YAIvC1G,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACmvB,GAAa,CACZ3a,MAAM,kBACNvL,GAAG,cACCyoB,EAAiBpD,cAAc,YACnCe,UAAWqC,EAAiB9D,OAAO3P,0B,oEC1hBnDgV,0BAAeC,KAAoCC,MAEnD,IAAMC,GAAkBC,sBAAW,SAACj0B,EAAOkN,GACzC,IAAQ7J,EAAkCrD,EAAlCqD,mBAAoB6wB,EAAcl0B,EAAdk0B,UAE5B,OACE,cAAC,EAAD,CAAaj0B,UAAS,UAAKoD,GAA3B,SACE,cAAC,YAAD,2BACMrD,GADN,IAEEkN,IAAKA,EACLgnB,UAAWA,UAWnBF,GAAgB5zB,aAAe,CAC7BiD,mBAAoB,GACpB6wB,UAAW,gFAGEF,UC/BTG,GAAgB,SAACn0B,GACrB,IACEqD,EAeErD,EAfFqD,mBACApD,EAcED,EAdFC,UACAK,EAaEN,EAbFM,gBACA8U,EAYEpV,EAZFoV,MACAC,EAWErV,EAXFqV,WACAC,EAUEtV,EAVFsV,WACAK,EASE3V,EATF2V,YACAJ,EAQEvV,EARFuV,WACAC,EAOExV,EAPFwV,aACAC,EAMEzV,EANFyV,eACAC,EAKE1V,EALF0V,eACAI,EAIE9V,EAJF8V,eACAE,EAGEhW,EAHFgW,WACA3T,EAEErC,EAFFqC,WACA4T,EACEjW,EADFiW,UAWF,OACE,eAAC,EAAD,CAAahW,UAAS,gCAA2BoD,GAAjD,UAEIiS,GAEE,uBAAMrV,UAAS,gCAA2BsV,GAA1C,UACGD,EACAU,GAAc,sBAAM/V,UAAU,qBAAhB,eAEb6V,GAEE,cAAC,IAAD,CACE7T,SAAS,KACThC,UAAU,+CACVa,KAAM,GACNZ,MAAO,CAAEoW,WAAY,QAQ/BlB,GAEE,uBAAMnV,UAAS,uBAAkBsV,EAAlB,YAAgCF,GAA/C,UACGD,EACAY,GAAc,sBAAM/V,UAAU,qBAAhB,eAEb6V,GAEE,cAAC,IAAD,CACE7T,SAAS,KACThC,UAAU,gDACVa,KAAM,QAOlB,oDACMd,GADN,IAEEC,UAAS,+BAA0BA,EAA1B,YAAuCK,EAAvC,YAA0DiV,GAlDrD,CAClBY,MAAO,QACPC,QAAS,UACTC,QAAS,UACTpT,SAAU,YA8CuFsS,GAApF,YAAmGU,GAAa,WAAhH,aAA+HX,GAAc,UACtJK,YAAaA,EACb1S,YAAaZ,GAA6B,aAAfkT,MAGZ,UAAfA,GAEE,sBAAMtV,UAAS,0CAAqCqV,GAAcF,EAAQ,WAAa,IAAvF,SACGI,IAAiBF,GAAcF,EAASE,GAAU,UAAOF,EAAP,YA3DlC,eA2D0E,6BAKhF,YAAfG,GAEE,sBAAMtV,UAAS,4CAAuCqV,GAAcF,EAAQ,WAAa,IAAzF,SACGM,IAKU,YAAfH,GAEE,sBAAMtV,UAAS,4CAAuCqV,GAAcF,EAAQ,WAAa,IAAzF,SACGK,QAiCb0e,GAAc/zB,aAAe,CAE3BiD,mBAAoB,GACpBpD,UAAW,GACXK,gBAAiB,aAGjB8U,MAAO,GACPC,WAAY,GACZC,WAAY,GACZK,YAAa,GAGbJ,WAAY,GACZC,aAAc,GACdC,eAAgB,GAChBC,eAAgB,GAGhBI,gBAAgB,EAChBE,YAAY,EACZ3T,YAAY,EACZ4T,WAAW,GAGEke,UC7Jf,MAAMxV,GAAiB,YCAvB,IAAMA,GAAiB,QAEjByV,GAAW,yCAAG,WAAOvV,GAAP,UAAAzD,EAAA,+EAAoBU,GAAcgD,IAAd,UAAqBH,GAArB,gCAA2DE,GAAY/B,GAAUE,uBAArG,2CAAH,sDAEXqX,GAAW,yCAAG,WAAOC,GAAP,UAAAlZ,EAAA,+EAAkBU,GAAcgD,IAAd,UAAqBH,GAArB,8BAAyD2V,GAAUxX,GAAUE,uBAA/F,2CAAH,sDAEXuX,GAAU,yCAAG,WAAOhmB,GAAP,UAAA6M,EAAA,+EAAgBU,GAAcC,KAAd,UAAsB4C,GAAtB,cAAkDpQ,EAAMuO,GAAUE,uBAAlF,2CAAH,sDAEVwX,GAAU,yCAAG,WAAOjmB,GAAP,UAAA6M,EAAA,+EAAgBU,GAAcwD,IAAd,UAAqBX,GAArB,cAAiDpQ,EAAMuO,GAAUE,uBAAjF,2CAAH,sDAEVyX,GAAU,yCAAG,WAAOH,GAAP,UAAAlZ,EAAA,+EAAkBU,GAAcsD,OAAd,UAAwBT,GAAxB,yBAAuD2V,GAAUxX,GAAUE,uBAA7F,2CAAH,sDAEV0X,GAA0B,yCAAG,WAAOJ,EAAQK,EAAkBzzB,GAAjC,UAAAka,EAAA,+EAA0CU,GAAcC,KAAd,UAAsB4C,GAAtB,6CAAyE2V,EAAzE,6BAAoGK,EAApG,iBAA6HzzB,GAAQ,GAAI4b,GAAUE,uBAA7L,2CAAH,0DAE1B4X,GAAsB,yCAAG,WAAOC,GAAP,UAAAzZ,EAAA,+EAAkCU,GAAcsD,OAAd,UAAwBT,GAAxB,yDAAuFkW,GAA0B/X,GAAUE,uBAA7J,2CAAH,sDAEtB8X,GAAuB,yCAAG,WAAOC,GAAP,UAAA3Z,EAAA,+EAAsBU,GAAcwD,IAAd,UAAqBX,GAArB,2BAA8DoW,EAAYjY,GAAUE,uBAA1G,2CAAH,sDAEvBgY,GAAiB,yCAAG,WAAOV,GAAP,UAAAlZ,EAAA,+EAAkBU,GAAcsD,OAAd,UAAwBT,GAAxB,oCAAkE2V,GAAUxX,GAAUE,uBAAxG,2CAAH,sDC0PRzU,oBAFYX,IAAK,CAAQY,KAAMZ,EAAMY,QAEV,IAAKA,KAAiBsoB,IAAjDvoB,EAlOcvI,IAC3B,MAAM,UAAE4Y,EAAS,QAAE9P,EAAO,iBAAEyQ,EAAgB,iBAAEC,GAAqBxZ,GAC5DoC,EAAWqvB,GAAgBxoB,oBAAS,IAEpCgsB,EAAgBC,GAAqBjsB,oBAAS,IAC9CksB,EAAUC,GAAensB,mBAAS,KAClCosB,EAAiBC,GAAsBrsB,mBAAS,KAEhDssB,EAAuBC,GAA4BvsB,oBAAS,IAC5DwsB,EAAOC,GAAYzsB,mBAAS,KAC5B0sB,EAAcC,GAAmB3sB,mBAAS,IAKjDS,qBAAU,MACH+rB,EAAM9rB,OAAS,GAClBksB,MAED,IAEHnsB,qBAAU,KACRosB,MACC,IAEH,MAAMA,EAAcA,KAClBrE,GAAa,GFlEGsE,UAAYja,GAAcgD,IAAI,GAADne,OAAIge,GAAc,eAAe7B,GAAUE,sBEmExFgZ,GAA6BxZ,MAAMC,IACjC2Y,EAAY3Y,MACXmS,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAIXoE,EAAWE,UACftE,GAAa,GACb,IACE,MAAMhV,QAAYwZ,IAAwB,GAEpCC,QAAsB5Z,QAAQ6Z,IAAI1Z,EAAIpW,KAAI0vB,UAC9C,IACE,MAAMK,QAAoBH,GAAwB1nB,EAAK1E,IACvD,MAAO,IAAK0E,KAAS6nB,GACrB,MAAOvH,GAEP,OADAjW,EAAU,CAAE5W,KAAK,mCAADrB,OAAqC4N,EAAK1E,GAAE,MAAAlJ,OAAKkuB,EAAGzS,SAAWxU,MAAO,UAC/E2G,OAIXmnB,EAASQ,GACT,MAAOrH,GACPjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,UACtC,QACC6pB,GAAa,KAIXxF,EAASmC,aAAU,CACvBC,cAAe,CACb3mB,IAAK,GACLoL,MAAO,IAETqf,oBAAoB,EACpBxG,SAAW6C,IACT,MAAM6H,EAAiB,IAAKhB,EAAiBviB,MAAO0b,EAAO1b,OFpG7CijB,UAAmBja,GAAcwD,IAAI,GAAD3e,OAAIge,GAAc,eAAe2X,EAASxZ,GAAUE,sBEsGtGgZ,CAA2BK,GACxB7Z,MAAK,KACJ5D,EAAU,CAAE5W,KAAK,GAADrB,OAAK01B,EAAe3uB,IAAG,yBAAyBE,MAAO,YACvEkuB,IACAS,OAED3H,OAAOC,IACNjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,gBAKvC4uB,EAAc3sB,IAClB4nB,GAAa,GFvHMsE,UAAcja,GAAcgD,IAAI,GAADne,OAAIge,GAAc,sBAAAhe,OAAqBkJ,GAAMiT,GAAUE,sBEwHzGgZ,CAA8BnsB,GAAI2S,MAAMC,IACtC6Y,EAAmB7Y,GACnBwP,EAAOwK,UAAU,CAAE/uB,IAAK+U,EAAI/U,IAAKoL,MAAO2J,EAAI3J,QAC5CoiB,GAAkB,MACjBtG,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAIX8E,EAAmBA,KACvBjB,EAAmB,IACnBJ,GAAkB,IAQdwB,EAAkB,CACtB,CACElwB,KAAM,KACN4O,MAAO,UACPuN,QAAS,CACPnS,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,EACVE,qBAAuBC,GACrBvyB,cAACb,EAAW,CAACE,UAAU,kDAAiDE,SACtES,cAACmB,EAAM,CACLC,KAAK,OACL/B,UAAU,6BACVa,KAAK,MACLL,QAASA,IAAM+1B,EAAWrB,EAAShC,GAAWtpB,UAMxD,CACErD,KAAM,MACN4O,MAAO,OACPuN,QAAS,CACPnS,QAAQ,EACRsiB,MAAM,IAGV,CACEtsB,KAAM,QACN4O,MAAO,QACPuN,QAAS,CACPnS,QAAQ,EACRsiB,MAAM,EACN6D,aAAcA,KAAA,CACZz2B,MAAO,CACL2hB,SAAU,QACVyD,SAAU,gBAGd4N,qBAAuBC,GAAcgC,EAAShC,GAAWrgB,OAAS,OAKxE,OACEpS,eAAA8B,WAAA,CAAArC,SAAA,CACGiC,GAAaxB,cAACwyB,EAAO,CAAC3nB,WAAS,IAGhC7K,cAACb,EAAW,CAACE,UAAU,4BAA2BE,SAChDS,cAAC2uB,GAAO,CAACE,aAAW,EAAAtvB,SAClBS,cAACivB,GAAY,CAAA1vB,SACXO,eAACX,EAAW,CAACE,UAAU,6CAA4CE,SAAA,CACjES,cAACb,EAAW,CAACE,UAAU,QAAOE,SAC5BS,cAAA,MAAIX,UAAU,mCAAkCE,SAAC,eAGnDS,cAACb,EAAW,CAAAI,SACVS,cAACyyB,KAAY,CACXpX,KAAMkZ,EACNlC,QAASyD,EACT/T,QAAS,CACP2Q,eAAgB,OAChBN,UAAU,EACVD,OAAO,EACPQ,YAAY,EACZqD,QAAQ,EACRC,aAAa,EACbrmB,QAAQ,EACRijB,YAAY,EACZD,WAAY,CAAEC,WAAY,CAAEF,WAAY,2BAWtD3yB,cAAC0oB,GAAU,CACTe,gBAAc,EACdrR,UAAWic,EACXn0B,KAAK,KACL0oB,cAAc,iBACdI,uBAAuB,eACvBC,wBAAwB,cACxBM,0BAA2B8B,EAAOyH,WAClCzJ,OAAQsM,EAAiBp2B,SAEzBS,cAAC8qB,GAAS,CAACC,SAAUM,EAAOyH,WAAWvzB,SACrCO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBS,cAACivB,GAAY,CAAA1vB,SACXS,cAACshB,GAAU,CACT7f,YAAU,EACV+S,MAAM,OACNI,aAAcyW,EAAOG,OAAO1kB,IAC5B6N,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,WAC1CA,EAAOiD,cAAc,OACzBjvB,UAAU,eAIdW,cAACivB,GAAY,CAAA1vB,SACXS,cAACshB,GAAU,CACT9M,MAAM,QACNI,aAAcyW,EAAOG,OAAOtZ,MAC5ByC,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,aAC1CA,EAAOiD,cAAc,0B,SCQ1B3mB,oBADYX,IAAK,CAAQY,KAAMZ,EAAMY,QACV,IAAKsoB,MAAkBjX,IAAlDtR,EA7OcvI,IAC3B,MAAM,UAAE4Y,EAAS,iBAAEW,EAAgB,iBAAEC,GAAqBxZ,GACnDoC,EAAWqvB,GAAgBxoB,oBAAS,IACpC6tB,EAAiBC,GAAsB9tB,oBAAS,IAChDhE,EAAW+xB,GAAgB/tB,mBAAS,KACpCguB,EAAUC,GAAejuB,mBAAS,IAIzCS,qBAAU,KACRytB,MACC,IAEHztB,qBAAU,KACRwtB,EAAYjyB,EAAU6tB,MAAK,CAAC1X,EAAGgc,IAAMhc,EAAIgc,OACxC,CAACnyB,IAEJ,MAAMkyB,EAAeA,KACnB1F,GAAa,GACbxQ,GAAgC,IAAIzE,MAAMC,IACxCua,EAAava,MACZmS,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OA8CXoB,EAAgB,CACpBriB,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,GAWNC,EAAU,CACd,CACEzsB,KAAM,KACN4O,MAAO,UACPuN,QAAS,CACPnS,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,EACVE,qBAAuBC,GACrBzyB,eAACX,EAAW,CAACE,UAAU,kDAAiDE,SAAA,CACtES,cAACmB,EAAM,CACLC,KAAK,OACL/B,UAAU,mBACVa,KAAK,MACLO,GAAE,kCAAAV,OAAoCsE,EAAUkuB,GAAWtpB,MAG7DjJ,cAACmB,EAAM,CACLC,KAAK,SACL/B,UAAU,aACVa,KAAK,MACLL,QAASA,KACP8Y,EAAiB,CACfvY,MAAO,mBACPgB,KAAM,kDACNqX,aAAc,UACdJ,UAAWA,KApFH+F,QAqFS/Z,EAAUkuB,GAAWtpB,GApFpD4nB,GAAa,GAEbxQ,GAA+BjC,GAAYxC,MAAMC,IAC/C0a,IACAve,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,eACrCgnB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,GACbjY,kBAoFF,CACEhT,KAAM,OACN4O,MAAO,iBACPuN,QAASkQ,GAEX,CACErsB,KAAM,WACN4O,MAAO,gBACPuN,QAASkQ,GAEX,CACErsB,KAAM,iBACN4O,MAAO,mBACPuN,QAASkQ,GAEX,CACErsB,KAAM,eACN4O,MAAO,0BACPuN,QAAS,IACJkQ,EACHK,qBAAuBC,GACrBvyB,cAAA,KAAAT,SAAI8E,EAAUkuB,GAAW3kB,aAAe,MAAQ,SAItD,CACEhI,KAAM,WACN4O,MAAO,aACPuN,QAAS,IACJkQ,EACHK,qBAAuBC,GACrBvyB,cAAA,KAAAT,SAAI8E,EAAUkuB,GAAWtU,SAAW,MAAQ,UAMpD,OACEne,eAAA8B,WAAA,CAAArC,SAAA,CACGiC,GAAaxB,cAAC0K,EAAO,CAACG,WAAS,IAChC7K,cAACb,EAAW,CAACE,UAAU,4BAA2BE,SAChDS,cAAC2uB,GAAO,CAACE,aAAW,EAAAtvB,SAClBS,cAACivB,GAAY,CAAA1vB,SACXO,eAACX,EAAW,CAACE,UAAU,6CAA4CE,SAAA,CACjES,cAAC+mB,GAAa,CACZ3mB,MAAM,aACN4mB,WAAW,KACXC,kBAAkB,gBAClBS,gBAAgB,4BAChBN,oBAAoB,aACpBU,uBAAwBA,IAAMqO,GAAmB,KAGnDn2B,cAACb,EAAW,CAAAI,SACVS,cAACyyB,KAAY,CACXpX,KAAMhX,EACNguB,QAASA,EACTtQ,QAtGA,CACd2Q,eAAgB,OAChBN,UAAU,EACVD,OAAO,EACPQ,YAAY,EACZC,WAAY,CAAEC,WAAY,CAAEF,WAAY,2BA0GtC3yB,cAAC0oB,GAAU,CACTe,gBAAc,EACdrR,UAAW8d,EACXh2B,KAAK,KACL0oB,cAAc,gBACdI,uBAAuB,OACvBO,0BAxJgB1K,KACpBgS,GAAa,GAEbxQ,GAA8BgW,GAAUza,MAAMC,IAC5C0a,IACAve,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtCmvB,GAAmB,MAClBnI,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OA+IXxH,OAAQA,KACN8M,GAAmB,IACnB52B,SAEFS,cAAC2uB,GAAO,CAACC,gBAAc,EAAArvB,SACrBS,cAACy2B,KAAe,CAACC,UAhJNpK,IACjB,IAAKA,EAAOtG,YACV,OAGF,MAAM2Q,EAAUtI,GACdgI,EACA/J,EAAOzoB,OAAO4gB,MACd6H,EAAOtG,YAAYvB,OAGrB6R,EAAYK,IAqIgCp3B,SACpCS,cAAC42B,KAAS,CAACC,YAAY,YAAWt3B,SAC9Bu3B,GACAh3B,eAAA,OACEwM,IAAKwqB,EAAkBC,SAASx3B,SAAA,CAE/B82B,EAAS5wB,KAAI,CAACoK,EAAM4U,IACnBzkB,cAACg3B,KAAS,CACIC,YAAW,GAAAl3B,OAAK0kB,GAC5BA,MAAOA,EAAMllB,SAEX23B,GACAl3B,cAAA,OAEEsM,IAAK4qB,EAAkBH,YACnBG,EAAkBC,kBAClBD,EAAkBE,gBACtB/3B,UAAU,8EAA6EE,SAEvFS,cAAA,KAAGX,UAAU,mBAAkBE,SAAEsQ,EAAKjK,QANjC6e,IALJA,KAiBRqS,EAAkB/hB,6BCvPrC,MAAMsiB,GAAmBj4B,IACvB,MAAM,WACJmoB,EAAU,SACV7kB,EAAQ,SACRnD,EAAQ,kBACR+3B,EAAiB,mBACjBC,EAAkB,gBAClBC,EAAe,qBACfC,EAAoB,oBACpBC,EAAmB,qBACnBC,EAAoB,kBACpBC,EAAiB,uBACjBC,EAAsB,aACtBC,EAAY,mBACZC,EAAkB,oBAClBC,EAAmB,iBACnBC,EAAgB,sBAChBC,EAAqB,oBACrBC,GACE/4B,EAOJ,OACEU,eAACX,EAAW,CAACE,UAAS,qBAAAU,OANN,CAChBq4B,IAAK,MACLC,OAAQ,UAI+C31B,IAAYnD,SAAA,CACjEO,eAACX,EAAW,CAACE,UAAU,8BAA6BE,SAAA,CAEnC,OAAbA,GAEES,cAACb,EAAW,CAAAI,SACTA,IAIPO,eAACX,EAAW,CAACE,UAAU,oBAAmBE,SAAA,CAEd,KAAvBw4B,EAEC/3B,cAACmB,EAAM,CACLC,KAAM22B,EACN14B,UAAW24B,EACXv3B,GAAIw3B,EACJp4B,QAASq4B,EACTh4B,KAAMqnB,IAPoB,MAaX,KAAjBuQ,EAAgCK,EAAT,OAEvBn4B,cAAC+mB,GAAa,CACZ3mB,MAAO03B,EACP9Q,WAAW,KACX3nB,UAAU,iBACVoD,mBAAmB,eAO7B3C,eAACX,EAAW,CAACE,UAAU,uCAAsCE,SAAA,CAEhC,KAAxBm4B,EAEC13B,cAACmB,EAAM,CACLC,KAAMs2B,EACNr4B,UAAWs4B,EACXl3B,GAAIm3B,EACJ/3B,QAASg4B,EACT33B,KAAMqnB,IAPqB,KAY/B+P,GACEt3B,cAACmB,EAAM,CACLC,KAAMk2B,EACNj4B,UAAWk4B,EACX92B,GAAI+2B,EACJ33B,QAAS43B,EACTv3B,KAAMqnB,WAsCpB8P,GAAgB73B,aAAe,CAE7B+nB,WAAY,GAGZ7kB,SAAU,SACVnD,SAAU,KAGVg4B,mBAAoB,cACpBC,gBAAiB,GACjBC,qBAAsB,KAEtBC,oBAAqB,GACrBC,qBAAsB,aACtBC,kBAAmB,GACnBC,uBAAwB,KAExBC,aAAc,GACdC,mBAAoB,GACpBC,oBAAqB,gBACrBC,iBAAkB,GAClBC,sBAAuB,KAEvBC,qBAAqB,GAGRd,UC5JArM,UAAaC,MAAM,CAChChiB,GAAI+hB,OACJplB,KAAMolB,OAAaE,SAAS,8BAA8BsE,IAAI,KAC9DkE,OAAQ1I,OAAa8E,WACrBwI,iBAAkBtN,OAAa8E,WAC/BhjB,WAAYke,OAAa8E,WAAWN,IAAI,KACxC5hB,aAAcod,OACd/M,SAAU+M,SC+BZ,MAAMuN,GAAsB,CAC1BtvB,GAAI,EACJrD,KAAM,GACN8tB,OAAQ,KACR4E,iBAAkB,KAClBxrB,WAAY,KACZc,cAAc,EACdqQ,UAAU,EACVyC,kBAAmB,IAufN/Y,oBAFYX,IAAK,CAAQY,KAAMZ,EAAMY,QAEV,IACrCA,KACAsoB,MACAsI,IAHU7wB,EApfiBvI,IAC9B,MAAM,UAAE4Y,EAAS,QAAElX,EAAO,iBAAE6X,EAAgB,iBAAEC,GAAqBxZ,GAC7D,WAAEgf,GAAeqa,eAChBj3B,EAAWqvB,GAAgBxoB,oBAAS,IACpCqwB,EAAeC,GAAoBtwB,mBAASkwB,KAC5CK,EAAiBC,GAAsBxwB,mBAAS,CACrDsF,KAAM,KACNmrB,eAAgB,QAEXC,EAAaC,GAAkB3wB,sBAC/B4wB,EAAiBC,GAAsB7wB,sBACvCgsB,EAAgBC,GAAqBjsB,oBAAS,IAC9C8wB,EAA2BC,GAAgC/wB,mBAAS,KACpEgxB,EAA4BC,GAAiCjxB,mBAAS,OACtE6tB,EAAiBC,GAAsB9tB,oBAAS,IAChDguB,EAAUC,GAAejuB,mBAAS,IAKnC4pB,EAAgB,CACpBriB,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,GASZtpB,qBAAU,KACRywB,MACC,CAACnb,IAEJtV,qBAAU,KACRwtB,EAAYoC,EAAchY,kBAAkBwR,MAAK,CAAC1X,EAAGgc,IAAMhc,EAAIgc,OAC9D,CAACkC,IAEJ,MAAMrN,EAASmC,aAAU,CACvBC,cAAeiL,EACfhL,iBAAkB8L,GAClBjI,oBAAoB,EACpBxG,SAAUA,CAAC6C,EAAM/lB,KAAyB,IAAvB,cAAEgmB,GAAehmB,EAClCgmB,GAAc,GACVzP,EACFqb,EAAe7L,GAEftP,EAAesP,MAKf2L,EAA6BpE,UACjC,MAAMN,QAAc6E,IACdr1B,QAAkBs1B,IAEpBvb,EAAa,GACfwb,EAAY/E,EAAOxwB,IAIjBu1B,EAAczE,MAAON,EAAOxwB,KAChCwsB,GAAa,SAEPgJ,IACNxZ,GAAiCjC,GAAYxC,MAAMC,IACjD8c,EAAiB9c,GACjB,IAAIie,EAAyB,CAC3BnsB,KAAM,KACNmrB,eAAgB,MAElB,GAAIjd,EAAI6X,OAAQ,CACd,MAAMqB,EAAeF,EAAMhoB,MAAM4f,GAAMA,EAAEva,QAAU2J,EAAI6X,SACnDqB,IACF+E,EAAyB,IAAKA,EAAwBnsB,KAAMonB,IAIhE,GAAIlZ,EAAIyc,iBAAkB,CACxB,MAAMyB,EAAmB11B,EAAUwI,MAAM4f,GAAMA,EAAEva,QAAU2J,EAAIyc,mBAC3DyB,IACFD,EAAyB,IAAKA,EAAwBhB,eAAgBiB,IAI1ElB,EAAmBiB,MAClB9L,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAIX6I,EAAiBvE,SAAYE,IAAwB,GAAMzZ,MAAMC,IACrE,MAAMme,EAAWne,EAAIpW,KAAKgnB,GAAM4B,GAAwB5B,EAAE7mB,KAAM6mB,EAAExjB,MAIlE,OAFA+vB,EAAegB,GAERA,KACNhM,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aAGjC6yB,EAA4B1E,SAAY9U,KAC3CzE,MAAMC,IACL,MAAMoe,EAAiBpe,EAAIjM,QAAQ6c,GAAMA,EAAExjB,KAAOixB,OAAO9b,KACtD3Y,KAAKgnB,GAAM4B,GAAwB5B,EAAE7mB,KAAM6mB,EAAExjB,MAGhD,OAFAmwB,EAA6Ba,GAEtBA,KACNjM,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aAGnC2yB,EAAqBxE,SAAY9U,IAAgC,GAAMzE,MAAMC,IACjF,MAAMse,EAAete,EAAIjM,QAAQ6c,GAA2B,MAArBA,EAAEqM,gBAA0BrM,EAAExjB,KAAOixB,OAAO9b,KAAa3Y,KAAKgnB,GAAM4B,GAAwB5B,EAAE7mB,KAAM6mB,EAAExjB,MAG7I,OAFAiwB,EAAmBiB,GAEZA,KACNnM,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aAGjCsX,EAAkBrG,IACtB4Y,GAAa,GAEbxQ,GAA+BpI,GAAO2D,MAAMC,IAC1C7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtClG,EAAQI,KAAK,iCACZ8sB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,IAAM2C,GAAa,MAG1B4I,EAAkBxhB,IACtB4Y,GAAa,GACbxQ,GAAgCpI,GAAO2D,MAAMC,IAC3C7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtClG,EAAQI,KAAK,iCACZ8sB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,IAAM2C,GAAa,MAmC1BwB,EAAU,CACd,CACEzsB,KAAM,KACN4O,MAAO,UACPuN,QAAS,CACPnS,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,EACVE,qBAAuBC,GACrBzyB,eAACX,EAAW,CAACE,UAAU,kDAAiDE,SAAA,CACtES,cAACmB,EAAM,CACLC,KAAK,OACL/B,UAAU,mBACVa,KAAK,MACLL,QAASA,KACPiB,EAAQI,KAAK,kCAADnB,OAAmC24B,EAAchY,kBAAkB6R,GAAWtpB,QAI9FjJ,cAACmB,EAAM,CACLC,KAAK,SACL/B,UAAU,aACVa,KAAK,MACLL,QAASA,KACP8Y,EAAiB,CACfvY,MAAO,mBACPgB,KAAM,2DACNqX,aAAc,UACdJ,UAAWA,KA7DKpP,QA8DSyvB,EAAchY,kBAAkB6R,GAAWtpB,GA7DlF4nB,GAAa,GAEbxQ,GAAqCpX,GAAI2S,MAAMC,IAC7C7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtC4yB,EAAYb,EAAaE,MACxBjL,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,KACT2C,GAAa,GACbjY,kBA6DF,CACEhT,KAAM,OACN4O,MAAO,iBACPuN,QAASkQ,GAEX,CACErsB,KAAM,WACN4O,MAAO,gBACPuN,QAASkQ,GAEX,CACErsB,KAAM,WACN4O,MAAO,aACPuN,QAAS,IACJkQ,EACHK,qBAAuBC,GACrBvyB,cAAA,KAAAT,SAAIm5B,EAAchY,kBAAkB6R,GAAWtU,SAAW,MAAQ,UAkC1E,OACEne,eAAA8B,WAAA,CAAArC,SAAA,CACGiC,GAAaxB,cAAC0K,EAAO,CAACG,WAAS,IAChC/K,eAACX,EAAW,CAACE,UAAU,4BAA2BE,SAAA,CAChDS,cAAC2uB,GAAO,CAACE,aAAW,EAACxvB,UAAU,SAAQE,SACrCS,cAACivB,GAAY,CAAA1vB,SACXO,eAACgrB,GAAS,CAACzrB,UAAU,6CAA6C0rB,SAAUM,EAAOyH,WAAWvzB,SAAA,CAE5FO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBS,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAA6B,IAArBs4B,EAAczvB,GAAY,gBAAkB,oBACpD+d,WAAW,SAIfhnB,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAAM,oBACN4mB,WAAW,KACX3nB,UAAU,2CAIdW,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,iBACNO,YAAY,gBACZK,YAAU,EACVR,aAAcyW,EAAOG,OAAO5lB,KAC5B+O,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,YAC1CA,EAAOiD,cAAc,YAI7BtuB,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACuU,GAAW,CACVC,MAAM,gBACNO,YAAY,0BACZqlB,aAAW,EACXrY,QAASgX,EACT7mB,MAAO0mB,EAAgBjrB,KACvBlM,WAAY4pB,EAAOuC,OAAO9gB,WAC1BwK,SAAW+iB,IACTA,EAA8B,OAAhBA,EAAuB,GAAKA,EAC1CxB,EAAmB,IAAKD,EAAiBjrB,KAAM0sB,IAC/ChP,EAAOiP,cAAc,SAAUD,EAAYnoB,MAAQmoB,EAAYnoB,MAAQ,WAK7ElS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACuU,GAAW,CACVC,MAAM,8BACNO,YAAY,4BACZqlB,aAAW,EACXrY,QAASkX,EACTtkB,WAAY0W,EAAOuC,OAAOlN,kBAAkB3X,OAAS,EAAI,WAAa,GAEtEmJ,MAAO0mB,EAAgBE,eACvBxhB,SAAW+iB,IACTA,EAA8B,OAAhBA,EAAuB,GAAKA,EAC1CxB,EAAmB,IAAKD,EAAiBE,eAAgBuB,IACzDhP,EAAOiP,cAAc,mBAAoBD,EAAYnoB,MAAQmoB,EAAYnoB,MAAQ,WAM3D,OAAzBmZ,EAAOuC,OAAO8F,QAEb1zB,cAACivB,GAAY,CAAA1vB,SACXS,cAACshB,GAAU,CACT9M,MAAM,+CACNO,YAAY,gDACZH,aAAcyW,EAAOG,OAAO1e,WAC5B6H,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,kBAC1CA,EAAOiD,cAAc,kBAMjCtuB,cAACivB,GAAY,CAACC,KAAM,EAAG7vB,UAAU,QAAOE,SACtCS,cAACmvB,GAAa,CACZ3a,MAAM,qBACNvL,GAAG,mBACCoiB,EAAOiD,cAAc,gBACzBe,UAAWhE,EAAOuC,OAAOhgB,iBAI7B5N,cAACivB,GAAY,CAACC,KAAM,EAAG7vB,UAAU,QAAOE,SACtCS,cAACmvB,GAAa,CACZ3a,MAAM,uBACNvL,GAAG,cACCoiB,EAAOiD,cAAc,YACzBe,UAAWhE,EAAOuC,OAAO3P,gBAO5Bya,EAAczvB,GAAK,GAAwC,OAAnCoiB,EAAOuC,OAAO0K,kBAErCx4B,eAAC6uB,GAAO,CAACC,gBAAc,EAACvvB,UAAU,QAAOE,SAAA,CACvCS,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAAM,sBACN4mB,WAAW,KACXC,kBAAkB,aAClBY,qBAAsBA,KACpByM,GAAkB,IAEpBlN,oBAAoB,kBACpBU,uBAAwBA,IAAMqO,GAAmB,OAIrDn2B,cAACivB,GAAY,CAAA1vB,SACXS,cAACyyB,KAAY,CACXpX,KAAMqd,EAAchY,kBACpB2R,QAASA,EACTtQ,QA7WN,CACd2Q,eAAgB,OAChBN,UAAU,EACVD,OAAO,UAkXGnyB,cAACq3B,GAAe,CACdC,kBAAwC,IAArBoB,EAAczvB,GAAW,mBAAqB,eACjEsuB,mBAAmB,cACnBE,qBAAsBpM,EAAOyH,WAC7B4E,oBAAoB,SACpBE,kBAAkB,6BAClBG,mBAAoBW,EAAczvB,GAAK,EAAI,oBAAsB,GACjEgvB,iBAAiB,sCAOzBj4B,cAAC0oB,GAAU,CACTe,gBAAc,EACdU,UAAQ,EACR/R,UAAWic,EACXn0B,KAAK,KACL0oB,cAAc,iBACdI,uBAAuB,MACvBC,wBAAwB,cACxBM,0BArQegR,KACrB1J,GAAa,GAEbxQ,GAAqC,CACnCma,SAAUpc,EACVqc,iBAAkBpB,EAA2B5zB,KAAKgnB,GAAMyN,OAAOzN,EAAEva,WAChE0J,MAAMC,IACP7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtC4yB,IACAtF,GAAkB,MACjBtG,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,KACT2C,GAAa,GACbyI,EAA8B,UAwP1BnQ,yBAAyB,SACzBC,0BAA0B,aAC1BC,OAAQA,KACNiL,GAAkB,IAClB/0B,SAEFS,cAAC2uB,GAAO,CAACC,gBAAc,EAAArvB,SACrBS,cAACivB,GAAY,CAAA1vB,SACXS,cAACuU,GAAW,CACVC,MAAM,aACNO,YAAY,oBACZI,SAAO,EACPulB,mBAAmB,EACnBN,aAAW,EACXrY,QAASoX,EACTjnB,MAAOmnB,EACP/hB,SAAW+iB,IAETf,EADAe,EAA8B,OAAhBA,EAAuB,GAAKA,YASpDr6B,cAAC0oB,GAAU,CACTe,gBAAc,EACdrR,UAAW8d,EACXh2B,KAAK,KACL0oB,cAAc,kBACdI,uBAAuB,OACvBO,0BAzMmBzK,KACzB+R,GAAa,GAEbxQ,GAAmCgW,GAAUza,MAAMC,IACjD+d,EAAYb,EAAaE,GACzBjhB,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtCmvB,GAAmB,MAClBnI,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAgMTxH,OAAQA,KACN8M,GAAmB,IACnB52B,SAEFS,cAAC2uB,GAAO,CAACC,gBAAc,EAAArvB,SACrBS,cAACy2B,KAAe,CAACC,UA7NRpK,IACjB,IAAKA,EAAOtG,YACV,OAGF,MAAM2Q,EAAUtI,GACdgI,EACA/J,EAAOzoB,OAAO4gB,MACd6H,EAAOtG,YAAYvB,OAGrB6R,EAAYK,IAkNkCp3B,SACpCS,cAAC42B,KAAS,CAACC,YAAY,YAAWt3B,SAC9Bu3B,GACAh3B,eAAA,OACEwM,IAAKwqB,EAAkBC,SAASx3B,SAAA,CAE/B82B,EAAS5wB,KAAI,CAACoK,EAAM4U,IACnBzkB,cAACg3B,KAAS,CACMC,YAAW,GAAAl3B,OAAK0kB,GAC9BA,MAAOA,EAAMllB,SAEX23B,GACAl3B,cAAA,OAEEsM,IAAK4qB,EAAkBH,YACnBG,EAAkBC,kBAClBD,EAAkBE,gBACtB/3B,UAAU,8EAA6EE,SAEvFS,cAAA,KAAGX,UAAU,mBAAkBE,SAAEsQ,EAAKjK,QANjCiK,EAAK5G,KALT4G,EAAK5G,MAiBb6tB,EAAkB/hB,gCCtXxBpN,oBADYX,IAAK,CAAQY,KAAMZ,EAAMY,QACV,IAAKsoB,MAAkBjX,IAAlDtR,EA5IUvI,IACvB,MAAM,UAAE4Y,EAAS,iBAAEW,EAAgB,iBAAEC,GAAqBxZ,GACnDoC,EAAWqvB,GAAgBxoB,oBAAS,IACpCwsB,EAAOC,GAAYzsB,mBAAS,IAInCS,qBAAU,KACRmsB,MACC,IAEH,MAAMA,EAAWA,KACfpE,GAAa,GACbwE,GAAwB,IAAIzZ,MAAMC,IAChCiZ,EAASjZ,MACRmS,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAkBXoB,EAAgB,CACpBriB,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,GAWNC,EAAU,CACd,CACEzsB,KAAM,KACN4O,MAAO,UACPuN,QAAS,CACPnS,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,EACVE,qBAAuBC,GACrBzyB,eAACX,EAAW,CAACE,UAAU,kDAAiDE,SAAA,CACtES,cAACmB,EAAM,CACLC,KAAK,OACL/B,UAAU,mBACVa,KAAK,MACLO,GAAE,6BAAAV,OAA+B80B,EAAMtC,GAAWtpB,MAGpDjJ,cAACmB,EAAM,CACLC,KAAK,SACL/B,UAAU,aACVa,KAAK,MACLL,QAASA,KACP8Y,EAAiB,CACfvY,MAAO,cACPgB,KAAM,6CACNqX,aAAc,UACdJ,UAAWA,KAxDPqb,QAyDSmB,EAAMtC,GAAWtpB,GAxD5C4nB,GAAa,GAEbwE,GAAuB3B,GAAQ9X,MAAMC,IACnCoZ,IACAjd,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,eACrCgnB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,GACbjY,kBAwDF,CACEhT,KAAM,OACN4O,MAAO,YACPuN,QAASkQ,GAEX,CACErsB,KAAM,QACN4O,MAAO,aACPuN,QAASkQ,GAEX,CACErsB,KAAM,WACN4O,MAAO,aACPuN,QAAS,IACJkQ,EACHK,qBAAuBC,GACrBvyB,cAAA,KAAAT,SAAIs1B,EAAMtC,GAAWtU,SAAW,MAAQ,UAMhD,OACEne,eAAA8B,WAAA,CAAArC,SAAA,CACGiC,GAAaxB,cAAC0K,EAAO,CAACG,WAAS,IAChC7K,cAACb,EAAW,CAACE,UAAU,4BAA2BE,SAChDS,cAAC2uB,GAAO,CAACE,aAAW,EAAAtvB,SAClBS,cAACivB,GAAY,CAAA1vB,SACXO,eAACX,EAAW,CAACE,UAAU,6CAA4CE,SAAA,CACjES,cAAC+mB,GAAa,CACZ3mB,MAAM,QACN4mB,WAAW,KACXC,kBAAkB,WAClBS,gBAAgB,yBAGlB1nB,cAACb,EAAW,CAAAI,SACVS,cAACyyB,KAAY,CACXpX,KAAMwZ,EACNxC,QAASA,EACTtQ,QArFA,CACd2Q,eAAgB,OAChBN,UAAU,EACVD,OAAO,EACPQ,YAAY,EACZC,WAAY,CAAEC,WAAY,CAAEF,WAAY,iC,UCpEtC5U,GAAiB,kBAEjB4c,GAAqB,yCAAG,WAAO1c,GAAP,UAAAzD,EAAA,+EAAoBU,GAAcgD,IAAd,UAAqBH,GAArB,0CAAqEE,GAAY/B,GAAUE,uBAA/G,2CAAH,sDAErBwe,GAAqB,yCAAG,WAAO7G,GAAP,UAAAvZ,EAAA,+EAA4BU,GAAcgD,IAAd,UAAqBH,GAArB,kDAA6EgW,GAAoB7X,GAAUE,uBAAvI,2CAAH,sDAErBye,GAAoB,yCAAG,WAAOC,GAAP,UAAAtgB,EAAA,+EAA0BU,GAAcC,KAAd,UAAsB4C,GAAtB,wBAA4D+c,EAAgB5e,GAAUE,uBAAhH,2CAAH,sDAEpB2e,GAAoB,yCAAG,WAAOD,GAAP,UAAAtgB,EAAA,+EAA0BU,GAAcwD,IAAd,UAAqBX,GAArB,wBAA2D+c,EAAgB5e,GAAUE,uBAA/G,2CAAH,sDAEpB4e,GAAoB,yCAAG,WAAOjH,GAAP,UAAAvZ,EAAA,+EAA4BU,GAAcsD,OAAd,UAAwBT,GAAxB,mCAAiEgW,GAAoB7X,GAAUE,uBAA3H,2CAAH,sDAEpB6e,GAAwB,yCAAG,WAAOvH,EAAQpzB,GAAf,UAAAka,EAAA,+EAAwBU,GAAcgD,IAAd,UAAqBH,GAArB,2CAAsE2V,EAAtE,iBAAqFpzB,GAAQ4b,GAAUE,uBAA/H,2CAAH,wDAExB8e,GAA+B,yCAAG,WAAOC,EAAQ76B,GAAf,UAAAka,EAAA,+EAAwBU,GAAcgD,IAAd,UAAqBH,GAArB,kDAA6Eod,EAA7E,iBAA4F76B,GAAQ4b,GAAUE,uBAAtI,2CAAH,wDCftB4O,UAAaC,MAAM,CAChChiB,GAAI+hB,OACJplB,KAAMolB,OAAaE,SAAS,yBAAyBsE,IAAI,KACzDjY,IAAKyT,OAAaE,WAAWsE,IAAI,KACjC4L,YAAapQ,OAAa8E,WAAWN,IAAI,KACzC6L,gBAAiBrQ,OAAW8E,WAC5BwL,oBAAqBtQ,OAAa8E,WAClCyL,YAAavQ,OAAawE,IAAI,IAC9BpvB,MAAO4qB,OAAa8E,WAAWN,IAAI,KACnCgM,SAAUxQ,OAAa8E,WAAWN,IAAI,MACtCiM,YAAazQ,OAAa8E,WAC1B7R,SAAU+M,SCoCZ,MAAM0Q,GAAkB,CACtBzyB,GAAI,EACJrD,KAAM,GACN2R,IAAK,GACL8jB,iBAAiB,EACjBC,oBAAqB,GACrBC,YAAa,UACbH,YAAa,GACbh7B,MAAO,GACPo7B,SAAU,GACVC,YAAa,GACbxd,UAAU,EACV0d,YAAa,KACbC,gBAAiB,IAGbC,GAAuB,CAC3B,CACErnB,MAAO,SACPtC,MAAO,UAET,CACEsC,MAAO,kBACPtC,MAAO,mBA4mBIvK,oBAFYX,IAAK,CAAQY,KAAMZ,EAAMY,QAEV,IACrCA,KACAsoB,MACAsI,IAHU7wB,EAxmBavI,IAC1B,MAAM,UAAE4Y,EAAS,QAAElX,EAAO,iBAAE6X,EAAgB,iBAAEC,GAAqBxZ,GAC7D,OAAEs0B,GAAW+E,eACZj3B,EAAWqvB,GAAgBxoB,oBAAS,IACpCgsB,EAAgBC,GAAqBjsB,oBAAS,IAC9C6tB,EAAiBC,GAAsB9tB,oBAAS,IAChDyzB,EAAMC,GAAW1zB,mBAAS,KAC1B2zB,EAAgBC,GAAqB5zB,mBAAS,OAC9C6zB,EAAyBC,GAA8B9zB,mBAAS,KAChE+zB,EAAiCC,GAAsCh0B,mBAAS,OAChFi0B,EAAWC,GAAgBl0B,mBAASqzB,KACpCrF,EAAUC,GAAejuB,mBAAS,IAIzCS,qBAAU,KACRywB,IACA4C,EAA2B,IAC3BE,EAAmC,MAClC,CAAC3I,IAEJ5qB,qBAAU,KACRuzB,EAAmC,MACnCF,EAA2B,IACvBH,GACFQ,EAAWR,EAAe9pB,SAE3B,CAAC8pB,IAEJlzB,qBAAU,KACRwtB,EAAYgG,EAAUV,gBAAgB1J,MAAK,CAAC1X,EAAGgc,IAAMhc,EAAIgc,OACxD,CAAC8F,EAAUV,kBAEd,MAAMvQ,EAASmC,aAAU,CACvBC,cAAe6O,EACf5O,iBAAkB+O,GAClBlL,oBAAoB,EACpBxG,SAAUA,CAAC6C,EAAM/lB,KAAyB,IAAvB,cAAEgmB,GAAehmB,EAClCgmB,GAAc,GACV6F,EACFE,EAAWhG,GAEX+F,EAAW/F,MAKX2L,EAA6BpE,UAC7BzB,EAAS,GACXgJ,KAIEF,EAAcl8B,IAClBuwB,GAAa,GAEb8L,GAA+CjJ,EAAQpzB,GAAMsb,MAAMC,IACjEsgB,EAA2BtgB,MAC1BmS,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAIX6L,EAAUvH,UACdtE,GAAa,GAEbwE,GAAwB3B,GAAQ9X,MAAMC,IACpC0gB,EAAa1gB,MACZmS,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAIX8C,EAAc1b,IAClB4Y,GAAa,GAEbwE,GAAuBhH,GACrB,IACKpW,EACH0jB,YAAaG,EAAK/yB,OAAS,EAAI+yB,EAAK,GAAGA,KAAO,QAE/ClgB,MAAMC,IACP7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtClG,EAAQI,KAAK,6BAADnB,OAA8B8b,EAAI5S,QAC7C+kB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,IAAM2C,GAAa,MAG1B+C,EAAc3b,IAClB4Y,GAAa,GAETiL,EAAK/yB,OAAS,IAChBkP,EAAQ,IAAKA,EAAO0jB,YAAaG,EAAK,GAAGA,OAE3CzG,GAAuBhH,GAA6BpW,IAAQ2D,MAAMC,IAChE7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtClG,EAAQI,KAAK,4BACZ8sB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,IAAM2C,GAAa,MAG1B+L,EAA0BA,KAC9BX,EAAkB,MAClBI,EAAmC,MACnCF,EAA2B,IAE3B7H,GAAkB,IA6DdrC,EAAgB,CACpBriB,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,GAqBNC,EAAU,CACd,CACEzsB,KAAM,KACN4O,MAAO,UACPuN,QAAS,CACPnS,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,EACVE,qBAAuBC,GACrBzyB,eAACX,EAAW,CAACE,UAAU,kDAAiDE,SAAA,CACtES,cAACmB,EAAM,CACLC,KAAK,OACL/B,UAAU,gBACVa,KAAK,MACLL,QAASA,KACP,MAAMoY,EAAQqkB,EAAUV,gBAAgBrJ,GACxCzxB,EAAQI,KAAK,mBAADnB,OAAqBkY,EAAM4kB,SAAW,EAAK,SAAW,kBAAiB,UAAA98B,OAAUkY,EAAM4kB,SAAW,EAAK5kB,EAAM4kB,SAAW5kB,EAAM8b,sBAI9I/zB,cAACmB,EAAM,CACLC,KAAK,SACL/B,UAAU,aACVa,KAAK,MACLL,QAASA,KACP8Y,EAAiB,CACfvY,MAAO,sBACPgB,KAAM,gDACNqX,aAAc,UACdJ,UAAWA,KAjGApP,QAkGSqzB,EAAUV,gBAAgBrJ,GAAWtpB,GAjGvE4nB,GAAa,GAEbwE,GAAmCpsB,GAAI2S,MAAMC,IAC3C6gB,IACA1kB,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,eACrCgnB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,KACT2C,GAAa,GACbjY,kBAiGF,CACEhT,KAAM,OACN4O,MAAO,OACPuN,QAASkQ,GAEX,CACErsB,KAAM,OACN4O,MAAO,OACPuN,QAAS,IACJkQ,EACHK,qBAAuBC,GAAevyB,cAAA,KAAAT,SAAI8uB,GAA6BiO,EAAUV,gBAAgBrJ,GAAWjyB,WAKlH,OACER,eAAA8B,WAAA,CAAArC,SAAA,CACGiC,GAAaxB,cAAC0K,EAAO,CAACG,WAAS,IAChC7K,cAACb,EAAW,CAACE,UAAU,4BAA2BE,SAChDS,cAAC2uB,GAAO,CAACE,aAAW,EAAAtvB,SAClBS,cAACivB,GAAY,CAAA1vB,SACXO,eAACgrB,GAAS,CAACC,SAAUM,EAAOyH,WAAWvzB,SAAA,CACrCO,eAACX,EAAW,CAACE,UAAU,mDAAkDE,SAAA,CAEvEO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBS,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAAOszB,EAAS,eAAiB,WACjC1M,WAAW,SAIfhnB,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAAM,oBACN4mB,WAAW,KACX3nB,UAAU,2CAIdW,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,YACNO,YAAY,qBACZK,YAAU,EACVR,aAAcyW,EAAOG,OAAO5lB,KAC5B+O,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,YAC1CA,EAAOiD,cAAc,YAI7BtuB,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,oBACNO,YAAY,oBACZH,aAAcyW,EAAOG,OAAO4P,YAC5BzmB,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,mBAC1CA,EAAOiD,cAAc,mBAI7BtuB,cAACivB,GAAY,CAACC,KAAM,GAAG3vB,SACrBS,cAACshB,GAAU,CACT9M,MAAM,MACNO,YAAY,2CACZK,YAAU,EACVR,aAAcyW,EAAOG,OAAOjU,IAC5B5C,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,WAC1CA,EAAOiD,cAAc,WAG7BtuB,cAACivB,GAAY,CAACC,KAAM,EAAG7vB,UAAU,QAAOE,SACtCS,cAACmvB,GAAa,CACZ3a,MAAM,kBACNvL,GAAG,cACCoiB,EAAOiD,cAAc,YACzBe,UAAWhE,EAAOuC,OAAO3P,aAI7Bje,cAACivB,GAAY,CAACC,KAAM,EAAG7vB,UAAU,QAAOE,SACtCS,cAACmvB,GAAa,CACZ3a,MAAM,qBACNvL,GAAG,qBACCoiB,EAAOiD,cAAc,mBACzBe,UAAWhE,EAAOuC,OAAOyN,uBAM/Bv7B,eAAC6uB,GAAO,CAACC,gBAAc,EAACvvB,UAAU,QAAOE,SAAA,CACvCS,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAAM,cACNmmB,SAAS,8DACTS,WAAW,KACXR,aAAa,KACbnnB,UAAU,2CAIdW,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SAElB+8B,EAAUhB,oBAENx7B,eAAA8B,WAAA,CAAArC,SAAA,CACES,cAACb,EAAW,CAACE,UAAU,0BAAyBE,SAC9CS,cAAC2D,EAAK,CACJE,OAAM,GAAA9D,OAAKqX,2CAA6B,gBAAArX,OAAeu8B,EAAUhB,qBACjEj8B,UAAU,kBAIdW,cAACozB,GAAe,CAAC0J,cAAef,EAASzI,UAAU,kBAEnDtzB,cAACb,EAAW,CAACE,UAAU,cAAaE,SAClCS,cAACmB,EAAM,CACLC,KAAK,sBACL/B,UAAU,aACVa,KAAK,KACLL,QAASA,IAAM8Y,EACb,CACEvY,MAAO,sBACPgB,KAAM,qDACNqX,aAAc,UACdJ,UAAWA,KAjL3Cgd,GAA8B3B,GAAQ9X,MAAMC,IAC1C6gB,IACA1kB,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtC4R,OACCoV,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,gBAmLO7wB,cAACozB,GAAe,CACdE,UAAU,oBACVwJ,cAAef,MAMzBj8B,eAACmvB,GAAY,CAACC,KAAM,EAAE3vB,SAAA,CACpBS,cAACshB,GAAU,CACT9M,MAAM,eACNO,YAAY,0DACZvU,UAAWR,cAAC+8B,IAAQ,CAAC78B,KAAM,GAAIyC,MAAO0oB,EAAOuC,OAAO2N,cACpD3mB,aAAcyW,EAAOG,OAAO+P,YAC5B5mB,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,mBAC1CA,EAAOiD,cAAc,iBAG3BtuB,cAACb,EAAW,CAACE,UAAU,cAAaE,SAClCS,cAACg9B,KAAc,CACbC,iBAAmBC,IACjB7R,EAAOiP,cAAc,cAAe4C,EAAEC,MAExC99B,UAAU,qBAQpBW,cAACb,EAAW,CAACE,UAAU,mDAAkDE,SACtEm0B,GACC5zB,eAAC6uB,GAAO,CAACC,gBAAc,EAACvvB,UAAU,GAAEE,SAAA,CAClCS,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAAM,eACNmmB,SAAS,mGACTS,WAAW,KACXR,aAAa,KACbnnB,UAAU,QACV4nB,kBAAkB,cAClBE,sBAAuBnnB,cAACo9B,KAAoB,CAAC/9B,UAlZjD,aAkZuEa,KAnZxE,KAoZK2nB,qBAAsBA,IAAMyM,GAAkB,GAC9ClN,oBAAoB,aACpBU,uBAAwBA,IAAMqO,GAAmB,OAIrDn2B,cAACivB,GAAY,CAAA1vB,SACXS,cAACyyB,KAAY,CACXpX,KAAMihB,EAAUV,gBAChBvJ,QAASA,EACTtQ,QAtPN,CACd2Q,eAAgB,OAChBN,UAAU,EACVD,OAAO,YA2PGnyB,cAACb,EAAW,CAACE,UAAU,mDAAkDE,SACvEO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBO,eAACmvB,GAAY,CAAC5vB,UAAU,sEAAqEE,SAAA,CAC3FS,cAAC+mB,GAAa,CACZ3mB,MAAM,6BACN4mB,WAAW,KACXT,SAAS,uFACTC,aAAa,KAEbnnB,UAAU,QACVg+B,oBAAoB,UAGtBr9B,cAACb,EAAW,CAACE,UAAU,QAAQC,MAAO,CAAEmP,OAAQ,OAAQ6uB,OAAQ,QAAStyB,QAAS,QAASzL,SACzFO,eAAA,OAAK0O,MAAM,OAAOC,OAAO,OAAOC,QAAQ,cAAcC,KAAK,OAAOC,MAAM,6BAA4BrP,SAAA,CAClGS,cAAA,QAAM6O,EAAE,soCAAsoCF,KAAK,YACnpC3O,cAAA,QAAM6O,EAAE,8sCAA8sCF,KAAK,YAC3tC3O,cAAA,QAAM6O,EAAE,4ZAA4ZF,KAAK,YACza3O,cAAA,QAAM6O,EAAE,+0BAA+0BF,KAAK,YAC51B3O,cAAA,QAAM6O,EAAE,m4CAAm4CF,KAAK,oBAKt5C3O,cAACivB,GAAY,CAAA1vB,SACXS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,YACNO,YAAY,oBACZ1V,UAAU,KACVuV,aAAcyW,EAAOG,OAAOprB,MAC5BuU,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,aAC1CA,EAAOiD,cAAc,eAK/BtuB,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACuzB,GAAa,CACZ/e,MAAM,WACNO,YAAY,wEACZ1V,UAAU,KACVuV,aAAcyW,EAAOG,OAAOgQ,SAC5B7mB,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,gBAC1CA,EAAOiD,cAAc,gBAI7BtuB,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACuzB,GAAa,CACZ/e,MAAM,mBACNO,YAAY,kFACZ1V,UAAU,KACVuV,aAAcyW,EAAOG,OAAOiQ,YAC5B9mB,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,mBAC1CA,EAAOiD,cAAc,wBAOjCtuB,cAACq3B,GAAe,CACdC,kBAAmB5D,EAAS,EAAI,eAAiB,cACjD6D,mBAAmB,cACnBE,qBAAsBpM,EAAOqD,aAC7BgJ,oBAAoB,SACpBE,kBAAkB,wBAClBG,mBAAoBrE,EAAS,EAAI,oBAAsB,GACvDuE,iBAAiB,mCAQ3Bj4B,cAAC0oB,GAAU,CACTe,gBAAc,EACdU,UAAQ,EACR/R,UAAWic,EACXn0B,KAAK,KACL0oB,cAAc,sBACdI,uBAAuB,MACvBC,wBAAwB,cACxBM,0BApZoBgU,KACpBnB,GAAmCJ,GACrCnL,GAAa,GAEbwE,GAAuC3B,EAAQ0I,EAAgClqB,MAAO8pB,EAAe9pB,OAAO0J,MAAMC,IAChH6gB,IACA1kB,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtC41B,OACC5O,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,IAAM2C,GAAa,MAE9B7Y,EAAU,CAAE5W,KAAM,sCAAuC4F,MAAO,aAyY9DmiB,yBAAyB,aACzBC,0BAA0B,gBAC1BI,4BAA6BA,KACJ,OAAnBwS,EACFl7B,EAAQI,KAAK,mBAADnB,OAA8C,WAAzBi8B,EAAe9pB,MAAsB,SAAW,kBAAiB,YAAAnS,OAAW2zB,IAE7G1b,EAAU,CAAE5W,KAAM,qDAAsD4F,MAAO,aAGnFqiB,OAAQuT,EAAwBr9B,SAEhCO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBS,cAACivB,GAAY,CAAA1vB,SACXS,cAACuU,GAAW,CACVC,MAAM,oBACNO,YAAY,2BACZgN,QAAS8Z,GACT3pB,MAAO8pB,EACP1kB,SAAU2kB,MAIdj8B,cAACivB,GAAY,CAAC5vB,UAAU,QAAOE,SAC7BS,cAACuU,GAAW,CACVC,MAAM,YACNG,WAAaqnB,EAA8B,GAAb,WAC9B9pB,MAAOkqB,EACPrnB,YAAY,qBACZgN,QAASma,EACT5kB,SAAU+kB,WAOlBr8B,cAAC0oB,GAAU,CACTe,gBAAc,EACdU,UAAQ,EACR/R,UAAW8d,EACXh2B,KAAK,KACL0oB,cAAc,gBACdI,uBAAuB,OACvBO,0BAlamBiU,KACvB3M,GAAa,GAEbwE,GAAoCgB,GAAUza,MAAMC,IAClD6gB,IACA1kB,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtCmvB,GAAmB,MAClBnI,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAyZXxH,OAAQA,KACN8M,GAAmB,IACnB52B,SAEFS,cAAC2uB,GAAO,CAACC,gBAAc,EAAArvB,SAEnB82B,EAASttB,OAAS,EAEd/I,cAACy2B,KAAe,CAACC,UA7ZZpK,IACjB,IAAKA,EAAOtG,YACV,OAGF,MAAM2Q,EAAUtI,GACdgI,EACA/J,EAAOzoB,OAAO4gB,MACd6H,EAAOtG,YAAYvB,OAGrB6R,EAAYK,IAkZsCp3B,SACpCS,cAAC42B,KAAS,CAACC,YAAY,YAAWt3B,SAC9Bu3B,GACAh3B,eAAA,OACEwM,IAAKwqB,EAAkBC,SAASx3B,SAAA,CAE/B82B,EAAS5wB,KAAI,CAACoK,EAAM4U,IACnBzkB,cAACg3B,KAAS,CACMC,YAAW,GAAAl3B,OAAK0kB,GAC9BA,MAAOA,EAAMllB,SAEX23B,GACAl3B,cAAA,OAEEsM,IAAK4qB,EAAkBH,YACnBG,EAAkBC,kBAClBD,EAAkBE,gBACtB/3B,UAAU,8EAA6EE,SAEvFS,cAAA,KAAGX,UAAU,mBAAkBE,SAAEsQ,EAAKjK,QAAS,SAAA7F,OANjC8P,EAAK5G,MALlB4G,EAAK5G,MAiBb6tB,EAAkB/hB,mBAM3B/U,cAACb,EAAW,CAACE,UAAU,8EAA6EE,SAClGS,cAAA,KAAGX,UAAU,mBAAkBE,SAAC,mCCrqB5Cwe,GAAiB,UAIjB0f,GAAa,yCAAG,WAAOZ,GAAP,UAAAriB,EAAA,+EAAoBU,GAAcgD,IAAd,UAAqBH,GAArB,kCAA6D8e,GAAY3gB,GAAUE,uBAAvG,2CAAH,sDAEbshB,GAAY,yCAAG,WAAOC,GAAP,UAAAnjB,EAAA,+EAAkBU,GAAcC,KAAd,UAAsB4C,GAAtB,gBAAoD4f,EAAQzhB,GAAUE,uBAAxF,2CAAH,sDAEZwhB,GAAY,yCAAG,WAAOD,GAAP,UAAAnjB,EAAA,+EAAkBU,GAAcwD,IAAd,UAAqBX,GAArB,gBAAmD4f,EAAQzhB,GAAUE,uBAAvF,2CAAH,sDAEZyhB,GAAY,yCAAG,WAAOhB,GAAP,UAAAriB,EAAA,+EAAoBU,GAAcsD,OAAd,UAAwBT,GAAxB,2BAAyD8e,GAAY3gB,GAAUE,uBAAnG,2CAAH,sDC2MHzU,oBADYX,IAAK,CAAQY,KAAMZ,EAAMY,QACV,IAAKsoB,MAAkBjX,IAAlDtR,EA5LoBvI,IACjC,MAAM,UAAE4Y,EAAS,iBAAEW,EAAgB,iBAAEC,GAAqBxZ,GACnDoC,EAAWqvB,GAAgBxoB,oBAAS,IACpCuzB,EAAiBkC,GAAsBz1B,mBAAS,KAChD01B,EAA6BC,GAAkC31B,oBAAS,GAI/ES,qBAAU,KACRm1B,MACC,IAEH,MAAMA,EAAqBA,KACzBpN,GAAa,GACb8L,GAA4C,IAAI/gB,MAAMC,IACpDiiB,EAAmBjiB,MAClBmS,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAgCXoB,EAAgB,CACpBriB,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,GAWNC,EAAU,CACd,CACEzsB,KAAM,KACN4O,MAAO,UACPuN,QAAS,CACPnS,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,EACVE,qBAAuBC,GACrBzyB,eAACX,EAAW,CAACE,UAAU,kDAAiDE,SAAA,CACtES,cAACmB,EAAM,CACLC,KAAK,OACL/B,UAAU,mBACVa,KAAK,MACLO,GAAE,mBAAAV,OAAqB67B,EAAgBrJ,GAAWjyB,OAAS4b,GAAUK,gBAAgBQ,4BAA8B,SAAW,kBAAiB,UAAAhd,OAAS67B,EAAgBrJ,GAAWtpB,MAGrLjJ,cAACmB,EAAM,CACLC,KAAK,SACL/B,UAAU,aACVa,KAAK,MACLL,QAASA,KACP8Y,EAAiB,CACfvY,MAAO,yBACPgB,KAAM,wDACNqX,aAAc,UACdJ,UAAWA,KAtEG0b,MAcR8I,EAyDAjB,EAAgBrJ,GAAWjyB,OAAS4b,GAAUK,gBAAgBQ,6BAzD9D8f,EA0DWjB,EAAgBrJ,GAAWtpB,GAzD1D4nB,GAAa,GAEbqN,GAA2BrB,GAAUjhB,MAAMC,IACzCoiB,IACAjmB,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,eACrCgnB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,GACbjY,SAxB0Bmb,EA0EW6H,EAAgBrJ,GAAWtpB,GAzElE4nB,GAAa,GAEb8L,GAA2C5I,GAAkBnY,MAAMC,IACjEoiB,IACAjmB,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,eACrCgnB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,GACbjY,mBA0EF,CACEhT,KAAM,OACN4O,MAAO,OACPuN,QAASkQ,GAEX,CACErsB,KAAM,QACN4O,MAAO,QACPuN,QAASkQ,GAEX,CACErsB,KAAM,OACN4O,MAAO,OACPuN,QAAS,IACJkQ,EACHK,qBAAuBC,GACrBvyB,cAAA,KAAAT,SAAI8uB,GAA6BuN,EAAgBrJ,GAAWjyB,UAIlE,CACEsF,KAAM,WACN4O,MAAO,aACPuN,QAAS,IACJkQ,EACHK,qBAAuBC,GACrBvyB,cAAA,KAAAT,SAAIq8B,EAAgBrJ,GAAWtU,SAAW,MAAQ,UAM1D,OACEne,eAAA8B,WAAA,CAAArC,SAAA,CACGiC,GAAaxB,cAAC0K,EAAO,CAACG,WAAS,IAChC7K,cAACb,EAAW,CAACE,UAAU,4BAA2BE,SAChDS,cAAC2uB,GAAO,CAACE,aAAW,EAAAtvB,SAClBS,cAACivB,GAAY,CAAA1vB,SACXO,eAACX,EAAW,CAACE,UAAU,6CAA4CE,SAAA,CACjES,cAAC+mB,GAAa,CACZ3mB,MAAM,mBACN4mB,WAAW,KACXC,kBAAkB,sBAClBS,gBAAgB,kCAChBN,oBAAoB,aACpBO,kBAAkB,2BAGpB3nB,cAACb,EAAW,CAAAI,SACVS,cAACyyB,KAAY,CACXpX,KAAMugB,EACNvJ,QAASA,EACTtQ,QArGA,CACd2Q,eAAgB,OAChBN,UAAU,EACVD,OAAO,EACPQ,YAAY,EACZC,WAAY,CAAEC,WAAY,CAAEF,WAAY,2BAyGtC3yB,cAAC0oB,GAAU,CACTe,gBAAc,EACdrR,UAAW2lB,EACX79B,KAAK,KACL0oB,cAAc,iBACdC,mBAAmB,wDACnBG,uBAAuB,SACvBC,wBAAwB,aACxBM,0BAA2BA,OAC3BJ,yBAAyB,SACzBC,0BAA0B,WAC1BC,OAAQA,KACN2U,GAA+B,YCxMnCG,GAAoB,SAAC/+B,GACzB,IACEgB,EAKEhB,EALFgB,MACAC,EAIEjB,EAJFiB,WACAgiB,EAGEjjB,EAHFijB,YACAxiB,EAEET,EAFFS,QACAu+B,EACEh/B,EADFg/B,WAGF,OACE,eAAC,EAAD,WACE,cAAC,EAAD,CACE99B,KAAK,cACLc,KAAMhB,EACNuC,MAAOtC,EACPhB,UAAU,qBAEZ,wBACEA,UAAS,6BAAwB++B,EAAa,WAAa,IAC3Dv+B,QAASA,EAFX,SAIE,cAAC,EAAD,CACEgE,OAAQwe,UAoBlB8b,GAAkB3+B,aAAe,CAE/BY,MAAO,GACPC,WAAY,GAGZR,QAAS,KAGTu+B,YAAY,GAGCD,U,kDC9Cf,MAAME,GAAQC,SAAMC,OAAO,eAG3B,MAAMC,WAAmBH,IACzBG,GAAWC,SAAW,aACtBD,GAAWE,QAAU,aACrBJ,SAAMzR,SAAS2R,IAAY,GAC3BF,SAAMzR,SAAS,sBAAuB8R,MAqKvBC,OAnKUx/B,IACvB,MAAM,MAAE8S,EAAK,SAAEoF,EAAQ,YAAEvC,GAAgB3V,EACnCy/B,EAAWlzB,iBAAO,MAClBmzB,EAAoBnzB,iBAAO,OAC1BmH,EAAaC,GAAkB1K,mBAAS,KAExC02B,EAASC,GAAc32B,mBAAS,CACrC42B,QAAS,CACPC,UAAW,CACT,CAAC,CAAEC,OAAQ,KAAO,CAAEA,OAAQ,KAAO,CAAEC,KAAM,KAC3C,CAAC,CAAEl/B,KAAM,KACT,CAAC,OAAQ,SAAU,YAAa,SAAU,cAC1C,CAAC,CAAEyC,MAAO,IAAM,CAAE4J,WAAY,KAC9B,CACE,CAAE8yB,MAAO,IACT,CAAEA,MAAO,UACT,CAAEA,MAAO,SACT,CAAEA,MAAO,YAEX,CAAC,CAAElT,KAAM,WAAa,CAAEA,KAAM,UAAY,CAAEmT,OAAQ,MAAQ,CAAEA,OAAQ,OACtE,CAAC,OAAQ,QAAS,SAClB,CAAC,WAGLvb,UAAW,CAAEwb,aAAa,GAC1BC,YAAa,CACXC,UAAWnB,SAAMC,OAAO,aACxBQ,QAAS,CAAC,SAAU,kBAIxBj2B,qBAAU,KACiB42B,MACvB,MACMC,EADkBtsB,KACqB5N,KAAK9C,IAAK,CAAQA,MAAO,CAACA,EAAMuP,WAC7Ea,EAAe4sB,IAGjBD,KACC,IAEH52B,qBAAU,KACJgK,EAAY/J,OAAS,GACvBi2B,GAAYY,IAAW,IAClBA,EACHX,QAAS,IACJW,EAAYX,QACfC,UAAWU,EAAYX,QAAQC,UAAUz5B,KAAKoK,GACxCgc,MAAMC,QAAQjc,IAASA,EAAK9G,OAAS,GAAK8G,EAAK,GAAGlN,MAC7C,CAAC,CAAEA,MAAOmQ,EAAYrN,KAAK0R,GAAWA,EAAOxU,MAAM,MAAO,CAAE4J,WAAYuG,EAAYrN,KAAK0R,GAAWA,EAAOxU,MAAM,OAEnHkN,WAKd,CAACiD,IA4FJ,OApFAhK,qBAAU,KACR,IAAI+2B,EAAa,EACbC,EAAa,EAEjB,MAAMC,EAAeC,IACnB,MAAMf,EAAUH,EAAkBmB,QAAQC,cAAc,eACxDjB,EAAQ3/B,MAAMoD,SAAWs9B,EAAU,QAAU,GAC7Cf,EAAQ3/B,MAAM84B,IAAM4H,EAAU,IAAM,GACpCf,EAAQ3/B,MAAMkP,MAAQwxB,EAAU,OAAS,GACzCf,EAAQ3/B,MAAMoW,UAAYsqB,EAAU,MAAQ,GAC5Cf,EAAQ3/B,MAAM6gC,OAASH,EAAU,OAAS,GAC1Cf,EAAQ3/B,MAAMI,gBAAkB,UAChCu/B,EAAQ3/B,MAAM8gC,UAAYJ,EAAU,wBAA0B,OAC9Df,EAAQ3/B,MAAMgV,aAAe0rB,EAAU,MAAQ,cAC/Cf,EAAQ3/B,MAAM+gC,UAAYL,EAAU,cAAgB,GACpDf,EAAQ3/B,MAAM2hB,SAAQ,GAAAlhB,OAAM+/B,EAAU,OAGlCxsB,EAAeA,KACnB,GAAIwrB,EAAkBmB,QAAS,CAC7B,MAAMhB,EAAUH,EAAkBmB,QAAQC,cAAc,eAClDI,EAAQxB,EAAkBmB,QAAQC,cAAc,UAEnC,IAAfL,GAAmC,IAAfC,GACtBD,EAAaZ,EAAQsB,UACrBT,EAAaQ,EAAME,YACnBT,EAAY32B,OAAO8W,SAAW2f,IAE9BE,EAAY32B,OAAO8W,SAAW2f,KAOpC,OAFAvsB,IACAlK,OAAO8J,iBAAiB,SAAUI,GAC3B,IAAMlK,OAAO+J,oBAAoB,SAAUG,KACjD,IAEHxK,qBAAU,KACR,MAAM23B,EAAeA,KACnB,MAAMr+B,EAAQ6N,SAASywB,cAAc,SACrCt+B,EAAMu+B,aAAa,OAAQ,QAC3Bv+B,EAAMu+B,aAAa,SAAU,wCAC7Bv+B,EAAMw+B,QAENx+B,EAAMy+B,SAAW1L,UACf,MAAM2G,EAAO15B,EAAM0+B,MAAM,GACzB,GAAIhF,EAAM,CACR,MAAMiF,EAAS,IAAIC,WACnBD,EAAOE,OAAU9qB,IACf,MAAM+qB,EAAcrC,EAASoB,QAAQkB,YAC/BC,EAAQF,EAAYG,eACpB5c,EAAQ2c,EAAQA,EAAM3c,MAAQyc,EAAYI,YAEhD,GAAkB,kBAAdxF,EAAKx7B,KAA0B,CACjC,MAAMihC,EAAaprB,EAAE1S,OAAO6oB,OAC5B4U,EAAYM,YAAY/c,EAAO,QAAQ,6BAAD1kB,OAA+B0hC,KAAKF,IAAe,aAEzFL,EAAYM,YAAY/c,EAAO,QAAStO,EAAE1S,OAAO6oB,QAEnD4U,EAAYQ,aAAajd,EAAQ,IAGjB,kBAAdqX,EAAKx7B,KACPygC,EAAOY,WAAW7F,GAElBiF,EAAOa,cAAc9F,MAM7BkD,GAAYY,IAAW,IAClBA,EACHX,QAAS,IACJW,EAAYX,QACf4C,SAAU,IACLjC,EAAYX,QAAQ4C,SACvBC,MAAOrB,UAIZ,IAGDzgC,cAAA,OAAKsM,IAAKwyB,EAAmBz/B,UAAU,kBAAiBE,SACtDS,cAAC+hC,KAAU,CACTz1B,IAAKuyB,EACLzuB,MAAM,OACN8B,MAAOA,EACPoF,SAAUA,EACVynB,QAASA,EACTiD,QAlGU,CACd,SAAU,OAAQ,OAAQ,OAAQ,SAAU,YAAa,SAAU,aACnE,OAAQ,SAAU,SAAU,OAAQ,QAAS,QAAS,QACtD,QAAS,SAAU,QAAS,QAAS,cAgGjCjtB,YAAaA,OCtLN,OAA0B,oDCA1B,OAA0B,qDCA1B,OAA0B,uDCA1B,OAA0B,8DCA1B,OAA0B,sDCA1B,OAA0B,0DCA1B,OAA0B,mDCA1B,OAA0B,mDCG1BiW,UAAaC,MAAM,CAChChiB,GAAI+hB,OACJplB,KAAMolB,OAAaE,SAAS,oCAAoCsE,IAAI,KACpElvB,KAAM0qB,OAAaE,WAEnB9qB,MAAO4qB,OAAaiX,KAAK,OAAQ,CAC/BC,GAAI,SAAC5hC,GAAD,OAAUA,IAAS4b,GAAUK,gBAAgBS,sBACjDpB,KAAMoP,OAAa8E,WACnBqS,UAAWnX,OAAaE,SAAS,qBAAqBsE,IAAI,OAE5D4S,QAASpX,OAAa8E,WACtB2L,YAAazQ,OAAaiX,KAAK,OAAQ,CACrCC,GAAI,SAAC5hC,GAAD,OAAW,CACb4b,GAAUK,gBAAgBO,yBAC1BZ,GAAUK,gBAAgBS,sBAC1BlN,SAASxP,IACXsb,KAAMoP,OAAa8E,WAAW5E,SAAS,+BACvCiX,UAAWnX,OAAa8E,aAE1BuS,UAAWrX,OAAaE,WACxBoX,UAAWtX,OAAa8E,WACxB5sB,SAAU8nB,OACVuX,eAAgBvX,OAChBwX,kBAAmBxX,OACnByX,WAAYzX,OACZ/D,kBAAmB+D,OAAa8E,WAAWN,IAAI,IAC/CkT,wBAAyB1X,OAAa8E,WAAWmS,KAAK,oBAAqB,CACzEC,GAAI,SAACjb,GAAD,OAAwBA,GAAkD,IAA7BA,EAAkBle,QACnE6S,KAAMoP,OAAa8E,WAAWN,IAAI,KAClC2S,UAAWnX,OAAa8E,WAAWN,IAAI,KAAKtE,SAAS,qCAEvDyX,kBAAmB3X,OAAa8E,WAAWN,IAAI,KAAKyS,KAAK,oBAAqB,CAC5EC,GAAI,SAACjb,GAAD,OAAwBA,GAAkD,IAA7BA,EAAkBle,QACnE6S,KAAMoP,OAAa8E,WAAWN,IAAI,KAClC2S,UAAWnX,OAAa8E,WAAWN,IAAI,KAAKtE,SAAS,qCAEvD9D,oBAAqB4D,OAAa8E,WAAWN,IAAI,IACjDoT,0BAA2B5X,OAAa8E,WAAWmS,KAAK,sBAAuB,CAC7EC,GAAI,SAAC9a,GAAD,OAA0BA,GAAsD,IAA/BA,EAAoBre,QACzE6S,KAAMoP,OAAa8E,WAAWN,IAAI,KAClC2S,UAAWnX,OAAa8E,WAAWN,IAAI,KAAKtE,SAAS,uCAEvD2X,oBAAqB7X,OAAa8E,WAAWN,IAAI,KAAKyS,KAAK,sBAAuB,CAChFC,GAAI,SAAC9a,GAAD,OAA0BA,GAAsD,IAA/BA,EAAoBre,QACzE6S,KAAMoP,OAAa8E,WAAWN,IAAI,KAClC2S,UAAWnX,OAAa8E,WAAWN,IAAI,KAAKtE,SAAS,wCAEtD,CAAC,CAAC,QAAS,cAAe,OAAQ,oBAAqB,+BC4B1D,MAAM4X,GAA6B,CACjC75B,GAAI,EACJyqB,OAAQ,EACRmJ,SAAU,EACVj3B,KAAM,GACNw8B,QAAS,GACT9hC,KAAM4b,GAAUK,gBAAgBC,0BAChCyB,UAAU,EACV7d,MAAO,GACPq7B,YAAa,GACb4G,UAAW,OACXC,UAAW,GACXR,MAAO,KACP5+B,UAAU,EACVq/B,gBAAgB,EAChBC,mBAAmB,EACnBC,YAAY,EACZxb,kBAAmB,GACnB8b,iBAAkB,GAClBL,wBAAyB,KACzBtb,oBAAqB,GACrByb,oBAAqB,GACrBD,0BAA2B,MAwBvBI,GAAY,CAChB,CAAE9wB,MAAOgK,GAAUK,gBAAgBa,qBAAsB5I,MAAO,QAChE,CAAEtC,MAAOgK,GAAUK,gBAAgBc,qBAAsB7I,MAAO,kBAChE,CAAEtC,MAAOgK,GAAUK,gBAAgBe,4BAA6B9I,MAAO,gBACvE,CAAEtC,MAAOgK,GAAUK,gBAAgBgB,sBAAuB/I,MAAO,kBAG7DyuB,GAAmB,CACvB,CAAE/wB,MAAOgK,GAAUK,gBAAgBU,cAAezI,MAAO,kBACzD,CAAEtC,MAAOgK,GAAUK,gBAAgBY,gBAAiB3I,MAAO,UAC3D,CAAEtC,MAAOgK,GAAUK,gBAAgBW,eAAgB1I,MAAO,UAGtD0uB,GAAa,CACjB,CACEj6B,GAAI,EACJ7I,MAAO,SACP0hC,MAAOqB,GACP7iC,KAAM4b,GAAUK,gBAAgBS,sBAElC,CACE/T,GAAI,EACJ7I,MAAO,4BACP0hC,MAAOsB,GACP9iC,KAAM4b,GAAUK,gBAAgBC,2BAElC,CACEvT,GAAI,EACJ7I,MAAO,6BACP0hC,MAAOuB,GACP/iC,KAAM4b,GAAUK,gBAAgBE,4BAElC,CACExT,GAAI,EACJ7I,MAAO,6BACP0hC,MAAOwB,GACPhjC,KAAM4b,GAAUK,gBAAgBG,6BAElC,CACEzT,GAAI,EACJ7I,MAAO,sCACP0hC,MAAOyB,GACPjjC,KAAM4b,GAAUK,gBAAgBI,mCAElC,CACE1T,GAAI,EACJ7I,MAAO,8BACP0hC,MAAO0B,GACPljC,KAAM4b,GAAUK,gBAAgBK,4BAElC,CACE3T,GAAI,EACJ7I,MAAO,eACP0hC,MAAO2B,GACPnjC,KAAM4b,GAAUK,gBAAgBM,wBAElC,CACE5T,GAAI,EACJ7I,MAAO,iBACP0hC,MAAO4B,GACPpjC,KAAM4b,GAAUK,gBAAgBO,2BA8crBnV,oBAFYX,IAAK,CAAQY,KAAMZ,EAAMY,QAEV,IACrCA,KACAsoB,MACAsI,IAHU7wB,EA1cuBvI,IACpC,MAAM,UAAE4Y,EAAS,QAAElX,GAAY1B,GACzB,iBAAE20B,EAAgB,OAAEL,EAAM,OAAEyH,GAAW1C,eACtCj3B,EAAWqvB,GAAgBxoB,oBAAS,IACpCs7B,EAAqBC,GAA0Bv7B,mBAAS,IAC1Dy6B,GACHpP,OAAQA,GAAU,EAClByH,OAAQA,GAAU,KAEbkH,EAAWwB,GAAgBx7B,mBAAS,CAAC,CAAEmM,MAAO,iBAAkBtC,MAAO,WACvE4xB,EAAmBC,GAAwB17B,mBAAS,OACpD27B,EAAqBC,GAA0B57B,mBAAS,OACxDyzB,EAAMC,GAAW1zB,mBAAS,IAEjCS,qBAAU,KACJirB,EAAmB,GACrBmQ,MAED,CAACnQ,IAEJ,MAAM1I,EAASmC,aAAU,CACvBC,cAAekW,EACfjW,iBAAkByW,GAClB5S,oBAAoB,EACpBxG,SAAUA,CAAC6C,EAAM/lB,KAAyB,IAAvB,cAAEgmB,GAAehmB,EAClCgmB,GAAc,GACVkG,EACFgH,EAAqBnN,GAErBiN,EAAqBjN,MAKrBsW,EAAoB/O,UACxBtE,GAAa,GAEb8L,GAA4C5I,GAAkBnY,MAAMC,IAClE+nB,EAAuB/nB,GACvBuoB,EAAoBvoB,MACnBmS,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAIXuT,EAAuBvoB,IAC3B,IAAIwoB,EAAoBpB,GAAiBp2B,MAAM4f,GAAMA,EAAEva,QAAU2J,EAAIwmB,YACjEiC,EAA4BtB,GAAUn2B,MAAM4f,GAAMA,EAAEva,QAAU2J,EAAI6mB,0BAClE6B,EAA8BvB,GAAUn2B,MAAM4f,GAAMA,EAAEva,QAAU2J,EAAI+mB,4BAEpEyB,GACFR,EAAaQ,GAGXC,GACFP,EAAqBO,GAGnBC,GACFN,EAAuBM,IAIrB1J,EAAwB5iB,IACR,IAAhB6jB,EAAK/yB,QAAiB,CAACmT,GAAUK,gBAAgBK,2BAA4BV,GAAUK,gBAAgBS,sBAAsBlN,SAASub,EAAOuC,OAAOttB,OAKxJuwB,GAAa,GAEb8L,GAA2CtO,GACzC,IACKpW,EACH6pB,MAAOhG,EAAK/yB,OAAS,EAAI+yB,EAAK,GAAGA,KAAO,QAEzClgB,MAAMC,IACP7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YAClCiR,EAAMkjB,OAAS,EACjBr6B,EAAQI,KAAK,6BAADnB,OAA8BkY,EAAMkjB,SACvCljB,EAAMyb,OAAS,EACxB5yB,EAAQI,KAAK,6BAADnB,OAA8BkY,EAAMyb,SAEhD5yB,EAAQI,KAAK,wCAADnB,OAAyC8b,EAAI5S,QAE1D+kB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,IAAM2C,GAAa,MAtB5B7Y,EAAU,CAAE5W,KAAM,gCAAiC4F,MAAO,aAyBxD+zB,EAAwB9iB,IAC5B4Y,GAAa,GAETiL,EAAK/yB,OAAS,IAChBkP,EAAQ,IAAKA,EAAO6pB,MAAOhG,EAAK,GAAGA,OAErCa,GAA2CtO,GAA6BpW,IAAQ2D,MAAMC,IACpF7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtClG,EAAQI,KAAK,uCACZ8sB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,IAAM2C,GAAa,MAuChC,OACE/wB,eAAA8B,WAAA,CAAArC,SAAA,CACGiC,GAAaxB,cAAC0K,EAAO,CAACG,WAAS,IAChC7K,cAACb,EAAW,CAACE,UAAU,4BAA2BE,SAChDO,eAAC6uB,GAAO,CAACE,aAAW,EAAAtvB,SAAA,CAClBS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBO,eAACX,EAAW,CACVyvB,gBAAc,EACdvvB,UAAU,6CAA4CE,SAAA,CAEtDS,cAAC+mB,GAAa,CACZ3mB,MAAM,aACN4mB,WAAW,OAGbhnB,cAACb,EAAW,CAACE,UAAU,+BAA8BE,SAEjD2jC,GAAWz9B,KAAKoK,GACd7P,cAACm+B,GAAiB,CAEhB/9B,MAAOyP,EAAKzP,MACZiiB,YAAaxS,EAAKiyB,MAClB1D,WAAYvuB,EAAKvP,OAAS+qB,EAAOuC,OAAOttB,KACxCD,WAAYwP,EAAKvP,OAAS+qB,EAAOuC,OAAOttB,KAAO,eAAiB,gBAChET,QAASA,KACPwrB,EAAOiP,cAAc,OAAQzqB,EAAKvP,MA7D9BA,KACxB,IAAIkkC,GAAmB,EACnBC,GAAiB,EACjBC,GAAe,EACfC,EAAgB,OAEpB,OAAQrkC,GACN,KAAK4b,GAAUK,gBAAgBC,0BAC7BqnB,EAAa,CAAErvB,MAAO,iBAAkBtC,MAAO,SAC/C,MACF,KAAKgK,GAAUK,gBAAgBE,2BAC7BonB,EAAa,CAAErvB,MAAO,QAAStC,MAAO,UACtCyyB,EAAgB,QAChB,MACF,KAAKzoB,GAAUK,gBAAgBG,4BAC/B,KAAKR,GAAUK,gBAAgBO,yBAC7B,MACF,KAAKZ,GAAUK,gBAAgBI,kCAC7B+nB,GAAe,EACf,MACF,KAAKxoB,GAAUK,gBAAgBK,2BAC7B6nB,GAAiB,EACjB,MACF,KAAKvoB,GAAUK,gBAAgBM,uBAC7B2nB,GAAmB,EAMvBnZ,EAAOiP,cAAc,iBAAkBkK,GACvCnZ,EAAOiP,cAAc,aAAcmK,GACnCpZ,EAAOiP,cAAc,WAAYoK,GACjCrZ,EAAOiP,cAAc,YAAaqK,IA6BdC,CAAiB/0B,EAAKvP,QAPnBuP,EAAK5G,aAgBtBjJ,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBO,eAACgrB,GAAS,CAACC,SAAUM,EAAOqD,aAAanvB,SAAA,CAGvCO,eAAC6uB,GAAO,CACNC,gBAAc,EACdvvB,UAAU,6CAA4CE,SAAA,CAEtDS,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAA4B,IAArBirB,EAAOuC,OAAO3kB,GAAW,sBAAwB,0BACxD+d,WAAW,SAIfhnB,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAAM,oBACN4mB,WAAW,KACX3nB,UAAU,2CAIdW,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,uBACNO,YAAY,8BACZK,YAAU,EACVR,aAAcyW,EAAOG,OAAO5lB,KAC5B+O,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,YAC1CA,EAAOiD,cAAc,YAI7BtuB,cAACivB,GAAY,CAAC5vB,UAAU,QAAOE,SAC7BS,cAACmvB,GAAa,CACZ3a,MAAM,6BACNvL,GAAG,cACCoiB,EAAOiD,cAAc,YACzBe,UAAWhE,EAAOuC,OAAO3P,gBAM7BoN,EAAOuC,OAAOttB,OAAS4b,GAAUK,gBAAgBS,sBAE/Cld,eAAA8B,WAAA,CAAArC,SAAA,CAEEO,eAAC6uB,GAAO,CACNC,gBAAc,EACdvvB,UAAU,mDAAkDE,SAAA,CAE5DS,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAAM,kBACN4mB,WAAW,KACX3nB,UAAU,2CAGdW,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,QACNO,YAAY,qBACZH,aAAcyW,EAAOG,OAAOprB,MAC5BuU,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,aAC1CA,EAAOiD,cAAc,aAI7BtuB,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACuU,GAAW,CACVC,MAAM,YACNuN,QAASkhB,GACT/wB,MAAOmwB,EACPztB,aAAcyW,EAAOG,OAAOlrB,KAC5BqU,YAEI0W,EAAOuC,OAAOttB,OAAS4b,GAAUK,gBAAgBC,2BAC9C6O,EAAOuC,OAAOttB,OAAS4b,GAAUK,gBAAgBE,6BACnD,WAELnF,SAAWutB,IACThB,EAAagB,GACbxZ,EAAOiP,cAAc,YAAauK,EAAI3yB,YAK5ClS,cAACivB,GAAY,CAAA1vB,SACXS,cAACuzB,GAAa,CACZ/e,MAAM,kBACNO,YAAY,6LACZH,aAAcyW,EAAOG,OAAOiQ,YAC5B9mB,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,mBAC1CA,EAAOiD,cAAc,mBAK3BjD,EAAOuC,OAAOttB,OAAS4b,GAAUK,gBAAgBK,4BAE/C9c,eAAA8B,WAAA,CAAArC,SAAA,CACES,cAAC2uB,GAAO,CAACC,gBAAc,EAACvvB,UAAU,QAAOE,SACvCS,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAAM,gBACNmmB,SAAS,0CACTS,WAAW,KACXR,aAAa,KACbnnB,UAAU,6CAIhBW,cAACivB,GAAY,CAAA1vB,SAEY,IAArB8rB,EAAOuC,OAAO3kB,GAEVjJ,cAACivB,GAAY,CAAC5vB,UAAU,QAAOE,SAC7BS,cAACozB,GAAe,CAAC0J,cAAef,MAIlCj8B,eAAA8B,WAAA,CAAArC,SAAA,CACES,cAACb,EAAW,CAACE,UAAU,0BAAyBE,SAC9CS,cAAC2D,EAAK,CACJE,OAAM,GAAA9D,OAAKqX,2CAA6B,gBAAArX,OAAesrB,EAAOuC,OAAO0U,WACrEjjC,UAAU,kBAGdW,cAACozB,GAAe,CAAC0J,cAAef,EAASzI,UAAU,6BAYrExzB,eAAC6uB,GAAO,CACNC,gBAAc,EACdvvB,UAAU,0DAAyDE,SAAA,CAEnES,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAAM,UACN4mB,WAAW,KACX3nB,UAAU,2CAGdW,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,sBACNO,YAAY,kBACZH,aAAcyW,EAAOG,OAAOvE,kBAC5BtS,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,yBAC1CA,EAAOiD,cAAc,yBAI7BtuB,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACuU,GAAW,CACVC,MAAM,sBACNuN,QAASihB,GACT5I,aAAW,EACXzlB,WAAa0W,EAAOuC,OAAO3G,kBAA8B,GAAAlnB,OAAMsuB,GAAuBhD,EAAQ,4BAA/C,WAC/CzW,aAAcyW,EAAOG,OAAOkX,2BACxBrX,EAAOiD,cAAc,2BACzBwW,WAAYA,IAAMzZ,EAAO0Z,gBAAgB,2BAA2B,GACpE7yB,MAAO4xB,EACPxsB,SAAWutB,IAETd,EADAc,EAAc,OAARA,EAAe,GAAKA,GAE1BxZ,EAAOiP,cAAc,0BAA2BuK,EAAI3yB,YAK1DlS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,sBACNO,YAAY,GACZH,aAAcyW,EAAOG,OAAOmX,kBAC5BhuB,WAAa0W,EAAOuC,OAAO3G,kBAA8B,GAAAlnB,OAAMsuB,GAAuBhD,EAAQ,sBAA/C,cAC3CA,EAAOiD,cAAc,yBAI7BtuB,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,wBACNO,YAAY,kBACZH,aAAcyW,EAAOG,OAAOpE,oBAC5BzS,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,2BAC1CA,EAAOiD,cAAc,2BAI7BtuB,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACuU,GAAW,CACVC,MAAM,wBACNuN,QAASihB,GACTruB,WAAa0W,EAAOuC,OAAOxG,oBAAgC,GAAArnB,OAAMsuB,GAAuBhD,EAAQ,8BAA/C,WACjDzW,aAAcyW,EAAOG,OAAOoX,6BACxBvX,EAAOiD,cAAc,6BACzBwW,WAAYA,IAAMzZ,EAAO0Z,gBAAgB,6BAA6B,GACtE7yB,MAAO8xB,EACP1sB,SAAWutB,IAETZ,EADAY,EAAc,OAARA,EAAe,GAAKA,GAE1BxZ,EAAOiP,cAAc,4BAA6BuK,EAAI3yB,YAK5DlS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,wBACNO,YAAY,GACZH,aAAcyW,EAAOG,OAAOqX,oBAC5BluB,WAAa0W,EAAOuC,OAAOxG,oBAAgC,GAAArnB,OAAMsuB,GAAuBhD,EAAQ,wBAA/C,cAC7CA,EAAOiD,cAAc,iCAUnCjD,EAAOuC,OAAOttB,OAAS4b,GAAUK,gBAAgBS,sBAE/Cld,eAAC6uB,GAAO,CACNC,gBAAc,EACdvvB,UAAU,0DAAyDE,SAAA,CAEnES,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAAM,cACN4mB,WAAW,KACX3nB,UAAU,2CAGdW,cAAC4+B,GAAe,CACd1sB,MAAOmZ,EAAOuC,OAAOwU,SAAW,GAChC9qB,SAAW0tB,IACT3Z,EAAOiP,cAAc,UAAW0K,IAElCjwB,YAAY,6BACZkwB,UAAW7lC,OAOnBY,cAACq3B,GAAe,CACdC,kBAAwC,IAArBjM,EAAOuC,OAAO3kB,GAAW,SAAW,eACvDsuB,mBAAmB,cACnBE,qBAAsBpM,EAAOqD,aAC7BgJ,oBAAoB,SACpBE,kBAAkB,mCAClBG,mBAAmB,kBACnBG,sBAAuBA,KACrBp3B,EAAQyE,4BCznBX,OAA0B,2CCE1BylB,UAAaC,MAAM,CAChChiB,GAAI+hB,OACJplB,KAAMolB,OAAaE,SAAS,2BAA2BsE,IAAI,OCF9CxE,UAAaC,MAAM,CAChChiB,GAAI+hB,OACJ1qB,KAAM0qB,OAAaE,WACnB9qB,MAAO4qB,OAAa8E,WAAWN,IAAI,KACnC5pB,KAAMolB,OAAa8E,WAAWN,IAAI,KAClCiM,YAAazQ,OAAa8E,WAC1BuS,UAAWrX,OAAaE,WACxBoX,UAAWtX,OACX9nB,SAAU8nB,OACVuX,eAAgBvX,OAChBwX,kBAAmBxX,OACnB/M,SAAU+M,OACVyX,WAAYzX,OACZ/D,kBAAmB+D,OAAa8E,WAAWN,IAAI,IAC/CkT,wBAAyB1X,OAAa8E,WAAWmS,KAAK,oBAAqB,CACzEC,GAAI,SAACjb,GAAD,OAAwBA,GAAkD,IAA7BA,EAAkBle,QACnE6S,KAAMoP,OAAa8E,WAAWN,IAAI,KAClC2S,UAAWnX,OAAa8E,WAAWN,IAAI,KAAKtE,SAAS,qCAEvDyX,kBAAmB3X,OAAa8E,WAAWN,IAAI,KAAKyS,KAAK,oBAAqB,CAC5EC,GAAI,SAACjb,GAAD,OAAwBA,GAAkD,IAA7BA,EAAkBle,QACnE6S,KAAMoP,OAAa8E,WAAWN,IAAI,KAClC2S,UAAWnX,OAAa8E,WAAWN,IAAI,KAAKtE,SAAS,qCAEvD9D,oBAAqB4D,OAAa8E,WAAWN,IAAI,IACjDoT,0BAA2B5X,OAAa8E,WAAWmS,KAAK,sBAAuB,CAC7EC,GAAI,SAAC9a,GAAD,OAA0BA,GAAsD,IAA/BA,EAAoBre,QACzE6S,KAAMoP,OAAa8E,WAAWN,IAAI,KAClC2S,UAAWnX,OAAa8E,WAAWN,IAAI,KAAKtE,SAAS,uCAEvD2X,oBAAqB7X,OAAa8E,WAAWN,IAAI,KAAKyS,KAAK,sBAAuB,CAChFC,GAAI,SAAC9a,GAAD,OAA0BA,GAAsD,IAA/BA,EAAoBre,QACzE6S,KAAMoP,OAAa8E,WAAWN,IAAI,KAClC2S,UAAWnX,OAAa8E,WAAWN,IAAI,KAAKtE,SAAS,wCAEtD,CAAC,CAAC,OAAQ,oBAAqB,+BClC5BnN,GAAiB,cAIjBmnB,GAAgB,yCAAG,WAAOC,GAAP,UAAA3qB,EAAA,+EAAsBU,GAAcC,KAAd,UAAsB4C,GAAtB,oBAAwDonB,EAAYjpB,GAAUE,uBAApG,2CAAH,sDAEhBgpB,GAAgB,yCAAG,WAAOD,GAAP,UAAA3qB,EAAA,+EAAsBU,GAAcwD,IAAd,UAAqBX,GAArB,oBAAuDonB,EAAYjpB,GAAUE,uBAAnG,2CAAH,sDAEhBipB,GAAgB,yCAAG,WAAOC,GAAP,UAAA9qB,EAAA,+EAAwBU,GAAcsD,OAAd,UAAwBT,GAAxB,+BAA6DunB,GAAgBppB,GAAUE,uBAA/G,2CAAH,sDAEhBmpB,GAAe,yCAAG,WAAOC,GAAP,UAAAhrB,EAAA,+EAAuBU,GAAcwD,IAAd,UAAqBX,GAArB,mBAAsDynB,EAAatpB,GAAUE,uBAApG,2CAAH,sDC6CfqpB,GAAqB,CACzBx8B,GAAI,EACJyqB,OAAQ,EACRmJ,SAAU,EACVj3B,KAAM,GACNqY,UAAU,EACVunB,YAAa,IAGTxC,GAAY,CAChB,CAAE9wB,MAAOgK,GAAUK,gBAAgBa,qBAAsB5I,MAAO,QAChE,CAAEtC,MAAOgK,GAAUK,gBAAgBc,qBAAsB7I,MAAO,kBAChE,CAAEtC,MAAOgK,GAAUK,gBAAgBe,4BAA6B9I,MAAO,gBACvE,CAAEtC,MAAOgK,GAAUK,gBAAgBgB,sBAAuB/I,MAAO,kBAG7DyuB,GAAmB,CACvB,CAAE/wB,MAAOgK,GAAUK,gBAAgBU,cAAezI,MAAO,kBACzD,CAAEtC,MAAOgK,GAAUK,gBAAgBY,gBAAiB3I,MAAO,UAC3D,CAAEtC,MAAOgK,GAAUK,gBAAgBW,eAAgB1I,MAAO,UAGtD0uB,GAAa,CACjB,CACEj6B,GAAI,EACJ7I,MAAO,SACP0hC,MAAO4B,GACPpjC,KAAM4b,GAAUK,gBAAgBmpB,sBAkrBrB/9B,gBAFW,SAACX,GAAD,MAAY,CAAEY,KAAMZ,EAAMY,QAE9B,YAAC,2BAClBA,GACAsoB,IACAsI,IAHU7wB,EA9qBc,SAACvI,GAC5B,IAAQ4Y,EAA2D5Y,EAA3D4Y,UAAWlX,EAAgD1B,EAAhD0B,QAAS6X,EAAuCvZ,EAAvCuZ,iBAAkBC,EAAqBxZ,EAArBwZ,iBAC9C,EAAqC6f,cAA7BoE,EAAR,EAAQA,SAAUnJ,EAAlB,EAAkBA,OAAQyH,EAA1B,EAA0BA,OACpBwK,EAAch6B,iBAAO,MACrBi6B,EAAyB,CAC7B38B,GAAI,EACJ4zB,SAAUA,EACV5e,UAAU,EACV3d,KAAM4b,GAAUK,gBAAgBQ,4BAChC3c,MAAO,GACPwF,KAAM,GACN61B,YAAa,GACb4G,UAAW,OACXC,UAAW,GACXR,MAAO,KACP5+B,UAAU,EACVq/B,gBAAgB,EAChBC,mBAAmB,EACnBC,YAAY,EACZxb,kBAAmB,GACnB0b,kBAAmB,GACnBD,wBAAyB,KACzBtb,oBAAqB,GACrByb,oBAAqB,GACrBD,0BAA2B,MAG7B,EAAkCv6B,oBAAS,GAA3C,oBAAO7G,EAAP,KAAkBqvB,EAAlB,KACA,EAAsCxoB,mBAAS,2BAC1Co9B,IADyC,IAE5C/R,OAAQA,GAAU,EAClByH,OAAQA,GAAU,KAHpB,oBAAO0K,EAAP,KAAoBC,EAApB,KAKA,EAA8Cz9B,mBAASu9B,GAAvD,oBAAOG,EAAP,KAAwBC,EAAxB,KACA,EAAkC39B,mBAAS,CAAC,CAAEmM,MAAO,iBAAkBtC,MAAO,UAA9E,oBAAOmwB,EAAP,KAAkBwB,EAAlB,KACA,EAAkDx7B,mBAAS,MAA3D,oBAAOy7B,EAAP,KAA0BC,EAA1B,KACA,EAAsD17B,mBAAS,MAA/D,oBAAO27B,EAAP,KAA4BC,EAA5B,KACA,EAAwB57B,mBAAS,IAAjC,oBAAOyzB,EAAP,KAAaC,EAAb,KACA,EAA8C1zB,oBAAS,GAAvD,oBAAO6tB,EAAP,KAAwBC,EAAxB,KACA,EAAgC9tB,mBAAS,IAAzC,oBAAOguB,EAAP,KAAiBC,GAAjB,KAEAxtB,qBAAU,WACJ+zB,EAAW,GACboJ,OAED,IAEHn9B,qBAAU,WACRwtB,GAAYuP,EAAYL,YAAYtT,MAAK,SAAC1X,EAAGgc,GAAJ,OAAUhc,EAAIgc,QACtD,CAACqP,EAAYL,cAEhB,IAAMna,GAASmC,aAAU,CACvBC,cAAeoY,EACfnY,iBAAkBwY,GAClB3U,oBAAoB,EACpBxG,SAAU,SAAC6C,EAAD,IACRC,EADuC,EAApBA,gBACL,GACVgP,EACFe,GAAahQ,GAEb8P,GAAa9P,MAKbuY,GAAoB3Y,aAAU,CAClCC,cAAesY,EACfrY,iBAAkB0Y,GAClB7U,oBAAoB,EACpBxG,SAAU,SAAC6C,EAAD,IACRC,EADuC,EAApBA,gBACL,GACVD,EAAO3kB,GAAK,EACdm8B,GAAiBxX,GAEjBsX,GAAiBtX,MAKjBqY,GAAS,yCAAG,uBAAAzrB,EAAA,sDAChBqW,GAAa,GAEbqN,GAA4BrB,GAAUjhB,MAAK,SAACC,GAC1CiqB,EAAejqB,GACfuoB,GAAoBvoB,MACnBmS,OAAM,SAACC,GACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,WACT2C,GAAa,MATC,2CAAH,qDAaTuT,GAAsB,SAACvoB,GAC3B,IAAIwoB,EAAoBpB,GAAiBp2B,MAAK,SAAC4f,GAAD,OAAOA,EAAEva,QAAU2J,EAAIwmB,aACjEiC,EAA4BtB,GAAUn2B,MAAK,SAAC4f,GAAD,OAAOA,EAAEva,QAAU2J,EAAI6mB,2BAClE6B,EAA8BvB,GAAUn2B,MAAK,SAAC4f,GAAD,OAAOA,EAAEva,QAAU2J,EAAI+mB,6BAEpEyB,GACFR,EAAaQ,GAGXC,GACFP,EAAqBO,GAGnBC,GACFN,EAAuBM,IAIrB7G,GAAe,SAACzlB,GACpB4Y,GAAa,GAEbqN,GAA2B7P,GAA6BpW,IAAQ2D,MAAK,SAACC,GACpE7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtClG,EAAQI,KAAR,sCAA4C2a,EAAI5S,QAC/C+kB,OAAM,SAACC,GACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,kBAAM2C,GAAa,OAG1B+M,GAAe,SAAC3lB,GACpB4Y,GAAa,GAEbqN,GAA2B7P,GAA6BpW,IAAQ2D,MAAK,SAACC,GACpE7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtClG,EAAQI,KAAK,uCACZ8sB,OAAM,SAACC,GACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,kBAAM2C,GAAa,OAG1BqU,GAAmB,SAACjtB,GACJ,IAAhB6jB,EAAK/yB,QAKT8nB,GAAa,GACbwV,GAAmChY,GAAA,2BAE5BpW,GAF4B,IAG/B6pB,MAAOhG,EAAK/yB,OAAS,EAAI+yB,EAAK,GAAGA,KAAO,SAEzClgB,MAAK,SAACC,GACP7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtCs/B,QACCtY,OAAM,SAACC,GACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,kBAAM2C,GAAa,OAf5B7Y,EAAU,CAAE5W,KAAM,gCAAiC4F,MAAO,aAkBxDo+B,GAAmB,SAACntB,GACxB4Y,GAAa,GAETiL,EAAK/yB,OAAS,IAChBkP,EAAK,2BAAQA,GAAR,IAAe6pB,MAAOhG,EAAK,GAAGA,QAErCuK,GAAmChY,GAA6BpW,IAAQ2D,MAAK,SAACC,GAC5E7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtCs/B,QACCtY,OAAM,SAACC,GACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,kBAAM2C,GAAa,OAG1ByV,GAAsB,WAC1BL,KACAM,MAGIA,GAAgC,WACpCP,EAAmBJ,GACnBO,GAAkBpU,YAClB4T,EAAY1F,QAAQuG,cACpBzC,EAAqB,MACrBE,EAAuB,OAyCnB5R,GAAU,CACd,CACEzsB,KAAM,KACN4O,MAAO,UACPuN,QAAS,CACPnS,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,EACVE,qBAAsB,SAACC,GAAD,OACpB,eAAC,EAAD,CAAalzB,UAAU,kDAAvB,UACE,cAAC,EAAD,CACE+B,KAAK,OACL/B,UAAU,gBACVa,KAAK,MACLL,QAAS,WACP0mC,KACAjmB,YAAW,WACT0lB,EAAmBH,EAAYL,YAAYjT,IAC3C6R,GAAoByB,EAAYL,YAAYjT,MAC3C,MAIP,cAAC,EAAD,CACEnxB,KAAK,SACL/B,UAAU,aACVa,KAAK,MACLL,QAAS,WACP8Y,EAAiB,CACfvY,MAAO,cACPgB,KAAM,oDACNqX,aAAc,UACdJ,UAAW,WAvEF,IAACpP,IAwES48B,EAAYL,YAAYjT,GAAWtpB,GAvEpEo9B,GAAmCp9B,GAAI2S,MAAK,SAACC,GAC3CjD,IACAZ,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtCs/B,QACCtY,OAAM,SAACC,GACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,kBAAM2C,GAAa,kBA0E9B,CACEjrB,KAAM,OACN4O,MAAO,OACPuN,QAAS,CACPnS,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,IAGd,CACExsB,KAAM,QACN4O,MAAO,QACPuN,QAAS,CACPnS,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,IAGd,CACExsB,KAAM,WACN4O,MAAO,aACPuN,QAAS,CACPnS,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,EACVE,qBAAsB,SAACC,GACrB,IAAQtU,EAAa4nB,EAAYL,YAAYjT,GAArCtU,SAER,OACE,4BAAIA,EAAW,MAAQ,WAOjC,OACE,qCACGzc,GAAa,cAAC,EAAD,CAASqJ,WAAS,IAChC,eAAC,EAAD,CAAaxL,UAAU,4BAAvB,UACE,eAAC,GAAD,CAASwvB,aAAW,EAApB,UACE,cAAC,GAAD,CAAcK,KAAM,EAApB,SACE,eAAC,EAAD,CACEN,gBAAc,EACdvvB,UAAU,6CAFZ,UAIE,cAAC,GAAD,CACEe,MAAM,YACN4mB,WAAW,OAGb,cAAC,EAAD,CAAa3nB,UAAU,+BAAvB,SAEI6jC,GAAWz9B,KAAI,SAACoK,GAAD,OACb,cAAC,GAAD,CAEEzP,MAAOyP,EAAKzP,MACZiiB,YAAaxS,EAAKiyB,MAClB1D,WAAYvuB,EAAKvP,OAAS+qB,GAAOuC,OAAOttB,KACxCD,WAAYwP,EAAKvP,OAAS+qB,GAAOuC,OAAOttB,KAAO,eAAiB,iBAJ3DuP,EAAK5G,cAYtB,cAAC,GAAD,CAAcimB,KAAM,EAApB,SACE,eAAC,GAAD,CAAWnE,SAAUM,GAAOqD,aAA5B,UAEE,eAAC,GAAD,CACEE,gBAAc,EACdvvB,UAAU,6CAFZ,UAIE,cAAC,GAAD,UACE,cAAC,GAAD,CACEe,MAA4B,IAArBirB,GAAOuC,OAAO3kB,GAAW,aAAe,iBAC/C+d,WAAW,SAIf,cAAC,GAAD,UACE,cAAC,GAAD,CACE5mB,MAAM,oBACN4mB,WAAW,KACX3nB,UAAU,2CAId,cAAC,GAAD,CAAc6vB,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,cACNO,YAAY,8BACZK,YAAU,EACVR,aAAcyW,GAAOG,OAAO5lB,KAC5B+O,WAAU,UAAK0Z,GAAuBhD,GAAQ,UAC1CA,GAAOiD,cAAc,YAG7B,cAAC,GAAD,CAAcjvB,UAAU,QAAxB,SACE,cAAC,GAAD,yBACEmV,MAAM,oBACNvL,GAAG,YACCoiB,GAAOiD,cAAc,aAH3B,IAIEe,UAAWhE,GAAOuC,OAAO3P,iBAK7B4e,EAAW,GAET,qCAEE,eAAC,GAAD,CACEjO,gBAAc,EACdvvB,UAAU,mDAFZ,UAIE,cAAC,GAAD,UACE,cAAC,GAAD,CACEe,MAAM,kBACN4mB,WAAW,KACX3nB,UAAU,2CAId,cAAC,GAAD,CAAc6vB,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,cACNO,YAAY,sBACZH,aAAcuxB,GAAkB3a,OAAO5lB,KACvC+O,WAAU,UAAK0Z,GAAuB8X,GAAmB,UACrDA,GAAkB7X,cAAc,YAIxC,cAAC,GAAD,CAAcY,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,QACNO,YAAY,qBACZH,aAAcuxB,GAAkB3a,OAAOprB,MACvCuU,WAAU,UAAK0Z,GAAuB8X,GAAmB,WACrDA,GAAkB7X,cAAc,aAIxC,cAAC,GAAD,CAAcY,KAAM,EAApB,SACE,cAAC,GAAD,CACE1a,MAAM,YACNuN,QAASkhB,GACT/wB,MAAOmwB,EACPztB,aAAcuxB,GAAkB3a,OAAOlrB,KACvCgX,SAAU,SAACutB,GACThB,EAAagB,GACbsB,GAAkB7L,cAAc,YAAauK,EAAI3yB,YAKvD,cAAC,GAAD,UACE,cAAC,GAAD,aACEsC,MAAM,kBACNO,YAAY,6LACZ1V,UAAU,KACVuV,aAAcuxB,GAAkB3a,OAAOiQ,YACvC9mB,WAAU,UAAK0Z,GAAuB8X,GAAmB,iBACrDA,GAAkB7X,cAAc,mBAIxC,cAAC,GAAD,CAAcY,KAAM,EAAG7vB,UAAU,QAAjC,SACE,cAAC,GAAD,yBACEmV,MAAM,oBACNvL,GAAG,mBACCk9B,GAAkB7X,cAAc,aAHtC,IAIEe,UAAW8W,GAAkBvY,OAAO3P,cAIxC,cAAC,GAAD,CAAS2Q,gBAAc,EAACvvB,UAAU,QAAlC,SACE,cAAC,GAAD,UACE,cAAC,GAAD,CACEe,MAAM,eACNmmB,SAAS,iCACTS,WAAW,KACXR,aAAa,KACbnnB,UAAU,6CAIhB,cAAC,GAAD,UAEoC,IAAhC8mC,GAAkBvY,OAAO3kB,GAErB,cAAC,GAAD,CAAc5J,UAAU,QAAxB,SACE,cAAC,GAAD,CACEy9B,cAAef,EACfzvB,IAAKq5B,MAKT,qCACE,cAAC,EAAD,CAAatmC,UAAU,0BAAvB,SACE,cAAC,EAAD,CACEwE,OAAM,UAAKuT,2CAAL,uBAAiD+uB,GAAkBvY,OAAO0U,WAChFjjC,UAAU,kBAGd,cAAC,GAAD,CACEy9B,cAAef,EACfzvB,IAAKq5B,EACLrS,UAAU,uBAQtB,cAAC,GAAD,UACE,cAAC,GAAD,CACElzB,MAAM,UACN4mB,WAAW,KACX3nB,UAAU,2CAGd,cAAC,GAAD,CAAc6vB,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,sBACNO,YAAY,kBACZH,aAAcuxB,GAAkB3a,OAAOvE,kBACvCtS,WAAU,UAAK0Z,GAAuB8X,GAAmB,uBACrDA,GAAkB7X,cAAc,yBAIxC,cAAC,GAAD,CAAcY,KAAM,EAApB,SACE,cAAC,GAAD,yBACE1a,MAAM,sBACNuN,QAASihB,GACT5I,aAAW,EACXzlB,WAAawxB,GAAkBvY,OAAO3G,kBAA1B,UAA8DoH,GAAuB8X,GAAmB,4BAA1D,WAC1DvxB,aAAcuxB,GAAkB3a,OAAOkX,yBACnCyD,GAAkB7X,cAAc,4BANtC,IAOEwW,WAAY,kBAAMqB,GAAkBpB,gBAAgB,2BAA2B,IAC/E7yB,MAAO4xB,EACPxsB,SAAU,SAACutB,GAETd,EADAc,EAAc,OAARA,EAAe,GAAKA,GAE1BsB,GAAkB7L,cAAc,0BAA2BuK,EAAI3yB,aAKrE,cAAC,GAAD,CAAcgd,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,sBACNO,YAAY,GACZH,aAAcuxB,GAAkB3a,OAAOmX,kBACvChuB,WAAawxB,GAAkBvY,OAAO3G,kBAA1B,UAA8DoH,GAAuB8X,GAAmB,sBAA1D,YACtDA,GAAkB7X,cAAc,yBAIxC,cAAC,GAAD,CAAcY,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,wBACNO,YAAY,kBACZH,aAAcuxB,GAAkB3a,OAAOpE,oBACvCzS,WAAU,UAAK0Z,GAAuB8X,GAAmB,yBACrDA,GAAkB7X,cAAc,2BAIxC,cAAC,GAAD,CAAcY,KAAM,EAApB,SACE,cAAC,GAAD,yBACE1a,MAAM,wBACNuN,QAASihB,GACT5I,aAAW,EACXzlB,WAAawxB,GAAkBvY,OAAOxG,oBAA1B,UAAgEiH,GAAuB8X,GAAmB,8BAA1D,WAC5DvxB,aAAcuxB,GAAkB3a,OAAOoX,2BACnCuD,GAAkB7X,cAAc,8BANtC,IAOEwW,WAAY,kBAAMqB,GAAkBpB,gBAAgB,6BAA6B,IACjF7yB,MAAO8xB,EACP1sB,SAAU,SAACutB,GAETZ,EADAY,EAAc,OAARA,EAAe,GAAKA,GAE1BsB,GAAkB7L,cAAc,4BAA6BuK,EAAI3yB,aAKvE,cAAC,GAAD,CAAcgd,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,wBACNO,YAAY,GACZH,aAAcuxB,GAAkB3a,OAAOqX,oBACvCluB,WAAawxB,GAAkBvY,OAAOxG,oBAA1B,UAAgEiH,GAAuB8X,GAAmB,wBAA1D,YACxDA,GAAkB7X,cAAc,2BAIxC,cAAC,GAAD,CAASM,gBAAc,EAACvvB,UAAU,OAAlC,SACE,eAAC,GAAD,CAAcA,UAAU,6BAAxB,UACE,cAAC,EAAD,CACE+B,KAAK,QACL/B,UAAU,WACVQ,QAAS0mC,KAGX,cAAC,EAAD,CACEnlC,KAAsC,IAAhC+kC,GAAkBvY,OAAO3kB,GAAW,iBAAmB,yBAC7D5J,UAAU,cACVQ,QAASsmC,GAAkBrT,qBAKnC,eAAC,GAAD,CACElE,gBAAc,EACdvvB,UAAU,mDAFZ,UAIE,cAAC,GAAD,UACE,cAAC,GAAD,CACEe,MAAM,eACN4mB,WAAW,KACXC,kBAAkB,aAClBY,qBAAsB,kBAAMsO,GAAmB,QAInD,cAAC,GAAD,UACE,cAAC,KAAD,CACE9a,KAAMwqB,EAAYL,YAClBnT,QAASA,GACTtQ,QAAS,CACP2Q,eAAgB,OAChBN,UAAU,EACVD,OAAO,aAUrB,cAAC,GAAD,CACEmF,kBAAwC,IAArBjM,GAAOuC,OAAO3kB,GAAW,SAAW,eACvDsuB,mBAAmB,cACnBE,qBAAsBpM,GAAOqD,aAC7BgJ,oBAAoB,SACpBG,uBAAwB,kBAAM/2B,EAAQI,KAAK,qCAC3C62B,mBAAmB,iBACnBE,iBAAiB,kBAOzB,cAAC,GAAD,CACExO,gBAAc,EACdU,UAAQ,EACR/R,UAAW8d,EACXh2B,KAAK,KACL0oB,cAAc,gBACdI,uBAAuB,OACvBO,0BA3bgB,WACtBsH,GAAa,GAEbwV,GAAkChQ,GAAUza,MAAK,SAACC,GAChDoqB,KACAjuB,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtCmvB,GAAmB,MAClBnI,OAAM,SAACC,GACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,WACT2C,GAAa,OAkbTxH,OAAQ,WACN8M,GAAmB,IATvB,SAYE,cAAC,GAAD,CAASvH,gBAAc,EAAvB,SAEIyH,EAASttB,OAAS,EAEd,cAAC,KAAD,CAAiB2tB,UAtbf,SAACpK,GACjB,GAAKA,EAAOtG,YAAZ,CAIA,IAAM2Q,EAAUtI,GACdgI,EACA/J,EAAOzoB,OAAO4gB,MACd6H,EAAOtG,YAAYvB,OAGrB6R,GAAYK,KA2aE,SACE,cAAC,KAAD,CAAWE,YAAY,YAAvB,SACG,SAACC,GAAD,OACC,sBACExqB,IAAKwqB,EAAkBC,SADzB,UAGGV,EAAS5wB,KAAI,SAACoK,EAAM4U,GAAP,OACZ,cAAC,KAAD,CACgBwS,YAAW,UAAKxS,GAC9BA,MAAOA,EAFT,SAIG,SAACyS,GAAD,OACC,yDAEE5qB,IAAK4qB,EAAkBH,UACnBG,EAAkBC,gBAClBD,EAAkBE,iBAJxB,IAKE/3B,UAAU,8EALZ,SAOE,mBAAGA,UAAU,mBAAb,SAAiCwQ,EAAKzP,UAPxC,gBACgByP,EAAK5G,OALlB4G,EAAK5G,OAiBb6tB,EAAkB/hB,oBAM3B,cAAC,EAAD,CAAa1V,UAAU,8EAAvB,SACE,mBAAGA,UAAU,mBAAb,+CCvvBd0e,GAAiB,SAEjB0oB,GAAQ,yCAAG,uBAAAjsB,EAAA,+EAAYU,GAAcgD,IAAd,UAAqBH,GAArB,YAA+C7B,GAAUE,uBAArE,2CAAH,qDAERsqB,GAAW,yCAAG,WAAOhhC,GAAP,UAAA8U,EAAA,+EAAoBU,GAAcwD,IAAd,UAAqBX,GAArB,eAAkDrY,EAAUwW,GAAUE,uBAA1F,2CAAH,sDCLF4O,UAAaC,MAAM,CAChCxI,YAAauI,OAAaE,SAAS,4BAA4BsE,IAAI,KACnE7iB,aAAcqe,OAAald,QAAQod,SAAS,qBAAqBsE,IAAI,KACrE9iB,YAAase,OAAa8E,WAAWN,IAAI,IACzCmX,eAAgB3b,OAAa8E,WAAWN,IAAI,KAC5CoX,eAAgB5b,OAAa8E,WAAWN,IAAI,KAC5CqX,KAAM7b,OAAa8E,WAAWN,IAAI,KAClCxoB,MAAOgkB,OAAa8E,WAAWN,IAAI,IACnCsX,QAAS9b,OAAa8E,WAAWN,IAAI,IACrCuX,oBAAqB/b,OAAa8E,WAAWN,IAAI,KACjDwX,oBAAqBhc,OAAa8E,WAAWN,IAAI,KACjDyX,sBAAuBjc,OAAa8E,WAAWN,IAAI,KACnD0X,sBAAuBlc,OAAa8E,WAAWN,IAAI,KACnDngB,aAAc2b,OAAa8E,WAAWN,IAAI,KAC1CvgB,cAAe+b,OAAa8E,WAAWN,IAAI,KAC3CnhB,YAAa2c,OAAa8E,WAAWN,IAAI,KACzCrgB,aAAc6b,OAAa8E,WAAWN,IAAI,KAC1C1M,WAAYkI,OAAa8E,WAAWN,IAAI,KACxCrhB,YAAa6c,OAAa8E,WAAWN,IAAI,KACzCjhB,cAAeyc,OAAa8E,WAAWN,IAAI,KAC3C5M,aAAcoI,OAAa8E,WAAWN,IAAI,KAC1CtJ,oBAAqB8E,OAAa8E,WAAWN,IAAI,KACjD2X,kBAAmBnc,OAAa8E,WAAWN,IAAI,OCO3C4X,GAAoB,CACxBC,YAAa,KACbxhB,gBAAiB,GACjByhB,YAAa,KACbr/B,gBAAiB,GACjBwa,YAAa,GACb9V,aAAc,GACdD,YAAa,GACbi6B,eAAgB,GAChBC,eAAgB,GAChBC,KAAM,GACN7/B,MAAO,GACP8/B,QAAS,GACTC,oBAAqB,GACrBC,oBAAqB,GACrBC,sBAAuB,GACvBC,sBAAuB,GACvB73B,aAAc,GACdJ,cAAe,GACfZ,YAAa,GACbc,aAAc,GACdhB,YAAa,GACb2U,WAAY,GACZvU,cAAe,GACfqU,aAAc,GACdsD,oBAAqB,GACrBqhB,oBAAqB,GACrBC,IAAK,GACLC,kBAAmB,IA4bN9/B,gBAFW,SAACX,GAAD,MAAY,CAAEY,KAAMZ,EAAMY,QAE9B,YAAC,2BAClBA,GACAsoB,IACAsI,IAHU7wB,EAzbgB,SAACvI,GAC9B,IAAQ4Y,EAAc5Y,EAAd4Y,UACR,EAAkC3P,oBAAS,GAA3C,oBAAO7G,EAAP,KAAkBqvB,EAAlB,KACA,EAA+BxoB,mBAAS++B,IAAxC,oBAAOM,EAAP,KAAmBC,EAAnB,KACA,EAAgCt/B,mBAAS,IAAzC,oBAAOu/B,EAAP,KAAiBC,EAAjB,KACA,EAAgCx/B,mBAAS,IAAzC,oBAAOy/B,EAAP,KAAiBC,EAAjB,KACMC,EAAUr8B,iBAAO,MACjBs8B,EAAUt8B,iBAAO,MAEvB7C,qBAAU,WACRo/B,MACC,IAEH,IAAM7c,EAASmC,aAAU,CACvBC,cAAeia,EACfha,iBAAkBya,GAClB5W,oBAAoB,EACpBxG,SAAU,SAAC6C,EAAD,IACRC,EADuC,EAApBA,gBACL,GACdua,EAAUxa,MAIRsa,EAAc,WAClBrX,GAAa,GAEbwX,KAAwBzsB,MAAK,SAACC,GAC5B8rB,EAAS9rB,MACRmS,OAAM,SAACC,GACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,WACT2C,GAAa,OAIXuX,EAAY,SAACnwB,GACjB4Y,GAAa,GAET+W,EAAS7+B,OAAS,IACpBkP,EAAK,2BAAQA,GAAR,IAAeovB,YAAaO,EAAS,GAAG9L,QAE3CgM,EAAS/+B,OAAS,IACpBkP,EAAK,2BAAQA,GAAR,IAAeqvB,YAAaQ,EAAS,GAAGhM,QAE/CuM,GAAyBha,GAA6BpW,IAAQ2D,MAAK,SAACC,GAClE7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtCkhC,IACAL,EAAY,IACZE,EAAY,IACZC,EAAQ/H,QAAQuG,cAChByB,EAAQhI,QAAQuG,iBACfxY,OAAM,SAACC,GACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,kBAAM2C,GAAa,OAGhC,OACE,qCACGrvB,GAAa,cAAC,EAAD,CAASqJ,WAAS,IAChC,cAAC,EAAD,CAAaxL,UAAU,4BAAvB,SACE,cAAC,GAAD,CAASwvB,aAAW,EAApB,SACE,cAAC,GAAD,UACE,eAAC,GAAD,CAAW9D,SAAUM,EAAOqD,aAA5B,UAEE,eAAC,GAAD,CAASE,gBAAc,EAACvvB,UAAU,6CAAlC,UACE,cAAC,GAAD,UACE,cAAC,GAAD,CACEe,MAAM,YACN4mB,WAAW,SAIf,eAAC,GAAD,CAAckI,KAAM,EAApB,UACE,cAAC,GAAD,CACE9uB,MAAM,0BACNmmB,SAAS,kCACTS,WAAW,KACXR,aAAa,KACbnnB,UAAU,yCAEZ,cAAC,EAAD,CAAaA,UAAU,0BAAvB,SACE,cAAC,EAAD,CAAaA,UAAU,wBAAvB,SACE,cAAC,EAAD,CACEwE,OAAQ6jC,EAAW7hB,gBAAgB/V,SAAS,QAAU43B,EAAW7hB,gBAAzD,UAA8EzO,2CAA9E,uBAA0HswB,EAAW7hB,uBAInJ,cAAC,GAAD,CACEiX,cAAe+K,EACfvU,UAAU,eACVhnB,IAAK07B,OAIT,eAAC,GAAD,CAAc9Y,KAAM,EAApB,UACE,cAAC,GAAD,CACE9uB,MAAM,eACNmmB,SAAS,4DACTS,WAAW,KACXR,aAAa,KACbnnB,UAAU,yCAEZ,cAAC,EAAD,CAAaA,UAAU,0BAAvB,SACE,cAAC,EAAD,CAAaA,UAAU,wBAAvB,SACE,cAAC,EAAD,CACEwE,OAAQ6jC,EAAWz/B,gBAAgB6H,SAAS,QAAU43B,EAAWz/B,gBAAzD,UAA8EmP,2CAA9E,uBAA0HswB,EAAWz/B,uBAInJ,cAAC,GAAD,CACE60B,cAAeiL,EACfzU,UAAU,eACVhnB,IAAK27B,UAMX,eAAC,GAAD,CAASrZ,gBAAc,EAACvvB,UAAU,mDAAlC,UACE,cAAC,GAAD,UACE,cAAC,GAAD,CACEe,MAAM,oBACN4mB,WAAW,SAKf,cAAC,GAAD,UACE,cAAC,GAAD,CACE5mB,MAAM,kBACN4mB,WAAW,KACX3nB,UAAU,2CAId,cAAC,GAAD,CAAc6vB,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,eACNY,YAAU,EACVR,aAAcyW,EAAOG,OAAO/I,YAC5B9N,WAAU,UAAK0Z,GAAuBhD,EAAQ,iBAC1CA,EAAOiD,cAAc,mBAI7B,cAAC,GAAD,CAAcY,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,gBACNY,YAAU,EACVR,aAAcyW,EAAOG,OAAO7e,aAC5BgI,WAAU,UAAK0Z,GAAuBhD,EAAQ,kBAC1CA,EAAOiD,cAAc,oBAI7B,cAAC,GAAD,CAAcY,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,eACN+M,KAAK,iBACL3M,aAAcyW,EAAOG,OAAO9e,YAC5BiI,WAAU,UAAK0Z,GAAuBhD,EAAQ,iBAC1CA,EAAOiD,cAAc,mBAK7B,cAAC,GAAD,CAAcjvB,UAAU,QAAxB,SACE,cAAC,GAAD,CACEe,MAAM,oBACN4mB,WAAW,KACX3nB,UAAU,2CAId,cAAC,GAAD,CAAc6vB,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,iBACNO,YAAY,2BACZH,aAAcyW,EAAOG,OAAOmb,eAC5BhyB,WAAU,UAAK0Z,GAAuBhD,EAAQ,oBAC1CA,EAAOiD,cAAc,sBAI7B,cAAC,GAAD,CAAcY,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,eACNO,YAAY,cACZH,aAAcyW,EAAOG,OAAOob,eAC5BjyB,WAAU,UAAK0Z,GAAuBhD,EAAQ,oBAC1CA,EAAOiD,cAAc,sBAI7B,cAAC,GAAD,CAAcY,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,OACNI,aAAcyW,EAAOG,OAAOqb,KAC5BlyB,WAAU,UAAK0Z,GAAuBhD,EAAQ,UAC1CA,EAAOiD,cAAc,YAI7B,cAAC,GAAD,CAAcY,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,QACNO,YAAY,gBACZH,aAAcyW,EAAOG,OAAOxkB,MAC5B2N,WAAU,UAAK0Z,GAAuBhD,EAAQ,WAC1CA,EAAOiD,cAAc,aAI7B,cAAC,GAAD,CAAcY,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,WACN+M,KAAK,QACL3M,aAAcyW,EAAOG,OAAOsb,QAC5BnyB,WAAU,UAAK0Z,GAAuBhD,EAAQ,aAC1CA,EAAOiD,cAAc,eAK7B,cAAC,GAAD,CAAcjvB,UAAU,QAAxB,SACE,cAAC,GAAD,CACEe,MAAM,4BACN4mB,WAAW,KACX3nB,UAAU,2CAId,eAAC,GAAD,CAAc6vB,KAAM,EAApB,UACE,cAAC,GAAD,aACE1a,MAAM,gBACNO,YAAY,iCACZH,aAAcyW,EAAOG,OAAOub,oBAC5BpyB,WAAU,UAAK0Z,GAAuBhD,EAAQ,yBAC1CA,EAAOiD,cAAc,yBAG3B,cAAC,GAAD,aACE9Z,MAAM,gBACNO,YAAY,8BACZH,aAAcyW,EAAOG,OAAOyb,sBAC5BtyB,WAAU,UAAK0Z,GAAuBhD,EAAQ,2BAC1CA,EAAOiD,cAAc,8BAI7B,eAAC,GAAD,CAAcY,KAAM,EAApB,UACE,cAAC,GAAD,aACE1a,MAAM,gBACNO,YAAY,6BACZH,aAAcyW,EAAOG,OAAOwb,oBAC5BryB,WAAU,UAAK0Z,GAAuBhD,EAAQ,yBAC1CA,EAAOiD,cAAc,yBAG3B,cAAC,GAAD,aACE9Z,MAAM,gBACNO,YAAY,uBACZH,aAAcyW,EAAOG,OAAO0b,sBAC5BvyB,WAAU,UAAK0Z,GAAuBhD,EAAQ,2BAC1CA,EAAOiD,cAAc,iCAM/B,eAAC,GAAD,CAASM,gBAAc,EAACvvB,UAAU,mDAAlC,UACE,cAAC,GAAD,UACE,cAAC,GAAD,CACEe,MAAM,yBACN4mB,WAAW,SAKf,cAAC,GAAD,UACE,cAAC,GAAD,CACE5mB,MAAM,yBACN4mB,WAAW,KACX3nB,UAAU,2CAId,cAAC,GAAD,CAAc6vB,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,WACNO,YAAY,4CACZH,aAAcyW,EAAOG,OAAOnc,aAC5BsF,WAAU,UAAK0Z,GAAuBhD,EAAQ,kBAC1CA,EAAOiD,cAAc,oBAI7B,cAAC,GAAD,CAAcY,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,YACNO,YAAY,6CACZH,aAAcyW,EAAOG,OAAOvc,cAC5B0F,WAAU,UAAK0Z,GAAuBhD,EAAQ,mBAC1CA,EAAOiD,cAAc,qBAI7B,cAAC,GAAD,CAAcY,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,UACNO,YAAY,sCACZH,aAAcyW,EAAOG,OAAOnd,YAC5BsG,WAAU,UAAK0Z,GAAuBhD,EAAQ,iBAC1CA,EAAOiD,cAAc,mBAI7B,cAAC,GAAD,CAAcY,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,WACNO,YAAY,qDACZH,aAAcyW,EAAOG,OAAOrc,aAC5BwF,WAAU,UAAK0Z,GAAuBhD,EAAQ,kBAC1CA,EAAOiD,cAAc,oBAI7B,cAAC,GAAD,CAAcY,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,kBACNO,YAAY,kCACZH,aAAcyW,EAAOG,OAAOrd,YAC5BwG,WAAU,UAAK0Z,GAAuBhD,EAAQ,iBAC1CA,EAAOiD,cAAc,mBAI7B,cAAC,GAAD,CAAcY,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,iBACNO,YAAY,iCACZJ,WAAU,UAAK0Z,GAAuBhD,EAAQ,gBAC1CA,EAAOiD,cAAc,kBAI7B,cAAC,GAAD,CAAcY,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,mBACNO,YAAY,yCACZH,aAAcyW,EAAOG,OAAOjd,cAC5BoG,WAAU,UAAK0Z,GAAuBhD,EAAQ,mBAC1CA,EAAOiD,cAAc,qBAI7B,cAAC,GAAD,CAAcY,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,iBACNO,YAAY,4BACZH,aAAcyW,EAAOG,OAAO5I,aAC5BjO,WAAU,UAAK0Z,GAAuBhD,EAAQ,kBAC1CA,EAAOiD,cAAc,oBAI7B,cAAC,GAAD,CAAcY,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,wBACNO,YAAY,mCACZH,aAAcyW,EAAOG,OAAOtF,oBAC5BvR,WAAU,UAAK0Z,GAAuBhD,EAAQ,yBAC1CA,EAAOiD,cAAc,8BAM/B,eAAC,GAAD,CAASM,gBAAc,EAACvvB,UAAU,0DAAlC,UACE,cAAC,GAAD,UACE,cAAC,GAAD,CACEe,MAAM,mCACN4mB,WAAW,SAKf,cAAC,GAAD,CAAckI,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,sBACNO,YAAY,+CACZ1V,UAAU,KACVuV,aAAcyW,EAAOG,OAAO+b,oBAC5B5yB,WAAU,UAAK0Z,GAAuBhD,EAAQ,uBAC1CA,EAAOiD,cAAc,4BAa/B,eAAC,EAAD,CAAajvB,UAAU,oBAAvB,UACE,cAAC,EAAD,CAAaA,UAAU,8BAAvB,SACE,cAAC,EAAD,CAAaA,UAAU,wBAQzB,eAAC,EAAD,CAAaA,UAAU,uCAAvB,UACE,cAAC,EAAD,CACE+B,KAAK,SACL/B,UAAU,eAGZ,cAAC,EAAD,CACE+B,KAAK,eACL/B,UAAU,cACVQ,QAASwrB,EAAOqD,oCCre9B3Q,GAAiB,cAEjBuqB,GAAiB,yCAAG,uBAAA9tB,EAAA,+EAAYU,GAAcgD,IAAd,UAAqBH,GAArB,qBAAwD7B,GAAUE,uBAA9E,2CAAH,qDAEjBmsB,GAAiB,yCAAG,WAAOC,GAAP,UAAAhuB,EAAA,+EAAwBU,GAAcgD,IAAd,UAAqBH,GAArB,0CAAqEyqB,GAAgBtsB,GAAUE,uBAAvH,2CAAH,sDAEjBqsB,GAAgB,yCAAG,WAAOC,GAAP,UAAAluB,EAAA,+EAAsBU,GAAcC,KAAd,UAAsB4C,GAAtB,oBAAwD2qB,EAAYxsB,GAAUE,uBAApG,2CAAH,sDAEhBusB,GAAgB,yCAAG,WAAOD,GAAP,UAAAluB,EAAA,+EAAsBU,GAAcwD,IAAd,UAAqBX,GAArB,oBAAuD2qB,EAAYxsB,GAAUE,uBAAnG,2CAAH,sDAEhBwsB,GAAgB,yCAAG,WAAOJ,GAAP,UAAAhuB,EAAA,+EAAwBU,GAAcsD,OAAd,UAAwBT,GAAxB,yCAAuEyqB,GAAgBtsB,GAAUE,uBAAzH,2CAAH,sDAEhBysB,GAAe,yCAAG,WAAO1U,GAAP,UAAA3Z,EAAA,+EAAsBU,GAAcwD,IAAd,UAAqBX,GAArB,mBAAsDoW,EAAYjY,GAAUE,uBAAlG,2CAAH,sDCbN4O,UAAaC,MAAM,CAChChiB,GAAI+hB,OACJxW,MAAOwW,OAAaE,SAAS,4BAA4BsE,IAAI,KAC7D/uB,GAAIuqB,OAAaE,SAAS,oBAAoBsE,IAAI,OC6BpD,MAAMsZ,GAAyB,CAC7B7/B,GAAI,EACJuL,MAAO,GACP/T,GAAI,IAyTSkH,oBADYX,IAAK,CAAQY,KAAMZ,EAAMY,QACV,IAAKsoB,MAAkBjX,IAAlDtR,EAtTgBvI,IAC7B,MAAM,UAAE4Y,EAAS,iBAAEW,EAAgB,iBAAEC,GAAqBxZ,GACnDoC,EAAWqvB,GAAgBxoB,oBAAS,IACpC6tB,EAAiBC,GAAsB9tB,oBAAS,IAChDqP,EAAaqxB,GAAkB1gC,mBAAS,KACxCguB,EAAUC,GAAejuB,mBAAS,KAClC2gC,EAAiBC,GAAsB5gC,mBAASygC,KAChDzU,EAAgBC,GAAqBjsB,oBAAS,GAIrDS,qBAAU,KACRogC,MACC,IAEHpgC,qBAAU,KACRwtB,EAAY5e,EAAYwa,MAAK,CAAC1X,EAAGgc,IAAMhc,EAAIgc,OAC1C,CAAC9e,IAEJ,MAAM2T,EAASmC,aAAU,CACvBC,cAAeub,EACftb,iBAAkByb,GAClB5X,oBAAoB,EACpBxG,SAAUA,CAAC6C,EAAM/lB,KAAyB,IAAvB,cAAEgmB,GAAehmB,EAClCgmB,GAAc,GACI,IAAdD,EAAO3kB,GACTw/B,EAAiB7a,GAEjB+a,EAAiB/a,MAKjB6a,EAAoBxwB,IACxB4Y,GAAa,GACbuY,GAAmCnxB,GAAO2D,MAAMC,IAC9C7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtCkiC,IACAG,OACCrb,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAIX8X,EAAoB1wB,IACxB4Y,GAAa,GAEbuY,GAAmCnxB,GAAO2D,MAAMC,IAC9C7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtCkiC,IACAG,OACCrb,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAgBXqY,EAAiBA,KACrBrY,GAAa,GACbuY,KAAsCxtB,MAAMC,IAC1CktB,EAAeltB,MACdmS,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAIXwY,EAAuBA,KAC3B/U,GAAkB,GAClBhU,YAAW,KACT+K,EAAO0G,YACPkX,EAAmBH,MAClB,MA6CC7W,EAAgB,CACpBriB,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,GAWNC,EAAU,CACd,CACEzsB,KAAM,KACN4O,MAAO,UACPuN,QAAS,CACPnS,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,EACVE,qBAAuBC,GACrBzyB,eAACX,EAAW,CAACE,UAAU,kDAAiDE,SAAA,CACtES,cAACmB,EAAM,CACLC,KAAK,OACL/B,UAAU,mBACVa,KAAK,MACLL,QAASA,KAAMypC,OAvGJrgC,EAuGkByO,EAAY6a,GAAWtpB,GAtG9D4nB,GAAa,QACbuY,GAAoCngC,GAAI2S,MAAMC,IAC5CotB,EAAmBptB,GACnByY,GAAkB,MACjBtG,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,MARM5nB,SA0GbjJ,cAACmB,EAAM,CACLC,KAAK,SACL/B,UAAU,aACVa,KAAK,MACLL,QAASA,KACP8Y,EAAiB,CACfvY,MAAO,qBACPgB,KAAM,kDACNqX,aAAc,UACdJ,UAAWA,KApFDmwB,QAqFS9wB,EAAY6a,GAAWtpB,GApFxD4nB,GAAa,GAEbuY,GAAmCZ,GAAc5sB,MAAMC,IACrDqtB,IACAlxB,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,eACrCgnB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,GACbjY,kBAoFF,CACEhT,KAAM,QACN4O,MAAO,QACPuN,QAASkQ,GAEX,CACErsB,KAAM,KACN4O,MAAO,UACPuN,QAASkQ,IAIb,OACEnyB,eAAA8B,WAAA,CAAArC,SAAA,CACGiC,GAAaxB,cAAC0K,EAAO,CAACG,WAAS,IAChC7K,cAACb,EAAW,CAACE,UAAU,4BAA2BE,SAChDS,cAAC2uB,GAAO,CAACE,aAAW,EAAAtvB,SAClBS,cAACivB,GAAY,CAAA1vB,SACXO,eAACX,EAAW,CAACE,UAAU,6CAA4CE,SAAA,CACjES,cAAC+mB,GAAa,CACZ3mB,MAAM,eACN4mB,WAAW,KACXC,kBAAkB,kBAClBY,qBAAsBA,IAAMyM,GAAkB,GAC9ClN,oBAAoB,aACpBU,uBAAwBA,IAAMqO,GAAmB,KAGnDn2B,cAACb,EAAW,CAAAI,SACVS,cAACyyB,KAAY,CACXpX,KAAM3D,EACN2a,QAASA,EACTtQ,QA7EA,CACd2Q,eAAgB,OAChBN,UAAU,EACVD,OAAO,EACPQ,YAAY,EACZC,WAAY,CAAEC,WAAY,CAAEF,WAAY,2BAiFtC3yB,cAAC0oB,GAAU,CACTe,gBAAc,EACdrR,UAAW8d,EACXh2B,KAAK,KACL0oB,cAAc,gBACdI,uBAAuB,OACvBO,0BA/HkBsf,KACtBhY,GAAa,GAEbuY,GAAkC/S,GAAUza,MAAMC,IAChDqtB,IACAlxB,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtCmvB,GAAmB,MAClBnI,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAsHXxH,OAAQA,KACN8M,GAAmB,IACnB52B,SAEFS,cAAC2uB,GAAO,CAACC,gBAAc,EAAArvB,SACrBS,cAACy2B,KAAe,CAACC,UAvHNpK,IACjB,IAAKA,EAAOtG,YACV,OAGF,MAAM2Q,EAAUtI,GACdgI,EACA/J,EAAOzoB,OAAO4gB,MACd6H,EAAOtG,YAAYvB,OAGrB6R,EAAYK,IA4GgCp3B,SACpCS,cAAC42B,KAAS,CAACC,YAAY,YAAWt3B,SAC9Bu3B,GACAh3B,eAAA,OACEwM,IAAKwqB,EAAkBC,SAASx3B,SAAA,CAE/B82B,EAAS5wB,KAAI,CAACoK,EAAM4U,IACnBzkB,cAACg3B,KAAS,CACMC,YAAW,GAAAl3B,OAAK0kB,GAC9BA,MAAOA,EAAMllB,SAEX23B,GACAl3B,cAAA,OAEEsM,IAAK4qB,EAAkBH,YACnBG,EAAkBC,kBAClBD,EAAkBE,gBACtB/3B,UAAU,8EAA6EE,SAEvFS,cAAA,KAAGX,UAAU,mBAAkBE,SAAEsQ,EAAK2E,SAAU,QAAAzU,OANnC0kB,KALZ5U,EAAK5G,MAiBb6tB,EAAkB/hB,uBAS/B/U,cAAC0oB,GAAU,CACTe,gBAAc,EACdrR,UAAWic,EACXn0B,KAAK,KACL0oB,cAAsC,IAAvBogB,EAAgB//B,GAAW,kBAAoB,iBAC9D+f,uBAA+C,IAAvBggB,EAAgB//B,GAAW,MAAQ,SAC3DsgB,0BAA2B8B,EAAOyH,WAClCzJ,OAAQggB,EAAqB9pC,SAE7BS,cAAC8qB,GAAS,CAACC,SAAUM,EAAOyH,WAAWvzB,SACrCO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBS,cAACivB,GAAY,CAAA1vB,SACXS,cAACshB,GAAU,CACT9M,MAAM,oBACNI,aAAcyW,EAAOG,OAAOhX,MAC5BG,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,aAC1CA,EAAOiD,cAAc,SACzBlZ,YAAU,MAIdpV,cAACivB,GAAY,CAAA1vB,SACXS,cAACshB,GAAU,CACT9M,MAAM,cACNI,aAAcyW,EAAOG,OAAO/qB,GAC5BkU,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,UAC1CA,EAAOiD,cAAc,MACzBlZ,YAAU,mB,wCC1U1B,MAAMm0B,GAAkBnqC,IACtB,MAAM,gBACJM,EAAe,MACfU,EAAK,WACLC,EAAU,YACVo7B,EAAW,iBACX+N,EAAgB,oBAChBC,EAAmB,YACnBpnB,EAAW,kBACXiV,EAAiB,mBACjBC,EAAkB,gBAClBC,EAAe,qBACfC,EAAoB,oBACpBC,EAAmB,qBACnBC,EAAoB,kBACpBC,EAAiB,uBACjBC,EAAsB,2BACtB6R,EAA0B,6BAC1BC,EAA4B,WAC5BC,EAAU,WACVljB,EAAU,iBACVmjB,EAAgB,gBAChBjmC,EAAe,uBACfkmC,EAAsB,WACtBrH,EAAU,eACVF,EAAc,YACd1T,EAAW,oBACXkb,GACE3qC,EAEEwO,EAAgBpL,IACpB4G,OAAOC,KAAK7G,EAAM,WAgEdwnC,EAAsB,CAC1B,kBACAnb,EAAc,aAAe,GAC7Bkb,EAAsB,QAAU,GAChCH,EAAa,kBAAoB,GACjClqC,GACAkQ,OAAOq6B,SAASC,KAAK,KAAK73B,OAE5B,OACEvS,eAACX,EAAW,CAACE,UAAW2qC,EAAoBzqC,SAAA,CArExCkjC,GAAcF,EAAuB,KAGvCviC,cAACb,EAAW,CAACE,UAAU,cAAaE,SAClCS,cAACb,EAAW,CACVE,UAAS,iBAAAU,OAAmB6D,EAAkB,gBAAkB,IAChEtE,MAAO,CAAEmU,gBAAgB,OAAD1T,OAASsiB,EAAW,UAiEhDviB,eAACX,EAAW,CACVE,UA/B0B8qC,MAC9B,IAAI9qC,EAAY,8DAQhB,OAPIojC,IAAYpjC,GAAa,cACzBkjC,IACFljC,GAAa,2BACTuE,IAAiBvE,GAAa,mBAEhCkjC,GAAkBkH,IAAqBpqC,GAAS,IAAAU,OAAQ0pC,IACxDK,IAAwBzqC,GAAa,0BAClCA,GAsBQ8qC,GACX7qC,MAnBAwqC,IAA2BL,EACtB,CAAEh2B,gBAAgB,OAAD1T,OAASsiB,EAAW,MAEvC,GAgB0B9iB,SAAA,CAE7BS,cAACoqC,KAAI,CAAA7qC,SACHS,cAACuC,EAAS,CACRW,UAAQ,EACRC,YAAa0mC,EACbvpC,KAAK,SACLc,KAAMhB,EACNuC,MAAOtC,EACPqC,SAAUknC,EAAa,QAAWljB,EAAa,SAAW,WAG9D1mB,cAACoqC,KAAI,CAACC,MAAO,IAAI9qC,SACfS,cAACuC,EAAS,CACRjC,KAAK,cACLc,KAAMq6B,EACN94B,MAAO6mC,EACP9mC,SAAUknC,EAAa,QAAWljB,EAAa,SAAW,WA7E7D4Q,GAAsBI,EAGzB53B,eAACX,EAAW,CAACE,UAAS,WAAAU,OAAa2mB,EAAa,WAAa,IAAKnnB,SAAA,CAC/D+3B,GACCt3B,cAACoqC,KAAI,CAACE,UAAU,QAAQD,MAAO,IAAI9qC,SACjCS,cAACmB,EAAM,CACLC,KAAMk2B,EACNj4B,UAAS,GAAAU,OAAKw3B,EAAkB,KAAAx3B,OAAI6D,EAAkB,gBAAkB,IACxEnD,GAAKipC,EAA+C,GAAlBlS,EAClC33B,QAAS6pC,EAA6B,IAAM97B,EAAa4pB,GAAmBC,MAIjFC,GACC13B,cAACoqC,KAAI,CAACE,UAAU,QAAQD,MAAO,IAAI9qC,SACjCS,cAACmB,EAAM,CACLC,KAAMs2B,EACNr4B,UAAS,GAAAU,OAAK43B,EAAoB,KAAA53B,OAAI6D,EAAkB,gBAAkB,IAC1EnD,GAAKkpC,EAAmD,GAApB/R,EACpC/3B,QAAS8pC,EAA+B,IAAM/7B,EAAagqB,GAAqBC,SApBnC,YAmH3D0R,GAAe/pC,aAAe,CAC5BE,gBAAiB,GACjB+pC,oBAAqB,GACrBppC,WAAY,eACZo7B,YAAa,GACb+N,iBAAkB,YAClBlS,kBAAmB,GACnBC,mBAAoB,cACpBC,gBAAiB,GACjBC,qBAAsB,KACtBC,oBAAqB,GACrBC,qBAAsB,gBACtBC,kBAAmB,GACnBC,uBAAwB,KACxB6R,4BAA4B,EAC5BC,8BAA8B,EAC9BC,YAAY,EACZljB,YAAY,EACZmjB,kBAAkB,EAClBjmC,iBAAiB,EACjBkmC,wBAAwB,EACxBrH,YAAY,EACZF,gBAAgB,EAChB1T,aAAa,EACbkb,qBAAqB,GAGRR,UC1Lf,MAAMgB,GAAUnrC,IACd,MAAM,sBACJorC,EAAqB,MACrBpqC,EAAK,WACLC,EAAU,YACVo7B,EAAW,iBACX+N,EAAgB,YAChBnnB,EAAW,cACXooB,EAAa,gBACbC,EAAe,iBACfb,EAAgB,OAChBc,EAAM,UACNtrC,EAAS,mBACTk4B,GACEn4B,GACGwrC,EAAkBC,GAAuBxiC,mBAAS,GAQnDyiC,EAAkBA,KACtB,IAAIC,EAAqB,EACrBC,EAAkC,EAClCC,EAAyB,EAE7B3qB,YAAW,KACT,MAAM4qB,EAAej7B,SAASiwB,cAAc,0BACxCgL,IACFH,EAAqBG,EAAaC,gBAEnC,GAEH,MAAMC,EAAmBn7B,SAASiwB,cAAc,yBAC5CkL,IACFH,EAAyBG,EAAiBD,cAG5C,MAAME,EAA4Bp7B,SAASiwB,cAAc,gCACrDmL,IACFL,EAAkCK,EAA0BF,cAG9D,MAAMz1B,EAAY41B,KAAKC,KAAKR,EAAqBC,EAAmCC,EAAyB,GAAM,GACnHJ,EAAoBn1B,IAetB,OAZA5M,qBAAU,KACRgiC,IAEA1hC,OAAO8J,iBAAiB,SAAU43B,GAClC1hC,OAAO8J,iBAAiB,SAAU43B,GAE3B,KACL1hC,OAAO+J,oBAAoB,SAAU23B,GACrC1hC,OAAO+J,oBAAoB,SAAU23B,MAEtC,IAGD9qC,cAACb,EAAW,CACVE,UAAS,iBAAAU,OAAmB2qC,EAAkB,UAAY,GAAE,KAAA3qC,OAAI0qC,GA9C9C,CACpBpnC,KAAM,OACNC,OAAQ,SACRC,MAAO,SA2C0FknC,GAAc,KAAA1qC,OAAIV,GAAaA,GAC9HC,MAAO,CACLoD,SAAU,WACV+Q,gBAAgB,OAAD1T,OAASsiB,EAAW,KACnC3iB,gBAAiB8qC,EACjBgB,mBAAmB,UAADzrC,OAAqB,IAAT4qC,EAAa,OAC3CprC,SAEFS,cAAA,MACEX,UAAU,oFACVC,MAAO,CACLoD,SAAU,WACV01B,IAAK,MACL/0B,KAAM,IACN88B,OAAQ,EACRE,UAAW,mBACX3qB,UAAU,GAAD3V,OAAK6qC,EAAgB,MAC9Ba,WAAY,kCACZlsC,SAEFS,cAACoqC,KAAI,CACHC,MAAO,IAAKqB,SAAO,EACnBC,QAAS,GAAKpsC,SAEba,SAyCXmqC,GAAO/qC,aAAe,CAEpBi8B,YAAa,GACbgP,cAAe,SACfD,sBAAuB,UAGvBnqC,WAAY,aAGZmpC,iBAAkB,aAGlBkB,iBAAiB,EACjBb,kBAAkB,GAGLU,UC9JA,OAA0B,iDCA1B,OAA0B,mEC8Y1B5iC,oBAFYX,IAAK,CAAQY,KAAMZ,EAAMY,QAEV,IACrCA,KACAoR,IAFUrR,EApUMvI,IACnB,MAAM,UAAE4Y,EAAS,QAAElX,EAAO,QAAEoH,GAAY9I,EAClCwsC,EAAajgC,oBACZnK,EAAWqvB,GAAgBxoB,oBAAS,IACpCwjC,EAAcC,GAAmBzjC,mBAAS,KAC1C0jC,EAAcC,GAAmB3jC,mBAAS,MAGjDS,qBAAU,KACRmjC,EAAkB,kBACjB,IAEH,MAAMA,EAAqBnlC,IACzB+pB,GAAa,GxC9EOsE,UAAeja,GAAcgD,IAAI,GAADne,OAAIge,GAAc,wBAAAhe,OAAuB+G,GAAOoV,GAAUE,sBwC+E9GgZ,CAA+BtuB,GAAK8U,MAAMC,IACxCiwB,EAAgBjwB,MACfmS,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAIXxF,EAASmC,aAAU,CACvBC,cAAe,CACbpnB,UAAW,GACXC,SAAU,GACVwH,MAAO,GACPpB,YAAa,GACb8O,QAAS,IAEXkS,iBAAkB1C,KAAW,CAC3B3kB,UAAW2kB,OAAaE,SAAS,0BAA0BsE,IAAI,KAC/DlpB,SAAU0kB,OAAaE,SAAS,yBAAyBsE,IAAI,KAC7D1hB,MAAOkd,OAAald,MAAM,yBAAyBod,SAAS,qBAAqBsE,IAAI,KACrF9iB,YAAase,OAAawE,IAAI,IAC9BhU,QAASwP,OAAaE,SAAS,yBAEjCH,SAAUoK,MAAOvH,EAAM/lB,KAAoC,IAAlC,cAAEgmB,EAAa,UAAEkE,GAAWlqB,EACnD,IAAKkkC,EAEH,YADAle,GAAc,GAIhBgD,GAAa,GAEb,MAAMqb,EAAkB,IACnBte,EACHue,eAAgBJ,EAChBK,SAAU,gBAGZ,SCvHYjX,UAAiBja,GAAcC,KAAK,GAADpb,OAF9B,SAEgD,aAAakY,EAAOiE,GAAUE,sBDwHvFiwB,CAAuBH,GAC7Bl0B,EAAU,CAAE5W,KAAM,2CAA4C4F,MAAO,YACrE+qB,IACA6Z,EAAW3L,QAAQqM,QACnBN,EAAgB,MAChB,MAAO/d,GACPjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,UACtC,QACC6pB,GAAa,GACbhD,GAAc,OAKpB,OACE/tB,eAAA8B,WAAA,CAAArC,SAAA,CACGiC,GAAaxB,cAAC0K,EAAO,CAACG,WAAS,IAChC7K,cAACuqC,GAAM,CACLG,iBAAe,EACfb,kBAAgB,EAChBzpC,MAAM,UACNiiB,YAAakqB,KAGfzsC,eAACX,EAAW,CAACE,UAAU,4BAA2BE,SAAA,CAEhDS,cAACb,EAAW,CAACE,UAAU,qCAAoCE,SACzDS,cAACoqC,KAAI,CAACC,MAAO,IAAI9qC,SACfS,cAAC2D,EAAK,CACJlB,mBAAmB,iBACnBpD,UAAU,OACVwE,OAAQsqB,SASdruB,eAACX,EAAW,CAACE,UAAU,iCAAgCE,SAAA,CAErDO,eAACX,EAAW,CAACE,UAAU,kBAAiBE,SAAA,CACtCS,cAACoqC,KAAI,CAACE,UAAU,KAAI/qC,SAClBS,cAAA,MAAIX,UAAU,oCAAmCE,SAAC,cAEpDO,eAACX,EAAW,CAACE,UAAU,UAASE,SAAA,CAC7B2I,EAAQyE,cACP7M,eAACX,EAAW,CAACE,UAAU,eAAcE,SAAA,CACnCS,cAACb,EAAW,CAACE,UAAU,qBAAoBE,SACzCS,cAACklB,KAAO,CAAChlB,KAAK,KAAKb,UAAU,iBAE/BS,eAACX,EAAW,CAACE,UAAU,8BAA6BE,SAAA,CAClDS,cAAA,KAAGX,UAAU,wBAAuBE,SACjC2I,EAAQyE,aAAa6/B,MAAM,KAAK,KAEnC1sC,eAAA,KAAGT,UAAU,mCAAkCE,SAAA,CAAC,IAC5C2I,EAAQyE,aAAa6/B,MAAM,KAAK,YAMzCtkC,EAAQwE,aACP5M,eAACX,EAAW,CAACE,UAAU,eAAcE,SAAA,CACnCS,cAACb,EAAW,CAACE,UAAU,qBAAoBE,SACzCS,cAACysC,KAAY,CAACvsC,KAAK,KAAKb,UAAU,iBAEpCW,cAAA,KAAGX,UAAU,wBAAuBE,SAAE2I,EAAQwE,qBAKlDxE,EAAQy+B,gBAAkBz+B,EAAQ0+B,gBAAkB1+B,EAAQ2+B,MAAQ3+B,EAAQlB,OAASkB,EAAQ4+B,UAC7FhnC,eAACX,EAAW,CAACE,UAAU,iBAAgBE,SAAA,CACrCS,cAACoqC,KAAI,CAACE,UAAU,KAAKD,MAAO,IAAI9qC,SAC9BS,cAAA,MAAIX,UAAU,oCAAmCE,SAAC,eAEpDO,eAACX,EAAW,CAACE,UAAU,eAAcE,SAAA,CACnCS,cAACb,EAAW,CAACE,UAAU,qBAAoBE,SACzCS,cAAC0sC,KAAa,CAACxsC,KAAK,KAAKb,UAAU,iBAErCS,eAAA,KAAGT,UAAU,wBAAuBE,SAAA,CACjC2I,EAAQy+B,gBAAc,GAAA5mC,OAAOmI,EAAQy+B,gBACrCz+B,EAAQy+B,gBAAkBz+B,EAAQ0+B,gBAAkB,KACpD1+B,EAAQ0+B,gBAAc,GAAA7mC,OAAOmI,EAAQ0+B,iBACpC1+B,EAAQy+B,gBAAkBz+B,EAAQ0+B,kBAAoB1+B,EAAQ2+B,MAAQ3+B,EAAQlB,OAASkB,EAAQ4+B,UAAY9mC,cAAA,SAC5GkI,EAAQ2+B,MAAI,GAAA9mC,OAAOmI,EAAQ2+B,MAC3B3+B,EAAQ2+B,MAAQ3+B,EAAQlB,OAAS,KACjCkB,EAAQlB,OAAK,GAAAjH,OAAOmI,EAAQlB,QAC3BkB,EAAQ2+B,MAAQ3+B,EAAQlB,QAAU,IACnCkB,EAAQ4+B,SAAO,GAAA/mC,OAAOmI,EAAQ4+B,mBAMrC5+B,EAAQ6+B,qBAAuB7+B,EAAQ++B,uBAAyB/+B,EAAQ8+B,qBAAuB9+B,EAAQg/B,wBACvGpnC,eAACX,EAAW,CAACE,UAAU,cAAaE,SAAA,CAClCS,cAACoqC,KAAI,CAACE,UAAU,KAAKD,MAAO,IAAI9qC,SAC9BS,cAAA,MAAIX,UAAU,oCAAmCE,SAAC,yBAEpDS,cAAA,KAAGX,UAAU,wBAAuBE,UAChC2I,EAAQ6+B,qBAAuB7+B,EAAQ++B,wBACzCnnC,eAACX,EAAW,CAACE,UAAU,GAAEE,SAAA,CACtB2I,EAAQ6+B,qBAAmB,GAAAhnC,OAAOmI,EAAQ6+B,qBAC3C/mC,cAAA,SACCkI,EAAQ++B,uBAAqB,GAAAlnC,OAAOmI,EAAQ++B,6BAI/C/+B,EAAQ8+B,qBAAuB9+B,EAAQg/B,wBACzCpnC,eAACX,EAAW,CAAAI,SAAA,CACT2I,EAAQ8+B,qBACThnC,cAAA,KAAAT,SAAI2I,EAAQ8+B,sBAEX9+B,EAAQg/B,uBACTlnC,cAAA,KAAAT,SAAI2I,EAAQg/B,iCASlB2E,GAAiC,OAAjBA,GAA0C,KAAjBA,GACzC7rC,cAAA,UACEX,UAAU,qBACVe,MAAM,qBACNd,MAAO,CAAEuU,OAAQ,gBACjB9P,IAAK8nC,EACLc,iBAAe,OAMrB7sC,eAACX,EAAW,CAACE,UAAU,0BAAyBE,SAAA,CAC9CS,cAAA,OACE+D,IAAK6oC,GACLttC,MAAO,CACLoD,SAAU,WACV01B,IAAK,QACL/0B,KAAM,IACN88B,OAAQ,KACR3xB,MAAO,OACPq+B,SAAU,UAEZ/oC,IAAI,KAIN9D,cAACb,EAAW,CAACE,UAAU,8CAA8CC,MAAO,CAAEoD,SAAU,WAAYy9B,OAAQ,IAAKC,UAAW,mDAAoD7gC,SAC9KO,eAACX,EAAW,CAACE,UAAU,mDAAkDE,SAAA,CAEvEO,eAACX,EAAW,CAACE,UAAU,gCAA+BE,SAAA,CACpDS,cAACoqC,KAAI,CAACE,UAAU,KAAKD,MAAO,IAAI9qC,SAC9BS,cAAA,KAAGX,UAAU,+BAA8BE,SAAC,sBAE9CS,cAAA,KAAGX,UAAU,gCAA+BE,SAC1CS,cAACoqC,KAAI,CAACC,MAAO,IAAKqB,SAAO,EAACC,QAAS,GAAKpsC,SAAC,4BAO7CO,eAACyT,KAAS,CAACC,OAAK,EAACnU,UAAU,MAAKE,SAAA,CAC9BO,eAAC6T,KAAG,CAAApU,SAAA,CACFS,cAAC4T,KAAG,CAAC9R,GAAG,IAAIzC,UAAU,MAAKE,SACzBS,cAACshB,GAAU,CACTlM,YAAU,EACVZ,MAAM,aACNO,YAAY,OACZH,aAAcyW,EAAOG,OAAOnlB,UAC5BsO,WAAU,GAAA5U,OAAKsrB,EAAOE,QAAQllB,WAAaglB,EAAOG,OAAOnlB,UAAY,aAAe,OAChFglB,EAAOiD,cAAc,aACzBjvB,UAAU,wBAIdW,cAAC4T,KAAG,CAAC9R,GAAG,IAAIzC,UAAU,MAAKE,SACzBS,cAACshB,GAAU,CACTlM,YAAU,EACVZ,MAAM,YACNO,YAAY,QACZH,aAAcyW,EAAOG,OAAOllB,SAC5BqO,WAAU,GAAA5U,OAAKsrB,EAAOE,QAAQjlB,UAAY+kB,EAAOG,OAAOllB,SAAW,aAAe,OAC9E+kB,EAAOiD,cAAc,YACzBjvB,UAAU,2BAKhBS,eAAC6T,KAAG,CAAApU,SAAA,CACFS,cAAC4T,KAAG,CAAC9R,GAAG,IAAIzC,UAAU,MAAKE,SACzBS,cAACshB,GAAU,CACTlM,YAAU,EACVZ,MAAM,gBACNO,YAAY,yBACZH,aAAcyW,EAAOG,OAAO1d,MAC5B6G,WAAU,GAAA5U,OAAKsrB,EAAOE,QAAQzd,OAASud,EAAOG,OAAO1d,MAAQ,aAAe,OACxEud,EAAOiD,cAAc,SACzBjvB,UAAU,wBAIdW,cAAC4T,KAAG,CAAC9R,GAAG,IAAIzC,UAAU,MAAKE,SACzBS,cAACshB,GAAU,CACT9M,MAAM,eACNO,YAAY,iBACZH,aAAcyW,EAAOG,OAAO9e,YAC5BiI,WAAU,GAAA5U,OAAKsrB,EAAOE,QAAQ7e,aAAe2e,EAAOG,OAAO9e,YAAc,aAAe,IACxF6U,KAAK,oBACD8J,EAAOiD,cAAc,eACzBjvB,UAAU,2BAKhBW,cAAC2T,KAAG,CAACtU,UAAU,MAAKE,SAClBS,cAAC4T,KAAG,CAAC9R,GAAG,KAAKzC,UAAU,MAAKE,SAC1BS,cAACuzB,GAAa,CACZne,YAAU,EACVZ,MAAM,UACNO,YAAY,+BACZH,aAAcyW,EAAOG,OAAOhQ,QAC5B7G,WAAU,GAAA5U,OAAKsrB,EAAOE,QAAQ/P,SAAW6P,EAAOG,OAAOhQ,QAAU,aAAe,OAC5E6P,EAAOiD,cAAc,WACzBjvB,UAAU,0BAMhBW,cAAC2T,KAAG,CAACtU,UAAU,YAAWE,SACxBS,cAACb,EAAW,CAACE,UAAU,oDAAmDE,SACvD,MAAhBwsC,EACC/rC,cAACb,EAAW,CAACE,UAAU,UAASE,SAC9BS,cAAC8sC,KAAS,CACRxgC,IAAKs/B,EACLmB,QAjS8E31B,2CAkS9EE,SAAU00B,MAIdhsC,cAACmB,EAAM,CACLK,UAAW6pB,EAAOmD,aAClB/sB,WAAY4pB,EAAOmD,aACnBptB,KAAK,eACL/B,UAAU,yBACVa,KAAK,KACLL,QAASwrB,EAAOqD,uCEzXlC3Q,GAAiB,UAEjBivB,GAAM,yCAAG,uBAAAxyB,EAAA,+EAAYU,GAAcgD,IAAd,UAAqBH,GAArB,UAA6C7B,GAAUE,uBAAnE,2CAAH,qDAEN6wB,GAAO,yCAAG,WAAOhkC,GAAP,UAAAuR,EAAA,+EAAcU,GAAcgD,IAAd,UAAqBH,GAArB,sBAAiD9U,GAAMiT,GAAUE,uBAA/E,2CAAH,sDAEPsB,GAAM,yCAAG,WAAOzF,GAAP,UAAAuC,EAAA,+EAAiBU,GAAcC,KAAd,UAAsB4C,GAAtB,UAA8C9F,EAAOiE,GAAUE,uBAAhF,2CAAH,sDAEN8wB,GAAM,yCAAG,WAAOj1B,GAAP,UAAAuC,EAAA,+EAAiBU,GAAcwD,IAAd,UAAqBX,GAArB,UAA6C9F,EAAOiE,GAAUE,uBAA/E,2CAAH,sDAENnQ,GAAM,yCAAG,WAAOhD,GAAP,UAAAuR,EAAA,+EAAcU,GAAcsD,OAAd,UAAwBT,GAAxB,qBAAmD9U,GAAMiT,GAAUE,uBAAjF,2CAAH,sDCkBZ,MAAM+wB,GAAmB,CAAC,UAAW,SAAU,YAAa,qBAEtDC,GAAqB,CACzBnkC,GAAI,EACJgV,UAAU,EACVrY,KAAM,GACNynC,YAAa,GACbC,aAAc,GACdC,aAAc,GACdC,SAAU,GACVC,SAAU,GACV5G,KAAM,GACN7/B,MAAO,GACP8/B,QAAS,GACT4G,gBAAiB,WAiRJ/lC,oBAFYX,IAAK,CAAQY,KAAMZ,EAAMY,QAIlD,IACKA,KACAsoB,IAJQvoB,EA9QevI,IAC5B,MAAM,QAAE0B,EAAO,UAAEkX,GAAc5Y,EAC/B,IAAI,SAAEuuC,GAAalV,cACnB,MAAOj3B,EAAWqvB,GAAgBxoB,oBAAS,IACpCulC,EAAQC,GAAaxlC,mBAAS+kC,IACrCO,EAAWG,SAASH,EAAU,IAE9B7kC,qBAAU,KACJ6kC,GACFI,MAED,IAEH,MAAMA,EAAcA,KAClBld,GAAa,GACbmd,GAAsBL,GAAU/xB,MAAMC,IACpCgyB,EAAUhyB,MACTmS,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAIXxF,EAASmC,aAAU,CACvBC,cAAemgB,EACflgB,iBAAkB1C,OAAaC,MAAM,CACnChiB,GAAI+hB,OACJ/M,SAAU+M,OACVplB,KAAMolB,OAAaE,SAAS,oBAAoBsE,IAAI,KACpD6d,YAAariB,OAAa8E,WAAWN,IAAI,KACzC8d,aAActiB,OAAa8E,WAAWN,IAAI,KAC1C+d,aAAcviB,OAAa8E,WAAWhiB,QAAQ0hB,IAAI,KAClDge,SAAUxiB,OAAa8E,WAAWN,IAAI,KACtCie,SAAUziB,OAAa8E,WAAWN,IAAI,KACtCqX,KAAM7b,OAAa8E,WAAWN,IAAI,KAClCxoB,MAAOgkB,OAAa8E,WAAWN,IAAI,KACnCsX,QAAS9b,OAAa8E,WAAWN,IAAI,KACrCke,gBAAiB1iB,OAAa8E,WAAWN,IAAI,OAG/C+B,oBAAoB,EACpBxG,SAAUA,CAAC6C,EAAM/lB,KAAyB,IAAvB,cAAEgmB,GAAehmB,EAClCgmB,GAAc,GACV8f,EACFM,EAAargB,GAEbsgB,EAAatgB,MAKbqgB,EAAgBh2B,IACpB4Y,GAAa,GACbmd,GAAqB/1B,GAAO2D,MAAMC,IAChC7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,eACrCgnB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,IAAM2C,GAAa,MAG1Bqd,EAAgBj2B,IACpB4Y,GAAa,GAEbmd,GAAqB/1B,GAAO2D,MAAMC,IAChC7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtClG,EAAQI,KAAK,4BAADnB,OAA6B8b,EAAI5S,QAC5C+kB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,IAAM2C,GAAa,MAGhC,OACE/wB,eAAA8B,WAAA,CAAArC,SAAA,CACGiC,GAAaxB,cAAC0K,EAAO,CAACG,WAAS,IAChC7K,cAACb,EAAW,CAACE,UAAU,4BAA2BE,SAChDS,cAAC2uB,GAAO,CAACE,aAAW,EAAAtvB,SAClBS,cAACivB,GAAY,CAAA1vB,SACXO,eAACgrB,GAAS,CAACC,SAAUM,EAAOyH,WAAWvzB,SAAA,CAGrCO,eAAC6uB,GAAO,CACNC,gBAAc,EACdvvB,UAAU,6CAA4CE,SAAA,CAEtDS,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAAOutC,EAAW,iBAAmB,aACrC3mB,WAAW,KACXvkB,mBAAmB,QACnBwkB,kBAAmB0mB,EAAW,kBAAoB,GAClDjmB,gBAAe,sCAAA3nB,OAAwC4tC,OAI3D3tC,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAAM,oBACN4mB,WAAW,KACX3nB,UAAU,uCACVoD,mBAAmB,WAIvBzC,cAACivB,GAAY,CAACC,KAAM,EAAG7vB,UAAU,QAAOE,SACtCS,cAACshB,GAAU,CACTlM,YAAU,EACVZ,MAAM,OACNO,YAAY,mBACZH,aAAcyW,EAAOG,OAAO5lB,KAC5B+O,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,YAC1CA,EAAOiD,cAAc,YAI7BtuB,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAAM,kBACN4mB,WAAW,KACX3nB,UAAU,uCACVoD,mBAAmB,WAIvBzC,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,eACNO,YAAY,gBACZH,aAAcyW,EAAOG,OAAO6hB,YAC5B14B,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,mBAC1CA,EAAOiD,cAAc,mBAI7BtuB,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,gBACNO,YAAY,wBACZH,aAAcyW,EAAOG,OAAO+hB,aAC5B54B,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,oBAC1CA,EAAOiD,cAAc,oBAI7BtuB,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACTC,KAAK,iBACL/M,MAAM,gBACNO,YAAY,qBACZH,aAAcyW,EAAOG,OAAO8hB,aAC5B34B,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,oBAC1CA,EAAOiD,cAAc,oBAK7BtuB,cAACivB,GAAY,CAAC5vB,UAAU,QAAOE,SAC7BS,cAAC+mB,GAAa,CACZ3mB,MAAM,WACN4mB,WAAW,KACX3nB,UAAU,uCACVoD,mBAAmB,WAIvBzC,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT4J,UAAQ,EACR1W,MAAM,iBACNO,YAAY,mBACZH,aAAcyW,EAAOG,OAAOgiB,SAC5B74B,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,gBAC1CA,EAAOiD,cAAc,gBAI7BtuB,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT4J,UAAQ,EACR1W,MAAM,gBACNO,YAAY,cACZH,aAAcyW,EAAOG,OAAOiiB,SAC5B94B,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,gBAC1CA,EAAOiD,cAAc,gBAI7BtuB,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT4J,UAAQ,EACR1W,MAAM,OACNO,YAAY,mBACZH,aAAcyW,EAAOG,OAAOqb,KAC5BlyB,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,YAC1CA,EAAOiD,cAAc,YAI7BtuB,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT4J,UAAQ,EACR1W,MAAM,QACNO,YAAY,iBACZH,aAAcyW,EAAOG,OAAOxkB,MAC5B2N,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,aAC1CA,EAAOiD,cAAc,aAI7BtuB,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT4J,UAAQ,EACR1W,MAAM,WACNO,YAAY,aACZH,aAAcyW,EAAOG,OAAOsb,QAC5BnyB,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,eAC1CA,EAAOiD,cAAc,eAK7BtuB,cAACivB,GAAY,CAAC5vB,UAAU,QAAOE,SAC7BS,cAAC+mB,GAAa,CACZ3mB,MAAM,mBACN4mB,WAAW,KACX3nB,UAAU,uCACVoD,mBAAmB,WAIvBzC,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACuU,GAAW,CACVC,MAAM,mBACNO,YAAY,mBACZgN,QAASorB,GAAiB1nC,KAAKgnB,GAAM4B,GAAwB5B,EAAGA,KAChErX,YAAU,EACVR,aAAcyW,EAAOG,OAAOkiB,gBAC5B/4B,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,oBAC9CnZ,MACEmZ,EAAOuC,OAAO8f,gBACVrf,GAAwBhD,EAAOuC,OAAO8f,gBAAiBriB,EAAOuC,OAAO8f,iBACrE,KAENp2B,SAAWutB,IACTxZ,EAAOiP,cAAc,kBAAmBuK,EAAMA,EAAIrwB,MAAQ,YAOlExU,cAACq3B,GAAe,CACdC,kBAAmBqW,EAAW,EAAI,eAAiB,gBACnDpW,mBAAmB,cACnBE,qBAAsBpM,EAAOqD,aAC7BgJ,oBAAoB,SACpBE,kBAAkB,4BAClBG,mBAAoB4V,EAAW,EAAI,oBAAsB,GACzD1V,iBAAiB,6CCnHlBtwB,oBAFYX,IAAK,CAAQY,KAAMZ,EAAMY,QAIlD,IACKumC,KACAje,MACAjX,IALQtR,EAxKYvI,IACzB,MAAM,QACJ0B,EAAO,UACPkX,EAAS,KACTpQ,EAAI,iBACJ+Q,EAAgB,iBAChBC,GACExZ,GACGgvC,EAASC,GAAchmC,mBAAS,KAChC7G,EAAWqvB,GAAgBxoB,oBAAS,GAE3CS,qBAAU,KACRwlC,MACC,IAEH,MAAMA,EAAgBA,KACpBzd,GAAa,GACbmd,KAAuBpyB,MAAMC,IAC3BwyB,EAAWxyB,MACVmS,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAIXoB,EAAgB,CACpBriB,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,GAGNC,EAAU,CACd,CACEzsB,KAAM,KACN4O,MAAO,UACPuN,QAAS,CACPnS,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,EACVE,qBAAuBC,GACrBzyB,eAACX,EAAW,CAACE,UAAU,kDAAiDE,SAAA,CACtES,cAACmB,EAAM,CACLC,KAAK,OACL/B,UAAU,mBACVa,KAAK,MACLL,QAASA,KACPiB,EAAQI,KAAK,4BAADnB,OAA6BquC,EAAQ7b,GAAWtpB,QAK9DrB,EAAKlB,SAEH1G,cAACmB,EAAM,CACLC,KAAK,SACL/B,UAAU,kBACVa,KAAK,MACLL,QAASA,KACP8Y,EAAiB,CACfvY,MAAO,gBACPgB,KAAM,+CACNqX,aAAc,UACdJ,UAAWA,KACTk2B,EAAaH,EAAQ7b,GAAWtpB,eAWpD,CACErD,KAAM,OACN4O,MAAO,OACPuN,QAASkQ,GAEX,CACErsB,KAAM,cACN4O,MAAO,eACPuN,QAASkQ,GAEX,CACErsB,KAAM,WACN4O,MAAO,YACPuN,QAASkQ,GAEX,CACErsB,KAAM,WACN4O,MAAO,YACPuN,QAASkQ,GAEX,CACErsB,KAAM,OACN4O,MAAO,OACPuN,QAASkQ,GAEX,CACErsB,KAAM,QACN4O,MAAO,QACPuN,QAASkQ,GAEX,CACErsB,KAAM,UACN4O,MAAO,MACPuN,QAASkQ,IAKPsc,EAAgBZ,IACpB9c,GAAa,GAEbmd,GAAqBL,GAAU/xB,MAAMC,IACnC7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtCsnC,OACCtgB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,GACbjY,QAIJ,OACE9Y,eAAA8B,WAAA,CAAArC,SAAA,CACGiC,GAAaxB,cAACwyB,EAAO,CAAC3nB,WAAS,IAChC7K,cAACb,EAAW,CAACE,UAAU,4BAA2BE,SAChDS,cAAC2uB,GAAO,CAACE,aAAW,EAAAtvB,SAClBS,cAACivB,GAAY,CAAA1vB,SACXO,eAACX,EAAW,CAACE,UAAU,6CAA4CE,SAAA,CACjES,cAAC+mB,GAAa,CACZ3mB,MAAM,UACN4mB,WAAW,KACXC,kBAAmBrf,EAAKlB,QAAU,aAAe,GACjDmhB,qBAAsBA,KACpB/mB,EAAQI,KAAK,iCAIjBlB,cAACb,EAAW,CAAAI,SACVS,cAACyyB,KAAY,CACXpX,KAAM+yB,EACN/b,QAASA,EACTtQ,QAAS,CACP2Q,eAAgB,OAChBN,UAAU,EACVD,OAAO,EACPQ,YAAY,EACZC,WAAY,CAAEC,WAAY,CAAEF,WAAY,iCC9K5D,MAAM5U,GAAiB,OC8KRpW,oBAFYX,IAAK,CAAQY,KAAMZ,EAAMY,QAIlD,IACKumC,KACAje,MACAjX,IALQtR,EA1JSvI,IACtB,MAAM,QACJ0B,EAAO,UACPkX,EAAS,KACTpQ,EAAI,iBACJ+Q,EAAgB,iBAChBC,GACExZ,GACGovC,EAAMC,GAAWpmC,mBAAS,KAC1B7G,EAAWqvB,GAAgBxoB,oBAAS,GAI3CS,qBAAU,KACR4lC,MACC,IAEH,MAAMA,EAAaA,KACjB7d,GAAa,GDpCFsE,UAAYja,GAAcgD,IAAI,GAADne,OAAIge,GAAc,UAAU7B,GAAUE,sBCqC9EuyB,GAAoB/yB,MAAMC,IACxB4yB,EAAQ5yB,MACPmS,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAIXoB,EAAgB,CACpBriB,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,GAGNC,EAAU,CACd,CACEzsB,KAAM,KACN4O,MAAO,UACPuN,QAAS,CACPnS,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,EACVE,qBAAuBC,GACrBzyB,eAACX,EAAW,CAACE,UAAU,kDAAiDE,SAAA,CACtES,cAACmB,EAAM,CACLC,KAAK,OACL/B,UAAU,mBACVa,KAAK,MACLL,QAASA,KACPiB,EAAQI,KAAK,yBAADnB,OAA0ByuC,EAAKjc,GAAWtpB,QAKxDrB,EAAKlB,SAEH1G,cAACmB,EAAM,CACLC,KAAK,SACL/B,UAAU,aACVa,KAAK,MACLL,QAASA,KACP8Y,EAAiB,CACfvY,MAAO,2BACPgB,KAAM,iEACNqX,aAAc,UACdJ,UAAWA,KACTu2B,EAAUJ,EAAKjc,GAAWtpB,eAW9C,CACErD,KAAM,KACN4O,MAAO,YACPuN,QAASkQ,GAEX,CACErsB,KAAM,SACN4O,MAAO,SACPuN,QAASkQ,GAEX,CACErsB,KAAM,OACN4O,MAAO,UACPuN,QAASkQ,GAEX,CACErsB,KAAM,cACN4O,MAAO,eACPuN,QAASkQ,IAIP2c,EAAaC,IACjBhe,GAAa,GD9GFsE,UAAcja,GAAcsD,OAAO,GAADze,OAAIge,GAAc,cAAAhe,OAAakJ,GAAMiT,GAAUE,sBCgH5FuyB,CAAkBE,GAAOjzB,MAAMC,IAC7B7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtC0nC,OACC1gB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,GACbjY,QAIJ,OACE9Y,eAAA8B,WAAA,CAAArC,SAAA,CACGiC,GAAaxB,cAACwyB,EAAO,CAAC3nB,WAAS,IAChC7K,cAACb,EAAW,CAACE,UAAU,4BAA2BE,SAChDS,cAAC2uB,GAAO,CAACE,aAAW,EAAAtvB,SAClBS,cAACivB,GAAY,CAAA1vB,SACXO,eAACX,EAAW,CAACE,UAAU,6CAA4CE,SAAA,CACjES,cAAC+mB,GAAa,CACZ3mB,MAAM,2BACN4mB,WAAW,KACXC,kBAAmBrf,EAAKlB,QAAU,eAAiB,GACnDmhB,qBAAsBA,KACpB/mB,EAAQI,KAAK,8BAIjBlB,cAACb,EAAW,CAAAI,SACVS,cAACyyB,KAAY,CACXpX,KAAMmzB,EACNnc,QAASA,EACTtQ,QAAS,CACP2Q,eAAgB,OAChBN,UAAU,EACVD,OAAO,EACPQ,YAAY,EACZC,WAAY,CAAEC,WAAY,CAAEF,WAAY,iC,mHChK5D,MAAM5U,GAAiB,aAEjBivB,GAAS7X,SAAoBja,GAAcgD,IAAI,GAADne,OAAIge,GAAc,oBAAAhe,OAAmB4tC,GAAYzxB,GAAUE,sBCQ/G,IAyCe0yB,GAzCe,SAAC1vC,GAC7B,IAAQ2vC,EAAwC3vC,EAAxC2vC,gBAAiBC,EAAuB5vC,EAAvB4vC,mBACzB,EAAoB3mC,oBAAS,GAAtB7G,EAAP,qBACQytC,EAAaC,eAAbD,SAER,OACE,qCACGztC,GAAa,cAAC,EAAD,IACd,eAAC,GAAD,CAASotB,gBAAc,EAAvB,UACE,cAAC,GAAD,CACExuB,MAAM,uBACNF,KAAK,KACLqmB,SAAS,+DACTC,aAAa,KACbnnB,UAAU,sBACVonB,kBAAkB,UAGpB,cAAC,GAAD,UACE,cAAC,GAAD,CACEqa,MAAOiO,EACPzb,UAAU,sCACVwJ,cAAekS,EACfG,kBAAmBjzB,GAAUsB,qBAIjC,cAAC,GAAD,CAAcne,UAAU,sCAAxB,SACE,cAAC,EAAD,CACEiB,KAAK,SACLc,KAAK,WACL/B,UAAW0vC,EAAgBhmC,OAAS,EAAI,WAAa,kBACrDlJ,QAASovC,EACTxtC,WAAuC,IAA3BstC,EAAgBhmC,kB,WCwKzBqmC,OApMqBhwC,IAClC,MAAM,eACJiwC,EAAc,gBACdN,EAAe,KACfzuC,EAAI,aACJuwB,EAAY,iBACZ8E,EAAgB,MAChBkZ,EAAK,UACL72B,EAAS,SACTs3B,EAAQ,UACR9tC,GACEpC,GACGmwC,EAAeC,GAAoBnnC,mBAAS,KAC7C,aAAEonC,GAAiBP,eAEzBpmC,qBAAU,KACR4mC,MACC,IAEH,MAAMA,EAAgBA,KACpB7e,GAAa,GACb8e,aAAaZ,EAAgB,GAAGjT,MAAMlgB,MAAMC,IAC7B,QAATvb,EACFsvC,EAAkB/zB,GAElBg0B,EAAoBh0B,GAEtBgV,GAAa,OAIXgf,EAAuBC,IAC3B,MAAMC,EAAsBD,EAAU,GAAGE,QAAQ,iCAC3CC,EAAmBH,EAAU,GAAGE,QAAQ,gBACxCE,EAAqBJ,EAAU,GAAGE,QAAQ,kBAC1CG,EAAmBL,EAAU,GAAGE,QAAQ,gBACxCI,EAA0BN,EAAU,GAAGE,QAAQ,wBAC/CK,EAAyBP,EAAU,GAAGE,QAAQ,uBAC9CM,EAAcR,EAAU,GAAGE,QAAQ,cACnCO,EAAaT,EAAU,GAAGE,QAAQ,aAClCQ,EAAcV,EAAU,GAAGE,QAAQ,cACnCS,EAAeX,EAAU,GAAGE,QAAQ,eACpCU,EAAgBZ,EAAU,GAAGE,QAAQ,aACrCW,EAAyBb,EAAU,GAAGE,QAAQ,sBAC9CY,EAAkCd,EAAU,GAAGE,QAAQ,gCACvDa,EAAuBf,EAAU,GAAGE,QAAQ,qBAC5Cc,EAA0BhB,EAAU,GAAGE,QAAQ,kCACrD,IAAIe,EAAkB,GAEtB,MAAMpa,EAAU,GAChB,IAAK,IAAIjK,EAAI,EAAGA,EAAIojB,EAAU/mC,OAAQ2jB,GAAK,EAAG,CAC5C,GAAIskB,OAAOlB,EAAUpjB,GAAGwjB,IAAqBpgC,SAAS,SACpD,SAEF,MAAMmhC,EAAcD,OAAOlB,EAAUpjB,GAAGujB,IAElCiB,EAAW,CACfrC,QACAsC,eAAgBrB,EAAUpjB,GAAGqjB,GAC7BkB,YAAaA,EAAYloC,QAAU,EAAC,GAAAhJ,OAAMkxC,EAAYG,OAAO,EAAG,GAAE,KAAArxC,OAAIkxC,EAAYG,OAAO,EAAG,GAAE,KAAArxC,OAAIkxC,EAAYG,OAAO,EAAG,GAAE,KAAM,GAChIC,cAAevB,EAAUpjB,GAAGwjB,GAC5BoB,YAAaxB,EAAUpjB,GAAGyjB,GAC1BoB,mBAAoBzB,EAAUpjB,GAAG0jB,GACjCoB,kBAAmB1B,EAAUpjB,GAAG2jB,GAChCtnC,OAAQ+mC,EAAUpjB,GAAG4jB,GACrB9hC,MAAOshC,EAAUpjB,GAAG6jB,GACpB9hC,OAAQqhC,EAAUpjB,GAAG8jB,GACrBiB,QAAS3B,EAAUpjB,GAAG+jB,GACtBiB,SAAU5B,EAAUpjB,GAAGgkB,GACvBiB,kBAAmB7B,EAAUpjB,GAAGikB,GAChCiB,2BAA4B9B,EAAUpjB,GAAGkkB,GACzCiB,gBAAiB/B,EAAUpjB,GAAGmkB,IAGhC,GAAIC,GAA2B,EAAG,CAChCC,EAAkBjB,EAAUpjB,GAAGH,OAAOukB,EAAyBhB,EAAUpjB,GAAG3jB,QAE5E,IAAI+oC,EAAW,EACf,IAAK,IAAIC,EAAI,EAAGA,GAAKhB,EAAgBhoC,OAAQgpC,GAAK,EAC5ChB,EAAgBgB,KAClBb,EAAS,8BAADnxC,OAA+B+xC,IAAcf,EAAgBgB,GACrEb,EAAS,yBAADnxC,OAA0B+xC,IAAcf,EAAgBgB,EAAI,GACpED,GAAY,GAKlBnb,EAAQz1B,KAAKgwC,GAGf1B,EAAiBwC,UAASrb,EAAS,CAAC,iBAAkB,cAAe,kBAGjEiZ,EAAqBE,IACzB,MAAMC,EAAsBD,EAAU,GAAGE,QAAQ,mBAC3CC,EAAmBH,EAAU,GAAGE,QAAQ,gBACxCE,EAAqBJ,EAAU,GAAGE,QAAQ,kBAC1CiC,EAAqBnC,EAAU,GAAGE,QAAQ,kBAC1CkC,EAAoBpC,EAAU,GAAGE,QAAQ,iBACzCmC,EAAYrC,EAAU,GAAGE,QAAQ,QACjCoC,EAAyBtC,EAAU,GAAGE,QAAQ,sBAC9CqC,EAAkBvC,EAAU,GAAGE,QAAQ,eACvCsC,EAAuBxC,EAAU,GAAGE,QAAQ,oBAC5CuC,EAAiBzC,EAAU,GAAGE,QAAQ,cACtCwC,EAAa1C,EAAU,GAAGE,QAAQ,SAElCrZ,EAAU,GAChB,IAAK,IAAIjK,EAAI,EAAGA,EAAIojB,EAAU/mC,OAAQ2jB,GAAK,EAAG,CACd,IAAD7kB,EAA7B,GAAIqoC,GAAsB,EAExB,GAA0C,QAA1CroC,EAAKioC,EAAUpjB,GAAGwjB,GAAsB,UAAE,IAAAroC,OAAA,EAAtCA,EAAyCiI,SAAS,SACpD,SAGJ6mB,EAAQz1B,KAAK,CACX2tC,QACAsC,eAAgBpB,GAAuB,EAAID,EAAUpjB,GAAGqjB,GAAuB,GAC/EkB,YAAahB,GAAoB,EAAIwC,KAAO3C,EAAUpjB,GAAGujB,IAAmByC,OAAO,cAAgB,GACnGrB,cAAenB,GAAsB,EAAIJ,EAAUpjB,GAAGwjB,GAAsB,GAC5EyC,cAAeV,GAAsB,EAAInC,EAAUpjB,GAAGulB,GAAsB,GAC5EW,aAAcV,GAAqB,EAAIpC,EAAUpjB,GAAGwlB,GAAqB,GACzEW,KAAMV,GAAa,EAAIrC,EAAUpjB,GAAGylB,GAAa,GACjDW,kBAAmBV,GAA0B,EAAItC,EAAUpjB,GAAG0lB,GAA0B,GACxFW,WAAYV,GAAmB,EAAIvC,EAAUpjB,GAAG2lB,GAAmB,GACnEW,gBAAiBV,GAAwB,EAAIxC,EAAUpjB,GAAG4lB,GAAwB,GAClFW,UAAWV,GAAkB,EAAIzC,EAAUpjB,GAAG6lB,GAAkB,GAChEW,MAAOV,GAAc,EAAI1C,EAAUpjB,GAAG8lB,GAAc,KAIxDhD,EAAiBwC,UAASrb,EAAS,CAAC,iBAAkB,cAAe,kBAgBvE,OACE72B,eAAA8B,WAAA,CAAArC,SAAA,CACIiC,GAAcxB,cAAC0K,EAAO,IACxB5K,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBS,cAACsmB,GAAU,CACTlmB,MAAM,oDACNF,KAAK,KACLqmB,SAAS,wCACTC,aAAa,KACbnnB,UAAU,sBACVonB,kBAAkB,UAGpBzmB,cAACivB,GAAY,CAAA1vB,SAERiC,EACGxB,cAAA,KAAAT,SAAG,eAEHS,cAACmzC,KAAU,CACT93B,KAAMk0B,EACNld,QAASgd,EACThwC,UAAU,gCACV+zC,QAAS,GACTC,gBAAiB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAC9DC,gBAAiB,OAO3BxzC,eAACmvB,GAAY,CAAC5vB,UAAU,sCAAqCE,SAAA,CAC3DS,cAACmB,EAAM,CACLC,KAAK,gBACL/B,UAAU,aACVQ,QAAS4vC,IAEXzvC,cAACmB,EAAM,CACLb,KAAK,SACLc,KAAK,SACL/B,UAAWgwC,EAAetmC,OAAS,EAAI,WAAa,kBACpDlJ,QAtDa0zC,KACrB1iB,GAAa,GJrIGsE,UAAiBja,GAAcC,KAAK,GAADpb,OAAIge,GAAc,eAAe9F,EAAOiE,GAAUE,sBIuIrGo3B,CAA2BjE,GAAe3zB,MAAMC,IAC9C7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtCsoC,IAAWphB,SAAQ,IAAM2C,GAAa,KACtC8E,OACC3H,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,YACrC6pB,GAAa,OA8CPpvB,WAAsC,IAA1B4tC,EAAetmC,mBCnJvC,MAAM0qC,GAAiB,CAAC,QAAS,OAE3BC,GAAkB,CACtBzqC,GAAI,EACJgV,UAAU,EACV0vB,SAAU,EACVrtC,KAAM,GACNstC,OAAQ,IAoiDKjmC,oBAFYX,IAAK,CAAQY,KAAMZ,EAAMY,QAIlD,IACKA,KACAsoB,IAJQvoB,EAjiDYvI,IAAW,IAADu0C,EAAAC,EACnC,MAAM,QAAE9yC,EAAO,UAAEkX,GAAc5Y,EAC/B,IAAI,MAAEyvC,GAAUpW,cAChB,MAAOj3B,EAAWqvB,GAAgBxoB,oBAAS,IACpCwrC,EAAKC,GAAUzrC,mBAASqrC,KACxBtF,EAASC,GAAchmC,mBAAS,KAChC0rC,EAAUC,GAAe3rC,mBAAS,KAClC4rC,EAAaC,GAAkB7rC,oBAAS,IACxC0mC,EAAiBC,GAAsB3mC,mBAAS,KAChD8rC,EAAoBC,GAAyB/rC,mBAAS,KACtDgsC,EAAYC,GAAiBjsC,mBAAS,KACtCksC,EAAaC,GAAkBnsC,mBAAS,IAE/CwmC,EAAQf,SAASe,EAAO,IAExB/lC,qBAAU,KACR2rC,MACC,CAAC5F,IAEJ,MAAM4F,EAAqBtf,UACzBtE,GAAa,GAEb,IACMge,QACInzB,QAAQ6Z,IAAI,CAChB+Z,IACAoF,YAGIh5B,QAAQ6Z,IAAI,CAChBof,MAGJ,MAAOp/B,GACPyC,EAAU,CAAE5W,KAAMmU,EAAMiG,QAASxU,MAAO,UACzC,QACC6pB,GAAa,KAIX6jB,EAAkBvf,UACtB,GAAIwY,EACF,IACE,MAAM9xB,QAAY+4B,GAAwBjH,GAG1C,OAFA2G,EAAcz4B,GAEPA,EACP,MAAOtG,GACPyC,EAAU,CAAE5W,KAAMmU,EAAMiG,QAASxU,MAAO,UAI5C,MAAO,IAGHsoC,EAAWna,UACf,IACE,MAAMtZ,OLvHIsZ,UAAcja,GAAcgD,IAAI,GAADne,OAAIge,GAAc,eAAAhe,OAAckJ,GAAMiT,GAAUE,sBKuHvEuyB,CAAmBE,GAC/BgG,QAAgBH,EAAgB74B,EAAI8xB,gBACpCmH,EAAcj5B,EAAKg5B,GACzBf,EAAOj4B,GACP,MAAOtG,GACPyC,EAAU,CAAE5W,KAAMmU,EAAMiG,QAASxU,MAAO,YAKtC+tC,EAA8BA,CAACC,EAAO10C,KAC1C,IAAI4yC,EAAQ,EACR+B,EAAuB,EACvBpD,EAAkB,EAoBtB,OAlBAmD,EAAMjpB,SAASlc,IACb,GAAa,QAATvP,EAAgB,CAClB,MAAM0yC,EAAkBkC,WAAWrlC,EAAKmjC,iBAAmB,EAAG,IACxDC,EAAYiC,WAAWrlC,EAAKojC,WAAa,EAAG,IAClDC,GAAUF,EAAkBC,EAC5BgC,GAAwBjC,EACxBnB,GAAmBoB,OAEnBC,GAASgC,WAAWrlC,EAAK+hC,4BAA8B,EAAG,IAC1DqD,GAAwB,CAACE,EAAetlC,EAAKulC,yBAA0BD,EAAetlC,EAAKwlC,yBAA0BF,EAAetlC,EAAKylC,yBACzIH,EAAetlC,EAAK0lC,yBAA0BJ,EAAetlC,EAAK2lC,yBAA0BL,EAAetlC,EAAK4lC,yBAChHN,EAAetlC,EAAK6lC,yBAA0BP,EAAetlC,EAAK8lC,yBAA0BR,EAAetlC,EAAK+lC,yBAA0BT,EAAetlC,EAAKgmC,0BAC9JV,EAAetlC,EAAKimC,0BAA2BX,EAAetlC,EAAKkmC,0BAA2BZ,EAAetlC,EAAKmmC,0BAA2Bb,EAAetlC,EAAKomC,0BAA2Bd,EAAetlC,EAAKqmC,0BAChNf,EAAetlC,EAAKsmC,0BAA2BhB,EAAetlC,EAAKumC,0BAA2BjB,EAAetlC,EAAKwmC,0BAA2BlB,EAAetlC,EAAKymC,0BAA2BnB,EAAetlC,EAAK0mC,2BAA2B3mC,QAAQ6c,GAAMA,EAAI,IAAG+pB,QAAO,CAACh8B,EAAGgc,IAAMhc,EAAIgc,GAAG,GACxRqb,GAAmBqD,WAAWrlC,EAAKgiC,iBAAmB,EAAG,OAItD,CAAEqB,QAAO+B,uBAAsBpD,oBAIlC4E,EAA8B,SAACvD,EAAO+B,EAAsByB,GAAiB,IAAb/mB,EAAGzW,UAAAnQ,OAAA,QAAAoQ,IAAAD,UAAA,GAAAA,UAAA,GAAG,EACtEy9B,EAAkBzD,GAASwD,EAAK,KAChCE,EAAgB3B,EAAuB0B,EAO3C,OALIC,EAAgB,IAClBD,EAAkBzD,EAAQvjB,EAC1BinB,EAAgB3B,EAAuB0B,GAGlC,CAAEA,kBAAiBC,kBAItBC,EAAsBA,CAACjxC,EAAMstC,EAAO+B,EAAsBpD,EAAiBiF,EAAcH,EAAiBC,KAAa,CAC3HhxC,OACAstC,QACA+B,qBAAsBA,EAAqB8B,QAAQ,GACnDlF,gBAAiBA,EAAgBkF,QAAQ,GACzCD,eACAH,gBAAiBA,EAAgBI,QAAQ,GACzCH,cAAeA,EAAcG,QAAQ,KAwBjCC,EAAgBA,CAACC,EAAsBpC,EAASv0C,KACpD,MAAMi0C,EAAc,GAEpB3iC,OAAOC,KAAKolC,GAAsBlrB,SAASulB,IACzC,MAAM1rC,EAAO0rC,GAAe,IAItB4F,EAAmBrC,EAAQhoC,MAAM4f,GAAMA,EAAE7mB,OAAS0rC,IAExD,GAAI4F,EAAkB,CACpB,MAAMC,EAAe,GAEjBD,EAAiBE,gBAAgBruC,OAAS,GAC5CmuC,EAAiBE,gBAAgBrrB,SAASsrB,IACxC,MAAMC,EAnCcC,EAACF,EAAgBJ,EAAsB3F,EAAa6F,EAAc72C,KAC9F,MACMk3C,EAAQH,EAAetlC,MAAMylC,MADJ,iBAE/B,GAAIA,EAAO,CACT,MAAOxF,EAAGriB,EAAKH,GAAOgoB,EAChBC,EAAiBR,EAAqB3F,GAAa1hC,QACtD6c,GAAMqhB,SAASrhB,EAAEmmB,aAAc,KAAOjjB,GAAOme,SAASrhB,EAAEmmB,aAAc,KAAOpjB,KAE1E,MAAE0jB,EAAK,qBAAE+B,EAAoB,gBAAEpD,GAAoBkD,EAA4B0C,EAAgBn3C,GAErGm3C,EAAe1rB,SAASlc,GAASsnC,EAAaj2C,KAAK2O,EAAK5G,MAExD,MAAM,gBAAE0tC,EAAe,cAAEC,GAAkBH,EAA4BvD,EAAO+B,EAAsBoC,EAAeX,GAAIW,EAAe1nB,KAEtI,OAAOknB,EAAoB,GAAD92C,OAAIuxC,EAAW,MAAAvxC,OAAK4vB,EAAG,KAAA5vB,OAAIyvB,EAAG,KAAK0jB,EAAO+B,EAAsBpD,EAAiBwF,EAAeX,GAAIC,EAAiBC,GAEjJ,OAAO,MAmBsBW,CAAsBF,EAAgBJ,EAAsB3F,EAAa6F,EAAc72C,GACxGg3C,GAAc/C,EAAYrzC,KAAKo2C,MAKvC,MAAMI,EAAiBT,EAAqB3F,GAAa1hC,QAAQ6c,IAAO0qB,EAAarnC,SAAS2c,EAAExjB,MAChG,GAAIyuC,EAAe3uC,OAAS,EAAG,CAC7B,MAAM,MAAEmqC,EAAK,qBAAE+B,EAAoB,gBAAEpD,GAAoBkD,EAA4B2C,EAAgBp3C,IAC/F,gBAAEq2C,EAAe,cAAEC,GAAkBH,EAA4BvD,EAAO+B,EAAsBiC,EAAiBR,GAAIQ,EAAiBvnB,KAE1I4kB,EAAYrzC,KAAK21C,EAAoBjxC,EAAMstC,EAAO+B,EAAsBpD,EAAiBqF,EAAiBR,GAAIC,EAAiBC,SAE5H,CAEL,MAAM,MAAE1D,EAAK,qBAAE+B,EAAoB,gBAAEpD,GAAoBkD,EAA4BkC,EAAqB3F,GAAchxC,GACxHi0C,EAAYrzC,KAAK21C,EAAoBjxC,EAAMstC,EAAO+B,EAAsBpD,EA1BrD,EACG,EACF,QA4BxB2C,EAAeD,IAGXO,EAAgB3f,MAAOld,EAAO48B,KAClC,IACE,MAAMh5B,OLtOQsZ,UAAcja,GAAcgD,IAAI,GAADne,OAAIge,GAAc,mBAAAhe,OAAkBkJ,GAAMiT,GAAUE,sBKsO/EuyB,CAAuBE,GACnCoI,EAAuBjF,WAAUn2B,EAAoB,QAAf5D,EAAM3X,KAAiB,oBAAsB,eACtE,QAAf2X,EAAM3X,MACR02C,EAAcC,EAAsBpC,EAAS,OAC7CT,EAAsBpC,OAAMiF,GAAsB,CAACllC,EAAOu/B,KAAW,CACnE1rC,KAAM0rC,GAAe,IACrBqG,MAAO5lC,EAAMhJ,OACb6uC,YAAa,EACb5E,gBAAiBjhC,EAAMtM,KAAKgnB,GAAMyoB,WAAWzoB,EAAEumB,iBAAmB,EAAG,MAAKwD,QAAO,CAACh8B,EAAGgc,IAAMhc,EAAIgc,GAAG,GAAGugB,QAAQ,GAC7G7D,MAAOnhC,EAAMtM,KAAKgnB,GAAMyoB,WAAWzoB,EAAEymB,OAAS,EAAG,MAAKsD,QAAO,CAACh8B,EAAGgc,IAAMhc,EAAIgc,GAAG,GAAGugB,QAAQ,GACzFlF,gBAAiB9/B,EAAMtM,KAAKgnB,GAAMyoB,WAAWzoB,EAAEwmB,WAAa,EAAG,MAAKuD,QAAO,CAACh8B,EAAGgc,IAAMhc,EAAIgc,GAAG,GAAGugB,QAAQ,GACvGvF,kBAAmBz/B,EAAMtM,KAAKgnB,GAAMyoB,WAAWzoB,EAAEmmB,cAAgB,EAAG,MAAK4D,QAAO,CAACh8B,EAAGgc,IAAMhc,EAAIgc,GAAG,GAAGugB,QAAQ,GAC5Gc,oBAAqB9lC,EAAMtM,KAAKgnB,GAAMyoB,WAAWzoB,EAAEumB,iBAAmB,EAAG,MAAKwD,QAAO,CAACh8B,EAAGgc,IAAMhc,EAAIgc,GAAG,GAAGugB,QAAQ,GACjHtF,QAASqG,EAA4B/lC,QAEvCiiC,EAAYhC,UAASn2B,EAAK,CAAC,iBAAkB,cAAe,mBAO5Dm7B,EAAcC,EAAsBpC,EAAS,SAC7CT,EAAsBpC,OAAMiF,GAAsB,CAACllC,EAAOu/B,KAAW,CACnE1rC,KAAM0rC,GAAe,IACrBqG,MAAO5lC,EAAMhJ,OACbiqC,gBAAiBjhC,EAAMtM,KAAKgnB,GAAMyoB,WAAWzoB,EAAEumB,iBAAmB,EAAG,MAAKwD,QAAO,CAACh8B,EAAGgc,IAAMhc,EAAIgc,GAAG,GAAGugB,QAAQ,GAC7G7D,MAAOnhC,EAAMtM,KAAKgnB,GAAMyoB,WAAWzoB,EAAEymB,OAAS,EAAG,MAAKsD,QAAO,CAACh8B,EAAGgc,IAAMhc,EAAIgc,GAAG,GAAGugB,QAAQ,GACzFa,YAAa7lC,EAAMtM,KAAKgnB,GAAMyoB,WAAWzoB,EAAEmlB,4BAA8B,EAAG,MAAK4E,QAAO,CAACh8B,EAAGgc,IAAMhc,EAAIgc,GAAG,GAAGugB,QAAQ,GACpHlF,gBAAiB9/B,EAAMtM,KAAKgnB,GAAMyoB,WAAWzoB,EAAEolB,iBAAmB,EAAG,MAAK2E,QAAO,CAACh8B,EAAGgc,IAAMhc,EAAIgc,GAAG,GAAGugB,QAAQ,GAC7GvF,kBAAmBz/B,EAAMtM,KAAKgnB,GAAMyoB,WAAWzoB,EAAE+kB,mBAAqB,EAAG,MAAKgF,QAAO,CAACh8B,EAAGgc,IAAMhc,EAAIgc,GAAG,GAAGugB,QAAQ,GACjHc,oBAAqB7F,WAAUjgC,EAAMtM,KAAKgnB,GACxC,CAAC0oB,EAAe1oB,EAAE2oB,yBAA0BD,EAAe1oB,EAAE4oB,yBAA0BF,EAAe1oB,EAAE6oB,yBAA0BH,EAAe1oB,EAAE8oB,yBAA0BJ,EAAe1oB,EAAE+oB,yBAC9LL,EAAe1oB,EAAEgpB,yBAA0BN,EAAe1oB,EAAEipB,yBAA0BP,EAAe1oB,EAAEkpB,yBAA0BR,EAAe1oB,EAAEmpB,yBAA0BT,EAAe1oB,EAAEopB,0BAC7LV,EAAe1oB,EAAEqpB,0BAA2BX,EAAe1oB,EAAEspB,0BAA2BZ,EAAe1oB,EAAEupB,0BAA2Bb,EAAe1oB,EAAEwpB,0BAA2Bd,EAAe1oB,EAAEypB,0BACjMf,EAAe1oB,EAAE0pB,0BAA2BhB,EAAe1oB,EAAE2pB,0BAA2BjB,EAAe1oB,EAAE4pB,0BAA2BlB,EAAe1oB,EAAE6pB,0BAA2BnB,EAAe1oB,EAAE8pB,8BAC5L3mC,QAAQ6c,GAAMA,EAAI,IAAG+pB,QAAO,CAACh8B,EAAGgc,IAAMhc,EAAIgc,GAAG,QAEtDwd,EAAYhC,UAASn2B,EAAK,CAAC,iBAAkB,cAAe,kBAE9D,MAAOtG,GACPyC,EAAU,CAAE5W,KAAMmU,EAAMiG,QAASxU,MAAO,YAItC8wC,EAA+B/lC,IACnC,MAAMgmC,EAAqBhmC,EAAMtM,KAAKgnB,GAAMyoB,WAAWzoB,EAAEumB,iBAAmB,EAAG,MAAKwD,QAAO,CAACh8B,EAAGgc,IAAMhc,EAAIgc,GAAG,GAGtGib,EAAWsG,EAFIhmC,EAAMtM,KAAKgnB,GAAMyoB,WAAWzoB,EAAEwmB,WAAa,EAAG,MAAKuD,QAAO,CAACh8B,EAAGgc,IAAMhc,EAAIgc,GAAG,GAGhG,GAAgB,IAAZib,EAAe,OAAO,EAI1B,OAFuC,KADtBsG,EAAqBtG,IACMsF,QAAQ,IAKhD5B,EAAkB6C,GAAW9C,WAAW8C,GAAU,EAAG,IAErDrD,EAAexf,UACnB,IACE,MAAMtZ,QAAYmyB,KAClBK,EAAWxyB,EAAIpW,KAAK0R,GAAYkX,GAAwBlX,EAAOvR,KAAMuR,EAAOlO,OAC5E,MAAOsM,GACPyC,EAAU,CAAE5W,KAAMmU,EAAMiG,QAASxU,MAAO,YAItCqkB,EAASmC,aAAU,CACvBC,cAAeomB,EACfnmB,iBAAkB1C,OAAaC,MAAM,CACnChiB,GAAI+hB,OACJ/M,SAAU+M,OACV2iB,SAAU3iB,OAAaE,SAAS,oBAAoB4E,WACpD8d,OAAQ5iB,OAAa8E,WACrBxvB,KAAM0qB,OAAaE,WAAW4E,aAEhCyB,oBAAoB,EACpBxG,SAAUA,CAAC6C,EAAM/lB,KAAyB,IAAvB,cAAEgmB,GAAehmB,EAClCgmB,GAAc,GACVghB,EACFoJ,EAAUrqB,GAEVsqB,EAAUtqB,MAKVqqB,EAAahgC,IACjB4Y,GAAa,GLnUFsE,UAAiBja,GAAcwD,IAAI,GAAD3e,OAAIge,GAAc,UAAU9F,EAAOiE,GAAUE,sBKoU1FuyB,CAAkB12B,GAAO2D,MAAMC,IAC7B7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,eACrCgnB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,IAAM2C,GAAa,MAG1BqnB,EAAajgC,IACjB4Y,GAAa,GL9UFsE,UAAiBja,GAAcC,KAAK,GAADpb,OAAIge,GAAc,UAAU9F,EAAOiE,GAAUE,sBKgV3FuyB,CAAkB12B,GAAO2D,MAAMC,IAC7B7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtClG,EAAQI,KAAK,yBAADnB,OAA0B8b,EAAI5S,QACzC+kB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,IAAM2C,GAAa,MAG1Bwe,EAAiB,CACrB,CACE76B,MAAO,iBACP5O,KAAM,gBACNmc,QAAS,CAAEpM,SAAS,IAEtB,CACEnB,MAAO,aACP5O,KAAM,iBACNwO,SAAU,KAEZ,CACEI,MAAO,eACP5O,KAAM,cACNwO,SAAU,KAEZ,CACEI,MAAO,eACP5O,KAAM,cACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,qCACP5O,KAAM,6BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,oBACP5O,KAAM,kBACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iBACP5O,KAAM,gBACNmc,QAAS,CAAEpM,QAAsB,QAAbk+B,EAAIvzC,MACxB8T,SAAU,IAEZ,CACEI,MAAO,gBACP5O,KAAM,eACNmc,QAAS,CAAEpM,QAAsB,QAAbk+B,EAAIvzC,MACxB8T,SAAU,IAEZ,CACEI,MAAO,OACP5O,KAAM,OACNmc,QAAS,CAAEpM,QAAsB,QAAbk+B,EAAIvzC,MACxB8T,SAAU,IAEZ,CACEI,MAAO,qBACP5O,KAAM,oBACNmc,QAAS,CAAEpM,QAAsB,QAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,cACP5O,KAAM,aACNmc,QAAS,CAAEpM,QAAsB,QAAbk+B,EAAIvzC,MACxB8T,SAAU,IAEZ,CACEI,MAAO,mBACP5O,KAAM,kBACNmc,QAAS,CAAEpM,QAAsB,QAAbk+B,EAAIvzC,MACxB8T,SAAU,IAEZ,CACEI,MAAO,aACP5O,KAAM,YACNmc,QAAS,CAAEpM,QAAsB,QAAbk+B,EAAIvzC,MACxB8T,SAAU,IAEZ,CACEI,MAAO,QACP5O,KAAM,QACNmc,QAAS,CAAEpM,QAAsB,QAAbk+B,EAAIvzC,MACxB8T,SAAU,IAEZ,CACEI,MAAO,uBACP5O,KAAM,qBACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,IAEZ,CACEI,MAAO,sBACP5O,KAAM,oBACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,IAEZ,CACEI,MAAO,SACP5O,KAAM,SACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,IAEZ,CACEI,MAAO,QACP5O,KAAM,QACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,IAEZ,CACEI,MAAO,SACP5O,KAAM,SACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,IAEZ,CACEI,MAAO,UACP5O,KAAM,UACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,IAEZ,CACEI,MAAO,YACP5O,KAAM,WACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,IAEZ,CACEI,MAAO,qBACP5O,KAAM,oBACNwO,SAAU,GACV2N,QAAS,CACPpM,QAAsB,UAAbk+B,EAAIvzC,KACbgyB,qBAAsBA,CAACC,EAAW4lB,EAAUC,KAAa,IAADC,EACtD,MAAM1G,EAA2B,OAAPyG,QAAO,IAAPA,GAAiB,QAAVC,EAAPD,EAASE,gBAAQ,IAAAD,OAAV,EAAPA,EAAmB1G,kBAC7C,OAAIA,GAAqB7D,SAAS6D,EAAkBz/B,MAAO,IAAM,EACxDlS,cAACu4C,IAAQ,CAACr4C,KAAM,GAAIyC,MAAM,iBAE5B,QAIb,CACE6R,MAAO,iCACP5O,KAAM,+BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,0BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iCACP5O,KAAM,+BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,0BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iCACP5O,KAAM,+BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,0BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iCACP5O,KAAM,+BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,0BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iCACP5O,KAAM,+BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,0BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iCACP5O,KAAM,+BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,0BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iCACP5O,KAAM,+BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,0BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iCACP5O,KAAM,+BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,0BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iCACP5O,KAAM,+BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,0BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iCACP5O,KAAM,+BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,0BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iCACP5O,KAAM,gCACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,2BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iCACP5O,KAAM,gCACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,2BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iCACP5O,KAAM,gCACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,2BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iCACP5O,KAAM,gCACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,2BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iCACP5O,KAAM,gCACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,2BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iCACP5O,KAAM,gCACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,2BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iCACP5O,KAAM,gCACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,2BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iCACP5O,KAAM,gCACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,2BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iCACP5O,KAAM,gCACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,2BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iCACP5O,KAAM,gCACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,2BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,iCACP5O,KAAM,gCACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,KAEZ,CACEI,MAAO,4BACP5O,KAAM,2BACNmc,QAAS,CAAEpM,QAAsB,UAAbk+B,EAAIvzC,MACxB8T,SAAU,MAIRokC,EAA2B,CAC/B,CACEC,OAAQ,iBACRC,SAAU,gBACV5zB,MAAM,GAER,CACE2zB,OAAQ,aACRC,SAAU,iBACVtkC,SAAU,KAEZ,CACEqkC,OAAQ,eACRC,SAAU,cACVtkC,SAAU,KAEZ,CACEqkC,OAAQ,eACRC,SAAU,cACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,qCACRC,SAAU,6BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,oBACRC,SAAU,kBACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iBACRC,SAAU,gBACV5zB,KAAmB,QAAb+uB,EAAIvzC,KACV8T,SAAU,IAEZ,CACEqkC,OAAQ,gBACRC,SAAU,eACV5zB,KAAmB,QAAb+uB,EAAIvzC,KACV8T,SAAU,IAEZ,CACEqkC,OAAQ,OACRC,SAAU,OACV5zB,KAAmB,QAAb+uB,EAAIvzC,KACV8T,SAAU,IAEZ,CACEqkC,OAAQ,qBACRC,SAAU,oBACV5zB,KAAmB,QAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,cACRC,SAAU,aACV5zB,KAAmB,QAAb+uB,EAAIvzC,KACV8T,SAAU,IAEZ,CACEqkC,OAAQ,mBACRC,SAAU,kBACV5zB,KAAmB,QAAb+uB,EAAIvzC,KACV8T,SAAU,IAEZ,CACEqkC,OAAQ,aACRC,SAAU,YACV5zB,KAAmB,QAAb+uB,EAAIvzC,KACV8T,SAAU,IAEZ,CACEqkC,OAAQ,QACRC,SAAU,QACV5zB,KAAmB,QAAb+uB,EAAIvzC,KACV8T,SAAU,IAEZ,CACEqkC,OAAQ,uBACRC,SAAU,qBACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,IAEZ,CACEqkC,OAAQ,sBACRC,SAAU,oBACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,IAEZ,CACEqkC,OAAQ,SACRC,SAAU,SACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,IAEZ,CACEqkC,OAAQ,QACRC,SAAU,QACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,IAEZ,CACEqkC,OAAQ,SACRC,SAAU,SACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,IAEZ,CACEqkC,OAAQ,UACRC,SAAU,UACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,IAEZ,CACEqkC,OAAQ,YACRC,SAAU,WACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,IAEZ,CACEqkC,OAAQ,qBACRC,SAAU,oBACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,GACVukC,KAAOC,IACL,MAAM,SAAEN,GAAaM,EAErB,OACE54C,cAAA,KAAAT,SAAIuuC,SAASwK,EAAS3G,kBAAmB,IAAM,EAAI3xC,cAACu4C,IAAQ,CAACr4C,KAAM,GAAIyC,MAAM,iBAAoB,OAIvG,CACE81C,OAAQ,iCACRC,SAAU,+BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,0BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iCACRC,SAAU,+BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,0BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iCACRC,SAAU,+BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,0BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iCACRC,SAAU,+BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,0BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iCACRC,SAAU,+BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,0BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iCACRC,SAAU,+BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,0BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iCACRC,SAAU,+BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,0BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iCACRC,SAAU,+BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,0BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iCACRC,SAAU,+BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,0BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iCACRC,SAAU,+BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,0BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iCACRC,SAAU,gCACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,2BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iCACRC,SAAU,gCACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,2BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iCACRC,SAAU,gCACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,2BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iCACRC,SAAU,gCACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,2BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iCACRC,SAAU,gCACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,2BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iCACRC,SAAU,gCACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,2BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iCACRC,SAAU,gCACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,2BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iCACRC,SAAU,gCACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,2BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iCACRC,SAAU,gCACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,2BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iCACRC,SAAU,gCACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,2BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,iCACRC,SAAU,gCACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,KAEZ,CACEqkC,OAAQ,4BACRC,SAAU,2BACV5zB,KAAmB,UAAb+uB,EAAIvzC,KACV8T,SAAU,MAIRuhB,EAAmBA,KACvBue,GAAe,GACflF,EAAmB,KA0Cf6J,EAAQC,IACZ,MAAMC,EAAM,IAAIC,YAAYF,EAAE/vC,QACxBkwC,EAAO,IAAIC,WAAWH,GAC5B,IAAK,IAAIrsB,EAAI,EAAGA,EAAIosB,EAAE/vC,OAAQ2jB,GAAK,EAEjCusB,EAAKvsB,GAAuB,IAAlBosB,EAAEK,WAAWzsB,GAEzB,OAAOqsB,GAGT,OACEj5C,eAAA8B,WAAA,CAAArC,SAAA,CACGiC,GAAaxB,cAAC0K,EAAO,CAACG,WAAS,IAChC7K,cAACb,EAAW,CAACE,UAAU,4BAA2BE,SAChDS,cAAC2uB,GAAO,CAACE,aAAW,EAAAtvB,SAClBS,cAACivB,GAAY,CAAA1vB,SACXO,eAACgrB,GAAS,CAACC,SAAUM,EAAOyH,WAAWvzB,SAAA,CAGrCO,eAAC6uB,GAAO,CACNC,gBAAc,EACdvvB,UAAU,6CAA4CE,SAAA,CAEtDS,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAAOyuC,EAAQ,UAAY,eAC3B7nB,WAAW,KACXvkB,mBAAmB,YAIvBzC,cAACivB,GAAY,CAACC,KAAM,EAAG7vB,UAAU,YAAWE,SAC1CS,cAACuU,GAAW,CACVC,MAAM,SACNO,YAAY,mBACZgN,QAASqsB,EACTh5B,YAAU,EACVR,aAAcyW,EAAOG,OAAOmiB,SAC5Bh5B,WAAU,GAAA5U,OAAKsuB,GAAuBhD,EAAQ,aAC9CnZ,MACEmZ,EAAOuC,OAAO+f,SACVtf,GAAwBhD,EAAOuC,OAAOggB,OAAQviB,EAAOuC,OAAO+f,UAC5D,KAENr2B,SAAWutB,IACTxZ,EAAOiP,cAAc,SAAUuK,EAAMA,EAAIrwB,MAAQ,IACjD6W,EAAOiP,cAAc,WAAYuK,EAAMA,EAAI3yB,MAAQ,SAKzDlS,cAACivB,GAAY,CAACC,KAAM,EAAG7vB,UAAU,YAAWE,SAC1CS,cAACuU,GAAW,CACVC,MAAM,UACNO,YAAY,mBACZgN,QAAS0xB,GAAehuC,KAAKgnB,GAAM4B,GAAwB5B,EAAGA,KAC9DrX,YAAU,EACVR,aAAcyW,EAAOG,OAAOlrB,KAC5BqU,WAAYk6B,EAAQ,WAAU,GAAA9uC,OAAMsuB,GAAuBhD,EAAQ,SACnEnZ,MACEmZ,EAAOuC,OAAOttB,KACV+tB,GAAwBhD,EAAOuC,OAAOttB,KAAM+qB,EAAOuC,OAAOttB,MAC1D,KAENgX,SAAWutB,IACTxZ,EAAOiP,cAAc,OAAQuK,EAAMA,EAAIrwB,MAAQ,YAOvDxU,cAACivB,GAAY,CAAC5vB,UAAU,QAAOE,SAC7BO,eAACs5C,KAAS,CAAA75C,SAAA,CACRS,cAACq5C,KAAgB,CACfC,WAAYt5C,cAACu5C,KAAc,IAC3B,gBAAc,kBACdtwC,GAAG,iBAAgB1J,SAEnBS,cAACb,EAAW,CAACE,UAAU,QAAOE,SAC5BS,cAAC+mB,GAAa,CACZ3mB,MAAM,UACN4mB,WAAW,OACXvkB,mBAAmB,cACnBpD,UAAU,sBACV4nB,kBAAkB,mBAClB1mB,SAAUP,cAACw5C,IAAa,CAACt5C,KAAM,GAAIb,UAAU,mBAC7CwoB,qBAAsBA,IA9Hd4xB,MAC5B,MAAMC,EAAmBnF,EAAY9uC,KAAKoK,IAAI,CAC5C,MAASA,EAAKjK,KACd,eAAgBiK,EAAKqjC,MACrB,0BAA2BrjC,EAAKolC,qBAChC,oBAAqBplC,EAAKgiC,gBAC1B,OAAQhiC,EAAKinC,aACb,qBAAsBjnC,EAAK8pC,SAC3B,kBAAmB9pC,EAAK+mC,kBAEpBgD,EAAWC,KAAWC,WAGtBC,EAAS,GACf,IAAK,IAAIrtB,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAC3BqtB,EAAO74C,KAAK,CAAE84C,IAHQ,KAMxB,MAAMC,EAAYJ,KAAWK,cAAcR,GAC3CO,EAAU,SAAWF,EAErBF,KAAWM,kBAAkBP,EAAUK,EAAW,WAGlD,MAAMG,EAAiBP,KAAWD,EAAU,CAAES,SAAU,OAAQ/5C,KAAM,WAGhEg6C,EAAO,IAAIC,KAAK,CAAC1B,EAAKuB,IAAkB,CAAE95C,KAAM,6BAGhDkC,EAAOyN,SAASywB,cAAc,KACpCl+B,EAAKgB,KAAOg3C,IAAIC,gBAAgBH,GAChC93C,EAAK4vB,SAAQ,WAAAryB,OAAc8zC,EAAI5qC,GAAE,SAEjCgH,SAASyqC,KAAKC,YAAYn4C,GAC1BA,EAAKo+B,QACL3wB,SAASyqC,KAAKE,YAAYp4C,IA0FsBi3C,SAKlCz5C,cAAC66C,KAAgB,CAAAt7C,SACfS,cAACb,EAAW,CAACE,UAAU,QAAOE,SAC5BS,cAAC2uB,GAAO,CAAApvB,SACNS,cAACivB,GAAY,CAAA1vB,SACXO,eAACg7C,KAAK,CACJC,SAAO,EACPC,UAAQ,EACRC,OAAK,EAAA17C,SAAA,CAELS,cAAA,SAAAT,SACEO,eAAA,MAAAP,SAAA,CACES,cAAA,MAAAT,SAAI,UACJS,cAAA,MAAAT,SAAI,iBACJS,cAAA,MAAAT,SAAI,4BACJS,cAAA,MAAAT,SAAI,sBACJS,cAAA,MAAAT,SAAI,SACJS,cAAA,MAAAT,SAAI,uBACJS,cAAA,MAAAT,SAAI,yBAGRS,cAAA,SAAAT,SAEIg1C,EAAYriB,MAAK,CAAC1X,EAAGgc,IAAMhc,EAAE5U,KAAKs1C,cAAc1kB,EAAE5wB,QAAOH,KAAK4V,IAAI,IAAA8/B,EAAAC,EAAAC,EAAA,OAChEv7C,eAAA,MAAAP,SAAA,CACES,cAAA,MAAAT,SAAmB,SAAd8b,EAAKzV,KAAkByV,EAAKzV,KAAO,QACxC5F,cAAA,MAAAT,SAAA,IAAAQ,OAAoC,QAApCo7C,EAASjG,WAAW75B,EAAK63B,OAAS,UAAE,IAAAiI,OAAA,EAA3BA,EAA6BpE,QAAQ,MAC9C/2C,cAAA,MAAAT,SAAA,IAAAQ,OAAmD,QAAnDq7C,EAASlG,WAAW75B,EAAK45B,sBAAwB,UAAE,IAAAmG,OAAA,EAA1CA,EAA4CrE,QAAQ,MAC7D/2C,cAAA,MAAAT,SAAA,IAAAQ,OAA8C,QAA9Cs7C,EAASnG,WAAW75B,EAAKw2B,iBAAmB,UAAE,IAAAwJ,OAAA,EAArCA,EAAuCtE,QAAQ,MACxD/2C,cAAA,MAAAT,SAAA,GAAAQ,QACOsb,EAAKy7B,cAAgB,GAAGC,QAAQ,GAAE,OAEzC/2C,cAAA,MAAAT,SAAK8b,EAAKs7B,kBACV32C,cAAA,MAAAT,SAAK8b,EAAKu7B,yCAcvB,OAAR7C,QAAQ,IAARA,OAAQ,EAARA,EAAUhrC,QAAS,GAClB/I,cAACivB,GAAY,CAAC5vB,UAAU,QAAOE,SAC7BO,eAACs5C,KAAS,CAACkC,iBAAe,EAAA/7C,SAAA,CACxBS,cAACq5C,KAAgB,CACfC,WAAYt5C,cAACu5C,KAAc,IAC3B,gBAAc,kBACdtwC,GAAG,iBAAgB1J,SAEnBS,cAACb,EAAW,CAACE,UAAU,QAAOE,SAC5BS,cAAC+mB,GAAa,CACZ3mB,MAAM,mBACN4mB,WAAW,OACXvkB,mBAAmB,cACnBpD,UAAU,sBACVkB,SAAUP,cAACu7C,IAAkB,CAACr7C,KAAM,GAAIb,UAAU,mBAClD4nB,kBAAmB8sB,EAAShrC,OAAS,EAAI,cAAgB,GACzD8e,qBAAsBA,KACpB/mB,EAAQI,KAAK,cAAe,CAAEizC,qBAAoBN,MAAKvzC,KAAM+qB,EAAOuC,OAAOttB,cAMnFN,cAAC66C,KAAgB,CAAAt7C,SACfS,cAACb,EAAW,CAACE,UAAU,QAAOE,SAC5BS,cAAC2uB,GAAO,CAAApvB,SACNS,cAACivB,GAAY,CAAA1vB,SAEI,QAAbs0C,EAAIvzC,KAEFN,cAACivB,GAAY,CAAA1vB,SACXO,eAACg7C,KAAK,CACJC,SAAO,EACPC,UAAQ,EACRC,OAAK,EAAA17C,SAAA,CAELS,cAAA,SAAAT,SACEO,eAAA,MAAAP,SAAA,CACES,cAAA,MAAAT,SAAI,iBACJS,cAAA,MAAAT,SAAI,cACJS,cAAA,MAAAT,SAAI,iBACJS,cAAA,MAAAT,SAAI,iCACJS,cAAA,MAAAT,SAAI,sBACJS,cAAA,MAAAT,SAAI,oBACJS,cAAA,MAAAT,SAAI,eACJS,cAAA,MAAAT,SAAI,mCAGRO,eAAA,SAAAP,SAAA,CAEI40C,EAAmB1uC,KAAK4V,GACtBvb,eAAA,MAAAP,SAAA,CACES,cAAA,MAAAT,SAAmB,SAAd8b,EAAKzV,KAAkByV,EAAKzV,KAAO,QACxC5F,cAAA,MAAAT,SAAK8b,EAAKs8B,QACV33C,cAAA,MAAAT,SAAA,GAAAQ,OAAQsb,EAAKm2B,qBACbxxC,cAAA,MAAAT,SAAA,IAAAQ,OAASsb,EAAKu8B,eACd53C,cAAA,MAAAT,SAAA,IAAAQ,OAASsb,EAAKw2B,mBACd7xC,cAAA,MAAAT,SAAA,IAAAQ,OAAUurC,KAAKC,IAAIlwB,EAAKw8B,qBAAsBd,QAAQ,MACtD/2C,cAAA,MAAAT,SAAA,GAAAQ,QAASurC,KAAKC,IAAIlwB,EAAKw8B,qBAAuBvM,KAAKC,IAAIlwB,EAAKu8B,cAAcb,QAAQ,GAAE,OAAAh3C,QAAsF,KAA9EurC,KAAKC,IAAIlwB,EAAKw8B,qBAAuBvM,KAAKC,IAAIlwB,EAAKu8B,cAAcb,QAAQ,IAAUA,QAAQ,GAAE,QACzL/2C,cAAA,MAAAT,SAAA,IAAAQ,QAAUsb,EAAKw2B,iBAAmBx2B,EAAKu8B,YAActM,KAAKC,IAAIlwB,EAAKw8B,uBAAuBd,QAAQ,WAIxGj3C,eAAA,MAAAP,SAAA,CACES,cAAA,MAAAT,SAAI,UACJS,cAAA,MAAAT,SAAK,MACLS,cAAA,MAAAT,SACGs0C,EAAI2H,mBAEP17C,eAAA,MAAAP,SAAA,CAAI,IAEDs0C,EAAI4H,6BAEP37C,eAAA,MAAAP,SAAA,CAAI,IAEDs0C,EAAI6H,kBAEP17C,cAAA,MAAAT,SACEO,eAAA,KAAAP,SAAA,CAAG,IAEA+rC,KAAKC,IAAI4I,EAAmB1uC,KAAKgnB,GAAMA,EAAEorB,sBAAqBrB,QAAO,CAACh8B,EAAGgc,IAAM0e,WAAW16B,GAAK06B,WAAW1e,IAAI,GAAGugB,QAAQ,SAG9H/2C,cAAA,MAAAT,SAAI,MACJS,cAAA,MAAAT,SAAI,iBAMZO,eAAA8B,WAAA,CAAArC,SAAA,CAEES,cAACivB,GAAY,CAAA1vB,SACXO,eAACg7C,KAAK,CACJC,SAAO,EACPC,UAAQ,EACRC,OAAK,EAAA17C,SAAA,CAELS,cAAA,SAAAT,SACEO,eAAA,MAAAP,SAAA,CACES,cAAA,MAAAT,SAAI,0BACJS,cAAA,MAAAT,SAAI,cACJS,cAAA,MAAAT,SAAI,iBACJS,cAAA,MAAAT,SAAI,sBACJS,cAAA,MAAAT,SAAI,oBACJS,cAAA,MAAAT,SAAI,eACJS,cAAA,MAAAT,SAAI,sBAGRO,eAAA,SAAAP,SAAA,CAEI40C,EAAmBvkC,QAAQ6c,GAAOA,EAAE+kB,kBAAoB,IAAI/rC,KAAK4V,GAC/Dvb,eAAA,MAAAP,SAAA,CACES,cAAA,MAAAT,SAAmB,SAAd8b,EAAKzV,KAAkByV,EAAKzV,KAAO,QACxC5F,cAAA,MAAAT,SAAK8b,EAAKs8B,QACV33C,cAAA,MAAAT,SAAA,GAAAQ,OAAQsb,EAAKm2B,qBACbxxC,cAAA,MAAAT,SAAA,IAAAQ,OAASsb,EAAKw2B,mBACd7xC,cAAA,MAAAT,SAAA,IAAAQ,OAAUurC,KAAKC,IAAIlwB,EAAKw8B,qBAAsBd,QAAQ,MACtD/2C,cAAA,MAAAT,SAAA,GAAAQ,OACMm1C,WAAW75B,EAAKo2B,SAASsF,QAAQ,GAAE,OAEzC/2C,cAAA,MAAAT,SAAA,IAAAQ,QACQsb,EAAKw2B,iBAAmBx2B,EAAKu8B,YAActM,KAAKC,IAAIlwB,EAAKw8B,uBAAuBd,QAAQ,WAKtGj3C,eAAA,MAAAP,SAAA,CACES,cAAA,MAAAT,SAAI,UACJS,cAAA,MAAAT,SAAK,MACLS,cAAA,MAAAT,SACGs0C,EAAI2H,mBAEP17C,eAAA,MAAAP,SAAA,CAAI,IAGA40C,EAAmBvkC,QAAQ6c,GAAMA,EAAE+kB,kBAAoB,IAAG/rC,KAAKgnB,GAAMyoB,WAAWzoB,EAAEolB,iBAAiBkF,QAAQ,KAAIP,QAAO,CAACh8B,EAAGgc,IAAM0e,WAAW16B,GAAK06B,WAAW1e,IAAI,GAAGugB,QAAQ,MAG9Kj3C,eAAA,MAAAP,SAAA,CAAI,IAGA40C,EAAmBvkC,QAAQ6c,GAAMA,EAAE+kB,kBAAoB,IAAG/rC,KAAKgnB,GAAM6e,KAAKC,IAAI2J,WAAWzoB,EAAEorB,sBAAsBd,QAAQ,KAAIP,QAAO,CAACh8B,EAAGgc,IAAM0e,WAAW16B,GAAK06B,WAAW1e,IAAI,GAAGugB,QAAQ,MAG5L/2C,cAAA,MAAAT,SAAI,MACJS,cAAA,MAAAT,SAAI,iBAOZS,cAACivB,GAAY,CAAC5vB,UAAU,QAAOE,SAC7BO,eAACg7C,KAAK,CACJC,SAAO,EACPC,UAAQ,EACRC,OAAK,EAAA17C,SAAA,CAELS,cAAA,SAAAT,SACEO,eAAA,MAAAP,SAAA,CACES,cAAA,MAAAT,SAAI,uBACJS,cAAA,MAAAT,SAAI,cACJS,cAAA,MAAAT,SAAI,sBACJS,cAAA,MAAAT,SAAI,oBACJS,cAAA,MAAAT,SAAI,eACJS,cAAA,MAAAT,SAAI,sBAGRO,eAAA,SAAAP,SAAA,CAEI40C,EAAmBvkC,QAAQ6c,GAAOA,EAAE+kB,mBAAqB,IAAI/rC,KAAK4V,GAChEvb,eAAA,MAAAP,SAAA,CACES,cAAA,MAAAT,SAAmB,SAAd8b,EAAKzV,KAAkByV,EAAKzV,KAAO,QACxC5F,cAAA,MAAAT,SAAK8b,EAAKs8B,QACV33C,cAAA,MAAAT,SAAA,IAAAQ,OAASsb,EAAKw2B,mBACd7xC,cAAA,MAAAT,SAAA,IAAAQ,OAAUurC,KAAKC,IAAIlwB,EAAKw8B,qBAAsBd,QAAQ,MACtD/2C,cAAA,MAAAT,SAAA,GAAAQ,OACMm1C,WAAW75B,EAAKo2B,SAASsF,QAAQ,GAAE,OAEzC/2C,cAAA,MAAAT,SAAA,IAAAQ,QACQsb,EAAKw2B,iBAAmBx2B,EAAKu8B,YAActM,KAAKC,IAAIlwB,EAAKw8B,uBAAuBd,QAAQ,WAKtGj3C,eAAA,MAAAP,SAAA,CACES,cAAA,MAAAT,SAAI,UACJS,cAAA,MAAAT,SAAK,MACLO,eAAA,MAAAP,SAAA,CAAI,IAGuJ,QADzJo0C,EACEQ,EAAmBvkC,QAAQ6c,GAAMA,EAAE+kB,mBAAqB,IAAG/rC,KAAKgnB,GAAMyoB,WAAWzoB,EAAEolB,mBAAkB2E,QAAO,CAACh8B,EAAGgc,IAAM0e,WAAW16B,GAAK06B,WAAW1e,IAAI,UAAE,IAAAmd,OAAA,EAAvJA,EACIoD,QAAQ,MAGhBj3C,eAAA,MAAAP,SAAA,CAAI,IAGqK,QADvKq0C,EACEO,EAAmBvkC,QAAQ6c,GAAMA,EAAE+kB,mBAAqB,IAAG/rC,KAAKgnB,GAAM6e,KAAKC,IAAI2J,WAAWzoB,EAAEorB,wBAAuBrB,QAAO,CAACh8B,EAAGgc,IAAM0e,WAAW16B,GAAK06B,WAAW1e,IAAI,UAAE,IAAAod,OAAA,EAArKA,EAAuKmD,QAAQ,MAGnL/2C,cAAA,MAAAT,SAAI,MACJS,cAAA,MAAAT,SAAI,iCAiB/BsvC,EAAQ,GACP7uC,cAACivB,GAAY,CAAC5vB,UAAU,QAAOE,SAC7BO,eAACs5C,KAAS,CAACkC,iBAAe,EAAA/7C,SAAA,CACxBS,cAACq5C,KAAgB,CACfC,WAAYt5C,cAACu5C,KAAc,IAC3B,gBAAc,kBACdtwC,GAAG,iBAAgB1J,SAEnBS,cAACb,EAAW,CAACE,UAAU,QAAOE,SAC5BS,cAAC+mB,GAAa,CACZ3mB,MAAM,mBACN4mB,WAAW,OACXvkB,mBAAmB,cACnBpD,UAAU,sBACVkB,SAAUP,cAAC27C,IAAQ,CAACz7C,KAAM,GAAIb,UAAU,mBACxC4nB,kBAAmB8sB,EAAShrC,OAAS,EAAI,GAAK,eAC9C8e,qBAAsBA,IAAMqsB,GAAe,SAKjDl0C,cAAC66C,KAAgB,CAAAt7C,SACfS,cAACb,EAAW,CAACE,UAAU,QAAOE,SAC5BS,cAAC2uB,GAAO,CAAApvB,SACNS,cAACivB,GAAY,CAAA1vB,SACXS,cAACyyB,KAAY,CACXJ,QAASgd,EACTh0B,KAAM04B,EACNhyB,QAAS,CACP2Q,eAAgB,OAChBN,UAAU,EACVD,OAAO,EACPQ,YAAY,EACZE,YAAY,EACZ+oB,mBAAoB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KACjEC,YAAa,4BAevC77C,cAACq3B,GAAe,CACdC,kBAAmBuX,EAAQ,EAAI,eAAiB,kBAChDtX,mBAAmB,cACnBE,qBAAsBpM,EAAOqD,aAC7BgJ,oBAAoB,SACpBE,kBAAkB,6CAClBG,mBAAoB8W,EAAQ,EAAI,oBAAsB,GACtD5W,iBAAiB,+CAGnBj4B,cAAC0oB,GAAU,CACTozB,YAAU,EACV57C,KAAK,KACLupB,gBAAc,EACdU,UAAQ,EACR/R,UAAW67B,EACXrrB,cAAc,2BACdI,uBAAuB,GACvBG,yBAAyB,GACzBE,OAAQsM,EAAiBp2B,SAEzBS,cAAC2uB,GAAO,CAACC,gBAAc,EAAArvB,SACrBO,eAACi8C,KAAM,CAAAx8C,SAAA,CACLS,cAAC8uC,GAAqB,CACpBC,gBAAiBA,EACjBC,mBAAoBA,IAEtBhvC,cAACovC,GAA0B,CACzBL,gBAAiBA,EACjBM,eAAgBmJ,EAChBl4C,KAAMuzC,EAAIvzC,KACVq1B,iBAAkBA,EAClB9E,aAAcA,EACdge,MAAOgF,EAAI5qC,GACX+O,UAAWA,EACXxW,UAAWA,EACX8tC,SAAUA,iB,SCxkDxB,MAAM0M,GAAgB,CACpB,eACA,aACA,eACA,+BACA,oBACA,kBACA,aACA,6BAGIC,GAA6B,CACjC,wBACA,YACA,eACA,oBACA,kBACA,aACA,gBAGIC,GAA8B,CAClC,qBACA,YACA,oBACA,kBACA,aACA,gBAGIC,GAAeC,KAAW1+B,OAAO,CACrCyhB,OAAQ,CACNkd,cAAe,SACfC,eAAgB,SAChBC,WAAY,SACZ3mC,aAAc,IAEhB4J,KAAM,CACJhR,MAAO,IACPC,OAAQ,OACRmH,aAAc,EACd4mC,YAAa,KAEf/5B,YAAa,CACXg6B,SAAU,GACVD,YAAa,IACb5mC,aAAc,GACdF,WAAY,GACZgnC,WAAY,YAIVjE,GAASA,IACb34C,eAAC68C,KAAI,CAACr9C,MAAO68C,GAAahd,OAAO5/B,SAAA,CAC/BS,cAAC2D,KAAK,CAACI,IAAG,GAAAhE,OCzEC,8+XDyEYT,MAAO68C,GAAa38B,OAC3C1f,eAAC68C,KAAI,CAAAp9C,SAAA,CACHS,cAAC48C,KAAI,CAACt9C,MAAO68C,GAAa15B,YAAYljB,SAAC,qBACvCS,cAAC48C,KAAI,CAACt9C,MAAO68C,GAAaU,WAAWt9C,SAAC,0CAwS7Bu9C,OAnSQ19C,IAAW,IAADu0C,EAC/B,MAAM,QAAE7yC,GAAY1B,GAEd,mBAAE+0C,EAAkB,IAAEN,EAAG,KAAEvzC,GAASQ,EAAQ2L,SAASzF,MAErD+1C,EAASX,KAAW1+B,OAAO,CAC/B/P,KAAM,CACJ0uC,cAAe,MACf38C,gBAAiB,UACjBs9C,QAAS,IAEXC,QAAS,CACP3f,OAAQ,GACR0f,QAAS,GACTE,SAAU,GAGZL,WAAY,CACVJ,SAAU,GACVU,WAAY,EACZT,WAAY,KAEdU,MAAO,CACL1nC,UAAW,GACXC,QAAS,QACTnH,MAAgB,QAATlO,EAAiB,KAAO,IAC/B+8C,YAAa,QACbC,YAAa,OACbC,WAAY,EACZC,UAAW,EACXC,eAAgB,EAChBC,iBAAkB,EAClBC,kBAAmB,GAErBC,SAAU,CAAEvB,cAAe,OAC3BwB,UAAW,CACTrvC,MAAO,MACPC,OAAQ,GACR4uC,YAAa,QACbC,YAAa,EACbQ,gBAAiB,EACjBL,eAAgB,EAEhBM,UAAW,SACXrB,WAAY,QAEdsB,aAAc,CACZt+C,gBAAiB,UACjBiD,MAAO,UACPs7C,eAAgB,QAElBC,SAAU,CAAEzB,SAAU,MAGxB,OACEz8C,cAACm+C,KAAS,CACR7+C,MAAO,CACLmP,OAAQ,OACRD,MAAO,QACPjP,SAEFS,cAACo+C,KAAQ,CAAA7+C,SACPS,cAACq+C,KACC,CACA/+C,MAAOy9C,EAAOpvC,KACd2wC,YAAY,YAAW/+C,SAEvBO,eAAC68C,KAAI,CACH4B,MAAM,EACNj/C,MAAOy9C,EAAOE,QAAQ19C,SAAA,CAGtBS,cAACy4C,GAAM,IAGI,QAATn4C,EACER,eAAC68C,KAAI,CAACr9C,MAAOy9C,EAAOK,MAAM79C,SAAA,CACxBS,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOa,SAASr+C,SAC1By8C,GAAcv2C,KAAI,CAAC05B,EAAQ1a,IAC1BzkB,cAAC28C,KAAI,CACHr9C,MAAO,CAACy9C,EAAOc,UAAWd,EAAOiB,cAAcz+C,SAE/CS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAE4/B,UAKnCgV,EAAmB1uC,KAAK4V,GACtBvb,eAAC68C,KAAI,CAACr9C,MAAOy9C,EAAOa,SAASr+C,SAAA,CAC3BS,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAgB,SAAd8b,EAAKzV,KAAkByV,EAAKzV,KAAO,UAEpE5F,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAE8b,EAAKs8B,UAEtC33C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAE8b,EAAKm2B,sBAEtCxxC,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAA,IAAAQ,OAAMsb,EAAKu8B,iBAE1C53C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAA,IAAAQ,OAAMsb,EAAKw2B,qBAE1C7xC,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAA,IAAAQ,OAAOurC,KAAKC,IAAIlwB,EAAKw8B,qBAAsBd,QAAQ,QAElF/2C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAA,GAAAQ,QAAMurC,KAAKC,IAAIlwB,EAAKw8B,qBAAuBvM,KAAKC,IAAIlwB,EAAKu8B,cAAcb,QAAQ,GAAE,OAAAh3C,QAAsF,KAA9EurC,KAAKC,IAAIlwB,EAAKw8B,qBAAuBvM,KAAKC,IAAIlwB,EAAKu8B,cAAcb,QAAQ,IAAUA,QAAQ,GAAE,UAErN/2C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAA,IAAAQ,QAAOsb,EAAKw2B,iBAAmBx2B,EAAKu8B,YAActM,KAAKC,IAAIlwB,EAAKw8B,uBAAuBd,QAAQ,aAMpIj3C,eAAC68C,KAAI,CAACr9C,MAAOy9C,EAAOa,SAASr+C,SAAA,CAC3BS,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAC,YAEhCS,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,YACpB79C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAC1Bs0C,EAAI2H,qBAGTx7C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BO,eAAC88C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAA,CAAC,IAE3Bs0C,EAAI4H,+BAGTz7C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BO,eAAC88C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAA,CAAC,IAE3Bs0C,EAAI6H,oBAGT17C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BO,eAAC88C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAA,CAAC,KAE1Bs0C,EAAI4H,0BAA4B5H,EAAI6H,gBAAgB3E,QAAQ,QAGlE/2C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,YACpB79C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,kBAIxB/9C,eAAA8B,WAAA,CAAArC,SAAA,CACEO,eAAC68C,KAAI,CAACr9C,MAAOy9C,EAAOK,MAAM79C,SAAA,CACxBS,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOa,SAASr+C,SAC1B08C,GAA2Bx2C,KAAI,CAAC05B,EAAQ1a,IACvCzkB,cAAC28C,KAAI,CACHr9C,MAAO,CAACy9C,EAAOc,UAAWd,EAAOiB,cAAcz+C,SAE/CS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAE4/B,UAKnCgV,EAAmBvkC,QAAQ6c,GAAOA,EAAE+kB,kBAAoB,IAAI/rC,KAAK4V,GAC/Dvb,eAAC68C,KAAI,CAACr9C,MAAOy9C,EAAOa,SAASr+C,SAAA,CAC3BS,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAgB,SAAd8b,EAAKzV,KAAkByV,EAAKzV,KAAO,UAEpE5F,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAE8b,EAAKs8B,UAEtC33C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAE8b,EAAKm2B,sBAEtCxxC,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAA,IAAAQ,OAAMsb,EAAKw2B,qBAE1C7xC,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAA,IAAAQ,OAAOurC,KAAKC,IAAIlwB,EAAKw8B,qBAAsBd,QAAQ,QAElF/2C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAA,GAAAQ,OAAKm1C,WAAW75B,EAAKo2B,SAASsF,QAAQ,GAAE,SAEvE/2C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAA,IAAAQ,QAAOsb,EAAKw2B,iBAAmBx2B,EAAKu8B,YAActM,KAAKC,IAAIlwB,EAAKw8B,uBAAuBd,QAAQ,aAKpIj3C,eAAC68C,KAAI,CAACr9C,MAAOy9C,EAAOa,SAASr+C,SAAA,CAC3BS,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAC,YAEhCS,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,YACpB79C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAC1Bs0C,EAAI2H,qBAGTx7C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BO,eAAC88C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAA,CAAC,IAG1B40C,EAAmBvkC,QAAQ6c,GAAMA,EAAE+kB,kBAAoB,IAAG/rC,KAAKgnB,GAAMyoB,WAAWzoB,EAAEolB,iBAAiBkF,QAAQ,KAAIP,QAAO,CAACh8B,EAAGgc,IAAM0e,WAAW16B,GAAK06B,WAAW1e,IAAI,GAAGugB,QAAQ,QAIhL/2C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BO,eAAC88C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAA,CAAC,IAG1B40C,EAAmBvkC,QAAQ6c,GAAMA,EAAE+kB,kBAAoB,IAAG/rC,KAAKgnB,GAAM6e,KAAKC,IAAI2J,WAAWzoB,EAAEorB,sBAAsBd,QAAQ,KAAIP,QAAO,CAACh8B,EAAGgc,IAAM0e,WAAW16B,GAAK06B,WAAW1e,IAAI,GAAGugB,QAAQ,QAI9L/2C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,YACpB79C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,kBAIxB79C,cAAC28C,KAAI,CAACr9C,MAAO,CAAEoW,UAAW,IAAKnW,SAC7BO,eAAC68C,KAAI,CAACr9C,MAAOy9C,EAAOK,MAAM79C,SAAA,CACxBS,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOa,SAASr+C,SAC1B28C,GAA4Bz2C,KAAI,CAAC05B,EAAQ1a,IACxCzkB,cAAC28C,KAAI,CACHr9C,MAAO,CAACy9C,EAAOc,UAAWd,EAAOiB,cAAcz+C,SAE/CS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAE4/B,UAKnCgV,EAAmBvkC,QAAQ6c,GAAOA,EAAE+kB,mBAAqB,IAAI/rC,KAAK4V,GAChEvb,eAAC68C,KAAI,CAACr9C,MAAOy9C,EAAOa,SAASr+C,SAAA,CAC3BS,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAgB,SAAd8b,EAAKzV,KAAkByV,EAAKzV,KAAO,UAEpE5F,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAE8b,EAAKs8B,UAEtC33C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAA,IAAAQ,OAAMsb,EAAKw2B,qBAE1C7xC,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAA,IAAAQ,OAAOurC,KAAKC,IAAIlwB,EAAKw8B,qBAAsBd,QAAQ,QAElF/2C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAA,GAAAQ,OAAKm1C,WAAW75B,EAAKo2B,SAASsF,QAAQ,GAAE,SAEvE/2C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAA,IAAAQ,QAAOsb,EAAKw2B,iBAAmBx2B,EAAKu8B,YAActM,KAAKC,IAAIlwB,EAAKw8B,uBAAuBd,QAAQ,aAKpIj3C,eAAC68C,KAAI,CAACr9C,MAAOy9C,EAAOa,SAASr+C,SAAA,CAC3BS,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BS,cAAC48C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAC,YAEhCS,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,YACpB79C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BO,eAAC88C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAA,CAAC,IAG1B40C,EAAmBvkC,QAAQ6c,GAAMA,EAAE+kB,mBAAqB,IAAG/rC,KAAKgnB,GAAMyoB,WAAWzoB,EAAEolB,mBAAkB2E,QAAO,CAACh8B,EAAGgc,IAAM0e,WAAW16B,GAAK06B,WAAW1e,IAAI,QAI3Jx2B,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,UAAUt+C,SAC5BO,eAAC88C,KAAI,CAACt9C,MAAOy9C,EAAOmB,SAAS3+C,SAAA,CAAC,IAG2I,QADvKo0C,EACEQ,EAAmBvkC,QAAQ6c,GAAMA,EAAE+kB,mBAAqB,IAAG/rC,KAAKgnB,GAAM6e,KAAKC,IAAI2J,WAAWzoB,EAAEorB,wBAAuBrB,QAAO,CAACh8B,EAAGgc,IAAM0e,WAAW16B,GAAK06B,WAAW1e,IAAI,UAAE,IAAAmd,OAAA,EAArKA,EAAuKoD,QAAQ,QAIrL/2C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,YACpB79C,cAAC28C,KAAI,CAACr9C,MAAOy9C,EAAOc,iC,oBEwhB7Bl2C,oBAFYX,IAAK,CAAQY,KAAMZ,EAAMY,QAIlD,IACKA,KACAsoB,IAJQvoB,EAp1BQ62C,IACrB,MAAM,UAAExmC,GAAcwmC,GAChB,SAAE7Q,GAAalV,eACdj3B,EAAWqvB,GAAgBxoB,oBAAS,IACpCgsB,EAAgBC,GAAqBjsB,oBAAS,GAC/Co2C,EAAmB,CACvBx1C,GAAI,EAAG0kC,WAAU/nC,KAAM,GAAI+pB,IAAK,KAAM+mB,GAAI,KAAMgI,WAAY,OAEvDC,EAAWC,GAAgBv2C,mBAASo2C,IACpCpK,EAAYC,GAAiBjsC,mBAAS,IACvCw2C,EAAoB,CACxB51C,GAAI,EAAG8I,MAAO,GAAI+sC,YAAa,EAAGnvB,IAAK,GAAI+mB,GAAI,GAAIqI,cAAe,KAE7DC,EAAYC,GAAiB52C,mBAASw2C,IACtCK,EAAyBC,GAA8B92C,oBAAS,IAChE/H,EAAM8+C,GAAW/2C,mBAAS,OAEjCS,qBAAU,KACR4rC,MACC,IAEH,MAAMA,EAAkBvf,UACtBtE,GAAa,GACb,IACE,MAAMhV,QAAY+4B,GAAwBjH,GAE1C0R,EAA8B,IAAIC,KAA+BzjC,EAAIjM,QAAQ6c,GAAuB,mBAAjBA,EAAEiyB,YAA8C,UAAXjyB,EAAEnsB,OAAkBmF,KAAKgnB,IAAC,IAAWA,EAAG8yB,UAAW9yB,EAAEkD,IAAK6vB,kBAAmB/yB,EAAEiqB,SACvM+I,EAA0B,IAAIC,KAA2B7jC,EAAIjM,QAAQ6c,GAAuB,gBAAjBA,EAAEiyB,YAA2C,UAAXjyB,EAAEnsB,OAAkBmF,KAAKgnB,IAAC,IAAWA,EAAG8yB,UAAW9yB,EAAEkD,IAAK6vB,kBAAmB/yB,EAAEiqB,SAC5LiJ,EAA8B,IAAIC,KAA+B/jC,EAAIjM,QAAQ6c,GAAuB,mBAAjBA,EAAEiyB,YAA8C,QAAXjyB,EAAEnsB,OAAgBmF,KAAKgnB,IAAC,IAAWA,EAAG8yB,UAAW9yB,EAAEkD,IAAK6vB,kBAAmB/yB,EAAEiqB,SACrMmJ,EAAyB,IAAIC,KAA0BjkC,EAAIjM,QAAQ6c,GAAuB,gBAAjBA,EAAEiyB,YAA2C,QAAXjyB,EAAEnsB,OAAgBmF,KAAKgnB,IAAC,IAAWA,EAAG8yB,UAAW9yB,EAAEkD,IAAK6vB,kBAAmB/yB,EAAEiqB,SACxLpC,EAAcz4B,GACd,MAAOoS,GACPjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,UACtC,QACC6pB,GAAa,MAIV+uB,EAA4BD,GAAiCt3C,mBAAS,CAC3E,CAAEY,GAAI,EAAGrD,KAAM,sCAAuC25C,UAAW,GAAIC,kBAAmB,IACxF,CAAEv2C,GAAI,EAAGrD,KAAM,yBAA0B25C,UAAW,GAAIC,kBAAmB,IAC3E,CAAEv2C,GAAI,EAAGrD,KAAM,qCAAsC25C,UAAW,GAAIC,kBAAmB,IACvF,CAAEv2C,GAAI,EAAGrD,KAAM,0BAA2B25C,UAAW,GAAIC,kBAAmB,IAC5E,CAAEv2C,GAAI,EAAGrD,KAAM,sCAAuC25C,UAAW,GAAIC,kBAAmB,IACxF,CAAEv2C,GAAI,EAAGrD,KAAM,0BAA2B25C,UAAW,GAAIC,kBAAmB,IAC5E,CAAEv2C,GAAI,EAAGrD,KAAM,kCAAmC25C,UAAW,GAAIC,kBAAmB,IACpF,CAAEv2C,GAAI,EAAGrD,KAAM,sCAAuC25C,UAAW,GAAIC,kBAAmB,IACxF,CAAEv2C,GAAI,EAAGrD,KAAM,2BAA4B25C,UAAW,GAAIC,kBAAmB,IAC7E,CAAEv2C,GAAI,GAAIrD,KAAM,mCAAoC25C,UAAW,GAAIC,kBAAmB,IACtF,CAAEv2C,GAAI,GAAIrD,KAAM,uCAAwC25C,UAAW,GAAIC,kBAAmB,IAC1F,CAAEv2C,GAAI,GAAIrD,KAAM,oCAAqC25C,UAAW,GAAIC,kBAAmB,IACvF,CAAEv2C,GAAI,GAAIrD,KAAM,wBAAyB25C,UAAW,GAAIC,kBAAmB,IAC3E,CAAEv2C,GAAI,GAAIrD,KAAM,oBAAqB25C,UAAW,GAAIC,kBAAmB,IACvE,CAAEv2C,GAAI,GAAIrD,KAAM,4BAA6B25C,UAAW,GAAIC,kBAAmB,IAC/E,CAAEv2C,GAAI,GAAIrD,KAAM,gCAAiC25C,UAAW,GAAIC,kBAAmB,IACnF,CAAEv2C,GAAI,GAAIrD,KAAM,uBAAwB25C,UAAW,GAAIC,kBAAmB,IAC1E,CAAEv2C,GAAI,GAAIrD,KAAM,mCAAoC25C,UAAW,GAAIC,kBAAmB,IACtF,CAAEv2C,GAAI,GAAIrD,KAAM,qBAAsB25C,UAAW,GAAIC,kBAAmB,IACxE,CAAEv2C,GAAI,GAAIrD,KAAM,6BAA8B25C,UAAW,GAAIC,kBAAmB,IAChF,CAAEv2C,GAAI,GAAIrD,KAAM,iCAAkC25C,UAAW,GAAIC,kBAAmB,IACpF,CAAEv2C,GAAI,GAAIrD,KAAM,sCAAuC25C,UAAW,GAAIC,kBAAmB,IACzF,CAAEv2C,GAAI,GAAIrD,KAAM,8BAA+B25C,UAAW,GAAIC,kBAAmB,IACjF,CAAEv2C,GAAI,GAAIrD,KAAM,8BAA+B25C,UAAW,GAAIC,kBAAmB,IACjF,CAAEv2C,GAAI,GAAIrD,KAAM,0BAA2B25C,UAAW,GAAIC,kBAAmB,IAC7E,CAAEv2C,GAAI,GAAIrD,KAAM,kCAAmC25C,UAAW,GAAIC,kBAAmB,IACrF,CAAEv2C,GAAI,GAAIrD,KAAM,sCAAuC25C,UAAW,GAAIC,kBAAmB,IACzF,CAAEv2C,GAAI,GAAIrD,KAAM,gCAAiC25C,UAAW,GAAIC,kBAAmB,IACnF,CAAEv2C,GAAI,GAAIrD,KAAM,2BAA4B25C,UAAW,GAAIC,kBAAmB,IAC9E,CAAEv2C,GAAI,GAAIrD,KAAM,uCAAwC25C,UAAW,GAAIC,kBAAmB,IAC1F,CAAEv2C,GAAI,GAAIrD,KAAM,gCAAiC25C,UAAW,GAAIC,kBAAmB,IACnF,CAAEv2C,GAAI,GAAIrD,KAAM,6CAA8C25C,UAAW,GAAIC,kBAAmB,IAChG,CAAEv2C,GAAI,GAAIrD,KAAM,0CAA2C25C,UAAW,GAAIC,kBAAmB,IAC7F,CAAEv2C,GAAI,GAAIrD,KAAM,2CAA4C25C,UAAW,GAAIC,kBAAmB,IAC9F,CAAEv2C,GAAI,GAAIrD,KAAM,gDAAiD25C,UAAW,GAAIC,kBAAmB,IACnG,CAAEv2C,GAAI,GAAIrD,KAAM,iDAAkD25C,UAAW,GAAIC,kBAAmB,IACpG,CAAEv2C,GAAI,GAAIrD,KAAM,yBAA0B25C,UAAW,GAAIC,kBAAmB,IAC5E,CAAEv2C,GAAI,GAAIrD,KAAM,6BAA8B25C,UAAW,GAAIC,kBAAmB,IAChF,CAAEv2C,GAAI,GAAIrD,KAAM,yCAA0C25C,UAAW,GAAIC,kBAAmB,IAC5F,CAAEv2C,GAAI,GAAIrD,KAAM,8CAA+C25C,UAAW,GAAIC,kBAAmB,IACjG,CAAEv2C,GAAI,GAAIrD,KAAM,0CAA2C25C,UAAW,GAAIC,kBAAmB,IAC7F,CAAEv2C,GAAI,GAAIrD,KAAM,+DAAgE25C,UAAW,GAAIC,kBAAmB,IAClH,CAAEv2C,GAAI,GAAIrD,KAAM,oCAAqC25C,UAAW,GAAIC,kBAAmB,IACvF,CAAEv2C,GAAI,GAAIrD,KAAM,0CAA2C25C,UAAW,GAAIC,kBAAmB,IAC7F,CAAEv2C,GAAI,GAAIrD,KAAM,gDAAiD25C,UAAW,GAAIC,kBAAmB,IACnG,CAAEv2C,GAAI,GAAIrD,KAAM,gDAAiD25C,UAAW,GAAIC,kBAAmB,IACnG,CAAEv2C,GAAI,GAAIrD,KAAM,sBAAuB25C,UAAW,GAAIC,kBAAmB,IACzE,CAAEv2C,GAAI,GAAIrD,KAAM,WAAY25C,UAAW,GAAIC,kBAAmB,OAGzDM,EAAuBD,GAA4Bx3C,mBAAS,CACjE,CAAEY,GAAI,EAAGrD,KAAM,sBAAuB25C,UAAW,GAAIC,kBAAmB,IACxE,CAAEv2C,GAAI,EAAGrD,KAAM,qCAAsC25C,UAAW,GAAIC,kBAAmB,IACvF,CAAEv2C,GAAI,EAAGrD,KAAM,uCAAwC25C,UAAW,GAAIC,kBAAmB,IACzF,CAAEv2C,GAAI,EAAGrD,KAAM,8BAA+B25C,UAAW,GAAIC,kBAAmB,IAChF,CAAEv2C,GAAI,EAAGrD,KAAM,wBAAyB25C,UAAW,GAAIC,kBAAmB,IAC1E,CAAEv2C,GAAI,EAAGrD,KAAM,4BAA6B25C,UAAW,GAAIC,kBAAmB,IAC9E,CAAEv2C,GAAI,EAAGrD,KAAM,iBAAkB25C,UAAW,GAAIC,kBAAmB,IACnE,CAAEv2C,GAAI,EAAGrD,KAAM,0BAA2B25C,UAAW,GAAIC,kBAAmB,IAC5E,CAAEv2C,GAAI,EAAGrD,KAAM,qCAAsC25C,UAAW,GAAIC,kBAAmB,IACvF,CAAEv2C,GAAI,GAAIrD,KAAM,gDAAiD25C,UAAW,GAAIC,kBAAmB,IACnG,CAAEv2C,GAAI,GAAIrD,KAAM,iCAAkC25C,UAAW,GAAIC,kBAAmB,IACpF,CAAEv2C,GAAI,GAAIrD,KAAM,uBAAwB25C,UAAW,GAAIC,kBAAmB,IAC1E,CAAEv2C,GAAI,GAAIrD,KAAM,cAAe25C,UAAW,GAAIC,kBAAmB,IACjE,CAAEv2C,GAAI,GAAIrD,KAAM,mBAAoB25C,UAAW,GAAIC,kBAAmB,IACtE,CAAEv2C,GAAI,GAAIrD,KAAM,kBAAmB25C,UAAW,GAAIC,kBAAmB,IACrE,CAAEv2C,GAAI,GAAIrD,KAAM,iBAAkB25C,UAAW,GAAIC,kBAAmB,IACpE,CAAEv2C,GAAI,GAAIrD,KAAM,4BAA6B25C,UAAW,GAAIC,kBAAmB,IAC/E,CAAEv2C,GAAI,GAAIrD,KAAM,sDAAuD25C,UAAW,GAAIC,kBAAmB,IACzG,CAAEv2C,GAAI,GAAIrD,KAAM,kCAAmC25C,UAAW,GAAIC,kBAAmB,IACrF,CAAEv2C,GAAI,GAAIrD,KAAM,0BAA2B25C,UAAW,GAAIC,kBAAmB,IAC7E,CAAEv2C,GAAI,GAAIrD,KAAM,mBAAoB25C,UAAW,GAAIC,kBAAmB,IACtE,CAAEv2C,GAAI,GAAIrD,KAAM,4CAA6C25C,UAAW,GAAIC,kBAAmB,IAC/F,CAAEv2C,GAAI,GAAIrD,KAAM,gDAAiD25C,UAAW,GAAIC,kBAAmB,IACnG,CAAEv2C,GAAI,GAAIrD,KAAM,2DAA4D25C,UAAW,GAAIC,kBAAmB,IAC9G,CAAEv2C,GAAI,GAAIrD,KAAM,uDAAwD25C,UAAW,GAAIC,kBAAmB,IAC1G,CAAEv2C,GAAI,GAAIrD,KAAM,uCAAwC25C,UAAW,GAAIC,kBAAmB,IAC1F,CAAEv2C,GAAI,GAAIrD,KAAM,wCAAyC25C,UAAW,GAAIC,kBAAmB,IAC3F,CAAEv2C,GAAI,GAAIrD,KAAM,8CAA+C25C,UAAW,GAAIC,kBAAmB,IACjG,CAAEv2C,GAAI,GAAIrD,KAAM,8CAA+C25C,UAAW,GAAIC,kBAAmB,IACjG,CAAEv2C,GAAI,GAAIrD,KAAM,qBAAsB25C,UAAW,GAAIC,kBAAmB,IACxE,CAAEv2C,GAAI,GAAIrD,KAAM,wBAAyB25C,UAAW,GAAIC,kBAAmB,IAC3E,CAAEv2C,GAAI,GAAIrD,KAAM,cAAe25C,UAAW,GAAIC,kBAAmB,IACjE,CAAEv2C,GAAI,GAAIrD,KAAM,wBAAyB25C,UAAW,GAAIC,kBAAmB,IAC3E,CAAEv2C,GAAI,GAAIrD,KAAM,mCAAoC25C,UAAW,GAAIC,kBAAmB,IACtF,CAAEv2C,GAAI,GAAIrD,KAAM,oDAAqD25C,UAAW,GAAIC,kBAAmB,IACvG,CAAEv2C,GAAI,GAAIrD,KAAM,gCAAiC25C,UAAW,GAAIC,kBAAmB,IACnF,CAAEv2C,GAAI,GAAIrD,KAAM,iBAAkB25C,UAAW,GAAIC,kBAAmB,IACpE,CAAEv2C,GAAI,GAAIrD,KAAM,iDAAkD25C,UAAW,GAAIC,kBAAmB,IACpG,CAAEv2C,GAAI,GAAIrD,KAAM,yDAA0D25C,UAAW,GAAIC,kBAAmB,IAC5G,CAAEv2C,GAAI,GAAIrD,KAAM,4DAA6D25C,UAAW,GAAIC,kBAAmB,IAC/G,CAAEv2C,GAAI,GAAIrD,KAAM,4CAA6C25C,UAAW,GAAIC,kBAAmB,IAC/F,CAAEv2C,GAAI,GAAIrD,KAAM,8BAA+B25C,UAAW,GAAIC,kBAAmB,IACjF,CAAEv2C,GAAI,GAAIrD,KAAM,qBAAsB25C,UAAW,GAAIC,kBAAmB,IACxE,CAAEv2C,GAAI,GAAIrD,KAAM,qBAAsB25C,UAAW,GAAIC,kBAAmB,OAGnEE,EAAwBD,GAA6Bp3C,mBAAS,CACnE,CAAEY,GAAI,EAAGrD,KAAM,iBAAkB25C,UAAW,GAAIC,kBAAmB,IACnE,CAAEv2C,GAAI,EAAGrD,KAAM,mBAAoB25C,UAAW,GAAIC,kBAAmB,IACrE,CAAEv2C,GAAI,EAAGrD,KAAM,eAAgB25C,UAAW,GAAIC,kBAAmB,IACjE,CAAEv2C,GAAI,EAAGrD,KAAM,wBAAyB25C,UAAW,GAAIC,kBAAmB,IAC1E,CAAEv2C,GAAI,EAAGrD,KAAM,WAAY25C,UAAW,GAAIC,kBAAmB,IAC7D,CAAEv2C,GAAI,EAAGrD,KAAM,oBAAqB25C,UAAW,GAAIC,kBAAmB,IACtE,CAAEv2C,GAAI,EAAGrD,KAAM,kBAAmB25C,UAAW,GAAIC,kBAAmB,IACpE,CAAEv2C,GAAI,EAAGrD,KAAM,WAAY25C,UAAW,GAAIC,kBAAmB,IAC7D,CAAEv2C,GAAI,EAAGrD,KAAM,cAAe25C,UAAW,GAAIC,kBAAmB,IAChE,CAAEv2C,GAAI,GAAIrD,KAAM,kBAAmB25C,UAAW,GAAIC,kBAAmB,IACrE,CAAEv2C,GAAI,GAAIrD,KAAM,WAAY25C,UAAW,GAAIC,kBAAmB,IAC9D,CAAEv2C,GAAI,GAAIrD,KAAM,qBAAsB25C,UAAW,GAAIC,kBAAmB,IACxE,CAAEv2C,GAAI,GAAIrD,KAAM,mBAAoB25C,UAAW,GAAIC,kBAAmB,IACtE,CAAEv2C,GAAI,GAAIrD,KAAM,oBAAqB25C,UAAW,GAAIC,kBAAmB,IACvE,CAAEv2C,GAAI,GAAIrD,KAAM,iBAAkB25C,UAAW,GAAIC,kBAAmB,IACpE,CAAEv2C,GAAI,GAAIrD,KAAM,sBAAuB25C,UAAW,GAAIC,kBAAmB,IACzE,CAAEv2C,GAAI,GAAIrD,KAAM,oBAAqB25C,UAAW,GAAIC,kBAAmB,IACvE,CAAEv2C,GAAI,GAAIrD,KAAM,sBAAuB25C,UAAW,GAAIC,kBAAmB,IACzE,CAAEv2C,GAAI,GAAIrD,KAAM,kBAAmB25C,UAAW,GAAIC,kBAAmB,IACrE,CAAEv2C,GAAI,GAAIrD,KAAM,iCAAkC25C,UAAW,GAAIC,kBAAmB,IACpF,CAAEv2C,GAAI,GAAIrD,KAAM,uCAAwC25C,UAAW,GAAIC,kBAAmB,IAC1F,CAAEv2C,GAAI,GAAIrD,KAAM,mBAAoB25C,UAAW,GAAIC,kBAAmB,IACtE,CAAEv2C,GAAI,GAAIrD,KAAM,6BAA8B25C,UAAW,GAAIC,kBAAmB,IAChF,CAAEv2C,GAAI,GAAIrD,KAAM,eAAgB25C,UAAW,GAAIC,kBAAmB,IAClE,CAAEv2C,GAAI,GAAIrD,KAAM,eAAgB25C,UAAW,GAAIC,kBAAmB,IAClE,CAAEv2C,GAAI,GAAIrD,KAAM,qBAAsB25C,UAAW,GAAIC,kBAAmB,IACxE,CAAEv2C,GAAI,GAAIrD,KAAM,sCAAuC25C,UAAW,GAAIC,kBAAmB,OAGpFF,EAA4BD,GAAiCh3C,mBAAS,CAC3E,CAAEY,GAAI,EAAGrD,KAAM,aAAc25C,UAAW,GAAIC,kBAAmB,IAC/D,CAAEv2C,GAAI,EAAGrD,KAAM,kBAAmB25C,UAAW,GAAIC,kBAAmB,IACpE,CAAEv2C,GAAI,EAAGrD,KAAM,qBAAsB25C,UAAW,GAAIC,kBAAmB,IACvE,CAAEv2C,GAAI,EAAGrD,KAAM,sBAAuB25C,UAAW,GAAIC,kBAAmB,IACxE,CAAEv2C,GAAI,EAAGrD,KAAM,gCAAiC25C,UAAW,GAAIC,kBAAmB,IAClF,CAAEv2C,GAAI,EAAGrD,KAAM,wBAAyB25C,UAAW,GAAIC,kBAAmB,IAC1E,CAAEv2C,GAAI,EAAGrD,KAAM,+BAAgC25C,UAAW,GAAIC,kBAAmB,IACjF,CAAEv2C,GAAI,EAAGrD,KAAM,qBAAsB25C,UAAW,GAAIC,kBAAmB,IACvE,CAAEv2C,GAAI,EAAGrD,KAAM,2BAA4B25C,UAAW,GAAIC,kBAAmB,IAC7E,CAAEv2C,GAAI,GAAIrD,KAAM,2BAA4B25C,UAAW,GAAIC,kBAAmB,IAC9E,CAAEv2C,GAAI,GAAIrD,KAAM,SAAU25C,UAAW,GAAIC,kBAAmB,IAC5D,CAAEv2C,GAAI,GAAIrD,KAAM,gBAAiB25C,UAAW,GAAIC,kBAAmB,IACnE,CAAEv2C,GAAI,GAAIrD,KAAM,8BAA+B25C,UAAW,GAAIC,kBAAmB,MAG7EO,EAAgBC,IACpB,GAAIrB,EAAU/4C,MAAQ+4C,EAAUD,WAAY,CAAC,IAADuB,EAC1C3L,EAAc,IAAID,EAAY,IAAKsK,EAAWD,WAAYC,EAAUD,WAAWxsC,SAC/E,MAAMguC,EAAiB,IAAKvB,EAAWY,UAAWZ,EAAUY,UAAWC,kBAAmBb,EAAUjI,GAAIgI,WAAYC,EAAUD,WAAWxsC,OAEnIiuC,EAAgB,CACpBC,MAAO,CACLC,YAAaZ,EACba,eAAgBjB,GAElBkB,IAAK,CACHF,YAAaR,EACbS,eAAgBX,KAGkB,QAAtCM,EAAIE,EAAcD,EAAe5/C,aAAK,IAAA2/C,OAAA,EAAlCA,EAAqCC,EAAexB,cACtDyB,EAAcD,EAAe5/C,MAAM4/C,EAAexB,aAAa8B,GAAgB,IAAIA,EAAaN,KAGlGtB,EAAaH,GACTuB,GACFb,GAA2B,KAK3BsB,EAAoBA,CAAC76C,EAAMkB,EAAKoL,EAAO5R,KAC3C,MAAMogD,EAAgBrM,EAAWxnC,MAAM4f,GAAMA,EAAE7mB,OAASA,IAEpD86C,GACFA,EAAcpgD,KAAOA,EACrBogD,EAAc55C,GAAOoL,EAErBoiC,EAAc,IAAID,KAElBC,EAAc,IAAID,EAAY,CAC5BprC,GAAI,EACJ0kC,WACA/nC,OACAtF,OACA,CAACwG,GAAMoL,MAKPyuC,EAAiBA,CAAC/6C,EAAMkB,KAC5B,MAAM45C,EAAgBrM,EAAWxnC,MAAM4f,GAAMA,EAAE7mB,OAASA,IACxD,OAAI86C,EACKA,EAAc55C,GAGhB,IAeH85C,EAAYZ,IAChB,MAAMU,EAAgBrM,EAAWxnC,MAAM4f,GAAMA,EAAE7mB,OAASo5C,EAAWD,gBAC/D2B,GACFA,EAActJ,gBAAgBl2C,KAAK89C,GACnC1K,EAAc,IAAID,KAElBC,EAAc,IAAID,EAAY,CAAEprC,GAAI,EAAG0kC,WAAU/nC,KAAMo5C,EAAWD,cAAe3H,gBAAiB,CAAC4H,MAGrGC,EAAc,IAAKJ,EAAmBE,cAAeC,EAAWD,cAAeD,YAAaE,EAAWF,cAEnGkB,GACF1rB,GAAkB,IAIhBusB,EAAqBA,CAACj7C,EAAMk7C,EAAOh6C,EAAKoL,KAC5C,MAAMwuC,EAAgBrM,EAAWxnC,MAAM4f,GAAMA,EAAE7mB,OAASA,IACpD86C,IACFA,EAActJ,gBAAgB0J,GAAOh6C,GAAOoL,EAC5CoiC,EAAc,IAAID,MAItB,OACEv0C,eAAA8B,WAAA,CAAArC,SAAA,CACGiC,GAAaxB,cAAC0K,EAAO,CAACG,WAAS,IAChC7K,cAACb,EAAW,CAACE,UAAU,4BAA2BE,SAChDO,eAAC6uB,GAAO,CAACE,aAAW,EAACxvB,UAAU,SAAQE,SAAA,CACrCS,cAAC+mB,GAAa,CACZ3mB,MAAM,YACN4mB,WAAW,KACXC,kBAAkB,gBAClBY,qBAAsBA,IAAMs3B,GAA2B,KAEzDn/C,cAACivB,GAAY,CAAA1vB,SACXO,eAACihD,KAAI,CACHC,UAAW1gD,EACX2gD,SAAWC,GAAM9B,EAAQ8B,GACzBj4C,GAAG,gBACH5J,UAAU,OAAME,SAAA,CAEhBS,cAACmhD,KAAG,CACFC,SAAS,MACThhD,MACEJ,cAAC+mB,GAAa,CACZ3mB,MAAM,MACN4mB,WAAW,KACX3nB,UAAU,aACVoD,mBAAmB,SAErBlD,SAEFS,cAAC8qB,GAAS,CAAAvrB,SACRO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBS,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAAM,yBACN4mB,WAAW,KACXvkB,mBAAmB,OACnBpD,UAAU,iBAGbugD,EAA2Bn6C,KAAKoK,IAAI,IAAAwxC,EAAAC,EAAAC,EAAAC,EAAA,OACnC1hD,eAACmvB,GAAY,CAAA1vB,SAAA,CACXO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACTpP,MAAOrC,EAAKjK,KACZ+O,WAAW,WACXlS,mBAAmB,sBACnBqsB,eAAgB,CAAEpZ,UAAW,IAC7B8L,qBAAqB,QACrBC,gCAAgC,+BAChCC,yBAA0B1hB,cAACyhD,IAAM,CAACpiD,UAAU,aAAaa,KAAM,KAC/D2hB,wBAAyBA,KACvBo9B,EAAc,IAAKJ,EAAmBE,cAAelvC,EAAKjK,KAAMk5C,YAAajvC,EAAK5G,KAClFqrB,GAAkB,QAKxBt0B,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT5M,WAAW,MAEXjS,mBAAmB,gBACnBjC,UACER,cAAC0hD,IAAgB,CACfriD,UAAU,YAAYa,KAAM,GAC5BZ,MAAO,CAAEoW,UAAW,MAGxB4B,SAAUzP,IAAA,IAAC,OAAEpE,GAAQoE,EAAA,OAAK44C,EAAkB5wC,EAAKjK,KAAM,MAAOnC,EAAOyO,MAAO,QAC5EA,MAAOyuC,EAAe9wC,EAAKjK,KAAM,WAIrC5F,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT5M,WAAW,KAEXjS,mBAAmB,gBACnBjC,UACER,cAAC2hD,IAAY,CACXtiD,UAAU,YAAYa,KAAM,GAC5BZ,MAAO,CAAEoW,UAAW,MAGxB4B,SAAUka,IAAA,IAAC,OAAE/tB,GAAQ+tB,EAAA,OAAKivB,EAAkB5wC,EAAKjK,KAAM,KAAMnC,EAAOyO,MAAO,QAC3EA,MAAOyuC,EAAe9wC,EAAKjK,KAAM,cAIM,QAA5Cy7C,EAAAhN,EAAWxnC,MAAM4f,GAAMA,EAAE7mB,OAASiK,EAAKjK,cAAK,IAAAy7C,GAAiB,QAAjBC,EAA5CD,EAA8CjK,uBAAe,IAAAkK,OAAjB,EAA5CA,EAA+Dv4C,QAAS,GACvE/I,cAACivB,GAAY,CAACC,KAAM,EAAG7vB,UAAU,cAAaE,SAC5CO,eAACX,EAAW,CAACE,UAAU,6CAA4CE,SAAA,CACjES,cAAA,KAAGX,UAAU,6BAA4BE,SAAEsQ,EAAKjK,OAEF,QAFW27C,EAEvDlN,EAAWxnC,MAAM4f,GAAMA,EAAE7mB,OAASiK,EAAKjK,cAAK,IAAA27C,GAAiB,QAAjBC,EAA5CD,EAA8CnK,uBAAe,IAAAoK,OAAjB,EAA5CA,EAA+D/7C,KAAI,CAACm8C,EAAWn9B,IAC7E3kB,eAAC6uB,GAAO,CAACC,gBAAc,EAACvvB,UAAU,YAAWE,SAAA,CAC3CS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT5M,WAAW,QACXjS,mBAAmB,gBACnByP,MAAO0vC,EAAU7vC,MACjBuF,SAAUsa,IAAA,IAAC,OAAEnuB,GAAQmuB,EAAA,OAAKivB,EAAmBhxC,EAAKjK,KAAM6e,EAAO,QAAShhB,EAAOyO,YAInFlS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT5M,WAAW,MACXjS,mBAAmB,gBACnByP,MAAO0vC,EAAUjyB,IACjBrY,SAAUuqC,IAAA,IAAC,OAAEp+C,GAAQo+C,EAAA,OAAKhB,EAAmBhxC,EAAKjK,KAAM6e,EAAO,MAAOhhB,EAAOyO,YAIjFlS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT5M,WAAW,KACXjS,mBAAmB,UACnByP,MAAO0vC,EAAUlL,GACjBp/B,SAAUwqC,IAAA,IAAC,OAAEr+C,GAAQq+C,EAAA,OAAKjB,EAAmBhxC,EAAKjK,KAAM6e,EAAO,KAAMhhB,EAAOyO,wBAhF3ErC,EAAK5G,YA8F9BjJ,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBS,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAAM,sBACN4mB,WAAW,KACXvkB,mBAAmB,OACnBpD,UAAU,iBAIbygD,EAAsBr6C,KAAKoK,IAAI,IAAAkyC,EAAAC,EAAAC,EAAAC,EAAA,OAC9BpiD,eAACmvB,GAAY,CAAA1vB,SAAA,CACXO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACTpP,MAAOrC,EAAKjK,KACZ+O,WAAW,WACXlS,mBAAmB,sBACnBqsB,eAAgB,CAAEpZ,UAAW,IAC7B8L,qBAAqB,QACrBC,gCAAgC,+BAChCC,yBAA0B1hB,cAACyhD,IAAM,CAACpiD,UAAU,aAAaa,KAAM,KAC/D2hB,wBAAyBA,KACvBo9B,EAAc,IAAKJ,EAAmBE,cAAelvC,EAAKjK,KAAMk5C,YAAajvC,EAAK5G,KAClFqrB,GAAkB,QAKxBt0B,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT5M,WAAW,MACXjS,mBAAmB,gBACnBjC,UACER,cAAC0hD,IAAgB,CACfriD,UAAU,YAAYa,KAAM,GAC5BZ,MAAO,CAAEoW,UAAW,MAGxB4B,SAAU6qC,IAAA,IAAC,OAAE1+C,GAAQ0+C,EAAA,OAAK1B,EAAkB5wC,EAAKjK,KAAM,MAAOnC,EAAOyO,MAAO,QAC5EA,MAAOyuC,EAAe9wC,EAAKjK,KAAM,WAIrC5F,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT5M,WAAW,KACXjS,mBAAmB,gBACnBjC,UACER,cAAC2hD,IAAY,CACXtiD,UAAU,YAAYa,KAAM,GAC5BZ,MAAO,CAAEoW,UAAW,MAGxB4B,SAAU8qC,IAAA,IAAC,OAAE3+C,GAAQ2+C,EAAA,OAAK3B,EAAkB5wC,EAAKjK,KAAM,KAAMnC,EAAOyO,MAAO,QAC3EA,MAAOyuC,EAAe9wC,EAAKjK,KAAM,cAIM,QAA5Cm8C,EAAA1N,EAAWxnC,MAAM4f,GAAMA,EAAE7mB,OAASiK,EAAKjK,cAAK,IAAAm8C,GAAiB,QAAjBC,EAA5CD,EAA8C3K,uBAAe,IAAA4K,OAAjB,EAA5CA,EAA+Dj5C,QAAS,GACvE/I,cAACivB,GAAY,CAACC,KAAM,EAAG7vB,UAAU,cAAaE,SAC5CO,eAACX,EAAW,CAACE,UAAU,6CAA4CE,SAAA,CACjES,cAAA,KAAGX,UAAU,6BAA4BE,SAAEsQ,EAAKjK,OAEF,QAFWq8C,EAEvD5N,EAAWxnC,MAAM4f,GAAMA,EAAE7mB,OAASiK,EAAKjK,cAAK,IAAAq8C,GAAiB,QAAjBC,EAA5CD,EAA8C7K,uBAAe,IAAA8K,OAAjB,EAA5CA,EAA+Dz8C,KAAI,CAACm8C,EAAWn9B,IAC7E3kB,eAAC6uB,GAAO,CAACC,gBAAc,EAACvvB,UAAU,YAAWE,SAAA,CAC3CS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT5M,WAAW,QACXjS,mBAAmB,gBACnByP,MAAO0vC,EAAU7vC,MACjBuF,SAAU+qC,IAAA,IAAC,OAAE5+C,GAAQ4+C,EAAA,OAAKxB,EAAmBhxC,EAAKjK,KAAM6e,EAAO,QAAShhB,EAAOyO,YAInFlS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT5M,WAAW,MACXjS,mBAAmB,gBACnByP,MAAO0vC,EAAUjyB,IACjBrY,SAAUgrC,IAAA,IAAC,OAAE7+C,GAAQ6+C,EAAA,OAAKzB,EAAmBhxC,EAAKjK,KAAM6e,EAAO,MAAOhhB,EAAOyO,YAIjFlS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT5M,WAAW,KACXjS,mBAAmB,UACnByP,MAAO0vC,EAAUlL,GACjBp/B,SAAUirC,IAAA,IAAC,OAAE9+C,GAAQ8+C,EAAA,OAAK1B,EAAmBhxC,EAAKjK,KAAM6e,EAAO,KAAMhhB,EAAOyO,wBA9E3ErC,EAAK5G,mBA+FpCjJ,cAACmhD,KAAG,CACFC,SAAS,QACThhD,MACEJ,cAAC+mB,GAAa,CACZ3mB,MAAM,QACN4mB,WAAW,KACX3nB,UAAU,YACVoD,mBAAmB,SAErBlD,SAEFS,cAAC8qB,GAAS,CAAAvrB,SACRO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBS,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAAM,yBACN4mB,WAAW,KACXvkB,mBAAmB,OACnBpD,UAAU,iBAGbigD,EAA2B75C,KAAKoK,IAAI,IAAA2yC,EAAAC,EAAAC,EAAAC,EAAA,OACnC7iD,eAACmvB,GAAY,CAAA1vB,SAAA,CACXO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACTpP,MAAOrC,EAAKjK,KACZ+O,WAAW,WACXlS,mBAAmB,gBACnBqsB,eAAgB,CAAEpZ,UAAW,IAC7B8L,qBAAqB,QACrBC,gCAAgC,yBAChCC,yBAA0B1hB,cAACyhD,IAAM,CAACpiD,UAAU,aAAaa,KAAM,KAC/D2hB,wBAAyBA,KACvBo9B,EAAc,IAAKJ,EAAmBE,cAAelvC,EAAKjK,KAAMk5C,YAAajvC,EAAK5G,KAClFqrB,GAAkB,QAKxBt0B,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT5M,WAAW,MAEXjS,mBAAmB,gBACnBjC,UACER,cAAC0hD,IAAgB,CACfriD,UAAU,YAAYa,KAAM,GAC5BZ,MAAO,CAAEoW,UAAW,MAGxB4B,SAAUsrC,IAAA,IAAC,OAAEn/C,GAAQm/C,EAAA,OAAKnC,EAAkB5wC,EAAKjK,KAAM,MAAOnC,EAAOyO,MAAO,UAC5EA,MAAOyuC,EAAe9wC,EAAKjK,KAAM,WAIrC5F,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT5M,WAAW,KAEXjS,mBAAmB,gBACnBjC,UACER,cAAC2hD,IAAY,CACXtiD,UAAU,YAAYa,KAAM,GAC5BZ,MAAO,CAAEoW,UAAW,MAGxB4B,SAAUurC,IAAA,IAAC,OAAEp/C,GAAQo/C,EAAA,OAAKpC,EAAkB5wC,EAAKjK,KAAM,KAAMnC,EAAOyO,MAAO,UAC3EA,MAAOyuC,EAAe9wC,EAAKjK,KAAM,cAIM,QAA5C48C,EAAAnO,EAAWxnC,MAAM4f,GAAMA,EAAE7mB,OAASiK,EAAKjK,cAAK,IAAA48C,GAAiB,QAAjBC,EAA5CD,EAA8CpL,uBAAe,IAAAqL,OAAjB,EAA5CA,EAA+D15C,QAAS,GACvE/I,cAACivB,GAAY,CAACC,KAAM,EAAG7vB,UAAU,cAAaE,SAC5CO,eAACX,EAAW,CAACE,UAAU,6CAA4CE,SAAA,CACjES,cAAA,KAAGX,UAAU,6BAA4BE,SAAEsQ,EAAKjK,OAEF,QAFW88C,EAEvDrO,EAAWxnC,MAAM4f,GAAMA,EAAE7mB,OAASiK,EAAKjK,cAAK,IAAA88C,GAAiB,QAAjBC,EAA5CD,EAA8CtL,uBAAe,IAAAuL,OAAjB,EAA5CA,EAA+Dl9C,KAAI,CAACm8C,EAAWn9B,IAC7E3kB,eAAC6uB,GAAO,CAACC,gBAAc,EAACvvB,UAAU,YAAWE,SAAA,CAC3CS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT5M,WAAW,QACXjS,mBAAmB,gBACnByP,MAAO0vC,EAAU7vC,MACjBuF,SAAUwrC,IAAA,IAAC,OAAEr/C,GAAQq/C,EAAA,OAAKjC,EAAmBhxC,EAAKjK,KAAM6e,EAAO,QAAShhB,EAAOyO,YAInFlS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT5M,WAAW,MACXjS,mBAAmB,gBACnByP,MAAO0vC,EAAUjyB,IACjBrY,SAAUyrC,IAAA,IAAC,OAAEt/C,GAAQs/C,EAAA,OAAKlC,EAAmBhxC,EAAKjK,KAAM6e,EAAO,MAAOhhB,EAAOyO,YAIjFlS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT5M,WAAW,KACXjS,mBAAmB,UACnByP,MAAO0vC,EAAUlL,GACjBp/B,SAAU0rC,IAAA,IAAC,OAAEv/C,GAAQu/C,EAAA,OAAKnC,EAAmBhxC,EAAKjK,KAAM6e,EAAO,KAAMhhB,EAAOyO,wBAhF3ErC,EAAK5G,YA8F9BjJ,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBS,cAACivB,GAAY,CAAA1vB,SACXS,cAAC+mB,GAAa,CACZ3mB,MAAM,sBACN4mB,WAAW,KACXvkB,mBAAmB,OACnBpD,UAAU,iBAIbqgD,EAAuBj6C,KAAKoK,IAAI,IAAAozC,EAAAC,EAAAC,EAAAC,EAAA,OAC/BtjD,eAACmvB,GAAY,CAAA1vB,SAAA,CACXO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACTpP,MAAOrC,EAAKjK,KACZ+O,WAAW,WACXlS,mBAAmB,gBACnBqsB,eAAgB,CAAEpZ,UAAW,IAC7B8L,qBAAqB,QACrBC,gCAAgC,yBAChCC,yBAA0B1hB,cAACyhD,IAAM,CAACpiD,UAAU,aAAaa,KAAM,KAC/D2hB,wBAAyBA,KACvBo9B,EAAc,IAAKJ,EAAmBE,cAAelvC,EAAKjK,KAAMk5C,YAAajvC,EAAK5G,KAClFqrB,GAAkB,QAKxBt0B,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT5M,WAAW,MACXjS,mBAAmB,gBACnBjC,UACER,cAAC0hD,IAAgB,CACfriD,UAAU,YAAYa,KAAM,GAC5BZ,MAAO,CAAEoW,UAAW,MAGxB4B,SAAU+rC,IAAA,IAAC,OAAE5/C,GAAQ4/C,EAAA,OAAK5C,EAAkB5wC,EAAKjK,KAAM,MAAOnC,EAAOyO,MAAO,UAC5EA,MAAOyuC,EAAe9wC,EAAKjK,KAAM,WAIrC5F,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT5M,WAAW,KACXjS,mBAAmB,gBACnBjC,UACER,cAAC2hD,IAAY,CACXtiD,UAAU,YAAYa,KAAM,GAC5BZ,MAAO,CAAEoW,UAAW,MAGxB4B,SAAUgsC,IAAA,IAAC,OAAE7/C,GAAQ6/C,EAAA,OAAK7C,EAAkB5wC,EAAKjK,KAAM,KAAMnC,EAAOyO,MAAO,UAC3EA,MAAOyuC,EAAe9wC,EAAKjK,KAAM,cAIM,QAA5Cq9C,EAAA5O,EAAWxnC,MAAM4f,GAAMA,EAAE7mB,OAASiK,EAAKjK,cAAK,IAAAq9C,GAAiB,QAAjBC,EAA5CD,EAA8C7L,uBAAe,IAAA8L,OAAjB,EAA5CA,EAA+Dn6C,QAAS,GACvE/I,cAACivB,GAAY,CAACC,KAAM,EAAG7vB,UAAU,cAAaE,SAC5CO,eAACX,EAAW,CAACE,UAAU,6CAA4CE,SAAA,CACjES,cAAA,KAAGX,UAAU,6BAA4BE,SAAEsQ,EAAKjK,OAEF,QAFWu9C,EAEvD9O,EAAWxnC,MAAM4f,GAAMA,EAAE7mB,OAASiK,EAAKjK,cAAK,IAAAu9C,GAAiB,QAAjBC,EAA5CD,EAA8C/L,uBAAe,IAAAgM,OAAjB,EAA5CA,EAA+D39C,KAAI,CAACm8C,EAAWn9B,IAC7E3kB,eAAC6uB,GAAO,CAACC,gBAAc,EAACvvB,UAAU,YAAWE,SAAA,CAC3CS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT5M,WAAW,QACXjS,mBAAmB,gBACnByP,MAAO0vC,EAAU7vC,MACjBuF,SAAUisC,IAAA,IAAC,OAAE9/C,GAAQ8/C,EAAA,OAAK1C,EAAmBhxC,EAAKjK,KAAM6e,EAAO,QAAShhB,EAAOyO,YAInFlS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT5M,WAAW,MACXjS,mBAAmB,gBACnByP,MAAO0vC,EAAUjyB,IACjBrY,SAAUksC,IAAA,IAAC,OAAE//C,GAAQ+/C,EAAA,OAAK3C,EAAmBhxC,EAAKjK,KAAM6e,EAAO,MAAOhhB,EAAOyO,YAIjFlS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT5M,WAAW,KACXjS,mBAAmB,UACnByP,MAAO0vC,EAAUlL,GACjBp/B,SAAUmsC,IAAA,IAAC,OAAEhgD,GAAQggD,EAAA,OAAK5C,EAAmBhxC,EAAKjK,KAAM6e,EAAO,KAAMhhB,EAAOyO,wBA9E3ErC,EAAK5G,6BAmG5CjJ,cAACq3B,GAAe,CACdC,kBAAkB,eAClBI,oBAAoB,SACpBD,qBA/foBtC,UACxBtE,GAAa,GACb,IACE,MAAMhV,ONjRQsZ,UAAiBja,GAAcC,KAAK,GAADpb,OAAIge,GAAc,QAAQ9F,EAAOiE,GAAUE,sBMiR1Ew4B,CAA6BP,GAC/Cr8B,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtC,MAAOinB,GACPjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,UACtC,QACC6pB,GAAa,OA0fb7wB,cAAC0oB,GAAU,CACTxoB,KAAK,KACL0oB,cAAc,gBACdrC,SAAUy4B,EAAWD,cACrBt8C,mBAAmB,QACnBgkB,kBAAkB,YAClBrO,UAAWic,EACXrL,uBAAuB,iBACvBO,0BAA2BA,IAAMq3B,GAAS,GAC1C/2B,qBAAqB,eACrBG,wBAAyBA,IAAM42B,GAAS,GACxCv3B,OAAQA,KACNiL,GAAkB,IAClB/0B,SAEFS,cAAC8qB,GAAS,CAAAvrB,SACRO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CACrBS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,aACNtC,MAAO8sC,EAAWjtC,MAClBuF,SAAUosC,IAAA,IAAC,OAAEjgD,GAAQigD,EAAA,OAAKzE,EAAc,IAAKD,EAAYjtC,MAAOtO,EAAOyO,aAG3ElS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,MACNtC,MAAO8sC,EAAWrvB,IAClBrY,SAAUqsC,IAAA,IAAC,OAAElgD,GAAQkgD,EAAA,OAAK1E,EAAc,IAAKD,EAAYrvB,IAAKlsB,EAAOyO,aAGzElS,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,KACNtC,MAAO8sC,EAAWtI,GAClBp/B,SAAUssC,IAAA,IAAC,OAAEngD,GAAQmgD,EAAA,OAAK3E,EAAc,IAAKD,EAAYtI,GAAIjzC,EAAOyO,oBAO9ElS,cAAC0oB,GAAU,CACTxoB,KAAK,KACL0oB,cAAc,gBACdnmB,mBAAmB,QACnBgkB,kBAAkB,YAClBrO,UAAW8mC,EACXl2B,uBAAuB,iBACvBO,0BAA2BA,IAAMw2B,GAAa,GAC9Cl2B,qBAAqB,eACrBG,wBAAyBA,IAAM+1B,GAAa,GAC5C12B,OAAQA,KACNu1B,EAAaH,GACbU,GAA2B,IAC3B5/C,SAEFS,cAAC8qB,GAAS,CAAAvrB,SACRO,eAAC6uB,GAAO,CAACC,gBAAc,EAAArvB,SAAA,CAErBS,cAACivB,GAAY,CAACC,KAAM,GAAG3vB,SACrBS,cAACuU,GAAW,CACVC,MAAM,cACNuN,QAAS,CAAC,cAAe,kBAAkBtc,KAAKgnB,IAAC,CAAQjY,MAAOiY,EAAGva,MAAOua,MAC1E2N,aAAW,EACXloB,MAAOysC,EAAUD,WACjBpnC,SAAWutB,IACTA,EAAc,OAARA,EAAe,GAAKA,EAC1B+Z,EAAa,IAAKD,EAAWD,WAAY7Z,EAAKvkC,cAIpDN,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,QACNtC,MAAOysC,EAAU/4C,KACjB0R,SAAUusC,IAAA,IAAC,OAAEpgD,GAAQogD,EAAA,OAAKjF,EAAa,IAAKD,EAAW/4C,KAAMnC,EAAOyO,MAAO5R,cAG/EN,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,MACNtC,MAAOysC,EAAUhvB,IACjBrY,SAAUwsC,IAAA,IAAC,OAAErgD,GAAQqgD,EAAA,OAAKlF,EAAa,IAAKD,EAAWhvB,IAAKlsB,EAAOyO,MAAO5R,cAG9EN,cAACivB,GAAY,CAACC,KAAM,EAAE3vB,SACpBS,cAACshB,GAAU,CACT9M,MAAM,KACNtC,MAAOysC,EAAUjI,GACjBp/B,SAAUysC,IAAA,IAAC,OAAEtgD,GAAQsgD,EAAA,OAAKnF,EAAa,IAAKD,EAAWjI,GAAIjzC,EAAOyO,MAAO5R,2B,UC92BnFyd,GAAiB,QAEjBimC,GAAW,yCAAG,WAAO/lC,GAAP,UAAAzD,EAAA,+EAAoBU,GAAcgD,IAAd,UAAqBH,GAArB,gCAA2DE,GAAY/B,GAAUE,uBAArG,2CAAH,sDAEX6nC,GAAW,yCAAG,WAAO9oB,GAAP,UAAA3gB,EAAA,+EAAkBU,GAAcgD,IAAd,UAAqBH,GAArB,8BAAyDod,GAAUjf,GAAUE,uBAA/F,2CAAH,sDAEX8nC,GAAU,yCAAG,WAAOC,GAAP,UAAA3pC,EAAA,+EAAgBU,GAAcC,KAAd,UAAsB4C,GAAtB,cAAkDomC,EAAMjoC,GAAUE,uBAAlF,2CAAH,sDAEVgoC,GAAU,yCAAG,WAAOD,GAAP,UAAA3pC,EAAA,+EAAgBU,GAAcwD,IAAd,UAAqBX,GAArB,cAAiDomC,EAAMjoC,GAAUE,uBAAjF,2CAAH,sDAEVioC,GAAU,yCAAG,WAAOlpB,GAAP,UAAA3gB,EAAA,+EAAkBU,GAAcsD,OAAd,UAAwBT,GAAxB,yBAAuDod,GAAUjf,GAAUE,uBAA7F,2CAAH,sDAEVkoC,GAA0B,yCAAG,WAAOnpB,EAAQpH,EAAkBzzB,GAAjC,UAAAka,EAAA,+EAA0CU,GAAcC,KAAd,UAAsB4C,GAAtB,6CAAyEod,EAAzE,6BAAoGpH,EAApG,iBAA6HzzB,GAAQ,GAAI4b,GAAUE,uBAA7L,2CAAH,0DAE1B4X,GAAsB,yCAAG,WAAOC,GAAP,UAAAzZ,EAAA,+EAAkCU,GAAcsD,OAAd,UAAwBT,GAAxB,yDAAuFkW,GAA0B/X,GAAUE,uBAA7J,2CAAH,sDAEtBmoC,GAAuB,yCAAG,WAAOpwB,GAAP,UAAA3Z,EAAA,+EAAsBU,GAAcwD,IAAd,UAAqBX,GAArB,2BAA8DoW,EAAYjY,GAAUE,uBAA1G,2CAAH,sDAEvBgY,GAAiB,yCAAG,WAAO+G,GAAP,UAAA3gB,EAAA,+EAAkBU,GAAcsD,OAAd,UAAwBT,GAAxB,oCAAkEod,GAAUjf,GAAUE,uBAAxG,2CAAH,sDCqJRzU,oBADYX,IAAK,CAAQY,KAAMZ,EAAMY,QACV,IAAKsoB,MAAkBjX,IAAlDtR,EAlJUvI,IACvB,MAAM,UAAE4Y,EAAS,iBAAEW,EAAgB,iBAAEC,GAAqBxZ,GACnDoC,EAAWqvB,GAAgBxoB,oBAAS,IACpCm8C,EAAOC,GAAYp8C,mBAAS,IAInCS,qBAAU,KACR47C,MACC,IAEH,MAAMA,EAAWA,KACf7zB,GAAa,GACb8zB,GAAwB,IAAI/oC,MAAMC,IAChC4oC,EAAS5oC,MACRmS,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,OAkBXoB,EAAgB,CACpBriB,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,GAWNC,EAAU,CACd,CACEzsB,KAAM,KACN4O,MAAO,UACPuN,QAAS,CACPnS,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,EACVE,qBAAuBC,GACrBzyB,eAACX,EAAW,CAACE,UAAU,kDAAiDE,SAAA,CACtES,cAACmB,EAAM,CACLC,KAAK,OACL/B,UAAU,mBACVa,KAAK,MACLO,GAAE,6BAAAV,OAA+BykD,EAAMjyB,GAAWtpB,MAGpDjJ,cAACmB,EAAM,CACLC,KAAK,SACL/B,UAAU,aACVa,KAAK,MACLL,QAASA,KACP8Y,EAAiB,CACfvY,MAAO,cACPgB,KAAM,6CACNqX,aAAc,UACdJ,UAAWA,KAxDP8iB,QAyDSqpB,EAAMjyB,GAAWtpB,GAxD5C4nB,GAAa,GAEb8zB,GAAuBxpB,GAAQvf,MAAMC,IACnC6oC,IACA1sC,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,eACrCgnB,OAAOC,IACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,KACT2C,GAAa,GACbjY,kBAwDF,CACEhT,KAAM,OACN4O,MAAO,YACPuN,QAASkQ,GAEX,CACErsB,KAAM,UACN4O,MAAO,WACPuN,QAASkQ,GAEX,CACErsB,KAAM,UACN4O,MAAO,WACPuN,QAASkQ,GAEX,CACErsB,KAAM,WACN4O,MAAO,aACPuN,QAAS,IACJkQ,EACHK,qBAAuBC,GACrBvyB,cAAA,KAAAT,SAAIilD,EAAMjyB,GAAWtU,SAAW,MAAQ,UAMhD,OACEne,eAAA8B,WAAA,CAAArC,SAAA,CACGiC,GAAaxB,cAAC0K,EAAO,CAACG,WAAS,IAChC7K,cAACb,EAAW,CAACE,UAAU,4BAA2BE,SAChDS,cAAC2uB,GAAO,CAACE,aAAW,EAAAtvB,SAClBS,cAACivB,GAAY,CAAA1vB,SACXO,eAACX,EAAW,CAACE,UAAU,6CAA4CE,SAAA,CACjES,cAAC+mB,GAAa,CACZ3mB,MAAM,QACN4mB,WAAW,KACXC,kBAAkB,WAClBE,sBAAuBnnB,cAAC4kD,KAAa,CAACvlD,UAzHlC,aAyHwDa,KA1HzD,KA2HHwnB,gBAAgB,yBAGlB1nB,cAACb,EAAW,CAAAI,SACVS,cAACyyB,KAAY,CACXpX,KAAMmpC,EACNnyB,QAASA,EACTtQ,QA3FA,CACd2Q,eAAgB,OAChBN,UAAU,EACVD,OAAO,EACPQ,YAAY,EACZC,WAAY,CAAEC,WAAY,CAAEF,WAAY,iCCtE7B3H,UAAaC,MAAM,CAChChiB,GAAI+hB,OACJplB,KAAMolB,OAAaE,SAAS,8BAA8BsE,IAAI,KAC9DjY,IAAKyT,OAAaE,WAAWsE,IAAI,KACjC6L,gBAAiBrQ,OAAW8E,WAC5BwL,oBAAqBtQ,OAAa8E,WAClCyL,YAAavQ,OAAawE,IAAI,IAC9BgM,SAAUxQ,OAAa8E,WAAWN,IAAI,MACtCiM,YAAazQ,OAAa8E,WAC1B7R,SAAU+M,SCqCN65B,GAAkB,CACtB57C,GAAI,EACJrD,KAAM,GACN2R,IAAK,GACL8jB,iBAAiB,EACjBC,oBAAqB,GACrBC,YAAa,UACbC,SAAU,GACVC,YAAa,GACbxd,UAAU,EACV0d,YAAa,KACbC,gBAAiB,IAGbC,GAAuB,CAC3B,CACErnB,MAAO,SACPtC,MAAO,UAET,CACEsC,MAAO,kBACPtC,MAAO,mBAqkBIvK,gBAFW,SAACX,GAAD,MAAY,CAAEY,KAAMZ,EAAMY,QAE9B,YAAC,2BAClBA,GACAsoB,IACAsI,IAHU7wB,EAjkBY,SAACvI,GAC1B,IAAQ4Y,EAA2D5Y,EAA3D4Y,UAAWlX,EAAgD1B,EAAhD0B,QAAS6X,EAAuCvZ,EAAvCuZ,iBAAkBC,EAAqBxZ,EAArBwZ,iBACtCuiB,EAAW1C,cAAX0C,OACR,EAAkC9yB,oBAAS,GAA3C,oBAAO7G,EAAP,KAAkBqvB,EAAlB,KACA,EAA4CxoB,oBAAS,GAArD,oBAAOgsB,EAAP,KAAuBC,EAAvB,KACA,EAA8CjsB,oBAAS,GAAvD,oBAAO6tB,EAAP,KAAwBC,EAAxB,KACA,EAAwB9tB,mBAAS,IAAjC,oBAAOyzB,EAAP,KAAaC,EAAb,KACA,EAA4C1zB,mBAAS,MAArD,oBAAO2zB,EAAP,KAAuBC,EAAvB,KACA,EAA8D5zB,mBAAS,IAAvE,oBAAO6zB,EAAP,KAAgCC,EAAhC,KACA,EAA8E9zB,mBAAS,MAAvF,oBAAO+zB,EAAP,KAAwCC,EAAxC,KACA,EAAkCh0B,mBAASw8C,IAA3C,oBAAOC,EAAP,KAAkBC,EAAlB,KACA,EAAgC18C,mBAAS,IAAzC,oBAAOguB,EAAP,KAAiBC,EAAjB,KAIAxtB,qBAAU,WACRywB,IACA4C,EAA2B,IAC3BE,EAAmC,MAClC,CAAClB,IAEJryB,qBAAU,WACRuzB,EAAmC,MACnCF,EAA2B,IACvBH,GACFQ,EAAWR,EAAe9pB,SAE3B,CAAC8pB,IAEJlzB,qBAAU,WACRwtB,EAAYwuB,EAAUlpB,gBAAgB1J,MAAK,SAAC1X,EAAGgc,GAAJ,OAAUhc,EAAIgc,QACxD,CAACsuB,EAAUlpB,kBAEd,IAAMvQ,EAASmC,aAAU,CACvBC,cAAeq3B,EACfp3B,iBAAkBs3B,GAClBzzB,oBAAoB,EACpBxG,SAAU,SAAC6C,EAAD,IACRC,EADuC,EAApBA,gBACL,GACVsN,EACFipB,GAAWx2B,GAEXs2B,GAAWt2B,MAKX2L,EAA0B,yCAAG,uBAAA/e,EAAA,sDAC7B2gB,EAAS,GACX8pB,KAF+B,2CAAH,qDAM1BzoB,EAAa,SAACl8B,GAClBuwB,GAAa,GAEb8L,GAAsDxB,EAAQ76B,GAAMsb,MAAK,SAACC,GACxEsgB,EAA2BtgB,MAC1BmS,OAAM,SAACC,GACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,WACT2C,GAAa,OAIXo0B,GAAO,yCAAG,uBAAAzqC,EAAA,sDACdqW,GAAa,GAEb8zB,GAAwBxpB,GAAQvf,MAAK,SAACC,GACpCkpC,EAAalpC,MACZmS,OAAM,SAACC,GACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,WACT2C,GAAa,MARD,2CAAH,qDAYPqzB,GAAa,SAACjsC,GAClB4Y,GAAa,GAEb8zB,GAAuBt2B,GAAA,2BAEhBpW,GAFgB,IAGnB0jB,YAAaG,EAAK/yB,OAAS,EAAI+yB,EAAK,GAAGA,KAAO,SAE/ClgB,MAAK,SAACC,GACP7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtClG,EAAQI,KAAR,oCAA0C2a,EAAI5S,QAC7C+kB,OAAM,SAACC,GACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,kBAAM2C,GAAa,OAG1BuzB,GAAa,SAACnsC,GAClB4Y,GAAa,GAETiL,EAAK/yB,OAAS,IAChBkP,EAAK,2BAAQA,GAAR,IAAe0jB,YAAaG,EAAK,GAAGA,QAE3C6oB,GAAuBt2B,GAA6BpW,IAAQ2D,MAAK,SAACC,GAChE7D,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtClG,EAAQI,KAAK,4BACZ8sB,OAAM,SAACC,GACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,kBAAM2C,GAAa,OAG1B+L,GAA0B,WAC9BX,EAAkB,MAClBI,EAAmC,MACnCF,EAA2B,IAE3B7H,GAAkB,IAyEdrC,GAAgB,CACpBriB,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,GASNC,GAAU,CACd,CACEzsB,KAAM,KACN4O,MAAO,UACPuN,QAAS,CACPnS,QAAQ,EACRsiB,MAAM,EACNC,OAAO,EACPC,UAAU,EACVE,qBAAsB,SAACC,GAAD,OACpB,eAAC,EAAD,CAAalzB,UAAU,kDAAvB,UACE,cAAC,EAAD,CACE+B,KAAK,OACL/B,UAAU,WACVa,KAAK,MACLL,QAAS,WACP,IAAMoY,EAAQ6sC,EAAUlpB,gBAAgBrJ,GACxCzxB,EAAQI,KAAR,0BAAiC+W,EAAM4kB,SAAW,EAAK,SAAW,kBAAlE,iBAA6F5kB,EAAM4kB,SAAW,EAAK5kB,EAAM4kB,SAAW5kB,EAAM8b,sBAI9I,cAAC,EAAD,CACE3yB,KAAK,SACL/B,UAAU,aACVa,KAAK,MACLL,QAAS,WACP8Y,EAAiB,CACfvY,MAAO,sBACPgB,KAAM,gDACNqX,aAAc,UACdJ,UAAW,WAjGD,IAACpP,IAkGS67C,EAAUlpB,gBAAgBrJ,GAAWtpB,GAjGvE4nB,GAAa,GAEb8zB,GAAmC17C,GAAI2S,MAAK,SAACC,GAC3CopC,KACAjtC,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,eACrCgnB,OAAM,SAACC,GACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,WACT2C,GAAa,GACbjY,mBAiGF,CACEhT,KAAM,OACN4O,MAAO,OACPuN,QAASkQ,IAEX,CACErsB,KAAM,OACN4O,MAAO,OACPuN,QAAQ,2BACHkQ,IADE,IAELK,qBAAsB,SAACC,GAAD,OAAgB,4BAAIlE,GAA6By2B,EAAUlpB,gBAAgBrJ,GAAWjyB,aAKlH,OACE,qCACGkB,GAAa,cAAC,EAAD,CAASqJ,WAAS,IAChC,eAAC,EAAD,CAAaxL,UAAU,4BAAvB,UACE,cAAC,GAAD,CAASwvB,aAAW,EAApB,SACE,cAAC,GAAD,UACE,eAAC,GAAD,CAAWxvB,UAAU,oDAAoD0rB,SAAUM,EAAOyH,WAA1F,UAEE,eAAC,GAAD,CAASlE,gBAAc,EAAvB,UACE,cAAC,GAAD,UACE,cAAC,GAAD,CACExuB,MAAO+6B,EAAS,eAAiB,WACjCnU,WAAW,SAIf,cAAC,GAAD,UACE,cAAC,GAAD,CACE5mB,MAAM,oBACN4mB,WAAW,KACX3nB,UAAU,2CAId,cAAC,GAAD,CAAc6vB,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,YACNO,YAAY,qBACZK,YAAU,EACVR,aAAcyW,EAAOG,OAAO5lB,KAC5B+O,WAAU,UAAK0Z,GAAuBhD,EAAQ,UAC1CA,EAAOiD,cAAc,YAI7B,cAAC,GAAD,CAAcY,KAAM,GAApB,SACE,cAAC,GAAD,aACE1a,MAAM,MACNO,YAAY,2CACZK,YAAU,EACVR,aAAcyW,EAAOG,OAAOjU,IAC5B5C,WAAU,UAAK0Z,GAAuBhD,EAAQ,SAC1CA,EAAOiD,cAAc,WAG7B,cAAC,GAAD,CAAcY,KAAM,EAAG7vB,UAAU,QAAjC,SACE,cAAC,GAAD,yBACEmV,MAAM,kBACNvL,GAAG,YACCoiB,EAAOiD,cAAc,aAH3B,IAIEe,UAAWhE,EAAOuC,OAAO3P,cAI7B,cAAC,GAAD,CAAciR,KAAM,EAAG7vB,UAAU,QAAjC,SACE,cAAC,GAAD,yBACEmV,MAAM,qBACNvL,GAAG,mBACCoiB,EAAOiD,cAAc,oBAH3B,IAIEe,UAAWhE,EAAOuC,OAAOyN,wBAM/B,eAAC,GAAD,CAASzM,gBAAc,EAACvvB,UAAU,QAAlC,UACE,cAAC,GAAD,UACE,cAAC,GAAD,CACEe,MAAM,cACNmmB,SAAS,8DACTS,WAAW,KACXR,aAAa,KACbnnB,UAAU,2CAId,cAAC,GAAD,CAAc6vB,KAAM,EAApB,SAEI41B,EAAUxpB,oBAEN,qCACE,cAAC,EAAD,CAAaj8B,UAAU,0BAAvB,SACE,cAAC,EAAD,CACEwE,OAAM,UAAKuT,2CAAL,uBAAiD0tC,EAAUxpB,qBACjEj8B,UAAU,kBAId,cAAC,GAAD,CAAiBy9B,cAAef,EAASzI,UAAU,kBAEnD,cAAC,EAAD,CAAaj0B,UAAU,cAAvB,SACE,cAAC,EAAD,CACE+B,KAAK,sBACL/B,UAAU,aACVa,KAAK,MACLL,QAAS,kBAAM8Y,EACb,CACEvY,MAAO,sBACPgB,KAAM,qDACNqX,aAAc,UACdJ,UAAW,WAnLzCssC,GAA8BxpB,GAAQvf,MAAK,SAACC,GAC1CopC,KACAjtC,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtC4R,OACCoV,OAAM,SAACC,GACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,WACT2C,GAAa,iBAqLK,cAAC,GAAD,CACEyC,UAAU,oBACVwJ,cAAef,MAOzB,eAAC,GAAD,CAAc7M,KAAM,EAApB,UACE,cAAC,GAAD,aACE1a,MAAM,eACNO,YAAY,0DACZvU,UAAW,cAAC,IAAD,CAAUN,KAAM,GAAIyC,MAAO0oB,EAAOuC,OAAO2N,cACpD3mB,aAAcyW,EAAOG,OAAO+P,YAC5B5mB,WAAU,UAAK0Z,GAAuBhD,EAAQ,iBAC1CA,EAAOiD,cAAc,iBAG3B,cAAC,EAAD,CAAajvB,UAAU,cAAvB,SACE,cAAC,KAAD,CACE49B,iBAAkB,SAACC,GACjB7R,EAAOiP,cAAc,cAAe4C,EAAEC,MAExC99B,UAAU,kBAOlB,eAAC,GAAD,CAASuvB,gBAAc,EAACvvB,UAAU,QAAlC,UACE,cAAC,GAAD,UACE,cAAC,GAAD,CACEe,MAAM,6BACN4mB,WAAW,KACX3nB,UAAU,2CAId,cAAC,GAAD,CAAc6vB,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,WACNO,YAAY,wEACZ1V,UAAU,KACVuV,aAAcyW,EAAOG,OAAOgQ,SAC5B7mB,WAAU,UAAK0Z,GAAuBhD,EAAQ,cAC1CA,EAAOiD,cAAc,gBAI7B,cAAC,GAAD,CAAcY,KAAM,EAApB,SACE,cAAC,GAAD,aACE1a,MAAM,cACNO,YAAY,kFACZ1V,UAAU,KACVuV,aAAcyW,EAAOG,OAAOiQ,YAC5B9mB,WAAU,UAAK0Z,GAAuBhD,EAAQ,iBAC1CA,EAAOiD,cAAc,sBAO7B6M,GAEE,eAAC,GAAD,CAASvM,gBAAc,EAACvvB,UAAU,QAAlC,UACE,cAAC,GAAD,UACE,cAAC,GAAD,CACEe,MAAM,eACNmmB,SAAS,mGACTS,WAAW,KACXR,aAAa,KACbnnB,UAAU,QACV4nB,kBAAkB,cAClBE,sBAAuB,cAAC,KAAD,CAAsB9nB,UAzajD,aAyauEa,KA1axE,KA2aK2nB,qBAAsB,kBAAMyM,GAAkB,IAC9ClN,oBAAoB,aACpBU,uBAAwB,kBAAMqO,GAAmB,QAIrD,cAAC,GAAD,UACE,cAAC,KAAD,CACE9a,KAAMypC,EAAUlpB,gBAChBvJ,QAASA,GACTtQ,QAjQN,CACd2Q,eAAgB,OAChBN,UAAU,EACVD,OAAO,UAsQG,cAAC,GAAD,CACEmF,kBAAmB6D,EAAS,EAAI,eAAiB,cACjD5D,mBAAmB,cACnBE,qBAAsBpM,EAAOqD,aAC7BgJ,oBAAoB,SACpBE,kBAAkB,wBAClBG,mBAAoBoD,EAAS,EAAI,oBAAsB,GACvDlD,iBAAiB,iCAOzB,cAAC,GAAD,CACExO,gBAAc,EACdU,UAAQ,EACR/R,UAAWic,EACXn0B,KAAK,KACL0oB,cAAc,sBACdI,uBAAuB,MACvBC,wBAAwB,cACxBM,0BA5WkB,WACpB6S,GAAmCJ,GACrCnL,GAAa,GAEb8zB,GAAuCxpB,EAAQiB,EAAgClqB,MAAO8pB,EAAe9pB,OAAO0J,MAAK,SAACC,GAChHopC,KACAjtC,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtC41B,QACC5O,OAAM,SAACC,GACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,eACpCknB,SAAQ,kBAAM2C,GAAa,OAE9B7Y,EAAU,CAAE5W,KAAM,sCAAuC4F,MAAO,aAiW5DmiB,yBAAyB,aACzBC,0BAA0B,gBAC1BI,4BAA6B,WACJ,OAAnBwS,EACFl7B,EAAQI,KAAR,0BAA0D,WAAzB86B,EAAe9pB,MAAsB,SAAW,kBAAjF,mBAA6GipB,IAE7GnjB,EAAU,CAAE5W,KAAM,qDAAsD4F,MAAO,aAGnFqiB,OAAQuT,GAlBV,SAoBE,eAAC,GAAD,CAAShO,gBAAc,EAAvB,UACE,cAAC,GAAD,UACE,cAAC,GAAD,CACEpa,MAAM,oBACNO,YAAY,2BACZgN,QAAS8Z,GACT3pB,MAAO8pB,EACP1kB,SAAU2kB,MAId,cAAC,GAAD,CAAc58B,UAAU,QAAxB,SACE,cAAC,GAAD,CACEmV,MAAM,YACN/S,YAAau6B,EACb9pB,MAAOkqB,EACPrnB,YAAY,qBACZgN,QAASma,EACT5kB,SAAU+kB,WAOlB,cAAC,GAAD,CACE5S,gBAAc,EACdU,UAAQ,EACR/R,UAAW8d,EACXh2B,KAAK,KACL0oB,cAAc,gBACdI,uBAAuB,OACvBO,0BA1XiB,WACvBsH,GAAa,GAEb8zB,GAAoCtuB,GAAUza,MAAK,SAACC,GAClDopC,KACAjtC,EAAU,CAAE5W,KAAMya,EAAIL,QAASxU,MAAO,YACtCmvB,GAAmB,MAClBnI,OAAM,SAACC,GACRjW,EAAU,CAAE5W,KAAM6sB,EAAGzS,QAASxU,MAAO,aACpCknB,SAAQ,WACT2C,GAAa,OAiXTxH,OAAQ,WACN8M,GAAmB,IATvB,SAYE,cAAC,GAAD,CAASvH,gBAAc,EAAvB,SAEIyH,EAASttB,OAAS,EAEd,cAAC,KAAD,CAAiB2tB,UArXf,SAACpK,GACjB,GAAKA,EAAOtG,YAAZ,CAIA,IAAM2Q,EAAUtI,GACdgI,EACA/J,EAAOzoB,OAAO4gB,MACd6H,EAAOtG,YAAYvB,OAGrB6R,EAAYK,KA0WE,SACE,cAAC,KAAD,CAAWE,YAAY,YAAvB,SACG,SAACC,GAAD,OACC,sBACExqB,IAAKwqB,EAAkBC,SADzB,UAGGV,EAAS5wB,KAAI,SAACoK,EAAM4U,GAAP,OACZ,cAAC,KAAD,CACgBwS,YAAW,UAAKxS,GAC9BA,MAAOA,EAFT,SAIG,SAACyS,GAAD,OACC,yDAEE5qB,IAAK4qB,EAAkBH,UACnBG,EAAkBC,gBAClBD,EAAkBE,iBAJxB,IAKE/3B,UAAU,8EALZ,SAOE,mBAAGA,UAAU,mBAAb,SAAiCwQ,EAAKjK,SAPxC,gBACgBiK,EAAK5G,OALlB4G,EAAK5G,OAiBb6tB,EAAkB/hB,oBAM3B,cAAC,EAAD,CAAa1V,UAAU,8EAAvB,SACE,mBAAGA,UAAU,mBAAb,+CCrnBd6lD,GAAe,SAAC9lD,GACpB,IACE+lD,EAQE/lD,EARF+lD,qBACAC,EAOEhmD,EAPFgmD,UACA/iC,EAMEjjB,EANFijB,YACAjiB,EAKEhB,EALFgB,MACAilD,EAIEjmD,EAJFimD,cACAC,EAGElmD,EAHFkmD,eACAzlD,EAEET,EAFFS,QACAgvB,EACEzvB,EADFyvB,YAGF,OACE,yBACExvB,UAAS,wBAAmBwvB,EAAc,aAAe,IACzDhvB,QAASA,EAFX,UAIE,eAAC,EAAD,CAAaR,UAAU,cAAvB,UACE,cAAC,EAAD,CACEA,UAAU,gBACVC,MAAO,CAAEmU,gBAAgB,OAAD,OAAS4O,EAAT,QAGV,KAAd+iC,GAEE,cAAC,EAAD,CAAa/lD,UAAS,gBAAW8lD,GAAjC,SACE,4BAAIC,SAMZ,eAAC,EAAD,CAAa/lD,UAAU,gBAAvB,UAEE,eAAC,EAAD,CAAaA,UAAU,iBAAvB,UACE,cAAC,EAAD,CAAaA,UAAU,kBAAvB,SACE,4BAAIgmD,MAGN,cAAC,EAAD,CAAahmD,UAAU,mBAAvB,SACE,4BAAIimD,SAIR,cAAC,EAAD,CAAajmD,UAAU,wBAAvB,SACE,cAAC,EAAD,CACEiB,KAAK,cACLc,KAAMhB,EACNsC,SAAS,kBA0BrBwiD,GAAa1lD,aAAe,CAE1B6iB,YAAa,KACbjiB,MAAO,GACPilD,cAAe,GACfC,eAAgB,GAGhBF,UAAW,GACXD,qBAAsB,cAGtBtlD,QAAS,KAGTgvB,aAAa,GAGAq2B,UCTAK,GA3EoB,SAACnmD,GAClC,IAAQ8I,EAAqB9I,EAArB8I,QAASpH,EAAY1B,EAAZ0B,QACjB,EAAoBuH,oBAAS,GAAtB7G,EAAP,qBACA,EAA0C6G,mBAASH,EAAQ2sB,MAAMjlB,QAAO,SAAC6c,GAAD,OAAOA,EAAE/G,WAAjF,oBAAO8/B,EAAP,KAAsBC,EAAtB,KAEMC,EAAQ,IAAIrgC,KAClBqgC,EAAMC,SAAS,EAAG,EAAG,EAAG,GAQxB,OACE,qCACGnkD,GAAa,cAAC,EAAD,CAASqJ,WAAS,IAChC,cAAC,EAAD,CAAaxL,UAAU,4BAAvB,SACE,eAAC,EAAD,CAAaA,UAAU,kBAAvB,UACE,cAAC,EAAD,CACE6D,UAAQ,EACRC,aAAW,EACX7C,KAAK,SACLc,KAAK,aACLuB,MAAM,mBAIR,cAAC,GAAD,CAASisB,gBAAc,EAACvvB,UAAU,6CAAlC,SACE,cAAC,GAAD,UACE,cAAC,EAAD,CAAaA,UAAU,0BAAvB,SACE,cAAC,GAAD,CACE0V,YAAY,+CACZxU,SAAU,cAAC,IAAD,CAAUlB,UAAU,gBAAgBa,KAAM,KACpDoX,SAAU,SAACnB,GAAD,OA1BVM,EA0BwBN,EAAE1S,OAAOyO,WAzB/CuzC,EAAiBv9C,EAAQ2sB,MACtBjlB,QAAO,SAAC6c,GAAD,OAAOA,EAAE/G,UAChB9V,QAAO,SAAC6c,GAAD,OAAOA,EAAE7mB,KAAKqM,cAAcnC,SAAS2G,EAAWxE,mBAH7C,IAACwE,WAiCR,eAAC,EAAD,CAAapX,UAAU,0BAAvB,UAEImmD,EAAc//C,KAAI,SAACoK,GAAD,OAChB,cAAC,GAAD,CACEwS,YAAW,UAAKjL,2CAAL,uBAAiDvH,EAAKyrB,qBACjEl7B,MAAOyP,EAAKjK,KACZy/C,cAAex1C,EAAK+1C,QACpBN,eAAc,cAASz1C,EAAKg2C,SAC5BT,UAAW,IAAI//B,KAAKxV,EAAK+1C,SAASE,YAAcJ,EAAMI,UAAY,MAAQ,GAC1EjmD,QAAS,WACPiB,EAAQI,KAAK2O,EAAK0H,WAMC,IAAzBiuC,EAAcz8C,QAEZ,cAAC,EAAD,CAAa1J,UAAU,oBAAvB,SACE,cAAC,EAAD,CACEiB,KAAK,SACLc,KAAK,qBACLuB,MAAM,+B,UC/EX,OAA0B,0DC4E1BojD,OA3Da3mD,IAC1B,MAAM,QAAE0B,EAAO,YAAEklD,GAAgB5mD,EAEjC,OACEY,cAACb,EAAW,CACVE,UAAU,gBACVC,MAAO,CACLmU,gBAAgB,QAAD1T,OAAUwsC,GAAW,MACpC74B,eAAgB,QAChBuyC,iBAAkB,YAClBC,oBAAqB,SACrBC,oBAAmC,IAAdH,GACrBzmD,SAEFO,eAACX,EAAW,CAACE,UAAU,uFAAsFE,SAAA,CAC3GS,cAACoqC,KAAI,CAACC,MAAO,IAAI9qC,SACfS,cAAA,KAAGX,UAAU,iEAAgEE,SAAC,oBAIhFS,cAACoqC,KAAI,CAACC,MAAO,IAAI9qC,SACfS,cAAA,KAAGX,UAAU,mEAAkEE,SAAC,kBAKlFS,cAACoqC,KAAI,CAAA7qC,SACHO,eAAA,KAAGT,UAAU,6CAA4CE,SAAA,CAAC,0CAExDS,cAAA,SAAM,0DAKVA,cAACb,EAAW,CAACE,UAAU,oBAAmBE,SACxCS,cAACoqC,KAAI,CAAA7qC,SACHS,cAACb,EAAW,CAACE,UAAU,GAAEE,SACvBS,cAACmB,EAAM,CACLb,KAAK,SACLc,KACEtB,eAAA8B,WAAA,CAAArC,SAAA,CACES,cAACoqC,KAAI,CAACC,MAAO,KAAMC,UAAU,OAAM/qC,SACjCS,cAAComD,KAAoB,CAAClmD,KAAM,OAE9BF,cAAA,QAAMX,UAAU,GAAEE,SAAC,wBAGvBkB,GAAG,6BACHpB,UAAU,sD,QCyBXgnD,OA1EOjnD,IACpB,MAAM,MAAEoP,EAAK,OAAEC,GAAWrP,GAEnBoC,GAAa6G,oBAAS,IACtBi+C,EAAaC,GAAkBl+C,mBAAS,OACxCm+C,EAAcC,GAAmBp+C,mBAAS,GAC3Cq+C,EAAS/6C,iBAAO,MAEtB7C,qBAAU,KACW,MAAfw9C,GACFK,MAED,IAEH,MAAMA,EAAsBA,KAC1BJ,GAAe,GACfE,GAAiBG,GAAYA,EAAU,KAGzC,OACE9mD,eAAA8B,WAAA,CAAArC,SAAA,CACIiC,GAAcxB,cAAC0K,EAAO,CAACG,WAAS,IAClC/K,eAACX,EAAW,CAACE,UAAU,sEAAqEE,SAAA,CAC1FO,eAAA,OACE0O,MAAOA,GAAS,OAChBC,OAAQA,GAAU,OAGlBC,QAAQ,cACRC,KAAK,OACLC,MAAM,6BACNtC,IAAKo6C,EAELpnD,MAAO,CAAE0L,QAAS,QAASzL,SAAA,CAG3BS,cAAA,QAAM6O,EAAE,kNAAkNF,KAAK,UAAUk4C,OAAO,UAAU,eAAa,IAAIC,MAAM,eACjR9mD,cAAA,QAAM6O,EAAE,+MAA+MF,KAAK,UAAUk4C,OAAO,UAAU,eAAa,IAAIC,MAAM,eAC9Q9mD,cAAA,QAAM6O,EAAE,+MAA+MF,KAAK,QAAQk4C,OAAO,QAAQ,eAAa,IAAIC,MAAM,eAC1Q9mD,cAAA,QAAM6O,EAAE,iNAAiNF,KAAK,QAAQk4C,OAAO,QAAQ,eAAa,IAAIC,MAAM,eAC5Q9mD,cAAA,QAAM6O,EAAE,+MAA+MF,KAAK,UAAUk4C,OAAO,UAAU,eAAa,IAAIC,MAAM,eAC9Q9mD,cAAA,QAAM6O,EAAE,2TAA2TF,KAAK,QAAQk4C,OAAO,QAAQ,eAAa,IAAIC,MAAM,eACtX9mD,cAAA,QAAM+O,SAAS,UAAUC,SAAS,UAAUH,EAAE,kVAAkVF,KAAK,QAAQk4C,OAAO,QAAQ,eAAa,IAAIC,MAAM,eACnb9mD,cAAA,QAAM+O,SAAS,UAAUC,SAAS,UAAUH,EAAE,06BAA06BF,KAAK,QAAQk4C,OAAO,QAAQ,eAAa,IAAIC,MAAM,eAC3gC9mD,cAAA,QAAM6O,EAAE,yZAAyZF,KAAK,QAAQk4C,OAAO,QAAQ,eAAa,IAAIC,MAAM,eACpd9mD,cAAA,QAAM6O,EAAE,sqBAAsqBF,KAAK,QAAQk4C,OAAO,QAAQ,eAAa,IAAIC,MAAM,gBACjuB9mD,cAAA,QAAM+O,SAAS,UAAUC,SAAS,UAAUH,EAAE,8uBAA8uBF,KAAK,QAAQk4C,OAAO,QAAQ,eAAa,IAAIC,MAAM,gBAC/0B9mD,cAAA,QAAM+O,SAAS,UAAUC,SAAS,UAAUH,EAAE,ykBAAykBF,KAAK,QAAQk4C,OAAO,QAAQ,eAAa,IAAIC,MAAM,gBAC1qB9mD,cAAA,QAAM6O,EAAE,sVAAsVF,KAAK,QAAQk4C,OAAO,QAAQ,eAAa,IAAIC,MAAM,gBACjZ9mD,cAAA,QAAM6O,EAAE,wTAAwTF,KAAK,QAAQk4C,OAAO,QAAQ,eAAa,IAAIC,MAAM,gBACnX9mD,cAAA,QAAM+O,SAAS,UAAUC,SAAS,UAAUH,EAAE,kJAAkJF,KAAK,UAAUm4C,MAAM,gBACrN9mD,cAAA,QAAM+O,SAAS,UAAUC,SAAS,UAAUH,EAAE,ucAAucF,KAAK,UAAUm4C,MAAM,gBAC1gB9mD,cAAA,QAAM+O,SAAS,UAAUC,SAAS,UAAUH,EAAE,27BAA27BF,KAAK,UAAUm4C,MAAM,gBAC9/B9mD,cAAA,QAAM6O,EAAE,gKAAgKF,KAAK,UAAUm4C,MAAM,gBAC7L9mD,cAAA,QAAM6O,EAAE,kJAAkJF,KAAK,UAAUm4C,MAAM,gBAC/K9mD,cAAA,QAAM6O,EAAE,6XAA6XF,KAAK,UAAUm4C,MAAM,gBAC1Z9mD,cAAA,QAAM6O,EAAE,uqBAAuqBF,KAAK,UAAUm4C,MAAM,kBAxB/rBN,GA4BP1mD,eAACX,EAAW,CAACE,UAAU,mEAAkEE,SAAA,CACvFS,cAAA,KAAGX,UAAU,kCAAkCC,MAAO,CAAEqD,MAAO,WAAYpD,SAAC,iCAC5ES,cAAC+mD,KAAS,CACR7mD,KAAK,KACLb,UAAU,6BACVQ,QAAS8mD,EACTrnD,MAAO,CAAE0nD,OAAQ,uBC5DdC,OAdaA,IAC1BjnD,cAACb,EAAW,CAACE,UAAU,yCAAwCE,SAC7DS,cAACoqC,KAAI,CAAA7qC,SACHS,cAACb,EAAW,CAACE,UAAU,sBAAqBE,SAC1CS,cAACb,EAAW,CAACE,UAAU,sBAAqBE,SAC1CS,cAACqmD,GAAY,CACX73C,MAAM,kBCdH,OAA0B,iDC6C1B04C,OAnCWA,IACxBlnD,cAACb,EAAW,CAACE,UAAU,2CAA0CE,SAC/DS,cAACoqC,KAAI,CAAA7qC,SACHO,eAACX,EAAW,CACVE,UAAU,2BACVC,MAAO,CACL09C,QAAS,SACTvpC,gBAAgB,OAAD1T,OAASonD,GAAiB,MACzC5nD,SAAA,CAEFS,cAAA,KAAGX,UAAU,kCAAiCE,SAAC,iCAC/CO,eAAA,KAAGT,UAAU,yDAAwDE,SAAA,CAAC,yDAEnE,IACDS,cAAA,QAAMX,UAAU,SAAQE,SAAC,oFAA2F,OAGtHS,cAAA,SACAF,eAAA,KAAGT,UAAU,+DAA8DE,SAAA,CAAC,kDAE1ES,cAAA,QAAMX,UAAU,SAAQE,SAAC,wGAA0G,sIAGrIS,cAACoqC,KAAI,CAACE,UAAU,QAAO/qC,SACrBS,cAACmB,EAAM,CACLC,KAAK,iCACLX,GAAG,2BACHpB,UAAU,uCCvBtB,MAAM+nD,GAAmB,CACvB,CACEn+C,GAAI,EACJ7I,MAAO,mBACPinD,aClBW,IAA0B,sEDmBrC5rB,YAAa,wJAEf,CACExyB,GAAI,EACJ7I,MAAO,uBACPinD,aExBW,IAA0B,+DFyBrC5rB,YAAa,4HAEf,CACExyB,GAAI,EACJ7I,MAAO,sBACPinD,aG9BW,IAA0B,gEH+BrC5rB,YAAa,wGA8DF6rB,OAhDeloD,IAC5B,MAAM,QAAE0B,GAAY1B,EAEpB,OACEU,eAACX,EAAW,CAACE,UAAU,0BAAyBE,SAAA,CAC9CS,cAAA,OACE+D,IAAKwjD,GACLjoD,MAAO,CACLoD,SAAU,WACV01B,IAAK,OACL/0B,KAAM,IACN88B,OAAQ,KACR3xB,MAAO,4BACPq+B,SAAU,UAEZ/oC,IAAI,KAGN9D,cAACb,EAAW,CAACE,UAAU,gCAA+BE,SACpDS,cAACoqC,KAAI,CAAA7qC,SACHO,eAACX,EAAW,CAACE,UAAU,aAAYE,SAAA,CACjCS,cAAA,MAAIX,UAAU,8BAA6BE,SAAC,oBAC5CS,cAAA,KAAGX,UAAU,8BAA6BE,SAAC,iKAI3CS,cAACb,EAAW,CAACE,UAAU,sBAAqBE,SACzC6nD,GAAiB3hD,KAAKoK,GACrB/P,eAACX,EAAW,CAEVE,UAAU,WACVQ,QAASA,IAAMiB,EAAQI,KAAK,8BAA8B3B,SAAA,CAE1DS,cAACb,EAAW,CAACE,UAAU,sBAAqBE,SAC1CS,cAAA,OAAK+D,IAAK8L,EAAKw3C,aAAcvjD,IAAG,GAAA/D,OAAK8P,EAAKzP,MAAK,qBAEjDJ,cAAA,KAAGX,UAAU,6CAA4CE,SAAEsQ,EAAKzP,QAChEJ,cAAA,KAAGX,UAAU,oCAAmCE,SAAEsQ,EAAK4rB,gBARlD5rB,EAAK5G,mBIiDbu+C,OAhGGpoD,IAChB,MAAM,iBAAEqoD,EAAgB,aAAEC,EAAY,QAAE5mD,GAAY1B,GAC7CoC,GAAa6G,oBAAS,IACtBs/C,EAASC,GAAcv/C,mBAAS,KAChCsiC,EAAQkd,GAAax/C,mBAAS,IACvB,IAAIgd,MACZsgC,SAAS,EAAG,EAAG,EAAG,GAExB78C,qBAAU,KACR,MAAMg/C,EAAkBL,EAAiBM,0BAA0Bl7C,MAAM4f,GAAMA,EAAEoQ,SAAW,IACxFirB,GACFF,EAAWE,EAAgBnqB,OAAO6H,eAEnC,IAEH18B,qBAAU,KACR,MAAMwK,EAAeA,IAAMu0C,EAAUz+C,OAAO8W,SAI5C,OAFA9W,OAAO8J,iBAAiB,SAAUI,GAE3B,KACLlK,OAAO+J,oBAAoB,SAAUG,MAEtC,IAoBH,OACExT,eAAA8B,WAAA,CAAArC,SAAA,CACIiC,GAAcxB,cAAC0K,EAAO,CAACG,WAAS,IAClC/K,eAACX,EAAW,CAAAI,SAAA,CAEVS,cAACb,EAAW,CAACE,UAAU,mBAAkBE,SACvCO,eAACkoD,KAAM,CAvBbC,MAAM,EACNC,UAAU,EACVC,MAAO,IACPC,aAAc,EACdC,eAAgB,EAChBC,QAAQ,EACRC,UAAU,EACVC,cAAe,IAEfC,WAAY,CACV,CACEh2C,WAAY,IACZ8hB,SAAU,CAAE0zB,MAAM,KAWgB1oD,SAAA,CAE9BS,cAAC+lD,GAAkB,CACjBjlD,QAASA,EACTklD,YAAarb,IAEdgd,EAAQliD,KAAKk4B,GACZ39B,cAACuqC,GAAM,CACLG,iBAAe,EACfb,kBAAgB,EAChBD,WAAYjM,EAAO0E,YAAcnmB,GAAUK,gBAAgBW,eAC3DwJ,WAAYiX,EAAO0E,YAAcnmB,GAAUK,gBAAgBY,gBAC3D/c,MAAOu9B,EAAOv9B,MACdiiB,YAAW,GAAAtiB,OAAKqX,2CAA6B,eAAArX,OAAc49B,EAAO2E,WAClE7G,YAAakC,EAAOlC,YACpBnE,kBAAmBqG,EAAO1W,kBAC1BwQ,qBAAsBA,KACpBiwB,EAAa/pB,EAAO+E,wBAAyB/E,EAAOgF,oBAEtDjL,oBAAqBiG,EAAOvW,oBAC5ByQ,uBAAwBA,KACtB6vB,EAAa/pB,EAAOiF,0BAA2BjF,EAAOkF,sBAExD8H,OAAQA,WAMhB7qC,eAACX,EAAW,CAACE,UAAU,sBAAqBE,SAAA,CAE1CS,cAACinD,GAAmB,IAGpBjnD,cAACknD,GAAiB,IAGlBlnD,cAACsnD,GAAoB,CACnBxmD,QAASA,cC7Gfid,GAAiB,QAEjB2qC,GAAU,yCAAG,uBAAAluC,EAAA,+EAAYU,GAAcgD,IAAd,UAAqBH,GAArB,cAAiD7B,GAAUE,uBAAvE,2CAAH,qDAEVusC,GAAc,yCAAG,WAAOljC,GAAP,UAAAjL,EAAA,+EAAyBU,GAAcgD,IAAd,UAAqBH,GAArB,wCAAmE0H,GAAiBvJ,GAAUE,uBAAvH,2CAAH,sDAEdwsC,GAAc,yCAAG,WAAOnjC,GAAP,UAAAjL,EAAA,+EAAyBU,GAAcgD,IAAd,UAAqBH,GAArB,wCAAmE0H,GAAiBvJ,GAAUE,uBAAvH,2CAAH,sD,gBCcpB,MAAMysC,GAA0B,CAC9BttB,YAAa,UACbD,oBAAqB,GACrBG,YAAa,KACbxyB,GAAI,EACJoyB,iBAAiB,EACjBG,SAAU,GACV51B,KAAM,GACNmiD,0BAA2B,GAC3B3nD,MAAO,KACPmX,IAAK,IAmPQuxC,OAhPS1pD,IACtB,MAAM,cAAEqmB,EAAa,QAAE3kB,EAAO,SAAE2L,EAAQ,OAAEiZ,GAAWtmB,GAC9CoC,EAAWqvB,GAAgBxoB,oBAAS,IACpCo/C,EAAkBsB,GAAuB1gD,mBAASwgD,IAEzD//C,qBAAU,KACJ4c,EACFsjC,IAEAC,MAED,CAACx8C,IAEJ,MAAMw8C,EAAwBA,KAC5Bp4B,GAAa,GACbq4B,GAA2BzjC,GAAe7J,MAAMC,IAC9CktC,EAAoBltC,MACnBmS,QAAQE,SAAQ,IAAM2C,GAAa,MAGlCm4B,EAAwBA,KAC5Bn4B,GAAa,GACbq4B,GAA2BzjC,GAAe7J,MAAMC,IAC9CktC,EAAoBltC,MACnBmS,QAAQE,SAAQ,IAAM2C,GAAa,MAGlC62B,EAAeA,CAACyB,EAAY3mD,KAChC,OAAQ2mD,GACN,KAAKjtC,GAAUK,gBAAgBc,qBAC7BjU,OAAOC,KAAK7G,EAAM,UAClB,MACF,KAAK0Z,GAAUK,gBAAgBgB,sBAC7BnU,OAAOqD,SAASjJ,KAAI,UAAAzD,OAAayC,GACjC,MACF,KAAK0Z,GAAUK,gBAAgBa,qBAC7Btc,EAAQI,KAAKsB,GACb,MACF,KAAK0Z,GAAUK,gBAAgBe,4BAC7BlU,OAAOqD,SAASjJ,KAAI,OAAAzD,OAAUyC,KAO9B4mD,EAAmBnxC,IACvB,OAAQA,EAAM3X,MACZ,KAAK4b,GAAUK,gBAAgBC,0BAC/B,KAAKN,GAAUK,gBAAgBE,2BAC/B,KAAKP,GAAUK,gBAAgBG,4BAC/B,KAAKR,GAAUK,gBAAgBI,kCAC/B,KAAKT,GAAUK,gBAAgBK,2BAC7B,OACE5c,cAACupC,GACC,CACAQ,oBAAqB9xB,EAAM3X,OAAS4b,GAAUK,gBAAgBG,4BAC9DmS,YAAa5W,EAAM3X,OAAS4b,GAAUK,gBAAgBI,kCACtDitB,WAAY3xB,EAAMoqB,YAAcnmB,GAAUK,gBAAgBW,eAC1DwJ,WAAYzO,EAAMoqB,YAAcnmB,GAAUK,gBAAgBY,gBAC1DolB,eAAgBtqB,EAAM3X,OAAS4b,GAAUK,gBAAgBM,uBACzD4lB,WAAYxqB,EAAMwqB,WAClB7+B,iBAAe,EACfxD,MAAO6X,EAAM7X,MACbiiB,YAAW,GAAAtiB,OAAKqX,2CAA6B,eAAArX,OAAckY,EAAMqqB,WACjE7G,YAAaxjB,EAAMwjB,YACnBnE,kBAAmBrf,EAAMgP,kBACzBwQ,qBAAsBA,IAAMiwB,EAAazvC,EAAMyqB,wBAAyBzqB,EAAM0qB,mBAC9EjL,oBAAqBzf,EAAMmP,oBAC3ByQ,uBAAwBA,IAAM6vB,EAAazvC,EAAM2qB,0BAA2B3qB,EAAM4qB,uBAGxF,KAAK3mB,GAAUK,gBAAgBM,uBAC7B,OACE7c,cAACupC,GAAc,CACbhH,gBAAc,EACduH,uBAAwB7xB,EAAMqqB,UAC9BsH,WAAY3xB,EAAMoqB,YAAcnmB,GAAUK,gBAAgBW,eAC1DwJ,WAAYzO,EAAMoqB,YAAcnmB,GAAUK,gBAAgBY,gBAC1DvZ,iBAAe,EACfxD,MAAO6X,EAAM7X,MACbC,WAAW,aACXgiB,YAAW,GAAAtiB,OAAKqX,2CAA6B,eAAArX,OAAckY,EAAMqqB,WACjE7G,YAAaxjB,EAAMwjB,YACnB+N,iBAAiB,aACjBlS,kBAAmBrf,EAAMgP,kBACzBwQ,qBAAsBA,IAAMiwB,EAAazvC,EAAMyqB,wBAAyBzqB,EAAM0qB,mBAC9EpL,mBAAmB,sBACnBG,oBAAqBzf,EAAMmP,oBAC3BuQ,qBAAqB,yBACrBE,uBAAwBA,IAAM6vB,EAAazvC,EAAM2qB,0BAA2B3qB,EAAM4qB,uBAGxF,KAAK3mB,GAAUK,gBAAgBO,yBAC7B,OACE9c,cAACuqC,GAAM,CACLV,kBAAgB,EAChBD,WAAY3xB,EAAMoqB,YAAcnmB,GAAUK,gBAAgBW,eAC1DwJ,WAAYzO,EAAMoqB,YAAcnmB,GAAUK,gBAAgBY,gBAC1D/c,MAAO6X,EAAM7X,MACboqC,sBAAuBid,EAAiBlsB,YACxClZ,YAAW,GAAAtiB,OAAKqX,2CAA6B,eAAArX,OAAckY,EAAMqqB,WACjE7G,YAAaxjB,EAAMwjB,YACnBnE,kBAAmBrf,EAAMgP,kBACzBwQ,qBAAsBA,IAAMiwB,EAAazvC,EAAMyqB,wBAAyBzqB,EAAM0qB,mBAC9EjL,oBAAqBzf,EAAMmP,oBAC3ByQ,uBAAwBA,IAAM6vB,EAAazvC,EAAM2qB,0BAA2B3qB,EAAM4qB,uBAGxF,KAAK3mB,GAAUK,gBAAgBS,qBAC7B,OACEhd,cAACb,EAAW,CAACE,UAAU,yBAAwBE,SAC7CS,cAACoqC,KAAI,CAACC,MAAO,IAAI9qC,SACfS,cAACb,EAAW,CAACkqD,wBAAyB,CAAEC,OAAQrxC,EAAMmqB,eAI9D,KAAKlmB,GAAUK,gBAAgBQ,4BAC7B,MAA6B,UAAzB0qC,EAAiBlwC,IACZ,GAGPvX,cAACgoD,KAAM,CAACzzB,SACN,CACE0zB,MAAM,EACNC,UAAU,EACVC,MAAO,IACPC,aAAc,EACdC,eAAgB,GAEnB9oD,SAGG0Y,EAAMutB,YAAY//B,KAAKoK,GACrB7P,cAACuqC,GAAM,CACLV,kBAAgB,EAChBD,WAAY/5B,EAAKwyB,YAAcnmB,GAAUK,gBAAgBW,eACzDwJ,WAAY7W,EAAKwyB,YAAcnmB,GAAUK,gBAAgBY,gBACzD/c,MAAOyP,EAAKzP,MACZiiB,YAAW,GAAAtiB,OAAKqX,2CAA6B,eAAArX,OAAc8P,EAAKyyB,WAChE7G,YAAa5rB,EAAK4rB,YAClB+O,sBAAuBid,EAAiBlsB,YACxCjE,kBAAmBznB,EAAKoX,kBACxBwQ,qBAAsBA,IAAMiwB,EAAazvC,EAAMyqB,wBAAyBzqB,EAAM0qB,mBAC9EjL,oBAAqB7nB,EAAKuX,oBAC1ByQ,uBAAwBA,IAAM6vB,EAAazvC,EAAM2qB,0BAA2B3qB,EAAM4qB,2BAM9F,QACE,OAAO7iC,cAAA,KAAAT,SAAG,iBAIhB,OACEO,eAAA8B,WAAA,CAAArC,SAAA,CACEO,eAACypD,IAAM,CAAAhqD,SAAA,CACLS,cAAA,SAAAT,SAAQkoD,EAAiBrnD,OAASqnD,EAAiB7hD,OACnD5F,cAAA,QACE4F,KAAK,cACL4jD,QAAS/B,EAAiBhsB,aAAe,GACzC,oBAAkB,SAEpBz7B,cAAA,QACE4F,KAAK,WACL4jD,QAAS/B,EAAiBjsB,UAAY,GACtC,oBAAkB,SAEpBx7B,cAAA,QACEoa,SAAS,WACTovC,QAAS/B,EAAiBrnD,OAASqnD,EAAiB7hD,KACpD,oBAAkB,SAEpB5F,cAAA,QACEoa,SAAS,iBACTovC,QAAS/B,EAAiBhsB,aAAe,GACzC,oBAAkB,SAEnBgsB,EAAiBnsB,qBAChBt7B,cAAA,QACEoa,SAAS,WACTovC,QAAO,GAAAzpD,OAAKqX,2CAA6B,gBAAArX,OAAe0nD,EAAiBnsB,qBACzE,oBAAkB,SAGtBt7B,cAAA,QACE0D,IAAI,YACJF,KAAI,GAAAzD,OAAKqJ,OAAOqD,SAASwP,QAAMlc,OAAG0nD,EAAiBlwC,KACnD,oBAAkB,YAGrB/V,GAAaxB,cAAC0K,EAAO,CAACG,WAAS,IAChC/K,eAACX,EAAW,CAAAI,SAAA,CAIiB,UAAzBkoD,EAAiBlwC,KACfvX,cAACwnD,GAAQ,CACPC,iBAAkBA,EAClBC,aAAcA,KACVtoD,IAKRqoD,EAAiBpsB,mBAAqBosB,EAAiB5B,SAAW4B,EAAiB7B,UAEjF5lD,cAACuqC,GAAM,CACLV,kBAAgB,EAChBa,iBAAe,EACfD,cAAc,SACdrqC,MAAOqnD,EAAiBrsB,YACxB/Y,YAAW,GAAAtiB,OAAKqX,2CAA6B,gBAAArX,OAAe0nD,EAAiBnsB,qBAC7EkP,sBAAuBid,EAAiBlsB,cAI9Cv7B,cAACb,EAAW,CAACE,UAAU,eAAcE,SAEjCkoD,EAAiBM,0BAEbN,EAAiBM,0BAA0BtiD,KAAKw3C,GAC9CmM,EAAiBnM,EAAQpgB,SAAY,IAAKogB,EAAQtf,OAAQr9B,KAAM4b,GAAUK,gBAAgBQ,6BAAgCkgC,EAAQniB,kBAIpI2sB,EAAiBgC,0BAA0BhkD,KAAKw3C,GAC9CmM,EAAiBnM,EAAQpgB,SAAY,IAAKogB,EAAQtf,OAAQr9B,KAAM4b,GAAUK,gBAAgBQ,6BAAgCkgC,EAAQniB,2BChMpJ,MAAM4uB,GAAiB,CACrB9mC,aAAc,GACdikB,KAAM,GACN5+B,gBAAiB,GACjB4d,gBAAiB,GACjBpD,YAAa,GACb9V,aAAc,GACd0C,aAAc,GACdd,cAAe,GACf2X,oBAAqB,GACrBjX,cAAe,GACfE,aAAc,GACd9K,UAAW,GACXwwB,MAAO,GACPnd,YAAa,GACbhL,YAAa,GACbq6B,oBAAqB,GACrBC,oBAAqB,GACrBC,sBAAuB,GACvBC,sBAAuB,GACvBlgC,MAAO,GACP2/B,eAAgB,GAChBC,eAAgB,GAChBv4B,YAAa,GACbF,YAAa,GACb24B,QAAS,IA8VIn/B,oBAFYX,IAAK,CAAQY,KAAMZ,EAAMY,QAEV,KAA3BD,EA3VCvI,IACd,MAAM,KAAEwI,GAASxI,GACVuqD,EAAcC,GAAmBvhD,oBAAS,IAC1C7G,EAAWqvB,GAAgBxoB,oBAAS,IACpCH,EAAS2hD,GAAcxhD,mBAASqhD,KACjC,SAAEI,GAAaC,cAErBjhD,qBAAU,KACRkhD,MACC,CAACpiD,IAEJ,MAAMoiD,EAA0B70B,UAC9BtE,GAAa,GACbo5B,UAEMf,KAAyBttC,MAAMC,IACnCguC,EAAWhuC,MACVmS,QAAQE,SAAQ,KACjB2C,GAAa,OAIXo5B,EAAiBA,KACrB,GAAuB,KAAnBriD,EAAKpB,UACP,IACE,IAAIa,EAAeC,YAAWM,EAAKpB,WACnCojD,IAAkBviD,GAClB,MAAO4mB,GACP27B,GAAgB,QAGlBA,GAAgB,IAUpB,OANA9gD,qBAAU,KACR,MAAM4xC,EAAOzqC,SAASiwB,cAAc,QACpC92B,OAAO8gD,SAAS,EAAG,GACnBC,YAAiBzP,KAChB,CAACoP,IAGFhqD,eAAA8B,WAAA,CAAArC,SAAA,CAEI2I,EAAQi/B,mBACNrnC,eAACypD,IAAM,CAAAhqD,SAAA,CACLS,cAAA,UAAQm1B,OAAK,EAACpxB,IAAG,+CAAAhE,OAAiDmI,EAAQi/B,qBAC1EnnC,cAAA,UAAAT,SAAA,8LAAAQ,OAIwBmI,EAAQi/B,kBAAiB,YAKvDnnC,cAACoqD,GAAU,IACXpqD,cAACqqD,GAAY,IACbrqD,cAAA4B,WAAA,CAAArC,SAEIiC,EAAYxB,cAAC0K,EAAO,CAACG,WAAS,IAE1B/K,eAACwqD,IAAM,CAAA/qD,SAAA,CACLS,cAACuqD,IAAQ,CACPC,OAAK,EACLv/C,KAAK,IACLxK,GAAG,UAELT,cAACoK,IAAK,CACJnJ,KAAK,SACL6G,UAAW2iD,KAMXviD,EAAQ2sB,MAAMpvB,KAAKkI,GACjB3N,cAACulB,GAAQ,CACPtkB,KAAM0M,EAAK4J,IACXzP,UAAWghD,GACX1oD,MAAOuN,EAAKvN,MACZqlB,cAAe9X,EAAK1E,GACpByc,OAAQ/X,EAAK+X,OACbxd,QAASA,EACTN,KAAMA,MAKZ5H,cAACulB,GAAQ,CACPtkB,KAAK,qBACL6G,UAAWy9C,GACXnlD,MAAM,oBACN8H,QAASA,IAGXlI,cAACulB,GAAQ,CACPtkB,KAAK,4BACL6G,UAAW4iD,GACXtqD,MAAM,aACN8H,QAASA,IAITyhD,EAEI7pD,eAAA8B,WAAA,CAAArC,SAAA,CAEES,cAAC2qD,EAAY,CACX1pD,KAAK,0BACL6G,UAAW8iD,GACXxqD,MAAM,eACN8H,QAASA,IAITN,GAAyB,IAAjBA,EAAKxB,KAAK6C,IAAmC,UAAvBrB,EAAKxB,KAAKG,UACxCvG,cAAC2qD,EAAY,CACXH,OAAK,EACLvpD,KAAK,6BACL6G,UAAW+iD,GACXzqD,MAAM,kBACN8H,QAASA,IAIblI,cAAC2qD,EAAY,CACX1pD,KAAK,4BACL6G,UAAWgjD,GACX1qD,MAAM,iBACN8H,QAASA,IAGXlI,cAAC2qD,EAAY,CACXH,OAAK,EACLvpD,KAAK,qCACL6G,UAAWijD,GACX3qD,MAAM,gBACN8H,QAASA,IAGXlI,cAAC2qD,EAAY,CACXH,OAAK,EACLvpD,KAAK,+CACL6G,UAAWkjD,GACX5qD,MAAM,YACN8H,QAASA,IAGXlI,cAAC2qD,EAAY,CACX1pD,KAAK,6CACL6G,UAAWmjD,GACX7qD,MAAM,YACN8H,QAASA,IAGXlI,cAAC2qD,EAAY,CACX1pD,KAAK,+BACL6G,UAAWojD,GACX9qD,MAAM,oBACN8H,QAASA,IAKXlI,cAAC2qD,EAAY,CACX1pD,KAAK,6BACL6G,UAAWqjD,GACX/qD,MAAM,oBACN8H,QAASA,IAGXlI,cAAC2qD,EAAY,CACXH,OAAK,EACLvpD,KAAK,6CACL6G,UAAWsjD,GACXhrD,MAAM,iBACN8H,QAASA,IAGXlI,cAAC2qD,EAAY,CACXH,OAAK,EACLvpD,KAAK,4BACL6G,UAAWsjD,GACXhrD,MAAM,mBACN8H,QAASA,IAIXlI,cAAC2qD,EAAY,CACX1pD,KAAK,wBACL6G,UAAWujD,GACXjrD,MAAM,eACN8H,QAASA,IAGXlI,cAAC2qD,EAAY,CACXH,OAAK,EACLvpD,KAAK,uBACL6G,UAAWwjD,GACXlrD,MAAM,cACN8H,QAASA,IAGXlI,cAAC2qD,EAAY,CACXH,OAAK,EACLvpD,KAAK,oCACL6G,UAAWwjD,GACXlrD,MAAM,cACN8H,QAASA,IAIXlI,cAAC2qD,EAAY,CACX1pD,KAAK,wBACL6G,UAAWyjD,GACXnrD,MAAM,eACN8H,QAASA,IAGXlI,cAAC2qD,EAAY,CACXH,OAAK,EACLvpD,KAAK,uBACL6G,UAAW0jD,GACXprD,MAAM,cACN8H,QAASA,IAGXlI,cAAC2qD,EAAY,CACXH,OAAK,EACLvpD,KAAK,oCACL6G,UAAW0jD,GACXprD,MAAM,cACN8H,QAASA,IAIXlI,cAAC2qD,EAAY,CACXH,OAAK,EACLvpD,KAAK,mCACL6G,UAAW2jD,GACXrrD,MAAM,0BACN8H,QAASA,IAGXlI,cAAC2qD,EAAY,CACXH,OAAK,EACLvpD,KAAK,kCACL6G,UAAW4jD,GACXtrD,MAAM,yBACN8H,QAASA,IAGXlI,cAAC2qD,EAAY,CACXH,OAAK,EACLvpD,KAAK,iDACL6G,UAAW4jD,GACXtrD,MAAM,yBACN8H,QAASA,IAGXlI,cAAC2qD,EAAY,CACXH,OAAK,EACLvpD,KAAK,iDACL6G,UAAW4jD,GACXtrD,MAAM,yBACN8H,QAASA,IAGXlI,cAAC2qD,EAAY,CACXH,OAAK,EACLvpD,KAAK,yDACL6G,UAAW4jD,GACXtrD,MAAM,yBACN8H,QAASA,IAIXlI,cAAC2qD,EAAY,CACXH,OAAK,EACLvpD,KAAK,yBACL6G,UAAW6jD,GACXvrD,MAAM,oBACN8H,QAASA,IAGXlI,cAAC2qD,EAAY,CACXH,OAAK,EACLvpD,KAAK,wCACL6G,UAAW6jD,GACXvrD,MAAM,oBACN8H,QAASA,IAGXlI,cAAC2qD,EAAY,CACXH,OAAK,EACLvpD,KAAK,wCACL6G,UAAW6jD,GACXvrD,MAAM,oBACN8H,QAASA,IAGXlI,cAAC2qD,EAAY,CACXH,OAAK,EACLvpD,KAAK,wCACL6G,UAAW6jD,GACXvrD,MAAM,oBACN8H,QAASA,IAIXlI,cAAC2qD,EAAY,CACX1pD,KAAK,uCACL6G,UAAW8jD,GACXxrD,MAAM,mBACN8H,QAASA,IAIXlI,cAAC2qD,EAAY,CACX1pD,KAAK,+BACL6G,UAAW+jD,GACXzrD,MAAM,gBACN8H,QAASA,IAGXlI,cAAC2qD,EAAY,CACXH,OAAK,EACLvpD,KAAK,cACL6G,UAAWg1C,GACX18C,MAAM,2BACN8H,QAASA,OAIblI,cAACuqD,IAAQ,CAAC9pD,GAAG,sB,gBCjapBqrD,OARHA,IACV9rD,cAAC+rD,IAAa,CAAAxsD,SACZS,cAACgsD,IAAa,CAAAzsD,SACZS,cAACisD,GAAM,QCEEC,GAlBS,SAACC,GACnBA,GAAeA,aAAuBC,UACxC,+BAAqBxwC,MAAK,YAMnB,IALLywC,EAKI,EALJA,OACAC,EAII,EAJJA,OACAC,EAGI,EAHJA,OACAC,EAEI,EAFJA,OACAC,EACI,EADJA,QAEAJ,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAOL,GACPM,EAAQN,OCFdO,IAASriD,OACP,cAAC,IAAMsiD,WAAP,UACE,cAAC,IAAD,CAAUhzC,MAAOA,GAAjB,SACE,cAAC,IAAD,CAAaK,UAAWA,GAAxB,SACE,cAAC,GAAD,CAAK4yC,SANUx1C,WAUrBnH,SAAS48C,eAAe,SAG1BX,O","file":"static/js/main.d25a9d6c.chunk.js","sourcesContent":["// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst CustomBlock = (props) => {\r\n const { className, style, children } = props;\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nCustomBlock.propTypes = {\r\n // MAIN PROPS\r\n className: PropTypes.string,\r\n style: PropTypes.object,\r\n children: PropTypes.any\r\n};\r\n\r\nCustomBlock.defaultProps = {\r\n className: '',\r\n style: {},\r\n children: null\r\n};\r\n\r\nexport default CustomBlock;","/* eslint-disable react/no-unknown-property */\r\n/* eslint-disable jsx-a11y/label-has-associated-control */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\n// COMPONENTS\r\nimport PropTypes from 'prop-types';\r\n// ICONS\r\nimport { TbArrowBigLeft } from 'react-icons/tb';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst SideNav = (props) => {\r\n const {\r\n children,\r\n backgroundColor,\r\n isCollapsible,\r\n isExpanded,\r\n onClick\r\n } = props;\r\n\r\n const iconSize = 20;\r\n return (\r\n \r\n \r\n {children}\r\n \r\n\r\n {\r\n isCollapsible\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// PROPS\r\nSideNav.propTypes = {\r\n // MAIN PROPS\r\n children: PropTypes.any,\r\n backgroundColor: PropTypes.string,\r\n isCollapsible: PropTypes.bool,\r\n isExpanded: PropTypes.bool,\r\n onClick: PropTypes.func\r\n};\r\n\r\n// DEFAULT PROPS\r\nSideNav.defaultProps = {\r\n // MAIN PROPS\r\n children: null,\r\n backgroundColor: 'white--sbg',\r\n isCollapsible: false,\r\n isExpanded: false,\r\n onClick: null\r\n};\r\n\r\nexport default SideNav;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\n// COMPONENTS\r\nimport PropTypes from 'prop-types';\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst NavBlock = (props) => {\r\n const {\r\n title,\r\n titleColor,\r\n type,\r\n iconLeft,\r\n iconRight,\r\n to,\r\n onClick,\r\n backgroundColor,\r\n tooltipText,\r\n tooltipTextColor,\r\n tooltipBackgroundColor,\r\n isCollapsed\r\n } = props;\r\n\r\n const history = useHistory();\r\n\r\n const navigateToPath = (path) => {\r\n history.push(path);\r\n };\r\n\r\n return (\r\n \r\n navigateToPath(to) : onClick}\r\n className={`nav-block ${backgroundColor}`}\r\n >\r\n \r\n {\r\n iconLeft\r\n && (\r\n \r\n {iconLeft}\r\n\r\n {\r\n tooltipText && isCollapsed\r\n && (\r\n \r\n

{tooltipText}

\r\n
\r\n )\r\n }\r\n
\r\n )\r\n }\r\n \r\n

{title}

\r\n
\r\n\r\n
\r\n {\r\n iconRight\r\n && (\r\n \r\n {iconRight}\r\n \r\n )\r\n }\r\n \r\n
\r\n );\r\n};\r\n\r\n// PROPS\r\nNavBlock.propTypes = {\r\n // MAIN PROPS\r\n type: PropTypes.string,\r\n title: PropTypes.string,\r\n titleColor: PropTypes.string,\r\n\r\n // ICON PROPS\r\n iconLeft: PropTypes.any,\r\n iconRight: PropTypes.any,\r\n\r\n // TOOLTIP PROPS\r\n tooltipText: PropTypes.string,\r\n tooltipTextColor: PropTypes.string,\r\n tooltipBackgroundColor: PropTypes.string,\r\n\r\n // APPEARANCE PROPS\r\n backgroundColor: PropTypes.string,\r\n\r\n // NAVIGATION PROPS\r\n to: PropTypes.string,\r\n\r\n // BOOLEAN PROPS\r\n isCollapsed: PropTypes.bool,\r\n\r\n // FUNCTION PROPS\r\n onClick: PropTypes.func,\r\n};\r\n\r\n// DEFAULT PROPS\r\nNavBlock.defaultProps = {\r\n // MAIN PROPS\r\n title: '',\r\n titleColor: 'dark-blue--clr',\r\n type: '',\r\n\r\n // ICON PROPS\r\n iconLeft: null,\r\n iconRight: null,\r\n\r\n // TOOLTIP PROPS\r\n tooltipText: '',\r\n tooltipTextColor: 'white--clr',\r\n tooltipBackgroundColor: 'dark-blue--sbg',\r\n\r\n // APPEARANCE PROPS\r\n backgroundColor: 'white--sbg',\r\n\r\n // NAVIGATION PROPS\r\n to: '',\r\n\r\n // BOOLEAN PROPS\r\n isCollapsed: false,\r\n\r\n // FUNCTION PROPS\r\n onClick: null,\r\n};\r\n\r\nexport default NavBlock;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router-dom';\r\n// ICONS\r\nimport { AiOutlineLoading } from 'react-icons/ai';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst Button = (props) => {\r\n const {\r\n text,\r\n size,\r\n type,\r\n style,\r\n tabIndex,\r\n to,\r\n onClick,\r\n className,\r\n isTextUppercase,\r\n isBadge,\r\n isLoading,\r\n isDisabled,\r\n buttonSubActions,\r\n isSubActionsVisible,\r\n iconLeft,\r\n iconRight\r\n } = props;\r\n\r\n const sizes = {\r\n lg: '--lg',\r\n md: '--md',\r\n sm: '--sm',\r\n xs: '--xs',\r\n xxs: '--xxs',\r\n xxxs: '--xxxs',\r\n icon: '--icon',\r\n input: '--input-button'\r\n };\r\n\r\n const history = useHistory();\r\n\r\n const navigateToPath = (path) => {\r\n history.push(path);\r\n };\r\n\r\n return (\r\n <>\r\n navigateToPath(to) : onClick}\r\n className={`button${size && sizes[size]} ${className} ${isTextUppercase ? 'uppercase' : ''} ${isBadge ? 'badge' : ''}`}\r\n style={style}\r\n disabled={isDisabled || isLoading}\r\n >\r\n {iconLeft}\r\n {isLoading ? : text}\r\n {iconRight}\r\n \r\n {\r\n buttonSubActions\r\n && (\r\n \r\n {buttonSubActions}\r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nButton.propTypes = {\r\n // MAIN PROPS\r\n text: PropTypes.string,\r\n size: PropTypes.string,\r\n type: PropTypes.string,\r\n style: PropTypes.object,\r\n tabIndex: PropTypes.string,\r\n to: PropTypes.string,\r\n onClick: PropTypes.func,\r\n className: PropTypes.string,\r\n isTextUppercase: PropTypes.bool,\r\n isBadge: PropTypes.bool,\r\n isLoading: PropTypes.bool,\r\n isDisabled: PropTypes.bool,\r\n\r\n // SUB ACTIONS PROPS\r\n buttonSubActions: PropTypes.element,\r\n isSubActionsVisible: PropTypes.bool,\r\n\r\n // ICON PROPS\r\n iconLeft: PropTypes.element,\r\n iconRight: PropTypes.element\r\n};\r\n\r\nButton.defaultProps = {\r\n // MAIN PROPS\r\n text: '',\r\n size: '',\r\n type: 'button',\r\n style: {},\r\n tabIndex: -1,\r\n to: null,\r\n onClick: () => { },\r\n className: '',\r\n isTextUppercase: false,\r\n isBadge: false,\r\n isLoading: false,\r\n isDisabled: false,\r\n\r\n // SUB ACTIONS PROPS\r\n buttonSubActions: null,\r\n isSubActionsVisible: false,\r\n\r\n // ICON PROPS\r\n iconLeft: null,\r\n iconRight: null\r\n};\r\n\r\nexport default Button;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Button from './Button';\r\n\r\nconst TextBlock = (props) => {\r\n const {\r\n type,\r\n text,\r\n link,\r\n containerClassName,\r\n className,\r\n position,\r\n color,\r\n actionText,\r\n actionTextColor,\r\n actionBackgroundColor,\r\n actionSize,\r\n actionIconRight,\r\n onClick,\r\n isTargetBlank,\r\n isPadded,\r\n isUppercase,\r\n hasAction,\r\n } = props;\r\n\r\n const textPositions = {\r\n left: 'left',\r\n center: 'center',\r\n right: 'right'\r\n };\r\n\r\n return (\r\n \r\n \r\n {\r\n type === 'header'\r\n && (\r\n

\r\n {text}\r\n

\r\n )\r\n }\r\n\r\n {\r\n type === 'subheader'\r\n && (\r\n

\r\n {text}\r\n

\r\n )\r\n }\r\n\r\n {\r\n type === 'description' &&
{text}
\r\n }\r\n\r\n {\r\n type === 'link'\r\n && (\r\n \r\n {text}\r\n \r\n )\r\n }\r\n
\r\n {\r\n (hasAction && actionText !== '')\r\n && (\r\n \r\n \r\n \r\n )\r\n }\r\n
\r\n );\r\n};\r\n\r\nTextBlock.propTypes = {\r\n // MAIN PROPS\r\n type: PropTypes.string.isRequired,\r\n text: PropTypes.string,\r\n position: PropTypes.string,\r\n color: PropTypes.string,\r\n containerClassName: PropTypes.string,\r\n className: PropTypes.string,\r\n\r\n // LINK PROPS\r\n link: PropTypes.string,\r\n\r\n // ACTION PROPS\r\n actionText: PropTypes.string,\r\n actionTextColor: PropTypes.string,\r\n actionBackgroundColor: PropTypes.string,\r\n actionSize: PropTypes.string,\r\n actionIconRight: PropTypes.any,\r\n\r\n // BOOLEAN PROPS\r\n isTargetBlank: PropTypes.bool,\r\n isPadded: PropTypes.bool,\r\n isUppercase: PropTypes.bool,\r\n hasAction: PropTypes.bool,\r\n\r\n // FUNCTION PROPS\r\n onClick: PropTypes.func,\r\n};\r\n\r\nTextBlock.defaultProps = {\r\n // MAIN PROPS\r\n text: '',\r\n position: 'left',\r\n color: 'dark--clr',\r\n containerClassName: '',\r\n className: '',\r\n\r\n // LINK PROPS\r\n link: '#',\r\n\r\n // ACTION PROPS\r\n actionText: '',\r\n actionTextColor: 'secondary--clr',\r\n actionBackgroundColor: '',\r\n actionSize: '',\r\n actionIconRight: null,\r\n\r\n // BOOLEAN PROPS\r\n isTargetBlank: false,\r\n isPadded: false,\r\n isUppercase: false,\r\n hasAction: false,\r\n\r\n // FUNCTION PROPS\r\n onClick: null,\r\n};\r\n\r\nexport default TextBlock;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useHistory } from 'react-router-dom';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport TextBlock from './TextBlock';\r\n\r\nconst Image = (props) => {\r\n const {\r\n to,\r\n onClick,\r\n containerClassName,\r\n className,\r\n hasRoundCorners,\r\n source,\r\n alt,\r\n title,\r\n style,\r\n } = props;\r\n\r\n const history = useHistory();\r\n\r\n const navigateToPath = (path) => {\r\n history.push(path);\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n (to !== '' || null || onClick)\r\n ? (\r\n navigateToPath(to) : onClick}\r\n className={containerClassName}\r\n type=\"button\"\r\n style={style}\r\n >\r\n \r\n\r\n {\r\n title !== ''\r\n && (\r\n \r\n )\r\n }\r\n \r\n ) : (\r\n \r\n \r\n\r\n {\r\n title !== ''\r\n && (\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nImage.propTypes = {\r\n // MAIN PROPS\r\n to: PropTypes.string,\r\n onClick: PropTypes.func,\r\n containerClassName: PropTypes.string,\r\n className: PropTypes.string,\r\n hasRoundCorners: PropTypes.bool,\r\n source: PropTypes.string.isRequired,\r\n alt: PropTypes.string,\r\n title: PropTypes.string,\r\n};\r\n\r\nImage.defaultProps = {\r\n // MAIN PROPS\r\n to: '',\r\n alt: 'Image',\r\n title: '',\r\n onClick: null,\r\n containerClassName: '',\r\n className: '',\r\n hasRoundCorners: false,\r\n};\r\n\r\nexport default Image;","/* eslint-disable max-len */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\n// COMPONENTS\r\nimport PropTypes from 'prop-types';\r\n// ICONS\r\nimport {\r\n TbSettings,\r\n TbBellRinging2,\r\n // TbInfoCircle,\r\n TbLogout,\r\n // TbMenu\r\n // TbChevronLeft\r\n} from 'react-icons/tb';\r\nimport { HiChevronLeft, HiChevronDown } from 'react-icons/hi';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Button from './Button';\r\nimport NavBlock from './NavBlock';\r\nimport Image from './Image';\r\n\r\nconst TopNav = (props) => {\r\n const {\r\n backgroundColor,\r\n icon,\r\n iconTo,\r\n headerTitle,\r\n headerTitleColor,\r\n returnIconColor,\r\n menuItems,\r\n menuItemTextColor,\r\n menuToggleIcon,\r\n activeMenuItemBackgroundColor,\r\n routePath,\r\n primaryButtonActionText,\r\n userInitials,\r\n userAvatarBackgroundColor,\r\n primaryIconActionOnClick,\r\n secondaryIconActionOnClick,\r\n optionalIconActionOnClick,\r\n hasNavigation,\r\n hasReturnAction,\r\n hasReturnActionText,\r\n hasReturnActionBackground,\r\n hasHeaderTitle,\r\n onClickAvatar,\r\n onClickIcon,\r\n onClick,\r\n } = props;\r\n\r\n const history = useHistory();\r\n const actionIconSize = 25;\r\n const iconSize = 30;\r\n\r\n const navigateToPath = (path) => {\r\n history.push(path);\r\n };\r\n\r\n return (\r\n \r\n {/* MAIN NAVIGATION */}\r\n \r\n \r\n {\r\n hasReturnAction\r\n && (\r\n {\r\n history.goBack();\r\n }}\r\n >\r\n \r\n {hasReturnActionText &&

Back

}\r\n \r\n )\r\n }\r\n {\r\n icon\r\n && (\r\n \r\n \r\n
\r\n )\r\n }\r\n {(hasHeaderTitle) &&

{headerTitle}

}\r\n
\r\n\r\n {\r\n hasNavigation\r\n && (\r\n \r\n
    \r\n {\r\n menuItems.map((menuItem) => (\r\n menuItem.submenuItems\r\n ? (\r\n
  • \r\n navigateToPath(menuItem.to) : menuItem.onClick}\r\n className={`menu-item ${menuItemTextColor}`}\r\n iconRight={}\r\n />\r\n \r\n
      \r\n {\r\n menuItem.submenuItems.map((submenuItem) => (\r\n
    • \r\n \r\n
    • \r\n ))\r\n }\r\n
    \r\n
    \r\n
  • \r\n ) : (\r\n
  • \r\n navigateToPath(menuItem.to) : menuItem.onClick}\r\n />\r\n
  • \r\n )\r\n ))\r\n }\r\n
\r\n
\r\n )\r\n }\r\n\r\n \r\n {primaryButtonActionText}\r\n\r\n \r\n {\r\n optionalIconActionOnClick !== null\r\n && (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n secondaryIconActionOnClick\r\n && (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n primaryButtonActionText\r\n && (\r\n \r\n \r\n \r\n )\r\n }\r\n \r\n\r\n \r\n

{userInitials}

\r\n \r\n
\r\n
\r\n\r\n {/* MOBILE NAVIGATION */}\r\n \r\n \r\n {\r\n icon\r\n && (\r\n \r\n \r\n \r\n )\r\n }\r\n \r\n\r\n \r\n \r\n \r\n

{userInitials}

\r\n \r\n\r\n \r\n {menuToggleIcon}\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\n// PROPS\r\nTopNav.propTypes = {\r\n // MAIN PROPS\r\n backgroundColor: PropTypes.string,\r\n icon: PropTypes.any,\r\n iconTo: PropTypes.string,\r\n headerTitle: PropTypes.string,\r\n headerTitleColor: PropTypes.string,\r\n returnIconColor: PropTypes.string,\r\n menuItems: PropTypes.any,\r\n menuItemTextColor: PropTypes.string,\r\n menuToggleIcon: PropTypes.any,\r\n activeMenuItemBackgroundColor: PropTypes.string,\r\n routePath: PropTypes.string,\r\n\r\n // ACTION PROPS\r\n primaryButtonActionText: PropTypes.string,\r\n userInitials: PropTypes.string,\r\n userAvatarBackgroundColor: PropTypes.string,\r\n\r\n // FUNCTION PROPS\r\n primaryIconActionOnClick: PropTypes.func,\r\n secondaryIconActionOnClick: PropTypes.func,\r\n optionalIconActionOnClick: PropTypes.func,\r\n onClickAvatar: PropTypes.func,\r\n onClickIcon: PropTypes.func,\r\n onClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n hasNavigation: PropTypes.bool,\r\n hasReturnAction: PropTypes.bool,\r\n hasReturnActionText: PropTypes.bool,\r\n hasReturnActionBackground: PropTypes.bool,\r\n hasHeaderTitle: PropTypes.bool,\r\n};\r\n\r\n// DEFAULT PROPS\r\nTopNav.defaultProps = {\r\n // MAIN PROPS\r\n backgroundColor: 'white--sbg',\r\n icon: null,\r\n iconTo: '#',\r\n headerTitle: null,\r\n headerTitleColor: 'secondary--clr',\r\n returnIconColor: 'mid-grey--clr',\r\n menuItems: null,\r\n menuItemTextColor: 'dark-blue--clr',\r\n menuToggleIcon: null,\r\n // activeMenuItemBackgroundColor: 'lighter-blue--sbg info--clr',\r\n activeMenuItemBackgroundColor: 'primary-lighter--sbg primary--clr',\r\n routePath: '',\r\n\r\n // ACTION PROPS\r\n primaryButtonActionText: '',\r\n\r\n // USER PROPS\r\n userInitials: '',\r\n userAvatarBackgroundColor: 'secondary--sbg',\r\n\r\n // FUNCTION PROPS\r\n primaryIconActionOnClick: () => {},\r\n secondaryIconActionOnClick: () => {},\r\n optionalIconActionOnClick: null,\r\n onClickAvatar: null,\r\n onClickIcon: null,\r\n onClick: null,\r\n\r\n // BOOLEAN PROPS\r\n hasNavigation: false,\r\n hasReturnAction: false,\r\n hasReturnActionText: false,\r\n hasReturnActionBackground: false,\r\n hasHeaderTitle: false,\r\n};\r\n\r\nexport default TopNav;","export default __webpack_public_path__ + \"static/media/icon.3f2aec33.svg\";","/* eslint-disable camelcase */\r\n/* eslint-disable default-param-last */\r\n/* eslint-disable no-debugger */\r\nimport { persistReducer } from 'redux-persist';\r\nimport storage from 'redux-persist/lib/storage';\r\nimport jwt_decode from 'jwt-decode';\r\n\r\nexport const actionTypes = {\r\n Login: '[Login] Action',\r\n Logout: '[Logout] Action',\r\n RefreshToken: '[Refresh Token] Action',\r\n};\r\n\r\nconst initialAuthState = {\r\n user: {\r\n firstName: '',\r\n lastName: '',\r\n username: '',\r\n },\r\n authToken: '',\r\n refreshToken: '',\r\n isAdmin: ''\r\n};\r\n\r\nexport const reducer = persistReducer(\r\n { storage, key: 'auth', whitelist: ['user', 'authToken', 'refreshToken', 'isAdmin'] },\r\n (state = initialAuthState, action) => {\r\n switch (action.type) {\r\n case actionTypes.Login: {\r\n const { token } = action.payload;\r\n const userDetail = action.payload;\r\n const decodedToken = jwt_decode(token);\r\n delete userDetail.token;\r\n\r\n return { user: userDetail, authToken: token, isAdmin: decodedToken.IsAdmin === 'True', refreshToken: userDetail.refreshToken };\r\n }\r\n\r\n case actionTypes.RefreshToken: {\r\n const { token } = action.payload;\r\n const userDetail = action.payload;\r\n const decodedToken = jwt_decode(token);\r\n delete userDetail.token;\r\n\r\n return { user: userDetail, authToken: token, isAdmin: decodedToken.IsAdmin === 'True', refreshToken: userDetail.refreshToken };\r\n }\r\n\r\n case actionTypes.Logout: {\r\n return initialAuthState;\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n }\r\n);\r\n\r\nexport const actions = {\r\n login: (user) => ({ type: actionTypes.Login, payload: user }),\r\n logout: () => ({ type: actionTypes.Logout }),\r\n refreshToken: (user) => ({ type: actionTypes.RefreshToken, payload: user }),\r\n};","/* eslint-disable no-unused-vars */\r\n/* eslint-disable max-len */\r\n/* eslint-disable react/jsx-props-no-multi-spaces */\r\n/* eslint-disable react/no-array-index-key */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n// COMPONENTS\r\nimport { Route, useHistory } from 'react-router-dom';\r\nimport { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\r\n// ICONS\r\n// import { BiPencil } from 'react-icons/bi';\r\n// import { FiLogOut } from 'react-icons/fi';\r\n// import { FaFileInvoiceDollar } from 'react-icons/fa';\r\n// import { CgCopy, CgWebsite } from 'react-icons/cg';\r\n// import { RiLayout5Fill, RiListCheck2 } from 'react-icons/ri';\r\n// import { HiChevronRight, HiMenuAlt4 } from 'react-icons/hi';\r\n// import { BsPeopleFill, BsBuildingAdd } from 'react-icons/bs';\r\n// import {\r\n// IoClose,\r\n// IoList,\r\n// IoLinkSharp\r\n// } from 'react-icons/io5';\r\n// ICONS\r\nimport {\r\n TbLayoutGrid,\r\n TbClipboardText,\r\n TbClockEdit,\r\n TbAlignBoxLeftBottom,\r\n TbFileText,\r\n // TbNotes,\r\n // TbCalendarEvent,\r\n // TbBuildingStore,\r\n // TbTools,\r\n TbHome,\r\n // TbFileInvoice,\r\n TbUsers,\r\n TbCategory,\r\n // TbIdBadge2,\r\n TbSettings,\r\n TbHomeShare,\r\n // TbGridDots,\r\n // TbMailForward,\r\n // TbCircleCheck,\r\n // TbBoxMultiple,\r\n // TbArrowRampLeft,\r\n // TbAlignJustified,\r\n // TbKey,\r\n // TbChartBar,\r\n // TbLayoutBoardSplit,\r\n // TbSettingsSearch,\r\n // TbFolders,\r\n TbMenu,\r\n TbX,\r\n TbAlignJustified,\r\n TbBoxAlignBottom,\r\n TbBoxAlignTopLeft,\r\n TbVocabulary,\r\n TbTextCaption,\r\n TbTableRow,\r\n TbLibrary,\r\n TbCalendarMonth,\r\n TbWorldCog\r\n} from 'react-icons/tb';\r\n// CUSTOM COMPONENTS;\r\n// import MobileHeader from '../components/MobileHeader';\r\n// import HeaderBlock from '../components/HeaderBlock';\r\n// import Drawer from '../components/Drawer';\r\n// import SideSheet from '../components/SideSheet';\r\n// import ListBlock from '../components/ListBlock';\r\nimport CustomBlock from '../components/CustomBlock';\r\nimport SideNav from '../components/SideNav';\r\nimport NavBlock from '../components/NavBlock';\r\nimport TopNav from '../components/TopNav';\r\n// ASSETS\r\nimport Icon from '../assets/client/icon.svg';\r\n// REDUX\r\nimport * as auth from '../redux/authRedux';\r\n\r\nconst PrivateRoute = ({ component: Component, ...rest }) => {\r\n const { companyIconPath } = rest.cmsInfo;\r\n const [currentUser, setCurrentUser] = useState([]);\r\n\r\n const [isDrawerOpen, setIsDrawerOpen] = useState(false);\r\n // const [headerLogo, setHeaderLogo] = useState(Icon);\r\n // const [navigationTitleVisible, setNavigationTitleVisible] = useState(false);\r\n // const [subMenuVisible, setSubMenuVisible] = useState(false);\r\n // const [sideSheetOpen, setSideSheetOpen] = useState(false);\r\n const [isSideNavCollapsed, setIsSideNavCollapsed] = useState(false);\r\n const [isSideNavMenuTitleVisible, setIsSideNavMenuTitleVisible] = useState(true);\r\n\r\n const history = useHistory();\r\n const iconSize = 24;\r\n const iconSizeLarge = 30;\r\n const iconColor = 'primary--clr';\r\n const mainPage = '/users';\r\n\r\n useEffect(() => {\r\n if (!currentUser.length > 0) {\r\n setCurrentUser(rest.auth.user);\r\n }\r\n }, []);\r\n\r\n const toggleDrawer = () => {\r\n setIsDrawerOpen(!isDrawerOpen);\r\n };\r\n\r\n const navigateToPath = (path) => {\r\n history.push(path);\r\n setTimeout(() => {\r\n setIsDrawerOpen(false);\r\n }, 250);\r\n };\r\n\r\n // const toggleDrawer = () => {\r\n // setIsDrawerOpen(!isDrawerOpen);\r\n // if (!isDrawerOpen) {\r\n // setTimeout(() => {\r\n // // setHeaderLogo(Logo);\r\n // }, 500);\r\n\r\n // setTimeout(() => {\r\n // setNavigationTitleVisible(true);\r\n // }, 300);\r\n // } else {\r\n // setSubMenuVisible(false);\r\n\r\n // setTimeout(() => {\r\n // setNavigationTitleVisible(false);\r\n // }, 450);\r\n\r\n // setTimeout(() => {\r\n // // setHeaderLogo(Icon);\r\n // }, 550);\r\n // }\r\n // };\r\n\r\n // const navigateToPath = (path) => {\r\n // history.push(path);\r\n // setIsDrawerOpen(false);\r\n // setSideSheetOpen(false);\r\n // enableBodyScroll(body);\r\n // };\r\n\r\n // const toggleSideSheet = () => {\r\n // setSideSheetOpen(!sideSheetOpen);\r\n // if (!sideSheetOpen) {\r\n // disableBodyScroll(body);\r\n // } else {\r\n // enableBodyScroll(body);\r\n // }\r\n // };\r\n\r\n // const navigationItems = [\r\n // {\r\n // id: 1,\r\n // iconLeft: ,\r\n // title: 'Users',\r\n // to: '/admin/management/users',\r\n // // badgeText: '',\r\n // // badgeColor: '',\r\n // isVisible: true,\r\n // iconRightText: '',\r\n // iconRightBackgroundColor: '',\r\n // // buttonRightText: <>,\r\n // },\r\n // {\r\n // id: 3,\r\n // iconLeft: ,\r\n // title: 'Clients',\r\n // to: '/admin/management/clients',\r\n // // badgeText: '',\r\n // // badgeColor: '',\r\n // isVisible: true,\r\n // iconRightText: '',\r\n // iconRightBackgroundColor: '',\r\n // // buttonRightText: <>,\r\n // },\r\n // {\r\n // id: 3,\r\n // iconLeft: ,\r\n // title: 'Bids',\r\n // to: '/admin/management/parcel-shipping-analysis',\r\n // // badgeText: '',\r\n // // badgeColor: '',\r\n // isVisible: true,\r\n // iconRightText: '',\r\n // iconRightBackgroundColor: '',\r\n // // buttonRightText: <>,\r\n // },\r\n // {\r\n // id: 2,\r\n // iconLeft: ,\r\n // title: 'Website Management',\r\n // // to: '#',\r\n // action: () => setSideSheetOpen(!sideSheetOpen),\r\n // badgeText: '',\r\n // badgeColor: '',\r\n // isVisible: rest.auth.isAdmin,\r\n // iconRightText: '',\r\n // iconRightBackgroundColor: '',\r\n // // buttonRightText: <>,\r\n // },\r\n // ];\r\n\r\n // const footerItems = [\r\n // // {\r\n // // id: 0,\r\n // // iconLeft: ,\r\n // // title: 'Settings',\r\n // // iconRightText: '',\r\n // // iconRightBackgroundColor: '',\r\n // // action: () => setSideSheetOpen(!sideSheetOpen),\r\n // // },\r\n // {\r\n // id: 1,\r\n // iconLeft: ,\r\n // title: 'Logout',\r\n // iconRightText: '',\r\n // iconRightBackgroundColor: '',\r\n // action: () => {\r\n // rest.logout();\r\n // },\r\n // },\r\n // ];\r\n\r\n // const websiteManagementItems = [\r\n // {\r\n // id: 0,\r\n // title: 'Menu Items',\r\n // to: '/cms/management/menu-items',\r\n // action: () => { },\r\n // iconLeft: ,\r\n // },\r\n // {\r\n // id: 1,\r\n // title: 'Pages',\r\n // to: '/cms/management/pages',\r\n // action: () => { },\r\n // iconLeft: ,\r\n // },\r\n // // {\r\n // // id: 2,\r\n // // title: 'Events',\r\n // // to: '/cms/management/events',\r\n // // action: () => { },\r\n // // iconLeft: ,\r\n // // },\r\n // {\r\n // id: 3,\r\n // title: 'Content Sections',\r\n // to: '/cms/management/content-sections',\r\n // action: () => { },\r\n // iconLeft: ,\r\n // },\r\n // {\r\n // id: 4,\r\n // title: 'Assets, Links and Resources',\r\n // to: '/cms/management/assets-and-resources',\r\n // action: () => { },\r\n // iconLeft: ,\r\n // },\r\n // {\r\n // id: 5,\r\n // title: 'Footer Items',\r\n // to: '/cms/management/footer-items',\r\n // action: () => { },\r\n // iconLeft: ,\r\n // },\r\n // ];\r\n const topNavMenuItems = [\r\n {\r\n id: 0,\r\n name: 'Dashboard',\r\n to: '/admin/management/parcel-shipping-analysis',\r\n onClick: null,\r\n iconLeft: ,\r\n submenuItems: null,\r\n // isVisible: rest.auth.accessLevel >= 40\r\n },\r\n {\r\n id: 1,\r\n name: 'Clients',\r\n to: '/admin/management/clients',\r\n onClick: null,\r\n iconLeft: ,\r\n submenuItems: null,\r\n // isVisible: rest.auth.accessLevel >= 40\r\n },\r\n {\r\n id: 2,\r\n name: 'Website',\r\n to: null,\r\n onClick: null,\r\n iconLeft: ,\r\n submenuItems: [\r\n {\r\n id: 0,\r\n name: 'Go to Homepage',\r\n to: null,\r\n onClick: () => {\r\n window.open('/home', '_blank');\r\n },\r\n iconLeft: \r\n },\r\n {\r\n id: 1,\r\n name: 'Menu Items',\r\n to: '/cms/management/menu-items',\r\n onClick: null,\r\n iconLeft: \r\n },\r\n {\r\n id: 2,\r\n name: 'Pages',\r\n to: '/cms/management/pages',\r\n onClick: null,\r\n iconLeft: \r\n },\r\n // {\r\n // id: 3,\r\n // name: 'Events',\r\n // to: '/cms/management/events',\r\n // onClick: null,\r\n // iconLeft: \r\n // },\r\n {\r\n id: 4,\r\n name: 'Content Sections',\r\n to: '/cms/management/content-sections',\r\n onClick: null,\r\n iconLeft: \r\n },\r\n {\r\n id: 5,\r\n name: 'Resources',\r\n to: '/cms/management/assets-and-resources',\r\n onClick: null,\r\n iconLeft: \r\n },\r\n {\r\n id: 6,\r\n name: 'Footer Items',\r\n to: '/cms/management/footer-items',\r\n onClick: null,\r\n iconLeft: \r\n },\r\n ]\r\n // isVisible: rest.auth.accessLevel >= 40\r\n },\r\n {\r\n id: 3,\r\n name: 'Settings',\r\n to: '',\r\n onClick: null,\r\n iconLeft: ,\r\n // isVisible: rest.auth.accessLevel >= 40,\r\n submenuItems: [\r\n {\r\n id: 0,\r\n name: 'Users',\r\n to: '/admin/management/users',\r\n iconLeft: \r\n },\r\n ...((currentUser.id === 1 && currentUser.username === 'admin') ? [{\r\n id: 1,\r\n name: 'Website',\r\n to: '/admin/management/settings',\r\n iconLeft: ,\r\n }] : []),\r\n ]\r\n },\r\n ];\r\n\r\n const sideNavMenuItems = [\r\n {\r\n id: 0,\r\n iconLeft: ,\r\n name: 'Dashboard',\r\n link: '/dashboard/',\r\n isVisible: true\r\n },\r\n {\r\n id: 0,\r\n iconLeft: ,\r\n name: 'Sign-In Sheet',\r\n link: '/sign-in-sheet/',\r\n isVisible: true\r\n },\r\n {\r\n id: 1,\r\n iconLeft: ,\r\n name: 'Timesheet',\r\n link: '/time-sheet/',\r\n isVisible: rest.auth.accessLevel >= 40\r\n },\r\n {\r\n id: 2,\r\n iconLeft: ,\r\n name: 'Status Log',\r\n link: '/status-log/',\r\n isVisible: true\r\n },\r\n {\r\n id: 3,\r\n iconLeft: ,\r\n name: 'Force Report',\r\n link: '/force-report/',\r\n isVisible: true\r\n },\r\n ];\r\n\r\n return (\r\n (\r\n <>\r\n x.isVisible)}\r\n menuItems={topNavMenuItems}\r\n onClickIcon={() => {\r\n history.push('/dashboard');\r\n }}\r\n menuToggleIcon={\r\n isDrawerOpen\r\n ? (\r\n \r\n ) : (\r\n \r\n )\r\n }\r\n secondaryIconActionOnClick={() => {\r\n rest.logout();\r\n }}\r\n onClickAvatar={() => {\r\n history.push('/my-profile');\r\n }}\r\n onClick={() => {\r\n toggleDrawer();\r\n }}\r\n />\r\n {/* }\r\n rightItemOnClick={() => toggleDrawer()}\r\n /> */}\r\n\r\n {/* {\r\n toggleDrawer();\r\n }}\r\n navigationItems={\r\n navigationItems.filter((x) => x.isVisible).map((item, index) => (\r\n navigateToPath(item.to) : item.action}\r\n isCollapsed={!navigationTitleVisible}\r\n iconLeft={item.iconLeft}\r\n iconRight={navigationTitleVisible && item.iconRight}\r\n iconRightText={navigationTitleVisible ? item.iconRightText : ''}\r\n iconLeftBadgeText={!navigationTitleVisible ? item.iconRightText : ''}\r\n iconRightBackgroundColor={item.iconRightBackgroundColor}\r\n hasRoundIconRight\r\n rotateIconRight={subMenuVisible}\r\n backgroundColor={rest.path === item.to ? 'secondary-lighter--sbg' : 'lighter-grey--sbg'}\r\n subMenuItems={subMenuVisible && item.hasSubMenu}\r\n />\r\n ))\r\n }\r\n\r\n footerItems={\r\n footerItems.map((item, index) => (\r\n navigateToPath(item.to) : item.action}\r\n isCollapsed={!navigationTitleVisible}\r\n iconLeft={item.iconLeft}\r\n iconRight={navigationTitleVisible && item.iconRight}\r\n iconRightText={navigationTitleVisible ? item.iconRightText : ''}\r\n iconLeftBadgeText={!navigationTitleVisible ? item.iconRightText : ''}\r\n iconRightBackgroundColor={item.iconRightBackgroundColor}\r\n hasRoundIconRight\r\n />\r\n ))\r\n }\r\n /> */}\r\n\r\n {/* MANAGEMENT PAGES SIDESHEET */}\r\n {/* toggleSideSheet()}\r\n >\r\n \r\n \r\n \r\n \r\n\r\n \r\n

Website Management

\r\n
\r\n \r\n {\r\n websiteManagementItems.map((item, index) => (\r\n }\r\n onClick={item.to ? () => navigateToPath(item.to) : item.action}\r\n />\r\n ))\r\n }\r\n \r\n
\r\n */}\r\n\r\n {/* \r\n {\r\n window.open('/home', '_blank');\r\n }}\r\n rightItemPrimaryButtonColor=\"secondary--bg\"\r\n rightItemPrimaryButtonOnClick={() => { }}\r\n rightItemSecondaryButtonText=\"\"\r\n rightItemSecondaryButtonColor=\"primary--bg\"\r\n />\r\n\r\n \r\n \r\n \r\n\r\n */}\r\n \r\n {/* {\r\n setIsSideNavCollapsed(!isSideNavCollapsed);\r\n\r\n if (isSideNavCollapsed) {\r\n setTimeout(() => {\r\n setIsSideNavMenuTitleVisible(true);\r\n }, 200);\r\n } else {\r\n setIsSideNavMenuTitleVisible(false);\r\n }\r\n }}\r\n >\r\n {\r\n sideNavMenuItems.filter((x) => x.isVisible).map((item, index) => (\r\n {\r\n navigateToPath(`${item.link}`);\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\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, { ...auth.actions })(PrivateRoute);","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSpring } from 'react-spring';\r\n// COMPONENTS\r\nimport { AiOutlineLoading } from 'react-icons/ai';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst Overlay = (props) => {\r\n const {\r\n isContained,\r\n overlayDarkness,\r\n onClick,\r\n hasLoader,\r\n } = props;\r\n\r\n const overlayDarknessOptions = {\r\n normal: 'normal',\r\n dark: 'dark'\r\n };\r\n\r\n const animateShow = useSpring({ opacity: 1, from: { opacity: 0 } });\r\n const loader = ();\r\n\r\n return (\r\n <>\r\n {\r\n !isContained\r\n ? (\r\n \r\n {hasLoader && loader}\r\n \r\n )\r\n : (\r\n \r\n {hasLoader && loader}\r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nOverlay.propTypes = {\r\n // MAIN PROPS\r\n isContained: PropTypes.bool,\r\n overlayDarkness: PropTypes.string,\r\n onClick: PropTypes.func,\r\n hasLoader: PropTypes.bool,\r\n};\r\n\r\nOverlay.defaultProps = {\r\n // MAIN PROPS\r\n isContained: false,\r\n overlayDarkness: 'normal',\r\n onClick: (() => {}),\r\n hasLoader: false,\r\n};\r\n\r\nexport default Overlay;","// DEPENDENCIES\r\nimport React, { useRef } from 'react';\r\n// COMPONENTS\r\nimport OverlayTrigger from 'react-bootstrap/OverlayTrigger';\r\nimport Tooltip from 'react-bootstrap/Tooltip';\r\n\r\nconst SocialIconButton = (props) => {\r\n const {\r\n displayIf,\r\n buttonColor,\r\n buttonText,\r\n socialIcon,\r\n onClickAction,\r\n className,\r\n title,\r\n } = props;\r\n const target = useRef(null);\r\n\r\n if (!displayIf) return null;\r\n\r\n return (\r\n <>\r\n {title && (\r\n {\r\n node.classList.remove('hide');\r\n node.classList.add('show');\r\n }}\r\n onExiting={(node) => {\r\n node.classList.remove('show');\r\n node.classList.add('hide');\r\n }}\r\n overlay={(\r\n \r\n {title}\r\n \r\n )}\r\n >\r\n \r\n {socialIcon}\r\n {buttonText && (\r\n

\r\n {buttonText}\r\n

\r\n )}\r\n \r\n \r\n )}\r\n\r\n {/* IF NO TITLE IS PROVIDED, RENDER BUTTON WITHOUT OVERLAYTRIGGER */}\r\n {!title && (\r\n \r\n {socialIcon}\r\n {buttonText && (\r\n

\r\n {buttonText}\r\n

\r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default SocialIconButton;","/* eslint-disable no-unused-vars */\r\n/* eslint-disable max-len */\r\n// DEPENDENCIES\r\nimport React, {\r\n useCallback, useEffect, useState\r\n} from 'react';\r\n// ASSETS\r\nimport {\r\n FaFacebookF, FaLinkedinIn,\r\n FaPhoneAlt,\r\n FaTwitter, FaYoutube\r\n} from 'react-icons/fa';\r\nimport {\r\n RiInstagramLine, RiQuestionAnswerFill, RiSettings3Fill\r\n} from 'react-icons/ri';\r\nimport {\r\n TbMailFilled, TbLock, TbMessage, TbMessageCircle, TbLockFilled\r\n} from 'react-icons/tb';\r\nimport { FiFacebook, FiMenu } from 'react-icons/fi';\r\nimport { BiSolidUser } from 'react-icons/bi';\r\n// COMPONENTS\r\nimport SocialIconButton from './SocialIconButton';\r\nimport CustomBlock from '../CustomBlock';\r\n// SERVICES & HELPERS\r\n\r\nconst SocialIconSet = (props) => {\r\n const { cmsInfo, history, location, containerClassName } = props;\r\n const { phoneNumber, emailAddress } = cmsInfo;\r\n const contactPageURL = cmsInfo.menuItems.find((menuItem) => menuItem.name === 'Contact').customLink;\r\n const [icons, setIcons] = useState([]);\r\n const [isOpen, setIsOpen] = useState(false);\r\n const socialIconColor = '#FFF';\r\n const iconSize = '23';\r\n \r\n const locationConfig = {\r\n headerNav: ['googleMap', 'linkedin', 'twitter', 'facebook', 'instagram', 'contactUs'],\r\n mobileNav: ['mobileMenuToggle'],\r\n drawerNav: ['contactUs', 'googleMap', 'facebook', 'instagram', 'admin'],\r\n footer: ['googleMap', 'instagram', 'linkedin', 'facebook', 'contactUs', 'memberPortal', 'admin'],\r\n };\r\n\r\n const navigateToPage = useCallback((page) => {\r\n history.push(page);\r\n }, [history]);\r\n\r\n const openInNewTab = useCallback((link) => {\r\n window.open(link, '_blank');\r\n }, []);\r\n\r\n const sendEmail = useCallback((email) => {\r\n window.open(`mailto:${email}`, '_self');\r\n }, []);\r\n\r\n const callPhoneNumber = useCallback((tel) => {\r\n window.open(`tel:${tel}`, '_self');\r\n }, []);\r\n\r\n const socialIconConfig = [\r\n {\r\n platform: 'youtube',\r\n displayIf: cmsInfo.youtubeLink !== null,\r\n title: 'YouTube',\r\n buttonColor: '#F52424',\r\n socialIcon: ,\r\n onClickAction: () => openInNewTab(cmsInfo.youtubeLink)\r\n },\r\n {\r\n platform: 'twitter',\r\n displayIf: cmsInfo.twitterLink !== null,\r\n title: 'Twitter',\r\n buttonColor: '#25A4EF',\r\n socialIcon: ,\r\n onClickAction: () => openInNewTab(cmsInfo.twitterLink)\r\n },\r\n {\r\n platform: 'googleMap',\r\n displayIf: cmsInfo.googleMapLink !== null,\r\n title: 'Find Us',\r\n buttonColor: '#FAFAFA',\r\n onClickAction: () => openInNewTab(cmsInfo.googleMapLink),\r\n socialIcon: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n platform: 'tikTok',\r\n displayIf: cmsInfo.tikTokLink !== null,\r\n title: 'TikTok',\r\n buttonColor: '#080808',\r\n onClickAction: () => openInNewTab(cmsInfo.tikTokLink),\r\n socialIcon: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n platform: 'instagram',\r\n displayIf: cmsInfo.instagramLink !== null,\r\n title: 'Instagram',\r\n buttonColor: 'radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%,#d6249f 60%,#285AEB 90%)',\r\n socialIcon: ,\r\n onClickAction: () => openInNewTab(cmsInfo.instagramLink)\r\n },\r\n {\r\n platform: 'linkedin',\r\n displayIf: cmsInfo.linkedInLink !== null,\r\n title: 'LinkedIn',\r\n buttonColor: '#0966C2',\r\n socialIcon: ,\r\n onClickAction: () => openInNewTab(cmsInfo.linkedInLink),\r\n },\r\n {\r\n platform: 'facebook',\r\n displayIf: cmsInfo.facebookLink !== null,\r\n title: 'Facebook',\r\n buttonColor: 'linear-gradient(to top, #0062E0, #19AFFF)',\r\n socialIcon: ,\r\n onClickAction: () => openInNewTab(cmsInfo.facebookLink),\r\n },\r\n {\r\n platform: 'phone',\r\n displayIf: phoneNumber !== null,\r\n title: `${phoneNumber}`,\r\n buttonColor: '#444444',\r\n socialIcon: ,\r\n onClickAction: () => callPhoneNumber(phoneNumber),\r\n },\r\n {\r\n platform: 'email',\r\n displayIf: emailAddress !== null,\r\n title: `${emailAddress}`,\r\n buttonColor: '#444444',\r\n socialIcon: ,\r\n onClickAction: () => sendEmail(emailAddress),\r\n },\r\n {\r\n platform: 'contactUs',\r\n displayIf: true,\r\n title: 'Contact Us',\r\n buttonColor: '#444444',\r\n socialIcon: (\r\n \r\n ),\r\n onClickAction: () => navigateToPage(contactPageURL || '/'),\r\n className: 'contact-us',\r\n },\r\n // {\r\n // platform: 'memberPortal',\r\n // displayIf: true,\r\n // title: 'Members',\r\n // // buttonText: 'Members',\r\n // buttonColor: 'linear-gradient(45deg, #FB8500, #FF3C00)',\r\n // socialIcon: ,\r\n // onClickAction: () => setIsMembersLoginModalOpen(true),\r\n // // className: 'member-portal',\r\n // },\r\n // {\r\n // platform: 'mobileMenuToggle',\r\n // displayIf: true,\r\n // socialIcon: ,\r\n // onClickAction: () => toggleDrawer(),\r\n // className: 'mobile-menu-toggle',\r\n // },\r\n {\r\n platform: 'admin',\r\n displayIf: true,\r\n title: 'Admin Login',\r\n buttonColor: '#004E8C',\r\n socialIcon: (\r\n \r\n ),\r\n onClickAction: () => navigateToPage('/cms/management/pages'),\r\n className: 'admin',\r\n },\r\n ];\r\n\r\n useEffect(() => {\r\n if (location) {\r\n const iconSet = socialIconConfig.filter((item) => locationConfig[location].includes(item.platform));\r\n setIcons(iconSet);\r\n }\r\n }, [location]);\r\n\r\n return (\r\n \r\n {icons.map((item) => (\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default SocialIconSet;","/* eslint-disable max-len */\r\n// USED IN QUILL TEXT EDITOR COLOR OPTIONS & DEV ENV HEADER\r\nconst getThemeColors = () => {\r\n const root = document.documentElement;\r\n const colorsRef = {\r\n theme: {\r\n primaryColor: '--primary-color',\r\n primaryLighterColor: '--primary-lighter-color',\r\n primaryLightestColor: '--primary-lightest-color',\r\n secondaryColor: '--secondary-color',\r\n secondaryLighterColor: '--secondary-lighter-color',\r\n secondaryLightestColor: '--secondary-lightest-color',\r\n altColor: '--alt-color',\r\n },\r\n basic: {\r\n whiteColor: '--white-color',\r\n blackColor: '--black-color',\r\n lightColor: '--light-color',\r\n lighterColor: '--lighter-color',\r\n darkColor: '--dark-color',\r\n },\r\n grey: {\r\n greyColor: '--grey-color',\r\n lightGreyColor: '--light-grey-color',\r\n lighterGreyColor: '--lighter-grey-color',\r\n midGreyColor: '--mid-grey-color',\r\n darkGreyColor: '--dark-grey-color',\r\n },\r\n state: {\r\n successColor: '--success-color',\r\n dangerColor: '--danger-color',\r\n infoColor: '--info-color',\r\n warningColor: '--warning-color',\r\n },\r\n };\r\n\r\n const themeColorsArray = Object.keys(colorsRef).flatMap((group) => Object.keys(colorsRef[group]).map((key) => ({\r\n group,\r\n name: key\r\n .replace(/Color$/, '')\r\n .replace(/([a-z])([A-Z])/g, '$1-$2')\r\n .toLowerCase(),\r\n value: getComputedStyle(root).getPropertyValue(colorsRef[group][key]).trim(),\r\n })));\r\n\r\n return themeColorsArray;\r\n};\r\n\r\nexport default { getThemeColors };","/* eslint-disable consistent-return */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n// ICONS\r\nimport {\r\n TbArrowBarBoth,\r\n TbSquareRoundedMinusFilled,\r\n TbSquareRoundedPlusFilled,\r\n TbBrandBootstrap\r\n} from 'react-icons/tb';\r\n// COMPONENTS\r\nimport {\r\n Container, Row, Col\r\n} from 'react-bootstrap';\r\nimport CustomBlock from '../CustomBlock';\r\n// SERVICES & HELPERS\r\nimport themeHelper from '../../helpers/themeHelper';\r\n\r\nconst TopHeaderDevReference = () => {\r\n // const { } = props;\r\n const collapseToggleContentOnScroll = true;\r\n const [isDevHeaderToggled, setIsDevHeaderToggled] = useState(false);\r\n // DATA\r\n const [breakpoint, setBreakpoint] = useState(null);\r\n const [screenWidth, setScreenWidth] = useState(window.innerWidth);\r\n const [themeColors, setThemeColors] = useState([]);\r\n\r\n useEffect(() => {\r\n const getCurrentBreakpoint = () => {\r\n const width = window.innerWidth;\r\n setScreenWidth(width);\r\n if (width < 576) return 'xs';\r\n if (width >= 576 && width < 768) return 'sm';\r\n if (width >= 768 && width < 992) return 'md';\r\n if (width >= 992 && width < 1200) return 'lg';\r\n if (width >= 1200 && width < 1400) return 'xl';\r\n return 'xxl';\r\n };\r\n \r\n const handleResize = () => setBreakpoint(getCurrentBreakpoint());\r\n setBreakpoint(getCurrentBreakpoint());\r\n window.addEventListener('resize', handleResize);\r\n return () => window.removeEventListener('resize', handleResize);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!themeColors.length > 0) {\r\n const themeColorsData = themeHelper.getThemeColors();\r\n setThemeColors(themeColorsData);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (collapseToggleContentOnScroll) {\r\n const handleScroll = () => {\r\n if (isDevHeaderToggled) {\r\n setIsDevHeaderToggled(false);\r\n }\r\n };\r\n \r\n window.addEventListener('scroll', handleScroll);\r\n return () => {\r\n window.removeEventListener('scroll', handleScroll);\r\n };\r\n }\r\n }, [isDevHeaderToggled]);\r\n\r\n return (\r\n \r\n {/* MAIN */}\r\n \r\n \r\n setIsDevHeaderToggled(!isDevHeaderToggled)}>\r\n \r\n DEV ENV\r\n

\r\n

\r\n \r\n {screenWidth}\r\n {' '}\r\n px\r\n

\r\n

\r\n \r\n {breakpoint}\r\n

\r\n\r\n \r\n {isDevHeaderToggled ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
\r\n \r\n
\r\n\r\n {/* TOGGLED CONTENT */}\r\n {isDevHeaderToggled && (\r\n \r\n {/* THEME COLORS */}\r\n \r\n

Theme Colors

\r\n {themeColors && (\r\n \r\n {themeColors.map((color) => (\r\n \r\n \r\n \r\n {color.name}\r\n

\r\n
\r\n ))}\r\n \r\n )}\r\n \r\n\r\n {/* REFERENCE 2 */}\r\n \r\n

Dev Reference 2

\r\n {true && (\r\n \r\n ...\r\n \r\n )}\r\n
\r\n\r\n {/* REFERENCE 3 */}\r\n \r\n

Dev Reference 3

\r\n {true && (\r\n \r\n ...\r\n \r\n )}\r\n
\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, null)(TopHeaderDevReference);","/* eslint-disable no-nested-ternary */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// COMPONENTS\r\nimport Select from 'react-select';\r\nimport Async from 'react-select/async';\r\nimport CreatableSelect from 'react-select/creatable';\r\n// ICONS\r\nimport { AiOutlineLoading } from 'react-icons/ai';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst SelectBlock = (props) => {\r\n const {\r\n containerClassName,\r\n label,\r\n labelColor,\r\n inputLabel,\r\n inputState,\r\n errorMessage,\r\n successMessage,\r\n warningMessage,\r\n className,\r\n backgroundColor,\r\n placeholder,\r\n isAsync,\r\n isCreatable,\r\n isLabelLoading,\r\n isMulti,\r\n isRequired,\r\n isDisabled,\r\n hasBorder,\r\n } = props;\r\n\r\n const errorMessageSuffix = 'is required';\r\n const inputStates = {\r\n error: 'error',\r\n warning: 'warning',\r\n success: 'success',\r\n disabled: 'disabled'\r\n };\r\n\r\n return (\r\n \r\n {\r\n inputLabel\r\n && (\r\n \r\n {inputLabel}\r\n {isRequired && *}\r\n {\r\n isLabelLoading\r\n && (\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n {\r\n label\r\n && (\r\n \r\n {label}\r\n {isRequired && *}\r\n {\r\n isLabelLoading\r\n && (\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n\r\n {\r\n isAsync\r\n ? (\r\n \r\n )\r\n : (\r\n isCreatable\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n )\r\n )\r\n }\r\n\r\n {\r\n inputState === 'error'\r\n && (\r\n \r\n {errorMessage || (inputLabel || label ? (inputLabel || `${label} ${errorMessageSuffix}`) : 'Error message undefined')}\r\n \r\n )\r\n }\r\n {\r\n inputState === 'warning'\r\n && (\r\n \r\n {warningMessage}\r\n \r\n )\r\n }\r\n {\r\n inputState === 'success'\r\n && (\r\n \r\n {successMessage}\r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nSelectBlock.propTypes = {\r\n // CONTAINER PROPS\r\n containerClassName: PropTypes.string,\r\n\r\n // LABEL PROPS\r\n label: PropTypes.string,\r\n labelColor: PropTypes.string,\r\n inputLabel: PropTypes.string,\r\n\r\n // STATE PROPS\r\n inputState: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n successMessage: PropTypes.string,\r\n warningMessage: PropTypes.string,\r\n\r\n // INPUT PROPS\r\n className: PropTypes.string,\r\n backgroundColor: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n\r\n // BOOLEAN PROPS\r\n isAsync: PropTypes.bool,\r\n isCreatable: PropTypes.bool,\r\n isLabelLoading: PropTypes.bool,\r\n isMulti: PropTypes.bool,\r\n isRequired: PropTypes.bool,\r\n isDisabled: PropTypes.bool,\r\n hasBorder: PropTypes.bool,\r\n};\r\n\r\nSelectBlock.defaultProps = {\r\n // CONTAINER PROPS\r\n containerClassName: '',\r\n\r\n // LABEL PROPS\r\n label: '',\r\n labelColor: '',\r\n inputLabel: '',\r\n\r\n // STATE PROPS\r\n inputState: '',\r\n errorMessage: '',\r\n successMessage: '',\r\n warningMessage: '',\r\n\r\n // INPUT PROPS\r\n className: '',\r\n backgroundColor: 'light--sbg',\r\n placeholder: '',\r\n\r\n // BOOLEAN PROPS\r\n isAsync: false,\r\n isCreatable: false,\r\n isLabelLoading: false,\r\n isMulti: false,\r\n isRequired: false,\r\n isDisabled: false,\r\n hasBorder: false,\r\n};\r\n\r\nexport default SelectBlock;","/* eslint-disable react/self-closing-comp */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Button from './Button';\r\n\r\nconst Chip = (props) => {\r\n const {\r\n label,\r\n labelColor,\r\n backgroundColor,\r\n onClick,\r\n hasBorder\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nChip.propTypes = {\r\n // MAIN PROPS\r\n label: PropTypes.string.isRequired,\r\n labelColor: PropTypes.string,\r\n backgroundColor: PropTypes.string,\r\n\r\n // FUNCTION PROPS\r\n onClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n hasBorder: PropTypes.bool\r\n};\r\n\r\nChip.defaultProps = {\r\n // MAIN PROPS\r\n labelColor: 'info--clr',\r\n backgroundColor: 'lighter-blue--sbg',\r\n\r\n // FUNCTION PROPS\r\n onClick: null,\r\n\r\n // BOOLEAN PROPS\r\n hasBorder: false\r\n};\r\n\r\nexport default Chip;","/* eslint-disable consistent-return */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport { connect } from 'react-redux';\r\n// COMPONENTS\r\nimport CustomBlock from '../CustomBlock';\r\nimport SelectBlock from '../SelectBlock';\r\nimport Image from '../Image';\r\nimport Chip from '../Chip';\r\n\r\nconst TopHeaderSearchAndFilter = (props) => {\r\n const {\r\n hasSearchBlock,\r\n hasChipFilter,\r\n onScroll,\r\n history,\r\n auth\r\n } = props;\r\n\r\n const popularSelections = [\r\n { id: 1, name: 'Filter 1', url: '' },\r\n { id: 2, name: 'Filter 2', url: '' },\r\n { id: 3, name: 'Filter 3', url: '' },\r\n { id: 4, name: 'Filter 4', url: '' },\r\n { id: 5, name: 'Filter 5', url: '' },\r\n ];\r\n\r\n const formatOptionLabel = (option) => (\r\n \r\n \r\n \r\n \r\n

{option.label}

\r\n
\r\n );\r\n\r\n const openInNewTab = (link) => {\r\n window.open(link, '_blank');\r\n };\r\n\r\n const handleSearchKeyDown = (e) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n history.push('/deals', {\r\n predefinedFilter: {\r\n sortBy: '',\r\n priceRange: '',\r\n categories: null,\r\n searchTerm: e.target.value,\r\n productTypes: '',\r\n featuredSections: null,\r\n skip: 0,\r\n },\r\n });\r\n e.target.blur();\r\n }\r\n };\r\n\r\n return (\r\n \r\n {/* SEARCH BLOCK */}\r\n {hasSearchBlock && (\r\n \r\n (e.inputValue !== '' ? 'No Results Available' : 'Start typing and press enter to search')}\r\n formatOptionLabel={formatOptionLabel}\r\n onChange={(e) => history.push(`/deal/details/${e.value}`)}\r\n />\r\n \r\n )}\r\n\r\n {/* CHIP FILTER */}\r\n {hasChipFilter && (\r\n \r\n \r\n {popularSelections.map((item) => (\r\n {\r\n openInNewTab(auth.authToken ? '/cms/management/pages' : '/login');\r\n }}\r\n />\r\n ))}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, null)(TopHeaderSearchAndFilter);","/* eslint-disable react/self-closing-comp */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// COMPONENTS\r\nimport CustomBlock from '../CustomBlock';\r\nimport Overlay from '../Overlay';\r\n\r\nconst DrawerNavigation = (props) => {\r\n const {\r\n headerItems,\r\n children,\r\n footerItems,\r\n backgroundColor,\r\n onClick,\r\n isOpen,\r\n hasOverlay,\r\n willCloseOnMaskPress,\r\n hasShadow,\r\n } = props;\r\n\r\n return (\r\n <>\r\n {\r\n (isOpen && hasOverlay)\r\n && (\r\n \r\n )\r\n }\r\n \r\n \r\n {headerItems}\r\n \r\n\r\n \r\n {children}\r\n \r\n\r\n \r\n {footerItems}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nDrawerNavigation.propTypes = {\r\n // MAIN PROPS\r\n headerItems: PropTypes.any,\r\n children: PropTypes.any,\r\n footerItems: PropTypes.any,\r\n backgroundColor: PropTypes.string,\r\n\r\n // FUNCTION PROPS\r\n onClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n isOpen: PropTypes.bool,\r\n hasOverlay: PropTypes.bool,\r\n willCloseOnMaskPress: PropTypes.bool,\r\n hasShadow: PropTypes.bool,\r\n};\r\n\r\nDrawerNavigation.defaultProps = {\r\n // MAIN PROPS\r\n headerItems: null,\r\n children: null,\r\n footerItems: null,\r\n backgroundColor: 'white--sbg',\r\n\r\n // FUNCTION PROPS\r\n onClick: null,\r\n\r\n // BOOLEAN PROPS\r\n isOpen: false,\r\n hasOverlay: false,\r\n willCloseOnMaskPress: false,\r\n hasShadow: false,\r\n};\r\n\r\nexport default DrawerNavigation;","/* eslint-disable default-param-last */\r\nexport const actionTypes = {\r\n ShowAlert: 'SHOW_ALERT',\r\n HideAlert: 'HIDE_ALERT',\r\n};\r\n\r\nconst initialAlertState = {\r\n visible: false,\r\n text: '',\r\n state: 'success',\r\n};\r\n\r\nexport const reducer = (state = initialAlertState, action) => {\r\n switch (action.type) {\r\n case actionTypes.ShowAlert: {\r\n return {\r\n visible: true,\r\n text: action.payload.text,\r\n state: action.payload.state,\r\n };\r\n }\r\n\r\n case actionTypes.HideAlert: {\r\n return {\r\n ...state,\r\n visible: false\r\n };\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const actions = {\r\n showAlert: (model) => ({ type: actionTypes.ShowAlert, payload: model }),\r\n hideAlert: () => ({ type: actionTypes.HideAlert }),\r\n};","/* eslint-disable default-param-last */\r\n/* eslint-disable no-console */\r\nexport const actionTypes = {\r\n ShowConfirmModal: 'SHOW_CONFIRM_MODAL',\r\n HideConfirmModal: 'HIDE_CONFIRM_MODAL',\r\n SetProcessing: 'SET_PROCESSING'\r\n};\r\n\r\nconst initialConfirmModalState = {\r\n isVisible: false,\r\n title: '',\r\n text: '',\r\n btnAction: () => {\r\n console.log('Action not defined');\r\n },\r\n closeBtnAction: null,\r\n rightBtnText: '',\r\n isProcessing: false\r\n};\r\n\r\nexport const reducer = (state = initialConfirmModalState, action) => {\r\n switch (action.type) {\r\n case actionTypes.ShowConfirmModal: {\r\n return {\r\n isVisible: true,\r\n title: action.payload.title,\r\n text: action.payload.text,\r\n rightBtnText: action.payload.rightBtnText,\r\n btnAction: action.payload.btnAction,\r\n closeBtnAction: action.payload.closeBtnAction,\r\n isProcessing: false\r\n };\r\n }\r\n\r\n case actionTypes.SetProcessing: {\r\n return {\r\n ...state,\r\n isProcessing: true\r\n };\r\n }\r\n\r\n case actionTypes.HideConfirmModal: {\r\n return initialConfirmModalState;\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const actions = {\r\n showConfirmModal: (model) => ({ type: actionTypes.ShowConfirmModal, payload: model }),\r\n hideConfirmModal: () => ({ type: actionTypes.HideConfirmModal }),\r\n setProcessing: () => ({ type: actionTypes.SetProcessing })\r\n};","/* eslint-disable import/prefer-default-export */\r\n/* eslint-disable no-debugger */\r\nimport { combineReducers } from 'redux';\r\nimport * as auth from './authRedux';\r\nimport * as alertToast from './alertToastRedux';\r\nimport * as confirmModal from './confirmModalRedux';\r\n\r\nconst appReducer = combineReducers({\r\n auth: auth.reducer,\r\n alertToast: alertToast.reducer,\r\n confirmModal: confirmModal.reducer,\r\n});\r\n\r\nexport const rootReducer = (state, action) => appReducer(state, action);","import { configureStore, getDefaultMiddleware } from '@reduxjs/toolkit';\r\nimport createSagaMiddleware from 'redux-saga';\r\nimport { reduxBatch } from '@manaflair/redux-batch';\r\nimport { persistStore } from 'redux-persist';\r\nimport { rootReducer } from './rootReducer';\r\n\r\nconst sagaMiddleware = createSagaMiddleware();\r\nconst middleware = [\r\n ...getDefaultMiddleware({\r\n immutableCheck: false,\r\n serializableCheck: false,\r\n thunk: true\r\n }),\r\n sagaMiddleware\r\n];\r\n\r\nconst store = configureStore({\r\n reducer: rootReducer,\r\n middleware,\r\n devTools: process.env.NODE_ENV !== 'production',\r\n enhancers: [reduxBatch]\r\n});\r\n\r\n/**\r\n * @see https://github.com/rt2zz/redux-persist#persiststorestore-config-callback\r\n * @see https://github.com/rt2zz/redux-persist#persistor-object\r\n */\r\nexport const persistor = persistStore(store);\r\n\r\nexport default store;","/* eslint-disable consistent-return */\r\n/* eslint-disable no-underscore-dangle */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable import/no-cycle */\r\n/* eslint-disable no-prototype-builtins */\r\n/* eslint-disable no-empty */\r\n/* eslint-disable no-console */\r\nimport store from '../../redux/store';\r\nimport axiosInstance from '../apiService';\r\nimport { actions } from '../../redux/authRedux';\r\n\r\nconst isEnabled = (config, property) => config.hasOwnProperty(property) && config[property];\r\n\r\n// handles requests going from app to server\r\nconst requestHandler = async (request) => {\r\n if (isEnabled(request, 'requestHandlerEnabled')) {\r\n const { auth: { authToken } } = store.getState();\r\n request.headers.Authorization = `Bearer ${authToken}`;\r\n }\r\n request.headers['Content-Type'] = !isEnabled(request, 'fileHandler') ? 'application/json' : 'multipart/form-data';\r\n request.headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS, DELETE';\r\n return request;\r\n};\r\n\r\n// handles responses coming from server to app\r\nconst successHandler = (response) => {\r\n if (isEnabled(response.config, 'responseHandlerEnabled')) {\r\n return response.data;\r\n }\r\n\r\n return response;\r\n};\r\n\r\nconst errorHandler = async (err) => {\r\n if (isEnabled(err.config, 'responseHandlerEnabled')) {\r\n // console.log(\"I am handling error responses\");\r\n }\r\n\r\n // trying again when 401 to refresh the token\r\n const originalConfig = { ...err.config };\r\n if (originalConfig.url !== '/Users/authenticate' && err.response) {\r\n // Access Token was Expired\r\n if (err.response.status === 401 && !originalConfig._retry) {\r\n originalConfig._retry = true;\r\n\r\n try {\r\n const { auth } = store.getState();\r\n const rs = await axiosInstance.post('/Users/refreshToken', { refreshToken: auth.refreshToken }, { headers: { Authorization: `Bearer ${auth.authToken}` } });\r\n\r\n if (rs.data.success) {\r\n store.dispatch(actions.refreshToken(rs.data.user));\r\n return axiosInstance(originalConfig);\r\n }\r\n\r\n throw Error(rs.data.message);\r\n } catch (_error) {\r\n await defaultErrorHandler(err);\r\n }\r\n }\r\n\r\n await defaultErrorHandler(err);\r\n } else {\r\n await defaultErrorHandler(err);\r\n }\r\n};\r\n\r\nconst defaultErrorHandler = async (response) => {\r\n let message = 'Oops! Something went wrong on the server. Please contact support.';\r\n\r\n await Promise.resolve(response.response).then((res) => {\r\n if (res) {\r\n message = res.data.Message;\r\n\r\n // if 401 redirect to login page\r\n if (res.status === 401) {\r\n localStorage.removeItem('persist:auth-token');\r\n window.location = `${window.origin}/login`;\r\n return;\r\n }\r\n // if not authorized redirect to dashboard\r\n if (res.status === 403) {\r\n window.location = `${window.origin}/`;\r\n }\r\n }\r\n });\r\n\r\n throw Error(message);\r\n};\r\n\r\nexport {\r\n requestHandler,\r\n successHandler,\r\n errorHandler\r\n};","const constants = {\r\n API_URL: process.env.REACT_APP_API_URL,\r\n REQUIRE_INTERCEPTORS: {\r\n requestHandlerEnabled: true,\r\n responseHandlerEnabled: true\r\n },\r\n CONTENT_SECTION: {\r\n ContentSectionTypeDefault: 'CONTENT_SECTION_DEFAULT',\r\n ContentSectionTypeReversed: 'CONTENT_SECTION_REVERSED',\r\n ContentSectionTypeFullWidth: 'CONTENT_SECTION_FULLWIDTH',\r\n ContentSectionTypeFullWidthPadded: 'CONTENT_SECTION_FULLWIDTH_PADDED',\r\n ContentSectionTypeTextOnly: 'CONTENT_SECTION_TEXTONLY',\r\n ContentSectionTypeCard: 'CONTENT_SECTION_CARD',\r\n ContentSectionTypeBanner: 'CONTENT_SECTION_BANNER',\r\n ContentSectionDynamicBanner: 'CONTENT_SECTION_DYNAMIC_BANNER',\r\n ContentSectionCustom: 'CONTENT_SECTION_CUSTOM',\r\n LeftAlignment: 'LEFT',\r\n RightAlignment: 'RIGHT',\r\n CenterAlignment: 'CENTER',\r\n ButtonActionTypePage: 'PAGE',\r\n ButtonActionTypeLink: 'LINK_NEW_TAB',\r\n ButtonActionTypePhoneNumber: 'PHONENUMBER',\r\n ButtonActionTypeEmail: 'EMAIL',\r\n },\r\n EXCEL_FILE_TYPES: [\r\n 'application/vnd.ms-excel',\r\n 'application/msexcel',\r\n 'application/x-msexcel',\r\n 'application/x-ms-excel',\r\n 'application/x-excel',\r\n 'application/x-dos_ms_excel',\r\n 'application/xls',\r\n 'application/x-xls',\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n 'text/csv'\r\n ]\r\n};\r\n\r\nexport default constants;","/* eslint-disable import/no-cycle */\r\nimport axios from 'axios';\r\nimport {\r\n requestHandler, successHandler, errorHandler\r\n} from './interceptor/axiosInterceptor';\r\nimport constants from '../constants/constants';\r\n\r\nconst axiosInstance = axios.create({ baseURL: constants.API_URL });\r\n\r\naxiosInstance.interceptors.request.use(\r\n (request) => requestHandler(request)\r\n);\r\n\r\naxiosInstance.interceptors.response.use(\r\n (response) => successHandler(response),\r\n (err) => errorHandler(err)\r\n);\r\n\r\nexport default axiosInstance;","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'MenuItem/';\r\n\r\nconst getAllMenuItems = async (isActive) => axiosInstance.get(`${ENDPOINTORIGIN}GetAllMenuItems?isActive=${isActive}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getMenuItemsById = async (menuItemId) => axiosInstance.get(`${ENDPOINTORIGIN}GetMenuItemById?menuItemId=${menuItemId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getMenuItemsWithNoParentOrChild = async () => axiosInstance.get(`${ENDPOINTORIGIN}GetMenuItemsWithNoParentOrChild`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst createMenuItem = async (menuItem) => axiosInstance.post(`${ENDPOINTORIGIN}CreateMenuItem`, menuItem, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteMenuItem = async (id) => axiosInstance.delete(`${ENDPOINTORIGIN}DeleteMenuItem?id=${id}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst updateMenuItems = async (menuItem) => axiosInstance.put(`${ENDPOINTORIGIN}UpdateMenuItems`, menuItem, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst removeParentMenuItem = async (id) => axiosInstance.delete(`${ENDPOINTORIGIN}RemoveParentMenuItem?menuItemId=${id}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst assignParentMenuItem = async (model) => axiosInstance.put(`${ENDPOINTORIGIN}AssignParentMenuItem`, model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst sortMenuItems = async (model) => axiosInstance.put(`${ENDPOINTORIGIN}SortMenuItems`, model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst sortChildMenuItems = async (model) => axiosInstance.put(`${ENDPOINTORIGIN}SortChildMenuItems`, model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getAllMenuItems,\r\n getMenuItemsById,\r\n createMenuItem,\r\n deleteMenuItem,\r\n updateMenuItems,\r\n removeParentMenuItem,\r\n assignParentMenuItem,\r\n getMenuItemsWithNoParentOrChild,\r\n sortMenuItems,\r\n sortChildMenuItems\r\n};","/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable consistent-return */\r\n/* eslint-disable react/jsx-one-expression-per-line */\r\n/* eslint-disable max-len */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { NavLink } from 'react-router-dom';\r\n// ICONS\r\nimport { FiMenu } from 'react-icons/fi';\r\nimport {\r\n TbHome, TbNotes, TbLock, TbMessage,\r\n} from 'react-icons/tb';\r\n// COMPONENTS\r\nimport { Sling as Hamburger } from 'hamburger-react';\r\nimport CustomBlock from '../CustomBlock';\r\nimport Image from '../Image';\r\nimport SocialIconSet from '../SocialIcons/SocialIconSet';\r\nimport SocialIconButton from '../SocialIcons/SocialIconButton';\r\n// HEADERS\r\nimport TopHeaderDevReference from './TopHeaderDevReference';\r\nimport TopHeaderSearchAndFilter from './TopHeaderSearchAndFilter';\r\nimport DrawerNavigation from './DrawerNavigation';\r\n// SERVICES & HELPERS\r\nimport * as menuItemService from '../../services/cms/menuItemService';\r\n\r\nconst HeaderNavigation = (props) => {\r\n const {\r\n auth,\r\n cmsInfo,\r\n // layout,\r\n phoneNumber,\r\n emailAddress,\r\n backgroundColor,\r\n menuItemsBlockBackgroundColor,\r\n menuItemColor,\r\n menuToggleIconColor,\r\n menuToggleIconSize,\r\n mobileMenuItemColor,\r\n submenuBlockBackgroundColor,\r\n submenuItemColor,\r\n fixedNavigationBarBackgroundColor,\r\n logo,\r\n logoAlt,\r\n icon,\r\n iconSize,\r\n iconAppearance,\r\n socialIconColor,\r\n socialIconBackgroundColor,\r\n primarySocialMediaLink,\r\n secondarySocialMediaLink,\r\n hasSearchBlock,\r\n menuItems,\r\n hasChipFilter,\r\n hasRoundCorners,\r\n history,\r\n companyLogos,\r\n showAlert,\r\n } = props;\r\n const [isDrawerOpen, setIsDrawerOpen] = useState(false);\r\n const [onScroll, setOnScroll] = useState(false);\r\n // TOP HEADER DEV REFERENCE\r\n const isDevEnv = process.env.NODE_ENV === 'development';\r\n const showTopHeaderDevReference = true;\r\n\r\n useEffect(() => {\r\n const handleScrollChange = () => {\r\n const scrollCheck = window.scrollY > 10;\r\n setOnScroll(scrollCheck);\r\n };\r\n\r\n document.addEventListener('scroll', handleScrollChange);\r\n return () => {\r\n document.removeEventListener('scroll', handleScrollChange);\r\n };\r\n }, [onScroll]);\r\n\r\n const openInNewTab = (link) => {\r\n window.open(link, '_blank');\r\n };\r\n\r\n const handleMenuItemClick = (menuItem) => {\r\n if (menuItem.pageUrl === '') {\r\n menuItemService.getMenuItemsById(menuItem.id).then((res) => {\r\n if (res.customLink && res.customLink.includes('https')) {\r\n openInNewTab(res.customLink);\r\n } else {\r\n history.push(res.customLink);\r\n }\r\n });\r\n }\r\n\r\n if (menuItem.pageUrl && menuItem.pageUrl !== '') {\r\n if (menuItem.openInNewTab) {\r\n openInNewTab(menuItem.pageUrl);\r\n } else {\r\n history.push(menuItem.pageUrl);\r\n }\r\n } else if (menuItem.customLink) {\r\n if (menuItem.openInNewTab) {\r\n openInNewTab(menuItem.customLink);\r\n } else {\r\n history.push(menuItem.customLink);\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n setIsDrawerOpen(false);\r\n }, 200);\r\n };\r\n\r\n const toggleDrawer = () => {\r\n setIsDrawerOpen(!isDrawerOpen);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {/* TOP HEADER - DEVELOPMENT ENVIRONMENT */}\r\n {(isDevEnv && showTopHeaderDevReference) && (\r\n \r\n )}\r\n\r\n {/* TOP HEADER - SEARCH AND FILTER */}\r\n {(hasSearchBlock || hasChipFilter) && (\r\n \r\n )}\r\n \r\n {/* HEADER NAVIGATION */}\r\n \r\n {/* LOGO */}\r\n \r\n \r\n \r\n\r\n {/* MENU ITEMS */}\r\n \r\n \r\n {menuItems.map((menuItem) => (\r\n <>\r\n {/* MENU ITEM - NO CHILDREN */}\r\n {menuItem.assignedMenuItems.length === 0 && (\r\n handleMenuItemClick(menuItem)}\r\n className=\"size-md primary--clr fw-600 primary--hover-underline-3\"\r\n >\r\n {menuItem.name}\r\n \r\n )}\r\n\r\n {/* MENU ITEM - HAS CHILDREN */}\r\n {menuItem.assignedMenuItems.length > 0 && (\r\n \r\n handleMenuItemClick(menuItem)}\r\n className=\"size-md primary--clr fw-600 primary--hover-underline-3\"\r\n >\r\n {menuItem.name}\r\n \r\n \r\n \r\n {menuItem.assignedMenuItems.map((submenuItem) => (\r\n handleMenuItemClick(menuItem)}\r\n target={submenuItem.openInNewTab ? '_blank' : null}\r\n rel={submenuItem.openInNewTab ? 'noopener noreferrer' : null}\r\n className=\"size-sm primary--clr fw-500 primary--hover-underline fit-content\"\r\n >\r\n {submenuItem.name}\r\n \r\n ))}\r\n \r\n \r\n \r\n )}\r\n \r\n ))}\r\n \r\n \r\n\r\n {/* SOCIAL BLOCK */}\r\n \r\n \r\n \r\n {/* MENU ICON */}\r\n }\r\n socialIcon={(\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n\r\n {/* DRAWER NAVIGATION */}\r\n {\r\n toggleDrawer();\r\n }}\r\n className=\"drawer-navigation\"\r\n headerItems={(\r\n \r\n \r\n \r\n )}\r\n footerItems={(\r\n \r\n \r\n \r\n )}\r\n >\r\n {/* DRAWER NAVIGATION - MENU ITEMS */}\r\n \r\n \r\n \r\n Home\r\n \r\n\r\n \r\n \r\n Admin\r\n \r\n \r\n \r\n\r\n {menuItems.map((menuItem) => (\r\n \r\n {/* PARENT */}\r\n handleMenuItemClick(menuItem)}\r\n className=\"size-md primary--clr fw-600 primary--hover-underline-3 fit-content\"\r\n >\r\n {{\r\n // ICON MAPPING\r\n // About: ,\r\n About: ,\r\n Contact: ,\r\n }[menuItem.name] || }\r\n {menuItem.name}\r\n \r\n\r\n {/* CHILDREN */}\r\n {menuItem.assignedMenuItems.length > 0 && (\r\n \r\n \r\n {menuItem.assignedMenuItems.map((submenuItem) => (\r\n handleMenuItemClick(submenuItem)}\r\n target={submenuItem.openInNewTab ? '_blank' : null}\r\n rel={submenuItem.openInNewTab ? 'noopener noreferrer' : null}\r\n className=\"size-md primary--clr fw-500 primary--hover-underline fit-content fit-content\"\r\n >\r\n {submenuItem.name}\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\nHeaderNavigation.propTypes = {\r\n // MAIN PROPS\r\n // layout: PropTypes.string.isRequired,\r\n logo: PropTypes.string.isRequired,\r\n icon: PropTypes.string.isRequired,\r\n backgroundColor: PropTypes.string,\r\n menuItemsBlockBackgroundColor: PropTypes.string,\r\n // fixedNavigationBarBackgroundColor: PropTypes.string.isRequired,\r\n // to: PropTypes.string,\r\n\r\n // NAVIGATION PROPS\r\n menuItemColor: PropTypes.string,\r\n menuToggleIconColor: PropTypes.string,\r\n menuToggleIconSize: PropTypes.number,\r\n mobileMenuItemColor: PropTypes.string,\r\n\r\n // SUB MENU PROPS\r\n submenuBlockBackgroundColor: PropTypes.string,\r\n submenuItemColor: PropTypes.string,\r\n\r\n // SOCIAL MEDIA PROPS\r\n iconSize: PropTypes.number,\r\n iconAppearance: PropTypes.string.isRequired,\r\n socialIconBackgroundColor: PropTypes.string,\r\n socialIconColor: PropTypes.string,\r\n primarySocialMediaLink: PropTypes.string,\r\n secondarySocialMediaLink: PropTypes.string,\r\n\r\n // PRIMARY ICON PROPS\r\n // primaryActionIcon: PropTypes.any,\r\n // primaryActionIconText: PropTypes.string,\r\n\r\n // SECONDARY ICON PROPS\r\n // secondaryActionIcon: PropTypes.any,\r\n // secondaryActionIconText: PropTypes.string,\r\n\r\n // FUNCTION PROPS\r\n // // primaryActionOnClick: PropTypes.func,\r\n // secondaryActionOnClick: PropTypes.func,\r\n\r\n // BOOLEANS PROPS\r\n hasSearchBlock: PropTypes.bool,\r\n\r\n // menuItems: PropTypes.array,\r\n hasChipFilter: PropTypes.bool,\r\n // hasFeaturedItems: PropTypes.bool,\r\n hasRoundCorners: PropTypes.bool,\r\n};\r\n\r\nHeaderNavigation.defaultProps = {\r\n // MAIN PROPS\r\n backgroundColor: 'white--sbg',\r\n menuItemsBlockBackgroundColor: null,\r\n // to: '',\r\n\r\n // NAVIGATION PROPS\r\n menuItemColor: 'primary--clr',\r\n menuToggleIconColor: 'primary--clr',\r\n menuToggleIconSize: 35,\r\n mobileMenuItemColor: 'dark--clr',\r\n\r\n // SUB MENU PROPS\r\n submenuBlockBackgroundColor: 'white--sbg',\r\n submenuItemColor: 'primary--clr',\r\n\r\n // SOCIAL MEDIA PROPS\r\n iconSize: 23,\r\n socialIconColor: 'white--clr',\r\n socialIconBackgroundColor: 'primary-lighter--sbg',\r\n primarySocialMediaLink: '',\r\n secondarySocialMediaLink: '',\r\n\r\n // // BOOLEANS PROPS\r\n hasSearchBlock: false,\r\n hasChipFilter: false,\r\n // hasFeaturedItems: false,\r\n hasRoundCorners: false,\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, null)(HeaderNavigation);","/* eslint-disable no-unused-vars */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport 'flatpickr/dist/themes/material_green.css';\r\nimport { useHistory } from 'react-router-dom';\r\n// COMPONENTS\r\nimport InputMask from 'react-input-mask';\r\nimport Flatpickr from 'react-flatpickr';\r\n// ICONS\r\nimport { AiOutlineLoading } from 'react-icons/ai';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Button from './Button';\r\n\r\nconst InputBlock = (props) => {\r\n const {\r\n id,\r\n containerClassName,\r\n label,\r\n inputLabel,\r\n inputState,\r\n errorMessage,\r\n successMessage,\r\n warningMessage,\r\n type,\r\n className,\r\n labelColor,\r\n backgroundColor,\r\n placeholder,\r\n mask,\r\n to,\r\n iconLeft,\r\n iconRight,\r\n inputRightButtonText,\r\n inputRightButtonBackgroundColor,\r\n inputRightButtonIconLeft,\r\n iconLeftOnClick,\r\n iconRightOnClick,\r\n inputRightButtonOnClick,\r\n isRequired,\r\n isLoading,\r\n isLabelLoading,\r\n isAutoFocus,\r\n isDisabled,\r\n hasBorder,\r\n options\r\n } = props;\r\n const errorMessageSuffix = 'is required';\r\n const inputStates = {\r\n error: 'error',\r\n warning: 'warning',\r\n success: 'success',\r\n disabled: 'disabled'\r\n };\r\n\r\n const marginTop = () => {\r\n if (inputLabel) {\r\n return 25;\r\n } if (label) {\r\n return 35;\r\n }\r\n return 10;\r\n };\r\n\r\n const history = useHistory();\r\n\r\n const navigateToPath = (path) => {\r\n history.push(path);\r\n };\r\n\r\n return (\r\n \r\n {\r\n inputLabel !== ''\r\n && (\r\n \r\n {inputLabel}\r\n {isRequired && *}\r\n {\r\n isLabelLoading\r\n && (\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n {\r\n label !== ''\r\n && (\r\n \r\n {label}\r\n {isRequired && *}\r\n {\r\n isLabelLoading\r\n && (\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n \r\n {\r\n iconLeft\r\n && (\r\n \r\n \r\n {iconLeft}\r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n type === 'date'\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n )\r\n }\r\n\r\n {\r\n (isLoading || iconRight || inputRightButtonText)\r\n && (\r\n \r\n {\r\n isLoading\r\n ? (\r\n \r\n )\r\n : (\r\n \r\n {iconRight}\r\n \r\n )\r\n }\r\n {\r\n inputRightButtonText\r\n && (\r\n navigateToPath(to) : inputRightButtonOnClick}\r\n iconLeft={inputRightButtonIconLeft}\r\n />\r\n )\r\n }\r\n \r\n )\r\n }\r\n \r\n\r\n {\r\n inputState === 'error'\r\n && (\r\n \r\n {errorMessage || (inputLabel || label ? (inputLabel || `${label} ${errorMessageSuffix}`) : 'Error message undefined')}\r\n \r\n )\r\n }\r\n {\r\n inputState === 'warning'\r\n && (\r\n \r\n {warningMessage}\r\n \r\n )\r\n }\r\n {\r\n inputState === 'success'\r\n && (\r\n \r\n {successMessage}\r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nInputBlock.propTypes = {\r\n // CONTAINER PROPS\r\n containerClassName: PropTypes.string,\r\n id: PropTypes.string,\r\n\r\n // LABEL PROPS\r\n label: PropTypes.string,\r\n inputLabel: PropTypes.string,\r\n\r\n // STATE PROPS\r\n inputState: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n successMessage: PropTypes.string,\r\n warningMessage: PropTypes.string,\r\n\r\n // INPUT PROPS\r\n type: PropTypes.string,\r\n className: PropTypes.string,\r\n labelColor: PropTypes.string,\r\n backgroundColor: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n mask: PropTypes.string,\r\n\r\n // NAVIGATION PROPS\r\n to: PropTypes.string,\r\n\r\n // ITEMS AND ICON PROPS\r\n iconLeft: PropTypes.any,\r\n iconRight: PropTypes.any,\r\n inputRightButtonText: PropTypes.string,\r\n inputRightButtonBackgroundColor: PropTypes.string,\r\n inputRightButtonIconLeft: PropTypes.element,\r\n\r\n // FUNCTION PROPS\r\n iconLeftOnClick: PropTypes.func,\r\n iconRightOnClick: PropTypes.func,\r\n inputRightButtonOnClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n isRequired: PropTypes.bool,\r\n isLoading: PropTypes.bool,\r\n isLabelLoading: PropTypes.bool,\r\n isAutoFocus: PropTypes.bool,\r\n isDisabled: PropTypes.bool,\r\n hasBorder: PropTypes.bool,\r\n};\r\n\r\nInputBlock.defaultProps = {\r\n // CONTAINER PROPS\r\n containerClassName: '',\r\n id: '',\r\n\r\n // LABEL PROPS\r\n label: '',\r\n inputLabel: '',\r\n\r\n // STATE PROPS\r\n inputState: '',\r\n errorMessage: '',\r\n successMessage: '',\r\n warningMessage: '',\r\n\r\n // INPUT PROPS\r\n type: 'text',\r\n className: '',\r\n labelColor: 'dark--clr',\r\n backgroundColor: 'light--sbg',\r\n placeholder: '',\r\n mask: '',\r\n\r\n // NAVIGATION PROPS\r\n to: '',\r\n\r\n // ITEMS AND ICON PROPS\r\n iconLeft: null,\r\n iconRight: null,\r\n inputRightButtonText: '',\r\n inputRightButtonBackgroundColor: 'white--sbg',\r\n inputRightButtonIconLeft: null,\r\n\r\n // FUNCTION PROPS\r\n iconLeftOnClick: () => { },\r\n iconRightOnClick: () => { },\r\n inputRightButtonOnClick: () => { },\r\n\r\n // BOOLEAN PROPS\r\n isRequired: false,\r\n isLoading: false,\r\n isLabelLoading: false,\r\n isAutoFocus: false,\r\n isDisabled: false,\r\n hasBorder: false,\r\n};\r\n\r\nexport default InputBlock;","export default __webpack_public_path__ + \"static/media/app-store-badge.f0b8ebdc.svg\";","export default __webpack_public_path__ + \"static/media/google-play-badge.3263f5e2.svg\";","/* eslint-disable react/self-closing-comp */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable max-len */\r\n/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable react/jsx-max-props-per-line */\r\n/* eslint-disable react/no-unknown-property */\r\n// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { FaPhoneAlt } from 'react-icons/fa';\r\nimport { MdEmail } from 'react-icons/md';\r\nimport {\r\n LuCopy, LuSmartphone, LuMail, LuMessageSquare\r\n} from 'react-icons/lu';\r\n// COMPONENTS\r\nimport { OverlayTrigger, Popover } from 'react-bootstrap';\r\nimport SocialIconSet from './SocialIcons/SocialIconSet';\r\nimport Button from './Button';\r\nimport CustomBlock from './CustomBlock';\r\nimport Image from './Image';\r\nimport InputBlock from './InputBlock';\r\nimport TextBlock from './TextBlock';\r\n// ASSETS\r\nimport AppStoreBadge from '../assets/img/app-store-badge.svg';\r\nimport GooglePlayBadge from '../assets/img/google-play-badge.svg';\r\n\r\nconst FooterBlock = (props) => {\r\n const {\r\n history,\r\n to,\r\n phoneNumber,\r\n emailAddress,\r\n imageSource,\r\n backgroundColor,\r\n bottomFooterBackgroundColor,\r\n subheaderColor,\r\n subheaderClassName,\r\n companyName,\r\n copyrightTextColor,\r\n footerHeaderTextColor,\r\n footerItems,\r\n iconSize,\r\n iconAppearance,\r\n socialIconColor,\r\n socialIconBackgroundColor,\r\n appStoreLink,\r\n googlePlayLink,\r\n facebookLink,\r\n instagramLink,\r\n twitterLink,\r\n linkedInLink,\r\n youtubeLink,\r\n tiktokLink,\r\n // primaryActionOnClick,\r\n // secondaryActionOnClick,\r\n hasSocialMediaIconColor,\r\n hasEmailSignUp,\r\n hasContactBlock,\r\n cmsInfo,\r\n companyLogos\r\n } = props;\r\n const popoverBtnIconSize = 20;\r\n const popoverBtnIconStrokeWidth = 2.4;\r\n const [isMembersLoginModalOpen, setIsMembersLoginModalOpen] = useState(false);\r\n const [isPhonePopoverOpen, setIsPhonePopoverOpen] = useState(false);\r\n const [isEmailPopoverOpen, setIsEmailPopoverOpen] = useState(false);\r\n\r\n const iconAppearanceOptions = {\r\n square: 'square',\r\n round: 'round',\r\n circle: 'circle',\r\n };\r\n\r\n const openInNewTab = (link) => {\r\n window.open(link, '_blank');\r\n };\r\n\r\n const navigateToPage = (page) => {\r\n history.push(page);\r\n };\r\n\r\n const navigateToLink = (link) => {\r\n window.open(link, '_blank');\r\n };\r\n\r\n const sendEmail = (email) => {\r\n window.open(`mailto:${email}`, '_self');\r\n };\r\n\r\n const callPhoneNumber = (tel) => {\r\n window.open(`tel:${tel}`, '_self');\r\n };\r\n\r\n const handlePhonePopoverToggle = () => {\r\n setIsPhonePopoverOpen(!isPhonePopoverOpen);\r\n };\r\n\r\n const handleEmailPopoverToggle = () => {\r\n setIsEmailPopoverOpen(!isEmailPopoverOpen);\r\n };\r\n\r\n const phonePopover = (\r\n \r\n {\r\n navigator.clipboard.writeText(phoneNumber);\r\n setIsPhonePopoverOpen(false);\r\n }}\r\n >\r\n \r\n

\r\n Copy\r\n

\r\n \r\n\r\n
\r\n\r\n {\r\n callPhoneNumber(phoneNumber);\r\n setIsPhonePopoverOpen(false);\r\n }}\r\n >\r\n \r\n

\r\n {/* {`Call ${cmsInfo.companyName}`} */}\r\n Call Us\r\n

\r\n \r\n
\r\n );\r\n\r\n const emailPopover = (\r\n \r\n {\r\n navigator.clipboard.writeText(emailAddress);\r\n setIsEmailPopoverOpen(false);\r\n }}\r\n >\r\n \r\n

\r\n Copy\r\n

\r\n \r\n\r\n
\r\n\r\n {\r\n sendEmail(emailAddress);\r\n setIsEmailPopoverOpen(false);\r\n }}\r\n >\r\n \r\n

\r\n {/* {`Email ${cmsInfo.companyName}`} */}\r\n Send an Email\r\n

\r\n \r\n\r\n
\r\n\r\n {\r\n const contactPageURL = cmsInfo.menuItems.find((item) => item.name === 'Contact').customLink;\r\n history.push(contactPageURL);\r\n setIsEmailPopoverOpen(false);\r\n }}\r\n >\r\n \r\n

\r\n Visit Contact Page\r\n

\r\n \r\n
\r\n );\r\n\r\n return (\r\n \r\n {/* ROW - MAIN */}\r\n \r\n
\r\n {/* COL LEFT - LOGO */}\r\n \r\n \r\n \r\n\r\n {/* COL MIDDLE - QUICK LINKS */}\r\n \r\n \r\n\r\n \r\n \r\n {footerItems.map((item, index) => (\r\n \r\n {\r\n if (item.to.includes('https') || item.to.includes('http')) {\r\n e.preventDefault();\r\n navigateToLink(item.to);\r\n }\r\n }}\r\n className=\"d-block text-white white--hover-underline fit-content text-nowrap\"\r\n style={{ wordWrap: 'break-word', lineHeight: '1.5' }}\r\n >\r\n {item.label}\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n\r\n {/* COL RIGHT - CONTACT US */}\r\n \r\n {hasEmailSignUp && (\r\n \r\n \r\n\r\n \r\n \r\n )}\r\n\r\n {hasContactBlock && (\r\n \r\n \r\n \r\n {/* EMAIL POPOVER */}\r\n {emailAddress && (\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n )}\r\n \r\n {/* PHONE POPOVER */}\r\n {phoneNumber && (\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n\r\n {(appStoreLink || googlePlayLink) && (\r\n \r\n \r\n\r\n \r\n {appStoreLink && (\r\n navigateToLink(appStoreLink)}\r\n className=\"mb-2\"\r\n style={{ width: '150px' }}\r\n />\r\n )}\r\n\r\n {googlePlayLink && (\r\n navigateToLink(googlePlayLink)}\r\n style={{ width: '150px' }}\r\n />\r\n )}\r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n\r\n {/* ROW - SOCIAL ICONS */}\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* ROW - COPYRIGHT */}\r\n \r\n \r\n

{`Copyright © ${new Date().getFullYear()} ${companyName}.`}

\r\n

All Rights Reserved.

\r\n
\r\n navigateToLink('https://primtek.net/')}\r\n >\r\n Developed by Primtek.\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nFooterBlock.propTypes = {\r\n // MAIN PROPS\r\n to: PropTypes.string,\r\n backgroundColor: PropTypes.string,\r\n bottomFooterBackgroundColor: PropTypes.string,\r\n imageSource: PropTypes.string,\r\n\r\n // CONTACT PROPS\r\n phoneNumber: PropTypes.string,\r\n emailAddress: PropTypes.string,\r\n\r\n // OPTIONAL PROPS\r\n\r\n // SUBHEADER PROPS\r\n subheaderColor: PropTypes.string,\r\n subheaderClassName: PropTypes.string,\r\n\r\n // APP STORE PROPS\r\n appStoreLink: PropTypes.string,\r\n googlePlayLink: PropTypes.string,\r\n\r\n // SOCIAL MEDIA PROPS\r\n iconSize: PropTypes.number,\r\n iconAppearance: PropTypes.string.isRequired,\r\n socialIconBackgroundColor: PropTypes.string,\r\n socialIconColor: PropTypes.string,\r\n facebookLink: PropTypes.string,\r\n instagramLink: PropTypes.string,\r\n twitterLink: PropTypes.string,\r\n linkedInLink: PropTypes.string,\r\n youtubeLink: PropTypes.string,\r\n tiktokLink: PropTypes.string,\r\n\r\n // FOOTER PROPS\r\n footerHeaderTextColor: PropTypes.string.isRequired,\r\n\r\n // BOTTOM FOOTER PROPS\r\n companyName: PropTypes.string.isRequired,\r\n copyrightTextColor: PropTypes.string,\r\n\r\n // FUNCTION PROPS\r\n // primaryActionOnClick: PropTypes.func,\r\n // secondaryActionOnClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n hasSocialMediaIconColor: PropTypes.bool,\r\n hasEmailSignUp: PropTypes.bool,\r\n hasContactBlock: PropTypes.bool,\r\n\r\n footerItems: PropTypes.array,\r\n};\r\n\r\nFooterBlock.defaultProps = {\r\n // MAIN PROPS\r\n to: '#',\r\n backgroundColor: 'white--sbg',\r\n bottomFooterBackgroundColor: 'lightest-grey--sbg',\r\n imageSource: '',\r\n\r\n // CONTACT PROPS\r\n phoneNumber: '',\r\n emailAddress: '',\r\n\r\n // OPTIONAL PROPS\r\n\r\n // SUBHEADER PROPS\r\n subheaderColor: 'secondary--clr',\r\n subheaderClassName: '',\r\n\r\n // APP STORE PROPS\r\n appStoreLink: '',\r\n googlePlayLink: '',\r\n\r\n // SOCIAL MEDIA PROPS\r\n iconSize: 27,\r\n socialIconColor: 'white--clr',\r\n socialIconBackgroundColor: 'secondary--sbg',\r\n facebookLink: '',\r\n instagramLink: '',\r\n twitterLink: '',\r\n linkedInLink: '',\r\n youtubeLink: '',\r\n tiktokLink: '',\r\n\r\n // BOTTOM FOOTER PROPS\r\n copyrightTextColor: 'primary--clr',\r\n\r\n // FUNCTION PROPS\r\n // primaryActionOnClick: null,\r\n // secondaryActionOnClick: null,\r\n\r\n // BOOLEAN PROPS\r\n hasSocialMediaIconColor: false,\r\n hasEmailSignUp: false,\r\n hasContactBlock: true,\r\n\r\n footerItems: [],\r\n};\r\n\r\nexport default FooterBlock;","export default __webpack_public_path__ + \"static/media/logo.732afee0.svg\";","export default __webpack_public_path__ + \"static/media/logo-alt-2.a9660a85.svg\";","/* eslint-disable max-len */\r\n/* eslint-disable react/jsx-props-no-multi-spaces */\r\n/* eslint-disable react/no-array-index-key */\r\n// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\n// COMPONENTS\r\nimport { Route } from 'react-router-dom';\r\n// CUSTOM COMPONENTS;\r\nimport Overlay from '../components/Overlay';\r\nimport CustomBlock from '../components/CustomBlock';\r\nimport HeaderNavigation from '../components/Headers/HeaderNavigation';\r\nimport FooterBlock from '../components/FooterBlock';\r\n// ASSETS\r\nimport LogoDefault from '../assets/client/logo.svg';\r\nimport LogoLight from '../assets/client/logo-alt-2.svg';\r\n\r\nconst CMSRoute = (cmsRouteProps) => {\r\n const {\r\n auth,\r\n component: Component,\r\n cmsInfo, dynamicPageId,\r\n isBlog,\r\n ...rest\r\n } = cmsRouteProps;\r\n\r\n const companyLogos = {\r\n default: LogoDefault,\r\n light: LogoLight,\r\n dark: '',\r\n };\r\n\r\n const { companyLogoPath, companyIconPath } = cmsInfo;\r\n const [isLoading] = useState(false);\r\n\r\n return (\r\n (\r\n <>\r\n {isLoading && }\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n )}\r\n />\r\n );\r\n};\r\n\r\nexport default CMSRoute;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst DotIndicator = (props) => {\r\n const { hasDotIndicator, dotIndicatorColor } = props;\r\n return (\r\n <>\r\n {hasDotIndicator && }\r\n \r\n );\r\n};\r\n\r\nDotIndicator.propTypes = {\r\n // MAIN PROPS\r\n hasDotIndicator: PropTypes.bool,\r\n dotIndicatorColor: PropTypes.string,\r\n};\r\n\r\nDotIndicator.defaultProps = {\r\n // MAIN PROPS\r\n hasDotIndicator: false,\r\n dotIndicatorColor: 'danger--sbg',\r\n};\r\n\r\nexport default DotIndicator;","// DEPENDECIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport DotIndicator from './DotIndicator';\r\n\r\nconst TextHeader = (props) => {\r\n const {\r\n title,\r\n size,\r\n className,\r\n subtitle,\r\n subtitleSize,\r\n subtitleClassName,\r\n isCentered,\r\n iconLeft,\r\n iconLeftClassName,\r\n } = props;\r\n\r\n const textSize = {\r\n xl: '--xl',\r\n lg: '--lg',\r\n md: '--md',\r\n mdlg: '--mdlg',\r\n sm: '--sm',\r\n xs: '--xs',\r\n };\r\n\r\n return (\r\n \r\n

\r\n {\r\n iconLeft && {iconLeft}\r\n }\r\n {title}\r\n \r\n

\r\n {subtitle &&

{subtitle}

}\r\n
\r\n );\r\n};\r\n\r\nTextHeader.propTypes = {\r\n // TITLE PROPS\r\n title: PropTypes.string.isRequired,\r\n className: PropTypes.string,\r\n size: PropTypes.string,\r\n\r\n // SUBTITLE PROPS\r\n subtitle: PropTypes.string,\r\n subtitleClassName: PropTypes.string,\r\n subtitleSize: PropTypes.string,\r\n\r\n // ICON PROPS\r\n iconLeft: PropTypes.element,\r\n iconLeftClassName: PropTypes.string,\r\n\r\n // BOOLEAN PROPS\r\n isCentered: PropTypes.bool,\r\n};\r\n\r\nTextHeader.defaultProps = {\r\n // TITLE PROPS\r\n className: '',\r\n size: '',\r\n\r\n // SUBTITLE PROPS\r\n subtitle: '',\r\n subtitleClassName: '',\r\n subtitleSize: '',\r\n\r\n // ICON PROPS\r\n iconLeft: null,\r\n iconLeftClassName: '',\r\n\r\n // BOOLEAN PROPS\r\n isCentered: false,\r\n};\r\n\r\nexport default TextHeader;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// COMPONENTS\r\nimport { Link } from 'react-router-dom';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport TextHeader from './TextHeader';\r\nimport Button from './Button';\r\n\r\nconst ContentHeader = (props) => {\r\n const {\r\n containerClassName,\r\n title,\r\n subtitle,\r\n subtitleClassName,\r\n headerSize,\r\n primaryButtonText,\r\n primaryButtonBackgroundColor,\r\n primaryButtonIconLeft,\r\n secondaryButtonText,\r\n secondaryButtonBackgroundColor,\r\n secondaryButtonIconLeft,\r\n buttonSize,\r\n headerIcon,\r\n headerIconContainerClass,\r\n primaryButtonTo,\r\n secondaryButtonTo,\r\n headerIconTo,\r\n primaryButtonOnClick,\r\n secondaryButtonOnClick,\r\n headerIconOnClick,\r\n isPrimaryLinkTargetBlank,\r\n isSecondaryLinkTargetBlank,\r\n isButtonTextUppercase,\r\n isPrimaryButtonLoading,\r\n isPrimaryButtonDisabled,\r\n isSecondaryButtonLoading,\r\n isSecondaryButtonDisabled,\r\n isTitleCentered\r\n } = props;\r\n \r\n return (\r\n \r\n \r\n \r\n {\r\n primaryButtonText !== ''\r\n && (\r\n \r\n )\r\n }\r\n\r\n {\r\n secondaryButtonText !== ''\r\n && (\r\n \r\n )\r\n }\r\n \r\n {\r\n headerIcon\r\n && (\r\n \r\n {\r\n headerIconTo\r\n ? (\r\n { })}\r\n >\r\n {headerIcon}\r\n \r\n )\r\n : (\r\n { })}\r\n >\r\n {headerIcon}\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n
\r\n );\r\n};\r\n\r\nContentHeader.propTypes = {\r\n // CONTAINER PROPS\r\n containerClassName: PropTypes.string,\r\n\r\n // HEADER PROPS\r\n title: PropTypes.string,\r\n subtitle: PropTypes.string,\r\n subtitleClassName: PropTypes.string,\r\n headerSize: PropTypes.string,\r\n\r\n // BUTTON PROPS - PRIMARY\r\n primaryButtonText: PropTypes.string,\r\n primaryButtonBackgroundColor: PropTypes.string,\r\n primaryButtonIconLeft: PropTypes.object,\r\n\r\n // BUTTON PROPS - SECONDARY\r\n secondaryButtonText: PropTypes.string,\r\n secondaryButtonBackgroundColor: PropTypes.string,\r\n secondaryButtonIconLeft: PropTypes.object,\r\n\r\n // BUTTON PROPS - SHARED\r\n buttonSize: PropTypes.string,\r\n\r\n // HEADER ICON\r\n headerIcon: PropTypes.any,\r\n headerIconContainerClass: PropTypes.string,\r\n\r\n // NAVIGATION PROPS\r\n primaryButtonTo: PropTypes.string,\r\n secondaryButtonTo: PropTypes.string,\r\n headerIconTo: PropTypes.string,\r\n\r\n // FUNCTION PROPS\r\n primaryButtonOnClick: PropTypes.func,\r\n secondaryButtonOnClick: PropTypes.func,\r\n headerIconOnClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n isPrimaryLinkTargetBlank: PropTypes.bool,\r\n isSecondaryLinkTargetBlank: PropTypes.bool,\r\n isButtonTextUppercase: PropTypes.bool,\r\n isPrimaryButtonLoading: PropTypes.bool,\r\n isPrimaryButtonDisabled: PropTypes.bool,\r\n isSecondaryButtonLoading: PropTypes.bool,\r\n isSecondaryButtonDisabled: PropTypes.bool,\r\n isTitleCentered: PropTypes.bool,\r\n};\r\n\r\nContentHeader.defaultProps = {\r\n // CONTAINER PROPS\r\n containerClassName: '',\r\n\r\n // HEADER PROPS\r\n title: '',\r\n subtitle: '',\r\n subtitleClassName: '',\r\n headerSize: '',\r\n\r\n // BUTTON PROPS - PRIMARY\r\n primaryButtonText: '',\r\n primaryButtonBackgroundColor: 'secondary--bg',\r\n primaryButtonIconLeft: null,\r\n\r\n // BUTTON PROPS - SECONDARY\r\n secondaryButtonText: '',\r\n secondaryButtonBackgroundColor: 'primary--bg',\r\n secondaryButtonIconLeft: null,\r\n\r\n // BUTTON PROPS - SHARED\r\n buttonSize: '',\r\n\r\n // HEADER ICON\r\n headerIcon: null,\r\n\r\n // NAVIGATION PROPS\r\n primaryButtonTo: '',\r\n secondaryButtonTo: '',\r\n headerIconTo: '',\r\n headerIconContainerClass: '',\r\n\r\n // FUNCTION PROPS\r\n primaryButtonOnClick: () => { },\r\n secondaryButtonOnClick: () => { },\r\n headerIconOnClick: () => { },\r\n\r\n // BOOLEAN PROPS\r\n isPrimaryLinkTargetBlank: false,\r\n isSecondaryLinkTargetBlank: false,\r\n isButtonTextUppercase: false,\r\n isPrimaryButtonLoading: false,\r\n isPrimaryButtonDisabled: false,\r\n isSecondaryButtonLoading: false,\r\n isSecondaryButtonDisabled: false,\r\n isTitleCentered: false,\r\n};\r\n\r\nexport default ContentHeader;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// COMPONENTS\r\nimport Modal from 'react-bootstrap/Modal';\r\n// ICONS\r\nimport { IoClose } from 'react-icons/io5';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport ContentHeader from './ContentHeader';\r\nimport Button from './Button';\r\n// HELPERS\r\n\r\nconst ModalBlock = (props) => {\r\n const {\r\n closeIconColor,\r\n contentHeader,\r\n subtitle,\r\n primaryButtonText,\r\n contentDescription,\r\n children,\r\n buttonActionsContainerClassName,\r\n primaryModalActionType,\r\n primaryModalActionText,\r\n primaryModalActionColor,\r\n secondaryModalActionType,\r\n secondaryModalActionText,\r\n secondaryModalActionColor,\r\n onHide,\r\n closeActionOnClick,\r\n primaryModalActionOnClick,\r\n secondaryModalActionOnClick,\r\n isVisible,\r\n hasCloseAction,\r\n isTitleCentered,\r\n isPrimaryActionHidden,\r\n isSecondaryActionHidden,\r\n isPrimaryModalActionIsLoading,\r\n thirdModalActionText,\r\n thirdModalActionType,\r\n thirdModalActionColor,\r\n thirdModalActionOnClick,\r\n isThirdModalActionIsLoading\r\n } = props;\r\n\r\n return (\r\n \r\n {\r\n hasCloseAction\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 contentDescription\r\n && (\r\n \r\n

\r\n {contentDescription}\r\n

\r\n
\r\n )\r\n }\r\n\r\n {children}\r\n\r\n {\r\n primaryModalActionText\r\n && (\r\n \r\n {\r\n !isSecondaryActionHidden\r\n && (\r\n \r\n )\r\n }\r\n\r\n {\r\n thirdModalActionText && (\r\n \r\n )\r\n }\r\n\r\n {\r\n !isPrimaryActionHidden\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\nModalBlock.propTypes = {\r\n // HEADER PROPS\r\n contentHeader: PropTypes.string,\r\n subtitle: PropTypes.string,\r\n primaryButtonText: PropTypes.string,\r\n\r\n // CLOSE ICON PROPS\r\n closeIconColor: PropTypes.string,\r\n\r\n // CONTENT PROPS\r\n contentDescription: PropTypes.any,\r\n children: PropTypes.any,\r\n\r\n // ACTION PROPS\r\n primaryModalActionText: PropTypes.string,\r\n buttonActionsContainerClassName: PropTypes.string,\r\n primaryModalActionType: PropTypes.string,\r\n primaryModalActionColor: PropTypes.string,\r\n secondaryModalActionType: PropTypes.string,\r\n secondaryModalActionText: PropTypes.string,\r\n secondaryModalActionColor: PropTypes.string,\r\n thirdModalActionText: PropTypes.string,\r\n thirdModalActionType: PropTypes.string,\r\n thirdModalActionColor: PropTypes.string,\r\n thirdModalActionOnClick: PropTypes.func,\r\n isThirdModalActionIsLoading: PropTypes.bool,\r\n\r\n // FUNCTION PROPS\r\n onHide: PropTypes.func,\r\n closeActionOnClick: PropTypes.func,\r\n primaryModalActionOnClick: PropTypes.func,\r\n secondaryModalActionOnClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n isVisible: PropTypes.bool,\r\n hasCloseAction: PropTypes.bool,\r\n isTitleCentered: PropTypes.bool,\r\n isPrimaryActionHidden: PropTypes.bool,\r\n isSecondaryActionHidden: PropTypes.bool,\r\n isPrimaryModalActionIsLoading: PropTypes.bool,\r\n};\r\n\r\nModalBlock.defaultProps = {\r\n // HEADER PROPS\r\n contentHeader: '',\r\n subtitle: '',\r\n primaryButtonText: '',\r\n\r\n // CLOSE ICON PROPS\r\n closeIconColor: '',\r\n\r\n // CONTENT PROPS\r\n contentDescription: null,\r\n children: null,\r\n\r\n // ACTION PROPS\r\n buttonActionsContainerClassName: '',\r\n primaryModalActionType: '',\r\n primaryModalActionText: '',\r\n primaryModalActionColor: 'primary--bg',\r\n secondaryModalActionType: '',\r\n secondaryModalActionText: 'Cancel',\r\n secondaryModalActionColor: 'danger--bg',\r\n thirdModalActionText: '',\r\n thirdModalActionType: '',\r\n thirdModalActionColor: 'secondary--bg',\r\n\r\n // FUNCTION PROPS\r\n onHide: () => { },\r\n closeActionOnClick: () => { },\r\n primaryModalActionOnClick: () => { },\r\n secondaryModalActionOnClick: () => { },\r\n thirdModalActionOnClick: () => { },\r\n\r\n // BOOLEAN PROPS\r\n isVisible: false,\r\n hasCloseAction: false,\r\n isTitleCentered: false,\r\n isPrimaryActionHidden: false,\r\n isSecondaryActionHidden: false,\r\n isPrimaryModalActionIsLoading: false,\r\n isThirdModalActionIsLoading: false,\r\n};\r\n\r\nexport default ModalBlock;","/* eslint-disable import/extensions */\r\n/* eslint-disable no-shadow */\r\n// DEPENDENCIES\r\nimport React, { useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Button from './Button';\r\nimport ModalBlock from './ModalBlock';\r\n// HELPERS\r\nimport * as confirmModal from '../redux/confirmModalRedux.js';\r\n\r\nconst ConfirmModal = (props) => {\r\n const {\r\n hideConfirmModal,\r\n confirmModal,\r\n setProcessing\r\n } = props;\r\n\r\n const handleConfirm = () => {\r\n setProcessing();\r\n confirmModal.btnAction();\r\n };\r\n\r\n const handleCloseBtn = () => {\r\n hideConfirmModal();\r\n if (confirmModal.closeBtnAction) { confirmModal.closeBtnAction(); }\r\n };\r\n\r\n const handleEnterKey = (event) => {\r\n if (event.keyCode === 13 && confirmModal.isVisible) {\r\n handleConfirm();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n window.addEventListener('keydown', handleEnterKey);\r\n return () => {\r\n window.removeEventListener('keydown', handleEnterKey);\r\n };\r\n }, [confirmModal.isVisible]);\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n {\r\n // setProcessing();\r\n // confirmModal.btnAction();\r\n // }}\r\n onClick={handleConfirm}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ confirmModal: state.confirmModal });\r\n\r\nexport default connect(mapStateFromProps, confirmModal.actions)(ConfirmModal);","/* eslint-disable import/extensions */\r\n/* eslint-disable no-shadow */\r\n// DEPENDENCIES\r\nimport React, { useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n// ICONS\r\nimport { HiOutlineEmojiSad, HiOutlineLightBulb } from 'react-icons/hi';\r\nimport { FiThumbsUp } from 'react-icons/fi';\r\nimport { BiShocked } from 'react-icons/bi';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n// SERVICES AND HELPERS\r\nimport * as alertToast from '../redux/alertToastRedux';\r\n\r\nconst AlertToast = (props) => {\r\n const {\r\n hideAlert,\r\n alertToast\r\n } = props;\r\n\r\n useEffect(() => {\r\n if (alertToast.visible) {\r\n setTimeout(() => {\r\n hideAlert();\r\n }, 3500);\r\n }\r\n }, [alertToast.visible, hideAlert]);\r\n\r\n const iconBackgroundColors = {\r\n success: 'lighter-green--bg',\r\n error: 'lighter-red--bg',\r\n warning: 'lighter-yellow--bg',\r\n info: 'lighter-blue--bg',\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {alertToast.state === 'success' && }\r\n {alertToast.state === 'error' && }\r\n {alertToast.state === 'warning' && }\r\n {alertToast.state === 'info' && }\r\n \r\n \r\n\r\n \r\n

\r\n {alertToast.text}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ alertToast: state.alertToast });\r\n\r\nexport default connect(mapStateFromProps, alertToast.actions)(AlertToast);","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst FormBlock = (props) => {\r\n const {\r\n className,\r\n style,\r\n children,\r\n onSubmit\r\n } = props;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nFormBlock.propTypes = {\r\n // MAIN PROPS\r\n className: PropTypes.string,\r\n children: PropTypes.any,\r\n\r\n // FORM ACTION PROPS\r\n onSubmit: PropTypes.func,\r\n};\r\n\r\nFormBlock.defaultProps = {\r\n // MAIN PROPS\r\n className: '',\r\n children: null,\r\n\r\n // FORM ACTION PROPS\r\n onSubmit: () => { },\r\n};\r\n\r\nexport default FormBlock;","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n email: Yup.string().required('Username is required'),\r\n password: Yup.string().required('Password is required'),\r\n});","/* eslint-disable camelcase */\r\nimport moment from 'moment';\r\nimport constants from '../constants/constants';\r\n\r\n/* eslint-disable no-restricted-syntax */\r\nconst getInputClasses = (formik, fieldname) => {\r\n if (formik.touched[fieldname] && formik.errors[fieldname]) {\r\n return 'error';\r\n }\r\n if (formik.touched[fieldname] && !formik.errors[fieldname]) {\r\n return '';\r\n }\r\n\r\n return '';\r\n};\r\n\r\nconst convertJsonToFormData = (json) => {\r\n const form_data = new FormData();\r\n for (const key in json) {\r\n if (Array.isArray(json[key])) { json[key].forEach((item) => form_data.append(key, item)); } else { form_data.append(key, (json[key] === null) ? '' : json[key]); }\r\n }\r\n\r\n return form_data;\r\n};\r\n\r\nconst setToOptionModel = (name, value) => ({ label: name, value });\r\n\r\nconst reOrderDnd = (list, startIndex, endIndex) => {\r\n const result = Array.from(list);\r\n const [removed] = result.splice(startIndex, 1);\r\n result.splice(endIndex, 0, removed);\r\n return result.map((x, i) => ({ ...x, sortOrder: i }));\r\n};\r\n\r\nconst mapContentSectionName = (type) => {\r\n switch (type) {\r\n case constants.CONTENT_SECTION.ContentSectionTypeDefault:\r\n return 'Content Section (Default)';\r\n case constants.CONTENT_SECTION.ContentSectionTypeReversed:\r\n return 'Content Section (Reversed)';\r\n case constants.CONTENT_SECTION.ContentSectionTypeFullWidth:\r\n return 'Content Section Full Width';\r\n case constants.CONTENT_SECTION.ContentSectionTypeFullWidthPadded:\r\n return 'Content Section Full Width (Padded)';\r\n case constants.CONTENT_SECTION.ContentSectionTypeTextOnly:\r\n return 'Content Section (Text Only)';\r\n case constants.CONTENT_SECTION.ContentSectionTypeCard:\r\n return 'Content Card';\r\n case constants.CONTENT_SECTION.ContentSectionTypeBanner:\r\n return 'Content Banner';\r\n case constants.CONTENT_SECTION.ContentSectionDynamicBanner:\r\n return 'Banner';\r\n case constants.CONTENT_SECTION.ContentSectionCustom:\r\n return 'Custom';\r\n default:\r\n return '';\r\n }\r\n};\r\n\r\nconst copyToClipBoard = (copyText) => {\r\n const aux = document.createElement('input');\r\n aux.setAttribute('value', copyText);\r\n document.body.appendChild(aux);\r\n aux.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(aux);\r\n};\r\n\r\nconst countdownMessage = (expiryDate) => {\r\n if (!expiryDate) {\r\n return '';\r\n }\r\n\r\n const date = moment().format('MM/DD/YYYY hh:mm:ss a');\r\n const diffr = moment.duration(moment(new Date(expiryDate)).diff(new Date(date)));\r\n const hours = parseInt(diffr.asHours(), 10);\r\n const minutes = parseInt(diffr.minutes(), 10);\r\n const seconds = parseInt(diffr.seconds(), 10);\r\n const currentDuration = Math.floor((hours * 60 * 60 + minutes * 60 + seconds) / 3600);\r\n\r\n if (currentDuration > 24) {\r\n return `${Math.ceil(currentDuration / 24)} Days Left`;\r\n }\r\n if (currentDuration === 24) {\r\n return `${Math.floor(currentDuration / 24)} Day Left`;\r\n }\r\n if (currentDuration > 12 && currentDuration !== 24) {\r\n return 'Expires Soon';\r\n }\r\n if ((currentDuration < 12 && currentDuration > 0) || currentDuration === 0) {\r\n return 'Expires Today';\r\n }\r\n if (currentDuration === -1 || currentDuration < -1) {\r\n return '';\r\n }\r\n\r\n return 'Limited-Time Only';\r\n};\r\n\r\nconst dateFilterListRenderer = (v) => {\r\n if (v[0] && v[1]) {\r\n return `Start Date: ${v[0]} to End Date: ${v[1]}`;\r\n }\r\n if (v[0]) {\r\n return `Start Date: ${v[0]}`;\r\n }\r\n if (v[1]) {\r\n return `End Date: ${v[1]}`;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst dateFilterLogic = (date, filters) => {\r\n const check = new Date(date);\r\n let from = new Date(filters[0]);\r\n let to = new Date(filters[1]);\r\n\r\n from.setDate(from.getDate() + 1);\r\n to.setDate(to.getDate() + 1);\r\n from = new Date(from).setHours(0, 0, 0, 0);\r\n to = new Date(to).setHours(23, 59, 59, 59);\r\n\r\n if (filters[0] && filters[1] && check >= to && check <= from) {\r\n return true;\r\n }\r\n if (filters[0] && check >= to) {\r\n return true;\r\n }\r\n if (filters[1] && check <= from) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\n// Extracts date (month, day, year) from input string using regex,\r\n// returns object with values or null\r\nconst extractDateFromString = (str) => {\r\n const monthRegex = /(jan(?:uary)?|feb(?:ruary)?|mar(?:ch)?|apr(?:il)?|may|jun(?:e)?|jul(?:y)?|aug(?:ust)?|sep(?:tember)?|oct(?:ober)?|nov(?:ember)?|dec(?:ember)?)/gi;\r\n const dayRegex = /\\d{1,2}/;\r\n const yearRegex = /\\d{4}/;\r\n\r\n const monthMatch = str.match(monthRegex);\r\n const dayMatch = str.match(dayRegex);\r\n const yearMatch = str.match(yearRegex);\r\n\r\n if (monthMatch && dayMatch) {\r\n const month = monthMatch[0].toLowerCase();\r\n const day = dayMatch[0];\r\n const year = yearMatch ? yearMatch[0] : null;\r\n\r\n return { month, day, year };\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst extractDate = (input) => {\r\n const match = input.match(/^(\\w+),\\s(\\w+)\\s(\\d+),\\s(\\d+),\\s(\\d+):(\\d+)\\s(am|pm)\\s-\\s(\\d+):(\\d+)\\s(am|pm)$/);\r\n\r\n return {\r\n weekDay: match[1],\r\n month: match[2],\r\n day: match[3],\r\n year: match[4]\r\n };\r\n};\r\n\r\nconst extractTimeFromString = (input) => {\r\n const timeRegex = /(\\d{1,2}:\\d{2} [ap]m)/gi;\r\n const times = input.match(timeRegex);\r\n\r\n if (!times) {\r\n return null;\r\n }\r\n\r\n const time = {};\r\n if (times.length === 1) {\r\n time.startValue = times[0].slice(0, 5);\r\n time.startMeridian = times[0].slice(5);\r\n } else {\r\n time.startValue = times[0].slice(0, 5);\r\n time.startMeridian = times[0].slice(5).toUpperCase();\r\n time.endValue = times[1].slice(0, 5);\r\n time.endMeridian = times[1].slice(5).toUpperCase();\r\n }\r\n\r\n return time;\r\n};\r\n\r\nconst extractLocationData = (input) => {\r\n const addressRegex = /^(.+),/;\r\n const addressMatch = input.match(addressRegex);\r\n\r\n const iframeRegex = /src=\"(.+?)\"/;\r\n const iframeMatch = input.match(iframeRegex);\r\n\r\n if (!addressMatch || !iframeMatch) {\r\n return null;\r\n }\r\n\r\n const address = addressMatch[1];\r\n const iframeSrc = iframeMatch[1];\r\n\r\n const [street, city, state, zipcode] = address.split(', ');\r\n\r\n return {\r\n street,\r\n city,\r\n state,\r\n zipcode,\r\n iframeSrc\r\n };\r\n};\r\n\r\nconst extractDescription = (input) => {\r\n const linkRegex = /\\[(.*?)\\]\\((.*?)\\)/g;\r\n const links = input.match(linkRegex);\r\n const output = { description: input.replace(linkRegex, '').trim() };\r\n\r\n if (links) {\r\n for (let i = 0; i < links.length; i += 1) {\r\n const link = links[i];\r\n const label = link.match(/\\[(.*?)\\]/)[1];\r\n const url = link.match(/\\((.*?)\\)/)[1];\r\n\r\n output[`link${i + 1}`] = { label, url };\r\n }\r\n }\r\n\r\n return output;\r\n};\r\n\r\nexport {\r\n getInputClasses,\r\n convertJsonToFormData,\r\n setToOptionModel,\r\n reOrderDnd,\r\n mapContentSectionName,\r\n copyToClipBoard,\r\n countdownMessage,\r\n dateFilterListRenderer,\r\n dateFilterLogic,\r\n extractDateFromString,\r\n extractDate,\r\n extractTimeFromString,\r\n extractLocationData,\r\n extractDescription\r\n};","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'Users/';\r\n\r\nconst login = async (user) => axiosInstance.post(`${ENDPOINTORIGIN}Authenticate`, user, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst register = async (user) => axiosInstance.post(`${ENDPOINTORIGIN}Register`, user, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getUserById = async (userId) => axiosInstance.get(`${ENDPOINTORIGIN}GetUser?id=${userId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getAllUsers = async () => axiosInstance.get(`${ENDPOINTORIGIN}GetAllUsers`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst updateUser = async (user) => axiosInstance.put(`${ENDPOINTORIGIN}UpdateUser`, user, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst changeUserPassword = async (newPassword, oldPassword) => axiosInstance.put(`${ENDPOINTORIGIN}ChangeUserPassword?password=${newPassword}&oldPassword=${oldPassword}`, {}, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n login,\r\n register,\r\n getUserById,\r\n getAllUsers,\r\n updateUser,\r\n changeUserPassword\r\n};","// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useFormik } from 'formik';\r\n// COMPONENTS\r\n// ICONS\r\nimport { TbUserSquareRounded, TbLockSquareRounded } from 'react-icons/tb';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport FormBlock from '../../../components/FormBlock';\r\nimport ContentHeader from '../../../components/ContentHeader';\r\nimport InputBlock from '../../../components/InputBlock';\r\nimport Image from '../../../components/Image';\r\nimport Button from '../../../components/Button';\r\n// import TextBlock from '../../../components/TextBlock';\r\n// PARTIALS\r\n// import ForgotPasswordBlock from './_partials/ForgotPasswordBlock';\r\n// ASSETS\r\nimport Logo from '../../../assets/client/logo.svg';\r\n// SERVICES & HELPERS\r\nimport LoginValidator from '../../../helpers/validators/user/LoginValidator';\r\nimport * as helper from '../../../helpers/helper';\r\nimport * as userService from '../../../services/management/userService';\r\n// REDUX\r\nimport * as auth from '../../../redux/authRedux';\r\nimport * as alertToast from '../../../redux/alertToastRedux';\r\n\r\nconst initialModel = {\r\n email: '',\r\n password: ''\r\n};\r\n\r\nconst LoginPage = (props) => {\r\n const { showAlert, login, history } = props;\r\n const [isPasswordVisible, setIsPasswordVisible] = useState(false);\r\n const iconSize = 30;\r\n\r\n const loginUser = (model, setSubmitting) => {\r\n userService.login(model).then((res) => {\r\n login(res);\r\n history.push('/admin/management/parcel-shipping-analysis');\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n const formik = useFormik({\r\n initialValues: initialModel,\r\n validationSchema: LoginValidator,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n\r\n loginUser(values, setSubmitting);\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 {`Copyright © ${(new Date()).getFullYear()} Transport Logics. All rights reserved.`}\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 errorMessage={formik.errors.email}\r\n inputState={`${helper.getInputClasses(formik, 'email')}`}\r\n {...formik.getFieldProps('email')}\r\n />\r\n\r\n }\r\n inputRightButtonText={isPasswordVisible ? 'Hide' : 'Show'}\r\n inputRightButtonOnClick={() => setIsPasswordVisible(!isPasswordVisible)}\r\n {...formik.getFieldProps('password')}\r\n errorMessage={formik.errors.password}\r\n inputState={`${helper.getInputClasses(formik, 'password')}`}\r\n />\r\n\r\n {/* \r\n \r\n\r\n \r\n */}\r\n\r\n \r\n \r\n {/*\r\n \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, { ...auth.actions, ...alertToast.actions })(LoginPage);","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst Section = (props) => {\r\n const {\r\n hasNoContainer,\r\n isFullWidth,\r\n className,\r\n containerStyle,\r\n rowClassName,\r\n rowStyle,\r\n children\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nSection.propTypes = {\r\n // MAIN PROPS\r\n className: PropTypes.string,\r\n rowClassName: PropTypes.string,\r\n containerStyle: PropTypes.object,\r\n rowStyle: PropTypes.object,\r\n children: PropTypes.any,\r\n\r\n // BOOLEAN PROPS\r\n hasNoContainer: PropTypes.bool,\r\n isFullWidth: PropTypes.bool,\r\n};\r\n\r\nSection.defaultProps = {\r\n // SIZE AND APPEARANCE PROPS\r\n className: '',\r\n rowClassName: '',\r\n containerStyle: {},\r\n rowStyle: {},\r\n children: null,\r\n\r\n // BOOLEAN PROPS\r\n hasNoContainer: false,\r\n isFullWidth: false,\r\n};\r\n\r\nexport default Section;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst ContentBlock = (props) => {\r\n const { className, cols, children } = props;\r\n const columnSizes = {\r\n 12: 'col-lg-12 col-md-12',\r\n 11: 'col-lg-11 col-md-11',\r\n 10: 'col-lg-10 col-md-10',\r\n 9: 'col-lg-9 col-md-9',\r\n 8: 'col-lg-8 col-md-8',\r\n 7: 'col-lg-7 col-md-7',\r\n 6: 'col-lg-6 col-md-6',\r\n 5: 'col-lg-5 col-md-5',\r\n 4: 'col-lg-4 col-md-4',\r\n 3: 'col-lg-3 col-md-3',\r\n 2: 'col-lg-2 col-md-2',\r\n 1: 'col-lg-1 col-md-1',\r\n };\r\n\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n};\r\n\r\nContentBlock.propTypes = {\r\n // MAIN PROPS\r\n cols: PropTypes.number,\r\n className: PropTypes.string,\r\n children: PropTypes.any\r\n};\r\n\r\nContentBlock.defaultProps = {\r\n cols: 12,\r\n className: '',\r\n children: null\r\n};\r\n\r\nexport default ContentBlock;","/* eslint-disable react/no-unknown-property */\r\n/* eslint-disable jsx-a11y/label-has-associated-control */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst CheckboxBlock = (props) => {\r\n const {\r\n id,\r\n containerClassName,\r\n labelClassName,\r\n label,\r\n isChecked,\r\n onChange\r\n } = props;\r\n return (\r\n \r\n \r\n\r\n \r\n {label}\r\n \r\n \r\n );\r\n};\r\n\r\nCheckboxBlock.propTypes = {\r\n // MAIN PROPS\r\n id: PropTypes.string,\r\n label: PropTypes.string,\r\n containerClassName: PropTypes.string,\r\n labelClassName: PropTypes.string,\r\n isChecked: PropTypes.bool,\r\n onChange: PropTypes.func\r\n};\r\n\r\nCheckboxBlock.defaultProps = {\r\n // MAIN PROPS\r\n id: '',\r\n label: '',\r\n containerClassName: '',\r\n labelClassName: '',\r\n isChecked: false,\r\n onChange: () => { }\r\n};\r\n\r\nexport default CheckboxBlock;","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n username: Yup.string().required('Username is required').max(100),\r\n fullName: Yup.string().required('Full Name is required').max(250),\r\n email: Yup.string().email('Please enter valid email').required('Email is required').max(250),\r\n phone: Yup.string().max(20),\r\n password: Yup.string()\r\n .required('Password is required')\r\n .min(8, 'Minimum password length must be at least 8 characters')\r\n .max(100),\r\n confirmPassword: Yup.string()\r\n .required('Please confirm your new password')\r\n .oneOf([Yup.ref('password')], 'Passwords do not match'),\r\n isActive: Yup.bool().nullable(),\r\n isAdmin: Yup.bool().nullable()\r\n});","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n oldPassword: Yup.string()\r\n .required('Old password is required')\r\n .min(8, 'Minimum length of Password is 8')\r\n .max(100),\r\n password: Yup.string()\r\n .required('New password is required')\r\n .min(8, 'Minimum length of Password is 8')\r\n .max(100),\r\n confirmPassword: Yup.string()\r\n .required('Re-enter your new password')\r\n .oneOf([Yup.ref('password')], 'Passwords must match'),\r\n});","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n fullName: Yup.string().required('Full Name is required').max(250),\r\n email: Yup.string().email('Please enter valid email address').required('Email Address is required').max(250),\r\n phone: Yup.string().max(20),\r\n isActive: Yup.bool().nullable()\r\n});","/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable camelcase */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable no-shadow */\r\n// DEPENDENCIES\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useFormik } from 'formik';\r\nimport { connect } from 'react-redux';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\n// ICONS\r\nimport {\r\n FiEye,\r\n FiEyeOff\r\n} from 'react-icons/fi';\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport FormBlock from '../../../../components/FormBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport Button from '../../../../components/Button';\r\nimport ModalBlock from '../../../../components/ModalBlock';\r\nimport InputBlock from '../../../../components/InputBlock';\r\nimport CheckboxBlock from '../../../../components/CheckboxBlock';\r\nimport OverLay from '../../../../components/Overlay';\r\n// HELPERS AND SERVICES\r\nimport * as userService from '../../../../services/management/userService';\r\nimport * as helper from '../../../../helpers/helper';\r\nimport RegisterUserValidator from '../../../../helpers/validators/user/RegisterUserValidator';\r\nimport UpdatePasswordValidator from '../../../../helpers/validators/user/UpdatePasswordValidator';\r\nimport EditUserValidator from '../../../../helpers/validators/user/EditUserValidator';\r\n// REDUX\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as auth from '../../../../redux/authRedux';\r\n\r\nconst userRegisterModel = {\r\n fullName: '',\r\n email: '',\r\n phone: '',\r\n username: '',\r\n password: '',\r\n confirmPassword: '',\r\n isActive: true,\r\n isAdmin: false\r\n};\r\n\r\nconst initialUpdatePasswordModel = {\r\n id: 0,\r\n password: '',\r\n confirmPassword: '',\r\n};\r\n\r\nconst initialEditModel = {\r\n id: 0,\r\n fullName: '',\r\n email: '',\r\n phone: '',\r\n username: '',\r\n isActive: false,\r\n isAdmin: false\r\n};\r\n\r\nconst UserListingPage = (props) => {\r\n const { showAlert, auth } = props;\r\n const [registerModalVisible, setRegisterModalVisible] = useState(false);\r\n const [updatePasswordModalVisible, setUpdatePasswordRegisterModalVisible] = useState(false);\r\n const [editModalVisible, setEditModalVisible] = useState(false);\r\n const [isPasswordVisible, setIsPasswordVisible] = useState(false);\r\n const [isConfirmPasswordVisible, setIsConfirmPasswordVisible] = useState(false);\r\n const [userList, setUserList] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [updatePasswordModel, setUpdatePasswordModel] = useState(initialUpdatePasswordModel);\r\n const [editUserModel, setEditUserModel] = useState(initialEditModel);\r\n const iconSize = 22;\r\n // const iconColor = 'white--clr';\r\n\r\n useEffect(() => {\r\n getAllUsers();\r\n }, []);\r\n\r\n const regiser_user_formik = useFormik({\r\n initialValues: userRegisterModel,\r\n validationSchema: RegisterUserValidator,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n registerUser(values);\r\n },\r\n });\r\n\r\n const update_password_user_formik = useFormik({\r\n initialValues: updatePasswordModel,\r\n validationSchema: UpdatePasswordValidator,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n updateUserPassword(values);\r\n },\r\n });\r\n\r\n const edit_user_formik = useFormik({\r\n initialValues: editUserModel,\r\n validationSchema: EditUserValidator,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n editUser(values);\r\n },\r\n });\r\n\r\n const getUserDetails = (id) => {\r\n setIsLoading(true);\r\n userService.getUserById(id).then((res) => {\r\n setEditUserModel(res);\r\n setEditModalVisible(true);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const getAllUsers = () => {\r\n setIsLoading(true);\r\n userService.getAllUsers().then((res) => {\r\n setUserList(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const registerUser = (model) => {\r\n setIsLoading(true);\r\n userService.register(model).then((res) => {\r\n getAllUsers();\r\n showAlert({ text: res.message, state: 'success' });\r\n closeRegisterModal();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const closeRegisterModal = () => {\r\n setRegisterModalVisible(false);\r\n regiser_user_formik.resetForm();\r\n };\r\n\r\n const closePasswordModal = () => {\r\n setUpdatePasswordModel(initialUpdatePasswordModel);\r\n update_password_user_formik.resetForm();\r\n setUpdatePasswordRegisterModalVisible(false);\r\n };\r\n\r\n const updateUserPassword = (model) => {\r\n setIsLoading(true);\r\n userService.changeUserPassword(model.password, model.oldPassword).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n closePasswordModal();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const editUser = (model) => {\r\n setIsLoading(true);\r\n userService.updateUser(model).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n closeEditModal();\r\n getAllUsers();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const closeEditModal = () => {\r\n setEditModalVisible(false);\r\n edit_user_formik.resetForm();\r\n setEditUserModel(initialEditModel);\r\n };\r\n\r\n const columnOptions = {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true,\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => (\r\n \r\n {\r\n auth.isAdmin\r\n && (\r\n {\r\n getUserDetails(userList[dataIndex].id);\r\n }}\r\n />\r\n )\r\n }\r\n\r\n {\r\n (auth.user.id === userList[dataIndex].id)\r\n && (\r\n {\r\n setUpdatePasswordRegisterModalVisible(true);\r\n }}\r\n />\r\n )\r\n }\r\n \r\n )\r\n }\r\n },\r\n {\r\n name: 'username',\r\n label: 'Username',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'fullName',\r\n label: 'Full Name',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'isActive',\r\n label: 'Is User Active?',\r\n options: {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => (

{userList[dataIndex].isActive ? 'Yes' : 'No'}

)\r\n },\r\n },\r\n {\r\n name: 'isAdmin',\r\n label: 'Is User Admin?',\r\n options: {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => (

{userList[dataIndex].isAdmin ? 'Yes' : 'No'}

)\r\n },\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n {\r\n setRegisterModalVisible(true);\r\n }}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n {/* REGISTER MODAL */}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n : }\r\n iconRightOnClick={() => {\r\n setIsPasswordVisible(!isPasswordVisible);\r\n }}\r\n errorMessage={regiser_user_formik.errors.password}\r\n inputState={`${helper.getInputClasses(regiser_user_formik, 'password')}`}\r\n {...regiser_user_formik.getFieldProps('password')}\r\n isRequired\r\n />\r\n \r\n\r\n \r\n : }\r\n iconRightOnClick={() => {\r\n setIsConfirmPasswordVisible(!isConfirmPasswordVisible);\r\n }}\r\n errorMessage={regiser_user_formik.errors.confirmPassword}\r\n inputState={`${helper.getInputClasses(regiser_user_formik, 'confirmPassword')}`}\r\n {...regiser_user_formik.getFieldProps('confirmPassword')}\r\n isRequired\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 {/* RESET PASSWORD MODAL */}\r\n {\r\n setUpdatePasswordRegisterModalVisible(false);\r\n }}\r\n >\r\n \r\n
\r\n \r\n : }\r\n iconRightOnClick={() => {\r\n setIsPasswordVisible(!isPasswordVisible);\r\n }}\r\n errorMessage={update_password_user_formik.errors.oldPassword}\r\n inputState={`${helper.getInputClasses(update_password_user_formik, 'oldPassword')}`}\r\n {...update_password_user_formik.getFieldProps('oldPassword')}\r\n isRequired\r\n />\r\n \r\n \r\n : }\r\n iconRightOnClick={() => {\r\n setIsPasswordVisible(!isPasswordVisible);\r\n }}\r\n errorMessage={update_password_user_formik.errors.password}\r\n inputState={`${helper.getInputClasses(update_password_user_formik, 'password')}`}\r\n {...update_password_user_formik.getFieldProps('password')}\r\n isRequired\r\n />\r\n \r\n\r\n \r\n : }\r\n iconRightOnClick={() => {\r\n setIsConfirmPasswordVisible(!isConfirmPasswordVisible);\r\n }}\r\n errorMessage={update_password_user_formik.errors.confirmPassword}\r\n inputState={`${helper.getInputClasses(update_password_user_formik, 'confirmPassword')}`}\r\n {...update_password_user_formik.getFieldProps('confirmPassword')}\r\n isRequired\r\n />\r\n \r\n
\r\n
\r\n \r\n\r\n {/* EDIT MODAL */}\r\n {\r\n closeEditModal();\r\n }}\r\n >\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\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\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, { ...auth.actions, ...alert.actions })(UserListingPage);","// DEPENDENCIES\r\nimport React, { forwardRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { FilePond, registerPlugin } from 'react-filepond';\r\nimport FilePondPluginImageExifOrientation from 'filepond-plugin-image-exif-orientation';\r\nimport FilePondPluginImagePreview from 'filepond-plugin-image-preview';\r\nimport 'filepond/dist/filepond.min.css';\r\nimport 'filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css';\r\n// import _ from 'lodash';\r\n// COMPONENTS\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nregisterPlugin(FilePondPluginImageExifOrientation, FilePondPluginImagePreview);\r\n\r\nconst FileUploadBlock = forwardRef((props, ref) => {\r\n const { containerClassName, labelIdle } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n\r\nFileUploadBlock.propTypes = {\r\n containerClassName: PropTypes.string,\r\n labelIdle: PropTypes.string,\r\n};\r\n\r\nFileUploadBlock.defaultProps = {\r\n containerClassName: '',\r\n labelIdle: 'Drag & Drop your files or Browse',\r\n};\r\n\r\nexport default FileUploadBlock;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// ICONS\r\nimport { AiOutlineLoading } from 'react-icons/ai';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\n\r\nconst TextAreaBlock = (props) => {\r\n const {\r\n containerClassName,\r\n className,\r\n backgroundColor,\r\n label,\r\n labelColor,\r\n inputLabel,\r\n placeholder,\r\n inputState,\r\n errorMessage,\r\n successMessage,\r\n warningMessage,\r\n isLabelLoading,\r\n isRequired,\r\n isDisabled,\r\n hasBorder,\r\n } = props;\r\n\r\n const errorMessageSuffix = 'is required';\r\n const inputStates = {\r\n error: 'error',\r\n warning: 'warning',\r\n success: 'success',\r\n disabled: 'disabled'\r\n };\r\n\r\n return (\r\n \r\n {\r\n inputLabel\r\n && (\r\n \r\n {inputLabel}\r\n {isRequired && *}\r\n {\r\n isLabelLoading\r\n && (\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n {\r\n label\r\n && (\r\n \r\n {label}\r\n {isRequired && *}\r\n {\r\n isLabelLoading\r\n && (\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n \r\n {\r\n inputState === 'error'\r\n && (\r\n \r\n {errorMessage || (inputLabel || label ? (inputLabel || `${label} ${errorMessageSuffix}`) : 'Error message undefined')}\r\n \r\n )\r\n }\r\n {\r\n inputState === 'warning'\r\n && (\r\n \r\n {warningMessage}\r\n \r\n )\r\n }\r\n {\r\n inputState === 'success'\r\n && (\r\n \r\n {successMessage}\r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nTextAreaBlock.propTypes = {\r\n // CONTAINER PROPS\r\n containerClassName: PropTypes.string,\r\n className: PropTypes.string,\r\n backgroundColor: PropTypes.string,\r\n\r\n // LABEL PROPS\r\n label: PropTypes.string,\r\n labelColor: PropTypes.string,\r\n inputLabel: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n\r\n // STATE PROPS\r\n inputState: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n successMessage: PropTypes.string,\r\n warningMessage: PropTypes.string,\r\n\r\n // BOOLEAN PROPS\r\n isLabelLoading: PropTypes.bool,\r\n isRequired: PropTypes.bool,\r\n isDisabled: PropTypes.bool,\r\n hasBorder: PropTypes.bool,\r\n};\r\n\r\nTextAreaBlock.defaultProps = {\r\n // CONTAINER PROPS\r\n containerClassName: '',\r\n className: '',\r\n backgroundColor: 'light--sbg',\r\n\r\n // LABEL PROPS\r\n label: '',\r\n labelColor: '',\r\n inputLabel: '',\r\n placeholder: '',\r\n\r\n // STATE PROPS\r\n inputState: '',\r\n errorMessage: '',\r\n successMessage: '',\r\n warningMessage: '',\r\n\r\n // BOOLEAN PROPS\r\n isLabelLoading: false,\r\n isRequired: false,\r\n isDisabled: false,\r\n hasBorder: false,\r\n};\r\n\r\nexport default TextAreaBlock;","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'Settings/';\r\n\r\nconst getSettings = async () => axiosInstance.get(`${ENDPOINTORIGIN}GetSettings`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getSettingById = async (id) => axiosInstance.get(`${ENDPOINTORIGIN}GetSettingById?id=${id}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getSettingByKey = async (key) => axiosInstance.get(`${ENDPOINTORIGIN}GetSettingByKey?key=${key}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst saveSetting = async (setting) => axiosInstance.put(`${ENDPOINTORIGIN}SaveSetting`, setting, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getSettings,\r\n getSettingById,\r\n getSettingByKey,\r\n saveSetting,\r\n};","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'Page/';\r\n\r\nconst getAllPages = async (isActive) => axiosInstance.get(`${ENDPOINTORIGIN}GetAllPages?isActive=${isActive}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getPageById = async (pageId) => axiosInstance.get(`${ENDPOINTORIGIN}GetPageById?pageId=${pageId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst createPage = async (page) => axiosInstance.post(`${ENDPOINTORIGIN}CreatePage`, page, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst updatePage = async (page) => axiosInstance.put(`${ENDPOINTORIGIN}UpdatePage`, page, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deletePage = async (pageId) => axiosInstance.delete(`${ENDPOINTORIGIN}DeletePage?id=${pageId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst assignContentSectionToPage = async (pageId, contentSectionId, type) => axiosInstance.post(`${ENDPOINTORIGIN}AssignContentSectionToPage?pageId=${pageId}&contentSectionId=${contentSectionId}&type=${type}`, {}, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst unassignContentSection = async (contentSectionBannerId) => axiosInstance.delete(`${ENDPOINTORIGIN}UnassignContentSection?contentSectionBannerId=${contentSectionBannerId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst sortPageContentSections = async (sortOrders) => axiosInstance.put(`${ENDPOINTORIGIN}SortPageContentSections`, sortOrders, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteBannerImage = async (pageId) => axiosInstance.delete(`${ENDPOINTORIGIN}DeleteBannerImage?pageId=${pageId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getAllPages,\r\n getPageById,\r\n createPage,\r\n updatePage,\r\n deletePage,\r\n assignContentSectionToPage,\r\n unassignContentSection,\r\n sortPageContentSections,\r\n deleteBannerImage\r\n};","/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable camelcase */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable no-shadow */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable max-len */\r\n/* eslint-disable no-undef */\r\n// DEPENDENCIES\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useFormik } from 'formik';\r\nimport { connect } from 'react-redux';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\n// ICONS\r\nimport { IoPersonSharp } from 'react-icons/io5';\r\nimport {\r\n FiEye,\r\n FiEyeOff\r\n} from 'react-icons/fi';\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport FormBlock from '../../../../components/FormBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport Button from '../../../../components/Button';\r\nimport ModalBlock from '../../../../components/ModalBlock';\r\nimport InputBlock from '../../../../components/InputBlock';\r\nimport CheckboxBlock from '../../../../components/CheckboxBlock';\r\nimport OverLay from '../../../../components/Overlay';\r\nimport Image from '../../../../components/Image';\r\nimport FileUploadBlock from '../../../../components/FileUploadBlock';\r\nimport TextAreaBlock from '../../../../components/TextAreaBlock';\r\n// REDUX\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as auth from '../../../../redux/authRedux';\r\n// HELPERS AND SERVICES\r\nimport * as userService from '../../../../services/management/userService';\r\nimport * as helper from '../../../../helpers/helper';\r\nimport RegisterUserValidator from '../../../../helpers/validators/user/RegisterUserValidator';\r\nimport UpdatePasswordValidator from '../../../../helpers/validators/user/UpdatePasswordValidator';\r\nimport EditUserValidator from '../../../../helpers/validators/user/EditUserValidator';\r\nimport * as settingService from '../../../../services/management/settingService';\r\nimport * as pageService from '../../../../services/cms/pageService';\r\n\r\nconst SettingsListingPage = (props) => {\r\n const { showAlert, cmsInfo, showConfirmModal, hideConfirmModal } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n // SETTINGS\r\n const [isModalVisible, setIsModalVisible] = useState(false);\r\n const [settings, setSettings] = useState([]);\r\n const [selectedSetting, setSelectedSetting] = useState({});\r\n // PAGE SEO\r\n const [isPageSEOModalVisible, setIsPageSEOModalVisible] = useState(false);\r\n const [pages, setPages] = useState([]);\r\n const [selectedPage, setSelectedPage] = useState([]);\r\n // GENERAL\r\n const iconSize = 22;\r\n const iconColor = 'white--clr';\r\n\r\n useEffect(() => {\r\n if (!pages.length > 0) {\r\n getPages();\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n getSettings();\r\n }, []);\r\n\r\n const getSettings = () => {\r\n setIsLoading(true);\r\n settingService.getSettings().then((res) => {\r\n setSettings(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const getPages = async () => {\r\n setIsLoading(true);\r\n try {\r\n const res = await pageService.getAllPages(true);\r\n \r\n const detailedPages = await Promise.all(res.map(async (page) => {\r\n try {\r\n const pageDetails = await pageService.getPageById(page.id);\r\n return { ...page, ...pageDetails };\r\n } catch (ex) {\r\n showAlert({ text: `Error fetching details for page ${page.id}: ${ex.message}`, state: 'error' });\r\n return page;\r\n }\r\n }));\r\n \r\n setPages(detailedPages);\r\n } catch (ex) {\r\n showAlert({ text: ex.message, state: 'error' });\r\n } finally {\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n const formik = useFormik({\r\n initialValues: {\r\n key: '',\r\n value: ''\r\n },\r\n enableReinitialize: true,\r\n onSubmit: (values) => {\r\n const updatedSetting = { ...selectedSetting, value: values.value };\r\n\r\n settingService.saveSetting(updatedSetting)\r\n .then(() => {\r\n showAlert({ text: `${updatedSetting.key} updated successfully`, state: 'success' });\r\n getSettings();\r\n handleModalClose();\r\n })\r\n .catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n });\r\n },\r\n });\r\n\r\n const getSetting = (id) => {\r\n setIsLoading(true);\r\n settingService.getSettingById(id).then((res) => {\r\n setSelectedSetting(res);\r\n formik.setValues({ key: res.key, value: res.value });\r\n setIsModalVisible(true);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const handleModalClose = () => {\r\n setSelectedSetting([]);\r\n setIsModalVisible(false);\r\n };\r\n\r\n const handlePageModalClose = () => {\r\n setSelectedPage([]);\r\n setIsPageSEOModalVisible(false);\r\n };\r\n\r\n const settingsColumns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => (\r\n \r\n getSetting(settings[dataIndex].id)}\r\n />\r\n \r\n )\r\n }\r\n },\r\n {\r\n name: 'key',\r\n label: 'Name',\r\n options: {\r\n filter: true,\r\n sort: true,\r\n },\r\n },\r\n {\r\n name: 'value',\r\n label: 'Value',\r\n options: {\r\n filter: true,\r\n sort: true,\r\n setCellProps: () => ({\r\n style: {\r\n maxWidth: '500px',\r\n wordWrap: 'break-word',\r\n },\r\n }),\r\n customBodyRenderLite: (dataIndex) => settings[dataIndex].value || '-',\r\n },\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n\r\n {/* SETTINGS */}\r\n \r\n
\r\n \r\n \r\n \r\n

Settings

\r\n
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n {/* UPDATE SETTINGS MODAL */}\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\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, { ...auth.actions, ...alert.actions })(SettingsListingPage);","/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable react/no-array-index-key */\r\n/* eslint-disable max-len */\r\n/* eslint-disable no-use-before-define */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\nimport {\r\n DragDropContext,\r\n Droppable,\r\n Draggable\r\n} from 'react-beautiful-dnd';\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport Overlay from '../../../../components/Overlay';\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport ModalBlock from '../../../../components/ModalBlock';\r\nimport Button from '../../../../components/Button';\r\n// SERVICES AND HELPERS\r\nimport * as menuItemService from '../../../../services/cms/menuItemService';\r\nimport * as helper from '../../../../helpers/helper';\r\n// REDUX\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModal from '../../../../redux/confirmModalRedux';\r\n\r\nconst MenuItemListingPage = (props) => {\r\n const { showAlert, showConfirmModal, hideConfirmModal } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isSortModalOpen, setIsSortModalOpen] = useState(false);\r\n const [menuItems, setMenuItems] = useState([]);\r\n const [sortList, setSortList] = useState([]);\r\n // const iconSize = 22;\r\n // const iconColor = 'white--clr';\r\n\r\n useEffect(() => {\r\n getMenuItems();\r\n }, []);\r\n\r\n useEffect(() => {\r\n setSortList(menuItems.sort((a, b) => a - b));\r\n }, [menuItems]);\r\n\r\n const getMenuItems = () => {\r\n setIsLoading(true);\r\n menuItemService.getAllMenuItems('').then((res) => {\r\n setMenuItems(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const deleteMenuItem = (menuItemId) => {\r\n setIsLoading(true);\r\n\r\n menuItemService.deleteMenuItem(menuItemId).then((res) => {\r\n getMenuItems();\r\n showAlert({ text: res.message, state: 'success' });\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n hideConfirmModal();\r\n });\r\n };\r\n\r\n const sortMenuItems = () => {\r\n setIsLoading(true);\r\n\r\n menuItemService.sortMenuItems(sortList).then((res) => {\r\n getMenuItems();\r\n showAlert({ text: res.message, state: 'success' });\r\n setIsSortModalOpen(false);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const onDragEnd = (result) => {\r\n if (!result.destination) {\r\n return;\r\n }\r\n\r\n const tempArr = helper.reOrderDnd(\r\n sortList,\r\n result.source.index,\r\n result.destination.index\r\n );\r\n\r\n setSortList(tempArr);\r\n };\r\n\r\n const columnOptions = {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true\r\n };\r\n\r\n const options = {\r\n selectableRows: 'none',\r\n download: true,\r\n print: false,\r\n jumpToPage: true,\r\n textLabels: { pagination: { jumpToPage: 'Page No:' } }\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => (\r\n \r\n \r\n\r\n {\r\n showConfirmModal({\r\n title: 'Remove Menu Item',\r\n text: 'Are you sure you want to remove this menu item?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n deleteMenuItem(menuItems[dataIndex].id);\r\n }\r\n });\r\n }}\r\n />\r\n \r\n )\r\n }\r\n },\r\n {\r\n name: 'name',\r\n label: 'Menu Item Name',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'pageName',\r\n label: 'Assigned Page',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'parentMenuItem',\r\n label: 'Parent Menu Item',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'openInNewTab',\r\n label: 'Will Open In A New Tab?',\r\n options: {\r\n ...columnOptions,\r\n customBodyRenderLite: (dataIndex) => (\r\n

{menuItems[dataIndex].openInNewTab ? 'Yes' : 'No'}

\r\n )\r\n }\r\n },\r\n {\r\n name: 'isActive',\r\n label: 'Is Active?',\r\n options: {\r\n ...columnOptions,\r\n customBodyRenderLite: (dataIndex) => (\r\n

{menuItems[dataIndex].isActive ? 'Yes' : 'No'}

\r\n )\r\n }\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n setIsSortModalOpen(true)}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n {/* SORT MODAL */}\r\n {\r\n setIsSortModalOpen(false);\r\n }}\r\n >\r\n
\r\n \r\n \r\n {(droppableProvided) => (\r\n \r\n {sortList.map((item, index) => (\r\n \r\n {(draggableProvided) => (\r\n \r\n

{item.name}

\r\n \r\n\r\n )}\r\n \r\n ))}\r\n {droppableProvided.placeholder}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\nexport default connect(mapStateFromProps, { ...alert.actions, ...confirmModal.actions })(MenuItemListingPage);","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Button from './Button';\r\nimport ContentHeader from './ContentHeader';\r\n\r\nconst FixedActionsBar = (props) => {\r\n const {\r\n buttonSize,\r\n position,\r\n children,\r\n primaryActionText,\r\n primaryActionColor,\r\n primaryActionTo,\r\n primaryActionOnClick,\r\n secondaryActionText,\r\n secondaryActionColor,\r\n secondaryActionTo,\r\n secondaryActionOnClick,\r\n optionalText,\r\n optionalActionText,\r\n optionalActionColor,\r\n optionalActionTo,\r\n optionalActionOnClick,\r\n isLeftBlockTextOnly\r\n } = props;\r\n\r\n const positions = {\r\n top: 'top',\r\n bottom: 'bottom'\r\n };\r\n\r\n return (\r\n \r\n \r\n {\r\n children !== null\r\n && (\r\n \r\n {children}\r\n \r\n )\r\n }\r\n \r\n {\r\n (optionalActionText !== '' || null)\r\n && (\r\n \r\n )\r\n }\r\n\r\n {\r\n ((optionalText !== '' || null) && isLeftBlockTextOnly)\r\n && (\r\n \r\n )\r\n }\r\n \r\n \r\n\r\n \r\n {\r\n (secondaryActionText !== '' || null)\r\n && (\r\n \r\n )\r\n }\r\n {\r\n primaryActionText && (\r\n \r\n )\r\n }\r\n\r\n \r\n \r\n );\r\n};\r\n\r\nFixedActionsBar.propTypes = {\r\n // BUTTON PROPS\r\n buttonSize: PropTypes.string,\r\n\r\n // MAIN PROPS\r\n position: PropTypes.string,\r\n children: PropTypes.any,\r\n\r\n // ACTION PROPS\r\n primaryActionText: PropTypes.string.isRequired,\r\n primaryActionColor: PropTypes.string,\r\n primaryActionTo: PropTypes.string,\r\n primaryActionOnClick: PropTypes.func,\r\n\r\n secondaryActionText: PropTypes.string,\r\n secondaryActionColor: PropTypes.string,\r\n secondaryActionTo: PropTypes.string,\r\n secondaryActionOnClick: PropTypes.func,\r\n\r\n optionalText: PropTypes.string,\r\n optionalActionText: PropTypes.string,\r\n optionalActionColor: PropTypes.string,\r\n optionalActionTo: PropTypes.string,\r\n optionalActionOnClick: PropTypes.func,\r\n\r\n isLeftBlockTextOnly: PropTypes.bool\r\n};\r\n\r\nFixedActionsBar.defaultProps = {\r\n // BUTTON PROPS\r\n buttonSize: '',\r\n\r\n // POSITION PROPS\r\n position: 'bottom',\r\n children: null,\r\n\r\n // MAIN PROPS\r\n primaryActionColor: 'primary--bg',\r\n primaryActionTo: '',\r\n primaryActionOnClick: null,\r\n\r\n secondaryActionText: '',\r\n secondaryActionColor: 'danger--bg',\r\n secondaryActionTo: '',\r\n secondaryActionOnClick: null,\r\n\r\n optionalText: '',\r\n optionalActionText: '',\r\n optionalActionColor: 'secondary--bg',\r\n optionalActionTo: '',\r\n optionalActionOnClick: null,\r\n\r\n isLeftBlockTextOnly: false\r\n};\r\n\r\nexport default FixedActionsBar;","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n name: Yup.string().required('Menu Item Name is required').max(100),\r\n pageId: Yup.number().nullable(),\r\n parentMenuItemId: Yup.number().nullable(),\r\n customLink: Yup.string().nullable().max(250),\r\n openInNewTab: Yup.bool(),\r\n isActive: Yup.bool(),\r\n});","/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable no-param-reassign */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useFormik } from 'formik';\r\nimport { useParams } from 'react-router-dom';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\nimport {\r\n DragDropContext,\r\n Droppable,\r\n Draggable\r\n} from 'react-beautiful-dnd';\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport FormBlock from '../../../../components/FormBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport InputBlock from '../../../../components/InputBlock';\r\nimport SelectBlock from '../../../../components/SelectBlock';\r\nimport CheckboxBlock from '../../../../components/CheckboxBlock';\r\nimport Button from '../../../../components/Button';\r\nimport Overlay from '../../../../components/Overlay';\r\nimport ModalBlock from '../../../../components/ModalBlock';\r\nimport FixedActionsBar from '../../../../components/FixedActionsBar';\r\n// ASSETS\r\n// SERVICES AND HELPERS\r\nimport * as helper from '../../../../helpers/helper';\r\nimport * as menuItemService from '../../../../services/cms/menuItemService';\r\nimport * as pageService from '../../../../services/cms/pageService';\r\nimport MenuItemValidator from '../../../../helpers/validators/cms/menuItem/menuItemValidator';\r\n// REDUX\r\nimport * as auth from '../../../../redux/authRedux';\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModalRedux from '../../../../redux/confirmModalRedux';\r\n\r\nconst intialMenuItemModel = {\r\n id: 0,\r\n name: '',\r\n pageId: null,\r\n parentMenuItemId: null,\r\n customLink: null,\r\n openInNewTab: false,\r\n isActive: true,\r\n assignedMenuItems: []\r\n};\r\n\r\nconst MenuItemManagementPage = (props) => {\r\n const { showAlert, history, showConfirmModal, hideConfirmModal } = props;\r\n const { menuItemId } = useParams();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [menuItemModel, setMenuItemModel] = useState(intialMenuItemModel);\r\n const [selectedOptions, setSelectedOptions] = useState({\r\n page: null,\r\n parentMenuItem: null\r\n });\r\n const [pageOptions, setPageOptions] = useState();\r\n const [menuItemOptions, setMenuItemOptions] = useState();\r\n const [isModalVisible, setIsModalVisible] = useState(false);\r\n const [assignmentMenuItemOptions, setAssignmentMenuItemOptions] = useState([]);\r\n const [selectedAssignmentMenuItem, setSelectedAssignmentMenuItem] = useState(null);\r\n const [isSortModalOpen, setIsSortModalOpen] = useState(false);\r\n const [sortList, setSortList] = useState([]);\r\n\r\n // const iconSize = 22;\r\n // const iconColor = 'white--clr';\r\n\r\n const columnOptions = {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: false\r\n };\r\n\r\n const options = {\r\n selectableRows: 'none',\r\n download: false,\r\n print: false,\r\n };\r\n\r\n useEffect(() => {\r\n loadOptionsAndPopulateForm();\r\n }, [menuItemId]);\r\n\r\n useEffect(() => {\r\n setSortList(menuItemModel.assignedMenuItems.sort((a, b) => a - b));\r\n }, [menuItemModel]);\r\n\r\n const formik = useFormik({\r\n initialValues: menuItemModel,\r\n validationSchema: MenuItemValidator,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n if (menuItemId) {\r\n updateMenuItem(values);\r\n } else {\r\n createMenuItem(values);\r\n }\r\n },\r\n });\r\n\r\n const loadOptionsAndPopulateForm = async () => {\r\n const pages = await getPageOptions();\r\n const menuItems = await getMenuItemOptions();\r\n\r\n if (menuItemId > 0) {\r\n getMenuItem(pages, menuItems);\r\n }\r\n };\r\n\r\n const getMenuItem = async (pages, menuItems) => {\r\n setIsLoading(true);\r\n\r\n await getMenuItemForAssignments();\r\n menuItemService.getMenuItemsById(menuItemId).then((res) => {\r\n setMenuItemModel(res);\r\n let selectedOptionsFromApi = {\r\n page: null,\r\n parentMenuItem: null\r\n };\r\n if (res.pageId) {\r\n const selectedPage = pages.find((x) => x.value === res.pageId);\r\n if (selectedPage) {\r\n selectedOptionsFromApi = { ...selectedOptionsFromApi, page: selectedPage };\r\n }\r\n }\r\n\r\n if (res.parentMenuItemId) {\r\n const selectedMenuItem = menuItems.find((x) => x.value === res.parentMenuItemId);\r\n if (selectedMenuItem) {\r\n selectedOptionsFromApi = { ...selectedOptionsFromApi, parentMenuItem: selectedMenuItem };\r\n }\r\n }\r\n\r\n setSelectedOptions(selectedOptionsFromApi);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const getPageOptions = async () => pageService.getAllPages(true).then((res) => {\r\n const pageList = res.map((x) => helper.setToOptionModel(x.name, x.id));\r\n // console.log('Page Options are ', pageList);\r\n setPageOptions(pageList);\r\n\r\n return pageList;\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n });\r\n\r\n const getMenuItemForAssignments = async () => menuItemService.getMenuItemsWithNoParentOrChild()\r\n .then((res) => {\r\n const assignmentlist = res.filter((x) => x.id !== Number(menuItemId))\r\n .map((x) => helper.setToOptionModel(x.name, x.id));\r\n setAssignmentMenuItemOptions(assignmentlist);\r\n\r\n return assignmentlist;\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n });\r\n\r\n const getMenuItemOptions = async () => menuItemService.getAllMenuItems(true).then((res) => {\r\n const menuItemList = res.filter((x) => x.parentMenuItem === '-' && x.id !== Number(menuItemId)).map((x) => helper.setToOptionModel(x.name, x.id));\r\n setMenuItemOptions(menuItemList);\r\n\r\n return menuItemList;\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n });\r\n\r\n const createMenuItem = (model) => {\r\n setIsLoading(true);\r\n\r\n menuItemService.createMenuItem(model).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n history.push('/cms/management/menu-items');\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const updateMenuItem = (model) => {\r\n setIsLoading(true);\r\n menuItemService.updateMenuItems(model).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n history.push('/cms/management/menu-items');\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const removeAssignedMenuItem = (id) => {\r\n setIsLoading(true);\r\n\r\n menuItemService.removeParentMenuItem(id).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n getMenuItem(pageOptions, menuItemOptions);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n hideConfirmModal();\r\n });\r\n };\r\n\r\n const assignMenuItem = () => {\r\n setIsLoading(true);\r\n\r\n menuItemService.assignParentMenuItem({\r\n parentId: menuItemId,\r\n childMenuItemIds: selectedAssignmentMenuItem.map((x) => Number(x.value))\r\n }).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n getMenuItem();\r\n setIsModalVisible(false);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n setSelectedAssignmentMenuItem(null);\r\n });\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => (\r\n \r\n {\r\n history.push(`/cms/management/menu-item/edit/${menuItemModel.assignedMenuItems[dataIndex].id}`);\r\n }}\r\n />\r\n\r\n {\r\n showConfirmModal({\r\n title: 'Remove Menu Item',\r\n text: 'Are you sure you want to remove this assigned menu item?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n removeAssignedMenuItem(menuItemModel.assignedMenuItems[dataIndex].id);\r\n }\r\n });\r\n }}\r\n />\r\n \r\n )\r\n }\r\n },\r\n {\r\n name: 'name',\r\n label: 'Menu Item Name',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'pageName',\r\n label: 'Assigned Page',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'isActive',\r\n label: 'Is Active?',\r\n options: {\r\n ...columnOptions,\r\n customBodyRenderLite: (dataIndex) => (\r\n

{menuItemModel.assignedMenuItems[dataIndex].isActive ? 'Yes' : 'No'}

\r\n )\r\n },\r\n },\r\n ];\r\n\r\n const onDragEnd = (result) => {\r\n if (!result.destination) {\r\n return;\r\n }\r\n\r\n const tempArr = helper.reOrderDnd(\r\n sortList,\r\n result.source.index,\r\n result.destination.index\r\n );\r\n\r\n setSortList(tempArr);\r\n };\r\n\r\n const sortChildMenuItems = () => {\r\n setIsLoading(true);\r\n\r\n menuItemService.sortChildMenuItems(sortList).then((res) => {\r\n getMenuItem(pageOptions, menuItemOptions);\r\n showAlert({ text: res.message, state: 'success' });\r\n setIsSortModalOpen(false);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n {/* BASIC INFORMATION */}\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 selectedOpt = selectedOpt === null ? [] : selectedOpt;\r\n setSelectedOptions({ ...selectedOptions, page: selectedOpt });\r\n formik.setFieldValue('pageId', selectedOpt.value ? selectedOpt.value : null);\r\n }}\r\n />\r\n \r\n\r\n \r\n 0 ? 'disabled' : ''}\r\n // isDisabled={formik.values.assignedMenuItems.length > 0}\r\n value={selectedOptions.parentMenuItem}\r\n onChange={(selectedOpt) => {\r\n selectedOpt = selectedOpt === null ? [] : selectedOpt;\r\n setSelectedOptions({ ...selectedOptions, parentMenuItem: selectedOpt });\r\n formik.setFieldValue('parentMenuItemId', selectedOpt.value ? selectedOpt.value : null);\r\n }}\r\n />\r\n \r\n\r\n {\r\n (formik.values.pageId === null)\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 {/* ASSIGNED MENU ITEMS */}\r\n {\r\n (menuItemModel.id > 0 && formik.values.parentMenuItemId === null)\r\n && (\r\n
\r\n \r\n {\r\n setIsModalVisible(true);\r\n }}\r\n secondaryButtonText=\"Sort Menu Items\"\r\n secondaryButtonOnClick={() => setIsSortModalOpen(true)}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n
\r\n )\r\n }\r\n\r\n {/* PAGE ACTIONS */}\r\n 0 ? 'Return to Listing' : ''}\r\n optionalActionTo=\"/cms/management/menu-items\"\r\n />\r\n
\r\n
\r\n
\r\n\r\n {/* ADD IMAGES MODAL */}\r\n {\r\n setIsModalVisible(false);\r\n }}\r\n >\r\n
\r\n \r\n {\r\n selectedOpt = selectedOpt === null ? [] : selectedOpt;\r\n setSelectedAssignmentMenuItem(selectedOpt);\r\n }}\r\n />\r\n \r\n
\r\n \r\n\r\n {/* SORT MODAL */}\r\n {\r\n setIsSortModalOpen(false);\r\n }}\r\n >\r\n
\r\n \r\n \r\n {(droppableProvided) => (\r\n \r\n {sortList.map((item, index) => (\r\n \r\n {(draggableProvided) => (\r\n \r\n

{item.name}

\r\n \r\n\r\n )}\r\n \r\n ))}\r\n {droppableProvided.placeholder}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, {\r\n ...auth.actions,\r\n ...alert.actions,\r\n ...confirmModalRedux.actions\r\n})(MenuItemManagementPage);","/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable react/no-array-index-key */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable max-len */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport Overlay from '../../../../components/Overlay';\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport Button from '../../../../components/Button';\r\n// SERVICES AND HELPERS\r\nimport * as pageService from '../../../../services/cms/pageService';\r\n// REDUX\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModal from '../../../../redux/confirmModalRedux';\r\n\r\nconst PageListingPage = (props) => {\r\n const { showAlert, showConfirmModal, hideConfirmModal } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [pages, setPages] = useState([]);\r\n // const iconSize = 22;\r\n // const iconColor = 'white--clr';\r\n\r\n useEffect(() => {\r\n getPages();\r\n }, []);\r\n\r\n const getPages = () => {\r\n setIsLoading(true);\r\n pageService.getAllPages('').then((res) => {\r\n setPages(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const deletePage = (pageId) => {\r\n setIsLoading(true);\r\n\r\n pageService.deletePage(pageId).then((res) => {\r\n getPages();\r\n showAlert({ text: res.message, state: 'success' });\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n hideConfirmModal();\r\n });\r\n };\r\n\r\n const columnOptions = {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true\r\n };\r\n\r\n const options = {\r\n selectableRows: 'none',\r\n download: true,\r\n print: false,\r\n jumpToPage: true,\r\n textLabels: { pagination: { jumpToPage: 'Page No:' } }\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => (\r\n \r\n \r\n\r\n {\r\n showConfirmModal({\r\n title: 'Remove page',\r\n text: 'Are you sure you want to remove this page?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n deletePage(pages[dataIndex].id);\r\n }\r\n });\r\n }}\r\n />\r\n \r\n )\r\n }\r\n },\r\n {\r\n name: 'name',\r\n label: 'Page Name',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'title',\r\n label: 'Page Title',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'isActive',\r\n label: 'Is Active?',\r\n options: {\r\n ...columnOptions,\r\n customBodyRenderLite: (dataIndex) => (\r\n

{pages[dataIndex].isActive ? 'Yes' : 'No'}

\r\n )\r\n }\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n {isLoading && }\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\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\nexport default connect(mapStateFromProps, { ...alert.actions, ...confirmModal.actions })(PageListingPage);","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'ContentSection/';\r\n\r\nconst getAllContentSections = async (isActive) => axiosInstance.get(`${ENDPOINTORIGIN}GetAllContentSections?isActive=${isActive}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getContentSectionById = async (contentSectionId) => axiosInstance.get(`${ENDPOINTORIGIN}GetContentSectionById?contentSectionId=${contentSectionId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst createContentSection = async (contentSection) => axiosInstance.post(`${ENDPOINTORIGIN}CreateContentSection`, contentSection, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst updateContentSection = async (contentSection) => axiosInstance.put(`${ENDPOINTORIGIN}UpdateContentSection`, contentSection, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteContentSection = async (contentSectionId) => axiosInstance.delete(`${ENDPOINTORIGIN}DeleteContentSection?id=${contentSectionId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getContentSectionOptions = async (pageId, type) => axiosInstance.get(`${ENDPOINTORIGIN}GetContentSectionOptions?pageId=${pageId}&type=${type}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getContentSectionOptionsForBlog = async (blogId, type) => axiosInstance.get(`${ENDPOINTORIGIN}GetContentSectionOptionsForBlog?blogId=${blogId}&type=${type}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getAllContentSections,\r\n getContentSectionById,\r\n createContentSection,\r\n updateContentSection,\r\n deleteContentSection,\r\n getContentSectionOptions,\r\n getContentSectionOptionsForBlog\r\n};","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n name: Yup.string().required('Page Name is required').max(250),\r\n url: Yup.string().required().max(250),\r\n bannerTitle: Yup.string().nullable().max(250),\r\n isBannerVisible: Yup.bool().nullable(),\r\n bannerImageFilePath: Yup.string().nullable(),\r\n bannerColor: Yup.string().max(10),\r\n title: Yup.string().nullable().max(250),\r\n keywords: Yup.string().nullable().max(1500),\r\n description: Yup.string().nullable(),\r\n isActive: Yup.bool(),\r\n});","/* eslint-disable max-len */\r\n/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable no-param-reassign */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable no-alert */\r\n/* eslint-disable react/jsx-max-props-per-line */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useFormik } from 'formik';\r\nimport { useParams } from 'react-router-dom';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\nimport { SwatchesPicker } from 'react-color';\r\nimport {\r\n DragDropContext,\r\n Droppable,\r\n Draggable\r\n} from 'react-beautiful-dnd';\r\n// ICONS\r\nimport { MdOutlinePlaylistAdd } from 'react-icons/md';\r\nimport { FaSquare } from 'react-icons/fa';\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport FormBlock from '../../../../components/FormBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport InputBlock from '../../../../components/InputBlock';\r\nimport TextAreaBlock from '../../../../components/TextAreaBlock';\r\nimport SelectBlock from '../../../../components/SelectBlock';\r\nimport CheckboxBlock from '../../../../components/CheckboxBlock';\r\nimport Button from '../../../../components/Button';\r\nimport Overlay from '../../../../components/Overlay';\r\nimport ModalBlock from '../../../../components/ModalBlock';\r\nimport Image from '../../../../components/Image';\r\nimport FileUploadBlock from '../../../../components/FileUploadBlock';\r\nimport FixedActionsBar from '../../../../components/FixedActionsBar';\r\n// ASSETS\r\n// SERVICES AND HELPERS\r\nimport * as helper from '../../../../helpers/helper';\r\nimport * as pageService from '../../../../services/cms/pageService';\r\nimport * as contentSectionService from '../../../../services/cms/contentSectionService';\r\nimport PageValidator from '../../../../helpers/validators/cms/page/pageValidator';\r\n// REDUX\r\nimport * as auth from '../../../../redux/authRedux';\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModalRedux from '../../../../redux/confirmModalRedux';\r\n\r\nconst intialPageModel = {\r\n id: 0,\r\n name: '',\r\n url: '',\r\n isBannerVisible: true,\r\n bannerImageFilePath: '',\r\n bannerColor: '#000000',\r\n bannerTitle: '',\r\n title: '',\r\n keywords: '',\r\n description: '',\r\n isActive: true,\r\n bannerImage: null,\r\n contentSections: []\r\n};\r\n\r\nconst typeSelectionOptions = [\r\n {\r\n label: 'Banner',\r\n value: 'BANNER'\r\n },\r\n {\r\n label: 'Content Section',\r\n value: 'CONTENTSECTION'\r\n }\r\n];\r\n\r\nconst PageManagementPage = (props) => {\r\n const { showAlert, history, showConfirmModal, hideConfirmModal } = props;\r\n const { pageId } = useParams();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isModalVisible, setIsModalVisible] = useState(false);\r\n const [isSortModalOpen, setIsSortModalOpen] = useState(false);\r\n const [file, setFile] = useState([]);\r\n const [selectedOption, setSelectedOption] = useState(null);\r\n const [contentBannerTypeOption, setContentBannerTypeOption] = useState([]);\r\n const [selectedContentBannerTypeOption, setSelectedContentBannerTypeOption] = useState(null);\r\n const [pageModel, setPageModel] = useState(intialPageModel);\r\n const [sortList, setSortList] = useState([]);\r\n const iconSize = 22;\r\n const iconColor = 'white--clr';\r\n\r\n useEffect(() => {\r\n loadOptionsAndPopulateForm();\r\n setContentBannerTypeOption([]);\r\n setSelectedContentBannerTypeOption([]);\r\n }, [pageId]);\r\n\r\n useEffect(() => {\r\n setSelectedContentBannerTypeOption(null);\r\n setContentBannerTypeOption([]);\r\n if (selectedOption) {\r\n getOptions(selectedOption.value);\r\n }\r\n }, [selectedOption]);\r\n\r\n useEffect(() => {\r\n setSortList(pageModel.contentSections.sort((a, b) => a - b));\r\n }, [pageModel.contentSections]);\r\n\r\n const formik = useFormik({\r\n initialValues: pageModel,\r\n validationSchema: PageValidator,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n if (pageId) {\r\n updatePage(values);\r\n } else {\r\n createPage(values);\r\n }\r\n },\r\n });\r\n\r\n const loadOptionsAndPopulateForm = async () => {\r\n if (pageId > 0) {\r\n getPage();\r\n }\r\n };\r\n\r\n const getOptions = (type) => {\r\n setIsLoading(true);\r\n\r\n contentSectionService.getContentSectionOptions(pageId, type).then((res) => {\r\n setContentBannerTypeOption(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const getPage = async () => {\r\n setIsLoading(true);\r\n\r\n pageService.getPageById(pageId).then((res) => {\r\n setPageModel(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const createPage = (model) => {\r\n setIsLoading(true);\r\n\r\n pageService.createPage(helper.convertJsonToFormData(\r\n {\r\n ...model,\r\n bannerImage: file.length > 0 ? file[0].file : null\r\n }\r\n )).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n history.push(`/cms/management/page/edit/${res.id}`);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const updatePage = (model) => {\r\n setIsLoading(true);\r\n\r\n if (file.length > 0) {\r\n model = { ...model, bannerImage: file[0].file };\r\n }\r\n pageService.updatePage(helper.convertJsonToFormData(model)).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n history.push('/cms/management/pages');\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const hideContentSectionModal = () => {\r\n setSelectedOption(null);\r\n setSelectedContentBannerTypeOption(null);\r\n setContentBannerTypeOption([]);\r\n\r\n setIsModalVisible(false);\r\n };\r\n\r\n const addContentSection = () => {\r\n if (selectedContentBannerTypeOption && selectedOption) {\r\n setIsLoading(true);\r\n\r\n pageService.assignContentSectionToPage(pageId, selectedContentBannerTypeOption.value, selectedOption.value).then((res) => {\r\n getPage();\r\n showAlert({ text: res.message, state: 'success' });\r\n hideContentSectionModal();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n } else {\r\n showAlert({ text: 'Please select both type & component', state: 'warning' });\r\n }\r\n };\r\n\r\n const deletePageContent = (id) => {\r\n setIsLoading(true);\r\n\r\n pageService.unassignContentSection(id).then((res) => {\r\n getPage();\r\n showAlert({ text: res.message, state: 'success' });\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n hideConfirmModal();\r\n });\r\n };\r\n\r\n const sortPageContents = () => {\r\n setIsLoading(true);\r\n\r\n pageService.sortPageContentSections(sortList).then((res) => {\r\n getPage();\r\n showAlert({ text: res.message, state: 'success' });\r\n setIsSortModalOpen(false);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const onDragEnd = (result) => {\r\n if (!result.destination) {\r\n return;\r\n }\r\n\r\n const tempArr = helper.reOrderDnd(\r\n sortList,\r\n result.source.index,\r\n result.destination.index\r\n );\r\n\r\n setSortList(tempArr);\r\n };\r\n\r\n const columnOptions = {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: false\r\n };\r\n\r\n const options = {\r\n selectableRows: 'none',\r\n download: false,\r\n print: false,\r\n };\r\n\r\n const deleteBannerImage = () => {\r\n pageService.deleteBannerImage(pageId).then((res) => {\r\n getPage();\r\n showAlert({ text: res.message, state: 'success' });\r\n hideConfirmModal();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => (\r\n \r\n {\r\n const model = pageModel.contentSections[dataIndex];\r\n history.push(`/cms/management/${(model.bannerId > 0) ? 'banner' : 'content-section'}/edit/${(model.bannerId > 0) ? model.bannerId : model.contentSectionId}`);\r\n }}\r\n />\r\n\r\n {\r\n showConfirmModal({\r\n title: 'Remove Page Content',\r\n text: 'Are you sure you want to remove this content?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n deletePageContent(pageModel.contentSections[dataIndex].id);\r\n }\r\n });\r\n }}\r\n />\r\n \r\n )\r\n }\r\n },\r\n {\r\n name: 'name',\r\n label: 'Name',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'type',\r\n label: 'Type',\r\n options: {\r\n ...columnOptions,\r\n customBodyRenderLite: (dataIndex) => (

{helper.mapContentSectionName(pageModel.contentSections[dataIndex].type)}

)\r\n },\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n \r\n {/* BASIC INFORMATION */}\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n {/* PAGE BANNER */}\r\n
\r\n \r\n \r\n \r\n\r\n \r\n {\r\n pageModel.bannerImageFilePath\r\n ? (\r\n <>\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n showConfirmModal(\r\n {\r\n title: 'Remove Banner Image',\r\n text: 'Are you sure you want to remove this banner Image?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n deleteBannerImage();\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 errorMessage={formik.errors.bannerColor}\r\n inputState={`${helper.getInputClasses(formik, 'bannerColor')}`}\r\n {...formik.getFieldProps('bannerColor')}\r\n />\r\n\r\n \r\n {\r\n formik.setFieldValue('bannerColor', c.hex);\r\n }}\r\n className=\"w-100\"\r\n />\r\n \r\n \r\n
\r\n
\r\n\r\n {/* CONTENT */}\r\n \r\n {pageId && (\r\n
\r\n \r\n }\r\n primaryButtonOnClick={() => setIsModalVisible(true)}\r\n secondaryButtonText=\"Sort Items\"\r\n secondaryButtonOnClick={() => setIsSortModalOpen(true)}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n\r\n {/* SEARCH ENGINE OPTIMIZATION */}\r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\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 {/* PAGE ACTIONS */}\r\n 0 ? 'Save Changes' : 'Create Page'}\r\n primaryActionColor=\"primary--bg\"\r\n primaryActionOnClick={formik.handleSubmit}\r\n secondaryActionText=\"Cancel\"\r\n secondaryActionTo=\"/cms/management/pages\"\r\n optionalActionText={pageId > 0 ? 'Return to Listing' : ''}\r\n optionalActionTo=\"/cms/management/pages\"\r\n />\r\n
\r\n
\r\n
\r\n
\r\n\r\n {/* ADD Content Section MODAL */}\r\n {\r\n if (selectedOption !== null) {\r\n history.push(`/cms/management/${(selectedOption.value === 'BANNER') ? 'banner' : 'content-section'}/pageId/${pageId}`);\r\n } else {\r\n showAlert({ text: 'Please select type of Component you want to create', state: 'warning' });\r\n }\r\n }}\r\n onHide={hideContentSectionModal}\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 {/* SORT MODAL */}\r\n {\r\n setIsSortModalOpen(false);\r\n }}\r\n >\r\n
\r\n {\r\n sortList.length > 0\r\n ? (\r\n \r\n \r\n {(droppableProvided) => (\r\n \r\n {sortList.map((item, index) => (\r\n \r\n {(draggableProvided) => (\r\n \r\n

{item.name}

\r\n \r\n\r\n )}\r\n \r\n ))}\r\n {droppableProvided.placeholder}\r\n \r\n )}\r\n
\r\n
\r\n ) : (\r\n \r\n

No Items Available

\r\n
\r\n )\r\n }\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, {\r\n ...auth.actions,\r\n ...alert.actions,\r\n ...confirmModalRedux.actions\r\n})(PageManagementPage);","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'Banner/';\r\n\r\nconst getAllBanners = async (isActive) => axiosInstance.get(`${ENDPOINTORIGIN}GetAllBanners?isActive=${isActive}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getBannerById = async (bannerId) => axiosInstance.get(`${ENDPOINTORIGIN}GetBannerById?bannerId=${bannerId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst createBanner = async (banner) => axiosInstance.post(`${ENDPOINTORIGIN}CreateBanner`, banner, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst updateBanner = async (banner) => axiosInstance.put(`${ENDPOINTORIGIN}UpdateBanner`, banner, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteBanner = async (bannerId) => axiosInstance.delete(`${ENDPOINTORIGIN}DeleteBanner?id=${bannerId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getAllBanners,\r\n getBannerById,\r\n createBanner,\r\n updateBanner,\r\n deleteBanner\r\n};","/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable react/no-array-index-key */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable max-len */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\n// ICONS\r\n// import { IoMdAddCircle } from 'react-icons/io';\r\n// CUSTOM COMPONENTS\r\nimport Overlay from '../../../../components/Overlay';\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport ModalBlock from '../../../../components/ModalBlock';\r\nimport Button from '../../../../components/Button';\r\n// SERVICES AND HELPERS\r\nimport * as contentSectionService from '../../../../services/cms/contentSectionService';\r\n// REDUX\r\nimport constants from '../../../../constants/constants';\r\nimport * as helper from '../../../../helpers/helper';\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModal from '../../../../redux/confirmModalRedux';\r\nimport * as bannerService from '../../../../services/cms/bannerService';\r\n\r\nconst ContentSectionListingPage = (props) => {\r\n const { showAlert, showConfirmModal, hideConfirmModal } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [contentSections, setContentSections] = useState([]);\r\n const [isConfirmDeleteModalVisible, setIsConfirmDeleteModalVisible] = useState(false);\r\n // const iconSize = 22;\r\n // const iconColor = 'white--clr';\r\n\r\n useEffect(() => {\r\n getContentSections();\r\n }, []);\r\n\r\n const getContentSections = () => {\r\n setIsLoading(true);\r\n contentSectionService.getAllContentSections('').then((res) => {\r\n setContentSections(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const deleteContentSection = (contentSectionId) => {\r\n setIsLoading(true);\r\n\r\n contentSectionService.deleteContentSection(contentSectionId).then((res) => {\r\n getContentSections();\r\n showAlert({ text: res.message, state: 'success' });\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n hideConfirmModal();\r\n });\r\n };\r\n\r\n const deleteBanner = (bannerId) => {\r\n setIsLoading(true);\r\n\r\n bannerService.deleteBanner(bannerId).then((res) => {\r\n getContentSections();\r\n showAlert({ text: res.message, state: 'success' });\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n hideConfirmModal();\r\n });\r\n };\r\n\r\n const columnOptions = {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true\r\n };\r\n\r\n const options = {\r\n selectableRows: 'none',\r\n download: true,\r\n print: false,\r\n jumpToPage: true,\r\n textLabels: { pagination: { jumpToPage: 'Page No:' } }\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => (\r\n \r\n \r\n\r\n {\r\n showConfirmModal({\r\n title: 'Remove content section',\r\n text: 'Are you sure you want to remove this content section?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n if (contentSections[dataIndex].type === constants.CONTENT_SECTION.ContentSectionDynamicBanner) {\r\n deleteBanner(contentSections[dataIndex].id);\r\n } else {\r\n deleteContentSection(contentSections[dataIndex].id);\r\n }\r\n }\r\n });\r\n }}\r\n />\r\n \r\n )\r\n }\r\n },\r\n {\r\n name: 'name',\r\n label: 'Name',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'title',\r\n label: 'Title',\r\n options: columnOptions\r\n },\r\n {\r\n name: 'type',\r\n label: 'Type',\r\n options: {\r\n ...columnOptions,\r\n customBodyRenderLite: (dataIndex) => (\r\n

{helper.mapContentSectionName(contentSections[dataIndex].type)}

\r\n )\r\n }\r\n },\r\n {\r\n name: 'isActive',\r\n label: 'Is Active?',\r\n options: {\r\n ...columnOptions,\r\n customBodyRenderLite: (dataIndex) => (\r\n

{contentSections[dataIndex].isActive ? 'Yes' : 'No'}

\r\n )\r\n }\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n {isLoading && }\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 {/* CONFIRM DELETE MODAL */}\r\n { }}\r\n secondaryModalActionText=\"Cancel\"\r\n secondaryModalActionColor=\"grey--bg\"\r\n onHide={() => {\r\n setIsConfirmDeleteModalVisible(false);\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\nexport default connect(mapStateFromProps, { ...alert.actions, ...confirmModal.actions })(ContentSectionListingPage);","// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Image from './Image';\r\nimport TextBlock from './TextBlock';\r\n\r\nconst SelectablePreview = (props) => {\r\n const {\r\n title,\r\n titleColor,\r\n imageSource,\r\n onClick,\r\n isSelected,\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSelectablePreview.propTypes = {\r\n // MAIN PROPS\r\n title: PropTypes.string,\r\n titleColor: PropTypes.string,\r\n imageSource: PropTypes.number.isRequired,\r\n\r\n // FUNCTION PROPS\r\n onClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n isSelected: PropTypes.bool\r\n};\r\n\r\nSelectablePreview.defaultProps = {\r\n // MAIN PROPS\r\n title: '',\r\n titleColor: '',\r\n\r\n // FUNCTION PROPS\r\n onClick: null,\r\n\r\n // BOOLEAN PROPS\r\n isSelected: false\r\n};\r\n\r\nexport default SelectablePreview;","/* eslint-disable max-classes-per-file */\r\n/* eslint-disable prefer-destructuring */\r\n/* eslint-disable no-shadow */\r\n/* eslint-disable react/no-this-in-sfc */\r\n/* eslint-disable max-len */\r\nimport React, {\r\n useRef, useEffect, useState\r\n} from 'react';\r\nimport ReactQuill, { Quill } from 'react-quill';\r\nimport ImageResize from 'quill-image-resize-module-react';\r\nimport 'react-quill/dist/quill.snow.css';\r\n// import { rest } from 'lodash';\r\n// SERVICES & HELPERS\r\nimport themeHelper from '../helpers/themeHelper';\r\n\r\n// QUILL IMPORTS\r\nconst Block = Quill.import('blots/block');\r\n\r\n// CUSTOM BLOT - BLOCKQUOTE\r\nclass Blockquote extends Block {}\r\nBlockquote.blotName = 'blockquote';\r\nBlockquote.tagName = 'blockquote';\r\nQuill.register(Blockquote, true);\r\nQuill.register('modules/imageResize', ImageResize);\r\n\r\nconst QuillTextEditor = (props) => {\r\n const { value, onChange, placeholder } = props;\r\n const quillRef = useRef(null);\r\n const quillContainerRef = useRef(null);\r\n const [themeColors, setThemeColors] = useState([]);\r\n\r\n const [modules, setModules] = useState({\r\n toolbar: {\r\n container: [\r\n [{ header: '1' }, { header: '2' }, { font: [] }],\r\n [{ size: [] }],\r\n ['bold', 'italic', 'underline', 'strike', 'blockquote'],\r\n [{ color: [] }, { background: [] }], // INITALLY EMPTY, UPDATED BELOW\r\n [\r\n { align: '' },\r\n { align: 'center' },\r\n { align: 'right' },\r\n { align: 'justify' },\r\n ],\r\n [{ list: 'ordered' }, { list: 'bullet' }, { indent: '-1' }, { indent: '+1' }],\r\n ['link', 'image', 'video'],\r\n ['clean']\r\n ],\r\n },\r\n clipboard: { matchVisual: false },\r\n imageResize: {\r\n parchment: Quill.import('parchment'),\r\n modules: ['Resize', 'DisplaySize']\r\n },\r\n });\r\n\r\n useEffect(() => {\r\n const fetchThemeColors = () => {\r\n const themeColorsData = themeHelper.getThemeColors();\r\n const formattedThemeColors = themeColorsData.map((color) => ({ color: [color.value] }));\r\n setThemeColors(formattedThemeColors);\r\n };\r\n\r\n fetchThemeColors();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (themeColors.length > 0) {\r\n setModules((prevModules) => ({\r\n ...prevModules,\r\n toolbar: {\r\n ...prevModules.toolbar,\r\n container: prevModules.toolbar.container.map((item) => {\r\n if (Array.isArray(item) && item.length > 0 && item[0].color) {\r\n return [{ color: themeColors.map((option) => option.color[0]) }, { background: themeColors.map((option) => option.color[0]) }];\r\n }\r\n return item;\r\n }),\r\n },\r\n }));\r\n }\r\n }, [themeColors]);\r\n\r\n const formats = [\r\n 'header', 'font', 'size', 'bold', 'italic', 'underline', 'strike', 'blockquote',\r\n 'list', 'bullet', 'indent', 'link', 'image', 'video', 'align',\r\n 'width', 'height', 'style', 'color', 'background',\r\n ];\r\n\r\n useEffect(() => {\r\n let initialTop = 0;\r\n let quillWidth = 0;\r\n\r\n const applyStyles = (isFixed) => {\r\n const toolbar = quillContainerRef.current.querySelector('.ql-toolbar');\r\n toolbar.style.position = isFixed ? 'fixed' : '';\r\n toolbar.style.top = isFixed ? '0' : '';\r\n toolbar.style.width = isFixed ? '100%' : '';\r\n toolbar.style.marginTop = isFixed ? '5px' : '';\r\n toolbar.style.zIndex = isFixed ? '1000' : '';\r\n toolbar.style.backgroundColor = '#FFFFFF';\r\n toolbar.style.boxShadow = isFixed ? '#66666694 0px 4px 6px' : 'none';\r\n toolbar.style.borderRadius = isFixed ? '6px' : '6px 6px 0 0';\r\n toolbar.style.transform = isFixed ? 'scale(1.05)' : '';\r\n toolbar.style.maxWidth = `${quillWidth}px`;\r\n };\r\n\r\n const handleScroll = () => {\r\n if (quillContainerRef.current) {\r\n const toolbar = quillContainerRef.current.querySelector('.ql-toolbar');\r\n const quill = quillContainerRef.current.querySelector('.quill');\r\n\r\n if (initialTop === 0 || quillWidth === 0) {\r\n initialTop = toolbar.offsetTop;\r\n quillWidth = quill.offsetWidth;\r\n applyStyles(window.scrollY >= initialTop);\r\n } else {\r\n applyStyles(window.scrollY >= initialTop);\r\n }\r\n }\r\n };\r\n\r\n handleScroll();\r\n window.addEventListener('scroll', handleScroll);\r\n return () => window.removeEventListener('scroll', handleScroll);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const imageHandler = () => {\r\n const input = document.createElement('input');\r\n input.setAttribute('type', 'file');\r\n input.setAttribute('accept', 'image/svg+xml, image/png, image/jpeg');\r\n input.click();\r\n \r\n input.onchange = async () => {\r\n const file = input.files[0];\r\n if (file) {\r\n const reader = new FileReader();\r\n reader.onload = (e) => {\r\n const quillEditor = quillRef.current.getEditor();\r\n const range = quillEditor.getSelection();\r\n const index = range ? range.index : quillEditor.getLength();\r\n \r\n if (file.type === 'image/svg+xml') {\r\n const svgContent = e.target.result;\r\n quillEditor.insertEmbed(index, 'image', `data:image/svg+xml;base64,${btoa(svgContent)}`, 'user');\r\n } else {\r\n quillEditor.insertEmbed(index, 'image', e.target.result);\r\n }\r\n quillEditor.setSelection(index + 1);\r\n };\r\n\r\n if (file.type === 'image/svg+xml') {\r\n reader.readAsText(file);\r\n } else {\r\n reader.readAsDataURL(file);\r\n }\r\n }\r\n };\r\n };\r\n\r\n setModules((prevModules) => ({\r\n ...prevModules,\r\n toolbar: {\r\n ...prevModules.toolbar,\r\n handlers: {\r\n ...prevModules.toolbar.handlers,\r\n image: imageHandler\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\nexport default QuillTextEditor;","export default __webpack_public_path__ + \"static/media/content-section_default.04b94dd3.svg\";","export default __webpack_public_path__ + \"static/media/content-section_reversed.881e8c07.svg\";","export default __webpack_public_path__ + \"static/media/content-section_full-width.7919dac7.svg\";","export default __webpack_public_path__ + \"static/media/content-section_full-width-padded.3fb3d653.svg\";","export default __webpack_public_path__ + \"static/media/content-section_text-only.d952709d.svg\";","export default __webpack_public_path__ + \"static/media/content-section_floating-card.7b425d5c.svg\";","export default __webpack_public_path__ + \"static/media/banner-section_dynamic.e70b2b3d.svg\";","export default __webpack_public_path__ + \"static/media/content-section_custom.3c559fd4.svg\";","import * as Yup from 'yup';\r\nimport constants from '../../../../constants/constants';\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n name: Yup.string().required('Content Section Name is required').max(150),\r\n type: Yup.string().required(),\r\n // title: Yup.string().required('Title is required').max(1000),\r\n title: Yup.string().when('type', {\r\n is: (type) => type === constants.CONTENT_SECTION.ContentSectionCustom,\r\n then: Yup.string().nullable(),\r\n otherwise: Yup.string().required('Title is required').max(1000)\r\n }),\r\n rawHTML: Yup.string().nullable(),\r\n description: Yup.string().when('type', {\r\n is: (type) => ![\r\n constants.CONTENT_SECTION.ContentSectionTypeBanner,\r\n constants.CONTENT_SECTION.ContentSectionCustom\r\n ].includes(type),\r\n then: Yup.string().nullable().required('Content Details is required'),\r\n otherwise: Yup.string().nullable()\r\n }),\r\n alignment: Yup.string().required(),\r\n imagePath: Yup.string().nullable(),\r\n isPadded: Yup.bool(),\r\n isFloatingCard: Yup.bool(),\r\n hasRoundedCorners: Yup.bool(),\r\n isTextOnly: Yup.bool(),\r\n primaryButtonText: Yup.string().nullable().max(50),\r\n primaryButtonActionType: Yup.string().nullable().when('primaryButtonText', {\r\n is: (primaryButtonText) => !primaryButtonText || primaryButtonText.length === 0,\r\n then: Yup.string().nullable().max(500),\r\n otherwise: Yup.string().nullable().max(500).required('Primary Action Type is required')\r\n }),\r\n primaryButtonLink: Yup.string().nullable().max(500).when('primaryButtonText', {\r\n is: (primaryButtonText) => !primaryButtonText || primaryButtonText.length === 0,\r\n then: Yup.string().nullable().max(500),\r\n otherwise: Yup.string().nullable().max(500).required('Primary Action Link is required')\r\n }),\r\n secondaryButtonText: Yup.string().nullable().max(50),\r\n secondaryButtonActionType: Yup.string().nullable().when('secondaryButtonText', {\r\n is: (secondaryButtonText) => !secondaryButtonText || secondaryButtonText.length === 0,\r\n then: Yup.string().nullable().max(500),\r\n otherwise: Yup.string().nullable().max(500).required('Secondary Action Type is required')\r\n }),\r\n secondaryButtonLink: Yup.string().nullable().max(500).when('secondaryButtonText', {\r\n is: (secondaryButtonText) => !secondaryButtonText || secondaryButtonText.length === 0,\r\n then: Yup.string().nullable().max(500),\r\n otherwise: Yup.string().nullable().max(500).required('Secondary Action Link is required')\r\n }),\r\n}, [['title', 'description', 'type', 'primaryButtonText', 'secondaryButtonActionText']]);","/* eslint-disable max-len */\r\n/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable camelcase */\r\n/* eslint-disable react/no-array-index-key */\r\n/* eslint-disable no-param-reassign */\r\n/* eslint-disable no-return-await */\r\n/* eslint-disable no-shadow */\r\n/* eslint-disable prefer-const */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable max-classes-per-file */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useFormik } from 'formik';\r\n// COMPONENTS\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport FormBlock from '../../../../components/FormBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport InputBlock from '../../../../components/InputBlock';\r\nimport TextAreaBlock from '../../../../components/TextAreaBlock';\r\nimport SelectBlock from '../../../../components/SelectBlock';\r\nimport CheckboxBlock from '../../../../components/CheckboxBlock';\r\nimport Image from '../../../../components/Image';\r\nimport Overlay from '../../../../components/Overlay';\r\nimport FileUploadBlock from '../../../../components/FileUploadBlock';\r\nimport FixedActionsBar from '../../../../components/FixedActionsBar';\r\nimport SelectablePreview from '../../../../components/SelectablePreview';\r\nimport QuillTextEditor from '../../../../components/QuillTextEditor';\r\n// ASSETS\r\nimport ContentSectionDefaultImage from '../../../../assets/img/content-section_default.svg';\r\nimport ContentSectionReversedImage from '../../../../assets/img/content-section_reversed.svg';\r\nimport ContentSectionFulWidthImage from '../../../../assets/img/content-section_full-width.svg';\r\nimport ContentSectionFulWidthPaddedImage from '../../../../assets/img/content-section_full-width-padded.svg';\r\nimport ContentSectionTextOnlyImage from '../../../../assets/img/content-section_text-only.svg';\r\nimport ContentSectionFloatingCardImage from '../../../../assets/img/content-section_floating-card.svg';\r\nimport DynamicBannerSectionImage from '../../../../assets/img/banner-section_dynamic.svg';\r\nimport CustomSectionImage from '../../../../assets/img/content-section_custom.svg';\r\n// SERVICES AND HELPERS\r\nimport constants from '../../../../constants/constants';\r\nimport * as helper from '../../../../helpers/helper';\r\nimport ContentSectionValidator from '../../../../helpers/validators/cms/contentSection/ContentSectionValidator';\r\nimport * as contentSectionService from '../../../../services/cms/contentSectionService';\r\n// REDUX\r\nimport * as auth from '../../../../redux/authRedux';\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModalRedux from '../../../../redux/confirmModalRedux';\r\n// QUILL\r\n/*\r\n// TO REPLACE QUILL P WITH DIV\r\nconst Block = Quill.import('blots/block');\r\nBlock.tagName = 'DIV';\r\n// Block.tagName = 'P'; // SET BACK TO P\r\nQuill.register(Block, true);\r\n*/\r\n\r\n// const Inline = Quill.import('blots/inline');\r\n// const Block = Quill.import('blots/block');\r\n\r\n// class Bold extends Inline {}\r\n// Bold.blotName = 'bold';\r\n// Bold.tagName = 'strong';\r\n// Quill.register(Bold, true);\r\n\r\n// class Italic extends Inline {}\r\n// Italic.blotName = 'italic';\r\n// Italic.tagName = 'em';\r\n// Quill.register(Italic, true);\r\n\r\n// class Blockquote extends Block {}\r\n// Blockquote.blotName = 'blockquote';\r\n// Blockquote.tagName = 'blockquote';\r\n// Quill.register(Blockquote, true);\r\n\r\n// Quill.register('modules/imageResize', ImageResize);\r\n\r\nconst initialContentSectionModel = {\r\n id: 0,\r\n pageId: 0,\r\n bannerId: 0,\r\n name: '',\r\n rawHTML: '',\r\n type: constants.CONTENT_SECTION.ContentSectionTypeDefault,\r\n isActive: true,\r\n title: '',\r\n description: '',\r\n alignment: 'LEFT',\r\n imagePath: '',\r\n image: null,\r\n isPadded: false,\r\n isFloatingCard: false,\r\n hasRoundedCorners: false,\r\n isTextOnly: false,\r\n primaryButtonText: '',\r\n primarButtonLink: '',\r\n primaryButtonActionType: null,\r\n secondaryButtonText: '',\r\n secondaryButtonLink: '',\r\n secondaryButtonActionType: null,\r\n};\r\n\r\n// const format = [\r\n// 'header',\r\n// 'font',\r\n// 'size',\r\n// 'bold',\r\n// 'italic',\r\n// 'underline',\r\n// 'strike',\r\n// 'blockquote',\r\n// 'list',\r\n// 'bullet',\r\n// 'indent',\r\n// 'link',\r\n// 'image',\r\n// 'video',\r\n// 'width',\r\n// 'height',\r\n// 'style',\r\n// 'align',\r\n// ];\r\n\r\nconst linkTypes = [\r\n { value: constants.CONTENT_SECTION.ButtonActionTypePage, label: 'Page' },\r\n { value: constants.CONTENT_SECTION.ButtonActionTypeLink, label: 'Link (New Tab)' },\r\n { value: constants.CONTENT_SECTION.ButtonActionTypePhoneNumber, label: 'Phone Number' },\r\n { value: constants.CONTENT_SECTION.ButtonActionTypeEmail, label: 'Email Address' },\r\n];\r\n\r\nconst alignmentOptions = [\r\n { value: constants.CONTENT_SECTION.LeftAlignment, label: 'Left (Default)' },\r\n { value: constants.CONTENT_SECTION.CenterAlignment, label: 'Center' },\r\n { value: constants.CONTENT_SECTION.RightAlignment, label: 'Right' },\r\n];\r\n\r\nconst components = [\r\n {\r\n id: 0,\r\n title: 'Custom',\r\n image: CustomSectionImage,\r\n type: constants.CONTENT_SECTION.ContentSectionCustom\r\n },\r\n {\r\n id: 1,\r\n title: 'Content Section (Default)',\r\n image: ContentSectionDefaultImage,\r\n type: constants.CONTENT_SECTION.ContentSectionTypeDefault\r\n },\r\n {\r\n id: 2,\r\n title: 'Content Section (Reversed)',\r\n image: ContentSectionReversedImage,\r\n type: constants.CONTENT_SECTION.ContentSectionTypeReversed\r\n },\r\n {\r\n id: 3,\r\n title: 'Content Section Full Width',\r\n image: ContentSectionFulWidthImage,\r\n type: constants.CONTENT_SECTION.ContentSectionTypeFullWidth\r\n },\r\n {\r\n id: 4,\r\n title: 'Content Section Full Width (Padded)',\r\n image: ContentSectionFulWidthPaddedImage,\r\n type: constants.CONTENT_SECTION.ContentSectionTypeFullWidthPadded\r\n },\r\n {\r\n id: 5,\r\n title: 'Content Section (Text Only)',\r\n image: ContentSectionTextOnlyImage,\r\n type: constants.CONTENT_SECTION.ContentSectionTypeTextOnly\r\n },\r\n {\r\n id: 6,\r\n title: 'Content Card',\r\n image: ContentSectionFloatingCardImage,\r\n type: constants.CONTENT_SECTION.ContentSectionTypeCard\r\n },\r\n {\r\n id: 7,\r\n title: 'Content Banner',\r\n image: DynamicBannerSectionImage,\r\n type: constants.CONTENT_SECTION.ContentSectionTypeBanner\r\n },\r\n];\r\n\r\nconst ContentSectionManagementPage = (props) => {\r\n const { showAlert, history } = props;\r\n const { contentSectionId, pageId, blogId } = useParams();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [contentSectionModel, setContentSectionModel] = useState({\r\n ...initialContentSectionModel,\r\n pageId: pageId || 0,\r\n blogId: blogId || 0\r\n });\r\n const [alignment, setAlignment] = useState([{ label: 'Left (Default)', value: 'LEFT' }]);\r\n const [primaryActionType, setPrimaryActionType] = useState(null);\r\n const [secondaryActionType, setSecondaryActionType] = useState(null);\r\n const [file, setFile] = useState([]);\r\n\r\n useEffect(() => {\r\n if (contentSectionId > 0) {\r\n getContentSection();\r\n }\r\n }, [contentSectionId]);\r\n\r\n const formik = useFormik({\r\n initialValues: contentSectionModel,\r\n validationSchema: ContentSectionValidator,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n if (contentSectionId) {\r\n updateContentSection(values);\r\n } else {\r\n createContentSection(values);\r\n }\r\n },\r\n });\r\n\r\n const getContentSection = async () => {\r\n setIsLoading(true);\r\n\r\n contentSectionService.getContentSectionById(contentSectionId).then((res) => {\r\n setContentSectionModel(res);\r\n fillSelectedOptions(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const fillSelectedOptions = (res) => {\r\n let selectedAlignment = alignmentOptions.find((x) => x.value === res.alignment);\r\n let selectedPrimaryActionType = linkTypes.find((x) => x.value === res.primaryButtonActionType);\r\n let selectedSecondaryActionType = linkTypes.find((x) => x.value === res.secondaryButtonActionType);\r\n\r\n if (selectedAlignment) {\r\n setAlignment(selectedAlignment);\r\n }\r\n\r\n if (selectedPrimaryActionType) {\r\n setPrimaryActionType(selectedPrimaryActionType);\r\n }\r\n\r\n if (selectedSecondaryActionType) {\r\n setSecondaryActionType(selectedSecondaryActionType);\r\n }\r\n };\r\n\r\n const createContentSection = (model) => {\r\n if (file.length === 0 && ![constants.CONTENT_SECTION.ContentSectionTypeTextOnly, constants.CONTENT_SECTION.ContentSectionCustom].includes(formik.values.type)) {\r\n showAlert({ text: 'Error! Please upload an image', state: 'warning' });\r\n return;\r\n }\r\n\r\n setIsLoading(true);\r\n\r\n contentSectionService.createContentSection(helper.convertJsonToFormData(\r\n {\r\n ...model,\r\n image: file.length > 0 ? file[0].file : null\r\n }\r\n )).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n if (model.blogId > 0) {\r\n history.push(`/cms/management/blog/edit/${model.blogId}`);\r\n } else if (model.pageId > 0) {\r\n history.push(`/cms/management/page/edit/${model.pageId}`);\r\n } else {\r\n history.push(`/cms/management/content-section/edit/${res.id}`);\r\n }\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const updateContentSection = (model) => {\r\n setIsLoading(true);\r\n\r\n if (file.length > 0) {\r\n model = { ...model, image: file[0].file };\r\n }\r\n contentSectionService.updateContentSection(helper.convertJsonToFormData(model)).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n history.push('/cms/management/content-sections');\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const showOrHideFields = (type) => {\r\n let floatingCardProp = false;\r\n let isTextOnlyProp = false;\r\n let isPaddedProp = false;\r\n let alignmentProp = 'LEFT';\r\n\r\n switch (type) {\r\n case constants.CONTENT_SECTION.ContentSectionTypeDefault:\r\n setAlignment({ label: 'Left (Default)', value: 'LEFT' });\r\n break;\r\n case constants.CONTENT_SECTION.ContentSectionTypeReversed:\r\n setAlignment({ label: 'Right', value: 'RIGHT' });\r\n alignmentProp = 'RIGHT';\r\n break;\r\n case constants.CONTENT_SECTION.ContentSectionTypeFullWidth:\r\n case constants.CONTENT_SECTION.ContentSectionTypeBanner:\r\n break;\r\n case constants.CONTENT_SECTION.ContentSectionTypeFullWidthPadded:\r\n isPaddedProp = true;\r\n break;\r\n case constants.CONTENT_SECTION.ContentSectionTypeTextOnly:\r\n isTextOnlyProp = true;\r\n break;\r\n case constants.CONTENT_SECTION.ContentSectionTypeCard:\r\n floatingCardProp = true;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n formik.setFieldValue('isFloatingCard', floatingCardProp);\r\n formik.setFieldValue('isTextOnly', isTextOnlyProp);\r\n formik.setFieldValue('isPadded', isPaddedProp);\r\n formik.setFieldValue('alignment', alignmentProp);\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n {\r\n components.map((item) => (\r\n {\r\n formik.setFieldValue('type', item.type);\r\n showOrHideFields(item.type);\r\n }}\r\n />\r\n ))\r\n }\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n {/* BASIC INFORMATION */}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n {\r\n formik.values.type !== constants.CONTENT_SECTION.ContentSectionCustom\r\n && (\r\n <>\r\n {/* CONTENT DETAILS */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {\r\n setAlignment(opt);\r\n formik.setFieldValue('alignment', opt.value);\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n\r\n {\r\n formik.values.type !== constants.CONTENT_SECTION.ContentSectionTypeTextOnly\r\n && (\r\n <>\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {\r\n formik.values.id === 0\r\n ? (\r\n \r\n \r\n \r\n )\r\n : (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n \r\n )\r\n }\r\n\r\n \r\n\r\n {/* ACTIONS */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n formik.setFieldTouched('primaryButtonActionType', true)}\r\n value={primaryActionType}\r\n onChange={(opt) => {\r\n opt = opt === null ? [] : opt;\r\n setPrimaryActionType(opt);\r\n formik.setFieldValue('primaryButtonActionType', opt.value);\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 formik.setFieldTouched('secondaryButtonActionType', true)}\r\n value={secondaryActionType}\r\n onChange={(opt) => {\r\n opt = opt === null ? [] : opt;\r\n setSecondaryActionType(opt);\r\n formik.setFieldValue('secondaryButtonActionType', opt.value);\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 formik.values.type === constants.CONTENT_SECTION.ContentSectionCustom\r\n && (\r\n \r\n \r\n \r\n \r\n {\r\n formik.setFieldValue('rawHTML', val);\r\n }}\r\n placeholder=\"Enter your content here...\"\r\n testProps={props}\r\n />\r\n \r\n )\r\n }\r\n\r\n {/* PAGE ACTIONS */}\r\n {\r\n history.goBack();\r\n }}\r\n />\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, {\r\n ...auth.actions,\r\n ...alert.actions,\r\n ...confirmModalRedux.actions\r\n})(ContentSectionManagementPage);","export default __webpack_public_path__ + \"static/media/banner-section.bd810172.svg\";","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n name: Yup.string().required('Banner Name is required').max(150),\r\n});","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n type: Yup.string().required(),\r\n title: Yup.string().nullable().max(1000),\r\n name: Yup.string().nullable().max(1000),\r\n description: Yup.string().nullable(),\r\n alignment: Yup.string().required(),\r\n imagePath: Yup.string(),\r\n isPadded: Yup.bool(),\r\n isFloatingCard: Yup.bool(),\r\n hasRoundedCorners: Yup.bool(),\r\n isActive: Yup.bool(),\r\n isTextOnly: Yup.bool(),\r\n primaryButtonText: Yup.string().nullable().max(50),\r\n primaryButtonActionType: Yup.string().nullable().when('primaryButtonText', {\r\n is: (primaryButtonText) => !primaryButtonText || primaryButtonText.length === 0,\r\n then: Yup.string().nullable().max(500),\r\n otherwise: Yup.string().nullable().max(500).required('Primary Action Type is required')\r\n }),\r\n primaryButtonLink: Yup.string().nullable().max(500).when('primaryButtonText', {\r\n is: (primaryButtonText) => !primaryButtonText || primaryButtonText.length === 0,\r\n then: Yup.string().nullable().max(500),\r\n otherwise: Yup.string().nullable().max(500).required('Primary Action Link is required')\r\n }),\r\n secondaryButtonText: Yup.string().nullable().max(50),\r\n secondaryButtonActionType: Yup.string().nullable().when('secondaryButtonText', {\r\n is: (secondaryButtonText) => !secondaryButtonText || secondaryButtonText.length === 0,\r\n then: Yup.string().nullable().max(500),\r\n otherwise: Yup.string().nullable().max(500).required('Secondary Action Type is required')\r\n }),\r\n secondaryButtonLink: Yup.string().nullable().max(500).when('secondaryButtonText', {\r\n is: (secondaryButtonText) => !secondaryButtonText || secondaryButtonText.length === 0,\r\n then: Yup.string().nullable().max(500),\r\n otherwise: Yup.string().nullable().max(500).required('Secondary Action Link is required')\r\n }),\r\n}, [['type', 'primaryButtonText', 'secondaryButtonActionText']]);","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'BannerItem/';\r\n\r\nconst getBannerItemById = async (bannerItemId) => axiosInstance.get(`${ENDPOINTORIGIN}GetBannerItemById?bannerItemId=${bannerItemId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst createBannerItem = async (bannerItem) => axiosInstance.post(`${ENDPOINTORIGIN}CreateBannerItem`, bannerItem, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst updateBannerItem = async (bannerItem) => axiosInstance.put(`${ENDPOINTORIGIN}UpdateBannerItem`, bannerItem, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteBannerItem = async (bannerItemId) => axiosInstance.delete(`${ENDPOINTORIGIN}DeleteBannerItem?id=${bannerItemId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst sortBannerItems = async (bannerItems) => axiosInstance.put(`${ENDPOINTORIGIN}SortBannerItems`, bannerItems, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getBannerItemById,\r\n createBannerItem,\r\n updateBannerItem,\r\n deleteBannerItem,\r\n sortBannerItems\r\n};","/* eslint-disable max-len */\r\n/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable camelcase */\r\n/* eslint-disable react/no-array-index-key */\r\n/* eslint-disable no-param-reassign */\r\n/* eslint-disable no-return-await */\r\n/* eslint-disable no-shadow */\r\n/* eslint-disable prefer-const */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable object-curly-newline */\r\n/* eslint-disable object-shorthand */\r\n/* eslint-disable no-return-assign */\r\n/* eslint-disable react/no-this-in-sfc */\r\n/* eslint-disable no-const-assign */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect, useRef } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useFormik } from 'formik';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\nimport {\r\n DragDropContext,\r\n Droppable,\r\n Draggable\r\n} from 'react-beautiful-dnd';\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport FormBlock from '../../../../components/FormBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport ModalBlock from '../../../../components/ModalBlock';\r\nimport InputBlock from '../../../../components/InputBlock';\r\nimport TextAreaBlock from '../../../../components/TextAreaBlock';\r\nimport SelectBlock from '../../../../components/SelectBlock';\r\nimport CheckboxBlock from '../../../../components/CheckboxBlock';\r\nimport Image from '../../../../components/Image';\r\nimport Overlay from '../../../../components/Overlay';\r\nimport Button from '../../../../components/Button';\r\nimport FileUploadBlock from '../../../../components/FileUploadBlock';\r\nimport FixedActionsBar from '../../../../components/FixedActionsBar';\r\nimport SelectablePreview from '../../../../components/SelectablePreview';\r\n// ASSETS\r\nimport DynamicBannerSectionImage from '../../../../assets/img/banner-section.svg';\r\n// SERVICES AND HELPERS\r\nimport constants from '../../../../constants/constants';\r\nimport * as helper from '../../../../helpers/helper';\r\nimport BannerValidator from '../../../../helpers/validators/cms/banner/BannerValidator';\r\nimport BannerItemValidator from '../../../../helpers/validators/cms/banner/BannerItemValidator';\r\nimport * as bannerService from '../../../../services/cms/bannerService';\r\nimport * as bannerItemService from '../../../../services/cms/bannerItemService';\r\n// REDUX\r\nimport * as auth from '../../../../redux/authRedux';\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModalRedux from '../../../../redux/confirmModalRedux';\r\n\r\nconst initialBannerModel = {\r\n id: 0,\r\n pageId: 0,\r\n bannerId: 0,\r\n name: '',\r\n isActive: true,\r\n bannerItems: []\r\n};\r\n\r\nconst linkTypes = [\r\n { value: constants.CONTENT_SECTION.ButtonActionTypePage, label: 'Page' },\r\n { value: constants.CONTENT_SECTION.ButtonActionTypeLink, label: 'Link (New Tab)' },\r\n { value: constants.CONTENT_SECTION.ButtonActionTypePhoneNumber, label: 'Phone Number' },\r\n { value: constants.CONTENT_SECTION.ButtonActionTypeEmail, label: 'Email Address' },\r\n];\r\n\r\nconst alignmentOptions = [\r\n { value: constants.CONTENT_SECTION.LeftAlignment, label: 'Left (Default)' },\r\n { value: constants.CONTENT_SECTION.CenterAlignment, label: 'Center' },\r\n { value: constants.CONTENT_SECTION.RightAlignment, label: 'Right' },\r\n];\r\n\r\nconst components = [\r\n {\r\n id: 1,\r\n title: 'Banner',\r\n image: DynamicBannerSectionImage,\r\n type: constants.CONTENT_SECTION.BannerDynamicBanner\r\n },\r\n];\r\n\r\nconst BannerManagementPage = (props) => {\r\n const { showAlert, history, showConfirmModal, hideConfirmModal } = props;\r\n const { bannerId, pageId, blogId } = useParams();\r\n const filePondRef = useRef(null);\r\n const initialBannerItemModel = {\r\n id: 0,\r\n bannerId: bannerId,\r\n isActive: true,\r\n type: constants.CONTENT_SECTION.ContentSectionDynamicBanner,\r\n title: '',\r\n name: '',\r\n description: '',\r\n alignment: 'LEFT',\r\n imagePath: '',\r\n image: null,\r\n isPadded: false,\r\n isFloatingCard: false,\r\n hasRoundedCorners: false,\r\n isTextOnly: false,\r\n primaryButtonText: '',\r\n primaryButtonLink: '',\r\n primaryButtonActionType: null,\r\n secondaryButtonText: '',\r\n secondaryButtonLink: '',\r\n secondaryButtonActionType: null,\r\n };\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [bannerModel, setBannerModel] = useState({\r\n ...initialBannerModel,\r\n pageId: pageId || 0,\r\n blogId: blogId || 0\r\n });\r\n const [bannerItemModel, setBannerItemModel] = useState(initialBannerItemModel);\r\n const [alignment, setAlignment] = useState([{ label: 'Left (Default)', value: 'LEFT' }]);\r\n const [primaryActionType, setPrimaryActionType] = useState(null);\r\n const [secondaryActionType, setSecondaryActionType] = useState(null);\r\n const [file, setFile] = useState([]);\r\n const [isSortModalOpen, setIsSortModalOpen] = useState(false);\r\n const [sortList, setSortList] = useState([]);\r\n\r\n useEffect(() => {\r\n if (bannerId > 0) {\r\n getBanner();\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n setSortList(bannerModel.bannerItems.sort((a, b) => a - b));\r\n }, [bannerModel.bannerItems]);\r\n\r\n const formik = useFormik({\r\n initialValues: bannerModel,\r\n validationSchema: BannerValidator,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n if (bannerId) {\r\n updateBanner(values);\r\n } else {\r\n createBanner(values);\r\n }\r\n },\r\n });\r\n\r\n const formik_bannerItem = useFormik({\r\n initialValues: bannerItemModel,\r\n validationSchema: BannerItemValidator,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n if (values.id > 0) {\r\n updateBannerItem(values);\r\n } else {\r\n createBannerItem(values);\r\n }\r\n },\r\n });\r\n\r\n const getBanner = async () => {\r\n setIsLoading(true);\r\n\r\n bannerService.getBannerById(bannerId).then((res) => {\r\n setBannerModel(res);\r\n fillSelectedOptions(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const fillSelectedOptions = (res) => {\r\n let selectedAlignment = alignmentOptions.find((x) => x.value === res.alignment);\r\n let selectedPrimaryActionType = linkTypes.find((x) => x.value === res.primaryButtonActionType);\r\n let selectedSecondaryActionType = linkTypes.find((x) => x.value === res.secondaryButtonActionType);\r\n\r\n if (selectedAlignment) {\r\n setAlignment(selectedAlignment);\r\n }\r\n\r\n if (selectedPrimaryActionType) {\r\n setPrimaryActionType(selectedPrimaryActionType);\r\n }\r\n\r\n if (selectedSecondaryActionType) {\r\n setSecondaryActionType(selectedSecondaryActionType);\r\n }\r\n };\r\n\r\n const createBanner = (model) => {\r\n setIsLoading(true);\r\n\r\n bannerService.createBanner(helper.convertJsonToFormData(model)).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n history.push(`/cms/management/banner/edit/${res.id}`);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const updateBanner = (model) => {\r\n setIsLoading(true);\r\n\r\n bannerService.updateBanner(helper.convertJsonToFormData(model)).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n history.push('/cms/management/content-sections');\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const createBannerItem = (model) => {\r\n if (file.length === 0) {\r\n showAlert({ text: 'Error! Please upload an image', state: 'warning' });\r\n return;\r\n }\r\n\r\n setIsLoading(true);\r\n bannerItemService.createBannerItem(helper.convertJsonToFormData(\r\n {\r\n ...model,\r\n image: file.length > 0 ? file[0].file : null\r\n }\r\n )).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n resetBannerItemForm();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const updateBannerItem = (model) => {\r\n setIsLoading(true);\r\n\r\n if (file.length > 0) {\r\n model = { ...model, image: file[0].file };\r\n }\r\n bannerItemService.updateBannerItem(helper.convertJsonToFormData(model)).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n resetBannerItemForm();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const resetBannerItemForm = () => {\r\n getBanner();\r\n resetBannerItemEditFormFields();\r\n };\r\n\r\n const resetBannerItemEditFormFields = () => {\r\n setBannerItemModel(initialBannerItemModel);\r\n formik_bannerItem.resetForm();\r\n filePondRef.current.removeFiles();\r\n setPrimaryActionType(null);\r\n setSecondaryActionType(null);\r\n };\r\n\r\n const removeBannerItem = (id) => {\r\n bannerItemService.deleteBannerItem(id).then((res) => {\r\n hideConfirmModal();\r\n showAlert({ text: res.message, state: 'success' });\r\n resetBannerItemForm();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const sortBannerItems = () => {\r\n setIsLoading(true);\r\n\r\n bannerItemService.sortBannerItems(sortList).then((res) => {\r\n getBanner();\r\n showAlert({ text: res.message, state: 'success' });\r\n setIsSortModalOpen(false);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const onDragEnd = (result) => {\r\n if (!result.destination) {\r\n return;\r\n }\r\n\r\n const tempArr = helper.reOrderDnd(\r\n sortList,\r\n result.source.index,\r\n result.destination.index\r\n );\r\n\r\n setSortList(tempArr);\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => (\r\n \r\n {\r\n resetBannerItemEditFormFields();\r\n setTimeout(() => {\r\n setBannerItemModel(bannerModel.bannerItems[dataIndex]);\r\n fillSelectedOptions(bannerModel.bannerItems[dataIndex]);\r\n }, 0);\r\n }}\r\n />\r\n\r\n {\r\n showConfirmModal({\r\n title: 'Remove Item',\r\n text: 'Are you sure you want to remove this banner item?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n removeBannerItem(bannerModel.bannerItems[dataIndex].id);\r\n }\r\n });\r\n }}\r\n />\r\n \r\n )\r\n }\r\n },\r\n {\r\n name: 'name',\r\n label: 'Name',\r\n options: {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true\r\n },\r\n },\r\n {\r\n name: 'title',\r\n label: 'Title',\r\n options: {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true\r\n },\r\n },\r\n {\r\n name: 'isActive',\r\n label: 'Is Active?',\r\n options: {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true,\r\n customBodyRenderLite: (dataIndex) => {\r\n const { isActive } = bannerModel.bannerItems[dataIndex];\r\n\r\n return (\r\n

{isActive ? 'Yes' : 'No'}

\r\n );\r\n }\r\n },\r\n }\r\n ];\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n {\r\n components.map((item) => (\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n\r\n \r\n \r\n {/* BASIC INFORMATION */}\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 bannerId > 0\r\n && (\r\n <>\r\n {/* BANNER ITEM DETAILS */}\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 setAlignment(opt);\r\n formik_bannerItem.setFieldValue('alignment', opt.value);\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {\r\n formik_bannerItem.values.id === 0\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 {/* ACTIONS */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n formik_bannerItem.setFieldTouched('primaryButtonActionType', true)}\r\n value={primaryActionType}\r\n onChange={(opt) => {\r\n opt = opt === null ? [] : opt;\r\n setPrimaryActionType(opt);\r\n formik_bannerItem.setFieldValue('primaryButtonActionType', opt.value);\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 formik_bannerItem.setFieldTouched('secondaryButtonActionType', true)}\r\n value={secondaryActionType}\r\n onChange={(opt) => {\r\n opt = opt === null ? [] : opt;\r\n setSecondaryActionType(opt);\r\n formik_bannerItem.setFieldValue('secondaryButtonActionType', opt.value);\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n setIsSortModalOpen(true)}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n {/* PAGE ACTIONS */}\r\n history.push('/cms/management/content-sections')}\r\n optionalActionText=\"Go to HomePage\"\r\n optionalActionTo=\"/home\"\r\n />\r\n \r\n \r\n \r\n\r\n {/* SORT MODAL */}\r\n {\r\n setIsSortModalOpen(false);\r\n }}\r\n >\r\n
\r\n {\r\n sortList.length > 0\r\n ? (\r\n \r\n \r\n {(droppableProvided) => (\r\n \r\n {sortList.map((item, index) => (\r\n \r\n {(draggableProvided) => (\r\n \r\n

{item.title}

\r\n \r\n\r\n )}\r\n \r\n ))}\r\n {droppableProvided.placeholder}\r\n \r\n )}\r\n
\r\n
\r\n ) : (\r\n \r\n

No Items Available

\r\n
\r\n )\r\n }\r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, {\r\n ...auth.actions,\r\n ...alert.actions,\r\n ...confirmModalRedux.actions\r\n})(BannerManagementPage);","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'Asset/';\r\n\r\nconst getAsset = async () => axiosInstance.get(`${ENDPOINTORIGIN}GetAsset`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst updateAsset = async (menuItem) => axiosInstance.put(`${ENDPOINTORIGIN}UpdateAsset`, menuItem, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getAsset,\r\n updateAsset\r\n};","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n companyName: Yup.string().required('Company Name is required').max(250),\r\n emailAddress: Yup.string().email().required('Email is required').max(150),\r\n phoneNumber: Yup.string().nullable().max(20),\r\n streetAddress1: Yup.string().nullable().max(150),\r\n streetAddress2: Yup.string().nullable().max(150),\r\n city: Yup.string().nullable().max(100),\r\n state: Yup.string().nullable().max(20),\r\n zipCode: Yup.string().nullable().max(10),\r\n primaryWeekDayHours: Yup.string().nullable().max(150),\r\n primaryWeekEndHours: Yup.string().nullable().max(150),\r\n secondaryWeekDayHours: Yup.string().nullable().max(150),\r\n secondaryWeekEndHours: Yup.string().nullable().max(150),\r\n facebookLink: Yup.string().nullable().max(500),\r\n instagramLink: Yup.string().nullable().max(500),\r\n twitterLink: Yup.string().nullable().max(500),\r\n linkedInLink: Yup.string().nullable().max(500),\r\n tiktokLink: Yup.string().nullable().max(500),\r\n youtubeLink: Yup.string().nullable().max(500),\r\n googleMapLink: Yup.string().nullable().max(500),\r\n appStoreLink: Yup.string().nullable().max(500),\r\n googlePlayStoreLink: Yup.string().nullable().max(500),\r\n googleAnalyticsId: Yup.string().nullable().max(500),\r\n});","/* eslint-disable max-len */\r\n/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable no-param-reassign */\r\n/* eslint-disable object-curly-newline */\r\n/* eslint-disable no-use-before-define */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect, useRef } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useFormik } from 'formik';\r\n// COMPONENTS\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport Overlay from '../../../../components/Overlay';\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport FormBlock from '../../../../components/FormBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport FileUploadBlock from '../../../../components/FileUploadBlock';\r\nimport InputBlock from '../../../../components/InputBlock';\r\nimport Button from '../../../../components/Button';\r\nimport Image from '../../../../components/Image';\r\n// SERVICES AND HELPERS\r\nimport * as helper from '../../../../helpers/helper';\r\nimport * as assetService from '../../../../services/cms/assetService';\r\nimport AssetValidator from '../../../../helpers/validators/cms/asset/AssetValidator';\r\n// REDUX\r\nimport * as auth from '../../../../redux/authRedux';\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModalRedux from '../../../../redux/confirmModalRedux';\r\n\r\nconst initialAssetModel = {\r\n companyLogo: null,\r\n companyLogoPath: '',\r\n companyIcon: null,\r\n companyIconPath: '',\r\n companyName: '',\r\n emailAddress: '',\r\n phoneNumber: '',\r\n streetAddress1: '',\r\n streetAddress2: '',\r\n city: '',\r\n state: '',\r\n zipCode: '',\r\n primaryWeekDayHours: '',\r\n primaryWeekEndHours: '',\r\n secondaryWeekDayHours: '',\r\n secondaryWeekEndHours: '',\r\n facebookLink: '',\r\n instagramLink: '',\r\n twitterLink: '',\r\n linkedInLink: '',\r\n youtubeLink: '',\r\n tiktokLink: '',\r\n googleMapLink: '',\r\n appStoreLink: '',\r\n googlePlayStoreLink: '',\r\n googleAnalyticsLink: '',\r\n seo: '',\r\n facebookPixelCode: ''\r\n};\r\n\r\nconst AssetsAndResourcesPage = (props) => {\r\n const { showAlert } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [assetModel, setAsset] = useState(initialAssetModel);\r\n const [logoFile, setLogoFile] = useState([]);\r\n const [iconFile, setIconFile] = useState([]);\r\n const logoRef = useRef(null);\r\n const iconRef = useRef(null);\r\n\r\n useEffect(() => {\r\n fetchAssets();\r\n }, []);\r\n\r\n const formik = useFormik({\r\n initialValues: assetModel,\r\n validationSchema: AssetValidator,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n saveAsset(values);\r\n },\r\n });\r\n\r\n const fetchAssets = () => {\r\n setIsLoading(true);\r\n\r\n assetService.getAsset().then((res) => {\r\n setAsset(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const saveAsset = (model) => {\r\n setIsLoading(true);\r\n\r\n if (logoFile.length > 0) {\r\n model = { ...model, companyLogo: logoFile[0].file };\r\n }\r\n if (iconFile.length > 0) {\r\n model = { ...model, companyIcon: iconFile[0].file };\r\n }\r\n assetService.updateAsset(helper.convertJsonToFormData(model)).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n fetchAssets();\r\n setLogoFile([]);\r\n setIconFile([]);\r\n logoRef.current.removeFiles();\r\n iconRef.current.removeFiles();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n {/* RESOURCES */}\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n {/* BASIC INFORMATION */}\r\n
\r\n \r\n \r\n \r\n\r\n {/* CONTACT DETAILS */}\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 {/* LOCATION */}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {/* HOURS */}\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 {/* SOCIAL MEDIA AND LINKS */}\r\n
\r\n \r\n \r\n \r\n\r\n {/* SOCIAL MEDIA AND OTHER LINKS */}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n {/* SEO TOOLS */}\r\n
\r\n \r\n \r\n \r\n\r\n {/* SEO ITEMS */}\r\n \r\n \r\n \r\n {/* \r\n \r\n */}\r\n
\r\n\r\n {/* FIXED ACTIONS BAR */}\r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, {\r\n ...auth.actions,\r\n ...alert.actions,\r\n ...confirmModalRedux.actions\r\n})(AssetsAndResourcesPage);","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'FooterItem/';\r\n\r\nconst getAllFooterItems = async () => axiosInstance.get(`${ENDPOINTORIGIN}GetAllFooterItems`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getFooterItemById = async (footerItemId) => axiosInstance.get(`${ENDPOINTORIGIN}GetFooterItemById?footerItemId=${footerItemId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst createFooterItem = async (footerItem) => axiosInstance.post(`${ENDPOINTORIGIN}CreateFooterItem`, footerItem, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst updateFooterItem = async (footerItem) => axiosInstance.put(`${ENDPOINTORIGIN}UpdateFooterItem`, footerItem, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteFooterItem = async (footerItemId) => axiosInstance.delete(`${ENDPOINTORIGIN}DeleteFooterItem?footerItemId=${footerItemId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst sortFooterItems = async (sortOrders) => axiosInstance.put(`${ENDPOINTORIGIN}SortFooterItems`, sortOrders, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getAllFooterItems,\r\n getFooterItemById,\r\n createFooterItem,\r\n updateFooterItem,\r\n deleteFooterItem,\r\n sortFooterItems\r\n};","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n label: Yup.string().required('Footer label is required').max(250),\r\n to: Yup.string().required('Link is required').max(500),\r\n});","/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable react/no-array-index-key */\r\n/* eslint-disable max-len */\r\n/* eslint-disable no-use-before-define */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useFormik } from 'formik';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\nimport {\r\n DragDropContext,\r\n Droppable,\r\n Draggable\r\n} from 'react-beautiful-dnd';\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport Overlay from '../../../../components/Overlay';\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport ModalBlock from '../../../../components/ModalBlock';\r\nimport Button from '../../../../components/Button';\r\nimport FormBlock from '../../../../components/FormBlock';\r\nimport InputBlock from '../../../../components/InputBlock';\r\n// SERVICES AND HELPERS\r\nimport * as footerItemService from '../../../../services/cms/footerItemService';\r\nimport * as helper from '../../../../helpers/helper';\r\nimport FooterItemValidator from '../../../../helpers/validators/cms/footerItem/FooterItemValidator';\r\n// REDUX\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModal from '../../../../redux/confirmModalRedux';\r\n\r\nconst initialFooterItemModel = {\r\n id: 0,\r\n label: '',\r\n to: '',\r\n};\r\n\r\nconst FooterItemListingPage = (props) => {\r\n const { showAlert, showConfirmModal, hideConfirmModal } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isSortModalOpen, setIsSortModalOpen] = useState(false);\r\n const [footerItems, setFooterItems] = useState([]);\r\n const [sortList, setSortList] = useState([]);\r\n const [footerItemModel, setFooterItemModel] = useState(initialFooterItemModel);\r\n const [isModalVisible, setIsModalVisible] = useState(false);\r\n // const iconSize = 22;\r\n // const iconColor = 'white--clr';\r\n\r\n useEffect(() => {\r\n getFooterItems();\r\n }, []);\r\n\r\n useEffect(() => {\r\n setSortList(footerItems.sort((a, b) => a - b));\r\n }, [footerItems]);\r\n\r\n const formik = useFormik({\r\n initialValues: footerItemModel,\r\n validationSchema: FooterItemValidator,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n if (values.id === 0) {\r\n createFooterItem(values);\r\n } else {\r\n updateFooterItem(values);\r\n }\r\n },\r\n });\r\n\r\n const createFooterItem = (model) => {\r\n setIsLoading(true);\r\n footerItemService.createFooterItem(model).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n getFooterItems();\r\n closeFooterItemModal();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const updateFooterItem = (model) => {\r\n setIsLoading(true);\r\n\r\n footerItemService.updateFooterItem(model).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n getFooterItems();\r\n closeFooterItemModal();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const getFooterItem = (id) => {\r\n setIsLoading(true);\r\n footerItemService.getFooterItemById(id).then((res) => {\r\n setFooterItemModel(res);\r\n setIsModalVisible(true);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const getFooterItems = () => {\r\n setIsLoading(true);\r\n footerItemService.getAllFooterItems().then((res) => {\r\n setFooterItems(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const closeFooterItemModal = () => {\r\n setIsModalVisible(false);\r\n setTimeout(() => {\r\n formik.resetForm();\r\n setFooterItemModel(initialFooterItemModel);\r\n }, 250);\r\n };\r\n\r\n const deleteFooterItem = (footerItemId) => {\r\n setIsLoading(true);\r\n\r\n footerItemService.deleteFooterItem(footerItemId).then((res) => {\r\n getFooterItems();\r\n showAlert({ text: res.message, state: 'success' });\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n hideConfirmModal();\r\n });\r\n };\r\n\r\n const sortFooterItems = () => {\r\n setIsLoading(true);\r\n\r\n footerItemService.sortFooterItems(sortList).then((res) => {\r\n getFooterItems();\r\n showAlert({ text: res.message, state: 'success' });\r\n setIsSortModalOpen(false);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const onDragEnd = (result) => {\r\n if (!result.destination) {\r\n return;\r\n }\r\n\r\n const tempArr = helper.reOrderDnd(\r\n sortList,\r\n result.source.index,\r\n result.destination.index\r\n );\r\n\r\n setSortList(tempArr);\r\n };\r\n\r\n const columnOptions = {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true\r\n };\r\n\r\n const options = {\r\n selectableRows: 'none',\r\n download: true,\r\n print: false,\r\n jumpToPage: true,\r\n textLabels: { pagination: { jumpToPage: 'Page No:' } }\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => (\r\n \r\n getFooterItem(footerItems[dataIndex].id)}\r\n />\r\n\r\n {\r\n showConfirmModal({\r\n title: 'Remove Footer Item',\r\n text: 'Are you sure you want to remove this menu item?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n deleteFooterItem(footerItems[dataIndex].id);\r\n }\r\n });\r\n }}\r\n />\r\n \r\n )\r\n }\r\n },\r\n {\r\n name: 'label',\r\n label: 'Label',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'to',\r\n label: 'Link To',\r\n options: columnOptions\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n setIsModalVisible(true)}\r\n secondaryButtonText=\"Sort Items\"\r\n secondaryButtonOnClick={() => setIsSortModalOpen(true)}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n {/* SORT MODAL */}\r\n {\r\n setIsSortModalOpen(false);\r\n }}\r\n >\r\n
\r\n \r\n \r\n {(droppableProvided) => (\r\n \r\n {sortList.map((item, index) => (\r\n \r\n {(draggableProvided) => (\r\n \r\n

{item.label}

\r\n \r\n\r\n )}\r\n \r\n ))}\r\n {droppableProvided.placeholder}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n\r\n {/* VIEW/UPDATE MODAL */}\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\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\nexport default connect(mapStateFromProps, { ...alert.actions, ...confirmModal.actions })(FooterItemListingPage);","/* eslint-disable max-len */\r\n/* eslint-disable no-nested-ternary */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Fade } from 'react-awesome-reveal';\r\nimport CustomBlock from './CustomBlock';\r\nimport TextBlock from './TextBlock';\r\nimport Button from './Button';\r\n\r\nconst ContentSection = (props) => {\r\n const {\r\n backgroundColor,\r\n title,\r\n titleColor,\r\n description,\r\n descriptionColor,\r\n cardBackgroundColor,\r\n imageSource,\r\n primaryActionText,\r\n primaryActionColor,\r\n primaryActionTo,\r\n primaryActionOnClick,\r\n secondaryActionText,\r\n secondaryActionColor,\r\n secondaryActionTo,\r\n secondaryActionOnClick,\r\n isPrimaryActionTargetBlank,\r\n isSecondaryActionTargetBlank,\r\n isReversed,\r\n isCentered,\r\n isTitleUppercase,\r\n hasRoundCorners,\r\n hasCardBackgroundImage,\r\n isTextOnly,\r\n isFloatingCard,\r\n isFullWidth,\r\n isFullWidthUnpadded,\r\n } = props;\r\n\r\n const openInNewTab = (link) => {\r\n window.open(link, '_blank');\r\n };\r\n\r\n const renderImage = () => {\r\n if (isTextOnly || isFloatingCard) return null;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const renderActions = () => {\r\n if (!primaryActionText && !secondaryActionText) return null;\r\n\r\n return (\r\n \r\n {primaryActionText && (\r\n \r\n openInNewTab(primaryActionTo) : primaryActionOnClick}\r\n />\r\n \r\n )}\r\n {secondaryActionText && (\r\n \r\n openInNewTab(secondaryActionTo) : secondaryActionOnClick}\r\n />\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n const getDetailBlockClassName = () => {\r\n let className = 'content-section flex-column align-items-start details-block';\r\n if (isTextOnly) className += ' text-only';\r\n if (isFloatingCard) {\r\n className += ' text-only floating-card';\r\n if (hasRoundCorners) className += ' round-corners';\r\n }\r\n if (isFloatingCard && cardBackgroundColor) className += ` ${cardBackgroundColor}`;\r\n if (hasCardBackgroundImage) className += ' card-background-image';\r\n return className;\r\n };\r\n\r\n const getDetailBlockStyle = () => {\r\n if (hasCardBackgroundImage && !cardBackgroundColor) {\r\n return { backgroundImage: `url(${imageSource})` };\r\n }\r\n return {};\r\n };\r\n\r\n const contentSectionClass = [\r\n 'content-section',\r\n isFullWidth ? 'full-width' : '',\r\n isFullWidthUnpadded ? 'unpad' : '',\r\n isReversed ? 'reverse-content' : '',\r\n backgroundColor\r\n ].filter(Boolean).join(' ').trim();\r\n\r\n return (\r\n \r\n {renderImage()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {renderActions()}\r\n \r\n \r\n );\r\n};\r\n\r\nContentSection.propTypes = {\r\n backgroundColor: PropTypes.string,\r\n cardBackgroundColor: PropTypes.string,\r\n imageSource: PropTypes.number.isRequired,\r\n title: PropTypes.string.isRequired,\r\n titleColor: PropTypes.string,\r\n description: PropTypes.string,\r\n descriptionColor: PropTypes.string,\r\n primaryActionText: PropTypes.string,\r\n primaryActionColor: PropTypes.string,\r\n primaryActionTo: PropTypes.string,\r\n primaryActionOnClick: PropTypes.func,\r\n secondaryActionText: PropTypes.string,\r\n secondaryActionColor: PropTypes.string,\r\n secondaryActionTo: PropTypes.string,\r\n secondaryActionOnClick: PropTypes.func,\r\n isPrimaryActionTargetBlank: PropTypes.bool,\r\n isSecondaryActionTargetBlank: PropTypes.bool,\r\n isReversed: PropTypes.bool,\r\n isCentered: PropTypes.bool,\r\n isTitleUppercase: PropTypes.bool,\r\n hasRoundCorners: PropTypes.bool,\r\n hasCardBackgroundImage: PropTypes.bool,\r\n isTextOnly: PropTypes.bool,\r\n isFloatingCard: PropTypes.bool,\r\n isFullWidth: PropTypes.bool,\r\n isFullWidthUnpadded: PropTypes.bool,\r\n};\r\n\r\nContentSection.defaultProps = {\r\n backgroundColor: '',\r\n cardBackgroundColor: '',\r\n titleColor: 'primary--clr',\r\n description: '',\r\n descriptionColor: 'dark--clr',\r\n primaryActionText: '',\r\n primaryActionColor: 'primary--bg',\r\n primaryActionTo: '',\r\n primaryActionOnClick: null,\r\n secondaryActionText: '',\r\n secondaryActionColor: 'secondary--bg',\r\n secondaryActionTo: '',\r\n secondaryActionOnClick: null,\r\n isPrimaryActionTargetBlank: false,\r\n isSecondaryActionTargetBlank: false,\r\n isReversed: false,\r\n isCentered: false,\r\n isTitleUppercase: false,\r\n hasRoundCorners: false,\r\n hasCardBackgroundImage: false,\r\n isTextOnly: false,\r\n isFloatingCard: false,\r\n isFullWidth: false,\r\n isFullWidthUnpadded: false,\r\n};\r\n\r\nexport default ContentSection;","/* eslint-disable object-shorthand */\r\n/* eslint-disable import/no-unresolved */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable max-len */\r\n// DEPENDENCIES\r\nimport React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Fade } from 'react-awesome-reveal';\r\n// COMPONENTS\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport ContentSection from './ContentSection';\r\n\r\nconst Banner = (props) => {\r\n const {\r\n bannerBackgroundColor,\r\n title,\r\n titleColor,\r\n description,\r\n descriptionColor,\r\n imageSource,\r\n titlePosition,\r\n isDynamicBanner,\r\n isTitleUppercase,\r\n offset,\r\n className,\r\n primaryActionColor\r\n } = props;\r\n const [bannerTextOffset, setBannerTextOffset] = useState(0);\r\n\r\n const textPositions = {\r\n left: 'left',\r\n center: 'center',\r\n right: 'right'\r\n };\r\n\r\n const calculateHeight = () => {\r\n let staticBannerHeight = 0;\r\n let headerNavigationContainerHeight = 0;\r\n let staticBannerTextHeight = 0;\r\n\r\n setTimeout(() => {\r\n const staticBanner = document.querySelector('.static-banner.dynamic');\r\n if (staticBanner) {\r\n staticBannerHeight = staticBanner.offsetHeight;\r\n }\r\n }, 0);\r\n\r\n const staticBannerText = document.querySelector('.static-banner .title');\r\n if (staticBannerText) {\r\n staticBannerTextHeight = staticBannerText.offsetHeight;\r\n }\r\n\r\n const headerNavigationContainer = document.querySelector('.header-navigation-container');\r\n if (headerNavigationContainer) {\r\n headerNavigationContainerHeight = headerNavigationContainer.offsetHeight;\r\n }\r\n \r\n const marginTop = Math.abs((staticBannerHeight - headerNavigationContainerHeight + (staticBannerTextHeight / 2)) / 2);\r\n setBannerTextOffset(marginTop);\r\n };\r\n\r\n useEffect(() => {\r\n calculateHeight();\r\n\r\n window.addEventListener('resize', calculateHeight);\r\n window.addEventListener('scroll', calculateHeight);\r\n\r\n return () => {\r\n window.removeEventListener('resize', calculateHeight);\r\n window.removeEventListener('scroll', calculateHeight);\r\n };\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n\r\n {/* */}\r\n \r\n );\r\n};\r\n\r\nBanner.propTypes = {\r\n // MAIN PROPS\r\n imageSource: PropTypes.number.isRequired,\r\n titlePosition: PropTypes.string,\r\n bannerBackgroundColor: PropTypes.string,\r\n\r\n // TITLE PROPS\r\n title: PropTypes.string.isRequired,\r\n titleColor: PropTypes.string,\r\n\r\n // DESCRIPTION PROPS\r\n description: PropTypes.string,\r\n descriptionColor: PropTypes.string,\r\n\r\n // BOOLEAN PROPS\r\n isDynamicBanner: PropTypes.bool,\r\n isTitleUppercase: PropTypes.bool,\r\n};\r\n\r\nBanner.defaultProps = {\r\n // MAIN PROPS\r\n description: '',\r\n titlePosition: 'center',\r\n bannerBackgroundColor: '#213c63',\r\n\r\n // TITLE PROPS\r\n titleColor: 'white--clr',\r\n\r\n // DESCRIPTION PROPS\r\n descriptionColor: 'white--clr',\r\n\r\n // BOOLEAN PROPS\r\n isDynamicBanner: false,\r\n isTitleUppercase: false,\r\n};\r\n\r\nexport default Banner;","export default __webpack_public_path__ + \"static/media/banner-image_default.d591ce99.png\";","export default __webpack_public_path__ + \"static/media/background-decoration_dark-light-waves.24cf4bb8.svg\";","/* eslint-disable object-curly-newline */\r\n/* eslint-disable react/jsx-one-expression-per-line */\r\n/* eslint-disable max-len */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable react/jsx-max-props-per-line */\r\n/* eslint-disable no-use-before-define */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect, useRef } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useFormik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport ReCAPTCHA from 'react-google-recaptcha';\r\n// ICONS\r\nimport {\r\n MdEmail,\r\n MdLocalPhone,\r\n MdLocationPin,\r\n} from 'react-icons/md';\r\n// COMPONENTS\r\nimport { Container, Row, Col } from 'react-bootstrap';\r\nimport { Fade } from 'react-awesome-reveal';\r\nimport Slider from 'react-slick';\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Banner from '../../../components/Banner';\r\nimport Overlay from '../../../components/Overlay';\r\nimport Image from '../../../components/Image';\r\nimport InputBlock from '../../../components/InputBlock';\r\nimport TextAreaBlock from '../../../components/TextAreaBlock';\r\nimport Button from '../../../components/Button';\r\nimport Section from '../../../components/Section';\r\nimport ContentBlock from '../../../components/ContentBlock';\r\n// ASSETS\r\nimport Logo from '../../../assets/client/logo.svg';\r\nimport BannerImage from '../../../assets/client/banner-image_default.png';\r\nimport IllustrationWave from '../../../assets/client/background-decoration_dark-light-waves.svg';\r\n// SERVICES AND HELPERS\r\nimport constants from '../../../constants/constants';\r\nimport * as auth from '../../../redux/authRedux';\r\nimport * as alertToast from '../../../redux/alertToastRedux';\r\nimport * as settingService from '../../../services/management/settingService';\r\nimport * as emailService from '../../../services/management/emailService';\r\n\r\n// const RotatingImageSlider = (props) => {\r\n// const { containerClassName } = props;\r\n// const rotatingImages = Array.from({ length: 5 }, (_, i) => `${constants.API_URL}Attachments/RotatingImages/image-${i + 1}.png`);\r\n\r\n// const settings = {\r\n// dots: true,\r\n// infinite: true,\r\n// speed: 500,\r\n// slidesToShow: 1,\r\n// slidesToScroll: 1,\r\n// autoplay: true,\r\n// autoplaySpeed: 3000,\r\n// // customPaging: customPagingElement,\r\n// dotsClass: 'slick-dots custom-dots'\r\n// };\r\n\r\n// return (\r\n// \r\n// {rotatingImages.map((imageUrl, index) => (\r\n// \r\n// ))}\r\n// \r\n// );\r\n// };\r\n\r\nconst ContactPage = (props) => {\r\n const { showAlert, history, cmsInfo } = props;\r\n const captchaRef = useRef();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [googleMapURL, setGoogleMapURL] = useState([]);\r\n const [captchaToken, setCaptchaToken] = useState(null);\r\n const siteKey = process.env.NODE_ENV === 'development' ? '6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI' : process.env.REACT_APP_RECAPTCHA_SITE_KEY;\r\n\r\n useEffect(() => {\r\n fetchGoogleMapURL('GoogleMapURL');\r\n }, []);\r\n\r\n const fetchGoogleMapURL = (key) => {\r\n setIsLoading(true);\r\n settingService.getSettingByKey(key).then((res) => {\r\n setGoogleMapURL(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const formik = useFormik({\r\n initialValues: {\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n phoneNumber: '',\r\n message: '',\r\n },\r\n validationSchema: Yup.object({\r\n firstName: Yup.string().required('First Name is required').max(100),\r\n lastName: Yup.string().required('Last Name is required').max(100),\r\n email: Yup.string().email('Invalid email address').required('Email is required').max(100),\r\n phoneNumber: Yup.string().max(50),\r\n message: Yup.string().required('Message is required'),\r\n }),\r\n onSubmit: async (values, { setSubmitting, resetForm }) => {\r\n if (!captchaToken) {\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n setIsLoading(true);\r\n\r\n const formattedValues = {\r\n ...values,\r\n reCAPTCHAToken: captchaToken,\r\n formType: 'contact-form',\r\n };\r\n\r\n try {\r\n await emailService.sendEmail(formattedValues);\r\n showAlert({ text: 'Success! Your message has been received.', state: 'success' });\r\n resetForm();\r\n captchaRef.current.reset();\r\n setCaptchaToken(null);\r\n } catch (ex) {\r\n showAlert({ text: ex.message, state: 'error' });\r\n } finally {\r\n setIsLoading(false);\r\n setSubmitting(false);\r\n }\r\n },\r\n });\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n\r\n \r\n {/* LOGO */}\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n\r\n {/* DETAILS */}\r\n \r\n {/* COMPANY DETAILS SECTION */}\r\n \r\n \r\n

Contact

\r\n
\r\n \r\n {cmsInfo.emailAddress && (\r\n \r\n \r\n \r\n \r\n \r\n

\r\n {cmsInfo.emailAddress.split('@')[0]}\r\n

\r\n

\r\n @{cmsInfo.emailAddress.split('@')[1]}\r\n

\r\n
\r\n
\r\n )}\r\n\r\n {cmsInfo.phoneNumber && (\r\n \r\n \r\n \r\n \r\n

{cmsInfo.phoneNumber}

\r\n
\r\n )}\r\n
\r\n\r\n {(cmsInfo.streetAddress1 || cmsInfo.streetAddress2 || cmsInfo.city || cmsInfo.state || cmsInfo.zipCode) && (\r\n \r\n \r\n

Location

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

\r\n {cmsInfo.streetAddress1 && `${cmsInfo.streetAddress1}`}\r\n {cmsInfo.streetAddress1 && cmsInfo.streetAddress2 && ', '}\r\n {cmsInfo.streetAddress2 && `${cmsInfo.streetAddress2}`}\r\n {(cmsInfo.streetAddress1 || cmsInfo.streetAddress2) && (cmsInfo.city || cmsInfo.state || cmsInfo.zipCode) &&
}\r\n {cmsInfo.city && `${cmsInfo.city}`}\r\n {cmsInfo.city && cmsInfo.state && ', '}\r\n {cmsInfo.state && `${cmsInfo.state}`}\r\n {(cmsInfo.city || cmsInfo.state) && ' '}\r\n {cmsInfo.zipCode && `${cmsInfo.zipCode}`}\r\n

\r\n
\r\n
\r\n )}\r\n\r\n {(cmsInfo.primaryWeekDayHours || cmsInfo.secondaryWeekDayHours || cmsInfo.primaryWeekEndHours || cmsInfo.secondaryWeekEndHours) && (\r\n \r\n \r\n

Hours of Operation

\r\n
\r\n

\r\n {(cmsInfo.primaryWeekDayHours || cmsInfo.secondaryWeekDayHours) && (\r\n \r\n {cmsInfo.primaryWeekDayHours && `${cmsInfo.primaryWeekDayHours}`}\r\n
\r\n {cmsInfo.secondaryWeekDayHours && `${cmsInfo.secondaryWeekDayHours}`}\r\n
\r\n )}\r\n

\r\n {(cmsInfo.primaryWeekEndHours || cmsInfo.secondaryWeekEndHours) && (\r\n \r\n {cmsInfo.primaryWeekEndHours && (\r\n

{cmsInfo.primaryWeekEndHours}

\r\n )}\r\n {cmsInfo.secondaryWeekEndHours && (\r\n

{cmsInfo.secondaryWeekEndHours}

\r\n )}\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n\r\n {/* GOOGLE MAPS SECTION */}\r\n {(googleMapURL && googleMapURL !== null && googleMapURL !== '') && (\r\n \r\n )}\r\n
\r\n\r\n {/* FORM CONTAINER */}\r\n \r\n \r\n \r\n {/* FORM */}\r\n \r\n \r\n {/* FORM HEADER */}\r\n \r\n \r\n

Have Questions?

\r\n
\r\n

\r\n \r\n We're Here To Help\r\n \r\n

\r\n
\r\n \r\n {/* FORM */}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* RECAPTCHA */}\r\n \r\n \r\n {captchaToken == null ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, {\r\n ...auth.actions,\r\n ...alertToast.actions\r\n})(ContactPage);","/* eslint-disable no-console */\r\n/* eslint-disable max-len */\r\nimport axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'Email/';\r\n\r\nconst sendEmail = async (model) => axiosInstance.post(`${ENDPOINTORIGIN}SendEmail`, model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst sendEmailWithTemplate = () => console.log('New Feature');\r\n\r\nexport {\r\n sendEmail,\r\n sendEmailWithTemplate,\r\n};","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'Client/';\r\n\r\nconst getAll = async () => axiosInstance.get(`${ENDPOINTORIGIN}GetAll`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getById = async (id) => axiosInstance.get(`${ENDPOINTORIGIN}GetById?id=${id}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst create = async (model) => axiosInstance.post(`${ENDPOINTORIGIN}Create`, model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst update = async (model) => axiosInstance.put(`${ENDPOINTORIGIN}Update`, model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst remove = async (id) => axiosInstance.delete(`${ENDPOINTORIGIN}Delete?id=${id}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getAll,\r\n getById,\r\n create,\r\n update,\r\n remove,\r\n};","/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable camelcase */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable max-len */\r\n/* eslint-disable no-shadow */\r\n/* eslint-disable no-param-reassign */\r\n// DEPENDENCIES\r\nimport React, { useEffect, useState } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport * as Yup from 'yup';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useFormik } from 'formik';\r\n// COMPONENTS\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport FormBlock from '../../../../components/FormBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport InputBlock from '../../../../components/InputBlock';\r\nimport SelectBlock from '../../../../components/SelectBlock';\r\nimport Overlay from '../../../../components/Overlay';\r\nimport FixedActionsBar from '../../../../components/FixedActionsBar';\r\n// HELPERS AND SERVICES\r\nimport * as helper from '../../../../helpers/helper';\r\nimport * as clientService from '../../../../services/management/clientService';\r\n// REDUX\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as auth from '../../../../redux/authRedux';\r\n\r\nconst frequencyOptions = ['Monthly', 'Weekly', 'Bi-weekly', 'Every three weeks'];\r\n\r\nconst initialClientModel = {\r\n id: 0,\r\n isActive: true,\r\n name: '',\r\n contactName: '',\r\n contactPhone: '',\r\n contactEmail: '',\r\n address1: '',\r\n address2: '',\r\n city: '',\r\n state: '',\r\n zipCode: '',\r\n reportFrequency: 'Monthly',\r\n};\r\n\r\nconst ClientManagementPage = (props) => {\r\n const { history, showAlert } = props;\r\n let { clientId } = useParams();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [client, setClient] = useState(initialClientModel);\r\n clientId = parseInt(clientId, 10);\r\n\r\n useEffect(() => {\r\n if (clientId) {\r\n fetchClient();\r\n }\r\n }, []);\r\n\r\n const fetchClient = () => {\r\n setIsLoading(true);\r\n clientService.getById(clientId).then((res) => {\r\n setClient(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const formik = useFormik({\r\n initialValues: client,\r\n validationSchema: Yup.object().shape({\r\n id: Yup.number(),\r\n isActive: Yup.bool(),\r\n name: Yup.string().required('Name is required').max(1000),\r\n contactName: Yup.string().nullable().max(1000),\r\n contactPhone: Yup.string().nullable().max(150),\r\n contactEmail: Yup.string().nullable().email().max(1000),\r\n address1: Yup.string().nullable().max(500),\r\n address2: Yup.string().nullable().max(500),\r\n city: Yup.string().nullable().max(500),\r\n state: Yup.string().nullable().max(500),\r\n zipCode: Yup.string().nullable().max(500),\r\n reportFrequency: Yup.string().nullable().max(500),\r\n\r\n }),\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n if (clientId) {\r\n updateClient(values);\r\n } else {\r\n createClient(values);\r\n }\r\n },\r\n });\r\n\r\n const updateClient = (model) => {\r\n setIsLoading(true);\r\n clientService.update(model).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const createClient = (model) => {\r\n setIsLoading(true);\r\n\r\n clientService.create(model).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n history.push(`/admin/management/client/${res.id}`);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n\r\n {/* CONTENT DETAILS */}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {/* LOCATION */}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {/* SCHEDULE */}\r\n \r\n \r\n \r\n\r\n \r\n helper.setToOptionModel(x, x))}\r\n isRequired\r\n errorMessage={formik.errors.reportFrequency}\r\n inputState={`${helper.getInputClasses(formik, 'reportFrequency')}`}\r\n value={\r\n formik.values.reportFrequency\r\n ? helper.setToOptionModel(formik.values.reportFrequency, formik.values.reportFrequency)\r\n : null\r\n }\r\n onChange={(opt) => {\r\n formik.setFieldValue('reportFrequency', opt ? opt.label : '');\r\n }}\r\n />\r\n \r\n
\r\n\r\n {/* PAGE ACTIONS */}\r\n 0 ? 'Save Changes' : 'Create Client'}\r\n primaryActionColor=\"primary--bg\"\r\n primaryActionOnClick={formik.handleSubmit}\r\n secondaryActionText=\"Cancel\"\r\n secondaryActionTo=\"/admin/management/clients\"\r\n optionalActionText={clientId > 0 ? 'Return to Listing' : ''}\r\n optionalActionTo=\"/admin/management/clients\"\r\n />\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(\r\n mapStateFromProps,\r\n {\r\n ...auth.actions,\r\n ...alert.actions\r\n }\r\n)(ClientManagementPage);","/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable react/no-array-index-key */\r\n// DEPENDENCIES\r\nimport React, { useEffect, useState } from 'react';\r\nimport { connect } from 'react-redux';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport Button from '../../../../components/Button';\r\nimport OverLay from '../../../../components/Overlay';\r\n// HELPERS AND SERVICES\r\nimport * as clientService from '../../../../services/management/clientService';\r\n// REDUX\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as authRedux from '../../../../redux/authRedux';\r\nimport * as confirmModal from '../../../../redux/confirmModalRedux';\r\n\r\nconst ClientListingPage = (props) => {\r\n const {\r\n history,\r\n showAlert,\r\n auth,\r\n showConfirmModal,\r\n hideConfirmModal\r\n } = props;\r\n const [clients, setClients] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n getAllClients();\r\n }, []);\r\n\r\n const getAllClients = () => {\r\n setIsLoading(true);\r\n clientService.getAll().then((res) => {\r\n setClients(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const columnOptions = {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true,\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => (\r\n \r\n {\r\n history.push(`/admin/management/client/${clients[dataIndex].id}`);\r\n }}\r\n />\r\n\r\n {\r\n auth.isAdmin\r\n && (\r\n {\r\n showConfirmModal({\r\n title: 'Remove Client',\r\n text: 'Are you sure you want to remove this client?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n deleteClient(clients[dataIndex].id);\r\n }\r\n });\r\n }}\r\n />\r\n )\r\n }\r\n \r\n )\r\n }\r\n },\r\n {\r\n name: 'name',\r\n label: 'Name',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'contactName',\r\n label: 'Contact Name',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'address1',\r\n label: 'Address 1',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'address2',\r\n label: 'Address 2',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'city',\r\n label: 'City',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'state',\r\n label: 'State',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'zipCode',\r\n label: 'Zip',\r\n options: columnOptions,\r\n }\r\n\r\n ];\r\n\r\n const deleteClient = (clientId) => {\r\n setIsLoading(true);\r\n\r\n clientService.remove(clientId).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n getAllClients();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n hideConfirmModal();\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n {\r\n history.push('/admin/management/client/0');\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\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(\r\n mapStateFromProps,\r\n {\r\n ...authRedux.actions,\r\n ...alert.actions,\r\n ...confirmModal.actions\r\n }\r\n)(ClientListingPage);","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'Bid/';\r\n\r\nconst getAll = async () => axiosInstance.get(`${ENDPOINTORIGIN}GetAll`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getById = async (id) => axiosInstance.get(`${ENDPOINTORIGIN}GetById?id=${id}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getAllByClientId = async (clientId) => axiosInstance.get(`${ENDPOINTORIGIN}GetAllByClientId?clientId=${clientId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst create = async (model) => axiosInstance.post(`${ENDPOINTORIGIN}Create`, model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst update = async (model) => axiosInstance.put(`${ENDPOINTORIGIN}Update`, model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst remove = async (id) => axiosInstance.delete(`${ENDPOINTORIGIN}Delete?id=${id}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getBidItems = async (id) => axiosInstance.get(`${ENDPOINTORIGIN}GetBidItems?id=${id}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst addBidItems = async (model) => axiosInstance.post(`${ENDPOINTORIGIN}AddBidItems`, model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getAll,\r\n getById,\r\n getAllByClientId,\r\n create,\r\n update,\r\n remove,\r\n getBidItems,\r\n addBidItems\r\n};","/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable react/no-array-index-key */\r\n// DEPENDENCIES\r\nimport React, { useEffect, useState } from 'react';\r\nimport { connect } from 'react-redux';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport Button from '../../../../components/Button';\r\nimport OverLay from '../../../../components/Overlay';\r\n// HELPERS AND SERVICES\r\nimport * as bidService from '../../../../services/management/bidService';\r\n// REDUX\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as authRedux from '../../../../redux/authRedux';\r\nimport * as confirmModal from '../../../../redux/confirmModalRedux';\r\n\r\nconst BidListingPage = (props) => {\r\n const {\r\n history,\r\n showAlert,\r\n auth,\r\n showConfirmModal,\r\n hideConfirmModal\r\n } = props;\r\n const [bids, setBids] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n // const iconSize = 22;\r\n // const iconColor = 'white--clr';\r\n\r\n useEffect(() => {\r\n getAllBids();\r\n }, []);\r\n\r\n const getAllBids = () => {\r\n setIsLoading(true);\r\n bidService.getAll().then((res) => {\r\n setBids(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const columnOptions = {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true,\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => (\r\n \r\n {\r\n history.push(`/admin/management/bid/${bids[dataIndex].id}`);\r\n }}\r\n />\r\n\r\n {\r\n auth.isAdmin\r\n && (\r\n {\r\n showConfirmModal({\r\n title: 'Remove Shipping Analysis',\r\n text: 'Are you sure you want to remove this parcel shipping analysis?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n deleteBid(bids[dataIndex].id);\r\n }\r\n });\r\n }}\r\n />\r\n )\r\n }\r\n \r\n )\r\n }\r\n },\r\n {\r\n name: 'id',\r\n label: 'Analysis#',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'client',\r\n label: 'Client',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'type',\r\n label: 'Carrier',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'dateCreated',\r\n label: 'Date Created',\r\n options: columnOptions,\r\n }\r\n ];\r\n\r\n const deleteBid = (bidId) => {\r\n setIsLoading(true);\r\n\r\n bidService.remove(bidId).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n getAllBids();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n hideConfirmModal();\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n {\r\n history.push('/admin/management/bid/0');\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\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(\r\n mapStateFromProps,\r\n {\r\n ...authRedux.actions,\r\n ...alert.actions,\r\n ...confirmModal.actions\r\n }\r\n)(BidListingPage);","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'Benchmark/';\r\n\r\nconst getAll = async (clientId) => axiosInstance.get(`${ENDPOINTORIGIN}GetAll?clientId=${clientId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst saveChanges = async (model) => axiosInstance.post(`${ENDPOINTORIGIN}Save`, model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getAll,\r\n saveChanges\r\n};","// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\nimport { useWizard } from 'react-use-wizard';\r\n// CUSTOM COMPONENTS\r\nimport Overlay from '../../../../../components/Overlay';\r\nimport ContentBlock from '../../../../../components/ContentBlock';\r\nimport Button from '../../../../../components/Button';\r\nimport Section from '../../../../../components/Section';\r\nimport FileUploadBlock from '../../../../../components/FileUploadBlock';\r\nimport TextHeader from '../../../../../components/TextHeader';\r\n// SERVICES AND HELPERS\r\nimport constants from '../../../../../constants/constants';\r\n\r\nconst Step1FileUploadWizard = (props) => {\r\n const { excelFileUpload, setExcelFileUpload } = props;\r\n const [isLoading] = useState(false);\r\n const { nextStep } = useWizard();\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n
\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n 0 ? 'teal--bg' : 'light-grey--sbg'}\r\n onClick={nextStep}\r\n isDisabled={excelFileUpload.length === 0}\r\n />\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Step1FileUploadWizard;","/* eslint-disable no-use-before-define */\r\n/* eslint-disable no-continue */\r\n// DEPENDENCIES\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useWizard } from 'react-use-wizard';\r\nimport readXlsxFile from 'read-excel-file';\r\nimport ReactTable from 'react-table';\r\nimport moment from 'moment';\r\nimport * as _ from 'lodash';\r\n// CUSTOM COMPONENTS\r\nimport Overlay from '../../../../../components/Overlay';\r\nimport ContentBlock from '../../../../../components/ContentBlock';\r\nimport Button from '../../../../../components/Button';\r\nimport Section from '../../../../../components/Section';\r\nimport TextHeader from '../../../../../components/TextHeader';\r\n// SERVICES AND HELPERS\r\nimport * as bidItemService from '../../../../../services/management/bidService';\r\n\r\nconst Step2LineItemListingWizard = (props) => {\r\n const {\r\n bidItemColumns,\r\n excelFileUpload,\r\n type,\r\n setIsLoading,\r\n handleModalClose,\r\n bidId,\r\n showAlert,\r\n fetchBid,\r\n isLoading\r\n } = props;\r\n const [tempExcelJson, setTempExcelJson] = useState([]);\r\n const { previousStep } = useWizard();\r\n\r\n useEffect(() => {\r\n readExcelFile();\r\n }, []);\r\n\r\n const readExcelFile = () => {\r\n setIsLoading(true);\r\n readXlsxFile(excelFileUpload[0].file).then((res) => {\r\n if (type === 'UPS') {\r\n fetchValuesForUps(res);\r\n } else {\r\n fetchValuesForFedEx(res);\r\n }\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const fetchValuesForFedEx = (excelJson) => {\r\n const trackingNumberIndex = excelJson[0].indexOf('Express or Ground Tracking ID');\r\n const invoiceDateIndex = excelJson[0].indexOf('Invoice Date');\r\n const invoiceNumberIndex = excelJson[0].indexOf('Invoice Number');\r\n const serviceTypeIndex = excelJson[0].indexOf('Service Type');\r\n const actualWeightAmountIndex = excelJson[0].indexOf('Actual Weight Amount');\r\n const ratedWeightAmountIndex = excelJson[0].indexOf('Rated Weight Amount');\r\n const lengthIndex = excelJson[0].indexOf('Dim Length');\r\n const widthIndex = excelJson[0].indexOf('Dim Width');\r\n const heightIndex = excelJson[0].indexOf('Dim Height');\r\n const divisorIndex = excelJson[0].indexOf('Dim Divisor');\r\n const zoneCodeIndex = excelJson[0].indexOf('Zone Code');\r\n const multiWeightNumberIndex = excelJson[0].indexOf('Multiweight Number');\r\n const transportationChargeAmountIndex = excelJson[0].indexOf('Transportation Charge Amount');\r\n const netChargeAmountIndex = excelJson[0].indexOf('Net Charge Amount');\r\n const startIndexForTrackingID = excelJson[0].indexOf('Tracking ID Charge Description');\r\n let accesoryCharges = [];\r\n\r\n const tempArr = [];\r\n for (let i = 1; i < excelJson.length; i += 1) {\r\n if (String(excelJson[i][invoiceNumberIndex]).includes('Total')) {\r\n continue;\r\n }\r\n const invoiceDate = String(excelJson[i][invoiceDateIndex]);\r\n\r\n const fedExObj = {\r\n bidId,\r\n trackingNumber: excelJson[i][trackingNumberIndex],\r\n invoiceDate: invoiceDate.length >= 7 ? `${invoiceDate.substr(0, 4)}/${invoiceDate.substr(4, 2)}/${invoiceDate.substr(6, 2)} ` : '',\r\n invoiceNumber: excelJson[i][invoiceNumberIndex],\r\n serviceType: excelJson[i][serviceTypeIndex],\r\n actualWeightAmount: excelJson[i][actualWeightAmountIndex],\r\n ratedWeightAmount: excelJson[i][ratedWeightAmountIndex],\r\n length: excelJson[i][lengthIndex],\r\n width: excelJson[i][widthIndex],\r\n height: excelJson[i][heightIndex],\r\n divisor: excelJson[i][divisorIndex],\r\n zoneCode: excelJson[i][zoneCodeIndex],\r\n multiWeightNumber: excelJson[i][multiWeightNumberIndex],\r\n transportationChargeAmount: excelJson[i][transportationChargeAmountIndex],\r\n netChargeAmount: excelJson[i][netChargeAmountIndex],\r\n };\r\n\r\n if (startIndexForTrackingID > -1) {\r\n accesoryCharges = excelJson[i].splice(startIndexForTrackingID, excelJson[i].length);\r\n\r\n let arrIndex = 1;\r\n for (let j = 0; j <= accesoryCharges.length; j += 2) {\r\n if (accesoryCharges[j]) {\r\n fedExObj[`trackingIdChargeDescription${arrIndex}`] = accesoryCharges[j];\r\n fedExObj[`trackingIdChargeAmount${arrIndex}`] = accesoryCharges[j + 1];\r\n arrIndex += 1;\r\n }\r\n }\r\n // console.log(accesoryCharges, fedExObj);\r\n }\r\n tempArr.push(fedExObj);\r\n }\r\n\r\n setTempExcelJson(_.sortBy(tempArr, ['trackingNumber', 'invoiceDate', 'serviceType']));\r\n };\r\n\r\n const fetchValuesForUps = (excelJson) => {\r\n const trackingNumberIndex = excelJson[0].indexOf('Tracking Number');\r\n const invoiceDateIndex = excelJson[0].indexOf('Invoice Date');\r\n const invoiceNumberIndex = excelJson[0].indexOf('Invoice Number');\r\n const enteredWeightIndex = excelJson[0].indexOf('Entered Weight');\r\n const billedWeightIndex = excelJson[0].indexOf('Billed Weight');\r\n const zoneIndex = excelJson[0].indexOf('Zone');\r\n const chargeDescriptionIndex = excelJson[0].indexOf('Charge Description');\r\n const basisValueIndex = excelJson[0].indexOf('Basis Value');\r\n const incentiveAmountIndex = excelJson[0].indexOf('Incentive Amount');\r\n const netAmountIndex = excelJson[0].indexOf('Net Amount');\r\n const grossIndex = excelJson[0].indexOf('Gross');\r\n\r\n const tempArr = [];\r\n for (let i = 1; i < excelJson.length; i += 1) {\r\n if (invoiceNumberIndex >= 0) {\r\n // eslint-disable-next-line prefer-template\r\n if ((excelJson[i][invoiceNumberIndex] + '')?.includes('Total')) {\r\n continue;\r\n }\r\n }\r\n tempArr.push({\r\n bidId,\r\n trackingNumber: trackingNumberIndex >= 0 ? excelJson[i][trackingNumberIndex] : '',\r\n invoiceDate: invoiceDateIndex >= 0 ? moment(excelJson[i][invoiceDateIndex]).format('YYYY/MM/DD') : '',\r\n invoiceNumber: invoiceNumberIndex >= 0 ? excelJson[i][invoiceNumberIndex] : '',\r\n enteredWeight: enteredWeightIndex >= 0 ? excelJson[i][enteredWeightIndex] : '',\r\n billedWeight: billedWeightIndex >= 0 ? excelJson[i][billedWeightIndex] : '',\r\n Zone: zoneIndex >= 0 ? excelJson[i][zoneIndex] : '',\r\n chargeDescription: chargeDescriptionIndex >= 0 ? excelJson[i][chargeDescriptionIndex] : '',\r\n basisValue: basisValueIndex >= 0 ? excelJson[i][basisValueIndex] : '',\r\n incentiveAmount: incentiveAmountIndex >= 0 ? excelJson[i][incentiveAmountIndex] : '',\r\n netAmount: netAmountIndex >= 0 ? excelJson[i][netAmountIndex] : '',\r\n gross: grossIndex >= 0 ? excelJson[i][grossIndex] : '',\r\n });\r\n }\r\n\r\n setTempExcelJson(_.sortBy(tempArr, ['trackingNumber', 'invoiceDate', 'serviceType']));\r\n };\r\n\r\n const submitBidItems = () => {\r\n setIsLoading(true);\r\n\r\n bidItemService.addBidItems(tempExcelJson).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n fetchBid().finally(() => setIsLoading(false));\r\n handleModalClose();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n {(isLoading) && }\r\n
\r\n \r\n\r\n \r\n {\r\n (isLoading)\r\n ?

Loading...

\r\n : (\r\n \r\n )\r\n }\r\n\r\n
\r\n\r\n \r\n \r\n 0 ? 'teal--bg' : 'light-grey--sbg'}\r\n onClick={submitBidItems}\r\n isDisabled={bidItemColumns.length === 0}\r\n />\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Step2LineItemListingWizard;","/* eslint-disable quote-props */\r\n/* eslint-disable react/no-this-in-sfc */\r\n/* eslint-disable react/destructuring-assignment */\r\n/* eslint-disable no-console */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable camelcase */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable max-len */\r\n/* eslint-disable no-shadow */\r\n/* eslint-disable no-param-reassign */\r\n/* eslint-disable indent */\r\n/* eslint-disable function-paren-newline */\r\n// DEPENDENCIES\r\nimport React, { useEffect, useState } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport * as Yup from 'yup';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useFormik } from 'formik';\r\nimport ReactTable from 'react-table';\r\nimport { Wizard } from 'react-use-wizard';\r\nimport * as _ from 'lodash';\r\nimport * as XLSX from 'xlsx';\r\n// COMPONENTS\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n// ICONS\r\nimport Table from 'react-bootstrap/Table';\r\nimport {\r\n TbChecks, TbFileInvoice, TbChartInfographic, TbStack2\r\n} from 'react-icons/tb';\r\n// import { MdOutlineAttachMoney } from 'react-icons/md';\r\n// CUSTOM COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport FormBlock from '../../../../components/FormBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport SelectBlock from '../../../../components/SelectBlock';\r\nimport Overlay from '../../../../components/Overlay';\r\nimport FixedActionsBar from '../../../../components/FixedActionsBar';\r\nimport Button from '../../../../components/Button';\r\n// import InputBlock from '../../../../components/InputBlock';\r\nimport ModalBlock from '../../../../components/ModalBlock';\r\n// HELPERS AND SERVICES\r\nimport * as helper from '../../../../helpers/helper';\r\nimport * as bidService from '../../../../services/management/bidService';\r\nimport * as clientService from '../../../../services/management/clientService';\r\nimport * as benchmarkService from '../../../../services/management/benchmarkService';\r\n// REDUX\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as auth from '../../../../redux/authRedux';\r\n// CONSTANTS\r\nimport Step1FileUploadWizard from './wizard/Step1FileUploadWizard';\r\nimport Step2LineItemListingWizard from './wizard/Step2LineItemListingWizard';\r\n\r\nconst carrierOptions = ['FedEX', 'UPS'];\r\n\r\nconst initialBidModel = {\r\n id: 0,\r\n isActive: true,\r\n clientId: 0,\r\n type: '',\r\n client: ''\r\n};\r\n\r\nconst BidManagementPage = (props) => {\r\n const { history, showAlert } = props;\r\n let { bidId } = useParams();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [bid, setBid] = useState(initialBidModel);\r\n const [clients, setClients] = useState([]);\r\n const [bidItems, setBidItems] = useState([]);\r\n const [isModalOpen, setIsModalOpen] = useState(false);\r\n const [excelFileUpload, setExcelFileUpload] = useState([]);\r\n const [uniqueServiceTypes, setUniqueServiceTypes] = useState([]);\r\n const [benchmarks, setBenchmarks] = useState([]);\r\n const [invoiceData, setInvoiceData] = useState([]);\r\n\r\n bidId = parseInt(bidId, 10);\r\n\r\n useEffect(() => {\r\n fetchOptionsAndBid();\r\n }, [bidId]);\r\n\r\n const fetchOptionsAndBid = async () => {\r\n setIsLoading(true);\r\n\r\n try {\r\n if (bidId) {\r\n await Promise.all([\r\n fetchBid(),\r\n fetchBenchmarks()\r\n ]);\r\n } else {\r\n await Promise.all([\r\n fetchClients()\r\n ]);\r\n }\r\n } catch (error) {\r\n showAlert({ text: error.message, state: 'error' });\r\n } finally {\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n const fetchBenchmarks = async (clientId) => {\r\n if (clientId) {\r\n try {\r\n const res = await benchmarkService.getAll(clientId);\r\n setBenchmarks(res);\r\n\r\n return res;\r\n } catch (error) {\r\n showAlert({ text: error.message, state: 'error' });\r\n }\r\n }\r\n\r\n return [];\r\n };\r\n\r\n const fetchBid = async () => {\r\n try {\r\n const res = await bidService.getById(bidId);\r\n const benchms = await fetchBenchmarks(res.clientId);\r\n await fetchBidItems(res, benchms);\r\n setBid(res);\r\n } catch (error) {\r\n showAlert({ text: error.message, state: 'error' });\r\n }\r\n };\r\n\r\n // Helper to calculate gross, incentive amounts, and net charge\r\n const calculateGrossAndIncentives = (items, type) => {\r\n let gross = 0;\r\n let sumOfIncentiveAmount = 0;\r\n let netChargeAmount = 0;\r\n\r\n items.forEach((item) => {\r\n if (type === 'UPS') {\r\n const incentiveAmount = parseFloat(item.incentiveAmount || 0, 10);\r\n const netAmount = parseFloat(item.netAmount || 0, 10);\r\n gross += (incentiveAmount + netAmount);\r\n sumOfIncentiveAmount += incentiveAmount;\r\n netChargeAmount += netAmount;\r\n } else {\r\n gross += parseFloat(item.transportationChargeAmount || 0, 10);\r\n sumOfIncentiveAmount += [convertToFloat(item.trackingIdChargeAmount1), convertToFloat(item.trackingIdChargeAmount2), convertToFloat(item.trackingIdChargeAmount3),\r\n convertToFloat(item.trackingIdChargeAmount4), convertToFloat(item.trackingIdChargeAmount5), convertToFloat(item.trackingIdChargeAmount6),\r\n convertToFloat(item.trackingIdChargeAmount7), convertToFloat(item.trackingIdChargeAmount8), convertToFloat(item.trackingIdChargeAmount9), convertToFloat(item.trackingIdChargeAmount10),\r\n convertToFloat(item.trackingIdChargeAmount11), convertToFloat(item.trackingIdChargeAmount12), convertToFloat(item.trackingIdChargeAmount13), convertToFloat(item.trackingIdChargeAmount14), convertToFloat(item.trackingIdChargeAmount15),\r\n convertToFloat(item.trackingIdChargeAmount16), convertToFloat(item.trackingIdChargeAmount17), convertToFloat(item.trackingIdChargeAmount18), convertToFloat(item.trackingIdChargeAmount19), convertToFloat(item.trackingIdChargeAmount20)].filter((x) => x < 0).reduce((a, b) => a + b, 0);\r\n netChargeAmount += parseFloat(item.netChargeAmount || 0, 10);\r\n }\r\n });\r\n\r\n return { gross, sumOfIncentiveAmount, netChargeAmount };\r\n };\r\n\r\n // Helper to calculate savings and variance\r\n const calculateSavingsAndVariance = (gross, sumOfIncentiveAmount, bm, min = 0) => {\r\n let sumOfOldSavings = gross * (bm / 100);\r\n let sumOfVariance = sumOfIncentiveAmount - sumOfOldSavings;\r\n\r\n if (sumOfVariance < 0) {\r\n sumOfOldSavings = gross - min;\r\n sumOfVariance = sumOfIncentiveAmount - sumOfOldSavings;\r\n }\r\n\r\n return { sumOfOldSavings, sumOfVariance };\r\n };\r\n\r\n // Helper to push invoice data into the array\r\n const generateInvoiceData = (name, gross, sumOfIncentiveAmount, netChargeAmount, bmPercentage, sumOfOldSavings, sumOfVariance) => ({\r\n name,\r\n gross,\r\n sumOfIncentiveAmount: sumOfIncentiveAmount.toFixed(2),\r\n netChargeAmount: netChargeAmount.toFixed(2),\r\n bmPercentage,\r\n sumOfOldSavings: sumOfOldSavings.toFixed(2),\r\n sumOfVariance: sumOfVariance.toFixed(2),\r\n });\r\n\r\n // Helper to process each benchmark group\r\n const processBenchmarkGroup = (benchmarkGroup, groupedByServiceType, serviceType, idsEvaluated, type) => {\r\n const numberDashNumberFormat = /^(\\d+)-(\\d+)$/;\r\n const match = benchmarkGroup.group.match(numberDashNumberFormat);\r\n if (match) {\r\n const [_, min, max] = match;\r\n const matchedWeights = groupedByServiceType[serviceType].filter(\r\n (x) => parseInt(x.billedWeight, 10) >= min && parseInt(x.billedWeight, 10) <= max\r\n );\r\n const { gross, sumOfIncentiveAmount, netChargeAmount } = calculateGrossAndIncentives(matchedWeights, type);\r\n\r\n matchedWeights.forEach((item) => idsEvaluated.push(item.id));\r\n\r\n const { sumOfOldSavings, sumOfVariance } = calculateSavingsAndVariance(gross, sumOfIncentiveAmount, benchmarkGroup.bm, benchmarkGroup.min);\r\n\r\n return generateInvoiceData(`${serviceType} (${min}-${max})`, gross, sumOfIncentiveAmount, netChargeAmount, benchmarkGroup.bm, sumOfOldSavings, sumOfVariance);\r\n }\r\n return null;\r\n };\r\n\r\n // Main handler function\r\n const handleInvoice = (groupedByServiceType, benchms, type) => {\r\n const invoiceData = [];\r\n\r\n Object.keys(groupedByServiceType).forEach((serviceType) => {\r\n const name = serviceType || '-';\r\n const bmPercentage = 0;\r\n const sumOfOldSavings = 0;\r\n const sumOfVariance = 0;\r\n const matchedBenchMark = benchms.find((x) => x.name === serviceType);\r\n\r\n if (matchedBenchMark) {\r\n const idsEvaluated = [];\r\n\r\n if (matchedBenchMark.benchmarkGroups.length > 0) {\r\n matchedBenchMark.benchmarkGroups.forEach((benchmarkGroup) => {\r\n const invoiceEntry = processBenchmarkGroup(benchmarkGroup, groupedByServiceType, serviceType, idsEvaluated, type);\r\n if (invoiceEntry) invoiceData.push(invoiceEntry);\r\n });\r\n }\r\n\r\n // Process remaining items that weren't matched\r\n const unmatchedItems = groupedByServiceType[serviceType].filter((x) => !idsEvaluated.includes(x.id));\r\n if (unmatchedItems.length > 0) {\r\n const { gross, sumOfIncentiveAmount, netChargeAmount } = calculateGrossAndIncentives(unmatchedItems, type);\r\n const { sumOfOldSavings, sumOfVariance } = calculateSavingsAndVariance(gross, sumOfIncentiveAmount, matchedBenchMark.bm, matchedBenchMark.min);\r\n\r\n invoiceData.push(generateInvoiceData(name, gross, sumOfIncentiveAmount, netChargeAmount, matchedBenchMark.bm, sumOfOldSavings, sumOfVariance));\r\n }\r\n } else {\r\n // Process if no matching benchmark\r\n const { gross, sumOfIncentiveAmount, netChargeAmount } = calculateGrossAndIncentives(groupedByServiceType[serviceType], type);\r\n invoiceData.push(generateInvoiceData(name, gross, sumOfIncentiveAmount, netChargeAmount, bmPercentage, sumOfOldSavings, sumOfVariance));\r\n }\r\n });\r\n\r\n setInvoiceData(invoiceData);\r\n };\r\n\r\n const fetchBidItems = async (model, benchms) => {\r\n try {\r\n const res = await bidService.getBidItems(bidId);\r\n const groupedByServiceType = _.groupBy(res, model.type === 'UPS' ? 'chargeDescription' : 'serviceType');\r\n if (model.type === 'UPS') {\r\n handleInvoice(groupedByServiceType, benchms, 'UPS');\r\n setUniqueServiceTypes(_.map(groupedByServiceType, (group, serviceType) => ({\r\n name: serviceType || '-',\r\n count: group.length,\r\n totalCharge: 0,\r\n incentiveAmount: group.map((x) => parseFloat(x.incentiveAmount || 0, 10)).reduce((a, b) => a + b, 0).toFixed(2),\r\n gross: group.map((x) => parseFloat(x.gross || 0, 10)).reduce((a, b) => a + b, 0).toFixed(2),\r\n netChargeAmount: group.map((x) => parseFloat(x.netAmount || 0, 10)).reduce((a, b) => a + b, 0).toFixed(2),\r\n ratedWeightAmount: group.map((x) => parseFloat(x.billedWeight || 0, 10)).reduce((a, b) => a + b, 0).toFixed(2),\r\n totalDiscountAmount: group.map((x) => parseFloat(x.incentiveAmount || 0, 10)).reduce((a, b) => a + b, 0).toFixed(2),\r\n divisor: calculateDiscountPercentage(group)\r\n })));\r\n setBidItems(_.sortBy(res, ['trackingNumber', 'invoiceDate', 'serviceType']));\r\n } else {\r\n // transportation charge sum is -> Gross Amount\r\n // net charge sum is -> Net Amount\r\n // discount is the sum of the negative numbers -> totalDiscountAmount\r\n // BM % comes from benchmark page for both UPS and FedEx\r\n // Sum of old savings and sum of variance\r\n handleInvoice(groupedByServiceType, benchms, 'FedEx');\r\n setUniqueServiceTypes(_.map(groupedByServiceType, (group, serviceType) => ({\r\n name: serviceType || '-',\r\n count: group.length,\r\n incentiveAmount: group.map((x) => parseFloat(x.incentiveAmount || 0, 10)).reduce((a, b) => a + b, 0).toFixed(2),\r\n gross: group.map((x) => parseFloat(x.gross || 0, 10)).reduce((a, b) => a + b, 0).toFixed(2),\r\n totalCharge: group.map((x) => parseFloat(x.transportationChargeAmount || 0, 10)).reduce((a, b) => a + b, 0).toFixed(2),\r\n netChargeAmount: group.map((x) => parseFloat(x.netChargeAmount || 0, 10)).reduce((a, b) => a + b, 0).toFixed(2),\r\n ratedWeightAmount: group.map((x) => parseFloat(x.ratedWeightAmount || 0, 10)).reduce((a, b) => a + b, 0).toFixed(2),\r\n totalDiscountAmount: _.flatten(group.map((x) => (\r\n [convertToFloat(x.trackingIdChargeAmount1), convertToFloat(x.trackingIdChargeAmount2), convertToFloat(x.trackingIdChargeAmount3), convertToFloat(x.trackingIdChargeAmount4), convertToFloat(x.trackingIdChargeAmount5),\r\n convertToFloat(x.trackingIdChargeAmount6), convertToFloat(x.trackingIdChargeAmount7), convertToFloat(x.trackingIdChargeAmount8), convertToFloat(x.trackingIdChargeAmount9), convertToFloat(x.trackingIdChargeAmount10),\r\n convertToFloat(x.trackingIdChargeAmount11), convertToFloat(x.trackingIdChargeAmount12), convertToFloat(x.trackingIdChargeAmount13), convertToFloat(x.trackingIdChargeAmount14), convertToFloat(x.trackingIdChargeAmount15),\r\n convertToFloat(x.trackingIdChargeAmount16), convertToFloat(x.trackingIdChargeAmount17), convertToFloat(x.trackingIdChargeAmount18), convertToFloat(x.trackingIdChargeAmount19), convertToFloat(x.trackingIdChargeAmount20)\r\n ]))).filter((x) => x < 0).reduce((a, b) => a + b, 0)\r\n })));\r\n setBidItems(_.sortBy(res, ['trackingNumber', 'invoiceDate', 'serviceType']));\r\n }\r\n } catch (error) {\r\n showAlert({ text: error.message, state: 'error' });\r\n }\r\n };\r\n\r\n const calculateDiscountPercentage = (group) => {\r\n const incentiveAmount_AZ = group.map((x) => parseFloat(x.incentiveAmount || 0, 10)).reduce((a, b) => a + b, 0);\r\n const netAmount_BA = group.map((x) => parseFloat(x.netAmount || 0, 10)).reduce((a, b) => a + b, 0);\r\n\r\n const divisor = (incentiveAmount_AZ + netAmount_BA);\r\n if (divisor === 0) return 0;\r\n const discount = incentiveAmount_AZ / divisor;\r\n const discountPercentage = (discount * 100).toFixed(2);\r\n\r\n return discountPercentage;\r\n };\r\n\r\n const convertToFloat = (amount) => parseFloat(amount || 0, 10);\r\n\r\n const fetchClients = async () => {\r\n try {\r\n const res = await clientService.getAll();\r\n setClients(res.map((option) => (helper.setToOptionModel(option.name, option.id))));\r\n } catch (error) {\r\n showAlert({ text: error.message, state: 'error' });\r\n }\r\n };\r\n\r\n const formik = useFormik({\r\n initialValues: bid,\r\n validationSchema: Yup.object().shape({\r\n id: Yup.number(),\r\n isActive: Yup.bool(),\r\n clientId: Yup.number().required('Name is required').nullable(),\r\n client: Yup.string().nullable(),\r\n type: Yup.string().required().nullable(),\r\n }),\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n if (bidId) {\r\n updateBid(values);\r\n } else {\r\n createBid(values);\r\n }\r\n },\r\n });\r\n\r\n const updateBid = (model) => {\r\n setIsLoading(true);\r\n bidService.update(model).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const createBid = (model) => {\r\n setIsLoading(true);\r\n\r\n bidService.create(model).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n history.push(`/admin/management/bid/${res.id}`);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const bidItemColumns = [\r\n {\r\n label: 'Invoice Number',\r\n name: 'invoiceNumber',\r\n options: { display: false }\r\n },\r\n {\r\n label: 'Tracking #',\r\n name: 'trackingNumber',\r\n minWidth: 180\r\n },\r\n {\r\n label: 'Invoice Date',\r\n name: 'invoiceDate',\r\n minWidth: 140\r\n },\r\n {\r\n label: 'Service Type',\r\n name: 'serviceType',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 140\r\n },\r\n {\r\n label: 'Total Transportation Charge Amount',\r\n name: 'transportationChargeAmount',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 140\r\n },\r\n {\r\n label: 'Net Charge Amount',\r\n name: 'netChargeAmount',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 140\r\n },\r\n {\r\n label: 'Entered Weight',\r\n name: 'enteredWeight',\r\n options: { display: bid.type === 'UPS' },\r\n minWidth: 70\r\n },\r\n {\r\n label: 'Billed Weight',\r\n name: 'billedWeight',\r\n options: { display: bid.type === 'UPS' },\r\n minWidth: 70\r\n },\r\n {\r\n label: 'Zone',\r\n name: 'zone',\r\n options: { display: bid.type === 'UPS' },\r\n minWidth: 40\r\n },\r\n {\r\n label: 'Charge Description',\r\n name: 'chargeDescription',\r\n options: { display: bid.type === 'UPS' },\r\n minWidth: 240\r\n },\r\n {\r\n label: 'Basis Value',\r\n name: 'basisValue',\r\n options: { display: bid.type === 'UPS' },\r\n minWidth: 60\r\n },\r\n {\r\n label: 'Incentive Amount',\r\n name: 'incentiveAmount',\r\n options: { display: bid.type === 'UPS' },\r\n minWidth: 60\r\n },\r\n {\r\n label: 'Net Amount',\r\n name: 'netAmount',\r\n options: { display: bid.type === 'UPS' },\r\n minWidth: 60\r\n },\r\n {\r\n label: 'Gross',\r\n name: 'gross',\r\n options: { display: bid.type === 'UPS' },\r\n minWidth: 60\r\n },\r\n {\r\n label: 'Actual Weight Amount',\r\n name: 'actualWeightAmount',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 70\r\n },\r\n {\r\n label: 'Rated Weight Amount',\r\n name: 'ratedWeightAmount',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 70\r\n },\r\n {\r\n label: 'Length',\r\n name: 'length',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 70\r\n },\r\n {\r\n label: 'Width',\r\n name: 'width',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 70\r\n },\r\n {\r\n label: 'Height',\r\n name: 'height',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 70\r\n },\r\n {\r\n label: 'Divisor',\r\n name: 'divisor',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 70\r\n },\r\n {\r\n label: 'Zone Code',\r\n name: 'zoneCode',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 70\r\n },\r\n {\r\n label: 'Multiweight Number',\r\n name: 'multiWeightNumber',\r\n minWidth: 80,\r\n options: {\r\n display: bid.type === 'FedEX',\r\n customBodyRenderLite: (dataIndex, rowIndex, rowData) => {\r\n const multiWeightNumber = rowData?.original?.multiWeightNumber;\r\n if (multiWeightNumber && parseInt(multiWeightNumber.value, 10) > 0) {\r\n return ;\r\n }\r\n return null;\r\n }\r\n },\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription1',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount1',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription2',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount2',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription3',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount3',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription4',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount4',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription5',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount5',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription6',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount6',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription7',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount7',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription8',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount8',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription9',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount9',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription9',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount9',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription10',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount10',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription11',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount11',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription12',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount12',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription13',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount13',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription14',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount14',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription15',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount15',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription16',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount16',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription17',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount17',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription18',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount18',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription19',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount19',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n },\r\n {\r\n label: 'Tracking ID Charge Description',\r\n name: 'trackingIdChargeDescription20',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 200,\r\n },\r\n {\r\n label: 'Tracking ID Charge Amount',\r\n name: 'trackingIdChargeAmount20',\r\n options: { display: bid.type === 'FedEX' },\r\n minWidth: 100,\r\n }\r\n ];\r\n\r\n const bidItemColumnsReactTable = [\r\n {\r\n Header: 'Invoice Number',\r\n accessor: 'invoiceNumber',\r\n show: false\r\n },\r\n {\r\n Header: 'Tracking #',\r\n accessor: 'trackingNumber',\r\n minWidth: 180\r\n },\r\n {\r\n Header: 'Invoice Date',\r\n accessor: 'invoiceDate',\r\n minWidth: 140\r\n },\r\n {\r\n Header: 'Service Type',\r\n accessor: 'serviceType',\r\n show: bid.type === 'FedEX',\r\n minWidth: 140\r\n },\r\n {\r\n Header: 'Total Transportation Charge Amount',\r\n accessor: 'transportationChargeAmount',\r\n show: bid.type === 'FedEX',\r\n minWidth: 140\r\n },\r\n {\r\n Header: 'Net Charge Amount',\r\n accessor: 'netChargeAmount',\r\n show: bid.type === 'FedEX',\r\n minWidth: 140\r\n },\r\n {\r\n Header: 'Entered Weight',\r\n accessor: 'enteredWeight',\r\n show: bid.type === 'UPS',\r\n minWidth: 70\r\n },\r\n {\r\n Header: 'Billed Weight',\r\n accessor: 'billedWeight',\r\n show: bid.type === 'UPS',\r\n minWidth: 70\r\n },\r\n {\r\n Header: 'Zone',\r\n accessor: 'zone',\r\n show: bid.type === 'UPS',\r\n minWidth: 40\r\n },\r\n {\r\n Header: 'Charge Description',\r\n accessor: 'chargeDescription',\r\n show: bid.type === 'UPS',\r\n minWidth: 240\r\n },\r\n {\r\n Header: 'Basis Value',\r\n accessor: 'basisValue',\r\n show: bid.type === 'UPS',\r\n minWidth: 60\r\n },\r\n {\r\n Header: 'Incentive Amount',\r\n accessor: 'incentiveAmount',\r\n show: bid.type === 'UPS',\r\n minWidth: 60\r\n },\r\n {\r\n Header: 'Net Amount',\r\n accessor: 'netAmount',\r\n show: bid.type === 'UPS',\r\n minWidth: 60\r\n },\r\n {\r\n Header: 'Gross',\r\n accessor: 'gross',\r\n show: bid.type === 'UPS',\r\n minWidth: 60\r\n },\r\n {\r\n Header: 'Actual Weight Amount',\r\n accessor: 'actualWeightAmount',\r\n show: bid.type === 'FedEX',\r\n minWidth: 70\r\n },\r\n {\r\n Header: 'Rated Weight Amount',\r\n accessor: 'ratedWeightAmount',\r\n show: bid.type === 'FedEX',\r\n minWidth: 70\r\n },\r\n {\r\n Header: 'Length',\r\n accessor: 'length',\r\n show: bid.type === 'FedEX',\r\n minWidth: 70\r\n },\r\n {\r\n Header: 'Width',\r\n accessor: 'width',\r\n show: bid.type === 'FedEX',\r\n minWidth: 70\r\n },\r\n {\r\n Header: 'Height',\r\n accessor: 'height',\r\n show: bid.type === 'FedEX',\r\n minWidth: 70\r\n },\r\n {\r\n Header: 'Divisor',\r\n accessor: 'divisor',\r\n show: bid.type === 'FedEX',\r\n minWidth: 70\r\n },\r\n {\r\n Header: 'Zone Code',\r\n accessor: 'zoneCode',\r\n show: bid.type === 'FedEX',\r\n minWidth: 70\r\n },\r\n {\r\n Header: 'Multiweight Number',\r\n accessor: 'multiWeightNumber',\r\n show: bid.type === 'FedEX',\r\n minWidth: 80,\r\n Cell: (cellProps) => {\r\n const { original } = cellProps;\r\n\r\n return (\r\n

{parseInt(original.multiWeightNumber, 10) > 0 ? : ''}

\r\n );\r\n }\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription1',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount1',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription2',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount2',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription3',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount3',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription4',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount4',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription5',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount5',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription6',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount6',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription7',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount7',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription8',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount8',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription9',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount9',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription9',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount9',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription10',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount10',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription11',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount11',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription12',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount12',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription13',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount13',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription14',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount14',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription15',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount15',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription16',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount16',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription17',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount17',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription18',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount18',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription19',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount19',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Description',\r\n accessor: 'trackingIdChargeDescription20',\r\n show: bid.type === 'FedEX',\r\n minWidth: 200,\r\n },\r\n {\r\n Header: 'Tracking ID Charge Amount',\r\n accessor: 'trackingIdChargeAmount20',\r\n show: bid.type === 'FedEX',\r\n minWidth: 100,\r\n }\r\n ];\r\n\r\n const handleModalClose = () => {\r\n setIsModalOpen(false);\r\n setExcelFileUpload([]);\r\n };\r\n\r\n const handleDownloadInvoice = () => {\r\n const formattedInvoice = invoiceData.map((item) => ({\r\n 'Label': item.name,\r\n 'Sum Of Gross': item.gross,\r\n 'Sum Of Incentive Amount': item.sumOfIncentiveAmount,\r\n 'Sum Of Net Amount': item.netChargeAmount,\r\n 'BM %': item.bmPercentage,\r\n 'Sum Of Old Savings': item.bmAmount,\r\n 'Sum Of Variance': item.sumOfVariance,\r\n }));\r\n const workbook = XLSX.utils.book_new();\r\n\r\n const defaultColWidth = 20;\r\n const wscols = [];\r\n for (let i = 1; i < 10; i += 1) {\r\n wscols.push({ wch: defaultColWidth });\r\n }\r\n\r\n const worksheet = XLSX.utils.json_to_sheet(formattedInvoice);\r\n worksheet['!cols'] = wscols; // Set column widths\r\n // Append the worksheet to the workbook\r\n XLSX.utils.book_append_sheet(workbook, worksheet, 'Invoice');\r\n\r\n // Generate a binary string representation of the workbook\r\n const workbookBinary = XLSX.write(workbook, { bookType: 'xlsx', type: 'binary' });\r\n\r\n // Convert the binary string to a Blob\r\n const blob = new Blob([s2ab(workbookBinary)], { type: 'application/octet-stream' });\r\n\r\n // Create a link element and trigger a download\r\n const link = document.createElement('a');\r\n link.href = URL.createObjectURL(blob);\r\n link.download = `Invoice_${bid.id}.xlsx`;\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n };\r\n\r\n const s2ab = (s) => {\r\n const buf = new ArrayBuffer(s.length);\r\n const view = new Uint8Array(buf);\r\n for (let i = 0; i < s.length; i += 1) {\r\n // eslint-disable-next-line no-bitwise\r\n view[i] = s.charCodeAt(i) & 0xFF;\r\n }\r\n return buf;\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n\r\n {/* CONTENT DETAILS */}\r\n \r\n \r\n \r\n \r\n\r\n \r\n {\r\n formik.setFieldValue('client', opt ? opt.label : '');\r\n formik.setFieldValue('clientId', opt ? opt.value : '');\r\n }}\r\n />\r\n \r\n\r\n \r\n helper.setToOptionModel(x, x))}\r\n isRequired\r\n errorMessage={formik.errors.type}\r\n inputState={bidId ? 'disabled' : `${helper.getInputClasses(formik, 'type')}`}\r\n value={\r\n formik.values.type\r\n ? helper.setToOptionModel(formik.values.type, formik.values.type)\r\n : null\r\n }\r\n onChange={(opt) => {\r\n formik.setFieldValue('type', opt ? opt.label : '');\r\n }}\r\n />\r\n \r\n
\r\n\r\n {/* INVOICE SECTION */}\r\n \r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n >\r\n \r\n }\r\n primaryButtonOnClick={() => handleDownloadInvoice()}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Label\r\n Sum Of Gross\r\n Sum Of Incentive Amount\r\n Sum Of Net Amount\r\n BM %\r\n Sum Of Old Savings\r\n Sum Of Variance\r\n \r\n \r\n \r\n {\r\n invoiceData.sort((a, b) => a.name.localeCompare(b.name)).map((data) => (\r\n \r\n {data.name !== 'null' ? data.name : ' - '}\r\n {`$${parseFloat(data.gross || 0)?.toFixed(2)}`}\r\n {`$${parseFloat(data.sumOfIncentiveAmount || 0)?.toFixed(2)}`}\r\n {`$${parseFloat(data.netChargeAmount || 0)?.toFixed(2)}`}\r\n \r\n {`${(data.bmPercentage || 0).toFixed(2)}%`}\r\n \r\n {data.sumOfOldSavings}\r\n {data.sumOfVariance}\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 {/* PARCEL ANALYSIS */}\r\n {bidItems?.length > 0 && (\r\n \r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n >\r\n \r\n }\r\n primaryButtonText={bidItems.length > 0 ? 'View Report' : ''}\r\n primaryButtonOnClick={() => {\r\n history.push('/bid/report', { uniqueServiceTypes, bid, type: formik.values.type });\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n {\r\n bid.type !== 'UPS' ? (\r\n // FED EX Table\r\n \r\n \r\n \r\n \r\n Service Type\r\n Occurance\r\n Rated Weight\r\n Transportation Charge Amount\r\n Net Charge Amount\r\n Discount Amount\r\n Discount %\r\n Total Accessorial Charges\r\n \r\n \r\n \r\n {\r\n uniqueServiceTypes.map((data) => (\r\n \r\n {data.name !== 'null' ? data.name : ' - '}\r\n {data.count}\r\n {`${data.ratedWeightAmount}`}\r\n {`$${data.totalCharge}`}\r\n {`$${data.netChargeAmount}`}\r\n {`$${(Math.abs(data.totalDiscountAmount)).toFixed(2)}`}\r\n {`${(Math.abs(data.totalDiscountAmount) / Math.abs(data.totalCharge)).toFixed(3)}% (${((Math.abs(data.totalDiscountAmount) / Math.abs(data.totalCharge)).toFixed(3) * 100).toFixed(1)}%)`}\r\n {`$${(data.netChargeAmount - (data.totalCharge - Math.abs(data.totalDiscountAmount))).toFixed(2)}`}\r\n \r\n ))\r\n }\r\n \r\n Total\r\n {' '}\r\n \r\n {bid.totalRatedWeight}\r\n \r\n \r\n $\r\n {bid.totalTransportationCharge}\r\n \r\n \r\n $\r\n {bid.totalNetCharge}\r\n \r\n \r\n

\r\n $\r\n {Math.abs(uniqueServiceTypes.map((x) => x.totalDiscountAmount).reduce((a, b) => parseFloat(a) + parseFloat(b), 0).toFixed(2))}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n ) : (\r\n <>\r\n {/* UPS Transportation Charge Table */}\r\n \r\n \r\n \r\n \r\n Transportation Charge\r\n Occurance\r\n Rated Weight\r\n Net Charge Amount\r\n Discount Amount\r\n Discount %\r\n Gross Amount\r\n \r\n \r\n \r\n {\r\n uniqueServiceTypes.filter((x) => (x.ratedWeightAmount > 0)).map((data) => (\r\n \r\n {data.name !== 'null' ? data.name : ' - '}\r\n {data.count}\r\n {`${data.ratedWeightAmount}`}\r\n {`$${data.netChargeAmount}`}\r\n {`$${(Math.abs(data.totalDiscountAmount)).toFixed(2)}`}\r\n \r\n {`${parseFloat(data.divisor).toFixed(2)}%`}\r\n \r\n \r\n {`$${(data.netChargeAmount - (data.totalCharge - Math.abs(data.totalDiscountAmount))).toFixed(2)}`}\r\n \r\n \r\n ))\r\n }\r\n \r\n Total\r\n {' '}\r\n \r\n {bid.totalRatedWeight}\r\n \r\n \r\n $\r\n {\r\n uniqueServiceTypes.filter((x) => x.ratedWeightAmount > 0).map((x) => parseFloat(x.netChargeAmount).toFixed(2)).reduce((a, b) => parseFloat(a) + parseFloat(b), 0).toFixed(2)\r\n }\r\n \r\n \r\n $\r\n {\r\n uniqueServiceTypes.filter((x) => x.ratedWeightAmount > 0).map((x) => Math.abs(parseFloat(x.totalDiscountAmount)).toFixed(2)).reduce((a, b) => parseFloat(a) + parseFloat(b), 0).toFixed(2)\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* Accessorial Charge Table */}\r\n \r\n \r\n \r\n \r\n Accessorial Charge\r\n Occurance\r\n Net Charge Amount\r\n Discount Amount\r\n Discount %\r\n Gross Amount\r\n \r\n \r\n \r\n {\r\n uniqueServiceTypes.filter((x) => (x.ratedWeightAmount <= 0)).map((data) => (\r\n \r\n {data.name !== 'null' ? data.name : ' - '}\r\n {data.count}\r\n {`$${data.netChargeAmount}`}\r\n {`$${(Math.abs(data.totalDiscountAmount)).toFixed(2)}`}\r\n \r\n {`${parseFloat(data.divisor).toFixed(2)}%`}\r\n \r\n \r\n {`$${(data.netChargeAmount - (data.totalCharge - Math.abs(data.totalDiscountAmount))).toFixed(2)}`}\r\n \r\n \r\n ))\r\n }\r\n \r\n Total\r\n {' '}\r\n \r\n $\r\n {\r\n uniqueServiceTypes.filter((x) => x.ratedWeightAmount <= 0).map((x) => parseFloat(x.netChargeAmount)).reduce((a, b) => parseFloat(a) + parseFloat(b), 0)\r\n ?.toFixed(2)\r\n }\r\n \r\n \r\n $\r\n {\r\n uniqueServiceTypes.filter((x) => x.ratedWeightAmount <= 0).map((x) => Math.abs(parseFloat(x.totalDiscountAmount))).reduce((a, b) => parseFloat(a) + parseFloat(b), 0)?.toFixed(2)\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n\r\n {/* PARCEL BREAKDOWN */}\r\n {bidId > 0 && (\r\n \r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n >\r\n \r\n }\r\n primaryButtonText={bidItems.length > 0 ? '' : 'Add Analysis'}\r\n primaryButtonOnClick={() => setIsModalOpen(true)}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n \r\n \r\n \r\n
\r\n\r\n 0 ? 'Save Changes' : 'Create Analysis'}\r\n primaryActionColor=\"primary--bg\"\r\n primaryActionOnClick={formik.handleSubmit}\r\n secondaryActionText=\"Cancel\"\r\n secondaryActionTo=\"/admin/management/parcel-shipping-analysis\"\r\n optionalActionText={bidId > 0 ? 'Return to Listing' : ''}\r\n optionalActionTo=\"/admin/management/parcel-shipping-analysis\"\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\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(\r\n mapStateFromProps,\r\n {\r\n ...auth.actions,\r\n ...alert.actions\r\n }\r\n)(BidManagementPage);","/* eslint-disable max-len */\r\n/* eslint-disable jsx-quotes */\r\n/* eslint-disable quotes */\r\n/* eslint-disable no-unused-vars */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\n// COMPONENTS\r\nimport {\r\n Document,\r\n Page,\r\n StyleSheet,\r\n Text,\r\n View,\r\n PDFViewer,\r\n Image,\r\n} from '@react-pdf/renderer';\r\n// LOGO\r\nimport Logo from '../../../../assets/client/logo.png';\r\n\r\nconst columnHeaders = [\r\n 'Service Type',\r\n 'Occurrence',\r\n 'Rated Weight',\r\n 'Transportation Charge Amount',\r\n 'Net Charge Amount',\r\n 'Discount Amount',\r\n 'Discount %',\r\n 'Total Accessorial Charges',\r\n];\r\n\r\nconst upsFirstTableColumnHeaders = [\r\n 'Transportation Charge',\r\n 'Occurance',\r\n 'Rated Weight',\r\n 'Net Charge Amount',\r\n 'Discount Amount',\r\n 'Discount %',\r\n 'Gross Amount'\r\n];\r\n\r\nconst upsSecondTableColumnHeaders = [\r\n 'Accessorial Charge',\r\n 'Occurance',\r\n 'Net Charge Amount',\r\n 'Discount Amount',\r\n 'Discount %',\r\n 'Gross Amount'\r\n];\r\n\r\nconst headerStyles = StyleSheet.create({\r\n header: {\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n marginBottom: 10,\r\n },\r\n logo: {\r\n width: 200,\r\n height: 'auto',\r\n marginBottom: 5,\r\n marginRight: 740\r\n },\r\n companyName: {\r\n fontSize: 24,\r\n marginRight: 100,\r\n marginBottom: 10,\r\n marginTop: -50,\r\n fontWeight: 'bolder',\r\n },\r\n});\r\n\r\nconst Header = () => (\r\n \r\n \r\n \r\n Transport Logics\r\n Parcel Shipping Analysis Report\r\n \r\n \r\n);\r\n\r\nconst BidReportPage = (props) => {\r\n const { history } = props;\r\n // console.log(history.location.state);\r\n const { uniqueServiceTypes, bid, type } = history.location.state;\r\n\r\n const styles = StyleSheet.create({\r\n page: {\r\n flexDirection: 'row',\r\n backgroundColor: '#E4E4E4',\r\n padding: 10,\r\n },\r\n section: {\r\n margin: 10,\r\n padding: 10,\r\n flexGrow: 1,\r\n },\r\n\r\n reportText: {\r\n fontSize: 16,\r\n marginLeft: 5,\r\n fontWeight: 800,\r\n },\r\n table: {\r\n marginTop: 15,\r\n display: 'table',\r\n width: type === 'UPS' ? 1100 : 975,\r\n borderStyle: 'solid',\r\n borderWidth: 'auto',\r\n borderLeft: 1,\r\n borderTop: 1,\r\n borderTopWidth: 0,\r\n borderRightWidth: 0,\r\n borderBottomWidth: 0,\r\n },\r\n tableRow: { flexDirection: 'row' },\r\n tableCell: {\r\n width: '10%', // 7 columns, each taking 14.28% width\r\n height: 60,\r\n borderStyle: 'solid',\r\n borderWidth: 1,\r\n borderLeftWidth: 0,\r\n borderTopWidth: 1,\r\n // padding: 5,\r\n textAlign: 'center', // Center align text in all cells\r\n fontWeight: 'bold', // Bold font for header cells\r\n },\r\n columnHeader: {\r\n backgroundColor: '#0162a8', // Background color of column headers\r\n color: '#FFFFFF', // Text color of column headers\r\n textDecoration: 'none',\r\n },\r\n cellText: { fontSize: 12 }, // Smaller font size\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {/* HEADER */}\r\n
\r\n {/* TABLE */}\r\n {\r\n type !== 'UPS' ? (\r\n \r\n \r\n {columnHeaders.map((header, index) => (\r\n \r\n {header}\r\n \r\n ))}\r\n \r\n {\r\n uniqueServiceTypes.map((data) => (\r\n \r\n \r\n {data.name !== 'null' ? data.name : ' - '}\r\n \r\n \r\n {data.count}\r\n \r\n \r\n {data.ratedWeightAmount}\r\n \r\n \r\n {`$${data.totalCharge}`}\r\n \r\n \r\n {`$${data.netChargeAmount}`}\r\n \r\n \r\n {`$${(Math.abs(data.totalDiscountAmount)).toFixed(2)}`}\r\n \r\n \r\n {`${(Math.abs(data.totalDiscountAmount) / Math.abs(data.totalCharge)).toFixed(3)}% (${((Math.abs(data.totalDiscountAmount) / Math.abs(data.totalCharge)).toFixed(3) * 100).toFixed(1)}%)`}\r\n \r\n \r\n {`$${(data.netChargeAmount - (data.totalCharge - Math.abs(data.totalDiscountAmount))).toFixed(2)}`}\r\n \r\n \r\n ))\r\n }\r\n\r\n \r\n \r\n Total\r\n \r\n \r\n \r\n \r\n {bid.totalRatedWeight}\r\n \r\n \r\n \r\n \r\n $\r\n {bid.totalTransportationCharge}\r\n \r\n \r\n \r\n \r\n $\r\n {bid.totalNetCharge}\r\n \r\n \r\n \r\n \r\n $\r\n {(bid.totalTransportationCharge - bid.totalNetCharge).toFixed(2)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n {upsFirstTableColumnHeaders.map((header, index) => (\r\n \r\n {header}\r\n \r\n ))}\r\n \r\n {\r\n uniqueServiceTypes.filter((x) => (x.ratedWeightAmount > 0)).map((data) => (\r\n \r\n \r\n {data.name !== 'null' ? data.name : ' - '}\r\n \r\n \r\n {data.count}\r\n \r\n \r\n {data.ratedWeightAmount}\r\n \r\n \r\n {`$${data.netChargeAmount}`}\r\n \r\n \r\n {`$${(Math.abs(data.totalDiscountAmount)).toFixed(2)}`}\r\n \r\n \r\n {`${parseFloat(data.divisor).toFixed(2)}%`}\r\n \r\n \r\n {`$${(data.netChargeAmount - (data.totalCharge - Math.abs(data.totalDiscountAmount))).toFixed(2)}`}\r\n \r\n \r\n ))\r\n }\r\n \r\n \r\n Total\r\n \r\n \r\n \r\n \r\n {bid.totalRatedWeight}\r\n \r\n \r\n \r\n \r\n $\r\n {\r\n uniqueServiceTypes.filter((x) => x.ratedWeightAmount > 0).map((x) => parseFloat(x.netChargeAmount).toFixed(2)).reduce((a, b) => parseFloat(a) + parseFloat(b), 0).toFixed(2)\r\n }\r\n \r\n \r\n \r\n \r\n $\r\n {\r\n uniqueServiceTypes.filter((x) => x.ratedWeightAmount > 0).map((x) => Math.abs(parseFloat(x.totalDiscountAmount)).toFixed(2)).reduce((a, b) => parseFloat(a) + parseFloat(b), 0).toFixed(2)\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {upsSecondTableColumnHeaders.map((header, index) => (\r\n \r\n {header}\r\n \r\n ))}\r\n \r\n {\r\n uniqueServiceTypes.filter((x) => (x.ratedWeightAmount <= 0)).map((data) => (\r\n \r\n \r\n {data.name !== 'null' ? data.name : ' - '}\r\n \r\n \r\n {data.count}\r\n \r\n \r\n {`$${data.netChargeAmount}`}\r\n \r\n \r\n {`$${(Math.abs(data.totalDiscountAmount)).toFixed(2)}`}\r\n \r\n \r\n {`${parseFloat(data.divisor).toFixed(2)}%`}\r\n \r\n \r\n {`$${(data.netChargeAmount - (data.totalCharge - Math.abs(data.totalDiscountAmount))).toFixed(2)}`}\r\n \r\n \r\n ))\r\n }\r\n \r\n \r\n Total\r\n \r\n \r\n \r\n \r\n $\r\n {\r\n uniqueServiceTypes.filter((x) => x.ratedWeightAmount <= 0).map((x) => parseFloat(x.netChargeAmount)).reduce((a, b) => parseFloat(a) + parseFloat(b), 0)\r\n }\r\n \r\n \r\n \r\n \r\n $\r\n {\r\n uniqueServiceTypes.filter((x) => x.ratedWeightAmount <= 0).map((x) => Math.abs(parseFloat(x.totalDiscountAmount))).reduce((a, b) => parseFloat(a) + parseFloat(b), 0)?.toFixed(2)\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BidReportPage;","export default \"data:image/png;base64,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\"","/* eslint-disable no-unused-vars */\r\n/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable camelcase */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable max-len */\r\n/* eslint-disable no-shadow */\r\n/* eslint-disable no-param-reassign */\r\n// DEPENDENCIES\r\nimport React, { useEffect, useState } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport * as Yup from 'yup';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useFormik } from 'formik';\r\nimport * as _ from 'lodash';\r\n// COMPONENTS\r\nimport Tab from 'react-bootstrap/Tab';\r\nimport Tabs from 'react-bootstrap/Tabs';\r\nimport Table from 'react-bootstrap/Table';\r\n// ICONS\r\nimport {\r\n TbPercentage, TbCurrencyDollar, TbPlus\r\n} from 'react-icons/tb';\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport FormBlock from '../../../../components/FormBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport InputBlock from '../../../../components/InputBlock';\r\nimport SelectBlock from '../../../../components/SelectBlock';\r\nimport Overlay from '../../../../components/Overlay';\r\nimport ModalBlock from '../../../../components/ModalBlock';\r\nimport FixedActionsBar from '../../../../components/FixedActionsBar';\r\n// HELPERS AND SERVICES\r\nimport * as helper from '../../../../helpers/helper';\r\nimport * as benchmarkService from '../../../../services/management/benchmarkService';\r\nimport * as bidService from '../../../../services/management/bidService';\r\n// REDUX\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as auth from '../../../../redux/authRedux';\r\n\r\nconst BenchmarkPage = (params) => {\r\n const { showAlert } = params;\r\n const { clientId } = useParams();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isModalVisible, setIsModalVisible] = useState(false);\r\n const initialBenchmark = {\r\n id: 0, clientId, name: '', min: null, bm: null, chargeType: null\r\n };\r\n const [benchmark, setBenchmark] = useState(initialBenchmark);\r\n const [benchmarks, setBenchmarks] = useState([]);\r\n const initialGroupModel = {\r\n id: 0, group: '', benchmarkId: 0, min: '', bm: '', benchmarkName: ''\r\n };\r\n const [groupModel, setGroupModel] = useState(initialGroupModel);\r\n const [isNewBenchmarkModalOpen, setIsNewBenchmarkModalOpen] = useState(false);\r\n const [type, setType] = useState('ups');\r\n\r\n useEffect(() => {\r\n fetchBenchmarks();\r\n }, []);\r\n\r\n const fetchBenchmarks = async () => {\r\n setIsLoading(true);\r\n try {\r\n const res = await benchmarkService.getAll(clientId);\r\n\r\n setFedexTransportationCharges([...fedexTransportationCharges, ...res.filter((x) => x.chargeType === 'Transportation' && x.type === 'fedex').map((x) => ({ ...x, minCharge: x.min, benchmarkDiscount: x.bm }))]);\r\n setFedexAccessorialCharge([...fedexAccessorialCharge, ...res.filter((x) => x.chargeType === 'Accessorial' && x.type === 'fedex').map((x) => ({ ...x, minCharge: x.min, benchmarkDiscount: x.bm }))]);\r\n setUpsBMTransportationCharges([...upsBMTransportationCharges, ...res.filter((x) => x.chargeType === 'Transportation' && x.type === 'ups').map((x) => ({ ...x, minCharge: x.min, benchmarkDiscount: x.bm }))]);\r\n setUpsAccessorialCharges([...upsAccessorialCharges, ...res.filter((x) => x.chargeType === 'Accessorial' && x.type === 'ups').map((x) => ({ ...x, minCharge: x.min, benchmarkDiscount: x.bm }))]);\r\n setBenchmarks(res);\r\n } catch (ex) {\r\n showAlert({ text: ex.message, state: 'error' });\r\n } finally {\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n const [upsBMTransportationCharges, setUpsBMTransportationCharges] = useState([\r\n { id: 1, name: '2nd Day Air A.M. Commercial Collect', minCharge: '', benchmarkDiscount: '' },\r\n { id: 2, name: '2nd Day Air Commercial', minCharge: '', benchmarkDiscount: '' },\r\n { id: 3, name: '2nd Day Air Commercial Third Party', minCharge: '', benchmarkDiscount: '' },\r\n { id: 4, name: '2nd Day Air Residential', minCharge: '', benchmarkDiscount: '' },\r\n { id: 5, name: '2nd Day Air Residential Third Party', minCharge: '', benchmarkDiscount: '' },\r\n { id: 6, name: '3 Day Select Commercial', minCharge: '', benchmarkDiscount: '' },\r\n { id: 7, name: '3 Day Select Commercial Collect', minCharge: '', benchmarkDiscount: '' },\r\n { id: 8, name: '3 Day Select Commercial Third Party', minCharge: '', benchmarkDiscount: '' },\r\n { id: 9, name: '3 Day Select Residential', minCharge: '', benchmarkDiscount: '' },\r\n { id: 10, name: '3 Day Select Residential Collect', minCharge: '', benchmarkDiscount: '' },\r\n { id: 11, name: '3 Day Select Residential Third Party', minCharge: '', benchmarkDiscount: '' },\r\n { id: 12, name: '3 Day Select Undeliverable Return', minCharge: '', benchmarkDiscount: '' },\r\n { id: 13, name: 'Commercial Adjustment', minCharge: '', benchmarkDiscount: '' },\r\n { id: 14, name: 'Ground Commercial', minCharge: '', benchmarkDiscount: '' },\r\n { id: 15, name: 'Ground Commercial Collect', minCharge: '', benchmarkDiscount: '' },\r\n { id: 16, name: 'Ground Commercial Third Party', minCharge: '', benchmarkDiscount: '' },\r\n { id: 17, name: 'Ground Hundredweight', minCharge: '', benchmarkDiscount: '' },\r\n { id: 18, name: 'Ground Hundredweight Third Party', minCharge: '', benchmarkDiscount: '' },\r\n { id: 19, name: 'Ground Residential', minCharge: '', benchmarkDiscount: '' },\r\n { id: 20, name: 'Ground Residential Collect', minCharge: '', benchmarkDiscount: '' },\r\n { id: 21, name: 'Ground Residential Third Party', minCharge: '', benchmarkDiscount: '' },\r\n { id: 22, name: 'Ground Return to Sender Third Party', minCharge: '', benchmarkDiscount: '' },\r\n { id: 23, name: 'Ground Undeliverable Return', minCharge: '', benchmarkDiscount: '' },\r\n { id: 24, name: 'GSR Next Day Air Commercial', minCharge: '', benchmarkDiscount: '' },\r\n { id: 25, name: 'Next Day Air Commercial', minCharge: '', benchmarkDiscount: '' },\r\n { id: 26, name: 'Next Day Air Commercial Collect', minCharge: '', benchmarkDiscount: '' },\r\n { id: 27, name: 'Next Day Air Commercial Third Party', minCharge: '', benchmarkDiscount: '' },\r\n { id: 28, name: 'Next Day Air Early Commercial', minCharge: '', benchmarkDiscount: '' },\r\n { id: 29, name: 'Next Day Air Residential', minCharge: '', benchmarkDiscount: '' },\r\n { id: 30, name: 'Next Day Air Residential Third Party', minCharge: '', benchmarkDiscount: '' },\r\n { id: 31, name: 'Next Day Air Saver Commercial', minCharge: '', benchmarkDiscount: '' },\r\n { id: 32, name: 'Next Day Air Saver Residential Third Party', minCharge: '', benchmarkDiscount: '' },\r\n { id: 33, name: 'Not Previously Billed Ground Commercial', minCharge: '', benchmarkDiscount: '' },\r\n { id: 34, name: 'Not Previously Billed Ground Residential', minCharge: '', benchmarkDiscount: '' },\r\n { id: 35, name: 'Not Previously Billed Next Day Air Commercial', minCharge: '', benchmarkDiscount: '' },\r\n { id: 36, name: 'Not Previously Billed Next Day Air Residential', minCharge: '', benchmarkDiscount: '' },\r\n { id: 37, name: 'Residential Adjustment', minCharge: '', benchmarkDiscount: '' },\r\n { id: 38, name: 'Shipping Charge Correction', minCharge: '', benchmarkDiscount: '' },\r\n { id: 39, name: 'Shipping Charge Correction 2nd Day Air', minCharge: '', benchmarkDiscount: '' },\r\n { id: 40, name: 'Shipping Charge Correction 2nd Day Air A.M.', minCharge: '', benchmarkDiscount: '' },\r\n { id: 41, name: 'Shipping Charge Correction 3 Day Select', minCharge: '', benchmarkDiscount: '' },\r\n { id: 42, name: 'Shipping Charge Correction 3 Day Select Undeliverable Return', minCharge: '', benchmarkDiscount: '' },\r\n { id: 43, name: 'Shipping Charge Correction Ground', minCharge: '', benchmarkDiscount: '' },\r\n { id: 44, name: 'Shipping Charge Correction Next Day Air', minCharge: '', benchmarkDiscount: '' },\r\n { id: 45, name: 'Shipping Charge Correction Next Day Air Early', minCharge: '', benchmarkDiscount: '' },\r\n { id: 46, name: 'Shipping Charge Correction Next Day Air Saver', minCharge: '', benchmarkDiscount: '' },\r\n { id: 47, name: 'Worldwide Expedited', minCharge: '', benchmarkDiscount: '' },\r\n { id: 48, name: 'WW Saver', minCharge: '', benchmarkDiscount: '' }\r\n ]);\r\n\r\n const [upsAccessorialCharges, setUpsAccessorialCharges] = useState([\r\n { id: 1, name: 'Additional Handling', minCharge: '', benchmarkDiscount: '' },\r\n { id: 2, name: 'Additional Handling - Length+Girth', minCharge: '', benchmarkDiscount: '' },\r\n { id: 3, name: 'Additional Handling Charge - Package', minCharge: '', benchmarkDiscount: '' },\r\n { id: 4, name: 'Addl. Handling longest side', minCharge: '', benchmarkDiscount: '' },\r\n { id: 5, name: 'Addl. Handling weight', minCharge: '', benchmarkDiscount: '' },\r\n { id: 6, name: 'Address Correction Ground', minCharge: '', benchmarkDiscount: '' },\r\n { id: 7, name: 'Declared Value', minCharge: '', benchmarkDiscount: '' },\r\n { id: 8, name: 'Delivery Area Surcharge', minCharge: '', benchmarkDiscount: '' },\r\n { id: 9, name: 'Delivery Area Surcharge - Extended', minCharge: '', benchmarkDiscount: '' },\r\n { id: 10, name: 'Delivery Area Surcharge - Extended Adjustment', minCharge: '', benchmarkDiscount: '' },\r\n { id: 11, name: 'Demand Surcharge-Addl Handling', minCharge: '', benchmarkDiscount: '' },\r\n { id: 12, name: 'Demand Surcharge-Com', minCharge: '', benchmarkDiscount: '' },\r\n { id: 13, name: 'Dimensional', minCharge: '', benchmarkDiscount: '' },\r\n { id: 14, name: 'Disbursement Fee', minCharge: '', benchmarkDiscount: '' },\r\n { id: 15, name: 'Early Surcharge', minCharge: '', benchmarkDiscount: '' },\r\n { id: 16, name: 'Fuel Surcharge', minCharge: '', benchmarkDiscount: '' },\r\n { id: 17, name: 'Fuel Surcharge Adjustment', minCharge: '', benchmarkDiscount: '' },\r\n { id: 18, name: 'Future Day Pickup - Alternate Address - Web Request', minCharge: '', benchmarkDiscount: '' },\r\n { id: 19, name: 'Future Day Pickup - Web Request', minCharge: '', benchmarkDiscount: '' },\r\n { id: 20, name: 'HazMat Ground Fully Reg', minCharge: '', benchmarkDiscount: '' },\r\n { id: 21, name: 'Late Payment Fee', minCharge: '', benchmarkDiscount: '' },\r\n { id: 22, name: 'Not Previously Billed Additional Handling', minCharge: '', benchmarkDiscount: '' },\r\n { id: 23, name: 'Not Previously Billed Delivery Area Surcharge', minCharge: '', benchmarkDiscount: '' },\r\n { id: 24, name: 'Not Previously Billed Delivery Area Surcharge - Extended', minCharge: '', benchmarkDiscount: '' },\r\n { id: 25, name: 'Not Previously Billed Demand Surcharge-Addl Handling', minCharge: '', benchmarkDiscount: '' },\r\n { id: 26, name: 'Not Previously Billed Fuel Surcharge', minCharge: '', benchmarkDiscount: '' },\r\n { id: 27, name: 'Not Previously Billed Missing PLD Fee', minCharge: '', benchmarkDiscount: '' },\r\n { id: 28, name: 'Not Previously Billed Remote Area Surcharge', minCharge: '', benchmarkDiscount: '' },\r\n { id: 29, name: 'Not Previously Billed Residential Surcharge', minCharge: '', benchmarkDiscount: '' },\r\n { id: 30, name: 'Print Return Label', minCharge: '', benchmarkDiscount: '' },\r\n { id: 31, name: 'Remote Area Surcharge', minCharge: '', benchmarkDiscount: '' },\r\n { id: 32, name: 'Residential', minCharge: '', benchmarkDiscount: '' },\r\n { id: 33, name: 'Residential Surcharge', minCharge: '', benchmarkDiscount: '' },\r\n { id: 34, name: 'Residential Surcharge Adjustment', minCharge: '', benchmarkDiscount: '' },\r\n { id: 35, name: 'Same Day Pickup - Alternate Address - Web Request', minCharge: '', benchmarkDiscount: '' },\r\n { id: 36, name: 'Same Day Pickup - Web Request', minCharge: '', benchmarkDiscount: '' },\r\n { id: 37, name: 'Service Charge', minCharge: '', benchmarkDiscount: '' },\r\n { id: 38, name: 'Shipping Charge Correction Additional Handling', minCharge: '', benchmarkDiscount: '' },\r\n { id: 39, name: 'Shipping Charge Correction Addl. Handling longest side', minCharge: '', benchmarkDiscount: '' },\r\n { id: 40, name: 'Shipping Charge Correction Demand Surcharge-Addl Handling', minCharge: '', benchmarkDiscount: '' },\r\n { id: 41, name: 'Shipping Charge Correction Fuel Surcharge', minCharge: '', benchmarkDiscount: '' },\r\n { id: 42, name: 'Third Party Billing Service', minCharge: '', benchmarkDiscount: '' },\r\n { id: 43, name: 'UPS carbon neutral', minCharge: '', benchmarkDiscount: '' },\r\n { id: 44, name: 'Weekly Service Chg', minCharge: '', benchmarkDiscount: '' }\r\n ]);\r\n\r\n const [fedexAccessorialCharge, setFedexAccessorialCharge] = useState([\r\n { id: 1, name: 'Fuel Surcharge', minCharge: '', benchmarkDiscount: '' },\r\n { id: 2, name: 'AHS - Dimensions', minCharge: '', benchmarkDiscount: '' },\r\n { id: 3, name: 'AHS - Weight', minCharge: '', benchmarkDiscount: '' },\r\n { id: 4, name: 'Courier Pickup Charge', minCharge: '', benchmarkDiscount: '' },\r\n { id: 5, name: 'DAS Comm', minCharge: '', benchmarkDiscount: '' },\r\n { id: 6, name: 'DAS Extended Comm', minCharge: '', benchmarkDiscount: '' },\r\n { id: 7, name: 'DAS Remote Resi', minCharge: '', benchmarkDiscount: '' },\r\n { id: 8, name: 'DAS Resi', minCharge: '', benchmarkDiscount: '' },\r\n { id: 9, name: 'Residential', minCharge: '', benchmarkDiscount: '' },\r\n { id: 10, name: 'Earned Discount', minCharge: '', benchmarkDiscount: '' },\r\n { id: 11, name: 'Discount', minCharge: '', benchmarkDiscount: '' },\r\n { id: 12, name: 'Address Correction', minCharge: '', benchmarkDiscount: '' },\r\n { id: 13, name: 'Direct Signature', minCharge: '', benchmarkDiscount: '' },\r\n { id: 14, name: 'Peak - AHS Charge', minCharge: '', benchmarkDiscount: '' },\r\n { id: 15, name: 'Peak Surcharge', minCharge: '', benchmarkDiscount: '' },\r\n { id: 16, name: 'Performance Pricing', minCharge: '', benchmarkDiscount: '' },\r\n { id: 17, name: 'Saturday Delivery', minCharge: '', benchmarkDiscount: '' },\r\n { id: 18, name: 'Additional Handling', minCharge: '', benchmarkDiscount: '' },\r\n { id: 19, name: 'Oversize Charge', minCharge: '', benchmarkDiscount: '' },\r\n { id: 20, name: 'Tracking ID Charge Description', minCharge: '', benchmarkDiscount: '' },\r\n { id: 21, name: 'Additional Handling Charge - Package', minCharge: '', benchmarkDiscount: '' },\r\n { id: 22, name: 'Disbursement Fee', minCharge: '', benchmarkDiscount: '' },\r\n { id: 23, name: 'Merchandise Processing Fee', minCharge: '', benchmarkDiscount: '' },\r\n { id: 24, name: 'Original VAT', minCharge: '', benchmarkDiscount: '' },\r\n { id: 25, name: 'Customs Duty', minCharge: '', benchmarkDiscount: '' },\r\n { id: 26, name: 'Weekly Service Chg', minCharge: '', benchmarkDiscount: '' },\r\n { id: 27, name: 'Additional Handling Charge - Weight', minCharge: '', benchmarkDiscount: '' }\r\n ]);\r\n\r\n const [fedexTransportationCharges, setFedexTransportationCharges] = useState([\r\n { id: 1, name: 'FedEx 2Day', minCharge: '', benchmarkDiscount: '' },\r\n { id: 2, name: 'FedEx 2Day A.M.', minCharge: '', benchmarkDiscount: '' },\r\n { id: 3, name: 'FedEx 2Day Freight', minCharge: '', benchmarkDiscount: '' },\r\n { id: 4, name: 'FedEx Express Saver', minCharge: '', benchmarkDiscount: '' },\r\n { id: 5, name: 'FedEx FedEx Intl Connect Plus', minCharge: '', benchmarkDiscount: '' },\r\n { id: 6, name: 'FedEx First Overnight', minCharge: '', benchmarkDiscount: '' },\r\n { id: 7, name: 'FedEx International Priority', minCharge: '', benchmarkDiscount: '' },\r\n { id: 8, name: 'FedEx Intl Economy', minCharge: '', benchmarkDiscount: '' },\r\n { id: 9, name: 'FedEx Priority Overnight', minCharge: '', benchmarkDiscount: '' },\r\n { id: 10, name: 'FedEx Standard Overnight', minCharge: '', benchmarkDiscount: '' },\r\n { id: 11, name: 'Ground', minCharge: '', benchmarkDiscount: '' },\r\n { id: 12, name: 'Home Delivery', minCharge: '', benchmarkDiscount: '' },\r\n { id: 13, name: 'FedEx Intl Priority Express', minCharge: '', benchmarkDiscount: '' }\r\n ]);\r\n\r\n const addBenchmark = (shouldCloseModal) => {\r\n if (benchmark.name && benchmark.chargeType) {\r\n setBenchmarks([...benchmarks, { ...benchmark, chargeType: benchmark.chargeType.value }]);\r\n const benchmarkToAdd = { ...benchmark, minCharge: benchmark.minCharge, benchmarkDiscount: benchmark.bm, chargeType: benchmark.chargeType.value };\r\n\r\n const chargeTypeMap = {\r\n fedex: {\r\n Accessorial: setFedexAccessorialCharge,\r\n Transportation: setFedexTransportationCharges,\r\n },\r\n ups: {\r\n Accessorial: setUpsAccessorialCharges,\r\n Transportation: setUpsBMTransportationCharges,\r\n },\r\n };\r\n if (chargeTypeMap[benchmarkToAdd.type]?.[benchmarkToAdd.chargeType]) {\r\n chargeTypeMap[benchmarkToAdd.type][benchmarkToAdd.chargeType]((prevCharges) => [...prevCharges, benchmarkToAdd]);\r\n }\r\n\r\n setBenchmark(initialBenchmark);\r\n if (shouldCloseModal) {\r\n setIsNewBenchmarkModalOpen(false);\r\n }\r\n }\r\n };\r\n\r\n const handleValueUpdate = (name, key, value, type) => {\r\n const findBenchmark = benchmarks.find((x) => x.name === name);\r\n\r\n if (findBenchmark) {\r\n findBenchmark.type = type;\r\n findBenchmark[key] = value;\r\n \r\n setBenchmarks([...benchmarks]);\r\n } else {\r\n setBenchmarks([...benchmarks, {\r\n id: 0,\r\n clientId,\r\n name,\r\n type,\r\n [key]: value\r\n }]);\r\n }\r\n };\r\n\r\n const getValueByName = (name, key) => {\r\n const findBenchmark = benchmarks.find((x) => x.name === name);\r\n if (findBenchmark) {\r\n return findBenchmark[key];\r\n }\r\n\r\n return '';\r\n };\r\n\r\n const handleSaveChanges = async () => {\r\n setIsLoading(true);\r\n try {\r\n const res = await benchmarkService.saveChanges(benchmarks);\r\n showAlert({ text: res.message, state: 'success' });\r\n } catch (ex) {\r\n showAlert({ text: ex.message, state: 'error' });\r\n } finally {\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n const addGroup = (shouldCloseModal) => {\r\n const findBenchmark = benchmarks.find((x) => x.name === groupModel.benchmarkName);\r\n if (findBenchmark) {\r\n findBenchmark.benchmarkGroups.push(groupModel);\r\n setBenchmarks([...benchmarks]);\r\n } else {\r\n setBenchmarks([...benchmarks, { id: 0, clientId, name: groupModel.benchmarkName, benchmarkGroups: [groupModel] }]);\r\n }\r\n\r\n setGroupModel({ ...initialGroupModel, benchmarkName: groupModel.benchmarkName, benchmarkId: groupModel.benchmarkId });\r\n\r\n if (shouldCloseModal) {\r\n setIsModalVisible(false);\r\n }\r\n };\r\n\r\n const handleInLineChange = (name, order, key, value) => {\r\n const findBenchmark = benchmarks.find((x) => x.name === name);\r\n if (findBenchmark) {\r\n findBenchmark.benchmarkGroups[order][key] = value;\r\n setBenchmarks([...benchmarks]);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n setIsNewBenchmarkModalOpen(true)}\r\n />\r\n \r\n setType(k)}\r\n id=\"benchmark-tab\"\r\n className=\"mb-3\"\r\n >\r\n \r\n )}\r\n >\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {upsBMTransportationCharges.map((item) => (\r\n \r\n
\r\n \r\n }\r\n inputRightButtonOnClick={() => {\r\n setGroupModel({ ...initialGroupModel, benchmarkName: item.name, benchmarkId: item.id });\r\n setIsModalVisible(true);\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n )}\r\n onChange={({ target }) => handleValueUpdate(item.name, 'min', target.value, 'ups')}\r\n value={getValueByName(item.name, 'min')}\r\n />\r\n \r\n\r\n \r\n \r\n )}\r\n onChange={({ target }) => handleValueUpdate(item.name, 'bm', target.value, 'ups')}\r\n value={getValueByName(item.name, 'bm')}\r\n />\r\n \r\n
\r\n {benchmarks.find((x) => x.name === item.name)?.benchmarkGroups?.length > 0 && (\r\n \r\n \r\n

{item.name}

\r\n {\r\n benchmarks.find((x) => x.name === item.name)?.benchmarkGroups?.map((groupItem, index) => (\r\n
\r\n \r\n handleInLineChange(item.name, index, 'group', target.value)}\r\n />\r\n \r\n\r\n \r\n handleInLineChange(item.name, index, 'min', target.value)}\r\n />\r\n \r\n\r\n \r\n handleInLineChange(item.name, index, 'bm', target.value)}\r\n />\r\n \r\n
\r\n ))\r\n }\r\n
\r\n
\r\n )}\r\n
\r\n ))}\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n\r\n {upsAccessorialCharges.map((item) => (\r\n \r\n
\r\n \r\n }\r\n inputRightButtonOnClick={() => {\r\n setGroupModel({ ...initialGroupModel, benchmarkName: item.name, benchmarkId: item.id });\r\n setIsModalVisible(true);\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n )}\r\n onChange={({ target }) => handleValueUpdate(item.name, 'min', target.value, 'ups')}\r\n value={getValueByName(item.name, 'min')}\r\n />\r\n \r\n\r\n \r\n \r\n )}\r\n onChange={({ target }) => handleValueUpdate(item.name, 'bm', target.value, 'ups')}\r\n value={getValueByName(item.name, 'bm')}\r\n />\r\n \r\n
\r\n {benchmarks.find((x) => x.name === item.name)?.benchmarkGroups?.length > 0 && (\r\n \r\n \r\n

{item.name}

\r\n {\r\n benchmarks.find((x) => x.name === item.name)?.benchmarkGroups?.map((groupItem, index) => (\r\n
\r\n \r\n handleInLineChange(item.name, index, 'group', target.value)}\r\n />\r\n \r\n\r\n \r\n handleInLineChange(item.name, index, 'min', target.value)}\r\n />\r\n \r\n\r\n \r\n handleInLineChange(item.name, index, 'bm', target.value)}\r\n />\r\n \r\n
\r\n ))\r\n }\r\n
\r\n
\r\n )}\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n )}\r\n >\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {fedexTransportationCharges.map((item) => (\r\n \r\n
\r\n \r\n }\r\n inputRightButtonOnClick={() => {\r\n setGroupModel({ ...initialGroupModel, benchmarkName: item.name, benchmarkId: item.id });\r\n setIsModalVisible(true);\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n )}\r\n onChange={({ target }) => handleValueUpdate(item.name, 'min', target.value, 'fedex')}\r\n value={getValueByName(item.name, 'min')}\r\n />\r\n \r\n\r\n \r\n \r\n )}\r\n onChange={({ target }) => handleValueUpdate(item.name, 'bm', target.value, 'fedex')}\r\n value={getValueByName(item.name, 'bm')}\r\n />\r\n \r\n
\r\n {benchmarks.find((x) => x.name === item.name)?.benchmarkGroups?.length > 0 && (\r\n \r\n \r\n

{item.name}

\r\n {\r\n benchmarks.find((x) => x.name === item.name)?.benchmarkGroups?.map((groupItem, index) => (\r\n
\r\n \r\n handleInLineChange(item.name, index, 'group', target.value)}\r\n />\r\n \r\n\r\n \r\n handleInLineChange(item.name, index, 'min', target.value)}\r\n />\r\n \r\n\r\n \r\n handleInLineChange(item.name, index, 'bm', target.value)}\r\n />\r\n \r\n
\r\n ))\r\n }\r\n
\r\n
\r\n )}\r\n
\r\n ))}\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n\r\n {fedexAccessorialCharge.map((item) => (\r\n \r\n
\r\n \r\n }\r\n inputRightButtonOnClick={() => {\r\n setGroupModel({ ...initialGroupModel, benchmarkName: item.name, benchmarkId: item.id });\r\n setIsModalVisible(true);\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n )}\r\n onChange={({ target }) => handleValueUpdate(item.name, 'min', target.value, 'fedex')}\r\n value={getValueByName(item.name, 'min')}\r\n />\r\n \r\n\r\n \r\n \r\n )}\r\n onChange={({ target }) => handleValueUpdate(item.name, 'bm', target.value, 'fedex')}\r\n value={getValueByName(item.name, 'bm')}\r\n />\r\n \r\n
\r\n {benchmarks.find((x) => x.name === item.name)?.benchmarkGroups?.length > 0 && (\r\n \r\n \r\n

{item.name}

\r\n {\r\n benchmarks.find((x) => x.name === item.name)?.benchmarkGroups?.map((groupItem, index) => (\r\n
\r\n \r\n handleInLineChange(item.name, index, 'group', target.value)}\r\n />\r\n \r\n\r\n \r\n handleInLineChange(item.name, index, 'min', target.value)}\r\n />\r\n \r\n\r\n \r\n handleInLineChange(item.name, index, 'bm', target.value)}\r\n />\r\n \r\n
\r\n ))\r\n }\r\n
\r\n
\r\n )}\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n addGroup(false)}\r\n thirdModalActionText=\"Save & Close\"\r\n thirdModalActionOnClick={() => addGroup(true)}\r\n onHide={() => {\r\n setIsModalVisible(false);\r\n }}\r\n >\r\n \r\n
\r\n \r\n setGroupModel({ ...groupModel, group: target.value })}\r\n />\r\n \r\n \r\n setGroupModel({ ...groupModel, min: target.value })}\r\n />\r\n \r\n \r\n setGroupModel({ ...groupModel, bm: target.value })}\r\n />\r\n \r\n
\r\n
\r\n \r\n\r\n addBenchmark(false)}\r\n thirdModalActionText=\"Save & Close\"\r\n thirdModalActionOnClick={() => addBenchmark(true)}\r\n onHide={() => {\r\n setBenchmark(initialBenchmark);\r\n setIsNewBenchmarkModalOpen(false);\r\n }}\r\n >\r\n \r\n
\r\n\r\n \r\n ({ label: x, value: x }))}\r\n isClearable\r\n value={benchmark.chargeType}\r\n onChange={(opt) => {\r\n opt = opt === null ? [] : opt;\r\n setBenchmark({ ...benchmark, chargeType: opt, type });\r\n }}\r\n />\r\n \r\n \r\n setBenchmark({ ...benchmark, name: target.value, type })}\r\n />\r\n \r\n \r\n setBenchmark({ ...benchmark, min: target.value, type })}\r\n />\r\n \r\n \r\n setBenchmark({ ...benchmark, bm: target.value, type })}\r\n />\r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(\r\n mapStateFromProps,\r\n {\r\n ...auth.actions,\r\n ...alert.actions\r\n }\r\n)(BenchmarkPage);","import axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'Blog/';\r\n\r\nconst getAllBlogs = async (isActive) => axiosInstance.get(`${ENDPOINTORIGIN}GetAllBlogs?isActive=${isActive}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getBlogById = async (blogId) => axiosInstance.get(`${ENDPOINTORIGIN}GetBlogById?blogId=${blogId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst createBlog = async (blog) => axiosInstance.post(`${ENDPOINTORIGIN}CreateBlog`, blog, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst updateBlog = async (blog) => axiosInstance.put(`${ENDPOINTORIGIN}UpdateBlog`, blog, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteBlog = async (blogId) => axiosInstance.delete(`${ENDPOINTORIGIN}DeleteBlog?id=${blogId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst assignContentSectionToBlog = async (blogId, contentSectionId, type) => axiosInstance.post(`${ENDPOINTORIGIN}AssignContentSectionToBlog?blogId=${blogId}&contentSectionId=${contentSectionId}&type=${type}`, {}, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst unassignContentSection = async (contentSectionBannerId) => axiosInstance.delete(`${ENDPOINTORIGIN}UnassignContentSection?contentSectionBannerId=${contentSectionBannerId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst sortBlogContentSections = async (sortOrders) => axiosInstance.put(`${ENDPOINTORIGIN}SortBlogContentSections`, sortOrders, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst deleteBannerImage = async (blogId) => axiosInstance.delete(`${ENDPOINTORIGIN}DeleteBannerImage?blogId=${blogId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getAllBlogs,\r\n getBlogById,\r\n createBlog,\r\n updateBlog,\r\n deleteBlog,\r\n assignContentSectionToBlog,\r\n unassignContentSection,\r\n sortBlogContentSections,\r\n deleteBannerImage\r\n};","/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable react/no-array-index-key */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable max-len */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\n// ICONS\r\nimport { IoMdAddCircle } from 'react-icons/io';\r\n// CUSTOM COMPONENTS\r\nimport Overlay from '../../../../components/Overlay';\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport Button from '../../../../components/Button';\r\n// SERVICES AND HELPERS\r\nimport * as blogService from '../../../../services/cms/blogService';\r\n// REDUX\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModal from '../../../../redux/confirmModalRedux';\r\n\r\nconst BlogListingPage = (props) => {\r\n const { showAlert, showConfirmModal, hideConfirmModal } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [blogs, setBlogs] = useState([]);\r\n const iconSize = 22;\r\n const iconColor = 'white--clr';\r\n\r\n useEffect(() => {\r\n getBlogs();\r\n }, []);\r\n\r\n const getBlogs = () => {\r\n setIsLoading(true);\r\n blogService.getAllBlogs('').then((res) => {\r\n setBlogs(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const deleteBlog = (blogId) => {\r\n setIsLoading(true);\r\n\r\n blogService.deleteBlog(blogId).then((res) => {\r\n getBlogs();\r\n showAlert({ text: res.message, state: 'success' });\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n hideConfirmModal();\r\n });\r\n };\r\n\r\n const columnOptions = {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: true\r\n };\r\n\r\n const options = {\r\n selectableRows: 'none',\r\n download: true,\r\n print: false,\r\n jumpToPage: true,\r\n textLabels: { pagination: { jumpToPage: 'Page No:' } }\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => (\r\n \r\n \r\n\r\n {\r\n showConfirmModal({\r\n title: 'Remove blog',\r\n text: 'Are you sure you want to remove this blog?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n deleteBlog(blogs[dataIndex].id);\r\n }\r\n });\r\n }}\r\n />\r\n \r\n )\r\n }\r\n },\r\n {\r\n name: 'name',\r\n label: 'Blog Name',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'addedBy',\r\n label: 'Added By',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'addedOn',\r\n label: 'Added On',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'isActive',\r\n label: 'Is Active?',\r\n options: {\r\n ...columnOptions,\r\n customBodyRenderLite: (dataIndex) => (\r\n

{blogs[dataIndex].isActive ? 'Yes' : 'No'}

\r\n )\r\n }\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n }\r\n primaryButtonTo=\"/cms/management/blog\"\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\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\nexport default connect(mapStateFromProps, { ...alert.actions, ...confirmModal.actions })(BlogListingPage);","import * as Yup from 'yup';\r\n\r\nexport default Yup.object().shape({\r\n id: Yup.number(),\r\n name: Yup.string().required('Menu Item Name is required').max(250),\r\n url: Yup.string().required().max(250),\r\n isBannerVisible: Yup.bool().nullable(),\r\n bannerImageFilePath: Yup.string().nullable(),\r\n bannerColor: Yup.string().max(10),\r\n keywords: Yup.string().nullable().max(1500),\r\n description: Yup.string().nullable(),\r\n isActive: Yup.bool(),\r\n});","/* eslint-disable max-len */\r\n/* eslint-disable react/no-unstable-nested-components */\r\n/* eslint-disable no-param-reassign */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable no-alert */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useFormik } from 'formik';\r\nimport { useParams } from 'react-router-dom';\r\n// COMPONENTS\r\nimport MUIDataTable from 'mui-datatables';\r\nimport { SwatchesPicker } from 'react-color';\r\nimport {\r\n DragDropContext,\r\n Droppable,\r\n Draggable\r\n} from 'react-beautiful-dnd';\r\n// ICONS\r\nimport { MdOutlinePlaylistAdd } from 'react-icons/md';\r\nimport { FaSquare } from 'react-icons/fa';\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../../../components/Section';\r\nimport ContentBlock from '../../../../components/ContentBlock';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport FormBlock from '../../../../components/FormBlock';\r\nimport ContentHeader from '../../../../components/ContentHeader';\r\nimport InputBlock from '../../../../components/InputBlock';\r\nimport TextAreaBlock from '../../../../components/TextAreaBlock';\r\nimport SelectBlock from '../../../../components/SelectBlock';\r\nimport CheckboxBlock from '../../../../components/CheckboxBlock';\r\nimport Button from '../../../../components/Button';\r\nimport Overlay from '../../../../components/Overlay';\r\nimport ModalBlock from '../../../../components/ModalBlock';\r\nimport Image from '../../../../components/Image';\r\nimport FileUploadBlock from '../../../../components/FileUploadBlock';\r\nimport FixedActionsBar from '../../../../components/FixedActionsBar';\r\n// ASSETS\r\n// SERVICES AND HELPERS\r\nimport * as helper from '../../../../helpers/helper';\r\nimport * as blogService from '../../../../services/cms/blogService';\r\nimport * as contentSectionService from '../../../../services/cms/contentSectionService';\r\nimport BlogValidator from '../../../../helpers/validators/cms/blog/BlogValidator';\r\n// REDUX\r\nimport * as auth from '../../../../redux/authRedux';\r\nimport * as alert from '../../../../redux/alertToastRedux';\r\nimport * as confirmModalRedux from '../../../../redux/confirmModalRedux';\r\n\r\nconst intialBlogModel = {\r\n id: 0,\r\n name: '',\r\n url: '',\r\n isBannerVisible: true,\r\n bannerImageFilePath: '',\r\n bannerColor: '#000000',\r\n keywords: '',\r\n description: '',\r\n isActive: true,\r\n bannerImage: null,\r\n contentSections: []\r\n};\r\n\r\nconst typeSelectionOptions = [\r\n {\r\n label: 'Banner',\r\n value: 'BANNER'\r\n },\r\n {\r\n label: 'Content Section',\r\n value: 'CONTENTSECTION'\r\n }\r\n];\r\n\r\nconst BlogManagementPage = (props) => {\r\n const { showAlert, history, showConfirmModal, hideConfirmModal } = props;\r\n const { blogId } = useParams();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isModalVisible, setIsModalVisible] = useState(false);\r\n const [isSortModalOpen, setIsSortModalOpen] = useState(false);\r\n const [file, setFile] = useState([]);\r\n const [selectedOption, setSelectedOption] = useState(null);\r\n const [contentBannerTypeOption, setContentBannerTypeOption] = useState([]);\r\n const [selectedContentBannerTypeOption, setSelectedContentBannerTypeOption] = useState(null);\r\n const [blogModel, setBlogModel] = useState(intialBlogModel);\r\n const [sortList, setSortList] = useState([]);\r\n const iconSize = 22;\r\n const iconColor = 'white--clr';\r\n\r\n useEffect(() => {\r\n loadOptionsAndPopulateForm();\r\n setContentBannerTypeOption([]);\r\n setSelectedContentBannerTypeOption([]);\r\n }, [blogId]);\r\n\r\n useEffect(() => {\r\n setSelectedContentBannerTypeOption(null);\r\n setContentBannerTypeOption([]);\r\n if (selectedOption) {\r\n getOptions(selectedOption.value);\r\n }\r\n }, [selectedOption]);\r\n\r\n useEffect(() => {\r\n setSortList(blogModel.contentSections.sort((a, b) => a - b));\r\n }, [blogModel.contentSections]);\r\n\r\n const formik = useFormik({\r\n initialValues: blogModel,\r\n validationSchema: BlogValidator,\r\n enableReinitialize: true,\r\n onSubmit: (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n if (blogId) {\r\n updateBlog(values);\r\n } else {\r\n createBlog(values);\r\n }\r\n },\r\n });\r\n\r\n const loadOptionsAndPopulateForm = async () => {\r\n if (blogId > 0) {\r\n getBlog();\r\n }\r\n };\r\n\r\n const getOptions = (type) => {\r\n setIsLoading(true);\r\n\r\n contentSectionService.getContentSectionOptionsForBlog(blogId, type).then((res) => {\r\n setContentBannerTypeOption(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const getBlog = async () => {\r\n setIsLoading(true);\r\n\r\n blogService.getBlogById(blogId).then((res) => {\r\n setBlogModel(res);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const createBlog = (model) => {\r\n setIsLoading(true);\r\n\r\n blogService.createBlog(helper.convertJsonToFormData(\r\n {\r\n ...model,\r\n bannerImage: file.length > 0 ? file[0].file : null\r\n }\r\n )).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n history.push(`/cms/management/blog/edit/${res.id}`);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const updateBlog = (model) => {\r\n setIsLoading(true);\r\n\r\n if (file.length > 0) {\r\n model = { ...model, bannerImage: file[0].file };\r\n }\r\n blogService.updateBlog(helper.convertJsonToFormData(model)).then((res) => {\r\n showAlert({ text: res.message, state: 'success' });\r\n history.push('/cms/management/blogs');\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n };\r\n\r\n const hideContentSectionModal = () => {\r\n setSelectedOption(null);\r\n setSelectedContentBannerTypeOption(null);\r\n setContentBannerTypeOption([]);\r\n\r\n setIsModalVisible(false);\r\n };\r\n\r\n const addContentSection = () => {\r\n if (selectedContentBannerTypeOption && selectedOption) {\r\n setIsLoading(true);\r\n\r\n blogService.assignContentSectionToBlog(blogId, selectedContentBannerTypeOption.value, selectedOption.value).then((res) => {\r\n getBlog();\r\n showAlert({ text: res.message, state: 'success' });\r\n hideContentSectionModal();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => setIsLoading(false));\r\n } else {\r\n showAlert({ text: 'Please select both type & component', state: 'warning' });\r\n }\r\n };\r\n\r\n const deleteBlogContent = (id) => {\r\n setIsLoading(true);\r\n\r\n blogService.unassignContentSection(id).then((res) => {\r\n getBlog();\r\n showAlert({ text: res.message, state: 'success' });\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'warning' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n hideConfirmModal();\r\n });\r\n };\r\n\r\n const sortBlogContents = () => {\r\n setIsLoading(true);\r\n\r\n blogService.sortBlogContentSections(sortList).then((res) => {\r\n getBlog();\r\n showAlert({ text: res.message, state: 'success' });\r\n setIsSortModalOpen(false);\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const onDragEnd = (result) => {\r\n if (!result.destination) {\r\n return;\r\n }\r\n\r\n const tempArr = helper.reOrderDnd(\r\n sortList,\r\n result.source.index,\r\n result.destination.index\r\n );\r\n\r\n setSortList(tempArr);\r\n };\r\n\r\n const deleteBannerImage = () => {\r\n blogService.deleteBannerImage(blogId).then((res) => {\r\n getBlog();\r\n showAlert({ text: res.message, state: 'success' });\r\n hideConfirmModal();\r\n }).catch((ex) => {\r\n showAlert({ text: ex.message, state: 'error' });\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const columnOptions = {\r\n filter: true,\r\n sort: true,\r\n print: false,\r\n download: false\r\n };\r\n\r\n const options = {\r\n selectableRows: 'none',\r\n download: false,\r\n print: false,\r\n };\r\n\r\n const columns = [\r\n {\r\n name: 'id',\r\n label: 'Actions',\r\n options: {\r\n filter: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n customBodyRenderLite: (dataIndex) => (\r\n \r\n {\r\n const model = blogModel.contentSections[dataIndex];\r\n history.push(`/cms/management/${(model.bannerId > 0) ? 'banner' : 'content-section'}/edit/${(model.bannerId > 0) ? model.bannerId : model.contentSectionId}`);\r\n }}\r\n />\r\n\r\n {\r\n showConfirmModal({\r\n title: 'Remove Blog Content',\r\n text: 'Are you sure you want to remove this content?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n deleteBlogContent(blogModel.contentSections[dataIndex].id);\r\n }\r\n });\r\n }}\r\n />\r\n \r\n )\r\n }\r\n },\r\n {\r\n name: 'name',\r\n label: 'Name',\r\n options: columnOptions,\r\n },\r\n {\r\n name: 'type',\r\n label: 'Type',\r\n options: {\r\n ...columnOptions,\r\n customBodyRenderLite: (dataIndex) => (

{helper.mapContentSectionName(blogModel.contentSections[dataIndex].type)}

)\r\n },\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n
\r\n \r\n \r\n {/* BASIC INFORMATION */}\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n {/* PAGE BANNER */}\r\n
\r\n \r\n \r\n \r\n\r\n \r\n {\r\n blogModel.bannerImageFilePath\r\n ? (\r\n <>\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n showConfirmModal(\r\n {\r\n title: 'Remove Banner Image',\r\n text: 'Are you sure you want to remove this banner Image?',\r\n rightBtnText: 'Confirm',\r\n btnAction: () => {\r\n deleteBannerImage();\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 errorMessage={formik.errors.bannerColor}\r\n inputState={`${helper.getInputClasses(formik, 'bannerColor')}`}\r\n {...formik.getFieldProps('bannerColor')}\r\n />\r\n\r\n \r\n {\r\n formik.setFieldValue('bannerColor', c.hex);\r\n }}\r\n className=\"w-100\"\r\n />\r\n \r\n \r\n
\r\n\r\n {/* SEO INFORMATION */}\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 {/* CONTENT */}\r\n {\r\n blogId\r\n && (\r\n
\r\n \r\n }\r\n primaryButtonOnClick={() => setIsModalVisible(true)}\r\n secondaryButtonText=\"Sort Items\"\r\n secondaryButtonOnClick={() => setIsSortModalOpen(true)}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n
\r\n )\r\n }\r\n\r\n {/* PAGE ACTIONS */}\r\n 0 ? 'Save Changes' : 'Create Blog'}\r\n primaryActionColor=\"primary--bg\"\r\n primaryActionOnClick={formik.handleSubmit}\r\n secondaryActionText=\"Cancel\"\r\n secondaryActionTo=\"/cms/management/blogs\"\r\n optionalActionText={blogId > 0 ? 'Return to Listing' : ''}\r\n optionalActionTo=\"/cms/management/blogs\"\r\n />\r\n
\r\n
\r\n
\r\n\r\n {/* ADD Content Section MODAL */}\r\n {\r\n if (selectedOption !== null) {\r\n history.push(`/cms/management/${(selectedOption.value === 'BANNER') ? 'banner' : 'content-section'}/blogId/${blogId}`);\r\n } else {\r\n showAlert({ text: 'Please select type of Component you want to create', state: 'warning' });\r\n }\r\n }}\r\n onHide={hideContentSectionModal}\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 {/* SORT MODAL */}\r\n {\r\n setIsSortModalOpen(false);\r\n }}\r\n >\r\n
\r\n {\r\n sortList.length > 0\r\n ? (\r\n \r\n \r\n {(droppableProvided) => (\r\n \r\n {sortList.map((item, index) => (\r\n \r\n {(draggableProvided) => (\r\n \r\n

{item.name}

\r\n \r\n\r\n )}\r\n \r\n ))}\r\n {droppableProvided.placeholder}\r\n \r\n )}\r\n
\r\n
\r\n ) : (\r\n \r\n

No Items Available

\r\n
\r\n )\r\n }\r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, {\r\n ...auth.actions,\r\n ...alert.actions,\r\n ...confirmModalRedux.actions\r\n})(BlogManagementPage);","/* eslint-disable react/self-closing-comp */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport TextBlock from './TextBlock';\r\n\r\nconst ContentStrip = (props) => {\r\n const {\r\n badgeBackgroundColor,\r\n badgeText,\r\n imageSource,\r\n title,\r\n leftBlockText,\r\n rightBlockText,\r\n onClick,\r\n isFullWidth\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n badgeText !== ''\r\n && (\r\n \r\n

{badgeText}

\r\n
\r\n )\r\n }\r\n
\r\n\r\n \r\n\r\n \r\n \r\n

{leftBlockText}

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

{rightBlockText}

\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nContentStrip.propTypes = {\r\n // MAIN PROPS\r\n imageSource: PropTypes.number,\r\n title: PropTypes.string,\r\n leftBlockText: PropTypes.string,\r\n rightBlockText: PropTypes.string,\r\n\r\n // BADGE PROPS\r\n badgeText: PropTypes.string,\r\n badgeBackgroundColor: PropTypes.string,\r\n\r\n // FUNCTION PROPS\r\n onClick: PropTypes.func,\r\n\r\n // BOOLEAN PROPS\r\n isFullWidth: PropTypes.bool\r\n};\r\n\r\nContentStrip.defaultProps = {\r\n // MAIN PROPS\r\n imageSource: null,\r\n title: '',\r\n leftBlockText: '',\r\n rightBlockText: '',\r\n\r\n // BADGE PROPS\r\n badgeText: '',\r\n badgeBackgroundColor: 'danger--sbg',\r\n\r\n // FUNCTION PROPS\r\n onClick: null,\r\n\r\n // BOOLEAN PROPS\r\n isFullWidth: false\r\n};\r\n\r\nexport default ContentStrip;","/* eslint-disable react/self-closing-comp */\r\n// DEPENDENCIES\r\nimport React, { useState } from 'react';\r\n// COMPONENTS\r\n// ICONS\r\nimport { HiSearch } from 'react-icons/hi';\r\n// CUSTOM COMPONENTS\r\nimport Section from '../../../components/Section';\r\nimport ContentBlock from '../../../components/ContentBlock';\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Overlay from '../../../components/Overlay';\r\nimport TextBlock from '../../../components/TextBlock';\r\nimport InputBlock from '../../../components/InputBlock';\r\nimport ContentStrip from '../../../components/ContentStrip';\r\n// ASSETS - BLOG\r\n\r\nconst BlogsAndReviewsListingPage = (props) => {\r\n const { cmsInfo, history } = props;\r\n const [isLoading] = useState(false);\r\n const [filteredBlogs, setFilteredBlogs] = useState(cmsInfo.pages.filter((x) => x.isBlog));\r\n\r\n const today = new Date();\r\n today.setHours(0, 0, 0, 0);\r\n\r\n const search = (searchTerm) => {\r\n setFilteredBlogs(cmsInfo.pages\r\n .filter((x) => x.isBlog)\r\n .filter((x) => x.name.toLowerCase().includes(searchTerm.toLowerCase())));\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading && }\r\n \r\n \r\n \r\n\r\n {/* FILTERS BLOCK */}\r\n
\r\n \r\n \r\n }\r\n onChange={(e) => search(e.target.value)}\r\n />\r\n \r\n \r\n
\r\n\r\n {/* BLOGS */}\r\n \r\n {\r\n filteredBlogs.map((item) => (\r\n {\r\n history.push(item.url);\r\n }}\r\n />\r\n ))\r\n }\r\n {\r\n filteredBlogs.length === 0\r\n && (\r\n \r\n \r\n \r\n )\r\n }\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default BlogsAndReviewsListingPage;","export default __webpack_public_path__ + \"static/media/homepage-banner-image_default.ec8ad4e8.png\";","/* eslint-disable no-unused-vars */\r\n/* eslint-disable react/jsx-max-props-per-line */\r\n/* eslint-disable react/no-unknown-property */\r\n/* eslint-disable max-len */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport { Fade } from 'react-awesome-reveal';\r\n// ICONS\r\nimport { FaCheck } from 'react-icons/fa6';\r\nimport { LiaShippingFastSolid } from 'react-icons/lia';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport Button from '../../../../components/Button';\r\nimport Banner from '../../../../components/Banner';\r\n// ASSETS\r\nimport BannerImage from '../../../../assets/client/homepage-banner-image_default.png';\r\n\r\nconst CustomBannerInsert = (props) => {\r\n const { history, offsetValue } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n

\r\n Ship Smarter,\r\n

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

\r\n Grow Faster\r\n

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

\r\n Save on shipping, expand your business.\r\n
\r\n Simple, effective logistics with Transport Logics.\r\n

\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Start Saving Now\r\n \r\n )}\r\n to=\"/transport-logics-services\"\r\n className=\"size-sm primary--bg light--clr circle\"\r\n />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CustomBannerInsert;","/* eslint-disable max-len */\r\n/* eslint-disable no-use-before-define */\r\nimport React, {\r\n useState,\r\n useEffect,\r\n useRef\r\n} from 'react';\r\n// COMPONENTS\r\n// ICONS\r\nimport { BiRefresh } from 'react-icons/bi';\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from './CustomBlock';\r\nimport Overlay from './Overlay';\r\n// ASSETS\r\nimport '../assets/custom/AnimatedLogoStyles.css';\r\n\r\nconst AnimatedLogo = (props) => {\r\n const { width, height } = props;\r\n\r\n const [isLoading] = useState(false);\r\n const [isAnimating, setIsAnimating] = useState(null);\r\n const [animationKey, setAnimationKey] = useState(0);\r\n const svgRef = useRef(null);\r\n\r\n useEffect(() => {\r\n if (isAnimating == null) {\r\n handleLogoAnimation();\r\n }\r\n }, []);\r\n\r\n const handleLogoAnimation = () => {\r\n setIsAnimating(true);\r\n setAnimationKey((prevKey) => prevKey + 1);\r\n };\r\n\r\n return (\r\n <>\r\n {(isLoading) && }\r\n \r\n \r\n {/* eslint-disable react/jsx-max-props-per-line, react/self-closing-comp, react/no-unknown-property */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* eslint-enable react/jsx-max-props-per-line, react/self-closing-comp, react/no-unknown-property */}\r\n \r\n\r\n \r\n

Shipment Savings, Delivered!

\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default AnimatedLogo;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport { Fade } from 'react-awesome-reveal';\r\n// COMPONENTS\r\nimport CustomBlock from '../../../../../components/CustomBlock';\r\n// ASSETS\r\nimport AnimatedLogo from '../../../../../components/AnimatedLogo';\r\n\r\nconst WebsiteIntroSection = () => (\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 WebsiteIntroSection;","export default __webpack_public_path__ + \"static/media/background-texture-1.2547e0e1.svg\";","/* eslint-disable max-len */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport { Fade } from 'react-awesome-reveal';\r\n// COMPONENTS\r\nimport CustomBlock from '../../../../../components/CustomBlock';\r\nimport Button from '../../../../../components/Button';\r\n// ASSETS\r\nimport BackgroundTexture from '../../../../../assets/client/background-texture-1.svg';\r\n\r\nconst AboutIntroSection = () => (\r\n \r\n \r\n \r\n

More Than Parcel Consultants

\r\n

\r\n At Transport Logics, we're more than just consultants;\r\n {' '}\r\n we're industry pioneers dedicated to optimizing your parcel shipping experience\r\n .\r\n

\r\n
\r\n

\r\n With over three decades of specialized insight,\r\n we empower your business to navigate the complexities of carrier contracts and logistics with ease\r\n . Our strategic analysis and customized solutions ensure your shipping processes are not just efficient but also cost-effective.\r\n

\r\n \r\n \r\n \r\n
\r\n \r\n \r\n);\r\n\r\nexport default AboutIntroSection;","/* eslint-disable max-len */\r\n/* eslint-disable no-unused-vars */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport { Fade } from 'react-awesome-reveal';\r\n// COMPONENTS\r\nimport CustomBlock from '../../../../../components/CustomBlock';\r\nimport Image from '../../../../../components/Image';\r\n// ASSETS\r\nimport BackgroundDecorationImage from '../../../../../assets/client/background-decoration_dark-light-waves.svg';\r\nimport CarrierContractNegotiation from '../../../../../assets/client/illustration_carrier-contract-negotiation.svg';\r\nimport ShippingOptimization from '../../../../../assets/client/illustration_shipping-optimization.svg';\r\nimport CarrierBidManagement from '../../../../../assets/client/illustration_carrier-bid-management.svg';\r\n\r\nconst servicesOverview = [\r\n {\r\n id: 1,\r\n title: 'Rate Negotiation',\r\n illustration: CarrierContractNegotiation,\r\n description: 'Unlock cost-saving shipping rates with our expert negotiators. We use deep industry knowledge to secure deals that cut costs and boost your savings.',\r\n },\r\n {\r\n id: 2,\r\n title: 'Streamlined Shipping',\r\n illustration: ShippingOptimization,\r\n description: 'Our customized shipping strategies enhance your operational efficiency, ensuring reliable delivery without overspending.',\r\n },\r\n {\r\n id: 3,\r\n title: 'Contract Monitoring',\r\n illustration: CarrierBidManagement,\r\n description: 'We keep a watchful eye on your shipping contracts, ensuring full compliance and persistent savings.',\r\n },\r\n // {\r\n // title: 'Carrier Selection',\r\n // illustration: CarrierSelection,\r\n // description: '',\r\n // },\r\n // {\r\n // title: 'Carrier Compliance and Monitoring',\r\n // illustration: CarrierCompliance,\r\n // description: '',\r\n // },\r\n];\r\n\r\nconst ServicesIntroSection = (props) => {\r\n const { history } = props;\r\n \r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n

How We Help You

\r\n

\r\n Experience the benefits of smarter shipping. Our approach focuses on finding real savings and making your shipping process smoother and more cost-effective.\r\n

\r\n\r\n \r\n {servicesOverview.map((item) => (\r\n history.push('/transport-logics-services')}\r\n >\r\n \r\n {`${item.title}\r\n \r\n

{item.title}

\r\n

{item.description}

\r\n
\r\n ))}\r\n
\r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ServicesIntroSection;","export default __webpack_public_path__ + \"static/media/illustration_carrier-contract-negotiation.c1d4a549.svg\";","export default __webpack_public_path__ + \"static/media/illustration_shipping-optimization.cc5ed639.svg\";","export default __webpack_public_path__ + \"static/media/illustration_carrier-bid-management.f22d1c86.svg\";","/* eslint-disable max-len */\r\n/* eslint-disable no-use-before-define */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable react/jsx-one-expression-per-line */\r\n/* eslint-disable react/style-prop-object */\r\n// DEPENDENCIES\r\nimport React, { useState, useEffect } from 'react';\r\n// COMPONENTS\r\nimport Slider from 'react-slick';\r\n// CUSTOM COMPONENTS\r\nimport { TbPalette } from 'react-icons/tb';\r\nimport CustomBannerInsert from './CustomBannerInsert';\r\nimport CustomBlock from '../../../../components/CustomBlock';\r\nimport Overlay from '../../../../components/Overlay';\r\nimport Banner from '../../../../components/Banner';\r\nimport Image from '../../../../components/Image';\r\n// SECTIONS\r\nimport WebsiteIntroSection from './sections/WebsiteIntroSection';\r\nimport AboutIntroSection from './sections/AboutIntroSection';\r\nimport ServicesIntroSection from './sections/ServicesIntroSection';\r\n// ASSETS - APP LINKS\r\n// import AppStoreBadge from '../../../assets/img/app-store-badge.svg';\r\n// import GooglePlayBadge from '../../../assets/img/google-play-badge.svg';\r\nimport BackgroundDecorationImage from '../../../../assets/client/background-decoration_dark-light-waves.svg';\r\n// HELPERS & SERVICES\r\nimport constants from '../../../../constants/constants';\r\n\r\nconst HomePage = (props) => {\r\n const { dynamicPageModel, buttonAction, history } = props;\r\n const [isLoading] = useState(false);\r\n const [banners, setBanners] = useState([]);\r\n const [offset, setOffset] = useState(0);\r\n const today = new Date();\r\n today.setHours(0, 0, 0, 0);\r\n\r\n useEffect(() => {\r\n const rotatingBanners = dynamicPageModel.pageContentSectionBanners.find((x) => x.bannerId > 0);\r\n if (rotatingBanners) {\r\n setBanners(rotatingBanners.banner.bannerItems);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n const handleScroll = () => setOffset(window.scrollY);\r\n\r\n window.addEventListener('scroll', handleScroll);\r\n\r\n return () => {\r\n window.removeEventListener('scroll', handleScroll);\r\n };\r\n }, []);\r\n\r\n const bannerSliderSettings = {\r\n dots: true,\r\n infinite: true,\r\n speed: 500,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: false,\r\n autoplay: true,\r\n autoplaySpeed: 5000,\r\n\r\n responsive: [\r\n {\r\n breakpoint: 480,\r\n settings: { dots: false }\r\n }\r\n ]\r\n };\r\n\r\n return (\r\n <>\r\n {(isLoading) && }\r\n \r\n {/* BANNER SECTION */}\r\n \r\n \r\n {/* CUSTOM BANNER INSERT */}\r\n \r\n {banners.map((banner) => (\r\n {\r\n buttonAction(banner.primaryButtonActionType, banner.primaryButtonLink);\r\n }}\r\n secondaryActionText={banner.secondaryButtonText}\r\n secondaryActionOnClick={() => {\r\n buttonAction(banner.secondaryButtonActionType, banner.secondaryButtonLink);\r\n }}\r\n offset={offset}\r\n />\r\n ))}\r\n \r\n \r\n\r\n \r\n {/* WEBSITE INTRO */}\r\n \r\n\r\n {/* INTRO TO ABOUT */}\r\n \r\n\r\n {/* INTROS TO SERVICES */}\r\n \r\n \r\n\r\n \r\n \r\n );\r\n};\r\n\r\nexport default HomePage;","/* eslint-disable import/prefer-default-export */\r\n\r\nimport axiosInstance from '../apiService';\r\nimport constants from '../../constants/constants';\r\n\r\nconst ENDPOINTORIGIN = 'Home/';\r\n\r\nconst getCMSInfo = async () => axiosInstance.get(`${ENDPOINTORIGIN}GetCMSInfo`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getDynamicPage = async (dynamicPageId) => axiosInstance.get(`${ENDPOINTORIGIN}GetDynamicPage?dynamicPageId=${dynamicPageId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst getDynamicBlog = async (dynamicPageId) => axiosInstance.get(`${ENDPOINTORIGIN}GetDynamicBlog?dynamicPageId=${dynamicPageId}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst searchProduct = async (model) => axiosInstance.post(`${ENDPOINTORIGIN}SearchProduct`, model, constants.REQUIRE_INTERCEPTORS);\r\n\r\nconst searchProductByKeyword = async (keyword) => axiosInstance.get(`${ENDPOINTORIGIN}SearchProductByKeyword?keyword=${keyword}`, constants.REQUIRE_INTERCEPTORS);\r\n\r\nexport {\r\n getCMSInfo,\r\n getDynamicPage,\r\n getDynamicBlog,\r\n searchProduct,\r\n searchProductByKeyword\r\n};","/* eslint-disable max-len */\r\n/* eslint-disable no-use-before-define */\r\n\r\n// DEPENDENCIES\r\n// import React, { useEffect, useState } from 'react';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { Helmet } from 'react-helmet';\r\nimport { Fade } from 'react-awesome-reveal';\r\n// COMPONENTS\r\nimport Slider from 'react-slick';\r\n// ICONS\r\n// CUSTOM COMPONENTS\r\nimport CustomBlock from '../../../components/CustomBlock';\r\nimport Overlay from '../../../components/Overlay';\r\n// import TextBlock from '../../../components/TextBlock';\r\n// CMS COMPONENTS\r\nimport Banner from '../../../components/Banner';\r\nimport ContentSection from '../../../components/ContentSection';\r\nimport HomePage from './home/HomePage';\r\n// SERVICES AND HELPERS\r\nimport * as homeService from '../../../services/cms/homeService';\r\nimport constants from '../../../constants/constants';\r\nimport 'slick-carousel/slick/slick.css';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\n\r\nconst initialDynamicPageModel = {\r\n bannerColor: '#ffffff',\r\n bannerImageFilePath: '',\r\n description: null,\r\n id: 0,\r\n isBannerVisible: false,\r\n keywords: '',\r\n name: '',\r\n pageContentSectionBanners: [],\r\n title: null,\r\n url: '',\r\n};\r\n\r\nconst DynamicCMSPage = (props) => {\r\n const { dynamicPageId, history, location, isBlog } = props;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [dynamicPageModel, setDynamicPageModel] = useState(initialDynamicPageModel);\r\n\r\n useEffect(() => {\r\n if (isBlog) {\r\n getDynamicBlogContent();\r\n } else {\r\n getDynamicPageContent();\r\n }\r\n }, [location]);\r\n\r\n const getDynamicPageContent = () => {\r\n setIsLoading(true);\r\n homeService.getDynamicPage(dynamicPageId).then((res) => {\r\n setDynamicPageModel(res);\r\n }).catch().finally(() => setIsLoading(false));\r\n };\r\n\r\n const getDynamicBlogContent = () => {\r\n setIsLoading(true);\r\n homeService.getDynamicBlog(dynamicPageId).then((res) => {\r\n setDynamicPageModel(res);\r\n }).catch().finally(() => setIsLoading(false));\r\n };\r\n\r\n const buttonAction = (actionType, link) => {\r\n switch (actionType) {\r\n case constants.CONTENT_SECTION.ButtonActionTypeLink:\r\n window.open(link, '_blank');\r\n break;\r\n case constants.CONTENT_SECTION.ButtonActionTypeEmail:\r\n window.location.href = `mailto:${link}`;\r\n break;\r\n case constants.CONTENT_SECTION.ButtonActionTypePage:\r\n history.push(link);\r\n break;\r\n case constants.CONTENT_SECTION.ButtonActionTypePhoneNumber:\r\n window.location.href = `tel:${link}`;\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const generateContent = (model) => {\r\n switch (model.type) {\r\n case constants.CONTENT_SECTION.ContentSectionTypeDefault:\r\n case constants.CONTENT_SECTION.ContentSectionTypeReversed:\r\n case constants.CONTENT_SECTION.ContentSectionTypeFullWidth:\r\n case constants.CONTENT_SECTION.ContentSectionTypeFullWidthPadded:\r\n case constants.CONTENT_SECTION.ContentSectionTypeTextOnly:\r\n return (\r\n buttonAction(model.primaryButtonActionType, model.primaryButtonLink)}\r\n secondaryActionText={model.secondaryButtonText}\r\n secondaryActionOnClick={() => buttonAction(model.secondaryButtonActionType, model.secondaryButtonLink)}\r\n />\r\n );\r\n case constants.CONTENT_SECTION.ContentSectionTypeCard:\r\n return (\r\n buttonAction(model.primaryButtonActionType, model.primaryButtonLink)}\r\n primaryActionColor=\"dark--clr white--bg\"\r\n secondaryActionText={model.secondaryButtonText}\r\n secondaryActionColor=\"white--clr warning--bg\"\r\n secondaryActionOnClick={() => buttonAction(model.secondaryButtonActionType, model.secondaryButtonLink)}\r\n />\r\n );\r\n case constants.CONTENT_SECTION.ContentSectionTypeBanner:\r\n return (\r\n buttonAction(model.primaryButtonActionType, model.primaryButtonLink)}\r\n secondaryActionText={model.secondaryButtonText}\r\n secondaryActionOnClick={() => buttonAction(model.secondaryButtonActionType, model.secondaryButtonLink)}\r\n />\r\n );\r\n case constants.CONTENT_SECTION.ContentSectionCustom:\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n case constants.CONTENT_SECTION.ContentSectionDynamicBanner:\r\n if (dynamicPageModel.url === '/home') {\r\n return '';\r\n }\r\n return (\r\n \r\n {\r\n model.bannerItems.map((item) => (\r\n buttonAction(model.primaryButtonActionType, model.primaryButtonLink)}\r\n secondaryActionText={item.secondaryButtonText}\r\n secondaryActionOnClick={() => buttonAction(model.secondaryButtonActionType, model.secondaryButtonLink)}\r\n />\r\n ))\r\n }\r\n \r\n );\r\n default:\r\n return

Loading...

;\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {dynamicPageModel.title || dynamicPageModel.name}\r\n \r\n \r\n \r\n \r\n {dynamicPageModel.bannerImageFilePath && (\r\n \r\n )}\r\n \r\n \r\n {isLoading && }\r\n \r\n {/* */}\r\n {/* PAGE SPECIFICS */}\r\n {\r\n dynamicPageModel.url === '/home' && (\r\n \r\n )\r\n }\r\n {\r\n dynamicPageModel.isBannerVisible && !(dynamicPageModel.addedBy && dynamicPageModel.addedOn)\r\n && (\r\n \r\n )\r\n }\r\n \r\n {\r\n dynamicPageModel.pageContentSectionBanners\r\n ? (\r\n dynamicPageModel.pageContentSectionBanners.map((section) => (\r\n generateContent((section.bannerId) ? { ...section.banner, type: constants.CONTENT_SECTION.ContentSectionDynamicBanner } : section.contentSection)\r\n ))\r\n )\r\n : (\r\n dynamicPageModel.blogContentSectionBanners.map((section) => (\r\n generateContent((section.bannerId) ? { ...section.banner, type: constants.CONTENT_SECTION.ContentSectionDynamicBanner } : section.contentSection)\r\n ))\r\n )\r\n }\r\n \r\n {/* */}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default DynamicCMSPage;","/* eslint-disable prefer-const */\r\n/* eslint-disable camelcase */\r\n/* eslint-disable no-use-before-define */\r\n// DEPENDENCIES\r\nimport React, {\r\n useEffect,\r\n useState\r\n} from 'react';\r\nimport jwt_decode from 'jwt-decode';\r\nimport { Helmet } from 'react-helmet';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n Switch,\r\n Route,\r\n Redirect,\r\n useLocation,\r\n} from 'react-router-dom';\r\nimport { enableBodyScroll } from 'body-scroll-lock';\r\n// ROUTES\r\nimport PrivateRoute from './routes/PrivateRoute';\r\nimport CMSRoute from './routes/CMSRoute';\r\n// CUSTOM COMPONENTS\r\nimport ConfirmModal from './components/ConfirmModal';\r\nimport AlertToast from './components/AlertToast';\r\n// AUTHENTICATION\r\nimport LoginPage from './pages/admin/authentication/LoginPage';\r\n// MANAGEMENT PAGES - SYSTEM\r\nimport UserListingPage from './pages/admin/management/user/UserListingPage';\r\nimport SettingsListingPage from './pages/admin/management/settings/SettingsListingPage';\r\n// PROJECT\r\n// CMS\r\n// -- MENU ITEMS\r\nimport MenuItemListingPage from './pages/cms/management/menu-item/MenuItemListingPage';\r\nimport MenuItemManagementPage from './pages/cms/management/menu-item/MenuItemManagementPage';\r\n// -- CONTENT PAGES\r\nimport PageListingPage from './pages/cms/management/page/PageListingPage';\r\nimport PageManagementPage from './pages/cms/management/page/PageManagementPage';\r\n// -- CONTENT SECTIONS\r\nimport ContentSectionListingPage from './pages/cms/management/content-section/ContentSectionListingPage';\r\nimport ContentSectionManagementPage from './pages/cms/management/content-section/ContentSectionManagementPage';\r\nimport BannerManagementPage from './pages/cms/management/content-section/BannerManagementPage';\r\n// ASSETS AND RESOURCES\r\nimport AssetsAndResourcesPage from './pages/cms/management/resources/AssetsAndResourcesPage';\r\n// FOOTER ITEMS\r\nimport FooterItemListingPage from './pages/cms/management/footer-items/FooterItemListingPage';\r\n// EVENT LISTING PAGE\r\n// import EventListingPage from './pages/admin/management/event/EventListingPage';\r\n// import EventManagementPage from './pages/admin/management/event/EventManagementPage';\r\n// import EventsPage from './pages/cms/pages/EventsPage';\r\n// import EventsPage from './pages/cms/pages/EventsPage';\r\n// import EventDetailPage from './pages/cms/pages/EventDetailPage';\r\n// CMS PAGES\r\n// import AboutPage from './pages/cms/pages/AboutPage';\r\n// import BoardOfDirectorsPage from './pages/cms/pages/BoardOfDirectorsPage';\r\n// import TeamMembersPage from './pages/cms/pages/TeamMembersPage';\r\n// import EconomicDevelopmentPage from './pages/cms/pages/EconomicDevelopmentPage';\r\nimport ContactPage from './pages/cms/pages/ContactPage';\r\nimport ClientManagementPage from './pages/admin/management/client/ClientManagementPage';\r\nimport ClientListingPage from './pages/admin/management/client/ClientListingPage';\r\nimport BidListingPage from './pages/admin/management/bid/BidListingPage';\r\nimport BidManagementPage from './pages/admin/management/bid/BidManagementPage';\r\nimport BidReportPage from './pages/admin/management/bid/BidReportPage';\r\nimport BenchmarkPage from './pages/admin/management/client/BenchmarkPage';\r\n// import SmallBusinessResourcesPage from './pages/cms/pages/SmallBusinessResourcesPage';\r\n// import EducationPage from './pages/cms/pages/EducationPage';\r\n// import LifestyleAndCommunityPage from './pages/cms/pages/LifestyleAndCommunityPage';\r\n// BLOGS\r\nimport BlogListingPage from './pages/cms/management/blog/BlogListingPage';\r\nimport BlogManagementPage from './pages/cms/management/blog/BlogManagementPage';\r\nimport BlogsAndReviewsListingPage from './pages/cms/pages/BlogsAndReviewsListingPage';\r\nimport DynamicCMSPage from './pages/cms/pages/DynamicCMSPage';\r\nimport Overlay from './components/Overlay';\r\n// SERVICES\r\nimport * as homeService from './services/cms/homeService';\r\n\r\nconst initialCMSInfo = {\r\n appStoreLink: '',\r\n city: '',\r\n companyIconPath: '',\r\n companyLogoPath: '',\r\n companyName: '',\r\n emailAddress: '',\r\n facebookLink: '',\r\n googleMapLink: '',\r\n googlePlayStoreLink: '',\r\n instagramLink: '',\r\n linkedInLink: '',\r\n menuItems: [],\r\n pages: [],\r\n footerItems: [],\r\n phoneNumber: '',\r\n primaryWeekDayHours: '',\r\n primaryWeekEndHours: '',\r\n secondaryWeekDayHours: '',\r\n secondaryWeekEndHours: '',\r\n state: '',\r\n streetAddress1: '',\r\n streetAddress2: '',\r\n twitterLink: '',\r\n youtubeLink: '',\r\n zipCode: '',\r\n};\r\n\r\nconst Routes = (props) => {\r\n const { auth } = props;\r\n const [isAuthorized, setIsAuthorized] = useState(true);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [cmsInfo, setCmsInfo] = useState(initialCMSInfo);\r\n const { pathname } = useLocation();\r\n\r\n useEffect(() => {\r\n fetchCMSInfoAndValidate();\r\n }, [auth]);\r\n\r\n const fetchCMSInfoAndValidate = async () => {\r\n setIsLoading(true);\r\n validateAccess();\r\n\r\n await homeService.getCMSInfo().then((res) => {\r\n setCmsInfo(res);\r\n }).catch().finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const validateAccess = () => {\r\n if (auth.authToken !== '') {\r\n try {\r\n let decodedToken = jwt_decode(auth.authToken);\r\n setIsAuthorized(!!decodedToken);\r\n } catch (ex) {\r\n setIsAuthorized(false);\r\n }\r\n } else {\r\n setIsAuthorized(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const body = document.querySelector('body');\r\n window.scrollTo(0, 0);\r\n enableBodyScroll(body);\r\n }, [pathname]);\r\n\r\n return (\r\n <>\r\n {\r\n cmsInfo.googleAnalyticsId && (\r\n \r\n \r\n \r\n )\r\n }\r\n \r\n \r\n <>\r\n {\r\n isLoading ? \r\n : (\r\n \r\n \r\n \r\n\r\n {/* CMS PAGES */}\r\n {/* DYNAMIC CMS ROUTING */}\r\n {\r\n cmsInfo.pages.map((page) => (\r\n \r\n ))\r\n }\r\n\r\n \r\n\r\n \r\n\r\n {\r\n isAuthorized\r\n ? (\r\n <>\r\n {/* USERS */}\r\n \r\n\r\n {/* [RESTRICTED] ADMIN ID 1 & USERNAME \"admin\" */}\r\n {(auth && auth.user.id === 1 && auth.user.username === 'admin') && (\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 {/* CMS */}\r\n\r\n {/* MENU ITEMS */}\r\n \r\n\r\n \r\n\r\n \r\n\r\n {/* PAGES */}\r\n \r\n\r\n \r\n\r\n \r\n\r\n {/* BLOGS */}\r\n \r\n\r\n \r\n\r\n \r\n\r\n {/* CONTENT SECTIONS */}\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n {/* BANNER */}\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n {/* ASSETS AND RESOURCES */}\r\n \r\n\r\n {/* FOOTER ITEMS */}\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\nconst mapStateFromProps = (state) => ({ auth: state.auth });\r\n\r\nexport default connect(mapStateFromProps, null)(Routes);","/* eslint-disable import/no-unresolved */\r\n// DEPENDENCIES\r\nimport React from 'react';\r\nimport HttpsRedirect from 'react-https-redirect';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport Routes from './Routes';\r\n// CUSTOM COMPONENTS\r\n// STYLESHEETS\r\nimport './App.scss';\r\nimport 'react-table/react-table.css';\r\n// import './assets/css/main.css';\r\n// import './assets/custom/custom.css';\r\n\r\nconst App = () => (\r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default App;","const reportWebVitals = (onPerfEntry) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({\r\n getCLS,\r\n getFID,\r\n getFCP,\r\n getLCP,\r\n getTTFB\r\n }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;","// DEPENDENCIES\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { PersistGate } from 'redux-persist/integration/react';\r\nimport App from './app/App';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport store, { persistor } from './app/redux/store';\r\n\r\nconst { PUBLIC_URL } = process.env;\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\nreportWebVitals();"],"sourceRoot":""}