{"version":3,"sources":["assets/logo.png","logo.svg","Components/ErrorMessage.js","Components/GenericTextArea.js","redux/constants.js","redux/actions.js","Components/CommonModal.js","assets/avatar.jpeg","assets/document.png","Components/Select.js","Components/Loader.js","utils/validation.js","Components/CreateCourse.js","assets/svgs/upgrade.svg","Components/Table.js","Components/Error.js","screens/PlayList.js","Components/VideoUploader.js","assets/videocamera.jpg","assets/videos/mov_bbb.mp4","assets/plus.png","assets/minus.png","Components/PdfViewer.js","Components/VideoList.js","Components/CarouselItem.js","Components/TopCarouselUploader.js","screens/TopCarousel.js","Components/CreateTrainer.js","assets/svgs/check.svg","assets/svgs/cancel.svg","screens/Trainers.js","assets/svgs/audio-course.svg","assets/svgs/trainer.svg","assets/svgs/coupon.svg","assets/svgs/actionable-insights.svg","History.js","screens/Demo.js","Components/AddQuestionModal.js","screens/QuestionBank.js","Components/VideoBankSelectType.js","Components/AddQuestionBankModal.js","screens/VideoBank.js","Components/UploadImageModal.js","screens/ActionableInsight.js","Components/ActionDialog.js","config/index.js","services/index.js","screens/Users.js","Components/GrantPremiumModal.js","hooks/usePrevious.js","screens/Coupon.js","screens/Login.js","screens/UserDashboard.js","Components/NotificationList.js","screens/Notification.js","Components/UploadPDFModal.js","screens/Pdf.js","Components/ChangePassword.js","screens/UserChangePassword.js","Components/TimerButton.js","screens/Otp.js","screens/ForgotPassword.js","screens/ForceChangePassword.js","screens/KeyConcept.js","Router.js","redux/auth/reducer.js","redux/course/reducer.js","redux/books/reducer.js","redux/system/reducer.js","redux/config/reducer.js","redux/auth/actions.js","redux/config/actions.js","redux/course/actions.js","redux/books/actions.js","redux/rootSaga.js","redux/store.js","redux/rootReducer.js","App.js","reportWebVitals.js","index.js"],"names":["useStyles","makeStyles","theme","errorMessage","fontSize","color","ErrorMessage","_ref","error","classes","_jsx","_Fragment","children","className","inputWrapper","display","flex","flexDirection","padding","border","borderRadius","marginBottom","textarea","outline","fontFamily","marginTop","textareaHeight","height","title","GenericTextArea","_ref$handleChange","handleChange","value","placeholder","name","_ref$isBigger","isBigger","_ref$style","style","_jsxs","_objectSpread","onChange","e","target","CREATE_TRAINER_REQUEST","CREATE_TRAINER_SUCCESS","CREATE_TRAINER_ERROR","CREATE_COURSE_REQUEST","CREATE_COURSE_SUCCESS","CREATE_COURSE_ERROR","UPDATE_COURSE_REQUEST","UPDATE_TRAINER_REQUEST","GET_COURSELIST_REQUEST","GET_COURSELIST_SUCCESS","GET_COURSELIST_ERROR","GET_TRAINERS_REQUEST","GET_TRAINERS_SUCCESS","GET_TRAINERS_ERROR","UPLOAD_VIDEO_REQUEST","UPLOAD_VIDEO_SUCCESS","UPLOAD_VIDEO_ERROR","GET_VIDEO_REQUEST","GET_VIDEO_SUCCESS","GET_VIDEO_ERROR","DELETE_VIDEO_REQUEST","UPDATE_VIDEO_REQUEST","CREATE_QUESTION_REQUEST","CREATE_QUESTION_SUCCESS","CREATE_QUESTION_ERROR","GET_CAROUSEL_DATA_REQUEST","GET_CAROUSEL_DATA_SUCCESS","GET_CAROUSEL_DATA_ERROR","GET_VIDEOBANK_REQUEST","GET_VIDEOBANK_SUCCESS","GET_VIDEOBANK_ERROR","ADD_ITEM_VIDEOBANK_REQUEST","ADD_ITEM_VIDEOBANK_SUCCESS","ADD_ITEM_VIDEOBANK_ERROR","DELETE_VIDEOBANK_REQUEST","CREATE_CAROUSEL_DATA_REQUEST","UPDATE_CAROUSEL_DATA_REQUEST","DELETE_CAROUSEL_REQUEST","DELETE_TRAINER_REQUEST","DELETE_COURSE_REQUEST","VIDEO_MODAL_REQUEST","VIDEO_MODAL_SUCCESS","SELECT_QUESTION_CATEGORY_REQUEST","SELECT_QUESTION_CATEGORY_SUCCESS","SET_MODALDATA_REQUEST","SET_MODALDATAL_SUCCESS","GENERIC_LOADER_REQUEST","GENERIC_LOADER_SUCCESS","LOGOUT_REQUEST","GET_USER_LIST_REQUEST","GET_USER_LIST_SUCCESS","GET_USER_LIST_ERROR","GET_QUESTION_CATEGORY_REQUEST","GET_QUESTION_CATEGORY_SUCCESS","GET_QUESTION_CATEGORY_ERROR","CREATE_QUESTION_CATEGORY_REQUEST","CREATE_QUESTION_CATEGORY_SUCCESS","UPDATE_QUESTION_REQUEST","UPDATE_QUESTION_SUCCESS","UPDATE_QUESTION_ERROR","DELETE_QUESTION_CATEGORY_REQUEST","DELETE_QUESTION_CATEGORY_SUCCESS","UPDATE_QUESTION_CATEGORY_REQUEST","UPDATE_QUESTION_CATEGORY_SUCCESS","UPDATE_USER_SUBSCRIPTION_REQUEST","UPDATE_USER_SUBSCRIPTION_SUCCESS","UPDATE_USER_SUBSCRIPTION_ERROR","LOGIN_REQUEST","LOGIN_SUCCESS","LOGIN_ERROR","OTP_VERIFICATION_REQUEST","OTP_VERIFICATION_SUCCESS","OTP_VERIFICATION_ERROR","RESEND_OTP_REQUEST","SET_CURRENT_USER","GET_DASHBOARD_REQUEST","GET_DASHBOARD_SUCCESS","GET_DASHBOARD_ERROR","SEND_NOTIFICATION_REQUEST","SEND_NOTIFICATION_SUCCESS","SEND_NOTIFICATION_ERROR","GET_NOTIFICATION_REQUEST","GET_NOTIFICATION_SUCCESS","GET_NOTIFICATION_ERROR","SET_PAID_CONTENT_REQUEST","UPGRADE_USER_PREMIUM_REQUEST","UPGRADE_USER_PREMIUM_SUCCESS","UPGRADE_USER_PREMIUM_ERROR","UPGRADE_USER_DATA_REQUEST","UPGRADE_USER_DATA_SUCCESS","UPGRADE_USER_DATA_ERROR","GET_BOOKS_REQUEST","GET_BOOKS_SUCCESS","GET_BOOKS_ERROR","POST_BOOKS_REQUEST","POST_BOOKS_SUCCESS","POST_BOOKS_ERROR","PUT_BOOK_REQUEST","PUT_BOOK_SUCCESS","PUT_BOOK_ERROR","DELETE_BOOK_REQUEST","DELETE_BOOK_SUCCESS","DELETE_BOOK_ERROR","CREATE_COUPON_REQUEST","CREATE_COUPON_SUCCESS","CREATE_COUPON_ERROR","GET_COUPON_LIST_REQUEST","GET_COUPON_LIST_SUCCESS","GET_COUPON_LIST_ERROR","POST_GRANT_PREMIUM_REQUEST","POST_GRANT_PREMIUM_SUCCESS","POST_GRANT_PREMIUM_ERROR","POST_GRANT_PREMIUM_MANY_REQUEST","POST_GRANT_PREMIUM_MANY_SUCCESS","POST_GRANT_PREMIUM_MANY_ERROR","GET_ACTIONABLE_INSIGHT_DATA_REQUEST","GET_ACTIONABLE_INSIGHT_DATA_SUCCESS","GET_ACTIONABLE_INSIGHT_DATA_ERROR","POST_ACTIONABLE_INSIGHT_DATA_REQUEST","POST_ACTIONABLE_INSIGHT_DATA_SUCCESS","POST_ACTIONABLE_INSIGHT_DATA_ERROR","PATCH_ACTIONABLE_INSIGHT_DATA_REQUEST","PATCH_ACTIONABLE_INSIGHT_DATA_SUCCESS","PATCH_ACTIONABLE_INSIGHT_DATA_ERROR","DELETE_ACTIONABLE_INSIGHT_DATA_REQUEST","PATCH_ORDER_ACTIONABLE_INSIGHT_DATA_REQUEST","PATCH_ORDER_ACTIONABLE_INSIGHT_DATA_SUCCESS","PATCH_ORDER_ACTIONABLE_INSIGHT_DATA_ERROR","GET_KEY_CONCEPT_DATA_REQUEST","GET_KEY_CONCEPT_DATA_SUCCESS","GET_KEY_CONCEPT_DATA_ERROR","POST_KEY_CONCEPT_DATA_REQUEST","POST_KEY_CONCEPT_DATA_SUCCESS","POST_KEY_CONCEPT_DATA_ERROR","PATCH_KEY_CONCEPT_DATA_REQUEST","PATCH_KEY_CONCEPT_DATA_SUCCESS","PATCH_KEY_CONCEPT_DATA_ERROR","DELETE_KEY_CONCEPT_DATA_REQUEST","PATCH_ORDER_KEY_CONCEPT_DATA_REQUEST","PATCH_ORDER_KEY_CONCEPT_DATA_SUCCESS","PATCH_ORDER_KEY_CONCEPT_DATA_ERROR","GET_TOP_CAROUSEL_DATA_REQUEST","GET_TOP_CAROUSEL_DATA_SUCCESS","GET_TOP_CAROUSEL_DATA_ERROR","POST_TOP_CAROUSEL_DATA_REQUEST","POST_TOP_CAROUSEL_DATA_SUCCESS","POST_TOP_CAROUSEL_DATA_ERROR","PATCH_TOP_CAROUSEL_DATA_REQUEST","PATCH_TOP_CAROUSEL_DATA_SUCCESS","PATCH_TOP_CAROUSEL_DATA_ERROR","DELETE_TOP_CAROUSEL_DATA_REQUEST","PATCH_ORDER_TOP_CAROUSEL_DATA_REQUEST","PATCH_ORDER_TOP_CAROUSEL_DATA_SUCCESS","PATCH_ORDER_TOP_CAROUSEL_DATA_ERROR","PATCH_VIDEO_BANK_DATA_REQUEST","PATCH_ORDER_VIDEO_BANK_DATA_REQUEST","PATCH_ORDER_VIDEO_BANK_DATA_SUCCESS","PATCH_ORDER_VIDEO_BANK_DATA_ERROR","createCourseRequest","createAction","constants","createCourseSuccess","updateCourseRequest","updateCourseSuccess","createTrainerRequest","createTrainerSuccess","createTrainerError","createQuestionRequest","createQuestionSuccess","createQuestionError","updateTrainerRequest","updateTrainerSuccess","updateTrainerError","getVideoBankRequest","getVideoBankSuccess","getVideoBankError","deleteVideobankRequest","deleteVideobankSuccess","getCourseListRequest","getCourseListSuccess","getCourseListError","addItemToVideobankRequest","addItemToVideobankSuccess","deleteVideoSuccess","deleteVideoError","updateVideoRequest","updateVideoSuccess","updateVideoError","getCarouselDataSuccess","getCarouselDataError","createCarouselDataSuccess","createCarouselDataError","getUserListRequest","getUserListSuccess","getUserListError","getQuestionCategoryRequest","getQuestionCategorySuccess","getQuestionCategoryError","createQuestionCategoryRequest","createQuestionCategorySuccess","createQuestionCategoryError","deleteQuestionCategoryRequest","deleteQuestionCategorySuccess","updateQuestionCategoryRequest","updateQuestionCategorySuccess","updateCarouselDataSuccess","deleteCarouselDataSuccess","uploadVideoRequest","uploadVideoSuccess","uploadVideoError","getVideoRequest","getVideoSuccess","getVideoError","getTrainersRequest","getTrainersSuccess","getTrainersError","videoModalRequest","videoModalSuccess","deleteTrainerRequest","deleteTrainerSuccess","selectQuestionCategoryRequest","selectQuestionCategorySuccess","deleteCourseRequest","setModalDataRequest","setModalDataSuccess","updateUserSubscriptionSuccess","updateUserSubscriptionError","updateQuestionRequest","updateQuestionSuccess","updateQuestionError","genericLoaderRequest","genericLoaderSuccess","logoutRequest","loginRequest","loginSuccess","loginError","otpVerificationRequest","otpVerificationSuccess","otpVerificationError","resendOtpRequest","resendOtpSuccess","setCurrentUser","getDashboardRequest","getDashboardSuccess","getDashboardError","sendNotificationdRequest","sendNotificationSuccess","sendNotificationError","getNotificationRequest","getNotificationSuccess","getNotificationError","setPaidContentRequest","upgradeUserPremiumSuccess","upgradeUserPremiumError","upgradeUserDataSuccess","upgradeUserDataError","getBooksRequest","getBooksSuccess","getBooksError","postBooksRequest","postBooksSuccess","postBooksError","deleteBookRequest","deleteBookSuccess","deleteBookError","createCouponRequest","createCouponSuccess","createCouponError","getCouponListRequest","getCouponListSuccess","getCouponListError","postGrantPremiumSuccess","postGrantPremiumError","postGrantPremiumManyRequest","postGrantPremiumManySuccess","postGrantPremiumManyError","getActionableInsightDataRequest","getActionableInsightDataSuccess","getActionableInsightDataError","postActionableInsightDataRequest","postActionableInsightDataSuccess","postActionableInsightDataError","patchActionableInsightDataRequest","patchActionableInsightDataSuccess","patchActionableInsightDataError","deleteActionableInsightDataRequest","deleteActionableInsightDataSuccess","patchOrderActionableInsightDataRequest","patchOrderActionableInsightDataSuccess","patchOrderActionableInsightDataError","getKeyConceptDataRequest","getKeyConceptDataSuccess","getKeyConceptDataError","postKeyConceptDataRequest","postKeyConceptDataSuccess","postKeyConceptDataError","patchKeyConceptDataRequest","patchKeyConceptDataSuccess","patchKeyConceptDataError","deleteKeyConceptDataRequest","deleteKeyConceptDataSuccess","patchOrderKeyConceptDataRequest","patchOrderKeyConceptDataSuccess","patchOrderKeyConceptDataError","getTopCarouselDataRequest","getTopCarouselDataSuccess","getTopCarouselDataError","postTopCarouselDataRequest","postTopCarouselDataSuccess","postTopCarouselDataError","patchTopCarouselDataRequest","patchTopCarouselDataSuccess","patchTopCarouselDataError","deleteTopCarouselDataRequest","deleteTopCarouselDataSuccess","patchOrderTopCarouselDataRequest","patchOrderTopCarouselDataSuccess","patchOrderTopCarouselDataError","patchVideoBankDataSuccess","patchVideoBankDataError","patchOrderVideoBankDataRequest","patchOrderVideoBankDataSuccess","patchOrderVideoBankDataError","modal","alignItems","justifyContent","paper","_defineProperty","backgroundColor","palette","background","boxShadow","shadows","width","breakpoints","down","CommonModal","_ref$onClose","onClose","dispatch","useDispatch","isModal","useSelector","state","config","videoModal","isVisible","handleClose","useEffect","Modal","open","closeAfterTransition","BackdropComponent","Backdrop","BackdropProps","timeout","Fade","in","formControl","margin","spacing","minWidth","maxWidth","borderBottom","chips","flexWrap","chip","noLabel","multiSelect","pdfIcon","pdfWrapper","pdfInfo","selectAllView","MenuProps","PaperProps","maxHeight","ITEM_HEIGHT","MultipleSelect","_ref$list","list","_ref$onSelect","onSelect","_ref$multiple","multiple","nameKey","_ref$type","type","_ref$selectedKeys","selectedKeys","isToUpdate","_ref$returnKey","returnKey","_ref$defaultSelect","defaultSelect","_ref$defaultSelectInd","defaultSelectIndex","_ref$disabled","disabled","_ref$invokeOnSelectOn","invokeOnSelectOnInitialisation","_useState","useState","_useState2","_slicedToArray","personName","setPersonName","_useState3","_useState4","selectedItems","setItem","_useState5","_useState6","isAllSelect","setAllSelect","length","key","find","a","_id","allnames","map","element","includes","push","_list$defaultSelectIn","_list$defaultSelectIn2","_list$","_list$2","FormControl","Select","labelId","renderValue","selected","join","onClick","keys","allNames","Checkbox","checked","FixedSizeList","itemCount","itemSize","_ref2","_item$videoLink","index","item","isPdf","videoLink","_keys","_toConsumableArray","itemIndex","findIndex","filter","splice","MenuItem","ListItemText","primary","controls","src","subTitle","concat","root","small","big","Loader","_ref$value","_ref$color","_ref$variant","variant","clsx","CircularProgress","validator","errors","hasOwnProperty","undefined","trim","email","password","description","question","content","about","questionCategory","subtitle","file","url","thumbnail","role","Array","isArray","videos","videoIds","trainerId","videoId","courseIds","modalHeader","closeIcon","cursor","contentWrapper","overflowY","mainContent","lable","fontWeight","avatarWrapper","position","tempAvatar","pencilWrapper","right","top","pencilIcon","inputsWrapper","checkboxWrapper","footer","borderTop","button","input","zIndex","left","opacity","initialState","image","CreateTrainerModal","_state$errors","_state$errors2","_state$errors3","_state$errors4","_state$errors5","_state$errors6","trainersList","course","allTrainers","isLoading","modalData","setState","Object","imageUrl","aboutTrainer","isSuccess","stateData","CloseIcon","event","files","reader","FileReader","onload","result","readAsDataURL","CreateIcon","data","formdata","FormData","append","i","delete","courseId","table","headerText","deleteIcon","tableRow","tableLoader","selectedActionButton","iconButton","paddingRight","downgradeAllButton","marginRight","GenericTable","ref","_ref$headers","headers","cellData","_ref$keys","_ref$handleDelete","handleDelete","_ref$deleteIcon","_ref$editIcon","editIcon","editIconComponent","_ref$headerAlign","headerAlign","_ref$tableCellAlign","tableCellAlign","_ref$multipleSelect","multipleSelect","downgradeAllAction","handleDowngradeAllAction","deleteAllAction","handleDeleteAllAction","upgradeAllAction","handleUpgradeAllAction","itemToDelete","setItemToDelete","hasMore","setHasMore","page","setPage","_useState7","slice","_useState8","loadedTableData","setLoadedTableData","_useState9","_useState10","itemSelectedList","setItemSelectedList","_useState11","_useState12","masterCheckboxChecked","setMasterCheckboxChecked","handleLoadMore","setTimeout","newData","prevData","getRowItem","row","getEditComponet","React","useImperativeHandle","changeItemSelectedList","newValue","Button","ArrowDownwardIcon","DeleteIcon","ArrowUpwardIcon","InfiniteScroll","pageStart","loadMore","loader","initialLoad","TableContainer","component","Paper","Table","TableHead","TableRow","TableCell","scope","isChecked","headerTitle","align","TableBody","newItemSelectedList","some","handleSelectCheckBox","forwardRef","message","Error","_ref$message","titleWrapper","textAlign","text","secondary","playlistTitle","newPlaylistTitle","avtar","fab","bottom","courses","handleOpenModal","CreatePlayListModal","rows","arguments","defaultAvtar","makeTableData","handleEdit","isError","Fab","size","AddIcon","_descriptionWrapper","uploadWrapper","uploadingWrapper","uploadIconUnderline","uploadIconUnderlineSmall","uploadIcon","transform","uploadIconSmall","uploadIconContainer","uploadIconContainerSmall","dragTag","footerContent","details","sectionTitle","thumbnailDescription","descriptionWrapper","titleAreaWrapper","addThumbnail","uploadThumbnailText","checkboxWrapperCarousel","checkboxWrapperVideoBank","videoBankTypeWrapper","paddingBottom","uploading","VideoUploader","handleUpload","isVisibleModal","handleResetHandle","_objectSpread2","video","accept","capture","AddPhotoAlternateIcon","Fragment","ForwardIcon","payload","typeUpdate","formData","console","log","pdfjs","GlobalWorkerOptions","workerSrc","version","pdfDocuement","documentWrapper","overflow","fullScreenIcon","pageControlIcon","leftIcon","rightIcon","nonFullScreenIcon","nonFullScreenIconView","videoDetailsDiv","videoTitle","uploadedTime","createIcon","marginLeft","iconWrapper","pdfViewer","itemWrapper","objectFit","wrapper","iconsWrapper","textContentWrapper","CarouselItem","_data$video","_data$video2","_data$video3","_data$video4","_ref$showEdit","handleChangeVisibility","showEdit","alt","whiteSpace","textOverflow","caption","fontStyle","WebkitLineClamp","WebkitBoxOrient","moment","createdAt","format","divider","selectWrapper","imageUploadWrapper","paddingTop","appearInCarousel","selectionType","TopCarouselUploader","_objectSpread3","toast","autoClose","hideProgressBar","closeOnClick","pauseOnHover","draggable","progress","uploadType","paperOne","container","childContainer","paperWrapper","videocamera","paperWrapperTwo","paperTwo","minHeight","loaderWrapper","TopCarousel","topCarousel","mediaList","setMediaList","useMemo","handleEditMedia","handleDeleteImage","id","handleChangeImageVisibility","DragDropContext","onDragEnd","source","destination","reorderedItems","_reorderedItems$splic","movedItem","newOrder","sort_index","order","Droppable","droppableId","provided","innerRef","droppableProps","Draggable","draggableId","draggableProps","dragHandleProps","_g","verified","profilePicture","isVerified","inputProps","assign","bind","prototype","call","apply","this","excluded","sourceKeys","indexOf","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgCheck","svgRef","titleId","props","enableBackground","viewBox","xmlns","d","fill","_g2","_g3","_g4","_g5","_g6","_g7","_g8","_g9","_g10","_g11","_g12","_g13","_g14","_g15","_g16","SvgCancel","xmlnsXlink","x","y","xmlSpace","Trainers","rating","profile","reduce","b","VerifiedBadge","UnverifiedBadge","_path2","SvgAudioCourse","SvgTrainer","SvgCoupon","SvgActionableInsights","history","createBrowserHistory","drawerWidth","appBar","drawer","transition","transitions","create","easing","sharp","duration","leavingScreen","appBarShift","enteringScreen","menuButton","hide","flexShrink","drawerOpen","drawerClose","overflowX","up","toolbar","mixins","flexGrow","appLogo","link","textDecoration","profileMenu","profileName","textTransform","routes","route","iconComponent","DashboardIcon","ViewCarouselIcon","OndemandVideoIcon","ActionableInsightsIcon","VideoLibraryIcon","HelpIcon","CourseIcon","TrainerIcon","PeopleIcon","NotificationsIcon","PictureAsPdf","CouponIcon","MiniDrawer","_clsx3","_clsx4","useTheme","_React$useState","_React$useState2","setOpen","loginData","auth","_React$useState3","_React$useState4","anchorEl","setAnchorEl","location","pathname","CssBaseline","AppBar","Toolbar","IconButton","edge","MenuIcon","Link","to","Typography","noWrap","currentUser","currentTarget","autoCapitalize","AccountCircle","Menu","anchorOrigin","vertical","horizontal","keepMounted","transformOrigin","Boolean","window","localStorage","removeItem","Drawer","direction","ChevronRightIcon","ChevronLeftIcon","Divider","List","router","ListItem","ListItemIcon","categoryWrapper","addCategory","addCategoryWrapper","addQuestion","categoryId","AddQuestionModal","_selectedQuestionCate","_selectedQuestionCate2","createQuestion","questionCategories","selectedQuestionCategory","isCategoriesAvailable","subCategories","handleReset","parentCategoryId","update","videoWrapper","videoDetailsWrapper","questionNo","categoryName","categoryItem","icon","noDataText","itemIconsWrapper","paddingLeft","itemIconsWrapperActive","itemIconWrapepr","questionInput","disableTextArea","updateIconWrapper","updateButton","QuestionBank","_selectedQuestionCate3","itemsToDelete","isGenericLoading","updateQuestionState","updateQuestion","isDataForTheCategory","freeSelectedItems","setFreeSelectedItems","userlist","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","isSccuess","stop","handeChangeCategory","GetQustion","parentIndex","isQuestionSelected","numberOfQuestions","questionState","setQuestionState","questionId","categoryExistsId","newItems","isQuestionExistsIndex","childs","free","handleSelectFreeQuestion","String","JSON","stringify","handleNotifyUsers","_selectedQuestionCate4","_selectedQuestionCate5","_item$questions","_item$questions2","isSubcategorySelected","isSubcategorySelectedIndex","freeItems","questions","initialCategoryPaidStatus","categoryExistsIndex","handleSelectCategory","isQuestionEditing","handleEditCategory","handleDeleteCategory","_item$questions3","selectedQuestionIndex","renderQuestionBank","contentData","UpdateIcon","videoBankType","VideoBankSelectType","_videoDetailsWrapper","pdfIconWrapper","keyConceptTypeWrapper","emptyContent","Key","videobank","videoList","setVideoList","sortedData","sort","type_sort_index","handleEditVideo","handleDeleteVideo","handleDragEnd","FileUploader","renderVideoBank","UploadImageModal","statedata","ActionableInsight","actionableInsight","imageList","setImageList","AlertDialog","header","body","primaryText","secondaryText","onPrimaryBtnClick","onSecondaryBtnClick","Dialog","DialogTitle","DialogContent","DialogContentText","DialogActions","autoFocus","BASE_URL","process","fireAjax","method","URL","loginType","axios","get","post","put","patch","require","searchTitle","searchFilter","gap","dateFilter","orderByFilter","orderByFilterSelect","totalRecords","Users","openDeleteUserListConfirmDialog","setOpenDeleteUserListConfirmDialog","openDowngradeUserListConfirmDialog","setOpenDowngradeUserListConfirmDialog","isMounted","setIsMounted","sortedUserData","setSortedUserData","orderBy","useRef","searchInput","subtract","createdAtFrom","setCreatedAtFrom","createdAtTo","setCreatedAtTo","sortOrder","_useState13","_useState14","userSelectedList","setUserSelectedList","userTableRef","_userlist$data","getSubType","subscription","sub_type","string","charAt","toUpperCase","getSubDate","paypal_subscription_id","sub_end_date","onCloseDeleteUserListConfirmDialog","onCloseDowngradeUserListConfirmDialog","userIds","user","then","response","current","success","catch","finally","TextField","label","fullWidth","evt","defaultValue","InputLabelProps","shrink","InputLabel","SimpleSelect","isBookDownloaded","serialNumber","toLowerCase","GrantPremiumModal","searchData","Date","validTill","setValidTill","isEdited","setIsEdited","today","toISOString","split","min","end_date","search_data","usePrevious","a11yProps","tabContainer","couponForm","dateRange","couponTitle","newCoupon","btnIcon","Coupon","openDeleteDialog","setOpenDeleteDialog","openGrantPremiumDialog","setOpenGrantPremiumDialog","validFrom","validTo","quantityCoupon","validDuration","couponData","setCouponData","activeCouponId","setActiveCouponId","_useState15","_useState16","_useState17","_useState18","_useState19","_useState20","setSearchData","_useState21","_useState22","setValue","coupons","grantPremium","previousGrantPremiumLoading","freeUsers","getDurationLabel","capitalizeFirstLetter","onCloseDeleleDialogClick","Tabs","Tab","code","startDate","start_date","endDate","quantity","makeCouponTableData","updateIcon","paperView","required","makeUserTableData","Login","useHistory","contentEditable","onSubmit","preventDefault","href","detailsView","UserDashboard","userDashboardData","Container","total","paid","bookDownloadCount","active_users","android_users","ios_users","NotificationList","activeUserId","setActiveUserId","notificationList","fileImg","selectUser","SendNotification","sendNotification","fileUrl","userId","array","results","getChunk","forEach","userChunk","_paper","titleField","dropZone","uploadZone","uploadText","uploadButton","imageContainer","imagePaper","UploadPdfModal","showUploadPDFModal","handleToggleModal","uploadedBookData","handleFileDrop","handleFileInputChange","handleFileImageUpload","handleBookUpload","setUploadedBookData","fileUploadRef","uploadImagedRef","minRows","onDrop","onDragOver","book","CloudUploadIcon","click","Pdf","setShowUploadPDFModal","acceptedFiles","getBooks","books","dataTransfer","ChangePassword","currentPassword","newPassword","newPasswordConfirmation","validationRules","number","val","specialChar","uppercase","lowercase","passwordMatch","validatePassword","test","values","every","rule","entries","_ref3","isDisabled","isSubmitDisabled","UserChangePassword","TimerButton","_ref$countdownDuratio","countdownDuration","onResendClick","buttonLabel","countdown","setCountdown","isButtonDisabled","setIsButtonDisabled","startCountdown","countdownInterval","setInterval","prevCountdown","clearInterval","Otp","otpData","otpCode","ForgotPassword","ForceChangePassword","loginFlow","KeyConcept","keyConcept","handleChangeVideoVisibility","AppNavigator","parse","getItem","ConnectedRouter","authenticated","Switch","Route","exact","path","PlayList","VideoBank","subscriptionStatus","handleActions","_handleActions","action","$set","createTrainer","createCourses","heroCarousel","createVideos","_action$payload","categoryIndex","addItemTovideobank","_action$payload2","_action$payload3","upgradeUserPremiun","upgradeUserData","createActionableInsight","updateActionableInsight","orderActionableInsight","createKeyConcept","updateKeyConcept","orderKeyConcept","createTopCarousel","updateTopCarousel","orderTopCarousel","updateVideoBank","orderVideoBank","postBooks","putBooks","deleteBooks","systemStatus","updateUserSubscriptionRequest","_marked2","_marked3","_marked4","_marked5","_marked6","_marked7","sendNotificationRequest","_marked8","configure","LOCAL_STORAGE_CURRENT_USER","sent","actions","t0","_marked","_e$response","_e$response$data","_context2","nextLoginFlow","_context3","currentUserData","_e$response2","_e$response2$data","_context4","_e$response3","_e$response3$data","_context5","_e$response4","_e$response4$data","_context6","_e$response5","_e$response5$data","_context7","_e$response6","_e$response6$data","_context8","createCoursesrRequest","updateCoursesrRequest","deleteCoursesRequest","deleteVideoRequest","_marked9","createCarouselDataRequest","_marked10","deleteCarouselDataRequest","_marked11","updateCarouselDataRequest","_marked12","getCarouselDataRequest","_marked13","_marked14","_marked15","_marked16","getViodesRequest","_marked17","_marked18","_marked19","deleteVideoBankRequest","_marked20","addItemToVideoBankRequest","_marked21","_marked22","_marked23","_marked24","_marked25","_marked26","_marked27","updateQuestionyRequest","_marked28","_marked29","upgradeUserPremiumRequest","_marked30","upgradeUserDataRequest","_marked31","_marked32","_marked33","postGrantPremiumRequest","_marked34","_marked35","_marked36","_marked37","_marked38","_marked39","_marked40","_marked41","_marked42","_marked43","_marked44","_marked45","_marked46","_marked47","_marked48","_marked49","_marked50","patchVideoBankDataRequest","_marked51","trainers","finish","vidoes","sliderData","_context9","reverse","_context10","_context11","_context12","_context13","_newData","_newData2","_context14","bankType","_context15","_context16","_context17","_context18","_context19","_context20","_action$payload$data","_action$payload2$data","_action$payload3$data","_action$payload4","_action$payload4$data","_action$payload5","_action$payload5$data","_context21","selectIndex","_context22","_context23","_context24","_context25","_context26","_context27","_context28","_context29","_action$payload6","userList","premiumEmail","userData","_context30","emailObj","_context31","_context32","_context33","_context34","_context35","_context36","_context37","_context38","_context39","_context40","_context41","_context42","_context43","_context44","_context45","_context46","_context47","_context48","_context49","_context50","_context51","bookData","watchActions","rootSaga","takeLatest","all","reduxRouterMiddleware","routerMiddleware","middleware","sagaMiddleware","createSagaMiddleware","store","createStore","combineReducers","systems","connectRouter","applyMiddleware","run","App","Provider","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","document","getElementById"],"mappings":"gTAAe,G,OCAA,I,ODAA,IAA0B,kC,sCEInCA,EAAYC,aAAW,SAACC,GAAK,MAAM,CACrCC,aAAa,CACTC,SAAU,GACVC,MAAO,OAEZ,IAQY,SAASC,EAAYC,GAAW,IAATC,EAAKD,EAALC,MAC5BC,EAAUT,IAChB,OACGU,cAAAC,WAAA,CAAAC,SACEJ,GAAkB,KAATA,GAAgBE,cAAA,OAAKG,UAAWJ,EAAQN,aAAaS,SAAGJ,KAG1E,CCnBA,IAAMR,EAAYC,aAAW,SAACC,GAAK,MAAM,CACrCY,aAAa,CACTC,QAAQ,OACRC,KAAK,EACLC,cAAc,SACdC,QAAQ,GACRC,OAAO,4BACPC,aAAa,EACbC,aAAa,GACb,UAAU,CACRF,OAAO,6BAET,iBAAiB,CACfA,OAAO,8BAGXG,SAAS,CACPH,OAAO,OACPI,QAAQ,OACRR,QAAQ,OACRC,KAAK,EACLQ,WAAW,QACXC,UAAU,IAEZC,eAAe,CACXC,OAAO,QAEXC,MAAM,CACFxB,SAAS,QAElB,IAEc,SAASyB,EAAetB,GASnC,IAADuB,EAAAvB,EARCwB,oBAAY,IAAAD,EAAE,kBAAK,IAAI,EAAAA,EACvBE,EAAKzB,EAALyB,MACAC,EAAW1B,EAAX0B,YACAL,EAAKrB,EAALqB,MACAM,EAAI3B,EAAJ2B,KAAIC,EAAA5B,EACJ6B,gBAAQ,IAAAD,GAAQA,EAChB3B,EAAKD,EAALC,MAAK6B,EAAA9B,EACL+B,aAAK,IAAAD,EAAG,CAAC,EAACA,EAEJ5B,EAAUT,IAMhB,OAAQuC,eAAA5B,WAAA,CAAAC,SAAA,CACJ2B,eAAA,OAAKD,MAAOF,EAAQI,YAAA,CAAIb,OAAO,QAAWW,GAAKE,YAAA,GAAQF,GAAQzB,UAAWJ,EAAQK,aAAaF,SAAA,CAC1FgB,GAASlB,cAAA,OAAKG,UAAWJ,EAAQmB,MAAMhB,SAAEgB,IAC9ClB,cAAA,YAAUwB,KAAMA,EAAMO,SAPT,SAACC,GACdX,EAAaW,EAAEC,OAAOX,MAAOE,EACjC,EAK8CF,MAAOA,EAAOC,YAAaA,EAAapB,UAAWJ,EAAQa,cAErGZ,cAACJ,EAAY,CAACE,MAAOA,MAG7B,C,gDCjDaoC,EAAyB,yBACzBC,EAAyB,yBACzBC,EAAuB,uBAEvBC,EAAwB,wBACxBC,EAAwB,wBACxBC,EAAsB,sBAEtBC,EAAwB,wBAIxBC,EAAyB,yBAIzBC,EAAyB,yBACzBC,EAAyB,yBACzBC,EAAuB,uBAEvBC,EAAuB,uBACvBC,EAAuB,uBACvBC,EAAqB,qBAErBC,EAAuB,uBACvBC,EAAuB,uBACvBC,EAAqB,qBAErBC,EAAoB,oBACpBC,EAAoB,oBACpBC,EAAkB,kBAElBC,EAAuB,uBAIvBC,EAAuB,uBAIvBC,EAA0B,0BAC1BC,EAA0B,0BAC1BC,EAAwB,wBAExBC,EAA4B,4BAC5BC,EAA4B,4BAC5BC,EAA0B,0BAE1BC,EAAwB,wBACxBC,EAAwB,wBACxBC,EAAsB,sBAEtBC,EAA6B,6BAC7BC,GAA6B,6BAC7BC,GAA2B,2BAE3BC,GAA2B,2BAG3BC,GAA+B,+BAI/BC,GAA+B,+BAG/BC,GAA0B,0BAG1BC,GAAyB,yBAGzBC,GAAwB,wBAGxBC,GAAsB,sBACtBC,GAAsB,sBAEtBC,GACX,mCACWC,GACX,mCAEWC,GAAwB,wBACxBC,GAAyB,yBAEzBC,GAAyB,yBACzBC,GAAyB,yBAEzBC,GAAiB,iBAGjBC,GAAwB,wBACxBC,GAAwB,wBACxBC,GAAsB,sBAEtBC,GAAgC,gCAChCC,GAAgC,gCAChCC,GAA8B,8BAE9BC,GACX,mCACWC,GACX,mCAGWC,GAA0B,0BAC1BC,GAA0B,0BAC1BC,GAAwB,wBAExBC,GACX,mCACWC,GACX,mCAEWC,GACX,mCACWC,GACX,mCAEWC,GACX,mCACWC,GACX,mCACWC,GAAiC,iCAEjCC,GAAgB,gBAChBC,GAAgB,gBAChBC,GAAc,cAEdC,GAA2B,2BAC3BC,GAA2B,2BAC3BC,GAAyB,yBAEzBC,GAAqB,qBAIrBC,GAAmB,mBAEnBC,GAAwB,wBACxBC,GAAwB,wBACxBC,GAAsB,sBAEtBC,GAA4B,4BAC5BC,GAA4B,4BAC5BC,GAA0B,0BAE1BC,GAA2B,2BAC3BC,GAA2B,2BAC3BC,GAAyB,yBAEzBC,GAA2B,2BAI3BC,GAA+B,+BAC/BC,GAA+B,+BAC/BC,GAA6B,6BAE7BC,GAA4B,4BAC5BC,GAA4B,4BAC5BC,GAA0B,0BAE1BC,GAAoB,oBACpBC,GAAoB,oBACpBC,GAAkB,kBAElBC,GAAqB,qBACrBC,GAAqB,qBACrBC,GAAmB,mBAEnBC,GAAmB,mBACnBC,GAAmB,mBACnBC,GAAiB,iBAEjBC,GAAsB,sBACtBC,GAAsB,sBACtBC,GAAoB,oBAEpBC,GAAwB,wBACxBC,GAAwB,wBACxBC,GAAsB,sBAEtBC,GAA0B,0BAC1BC,GAA0B,0BAC1BC,GAAwB,wBAExBC,GAA6B,6BAC7BC,GAA6B,6BAC7BC,GAA2B,2BAE3BC,GACX,kCACWC,GACX,kCACWC,GAAgC,gCAGhCC,GACX,sCACWC,GACX,sCACWC,GACX,oCAEWC,GACX,uCACWC,GACX,uCACWC,GACX,qCAEWC,GACX,wCACWC,GACX,wCACWC,GACX,sCAEWC,GACX,yCAIWC,GACX,8CACWC,GACX,8CACWC,GACX,4CAGWC,GAA+B,+BAC/BC,GAA+B,+BAC/BC,GAA6B,6BAE7BC,GAAgC,gCAChCC,GAAgC,gCAChCC,GAA8B,8BAE9BC,GAAiC,iCACjCC,GAAiC,iCACjCC,GAA+B,+BAE/BC,GACX,kCAIWC,GACX,uCACWC,GACX,uCACWC,GACX,qCAGWC,GAAgC,gCAChCC,GAAgC,gCAChCC,GAA8B,8BAE9BC,GAAiC,iCACjCC,GAAiC,iCACjCC,GAA+B,+BAE/BC,GACX,kCACWC,GACX,kCACWC,GAAgC,gCAEhCC,GACX,mCAIWC,GACX,wCACWC,GACX,wCACWC,GACX,sCAGWC,GAAgC,gCAIhCC,GACX,sCACWC,GACX,sCACWC,GACX,oCCvSWC,IARoBC,YDCE,uBCAFA,YDCE,uBCAJA,YDCE,qBCCAA,YDCE,uBCAFA,YDCE,uBCAJA,YDCE,qBCCEA,YACjCC,IAEWC,GAAsBF,YACjCC,GAIWE,IAFoBH,YAAaC,GAEXD,YACjCC,IAEWG,GAAsBJ,YDDE,yBCMxBK,IAFoBL,YDHE,uBCKCA,YAClCC,IAEWK,GAAuBN,YAClCC,GAEWM,GAAqBP,YAAaC,GAElCO,GAAwBR,YACnCC,GAEWQ,GAAwBT,YACnCC,GAEWS,GAAsBV,YACjCC,GAGWU,GAAuBX,YAClCC,GAEWW,GAAuBZ,YDvBE,0BC0BzBa,GAAqBb,YDzBE,wBC2BvBc,GAAsBd,YACjCC,GAEWc,GAAsBf,YACjCC,GAEWe,GAAoBhB,YAAaC,GAEjCgB,GAAyBjB,YACpCC,IAEWiB,GAAyBlB,YDKE,4BCD3BmB,GAAuBnB,YAClCC,GAEWmB,GAAuBpB,YAClCC,GAEWoB,GAAqBrB,YAAaC,GAElCqB,GAA4BtB,YACvCC,GAEWsB,GAA4BvB,YACvCC,IAOWuB,IAL0BxB,YACrCC,IAGgCD,YAAaC,GACbD,YD1CE,yBC2CvByB,GAAmBzB,YD1CE,sBC4CrB0B,GAAqB1B,YAAaC,GAClC0B,GAAqB3B,YD1CE,wBC2CvB4B,GAAmB5B,YD1CE,sBC+CrB6B,IAHyB7B,YACpCC,GAEoCD,YACpCC,IAEW6B,GAAuB9B,YAClCC,GAMW8B,IAH4B/B,YACvCC,IAEuCD,YDnCG,iCCsC/BgC,GAA0BhC,YDrCG,8BCyC7BiC,GAAqBjC,YAAaC,IAClCiC,GAAqBlC,YAAaC,IAClCkC,GAAmBnC,YAAaC,IAEhCmC,GAA6BpC,YACxCC,IAEWoC,GAA6BrC,YACxCC,IAEWqC,GAA2BtC,YACtCC,IAGWsC,GAAgCvC,YAC3CC,IAEWuC,GAAgCxC,YAC3CC,IAEWwC,GAA8BzC,YDlBG,kCCsBjC0C,GAAgC1C,YAC3CC,IAEW0C,GAAgC3C,YAC3CC,IAGW2C,GAAgC5C,YAC3CC,IAEW4C,GAAgC7C,YAC3CC,IAMW6C,IAH4B9C,YACvCC,IAEuCD,YD/EG,iCCsF/B+C,IAH4B/C,YACvCC,IAEuCD,YDnFF,4BCuF1BgD,GAAqBhD,YAAaC,GAClCgD,GAAqBjD,YAAaC,GAClCiD,GAAmBlD,YAAaC,GAEhCkD,GAAkBnD,YAAaC,GAC/BmD,GAAkBpD,YAAaC,GAC/BoD,GAAgBrD,YAAaC,GAE7BqD,GAAqBtD,YAAaC,GAClCsD,GAAqBvD,YAAaC,GAClCuD,GAAmBxD,YAAaC,GAEhCwD,GAAoBzD,YAAaC,IACjCyD,GAAoB1D,YAAaC,IAEjC0D,GAAuB3D,YAClCC,IAEW2D,GAAuB5D,YDtGE,0BC0GzB6D,GAAgC7D,YAC3CC,IAEW6D,GAAgC9D,YAC3CC,IAGW8D,GAAsB/D,YACjCC,IAMW+D,IAJsBhE,YDjHE,yBCqHFA,YACjCC,KAEWgE,GAAsBjE,YACjCC,IAMWiE,IAHgClE,YAC3CC,IAE2CD,YAC3CC,KAEWkE,GAA8BnE,YACzCC,IAGWmE,GAAwBpE,YACnCC,IAEWoE,GAAwBrE,YACnCC,IAEWqE,GAAsBtE,YACjCC,IAGWsE,GAAuBvE,YAClCC,IAEWuE,GAAuBxE,YAClCC,IAGWwE,GAAgBzE,YAAaC,IAG7ByE,IAFgB1E,YDvIC,kBCyIFA,YAAaC,KAC5B0E,GAAe3E,YAAaC,IAC5B2E,GAAa5E,YAAaC,IAE1B4E,GAAyB7E,YACpCC,IAEW6E,GAAyB9E,YACpCC,IAEW8E,GAAuB/E,YAClCC,IAGW+E,GAAmBhF,YAAaC,IAChCgF,GAAmBjF,YD3GE,sBC8GrBkF,IAFiBlF,YD3GE,oBC6GFA,YAAaC,KAE9BkF,GAAsBnF,YACjCC,IAEWmF,GAAsBpF,YACjCC,IAEWoF,GAAoBrF,YAAaC,IAEjCqF,GAA2BtF,YACtCC,IAEWsF,GAA0BvF,YACrCC,IAEWuF,GAAwBxF,YACnCC,IAGWwF,GAAyBzF,YACpCC,IAEWyF,GAAyB1F,YACpCC,IAEW0F,GAAuB3F,YAClCC,IAGW2F,GAAwB5F,YACnCC,IAYW4F,IAVwB7F,YD7HG,4BCgILA,YD/HG,0BCmIGA,YACvCC,IAEuCD,YACvCC,KAEW6F,GAA0B9F,YACrCC,IAMW8F,IAHyB/F,YACpCC,IAEoCD,YACpCC,KAEW+F,GAAuBhG,YAClCC,IAGWgG,GAAkBjG,YAAaC,IAC/BiG,GAAkBlG,YAAaC,IAC/BkG,GAAgBnG,YAAaC,IAE7BmG,GAAmBpG,YAAaC,IAChCoG,GAAmBrG,YAAaC,IAChCqG,GAAiBtG,YAAaC,IAM9BsG,IAJiBvG,YAAaC,IACbD,YAAaC,IACfD,YAAaC,IAERD,YAAaC,KACjCuG,GAAoBxG,YAAaC,IACjCwG,GAAkBzG,YAAaC,IAE/ByG,GAAsB1G,YACjCC,IAEW0G,GAAsB3G,YACjCC,IAEW2G,GAAoB5G,YAAaC,IAEjC4G,GAAuB7G,YAClCC,IAEW6G,GAAuB9G,YAClCC,IAEW8G,GAAqB/G,YAAaC,IAKlC+G,IAH0BhH,YACrCC,IAEqCD,YACrCC,KAEWgH,GAAwBjH,YACnCC,IAGWiH,GAA8BlH,YACzCC,IAEWkH,GAA8BnH,YACzCC,IAEWmH,GAA4BpH,YACvCC,IAIWoH,GAAkCrH,YAC7CC,IAEWqH,GAAkCtH,YAC7CC,IAEWsH,GAAgCvH,YAC3CC,IAGWuH,GAAmCxH,YAC9CC,IAEWwH,GAAmCzH,YAC9CC,IAEWyH,GAAiC1H,YAC5CC,IAGW0H,GAAoC3H,YAC/CC,IAEW2H,GAAoC5H,YAC/CC,IAEW4H,GAAkC7H,YAC7CC,IAGW6H,GAAqC9H,YAChDC,IAEW8H,GAAqC/H,YDxKhD,0CC4KWgI,GAAyChI,YACpDC,IAEWgI,GAAyCjI,YACpDC,IAEWiI,GAAuClI,YAClDC,IAIWkI,GAA2BnI,YACtCC,IAEWmI,GAA2BpI,YACtCC,IAEWoI,GAAyBrI,YACpCC,IAGWqI,GAA4BtI,YACvCC,IAEWsI,GAA4BvI,YACvCC,IAEWuI,GAA0BxI,YACrCC,IAGWwI,GAA6BzI,YACxCC,IAEWyI,GAA6B1I,YACxCC,IAEW0I,GAA2B3I,YACtCC,IAGW2I,GAA8B5I,YACzCC,IAEW4I,GAA8B7I,YD/LzC,mCCmMW8I,GAAkC9I,YAC7CC,IAEW8I,GAAkC/I,YAC7CC,IAEW+I,GAAgChJ,YAC3CC,IAIWgJ,GAA4BjJ,YACvCC,IAEWiJ,GAA4BlJ,YACvCC,IAEWkJ,GAA0BnJ,YACrCC,IAGWmJ,GAA6BpJ,YACxCC,IAEWoJ,GAA6BrJ,YACxCC,IAEWqJ,GAA2BtJ,YACtCC,IAGWsJ,GAA8BvJ,YACzCC,IAEWuJ,GAA8BxJ,YACzCC,IAEWwJ,GAA4BzJ,YACvCC,IAGWyJ,GAA+B1J,YAC1CC,IAEW0J,GAA+B3J,YDpN1C,oCCwNW4J,GAAmC5J,YAC9CC,IAEW4J,GAAmC7J,YAC9CC,IAEW6J,GAAiC9J,YAC5CC,IAOW8J,IAH4B/J,YACvCC,IAEuCD,YD3NI,kCC8NhCgK,GAA0BhK,YD7NI,+BCiO9BiK,GAAiCjK,YAC5CC,IAEWiK,GAAiClK,YAC5CC,IAEWkK,GAA+BnK,YAC1CC,IC3gBI5M,GAAYC,aAAW,SAACC,GAAK,MAAM,CACrC6W,MAAO,CACHhW,QAAS,OACTiW,WAAY,SACZC,eAAgB,UAEpBC,MAAKC,YAAA,CACDpW,QAAS,OACTE,cAAe,SACfmW,gBAAiBlX,EAAMmX,QAAQC,WAAWJ,MAC1CK,UAAWrX,EAAMsX,QAAQ,GACzB7V,OAAQ,OACR8V,MAAO,QACPrW,aAAc,EACdG,QAAS,QACRrB,EAAMwX,YAAYC,KAAK,MAAQ,CAC5BF,MAAO,QAIlB,IACe,SAASG,GAAWrX,GAA0C,IAAxCK,EAAQL,EAARK,SAAQiX,EAAAtX,EAAEuX,eAAO,IAAAD,EAAC,kBAAI,IAAI,EAAAA,EAAAxV,EAAA9B,EAAE+B,aAAK,IAAAD,EAAC,CAAC,EAACA,EAC/D5B,EAAUT,KACX+X,EAAWC,cACXC,EAAUC,aAAY,SAAAC,GAAK,OAAIA,EAAMC,OAAOC,WAAWC,SAAS,IAEhEC,EAAc,WAChBR,EAAS3H,IAAkB,IAC3B2H,EAASpH,GAAoB,CAAC,IAC9BmH,GACJ,EAQA,OANAU,qBAAU,WACFP,GACAM,GAER,GAAG,CAACN,IAGAvX,cAAC+X,IAAK,CACF,kBAAgB,yBAChB,mBAAiB,+BACjB5X,UAAWJ,EAAQsW,MACnB2B,KAAMT,EACNH,QAASS,EACTI,sBAAoB,EACpBC,kBAAmBC,IACnBC,cAAe,CACXC,QAAS,KACXnY,SAEFF,cAACsY,IAAI,CAACC,GAAIhB,EAAQrX,SACdF,cAAA,OAAKG,UAAWJ,EAAQyW,MAAO5U,MAAKE,YAAA,GAAMF,GAAO1B,SAC5CA,OAKrB,C,4CClEe,ynT,mECAA,4gV,UCaTZ,GAAYC,aAAW,SAACC,GAAK,MAAM,CACvCgZ,YAAa,CACXC,OAAQjZ,EAAMkZ,QAAQ,GACtBC,SAAU,IACVC,SAAU,IACVnY,OAAQ,4BACRD,QAAS,MACTE,aAAc,MACd,wBAAyB,CACvB,oCAAqC,CACnCmY,aAAc,QAEhB,WAAY,CACVA,aAAc,SAGlB,YAAa,CACXhY,QAAS,OACTgY,aAAc,QAEhB,UAAW,CACThY,QAAS,OACTgY,aAAc,QAEhB,UAAW,CACThY,QAAS,OACTgY,aAAc,OACdpY,OAAQ,QAEV,WAAY,CACVI,QAAS,OACTgY,aAAc,OACdpY,OAAQ,SAGZqY,MAAO,CACLzY,QAAS,OACT0Y,SAAU,QAEZC,KAAM,CACJP,OAAQ,GAEVQ,QAAS,CACPlY,UAAWvB,EAAMkZ,QAAQ,IAE3BQ,YAAa,CACXzY,OAAQ,OACR,YAAa,CACXI,QAAS,OACTgY,aAAc,QAEhB,UAAW,CACThY,QAAS,OACTgY,aAAc,OACdpY,OAAQ,QAEV,WAAY,CACVI,QAAS,OACTgY,aAAc,OACdpY,OAAQ,SAGZ0Y,QAAS,CACPpC,MAAO,IAETqC,WAAY,CACV/Y,QAAS,QAEXgZ,QAAS,CACP3Z,SAAU,IAGZ4Z,cAAe,CACbjZ,QAAS,OACTE,cAAe,MACf+V,WAAY,UAEf,IAIKiD,GAAY,CAChBC,WAAY,CACV5X,MAAO,CACL6X,UAAWC,IACX3C,MAAO,OAKE,SAAS4C,GAAc9Z,GAclC,IAAD+Z,EAAA/Z,EAbDga,YAAI,IAAAD,EAAG,GAAEA,EAAAE,EAAAja,EACTka,gBAAQ,IAAAD,EAAG,kBAAM,IAAI,EAAAA,EACrBtY,EAAI3B,EAAJ2B,KAAIwY,EAAAna,EACJoa,gBAAQ,IAAAD,GAAQA,EAChBE,EAAOra,EAAPqa,QAAOC,EAAAta,EACPua,YAAI,IAAAD,EAAG,SAAQA,EAAAE,EAAAxa,EACfya,oBAAY,IAAAD,EAAG,GAAEA,EACjBE,EAAU1a,EAAV0a,WAAUC,EAAA3a,EACV4a,iBAAS,IAAAD,EAAG,MAAKA,EAAAE,EAAA7a,EACjB8a,qBAAa,IAAAD,GAAQA,EAAAE,EAAA/a,EACrBgb,0BAAkB,IAAAD,EAAG,EAACA,EAAAE,EAAAjb,EACtBkb,gBAAQ,IAAAD,GAAQA,EAAAE,EAAAnb,EAChBob,sCAA8B,IAAAD,GAAOA,EAE/Bjb,EAAUT,KAChB4b,EAAoCC,mBAAS,IAAGC,EAAAC,YAAAH,EAAA,GAAzCI,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAChCI,EAAiCL,mBAAS,IAAGM,EAAAJ,YAAAG,EAAA,GAAtCE,EAAaD,EAAA,GAAEE,EAAOF,EAAA,GAC7BG,EAAoCT,oBAAS,GAAMU,EAAAR,YAAAO,EAAA,GAA5CE,EAAWD,EAAA,GAAEE,EAAYF,EAAA,GA8EhC,OAtCA/D,qBAAU,WACR,GAAIyC,GAAcD,GAAgBT,EAAKmC,OAAQ,CAC7C,GAAa,cAATxa,EAAsB,CACxB,IAAMya,EAAMpC,EAAKqC,MAAK,SAACC,GAAC,OAAKA,EAAEC,MAAQ9B,CAAY,IACnDqB,EAAQ,CAACM,EAAS,MAClBV,EAAcU,EAAI/B,GACpB,CAEA,GAAa,WAAT1Y,EAAmB,CACrB,IAAI6a,EAAW,GACX,OAAJxC,QAAI,IAAJA,KAAMyC,KAAI,SAACC,GACO,OAAZjC,QAAY,IAAZA,KAAckC,SAASD,EAAQH,MACjCC,EAASI,KAAKF,EAAQrC,GAE1B,IACAyB,EAAQrB,GACRiB,EAAcc,EAChB,CAEa,SAAT7a,IACFma,EAAQrB,GACRiB,EAAcjB,GAElB,CACF,GAAG,CAACC,IAEJzC,qBAAU,WAC2B,IAAD4E,EAAAC,EAAAC,EAAAC,GAA7BtC,GAAcI,IACjBgB,EAAQ,CAAyB,QAAzBe,EAAC7C,EAAKgB,UAAmB,IAAA6B,OAAA,EAAxBA,EAA2BjC,KACpCc,EAAc,CAAyB,QAAzBoB,EAAC9C,EAAKgB,UAAmB,IAAA8B,OAAA,EAAxBA,EAA2BzC,KAC1Ce,GACElB,EACEE,EAAW,CAAQ,QAAR2C,EAAC/C,EAAK,UAAE,IAAA+C,OAAA,EAAPA,EAAUnC,IAAqB,QAAVoC,EAAGhD,EAAK,UAAE,IAAAgD,OAAA,EAAPA,EAAUpC,GAC9CjZ,GAGR,GAAG,IAGDxB,cAAA,OAAAE,SACEF,cAAC8c,KAAW,CAAC/B,SAAUA,EAAU5a,UAAWJ,EAAQyY,YAAYtY,SAC9DF,cAAC+c,KAAM,CACLC,QAAQ,8BACR7c,UAAWJ,EAAQmZ,YACnB5X,MAAOga,EACP/Z,YAAY,UACZ0Y,SAAUA,EACVgD,YAAa,SAACC,GACZ,OAAIjD,GACEiD,EAASlB,OAAS,EACbkB,EAASC,KAAK,KAIlBD,CACT,EACA3D,UAAWA,GAAUrZ,SAErB2B,eAAA,OAAA3B,SAAA,CACG+Z,GACCpY,eAAA,OAAK1B,UAAWJ,EAAQuZ,cAAe8D,QAzE3B,WACtB,IAAIC,EAAO,GACTC,EAAW,GACRxB,IACHwB,EAAWzD,EAAKyC,KAAI,SAACH,GAAC,OAAKA,EAAEjC,EAAQ,IACrCmD,EAAOxD,EAAKyC,KAAI,SAACH,GAAC,OAAKA,EAAEC,GAAG,KAE9BrC,EAASsD,EAAM7b,GACfma,EAAQ0B,GACR9B,EAAc+B,GACdvB,GAAcD,EAChB,EA8D4E5b,SAAA,CAC9DF,cAACud,KAAQ,CAACC,QAAS1B,IACnB9b,cAAA,OAAAE,SAAK,kBAITF,cAACyd,KAAa,CACZxc,OAAQ,IACR8V,MAAO,IACP2G,UAAe,OAAJ7D,QAAI,IAAJA,OAAI,EAAJA,EAAMmC,OACjB2B,SAAU,GAAGzd,SAEZ,SAAA0d,GAAuB,IAADC,EAAnBC,EAAKF,EAALE,MAAOlc,EAAKgc,EAALhc,MACHmc,EAAOlE,EAAKiE,GACZE,EAAY,OAAJD,QAAI,IAAJA,GAAe,QAAXF,EAAJE,EAAME,iBAAS,IAAAJ,OAAX,EAAJA,EAAiBrB,SAAS,QAExC,OACExc,cAAA,OACE4B,MAAOA,EAEPwb,QAAS,kBAtHN,SAACW,GACpB,IAEcG,EAFVb,EAAO,GACThB,EAAW,GACb,GAAIpC,EAGF,GAFAoD,EAAIc,aAAOzC,GACXW,EAAQ8B,aAAO7C,GACP,QAAR4C,EAAIb,SAAI,IAAAa,GAAJA,EAAM1B,SAASuB,EAAK3B,KAAM,CAC5B,IAAMgC,EAAYf,EAAKgB,WAAU,SAAClC,GAAC,OAAKA,IAAM4B,EAAK3B,GAAG,IACtDiB,EAAOA,EAAKiB,QAAO,SAACnC,GAAC,OAAKA,IAAM4B,EAAK3B,GAAG,IACpCgC,GAAa,GACf/B,EAASkC,OAAOH,EAAW,EAE/B,MACE/B,EAASI,KAAKsB,EAAK7D,IACnBmD,EAAKZ,KAAKsB,EAAK3B,UAGjBiB,EAAOU,EAAKtD,GACZ4B,EAAW0B,EAAK7D,GAElBH,EAASsD,EAAM7b,GACfma,EAAQ0B,GACR9B,EAAcc,EAChB,CA+FiChb,CAAa0c,EAAK,EAAC7d,SAElC2B,eAAC2c,KAAQ,CAACld,MAAOyc,EAAK7D,GAASha,SAAA,CAC7BF,cAAA,OAAAE,SAAM4d,EAAQ,IACd9d,cAACud,KAAQ,CACPC,QAAsB,OAAb9B,QAAa,IAAbA,OAAa,EAAbA,EAAec,SAASuB,EAAKtD,MAE9B,WAATL,GACCpa,cAACye,KAAY,CAACC,QAASX,EAAK7D,KAEpB,UAATE,IAAqB4D,GACpBhe,cAAA,SACgC+W,MAAM,MACpC4H,UAAQ,EAAAze,SAERF,cAAA,UAAQ4e,IAAKb,EAAKE,UAAW7D,KAAK,gBAG5B,UAATA,GAAoB4D,GACnBnc,eAAA,OAAK1B,UAAWJ,EAAQqZ,WAAWlZ,SAAA,CACjCF,cAAA,OAAKG,UAAWJ,EAAQoZ,QAASyF,IAAKzF,KACtCtX,eAAA,OAAA3B,SAAA,CACEF,cAAA,OAAKG,UAAWJ,EAAQsZ,QAAQnZ,SAAE6d,EAAK7c,QACvClB,cAAA,OAAKG,UAAWJ,EAAQsZ,QAAQnZ,SAC7B6d,EAAKc,qBAKL,GAAAC,OA9BHf,EAAK3B,IAAG,KAAA0C,OAAIhB,GAiC1B,YAOd,C,cCnRMxe,GAAYC,aAAW,SAACC,GAAK,MAAM,CACvCuf,KAAM,CACJ1e,QAAQ,OACRC,KAAK,EACLiW,eAAe,SACfD,WAAW,SACXrV,OAAO,QAET+d,MAAM,CACFjI,MAAM,kBACN9V,OAAO,mBAEXge,IAAI,CACFlI,MAAM,kBACN9V,OAAO,mBAEV,IAEc,SAASie,GAAMrf,GAA2E,IAADsf,EAAAtf,EAAxEyB,aAAK,IAAA6d,EAAG,GAAEA,EAAAC,EAAAvf,EAAEF,aAAK,IAAAyf,EAAE,UAASA,EAAAC,EAAAxf,EAAGyf,eAAO,IAAAD,EAAG,QAAOA,EAAYlf,GAAZN,EAAE+B,MAAmB/B,EAATM,WACpFJ,EAAUT,KAEhB,OACEU,cAAA,OAAKG,UAAWof,aAAiB,UAAZD,EAAuBvf,EAAQgf,KAAO,CAAC,EAAG5e,GAAWD,SACxEF,cAACwf,KAAgB,CACf7f,MAAO,MACPiC,MAAO,CAACjC,SACRQ,UAAwB,UAAZmf,EAAsBvf,EAAQif,MAAQjf,EAAQkf,IAC1D3d,MAAOA,KAIf,CCkEeme,OAtGf,SAAoBne,GAChB,IAAMoe,EAAS,CAAC,EAkGhB,OAjGGpe,EAAMqe,eAAe,cACHC,IAAdte,EAAME,MAA2C,KAAtBF,EAAME,KAAKqe,SACrCH,EAAOle,KAAO,cAGnBF,EAAMqe,eAAe,eACFC,IAAfte,EAAMJ,OAA6C,KAAvBI,EAAMJ,MAAM2e,SACvCH,EAAOxe,MAAQ,kBAIpBI,EAAMqe,eAAe,eACFC,IAAfte,EAAMwe,OAA6C,KAAvBxe,EAAMwe,MAAMD,SACvCH,EAAOI,MAAQ,kBAIpBxe,EAAMqe,eAAe,kBACCC,IAAlBte,EAAMye,UAAmD,KAA1Bze,EAAMye,SAASF,SAC7CH,EAAOK,SAAW,qBAIvBze,EAAMqe,eAAe,qBACIC,IAArBte,EAAM0e,aAAyD,KAA7B1e,EAAM0e,YAAYH,SACnDH,EAAOM,YAAc,wBAG1B1e,EAAMqe,eAAe,kBACCC,IAAlBte,EAAM2e,UAAmD,KAA1B3e,EAAM2e,SAASJ,SAC7CH,EAAOO,SAAW,oBAIvB3e,EAAMqe,eAAe,iBACAC,IAAjBte,EAAM4e,SAAiD,KAAzB5e,EAAM4e,QAAQL,SAC3CH,EAAOQ,QAAU,oBAItB5e,EAAMqe,eAAe,eACFC,IAAfte,EAAM6e,OAA6C,KAAvB7e,EAAM6e,MAAMN,SACvCH,EAAOS,MAAQ,2BAGpB7e,EAAMqe,eAAe,0BACSC,IAA1Bte,EAAM8e,kBAAmE,KAAlC9e,EAAM8e,iBAAiBP,SAC7DH,EAAOU,iBAAmB,mCAG/B9e,EAAMqe,eAAe,kBACCC,IAAlBte,EAAM+e,UAAmD,KAA1B/e,EAAM+e,SAASR,SAC7CH,EAAOW,SAAW,qBAGvB/e,EAAMqe,eAAe,cACHC,IAAdte,EAAMgf,MAAqC,KAAfhf,EAAMgf,MAA4B,KAAbhf,EAAMif,MACtDb,EAAOY,KAAO,8BAGnBhf,EAAMqe,eAAe,mBACEC,IAAnBte,EAAMkf,WAA8C,KAAnBlf,EAAMkf,YACtCd,EAAOc,UAAY,mCAGxBlf,EAAMqe,eAAe,cACHC,IAAdte,EAAMmf,MAA2C,KAAtBnf,EAAMmf,KAAKZ,SACrCH,EAAOe,KAAO,cAGnBnf,EAAMqe,eAAe,WAAae,MAAMC,QAAQrf,EAAMsf,UACjDtf,EAAMsf,OAAO5E,SACb0D,EAAOkB,OAAS,gCAIrBtf,EAAMqe,eAAe,aAAee,MAAMC,QAAQrf,EAAMuf,YACnDvf,EAAMuf,SAAS7E,SACf0D,EAAOmB,SAAW,oCAIvBvf,EAAMqe,eAAe,mBACEC,IAAnBte,EAAMwf,WAAqD,KAA3Bxf,EAAMwf,UAAUjB,SAC/CH,EAAOoB,UAAY,oBAGxBxf,EAAMqe,eAAe,iBACAC,IAAjBte,EAAMyf,SAAiD,KAAzBzf,EAAMyf,QAAQlB,SAC3CH,EAAOqB,QAAU,oBAGtBzf,EAAMqe,eAAe,cAAgBe,MAAMC,QAAQrf,EAAM0f,aACpD1f,EAAM0f,UAAUhF,SAChB0D,EAAOsB,UAAY,+DAGpBtB,CACX,ECpFMpgB,GAAYC,aAAW,SAACC,GAAK,MAAM,CACrCyhB,YAAa,CACT5gB,QAAS,OACTE,cAAe,MACfgW,eAAgB,gBAChBD,WAAY,SACZ9V,QAAShB,EAAMkZ,QAAQ,GACvBG,aAAc,8BAElBqI,UAAW,CACPC,OAAQ,WAEZC,eAAe,CACX/gB,QAAQ,OACRC,KAAK,EACLC,cAAc,UAElB2f,QAAQ,CACJ7f,QAAS,OACTC,KAAM,EACNE,QAAS,GACT6gB,UAAW,UAEfC,YAAW7K,YAAA,CACPjW,QAAQ,OACRuW,MAAM,OACLvX,EAAMwX,YAAYC,KAAK,MAAQ,CAC5BF,MAAO,QAGfwK,MAAM,CACFC,WAAW,MACX7gB,aAAa,OACbI,UAAU,QAEd0gB,cAAc,CACVC,SAAS,WACT3K,MAAM,IACN9V,OAAO,IACPN,aAAa,QAEjBghB,WAAW,CACP5K,MAAM,OACN9V,OAAO,OACPP,aAAa,GAEjBkhB,cAAc,CACVF,SAAS,WACTG,OAAO,GACPC,IAAI,GACJ/K,MAAM,GACN9V,OAAO,GACPP,aAAa,GACbkW,WAAW,kBACXjX,MAAM,OACNU,QAAQ,OACRkW,eAAe,SACfD,WAAW,SACX6K,OAAO,WAEXY,WAAW,CACPriB,SAAS,SAEbsiB,cAAavL,YAAA,CACTM,MAAO,OACNvX,EAAMwX,YAAYC,KAAK,MAAQ,CAC5BF,MAAO,SAGfkL,gBAAgB,CACZ5hB,QAAQ,OACRE,cAAc,MACd+V,WAAW,UAEf4L,OAAQ,CACJ1hB,QAAShB,EAAMkZ,QAAQ,GACvByJ,UAAW,6BACX9hB,QAAS,OACTE,cAAe,MACfgW,eAAgB,WAChBD,WAAY,UAEd8L,OAAQ,CACNvhB,QAAS,OACTJ,OAAQ,OACRmW,WAAY,UACZjX,MAAO,OACPoX,MAAM,GACN9V,OAAO,GACPkgB,OAAQ,WAEVkB,MAAM,CACJtL,MAAM,OACN9V,OAAO,OACPygB,SAAS,WACTY,OAAO,IACPC,KAAK,EACLC,QAAQ,GAEf,IAGKC,GAAe,CACjBvhB,MAAM,GACN8e,YAAY,GACZc,UAAU,GACVT,SAAS,GACTqC,MAAM,GACNpC,KAAK,GACLC,IAAI,GACJb,OAAQ,CAAC,EACTkB,OAAO,IAGK,SAAS+B,KAAqB,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAClCljB,EAAUT,KACX+X,EAAWC,cACX4L,EAAe1L,aAAY,SAAAC,GAAK,OAAIA,EAAM0L,OAAOC,WAAW,IAC5DC,EAAY7L,aAAY,SAAAC,GAAK,OAAIA,EAAMC,OAAO2L,SAAS,IACvDC,EAAY9L,aAAY,SAAAC,GAAK,OAAIA,EAAMC,OAAO4L,SAAS,IAC7DpI,EAA0BC,mBAASsH,IAAarH,EAAAC,YAAAH,EAAA,GAAzCzD,EAAK2D,EAAA,GAAEmI,EAAQnI,EAAA,GAChBwF,EAASpJ,aAAY,SAAAC,GAAK,OAAIA,EAAM0L,OAAOvC,MAAM,IACjDrG,EAAaiJ,OAAOnG,KAAKiG,GAAWtH,OAAS,EAkCnDlE,qBAAU,WACHyC,GACCgJ,EAAQ9M,YAAC,CACLvV,MAAMoiB,EAAUpiB,MAChB8e,YAAYsD,EAAUtD,YACtBK,SAASiD,EAAUjD,UAAY,GAC/BE,IAAI+C,EAAUG,SACd7C,OAAO0C,EAAU1C,OACjBE,UAAUwC,EAAUI,cAAY,SACzBJ,EAAU1C,QAG7B,GAAG,CAAC0C,IAEJxL,qBAAU,WACFoL,EAAaS,WACbtM,EAAS9H,KAEjB,GAAG,IAEH,IAAMlO,EAAe,SAACC,EAAOE,GACzB,IAAIoiB,EAAS9hB,YAAA,GAAO2V,GACpBmM,EAAUpiB,GAAQF,EAClBiiB,EAASK,EACb,EAgBA,OACG/hB,eAACqV,GAAW,CAACE,QAzEI,WAChBmM,EAASd,GACb,EAuEqCviB,SAAA,CAC1B2B,eAAA,OAAK1B,UAAWJ,EAAQkhB,YAAY/gB,SAAA,CAChCF,cAAA,QAAAE,SAAQ,kBACRF,cAAC6jB,KAAS,CAAEzG,QARP,WAChB/F,EAAS3H,IAAkB,GAC/B,EAMiDvP,UAAWJ,EAAQmhB,eAEzDlhB,cAAA,OAAKG,UAAWJ,EAAQmgB,QAAQhgB,SAC5B2B,eAAA,OAAK1B,UAAWJ,EAAQiiB,cAAc9hB,SAAA,CAClC2B,eAAA,OAAK1B,UAAWJ,EAAQ0hB,cAAcvhB,SAAA,CAClCF,cAAA,OAAMG,UAAWJ,EAAQ4hB,WAAY/C,IAAKnH,EAAM8I,KAAOoB,KACvD3hB,cAAA,SAAO+B,SAxB9B,SAAkB+hB,GACd,IAAIxD,EAAOwD,EAAM7hB,OAAO8hB,MAAM,GAC1BC,EAAS,IAAIC,WACjBD,EAAOE,OAAS,SAASJ,GACvBP,EAAQzhB,wBAAC,CAAC,EAAG2V,GAAK,IAAE6I,OAAMC,IAAKuD,EAAM7hB,OAAOkiB,SAC9C,EAEA7D,GAAQ0D,EAAOI,cAAc9D,EAC/B,EAgBgDngB,UAAWJ,EAAQsiB,MAAOjI,KAAK,SAC1Dpa,cAAA,OAAKG,UAAWJ,EAAQ6hB,cAAc1hB,SAClCF,cAACqkB,KAAU,CAAClkB,UAAWJ,EAAQgiB,kBAGvC/hB,cAACJ,EAAY,CAACE,MAAY,OAAL2X,QAAK,IAALA,GAAa,QAARmL,EAALnL,EAAOiI,cAAM,IAAAkD,OAAR,EAALA,EAAetC,OACpCtgB,cAAA,OAAKG,UAAWJ,EAAQwhB,MAAMrhB,SAAG,WACjCF,cAACmB,EAAe,CACZG,MAAOmW,EAAMvW,MACbM,KAAK,QACLH,aAAcA,EACdvB,MAAc,OAAL2X,QAAK,IAALA,GAAa,QAARoL,EAALpL,EAAOiI,cAAM,IAAAmD,OAAR,EAALA,EAAe3hB,QAE5BlB,cAAA,OAAKG,UAAWJ,EAAQwhB,MAAMrhB,SAAC,iBAC/BF,cAACmB,EAAe,CACZK,KAAO,cACPF,MAAOmW,EAAMuI,YACb3e,aAAcA,EACdvB,MAAc,OAAL2X,QAAK,IAALA,GAAa,QAARqL,EAALrL,EAAOiI,cAAM,IAAAoD,OAAR,EAALA,EAAe9C,cAE5BhgB,cAAA,OAAKG,UAAWJ,EAAQwhB,MAAMrhB,SAAC,cAC/BF,cAACmB,EAAe,CACZG,MAAOmW,EAAM4I,SACb7e,KAAK,WACLH,aAAcA,EACdvB,MAAc,OAAL2X,QAAK,IAALA,GAAa,QAARsL,EAALtL,EAAOiI,cAAM,IAAAqD,OAAR,EAALA,EAAe1C,WAE3BK,MAAMC,QAAQC,EAAO0D,OAAS1D,EAAO0D,KAAKtI,OAAS,GACnDna,eAAA5B,WAAA,CAAAC,SAAA,CACQ2B,eAAA,OAAK1B,UAAWJ,EAAQkiB,gBAAgB/hB,SAAA,CACpCF,cAAA,OAAKG,UAAWJ,EAAQwhB,MAAMrhB,SAAC,aAC/BF,cAAC2Z,GAAc,CACPY,WAAYA,EACZD,aAAc7C,EAAMmJ,OACpBxG,KAAK,QACLH,UAAU,EACVC,QAAQ,QACR1Y,KAAK,SACLuY,SAAU1Y,EACVwY,KAAM+G,EAAO0D,UAGzBtkB,cAACJ,EAAY,CAACE,MAAY,OAAL2X,QAAK,IAALA,GAAa,QAARuL,EAALvL,EAAOiI,cAAM,IAAAsD,OAAR,EAALA,EAAepC,YAG7C/e,eAAA,OAAK1B,UAAWJ,EAAQkiB,gBAAgB/hB,SAAA,CACpCF,cAAA,OAAKG,UAAWJ,EAAQwhB,MAAMrhB,SAAC,aAC/BF,cAAC2Z,GAAc,CACVY,WAAYA,EACZL,QAAQ,OACR1Y,KAAK,YACL8Y,aAAc7C,EAAMqJ,UACpB/G,SAAU1Y,EACVwY,KAAMqJ,EAAaoB,UAG5BtkB,cAACJ,EAAY,CAACE,MAAY,OAAL2X,QAAK,IAALA,GAAa,QAARwL,EAALxL,EAAOiI,cAAM,IAAAuD,OAAR,EAALA,EAAenC,iBAG3C9gB,cAAA,OAAKG,UAAWJ,EAAQmiB,OAAOhiB,SAC3BF,cAAA,UAAQ+a,SAAUsI,EAAWjG,QA1IjB,WACxB,IAAMsC,EAASD,GAAUhI,GAIzB,UAHOiI,EAAOkB,cACPlB,EAAOW,SACdkD,EAAQzhB,wBAAC,CAAC,EAAG2V,GAAK,IAAEiI,aACjB8D,OAAOnG,KAAKqC,GAAQ1D,OAAvB,CAGA,IAAIuI,EAAW,IAAIC,SACnBD,EAASE,OAAO,QAAQhN,EAAMvW,OAC9BqjB,EAASE,OAAO,cAAehN,EAAMuI,aAErCuE,EAASE,OAAO,YAAahN,EAAMqJ,WACnCyD,EAASE,OAAO,QAAShN,EAAM6I,MAC/B,IAAK,IAAIoE,EAAI,EAAGA,EAAIjN,EAAMmJ,OAAO5E,OAAQ0I,IACrCH,EAASE,OAAO,WAAYhN,EAAMmJ,OAAO8D,IAE7C,GAAGnK,EAMC,MALkB,KAAf9C,EAAM6I,MACLiE,EAASI,OAAO,SAEpBJ,EAASI,OAAO,kBAChBtN,EAASjL,GAAoB,CAACkY,KAAKC,EAAUK,SAAStB,EAAUlH,OAGpE/E,EAASrL,GAAoBuY,GAlB7B,CAmBJ,EAgH2EpkB,UAAWJ,EAAQqiB,OAAOliB,SAChFmjB,EAAarjB,cAACkf,GAAM,CAACtd,MAAO,CAACjC,MAAM,UAAc4a,EAAa,SAAW,YAKlG,C,mHCrQe,IADf,I,oDCNMjb,GAAYC,YAAW,CAC3BslB,MAAO,CACLlM,SAAU,KAEZmM,WAAY,CACVtD,WAAY,OAEduD,WAAY,CACV5D,OAAQ,WAEV6D,SAAU,CACR,UAAW,CACTpO,WAAY,wBAGhBqO,YAAa,CACXlO,MAAO,OACP1W,QAAS,OACTkW,eAAgB,SAChBxV,UAAW,QAEbmkB,qBAAsB,CACpB1D,WAAY,OACZ9hB,SAAU,OACVW,QAAS,OACTE,cAAe,MACf+V,WAAY,SACZC,eAAgB,WAChBQ,MAAO,OACPpW,aAAc,IAEhBwkB,WAAY,CACVC,aAAc,GAEhBC,mBAAoB,CAClB3O,gBAAiB,UACjB4O,YAAa,MAIXC,GAAe,SAAH1lB,EAmBhB2lB,GACI,IAADC,EAAA5lB,EAlBD6lB,eAAO,IAAAD,EAAG,GAAEA,EACZE,EAAQ9lB,EAAR8lB,SAAQC,EAAA/lB,EACRwd,YAAI,IAAAuI,EAAG,GAAEA,EAAAC,EAAAhmB,EACTimB,oBAAY,IAAAD,EAAG,kBAAM,IAAI,EAAAA,EAAAE,EAAAlmB,EACzBklB,kBAAU,IAAAgB,GAAOA,EAAAC,EAAAnmB,EACjBomB,gBAAQ,IAAAD,GAAOA,EACfE,EAAiBrmB,EAAjBqmB,kBAAiBC,EAAAtmB,EACjBumB,mBAAW,IAAAD,EAAG,QAAOA,EAAAE,EAAAxmB,EACrBymB,sBAAc,IAAAD,EAAG,QAAOA,EAAAE,EAAA1mB,EACxB2mB,sBAAc,IAAAD,GAAQA,EACtBE,EAAkB5mB,EAAlB4mB,mBACAC,EAAwB7mB,EAAxB6mB,yBACAC,EAAe9mB,EAAf8mB,gBACAC,EAAqB/mB,EAArB+mB,sBACAC,EAAgBhnB,EAAhBgnB,iBACAC,EAAsBjnB,EAAtBinB,uBAII/mB,EAAUT,KACV+X,EAAWC,cACjB4D,EAAwCC,mBAAS,IAAGC,EAAAC,YAAAH,EAAA,GAA7C6L,EAAY3L,EAAA,GAAE4L,EAAe5L,EAAA,GACpCI,EAA8BL,oBAAS,GAAKM,EAAAJ,YAAAG,EAAA,GAArCyL,EAAOxL,EAAA,GAAEyL,EAAUzL,EAAA,GAC1BG,EAAwBT,mBAAS,GAAEU,EAAAR,YAAAO,EAAA,GAA5BuL,EAAItL,EAAA,GAAEuL,EAAOvL,EAAA,GACpBwL,EAA8ClM,mBAASwK,EAAS2B,MAAM,EAAG,KAAIC,EAAAlM,YAAAgM,EAAA,GAAtEG,EAAeD,EAAA,GAAEE,EAAkBF,EAAA,GAC1CG,EAAgDvM,mBAAS,IAAGwM,EAAAtM,YAAAqM,EAAA,GAArDE,EAAgBD,EAAA,GAAEE,EAAmBF,EAAA,GAC5CG,GAA0D3M,oBAAS,GAAM4M,GAAA1M,YAAAyM,GAAA,GAAlEE,GAAqBD,GAAA,GAAEE,GAAwBF,GAAA,GAEhDG,GAAiB,WACrBC,YAAW,WACT,IAAMC,EAAUzC,EAAS2B,MAAa,GAAPH,EAAwB,IAAZA,EAAO,IAClDM,GAAmB,SAACY,GAAQ,SAAAvJ,OAAAX,aAASkK,GAAQlK,aAAKiK,GAAO,IACzDhB,EAAQD,EAAO,GACE,IAAZA,EAAO,IAAWxB,EAAS3J,QAC9BkL,GAAW,EAEf,GAAG,IACL,EAEM7D,GAAY7L,aAAY,SAACC,GAAK,OAAKA,EAAMC,OAAO2L,SAAS,IAOzDiF,GAAa,SAACC,EAAKxK,GAIvB,OAAOwK,EAAIxK,EACb,EAEMyK,GAAkB,SAACD,GACvB,OACErC,GACElmB,cAACqkB,KAAU,CACTjH,QAAS,WAff/F,EAASpH,GAgBUsY,IAfnBlR,EAAS3H,IAAkB,GAgBrB,EACAvP,UAAWJ,EAAQglB,YAI3B,EAoDA,OAnBA0D,IAAM3Q,WAAU,WACd4I,MAAMC,QAAQgF,IAAa8B,EAAmB9B,EAAS2B,MAAM,EAAG,KAChEY,IACF,GAAG,CAACvC,IAEJ8C,IAAM3Q,WAAU,WACV8P,EAAiB5L,SAAW2J,EAAS3J,OACvCiM,IAAyB,GAEzBA,IAAyB,EAE7B,GAAG,CAACL,IAEJa,IAAMC,oBAAoBlD,GAAK,iBAAO,CACpCmD,uBAAsB,SAACC,GACrBf,EAAoBe,EACtB,EACD,IAGC/mB,eAAA5B,WAAA,CAAAC,SAAA,EACIumB,GAAsBE,GAAmBE,IACzChlB,eAAA,OAAK1B,UAAWJ,EAAQmlB,qBAAqBhlB,SAAA,CAC1CumB,GACC5kB,eAACgnB,KAAM,CACLvJ,QAAQ,YACR3f,MAAM,YACNyd,QAAS,kBAAMsJ,EAAyBkB,EAAiB,EACzDznB,UAAWJ,EAAQslB,mBACnBtK,SAAsC,IAA5B6M,EAAiB5L,OAAa9b,SAAA,CAExCF,cAAC8oB,KAAiB,CAAC3oB,UAAWJ,EAAQolB,aAAc,mBAIvDwB,GACC9kB,eAACgnB,KAAM,CACLvJ,QAAQ,YACR3f,MAAM,YACNyd,QAAS,kBAAMwJ,EAAsBgB,EAAiB,EACtD7M,SAAsC,IAA5B6M,EAAiB5L,OAAa9b,SAAA,CAExCF,cAAC+oB,KAAU,CAAC5oB,UAAWJ,EAAQolB,aAAc,gBAIhD0B,GACChlB,eAACgnB,KAAM,CACLvJ,QAAQ,YACR3f,MAAM,YACNyd,QAAS,kBAAM0J,EAAuBc,EAAiB,EACvD7M,SAAsC,IAA5B6M,EAAiB5L,OAAa9b,SAAA,CAExCF,cAACgpB,KAAe,CAAC7oB,UAAWJ,EAAQolB,aAAc,oBAO1DnlB,cAACipB,KAAc,CACbC,UAAW,EACXC,SAAUjB,GACVjB,QAASA,EACTmC,OACEppB,cAAA,OAAKG,UAAWJ,EAAQklB,YAAY/kB,SAClCF,cAACkf,GAAM,CAASI,QAAQ,SAAX,KAGjB+J,aAAa,EAAMnpB,SAEnBF,cAACspB,KAAc,CAACC,UAAWC,KAAMtpB,SAC/B2B,eAAC4nB,KAAK,CAACtpB,UAAWJ,EAAQ8kB,MAAO,aAAW,eAAc3kB,SAAA,CACxDF,cAAC0pB,KAAS,CAAAxpB,SACR2B,eAAC8nB,KAAQ,CAAAzpB,SAAA,CACNsmB,GACCxmB,cAAC4pB,KAAS,CAERzpB,UAAWJ,EAAQ+kB,WACnByE,UAAU,KACVM,MAAM,MAAK3pB,SAEXF,cAACud,KAAQ,CACPH,QAAS,SAACpb,GAAC,OAlHKV,EAmHaU,EAAEC,OAAOub,QAjHxDiK,EACED,EAAgBlL,KAAI,SAACgI,GAAI,OAAAxiB,wBAAA,GAAWwiB,GAAI,IAAEwF,UAAWxoB,GAAK,UAG5DumB,EACEvmB,EAAK6c,aACGqJ,EAAgBlL,KAAI,SAACgI,GAAI,OAAAxiB,wBAAA,GAAWwiB,GAAI,IAAEwF,UAAWxoB,GAAK,KAC9D,IAT2B,IAACA,CAmH8B,EAE9Ckc,QAASwK,GACTxmB,KAAK,kBACL7B,MAAO,WACP,wBAGL+lB,EAAQpJ,KAAI,SAACyN,EAAajM,GACzB,OAAc,IAAVA,EAEA9d,cAAC4pB,KAAS,CAERzpB,UAAWJ,EAAQ+kB,WACnByE,UAAU,KACVM,MAAM,MAAK3pB,SAEV6pB,GAAW,GAAAjL,OALJiL,EAAW,KAAAjL,OAAIhB,IAU3B9d,cAAC4pB,KAAS,CAERzpB,UAAWJ,EAAQ+kB,WACnBkF,MAAO5D,EAAYlmB,SAElB6pB,GAAW,GAAAjL,OAJJiL,EAAW,KAAAjL,OAAIhB,GAO7B,IACCmI,GACCjmB,cAAC4pB,KAAS,CAACzpB,UAAWJ,EAAQ+kB,WAAYkF,MAAM,QAAO9pB,SACpD,SAGJ6kB,GACC/kB,cAAC4pB,KAAS,CAACzpB,UAAWJ,EAAQ+kB,WAAYkF,MAAM,QAAO9pB,SACpD,gBAKTF,cAACiqB,KAAS,CAAA/pB,SACPsnB,EAAgBlL,KAAI,SAACiM,EAAK7D,GACzB,OACE7iB,eAAC8nB,KAAQ,CAACxpB,UAAWJ,EAAQilB,SAAS9kB,SAAA,CACnCsmB,GACCxmB,cAAC4pB,KAAS,CAAmBL,UAAU,KAAKM,MAAM,MAAK3pB,SACrDF,cAACud,KAAQ,CACPH,QAAS,kBAvJJ,SAAC9b,GAE5B,IAAM4oB,EAAsBtC,EAAiBuC,MAC3C,SAACpM,GAAI,OAAKA,EAAK3B,MAAQ9a,EAAM8a,GAAG,IAE9BwL,EAAiBtJ,QAAO,SAACP,GAAI,OAAKA,EAAK3B,MAAQ9a,EAAM8a,GAAG,IAAC,GAAA0C,OAAAX,aACrDyJ,GAAgB,CAAEtmB,IAE1BumB,EAAoBqC,GAEpBzC,EACED,EAAgBlL,KAAI,SAACgI,GAAI,OACvBA,EAAKlI,MAAQ9a,EAAM8a,IAAGta,wBAAA,GAAQwiB,GAAI,IAAEwF,WAAYxoB,EAAMwoB,YAAcxF,CAAI,IAG9E,CAwIuC8F,CAAqB7B,EAAI,EACxC/K,QAAS+K,EAAIuB,UACbnqB,MAAO,WACP,GAAAmf,OALeyJ,EAAI7D,KAQxBrH,EAAKf,KAAI,SAACyB,EAAMD,GACf,OAAc,IAAVA,EAEAjc,eAAC+nB,KAAS,CAERL,UAAU,KACVM,MAAM,MAAK3pB,SAAA,CAEVqoB,EAAIxK,GAAO,MAAG,GAAAe,OAJPhB,IASZ9d,cAAC4pB,KAAS,CAAkBI,MAAO1D,EAAepmB,SAC/CooB,GAAWC,EAAKxK,IAAK,GAAAe,OADLhB,GAIvB,IACCmI,GACCjmB,cAAC4pB,KAAS,CAACI,MAAM,QAAO9pB,SACrBsoB,GAAgBD,KAGpBxD,GACC/kB,cAAC4pB,KAAS,CAACI,MAAM,QAAO9pB,SACrB6mB,IAAiBwB,EAAInM,KAAOiH,GAC3BrjB,cAACkf,GAAM,CAACI,QAAQ,UAEhBtf,cAAC+oB,KAAU,CACT3L,QAAS,WACP4J,EAAgBuB,EAAInM,KACpB0J,EAAayC,EAAInM,IACnB,EACAjc,UAAWJ,EAAQglB,iBA3CeL,EAkDhD,eAOd,EACe2F,wBAAW9E,I,8BCvVpBjmB,GAAYC,aAAW,SAACC,GAAK,MAAM,CACvCuf,KAAM,CACJ1e,QAAQ,OACRC,KAAK,EACLiW,eAAe,SACfD,WAAW,SACXrV,OAAO,QAETqpB,QAAQ,CACJ5qB,SAAS,QAEd,IAEc,SAAS6qB,GAAK1qB,GAAqCA,EAAlCF,MAAmC,IAAnB6qB,EAAA3qB,EAAEyqB,eAAO,IAAAE,EAAG,GAAEA,EACtDzqB,EAAUT,KAEhB,OACEU,cAAA,OAAKG,UAAWJ,EAAQgf,KAAK7e,SACzBF,cAAA,OAAKG,UAAWJ,EAAQuqB,QAAQpqB,SAAGoqB,KAG3C,CCXA,IAAMhrB,GAAYC,aAAW,SAACC,GAAK,MAAM,CACrCuf,KAAM,CACFve,QAAQ,IAEZiqB,aAAa,CACTpqB,QAAQ,OACRE,cAAc,MACdgW,eAAe,gBACfD,WAAW,SACX3V,aAAa,IAEjB6V,MAAO,CACHhW,QAAShB,EAAMkZ,QAAQ,GACvBgS,UAAW,SACX/qB,MAAOH,EAAMmX,QAAQgU,KAAKC,WAE5BC,cAAc,CACVrJ,WAAW,OACX9hB,SAAS,UAEborB,iBAAiB,CACbnrB,MAAM,UACN6hB,WAAW,MACXL,OAAO,WAEX4J,MAAM,CACJhU,MAAM,GACN9V,OAAO,GACPP,aAAa,GAEjBsqB,IAAI,CACAtJ,SAAU,QACVuJ,OAAQzrB,EAAMkZ,QAAQ,GACtBmJ,MAAOriB,EAAMkZ,QAAQ,GACrB9B,WAAW,UACX,UAAU,CACNA,WAAW,YAGtB,IAEc,cACX,IAAM7W,EAAUT,KACV+X,EAAWC,cACX4T,EAAU1T,aAAY,SAAAC,GAAK,OAAIA,EAAM0L,OAAO+H,OAAO,IACnDtK,EAASpJ,aAAY,SAAAC,GAAK,OAAIA,EAAM0L,OAAOvC,MAAM,IACvD1F,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GACvCM,GADWJ,EAAA,GAASA,EAAA,GACMD,mBAAS,CAEnC,IAAEM,EAAAJ,YAAAG,EAAA,GAFUC,EAAA,GAAUA,EAAA,GAItB3D,qBAAU,WACFT,EAASjK,MACTwT,EAAO+C,WACPtM,EAASjI,KAEjB,GAAG,IAEH,IAAM+b,EAAkB,WACjBD,EAAQ7H,WAGXhM,EAAS3H,IAAkB,GAC/B,EAoCA,OACI7N,eAAA,OAAK1B,UAAWJ,EAAQgf,KAAK7e,SAAA,CACzBF,cAACorB,GAAmB,IACpBprB,cAAA,OAAKG,UAAWJ,EAAQ0qB,aAAavqB,SACjCF,cAAA,OAAKG,UAAWJ,EAAQ8qB,cAAc3qB,SAAE,iBAG3CgrB,EAAQ7H,WAAcrjB,cAACkf,GAAM,CAACI,QAAQ,QACtC4L,EAAQvH,WACT3jB,cAACulB,GAAY,CACTG,QAAS,CAAC,SAAU,QAAS,YAAa,eAC1CC,SAzCU,WAAc,IAAb0F,EAAIC,UAAAtP,OAAA,QAAA4D,IAAA0L,UAAA,GAAAA,UAAA,GAAC,GACxB,IAAID,EAAKrP,OACL,MAAO,GAEX,IAAIsI,EAAO,GAcX,OAbA+G,EAAK/O,KAAI,SAACyB,GACN,IAAI5B,EAAI,CACJuG,MAAM1iB,cAAA,OAAK4e,IAAKb,EAAK2E,OAAS6I,GAAcprB,UAAWJ,EAAQgrB,QAC/D7pB,MAAM6c,EAAK7c,MACXmf,SAAStC,EAAKsC,SACdL,YAAYjC,EAAKiC,YACjByD,SAAS1F,EAAK2E,MACdtG,IAAI2B,EAAK3B,IACTsH,aAAa3F,EAAK2F,aAClB9C,OAAO7C,EAAK6C,QAEhB0D,EAAK7H,KAAKN,EACd,IACOmI,CACX,CAsBsBkH,CAAcN,EAAQ5G,MAChCjH,KAAM,CAAC,QAAS,QAAS,WAAY,eACrCoO,WAtBO,SAAC1N,GAChB1G,EAASpH,GAAoB8N,IAC7BoN,GACJ,EAoBYrF,aAlBe,SAAClB,GACxBvN,EAASrH,GAAoB,CAAC4U,aAClC,IAkBSsG,EAAQQ,SAAW1rB,cAACuqB,GAAK,CAACD,QAASY,EAAQZ,UAC5CtqB,cAAC2rB,KAAG,CAACC,KAAK,QAAQxO,QAAS+N,EAAiBxrB,MAAM,YAAY,aAAW,MAAMQ,UAAWJ,EAAQirB,IAAI9qB,SAClGF,cAAC6rB,KAAO,Q,mDC9GlBvsB,GAAYC,aAAW,SAACC,GAAK,IAAAssB,EAAA,MAAM,CACvC7K,YAAa,CACX5gB,QAAS,OACTE,cAAe,MACfgW,eAAgB,gBAChBD,WAAY,SACZ9V,QAAShB,EAAMkZ,QAAQ,GACvBG,aAAc,8BAEhBqI,UAAW,CACTC,OAAQ,WAEV4K,cAAe,CACb1rB,QAAS,OACTC,KAAM,EACNE,QAAS,GACT6gB,UAAW,UAEb2K,iBAAkB,CAChB3rB,QAAS,OACTC,KAAM,EACNC,cAAe,SACfgW,eAAgB,SAChBD,WAAY,UAEd2V,oBAAqB,CACnBpT,aAAc,4BACd5X,OAAQ,MACR8V,MAAO,QAETmV,yBAA0B,CACxBrT,aAAc,oBACd5X,OAAQ,MACR8V,MAAO,QAEToV,WAAY,CACVC,UAAW,iBACX1sB,SAAU,SACVC,MAAO,mBAET0sB,gBAAiB,CACfD,UAAW,iBACX1sB,SAAU,SACVC,MAAO,WAET2sB,oBAAqB,CACnB5K,SAAU,WACVrhB,QAAS,OACTE,cAAe,SACfgW,eAAgB,SAChBD,WAAY,SACZM,WAAY,UACZ3V,OAAQ,IACR8V,MAAO,IACPrW,aAAc,GACdC,aAAc,GACdwgB,OAAQ,WAEVoL,yBAA0B,CACxB7K,SAAU,YACVrhB,QAAS,OACTE,cAAe,SACfgW,eAAgB,SAChBD,WAAY,SACZgP,YAAa,IAEfkH,QAAS,CAAC,EACVtK,OAAQ,CACN1hB,QAAShB,EAAMkZ,QAAQ,GACvByJ,UAAW,6BACX9hB,QAAS,OACTE,cAAe,MACfgW,eAAgB,gBAChBD,WAAY,UAEd8L,OAAQ,CACNvhB,QAAS,OACTJ,OAAQ,OACRmW,WAAY,UACZjX,MAAO,OACPoX,MAAO,GACP9V,OAAQ,GACRkgB,OAAQ,WAEVsL,cAAe,CACbpsB,QAAS,OACTE,cAAe,MACfgW,eAAgB,SAChBD,WAAY,SACZ3W,MAAO,WAETqiB,cAAe,CACbjL,MAAO,QAET2V,QAAS,CACPlL,WAAY,MACZ9hB,SAAU,SACViB,aAAc,IAEhBgsB,aAAc,CACZnL,WAAY,OAEdoL,qBAAsB,CACpBpL,WAAY,SACZ9hB,SAAU,OACVC,MAAO,aAETktB,oBAAkBf,EAAA,CAChBrT,OAAQ,YAAUhC,YAAAqV,EACjBtsB,EAAMwX,YAAYC,KAAK,MAAQ,CAC9BF,MAAO,QACRN,YAAAqV,EAAC,QACK,OAAKA,GAEdgB,iBAAgBrW,YAAA,CACdM,MAAO,OACNvX,EAAMwX,YAAYC,KAAK,MAAQ,CAC9BF,MAAO,QAGXgW,aAAYtW,YAAA,CACVhW,OAAQ,6BACRihB,SAAU,WACVhhB,aAAc,EACdL,QAAS,OACT0W,MAAO,MACPvW,QAAS,OACTD,cAAe,SACfgW,eAAgB,SAChBD,WAAY,SACZ6K,OAAQ,UACR1I,OAAQ,YACPjZ,EAAMwX,YAAYC,KAAK,MAAQ,CAC9BF,MAAO,QAGXiW,oBAAqB,CACnBttB,SAAU,OACVC,MAAO,QAET0iB,MAAO,CACLtL,MAAO,OACP9V,OAAQ,OACRygB,SAAU,WACVY,OAAQ,IACRC,KAAM,EACNC,QAAS,EACTrB,OAAQ,WAEVX,UAAW,CACTzJ,MAAO,OACP9V,OAAQ,OACRygB,SAAU,WACVY,OAAQ,GACRC,KAAM,EACNpB,OAAQ,UACRvK,WAAY,QAEdqW,wBAAyB,CACvB5sB,QAAS,OACTiW,WAAY,SACZvV,UAAW,IAEbmsB,yBAA0B,CACxB7sB,QAAS,OACTiW,WAAY,SACZvV,UAAW,IAEbosB,qBAAsB,CACpB9sB,QAAS,OACTE,cAAe,MACf+V,WAAY,SACZ8W,cAAe,IAElB,IAEK3K,GAAe,CACnB4K,WAAW,EACX/M,KAAM,GAENpf,MAAO,GACPmf,SAAU,GACVL,YAAa,GACbN,OAAQ,CAAC,EACTc,UAAW,GACXD,IAAK,IAQQ,SAAS+M,GAAaztB,GAAgC,IAAD+iB,EAAAC,EAAAC,EAAAC,EAA5BwK,EAAY1tB,EAAZ0tB,aAAc9B,EAAU5rB,EAAV4rB,WAC9C1rB,EAAUT,KACV+X,EAAWC,cACX+L,EAAY7L,aAAY,SAACC,GAAK,OAAKA,EAAMC,OAAO2L,SAAS,IACzD6H,EAAU1T,aAAY,SAACC,GAAK,OAAKA,EAAM0L,OAAO+H,OAAO,IAC3DhQ,EAA0BC,mBAASsH,IAAarH,EAAAC,YAAAH,EAAA,GAAzCzD,EAAK2D,EAAA,GAAEmI,EAAQnI,EAAA,GAChBkI,EAAY9L,aAAY,SAACC,GAAK,OAAKA,EAAMC,OAAO4L,SAAS,IACzDkK,EAAiBhW,aACrB,SAACC,GAAK,OAAKA,EAAMC,OAAOC,WAAWC,SAAS,IAExC2C,EAAaiJ,OAAOnG,KAAKiG,GAAWtH,OAAS,EAE7CnE,EAAc,WAClBR,EAAS3H,IAAkB,IAC3B+d,GACF,EACA3V,qBAAU,WACR,OAAO,WACLD,GACF,CACF,GAAG,IACH,IAAM4V,EAAoB,WACxBlK,EAASd,IACTpL,EAASpH,GAAoB,CAAC,GAChC,EAkDA,SAAS5O,EAAaC,EAAOE,GAC3B,IAAIoiB,EAAS9hB,YAAA,GAAQ2V,GACrBmM,EAAUpiB,GAAQF,EAClBiiB,EAASK,EACX,CAEA,SAAS7hB,EAAS+hB,EAAOtiB,GACvB,IAAI8e,EAAOwD,EAAM7hB,OAAO8hB,MAAM,GAC1BC,EAAS,IAAIC,WACjBD,EAAOE,OAAS,SAAUJ,GAAQ,IAAD4J,EAK/BnK,EAAQzhB,wBAAC,CAAC,EACL2V,GAAK,IAAAiW,EAAA,GAAAjX,YAAAiX,EACPlsB,EAAO8e,GAAI7J,YAAAiX,EAAC,aACF,GAAIjX,YAAAiX,EAAC,MAEF,cAATlsB,EAAuBsiB,EAAM7hB,OAAOkiB,OAAS,IAAEuJ,IAExD,EAEApN,GAAQ0D,EAAOI,cAAc9D,EAC/B,CAyBA,OAvBAxI,qBAAU,WACJyC,GAAciT,GAChBjK,EAAQzhB,wBAAC,CAAC,EACL2V,GAAK,IACR4V,WAAW,EACXrN,YAAasD,EAAUlJ,KACnBkJ,EAAUqK,MAAM3N,YAChBsD,EAAUtD,YACd9e,MAAOoiB,EAAUlJ,KAAOkJ,EAAUqK,MAAMzsB,MAAQoiB,EAAUpiB,MAC1Dmf,SAAUiD,EAAUlJ,KAChBkJ,EAAUqK,MAAM9O,SAChByE,EAAUzE,SACd0B,IAAK+C,EAAUlJ,KAAOkJ,EAAUqK,MAAMjL,MAAQY,EAAUZ,QAG9D,GAAG,CAACnI,EAAYiT,IAEhB1V,qBAAU,WACHoT,EAAQvH,WACXtM,EAASjK,KAEb,GAAG,IAGDvL,eAACqV,GAAW,CAACE,QAASqW,EAAkBvtB,SAAA,CACtC2B,eAAA,OAAK1B,UAAWJ,EAAQkhB,YAAY/gB,SAAA,CAClCF,cAAA,QAAAE,SAAM,kBACNF,cAAC6jB,KAAS,CAACzG,QAASvF,EAAa1X,UAAWJ,EAAQmhB,eAEtDrf,eAAA,OACE1B,UACEsX,EAAM4V,UAAYttB,EAAQgsB,cAAgBhsB,EAAQisB,iBACnD9rB,SAAA,CAEAuX,EAAM4V,WACLxrB,eAAA,OAAK1B,UAAWJ,EAAQiiB,cAAc9hB,SAAA,CACpCF,cAAA,OAAKG,UAAWJ,EAAQ2sB,QAAQxsB,SAAC,YACjCF,cAAA,OAAKG,UAAWJ,EAAQ+sB,iBAAiB5sB,SACvCF,cAACmB,EAAe,CACdG,MAAOmW,EAAMvW,MACbG,aAAcA,EACdG,KAAK,QACLN,MAAM,mBACNK,YAAY,uCACZzB,MAAY,OAAL2X,QAAK,IAALA,GAAa,QAARmL,EAALnL,EAAOiI,cAAM,IAAAkD,OAAR,EAALA,EAAe1hB,UAG1BlB,cAAA,OAAKG,UAAWJ,EAAQ8sB,mBAAmB3sB,SACzCF,cAACmB,EAAe,CACdG,MAAOmW,EAAM4I,SACbhf,aAAcA,EACdG,KAAK,WACLN,MAAM,sBACNK,YAAY,kBACZzB,MAAY,OAAL2X,QAAK,IAALA,GAAa,QAARoL,EAALpL,EAAOiI,cAAM,IAAAmD,OAAR,EAALA,EAAexC,aAG1BrgB,cAAA,OAAKG,UAAWJ,EAAQ8sB,mBAAmB3sB,SACzCF,cAACmB,EAAe,CACdG,MAAOmW,EAAMuI,YACb3e,aAAcA,EACdG,KAAK,cACLE,UAAU,EACVR,MAAM,cACNK,YAAY,gCACZzB,MAAY,OAAL2X,QAAK,IAALA,GAAa,QAARqL,EAALrL,EAAOiI,cAAM,IAAAoD,OAAR,EAALA,EAAe9C,gBAKxBne,eAAA5B,WAAA,CAAAC,SAAA,CACEF,cAAA,OAAKG,UAAWJ,EAAQ4sB,aAAazsB,SAAC,cACtCF,cAAA,QAAMG,UAAWJ,EAAQ6sB,qBAAqB1sB,SAAC,0HAI/C2B,eAAA,OAAK1B,UAAWJ,EAAQgtB,aAAa7sB,SAAA,CACpB,KAAduX,EAAM8I,KACLvgB,cAAA,OAAKG,UAAWJ,EAAQygB,UAAW5B,IAAKnH,EAAM8I,MAEhDvgB,cAAA,SACE+B,SAAU,SAACC,GAAC,OAAKD,EAASC,EAAG,YAAY,EACzC4rB,OAAO,UACPztB,UAAWJ,EAAQsiB,MACnBjI,KAAK,OACLyT,SAAO,EACP9S,SAAUR,IAEZva,cAAC8tB,KAAqB,IACtB9tB,cAAA,OAAKG,UAAWJ,EAAQitB,oBAAoB9sB,SAAC,2BAMnDF,cAACJ,EAAY,CAACE,MAAY,OAAL2X,QAAK,IAALA,GAAa,QAARsL,EAALtL,EAAOiI,cAAM,IAAAqD,OAAR,EAALA,EAAevC,gBAyDtC/I,EAAM4V,WACNxrB,eAAC4mB,IAAMsF,SAAQ,CAAA7tB,SAAA,CACb2B,eAAA,OAAK1B,UAAWJ,EAAQusB,oBAAoBpsB,SAAA,CAC1CF,cAAA,SACE+B,SAAU,SAACC,GAAC,OAAKD,EAASC,EAAG,OAAO,EACpC4rB,OAAO,eACPztB,UAAWJ,EAAQsiB,MACnBjI,KAAK,OACLyT,SAAO,IAET7tB,cAACguB,KAAW,CAAC7tB,UAAWJ,EAAQosB,aAChCnsB,cAAA,OAAKG,UAAWJ,EAAQksB,yBAE1BjsB,cAAA,OAAKG,UAAWJ,EAAQysB,QAAQtsB,SAAC,6CAMtCuX,EAAM4V,WACLxrB,eAAA,OAAK1B,UAAWJ,EAAQmiB,OAAOhiB,SAAA,CAC7BF,cAAA,OAAKG,UAAWJ,EAAQ0sB,cAAcvsB,SACnCmjB,GACCxhB,eAAA5B,WAAA,CAAAC,SAAA,CACE2B,eAAA,OAAK1B,UAAWJ,EAAQwsB,yBAAyBrsB,SAAA,CAC/CF,cAACguB,KAAW,CAAC7tB,UAAWJ,EAAQssB,kBAChCrsB,cAAA,OAAKG,UAAWJ,EAAQmsB,8BAE1BlsB,cAAA,QAAAE,SAAM,sBAIZF,cAAA,UACE+a,SAAUsI,EACVjG,QApQgB,WACxB,IAAMsC,EAASD,GAAUhI,GAMzB,GAJI8C,UACKmF,EAAOc,UAEhB+C,EAAQzhB,wBAAC,CAAC,EAAI2V,GAAK,IAAEiI,aACjB8D,OAAOnG,KAAKqC,GAAQ1D,OAGxB,GAAIzB,EAAJ,CACE,IAAM6N,EAAU,CACdlnB,MAAOuW,EAAMvW,MACb2d,SAAUpH,EAAM4I,SAChBL,YAAavI,EAAMuI,aAGrByL,EAAW,CACTwC,QAAS7F,EACThM,IAAKkH,EAAUqK,MAAQrK,EAAUqK,MAAMvR,IAAMkH,EAAUlH,IACvD8R,WAAY,UAIhB,KAdA,CAeA,IAAMC,EAAW,IAAI3J,SACrB2J,EAAS1J,OAAO,QAAShN,EAAM6I,MAE/B6N,EAAS1J,OAAO,QAAShN,EAAMvW,OAC/BitB,EAAS1J,OAAO,WAAYhN,EAAM4I,UAClC8N,EAAS1J,OAAO,cAAehN,EAAMuI,aAAe,IACpDmO,EAAS1J,OAAO,QAAShN,EAAM+I,WAY/B4N,QAAQC,IAAI5W,GAEZ8V,EAAaY,EArBb,CAsBF,EAuNUhuB,UAAWJ,EAAQqiB,OAAOliB,SAEzBmjB,EAAYrjB,cAACkf,GAAM,CAACtd,MAAO,CAAEjC,MAAO,UAAe,gBAMhE,CC7fe,Q,sCCAA,I,OCAA,ICAA,ICSf2uB,KAAMC,oBAAoBC,UAAS,2CAAA1P,OAA8CwP,KAAMG,QAAO,kBAE5ElvB,aAAW,SAACC,GAAK,MAAM,CACrCkvB,aAAc,CACd,EACAC,gBAAiB,CACbjN,SAAU,WACVrhB,QAAS,OACTkW,eAAgB,SAChBD,WAAY,SACZS,MAAO,IACP9V,OAAQ,IACR2tB,SAAU,SACV,uBAAyB,CACrBvuB,QAAS,SAGjBwuB,eAAgB,CACZ9X,MAAO,GACP9V,OAAQ,GACRgqB,OAAQ,GACRpJ,MAAO,GACPH,SAAU,WACVY,OAAQ,GACRjiB,QAAS,QAEbyuB,gBAAiB,CACb/X,MAAO,GACP9V,OAAQ,IAEZ8tB,SAAQtY,YAAA,CACJ8L,KAAM,GACN0I,OAAQ,MACRvJ,SAAU,WACVY,OAAQ,GACRvL,MAAO,GACP9V,OAAQ,GACRP,aAAc,GACdkW,WAAY,QACZvW,QAAS,OACTkW,eAAgB,SAChBD,WAAY,UAAQ,UACX,QAEb0Y,UAASvY,YAAA,CACLoL,MAAO,GACPoJ,OAAQ,MACRvJ,SAAU,WACVY,OAAQ,GACRvL,MAAO,GACP9V,OAAQ,GACRP,aAAc,GACdkW,WAAY,QACZvW,QAAS,OACTkW,eAAgB,SAChBD,WAAY,UAAQ,UACX,QAEb2Y,kBAAmB,CACflY,MAAO,GACP9V,OAAQ,IAEZiuB,sBAAuB,CACnBnY,MAAO,GACP9V,OAAQ,IAEf,IC1DiB1B,aAAW,SAACC,GAAK,MAAM,CACvCuf,KAAM,CACJhI,MAAO,OACPL,gBAAiBlX,EAAMmX,QAAQC,WAAWJ,OAE5CuO,WAAY,CACV5D,OAAQ,WAEVgO,gBAAiB,CACf3uB,QAAS,GACT4kB,aAAc,IAEhBgK,WAAY,CACV1vB,SAAU,SAEZ2vB,aAAc,CACZ3vB,SAAU,SAEZ4vB,WAAY,CACVnO,OAAQ,UACRoO,WAAY,IAEdC,YAAa,CACXnvB,QAAS,OACT+rB,UAAW,SAEbqD,UAAW,CACT1Y,MAAO,IACP9V,OAAQ,KAEX,I,iCCpCK3B,GAAYC,aAAW,SAACC,GAAK,MAAM,CACvCuf,KAAM,CACJve,QAAS,IAEXiqB,aAAc,CACZpqB,QAAS,OACTE,cAAe,MACfgW,eAAgB,gBAChBD,WAAY,SACZ3V,aAAc,IAEhBkqB,cAAe,CACbrJ,WAAY,OACZ9hB,SAAU,UAEZgwB,YAAa,CACX/uB,aAAc,GACdkW,UACE,uGACFD,WAAY,OACZG,MAAO,QAET2L,MAAO,CACL3L,MAAO,OACP9V,OAAQ,OACR0uB,UAAW,WAEbC,QAAS,CACPvvB,QAAS,OACTkW,eAAgB,gBAChBD,WAAY,UAEdyO,WAAY,CACV5D,OAAQ,WAEVmO,WAAY,CACVnO,OAAQ,WAEV0O,aAAc,CACZxvB,QAAS,OACTE,cAAe,MACfgW,eAAgB,MAChBQ,MAAO,MACPqO,aAAc,IAEhB0K,mBAAoB,CAClB1K,aAAc,IAEhBlkB,MAAO,CACLxB,SAAU,SACViB,aAAc,GAEhB0f,SAAU,CACR3gB,SAAU,SACViB,aAAc,GAEhBqf,YAAa,CACXtgB,SAAU,SACViB,aAAc,GAEhBqqB,IAAK,CACHtJ,SAAU,QACVuJ,OAAQzrB,EAAMkZ,QAAQ,GACtBmJ,MAAOriB,EAAMkZ,QAAQ,GACrB9B,WAAY,UACZ,UAAW,CACTA,WAAY,YAGjB,IAMc,SAASmZ,GAAYlwB,GAMhC,IAADmwB,EAAAC,EAAAC,EAAAC,EALD7L,EAAIzkB,EAAJykB,KACAmH,EAAU5rB,EAAV4rB,WACA3F,EAAYjmB,EAAZimB,aACsBsK,GAAAvwB,EAAtBwwB,uBAAsBxwB,EACtBywB,iBAAQ,IAAAF,GAAQA,EAEVrwB,EAAUT,KACV+jB,EAAY7L,aAAY,SAACC,GAAK,OAAKA,EAAMC,OAAO2L,SAAS,IAE/D,OACErjB,cAAA,OAAKG,UAAWJ,EAAQ2vB,YAAYxvB,SAClC2B,eAAA,OAAK1B,UAAWJ,EAAQ6vB,QAAQ1vB,SAAA,CAC9B2B,eAAA,OACED,MAAO,CACLvB,QAAS,OACT0W,MAAO,OACP7W,SAAA,CAEFF,cAAA,OACE4B,MAAO,CACLvB,QAAS,OACTE,cAAe,SACfgW,eAAgB,SAChBD,WAAY,SACZS,MAAO,QACP0C,UAAW,QACXmV,SAAU,UACV1uB,SAEDokB,EAAKvD,QACJ/gB,cAAA,SAAO+W,MAAM,MAAM4H,UAAQ,EAAAze,SACzBF,cAAA,UAAQ4e,IAAK0F,EAAKrG,UAAW7D,KAAK,gBAExB,QAAV4V,EAAA1L,EAAKqJ,aAAK,IAAAqC,GAAVA,EAAY/R,UACdje,cAAA,SAAO+W,MAAM,MAAM4H,UAAQ,EAAAze,SACzBF,cAAA,UAAQ4e,IAAe,QAAZqR,EAAE3L,EAAKqJ,aAAK,IAAAsC,OAAA,EAAVA,EAAYhS,UAAW7D,KAAK,gBAEzCkK,EAAK5B,MACP1iB,cAAA,OAAKG,UAAWJ,EAAQ2iB,MAAO9D,IAAK0F,EAAK5B,MAAO6N,IAAI,QAClD,OAEN1uB,eAAA,OACED,MAAO,CACLpB,QAAS,GACTH,QAAS,OACTE,cAAe,SACfgW,eAAe,GAADuI,OAAKwF,EAAK5B,MAAQ,SAAW,cAC3CpM,WAAY,SACZsC,SAAU,MACV7B,MAAO,OACP4B,SAAU,SACVzY,SAAA,CAEDokB,EAAK5B,OACJ1iB,cAAA,QACE4B,MAAO,CACLvB,QAAS,eACTuY,SAAU,QACV4X,WAAY,SACZ5B,SAAU,SACV6B,aAAc,WACd1Z,MAAO,QACP7W,SAEDokB,EAAKoM,WAGRpM,EAAKvD,UAAqB,QAAdmP,EAAI5L,EAAKqJ,aAAK,IAAAuC,OAAA,EAAVA,EAAYjS,aAC5Bpc,eAAA5B,WAAA,CAAAC,SAAA,CACEF,cAAA,OACE4B,MAAO,CACLvB,QAAS,eACTuY,SAAU,QACV4X,WAAY,SACZ5B,SAAU,SACV6B,aAAc,WACd1Z,MAAO,OACPrX,SAAU,QACV8hB,WAAY,QACZthB,SAEDokB,EAAKpjB,OAASojB,EAAKqJ,MAAMzsB,QAE5BlB,cAAA,OACE4B,MAAO,CACLvB,QAAS,eACTuY,SAAU,QACV4X,WAAY,SACZ5B,SAAU,SACV6B,aAAc,WACd1Z,MAAO,OACPrX,SAAU,QACVixB,UAAW,SACXnwB,QAAS,SACTN,SAEDokB,EAAKzF,UAAYyF,EAAKqJ,MAAM9O,WAE/B7e,cAAA,OACE4B,MAAO,CACLvB,QAAS,cACTuY,SAAU,QACVgW,SAAU,SACV6B,aAAc,WACdD,WAAY,SACZI,gBAAiB,EACjBC,gBAAiB,WACjB9Z,MAAO,OACPrX,SAAU,SACVQ,SAEDokB,EAAKtE,aAAesE,EAAKqJ,MAAM3N,oBAKxChgB,cAAA,OACE4B,MAAO,CACLpB,QAAS,GACTH,QAAS,OACTE,cAAe,SACfgW,eAAgB,SAChBD,WAAY,UACZpW,SAED4wB,MAAiB,QAAVX,EAAA7L,EAAKqJ,aAAK,IAAAwC,OAAA,EAAVA,EAAYY,YAAazM,EAAKyM,WAAWC,OAC/C,6BAINhxB,cAAA,OAAKG,UAAWJ,EAAQ8vB,aAAa3vB,SAClCmjB,EACCrjB,cAACkf,GAAM,CAACI,QAAQ,UAEhBzd,eAAA,OAAA3B,SAAA,CAYGowB,GACCtwB,cAACqkB,KAAU,CACTjH,QAAS,kBAAMqO,EAAWnH,EAAK,EAC/BnkB,UAAWJ,EAAQuvB,aAIvBtvB,cAAC+oB,KAAU,CACT3L,QAAS,kBAAM0I,EAAaxB,EAAKlI,IAAI,EACrCjc,UAAWJ,EAAQglB,sBAQnC,C,aCpOMzlB,GAAYC,aAAW,SAACC,GAAK,IAAAssB,EAAA,MAAM,CACvC7K,YAAa,CACX5gB,QAAS,OACTE,cAAe,MACfgW,eAAgB,gBAChBD,WAAY,SACZ9V,QAAShB,EAAMkZ,QAAQ,GACvBG,aAAc,8BAEhBqI,UAAW,CACTC,OAAQ,WAEVjB,QAAS,CACP5f,KAAM,EACNE,QAAS,GACT6gB,UAAW,UAEba,OAAQ,CACN1hB,QAAShB,EAAMkZ,QAAQ,GACvByJ,UAAW,6BACX9hB,QAAS,OACTE,cAAe,MACfgW,eAAgB,WAChBD,WAAY,UAEd8L,OAAQ,CACNvhB,QAAS,OACTJ,OAAQ,OACRmW,WAAY,UACZjX,MAAO,OACPoX,MAAO,GACP9V,OAAQ,GACRkgB,OAAQ,WAEVa,cAAe,CACbjL,MAAO,QAETka,QAAS,CACP,EAEFC,cAAe,CAIb3B,YAAa/vB,EAAMkZ,QAAQ,IAE7B8H,UAAW,CACTzJ,MAAO,OACP9V,OAAQ,OACRygB,SAAU,WACVY,OAAQ,GACRC,KAAM,EACNpB,OAAQ,UACRvK,WAAY,OACZ+Y,UAAW,WAEb5C,aAAYtW,YAAA,CACVhW,OAAQ,6BACRihB,SAAU,WACVhhB,aAAc,EACdL,QAAS,OACT0W,MAAO,MAEP9V,OAAQ,QACRwY,UAAW,QACXlZ,cAAe,SACfgW,eAAgB,SAChBD,WAAY,SACZ6K,OAAQ,WAEP3hB,EAAMwX,YAAYC,KAAK,MAAQ,CAC9BF,MAAO,QAGXsL,MAAO,CACLtL,MAAO,OACP9V,OAAQ,OACRygB,SAAU,WACVY,OAAQ,IACRC,KAAM,EACNC,QAAS,EACTrB,OAAQ,WAEVgQ,mBAAoB,CAClB9wB,QAAS,OACTkW,eAAgB,SAChBD,WAAY,SACZvV,UAAWvB,EAAMkZ,QAAQ,GACzBnY,cAAe,UAEjB0sB,wBAAyB,CACvB5sB,QAAS,OACTiW,WAAY,SACZvV,UAAW,IAEbgrB,cAAe,CACb1rB,QAAS,OACTE,cAAe,SACfD,KAAM,EACN8wB,WAAY,GACZhE,cAAe,IAGjBpB,iBAAkB,CAChB3rB,QAAS,OACTC,KAAM,EACNC,cAAe,SACfgW,eAAgB,SAChBD,WAAY,SACZ8a,WAAY,GACZnwB,OAAQ,OAEVgrB,oBAAqB,CACnBpT,aAAc,4BACd5X,OAAQ,MACR8V,MAAO,QAETmV,yBAA0B,CACxBrT,aAAc,oBACd5X,OAAQ,MACR8V,MAAO,QAEToV,WAAY,CACVC,UAAW,iBACX1sB,SAAU,SACVC,MAAO,mBAET0sB,gBAAiB,CACfD,UAAW,iBACX1sB,SAAU,SACVC,MAAO,WAET2sB,oBAAqB,CACnB5K,SAAU,WACVrhB,QAAS,OACTE,cAAe,SACfgW,eAAgB,SAChBD,WAAY,SACZM,WAAY,UACZ3V,OAAQ,IACR8V,MAAO,IACPrW,aAAc,GACdC,aAAc,GACdwgB,OAAQ,WAEVoL,yBAA0B,CACxB7K,SAAU,YACVrhB,QAAS,OACTE,cAAe,SACfgW,eAAgB,SAChBD,WAAY,SACZgP,YAAa,IAEfkH,QAAS,CAAC,EAkBVC,cAAe,CACbpsB,QAAS,OACTE,cAAe,MACfgW,eAAgB,SAChBD,WAAY,SACZ3W,MAAO,WAKT+sB,QAAS,CACPlL,WAAY,MACZ9hB,SAAU,SACViB,aAAc,IAEhBgsB,aAAc,CACZnL,WAAY,OAEdoL,qBAAsB,CACpBpL,WAAY,SACZ9hB,SAAU,OACVC,MAAO,aAETktB,oBAAkBf,EAAA,CAChBrT,OAAQ,YAAUhC,YAAAqV,EACjBtsB,EAAMwX,YAAYC,KAAK,MAAQ,CAC9BF,MAAO,QACRN,YAAAqV,EAAC,QACK,OAAKA,GAEdgB,iBAAgBrW,YAAA,CACdM,MAAO,OACNvX,EAAMwX,YAAYC,KAAK,MAAQ,CAC9BF,MAAO,QAmBXiW,oBAAqB,CACnBttB,SAAU,OACVC,MAAO,QAyBTutB,yBAA0B,CACxB7sB,QAAS,OACTiW,WAAY,SACZvV,UAAW,IAEbosB,qBAAsB,CACpB9sB,QAAS,OACTE,cAAe,MACf+V,WAAY,SACZ8W,cAAe,IAElB,IAEK3K,GAAe,CACnB/C,OAAQ,CAAC,EACTtF,KAAM,QACNlZ,MAAO,GACPmf,SAAU,GACVL,YAAa,GACb0C,MAAO,GACPnC,IAAK,GAELD,KAAM,GACN+Q,kBAAkB,EAClBX,QAAS,GACTlQ,UAAW,IAGP8Q,GAAgB,CACpB,CAAE9vB,KAAM,QAAS4Y,KAAM,SACvB,CAAE5Y,KAAM,QAAS4Y,KAAM,UA0WVmX,GAvWa,WAAO,IAAD3O,EAAAC,EAAAC,EAAAC,EAAAC,EAC1BjjB,EAAUT,KACV+X,EAAWC,cAEX+L,EAAY7L,aAAY,SAACC,GAAK,OAAKA,EAAMC,OAAO2L,SAAS,IAE/DnI,EAA0BC,mBAASsH,IAAarH,EAAAC,YAAAH,EAAA,GAAzCzD,EAAK2D,EAAA,GAAEmI,EAAQnI,EAAA,GAChBkI,EAAY9L,aAAY,SAACC,GAAK,OAAKA,EAAMC,OAAO4L,SAAS,IACzD/I,EAAaiJ,OAAOnG,KAAKiG,GAAWtH,OAAS,EAE7CnE,EAAc,WAClBR,EAAS3H,IAAkB,IAC3B+d,GACF,EACA3V,qBAAU,WACR,OAAO,WACLD,GACF,CACF,GAAG,IACH,IAAM4V,EAAoB,WACxBlK,EAASd,IACTpL,EAASpH,GAAoB,CAAC,GAChC,EA+EA6H,qBAAU,WACJyC,IACqB,UAAnB+I,EAAUlJ,KACZmJ,EAAQzhB,wBAAC,CAAC,EACL2V,GAAK,IACR4V,WAAW,EACXjT,KAAMkJ,EAAUlJ,KAChB4F,YAAasD,EAAUtD,YACvB9e,MAAOoiB,EAAUpiB,MACjBmf,SAAUiD,EAAUzE,SACpB0B,IAAK+C,EAAUZ,SAEW,UAAnBY,EAAUlJ,MACnBmJ,EAAQzhB,wBAAC,CAAC,EACL2V,GAAK,IACR2C,KAAMkJ,EAAUlJ,KAChBmG,IAAK+C,EAAUZ,MACf2K,WAAW,EACXqD,QAASpN,EAAUoN,SAAW,MAItC,GAAG,CAACnW,IAEJ,IAAMlZ,EAAe,SAACC,EAAOE,GAC3B+hB,EAAQzhB,wBAAC,CAAC,EAAI2V,GAAK,GAAAhB,YAAA,GAAGjV,EAAOF,IAC/B,EAMA,SAASS,EAAS+hB,EAAOtiB,GACvB,IAAI8e,EAAOwD,EAAM7hB,OAAO8hB,MAAM,GAC1BC,EAAS,IAAIC,WACjBD,EAAOE,OAAS,SAAUJ,GAAQ,IAAD0N,EAC/BjO,EAAQzhB,wBAAC,CAAC,EACL2V,GAAK,IAAA+Z,EAAA,GAAA/a,YAAA+a,EACPhwB,EAAO8e,GAAI7J,YAAA+a,EAAC,aACF,GAAI/a,YAAA+a,EAAC,MAGC,UAAf/Z,EAAM2C,MAEO,cAAT5Y,EADAsiB,EAAM7hB,OAAOkiB,OAGb,IAAEqN,IAEZ,EAEAlR,GAAQ0D,EAAOI,cAAc9D,EAC/B,CAEA,OACEze,eAACqV,GAAW,CAACE,QA1BK,WAClBmM,EAASd,GACX,EAwBoCviB,SAAA,CAChC2B,eAAA,OAAK1B,UAAWJ,EAAQkhB,YAAY/gB,SAAA,CAClCF,cAAA,QAAAE,SAAM,iBACNF,cAAC6jB,KAAS,CAACzG,QAASvF,EAAa1X,UAAWJ,EAAQmhB,eAEtDrf,eAAA,OAAK1B,UAAWJ,EAAQmgB,QAAQhgB,SAAA,CAC9BF,cAAA,OAAKG,UAAWJ,EAAQmxB,cAAchxB,SACpCF,cAAC2Z,GAAc,CACbY,WAAYA,EACZD,aAAc7C,EAAM2C,KACpBH,UAAU,EACVC,QAAQ,OACR1Y,KAAK,OACLuY,SAAU1Y,EACVwY,KAAMyX,GACN7W,UAAU,OACVE,eAAe,MAGnB3a,cAAA,OAAKG,UAAWJ,EAAQkxB,UACR,UAAfxZ,EAAM2C,MACLpa,cAAAC,WAAA,CAAAC,SACE2B,eAAA,OAAK1B,UAAWJ,EAAQoxB,mBAAmBjxB,SAAA,CACzC2B,eAAA,OAAK1B,UAAWJ,EAAQgtB,aAAa7sB,SAAA,CACpB,KAAduX,EAAM8I,KACLvgB,cAAA,OACEG,UAAWJ,EAAQygB,UACnB5B,IAAKnH,EAAM8I,IACXgQ,IAAI,iBAGRvwB,cAAA,SACE+B,SAAU,SAACC,GAAC,OAAKD,EAASC,EAAG,QAAQ,EACrC4rB,OAAO,UACPztB,UAAWJ,EAAQsiB,MACnBjI,KAAK,OACLyT,SAAO,EACP9S,SAAUR,IAEZva,cAAC8tB,KAAqB,IACtB9tB,cAAA,OAAKG,UAAWJ,EAAQitB,oBAAoB9sB,SAAC,oBAE/CF,cAACJ,EAAY,CAACE,MAAY,OAAL2X,QAAK,IAALA,GAAa,QAARmL,EAALnL,EAAOiI,cAAM,IAAAkD,OAAR,EAALA,EAAetC,OACpCtgB,cAACmB,EAAe,CACdG,MAAOmW,EAAMiZ,QACblvB,KAAM,UACNH,aAAcA,EACdO,MAAO,CAAEmV,MAAO,MAAOhW,UAAW,IAClCW,UAAU,EACVH,YAAa,0BAKL,UAAfkW,EAAM2C,MACLvY,eAAA,OACE1B,UACEsX,EAAM4V,UAAYttB,EAAQgsB,cAAgBhsB,EAAQisB,iBACnD9rB,SAAA,CAEAuX,EAAM4V,WACLxrB,eAAA,OAAK1B,UAAWJ,EAAQiiB,cAAc9hB,SAAA,CACpCF,cAAA,OAAKG,UAAWJ,EAAQ2sB,QAAQxsB,SAAC,YACjCF,cAAA,OAAKG,UAAWJ,EAAQ+sB,iBAAiB5sB,SACvCF,cAACmB,EAAe,CACdG,MAAOmW,EAAMvW,MACbG,aAAcA,EACdG,KAAK,QACLN,MAAM,mBACNK,YAAY,uCACZzB,MAAY,OAAL2X,QAAK,IAALA,GAAa,QAARoL,EAALpL,EAAOiI,cAAM,IAAAmD,OAAR,EAALA,EAAe3hB,UAG1BlB,cAAA,OAAKG,UAAWJ,EAAQ8sB,mBAAmB3sB,SACzCF,cAACmB,EAAe,CACdG,MAAOmW,EAAM4I,SACbhf,aAAcA,EACdG,KAAK,WACLN,MAAM,sBACNK,YAAY,kBACZzB,MAAY,OAAL2X,QAAK,IAALA,GAAa,QAARqL,EAALrL,EAAOiI,cAAM,IAAAoD,OAAR,EAALA,EAAezC,aAG1BrgB,cAAA,OAAKG,UAAWJ,EAAQ8sB,mBAAmB3sB,SACzCF,cAACmB,EAAe,CACdG,MAAOmW,EAAMuI,YACb3e,aAAcA,EACdG,KAAK,cACLE,UAAU,EACVR,MAAM,cACNK,YAAY,gCACZzB,MAAY,OAAL2X,QAAK,IAALA,GAAa,QAARsL,EAALtL,EAAOiI,cAAM,IAAAqD,OAAR,EAALA,EAAe/C,gBAKxBne,eAAA5B,WAAA,CAAAC,SAAA,CACEF,cAAA,OAAKG,UAAWJ,EAAQ4sB,aAAazsB,SAAC,cACtCF,cAAA,QAAMG,UAAWJ,EAAQ6sB,qBAAqB1sB,SAAC,0HAK/C2B,eAAA,OAAK1B,UAAWJ,EAAQgtB,aAAa7sB,SAAA,CACpB,KAAduX,EAAM8I,KACLvgB,cAAA,OAAKG,UAAWJ,EAAQygB,UAAW5B,IAAKnH,EAAM8I,MAEhDvgB,cAAA,SACE+B,SAAU,SAACC,GAAC,OAAKD,EAASC,EAAG,YAAY,EACzC4rB,OAAO,UACPztB,UAAWJ,EAAQsiB,MACnBjI,KAAK,OACLyT,SAAO,EACP9S,SAAUR,IAEZva,cAAC8tB,KAAqB,IACtB9tB,cAAA,OAAKG,UAAWJ,EAAQitB,oBAAoB9sB,SAAC,2BAMnDF,cAACJ,EAAY,CAACE,MAAY,OAAL2X,QAAK,IAALA,GAAa,QAARuL,EAALvL,EAAOiI,cAAM,IAAAsD,OAAR,EAALA,EAAexC,gBAGtC/I,EAAM4V,WACNxrB,eAAC4mB,IAAMsF,SAAQ,CAAA7tB,SAAA,CACb2B,eAAA,OAAK1B,UAAWJ,EAAQusB,oBAAoBpsB,SAAA,CAC1CF,cAAA,SACE+B,SAAU,SAACC,GAAC,OAAKD,EAASC,EAAG,OAAO,EACpC4rB,OAAO,eACPztB,UAAWJ,EAAQsiB,MACnBjI,KAAK,OACLyT,SAAO,IAET7tB,cAACguB,KAAW,CAAC7tB,UAAWJ,EAAQosB,aAChCnsB,cAAA,OAAKG,UAAWJ,EAAQksB,yBAE1BjsB,cAAA,OAAKG,UAAWJ,EAAQysB,QAAQtsB,SAAC,gDA8B1CuX,EAAM4V,WACLxrB,eAAA,OAAK1B,UAAWJ,EAAQmiB,OAAOhiB,SAAA,CAC7BF,cAAA,OAAKG,UAAWJ,EAAQ0sB,cAAcvsB,SACnCmjB,GACCxhB,eAAA5B,WAAA,CAAAC,SAAA,CACE2B,eAAA,OAAK1B,UAAWJ,EAAQwsB,yBAAyBrsB,SAAA,CAC/CF,cAACguB,KAAW,CAAC7tB,UAAWJ,EAAQssB,kBAChCrsB,cAAA,OAAKG,UAAWJ,EAAQmsB,8BAE1BlsB,cAAA,QAAAE,SAAM,sBAIZF,cAAA,UACE+a,SAAUsI,EACVjG,QA1TW,WACnB,IAAMsC,EAASD,GAAUhI,GAgBzB,GAZI8C,UACKmF,EAAOc,UAGG,UAAf/I,EAAM2C,cACDsF,EAAOxe,aACPwe,EAAOM,mBACPN,EAAOW,gBACPX,EAAOc,WAGhB+C,EAAQzhB,wBAAC,CAAC,EAAI2V,GAAK,IAAEiI,YACjB8D,OAAOnG,KAAKqC,GAAQ1D,OAEtByV,KAAM3xB,MAAM4f,EAAO8D,OAAOnG,KAAKqC,GAAQ,IAAK,CAC1CgC,SAAU,aACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,EACVpgB,MAAO,gBAVX,CAcA,IAAI2uB,EAAW,IAAI3J,SACnB2J,EAAS1J,OAAO,mBAAoBhN,EAAM4Z,kBAC1ClD,EAAS1J,OAAO,OAAQhN,EAAM2C,MAEX,UAAf3C,EAAM2C,MACR+T,EAAS1J,OAAO,QAAShN,EAAMiL,OAC/ByL,EAAS1J,OAAO,UAAWhN,EAAMiZ,UACT,UAAfjZ,EAAM2C,OACf+T,EAAS1J,OAAO,QAAShN,EAAM6I,MAC/B6N,EAAS1J,OAAO,QAAShN,EAAMvW,OAC/BitB,EAAS1J,OAAO,WAAYhN,EAAM4I,UAClC8N,EAAS1J,OAAO,cAAehN,EAAMuI,aAAe,IACpDmO,EAAS1J,OAAO,QAAShN,EAAM+I,YAG7BjG,GACiB,UAAf9C,EAAM2C,KACR+T,EAASxJ,OAAO,SACQ,UAAflN,EAAM2C,OACf+T,EAASxJ,OAAO,SAChBwJ,EAASxJ,OAAO,UAElBwJ,EAASxJ,OAAO,oBAChBwJ,EAASxJ,OAAO,QAEhBtN,EACE7B,GAA4B,CAC1ByY,QAASE,EACT/R,IAAKkH,EAAUlH,IACf8R,WAAY,aAIG,UAAfzW,EAAM2C,KACR/C,EACEpI,GAAmB,CACjBkf,WACA6D,WAAY,iBAGQ,UAAfva,EAAM2C,MACf/C,EAAShC,GAA2B8Y,GA1CxC,CA6CF,EAgPUhuB,UAAWJ,EAAQqiB,OAAOliB,SAEzBmjB,EAAYrjB,cAACkf,GAAM,CAACtd,MAAO,CAAEjC,MAAO,UAAe,gBAiBhE,EC7nBA2uB,KAAMC,oBAAoBC,UAAS,2CAAA1P,OAA8CwP,KAAMG,QAAO,kBAc9F,IAAMnvB,GAAYC,aAAW,SAACC,GAAK,MAAM,CACvCuf,KAAM,CACJve,QAAS,IAEXiqB,aAAc,CACZpqB,QAAS,OACTE,cAAe,MACfgW,eAAgB,gBAChBD,WAAY,SACZ3V,aAAc,IAEhBkqB,cAAe,CACbrJ,WAAY,OACZ9hB,SAAU,UAEZsrB,IAAK,CACHtJ,SAAU,QACVuJ,OAAQzrB,EAAMkZ,QAAQ,GACtBmJ,MAAOriB,EAAMkZ,QAAQ,GACrB9B,WAAY,UACZ,UAAW,CACTA,WAAY,YAGhBqb,SAAU,CACRzxB,QAAS,YACTkqB,UAAW,SACX/qB,MAAOH,EAAMmX,QAAQgU,KAAKC,UAC1BlJ,SAAU,QACVI,IAAK,QAEPoQ,UAAW,CAET7Q,UAAW,UAEb8Q,eAAgB,CACdlxB,OAAQ,WAEVmxB,aAAc,CACZnxB,OAAQ,UACRZ,QAAS,OACTkW,eAAgB,SAChBD,WAAY,UAEd8L,OAAQ,CACNvhB,QAAS,OACTJ,OAAQ,OACRmW,WAAY,UACZjX,MAAO,OACPa,QAAS,GACT2gB,OAAQ,WAEVjgB,MAAO,CACLsgB,WAAY,IACZ7hB,MAAO,WAETqgB,YAAa,CACXvH,OAAQ,mBACR/Y,SAAU,SAEZ2yB,YAAa,CACXtb,MAAO,IACP9V,OAAQ,IACRP,aAAc,GACdC,aAAc,IAEhB2xB,gBAAiB,CACf,EAEFC,SAAU,CACRC,UAAW,OACXhyB,QAAS,GACTiY,OAAQ,IAEVga,cAAe,CACb,EAEH,IAEc,SAASC,KACtB,IAAM3yB,EAAUT,KACV+X,EAAWC,cAEXqb,EAAcnb,aAAY,SAACC,GAAK,OAAKA,EAAM0L,OAAOwP,WAAW,IACnEzX,EAAkCC,mBAAS,IAAGC,EAAAC,YAAAH,EAAA,GAAvC0X,EAASxX,EAAA,GAAEyX,EAAYzX,EAAA,GAC9B0X,mBAAQ,WAEJH,EAAYrO,MACZ5D,MAAMC,QAAQgS,EAAYrO,OAC1BqO,EAAYrO,KAAKtI,OAAS,GAE1B6W,EAAaF,EAAYrO,KAE7B,GAAG,CAACqO,IACJ7a,qBAAU,WACRT,EAASnC,KACX,GAAG,IAEH,IAIM6d,EAAkB,SAAChV,GACvB1G,EAASpH,GAAoB8N,IAC7B1G,EAAS3H,IAAkB,GAC7B,EAEMsjB,EAAoB,SAACC,GACzB5b,EAAS1B,GAA6B,CAAEyG,IAAK6W,IAE/C,EAEMC,EAA8B,SAAC5O,GACnC,IAAM8D,EAAU,CAAEiJ,kBAAmB/M,EAAK+M,kBAE1Cha,EACE7B,GAA4B,CAC1ByY,QAAS7F,EACThM,IAAKkI,EAAKlI,IACV8R,WAAY,eAGlB,EAoBA,OACErsB,eAAA,OAAK1B,UAAWJ,EAAQgf,KAAK7e,SAAA,CAC3BF,cAAA,OAAKG,UAAWJ,EAAQ0qB,aAAavqB,SACnCF,cAAA,OAAKG,UAAWJ,EAAQ8qB,cAAc3qB,SAAC,mBAEzCF,cAACuxB,GAAmB,IACnBoB,EAAYtP,WAAarjB,cAACkf,GAAM,CAACI,QAAQ,QACzCqT,EAAYjH,SAAW1rB,cAACuqB,GAAK,CAACD,QAASqI,EAAYrI,UACnDqI,EAAYhP,WAAaiP,EAAU5W,OAAS,GAC3Chc,cAAAC,WAAA,CAAAC,SACEF,cAACmzB,KAAe,CAACC,UA7BH,SAACjP,GACrB,IAAQkP,EAAwBlP,EAAxBkP,OAAQC,EAAgBnP,EAAhBmP,YAGhB,GAAKA,GAEDA,EAAYxV,QAAUuV,EAAOvV,MAAjC,CAGA,IAAMyV,EAAcpV,aAAOyU,GAC3BY,EAAoBD,EAAehV,OAAO8U,EAAOvV,MAAO,GAAjD2V,EAAmDpY,YAAAmY,EAAA,GAA1C,GAChBD,EAAehV,OAAO+U,EAAYxV,MAAO,EAAG2V,GAC5C,IAAMC,EAAWH,EAAejX,KAAI,SAACyB,EAAMD,GACzC,MAAO,CAAE1B,IAAK2B,EAAK3B,IAAKuX,WAAY7V,EACtC,IAEAzG,EAASxB,GAAiC,CAAE+d,MAAOF,KACnDb,EAAaU,EAXiC,CAYhD,EAWkDrzB,SACxCF,cAAC6zB,KAAS,CAACC,YAAW,wBAA0B5zB,SAC7C,SAAC6zB,GACA,OACElyB,eAAA,MAAAC,wBAAA,CAAK0jB,IAAKuO,EAASC,UAAcD,EAASE,gBAAc,IAAA/zB,SAAA,CACrD0yB,EAAUtW,KAAI,SAACyB,EAAMD,GACpB,OACE9d,cAACk0B,KAAS,CAERC,YAAapW,EAAK3B,IAClB0B,MAAOA,EAAM5d,SAEZ,SAAC6zB,GAAQ,OACR/zB,cAAA,MAAA8B,oCAAA,CACE0jB,IAAKuO,EAASC,UACVD,EAASK,gBACTL,EAASM,iBAAe,IAC5BzyB,MAAKE,YAAA,GACAiyB,EAASK,eAAexyB,OAC3B1B,SAEFF,cAAC+vB,GAAY,CAEXzL,KAAMvG,EACN+H,aAAckN,EACd3C,uBACE6C,EAEF5C,UAAU,EACV7E,WAAYsH,GAPPjV,KASH,GAvBHC,EAAK3B,IA2BhB,IACC2X,EAASxyB,eAGhB,QAKRvB,cAAC2rB,KAAG,CACFC,KAAK,QACLxO,QApGkB,WACtB/F,EAAS3H,IAAkB,GAC7B,EAmGM/P,MAAM,YACN,aAAW,MACXQ,UAAWJ,EAAQirB,IAAI9qB,SAEvBF,cAAC6rB,KAAO,QAIhB,CCzOA,ICdIyI,GDcEh1B,GAAYC,aAAW,SAACC,GAAK,MAAM,CACrCyhB,YAAa,CACT5gB,QAAS,OACTE,cAAe,MACfgW,eAAgB,gBAChBD,WAAY,SACZ9V,QAAShB,EAAMkZ,QAAQ,GACvBG,aAAc,8BAElBqI,UAAW,CACPC,OAAQ,WAEZC,eAAe,CACX/gB,QAAQ,OACRC,KAAK,EACLC,cAAc,UAElB2f,QAAQ,CACJ7f,QAAS,OACTC,KAAM,EACNE,QAAS,GACT6gB,UAAW,UAEfC,YAAW7K,YAAA,CACPjW,QAAQ,OACRuW,MAAM,OACLvX,EAAMwX,YAAYC,KAAK,MAAQ,CAC5BF,MAAO,QAGfwK,MAAM,CACFC,WAAW,MACX7gB,aAAa,OACbI,UAAU,QAEd0gB,cAAc,CACVC,SAAS,WACT3K,MAAM,IACN9V,OAAO,IACPN,aAAa,QAEjBghB,WAAW,CACP5K,MAAM,OACN9V,OAAO,OACPP,aAAa,OAGjBkhB,cAAc,CACVF,SAAS,WACTG,OAAO,GACPC,IAAI,GACJ/K,MAAM,GACN9V,OAAO,GACPP,aAAa,GACbkW,WAAW,kBACXjX,MAAM,OACNU,QAAQ,OACRkW,eAAe,SACfD,WAAW,SACX6K,OAAO,UACPmB,OAAO,GAEXP,WAAW,CACPriB,SAAS,SAEbsiB,cAAavL,YAAA,CACTM,MAAO,OACNvX,EAAMwX,YAAYC,KAAK,MAAQ,CAC5BF,MAAO,SAGfkL,gBAAgB,CACZ5hB,QAAQ,OACRE,cAAc,MACd+V,WAAW,UAEf4L,OAAQ,CACJ1hB,QAAShB,EAAMkZ,QAAQ,GACvByJ,UAAW,6BACX9hB,QAAS,OACTE,cAAe,MACfgW,eAAgB,WAChBD,WAAY,UAEd8L,OAAQ,CACNvhB,QAAS,OACTJ,OAAQ,OACRmW,WAAY,UACZjX,MAAO,OACPoX,MAAM,GACN9V,OAAO,GACPkgB,OAAQ,WAEVkB,MAAM,CACFtL,MAAM,OACN9V,OAAO,OACPygB,SAAS,WACTY,OAAO,IACPC,KAAK,EACLC,QAAQ,EACRrB,OAAO,WAEhB,IAEKsB,GAAe,CACjBlC,IAAI,GACJgU,UAAS,EACT/yB,KAAK,GACL2e,MAAM,GACNM,KAAK,GACLH,KAAK,GACLZ,OAAO,CAAC,GAGI,SAASiD,KAAqB,IAADC,EAAAC,EAAAC,EAAAC,EAClChjB,EAAUT,KACX+X,EAAWC,cAEX+L,GADe7L,aAAY,SAAAC,GAAK,OAAIA,EAAM0L,OAAOD,YAAY,IACjD1L,aAAY,SAAAC,GAAK,OAAIA,EAAMC,OAAO2L,SAAS,KACvDC,EAAY9L,aAAY,SAAAC,GAAK,OAAIA,EAAMC,OAAO4L,SAAS,IAC7DpI,EAA0BC,mBAASsH,IAAarH,EAAAC,YAAAH,EAAA,GAAzCzD,EAAK2D,EAAA,GAAEmI,EAAQnI,EAAA,GAChBb,EAAaiJ,OAAOnG,KAAKiG,GAAWtH,OAAS,EA0BnDlE,qBAAU,WACHyC,GACCgJ,EAAS,CACL/hB,KAAK8hB,EAAU9hB,KACf2e,MAAMmD,EAAUnD,MAChBM,KAAK6C,EAAU7C,KACfF,IAAI+C,EAAUkR,eACdD,SAASjR,EAAUmR,YAG/B,GAAG,CAACnR,IAWJ,IAAMjiB,EAAe,SAACC,EAAOE,GACzB,IAAIoiB,EAAS9hB,YAAA,GAAO2V,GACpBmM,EAAUpiB,GAAQF,EAClBiiB,EAASK,EACb,EAKA,OACG/hB,eAACqV,GAAW,CAACE,QAvDI,WAChBmM,EAASd,GACb,EAqDqCviB,SAAA,CAC1B2B,eAAA,OAAK1B,UAAWJ,EAAQkhB,YAAY/gB,SAAA,CAChCF,cAAA,QAAAE,SAAQ,oBACRF,cAAC6jB,KAAS,CAACzG,QARN,WAChB/F,EAAS3H,IAAkB,GAC/B,EAMiDvP,UAAWJ,EAAQmhB,eAEzDlhB,cAAA,OAAKG,UAAWJ,EAAQmgB,QAAQhgB,SAC5B2B,eAAA,OAAK1B,UAAWJ,EAAQiiB,cAAc9hB,SAAA,CAClC2B,eAAA,OAAK1B,UAAWJ,EAAQ0hB,cAAcvhB,SAAA,CAClCF,cAAA,OAAMG,UAAWJ,EAAQ4hB,WAAY/C,IAAKnH,EAAM8I,KAAOoB,KACvD3hB,cAAA,SAAO+B,SA5B9B,SAAkB+hB,GACd,IAAIxD,EAAOwD,EAAM7hB,OAAO8hB,MAAM,GAC1BC,EAAS,IAAIC,WACjBD,EAAOE,OAAS,SAASJ,GACzBP,EAAQzhB,wBAAC,CAAC,EAAG2V,GAAK,IAAE6I,OAAMC,IAAKuD,EAAM7hB,OAAOkiB,SAC5C,EACA7D,GAAQ0D,EAAOI,cAAc9D,EACjC,EAqBkDngB,UAAWJ,EAAQsiB,MAAOjI,KAAK,SAC1Dpa,cAAA,OAAKG,UAAWJ,EAAQ6hB,cAAc1hB,SAClCF,cAACqkB,KAAU,CAAClkB,UAAWJ,EAAQgiB,kBAGvC/hB,cAACJ,EAAY,CAACE,MAAY,OAAL2X,QAAK,IAALA,GAAa,QAARmL,EAALnL,EAAOiI,cAAM,IAAAkD,OAAR,EAALA,EAAetC,OACpCtgB,cAAA,OAAKG,UAAWJ,EAAQwhB,MAAMrhB,SAAG,UACjCF,cAACmB,EAAe,CACZG,MAAOmW,EAAMjW,KACbA,KAAK,OACLH,aAAcA,EACdvB,MAAc,OAAL2X,QAAK,IAALA,GAAa,QAARoL,EAALpL,EAAOiI,cAAM,IAAAmD,OAAR,EAALA,EAAerhB,OAE5BxB,cAAA,OAAKG,UAAWJ,EAAQwhB,MAAMrhB,SAAC,WAC/BF,cAACmB,EAAe,CACZK,KAAO,QACPF,MAAOmW,EAAM0I,MACb9e,aAAcA,EACdK,UAAU,EACV5B,MAAc,OAAL2X,QAAK,IAALA,GAAa,QAARqL,EAALrL,EAAOiI,cAAM,IAAAoD,OAAR,EAALA,EAAe3C,QAE5BngB,cAAA,OAAKG,UAAWJ,EAAQwhB,MAAMrhB,SAAC,UAC/BF,cAACmB,EAAe,CACZG,MAAOmW,EAAMgJ,KACbjf,KAAK,OACLH,aAAcA,EACdvB,MAAc,OAAL2X,QAAK,IAALA,GAAa,QAARsL,EAALtL,EAAOiI,cAAM,IAAAqD,OAAR,EAALA,EAAetC,OAE5B5e,eAAA,OAAK1B,UAAWJ,EAAQkiB,gBAAgB/hB,SAAA,CACpCF,cAAA,OAAKG,UAAWJ,EAAQwhB,MAAMrhB,SAAC,cAC/BF,cAACud,KAAQ,CACLC,QAAS/F,EAAM8c,SACf50B,MAAM,UACN+0B,WAAY,CAAE,aAAc,sBAC5B3yB,SAAU,SAACC,GAAC,OAAKX,GAAcoW,EAAM8c,SAAU,WAAW,YAKzEv0B,cAAA,OAAKG,UAAWJ,EAAQmiB,OAAOhiB,SAC3BF,cAAA,UAAQ+a,SAAUsI,EAAWjG,QApGjB,WACxB,IAAMsC,EAASD,GAAUhI,GAEzB,GADA8L,EAAQzhB,wBAAC,CAAC,EAAG2V,GAAK,IAAEiI,aACjB8D,OAAOnG,KAAKqC,GAAQ1D,OAAvB,CAGA,IAAIuI,EAAW,IAAIC,SACnBD,EAASE,OAAO,OAAOhN,EAAMjW,MAC7B+iB,EAASE,OAAO,QAAShN,EAAM0I,OAC/BoE,EAASE,OAAO,OAAQhN,EAAMgJ,MAC9B8D,EAASE,OAAO,WAAYhN,EAAM8c,UAClChQ,EAASE,OAAO,QAAShN,EAAM6I,MAE3BjJ,EADDkD,EACU3N,GAAqB,CAAC0X,KAAKC,EAAUzD,UAAUwC,EAAUlH,MAG7D9P,GAAqBiY,GAX9B,CAaJ,EAkF2EpkB,UAAWJ,EAAQqiB,OAAOliB,SACjFmjB,EAAarjB,cAACkf,GAAM,CAACvf,MAAQ,SAAY4a,EAAa,SAAW,eAKzF,CCtPA,IAAI,GAAY,CAAC,QAAS,WAC1B,SAAS,KAAiS,OAApR,GAAWiJ,OAAOmR,OAASnR,OAAOmR,OAAOC,OAAS,SAAU3yB,GAAU,IAAK,IAAIyiB,EAAI,EAAGA,EAAI4G,UAAUtP,OAAQ0I,IAAK,CAAE,IAAI2O,EAAS/H,UAAU5G,GAAI,IAAK,IAAIzI,KAAOoX,EAAc7P,OAAOqR,UAAUlV,eAAemV,KAAKzB,EAAQpX,KAAQha,EAAOga,GAAOoX,EAAOpX,GAAU,CAAE,OAAOha,CAAQ,EAAU,GAAS8yB,MAAMC,KAAM1J,UAAY,CAClV,SAAS,GAAyB+H,EAAQ4B,GAAY,GAAc,MAAV5B,EAAgB,MAAO,CAAC,EAAG,IAAkEpX,EAAKyI,EAAnEziB,EACzF,SAAuCoxB,EAAQ4B,GAAY,GAAc,MAAV5B,EAAgB,MAAO,CAAC,EAAG,IAA2DpX,EAAKyI,EAA5DziB,EAAS,CAAC,EAAOizB,EAAa1R,OAAOnG,KAAKgW,GAAqB,IAAK3O,EAAI,EAAGA,EAAIwQ,EAAWlZ,OAAQ0I,IAAOzI,EAAMiZ,EAAWxQ,GAAQuQ,EAASE,QAAQlZ,IAAQ,IAAaha,EAAOga,GAAOoX,EAAOpX,IAAQ,OAAOha,CAAQ,CADhN,CAA8BoxB,EAAQ4B,GAAuB,GAAIzR,OAAO4R,sBAAuB,CAAE,IAAIC,EAAmB7R,OAAO4R,sBAAsB/B,GAAS,IAAK3O,EAAI,EAAGA,EAAI2Q,EAAiBrZ,OAAQ0I,IAAOzI,EAAMoZ,EAAiB3Q,GAAQuQ,EAASE,QAAQlZ,IAAQ,GAAkBuH,OAAOqR,UAAUS,qBAAqBR,KAAKzB,EAAQpX,KAAgBha,EAAOga,GAAOoX,EAAOpX,GAAQ,CAAE,OAAOha,CAAQ,CAG3e,SAASszB,GAAS11B,EAAM21B,GACtB,IAAIt0B,EAAQrB,EAAKqB,MACfu0B,EAAU51B,EAAK41B,QACfC,EAAQ,GAAyB71B,EAAM,IACzC,OAAoB,gBAAoB,MAAO,GAAS,CACtDozB,GAAI,UACJ0C,iBAAkB,0BAClB10B,OAAQ,IACR20B,QAAS,sBACT7e,MAAO,IACP8e,MAAO,6BACPrQ,IAAKgQ,EACL,kBAAmBC,GAClBC,GAAQx0B,EAAqB,gBAAoB,QAAS,CAC3D+xB,GAAIwC,GACHv0B,GAAS,KAAMozB,KAAOA,GAAkB,gBAAoB,IAAK,KAAmB,gBAAoB,IAAK,KAAmB,gBAAoB,OAAQ,CAC7JwB,EAAG,yKACHC,KAAM,YACS,gBAAoB,OAAQ,CAC3CD,EAAG,qJACHC,KAAM,aACU,gBAAoB,IAAK,KAAmB,gBAAoB,OAAQ,CACxFD,EAAG,4EACHC,KAAM,YACS,gBAAoB,OAAQ,CAC3CD,EAAG,oFACHC,KAAM,eAEV,CACA,ICnCI,GAAIC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAMC,GAAMC,GAAMC,GAAMC,GAAMC,GAAMC,GDmChF,GAA0B,aAAiBvB,IClC3C,IDmCW,ICnCC,CAAC,QAAS,YAC1B,SAAS,KAAiS,OAApR,GAAW/R,OAAOmR,OAASnR,OAAOmR,OAAOC,OAAS,SAAU3yB,GAAU,IAAK,IAAIyiB,EAAI,EAAGA,EAAI4G,UAAUtP,OAAQ0I,IAAK,CAAE,IAAI2O,EAAS/H,UAAU5G,GAAI,IAAK,IAAIzI,KAAOoX,EAAc7P,OAAOqR,UAAUlV,eAAemV,KAAKzB,EAAQpX,KAAQha,EAAOga,GAAOoX,EAAOpX,GAAU,CAAE,OAAOha,CAAQ,EAAU,GAAS8yB,MAAMC,KAAM1J,UAAY,CAClV,SAAS,GAAyB+H,EAAQ4B,GAAY,GAAc,MAAV5B,EAAgB,MAAO,CAAC,EAAG,IAAkEpX,EAAKyI,EAAnEziB,EACzF,SAAuCoxB,EAAQ4B,GAAY,GAAc,MAAV5B,EAAgB,MAAO,CAAC,EAAG,IAA2DpX,EAAKyI,EAA5DziB,EAAS,CAAC,EAAOizB,EAAa1R,OAAOnG,KAAKgW,GAAqB,IAAK3O,EAAI,EAAGA,EAAIwQ,EAAWlZ,OAAQ0I,IAAOzI,EAAMiZ,EAAWxQ,GAAQuQ,EAASE,QAAQlZ,IAAQ,IAAaha,EAAOga,GAAOoX,EAAOpX,IAAQ,OAAOha,CAAQ,CADhN,CAA8BoxB,EAAQ4B,GAAuB,GAAIzR,OAAO4R,sBAAuB,CAAE,IAAIC,EAAmB7R,OAAO4R,sBAAsB/B,GAAS,IAAK3O,EAAI,EAAGA,EAAI2Q,EAAiBrZ,OAAQ0I,IAAOzI,EAAMoZ,EAAiB3Q,GAAQuQ,EAASE,QAAQlZ,IAAQ,GAAkBuH,OAAOqR,UAAUS,qBAAqBR,KAAKzB,EAAQpX,KAAgBha,EAAOga,GAAOoX,EAAOpX,GAAQ,CAAE,OAAOha,CAAQ,CAG3e,SAAS80B,GAAUl3B,EAAM21B,GACvB,IAAIt0B,EAAQrB,EAAKqB,MACfu0B,EAAU51B,EAAK41B,QACfC,EAAQ,GAAyB71B,EAAM,IACzC,OAAoB,gBAAoB,MAAO,GAAS,CACtDk2B,KAAM,MACN9C,GAAI,SACJ4C,MAAO,6BACPmB,WAAY,+BACZC,EAAG,MACHC,EAAG,MACHtB,QAAS,sBACTh0B,MAAO,CACL+zB,iBAAkB,2BAEpBwB,SAAU,WACV3R,IAAKgQ,EACL,kBAAmBC,GAClBC,GAAQx0B,EAAqB,gBAAoB,QAAS,CAC3D+xB,GAAIwC,GACHv0B,GAAS,KAAM,KAAO,GAAkB,gBAAoB,IAAK,KAAmB,gBAAoB,IAAK,KAAmB,gBAAoB,OAAQ,CAC7J40B,EAAG,meACEE,KAAQA,GAAmB,gBAAoB,IAAK,OAAQC,KAAQA,GAAmB,gBAAoB,IAAK,OAAQC,KAAQA,GAAmB,gBAAoB,IAAK,OAAQC,KAAQA,GAAmB,gBAAoB,IAAK,OAAQC,KAAQA,GAAmB,gBAAoB,IAAK,OAAQC,KAAQA,GAAmB,gBAAoB,IAAK,OAAQC,KAAQA,GAAmB,gBAAoB,IAAK,OAAQC,KAAQA,GAAmB,gBAAoB,IAAK,OAAQC,KAASA,GAAoB,gBAAoB,IAAK,OAAQC,KAASA,GAAoB,gBAAoB,IAAK,OAAQC,KAASA,GAAoB,gBAAoB,IAAK,OAAQC,KAASA,GAAoB,gBAAoB,IAAK,OAAQC,KAASA,GAAoB,gBAAoB,IAAK,OAAQC,KAASA,GAAoB,gBAAoB,IAAK,OAAQC,KAASA,GAAoB,gBAAoB,IAAK,OACn5B,CACA,IAAI,GAA0B,aAAiBC,IChBzCz3B,IDiBS,ICjBGC,aAAW,SAACC,GAAK,MAAM,CACrCuf,KAAM,CACF,sBAAsB,CAClBhI,MAAO,EACPH,WAAY,eAEhBpW,QAAQ,IAEZiqB,aAAa,CACTpqB,QAAQ,OACRE,cAAc,MACdgW,eAAe,gBACfD,WAAW,SACX3V,aAAa,IAEjB6V,MAAO,CACHhW,QAAShB,EAAMkZ,QAAQ,GACvBgS,UAAW,SACX/qB,MAAOH,EAAMmX,QAAQgU,KAAKC,WAE9BC,cAAc,CACVrJ,WAAW,OACX9hB,SAAS,UAEborB,iBAAiB,CACbnrB,MAAM,UACN6hB,WAAW,MACXL,OAAO,WAEX4J,MAAM,CACFhU,MAAM,GACN9V,OAAO,GACPP,aAAa,IAEjBsqB,IAAI,CACAtJ,SAAU,QACVuJ,OAAQzrB,EAAMkZ,QAAQ,GACtBmJ,MAAOriB,EAAMkZ,QAAQ,GACrB9B,WAAW,UACX,UAAU,CACNA,WAAW,YAGtB,KAGc,SAASwgB,KACpB,IAAMr3B,EAAUT,KACV+X,EAAWC,cACX4L,EAAe1L,aAAY,SAAAC,GAAK,OAAIA,EAAM0L,OAAOC,WAAW,IAClElI,EAA0BC,mBAAS,CAEnC,GAAEC,EAAAC,YAAAH,EAAA,GAFUE,EAAA,GAAUA,EAAA,GAWtBtD,qBAAU,WACFoL,EAAaS,WACbtM,EAAS9H,KAEjB,GAAG,IAmCH,OACI1N,eAAA,OAAK1B,UAAWJ,EAAQgf,KAAK7e,SAAA,CACzBF,cAAC2iB,GAAkB,IACnB3iB,cAAA,OAAKG,UAAWJ,EAAQ0qB,aAAavqB,SACjCF,cAAA,OAAKG,UAAWJ,EAAQ8qB,cAAc3qB,SAAE,eAG3CgjB,EAAaG,WAAcrjB,cAACkf,GAAM,CAACI,QAAQ,QAC3C4D,EAAaS,WACV3jB,cAACulB,GAAY,CACTG,QAAS,CAAC,UAAW,OAAQ,QAAS,SAAU,OAAQ,YACxDC,SArCM,WAAc,IAAb0F,EAAIC,UAAAtP,OAAA,QAAA4D,IAAA0L,UAAA,GAAAA,UAAA,GAAC,GACxB,IAAID,EAAKrP,OACL,MAAO,GAEX,IAAIsI,EAAO,GAeX,OAdA+G,EAAK/O,KAAI,SAACyB,GACN,IAbWsZ,EAaPlb,EAAI,CACJmb,QAASt3B,cAAA,OAAK4e,IAAKb,EAAKyW,gBAAkBjJ,GAAcprB,UAAWJ,EAAQgrB,QAC3EvpB,KAAMuc,EAAKvc,KACX2e,MAAOpC,EAAKoC,MACZkX,QAjBOA,EAiBWtZ,EAAKsZ,OAhB5BA,EAAOrb,OACCqb,EAAOE,QAAO,SAACpb,EAAGqb,GAAC,OAAIrb,EAAEqb,CAAC,IAE9B,MAcCjD,SAAUxW,EAAKwW,SAAWv0B,cAACy3B,GAAa,CAAC1gB,MAAM,OAAO9V,OAAO,SAAYjB,cAAC03B,GAAe,CAAC3gB,MAAM,OAAO9V,OAAO,SAC9GuzB,eAAgBzW,EAAKyW,eACrBpY,IAAK2B,EAAK3B,IACVqY,WAAY1W,EAAKwW,SACjB9T,KAAM1C,EAAK0C,MAEf6D,EAAK7H,KAAKN,EACd,IACOmI,CACX,CAiB0BkH,CAActI,EAAaoB,MACrCjH,KAAM,CAAC,UAAW,OAAQ,QAAS,SAAU,OAAS,YACtDyI,aAjBW,SAAChF,GACxBzJ,EAASzH,GAAqB,CAACkR,cACnC,IAiBSoC,EAAawI,SAAW1rB,cAACuqB,GAAK,CAACD,QAASpH,EAAaoH,UACrDtqB,cAAC2rB,KAAG,CAACC,KAAK,QAAQxO,QA9DH,WACjB8F,EAAaG,WAGhBhM,EAAS3H,IAAkB,GAC/B,EAyDqD/P,MAAM,YAAY,aAAW,MAAMQ,UAAWJ,EAAQirB,IAAI9qB,SACnGF,cAAC6rB,KAAO,QAIxB,C,ICvII,GAAO8L,G,qLACP,GAAY,CAAC,QAAS,WAC1B,SAAS,KAAiS,OAApR,GAAWnU,OAAOmR,OAASnR,OAAOmR,OAAOC,OAAS,SAAU3yB,GAAU,IAAK,IAAIyiB,EAAI,EAAGA,EAAI4G,UAAUtP,OAAQ0I,IAAK,CAAE,IAAI2O,EAAS/H,UAAU5G,GAAI,IAAK,IAAIzI,KAAOoX,EAAc7P,OAAOqR,UAAUlV,eAAemV,KAAKzB,EAAQpX,KAAQha,EAAOga,GAAOoX,EAAOpX,GAAU,CAAE,OAAOha,CAAQ,EAAU,GAAS8yB,MAAMC,KAAM1J,UAAY,CAClV,SAAS,GAAyB+H,EAAQ4B,GAAY,GAAc,MAAV5B,EAAgB,MAAO,CAAC,EAAG,IAAkEpX,EAAKyI,EAAnEziB,EACzF,SAAuCoxB,EAAQ4B,GAAY,GAAc,MAAV5B,EAAgB,MAAO,CAAC,EAAG,IAA2DpX,EAAKyI,EAA5DziB,EAAS,CAAC,EAAOizB,EAAa1R,OAAOnG,KAAKgW,GAAqB,IAAK3O,EAAI,EAAGA,EAAIwQ,EAAWlZ,OAAQ0I,IAAOzI,EAAMiZ,EAAWxQ,GAAQuQ,EAASE,QAAQlZ,IAAQ,IAAaha,EAAOga,GAAOoX,EAAOpX,IAAQ,OAAOha,CAAQ,CADhN,CAA8BoxB,EAAQ4B,GAAuB,GAAIzR,OAAO4R,sBAAuB,CAAE,IAAIC,EAAmB7R,OAAO4R,sBAAsB/B,GAAS,IAAK3O,EAAI,EAAGA,EAAI2Q,EAAiBrZ,OAAQ0I,IAAOzI,EAAMoZ,EAAiB3Q,GAAQuQ,EAASE,QAAQlZ,IAAQ,GAAkBuH,OAAOqR,UAAUS,qBAAqBR,KAAKzB,EAAQpX,KAAgBha,EAAOga,GAAOoX,EAAOpX,GAAQ,CAAE,OAAOha,CAAQ,CAG3e,SAAS21B,GAAe/3B,EAAM21B,GAC5B,IAAIt0B,EAAQrB,EAAKqB,MACfu0B,EAAU51B,EAAK41B,QACfC,EAAQ,GAAyB71B,EAAM,IACzC,OAAoB,gBAAoB,MAAO,GAAS,CACtDg2B,MAAO,6BACP5C,GAAI,UACJ,YAAa,UACb2C,QAAS,YACT7e,MAAO,IACP9V,OAAQ,IACRukB,IAAKgQ,EACL,kBAAmBC,GAClBC,GAAQx0B,EAAqB,gBAAoB,QAAS,CAC3D+xB,GAAIwC,GACHv0B,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3E40B,EAAG,0kDACA6B,KAAWA,GAAsB,gBAAoB,OAAQ,CAChE7B,EAAG,2IAEP,CACA,IC3BI,GD2BA,GAA0B,aAAiB8B,IC1B3C,ID2BW,IC3BC,CAAC,QAAS,YAC1B,SAAS,KAAiS,OAApR,GAAWpU,OAAOmR,OAASnR,OAAOmR,OAAOC,OAAS,SAAU3yB,GAAU,IAAK,IAAIyiB,EAAI,EAAGA,EAAI4G,UAAUtP,OAAQ0I,IAAK,CAAE,IAAI2O,EAAS/H,UAAU5G,GAAI,IAAK,IAAIzI,KAAOoX,EAAc7P,OAAOqR,UAAUlV,eAAemV,KAAKzB,EAAQpX,KAAQha,EAAOga,GAAOoX,EAAOpX,GAAU,CAAE,OAAOha,CAAQ,EAAU,GAAS8yB,MAAMC,KAAM1J,UAAY,CAClV,SAAS,GAAyB+H,EAAQ4B,GAAY,GAAc,MAAV5B,EAAgB,MAAO,CAAC,EAAG,IAAkEpX,EAAKyI,EAAnEziB,EACzF,SAAuCoxB,EAAQ4B,GAAY,GAAc,MAAV5B,EAAgB,MAAO,CAAC,EAAG,IAA2DpX,EAAKyI,EAA5DziB,EAAS,CAAC,EAAOizB,EAAa1R,OAAOnG,KAAKgW,GAAqB,IAAK3O,EAAI,EAAGA,EAAIwQ,EAAWlZ,OAAQ0I,IAAOzI,EAAMiZ,EAAWxQ,GAAQuQ,EAASE,QAAQlZ,IAAQ,IAAaha,EAAOga,GAAOoX,EAAOpX,IAAQ,OAAOha,CAAQ,CADhN,CAA8BoxB,EAAQ4B,GAAuB,GAAIzR,OAAO4R,sBAAuB,CAAE,IAAIC,EAAmB7R,OAAO4R,sBAAsB/B,GAAS,IAAK3O,EAAI,EAAGA,EAAI2Q,EAAiBrZ,OAAQ0I,IAAOzI,EAAMoZ,EAAiB3Q,GAAQuQ,EAASE,QAAQlZ,IAAQ,GAAkBuH,OAAOqR,UAAUS,qBAAqBR,KAAKzB,EAAQpX,KAAgBha,EAAOga,GAAOoX,EAAOpX,GAAQ,CAAE,OAAOha,CAAQ,CAG3e,SAAS41B,GAAWh4B,EAAM21B,GACxB,IAAIt0B,EAAQrB,EAAKqB,MACfu0B,EAAU51B,EAAK41B,QACfC,EAAQ,GAAyB71B,EAAM,IACzC,OAAoB,gBAAoB,MAAO,GAAS,CACtDozB,GAAI,SACJ0C,iBAAkB,kBAClB10B,OAAQ,IACR20B,QAAS,cACT7e,MAAO,IACP8e,MAAO,6BACPrQ,IAAKgQ,EACL,kBAAmBC,GAClBC,GAAQx0B,EAAqB,gBAAoB,QAAS,CAC3D+xB,GAAIwC,GACHv0B,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3E40B,EAAG,00CAEP,CACA,ICzBI,GAAI,GDyBJ,GAA0B,aAAiB+B,ICxB3C,IDyBW,ICzBC,CAAC,QAAS,YAC1B,SAAS,KAAiS,OAApR,GAAWrU,OAAOmR,OAASnR,OAAOmR,OAAOC,OAAS,SAAU3yB,GAAU,IAAK,IAAIyiB,EAAI,EAAGA,EAAI4G,UAAUtP,OAAQ0I,IAAK,CAAE,IAAI2O,EAAS/H,UAAU5G,GAAI,IAAK,IAAIzI,KAAOoX,EAAc7P,OAAOqR,UAAUlV,eAAemV,KAAKzB,EAAQpX,KAAQha,EAAOga,GAAOoX,EAAOpX,GAAU,CAAE,OAAOha,CAAQ,EAAU,GAAS8yB,MAAMC,KAAM1J,UAAY,CAClV,SAAS,GAAyB+H,EAAQ4B,GAAY,GAAc,MAAV5B,EAAgB,MAAO,CAAC,EAAG,IAAkEpX,EAAKyI,EAAnEziB,EACzF,SAAuCoxB,EAAQ4B,GAAY,GAAc,MAAV5B,EAAgB,MAAO,CAAC,EAAG,IAA2DpX,EAAKyI,EAA5DziB,EAAS,CAAC,EAAOizB,EAAa1R,OAAOnG,KAAKgW,GAAqB,IAAK3O,EAAI,EAAGA,EAAIwQ,EAAWlZ,OAAQ0I,IAAOzI,EAAMiZ,EAAWxQ,GAAQuQ,EAASE,QAAQlZ,IAAQ,IAAaha,EAAOga,GAAOoX,EAAOpX,IAAQ,OAAOha,CAAQ,CADhN,CAA8BoxB,EAAQ4B,GAAuB,GAAIzR,OAAO4R,sBAAuB,CAAE,IAAIC,EAAmB7R,OAAO4R,sBAAsB/B,GAAS,IAAK3O,EAAI,EAAGA,EAAI2Q,EAAiBrZ,OAAQ0I,IAAOzI,EAAMoZ,EAAiB3Q,GAAQuQ,EAASE,QAAQlZ,IAAQ,GAAkBuH,OAAOqR,UAAUS,qBAAqBR,KAAKzB,EAAQpX,KAAgBha,EAAOga,GAAOoX,EAAOpX,GAAQ,CAAE,OAAOha,CAAQ,CAG3e,SAAS61B,GAAUj4B,EAAM21B,GACvB,IAAIt0B,EAAQrB,EAAKqB,MACfu0B,EAAU51B,EAAK41B,QACfC,EAAQ,GAAyB71B,EAAM,IACzC,OAAoB,gBAAoB,MAAO,GAAS,CACtDg2B,MAAO,6BACPF,iBAAkB,gBAClB10B,OAAQ,OACR20B,QAAS,YACT7e,MAAO,OACPgf,KAAM,UACNvQ,IAAKgQ,EACL,kBAAmBC,GAClBC,GAAQx0B,EAAqB,gBAAoB,QAAS,CAC3D+xB,GAAIwC,GACHv0B,GAAS,KAAM,KAAO,GAAkB,gBAAoB,IAAK,KAAmB,gBAAoB,OAAQ,CACjH60B,KAAM,OACN90B,OAAQ,GACR8V,MAAO,OACH,KAAQ,GAAmB,gBAAoB,IAAK,KAAmB,gBAAoB,IAAK,KAAmB,gBAAoB,IAAK,KAAmB,gBAAoB,OAAQ,CAC/L+e,EAAG,yIACa,gBAAoB,IAAK,KAAmB,gBAAoB,OAAQ,CACxFA,EAAG,4QAEP,CACA,IC/BI,GD+BA,GAA0B,aAAiBgC,IC9B3C,ID+BW,IC/BC,CAAC,QAAS,YAC1B,SAAS,KAAiS,OAApR,GAAWtU,OAAOmR,OAASnR,OAAOmR,OAAOC,OAAS,SAAU3yB,GAAU,IAAK,IAAIyiB,EAAI,EAAGA,EAAI4G,UAAUtP,OAAQ0I,IAAK,CAAE,IAAI2O,EAAS/H,UAAU5G,GAAI,IAAK,IAAIzI,KAAOoX,EAAc7P,OAAOqR,UAAUlV,eAAemV,KAAKzB,EAAQpX,KAAQha,EAAOga,GAAOoX,EAAOpX,GAAU,CAAE,OAAOha,CAAQ,EAAU,GAAS8yB,MAAMC,KAAM1J,UAAY,CAClV,SAAS,GAAyB+H,EAAQ4B,GAAY,GAAc,MAAV5B,EAAgB,MAAO,CAAC,EAAG,IAAkEpX,EAAKyI,EAAnEziB,EACzF,SAAuCoxB,EAAQ4B,GAAY,GAAc,MAAV5B,EAAgB,MAAO,CAAC,EAAG,IAA2DpX,EAAKyI,EAA5DziB,EAAS,CAAC,EAAOizB,EAAa1R,OAAOnG,KAAKgW,GAAqB,IAAK3O,EAAI,EAAGA,EAAIwQ,EAAWlZ,OAAQ0I,IAAOzI,EAAMiZ,EAAWxQ,GAAQuQ,EAASE,QAAQlZ,IAAQ,IAAaha,EAAOga,GAAOoX,EAAOpX,IAAQ,OAAOha,CAAQ,CADhN,CAA8BoxB,EAAQ4B,GAAuB,GAAIzR,OAAO4R,sBAAuB,CAAE,IAAIC,EAAmB7R,OAAO4R,sBAAsB/B,GAAS,IAAK3O,EAAI,EAAGA,EAAI2Q,EAAiBrZ,OAAQ0I,IAAOzI,EAAMoZ,EAAiB3Q,GAAQuQ,EAASE,QAAQlZ,IAAQ,GAAkBuH,OAAOqR,UAAUS,qBAAqBR,KAAKzB,EAAQpX,KAAgBha,EAAOga,GAAOoX,EAAOpX,GAAQ,CAAE,OAAOha,CAAQ,CAG3e,SAAS81B,GAAsBl4B,EAAM21B,GACnC,IAAIt0B,EAAQrB,EAAKqB,MACfu0B,EAAU51B,EAAK41B,QACfC,EAAQ,GAAyB71B,EAAM,IACzC,OAAoB,gBAAoB,MAAO,GAAS,CACtDg2B,MAAO,6BACPmB,WAAY,+BACZC,EAAG,MACHC,EAAG,MACHtB,QAAS,cACTh0B,MAAO,CACL+zB,iBAAkB,mBAEpBwB,SAAU,WACV3R,IAAKgQ,EACL,kBAAmBC,GAClBC,GAAQx0B,EAAqB,gBAAoB,QAAS,CAC3D+xB,GAAIwC,GACHv0B,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3E40B,EAAG,mjFAEP,CACA,IAAI,GAA0B,aAAiBiC,I,IAChC,I,8KCzBAC,GAFCC,eCwCVC,GAAc,IAEd54B,GAAYC,aAAW,SAACC,GAAK,MAAM,CACvCuf,KAAM,CACJ1e,QAAS,QAEX83B,OAAQ,CACN7V,OAAQ9iB,EAAM8iB,OAAO8V,OAAS,EAC9BC,WAAY74B,EAAM84B,YAAYC,OAAO,CAAC,QAAS,UAAW,CACxDC,OAAQh5B,EAAM84B,YAAYE,OAAOC,MACjCC,SAAUl5B,EAAM84B,YAAYI,SAASC,gBAEvC/hB,WAAY,WAEdgiB,YAAa,CACXrJ,WAAY2I,GACZnhB,MAAM,eAAD+H,OAAiBoZ,GAAW,OACjCG,WAAY74B,EAAM84B,YAAYC,OAAO,CAAC,QAAS,UAAW,CACxDC,OAAQh5B,EAAM84B,YAAYE,OAAOC,MACjCC,SAAUl5B,EAAM84B,YAAYI,SAASG,kBAGzCC,WAAY,CACVxT,YAAa,IAEfyT,KAAM,CACJ14B,QAAS,QAEX+3B,OAAQ,CACNrhB,MAAOmhB,GACPc,WAAY,EACZxI,WAAY,UAEdyI,WAAY,CACVliB,MAAOmhB,GACPG,WAAY74B,EAAM84B,YAAYC,OAAO,QAAS,CAC5CC,OAAQh5B,EAAM84B,YAAYE,OAAOC,MACjCC,SAAUl5B,EAAM84B,YAAYI,SAASG,kBAGzCK,YAAWziB,YAAA,CACT4hB,WAAY74B,EAAM84B,YAAYC,OAAO,QAAS,CAC5CC,OAAQh5B,EAAM84B,YAAYE,OAAOC,MACjCC,SAAUl5B,EAAM84B,YAAYI,SAASC,gBAEvCQ,UAAW,SACXpiB,MAAOvX,EAAMkZ,QAAQ,GAAK,GACzBlZ,EAAMwX,YAAYoiB,GAAG,MAAQ,CAC5BriB,MAAOvX,EAAMkZ,QAAQ,GAAK,IAG9B2gB,QAAOv3B,YAAA,CACLzB,QAAS,OACTiW,WAAY,SACZC,eAAgB,WAChB/V,QAAShB,EAAMkZ,QAAQ,EAAG,IAEvBlZ,EAAM85B,OAAOD,SAElBnZ,QAAS,CACPqZ,SAAU,EACV/4B,QAAShB,EAAMkZ,QAAQ,IAEzB8gB,QAAO/iB,YAAA,CACLpW,QAAS,OACT0W,MAAO,GACP9V,OAAQ,GACRqkB,YAAa,IACZ9lB,EAAMwX,YAAYoiB,GAAG,MAAQ,CAC5BriB,MAAO,GACP9V,OAAQ,KAGZw4B,KAAM,CACJC,eAAgB,OAChB/5B,MAAO,WAETg6B,YAAa,CACXjY,SAAU,WACVG,MAAO,EACPC,IAAK,EACLrJ,OAAQ,IAEVmhB,YAAa,CACXrK,WAAY,EACZ7vB,SAAU,GACVm6B,cAAe,WAElB,IAEKC,GAAS,CACb,CACEt4B,KAAM,YACNu4B,MAAO,IACPC,cAAeh6B,cAACi6B,KAAa,CAACljB,MAAO,GAAI9V,OAAQ,MAEnD,CACEO,KAAM,eACNu4B,MAAO,gBACPC,cAAeh6B,cAACk6B,KAAgB,CAACnjB,MAAO,GAAI9V,OAAQ,MAEtD,CACEO,KAAM,cACNu4B,MAAO,eACPC,cAAeh6B,cAACm6B,KAAiB,CAACpjB,MAAO,GAAI9V,OAAQ,MAEvD,CACEO,KAAM,qBACNu4B,MAAO,sBACPC,cAAeh6B,cAACo6B,GAAsB,CAACrjB,MAAO,GAAI9V,OAAQ,MAE5D,CACEO,KAAM,aACNu4B,MAAO,cACPC,cAAeh6B,cAACq6B,KAAgB,CAACtjB,MAAO,GAAI9V,OAAQ,MAOtD,CACEO,KAAM,gBACNu4B,MAAO,iBACPC,cAAeh6B,cAACs6B,KAAQ,CAACvjB,MAAO,GAAI9V,OAAQ,MAE9C,CACEO,KAAM,aACNu4B,MAAO,aACPC,cAAeh6B,cAACu6B,GAAU,CAACxjB,MAAO,GAAI9V,OAAQ,MAEhD,CACEO,KAAM,WACNu4B,MAAO,YACPC,cAAeh6B,cAACw6B,GAAW,CAACzjB,MAAO,GAAI9V,OAAQ,MAEjD,CACEO,KAAM,QACNu4B,MAAO,SACPC,cAAeh6B,cAACy6B,KAAU,CAAC1jB,MAAO,GAAI9V,OAAQ,MAEhD,CACEO,KAAM,eACNu4B,MAAO,gBACPC,cAAeh6B,cAAC06B,KAAiB,CAAC3jB,MAAO,GAAI9V,OAAQ,MAEvD,CACEO,KAAM,MACNu4B,MAAO,OACPC,cAAeh6B,cAAC26B,KAAY,CAAC5jB,MAAO,GAAI9V,OAAQ,MAElD,CACEO,KAAM,SACNu4B,MAAO,UACPC,cAAeh6B,cAAC46B,GAAU,CAAC7jB,MAAO,GAAI9V,OAAQ,OAInC,SAAS45B,GAAUh7B,GAAgB,IAADi7B,EAAAC,EAAZ76B,EAAQL,EAARK,SAC7BH,EAAUT,KACVE,EAAQw7B,eACdC,EAAwBxS,IAAMtN,UAAS,GAAM+f,EAAA7f,YAAA4f,EAAA,GAAtCjjB,EAAIkjB,EAAA,GAAEC,EAAOD,EAAA,GACdE,EAAY5jB,aAAY,SAACC,GAAK,OAAKA,EAAM4jB,KAAKD,SAAS,IAC7DE,EAAgC7S,IAAMtN,SAAS,MAAKogB,EAAAlgB,YAAAigB,EAAA,GAA7CE,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GACtBlkB,EAAWC,cAMXO,EAAc,WAClB4jB,EAAY,KACd,EAwBA,OAFA3jB,qBAAU,WAAO,GAAG,CAACkgB,GAAQ0D,SAASC,WAGpC95B,eAAA,OAAK1B,UAAWJ,EAAQgf,KAAK7e,SAAA,CAC3BF,cAAC47B,KAAW,IACZ57B,cAAC67B,KAAM,CACLna,SAAS,QACTvhB,UAAWof,aAAKxf,EAAQo4B,OAAM1hB,YAAA,GAC3B1W,EAAQ64B,YAAc5gB,IACtB9X,SAEH2B,eAACi6B,KAAO,CAAA57B,SAAA,CACNF,cAAC+7B,KAAU,CACTp8B,MAAM,UACN,aAAW,cACXyd,QAvBe,WACvB+d,GAAQ,EACV,EAsBUa,KAAK,QACL77B,UAAWof,aAAKxf,EAAQ+4B,WAAUriB,YAAA,GAC/B1W,EAAQg5B,KAAO/gB,IACf9X,SAEHF,cAACi8B,KAAQ,MAEXj8B,cAACk8B,KAAI,CAACC,GAAG,IAAGj8B,SACVF,cAAA,OAAKG,UAAWJ,EAAQy5B,QAAS5a,IAAK4a,MAExCx5B,cAACo8B,KAAU,CAAC9c,QAAQ,KAAK+c,QAAM,EAAAn8B,SAAC,YAGtB,OAATk7B,QAAS,IAATA,OAAS,EAATA,EAAWkB,cACVz6B,eAAA,OAAK1B,UAAWJ,EAAQ45B,YAAYz5B,SAAA,CAClC2B,eAACgnB,KAAM,CACL+C,KAAK,QACL,aAAW,0BACX,gBAAc,cACd,gBAAc,OACdxO,QAhEK,SAAC0G,GAClB2X,EAAY3X,EAAMyY,cACpB,EA+Dc58B,MAAM,UACN68B,eAAe,MAAKt8B,SAAA,CAEpBF,cAACy8B,KAAa,IACdz8B,cAAA,QAAMG,UAAWJ,EAAQ65B,YAAa4C,eAAe,MAAKt8B,SACvDk7B,EAAUkB,YAAY96B,UAG3BK,eAAC66B,KAAI,CACHzJ,GAAG,cACHuI,SAAUA,EACVmB,aAAc,CACZC,SAAU,MACVC,WAAY,SAEdC,aAAW,EACXC,gBAAiB,CACfH,SAAU,MACVC,WAAY,SAEd7kB,KAAMglB,QAAQxB,GACdpkB,QAASS,EAAY3X,SAAA,CAErBF,cAACwe,KAAQ,CAACpB,QAzEK,WAC3BvF,IACAmgB,GAAQvb,KAAK,kBACf,EAsEsDvc,SAAC,oBAGzCF,cAACwe,KAAQ,CAACpB,QAnFH,WACnB6f,OAAOC,aAAaC,WAAW,eAC/B9lB,EAASlG,GAAe,OACxB0G,IACAmgB,GAAQvb,KAAK,IACf,EA8E8Cvc,SAAC,sBAM3C2B,eAACu7B,KAAM,CACL9d,QAAQ,YACRnf,UAAWof,aAAKxf,EAAQq4B,QAAM0C,EAAA,GAAArkB,YAAAqkB,EAC3B/6B,EAAQk5B,WAAajhB,GAAIvB,YAAAqkB,EACzB/6B,EAAQm5B,aAAelhB,GAAI8iB,IAE9B/6B,QAAS,CACPyW,MAAO+I,cAAIwb,EAAA,GAAAtkB,YAAAskB,EACRh7B,EAAQk5B,WAAajhB,GAAIvB,YAAAskB,EACzBh7B,EAAQm5B,aAAelhB,GAAI+iB,KAE9B76B,SAAA,CAEFF,cAAA,OAAKG,UAAWJ,EAAQs5B,QAAQn5B,SAC9BF,cAAC+7B,KAAU,CAAC3e,QAvFM,WACxB+d,GAAQ,EACV,EAqF+Cj7B,SAChB,QAApBV,EAAM69B,UACLr9B,cAACs9B,KAAgB,IAEjBt9B,cAACu9B,KAAe,QAItBv9B,cAACw9B,KAAO,IACRx9B,cAACy9B,KAAI,CAAAv9B,SACF45B,GAAOxd,KAAI,SAACohB,EAAQ5f,GAAK,OACxB9d,cAACk8B,KAAI,CAAC/7B,UAAWJ,EAAQ05B,KAAM0C,GAAIuB,EAAO3D,MAAM75B,SAC9C2B,eAAC87B,KAAQ,CAACvb,QAAM,EAAAliB,SAAA,CACdF,cAAC49B,KAAY,CAAA19B,SAAEw9B,EAAO1D,gBACtBh6B,cAACye,KAAY,CAACC,QAASgf,EAAOl8B,SAFVk8B,EAAOl8B,OADuBsc,EAK/C,MAGX9d,cAACw9B,KAAO,OAEV37B,eAAA,QAAM1B,UAAWJ,EAAQmgB,QAAQhgB,SAAA,CAC/BF,cAAA,OAAKG,UAAWJ,EAAQs5B,UACvBn5B,OAIT,C,sBC9UMZ,GAAYC,aAAW,SAACC,GAAK,MAAM,CACvCyhB,YAAa,CACX5gB,QAAS,OACTE,cAAe,MACfgW,eAAgB,gBAChBD,WAAY,SACZ9V,QAAShB,EAAMkZ,QAAQ,GACvBG,aAAc,8BAEhBqI,UAAW,CACTC,OAAQ,WAEVjB,QAAS,CACP5f,KAAM,EACNE,QAAS,GACT6gB,UAAW,UAEba,OAAQ,CACN1hB,QAAShB,EAAMkZ,QAAQ,GACvByJ,UAAW,6BACX9hB,QAAS,OACTE,cAAe,MACfgW,eAAgB,WAChBD,WAAY,UAEd8L,OAAQ,CACNvhB,QAAS,OACTJ,OAAQ,OACRmW,WAAY,UACZjX,MAAO,OACPgZ,SAAS,GACT1X,OAAO,GACPkgB,OAAQ,WAEV0c,gBAAgB,CACdzQ,cAAe5tB,EAAMkZ,QAAQ,GAC7BrY,QAAS,OACTkW,eAAgB,aAChBD,WAAY,UAEdwnB,YAAa,CACXj9B,QAAS,OACTJ,OAAQ,OACRmW,WAAY,UACZjX,MAAO,OACPwhB,OAAQ,UACR3gB,QAAS,GACT8kB,YAAa,IAEfyY,mBAAoB,CAClB19B,QAAS,OACTiW,WAAY,UAEdyE,SAAU,CACRoG,OAAQ,eAEX,IAEKsB,GAAe,CACnBxC,SAAU,GACVP,OAAQ,CAAC,EACTse,aAAa,EACb5d,iBAAkB,GAClB6d,WAAY,IAGC,SAASC,KAAoB,IAADC,EAAAC,EAAAxb,EAAAC,EACnC9iB,EAAUT,KACV+X,EAAWC,cACX+mB,EAAiB7mB,aAAY,SAAAC,GAAK,OAAIA,EAAM0L,OAAOkb,cAAc,IACjEC,EAAqB9mB,aAAY,SAAAC,GAAK,OAAIA,EAAM0L,OAAOmb,kBAAkB,IACzEC,EAA2B/mB,aAAY,SAAAC,GAAK,OAAIA,EAAM0L,OAAOob,wBAAwB,IACrFlb,EAAY7L,aAAY,SAAAC,GAAK,OAAIA,EAAMC,OAAO2L,SAAS,IAC7DnI,EAA0BC,mBAASsH,IAAarH,EAAAC,YAAAH,EAAA,GAAzCzD,EAAK2D,EAAA,GAAEmI,EAAQnI,EAAA,GAChBkI,EAAY9L,aAAY,SAAAC,GAAK,OAAIA,EAAMC,OAAO4L,SAAS,IACvDkb,GAAgD,OAAxBD,QAAwB,IAAxBA,GAA8B,QAANJ,EAAxBI,EAA0Bja,YAAI,IAAA6Z,GAAe,QAAfC,EAA9BD,EAAgCM,qBAAa,IAAAL,OAArB,EAAxBA,EAA+CpiB,QAAS,EAChFzB,EAAaiJ,OAAOnG,KAAKiG,GAAWtH,OAAS,EAOnDlE,qBAAU,WACLuL,GAAc5L,EAAMumB,aACvBza,EAAQzhB,wBAAC,CAAC,EAAG2V,GAAK,IAAEumB,aAAY,EAAM5d,iBAAkB,KAE1D,GAAG,CAACiD,IAEJvL,qBAAU,WACLyC,GACDgJ,EAAQzhB,wBAAC,CAAC,EACH2V,GAAK,IACRumB,aAAa,EACb5d,iBAAkBkD,EAAU9hB,KAC5By8B,WAAY3a,EAAUlH,MAG7B,GAAG,CAAC7B,EAAY+jB,IA4BjBxmB,qBAAU,WACRT,EAAShJ,KACX,GAAG,IAEH,IAAMhN,EAAe,SAACC,EAAOE,GAC3B+hB,EAAQzhB,wBAAC,CAAC,EAAG2V,GAAK,GAAAhB,YAAA,GAAGjV,EAAOF,IAC9B,EAEMo9B,EAAc,WAClBnb,EAASd,GACX,EAEA,OACE5gB,eAACqV,GAAW,CAACE,QAASsnB,EAAa98B,MAAO,CAACX,OAAO,QAAQf,SAAA,CACxD2B,eAAA,OAAK1B,UAAWJ,EAAQkhB,YAAY/gB,SAAA,CAClCF,cAAA,QAAAE,SAAM,oBACN2B,eAAA,OAAK1B,UAAWJ,EAAQg+B,mBAAmB79B,SAAA,CACzCF,cAAA,UACEod,QAAS,kBAAMmG,EAAQzhB,wBAAC,CAAC,EAAG2V,GAAK,IAAEumB,aAAcvmB,EAAMumB,cAAa,EACpE79B,UAAWJ,EAAQ+9B,YAAY59B,SAE9BuX,EAAMumB,YAAc,eAAiB,iBAExCh+B,cAAC6jB,KAAS,CAACzG,QAvEC,WAClB/F,EAAS3H,IAAkB,IAC3BgvB,GACF,EAoEyCv+B,UAAWJ,EAAQmhB,kBAGxDrf,eAAA,OAAK1B,UAAWJ,EAAQmgB,QAAQhgB,SAAA,CAC/BuX,EAAMumB,aACPn8B,eAAA,OAAK1B,UAAWJ,EAAQ89B,gBAAgB39B,SAAA,CACtCF,cAAA,OAAAE,SAAK,sBAEJo+B,EAAmBjb,UACpBrjB,cAAA,QAAAE,SAAM,2BACNF,cAAC2Z,GAAc,CACbnY,KAAK,aACLuY,SAAU1Y,EACV6Y,QAAS,OACTO,UAAU,MACVE,eAAe,EACfV,UAAU,EACVJ,KAAM0kB,EAAyBja,KAAKma,mBAGpCz+B,cAACmB,EAAe,CACdO,UAAU,EACVE,MAAO,CAAEX,OAAQ,QACjBM,YAAakW,EAAMumB,YAAc,0BAA4B,mCAC7D38B,aAAcA,EACdG,KAAMiW,EAAMumB,YAAc,WAAa,mBACvC18B,MAAOmW,EAAMumB,YAAcvmB,EAAMwI,SAAWxI,EAAM2I,iBAClDtgB,MAAO2X,EAAMumB,YAAmB,OAALvmB,QAAK,IAALA,GAAa,QAARmL,EAALnL,EAAOiI,cAAM,IAAAkD,OAAR,EAALA,EAAe3C,SAAgB,OAALxI,QAAK,IAALA,GAAa,QAARoL,EAALpL,EAAOiI,cAAM,IAAAmD,OAAR,EAALA,EAAezC,sBAG1EpgB,cAAA,OAAKG,UAAWJ,EAAQmiB,OAAOhiB,SAC7BF,cAAA,UACE+a,SAAUsjB,EAAehb,WAAaib,EAAmBjb,WAAc5L,EAAMumB,cAAgBQ,EAC7FphB,QAAS3F,EAAMumB,YAlFM,WAC3B,IAAQ/d,EAAwBxI,EAAxBwI,SAAUge,EAAcxmB,EAAdwmB,WACZve,EAASD,GAAU,CAAEQ,aAC3BsD,EAAQzhB,wBAAC,CAAC,EAAG2V,GAAK,IAAEiI,YACjB8D,OAAOnG,KAAKqC,GAAQ1D,QAIvB3E,EAAS5K,GAAsB,CAAEwT,WAAUge,aAAYU,iBAAkBJ,EAAyBja,KAAKlI,MACzG,EAEqC,WACnC,IAAQgE,EAAiC3I,EAAjC2I,iBAAkB6d,EAAexmB,EAAfwmB,WACpBve,EAASD,GAAU,CAAEW,qBAC3BmD,EAAQzhB,wBAAC,CAAC,EAAG2V,GAAK,IAAEiI,YACjB8D,OAAOnG,KAAKqC,GAAQ1D,QAKrB3E,EADCkD,EACQ1L,GAA8B,CAAEyV,KAAM,CAAE9iB,KAAM4e,EAAkBue,iBAAkBJ,EAAyBja,KAAKlI,KAAO6hB,eAGzHzvB,GAA8B,CAAEhN,KAAM4e,EAAkBue,iBAAkBJ,EAAyBja,KAAKlI,MACnH,EA2DQjc,UAAWof,aAAKxf,EAAQqiB,OAAS3K,EAAMumB,cAAgBQ,GAA0Bz+B,EAAQgb,UAAU7a,SAElGmjB,EAAYrjB,cAACkf,GAAM,CAACtd,MAAO,CAACjC,MAAM,UAAc8X,EAAMumB,YAAe,kBAAoBzjB,EAAa,kBAAoB,wBAKrI,C,yBC/KMjb,GAAYC,aAAW,SAACC,GAAK,MAAM,CACvCuf,KAAM,CACJve,QAAS,IAEXwqB,IAAK,CACHtJ,SAAU,QACVuJ,OAAQzrB,EAAMkZ,QAAQ,GACtBmJ,MAAOriB,EAAMkZ,QAAQ,GACrB9B,WAAY,UACZ,UAAW,CACTA,WAAY,YAGhBgoB,OAAQ,CACNld,SAAU,QACVuJ,OAAQzrB,EAAMkZ,QAAQ,GACtBmJ,MAAOriB,EAAMkZ,QAAQ,IACrB9B,WAAY,UACZ,UAAW,CACTA,WAAY,YAIhBioB,aAAc,CACZx+B,QAAS,OACT+kB,aAAc,GACdrO,MAAO,QAETsJ,SAAU,CACR3gB,SAAU,UAEZo/B,oBAAqB,CACnBvP,WAAY,QAEd9E,aAAc,CACZpqB,QAAS,OACTE,cAAe,MACfgW,eAAgB,gBAChBD,WAAY,SACZ3V,aAAc,IAEhBkqB,cAAe,CACbrJ,WAAY,OACZ9hB,SAAU,UAEZq/B,WAAY,CACVzZ,YAAa,IAEf0Z,aAAc,CACZx+B,QAAS,GACTkW,gBAAiB,YACjB/V,aAAc,GACdD,aAAc,EACdhB,SAAU,SACVW,QAAS,OACTkW,eAAgB,aAChBD,WAAY,UAKd2oB,aAAc,CACZt+B,aAAc,IAEhBkvB,aAAc,CACZ9uB,UAAW,EACX2gB,SAAU,WACVG,MAAO,IAETqd,KAAM,CACJ/d,OAAQ,UACRmE,YAAa,IAEf6Z,WAAY,CACV9+B,QAAS,OACTkW,eAAgB,SAChBD,WAAY,SACZvV,UAAW,QAGbq+B,iBAAkB,CAChB/+B,QAAS,OACTU,UAAW,OACX8V,UACE,uGACFD,WAAY,OACZpW,QAAS,GACT6+B,YAAa,GACb3+B,aAAc,EACdC,aAAc,GACdykB,aAAc,GACd9O,WAAY,SAEZ,6BAA8B,CAC5BjW,QAAS,SAGbi/B,uBAAwB,CACtB7+B,OAAQ,4BAEV8+B,gBAAiB,CACf7d,SAAU,WACVG,MAAO,GACPxhB,QAAS,QAGXm/B,cAAe,CACb3+B,QAAS,OACTJ,OAAQ,OACRsW,MAAO,OACPH,WAAY,QACZ3V,OAAQ,KAGVw+B,gBAAiB,CAGfx+B,OAAQ,SAGVy+B,kBAAmB,CACjB3oB,MAAO,GACP9V,OAAQ,IAGV0+B,aAAc,CACZ5oB,MAAO,GACP9V,OAAQ,GACR2V,WAAY,UACZjX,MAAO,QACPe,aAAc,EACdD,OAAQ,QACR0gB,OAAQ,WAEX,IAEc,SAASye,KAAgB,IAADzB,EAAAC,EAAAyB,EAC/B9/B,EAAUT,KACV+X,EAAWC,cACjB4D,EAA0BC,mBAAS,CAAE2kB,cAAe,KAAK1kB,EAAAC,YAAAH,EAAA,GAAlDzD,EAAK2D,EAAA,GAAEmI,EAAQnI,EAAA,GAChBkjB,EAAqB9mB,aACzB,SAACC,GAAK,OAAKA,EAAM0L,OAAOmb,kBAAkB,IAE5ClQ,QAAQC,IAAIiQ,GACZ,IAAMyB,EAAmBvoB,aAAY,SAACC,GAAK,OAAKA,EAAMC,OAAO2L,SAAS,IAChEkb,EAA2B/mB,aAC/B,SAACC,GAAK,OAAKA,EAAM0L,OAAOob,wBAAwB,IAE5CyB,EAAsBxoB,aAC1B,SAACC,GAAK,OAAKA,EAAM0L,OAAO8c,cAAc,IAElCC,EACJxf,MAAMC,QAAgC,OAAxB4d,QAAwB,IAAxBA,GAA8B,QAANJ,EAAxBI,EAA0Bja,YAAI,IAAA6Z,OAAN,EAAxBA,EAAgCM,iBACtB,OAAxBF,QAAwB,IAAxBA,GAA8B,QAANH,EAAxBG,EAA0Bja,YAAI,IAAA8Z,GAAe,QAAfyB,EAA9BzB,EAAgCK,qBAAa,IAAAoB,OAArB,EAAxBA,EAA+C7jB,QAAS,EAC1DR,EAAkDL,mBAAS,IAAGM,EAAAJ,YAAAG,EAAA,GAAvD2kB,EAAiB1kB,EAAA,GAAE2kB,EAAoB3kB,EAAA,GACxC4kB,EAAW7oB,aAAY,SAACC,GAAK,OAAKA,EAAM0L,OAAOkd,QAAQ,IAmB7DjS,QAAQC,IAAIgS,EAAS/b,KAAM,iBAE3BxM,qBAAU,WACRwoB,aAAAC,eAAAC,MAAC,SAAAC,IAAA,OAAAF,eAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACMR,EAASS,WACZzpB,EAASnJ,MACV,wBAAAyyB,EAAAI,OAAA,GAAAN,EAAA,IAHHH,EAKF,GAAG,IAEH,IAAMnV,EAAkB,WACtB9T,EAAS3H,IAAkB,GAC7B,EAwGAoI,qBAAU,WACRsoB,EAAqB,IACjB9B,EAAmBha,KAAKtI,QAC1BglB,EAAoB1C,EAAmBha,KAAK,GAAGlI,IAEnD,GAAG,CAACkiB,IAEJ,IAAM2C,EAAa,SAAHrjB,GAOT,IANLqC,EAAQrC,EAARqC,SACayE,EAAC9G,EAAdsjB,YACAnjB,EAAIH,EAAJG,KACAD,EAAKF,EAALE,MACAqjB,EAAkBvjB,EAAlBujB,mBACAC,EAAiBxjB,EAAjBwjB,kBAEAxlB,EAA0CT,mBAAS,CACjD7Z,MAAO2e,EAASA,SAChBlF,UAAU,IACVc,EAAAR,YAAAO,EAAA,GAHKylB,EAAaxlB,EAAA,GAAEylB,EAAgBzlB,EAAA,GA4BtC,OACEha,eAAA,OACE1B,UAAWof,aACTxf,EAAQq/B,kBACPiC,EAActmB,UAAYhb,EAAQu/B,wBACnCp/B,SAAA,CAEFF,cAACud,KAAQ,CACPC,QAAS2jB,EACT/jB,QAAS,kBA5FgB,SAC/B6gB,EACAsD,EACAJ,EACAC,GAEA,IACEI,EADEC,EAAQtjB,aAAOgiB,GAOnB,GAJIsB,EAASzlB,OAAS,IACpBwlB,EAAmBC,EAASpjB,WAAU,SAAClC,GAAC,OAAKA,EAAE8hB,aAAeA,CAAU,KAGtEuD,GAAoB,EAAG,CACzB,IAAME,EAAwBD,EAASD,GAAkBG,OAAOtjB,WAC9D,SAAClC,GAAC,OAAKA,EAAEolB,aAAeA,CAAU,IAEpCE,EAASD,GAAkBI,KACzBR,IACAK,EAASD,GAAkBG,OAAOrjB,QAAO,SAACnC,GAAC,OAAKA,EAAEylB,IAAI,IAAE5lB,OACtD0lB,GAAyB,EAC3BD,EAASD,GAAkBG,OAAOD,GAAuBE,MACtDT,EAEHM,EAASD,GAAkBG,OAAM,GAAA7iB,OAAAX,aAC5BsjB,EAASD,GAAkBG,QAAM,CACpC,CAAEJ,WAAYA,EAAYK,MAAOT,IAGvC,MACEM,EAAShlB,KAAK,CACZwhB,WAAYA,EACZ2D,MAAM,EACND,OAAQ,CAAC,CAAEJ,WAAYA,EAAYK,MAAOT,MAI9Cf,EAAqBqB,EACvB,CAuDUI,CACE9jB,EAAK3B,IACL6D,EAAS7D,IACT+kB,EACAC,EACD,EAEHzhC,MAAO,UAETkC,eAAA,OAEE1B,UAAWJ,EAAQ8+B,aACnBj9B,MAAiB,IAAVkc,EAAc,CAAE/c,UAAW,GAAM,CAAC,EAAEb,SAAA,CAE3C2B,eAAA,OAAK1B,UAAWJ,EAAQg/B,WAAW7+B,SAAA,CAAE4d,EAAQ,EAAE,OAC/C9d,cAAA,YACEG,UAAWof,aACTxf,EAAQy/B,cACR6B,EAActmB,UAAYhb,EAAQ0/B,iBAEpCn+B,MAAO+/B,EAAc//B,MACrByZ,SAAUsmB,EAActmB,SACxBhZ,SA/CS,SAAC+hB,GAChBwd,EAAgBx/B,wBAAC,CAAC,EAAIu/B,GAAa,IAAE//B,MAAOwiB,EAAM7hB,OAAOX,QAC3D,MAiCWwgC,OAAOhkB,EAAQ4G,IAgBtB7iB,eAAA,OAAK1B,UAAWJ,EAAQw/B,gBAAkB,qBAAqBr/B,SAAA,CAC5DmhC,EAActmB,WAAailB,EAAoB3c,WAC9CrjB,cAACqkB,KAAU,CACTlkB,UAAWJ,EAAQm/B,KACnBx/B,SAAS,QACT0d,QAAS,kBAA+B6C,EAAS7D,SA/DzDklB,EAAgBx/B,wBAAC,CAAC,EAAIu/B,GAAa,IAAEtmB,UAAU,IA+Dc,KAGvDsmB,EAActmB,WAAailB,EAAoB3c,WAC/CrjB,cAAA,OACEod,QAzDmB,WAC3B/F,EACEhH,GAAsB,CACpBkxB,WAAYthB,EAAS7D,IACrBkI,KAAM,CAAErE,SAAUohB,EAAc//B,UAXpCggC,EAAgBx/B,wBAAC,CAAC,EAAIu/B,GAAa,IAAEtmB,UAAU,KA9JzB,WACxB,IAAMoT,EAAW,IAAI3J,SACrB2J,EAAS1J,OACP,QAAQ,GAAD3F,OACJyf,EAAyBja,KAAK9iB,KAAI,2BAEvC2sB,EAAS1J,OAAO,OAAQ,IACxB0J,EAAS1J,OAAO,OAAQsd,KAAKC,UAAU,CAAC,IAExC,IAAK,IAAItd,EAAI,EAAGA,EAAI2b,EAAS/b,KAAKtI,OAAQ0I,IACxC0J,QAAQC,IAAIgS,EAAS/b,KAAKI,GAAGtI,KAC7B+R,EAAS1J,OAAO,WAAY4b,EAAS/b,KAAKI,GAAGtI,KAG/C/E,EAAS9F,GAAyB4c,GACpC,CA8JI8T,EACF,EAiDU9hC,UAAWJ,EAAQ2/B,kBAAkBx/B,SAErCF,cAAA,UAAQG,UAAWJ,EAAQ4/B,aAAaz/B,SAAC,aAG5C8/B,EAAoB3c,WACnB2c,EAAoB1b,KAAKid,aAAethB,EAAS7D,KAC/Cpc,cAACkf,GAAM,CAAC/e,UAAWJ,EAAQm/B,KAAM5f,QAAQ,eAMrD,EAuGM0hB,EAAsB,SAAC5kB,GAC3B/E,EAASvH,GAA8B,CAAEsM,QAC3C,EAEA,OACEva,eAAA,OAAK1B,UAAWJ,EAAQgf,KAAK7e,SAAA,CAC3BF,cAAA,OAAKG,UAAWJ,EAAQ0qB,aAAavqB,SACnCF,cAAA,OAAKG,UAAWJ,EAAQ8qB,cAAc3qB,SAAC,cAExCo+B,EAAmB3a,WAClB3jB,cAAC2Z,GAAc,CACbnY,KAAK,aACLuY,SAAUinB,EACV9mB,QAAS,OACTO,UAAU,MACVE,eAAe,EACfV,UAAU,EACVJ,KAAMykB,EAAmBha,OAG7BtkB,cAACk+B,GAAgB,IAChBI,EAAmB3a,WA1HG,WAAO,IAADue,EAAAC,EAC/B,OACEniC,cAAAC,WAAA,CAAAC,SACGggC,EACyB,OAAxB3B,QAAwB,IAAxBA,GAA8B,QAAN2D,EAAxB3D,EAA0Bja,YAAI,IAAA4d,GAAe,QAAfC,EAA9BD,EAAgCzD,qBAAa,IAAA0D,OAArB,EAAxBA,EAA+C7lB,KAAI,SAACyB,EAAM2G,GAAO,IAAD0d,EAAAC,EAI5DC,EAHEC,EAA6BpC,EAAkB9hB,WAC/C,SAAClC,GAAC,OAAKA,EAAE8hB,aAAelgB,EAAK3B,GAAG,IAGpC,GAAImmB,GAA8B,EAAG,CACnC,IAAMC,EAAYrC,EAChBoC,GACAZ,OAAOrjB,QAAO,SAACnC,GAAC,OAAKA,EAAEylB,IAAI,IAE3BU,EADEE,EAAUxmB,SAAW+B,EAAK0kB,UAAUzmB,MAK1C,MACEsmB,GACM,OAAJvkB,QAAI,IAAJA,OAAI,EAAJA,EAAM0kB,UAAUnkB,QAAO,SAACnC,GAAC,OAAKA,EAAEylB,IAAI,IAAE5lB,WAClC,OAAJ+B,QAAI,IAAJA,OAAI,EAAJA,EAAM0kB,UAAUzmB,QAEpB,OACEna,eAAA,OAEE1B,WAAe,OAAJ4d,QAAI,IAAJA,GAAe,QAAXqkB,EAAJrkB,EAAM0kB,iBAAS,IAAAL,OAAX,EAAJA,EAAiBpmB,QAAS,GAAKjc,EAAQk/B,aAAa/+B,SAAA,CAE/D2B,eAAA,OAAK1B,UAAWJ,EAAQi/B,aAAa9+B,SAAA,CACnCF,cAACud,KAAQ,CACPC,QAAS8kB,EACTllB,QAAS,kBApNE,SAC3B6gB,EACAwE,EACAC,GAEA,IACEC,EADElB,EAAQtjB,aAAOgiB,GAGfsB,EAASzlB,OAAS,IACpB2mB,EAAsBlB,EAASpjB,WAC7B,SAAClC,GAAC,OAAKA,EAAE8hB,aAAeA,CAAU,KAIlC0E,GAAuB,EACzBlB,EAASkB,GAAuB,CAC9Bf,MAAOH,EAASkB,GAAqBf,KACrC3D,WAAYA,EACZ0D,OAAQc,EAAUnmB,KAAI,SAACH,GAAC,MAAM,CAC5BolB,WAAYplB,EAAEC,IACdwlB,MAAOH,EAASkB,GAAqBf,KACtC,KAGHH,EAAShlB,KAAK,CACZwhB,WAAYA,EACZ2D,MAAOc,IAA6B,EACpCf,OAAQc,EAAUnmB,KAAI,SAACH,GAAC,MAAM,CAC5BolB,WAAYplB,EAAEC,IACdwlB,MAAOc,IAA6B,EACrC,MAGLtC,EAAqBqB,EACvB,CAmLoBmB,CACE7kB,EAAK3B,IACD,OAAJ2B,QAAI,IAAJA,OAAI,EAAJA,EAAM0kB,UACNH,EACD,EAEH3iC,MAAO,UAETkC,eAAA,OAAA3B,SAAA,CACGwkB,EAAI,EAAE,KAAG3G,EAAKvc,QAEjBK,eAAA,OAAK1B,UAAWJ,EAAQ8vB,aAAe,gBAAgB3vB,SAAA,CACrDF,cAACqkB,KAAU,CACTlkB,UAAWJ,EAAQm/B,KACnBx/B,SAAS,QACT0d,QAAS,kBAlPF,SAACW,GAC1B1G,EAASpH,GAAmBnO,wBAAC,CAAC,EAAIic,GAAI,IAAE8kB,mBAAmB,MAC3D1X,GACF,CA+OmC2X,CAAmB/kB,EAAK,IAExCtG,EAAMqoB,cAActjB,SAASuB,EAAK3B,KACjCpc,cAACkf,GAAM,CAAC/e,UAAWJ,EAAQm/B,KAAM5f,QAAQ,UAEzCtf,cAAC+oB,KAAU,CACT5oB,UAAWJ,EAAQm/B,KACnBx/B,SAAS,QACT0d,QAAS,kBAtQF,SAACW,GAC5B,IAAM+hB,EAAa3hB,aAAO1G,EAAMqoB,eAChCA,EAAcrjB,KAAKsB,EAAK3B,KACxBmH,EAAQzhB,wBAAC,CAAC,EAAI2V,GAAK,IAAEqoB,mBACrBzoB,EACE1I,GAA8B,CAC5BsvB,WAAYlgB,EAAK3B,IACjBuiB,iBAAkBJ,EAAyBja,KAAKlI,MAGtD,CA4PqC2mB,CAAqBhlB,EAAK,WAK5C,OAAJA,QAAI,IAAJA,GAAe,QAAXskB,EAAJtkB,EAAM0kB,iBAAS,IAAAJ,OAAX,EAAJA,EAAiBrmB,QAAS,IACrB,OAAJ+B,QAAI,IAAJA,OAAI,EAAJA,EAAM0kB,UAAUnmB,KAAI,SAAC2D,EAAUnC,GAAW,IAADklB,EACnC7B,EACJ,GAAIoB,GAA8B,EAAG,CACnC,IAAMU,EAAwB9C,EAC5BoC,GACAZ,OAAOtjB,WAAU,SAAClC,GAAC,OAAKA,EAAEolB,aAAethB,EAAS7D,GAAG,IAErD+kB,EADE8B,GAAyB,EAEzB9C,EAAkBoC,GAA4BZ,OAC5CsB,GACArB,KAEiB3hB,EAAS2hB,OAAQ,CAE1C,MACET,EAAqBlhB,EAAS2hB,OAAQ,EAExC,OACE5hC,cAACihC,EAAU,CACTE,mBAAoBA,EACpBC,kBAAuB,OAAJrjB,QAAI,IAAJA,GAAe,QAAXilB,EAAJjlB,EAAM0kB,iBAAS,IAAAO,OAAX,EAAJA,EAAiBhnB,OACpCiE,SAAUA,EACVihB,YAAaxc,EACb3G,KAAMA,EACND,MAAOA,GAGb,OA/DGgkB,OAAOpd,GAkElB,IAEA1kB,cAAA,OAAKG,UAAWJ,EAAQo/B,WAAWj/B,SAAC,0CAM5C,CAuBqCgjC,GAChC5E,EAAmBjb,WAAarjB,cAACkf,GAAM,CAACI,QAAQ,QAChDgf,EAAmB5S,SAClB1rB,cAACuqB,GAAK,CAACD,QAASgU,EAAmBhU,UAErCtqB,cAAC2rB,KAAG,CACFC,KAAK,QACLxO,QAAS+N,EACTxrB,MAAM,YACN,aAAW,MACXQ,UAAWJ,EAAQirB,IAAI9qB,SAEvBF,cAAC6rB,KAAO,MAETsU,EAAkBnkB,OAAS,GAC1Bhc,cAAC2rB,KAAG,CACFC,KAAK,QACLxO,QAzUqB,WAM3B/F,EAASxF,GALO,CACdyS,KAAM,CACJ6e,YAAahD,KAInB,EAmUQxgC,MAAM,YACN,aAAW,MACXQ,UAAWJ,EAAQ6+B,OAAO1+B,SAEzB6/B,EACC//B,cAACkf,GAAM,CAACvf,MAAO,OAAQiC,MAAO,CAAEjC,MAAO,UAEvCK,cAACojC,KAAU,QAMvB,CC1jBA,IAAM9jC,GAAYC,aAAW,SAACC,GAAK,MAAM,CACvCuf,KAAM,CAAC,EACR,IAEKlF,GAAO,CACX,CAAErY,KAAM,cAAe6hC,cAAe,aACtC,CAAE7hC,KAAM,eAAgB6hC,cAAe,gBAM1B,SAASC,GAAmBzjC,GAAmC,IAADia,EAAAja,EAA/Bka,gBAAQ,IAAAD,EAAG,kBAAM,IAAI,EAAAA,EAAEtY,EAAI3B,EAAJ2B,KAC7DzB,EAAUT,KAEhB,OACEU,cAAA,OAAKG,UAAWJ,EAAQgf,KAAK7e,SAC3BF,cAAC2Z,GAAc,CACbnY,KAAMA,EACNuY,SAAUA,EACVG,QAAS,OACTO,UAAW,gBACXE,eAAe,EACfE,mBAAoB,EACpBZ,UAAU,EACVgB,gCAAgC,EAChCpB,KAAMA,MAKd,CCxBkBta,aAAW,SAACC,GAAK,MAAM,CACvCyhB,YAAa,CACX5gB,QAAS,OACTE,cAAe,MACfgW,eAAgB,gBAChBD,WAAY,SACZ9V,QAAShB,EAAMkZ,QAAQ,GACvBG,aAAc,8BAEhBqI,UAAW,CACTC,OAAQ,WAEVjB,QAAS,CACP5f,KAAM,EACNE,QAAS,GACT6gB,UAAW,UAEba,OAAQ,CACN1hB,QAAShB,EAAMkZ,QAAQ,GACvByJ,UAAW,6BACX9hB,QAAS,OACTE,cAAe,MACfgW,eAAgB,WAChBD,WAAY,UAEd8L,OAAQ,CACNvhB,QAAS,OACTJ,OAAQ,OACRmW,WAAY,UACZjX,MAAO,OACPoX,MAAO,GACP9V,OAAQ,GACRkgB,OAAQ,WAEV+P,cAAe,CACb7wB,QAAS,OACTiW,WAAY,UAEd6W,qBAAsB,CACpB9sB,QAAS,OACTE,cAAe,MACf+V,WAAY,SACZvV,UAAW,IAEd,ICvBD,IAAMzB,GAAYC,aAAW,SAACC,GAAK,IAAA+jC,EAAA,MAAM,CACvCxkB,KAAItI,YAAA,CACFjW,QAAS,IACRhB,EAAMwX,YAAYC,KAAK,MAAQ,CAC9BzW,QAAS,IAGbwqB,IAAK,CACHtJ,SAAU,QACVuJ,OAAQzrB,EAAMkZ,QAAQ,GACtBmJ,MAAOriB,EAAMkZ,QAAQ,GACrB9B,WAAY,UACZ,UAAW,CACTA,WAAY,YAGhBioB,aAAYpoB,YAAA,CACVpW,QAAS,OACTiW,WAAY,SACZC,eAAgB,gBAChBxV,UAAW,QACVvB,EAAMwX,YAAYC,KAAK,MAAQ,CAAC,GAEnCoJ,SAAU,CACR3gB,SAAU,UAEZo/B,qBAAmByE,EAAA,CACjBhU,WAAY,QAAM9Y,YAAA8sB,EACjB/jC,EAAMwX,YAAYC,KAAK,MAAQ,CAAC,GAACR,YAAA8sB,EAAC,QAC5B,OAAKA,GAEd9Y,aAAc,CACZpqB,QAAS,OACTE,cAAe,MACfgW,eAAgB,gBAChBD,WAAY,SACZ3V,aAAc,IAEhBkqB,cAAe,CACbrJ,WAAY,OACZ9hB,SAAU,UAEZqlB,WAAY,CACV5D,OAAQ,WAEVC,eAAgB,CACd/gB,QAAS,OAETiW,WAAY,SACZS,MAAO,OAEToC,QAAS,CACPpC,MAAO,KAETysB,eAAgB,CACd7qB,SAAU,KAEZ8qB,sBAAuB,CAAC,EACxBC,aAAc,CACZhZ,UAAW,SACX3pB,UAAW,QAEbosB,qBAAsB,CACpB9sB,QAAS,OACTE,cAAe,MACf+V,WAAY,SACZvV,UAAW,IAEd,IASc,SAAS4iC,KACtB,IAAM5jC,EAAUT,KACV+X,EAAWC,cACXssB,EAAYpsB,aAAY,SAACC,GAAK,OAAKA,EAAM0L,OAAOygB,SAAS,IAI/D1oB,EAA0BC,mBAAS,CACjCkoB,cAAe,cACfjoB,EAAAC,YAAAH,EAAA,GAFKzD,EAAK2D,EAAA,GAAEmI,EAAQnI,EAAA,GAGtBI,EAAkCL,mBAAS,IAAGM,EAAAJ,YAAAG,EAAA,GAAvCqoB,EAASpoB,EAAA,GAAEqoB,EAAYroB,EAAA,GAC9BqX,mBAAQ,WACN,GACE8Q,EAAUtf,MACV5D,MAAMC,QAAQijB,EAAUtf,OACxBsf,EAAUtf,KAAKtI,OAAS,EACxB,CACA,IAAM+nB,EAAaH,EAAUtf,KAAK0f,MAChC,SAAC7nB,EAAGqb,GAAC,OAAKrb,EAAE8nB,gBAAkBzM,EAAEyM,eAAe,IAEjDH,EAAaC,EACf,CACF,GAAG,CAACH,IACJ9rB,qBAAU,WAIRT,EAAStK,KACX,GAAG,IAEH,IAUMm3B,EAAkB,SAACnmB,GACvB1G,EAASpH,GAAoB8N,IAC7B1G,EAAS3H,IAAkB,GAC7B,EAEMy0B,EAAoB,SAAClR,GACzB5b,EACEnK,GAAuB,CAAEkP,IAAK6W,EAAIoQ,cAAe5rB,EAAM4rB,gBAG3D,EAaMe,EAAgB,SAACjgB,GACrB,IAAQkP,EAAwBlP,EAAxBkP,OAAQC,EAAgBnP,EAAhBmP,YAGhB,GAAKA,GAEDA,EAAYxV,QAAUuV,EAAOvV,MAAjC,CAGA,IAAMyV,EAAiBsQ,EAAUvlB,QAC/B,SAACP,GAAI,OAAKA,EAAK3D,OAAS3C,EAAM4rB,aAAa,IAE7C7P,EAAoBD,EAAehV,OAAO8U,EAAOvV,MAAO,GAAjD2V,EAAmDpY,YAAAmY,EAAA,GAA1C,GAChBD,EAAehV,OAAO+U,EAAYxV,MAAO,EAAG2V,GAC5C,IAAMC,EAAWH,EAAejX,KAAI,SAACyB,EAAMD,GACzC,MAAO,CAAE1B,IAAK2B,EAAK3B,IAAK6nB,gBAAiBnmB,EAC3C,IAEAzG,EACEnB,GAA+B,CAC7BkE,KAAM3C,EAAM4rB,cACZzP,MAAOF,IAfmC,CAmBhD,EAoEA,OACE7xB,eAAA,OAAK1B,UAAWJ,EAAQgf,KAAK7e,SAAA,CAC3BF,cAACqkC,GAAY,CACX9W,aAjIwB,SAACY,GAC7BC,QAAQC,IAAI,uBAAwBF,GACpC9W,EAASpI,GAAmB,CAAEkf,WAAU6D,WAAYva,EAAM4rB,gBAC5D,EA+HM5X,WA7HwB,SAACnH,GAC7B8J,QAAQC,IAAI,sBAAuB/J,GACnCjN,EAAS1J,GAAmB2W,GAC9B,IA4HItkB,cAAA,OAAKG,UAAWJ,EAAQ0qB,aAAavqB,SACnCF,cAAA,OAAKG,UAAWJ,EAAQ8qB,cAAc3qB,SAAC,iBAExC0jC,EAAUjgB,WACT3jB,cAAA,OAAKG,UAAWJ,EAAQotB,qBAAqBjtB,SAC3CF,cAACsjC,GAAmB,CAACvpB,SAlBR,SAACzY,EAAOE,GAC3B+hB,EAAQzhB,wBAAC,CAAC,EAAI2V,GAAK,GAAAhB,YAAA,GAAGjV,EAAOF,KAC7B8sB,QAAQC,IAAI,QAAS/sB,GACrB8sB,QAAQC,IAAI,OAAQ7sB,GACpB4sB,QAAQC,IAAI,QAAS5W,EACvB,EAaqDjW,KAAK,oBAGrDoiC,EAAUvgB,WAAarjB,cAACkf,GAAM,CAACI,QAAQ,QACvCskB,EAAUjgB,WAlFS,SAACW,GACvB,IAAMzK,EAAOyK,EAAKhG,QAAO,SAACnC,GAAC,OAAKA,EAAE/B,OAAS3C,EAAM4rB,aAAa,IAC9D,OAAKxpB,EAAKmC,OASRhc,cAACmzB,KAAe,CAACC,UAAWgR,EAAclkC,SACxCF,cAAC6zB,KAAS,CAACC,YAAW,sBAAwB5zB,SAC3C,SAAC6zB,GACA,OACElyB,eAAA,MAAAC,wBAAA,CAAK0jB,IAAKuO,EAASC,UAAcD,EAASE,gBAAc,IAAA/zB,SAAA,CACrD2Z,EAAKyC,KAAI,SAACyB,EAAMD,GACf,OACE9d,cAACk0B,KAAS,CAERC,YAAiB,OAAJpW,QAAI,IAAJA,OAAI,EAAJA,EAAM3B,IACnB0B,MAAOA,EAAM5d,SAEZ,SAAC6zB,GAAQ,OACR/zB,cAAA,MAAA8B,oCAAA,CACE0jB,IAAKuO,EAASC,UACVD,EAASK,gBACTL,EAASM,iBAAe,IAC5Bl0B,UAAWJ,EAAQ8+B,aACnBj9B,MAAKE,wBAAA,GACAiyB,EAASK,eAAexyB,OAAK,IAChCb,UAAqB,IAAV+c,EAAc,EAAI,SAC7B5d,SAEFF,cAAC+vB,GAAY,CAEXzL,KAAMvG,EACN0N,WAAYyY,EACZpe,aAAcqe,EAEd7T,UAAQ,GALHxS,KAOH,GAvBC,OAAJC,QAAI,IAAJA,OAAI,EAAJA,EAAM3B,IA2BjB,IACC2X,EAASxyB,eAGhB,MA9CFvB,cAAA,OAAKG,UAAWJ,EAAQ2jC,aAAaxjC,SAAC,mDAkD5C,CA4B4BokC,CAAgBT,GACvCD,EAAUlY,SAAW1rB,cAACuqB,GAAK,CAACD,QAASsZ,EAAUtZ,UAChDtqB,cAAC2rB,KAAG,CACFC,KAAK,QACLxO,QA9BkB,WACtB/F,EAAS3H,IAAkB,GAC7B,EA6BM/P,MAAM,YACN,aAAW,MACXQ,UAAWJ,EAAQirB,IAAI9qB,SAEvBF,cAAC6rB,KAAO,QAIhB,CCnRA,IAAMvsB,GAAYC,aAAW,SAACC,GAAK,MAAM,CACvCyhB,YAAa,CACX5gB,QAAS,OACTE,cAAe,MACfgW,eAAgB,gBAChBD,WAAY,SACZ9V,QAAShB,EAAMkZ,QAAQ,GACvBG,aAAc,8BAEhBqI,UAAW,CACTC,OAAQ,WAEVjB,QAAS,CACP5f,KAAM,EACNE,QAAS,GACT6gB,UAAW,UAEba,OAAQ,CACN1hB,QAAShB,EAAMkZ,QAAQ,GACvByJ,UAAW,6BACX9hB,QAAS,OACTE,cAAe,MACfgW,eAAgB,WAChBD,WAAY,UAEd8L,OAAQ,CACNvhB,QAAS,OACTJ,OAAQ,OACRmW,WAAY,UACZjX,MAAO,OACPoX,MAAO,GACP9V,OAAQ,GACRkgB,OAAQ,WAEVa,cAAavL,YAAA,CACXM,MAAO,OACNvX,EAAMwX,YAAYC,KAAK,MAAQ,CAC9BF,MAAO,SAGXka,QAAS,CACP,EAEFC,cAAe,CAIb3B,YAAa/vB,EAAMkZ,QAAQ,IAE7B8H,UAAW,CACTzJ,MAAO,OACP9V,OAAQ,OACRygB,SAAU,WACVY,OAAQ,GACRC,KAAM,EACNpB,OAAQ,UACRvK,WAAY,OACZ+Y,UAAW,WAEb5C,aAAYtW,YAAA,CACVhW,OAAQ,6BACRihB,SAAU,WACVhhB,aAAc,EACdL,QAAS,OACT0W,MAAO,MAEP9V,OAAQ,QACRwY,UAAW,QACXlZ,cAAe,SACfgW,eAAgB,SAChBD,WAAY,SACZ6K,OAAQ,WAEP3hB,EAAMwX,YAAYC,KAAK,MAAQ,CAC9BF,MAAO,QAGXsL,MAAO,CACLtL,MAAO,OACP9V,OAAQ,OACRygB,SAAU,WACVY,OAAQ,IACRC,KAAM,EACNC,QAAS,EACTrB,OAAQ,WAEVgQ,mBAAoB,CAClB9wB,QAAS,OACTkW,eAAgB,SAChBD,WAAY,SACZvV,UAAWvB,EAAMkZ,QAAQ,GACzBnY,cAAe,UAEjB0sB,wBAAyB,CACvB5sB,QAAS,OACTiW,WAAY,SACZvV,UAAW,IAEd,IAEK0hB,GAAe,CACnB/C,OAAQ,CAAC,EACTtF,KAAM,QAKNsI,MAAO,GACPnC,IAAK,GAGL8Q,kBAAkB,EAClBX,QAAS,IAqQI6T,GA5PU,SAAH1kC,GAA0B,IAAD+iB,EAAnB2K,EAAY1tB,EAAZ0tB,aACpBxtB,EAAUT,KACV+X,EAAWC,cAEX+L,EAAY7L,aAAY,SAACC,GAAK,OAAKA,EAAMC,OAAO2L,SAAS,IAE/DnI,EAA0BC,mBAASsH,IAAarH,EAAAC,YAAAH,EAAA,GAAzCzD,EAAK2D,EAAA,GAAEmI,EAAQnI,EAAA,GAChBkI,EAAY9L,aAAY,SAACC,GAAK,OAAKA,EAAMC,OAAO4L,SAAS,IACzD/I,EAAaiJ,OAAOnG,KAAKiG,GAAWtH,OAAS,EAE7CnE,EAAc,WAClBR,EAAS3H,IAAkB,IAC3BgvB,GACF,EAEA5mB,qBAAU,WACR,OAAO,WACLD,GACF,CACF,GAAG,IA0DHC,qBAAU,WACJyC,GAmBqB,UAAnB+I,EAAUlJ,MACZmJ,EAAQzhB,wBAAC,CAAC,EACL2V,GAAK,IACR2C,KAAMkJ,EAAUlJ,KAChBmG,IAAK+C,EAAUZ,MACfgO,QAASpN,EAAUoN,SAAW,KAItC,GAAG,CAACnW,IAEJ,IAIMmkB,EAAc,WAClBnb,EAASd,GACX,EAYA,OACE5gB,eAACqV,GAAW,CAACE,QAASsnB,EAAYx+B,SAAA,CAChC2B,eAAA,OAAK1B,UAAWJ,EAAQkhB,YAAY/gB,SAAA,CAClCF,cAAA,QAAAE,SAAM,iBACNF,cAAC6jB,KAAS,CAACzG,QAASvF,EAAa1X,UAAWJ,EAAQmhB,eAEtDrf,eAAA,OAAK1B,UAAWJ,EAAQmgB,QAAQhgB,SAAA,CAwB9BF,cAAA,OAAKG,UAAWJ,EAAQkxB,UAsCxBpvB,eAAA,OAAK1B,UAAWJ,EAAQoxB,mBAAmBjxB,SAAA,CACzC2B,eAAA,OAAK1B,UAAWJ,EAAQgtB,aAAa7sB,SAAA,CACpB,KAAduX,EAAM8I,KACLvgB,cAAA,OACEG,UAAWJ,EAAQygB,UACnB5B,IAAKnH,EAAM8I,IACXgQ,IAAI,iBAGRvwB,cAAA,SACE+B,SAAU,SAACC,GAAC,OAxFxB,SAAkB8hB,EAAOtiB,GACvB,IAAI8e,EAAOwD,EAAM7hB,OAAO8hB,MAAM,GAC1BC,EAAS,IAAIC,WACjBD,EAAOE,OAAS,SAAUJ,GAAQ,IAAD0N,EAC/BjO,EAAQzhB,wBAAC,CAAC,EAAI2V,GAAK,IAAA+Z,EAAA,GAAA/a,YAAA+a,EAAGhwB,EAAO8e,GAAI7J,YAAA+a,EAAC,MAAM1N,EAAM7hB,OAAOkiB,QAAMqN,IAC7D,EAEAlR,GAAQ0D,EAAOI,cAAc9D,EAC/B,CAgF6Bve,CAASC,EAAG,QAAQ,EACrC4rB,OAAO,UACPztB,UAAWJ,EAAQsiB,MACnBjI,KAAK,OACLyT,SAAO,IAET7tB,cAAC8tB,KAAqB,IACtB9tB,cAAA,OAAKG,UAAWJ,EAAQitB,oBAAoB9sB,SAAC,oBAE/CF,cAACJ,EAAY,CAACE,MAAY,OAAL2X,QAAK,IAALA,GAAa,QAARmL,EAALnL,EAAOiI,cAAM,IAAAkD,OAAR,EAALA,EAAetC,OACpCtgB,cAACmB,EAAe,CACdG,MAAOmW,EAAMiZ,QACblvB,KAAM,UACNH,aA7GW,SAACC,EAAOE,GAC3B+hB,EAAQzhB,wBAAC,CAAC,EAAI2V,GAAK,GAAAhB,YAAA,GAAGjV,EAAOF,IAC/B,EA4GUM,MAAO,CAAEmV,MAAO,MAAOhW,UAAW,IAClCW,UAAU,EACVH,YAAa,2BAoBnBvB,cAAA,OAAKG,UAAWJ,EAAQmiB,OAAOhiB,SAC7BF,cAAA,UAEEod,QA9NkB,WACxB,IAAIonB,EAAS1iC,YAAA,GAAQ2V,GAUF,UAAfA,EAAM2C,OACRoqB,EAAY,CAAEjkB,IAAKikB,EAAUjkB,MAE/B,IAAMb,EAASD,GAAU+kB,GAMzB,GADAjhB,EAAQzhB,wBAAC,CAAC,EAAI2V,GAAK,IAAEiI,YACjB8D,OAAOnG,KAAKqC,GAAQ1D,OAEtByV,KAAM3xB,MAAM4f,EAAO8D,OAAOnG,KAAKqC,GAAQ,IAAK,CAC1CgC,SAAU,aACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,EACVpgB,MAAO,gBAVX,CAcA,IAAI+kB,EAAW,IAAIC,SAEnBD,EAASE,OAAO,mBAAoBhN,EAAM4Z,kBAUvB,UAAf5Z,EAAM2C,OACRmK,EAASE,OAAO,QAAShN,EAAMiL,OAC/B6B,EAASE,OAAO,UAAWhN,EAAMiZ,UAEnCtC,QAAQC,IAAI5W,GAGZ8V,EAAa,CAAEhJ,YApBf,CAqBF,EAyKQpkB,UAAWJ,EAAQqiB,OAAOliB,SAEzBmjB,EAAYrjB,cAACkf,GAAM,CAACtd,MAAO,CAAEjC,MAAO,UAAe,eAK9D,EChXML,GAAYC,aAAW,SAACC,GAAK,MAAM,CACvCuf,KAAM,CACJve,QAAS,IAEXiqB,aAAc,CACZpqB,QAAS,OACTE,cAAe,MACfgW,eAAgB,gBAChBD,WAAY,SACZ3V,aAAc,IAEhBkqB,cAAe,CACbrJ,WAAY,OACZ9hB,SAAU,UAEZgwB,YAAa,CACX/uB,aAAc,GACdkW,UACE,uGACFD,WAAY,QAEd8L,MAAO,CACL3L,MAAO,OACP9V,OAAQ,OACR0uB,UAAW,WAEbC,QAAS,CACPvvB,QAAS,OACTkW,eAAgB,gBAChBD,WAAY,SACZ8O,aAAc,IAEhBL,WAAY,CACV5D,OAAQ,WAEVmO,WAAY,CACVnO,OAAQ,UACRoO,WAAY,IAEdM,aAAc,CACZxvB,QAAS,OACTE,cAAe,MACfgW,eAAgB,gBAChBQ,MAAO,MAET+Y,mBAAoB,CAClB1K,aAAc,IAEhBlkB,MAAO,CACLxB,SAAU,SACViB,aAAc,GAEhB0f,SAAU,CACR3gB,SAAU,SACViB,aAAc,GAEhBqf,YAAa,CACXtgB,SAAU,SACViB,aAAc,GAEhBqqB,IAAK,CACHtJ,SAAU,QACVuJ,OAAQzrB,EAAMkZ,QAAQ,GACtBmJ,MAAOriB,EAAMkZ,QAAQ,GACrB9B,WAAY,UACZ,UAAW,CACTA,WAAY,YAGjB,IAEc,SAAS6tB,KACtB,IAAM1kC,EAAUT,KACV+X,EAAWC,cACXotB,EAAoBltB,aACxB,SAACC,GAAK,OAAKA,EAAM0L,OAAOuhB,iBAAiB,IAG3CxpB,EAAkCC,mBAAS,IAAGC,EAAAC,YAAAH,EAAA,GAAvCypB,EAASvpB,EAAA,GAAEwpB,EAAYxpB,EAAA,GAC9B0X,mBAAQ,WAEJ4R,EAAkBpgB,MAClB5D,MAAMC,QAAQ+jB,EAAkBpgB,OAChCogB,EAAkBpgB,KAAKtI,OAAS,GAEhC4oB,EAAaF,EAAkBpgB,KAEnC,GAAG,CAACogB,IAIJ5sB,qBAAU,WAIRT,EAAS/D,KACX,GAAG,IAEH,IAcM0f,EAAoB,SAACC,GACzB5b,EAAStD,GAAmC,CAAEqI,IAAK6W,IAErD,EAEMC,EAA8B,SAAC5O,GACnC,IAAM8D,EAAU,CAAEhM,IAAKkI,EAAKlI,IAAKiV,kBAAmB/M,EAAK+M,kBACzDha,EAASzD,GAAkCwU,GAC7C,EAsBA,OACEvmB,eAAA,OAAK1B,UAAWJ,EAAQgf,KAAK7e,SAAA,CAC3BF,cAAA,OAAKG,UAAWJ,EAAQ0qB,aAAavqB,SACnCF,cAAA,OAAKG,UAAWJ,EAAQ8qB,cAAc3qB,SAAC,0BAEzCF,cAACukC,GAAgB,CAAChX,aAxCgB,SAACjJ,GAErCjN,EAAS5D,GAAiC6Q,EAAKC,UACjD,IAsCKmgB,EAAkBrhB,WAAarjB,cAACkf,GAAM,CAACI,QAAQ,QAC/ColB,EAAkBhZ,SACjB1rB,cAACuqB,GAAK,CAACD,QAASoa,EAAkBpa,UAEnCoa,EAAkB/gB,WAAaghB,EAAU3oB,OAAS,GACjDhc,cAAAC,WAAA,CAAAC,SACEF,cAACmzB,KAAe,CAACC,UAhCH,SAACjP,GACrB,IAAQkP,EAAwBlP,EAAxBkP,OAAQC,EAAgBnP,EAAhBmP,YAGhB,GAAKA,GAEDA,EAAYxV,QAAUuV,EAAOvV,MAAjC,CAGA,IAAMyV,EAAcpV,aAAOwmB,GAC3BnR,EAAoBD,EAAehV,OAAO8U,EAAOvV,MAAO,GAAjD2V,EAAmDpY,YAAAmY,EAAA,GAA1C,GAChBD,EAAehV,OAAO+U,EAAYxV,MAAO,EAAG2V,GAC5C,IAAMC,EAAWH,EAAejX,KAAI,SAACyB,EAAMD,GACzC,MAAO,CAAE1B,IAAK2B,EAAK3B,IAAKuX,WAAY7V,EACtC,IAEAzG,EAASpD,GAAuC,CAAE2f,MAAOF,KACzDkR,EAAarR,EAXiC,CAYhD,EAckDrzB,SACxCF,cAAC6zB,KAAS,CAACC,YAAW,8BAAgC5zB,SACnD,SAAC6zB,GACA,OACElyB,eAAA,MAAAC,wBAAA,CAAK0jB,IAAKuO,EAASC,UAAcD,EAASE,gBAAc,IAAA/zB,SAAA,CACrDykC,EAAUroB,KAAI,SAACyB,EAAMD,GACpB,OACE9d,cAACk0B,KAAS,CAERC,YAAapW,EAAK3B,IAClB0B,MAAOA,EAAM5d,SAEZ,SAAC6zB,GAAQ,OACR/zB,cAAA,MAAA8B,oCAAA,CACE0jB,IAAKuO,EAASC,UACVD,EAASK,gBACTL,EAASM,iBAAe,IAC5BzyB,MAAKE,YAAA,GACAiyB,EAASK,eAAexyB,OAC3B1B,SAEFF,cAAC+vB,GAAY,CAEXzL,KAAMvG,EACN+H,aAAckN,EACd3C,uBACE6C,GAJGpV,KAOH,GArBHC,EAAK3B,IAyBhB,IACC2X,EAASxyB,eAGhB,QAMRvB,cAAC2rB,KAAG,CACFC,KAAK,QACLxO,QArGkB,WACtB/F,EAAS3H,IAAkB,GAC7B,EAoGM/P,MAAM,YACN,aAAW,MACXQ,UAAWJ,EAAQirB,IAAI9qB,SAEvBF,cAAC6rB,KAAO,QAIhB,C,sDC/Ne,SAASgZ,GAAWhlC,GAAkG,IAAhGilC,EAAMjlC,EAANilC,OAAOC,EAAIllC,EAAJklC,KAAKC,EAAWnlC,EAAXmlC,YAAYC,EAAaplC,EAAbolC,cAAcC,EAAiBrlC,EAAjBqlC,kBAAkBC,EAAmBtlC,EAAnBslC,oBAAoBntB,EAAInY,EAAJmY,KAAKH,EAAWhY,EAAXgY,YAEpH,OACE7X,cAAA,OAAAE,SAEE2B,eAACujC,KAAM,CACLptB,KAAMA,EACNZ,QAASS,EACT,kBAAgB,qBAChB,mBAAiB,2BAA0B3X,SAAA,CAE3CF,cAACqlC,KAAW,CAACpS,GAAG,qBAAoB/yB,SAAE4kC,IACrCC,GAAQ/kC,cAACslC,KAAa,CAAAplC,SACrBF,cAACulC,KAAiB,CAACtS,GAAG,2BAA0B/yB,SAC9C6kC,MAGJljC,eAAC2jC,KAAa,CAAAtlC,SAAA,CACZF,cAAC6oB,KAAM,CAACzL,QAAS8nB,EAAmBvlC,MAAM,UAASO,SAChD8kC,IAEHhlC,cAAC6oB,KAAM,CAACzL,QAAS+nB,EAAqBxlC,MAAM,UAAU8lC,WAAS,EAAAvlC,SAC5D+kC,WAMb,C,wBCpCaS,GAASC,iCCGP,SAASC,GAASC,EAAQC,EAAKpgB,EAASpB,GACrD,IAAM/D,EAAMmlB,GAAWI,EACnBpuB,EAAS,CAAC,EAad,OAXEA,OADckI,IAAZ8F,GAAqC,KAAZA,EAClB,CACPA,WAGO,CACPA,QAAS,CACP,eAAgB,mBAChBqgB,UAAW,UAIF,QAAXF,EACKG,KAAMC,IAAI1lB,EAAK7I,EAAQ4M,GACV,SAAXuhB,EACFG,KAAME,KAAK3lB,EAAK+D,EAAM5M,GACT,QAAXmuB,EACFG,KAAMG,IAAI5lB,EAAK+D,EAAM5M,GACR,WAAXmuB,EACFG,KAAMrhB,OAAOpE,EAAK+D,EAAM5M,GACX,UAAXmuB,EACFG,KAAMI,MAAM7lB,EAAK+D,EAAM5M,QADzB,CAGT,C,wBCIMpY,IAPe+mC,EAAQ,KAOX9mC,aAAW,SAACC,GAAK,MAAM,CACvCuf,KAAM,CACJ,sBAAuB,CACrBhI,MAAO,EACPH,WAAY,eAEdpW,QAAS,IAEXiqB,aAAc,CACZpqB,QAAS,OACTE,cAAe,MACfgW,eAAgB,gBAChBD,WAAY,SACZ3V,aAAc,IAEhB2lC,YAAa,CACX5mC,SAAU,QAEZ6mC,aAAc,CACZlmC,QAAS,OACTE,cAAe,SACfimC,IAAK,OACLlwB,WAAY,aACZ3V,aAAc,IAEhB8lC,WAAY,CACVpmC,QAAS,OACTmmC,IAAK,OACLlwB,WAAY,cAEdowB,cAAe,CACbrmC,QAAS,OACTE,cAAe,MACfimC,IAAK,OACLlwB,WAAY,aACZqC,SAAU,KAEZguB,oBAAqB,CACnBhuB,SAAU,KAEZnC,MAAO,CACLhW,QAAShB,EAAMkZ,QAAQ,GACvBgS,UAAW,SACX/qB,MAAOH,EAAMmX,QAAQgU,KAAKC,WAE5BC,cAAe,CACbrJ,WAAY,OACZ9hB,SAAU,UAEZknC,aAAc,CACZplB,WAAY,OACZ9hB,SAAU,QAGZorB,iBAAkB,CAChBnrB,MAAO,UACP6hB,WAAY,MACZL,OAAQ,WAEV4J,MAAO,CACLhU,MAAO,GACP9V,OAAQ,GACRP,aAAc,IAEhBsqB,IAAK,CACHtJ,SAAU,QACVuJ,OAAQzrB,EAAMkZ,QAAQ,GACtBmJ,MAAOriB,EAAMkZ,QAAQ,GACrB9B,WAAY,UACZ,UAAW,CACTA,WAAY,YAGjB,KAEc,SAASiwB,KACtB,IAAA3rB,EACEC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GADV4rB,EAA+B1rB,EAAA,GAAE2rB,EAAkC3rB,EAAA,GAE1EI,EAGIL,oBAAS,GAAMM,EAAAJ,YAAAG,EAAA,GAFjBwrB,EAAkCvrB,EAAA,GAClCwrB,EAAqCxrB,EAAA,GAEvCG,EAAkCT,oBAAS,GAAMU,EAAAR,YAAAO,EAAA,GAA1CsrB,EAASrrB,EAAA,GAAEsrB,EAAYtrB,EAAA,GAC9BwL,EAA4ClM,mBAAS,IAAGoM,EAAAlM,YAAAgM,EAAA,GAAjD+f,EAAc7f,EAAA,GAAE8f,EAAiB9f,EAAA,GAElC+f,GADeC,iBAAO,MACZA,iBAAO,KACjBC,EAAcD,iBAAO,IAE3B7f,EAA0CvM,mBACxC2V,OAAS2W,SAAS,EAAG,KAAKzW,OAAO,eAClCrJ,EAAAtM,YAAAqM,EAAA,GAFMggB,EAAa/f,EAAA,GAAEggB,EAAgBhgB,EAAA,GAGtCG,EAAsC3M,mBAAS2V,OAASE,OAAO,eAAcjJ,EAAA1M,YAAAyM,EAAA,GAAtE8f,EAAW7f,EAAA,GAAE8f,EAAc9f,EAAA,GAC5B+f,EAAYP,iBAAO,OAEzBQ,GADyBR,iBAAO,IACgBpsB,mBAAS,KAAG6sB,EAAA3sB,YAAA0sB,EAAA,GAArDE,EAAgBD,EAAA,GAAEE,EAAmBF,EAAA,GACtCG,EAAeZ,mBAEfxnC,EAAUT,KACV+X,EAAWC,cAEX+oB,EAAW7oB,aAAY,SAACC,GAAK,OAAKA,EAAM0L,OAAOkd,QAAQ,IAM7D5X,IAAMqK,SAAQ,WAAO,IAADsV,EACZrE,EACJ1D,EAAS/b,MACT5D,MAAMC,QAAQ0f,EAAS/b,QACV,QADe8jB,EAC5B/H,EAAS/b,YAAI,IAAA8jB,OAAA,EAAbA,EAAepE,MAAK,SAAC7nB,EAAGqb,GACtB,OAAO,CACT,KACF6P,EAAkBtD,EACpB,GAAG,CAAC1D,IAEJ,IAIMgI,EAAa,SAACtqB,GAClB,MAA0B,SAAtBA,EAAKuqB,aACA,OAEAvqB,EAAKwqB,UAReC,EAQkBzqB,EAAKwqB,UAPtCE,OAAO,GAAGC,cAAgBF,EAAOlhB,MAAM,GAOW,UARpC,IAACkhB,CAU/B,EAEMG,EAAa,SAAC5qB,GAClB,MAAsB,aAAlBA,EAAKwqB,SACHxqB,EAAK6qB,uBACA,SAEA,WAGF7qB,EAAK8qB,aACR/X,KAAO/S,EAAK8qB,cAAc7X,OAAO,wBACjC,GAER,EAuJM8X,EAAqC,WACzC/B,GAAmC,EACrC,EAgFMgC,EAAwC,WAC5C9B,GAAsC,EACxC,EAkDA,OACEplC,eAAA,OAAK1B,UAAWJ,EAAQgf,KAAK7e,SAAA,CAC3BF,cAAC6kC,GAAW,CACVC,OAAQ,sDACRE,YAAa,KACbC,cAAe,MACfC,kBAAmB4D,EACnB3D,oBAzIsC,WAC1CgC,GAAa,GACOvB,GAClB,QACA,qCACAhmB,EACA,CACEopB,QAASf,EAAiB3rB,KAAI,SAAC2sB,GAAI,OAAKA,EAAK7sB,GAAG,MAIjD8sB,MAAK,SAACC,GACL9xB,EACEnJ,GAAmB,CACjBoW,KAAM,CACJhG,OAAQkpB,EAAY4B,QAAQ9nC,MAC5BgmC,QAASA,EAAQ8B,QAAQ9nC,MACzBwmC,UAAWA,EAAUsB,QAAQ9nC,UAInCmwB,KAAM4X,QAAQ,sCAAuC,CACnD3nB,SAAU,aACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,EACVpgB,MAAO,WAEX,IACC8pC,OAAM,SAACxpC,GACNsuB,QAAQC,IAAI,QAASvuB,EAAMqpC,SAAS7kB,KAAKgG,SACzCmH,KAAM3xB,MAAMA,EAAMqpC,SAAS7kB,KAAKgG,QAAS,CACvC5I,SAAU,aACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,EACVpgB,MAAO,WAEX,IACC+pC,SAAQ,WACPxC,GAAmC,GACnCI,GAAa,GACTgB,EAAaiB,SACfjB,EAAaiB,QAAQzgB,uBAAuB,IAE9Cuf,EAAoB,GACtB,GACJ,EAqFMlwB,KAAM8uB,EACNjvB,YAAaixB,IAEf9oC,cAAC6kC,GAAW,CACVC,OACE,iEAEFE,YAAa,KACbC,cAAe,MACfC,kBAAmB6D,EACnB5D,oBAlEyC,WAC7CgC,GAAa,GAEOvB,GAAS,QAAS,6BAAyBhmB,EAAW,CACxEopB,QAASf,EAAiB3rB,KAAI,SAAC2sB,GAAI,OAAKA,EAAK7sB,GAAG,MAG/C8sB,MAAK,SAACC,GACL9xB,EACEnJ,GAAmB,CACjBoW,KAAM,CACJhG,OAAQkpB,EAAY4B,QAAQ9nC,MAC5BgmC,QAASA,EAAQ8B,QAAQ9nC,MACzBwmC,UAAWA,EAAUsB,QAAQ9nC,UAInCmwB,KAAM4X,QAAQ,yCAA0C,CACtD3nB,SAAU,aACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,EACVpgB,MAAO,WAEX,IACC8pC,OAAM,SAACxpC,GACNsuB,QAAQC,IAAI,QAASvuB,EAAMqpC,SAAS7kB,KAAKgG,SACzCmH,KAAM3xB,MAAMA,EAAMqpC,SAAS7kB,KAAKgG,QAAS,CACvC5I,SAAU,aACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,EACVpgB,MAAO,WAEX,IACC+pC,SAAQ,WACPtC,GAAsC,GACtCiB,EAAoB,IACpBf,GAAa,EACf,GACJ,EAqBMnvB,KAAMgvB,EACNnvB,YAAakxB,IAoBflnC,eAAA,OAAK1B,UAAWJ,EAAQwmC,aAAarmC,SAAA,CACnCF,cAACwpC,KAAS,CACRvW,GAAG,iBACHwW,MAAM,kCACNC,WAAS,EACTlkB,IAAKgiB,EACLzlC,SAAU,SAAC4nC,GAAG,OAAMnC,EAAY4B,QAAQ9nC,MAAQqoC,EAAI1nC,OAAOX,KAAK,IAElEO,eAAA,OAAK1B,UAAWJ,EAAQ0mC,WAAWvmC,SAAA,CACjCF,cAACwpC,KAAS,CACRvW,GAAG,kBACHwW,MAAM,eACNrvB,KAAK,OACLwvB,aAAclC,EACdmC,gBAAiB,CACfC,QAAQ,GAEV/nC,SAAU,SAAC4nC,GAAG,OAAKhC,EAAiBgC,EAAI1nC,OAAOX,MAAM,IAEvDtB,cAACwpC,KAAS,CACRvW,GAAG,gBACHwW,MAAM,eACNrvB,KAAK,OACLwvB,aAAchC,EACdiC,gBAAiB,CACfC,QAAQ,GAEV/nC,SAAU,SAAC4nC,GAAG,OAAK9B,EAAe8B,EAAI1nC,OAAOX,MAAM,OAIvDO,eAAA,OAAK1B,UAAWJ,EAAQ2mC,cAAcxmC,SAAA,CACpC2B,eAACib,KAAW,CAAC3c,UAAWJ,EAAQ2mC,cAAcxmC,SAAA,CAC5CF,cAAC+pC,KAAU,CAAC9W,GAAG,iBAAgB/yB,SAAC,YAChC2B,eAACmoC,KAAY,CACXhtB,QAAQ,iBACRiW,GAAG,kBACHzN,IAAK8hB,EACLnnC,UAAWJ,EAAQ4mC,oBACnB5kC,SAAU,SAAC4nC,GAAG,OAAMrC,EAAQ8B,QAAQ9nC,MAAQqoC,EAAI1nC,OAAOX,KAAK,EAAEpB,SAAA,CAE9DF,cAACwe,KAAQ,CAACld,MAAO,OAAOpB,SAAC,SACzBF,cAACwe,KAAQ,CAACld,MAAO,QAAQpB,SAAC,UAC1BF,cAACwe,KAAQ,CAACld,MAAO,YAAYpB,SAAC,iBAC9BF,cAACwe,KAAQ,CAACld,MAAO,YAAYpB,SAAC,kBAC9BF,cAACwe,KAAQ,CAACld,MAAO,mBAAmBpB,SAAC,2BAGzC2B,eAACib,KAAW,CAAC3c,UAAWJ,EAAQ2mC,cAAcxmC,SAAA,CAC5CF,cAAC+pC,KAAU,CAAC9W,GAAG,mBAAkB/yB,SAAC,eAClC2B,eAACmoC,KAAY,CACXhtB,QAAQ,mBACRiW,GAAG,oBACHzN,IAAKsiB,EACL3nC,UAAWJ,EAAQ4mC,oBACnB5kC,SAAU,SAAC4nC,GAAG,OAAM7B,EAAUsB,QAAQ9nC,MAAQqoC,EAAI1nC,OAAOX,KAAK,EAAEpB,SAAA,CAEhEF,cAACwe,KAAQ,CAACld,MAAO,MAAMpB,SAAC,cACxBF,cAACwe,KAAQ,CAACld,MAAO,OAAOpB,SAAC,wBAK/BF,cAAC6oB,KAAM,CACLvJ,QAAQ,YACR3f,MAAM,YACNyd,QAnWoB,SAACusB,GAC3Bvb,QAAQC,IAAI,cAAemZ,EAAY4B,QAAQ9nC,OAC/C8sB,QAAQC,IAAI,gBAAiBqZ,GAC7BtZ,QAAQC,IAAI,cAAeuZ,GAC3BvwB,EACEnJ,GAAmB,CACjBoW,KAAM,CACJhG,OAAQkpB,EAAY4B,QAAQ9nC,MAC5BomC,cAAeA,EACfE,YAAaA,EACbN,QAASA,EAAQ8B,QAAQ9nC,MACzBwmC,UAAWA,EAAUsB,QAAQ9nC,SAIrC,EAoVqCpB,SAC9B,WAGD2B,eAAA,OAAK1B,UAAWJ,EAAQ6mC,aAAa1mC,SAAA,CAAC,2BACXknC,EAAeprB,aAG3CqkB,EAAShd,YAAc6jB,GAAalnC,cAACkf,GAAM,CAACI,QAAQ,SAClD+gB,EAAS1c,WAAayjB,EAAeprB,OAAS,GAAMkrB,IACrDlnC,cAACulB,GAAY,CACXG,QAAS,CACP,OAEA,OACA,QAEA,SACA,oBACA,aACA,qBAEFC,SA3Zc,WAAgB,IAAf0F,EAAIC,UAAAtP,OAAA,QAAA4D,IAAA0L,UAAA,GAAAA,UAAA,GAAG,GAC5B,IAAKD,EAAKrP,OACR,MAAO,GAET,IAAIsI,EAAO,GA2BX,OA1BA+G,EAAK/O,KAAI,SAACyB,EAAMD,GACd,IAAI3B,EAAI,CACNmb,QACEt3B,cAAA,OACEuwB,IAAI,gBACJ3R,IAAKb,EAAKyW,gBAAkBjJ,GAC5BprB,UAAWJ,EAAQgrB,QAGvBvpB,KAAMuc,EAAKvc,KACXgzB,eAAgBzW,EAAKyW,eACrBpY,IAAK2B,EAAK3B,IACV0N,YAAWme,EAAiB9d,MAAK,SAAC8e,GAAI,OAAKA,EAAK7sB,MAAQ2B,EAAK3B,GAAG,IAIhE0D,MAAO/B,EAAK+B,MACZyoB,SAAUF,EAAWtqB,GAErBgT,UAAWD,KAAO/S,EAAKgT,WAAWC,OAAO,wBACzCiZ,iBAAiB,GAADnrB,OAAKf,EAAKksB,iBAAmB,MAAQ,MACrDC,aAAcpsB,EAAQ,EACtB+qB,aAAcF,EAAW5qB,IAE3BuG,EAAK7H,KAAKN,EACZ,IACOmI,CACT,CA2XkBkH,CAAc4b,GACxB/pB,KAAM,CACJ,eAEA,OACA,QAEA,YACA,WACA,eACA,oBAEFmJ,gBAAgB,EAChBzB,YAAY,EACZkB,UAAU,EAEVU,iBAAiB,EACjBC,sBA/S2B,SAACtlB,GAC9BA,EAAM6oB,MAAK,SAAC8e,GAAI,MAAqC,aAAhCA,EAAKV,SAAS4B,aAA4B,KACjE1Y,KAAM3xB,MAAM,wDAAyD,CACnE4hB,SAAU,aACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,EACVpgB,MAAO,YAET4uB,QAAQC,IAAI8Z,GAERA,EAAaiB,SACfjB,EAAaiB,QAAQzgB,uBAAuB,IAE9Cuf,EAAoB,MAEpBA,EAAoB5mC,GACpBylC,GAAmC,GAEvC,EA0RQtgB,oBAAoB,EACpBC,yBA9N8B,SAACplB,GACjCA,EAAM6oB,MAAK,SAAC8e,GAAI,MAAqC,aAAhCA,EAAKV,SAAS4B,aAA4B,KACjE1Y,KAAM3xB,MAAM,2DAA4D,CACtE4hB,SAAU,aACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,EACVpgB,MAAO,YAGL2oC,EAAaiB,SACfjB,EAAaiB,QAAQzgB,uBAAuB,IAE9Cuf,EAAoB,MAEpBA,EAAoB5mC,GACpB2lC,GAAsC,GAE1C,EA0MQzhB,IAAK2iB,IAGR9H,EAAS3U,SAAW1rB,cAACuqB,GAAK,CAACD,QAAS+V,EAAS/V,YAGpD,C,wBC1lBMhrB,GAAYC,aAAW,SAACC,GAAK,MAAM,CACvC6W,MAAO,CACLhW,QAAS,OACTiW,WAAY,SACZC,eAAgB,UAElBC,MAAKC,YAAA,CACHpW,QAAS,OACTE,cAAe,SACfmW,gBAAiBlX,EAAMmX,QAAQC,WAAWJ,MAC1CK,UAAWrX,EAAMsX,QAAQ,GACzB7V,OAAQ,OACR8V,MAAO,OACPrW,aAAc,EACdG,QAAS,QACRrB,EAAMwX,YAAYC,KAAK,MAAQ,CAC9BF,MAAO,QAGXkK,YAAa,CACX5gB,QAAS,OACTE,cAAe,MACfgW,eAAgB,gBAChBD,WAAY,SACZ9V,QAAShB,EAAMkZ,QAAQ,GACvBG,aAAc,8BAEhBqI,UAAW,CACTC,OAAQ,WAEVjB,QAAS,CACP1f,QAAS,IAGX0hB,OAAQ,CACN1hB,QAAShB,EAAMkZ,QAAQ,GACvByJ,UAAW,6BACX9hB,QAAS,OACTE,cAAe,MACfgW,eAAgB,WAChBD,WAAY,UAEd8L,OAAQ,CACNvhB,QAAS,OACTJ,OAAQ,OACRmW,WAAY,UACZjX,MAAO,OACPoX,MAAO,IACP9V,OAAQ,GACRkgB,OAAQ,WAEV+P,cAAe,CACb7wB,QAAS,OACTiW,WAAY,SACZ8a,WAAY,GAEdjE,qBAAsB,CACpB9sB,QAAS,OACTE,cAAe,MACf+V,WAAY,SACZvV,UAAW,IAEb0oC,MAAO,CACLnkB,YAAa,GAEhB,IAMc,SAAS8kB,GAAiBvqC,GAC5BA,EAAXmlC,YACanlC,EAAbolC,cACiBplC,EAAjBqlC,kBACmBrlC,EAAnBslC,oBAKE,IAJF7gB,EAAIzkB,EAAJykB,KACAtM,EAAInY,EAAJmY,KACAH,EAAWhY,EAAXgY,YACAwyB,EAAUxqC,EAAVwqC,WAEMtqC,EAAUT,KACV+X,EAAWC,cACX+L,EAAY7L,aAAY,SAACC,GAAK,OAAKA,EAAMC,OAAO2L,SAAS,IAC/DnI,EAAkCC,mBAChC2V,KAAO,IAAIwZ,MAAQtZ,OAAO,eAC3B5V,EAAAC,YAAAH,EAAA,GAFMqvB,EAASnvB,EAAA,GAAEovB,EAAYpvB,EAAA,GAG9BI,EAAgCL,oBAAS,GAAMM,EAAAJ,YAAAG,EAAA,GAAxCivB,EAAQhvB,EAAA,GAAEivB,EAAWjvB,EAAA,GAEtBkvB,GAAQ,IAAIL,MAAOM,cAAcC,MAAM,KAAK,GA0B5CnM,EAAc,WAClB8L,EAAa1Z,KAAO,IAAIwZ,MAAQtZ,OAAO,eACvC0Z,GAAY,GAEZ7yB,GACF,EAEA,OACE7X,cAAC+X,IAAK,CACJ,kBAAgB,yBAChB,mBAAiB,+BACjB5X,UAAWJ,EAAQsW,MACnB2B,KAAMA,EACNZ,QAASsnB,EAETzmB,sBAAoB,EACpBC,kBAAmBC,IACnBC,cAAe,CACbC,QAAS,KACTnY,SAEFF,cAACsY,IAAI,CAACC,GAAIP,EAAK9X,SACb2B,eAAA,OAAK1B,UAAWJ,EAAQyW,MAAMtW,SAAA,CAC5B2B,eAAA,OAAK1B,UAAWJ,EAAQkhB,YAAY/gB,SAAA,CAClCF,cAAA,QAAAE,SAAM,kBACNF,cAAC6jB,KAAS,CAACzG,QAASvF,EAAa1X,UAAWJ,EAAQmhB,eAEtDlhB,cAAA,OAAKG,UAAWJ,EAAQmgB,QAAQhgB,SAC9B2B,eAAA,OAAK1B,UAAWJ,EAAQmxB,cAAchxB,SAAA,CACpCF,cAAA,OAAKG,UAAWJ,EAAQ0pC,MAAMvpC,SAAC,gBAC/BF,cAACwpC,KAAS,CACRvW,GAAG,qBAEH7Y,KAAK,OACL5Y,KAAK,qBAELqoC,gBAAiB,CACfC,QAAQ,GAEVpV,WAAY,CACVoW,IAAKH,GAEP5oC,SA/CO,SAAC4nC,GACpBe,GAAY,GACZF,EAAa1Z,KAAO,IAAIwZ,KAAKX,EAAI1nC,OAAOX,QAAQ0vB,OAAO,cACzD,SAgDQhxB,cAAA,OAAKG,UAAWJ,EAAQmiB,OAAOhiB,SAC7BF,cAAC6oB,KAAM,CACL9N,UAAW0vB,EACXrtB,QApEe,WACzB,IAAM6Q,EAAU,CACd3J,KAAM,CACJ0kB,QAAS1kB,EAAKhI,KAAI,SAAC2sB,GAAI,OAAKA,EAAK7sB,GAAG,IACpC2uB,SAAUR,GAEZS,YAAaX,GAEfjc,QAAQC,IAAIJ,GAEZ5W,EAASlE,GAA4B8a,IACrCyQ,GACF,EAyDYpf,QAAQ,YACRnf,UAAWJ,EAAQqiB,OAAOliB,SAEzBmjB,EAAYrjB,cAACkf,GAAM,CAACtd,MAAO,CAAEjC,MAAO,UAAe,mBAOlE,CChLesrC,OAPf,SAAqB3pC,GACnB,IAAMkkB,EAAM+hB,mBAIZ,OAHAzvB,qBAAU,WACR0N,EAAI4jB,QAAU9nC,CAChB,GAAG,CAACA,IACGkkB,EAAI4jB,OACb,ECqBqB/C,EAAQ,KAE7B,SAAS6E,GAAUptB,GACjB,MAAO,CACLmV,GAAG,cAADnU,OAAgBhB,GAClB,gBAAgB,mBAADgB,OAAqBhB,GAExC,CAEA,IAAMxe,GAAYC,aAAW,SAACC,GAAK,MAAM,CACvCuf,KAAM,CACJ,sBAAuB,CACrBhI,MAAO,EACPH,WAAY,eAEdpW,QAAS,IAEX2qC,aAAc,CACZ50B,eAAgB,iBAElBkU,aAAc,CACZpqB,QAAS,OACTE,cAAe,MACfgW,eAAgB,gBAChBD,WAAY,SACZ3V,aAAc,IAEhB2lC,YAAa,CACX5mC,SAAU,QAEZ0rC,WAAY,CACV/qC,QAAS,OACTE,cAAe,SACfimC,IAAK,MACLlwB,WAAY,aACZ3V,aAAc,IAEhB0qC,UAAW,CACThrC,QAAS,OACTmmC,IAAK,OACLlwB,WAAY,aACZvV,UAAW,GACXJ,aAAc,IAEhB4lC,aAAc,CACZlmC,QAAS,OACTE,cAAe,SACfimC,IAAK,OACLlwB,WAAY,aACZ3V,aAAc,IAEhB8lC,WAAY,CACVpmC,QAAS,OACTmmC,IAAK,OACLlwB,WAAY,cAEdowB,cAAe,CACbrmC,QAAS,OACTE,cAAe,MACfimC,IAAK,OACLlwB,WAAY,aACZqC,SAAU,KAEZguB,oBAAqB,CACnBhuB,SAAU,KAEZnC,MAAO,CACLhW,QAAShB,EAAMkZ,QAAQ,GACvBgS,UAAW,SACX/qB,MAAOH,EAAMmX,QAAQgU,KAAKC,WAE5B0gB,YAAa,CACX9pB,WAAY,OACZ9hB,SAAU,UAEZknC,aAAc,CACZplB,WAAY,OACZ9hB,SAAU,QAEZ6rC,UAAW,CACT/pB,WAAY,OACZ9hB,SAAU,OACVqB,UAAW,IAEb+pB,iBAAkB,CAChBnrB,MAAO,UACP6hB,WAAY,MACZL,OAAQ,WAEV4J,MAAO,CACLhU,MAAO,GACP9V,OAAQ,GACRP,aAAc,IAEhBsqB,IAAK,CACHtJ,SAAU,QACVuJ,OAAQzrB,EAAMkZ,QAAQ,GACtBmJ,MAAOriB,EAAMkZ,QAAQ,GACrB9B,WAAY,UACZ,UAAW,CACTA,WAAY,YAGhB6yB,MAAO,CACL1oC,UAAW,IAEbyqC,QAAS,CACPrqB,OAAQ,WAEX,IAEc,SAASsqB,KACtB,IAAAvwB,EAAgDC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAxDwwB,EAAgBtwB,EAAA,GAAEuwB,EAAmBvwB,EAAA,GAC5CI,EAA4DL,oBAAS,GAAMM,EAAAJ,YAAAG,EAAA,GAApEowB,EAAsBnwB,EAAA,GAAEowB,EAAyBpwB,EAAA,GAElDqwB,EAAYvE,iBAAOzW,KAAO,IAAIwZ,MAAQtZ,OAAO,eAC7C+a,EAAUxE,iBAAOzW,KAAO,IAAIwZ,MAAQtZ,OAAO,eAC3Cgb,EAAiBzE,iBAAO,IACxB0E,EAAgB1E,iBAAO,IAC7B3rB,EAAoCT,mBAAS,IAAGU,EAAAR,YAAAO,EAAA,GAAzCswB,EAAUrwB,EAAA,GAAEswB,EAAatwB,EAAA,GAEhCwL,EAA4ClM,mBAAS,MAAKoM,EAAAlM,YAAAgM,EAAA,GAAnD+kB,EAAc7kB,EAAA,GAAE8kB,EAAiB9kB,EAAA,GACxCG,EAAkCvM,oBAAS,GAAMwM,EAAAtM,YAAAqM,EAAA,GAA1Cwf,EAASvf,EAAA,GAAEwf,EAAYxf,EAAA,GAC9BG,EAA4C3M,mBAAS,IAAG4M,EAAA1M,YAAAyM,EAAA,GAAjDsf,EAAcrf,EAAA,GAAEsf,EAAiBtf,EAAA,GAClCuf,EAAUC,iBAAO,IACjBC,EAAcD,iBAAO,IACrBO,EAAYP,iBAAO,OACzBQ,EAA0C5sB,mBACxC2V,OAAS2W,SAAS,EAAG,KAAKzW,OAAO,eAClCgX,EAAA3sB,YAAA0sB,EAAA,GAFML,EAAaM,EAAA,GAAEL,EAAgBK,EAAA,GAGtCsE,EAAsCnxB,mBAAS2V,OAASE,OAAO,eAAcub,EAAAlxB,YAAAixB,EAAA,GAAtE1E,EAAW2E,EAAA,GAAE1E,EAAc0E,EAAA,GAElCC,EAAgDrxB,mBAAS,IAAGsxB,EAAApxB,YAAAmxB,EAAA,GAArDvE,EAAgBwE,EAAA,GAAEvE,EAAmBuE,EAAA,GAC5CC,EAAoCvxB,mBAAS,MAAKwxB,EAAAtxB,YAAAqxB,EAAA,GAA3CrC,EAAUsC,EAAA,GAAEC,EAAaD,EAAA,GAEhCE,EAA0B1xB,mBAAS,GAAE2xB,GAAAzxB,YAAAwxB,EAAA,GAA9BvrC,GAAKwrC,GAAA,GAAEC,GAAQD,GAAA,GAKhB/sC,GAAUT,KACV+X,GAAWC,cAEX+oB,GAAW7oB,aAAY,SAACC,GAAK,OAAKA,EAAM0L,OAAOkd,QAAQ,IACvD2M,GAAUx1B,aAAY,SAACC,GAAK,OAAKA,EAAM0L,OAAO6pB,OAAO,IACrDzB,GAAY/zB,aAAY,SAACC,GAAK,OAAKA,EAAM0L,OAAOooB,SAAS,IACzD0B,GAAez1B,aAAY,SAACC,GAAK,OAAKA,EAAM0L,OAAO8pB,YAAY,IAE/DC,GAA8BjC,GAAYgC,GAAa5pB,WAC7DvL,qBAAU,WACRT,GAASvE,KACX,GAAG,IAEH2V,IAAMqK,SAAQ,WAAO,IAADsV,EACZ+E,EACJ9M,GAAS/b,MACT5D,MAAMC,QAAQ0f,GAAS/b,QACV,QADe8jB,EAC5B/H,GAAS/b,YAAI,IAAA8jB,OAAA,EAAbA,EAAe9pB,QACb,SAAC2qB,GAAI,MAA2B,SAAtBA,EAAKX,cAA6C,aAAlBW,EAAKV,QAAuB,KAEpExE,EACJoJ,GACAzsB,MAAMC,QAAQwsB,KACL,OAATA,QAAS,IAATA,OAAS,EAATA,EAAWnJ,MAAK,SAAC7nB,EAAGqb,GAClB,OAAO,CACT,KACF6P,EAAkBtD,EACpB,GAAG,CAAC1D,KAEJ5X,IAAMqK,SAAQ,WACZqZ,EAAca,GAAQ1oB,MAAQ,GAChC,GAAG,CAAC0oB,KAEJ,IAAMI,GAAmB,SAAC9rC,GACxB,OAAe,KAAVA,EACI,UACa,KAAVA,EACH,WAEA,WAEX,EACM+rC,GAAwB,SAAC7E,GAC7B,OAAOA,EAAOC,OAAO,GAAGC,cAAgBF,EAAOlhB,MAAM,EACvD,EA6DMgmB,GAA2B,WAC/B3B,GAAoB,EACtB,EAyDA,OANAljB,IAAMqK,SAAQ,WACRoa,KAAgCD,GAAa5pB,WAC/C6kB,EAAoB,GAExB,GAAG,CAAC+E,GAAcC,KAGhBrrC,eAAA,OAAK1B,UAAWJ,GAAQgf,KAAK7e,SAAA,CAC3BF,cAAC6kC,GAAW,CACVC,OAAQ,+CACRE,YAAa,KACbC,cAAe,MACfC,kBAAmBoI,GACnBnI,oBA9D4B,WAChCgC,GAAa,GACbvB,GAAS,SAAS,UAAD9mB,OAAYstB,IAAkBlD,MAAK,WAClD7xB,GAASvE,MACT64B,GAAoB,GACpBla,KAAM4X,QAAQ,8BAA+B,CAC3C3nB,SAAU,YACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,GAEd,GACF,EAgDM5H,KAAM0zB,EACN7zB,YAAay1B,KAEfttC,cAACoqC,GAAiB,CAChBpyB,KAAM4zB,EACN/zB,YAvBiC,WACrCg0B,GAA0B,EAC5B,EAsBMvnB,KAAM2jB,GAAoB,GAC1BoC,WAAYA,GAAc,OAE5BrqC,cAAA,OAAKG,UAAWJ,GAAQ0qB,aAAavqB,SACnCF,cAAA,OAAKG,UAAWJ,GAAQurC,YAAYprC,SAAC,aAEvCF,cAAC67B,KAAM,CAACna,SAAS,SAAQxhB,SACvB2B,eAAC0rC,KAAI,CACHjsC,MAAOA,GACPS,SA/LgB,SAAC+hB,EAAO8E,GAC9BmkB,GAASnkB,EACX,EA8LQzoB,UAAWJ,GAAQorC,aAAajrC,SAAA,CAEhCF,cAACwtC,KAAG1rC,YAAA,CAAC2nC,MAAM,eAAkByB,GAAU,KAEvClrC,cAACwtC,KAAG1rC,YAAA,CAAC2nC,MAAM,iBAAoByB,GAAU,KACzClrC,cAACwtC,KAAG1rC,YAAA,CAAC2nC,MAAM,iBAAoByB,GAAU,UAGlC,IAAV5pC,IACCO,eAAA5B,WAAA,CAAAC,SAAA,CACEF,cAAA,MAAAE,SAAI,gBACH8sC,GAAQ3pB,YAAc6jB,GAAalnC,cAACkf,GAAM,CAACI,QAAQ,SACjD0tB,GAAQrpB,WAAauoB,EAAWlwB,OAAS,GAAMkrB,IAChDlnC,cAACulB,GAAY,CACXG,QAAS,CACP,OACA,OACA,aACA,WACA,WACA,YAEFC,SApKgB,WAAgB,IAAf0F,EAAIC,UAAAtP,OAAA,QAAA4D,IAAA0L,UAAA,GAAAA,UAAA,GAAG,GAClC,IAAKD,EAAKrP,OACR,MAAO,GAET,IAAIsI,EAAO,GAaX,OAZA+G,EAAK/O,KAAI,SAACyB,EAAMD,GACd,IAAI3B,EAAI,CACNC,IAAK2B,EAAK3B,IACVqxB,KAAM1vB,EAAK0vB,KACXC,UAAW5c,KAAO/S,EAAK4vB,YAAY3c,OAAO,cAC1C4c,QAAS9c,KAAO/S,EAAKgtB,UAAU/Z,OAAO,cACtC6c,SAAU9vB,EAAK8vB,SACfnV,SAAU0U,GAAiBrvB,EAAK2a,UAChCwR,aAAcpsB,EAAQ,GAExBwG,EAAK7H,KAAKN,EACZ,IACOmI,CACT,CAkJsBwpB,CAAoB5B,GAC9B7uB,KAAM,CACJ,eACA,OACA,YACA,UACA,WACA,YAEF0H,YAAY,EACZkB,UAAU,EACV8nB,YAAY,EACZjoB,aA1HS,SAAC9jB,GACpBqqC,EAAkBrqC,GAClB2pC,GAAoB,EACtB,IA0HSqB,GAAQthB,SAAW1rB,cAACuqB,GAAK,CAACD,QAAS0iB,GAAQ1iB,aAGrC,IAAVhpB,IACCO,eAAA,OAAK1B,UAAWJ,GAAQiuC,UAAU9tC,SAAA,CAChCF,cAAA,MAAAE,SAAI,kBACJ2B,eAAA,OAAK1B,UAAWJ,GAAQqrC,WAAWlrC,SAAA,CACjCF,cAAA,OAAKG,UAAWJ,GAAQ0pC,MAAMvpC,SAAC,aAC/BF,cAAA,SACE+B,SAAU,SAAC4nC,GAAG,OACXqC,EAAe5C,QAAQ9nC,MAAQqoC,EAAI1nC,OAAOX,OAAS,IAAI,EAE1D8Y,KAAK,SACL6Y,GAAG,WACHzN,IAAKwmB,EACLxqC,KAAK,iBACLD,YAAY,WACZqoC,aAAa,IACbqE,UAAQ,IAGVjuC,cAAA,OAAKG,UAAWJ,GAAQ0pC,MAAMvpC,SAAC,aAC/B2B,eAACmoC,KAAY,CACXhtB,QAAQ,gBACRiW,GAAG,aACHzN,IAAKymB,EACLrC,aAAc,IACdzpC,UAAWJ,GAAQ4mC,oBACnB5kC,SAAU,SAAC4nC,GACTsC,EAAc7C,QAAQ9nC,MAAQqoC,EAAI1nC,OAAOX,OAAS,IACpD,EAAEpB,SAAA,CAEFF,cAACwe,KAAQ,CAACld,MAAO,IAAIpB,SAAC,YACtBF,cAACwe,KAAQ,CAACld,MAAO,IAAIpB,SAAC,aACtBF,cAACwe,KAAQ,CAACld,MAAO,KAAKpB,SAAC,iBAEzB2B,eAAA,OAAK1B,UAAWJ,GAAQsrC,UAAUnrC,SAAA,CAChCF,cAACwpC,KAAS,CACRvW,GAAG,cACHwW,MAAM,aACNrvB,KAAK,OACLoL,IAAKsmB,EAELjC,gBAAiB,CACfC,QAAQ,GAEV/nC,SAAU,SAAC4nC,GAAG,OACXmC,EAAU1C,QAAQ9nC,MAAQqoC,EAAI1nC,OAAOX,OAAS,IAAI,IAIvDtB,cAACwpC,KAAS,CACRvW,GAAG,YACHwW,MAAM,aACNrvB,KAAK,OACLoL,IAAKumB,EAELlC,gBAAiB,CACfC,QAAQ,GAEV/nC,SAAU,SAAC4nC,GAAG,OACXoC,EAAQ3C,QAAQ9nC,MAAQqoC,EAAI1nC,OAAOX,OAAS,IAAI,OAKvDtB,cAAC6oB,KAAM,CACLvJ,QAAQ,YACR3f,MAAM,YACNyd,QA5Mc,SAACusB,GACzB,IAAM1b,EAAU,CACd4f,UAAW7B,EAAe5C,QAAQ9nC,MAClCqsC,WAAY7B,EAAU1C,QAAQ9nC,MAC9BypC,SAAUgB,EAAQ3C,QAAQ9nC,MAC1Bo3B,SAAUuT,EAAc7C,QAAQ9nC,OAAS,GAE3C+V,GAAS1E,GAAoBsb,GAC/B,EAoMuC/tB,SAC5B,SAGD2B,eAAA,OAAK1B,UAAWJ,GAAQwrC,UAAUrrC,SAAA,CAAC,eACpBqrC,GAAUjnB,KAAKmpB,cAMzB,IAAVnsC,IACCO,eAAA5B,WAAA,CAAAC,SAAA,CACEF,cAAA,MAAAE,SAAI,kBACJ2B,eAAA,OAAK1B,UAAWJ,GAAQwmC,aAAarmC,SAAA,CACnCF,cAACwpC,KAAS,CACRvW,GAAG,iBACHwW,MAAM,kCACNC,WAAS,EACTlkB,IAAKgiB,EACLzlC,SAAU,SAAC4nC,GAAG,OAAMnC,EAAY4B,QAAQ9nC,MAAQqoC,EAAI1nC,OAAOX,KAAK,IAElEO,eAAA,OAAK1B,UAAWJ,GAAQ0mC,WAAWvmC,SAAA,CACjCF,cAACwpC,KAAS,CACRvW,GAAG,kBACHwW,MAAM,eACNrvB,KAAK,OACLwvB,aAAclC,EACdmC,gBAAiB,CACfC,QAAQ,GAEV/nC,SAAU,SAAC4nC,GAAG,OAAKhC,EAAiBgC,EAAI1nC,OAAOX,MAAM,IAEvDtB,cAACwpC,KAAS,CACRvW,GAAG,gBACHwW,MAAM,eACNrvB,KAAK,OAELwvB,aAAchC,EACdiC,gBAAiB,CACfC,QAAQ,GAEV/nC,SAAU,SAAC4nC,GAAG,OAAK9B,EAAe8B,EAAI1nC,OAAOX,MAAM,OAIvDO,eAAA,OAAK1B,UAAWJ,GAAQ2mC,cAAcxmC,SAAA,CACpC2B,eAACib,KAAW,CAAC3c,UAAWJ,GAAQ2mC,cAAcxmC,SAAA,CAC5CF,cAAC+pC,KAAU,CAAC9W,GAAG,iBAAgB/yB,SAAC,YAChC2B,eAACmoC,KAAY,CACXhtB,QAAQ,iBACRiW,GAAG,kBACHzN,IAAK8hB,EACLnnC,UAAWJ,GAAQ4mC,oBACnB5kC,SAAU,SAAC4nC,GAAG,OAAMrC,EAAQ8B,QAAQ9nC,MAAQqoC,EAAI1nC,OAAOX,KAAK,EAAEpB,SAAA,CAE9DF,cAACwe,KAAQ,CAACld,MAAO,OAAOpB,SAAC,SACzBF,cAACwe,KAAQ,CAACld,MAAO,QAAQpB,SAAC,UAC1BF,cAACwe,KAAQ,CAACld,MAAO,YAAYpB,SAAC,iBAC9BF,cAACwe,KAAQ,CAACld,MAAO,YAAYpB,SAAC,kBAC9BF,cAACwe,KAAQ,CAACld,MAAO,mBAAmBpB,SAAC,2BAKzC2B,eAACib,KAAW,CAAC3c,UAAWJ,GAAQ2mC,cAAcxmC,SAAA,CAC5CF,cAAC+pC,KAAU,CAAC9W,GAAG,mBAAkB/yB,SAAC,eAClC2B,eAACmoC,KAAY,CACXhtB,QAAQ,mBACRiW,GAAG,oBACHzN,IAAKsiB,EACL3nC,UAAWJ,GAAQ4mC,oBACnB5kC,SAAU,SAAC4nC,GAAG,OACX7B,EAAUsB,QAAQ9nC,MAAQqoC,EAAI1nC,OAAOX,KAAK,EAC5CpB,SAAA,CAEDF,cAACwe,KAAQ,CAACld,MAAO,MAAMpB,SAAC,cACxBF,cAACwe,KAAQ,CAACld,MAAO,OAAOpB,SAAC,wBAK/BF,cAAC6oB,KAAM,CACLvJ,QAAQ,YACR3f,MAAM,YACNyd,QA7PgB,SAACusB,GAC3Bvb,QAAQC,IAAI,cAAemZ,EAAY4B,QAAQ9nC,OAC/C8sB,QAAQC,IAAI,gBAAiBqZ,GAC7BtZ,QAAQC,IAAI,cAAeuZ,GAC3BvwB,GACEnJ,GAAmB,CACjBoW,KAAM,CACJhG,OAAQkpB,EAAY4B,QAAQ9nC,MAC5BomC,cAAeA,EACfE,YAAaA,EACbN,QAASA,EAAQ8B,QAAQ9nC,MACzBwmC,UAAWA,EAAUsB,QAAQ9nC,SAIrC,EA8OyCpB,SAC9B,WAGD2B,eAAA,OAAK1B,UAAWJ,GAAQ6mC,aAAa1mC,SAAA,CAAC,2BACXknC,EAAeprB,aAG3CqkB,GAAShd,YAAc6jB,GAAalnC,cAACkf,GAAM,CAACI,QAAQ,SAClD+gB,GAAS1c,WAAayjB,EAAeprB,OAAS,GAAMkrB,IACrDlnC,cAACulB,GAAY,CACXG,QAAS,CACP,OACA,OACA,QACA,oBACA,UAGFC,SA7Uc,WAAgB,IAAf0F,EAAIC,UAAAtP,OAAA,QAAA4D,IAAA0L,UAAA,GAAAA,UAAA,GAAG,GAChC,IAAKD,EAAKrP,OACR,MAAO,GAET,IAAIsI,EAAO,GAkBX,OAjBA+G,EAAK/O,KAAI,SAACyB,EAAMD,GACd,IAAI3B,EAAI,CACNC,IAAK2B,EAAK3B,IACV5a,KAAMuc,EAAKvc,KACXse,MAAO/B,EAAK+B,MACZyoB,SAAUxqB,EAAKwqB,SACX8E,GAAsBtvB,EAAKwqB,UAC3B8E,GAAsBtvB,EAAKuqB,cAC/B4B,aAAcpsB,EAAQ,EACtBiT,UAAWD,KAAO/S,EAAKgT,WAAWC,OAAO,wBAEzClH,YAAWme,EAAiB9d,MAAK,SAAC8e,GAAI,OAAKA,EAAK7sB,MAAQ2B,EAAK3B,GAAG,KAIlEkI,EAAK7H,KAAKN,EACZ,IACOmI,CACT,CAsTsB4pB,CAAkB9G,GAC5B/pB,KAAM,CACJ,eACA,OACA,QACA,WACA,aAGF0H,YAAY,EACZkB,UAAU,EACVO,gBAAgB,EAChBK,kBAAkB,EAClBC,uBA7QwB,SAACxlB,GACnC4mC,EAAoB5mC,GACpBsrC,EAAc,CACZtuB,OAAQkpB,EAAY4B,QAAQ9nC,MAC5BomC,cAAeA,EACfE,YAAaA,EACbN,QAASA,EAAQ8B,QAAQ9nC,MACzBwmC,UAAWA,EAAUsB,QAAQ9nC,QAE/BuqC,GAA0B,EAC5B,IAsQSxL,GAAS3U,SAAW1rB,cAACuqB,GAAK,CAACD,QAAS+V,GAAS/V,aAIjD+V,GAAShd,YAAc6jB,GAAalnC,cAACkf,GAAM,CAACI,QAAQ,QACpD+gB,GAAS3U,SAAW1rB,cAACuqB,GAAK,CAACD,QAAS+V,GAAS/V,YAGpD,C,oBCrkBe,SAAS6jB,KAEpB,IAAM92B,EAAWC,cACX0gB,EAAUoW,eACVhT,EAAY5jB,aAAY,SAAAC,GAAK,OAAIA,EAAM4jB,KAAKD,SAAS,IAC3DlgB,EAA0BC,mBAAS,CAC/B2E,MAAO,GACPC,SAAU,GACVL,OAAQ,CAAC,IACVtE,EAAAC,YAAAH,EAAA,GAJIzD,EAAK2D,EAAA,GAAEmI,EAAQnI,EAAA,GAkBhB/Z,EAAe,SAACC,EAAOE,GACzB,IAAI8iB,EAAIxiB,YAAA,GAAQ2V,GAChB6M,EAAK9iB,GAAQF,EACbiiB,EAASe,EACb,EAOA,OACItkB,cAAA,OAAKG,UAAU,qBAAoBD,SAE/B2B,eAAA,OAAKoxB,GAAG,cAAa/yB,SAAA,CACjBF,cAAA,MAAIG,UAAU,SAAQD,SAAC,cAGvBF,cAAA,OAAKG,UAAU,eAAeyB,MAAO,CAACb,UAAW,GAAIJ,aAAc,IAAIT,SACnEF,cAAA,OAAK4e,IAAK4a,EAASvG,GAAG,OAAO1C,IAAI,gBAGrC1uB,eAAA,QAAMwsC,iBAAiB,EAAOC,SAlCrB,SAACtsC,GAClBA,EAAEusC,iBACF,IAAM7uB,EAASD,GAAUhI,GAEzB,GADA8L,EAAQzhB,wBAAC,CAAC,EAAI2V,GAAK,IAAEiI,YAClB8D,OAAOnG,KAAKqC,GAAQ1D,OACnBoS,QAAQC,IAAI,6BACX,CACD,IAAMJ,EAAU,CAAEnO,MAAOrI,EAAMqI,MAAOC,SAAUtI,EAAMsI,UACtD1I,EAAS1G,GAAasd,GAC1B,CACJ,EAwBiE/tB,SAAA,CACjDF,cAAA,SAAO+B,SAAU,SAACC,GAAC,OAAKX,EAAaW,EAAEC,OAAOX,MAAO,QAAQ,EAAE8Y,KAAK,OAAO6Y,GAAG,QAAQ9yB,UAAU,gBAAgBqB,KAAK,QAAQD,YAAY,mBAAmB0sC,UAAQ,IACpKjuC,cAAA,SAAO+B,SAAU,SAACC,GAAC,OAAKX,EAAaW,EAAEC,OAAOX,MAAO,WAAW,EAAE8Y,KAAK,WAAW6Y,GAAG,WAAW9yB,UAAU,eAAeqB,KAAK,QAAQD,YAAY,WAAW0sC,UAAQ,IACrKjuC,cAAA,OAAK4B,MAAO,CAAEjC,MAAO,MAAO+qB,UAAW,OAAQ6E,WAAY,OAAQ7vB,SAAU,GAAIiB,aAAc,IAAKT,SAAGk7B,EAAU9Q,UAChH8Q,EAAU/X,WAAarjB,cAAA,OAAKG,UAAU,iBAAgBD,SAACF,cAACkf,GAAM,MAC/Dlf,cAACk8B,KAAI,CAACsS,KAAK,IAAI5sC,MAAO,CAACvB,QAAS,QAASM,aAAc,IAAKyc,QArB9C,SAAC0G,GAC3BA,EAAMyqB,iBACNvW,EAAQvb,KAAK,kBACjB,EAkB2Gvc,SAAC,oBAG5FF,cAAA,SAAOoa,KAAK,SAASja,UAAU,gBAAgBmB,MAAM,cAGzDtB,cAAA,OAAKizB,GAAG,mBAOxB,C,cC5DA3E,KAAMC,oBAAoBC,UAAS,2CAAA1P,OAA8CwP,KAAMG,QAAO,kBAE9F,IAAMnvB,GAAYC,aAAW,SAACC,GAAK,MAAM,CACvC0yB,UAAW,CACTnb,MAAO,OACP9V,OAAQ,QAGVgxB,SAAU,CACRlb,MAAO,MACPsoB,YAAa,GACbja,aAAc,GACdgM,WAAY,GACZhE,cAAe,GACf9H,YAAa,GACb3kB,aAAc,IAGhBqtC,UAAW,CAET3tC,QAAS,OAETE,cAAe,MACfwY,SAAU,QAGZ01B,YAAa,CACX1tC,UAAW,GACXJ,aAAc,IAEjB,IAEc,SAAS+tC,KACtB,IAAM3uC,EAAUT,KACV+X,EAAWC,cACXq3B,EAAoBn3B,aACxB,SAACC,GAAK,OAAKA,EAAM4jB,KAAKsT,iBAAiB,IAGzC72B,qBAAU,WACRwoB,aAAAC,eAAAC,MAAC,SAAAC,IAAA,OAAAF,eAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACCxpB,EAASjG,MAAuB,wBAAAuvB,EAAAI,OAAA,GAAAN,EAAA,IADlCH,EAGF,GAAG,IAEyBxN,mBAAQ,WAMlC,OALI6b,EAAkBhrB,UAKf,IACT,GAAG,CAACgrB,IAEJ,OACE9sC,eAAC+sC,KAAS,CAACzuC,UAAWJ,EAAQmyB,UAAUhyB,SAAA,CACrCyuC,EAAkBtrB,WAAarjB,cAACkf,GAAM,CAACI,QAAQ,QAC/CqvB,EAAkBhrB,WACjB9hB,eAAA,OAAA3B,SAAA,CACEF,cAAA,MAAAE,SAAI,cACJ2B,eAAA,OAAK1B,UAAWJ,EAAQiuC,UAAU9tC,SAAA,CAChCF,cAACwpB,KAAK,CAACrpB,UAAWJ,EAAQkyB,SAAS/xB,SACjC2B,eAAA,OAAK1B,UAAWJ,EAAQ0uC,YAAYvuC,SAAA,CAClCF,cAAA,MAAAE,SAAI,gBACJ2B,eAAA,KAAA3B,SAAA,CAAG,IAAEyuC,EAAkBrqB,KAAKuqB,cAIhC7uC,cAACwpB,KAAK,CAACrpB,UAAWJ,EAAQkyB,SAAS/xB,SACjC2B,eAAA,OAAK1B,UAAWJ,EAAQ0uC,YAAYvuC,SAAA,CAClCF,cAAA,MAAAE,SAAI,iBACJ2B,eAAA,KAAA3B,SAAA,CAAG,IAAEyuC,EAAkBrqB,KAAKwqB,aAGhC9uC,cAACwpB,KAAK,CAACrpB,UAAWJ,EAAQkyB,SAAS/xB,SACjC2B,eAAA,OAAK1B,UAAWJ,EAAQ0uC,YAAYvuC,SAAA,CAClCF,cAAA,MAAAE,SAAI,gBAAgB,IAAC2B,eAAA,KAAA3B,SAAA,CAAG,IAAEyuC,EAAkBrqB,KAAKsd,aAGrD5hC,cAACwpB,KAAK,CAACrpB,UAAWJ,EAAQkyB,SAAS/xB,SACjC2B,eAAA,OAAK1B,UAAWJ,EAAQ0uC,YAAYvuC,SAAA,CAClCF,cAAA,MAAAE,SAAI,oBAAqB,IACzBF,cAAA,KAAAE,SAAIyuC,EAAkBrqB,KAAKyqB,yBAG/B/uC,cAACwpB,KAAK,CAACrpB,UAAWJ,EAAQkyB,SAAS/xB,SACjC2B,eAAA,OAAK1B,UAAWJ,EAAQ0uC,YAAYvuC,SAAA,CAClCF,cAAA,MAAAE,SAAI,gBAAiB,IACrBF,cAAA,KAAAE,SAAIyuC,EAAkBrqB,KAAK0qB,oBAG/BhvC,cAACwpB,KAAK,CAACrpB,UAAWJ,EAAQkyB,SAAS/xB,SACjC2B,eAAA,OAAK1B,UAAWJ,EAAQ0uC,YAAYvuC,SAAA,CAClCF,cAAA,MAAAE,SAAI,iBAAkB,IACtBF,cAAA,KAAAE,SAAIyuC,EAAkBrqB,KAAK2qB,qBAG/BjvC,cAACwpB,KAAK,CAACrpB,UAAWJ,EAAQkyB,SAAS/xB,SACjC2B,eAAA,OAAK1B,UAAWJ,EAAQ0uC,YAAYvuC,SAAA,CAClCF,cAAA,MAAAE,SAAI,aAAa,IAACF,cAAA,KAAAE,SAAIyuC,EAAkBrqB,KAAK4qB,yBAQ7D,C,WChHM1jB,GAAgB,WAAgB,IAAfH,EAAIC,UAAAtP,OAAA,QAAA4D,IAAA0L,UAAA,GAAAA,UAAA,GAAG,GAC5B,IAAKD,EAAKrP,OACR,MAAO,GAET,IAAIsI,EAAO,GAUX,OATA+G,EAAK/O,KAAI,SAACyB,EAAMD,GACd,IAAI3B,EAAI,CACN6D,YAAajC,EAAKgnB,KAClB7jC,MAAO6c,EAAK7c,MACZgpC,aAAcpsB,EAAQ,EACtB1B,IAAK2B,EAAK3B,KAEZkI,EAAK7H,KAAKN,EACZ,IACOmI,CACT,EACe,SAAS6qB,KACtB,IAAAj0B,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhClD,EAAIoD,EAAA,GAAE+f,EAAO/f,EAAA,GACpBI,EAAwCL,mBAAS,MAAKM,EAAAJ,YAAAG,EAAA,GAA/C4zB,EAAY3zB,EAAA,GAAE4zB,EAAe5zB,EAAA,GACpCG,EAAkCT,oBAAS,GAAMU,EAAAR,YAAAO,EAAA,GAA1CsrB,EAASrrB,EAAA,GAAEsrB,EAAYtrB,EAAA,GACxBxE,EAAWC,cACXg4B,EAAmB93B,aAAY,SAACC,GAAK,OAAKA,EAAM4jB,KAAKiU,gBAAgB,IAO3E,GALAx3B,qBAAU,WACRT,EAAS3F,KACX,GAAG,IAEH0c,QAAQC,IAAIihB,EAAkB,oCAC1BA,EAAiBjsB,YAAc6jB,EAAW,OAAOlnC,cAACkf,GAAM,CAACI,QAAQ,QAErE,IAKM4lB,EAAoB,WACxB/J,GAAQ,EACV,EAqBA,OACEt5B,eAAA,OAAA3B,SAAA,CACEF,cAAC6kC,GAAW,CACVC,OAAQ,qDACRE,YAAa,KACbC,cAAe,MACfC,kBAAmBA,EACnBC,oBA1BsB,WAC1BgC,GAAa,GACbvB,GAAS,SAAS,mCAAD9mB,OAAqCswB,IAAgBlG,MACpE,WACE7xB,EAAS3F,MACTypB,GAAQ,GACR1J,KAAM4X,QAAQ,oCAAqC,CACjD3nB,SAAU,YACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,GAEd,GAEJ,EAUM5H,KAAMA,EACNH,YAAaqtB,IAEfllC,cAAA,MAAAE,SAAI,sBACJF,cAACulB,GAAY,CACXG,QAAS,CAAC,OAAQ,QAAS,eAC3BC,SAAU6F,GAAc8jB,EAAiBhrB,KAAKA,MAC9CjH,KAAM,CAAC,eAAgB,QAAS,eAChC0H,YAAY,EACZkB,UAAU,EACVH,aA9Ce,SAAC9jB,GACpBqtC,EAAgBrtC,GAChBm5B,GAAQ,EACV,MA+CF,CC3DA,SAAS+P,GAAUptB,GACjB,MAAO,CACLmV,GAAG,cAADnU,OAAgBhB,GAClB,gBAAgB,mBAADgB,OAAqBhB,GAExC,CAPAwQ,KAAMC,oBAAoBC,UAAS,2CAAA1P,OAA8CwP,KAAMG,QAAO,kBAQ9F,IAAMnvB,GAAYC,aAAW,SAACC,GAAK,MAAM,CACvC0yB,UAAW,CACTnb,MAAO,OACP9V,OAAQ,QAKVkqC,aAAc,CACZ50B,eAAgB,iBAElB0b,SAAU,CACRlb,MAAO,OACPsoB,YAAa,GACbja,aAAc,GACdgM,WAAY,GACZhE,cAAe,IAGjB4gB,UAAW,CACTj3B,MAAO,OAGT03B,YAAa,CACX1tC,UAAW,GACXJ,aAAc,IAGhB4uC,QAAS,CACPx4B,MAAO,IACP9V,OAAQ,IACRN,aAAc,GACdI,UAAW,IAGbqhB,OAAQ,CACNvhB,QAAS,OACTJ,OAAQ,OACRmW,WAAY,UACZjX,MAAO,OACPoX,MAAO,IACP9V,OAAQ,GACRkgB,OAAQ,UACRpgB,UAAW,IAGbyuC,WAAY,CACVzuC,UAAW,IAEd,IAEc,SAAS0uC,KACtB,IAAM1vC,EAAUT,KACV+X,EAAWC,cACXo4B,EAAmBl4B,aAAY,SAACC,GAAK,OAAKA,EAAM4jB,KAAKqU,gBAAgB,IACrErP,EAAW7oB,aAAY,SAACC,GAAK,OAAKA,EAAM0L,OAAOkd,QAAQ,IAC7DnlB,EAA0BC,mBAAS,CACjCja,MAAO,GACP6jC,KAAM,GACNzgB,KAAM,CAAC,EACPhE,KAAM,KACNqvB,QAAS,GACTC,OAAQ,KACRx0B,EAAAC,YAAAH,EAAA,GAPKzD,EAAK2D,EAAA,GAAEmI,EAAQnI,EAAA,GAQtB6f,EAA0BxS,IAAMtN,SAAS,GAAE+f,EAAA7f,YAAA4f,EAAA,GAApC35B,EAAK45B,EAAA,GAAE6R,EAAQ7R,EAAA,GAItB9M,QAAQC,IAAI5W,EAAO,YAEnBK,qBAAU,WACRwoB,aAAAC,eAAAC,MAAC,SAAAC,IAAA,OAAAF,eAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACCxpB,EAASjG,MACJivB,EAASS,WACZzpB,EAASnJ,MACV,wBAAAyyB,EAAAI,OAAA,GAAAN,EAAA,IAJHH,EAMF,GAAG,IAEH,IA0BMj/B,EAAe,SAACC,EAAOE,GAC3B,IAAI8iB,EAAIxiB,YAAA,GAAQ2V,GAChB6M,EAAK9iB,GAAQF,EACbiiB,EAASe,EACX,EAcA,OADA8J,QAAQC,IAAI/sB,EAAO,cAEjBO,eAAC+sC,KAAS,CAACzuC,UAAWJ,EAAQmyB,UAAUhyB,SAAA,CACtCF,cAAC67B,KAAM,CAACna,SAAS,SAAQxhB,SACvB2B,eAAC0rC,KAAI,CACHjsC,MAAOA,EACPS,SA/DgB,SAAC+hB,EAAO8E,GAC9BmkB,EAASnkB,EACX,EA8DQ,aAAW,sBACXzoB,UAAWJ,EAAQorC,aAAajrC,SAAA,CAEhCF,cAACwtC,KAAG1rC,YAAA,CAAC2nC,MAAM,qBAAwByB,GAAU,KAC7ClrC,cAACwtC,KAAG1rC,YAAA,CAAC2nC,MAAM,qBAAwByB,GAAU,UAGtC,IAAV5pC,GACCO,eAAA,OAAK1B,UAAWJ,EAAQiuC,UAAU9tC,SAAA,CAChCF,cAAA,MAAAE,SAAI,sBACJ2B,eAAC2nB,KAAK,CAACrpB,UAAWJ,EAAQkyB,SAAS/xB,SAAA,CACjCF,cAACmB,EAAe,CACdI,YAAY,QACZC,KAAK,QACLH,aAAcA,IAEhBrB,cAACmB,EAAe,CACdI,YAAY,cACZC,KAAK,OACLH,aAAcA,IAGfoW,EAAMk4B,SACL3vC,cAAA,OAAAE,SACEF,cAAA,OAAKG,UAAWJ,EAAQwvC,QAAS3wB,IAAKnH,EAAMk4B,YAGhD3vC,cAAA,SACE+B,SAAU,SAACC,GAAC,OA9CP,SAAC8hB,EAAOtiB,GACvB,IAAI8e,EAAOwD,EAAM7hB,OAAO8hB,MAAM,GAC1BC,EAAS,IAAIC,WACjBD,EAAOE,OAAS,SAAUJ,GAAQ,IAAD4J,EAC/BU,QAAQC,IAAI/N,EAAM,uBAClBiD,EAAQzhB,wBAAC,CAAC,EAAI2V,GAAK,IAAAiW,EAAA,GAAAjX,YAAAiX,EAAGlsB,EAAO8e,GAAI7J,YAAAiX,EAAC,UAAU5J,EAAM7hB,OAAOkiB,QAAMuJ,IACjE,EAEApN,GAAQ0D,EAAOI,cAAc9D,EAC/B,CAqC6Bve,CAASC,EAAG,OAAO,EACpC4rB,OAAO,UACPztB,UAAWJ,EAAQsiB,MACnBjI,KAAK,OACLyT,SAAO,IAET7tB,cAAA,OAAKG,UAAWJ,EAAQyvC,WAAWtvC,SAAC,gBACpCF,cAAC2Z,GAAc,CACbnY,KAAK,OACLuY,SAAU,SAACzY,GAAK,OAAKD,EAAaC,EAAO,SAAS,EAClD4Y,QAAS,OACTO,UAAW,MACXE,eAAe,EAEfV,UAAU,EACVgB,gCAAgC,EAChCpB,KAAMwmB,EAAS/b,OAIjBtkB,cAAA,UACE+a,SAAU20B,EAAiBrsB,UAC3BjG,QA5FS,YARJ,SAACyyB,GAGhB,IAFA,IACIC,EAAU,GACPD,EAAM7zB,QACX8zB,EAAQrzB,KAAKozB,EAAMtxB,OAAO,EAHV,MAKlB,OAAOuxB,CACT,EAGeC,CADCrvB,MAAMC,QAAQlJ,EAAMm4B,QAAUn4B,EAAMm4B,OAAS,CAACn4B,EAAMm4B,SAE7DI,SAAQ,SAACC,EAAWnyB,GACvB,IAAMqQ,EAAW,IAAI3J,SACrB2J,EAAS1J,OAAO,QAAShN,EAAMvW,OAC/BitB,EAAS1J,OAAO,OAAQhN,EAAMstB,MAC9B5W,EAAS1J,OAAO,OAAQsd,KAAKC,UAAUvqB,EAAM6M,OAC7C7M,EAAM6I,MAAQ6N,EAAS1J,OAAO,OAAQhN,EAAM6I,MAC5C,IAAK,IAAIoE,EAAI,EAAGA,EAAIurB,EAAUj0B,OAAQ0I,IACpCurB,EAAUvrB,IAAMyJ,EAAS1J,OAAO,WAAYwrB,EAAUvrB,IAExDyD,YAAW,WACT9Q,EAAS9F,GAAyB4c,GACpC,GAAW,IAARrQ,EACL,GACF,EA6EY3d,UAAWJ,EAAQqiB,OAAOliB,SAEzBwvC,EAAiBrsB,UAAY,aAAe,4BAM1C,IAAV/hB,GAAetB,cAACmvC,GAAgB,MAGvC,C,yBCrEM7vC,GAAYC,aAAW,SAACC,GAAK,IAAA0wC,EAAA,MAAM,CACvC75B,MAAO,CACLhW,QAAS,OACTiW,WAAY,SACZC,eAAgB,UAElBC,OAAK05B,EAAA,CACH7vC,QAAS,OACTE,cAAe,SACfmW,gBAAiBlX,EAAMmX,QAAQC,WAAWJ,MAC1CK,UAAWrX,EAAMsX,QAAQ,GACzBC,MAAO,OACPrW,aAAc,EACdG,QAAS,QAAM4V,YAAAy5B,EACd1wC,EAAMwX,YAAYC,KAAK,MAAQ,CAC9BF,MAAO,QACRN,YAAAy5B,EAAC,UACO,IAAEA,GAEbC,WAAY,CACVp5B,MAAO,OACPpW,aAAc,IAEhByvC,SAAU,CACRr5B,MAAO,OACPyb,UAAW,OACXnyB,QAAS,OACTE,cAAe,SACf+V,WAAY,SACZC,eAAgB,SAChB9V,OAAQ,qBACRC,aAAc,MACdygB,OAAQ,UACR,UAAW,CACT1gB,OAAQ,uBAGZy+B,KAAM,CACJx/B,SAAU,OACVC,MAAO,WAET0wC,WAAY,CACVhwC,QAAS,OACTiW,WAAY,SACZ/V,cAAe,UAEjB+vC,WAAY,CACV73B,OAAQ,EACR/Y,SAAU,IAEZ6wC,aAAc,CACZ7wC,SAAU,GACV8hB,WAAY,MACZgB,QAAS,GACT9L,gBAAiB,UACjB/W,MAAO,QACPe,aAAc,MACdF,QAAS,OACTq5B,cAAe,cAEjB2W,eAAgB,CACdzvC,UAAW,IAEb0vC,WAAY,CACVjwC,QAAShB,EAAMkZ,QAAQ,GACvBgS,UAAW,SACX7T,UAAW,gCAEb6L,MAAO,CACL9J,SAAU,MACVa,UAAW,OAEd,IAEci3B,GAjOQ,SAAChb,GACtB,IACEib,EAQEjb,EARFib,mBACAC,EAOElb,EAPFkb,kBACAC,EAMEnb,EANFmb,iBACAC,EAKEpb,EALFob,eACAC,EAIErb,EAJFqb,sBACAC,EAGEtb,EAHFsb,sBACAC,EAEEvb,EAFFub,iBACAC,EACExb,EADFwb,oBAGInxC,EAAUT,KAEV6xC,EAAgB1oB,IAAM8e,OAAO,MAC7B6J,EAAkB3oB,IAAM8e,OAAO,MACrC,OACEvnC,cAAC+X,IAAK,CACJ5X,UAAWJ,EAAQsW,MACnB2B,KAAM24B,EACNv5B,QAASw5B,EACT34B,sBAAoB,EACpBC,kBAAmBC,IACnBC,cAAe,CACbC,QAAS,KACTnY,SAEFF,cAACsY,IAAI,CAACC,GAAIo4B,EAAmBzwC,SAC3B2B,eAAA,OAAK1B,UAAWJ,EAAQyW,MAAMtW,SAAA,CAC3B2wC,EAAiBtwB,KAChBvgB,cAAA,OACE4B,MAAO,CACLmV,MAAO,OACP1W,QAAS,OACTkW,eAAgB,SAChBD,WAAY,SACZ3V,aAAc,IACdT,SAEFF,cAAA,OACE4e,IAAKiyB,EAAiBtwB,IACtBgQ,IAAI,QACJ3uB,MAAO,CACLmV,MAAO,IACP9V,OAAQ,IACRP,aAAc,QAKtBV,cAACwpC,KAAS,CACRC,MAAM,QACNnqB,QAAQ,WACRhe,MAAOuvC,EAAiB3vC,MACxBK,YAAY,cACZQ,SAAU,SAACC,GAAC,OACVkvC,EAAmBpvC,wBAAC,CAAC,EAChB+uC,GAAgB,IACnB3vC,MAAOc,EAAEC,OAAOX,QAChB,EAEJnB,UAAWJ,EAAQowC,WACnBvuC,MAAO,CACLb,UAAW,MAGff,cAACwpC,KAAS,CACRC,MAAM,oBACNnqB,QAAQ,WACRhe,MAAOuvC,EAAiB7wB,YACxBze,YAAY,oBACZ8vC,QAAS,EACTtvC,SAAU,SAACC,GAAC,OACVkvC,EAAmBpvC,wBAAC,CAAC,EAChB+uC,GAAgB,IACnB7wB,YAAahe,EAAEC,OAAOX,QACtB,EAEJooC,WAAS,EACTvpC,UAAWJ,EAAQowC,aAErBnwC,cAAA,OACEG,UAAWJ,EAAQqwC,SACnBkB,OAAQR,EACRS,WAAY,SAACvvC,GAAC,OAAKA,EAAEusC,gBAAgB,EAACruC,SAErC2wC,EAAiBW,KAChBxxC,cAAA,OAAAE,SACE2B,eAAA,KAAA3B,SAAA,CAAG,kBAAgB2wC,EAAiBW,KAAKhwC,UAG3CK,eAAA,OAAK1B,UAAWJ,EAAQswC,WAAWnwC,SAAA,CACjCF,cAACyxC,KAAe,CAACtxC,UAAWJ,EAAQm/B,OACpCl/B,cAAA,KAAGG,UAAWJ,EAAQuwC,WAAWpwC,SAAC,uBAClCF,cAAA,KAAGG,UAAWJ,EAAQuwC,WAAWpwC,SAAC,OAClCF,cAAA,SACEoa,KAAK,OACLwT,OAAO,OACPhsB,MAAO,CAAEvB,QAAS,QAClB0B,SAAUgvC,EACVvrB,IAAK2rB,IAEPnxC,cAAC6oB,KAAM,CACLvJ,QAAQ,YACR3f,MAAM,UACNQ,UAAWJ,EAAQwwC,aACnBnzB,QAAS,kBAAM+zB,EAAc/H,QAAQsI,OAAO,EAACxxC,SAC9C,qBAMPF,cAAA,OAAKG,UAAWJ,EAAQywC,eAAetwC,SACrCF,cAAA,SACEoa,KAAK,OACLwT,OAAO,UACPhsB,MAAO,CAAEvB,QAAS,QAClB0B,SAAUivC,EACVxrB,IAAK4rB,MAGTpxC,cAAC6oB,KAAM,CACLvJ,QAAQ,YACR3f,MAAM,UACNQ,UAAWJ,EAAQwwC,aACnBnzB,QAAS,kBAAMg0B,EAAgBhI,QAAQsI,OAAO,EAC9C9vC,MAAO,CAAEjB,aAAc,QAAST,SACjC,iBAGDF,cAAC6oB,KAAM,CACLvJ,QAAQ,YACR3f,MAAM,UACNQ,UAAWJ,EAAQwwC,aACnBnzB,QAAS6zB,EACTl2B,UACG81B,EAAiBtwB,KAClBswB,EAAiB3vC,MAAM8a,OAAS,GAChC60B,EAAiB7wB,YAAYhE,OAAS,GACZ,OAA1B60B,EAAiBW,KAClBtxC,SACF,iBAOX,EC7IayxC,GAAM,WACjB,IAAM5xC,EAAUT,KAChB4b,EAAgDC,mBAAS,CACvDja,MAAO,GACP8e,YAAa,GACbwxB,KAAM,KACN9uB,MAAO,OACPtH,EAAAC,YAAAH,EAAA,GALK21B,EAAgBz1B,EAAA,GAAE81B,EAAmB91B,EAAA,GAM5CI,EAAoDL,oBAAS,GAAMM,EAAAJ,YAAAG,EAAA,GAA5Dm1B,EAAkBl1B,EAAA,GAAEm2B,EAAqBn2B,EAAA,GAC1Co2B,EAAgB,CAAC,mBACjBx6B,EAAWC,cAEXw6B,EAAWt6B,aAAY,SAACC,GAAK,OAAKA,EAAMs6B,MAAMD,QAAQ,IAiEtDlB,EAAoB,WACxBgB,GAAuBjB,GACvBO,EAAoB,CAClBhwC,MAAO,GACP8e,YAAa,GACbwxB,KAAM,KACN9uB,MAAO,MAEX,EAsCA,OAJA+F,IAAM3Q,WAAU,WACdT,EAASnF,KACX,GAAG,CAACmF,IAGFxV,eAAA,OAAK1B,UAAWJ,EAAQmyB,UAAUhyB,SAAA,CAChCF,cAAA,OAAK4B,MAAO,CAAEmV,MAAO,QAAS7W,SAC3B4xC,EAASnuB,WACR3jB,cAACulB,GAAY,CACXG,QAAS,CAAC,QAAS,QAAS,eAC5BC,SA1CY,WAAgB,IAAf0F,EAAIC,UAAAtP,OAAA,QAAA4D,IAAA0L,UAAA,GAAAA,UAAA,GAAG,GAC5B,IAAKD,EAAKrP,OACR,MAAO,GAET,IAAIsI,EAAO,GAYX,OAXA+G,EAAK/O,KAAI,SAACyB,GACR,IAAI5B,EAAI,CACNuG,MACE1iB,cAAA,OAAK4e,IAAKb,EAAK2E,MAAOviB,UAAWJ,EAAQgrB,MAAOwF,IAAKxS,EAAK7c,QAE5DA,MAAO6c,EAAK7c,MACZ8e,YAAajC,EAAKiC,YAClB5D,IAAK2B,EAAK3B,KAEZkI,EAAK7H,KAAKN,EACZ,IACOmI,CACT,CAyBoBkH,CAAsB,OAARsmB,QAAQ,IAARA,OAAQ,EAARA,EAAUxtB,MAClCjH,KAAM,CAAC,QAAS,QAAS,eACzB0H,YAAY,EACZkB,UAAU,EACVH,aA3BW,SAAC1J,GACpB/E,EAAS7E,GAAkB4J,IAC3BqV,KAAM4X,QAAQ,UAAW,CACvB3nB,SAAU,YACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,GAEd,EAiBUwG,YAAY,SACZE,eAAe,YAIrBtmB,cAAC0wC,GAAc,CACbC,mBAAoBA,EACpBC,kBAAmBA,EACnBC,iBAAkBA,EAClBC,eAjIiB,SAAC9uC,GACtBA,EAAEusC,iBACF,IAAMjuB,EAAOte,EAAEgwC,aAAajuB,MAAM,GAClC,GAAI8tB,EAAcr1B,SAAS8D,EAAKlG,MAC9B,OAAO82B,EAAmBpvC,wBAAC,CAAC,EACvB+uC,GAAgB,IACnBW,KAAMlxB,KAGVmR,KAAM3xB,MAAM,+CAAgD,CAC1D4hB,SAAU,YACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,GAEd,EAgHMmxB,sBA9GwB,SAAC/uC,GAC7B,IAAMse,EAAOte,EAAEC,OAAO8hB,MAAM,GAC5BmtB,EAAmBpvC,wBAAC,CAAC,EAChB+uC,GAAgB,IACnBW,KAAMlxB,IAEV,EAyGM0wB,sBAvGwB,SAAChvC,GAC7B,IAAMse,EAAOte,EAAEC,OAAO8hB,MAAM,GACtBC,EAAS,IAAIC,WAEnBD,EAAOE,OAAS,SAACJ,GACf,IAAMvD,EAAMuD,EAAM7hB,OAAOkiB,OACzB+sB,EAAmBpvC,wBAAC,CAAC,EAChB+uC,GAAgB,IACnBvwB,OACAC,QAEJ,EACAyD,EAAOI,cAAc9D,EACvB,EA2FM2wB,iBAzFmB,WACvB,IAAM9iB,EAAW,IAAI3J,SACrB2J,EAAS1J,OAAO,QAASosB,EAAiB3vC,OAC1CitB,EAAS1J,OAAO,cAAeosB,EAAiB3vC,OAChDitB,EAAS1J,OAAO,qBAAqB,GACrC0J,EAAS1J,OAAO,OAAQosB,EAAiBW,MACzCrjB,EAAS1J,OAAO,QAASosB,EAAiBvwB,MAC1CjJ,EAAShF,GAAiB8b,IAC1ByiB,IACAnf,KAAM4X,QAAQ,gBAAiB,CAC7B3nB,SAAU,YACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,GAEd,EAwEMsxB,oBAAqBA,IAEvBlxC,cAAC2rB,KAAG,CACFC,KAAK,QACLjsB,MAAM,YACN,aAAW,MACXQ,UAAWJ,EAAQirB,IACnB5N,QAASwzB,EAAkB1wC,SAE3BF,cAAC6rB,KAAO,QAIhB,EAEMvsB,GAAYC,aAAW,SAACC,GAAK,MAAM,CACvC0yB,UAAW,CACTnb,MAAO,OACPsoB,YAAa,GACbja,aAAc,GACd/kB,QAAS,OACTiW,WAAY,SACZC,eAAgB,UAElByU,IAAK,CACHtJ,SAAU,QACVuJ,OAAQzrB,EAAMkZ,QAAQ,GACtBmJ,MAAOriB,EAAMkZ,QAAQ,GACrB9B,WAAY,WAEdmU,MAAO,CACLhU,MAAO,GACP9V,OAAQ,GACRP,aAAc,GAEjB,IChMc,SAASuxC,GAAcpyC,GAAc,IAAZyuC,EAAQzuC,EAARyuC,SAEpCpzB,EAA0BC,mBAAS,CAC/B+2B,gBAAiB,GACjBC,YAAa,GACbC,wBAAyB,GACzBC,gBAAiB,CACbC,OAAQ,CACJC,KAAK,GAETC,YAAa,CACTD,KAAK,GAETE,UAAW,CACPF,KAAK,GAETG,UAAW,CACPH,KAAK,GAETv2B,OAAQ,CACJu2B,KAAK,GAETI,cAAe,CACXJ,KAAK,MAGfn3B,EAAAC,YAAAH,EAAA,GAxBKzD,EAAK2D,EAAA,GAAEmI,EAAQnI,EAAA,GA+BhB/Z,EAAe,SAACC,EAAOE,GACzB,IAAI8iB,EAAIxiB,YAAA,GAAO2V,GACf6M,EAAK9iB,GAAQF,EACbiiB,EAASe,EACb,EAEAxM,qBAAU,WACN86B,EAAiBn7B,EACrB,GAAG,CAACA,EAAM06B,YAAa16B,EAAM26B,0BAE7B,IAeMQ,EAAmB,SAACn7B,GACtB,IAAO06B,EAAwC16B,EAAxC06B,YAAaC,EAA2B36B,EAA3B26B,wBACdC,EAAkB,CACpBC,OAAQ,CACJC,IAAK,KAAKM,KAAKV,GACf1I,MAAO,8BAEX+I,YAAa,CACTD,IAAK,yBAAyBM,KAAKV,GACnC1I,MAAO,yCAEXgJ,UAAW,CACPF,IAAK,QAAQM,KAAKV,GAClB1I,MAAO,wCAEXiJ,UAAW,CACPH,IAAK,QAAQM,KAAKV,GAClB1I,MAAO,wCAEXztB,OAAQ,CACJu2B,IAAKJ,EAAYn2B,QAAU,GAC3BytB,MAAO,4CAEXkJ,cAAe,CACXJ,IAAKJ,IAAgBC,EACrB3I,MAAO,sCAMf,OADAlmB,GAAS,SAACqd,GAAI,OAAA9+B,wBAAA,GAAU8+B,GAAI,IAAEyR,mBAAe,IACtC7uB,OAAOsvB,OAAOT,GAAiBU,OAAM,SAACC,GAAI,OAAKA,CAAI,GAC9D,EAEA,OACIhzC,cAAA,OAAKG,UAAU,qBAAoBD,SAE/B2B,eAAA,OAAKoxB,GAAG,cAAa/yB,SAAA,CACjBF,cAAA,MAAIG,UAAU,SAAQD,SAAC,sBAEvB2B,eAAA,QAAMwsC,iBAAiB,EAAMnuC,SAAA,CACzBF,cAAA,SAAO+B,SAAU,SAACC,GAAC,OAAKX,EAAaW,EAAEC,OAAOX,MAAO,kBAAkB,EAAE8Y,KAAK,WACvE6Y,GAAG,kBAAkB9yB,UAAU,eAAeqB,KAAK,kBACnDD,YAAY,mBAAmB0sC,UAAQ,IAC9CjuC,cAAA,SAAO+B,SAAU,SAACC,GAAC,OAAKX,EAAaW,EAAEC,OAAOX,MAAO,cAAc,EAAE8Y,KAAK,WACnE6Y,GAAG,cAAc9yB,UAAU,eAAeqB,KAAK,cAAcD,YAAY,eACzE0sC,UAAQ,IACfjuC,cAAA,SAAO+B,SAAU,SAACC,GAAC,OAAKX,EAAaW,EAAEC,OAAOX,MAAO,0BAA0B,EAAE8Y,KAAK,WAC/E6Y,GAAG,0BAA0B9yB,UAAU,eAAeqB,KAAK,0BAC3DD,YAAY,uBAAuB0sC,UAAQ,IAClDjuC,cAAA,OAAK4B,MAAO,CAAC8oB,UAAW,OAAQ6E,WAAY,OAAQxuB,UAAW,IAAKZ,UAAU,eAAcD,SACvFsjB,OAAOyvB,QAAQx7B,EAAM46B,iBAAiB/1B,KAAI,SAAAsB,GAAA,IAAAs1B,EAAA73B,YAAAuC,EAAA,GAAE3B,EAAGi3B,EAAA,GAAEn1B,EAAIm1B,EAAA,UAClDlzC,cAAA,OAAe4B,MAAO,CAACjC,MAAOoe,EAAKw0B,IAAM,QAAU,MAAO7yC,SAAU,IAAIQ,SACnE6d,EAAK0rB,OADAxtB,EAEJ,MAGdjc,cAAC6oB,KAAM,CACH1oB,UAAU,gBACVyB,MAAO,CAACjB,aAAc,GAAII,UAAW,IACrCue,QAAQ,YACR3f,MAAM,UACNob,SA7EK,WACrB,IAAIo4B,GAAa,EAWjB,MAV8B,KAA1B17B,EAAMy6B,iBAAgD,KAAtBz6B,EAAM06B,aAAwD,KAAlC16B,EAAM26B,0BAClEe,GAAa,GAGjB3vB,OAAOyvB,QAAQx7B,EAAM46B,iBAAiBrC,SAAQ,SAACjyB,EAAM9B,IAC7B,IAAhB8B,EAAK,GAAGw0B,MACRY,GAAa,EAErB,IAEOA,CACX,CAgE8BC,GACVh2B,QA7FC,SAACpb,GAClBA,EAAEusC,iBACFD,EAAS72B,EAAMy6B,gBAAiBz6B,EAAM06B,YAAa16B,EAAM26B,wBAC7D,EA2FoBh4B,KAAK,SAAQla,SAChB,kBAMrB,CC9He,SAASmzC,KAEpB,IAAMh8B,EAAWC,cACX8jB,EAAY5jB,aAAY,SAAAC,GAAK,OAAIA,EAAM4jB,KAAKD,SAAS,IAsC3D,OACIp7B,cAACiyC,GAAc,CAAC3D,SArCI,SAAC4D,EAAiBC,EAAaC,GAC/BxM,GAAS,OAAQ,kCACjChmB,EAAW,CACP,MAASwb,EAAUkB,YAAYxc,MAC/BoyB,kBACAC,cACAC,4BAGIlJ,MAAK,SAAAC,GACb1X,KAAM4X,QAAQF,EAAS7kB,KAAKgG,QAAS,CACjC5I,SAAU,aACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,EACVpgB,MAAO,YAEX6X,EAAS3G,KACb,IAAG44B,OAAM,SAAAxpC,GACLsuB,QAAQC,IAAI,QAASvuB,EAAMqpC,SAAS7kB,KAAKgG,SACzCmH,KAAM3xB,MAAMA,EAAMqpC,SAAS7kB,KAAKgG,QAAS,CACrC5I,SAAU,aACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,EACVpgB,MAAO,WAEf,GACJ,GAKJ,C,aCNe8zC,GA1CK,SAAHzzC,GAAgE,IAAD0zC,EAAA1zC,EAAzD2zC,yBAAiB,IAAAD,EAAG,GAAEA,EAAEE,EAAa5zC,EAAb4zC,cAAeC,EAAW7zC,EAAX6zC,YAC1Dx4B,EAAkCC,mBAASq4B,GAAkBp4B,EAAAC,YAAAH,EAAA,GAAtDy4B,EAASv4B,EAAA,GAAEw4B,EAAYx4B,EAAA,GAC9BI,EAAgDL,oBAAS,GAAKM,EAAAJ,YAAAG,EAAA,GAAvDq4B,EAAgBp4B,EAAA,GAAEq4B,EAAmBr4B,EAAA,GAEtCs4B,EAAiB,WACnBD,GAAoB,GACpBF,EAAaJ,GAEb,IAAMQ,EAAoBC,aAAY,WAClCL,GAAa,SAACM,GAAa,OAAKA,EAAgB,CAAC,GACrD,GAAG,KAOH,OALA/rB,YAAW,WACPgsB,cAAcH,GACdF,GAAoB,EACxB,GAAuB,IAApBN,GAEIQ,CACX,EAEAl8B,qBAAU,WACN,IAAMk8B,EAAoBD,IAE1B,OAAO,kBAAMI,cAAcH,EAAmB,CAClD,GAAG,IASH,OACIh0C,cAAA,OAAAE,SACI2B,eAACgnB,KAAM,CAACzL,QATU,YACjBy2B,GAAoBJ,IACrBA,IACAM,IAER,EAI4Ch5B,SAAU84B,EAAkBv0B,QAAQ,OAAO3f,MAAM,UAAU68B,eAAe,MAAKt8B,SAAA,CAC9GwzC,EAAY,IAAEG,GAAgB,MAAA/0B,OAAU60B,EAAS,gBAIlE,EClCe,SAASS,GAAI1e,GAExB,IAAMre,EAAWC,cACX+8B,EAAU78B,aAAY,SAAAC,GAAK,OAAIA,EAAM4jB,KAAKgZ,OAAO,IACvDn5B,EAA0BC,mBAAS,CAC/Bm5B,QAAS,GACT50B,OAAQ,CAAC,EACTI,MAAO4V,EAAMgG,SAASjkB,MAAMqI,QAC7B1E,EAAAC,YAAAH,EAAA,GAJIzD,EAAK2D,EAAA,GAAEmI,EAAQnI,EAAA,GAuBtB,OACIpb,cAAA,OAAKG,UAAU,qBAAoBD,SAC/B2B,eAAA,OAAKoxB,GAAG,cAAa/yB,SAAA,CACjBF,cAAA,MAAIG,UAAU,SAAQD,SAAC,cAGvBF,cAAA,OAAKG,UAAU,eAAcD,SACzBF,cAAA,OAAK4e,IAAK4a,EAASvG,GAAG,OAAO1C,IAAI,gBAGrC1uB,eAAA,QAAMwsC,iBAAiB,EAAOC,SA3BrB,SAACtsC,GAClBA,EAAEusC,iBACF,IAAMtgB,EAAU,CAAEnO,MAAOrI,EAAMqI,MAAOw0B,QAAS78B,EAAM68B,SACrDj9B,EAASvG,GAAuBmd,GACpC,EAuBiE/tB,SAAA,CACjDF,cAAA,SAAO+B,SAAU,SAACC,GAAC,OAtBd,SAACV,EAAOE,GACzB,IAAI8iB,EAAIxiB,YAAA,GAAQ2V,GAChB6M,EAAK9iB,GAAQF,EACbiiB,EAASe,EACb,CAkBwCjjB,CAAaW,EAAEC,OAAOX,MAAO,UAAU,EAAE8Y,KAAK,OAAO6Y,GAAG,MAAM9yB,UAAU,gBAAgBqB,KAAK,UAAUD,YAAY,+CAA+C0sC,UAAQ,IAClMjuC,cAAA,OAAK4B,MAAO,CAAEjC,MAAO,MAAO+qB,UAAW,OAAQ6E,WAAY,OAAQ7vB,SAAU,GAAIiB,aAAc,IAAKT,SAAGm0C,EAAQ/pB,UAC9G+pB,EAAQhxB,UAAYrjB,cAAA,OAAKG,UAAU,iBAAgBD,SAACF,cAACkf,GAAM,MAAY,GACxElf,cAACszC,GAAW,CAACI,YAAY,aAAaF,kBAAmB,GAAIC,cAnB3D,WACd,IAAMxlB,EAAU,CAAEnO,MAAOrI,EAAMqI,OAC/BzI,EAASpG,GAAiBgd,GAC9B,IAiBgBjuB,cAAA,SAAOoa,KAAK,SAASja,UAAU,gBAAgBmB,MAAM,cAGzDtB,cAAA,OAAKizB,GAAG,mBAMxB,CChDe,SAASshB,KAEHj9B,cAAjB,IACM0gB,EAAUoW,eACVhT,EAAY5jB,aAAY,SAAAC,GAAK,OAAIA,EAAM4jB,KAAKD,SAAS,IAC3DlgB,EAA0BC,mBAAS,CAC/B2E,MAAO,KACR1E,EAAAC,YAAAH,EAAA,GAFIzD,EAAK2D,EAAA,GAAEmI,EAAQnI,EAAA,GA4CtB,OACIpb,cAAA,OAAKG,UAAU,qBAAoBD,SAE/B2B,eAAA,OAAKoxB,GAAG,cAAa/yB,SAAA,CACjBF,cAAA,MAAIG,UAAU,SAAQD,SAAC,qBAGvB2B,eAAA,QAAMwsC,iBAAiB,EAAOC,SA/CrB,SAACtsC,GAClBA,EAAEusC,iBACkB3I,GAAS,OAAQ,iCACjChmB,EAAW,CACP,MAASnI,EAAMqI,QAGXopB,MAAK,SAAAC,GACb1X,KAAM4X,QAAQF,EAAS7kB,KAAKgG,QAAS,CACjC5I,SAAU,aACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,EACVpgB,MAAO,YAEXw4B,EAAQvb,KAAK,IACjB,IAAG6sB,OAAM,SAAAxpC,GACLsuB,QAAQC,IAAI,QAASvuB,EAAMqpC,SAAS7kB,KAAKgG,SACzCmH,KAAM3xB,MAAMA,EAAMqpC,SAAS7kB,KAAKgG,QAAS,CACrC5I,SAAU,aACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,EACVpgB,MAAO,WAEf,GACJ,EAeiEU,SAAA,CACjDF,cAAA,SAAO+B,SAAU,SAACC,GAAC,OAdd,SAACV,EAAOE,GACzB,IAAI8iB,EAAIxiB,YAAA,GAAQ2V,GAChB6M,EAAK9iB,GAAQF,EACbiiB,EAASe,EACb,CAUwCjjB,CAAaW,EAAEC,OAAOX,MAAO,QAAQ,EAAE8Y,KAAK,OAAO6Y,GAAG,QAAQ9yB,UAAU,gBAAgBqB,KAAK,QAAQD,YAAY,gBAAgB0sC,UAAQ,IACjKjuC,cAAA,OAAK4B,MAAO,CAAEjC,MAAO,MAAO+qB,UAAW,OAAQ6E,WAAY,OAAQ7vB,SAAU,GAAIiB,aAAc,IAAKT,SAAGk7B,EAAU9Q,UACjHtqB,cAAA,SAAOoa,KAAK,SAASja,UAAU,gBAAgBmB,MAAM,cAGzDtB,cAAA,OAAKizB,GAAG,mBAMxB,CCvEe,SAASuhB,GAAoB9e,GAEvBpe,cAAjB,IACM0gB,EAAUoW,eAGhBlzB,GAFkB1D,aAAY,SAAAC,GAAK,OAAIA,EAAM4jB,KAAKD,SAAS,IAEjCjgB,mBAAS,CAC/B2E,MAAO4V,EAAMgG,SAASjkB,MAAMqI,SAC9B1E,EAAAC,YAAAH,EAAA,GAFKzD,EAAK2D,EAAA,GAAUA,EAAA,GA2CtB,OACIpb,cAACiyC,GAAc,CAAC3D,SAxCI,SAAC4D,EAAiBC,EAAaC,GAC/BxM,GAAS,OAAQ,kCACjChmB,EAAW,CACP,MAASnI,EAAMqI,MACfoyB,kBACAC,cACAC,0BACAqC,WAAW,IAGPvL,MAAK,SAAAC,GACb1X,KAAM4X,QAAQF,EAAS7kB,KAAKgG,QAAS,CACjC5I,SAAU,aACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,EACVpgB,MAAO,YAEXw4B,EAAQvb,KAAK,OAAQ,CACjBqD,MAAOrI,EAAMqI,OAErB,IAAGwpB,OAAM,SAAAxpC,GACLsuB,QAAQC,IAAI,QAASvuB,EAAMqpC,SAAS7kB,KAAKgG,SACzCmH,KAAM3xB,MAAMA,EAAMqpC,SAAS7kB,KAAKgG,QAAS,CACrC5I,SAAU,aACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,EACVpgB,MAAO,WAEf,GACJ,GAKJ,CChCA,IAAMF,GAAYC,aAAW,SAACC,GAAK,IAAA+jC,EAAA,MAAM,CACvCxkB,KAAItI,YAAA,CACFjW,QAAS,IACRhB,EAAMwX,YAAYC,KAAK,MAAQ,CAC9BzW,QAAS,IAGbwqB,IAAK,CACHtJ,SAAU,QACVuJ,OAAQzrB,EAAMkZ,QAAQ,GACtBmJ,MAAOriB,EAAMkZ,QAAQ,GACrB9B,WAAY,UACZ,UAAW,CACTA,WAAY,YAGhBioB,aAAYpoB,YAAA,CACVpW,QAAS,OACTiW,WAAY,SACZC,eAAgB,gBAChBxV,UAAW,QACVvB,EAAMwX,YAAYC,KAAK,MAAQ,CAAC,GAEnCoJ,SAAU,CACR3gB,SAAU,UAEZo/B,qBAAmByE,EAAA,CACjBhU,WAAY,QAAM9Y,YAAA8sB,EACjB/jC,EAAMwX,YAAYC,KAAK,MAAQ,CAAC,GAACR,YAAA8sB,EAAC,QAC5B,OAAKA,GAEd9Y,aAAc,CACZpqB,QAAS,OACTE,cAAe,MACfgW,eAAgB,gBAChBD,WAAY,SACZ3V,aAAc,IAEhBkqB,cAAe,CACbrJ,WAAY,OACZ9hB,SAAU,UAEZqlB,WAAY,CACV5D,OAAQ,WAEVC,eAAgB,CACd/gB,QAAS,OAETiW,WAAY,SACZS,MAAO,OAEToC,QAAS,CACPpC,MAAO,KAETysB,eAAgB,CACd7qB,SAAU,KAEZ8qB,sBAAuB,CAAC,EACxBC,aAAc,CACZhZ,UAAW,SACX3pB,UAAW,QAEd,IAEc,SAAS2zC,KACtB,IAAM30C,EAAUT,KACV+X,EAAWC,cACXq9B,EAAan9B,aAAY,SAACC,GAAK,OAAKA,EAAM0L,OAAOwxB,UAAU,IACjEz5B,EAAwCC,mBAAS,IAAGC,EAAAC,YAAAH,EAAA,GAIpDM,GAJmBJ,EAAA,GAAiBA,EAAA,GACrB5D,aAAY,SAACC,GAAK,OAAKA,EAAM0L,OAAOvC,MAAM,IACvCpJ,aAAY,SAACC,GAAK,OAAKA,EAAMC,OAAO2L,SAAS,IAE7BlI,mBAAS,KAAGM,EAAAJ,YAAAG,EAAA,GAAvCqoB,EAASpoB,EAAA,GAAEqoB,EAAYroB,EAAA,GAC9BqX,mBAAQ,WAEJ6hB,EAAWrwB,MACX5D,MAAMC,QAAQg0B,EAAWrwB,OACzBqwB,EAAWrwB,KAAKtI,OAAS,GAEzB8nB,EAAa6Q,EAAWrwB,KAE5B,GAAG,CAACqwB,IAOJ78B,qBAAU,WACRT,EAASjD,KACX,GAAG,IAEH,IAUM8vB,EAAkB,SAACnmB,GACvB1G,EAASpH,GAAoB8N,IAC7B1G,EAAS3H,IAAkB,GAC7B,EAEMy0B,EAAoB,SAAClR,GACzB5b,EAASxC,GAA4B,CAAEuH,IAAK6W,IAE9C,EAEM2hB,EAA8B,SAACtwB,GACnC,IAAM8D,EAAU,CAAEiJ,kBAAmB/M,EAAK+M,kBAE1Cha,EACE3C,GAA2B,CACzBuZ,QAAS7F,EACThM,IAAKkI,EAAKlI,IACV8R,WAAY,eAGlB,EACMkW,EAAgB,SAACjgB,GACrB,IAAQkP,EAAwBlP,EAAxBkP,OAAQC,EAAgBnP,EAAhBmP,YAGhB,GAAKA,GAEDA,EAAYxV,QAAUuV,EAAOvV,MAAjC,CAGA,IAAMyV,EAAcpV,aAAO0lB,GAC3BrQ,EAAoBD,EAAehV,OAAO8U,EAAOvV,MAAO,GAAjD2V,EAAmDpY,YAAAmY,EAAA,GAA1C,GAChBD,EAAehV,OAAO+U,EAAYxV,MAAO,EAAG2V,GAC5C,IAAMC,EAAWH,EAAejX,KAAI,SAACyB,EAAMD,GACzC,MAAO,CAAE1B,IAAK2B,EAAK3B,IAAKuX,WAAY7V,EACtC,IAEAzG,EAAStC,GAAgC,CAAE6e,MAAOF,KAClDoQ,EAAavQ,EAXiC,CAYhD,EAoDA,OACE1xB,eAAA,OAAK1B,UAAWJ,EAAQgf,KAAK7e,SAAA,CAE3BF,cAACqkC,GAAY,CACX9W,aAzGyB,SAACY,GAE9B9W,EAASpI,GAAmB,CAAEkf,WAAU6D,WAAY,eACtD,EAuGMvG,WArGyB,SAACnH,GAE9BjN,EAAS3C,GAA2B4P,GACtC,IAoGItkB,cAAA,OAAKG,UAAWJ,EAAQ0qB,aAAavqB,SACnCF,cAAA,OAAKG,UAAWJ,EAAQ8qB,cAAc3qB,SAAC,kBAUxCy0C,EAAWtxB,WAAarjB,cAACkf,GAAM,CAACI,QAAQ,QACxCq1B,EAAWhxB,WApEZ3jB,cAACmzB,KAAe,CAACC,UAAWgR,EAAclkC,SACxCF,cAAC6zB,KAAS,CAACC,YAAW,uBAAyB5zB,SAC5C,SAAC6zB,GACA,OACElyB,eAAA,MAAAC,wBAAA,CAAK0jB,IAAKuO,EAASC,UAAcD,EAASE,gBAAc,IAAA/zB,SAAA,CACrD2jC,EAAUvnB,KAAI,SAACyB,EAAMD,GACpB,OACE9d,cAACk0B,KAAS,CAERC,YAAiB,OAAJpW,QAAI,IAAJA,OAAI,EAAJA,EAAM3B,IACnB0B,MAAOA,EAAM5d,SAEZ,SAAC6zB,GAAQ,OACR/zB,cAAA,MAAA8B,oCAAA,CACE0jB,IAAKuO,EAASC,UACVD,EAASK,gBACTL,EAASM,iBAAe,IAC5Bl0B,UAAWJ,EAAQ8+B,aACnBj9B,MAAKE,wBAAA,GACAiyB,EAASK,eAAexyB,OAAK,IAChCb,UAAqB,IAAV+c,EAAc,EAAI,SAC7B5d,SAEFF,cAAC+vB,GAAY,CAEXzL,KAAMvG,EACN0N,WAAYyY,EACZpe,aAAcqe,EACd9T,uBAAwBukB,EACxBtkB,UAAQ,GALHxS,KAOH,GAvBC,OAAJC,QAAI,IAAJA,OAAI,EAAJA,EAAM3B,IA2BjB,IACC2X,EAASxyB,eAGhB,MA8BHozC,EAAWjpB,SAAW1rB,cAACuqB,GAAK,CAACD,QAASqqB,EAAWrqB,UAClDtqB,cAAC2rB,KAAG,CACFC,KAAK,QACLxO,QA3BkB,WACtB/F,EAAS3H,IAAkB,GAC7B,EA0BM/P,MAAM,YACN,aAAW,MACXQ,UAAWJ,EAAQirB,IAAI9qB,SAEvBF,cAAC6rB,KAAO,QAIhB,CCtOe,SAASgpB,KACtB,IAAMzZ,EAAY5jB,aAAY,SAACC,GAAK,OAAKA,EAAM4jB,KAAKD,SAAS,IAC7DlgB,EAAsCC,mBAAS,IAAGC,EAAAC,YAAAH,EAAA,GAA3CohB,EAAWlhB,EAAA,GAAEjK,EAAciK,EAAA,GAMlC,OALAtD,qBAAU,WACR,IAAMwkB,EAAcyF,KAAK+S,MAAM5X,aAAa6X,QAAQ,gBACpD5jC,EAAemrB,EACjB,GAAG,CAAClB,IAGFp7B,cAACg1C,KAAe,CAAChd,QAASA,GAAQ93B,SAC/Bo8B,GAAeA,EAAY2Y,cAC1Bj1C,cAAC66B,GAAU,CAAA36B,SACT2B,eAACqzC,KAAM,CAAAh1C,SAAA,CACLF,cAACm1C,KAAK,CAACC,OAAK,EAACC,KAAK,IAAGn1C,SACnBF,cAAC0uC,GAAa,MAEhB1uC,cAACm1C,KAAK,CAACE,KAAK,aAAYn1C,SACtBF,cAACs1C,GAAQ,MAEXt1C,cAACm1C,KAAK,CAACE,KAAK,gBAAen1C,SACzBF,cAACyvC,GAAgB,MAEnBzvC,cAACm1C,KAAK,CAACE,KAAK,gBAAen1C,SACzBF,cAAC0yB,GAAW,MAEd1yB,cAACm1C,KAAK,CAACE,KAAK,YAAWn1C,SACrBF,cAACo3B,GAAQ,MAEXp3B,cAACm1C,KAAK,CAACE,KAAK,iBAAgBn1C,SAC1BF,cAAC4/B,GAAY,MAEf5/B,cAACm1C,KAAK,CAACE,KAAK,sBAAqBn1C,SAC/BF,cAACykC,GAAiB,MAEpBzkC,cAACm1C,KAAK,CAACE,KAAK,eAAcn1C,SACxBF,cAAC00C,GAAU,MAEb10C,cAACm1C,KAAK,CAACE,KAAK,cAAan1C,SACvBF,cAACu1C,GAAS,MAEZv1C,cAACm1C,KAAK,CAACE,KAAK,SAAQn1C,SAClBF,cAAC6mC,GAAK,MAER7mC,cAACm1C,KAAK,CAACE,KAAK,OAAMn1C,SAChBF,cAAC2xC,GAAG,MAEN3xC,cAACm1C,KAAK,CAACE,KAAK,kBAAiBn1C,SAC3BF,cAACqzC,GAAkB,MAErBrzC,cAACm1C,KAAK,CAACE,KAAK,UAASn1C,SACnBF,cAACyrC,GAAM,WAKbzrC,cAAAC,WAAA,CAAAC,SACE2B,eAACqzC,KAAM,CAAAh1C,SAAA,CACLF,cAACm1C,KAAK,CAACC,OAAK,EAACC,KAAK,IAAI9rB,UAAW4kB,KACjCnuC,cAACm1C,KAAK,CAACE,KAAK,OAAO9rB,UAAW6qB,KAC9Bp0C,cAACm1C,KAAK,CAACE,KAAK,kBAAkB9rB,UAAWgrB,KACzCv0C,cAACm1C,KAAK,CACJE,KAAK,uBACL9rB,UAAWirB,WAOzB,C,mEC1FM/xB,GAAe,CACnB+yB,mBAAoB,CAClBnyB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAQ,IAGV8Q,UAAW,CACT/X,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAQ,GACRgS,YAAaW,OAAOC,aAAa6X,QAAQ,eAAiBhT,KAAK+S,MAAM7X,OAAOC,aAAa6X,QAAQ,gBAAkB,MAGrHV,QAAS,CACPhxB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAQ,IAGVqkB,kBAAmB,CACjBtrB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAQ,IAIVolB,iBAAkB,CAChBrsB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAQ,IAEVglB,iBAAkB,CAChBjsB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAQ,KA4RGmrB,iBAAaC,GAAA,GAAAj/B,YAAAi/B,GAEvBxpC,IAzRiC,SAACuL,EAAOk+B,GAC5C,OAAO/W,KAAOnnB,EAAO,CACnB+9B,mBAAoB,CAClBnyB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAQ,CAACsrB,KAAK,IACdtxB,KAAM,CAAEsxB,KAAK,CAAC,KAGpB,IA+Q+En/B,YAAAi/B,GAC1ExpC,IA9QiC,SAACuL,EAAOk+B,GAC5C,OAAO/W,KAAOnnB,EAAO,CACnB+9B,mBAAoB,CAClBnyB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAQ,CAACsrB,KAAKD,EAAO1nB,QAAQ3D,SAAW,IACxChG,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAoQ+ExX,YAAAi/B,GAC1ExpC,IAnQ+B,SAACuL,EAAOk+B,GAC1C,OAAO/W,KAAOnnB,EAAO,CACnB+9B,mBAAoB,CAClBnyB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAQ,CAACsrB,KAAKD,EAAO1nB,QAAQ3D,SAAW,IACxChG,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAyP2ExX,YAAAi/B,GAEtExpC,IAxPgB,SAACuL,EAAOk+B,GAC3B,OAAO/W,KAAOnnB,EAAO,CACnB2jB,UAAW,CACT/X,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAQ,CAACsrB,KAAK,IACdtxB,KAAM,CAAEsxB,KAAK,CAAC,KAGpB,IA8O2Cn/B,YAAAi/B,GACtCxpC,IA7OgB,SAACuL,EAAOk+B,GAC3B,OAAO/W,KAAOnnB,EAAO,CACnB2jB,UAAW,CACT/X,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAQ,CAACsrB,KAAKD,EAAO1nB,QAAQ3D,SAAW,IACxChG,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAmO2CxX,YAAAi/B,GACtCxpC,IAlOc,SAACuL,EAAOk+B,GACzB,OAAO/W,KAAOnnB,EAAO,CACnB2jB,UAAW,CACT/X,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAQ,CAACsrB,KAAKD,EAAO1nB,QAAQ3D,SAAW,IACxChG,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAwNuCxX,YAAAi/B,GAElCxpC,IAtM0B,SAACuL,EAAOk+B,GACrC,OAAO/W,KAAOnnB,EAAO,CACnB48B,QAAS,CACPhxB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAQ,CAACsrB,KAAK,IACdtxB,KAAM,CAAEsxB,KAAK,CAAC,KAGpB,IA4LgEn/B,YAAAi/B,GAC3DxpC,IA3L0B,SAACuL,EAAOk+B,GACrC,OAAO/W,KAAOnnB,EAAO,CACnB48B,QAAS,CACPhxB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAQ,CAACsrB,KAAKD,EAAO1nB,QAAQ3D,SAAW,IACxChG,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAiLgExX,YAAAi/B,GAC3DxpC,IAhLwB,SAACuL,EAAOk+B,GACnC,OAAO/W,KAAOnnB,EAAO,CACnB48B,QAAS,CACPhxB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAQ,CAACsrB,KAAKD,EAAO1nB,QAAQ3D,SAAW,IACxChG,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAsK4DxX,YAAAi/B,GAEvDxpC,IA5NkB,SAACuL,EAAOk+B,GAC7B,OAAO/W,KAAOnnB,EAAO,CACnB2jB,UAAW,CACTkB,YAAa,CAAEsZ,KAAMD,EAAO1nB,WAGlC,IAsNgDxX,YAAAi/B,GAE3CxpC,IAtNiB,SAACuL,EAAOk+B,GAC5B,OAAO/W,KAAOnnB,EAAO,CACnB2jB,UAAW,CACTkB,YAAa,CAAEsZ,KAAM,QAG3B,IAgN6Cn/B,YAAAi/B,GAGxCxpC,IAnIuB,SAACuL,EAAOk+B,GAClC,OAAO/W,KAAOnnB,EAAO,CACnBk3B,kBAAmB,CACjBtrB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAQ,CAACsrB,KAAK,IACdtxB,KAAM,CAAEsxB,KAAK,CAAC,KAGpB,IAyH0Dn/B,YAAAi/B,GACrDxpC,IAxHuB,SAACuL,EAAOk+B,GAClC,OAAO/W,KAAOnnB,EAAO,CACnBk3B,kBAAmB,CACjBtrB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAQ,CAACsrB,KAAKD,EAAO1nB,QAAQ3D,SAAW,IACxChG,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IA8G0DxX,YAAAi/B,GACrDxpC,IA7GqB,SAACuL,EAAOk+B,GAChC,OAAO/W,KAAOnnB,EAAO,CACnBk3B,kBAAmB,CACjBtrB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAQ,CAACsrB,KAAKD,EAAO1nB,QAAQ3D,SAAW,IACxChG,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAmGsDxX,YAAAi/B,GAEjDxpC,IAjG4B,SAACuL,EAAOk+B,GACvC,OAAO/W,KAAOnnB,EAAO,CACnBi4B,iBAAkB,CAChBrsB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAQ,CAACsrB,KAAK,IACdtxB,KAAM,CAAEsxB,KAAK,CAAC,KAGpB,IAuFmEn/B,YAAAi/B,GAC9DxpC,IAtF2B,SAACuL,EAAOk+B,GACtC,OAAO/W,KAAOnnB,EAAO,CACnBi4B,iBAAkB,CAChBrsB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAQ,CAACsrB,KAAKD,EAAO1nB,QAAQ3D,SAAW,IACxChG,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IA4EkExX,YAAAi/B,GAC7DxpC,IA3EyB,SAACuL,EAAOk+B,GACpC,OAAO/W,KAAOnnB,EAAO,CACnBi4B,iBAAkB,CAChBrsB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAQ,CAACsrB,KAAKD,EAAO1nB,QAAQ3D,SAAW,IACxChG,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAiE8DxX,YAAAi/B,GAEzDxpC,IA/D2B,SAACuL,EAAOk+B,GACtC,OAAO/W,KAAOnnB,EAAO,CACnB63B,iBAAkB,CAChBjsB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAQ,CAACsrB,KAAK,MAIpB,IAqDiEn/B,YAAAi/B,GAC5DxpC,IApD0B,SAACuL,EAAOk+B,GACrC,OAAO/W,KAAOnnB,EAAO,CACnB63B,iBAAkB,CAChBjsB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAQ,CAACsrB,KAAKD,EAAO1nB,QAAQ3D,SAAW,IACxChG,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IA0CgExX,YAAAi/B,GAC3DxpC,IAzCwB,SAACuL,EAAOk+B,GACnC,OAAO/W,KAAOnnB,EAAO,CACnB63B,iBAAkB,CAChBjsB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAQ,CAACsrB,KAAKD,EAAO1nB,QAAQ3D,SAAW,IACxChG,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IA+B4DynB,IAG1DjzB,ICopCagzB,iBAAaC,GAAA,GAAAj/B,YAAAi/B,GAEvBxpC,GAzxCwB,SAACuL,EAAOk+B,GACnC,OAAO/W,KAAOnnB,EAAO,CACnBo+B,cAAe,CACbxyB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IA+wC4Dn/B,YAAAi/B,GACvDxpC,GA9wCwB,SAACuL,EAAOk+B,GACnC,OAAO/W,KAAOnnB,EAAO,CACnBo+B,cAAe,CACbxyB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAowC4DxX,YAAAi/B,GACvDxpC,GAnwCsB,SAACuL,EAAOk+B,GACjC,OAAO/W,KAAOnnB,EAAO,CACnBo+B,cAAe,CACbxyB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAyvCwDn/B,YAAAi/B,GAEnDxpC,GAxvCsB,SAACuL,EAAOk+B,GACjC,OAAO/W,KAAOnnB,EAAO,CACnB2L,YAAa,CACXC,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IA8uCwDn/B,YAAAi/B,GACnDxpC,GA7uCsB,SAACuL,EAAOk+B,GACjC,OAAO/W,KAAOnnB,EAAO,CACnB2L,YAAa,CACXC,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAmuCwDxX,YAAAi/B,GACnDxpC,GAluCoB,SAACuL,EAAOk+B,GAC/B,OAAO/W,KAAOnnB,EAAO,CACnB2L,YAAa,CACXC,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAwtCoDn/B,YAAAi/B,GAE/CxpC,GAvtCqB,SAACuL,EAAOk+B,GAChC,OAAO/W,KAAOnnB,EAAO,CACnByT,QAAS,CACP7H,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IA6sCyDn/B,YAAAi/B,GACpDxpC,GA5sCqB,SAACuL,EAAOk+B,GAChC,OAAO/W,KAAOnnB,EAAO,CACnByT,QAAS,CACP7H,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAksCyDxX,YAAAi/B,GACpDxpC,GAjsCmB,SAACuL,EAAOk+B,GAC9B,OAAO/W,KAAOnnB,EAAO,CACnByT,QAAS,CACP7H,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAurCqDn/B,YAAAi/B,GAEhDxpC,GAtrCwB,SAACuL,EAAOk+B,GACnC,OAAO/W,KAAOnnB,EAAO,CACnBq+B,cAAe,CACbzyB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IA4qC2Dn/B,YAAAi/B,GACtDxpC,GA3qCwB,SAACuL,EAAOk+B,GACnC,OAAO/W,KAAOnnB,EAAO,CACnBq+B,cAAe,CACbzyB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAiqC2DxX,YAAAi/B,GACtDxpC,GAhqCsB,SAACuL,EAAOk+B,GACjC,OAAO/W,KAAOnnB,EAAO,CACnBq+B,cAAe,CACbzyB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAspCuDn/B,YAAAi/B,GAElDxpC,GAthC2B,SAACuL,EAAOk+B,GACtC,OAAO/W,KAAOnnB,EAAO,CACnBs+B,aAAc,CACZ1yB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IA4gCkEn/B,YAAAi/B,GAC7DxpC,GA3gC2B,SAACuL,EAAOk+B,GACtC,OAAO/W,KAAOnnB,EAAO,CACnBs+B,aAAc,CACZ1yB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAigCkExX,YAAAi/B,GAC7DxpC,GAhgCyB,SAACuL,EAAOk+B,GACpC,OAAO/W,KAAOnnB,EAAO,CACnBs+B,aAAc,CACZ1yB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAMD,EAAO1nB,QAAQ3D,WAGnC,IAs/B8D7T,YAAAi/B,GAEzDxpC,GAzpCoB,SAACuL,EAAOk+B,GAC/B,OAAO/W,KAAOnnB,EAAO,CACnBmJ,OAAQ,CACNyC,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IA+oCmDn/B,YAAAi/B,GAC9CxpC,GA9oCoB,SAACuL,EAAOk+B,GAC/B,OAAO/W,KAAOnnB,EAAO,CACnBmJ,OAAQ,CACNyC,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAooCmDxX,YAAAi/B,GAC9CxpC,GAnoCkB,SAACuL,EAAOk+B,GAC7B,OAAO/W,KAAOnnB,EAAO,CACnBmJ,OAAQ,CACNyC,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAynC+Cn/B,YAAAi/B,GAE1CxpC,GAvnCsB,SAACuL,EAAOk+B,GACjC,OAAO/W,KAAOnnB,EAAO,CACnBu+B,aAAc,CACZ3yB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IA6mCwDn/B,YAAAi/B,GACnDxpC,GA5mCsB,SAACuL,EAAOk+B,GACjC,OAAO/W,KAAOnnB,EAAO,CACnBu+B,aAAc,CACZ3yB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAkmCwDxX,YAAAi/B,GACnDxpC,GAjmCoB,SAACuL,EAAOk+B,GAC/B,OAAO/W,KAAOnnB,EAAO,CACnBu+B,aAAc,CACZ3yB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAulCoDn/B,YAAAi/B,GAE/CxpC,GArlCyB,SAACuL,EAAOk+B,GACpC,OAAO/W,KAAOnnB,EAAO,CACnB4mB,eAAgB,CACdhb,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IA2kC8Dn/B,YAAAi/B,GACzDxpC,GA1kCyB,SAACuL,EAAOk+B,GACpC,IAAAM,EAA+CN,EAAO1nB,QAA9CgQ,EAAUgY,EAAVhY,WAAYU,EAAgBsX,EAAhBtX,iBAAkBra,EAAI2xB,EAAJ3xB,KAClCga,EAAkBx8B,YAAA,GAAQ2V,EAAM6mB,oBAC9B4C,EAAc5C,EAAmBha,KAAKjG,WAC1C,SAAClC,GAAC,OAAKA,EAAEC,MAAQuiB,CAAgB,IAE7BuX,EAAgB5X,EAAmBha,KACvC4c,GACAzC,cAAcpgB,WAAU,SAAClC,GAAC,OAAKA,EAAEC,MAAQ6hB,CAAU,IAKrD,OAJAK,EAAmBha,KAAK4c,GAAazC,cACnCyX,GACAzT,UAAUhmB,KAAK6H,GAEVsa,KAAOnnB,EAAO,CACnB4mB,eAAgB,CACdhb,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,UAEvBqQ,mBAAoB,CAAEsX,KAAMtX,IAEhC,IAmjC8D7nB,YAAAi/B,GACzDxpC,GAljCuB,SAACuL,EAAOk+B,GAClC,OAAO/W,KAAOnnB,EAAO,CACnB4mB,eAAgB,CACdhb,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAwiC0Dn/B,YAAAi/B,GAErDxpC,GAhgCuB,SAACuL,EAAOk+B,GAClC,OAAO/W,KAAOnnB,EAAO,CACnBmsB,UAAW,CACTvgB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAs/B0Dn/B,YAAAi/B,GACrDxpC,GAr/BuB,SAACuL,EAAOk+B,GAClC,IAAMrxB,EAAOqxB,EAAO1nB,QAAQ3P,QAAO,SAACP,GAAI,OAAKA,EAAK4P,KAAK,IACvD,OAAOiR,KAAOnnB,EAAO,CACnBmsB,UAAW,CACTvgB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMtxB,KAGpB,IA0+B0D7N,YAAAi/B,GACrDxpC,GAz+BqB,SAACuL,EAAOk+B,GAChC,OAAO/W,KAAOnnB,EAAO,CACnBmsB,UAAW,CACTvgB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAMD,EAAO1nB,QAAQ3D,WAGnC,IA+9BsD7T,YAAAi/B,GAEjDxpC,GA79B6B,SAACuL,EAAOk+B,GACxC,OAAO/W,KAAOnnB,EAAO,CACnB0+B,mBAAoB,CAClB9yB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAm9BqEn/B,YAAAi/B,GAChExpC,IAl9B6B,SAACuL,EAAOk+B,GACxC,OAAO/W,KAAOnnB,EAAO,CACnB0+B,mBAAoB,CAClB9yB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAw8BqExX,YAAAi/B,GAChExpC,IAv8B2B,SAACuL,EAAOk+B,GACtC,OAAO/W,KAAOnnB,EAAO,CACnB0+B,mBAAoB,CAClB9yB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAMD,EAAO1nB,QAAQ3D,WAGnC,IA67BiE7T,YAAAi/B,GAE5DxpC,IA37BsB,SAACuL,EAAOk+B,GACjC,OAAO/W,KAAOnnB,EAAO,CACnB4oB,SAAU,CACRhd,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,MAIvB,IAi7ByDn/B,YAAAi/B,GACpDxpC,IAh7BsB,SAACuL,EAAOk+B,GACjC,OAAO/W,KAAOnnB,EAAO,CACnB4oB,SAAU,CACRhd,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAs6ByDxX,YAAAi/B,GACpDxpC,IAr6BoB,SAACuL,EAAOk+B,GAC/B,OAAO/W,KAAOnnB,EAAO,CACnB4oB,SAAU,CACRhd,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAMD,EAAO1nB,QAAQ3D,WAGnC,IA25BqD7T,YAAAi/B,GAEhDxpC,IAz5B8B,SAACuL,EAAOk+B,GACzC,OAAO/W,KAAOnnB,EAAO,CACnB6mB,mBAAoB,CAClBjb,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IA+4ByEn/B,YAAAi/B,GACpExpC,IA94B8B,SAACuL,EAAOk+B,GACzC,IAAIpX,EAA2B,CAAC,EAShC,OAPEA,EADE9mB,EAAM8mB,yBAAyBja,KAAKlI,IACXu5B,EAAO1nB,QAAQ/R,MACxC,SAACC,GAAC,OAAKA,EAAEC,MAAQ3E,EAAM8mB,yBAAyBja,KAAKlI,GAAG,IAG/Bu5B,EAAO1nB,QAAQ,GAGrC2Q,KAAOnnB,EAAO,CACnB6mB,mBAAoB,CAClBjb,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,UAEvBsQ,yBAA0B,CACxBja,KAAM,CAAEsxB,KAAMrX,KAGpB,IAw3ByE9nB,YAAAi/B,GACpExpC,IAv3B4B,SAACuL,EAAOk+B,GACvC,OAAO/W,KAAOnnB,EAAO,CACnB6mB,mBAAoB,CAClBjb,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,MAGpB,IA62BqEn/B,YAAAi/B,GAEhExpC,IAvyByB,SAACuL,EAAOk+B,GACpC,OAAO/W,KAAOnnB,EAAO,CACnBwoB,eAAgB,CACd5c,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IA6xB8DxX,YAAAi/B,GACzDxpC,IA5xByB,SAACuL,EAAOk+B,GACpC,OAAO/W,KAAOnnB,EAAO,CACnBwoB,eAAgB,CACd5c,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAkxB8Dn/B,YAAAi/B,GACzDxpC,IAjxBuB,SAACuL,EAAOk+B,GAClC,OAAO/W,KAAOnnB,EAAO,CACnBwoB,eAAgB,CACd5c,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAuwB0Dn/B,YAAAi/B,GAErDxpC,IAj3BiC,SAACuL,EAAOk+B,GAC5C,IAAQhX,EAAqBgX,EAAO1nB,QAA5B0Q,iBACFra,EAAInG,aAAO1G,EAAM6mB,mBAAmBha,MACpC4c,EAAczpB,EAAM6mB,mBAAmBha,KAAKjG,WAChD,SAAClC,GAAC,OAAKA,EAAEC,MAAQuiB,CAAgB,IAE/B1Q,EAAOnsB,YAAA,GAAQ6zC,EAAO1nB,SAI1B,OAHAA,EAAQwU,UAAYkT,EAAO1nB,QAAQwU,WAAa,GAChDne,EAAK4c,GAAazC,cAAchiB,KAAKwR,GAE9B2Q,KAAOnnB,EAAO,CACnB6mB,mBAAoB,CAClBjb,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMtxB,KAGpB,IA81B+E7N,YAAAi/B,GAE1ExpC,IA91BiC,SAACuL,EAAOk+B,GAC5C,IAAAS,EAAyCT,EAAO1nB,QAAxCgQ,EAAUmY,EAAVnY,WAAYU,EAAgByX,EAAhBzX,iBAChBL,EAAkBx8B,YAAA,GAAQ2V,EAAM6mB,oBAC9B4C,EAAc5C,EAAmBha,KAAKjG,WAC1C,SAAClC,GAAC,OAAKA,EAAEC,MAAQuiB,CAAgB,IAUnC,OARAL,EAAmBha,KAAK4c,GAAazC,cAAgBH,EAAmBha,KACtE4c,GACAzC,cAAcngB,QAAO,SAACnC,GAAC,OAAKA,EAAEC,MAAQ6hB,CAAU,IAC7CK,EAAmBha,KAAKtI,SAC3BsiB,EAAmB3a,WAAY,EAC/B2a,EAAmB5S,SAAU,EAC7B4S,EAAmBhU,QAAU,4CAExBsU,KAAOnnB,EAAO,CACnB6mB,mBAAoB,CAAEsX,KAAMtX,IAEhC,IA60B+E7nB,YAAAi/B,GAE1ExpC,IA70BiC,SAACuL,EAAOk+B,GAC5C,IAAAU,EAA6BV,EAAO1nB,QAA5BgQ,EAAUoY,EAAVpY,WAAY3Z,EAAI+xB,EAAJ/xB,KACZ9iB,EAA2B8iB,EAA3B9iB,KAAMm9B,EAAqBra,EAArBqa,iBACVL,EAAkBx8B,YAAA,GAAQ2V,EAAM6mB,oBAC9B4C,EAAc5C,EAAmBha,KAAKjG,WAC1C,SAAClC,GAAC,OAAKA,EAAEC,MAAQuiB,CAAgB,IAE7BuX,EAAgB5X,EAAmBha,KACvC4c,GACAzC,cAAcpgB,WAAU,SAAClC,GAAC,OAAKA,EAAEC,KAAO6hB,CAAU,IAGpD,OAFAK,EAAmBha,KAAK4c,GAAazC,cAAcyX,GAAe10C,KAAOA,EAElEo9B,KAAOnnB,EAAO,CACnB6mB,mBAAoB,CAAEsX,KAAMtX,IAEhC,IA8zB+E7nB,YAAAi/B,GAE1ExpC,IA9zBiC,SAACuL,EAAOk+B,GAC5C,IAAMrxB,EAAO7M,EAAM6mB,mBAAmBha,KAAKpI,MACzC,SAACC,GAAC,OAAKA,EAAEC,MAAQu5B,EAAO1nB,QAAQ7R,GAAG,IAErC,OAAOwiB,KAAOnnB,EAAO,CACnB8mB,yBAA0B,CACxBja,KAAM,CAAEsxB,KAAMtxB,KAGpB,IAqzB+E7N,YAAAi/B,GAE1ExpC,IA/wB6B,SAACuL,EAAOk+B,GACxC,OAAO/W,KAAOnnB,EAAO,CACnB6+B,mBAAoB,CAClBjzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,MAGvB,IAswBuEn/B,YAAAi/B,GAClExpC,IArwB6B,SAACuL,EAAOk+B,GACxC,OAAO/W,KAAOnnB,EAAO,CACnB6+B,mBAAoB,CAClBjzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IA2vBuExX,YAAAi/B,GAClExpC,IA1vB2B,SAACuL,EAAOk+B,GACtC,OAAO/W,KAAOnnB,EAAO,CACnB6+B,mBAAoB,CAClBjzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAMD,EAAO1nB,QAAQ3D,WAGnC,IAgvBmE7T,YAAAi/B,GAE9DxpC,IAhvB0B,SAACuL,EAAOk+B,GACrC,OAAO/W,KAAOnnB,EAAO,CACnB8+B,gBAAiB,CACflzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,MAGvB,IAuuBiEn/B,YAAAi/B,GAC5DxpC,IAtuB0B,SAACuL,EAAOk+B,GACrC,OAAO/W,KAAOnnB,EAAO,CACnB8+B,gBAAiB,CACflzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,KAGpB,IA4tBiEl/B,YAAAi/B,GAC5DxpC,IA3tBwB,SAACuL,EAAOk+B,GACnC,OAAO/W,KAAOnnB,EAAO,CACnB8+B,gBAAiB,CACflzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAMD,EAAO1nB,QAAQ3D,WAGnC,IAitB6D7T,YAAAi/B,GAExDxpC,IAjtBuB,SAACuL,EAAOk+B,GAClC,OAAO/W,KAAOnnB,EAAO,CACnB8zB,UAAW,CACTloB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAusB0Dn/B,YAAAi/B,GACrDxpC,IAtsBuB,SAACuL,EAAOk+B,GAClC,OAAO/W,KAAOnnB,EAAO,CACnB8zB,UAAW,CACTloB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IA4rB0DxX,YAAAi/B,GACrDxpC,IA3rBqB,SAACuL,EAAOk+B,GAChC,OAAO/W,KAAOnnB,EAAO,CACnB8zB,UAAW,CACTloB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAirBsDn/B,YAAAi/B,GAEjDxpC,IAjrBwB,SAACuL,EAAOk+B,GACnC,OAAO/W,KAAOnnB,EAAO,CACnBu1B,QAAS,CACP3pB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,MAGpB,IAuqB6Dn/B,YAAAi/B,GACxDxpC,IAtqBwB,SAACuL,EAAOk+B,GACnC,OAAO/W,KAAOnnB,EAAO,CACnBu1B,QAAS,CACP3pB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IA4pB6DxX,YAAAi/B,GACxDxpC,IA3pBsB,SAACuL,EAAOk+B,GACjC,OAAO/W,KAAOnnB,EAAO,CACnBu1B,QAAS,CACP3pB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,MAGpB,IAipByDn/B,YAAAi/B,GAEpDxpC,IAjpB2B,SAACuL,EAAOk+B,GACtC,OAAO/W,KAAOnnB,EAAO,CACnBw1B,aAAc,CACZ5pB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAuoBmEn/B,YAAAi/B,GAC9DxpC,IAtoB2B,SAACuL,EAAOk+B,GACtC,OAAO/W,KAAOnnB,EAAO,CACnBw1B,aAAc,CACZ5pB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IA4nBmExX,YAAAi/B,GAC9DxpC,IA3nByB,SAACuL,EAAOk+B,GACpC,OAAO/W,KAAOnnB,EAAO,CACnBw1B,aAAc,CACZ5pB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAinB+Dn/B,YAAAi/B,GAE1DxpC,IAjnB+B,SAACuL,EAAOk+B,GAC1C,OAAO/W,KAAOnnB,EAAO,CACnBw1B,aAAc,CACZ5pB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,MAGpB,IAumB4En/B,YAAAi/B,GACvExpC,IAtmB+B,SAACuL,EAAOk+B,GAC1C,OAAO/W,KAAOnnB,EAAO,CACnBw1B,aAAc,CACZ5pB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IA4lB4ExX,YAAAi/B,GACvExpC,IA3lB6B,SAACuL,EAAOk+B,GACxC,OAAO/W,KAAOnnB,EAAO,CACnBw1B,aAAc,CACZ5pB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAilBwEn/B,YAAAi/B,GAGnExpC,IAjlB+B,SAACuL,EAAOk+B,GAC1C,OAAO/W,KAAOnnB,EAAO,CACnBitB,kBAAmB,CACjBrhB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,MAGpB,IAwkBiCn/B,YAAAi/B,GAC5BxpC,IAvkB+B,SAACuL,EAAOk+B,GAC1C,OAAO/W,KAAOnnB,EAAO,CACnBitB,kBAAmB,CACjBrhB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IA8jBiCxX,YAAAi/B,GAC5BxpC,IA7jB6B,SAACuL,EAAOk+B,GACxC,OAAO/W,KAAOnnB,EAAO,CACnBitB,kBAAmB,CACjBrhB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,MAGpB,IAmjB4En/B,YAAAi/B,GAEvExpC,IAnjBgC,SAACuL,EAAOk+B,GAC3C,OAAO/W,KAAOnnB,EAAO,CACnB++B,wBAAyB,CACvBnzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,MAGpB,IA0iBkCn/B,YAAAi/B,GAC7BxpC,IAziBgC,SAACuL,EAAOk+B,GAC3C,OAAO/W,KAAOnnB,EAAO,CACnB++B,wBAAyB,CACvBnzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAgiBkCxX,YAAAi/B,GAC7BxpC,IA/hB8B,SAACuL,EAAOk+B,GACzC,OAAO/W,KAAOnnB,EAAO,CACnB++B,wBAAyB,CACvBnzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,MAGpB,IAqhB8En/B,YAAAi/B,GAEzExpC,IArhBiC,SAACuL,EAAOk+B,GAC5C,OAAO/W,KAAOnnB,EAAO,CACnBg/B,wBAAyB,CACvBpzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,MAGpB,IA4gBmCn/B,YAAAi/B,GAC9BxpC,IA3gBiC,SAACuL,EAAOk+B,GAC5C,OAAO/W,KAAOnnB,EAAO,CACnBg/B,wBAAyB,CACvBpzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAkgBmCxX,YAAAi/B,GAC9BxpC,IAjgB+B,SAACuL,EAAOk+B,GAC1C,OAAO/W,KAAOnnB,EAAO,CACnBg/B,wBAAyB,CACvBpzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,MAGpB,IAwfiCn/B,YAAAi/B,GAE5BxpC,IAxfsC,SAACuL,EAAOk+B,GACjD,OAAO/W,KAAOnnB,EAAO,CACnBi/B,uBAAwB,CACtBrzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,MAGpB,IA+ewCn/B,YAAAi/B,GACnCxpC,IA9esC,SAACuL,EAAOk+B,GACjD,OAAO/W,KAAOnnB,EAAO,CACnBi/B,uBAAwB,CACtBrzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAqewCxX,YAAAi/B,GACnCxpC,IApeoC,SAACuL,EAAOk+B,GAC/C,OAAO/W,KAAOnnB,EAAO,CACnBi/B,uBAAwB,CACtBrzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,MAGpB,IA2dsCn/B,YAAAi/B,GAGjCxpC,IA3dwB,SAACuL,EAAOk+B,GACnC,OAAO/W,KAAOnnB,EAAO,CACnBk9B,WAAY,CACVtxB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,MAGpB,IAidkEn/B,YAAAi/B,GAC7DxpC,IAhdwB,SAACuL,EAAOk+B,GACnC,OAAO/W,KAAOnnB,EAAO,CACnBk9B,WAAY,CACVtxB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAsckExX,YAAAi/B,GAC7DxpC,IArcsB,SAACuL,EAAOk+B,GACjC,OAAO/W,KAAOnnB,EAAO,CACnBk9B,WAAY,CACVtxB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,MAGpB,IA2b8Dn/B,YAAAi/B,GAEzDxpC,IA3byB,SAACuL,EAAOk+B,GACpC,OAAO/W,KAAOnnB,EAAO,CACnBk/B,iBAAkB,CAChBtzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,MAGpB,IAiboEn/B,YAAAi/B,GAC/DxpC,IAhbyB,SAACuL,EAAOk+B,GACpC,OAAO/W,KAAOnnB,EAAO,CACnBk/B,iBAAkB,CAChBtzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAsaoExX,YAAAi/B,GAC/DxpC,IArauB,SAACuL,EAAOk+B,GAClC,OAAO/W,KAAOnnB,EAAO,CACnBk/B,iBAAkB,CAChBtzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,MAGpB,IA2ZgEn/B,YAAAi/B,GAE3DxpC,IA3Z0B,SAACuL,EAAOk+B,GACrC,OAAO/W,KAAOnnB,EAAO,CACnBm/B,iBAAkB,CAChBvzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,MAGpB,IAiZsEn/B,YAAAi/B,GACjExpC,IAhZ0B,SAACuL,EAAOk+B,GACrC,OAAO/W,KAAOnnB,EAAO,CACnBm/B,iBAAkB,CAChBvzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAsYsExX,YAAAi/B,GACjExpC,IArYwB,SAACuL,EAAOk+B,GACnC,OAAO/W,KAAOnnB,EAAO,CACnBm/B,iBAAkB,CAChBvzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,MAGpB,IA2XkEn/B,YAAAi/B,GAE7DxpC,IA3X+B,SAACuL,EAAOk+B,GAC1C,OAAO/W,KAAOnnB,EAAO,CACnBo/B,gBAAiB,CACfxzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,MAGpB,IAkXiCn/B,YAAAi/B,GAC5BxpC,IAjX+B,SAACuL,EAAOk+B,GAC1C,OAAO/W,KAAOnnB,EAAO,CACnBo/B,gBAAiB,CACfxzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAwWiCxX,YAAAi/B,GAC5BxpC,IAvW6B,SAACuL,EAAOk+B,GACxC,OAAO/W,KAAOnnB,EAAO,CACnBo/B,gBAAiB,CACfxzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,MAGpB,IA6V6En/B,YAAAi/B,GAGxExpC,IA7VyB,SAACuL,EAAOk+B,GACpC,OAAO/W,KAAOnnB,EAAO,CACnBkb,YAAa,CACXtP,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,MAGpB,IAmVoEn/B,YAAAi/B,GAC/DxpC,IAlVyB,SAACuL,EAAOk+B,GACpC,OAAO/W,KAAOnnB,EAAO,CACnBkb,YAAa,CACXtP,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAwUoExX,YAAAi/B,GAC/DxpC,IAvUuB,SAACuL,EAAOk+B,GAClC,OAAO/W,KAAOnnB,EAAO,CACnBkb,YAAa,CACXtP,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,MAGpB,IA6TgEn/B,YAAAi/B,GAE3DxpC,IA7T0B,SAACuL,EAAOk+B,GACrC,OAAO/W,KAAOnnB,EAAO,CACnBq/B,kBAAmB,CACjBzzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,MAGpB,IAmTsEn/B,YAAAi/B,GACjExpC,IAlT0B,SAACuL,EAAOk+B,GACrC,OAAO/W,KAAOnnB,EAAO,CACnBq/B,kBAAmB,CACjBzzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAwSsExX,YAAAi/B,GACjExpC,IAvSwB,SAACuL,EAAOk+B,GACnC,OAAO/W,KAAOnnB,EAAO,CACnBq/B,kBAAmB,CACjBzzB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,MAGpB,IA6RkEn/B,YAAAi/B,GAE7DxpC,IA7R2B,SAACuL,EAAOk+B,GACtC,OAAO/W,KAAOnnB,EAAO,CACnBs/B,kBAAmB,CACjB1zB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,MAGpB,IAmRwEn/B,YAAAi/B,GACnExpC,IAlR2B,SAACuL,EAAOk+B,GACtC,OAAO/W,KAAOnnB,EAAO,CACnBs/B,kBAAmB,CACjB1zB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAwQwExX,YAAAi/B,GACnExpC,IAvQyB,SAACuL,EAAOk+B,GACpC,OAAO/W,KAAOnnB,EAAO,CACnBs/B,kBAAmB,CACjB1zB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,MAGpB,IA6PoEn/B,YAAAi/B,GAE/DxpC,IA7PgC,SAACuL,EAAOk+B,GAC3C,OAAO/W,KAAOnnB,EAAO,CACnBu/B,iBAAkB,CAChB3zB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,MAGpB,IAoPkCn/B,YAAAi/B,GAC7BxpC,IAnPgC,SAACuL,EAAOk+B,GAC3C,OAAO/W,KAAOnnB,EAAO,CACnBu/B,iBAAkB,CAChB3zB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IA0OkCxX,YAAAi/B,GAC7BxpC,IAzO8B,SAACuL,EAAOk+B,GACzC,OAAO/W,KAAOnnB,EAAO,CACnBu/B,iBAAkB,CAChB3zB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,MAGpB,IA+N+En/B,YAAAi/B,GAG1ExpC,IA/NyB,SAACuL,EAAOk+B,GACpC,OAAO/W,KAAOnnB,EAAO,CACnBw/B,gBAAiB,CACf5zB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,MAGpB,IAqNoEn/B,YAAAi/B,GAC/DxpC,IApNyB,SAACuL,EAAOk+B,GACpC,OAAO/W,KAAOnnB,EAAO,CACnBw/B,gBAAiB,CACf5zB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IA0MoExX,YAAAi/B,GAC/DxpC,IAzMuB,SAACuL,EAAOk+B,GAClC,OAAO/W,KAAOnnB,EAAO,CACnBw/B,gBAAiB,CACf5zB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,MAGpB,IA+LkEn/B,YAAAi/B,GAE7DxpC,IA/L8B,SAACuL,EAAOk+B,GACzC,OAAO/W,KAAOnnB,EAAO,CACnBy/B,eAAgB,CACd7zB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,MAGpB,IAqL+En/B,YAAAi/B,GAC1ExpC,IApL8B,SAACuL,EAAOk+B,GACzC,OAAO/W,KAAOnnB,EAAO,CACnBy/B,eAAgB,CACd7zB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IA0K+ExX,YAAAi/B,GAC1ExpC,IAzK4B,SAACuL,EAAOk+B,GACvC,OAAO/W,KAAOnnB,EAAO,CACnBy/B,eAAgB,CACd7zB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,MAGpB,IA+J2EF,IA7pDtD,CACnBG,cAAe,CACbxyB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEXlH,YAAa,CACXC,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEXY,QAAS,CACP7H,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEXwrB,cAAe,CACbzyB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEX1J,OAAQ,CACNyC,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEX0rB,aAAc,CACZ3yB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEX+T,eAAgB,CACdhb,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEXyrB,aAAc,CACZ1yB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEXsZ,UAAW,CACTvgB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEX6rB,mBAAoB,CAClB9yB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEX+V,SAAU,CACRhd,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEXgU,mBAAoB,CAClBjb,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEXiU,yBAA0B,CACxBja,KAAM,CAAC,GAGT2b,eAAgB,CACd5c,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEXgsB,mBAAoB,CAClBjzB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAGXisB,gBAAiB,CACflzB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEX0iB,QAAS,CACP3pB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEXihB,UAAW,CACTloB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEX2iB,aAAc,CACZ5pB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEXoa,kBAAmB,CACjBrhB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEXksB,wBAAyB,CACvBnzB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEXmsB,wBAAyB,CACvBpzB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEXosB,uBAAwB,CACtBrzB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEXqqB,WAAY,CACVtxB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEXqsB,iBAAkB,CAChBtzB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEXssB,iBAAkB,CAChBvzB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEXusB,gBAAiB,CACfxzB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEXqI,YAAa,CACXtP,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEXwsB,kBAAmB,CACjBzzB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEXysB,kBAAmB,CACjB1zB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEX0sB,iBAAkB,CAChB3zB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEX2sB,gBAAiB,CACf5zB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAEX4sB,eAAgB,CACd7zB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,MCzDEmrB,iBAAaC,GAAA,GAAAj/B,YAAAi/B,GAEvBxpC,IA1ImB,SAACuL,EAAOk+B,GAC9B,OAAO/W,KAAOnnB,EAAO,CACnBq6B,SAAU,CACRzuB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAgIkDn/B,YAAAi/B,GAC7CxpC,IAhImB,SAACuL,EAAOk+B,GAC9B,OAAO/W,KAAOnnB,EAAO,CACnBq6B,SAAU,CACRzuB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAsHkDxX,YAAAi/B,GAC7CxpC,IAtHiB,SAACuL,EAAOk+B,GAC5B,OAAO/W,KAAOnnB,EAAO,CACnBq6B,SAAU,CACRzuB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IA4G8Cn/B,YAAAi/B,GACzCxpC,IA3GoB,SAACuL,EAAOk+B,GAC/B,OAAO/W,KAAOnnB,EAAO,CACnB0/B,UAAW,CACT9zB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAiGoDn/B,YAAAi/B,GAC/CxpC,IAjGoB,SAACuL,EAAOk+B,GAC/B,OAAO/W,KAAOnnB,EAAO,CACnB0/B,UAAW,CACT9zB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAuFoDxX,YAAAi/B,GAC/CxpC,IAvFkB,SAACuL,EAAOk+B,GAC7B,OAAO/W,KAAOnnB,EAAO,CACnB0/B,UAAW,CACT9zB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IA6EgDn/B,YAAAi/B,GAC3CxpC,IA5EkB,SAACuL,EAAOk+B,GAC7B,OAAO/W,KAAOnnB,EAAO,CACnB2/B,SAAU,CACR/zB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAkEgDn/B,YAAAi/B,GAC3CxpC,IAlEkB,SAACuL,EAAOk+B,GAC7B,OAAO/W,KAAOnnB,EAAO,CACnB2/B,SAAU,CACR/zB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAwDgDxX,YAAAi/B,GAC3CxpC,IAxDgB,SAACuL,EAAOk+B,GAC3B,OAAO/W,KAAOnnB,EAAO,CACnB2/B,SAAU,CACR/zB,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IA8C4Cn/B,YAAAi/B,GACvCxpC,IA7CqB,SAACuL,EAAOk+B,GAChC,OAAO/W,KAAOnnB,EAAO,CACnB4/B,YAAa,CACXh0B,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAmCsDn/B,YAAAi/B,GACjDxpC,IAnCqB,SAACuL,EAAOk+B,GAChC,OAAO/W,KAAOnnB,EAAO,CACnB4/B,YAAa,CACXh0B,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAM,IACjBtxB,KAAM,CAAEsxB,KAAMD,EAAO1nB,WAG3B,IAyBsDxX,YAAAi/B,GACjDxpC,IAzBmB,SAACuL,EAAOk+B,GAC9B,OAAO/W,KAAOnnB,EAAO,CACnB4/B,YAAa,CACXh0B,UAAW,CAAEuyB,MAAM,GACnBlqB,QAAS,CAAEkqB,MAAM,GACjBjyB,UAAW,CAAEiyB,MAAM,GACnBtrB,QAAS,CAAEsrB,KAAMD,EAAO1nB,QAAQ3D,SAChChG,KAAM,CAAEsxB,KAAM,CAAC,KAGrB,IAekDF,IAvL7B,CACnB5D,SAAU,CACRzuB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAGX6sB,UAAW,CACT9zB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAGX8sB,SAAU,CACR/zB,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,IAGX+sB,YAAa,CACXh0B,WAAW,EACXqI,SAAS,EACT/H,WAAW,EACXW,KAAM,CAAC,EACPgG,QAAS,MCEEmrB,iBAAaC,GAAA,GAAAj/B,YAAAi/B,GhEpCe,+BgEWrB,SAACj+B,EAAOk+B,GAC5B,OAAO/W,KAAOnnB,EAAO,CACnB6/B,aAAc,CACZj0B,UAAW,CAAEuyB,MAAM,KAGzB,IAqB0Dn/B,YAAAi/B,GhErChB,8BgEkBd,SAACj+B,EAAOk+B,GAClC,OAAO/W,KAAOnnB,EAAO,CACnB6/B,aAAc,CACZj0B,UAAW,CAAEuyB,MAAM,KAGzB,IAc+Dn/B,YAAAi/B,GhErCvB,4BgEyBd,SAACj+B,EAAOk+B,GAChC,OAAO/W,KAAOnnB,EAAO,CACnB6/B,aAAc,CACZj0B,UAAW,CAAEuyB,MAAM,GACnBn2C,aAAa,CAACm2C,KAAKD,EAAO1nB,QAAQ3D,SAAW,MAGnD,IAM2DorB,IArCtC,CACnB4B,aAAc,CACZj0B,WAAW,EACX5jB,aAAc,MC8CHg2C,iBAAaC,GAAA,GAAAj/B,YAAAi/B,GAErBxpC,IA1CmB,SAACuL,EAAOk+B,GAC9B,OAAO/W,KAAOnnB,EAAO,CACnBE,WAAY,CACVC,UAAW,CAAEg+B,KAAMn+B,EAAME,WAAWC,aAG1C,IAoCsDnB,YAAAi/B,GACjDxpC,IAnCqB,SAACuL,EAAOk+B,GAC9B,OAAO/W,KAAOnnB,EAAO,CACnBE,WAAY,CACRC,UAAW,CAAEg+B,KAAY,OAAND,QAAM,IAANA,OAAM,EAANA,EAAQ1nB,WAGnC,IA6BoDxX,YAAAi/B,GAEjDxpC,IA7ByB,SAACuL,EAAOk+B,GAClC,OAAO/W,KAAOnnB,EAAO,CACnB6L,UAAW,CAAEsyB,KAAM,CAAC,IAExB,IAyBwDn/B,YAAAi/B,GACrDxpC,IAxByB,SAACuL,EAAOk+B,GAChC,OAAO/W,KAAOnnB,EAAO,CACnB6L,UAAW,CAAEsyB,KAAY,OAAND,QAAM,IAANA,OAAM,EAANA,EAAQ1nB,UAE/B,IAoBuDxX,YAAAi/B,GAEtDxpC,IApB4B,SAACuL,EAAOk+B,GACnC,OAAO/W,KAAOnnB,EAAO,CACnB4L,UAAW,CAAEuyB,KAAMn+B,EAAM4L,YAE7B,IAgBwD5M,YAAAi/B,GACvDxpC,IAf4B,SAACuL,EAAOk+B,GACjC,OAAO/W,KAAOnnB,EAAO,CACnB4L,UAAW,CAAEuyB,KAAMD,EAAO1nB,UAEhC,IAWwDynB,IA1DzC,CACnB/9B,WAAY,CACVC,WAAW,GAEb0L,UAAU,CAAC,EACXD,WAAW,I,wCCIIk0B,IAA6BC,GAAAjX,eAAAC,KAgB7B7vB,IAAY8mC,GAAAlX,eAAAC,KA4BZ9vB,IAAagnC,GAAAnX,eAAAC,KAUb1vB,IAAsB6mC,GAAApX,eAAAC,KAyCtBvvB,IAAgB2mC,GAAArX,eAAAC,KAyBhBpvB,IAAmBymC,GAAAtX,eAAAC,KAenBsX,IAAuBC,GAAAxX,eAAAC,KA0CvB9uB,IAtLjB+f,KAAMumB,YAEC,IAAMC,GAA6B,cAGnC,SAAUV,GAA8B5B,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAEhC,OAFgCF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAE1B/L,aACrB8Q,GACA,MAAM,uBAAD9mB,OACkB62B,EAAO1nB,QAAQ2hB,QACtC,GAAE9tC,YAAA,GACG6zC,EAAO1nB,UACZ,KAAD,EACD,OAPMkb,EAAQxI,EAAAuX,KAAAvX,EAAAE,KAAA,EAORsF,aAAIgS,GAAqCr2C,YAAC,CAAC,EAAIqnC,EAAS7kB,QAAS,KAAD,EAAAqc,EAAAE,KAAA,gBAEtE,OAFsEF,EAAAC,KAAA,EAAAD,EAAAyX,GAAAzX,EAAA,SAAAA,EAAAE,KAAA,GAEhEsF,aAAIgS,GAAoC,CAAE7tB,QAASqW,EAAAyX,GAAE9tB,WAAY,KAAD,oBAAAqW,EAAAI,OAAA,GAAAsX,GAAA,cAKnE,SAAU1nC,GAAaglC,GAAM,IAAAjwB,EAAAyjB,EAAA7kB,EAAAg0B,EAAAC,EAAA,OAAAhY,eAAAG,MAAA,SAAA8X,GAAA,cAAAA,EAAA5X,KAAA4X,EAAA3X,MAAA,OAKf,OAJbnb,EAAU,CACdqgB,UAAW,SACZyS,EAAA5X,KAAA,EAAA4X,EAAA3X,KAAA,EAEwB/L,aACrB8Q,GACA,OAAO,oBAEPlgB,EAAO5jB,YAAA,GACF6zC,EAAO1nB,UACZ,KAAD,EAED,OARMkb,EAAQqP,EAAAN,KAAAM,EAAA3X,KAAA,EAQRsF,aAAIgS,GAAoBr2C,YAAC,CAAC,EAAIqnC,EAAS7kB,QAAS,KAAD,EAGrD,OADMA,EAAO6kB,EAAS7kB,KAAIk0B,EAAA3X,KAAA,GACpBsF,aACJ1pB,aAAK6H,EAAKm0B,cAAe,CACvB34B,MAAO61B,EAAO1nB,QAAQnO,SAExB,KAAD,GAAA04B,EAAA3X,KAAA,iBAED,OAFC2X,EAAA5X,KAAA,GAAA4X,EAAAJ,GAAAI,EAAA,SAAAA,EAAA3X,KAAA,GAEKsF,aACJgS,GAAmB,CAAE7tB,SAAS,OAAAkuB,EAAAJ,SAAA,IAAAI,EAAAJ,IAAW,QAAXE,EAAAE,EAAAJ,GAAGjP,gBAAQ,IAAAmP,GAAM,QAANC,EAAXD,EAAah0B,YAAI,IAAAi0B,OAAjB,EAAAA,EAAmBjuB,WAAO,OAAAkuB,EAAAJ,SAAA,IAAAI,EAAAJ,QAAA,EAAII,EAAAJ,GAAG9tB,YAC/D,KAAD,oBAAAkuB,EAAAzX,OAAA,GAAAyW,GAAA,eAIE,SAAU9mC,GAAcilC,GAAM,OAAApV,eAAAG,MAAA,SAAAgY,GAAA,cAAAA,EAAA9X,KAAA8X,EAAA7X,MAAA,OAGjC,OAHiC6X,EAAA9X,KAAA,EAEjC3D,OAAOC,aAAaC,WAAW8a,IAA4BS,EAAA7X,KAAA,EACrDsF,aAAI1pB,aAAK,MAAM,KAAD,EAAAi8B,EAAA7X,KAAA,eAAA6X,EAAA9X,KAAA,EAAA8X,EAAAN,GAAAM,EAAA,SAEpBtqB,QAAQC,IAAGqqB,EAAAN,IAAQ,wBAAAM,EAAA3X,OAAA,GAAA0W,GAAA,cAKhB,SAAU3mC,GAAuB6kC,GAAM,IAAAjwB,EAAAyjB,EAAAwP,EAAAC,EAAAC,EAAA,OAAAtY,eAAAG,MAAA,SAAAoY,GAAA,cAAAA,EAAAlY,KAAAkY,EAAAjY,MAAA,OAMzB,OANyBiY,EAAAlY,KAAA,EAEpClb,EAAU,CACdqgB,UAAW,SACZ+S,EAAAjY,KAAA,EAEsB/L,aACrB8Q,GACA,OAAO,wBAEPlgB,EAAO5jB,YAAA,GACF6zC,EAAO1nB,UACZ,KAAD,EAGD,OATMkb,EAAQ2P,EAAAZ,KAQd9pB,QAAQC,IAAI,WAAY8a,GAAU2P,EAAAjY,KAAA,EAC5BsF,aAAIgS,GAA8Br2C,YAAC,CAAC,EAAIqnC,EAAS7kB,QAAS,KAAD,EAS/D,OARMq0B,EAAe72C,wBAAA,GAChBqnC,EAAS7kB,KAAKA,MAAI,IACrB2wB,eAAe,IAEjBhY,OAAOC,aAAavhB,QAClBs8B,GACAlW,KAAKC,UAAU2W,IACfG,EAAAjY,KAAA,GACIsF,aACJgS,GAAuB,CACrBQ,qBAEF,KAAD,GAED,OAFCG,EAAAjY,KAAA,GAEKsF,aAAI1pB,aAAK,MAAM,KAAD,GAAAq8B,EAAAjY,KAAA,iBAEpB,OAFoBiY,EAAAlY,KAAA,GAAAkY,EAAAV,GAAAU,EAAA,SAAAA,EAAAjY,KAAA,GAEdsF,aACJgS,GAA6B,CAC3B7tB,SAAS,OAAAwuB,EAAAV,SAAA,IAAAU,EAAAV,IAAW,QAAXQ,EAAAE,EAAAV,GAAGjP,gBAAQ,IAAAyP,GAAM,QAANC,EAAXD,EAAat0B,YAAI,IAAAu0B,OAAjB,EAAAA,EAAmBvuB,WAAO,OAAAwuB,EAAAV,SAAA,IAAAU,EAAAV,QAAA,EAAIU,EAAAV,GAAG9tB,YAE5C,KAAD,oBAAAwuB,EAAA/X,OAAA,GAAA2W,GAAA,eAKE,SAAUzmC,GAAiB0kC,GAAM,IAAAjwB,EAAAyjB,EAAA4P,EAAAC,EAAA,OAAAzY,eAAAG,MAAA,SAAAuY,GAAA,cAAAA,EAAArY,KAAAqY,EAAApY,MAAA,OAMnB,OANmBoY,EAAArY,KAAA,EAE9Blb,EAAU,CACdqgB,UAAW,SACZkT,EAAApY,KAAA,EAEsB/L,aACrB8Q,GACA,OAAO,wBAEPlgB,EAAO5jB,YAAA,GACF6zC,EAAO1nB,UACZ,KAAD,EAED,OARMkb,EAAQ8P,EAAAf,KAAAe,EAAApY,KAAA,EAQRsF,aAAIgS,GAAwBr2C,YAAC,CAAC,EAAIqnC,EAAS7kB,QAAS,KAAD,EAAA20B,EAAApY,KAAA,gBAEzD,OAFyDoY,EAAArY,KAAA,EAAAqY,EAAAb,GAAAa,EAAA,SAAAA,EAAApY,KAAA,GAEnDsF,aACJgS,GAA6B,CAC3B7tB,SAAS,OAAA2uB,EAAAb,SAAA,IAAAa,EAAAb,IAAW,QAAXW,EAAAE,EAAAb,GAAGjP,gBAAQ,IAAA4P,GAAM,QAANC,EAAXD,EAAaz0B,YAAI,IAAA00B,OAAjB,EAAAA,EAAmB1uB,WAAO,OAAA2uB,EAAAb,SAAA,IAAAa,EAAAb,QAAA,EAAIa,EAAAb,GAAG9tB,YAE5C,KAAD,oBAAA2uB,EAAAlY,OAAA,GAAA4W,GAAA,cAKE,SAAUvmC,GAAoBukC,GAAM,IAAAxM,EAAA+P,EAAAC,EAAA,OAAA5Y,eAAAG,MAAA,SAAA0Y,GAAA,cAAAA,EAAAxY,KAAAwY,EAAAvY,MAAA,OAEtB,OAFsBuY,EAAAxY,KAAA,EAAAwY,EAAAvY,KAAA,EAEhB/L,aAAK8Q,GAAU,MAAM,kBAAoB,GAAE9jC,YAAA,GAC7D6zC,EAAO1nB,UACT,KAAD,EACF,OAHMkb,EAAQiQ,EAAAlB,KAAAkB,EAAAvY,KAAA,EAGRsF,aAAIgS,GAA2Br2C,YAAC,CAAC,EAAIqnC,EAAS7kB,QAAS,KAAD,EAAA80B,EAAAvY,KAAA,gBAE5D,OAF4DuY,EAAAxY,KAAA,EAAAwY,EAAAhB,GAAAgB,EAAA,SAAAA,EAAAvY,KAAA,GAEtDsF,aACJgS,GAA0B,CACxB7tB,SAAS,OAAA8uB,EAAAhB,SAAA,IAAAgB,EAAAhB,IAAW,QAAXc,EAAAE,EAAAhB,GAAGjP,gBAAQ,IAAA+P,GAAM,QAANC,EAAXD,EAAa50B,YAAI,IAAA60B,OAAjB,EAAAA,EAAmB7uB,WAAO,OAAA8uB,EAAAhB,SAAA,IAAAgB,EAAAhB,QAAA,EAAIgB,EAAAhB,GAAG9tB,YAE5C,KAAD,oBAAA8uB,EAAArY,OAAA,GAAA6W,GAAA,cAIE,SAAUE,GAAwBnC,GAAM,IAAAxM,EAAAkQ,EAAAC,EAAA,OAAA/Y,eAAAG,MAAA,SAAA6Y,GAAA,cAAAA,EAAA3Y,KAAA2Y,EAAA1Y,MAAA,OAE1B,OAF0B0Y,EAAA3Y,KAAA,EAAA2Y,EAAA1Y,KAAA,EAEpB/L,aACrB8Q,GACA,OAAO,yBAEP,GACA+P,EAAO1nB,SACP,KAAD,EANa,GAOgB,iCAPxBkb,EAAQoQ,EAAArB,MAOD5zB,KAAKgG,QAAyC,CAAAivB,EAAA1Y,KAAA,cACnD,IAAItW,GAAM4e,EAAS7kB,KAAKgG,SAAS,KAAD,EAExC,OAFwCivB,EAAA1Y,KAAA,EAElCsF,aAAIgS,GAA+Br2C,YAAC,CAAC,EAAIqnC,EAAS7kB,QAAS,KAAD,EAEhEmN,KAAM4X,QAAQ,iCAAkC,CAC9C3nB,SAAU,YACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,IACT25B,EAAA1Y,KAAA,iBAYH,OAZG0Y,EAAA3Y,KAAA,GAAA2Y,EAAAnB,GAAAmB,EAAA,SAGH9nB,KAAM3xB,MAAM,uBAAwB,CAClC4hB,SAAU,YACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,IACT25B,EAAA1Y,KAAA,GACGsF,aACJgS,GAA8B,CAC5B7tB,SAAS,OAAAivB,EAAAnB,SAAA,IAAAmB,EAAAnB,IAAW,QAAXiB,EAAAE,EAAAnB,GAAGjP,gBAAQ,IAAAkQ,GAAM,QAANC,EAAXD,EAAa/0B,YAAI,IAAAg1B,OAAjB,EAAAA,EAAmBhvB,WAAO,OAAAivB,EAAAnB,SAAA,IAAAmB,EAAAnB,QAAA,EAAImB,EAAAnB,GAAG9tB,YAE5C,KAAD,oBAAAivB,EAAAxY,OAAA,GAAA8W,GAAA,eAIE,SAAUnmC,GAAuBikC,GAAM,IAAAxM,EAAAqQ,EAAAC,EAAA,OAAAlZ,eAAAG,MAAA,SAAAgZ,GAAA,cAAAA,EAAA9Y,KAAA8Y,EAAA7Y,MAAA,OAIzB,OAHnBzS,QAAQC,IAAI,iBAAiBqrB,EAAA9Y,KAAA,EAAA8Y,EAAA7Y,KAAA,EAGJ/L,aACrB8Q,GACA,MAAM,gCAEN,GACA+P,EAAO1nB,SACP,KAAD,EANa,GAOgB,iCAPxBkb,EAAQuQ,EAAAxB,MAOD5zB,KAAKgG,QAAyC,CAAAovB,EAAA7Y,KAAA,cACnD,IAAItW,GAAM4e,EAAS7kB,KAAKgG,SAAS,KAAD,EAExC,OAFwCovB,EAAA7Y,KAAA,EAElCsF,aAAIgS,GAA8Br2C,YAAC,CAAC,EAAIqnC,EAAS7kB,QAAS,KAAD,EAAAo1B,EAAA7Y,KAAA,iBAI/D,OAJ+D6Y,EAAA9Y,KAAA,GAAA8Y,EAAAtB,GAAAsB,EAAA,SAAAA,EAAA7Y,KAAA,GAIzDsF,aACJgS,GAA6B,CAC3B7tB,SAAS,OAAAovB,EAAAtB,SAAA,IAAAsB,EAAAtB,IAAW,QAAXoB,EAAAE,EAAAtB,GAAGjP,gBAAQ,IAAAqQ,GAAM,QAANC,EAAXD,EAAal1B,YAAI,IAAAm1B,OAAjB,EAAAA,EAAmBnvB,WAAO,OAAAovB,EAAAtB,SAAA,IAAAsB,EAAAtB,QAAA,EAAIsB,EAAAtB,GAAG9tB,YAE5C,KAAD,oBAAAovB,EAAA3Y,OAAA,GAAAgX,GAAA,e,2BC/MYroC,IAAiB8nC,GAAAjX,eAAAC,KAMjBvwB,IAAmBwnC,GAAAlX,eAAAC,KAMnBhwB,IAZV,SAAUd,GAAkBimC,GAAM,OAAApV,eAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAErC,OAFqCF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAE/BsF,aAAIgS,GAA0BxC,EAAO1nB,UAAU,KAAD,EAAA0S,EAAAE,KAAA,eAAAF,EAAAC,KAAA,EAAAD,EAAAyX,GAAAzX,EAAA,iCAAAA,EAAAI,OAAA,GAAAsX,GAAA,cAIjD,SAAUpoC,GAAoB0lC,GAAM,OAAApV,eAAAG,MAAA,SAAA8X,GAAA,cAAAA,EAAA5X,KAAA4X,EAAA3X,MAAA,OAEvC,OAFuC2X,EAAA5X,KAAA,EAAA4X,EAAA3X,KAAA,EAEjCsF,aAAIgS,GAA4BxC,EAAO1nB,UAAU,KAAD,EAAAuqB,EAAA3X,KAAA,eAAA2X,EAAA5X,KAAA,EAAA4X,EAAAJ,GAAAI,EAAA,iCAAAA,EAAAzX,OAAA,GAAAyW,GAAA,cAInD,SAAUhnC,GAAqBmlC,GAAM,OAAApV,eAAAG,MAAA,SAAAgY,GAAA,cAAAA,EAAA9X,KAAA8X,EAAA7X,MAAA,OAExC,OAFwC6X,EAAA9X,KAAA,EAAA8X,EAAA7X,KAAA,EAElCsF,aAAIgS,GAA6BxC,EAAO1nB,UAAU,KAAD,EAAAyqB,EAAA7X,KAAA,eAAA6X,EAAA9X,KAAA,EAAA8X,EAAAN,GAAAM,EAAA,iCAAAA,EAAA3X,OAAA,GAAA0W,GAAA,c,2BCZ1CnrC,IAAoBkrC,GAAAjX,eAAAC,KAqBpB5wB,IAAoB6nC,GAAAlX,eAAAC,KAoBpB5zB,IAAoB8qC,GAAAnX,eAAAC,KAsBpBmZ,IAAqBhC,GAAApX,eAAAC,KAsBrBoZ,IAAqBhC,GAAArX,eAAAC,KAqBrBqZ,IAAoBhC,GAAAtX,eAAAC,KAmBpBsZ,IAAkB/B,GAAAxX,eAAAC,KAyBlBpzB,IAAoB2sC,GAAAxZ,eAAAC,KAcpBwZ,IAAyBC,GAAA1Z,eAAAC,KAmCzB0Z,IAAyBC,GAAA5Z,eAAAC,KA8BzB4Z,IAAyBC,GAAA9Z,eAAAC,KA8BzB8Z,IAAsBC,GAAAha,eAAAC,KAmBtBjxB,IAAkBirC,GAAAja,eAAAC,KAclBvxB,IAAkBwrC,GAAAla,eAAAC,KA2ClB7yB,IAAkB+sC,GAAAna,eAAAC,KA0BlBma,IAAgBC,GAAAra,eAAAC,KAahB/zB,IAAqBouC,GAAAta,eAAAC,KA4BrBzzB,IAAmB+tC,GAAAva,eAAAC,KAanBua,IAAsBC,GAAAza,eAAAC,KAuBtBya,IAAyBC,GAAA3a,eAAAC,KA8BzBtyB,IAAkBitC,GAAA5a,eAAAC,KAiClBnyB,IAA0B+sC,GAAA7a,eAAAC,KAwB1BhyB,IAA6B6sC,GAAA9a,eAAAC,KAyB7B7xB,IAA6B2sC,GAAA/a,eAAAC,KAc7B3xB,IAA6B0sC,GAAAhb,eAAAC,KA0B7B1wB,IAA6B0rC,GAAAjb,eAAAC,KAS7Bib,IAAsBC,GAAAnb,eAAAC,KAmCtB3uB,IAAqB8pC,GAAApb,eAAAC,KA+BrBob,IAAyBC,GAAAtb,eAAAC,KAsBzBsb,IAAsBC,GAAAxb,eAAAC,KA2BtB7tB,IAAmBqpC,GAAAzb,eAAAC,KAqBnB1tB,IAAoBmpC,GAAA1b,eAAAC,KAUpB0b,IAAuBC,GAAA5b,eAAAC,KAwBvBrtB,IAA2BipC,GAAA7b,eAAAC,KA6C3BltB,IAA+B+oC,GAAA9b,eAAAC,KAkB/B/sB,IAAgC6oC,GAAA/b,eAAAC,KA0BhC5sB,IAAiC2oC,GAAAhc,eAAAC,KAyBjCzsB,IAAkCyoC,GAAAjc,eAAAC,KAwBlCvsB,IAAsCwoC,GAAAlc,eAAAC,KA4BtCpsB,IAAwBsoC,GAAAnc,eAAAC,KAaxBjsB,IAAyBooC,GAAApc,eAAAC,KA0BzB9rB,IAA0BkoC,GAAArc,eAAAC,KA6B1B3rB,IAA2BgoC,GAAAtc,eAAAC,KAwB3BzrB,IAA+B+nC,GAAAvc,eAAAC,KA0B/BtrB,IAAyB6nC,GAAAxc,eAAAC,KAazBnrB,IAA0B2nC,GAAAzc,eAAAC,KA0B1BhrB,IAA2BynC,GAAA1c,eAAAC,KA6B3B7qB,IAA4BunC,GAAA3c,eAAAC,KAwB5B3qB,IAAgCsnC,GAAA5c,eAAAC,KA0BhC4c,IAAyBC,GAAA9c,eAAAC,KA6BzBtqB,IAhrCV,SAAU5J,GAAqBqpC,GAAM,IAAAxM,EAAAmU,EAAA,OAAA/c,eAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAC1C,OAD0CF,EAAAE,KAAA,EACpCsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BxX,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEpB/L,aACrB8Q,GACA,OAAO,UAEP,GACA+P,EAAO1nB,SACP,KAAD,EACgB,OAPXkb,EAAQxI,EAAAuX,KAAAvX,EAAAE,KAAA,EAOS/L,aAAK8Q,GAAU,MAAM,UAAY,IAAI,KAAD,EAC3D,OADM0X,EAAQ3c,EAAAuX,KAAAvX,EAAAE,KAAA,GACRsF,aAAIgS,GAA2BmF,EAASh5B,KAAKA,OAAO,KAAD,GACzD,OADyDqc,EAAAE,KAAA,GACnDsF,aAAIgS,GAA6BhP,EAAS7kB,KAAKA,OAAO,KAAD,GAC3D,OAD2Dqc,EAAAE,KAAA,GACrDsF,aAAIgS,IAA0B,IAAQ,KAAD,GAAAxX,EAAAE,KAAA,iBAE3C,OAF2CF,EAAAC,KAAA,GAAAD,EAAAyX,GAAAzX,EAAA,SAAAA,EAAAE,KAAA,GAErCsF,aAAIgS,GAA2B,CAAE7tB,QAASqW,EAAAyX,GAAE9tB,WAAY,KAAD,GAE7D,OAF6DqW,EAAAC,KAAA,GAAAD,EAAAE,KAAA,GAEvDsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAAxX,EAAA4c,OAAA,6BAAA5c,EAAAI,OAAA,GAAAsX,GAAA,qBAI3C,SAAUzoC,GAAqB+lC,GAAM,IAAAxM,EAAAmU,EAAA,OAAA/c,eAAAG,MAAA,SAAA8X,GAAA,cAAAA,EAAA5X,KAAA4X,EAAA3X,MAAA,OAC1C,OAD0C2X,EAAA3X,KAAA,EACpCsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BK,EAAA5X,KAAA,EAAA4X,EAAA3X,KAAA,EAEpB/L,aACrB8Q,GACA,SAAS,WAAD9mB,OACG62B,EAAO1nB,QAAQnN,WAC1B,IACA,KAAD,EACgB,OANXqoB,EAAQqP,EAAAN,KAAAM,EAAA3X,KAAA,EAMS/L,aAAK8Q,GAAU,MAAM,UAAY,IAAI,KAAD,EAC3D,OADM0X,EAAQ9E,EAAAN,KAAAM,EAAA3X,KAAA,GACRsF,aAAIgS,GAA2BmF,EAASh5B,KAAKA,OAAO,KAAD,GACzD,OADyDk0B,EAAA3X,KAAA,GACnDsF,aAAIgS,GAA6BhP,EAAS7kB,KAAKA,OAAO,KAAD,GAAAk0B,EAAA3X,KAAA,iBAE3D,OAF2D2X,EAAA5X,KAAA,GAAA4X,EAAAJ,GAAAI,EAAA,SAAAA,EAAA3X,KAAA,GAErDsF,aAAIgS,GAA2B,CAAE7tB,QAASkuB,EAAAJ,GAAE9tB,WAAY,KAAD,GAE7D,OAF6DkuB,EAAA5X,KAAA,GAAA4X,EAAA3X,KAAA,GAEvDsF,aAAIgS,IAA6B,IAAQ,KAAD,GAC9C,OAD8CK,EAAA3X,KAAA,GACxCsF,aAAIgS,IAA0B,IAAQ,KAAD,UAAAK,EAAA+E,OAAA,6BAAA/E,EAAAzX,OAAA,GAAAyW,GAAA,qBAIxC,SAAU5qC,GAAqB+oC,GAAM,IAAAxM,EAAAmU,EAAA,OAAA/c,eAAAG,MAAA,SAAAgY,GAAA,cAAAA,EAAA9X,KAAA8X,EAAA7X,MAAA,OAC1C,OAD0C6X,EAAA7X,KAAA,EACpCsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BO,EAAA9X,KAAA,EAAA8X,EAAA7X,KAAA,EAEpB/L,aACrB8Q,GACA,MAAM,WAAD9mB,OACM62B,EAAO1nB,QAAQnN,WAC1B,GACA60B,EAAO1nB,QAAQ3J,MACf,KAAD,EACgB,OAPX6kB,EAAQuP,EAAAR,KAAAQ,EAAA7X,KAAA,EAOS/L,aAAK8Q,GAAU,MAAM,UAAY,IAAI,KAAD,EAC3D,OADM0X,EAAQ5E,EAAAR,KAAAQ,EAAA7X,KAAA,GACRsF,aAAIgS,GAA2BmF,EAASh5B,KAAKA,OAAO,KAAD,GACzD,OADyDo0B,EAAA7X,KAAA,GACnDsF,aAAIgS,GAA6BhP,EAAS7kB,KAAKA,OAAO,KAAD,GAC3D,OAD2Do0B,EAAA7X,KAAA,GACrDsF,aAAIgS,IAA0B,IAAQ,KAAD,GAAAO,EAAA7X,KAAA,iBAE3C,OAF2C6X,EAAA9X,KAAA,GAAA8X,EAAAN,GAAAM,EAAA,SAAAA,EAAA7X,KAAA,GAErCsF,aAAIgS,GAA2B,CAAE7tB,QAASouB,EAAAN,GAAE9tB,WAAY,KAAD,GAE7D,OAF6DouB,EAAA9X,KAAA,GAAA8X,EAAA7X,KAAA,GAEvDsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAAO,EAAA6E,OAAA,6BAAA7E,EAAA3X,OAAA,GAAA0W,GAAA,qBAK3C,SAAUkC,GAAsBhE,GAAM,IAAAxM,EAAAje,EAAA,OAAAqV,eAAAG,MAAA,SAAAoY,GAAA,cAAAA,EAAAlY,KAAAkY,EAAAjY,MAAA,OAC3C,OAD2CiY,EAAAjY,KAAA,EACrCsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BW,EAAAlY,KAAA,EAAAkY,EAAAjY,KAAA,EAEpB/L,aACrB8Q,GACA,OAAO,UAEP,GACA+P,EAAO1nB,SACP,KAAD,EACe,OAPVkb,EAAQ2P,EAAAZ,KAAAY,EAAAjY,KAAA,EAOQ/L,aAAK8Q,GAAU,MAAM,oBAAsB,IAAI,KAAD,EACpE,OADM1a,EAAO4tB,EAAAZ,KAAAY,EAAAjY,KAAA,GACPsF,aAAIgS,GAA6BjtB,EAAQ5G,KAAKA,OAAO,KAAD,GAC1D,OAD0Dw0B,EAAAjY,KAAA,GACpDsF,aAAIgS,GAA4BhP,EAAS7kB,KAAKA,OAAO,KAAD,GAAAw0B,EAAAjY,KAAA,iBAE1D,OAF0DiY,EAAAlY,KAAA,GAAAkY,EAAAV,GAAAU,EAAA,SAAAA,EAAAjY,KAAA,GAEpDsF,aAAIgS,GAA2B,CAAE7tB,QAASwuB,EAAAV,GAAE9tB,WAAY,KAAD,GAE7D,OAF6DwuB,EAAAlY,KAAA,GAAAkY,EAAAjY,KAAA,GAEvDsF,aAAIgS,IAA0B,IAAQ,KAAD,GAC3C,OAD2CW,EAAAjY,KAAA,GACrCsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAAW,EAAAyE,OAAA,6BAAAzE,EAAA/X,OAAA,GAAA2W,GAAA,qBAK3C,SAAUkC,GAAsBjE,GAAM,IAAAxM,EAAAje,EAAA,OAAAqV,eAAAG,MAAA,SAAAuY,GAAA,cAAAA,EAAArY,KAAAqY,EAAApY,MAAA,OAC3C,OAD2CoY,EAAApY,KAAA,EACrCsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0Bc,EAAArY,KAAA,EAAAqY,EAAApY,KAAA,EAEpB/L,aACrB8Q,GACA,MAAM,WAAD9mB,OACM62B,EAAO1nB,QAAQrJ,UAC1B,GACA+wB,EAAO1nB,QAAQ3J,MACf,KAAD,EACe,OAPV6kB,EAAQ8P,EAAAf,KAAAe,EAAApY,KAAA,EAOQ/L,aAAK8Q,GAAU,MAAM,oBAAsB,IAAI,KAAD,EACpE,OADM1a,EAAO+tB,EAAAf,KAAAe,EAAApY,KAAA,GACPsF,aAAIgS,GAA6BjtB,EAAQ5G,KAAKA,OAAO,KAAD,GAC1D,OAD0D20B,EAAApY,KAAA,GACpDsF,aAAIgS,GAA4BhP,EAAS7kB,KAAKA,OAAO,KAAD,GAC1D,OAD0D20B,EAAApY,KAAA,GACpDsF,aAAIgS,IAA0B,IAAQ,KAAD,GAAAc,EAAApY,KAAA,iBAE3C,OAF2CoY,EAAArY,KAAA,GAAAqY,EAAAb,GAAAa,EAAA,SAAAA,EAAApY,KAAA,GAErCsF,aAAIgS,GAA2B,CAAE7tB,QAAS2uB,EAAAb,GAAE9tB,WAAY,KAAD,GAE7D,OAF6D2uB,EAAArY,KAAA,GAAAqY,EAAApY,KAAA,GAEvDsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAAc,EAAAsE,OAAA,6BAAAtE,EAAAlY,OAAA,GAAA4W,GAAA,qBAI3C,SAAUkC,GAAqBlE,GAAM,IAAAxM,EAAAje,EAAA,OAAAqV,eAAAG,MAAA,SAAA0Y,GAAA,cAAAA,EAAAxY,KAAAwY,EAAAvY,MAAA,OAC1C,OAD0CuY,EAAAvY,KAAA,EACpCsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BiB,EAAAxY,KAAA,EAAAwY,EAAAvY,KAAA,EAEpB/L,aACrB8Q,GACA,SAAS,WAAD9mB,OACG62B,EAAO1nB,QAAQrJ,UAC1B,GACA+wB,EAAO1nB,QAAQ3J,MACf,KAAD,EACe,OAPV6kB,EAAQiQ,EAAAlB,KAAAkB,EAAAvY,KAAA,EAOQ/L,aAAK8Q,GAAU,MAAM,oBAAsB,IAAI,KAAD,EACpE,OADM1a,EAAOkuB,EAAAlB,KAAAkB,EAAAvY,KAAA,GACPsF,aAAIgS,GAA6BjtB,EAAQ5G,KAAKA,OAAO,KAAD,GAC1D,OAD0D80B,EAAAvY,KAAA,GACpDsF,aAAIgS,GAA6BhP,EAAS7kB,KAAKA,OAAO,KAAD,GAAA80B,EAAAvY,KAAA,iBAAAuY,EAAAxY,KAAA,GAAAwY,EAAAhB,GAAAgB,EAAA,iBAG3D,OAH2DA,EAAAxY,KAAA,GAAAwY,EAAAvY,KAAA,GAGrDsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAAiB,EAAAmE,OAAA,6BAAAnE,EAAArY,OAAA,GAAA6W,GAAA,qBAI3C,SAAUkC,GAAmBnE,GAAM,IAAAxM,EAAAqU,EAAA,OAAAjd,eAAAG,MAAA,SAAA6Y,GAAA,cAAAA,EAAA3Y,KAAA2Y,EAAA1Y,MAAA,OACxC,OADwC0Y,EAAA1Y,KAAA,EAClCsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BoB,EAAA3Y,KAAA,EAAA2Y,EAAA1Y,KAAA,EAEpB/L,aACrB8Q,GACA,SAAS,UAAD9mB,OACE62B,EAAO1nB,QAAQlN,SACzB,GACA40B,EAAO1nB,QAAQ3J,MACf,KAAD,EACc,OAPT6kB,EAAQoQ,EAAArB,KAAAqB,EAAA1Y,KAAA,EAOO/L,aAAK8Q,GAAU,MAAM,SAAW,IAAI,KAAD,EAA5C,GAAN4X,EAAMjE,EAAArB,MACRx3B,MAAMC,QAAQ68B,EAAOl5B,QAASk5B,EAAOl5B,KAAKtI,OAAM,CAAAu9B,EAAA1Y,KAAA,SAClD,OADkD0Y,EAAA1Y,KAAA,GAC5CsF,aAAIgS,GAAwBqF,EAAOl5B,OAAO,KAAD,GAAAi1B,EAAA1Y,KAAA,iBAE/C,OAF+C0Y,EAAA1Y,KAAA,GAEzCsF,aAAIgS,GAAsB,CAAE7tB,QAAS,2BAA4B,KAAD,GAExE,OAFwEivB,EAAA1Y,KAAA,GAElEsF,aAAIgS,GAA2BhP,EAAS7kB,KAAKA,OAAO,KAAD,GAAAi1B,EAAA1Y,KAAA,iBAEzD,OAFyD0Y,EAAA3Y,KAAA,GAAA2Y,EAAAnB,GAAAmB,EAAA,SAAAA,EAAA1Y,KAAA,GAEnDsF,aAAIgS,GAAyB,CAAE7tB,QAASivB,EAAAnB,GAAE9tB,WAAY,KAAD,GAE3D,OAF2DivB,EAAA3Y,KAAA,GAAA2Y,EAAA1Y,KAAA,GAErDsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAAoB,EAAAgE,OAAA,6BAAAhE,EAAAxY,OAAA,GAAA8W,GAAA,qBAK3C,SAAUzqC,GAAqBuoC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAAgZ,GAAA,cAAAA,EAAA9Y,KAAA8Y,EAAA7Y,MAAA,OAEvB,OAFuB6Y,EAAA9Y,KAAA,EAAA8Y,EAAA7Y,KAAA,EAEjB/L,aAAK8Q,GAAU,MAAM,oBAAsB,IAAI,KAAD,EAAvD,GAARuD,EAAQuQ,EAAAxB,MACVx3B,MAAMC,QAAQwoB,EAAS7kB,KAAKA,QAAS6kB,EAAS7kB,KAAKA,KAAKtI,OAAM,CAAA09B,EAAA7Y,KAAA,QAChE,OADgE6Y,EAAA7Y,KAAA,EAC1DsF,aAAIgS,GAA6BhP,EAAS7kB,KAAKA,OAAO,KAAD,EAAAo1B,EAAA7Y,KAAA,sBAErD,IAAItW,MAAM,6BAA6B,KAAD,GAAAmvB,EAAA7Y,KAAA,iBAG9C,OAH8C6Y,EAAA9Y,KAAA,GAAA8Y,EAAAtB,GAAAsB,EAAA,SAAAA,EAAA7Y,KAAA,GAGxCsF,aAAIgS,GAA2B,CAAE7tB,QAASovB,EAAAtB,GAAE9tB,WAAY,KAAD,oBAAAovB,EAAA3Y,OAAA,GAAAgX,GAAA,eAK1D,SAAUiC,GAA0BrE,GAAM,IAAAxM,EAAAsU,EAAA,OAAAld,eAAAG,MAAA,SAAAgd,GAAA,cAAAA,EAAA9c,KAAA8c,EAAA7c,MAAA,OAC/C,OAD+C6c,EAAA7c,KAAA,EACzCsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BuF,EAAA9c,KAAA,EAAA8c,EAAA7c,KAAA,EAEpB/L,aACrB8Q,GACA,OAAO,qBAEP,GACA+P,EAAO1nB,QAAQ1J,UACf,KAAD,EACkB,OAPb4kB,EAAQuU,EAAAxF,KAAAwF,EAAA7c,KAAA,EAOW/L,aACvB8Q,GACA,MAAM,qCAEN,IACA,KAAD,EALe,GAAV6X,EAAUC,EAAAxF,MAMZx3B,MAAMC,QAAQ88B,EAAWn5B,KAAKA,QAASm5B,EAAWn5B,KAAKA,KAAKtI,OAAM,CAAA0hC,EAAA7c,KAAA,SACpE,OADoE6c,EAAA7c,KAAA,GAC9DsF,aAAIgS,GAA+BsF,EAAWn5B,KAAKA,KAAKq5B,YAAY,KAAD,GAAAD,EAAA7c,KAAA,uBAEnE,IAAItW,MAAM,wBAAwB,KAAD,GAGzC,OAHyCmzB,EAAA7c,KAAA,GAGnCsF,aAAIgS,GAAkChP,EAAS7kB,KAAKA,OAAO,KAAD,GAAAo5B,EAAA7c,KAAA,iBAKhE,OALgE6c,EAAA9c,KAAA,GAAA8c,EAAAtF,GAAAsF,EAAA,SAAAA,EAAA7c,KAAA,GAK1DsF,aAAIgS,GAAgC,CAAE7tB,QAASozB,EAAAtF,GAAE9tB,WAAY,KAAD,GAElE,OAFkEozB,EAAA9c,KAAA,GAAA8c,EAAA7c,KAAA,GAE5DsF,aAAIgS,IAA6B,IAAQ,KAAD,GAC9C,OAD8CuF,EAAA7c,KAAA,GACxCsF,aAAIgS,IAA0B,IAAQ,KAAD,UAAAuF,EAAAH,OAAA,6BAAAG,EAAA3c,OAAA,GAAAgZ,GAAA,qBAKxC,SAAUG,GAA0BvE,GAAM,IAAAxM,EAAAsU,EAAA,OAAAld,eAAAG,MAAA,SAAAkd,GAAA,cAAAA,EAAAhd,KAAAgd,EAAA/c,MAAA,OAC/C,OAD+C+c,EAAA/c,KAAA,EACzCsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0ByF,EAAAhd,KAAA,EAAAgd,EAAA/c,KAAA,EAEpB/L,aACrB8Q,GACA,SAAS,sBAAD9mB,OACc62B,EAAO1nB,QAAQ7R,KACrC,GACA,IACA,KAAD,EACkB,OAPb+sB,EAAQyU,EAAA1F,KAAA0F,EAAA/c,KAAA,EAOW/L,aACvB8Q,GACA,MAAM,qCAEN,IACA,KAAD,EALe,GAAV6X,EAAUG,EAAA1F,MAMZx3B,MAAMC,QAAQ88B,EAAWn5B,KAAKA,QAASm5B,EAAWn5B,KAAKA,KAAKtI,OAAM,CAAA4hC,EAAA/c,KAAA,SACpE,OADoE+c,EAAA/c,KAAA,GAC9DsF,aAAIgS,GAA+BsF,EAAWn5B,KAAKA,KAAKq5B,YAAY,KAAD,GAAAC,EAAA/c,KAAA,uBAEnE,IAAItW,MAAM,wBAAwB,KAAD,GAEzC,OAFyCqzB,EAAA/c,KAAA,GAEnCsF,aAAIgS,GAAkChP,EAAS7kB,KAAKA,OAAO,KAAD,GAAAs5B,EAAA/c,KAAA,iBAAA+c,EAAAhd,KAAA,GAAAgd,EAAAxF,GAAAwF,EAAA,iBAGhE,OAHgEA,EAAAhd,KAAA,GAAAgd,EAAA/c,KAAA,GAG1DsF,aAAIgS,IAA6B,IAAQ,KAAD,GAC9C,OAD8CyF,EAAA/c,KAAA,GACxCsF,aAAIgS,IAA0B,IAAQ,KAAD,UAAAyF,EAAAL,OAAA,6BAAAK,EAAA7c,OAAA,GAAAkZ,GAAA,qBAKxC,SAAUG,GAA0BzE,GAAM,IAAAxM,EAAAsU,EAAA,OAAAld,eAAAG,MAAA,SAAAmd,GAAA,cAAAA,EAAAjd,KAAAid,EAAAhd,MAAA,OAC/C,OAD+Cgd,EAAAhd,KAAA,EACzCsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0B0F,EAAAjd,KAAA,EAAAid,EAAAhd,KAAA,EAEpB/L,aACrB8Q,GACA,MAAM,sBAAD9mB,OACiB62B,EAAO1nB,QAAQ7R,KACrC,GACAu5B,EAAO1nB,QAAQ1J,UACf,KAAD,EACkB,OAPb4kB,EAAQ0U,EAAA3F,KAAA2F,EAAAhd,KAAA,EAOW/L,aACvB8Q,GACA,MAAM,qCAEN,IACA,KAAD,EALe,GAAV6X,EAAUI,EAAA3F,MAMZx3B,MAAMC,QAAQ88B,EAAWn5B,KAAKA,QAASm5B,EAAWn5B,KAAKA,KAAKtI,OAAM,CAAA6hC,EAAAhd,KAAA,SACpE,OADoEgd,EAAAhd,KAAA,GAC9DsF,aAAIgS,GAA+BsF,EAAWn5B,KAAKA,KAAKq5B,YAAY,KAAD,GAAAE,EAAAhd,KAAA,uBAEnE,IAAItW,MAAM,wBAAwB,KAAD,GAEzC,OAFyCszB,EAAAhd,KAAA,GAEnCsF,aAAIgS,GAAkChP,EAAS7kB,KAAKA,OAAO,KAAD,GAAAu5B,EAAAhd,KAAA,iBAAAgd,EAAAjd,KAAA,GAAAid,EAAAzF,GAAAyF,EAAA,iBAGhE,OAHgEA,EAAAjd,KAAA,GAAAid,EAAAhd,KAAA,GAG1DsF,aAAIgS,IAA6B,IAAQ,KAAD,GAC9C,OAD8C0F,EAAAhd,KAAA,GACxCsF,aAAIgS,IAA0B,IAAQ,KAAD,UAAA0F,EAAAN,OAAA,6BAAAM,EAAA9c,OAAA,GAAAoZ,GAAA,qBAKxC,SAAUG,GAAuB3E,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAAod,GAAA,cAAAA,EAAAld,KAAAkd,EAAAjd,MAAA,OAEzB,OAFyBid,EAAAld,KAAA,EAAAkd,EAAAjd,KAAA,EAEnB/L,aACrB8Q,GACA,MAAM,qCAEN,IACA,KAAD,EAED,OAPMuD,EAAQ2U,EAAA5F,KAAA4F,EAAAjd,KAAA,EAORsF,aAAIgS,GAA+BhP,EAAS7kB,KAAKA,KAAKq5B,YAAY,KAAD,EAAAG,EAAAjd,KAAA,gBAKvE,OALuEid,EAAAld,KAAA,EAAAkd,EAAA1F,GAAA0F,EAAA,SAAAA,EAAAjd,KAAA,GAKjEsF,aAAIgS,GAA6B,CAAE7tB,QAASwzB,EAAA1F,GAAE9tB,WAAY,KAAD,oBAAAwzB,EAAA/c,OAAA,GAAAsZ,GAAA,cAK5D,SAAU9qC,GAAmBomC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAAqd,GAAA,cAAAA,EAAAnd,KAAAmd,EAAAld,MAAA,OAErB,OAFqBkd,EAAAnd,KAAA,EAAAmd,EAAAld,KAAA,EAEf/L,aAAK8Q,GAAU,MAAM,UAAY,IAAI,KAAD,EAA7C,GAARuD,EAAQ4U,EAAA7F,MACVx3B,MAAMC,QAAQwoB,EAAS7kB,KAAKA,QAAS6kB,EAAS7kB,KAAKA,KAAKtI,OAAM,CAAA+hC,EAAAld,KAAA,QAChE,OADgEkd,EAAAld,KAAA,EAC1DsF,aAAIgS,GAA2BhP,EAAS7kB,KAAKA,OAAO,KAAD,EAAAy5B,EAAAld,KAAA,sBAEnD,IAAItW,MAAM,2BAA2B,KAAD,GAAAwzB,EAAAld,KAAA,iBAG5C,OAH4Ckd,EAAAnd,KAAA,GAAAmd,EAAA3F,GAAA2F,EAAA,SAAAA,EAAAld,KAAA,GAGtCsF,aAAIgS,GAAyB,CAAE7tB,QAASyzB,EAAA3F,GAAE9tB,WAAY,KAAD,oBAAAyzB,EAAAhd,OAAA,GAAAwZ,GAAA,eAKxD,SAAUtrC,GAAmB0mC,GAAM,IAAAxM,EAAA/gB,EAAA41B,EAAAC,EAAA,OAAA1d,eAAAG,MAAA,SAAAwd,GAAA,cAAAA,EAAAtd,KAAAsd,EAAArd,MAAA,OACxC,OADwCqd,EAAArd,KAAA,EAClCsF,aAAIgS,IAA6B,IAAO,KAAD,EAG1B,OAH0B+F,EAAAtd,KAAA,EAAAsd,EAAArd,KAAA,EAGpB/L,aACrB8Q,GACA,OAAO,SAEP,GACA+P,EAAO1nB,QAAQE,UACf,KAAD,EANa,KAARgb,EAAQ+U,EAAAhG,MAWD5zB,KAAKA,KAAK,CAAD45B,EAAArd,KAAA,YACc,eAA9B8U,EAAO1nB,QAAQ+D,WAA2B,CAAAksB,EAAArd,KAAA,SAE5C,OADMzY,EAAOtmB,YAAA,GAAQqnC,EAAS7kB,KAAKA,MAAI45B,EAAArd,KAAA,GACjCsF,aAAIgS,GAAkC,CAAEp3B,QAASqH,EAAQhM,OAAQ,KAAD,GAGE,KAAD,GAAA8hC,EAAArd,KAAA,SAHD,WAC/B,gBAA9B8U,EAAO1nB,QAAQ+D,WAA4B,CAAAksB,EAAArd,KAAA,SAEpD,OADMzY,EAAOtmB,YAAA,GAAQqnC,EAAS7kB,KAAKA,MAAI45B,EAAArd,KAAA,GACjCsF,aAAIgS,GAAmC,CAAEp3B,QAASqH,EAAQhM,OAAO,QAGvE,OADMgM,EAAOtmB,YAAA,GAAQqnC,EAAS7kB,KAAKA,MAAI45B,EAAArd,KAAA,GACjCsF,aACJgS,GAAkC,CAChCp3B,QAASqH,EAAQhM,IACjB+hC,SAAUxI,EAAO1nB,QAAQ+D,cAE3B,KAAD,GAGH,OAHGksB,EAAArd,KAAA,GAGGsF,aAAIgS,GAA2BhP,EAAS7kB,KAAKA,OAAO,KAAD,GAAA45B,EAAArd,KAAA,iBAG3D,OAH2Dqd,EAAAtd,KAAA,GAAAsd,EAAA9F,GAAA8F,EAAA,SAAAA,EAAArd,KAAA,GAGrDsF,aAAIgS,GAAyB,CAAE7tB,QAAS4zB,EAAA9F,GAAE9tB,WAAY,KAAD,GAE3D,OAF2D4zB,EAAAtd,KAAA,GAAAsd,EAAArd,KAAA,GAErDsF,aAAIgS,IAA0B,IAAQ,KAAD,GAC3C,OAD2C+F,EAAArd,KAAA,GACrCsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAA+F,EAAAX,OAAA,6BAAAW,EAAAnd,OAAA,GAAAyZ,GAAA,qBAK3C,SAAU7sC,GAAmBgoC,GAAM,IAAAxM,EAAAvoB,EAAA,OAAA2f,eAAAG,MAAA,SAAA0d,GAAA,cAAAA,EAAAxd,KAAAwd,EAAAvd,MAAA,OACxC,OADwCud,EAAAvd,KAAA,EAClCsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BiG,EAAAxd,KAAA,EAAAwd,EAAAvd,KAAA,EAEpB/L,aACrB8Q,GACA,MAAM,UAAD9mB,OACK62B,EAAO1nB,QAAQ7R,KACzB,GACAu5B,EAAO1nB,QAAQA,SACf,KAAD,EACc,OAPTkb,EAAQiV,EAAAlG,KAAAkG,EAAAvd,KAAA,EAOO/L,aAAK8Q,GAAU,MAAM,YAAc,IAAI,KAAD,EAA/C,GAANhlB,EAAMw9B,EAAAlG,MACRx3B,MAAMC,QAAQC,EAAO0D,KAAKA,QAAS1D,EAAO0D,KAAKA,KAAKtI,OAAM,CAAAoiC,EAAAvd,KAAA,SAC5D,OAD4Dud,EAAAvd,KAAA,GACtDsF,aAAIgS,GAA4Bv3B,EAAO0D,KAAKA,OAAO,KAAD,GAAA85B,EAAAvd,KAAA,iBAExD,OAFwDud,EAAAvd,KAAA,GAElDsF,aAAIgS,GAA0B,CAAE7tB,QAAS,yBAA0B,KAAD,GAG1E,OAH0E8zB,EAAAvd,KAAA,GAGpEsF,aAAIgS,GAA2BhP,EAAS7kB,KAAKA,OAAO,KAAD,GAAA85B,EAAAvd,KAAA,iBAEzD,OAFyDud,EAAAxd,KAAA,GAAAwd,EAAAhG,GAAAgG,EAAA,SAAAA,EAAAvd,KAAA,GAEnDsF,aAAIgS,GAAyB,CAAE7tB,QAAS8zB,EAAAhG,GAAE9tB,WAAY,KAAD,GAE3D,OAF2D8zB,EAAAxd,KAAA,GAAAwd,EAAAvd,KAAA,GAErDsF,aAAIgS,IAA0B,IAAQ,KAAD,GAC3C,OAD2CiG,EAAAvd,KAAA,GACrCsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAAiG,EAAAb,OAAA,6BAAAa,EAAArd,OAAA,GAAA0Z,GAAA,qBAI3C,SAAUE,GAAiBhF,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAA2d,GAAA,cAAAA,EAAAzd,KAAAyd,EAAAxd,MAAA,OAEnB,OAFmBwd,EAAAzd,KAAA,EAAAyd,EAAAxd,KAAA,EAEb/L,aAAK8Q,GAAU,MAAM,SAAW,IAAI,KAAD,EAA5C,GAARuD,EAAQkV,EAAAnG,MACVx3B,MAAMC,QAAQwoB,EAAS7kB,QAAS6kB,EAAS7kB,KAAKtI,OAAM,CAAAqiC,EAAAxd,KAAA,QACtD,OADsDwd,EAAAxd,KAAA,EAChDsF,aAAIgS,GAAwBhP,EAAS7kB,OAAO,KAAD,EAAA+5B,EAAAxd,KAAA,sBAE3C,IAAItW,MAAM,yBAAyB,KAAD,GAAA8zB,EAAAxd,KAAA,iBAG1C,OAH0Cwd,EAAAzd,KAAA,GAAAyd,EAAAjG,GAAAiG,EAAA,SAAAA,EAAAxd,KAAA,GAGpCsF,aAAIgS,GAAsB,CAAE7tB,QAAS+zB,EAAAjG,GAAE9tB,WAAY,KAAD,oBAAA+zB,EAAAtd,OAAA,GAAA2Z,GAAA,eAIrD,SAAUjuC,GAAsBkpC,GAAM,IAAAjwB,EAAAyjB,EAAA,OAAA5I,eAAAG,MAAA,SAAA4d,GAAA,cAAAA,EAAA1d,KAAA0d,EAAAzd,MAAA,OAM3C,OALMnb,EAAU,CACdA,QAAS,CACP,eAAgB,qBAEnB44B,EAAAzd,KAAA,EACKsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BmG,EAAA1d,KAAA,EAAA0d,EAAAzd,KAAA,EAEpB/L,aACrB8Q,GACA,OAAO,yBAEPlgB,EACAiwB,EAAO1nB,SACP,KAAD,EAED,OARMkb,EAAQmV,EAAApG,KAAAoG,EAAAzd,KAAA,EAQRsF,aACJgS,GAA6Br2C,YAAC,CAAEwiB,KAAM6kB,EAAS7kB,MAASqxB,EAAO1nB,WAC/D,KAAD,EAAAqwB,EAAAzd,KAAA,iBAED,OAFCyd,EAAA1d,KAAA,GAAA0d,EAAAlG,GAAAkG,EAAA,SAAAA,EAAAzd,KAAA,GAEKsF,aAAIgS,GAA4B,CAAE7tB,QAASg0B,EAAAlG,GAAE9tB,WAAY,KAAD,GAE9D,OAF8Dg0B,EAAA1d,KAAA,GAAA0d,EAAAzd,KAAA,GAExDsF,aAAIgS,IAA0B,IAAQ,KAAD,GAC3C,OAD2CmG,EAAAzd,KAAA,GACrCsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAAmG,EAAAf,OAAA,6BAAAe,EAAAvd,OAAA,GAAA6Z,GAAA,qBAK3C,SAAU7tC,GAAoB4oC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAA6d,GAAA,cAAAA,EAAA3d,KAAA2d,EAAA1d,MAAA,OAEtB,OAFsB0d,EAAA3d,KAAA,EAAA2d,EAAA1d,KAAA,EAEhB/L,aAAK8Q,GAAU,MAAM,YAAc,IAAI,KAAD,EAA/C,GAARuD,EAAQoV,EAAArG,MACVx3B,MAAMC,QAAQwoB,EAAS7kB,KAAKA,QAAS6kB,EAAS7kB,KAAKA,KAAKtI,OAAM,CAAAuiC,EAAA1d,KAAA,QAChE,OADgE0d,EAAA1d,KAAA,EAC1DsF,aAAIgS,GAA4BhP,EAAS7kB,KAAKA,OAAO,KAAD,EAAAi6B,EAAA1d,KAAA,sBAEpD,IAAItW,MAAM,uBAAuB,KAAD,GAAAg0B,EAAA1d,KAAA,iBAGxC,OAHwC0d,EAAA3d,KAAA,GAAA2d,EAAAnG,GAAAmG,EAAA,SAAAA,EAAA1d,KAAA,GAGlCsF,aAAIgS,GAA0B,CAAE7tB,QAASi0B,EAAAnG,GAAE9tB,WAAY,KAAD,oBAAAi0B,EAAAxd,OAAA,GAAA8Z,GAAA,eAIzD,SAAUE,GAAuBpF,GAAM,IAAAxM,EAAAvoB,EAAA,OAAA2f,eAAAG,MAAA,SAAA8d,GAAA,cAAAA,EAAA5d,KAAA4d,EAAA3d,MAAA,OAC5C,OAD4C2d,EAAA3d,KAAA,EACtCsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BqG,EAAA5d,KAAA,EAAA4d,EAAA3d,KAAA,EAEpB/L,aACrB8Q,GACA,SAAS,aAAD9mB,OACK62B,EAAO1nB,QAAQ7R,KAC5B,GACA,IACA,KAAD,EACc,OAPT+sB,EAAQqV,EAAAtG,KAAAsG,EAAA3d,KAAA,EAOO/L,aAAK8Q,GAAU,MAAM,YAAc,IAAI,KAAD,EAA/C,GAANhlB,EAAM49B,EAAAtG,MACRx3B,MAAMC,QAAQC,EAAO0D,KAAKA,QAAS1D,EAAO0D,KAAKA,KAAKtI,OAAM,CAAAwiC,EAAA3d,KAAA,SAC5D,OAD4D2d,EAAA3d,KAAA,GACtDsF,aAAIgS,GAA4Bv3B,EAAO0D,KAAKA,OAAO,KAAD,GAAAk6B,EAAA3d,KAAA,iBAExD,OAFwD2d,EAAA3d,KAAA,GAElDsF,aAAIgS,GAA0B,CAAE7tB,QAAS,yBAA0B,KAAD,GAE1E,OAF0Ek0B,EAAA3d,KAAA,GAEpEsF,aAAIgS,GAA+BhP,EAAS7kB,KAAKA,OAAO,KAAD,GAAAk6B,EAAA3d,KAAA,iBAAA2d,EAAA5d,KAAA,GAAA4d,EAAApG,GAAAoG,EAAA,iBAG7D,OAH6DA,EAAA5d,KAAA,GAAA4d,EAAA3d,KAAA,GAGvDsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAAqG,EAAAjB,OAAA,6BAAAiB,EAAAzd,OAAA,GAAA+Z,GAAA,qBAI3C,SAAUG,GAA0BtF,GAAM,IAAAjwB,EAAAyjB,EAAAvoB,EAAA,OAAA2f,eAAAG,MAAA,SAAA+d,GAAA,cAAAA,EAAA7d,KAAA6d,EAAA5d,MAAA,OAM/C,OALMnb,EAAU,CACdA,QAAS,CACP,eAAgB,qBAEnB+4B,EAAA5d,KAAA,EACKsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BsG,EAAA7d,KAAA,EAAA6d,EAAA5d,KAAA,EAEpB/L,aACrB8Q,GACA,OAAO,YAEPlgB,EACAiwB,EAAO1nB,SACP,KAAD,EACc,OAPTkb,EAAQsV,EAAAvG,KAAAuG,EAAA5d,KAAA,EAOO/L,aAAK8Q,GAAU,MAAM,YAAc,IAAI,KAAD,EAA/C,GAANhlB,EAAM69B,EAAAvG,MACRx3B,MAAMC,QAAQC,EAAO0D,KAAKA,QAAS1D,EAAO0D,KAAKA,KAAKtI,OAAM,CAAAyiC,EAAA5d,KAAA,SAC5D,OAD4D4d,EAAA5d,KAAA,GACtDsF,aAAIgS,GAA4Bv3B,EAAO0D,KAAKA,OAAO,KAAD,GAAAm6B,EAAA5d,KAAA,iBAExD,OAFwD4d,EAAA5d,KAAA,GAElDsF,aAAIgS,GAA0B,CAAE7tB,QAAS,yBAA0B,KAAD,GAE1E,OAF0Em0B,EAAA5d,KAAA,GAEpEsF,aAAIgS,GAAkChP,EAAS7kB,KAAKA,OAAO,KAAD,GAAAm6B,EAAA5d,KAAA,iBAAA4d,EAAA7d,KAAA,GAAA6d,EAAArG,GAAAqG,EAAA,iBAGhE,OAHgEA,EAAA7d,KAAA,GAAA6d,EAAA5d,KAAA,GAG1DsF,aAAIgS,IAA0B,IAAQ,KAAD,GAC3C,OAD2CsG,EAAA5d,KAAA,GACrCsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAAsG,EAAAlB,OAAA,6BAAAkB,EAAA1d,OAAA,GAAAia,GAAA,qBAK3C,SAAU9sC,GAAmBynC,GAAM,IAAAM,EAAAyI,EAAAtI,EAAAuI,EAAAtI,EAAAuI,EAAAC,EAAAC,EAAAC,EAAAC,EAAA7V,EAAA7kB,EAAA,OAAAic,eAAAG,MAAA,SAAAue,GAAA,cAAAA,EAAAre,KAAAqe,EAAApe,MAAA,OAErB,OAFqBoe,EAAAre,KAAA,EAAAqe,EAAApe,KAAA,EAEf/L,aACrB8Q,GACA,MAAM,gBAAD9mB,OACiB,OAAN62B,QAAM,IAANA,GAAe,QAATM,EAANN,EAAQ1nB,eAAO,IAAAgoB,GAAM,QAANyI,EAAfzI,EAAiB3xB,YAAI,IAAAo6B,OAAf,EAANA,EAAuBpgC,OAAM,mBAAAQ,OAAwB,OAAN62B,QAAM,IAANA,GAAe,QAATS,EAANT,EAAQ1nB,eAAO,IAAAmoB,GAAM,QAANuI,EAAfvI,EAAiB9xB,YAAI,IAAAq6B,OAAf,EAANA,EAAuBjX,cAAa,iBAAA5oB,OAAsB,OAAN62B,QAAM,IAANA,GAAe,QAATU,EAANV,EAAQ1nB,eAAO,IAAAooB,GAAM,QAANuI,EAAfvI,EAAiB/xB,YAAI,IAAAs6B,OAAf,EAANA,EAAuBhX,YAAW,YAAA9oB,OAAiB,OAAN62B,QAAM,IAANA,GAAe,QAATkJ,EAANlJ,EAAQ1nB,eAAO,IAAA4wB,GAAM,QAANC,EAAfD,EAAiBv6B,YAAI,IAAAw6B,OAAf,EAANA,EAAuBxX,QAAO,eAAAxoB,OAAoB,OAAN62B,QAAM,IAANA,GAAe,QAAToJ,EAANpJ,EAAQ1nB,eAAO,IAAA8wB,GAAM,QAANC,EAAfD,EAAiBz6B,YAAI,IAAA06B,OAAf,EAANA,EAAuBlX,WACnO,IACA,KAAD,EALa,GAARqB,EAAQ8V,EAAA/G,MAOVx3B,MAAMC,QAAQwoB,EAAS7kB,KAAKA,QAAS6kB,EAAS7kB,KAAKA,KAAKtI,OAAM,CAAAijC,EAAApe,KAAA,SAchE,OAbMvc,EAAO6kB,EAAS7kB,KAAKA,KAAKhI,KAAI,SAAChb,GACnC,MAA2B,YAAvBA,EAAMgnC,aACRxmC,wBAAA,GACKR,GAAK,IACR49C,YAAa,IAGfp9C,wBAAA,GACKR,GAAK,IACR49C,YAAa,GAGnB,IAAED,EAAApe,KAAA,EACIsF,aAAIgS,GAA2B7zB,IAAO,KAAD,EAAA26B,EAAApe,KAAA,uBAErC,IAAItW,MAAM,sBAAsB,KAAD,GAAA00B,EAAApe,KAAA,iBAGvC,OAHuCoe,EAAAre,KAAA,GAAAqe,EAAA7G,GAAA6G,EAAA,SAAAA,EAAApe,KAAA,GAGjCsF,aAAIgS,GAAyB,CAAE7tB,QAAS20B,EAAA7G,GAAE9tB,WAAY,KAAD,oBAAA20B,EAAAle,OAAA,GAAAma,GAAA,eAKxD,SAAU7sC,GAA2BsnC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAAye,GAAA,cAAAA,EAAAve,KAAAue,EAAAte,MAAA,OAE7B,OAF6Bse,EAAAve,KAAA,EAAAue,EAAAte,KAAA,EAEvB/L,aACrB8Q,GACA,MAAM,8BAEN,IACA,KAAD,EALa,GAARuD,EAAQgW,EAAAjH,MAOVx3B,MAAMC,QAAQwoB,EAAS7kB,KAAKA,QAAS6kB,EAAS7kB,KAAKA,KAAKtI,OAAM,CAAAmjC,EAAAte,KAAA,QAChE,OADgEse,EAAAte,KAAA,EAC1DsF,aACJgS,GACEhP,EAAS7kB,KAAKA,KAAKhI,KAAI,SAACH,GAAC,OAAAra,YAAA,GAAWqa,EAAC,MAEvC,KAAD,EAAAgjC,EAAAte,KAAA,sBAEK,IAAItW,MAAM,4CAA4C,KAAD,GAAA40B,EAAAte,KAAA,iBAG7D,OAH6Dse,EAAAve,KAAA,GAAAue,EAAA/G,GAAA+G,EAAA,SAAAA,EAAAte,KAAA,GAGvDsF,aAAIgS,GAAiC,CAAE7tB,QAAS60B,EAAA/G,GAAE9tB,WAAY,KAAD,oBAAA60B,EAAApe,OAAA,GAAAoa,GAAA,eAKhE,SAAU3sC,GAA8BmnC,GAAM,IAAAjwB,EAAAyjB,EAAA,OAAA5I,eAAAG,MAAA,SAAA0e,GAAA,cAAAA,EAAAxe,KAAAwe,EAAAve,MAAA,OAMnD,OALMnb,EAAU,CACdA,QAAS,CACP,eAAgB,qBAEnB05B,EAAAve,KAAA,EACKsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BiH,EAAAxe,KAAA,EAAAwe,EAAAve,KAAA,EAEpB/L,aACrB8Q,GACA,OAAO,iCAEPlgB,EACAiwB,EAAO1nB,SACP,KAAD,EAED,OARMkb,EAAQiW,EAAAlH,KAAAkH,EAAAve,KAAA,EAQRsF,aAAIgS,GAAsChP,EAAS7kB,KAAKA,OAAO,KAAD,EAAA86B,EAAAve,KAAA,iBAEpE,OAFoEue,EAAAxe,KAAA,GAAAwe,EAAAhH,GAAAgH,EAAA,SAAAA,EAAAve,KAAA,GAE9DsF,aAAIgS,GAAoC,CAAE7tB,QAAS80B,EAAAhH,GAAE9tB,WAAY,KAAD,GAEtE,OAFsE80B,EAAAxe,KAAA,GAAAwe,EAAAve,KAAA,GAEhEsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAAiH,EAAA7B,OAAA,6BAAA6B,EAAAre,OAAA,GAAAqa,GAAA,qBAK3C,SAAUzsC,GAA8BgnC,GAAM,OAAApV,eAAAG,MAAA,SAAA2e,GAAA,cAAAA,EAAAze,KAAAye,EAAAxe,MAAA,OAEhC,OAFgCwe,EAAAze,KAAA,EAAAye,EAAAxe,KAAA,EAE1B/L,aACrB8Q,GACA,SAAS,kCAAD9mB,OAC0B62B,EAAO1nB,QAAQgQ,YACjD,IACA,KAAD,EAED,OAPcohB,EAAAnH,KAAAmH,EAAAxe,KAAA,EAORsF,aAAIgS,GAAsCxC,EAAO1nB,UAAU,KAAD,EAAAoxB,EAAAxe,KAAA,gBAAAwe,EAAAze,KAAA,EAAAye,EAAAjH,GAAAiH,EAAA,kCAAAA,EAAAte,OAAA,GAAAsa,GAAA,cAK7D,SAAUxsC,GAA8B8mC,GAAM,IAAAjwB,EAAA,OAAA6a,eAAAG,MAAA,SAAA4e,GAAA,cAAAA,EAAA1e,KAAA0e,EAAAze,MAAA,OAMnD,OALMnb,EAAU,CACdA,QAAS,CACP,eAAgB,qBAEnB45B,EAAAze,KAAA,EACKsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BmH,EAAA1e,KAAA,EAAA0e,EAAAze,KAAA,EAEpB/L,aACrB8Q,GACA,MAAM,kCAAD9mB,OAC6B62B,EAAO1nB,QAAQgQ,YACjDvY,EACAiwB,EAAO1nB,QAAQ3J,MACf,KAAD,EAED,OARcg7B,EAAApH,KAAAoH,EAAAze,KAAA,EAQRsF,aAAIgS,GAAsCxC,EAAO1nB,UAAU,KAAD,EAAAqxB,EAAAze,KAAA,iBAAAye,EAAA1e,KAAA,GAAA0e,EAAAlH,GAAAkH,EAAA,iBAIhE,OAJgEA,EAAA1e,KAAA,GAAA0e,EAAAze,KAAA,GAI1DsF,aAAIgS,IAA0B,IAAQ,KAAD,GAC3C,OAD2CmH,EAAAze,KAAA,GACrCsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAAmH,EAAA/B,OAAA,6BAAA+B,EAAAve,OAAA,GAAAua,GAAA,qBAK3C,SAAUxrC,GAA8B6lC,GAAM,OAAApV,eAAAG,MAAA,SAAA6e,GAAA,cAAAA,EAAA3e,KAAA2e,EAAA1e,MAAA,OAEjD,OAFiD0e,EAAA3e,KAAA,EAAA2e,EAAA1e,KAAA,EAE3CsF,aACJgS,GAAsC,CAAE/7B,IAAKu5B,EAAO1nB,QAAQ7R,OAC5D,KAAD,EAAAmjC,EAAA1e,KAAA,eAAA0e,EAAA3e,KAAA,EAAA2e,EAAAnH,GAAAmH,EAAA,iCAAAA,EAAAxe,OAAA,GAAAwa,GAAA,cAKE,SAAUE,GAAuB9F,GAAM,IAAAjwB,EAAAyjB,EAAA,OAAA5I,eAAAG,MAAA,SAAA8e,GAAA,cAAAA,EAAA5e,KAAA4e,EAAA3e,MAAA,OAO1C,OANInb,EAAU,CACdA,QAAS,CACP,eAAgB,qBAEnB85B,EAAA5e,KAAA,EAAA4e,EAAA3e,KAAA,EAEO/L,aACJ8Q,GACA,MAAM,0BAAD9mB,OACqB62B,EAAO1nB,QAAQsT,YACzC7b,EACAiwB,EAAO1nB,QAAQ3J,MACf,KAAD,EAEgB,OAFhBk7B,EAAA3e,KAAA,EAEsB/L,aACrB8Q,GACA,MAAM,8BAEN,IACA,KAAD,EALa,GAARuD,EAAQqW,EAAAtH,MAOVx3B,MAAMC,QAAQwoB,EAAS7kB,KAAKA,QAAS6kB,EAAS7kB,KAAKA,KAAKtI,OAAM,CAAAwjC,EAAA3e,KAAA,SAChE,OADgE2e,EAAA3e,KAAA,GAC1DsF,aAAIgS,GAAmChP,EAAS7kB,KAAKA,OAAO,KAAD,GAGnE,OAHmEk7B,EAAA3e,KAAA,GAG7DsF,aAAIgS,GAA8BxC,EAAO1nB,UAAU,KAAD,GAAAuxB,EAAA3e,KAAA,iBAAA2e,EAAA5e,KAAA,GAAA4e,EAAApH,GAAAoH,EAAA,iBAIxD,OAJwDA,EAAA5e,KAAA,GAAA4e,EAAA3e,KAAA,GAIlDsF,aAAIgS,IAA4B,IAAQ,KAAD,UAAAqH,EAAAjC,OAAA,6BAAAiC,EAAAze,OAAA,GAAAya,GAAA,qBAK1C,SAAU3pC,GAAsB8jC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAA+e,GAAA,cAAAA,EAAA7e,KAAA6e,EAAA5e,MAAA,OAC3C,OAD2C4e,EAAA5e,KAAA,EACrCsF,aAAIgS,IAA6B,IAAO,KAAD,EAE3C,OAF2CsH,EAAA7e,KAAA,EAAA6e,EAAA5e,KAAA,EAErC/L,aACJ8Q,GACA,MAAM,yBAEN,GACA+P,EAAO1nB,QAAQ3J,MACf,KAAD,EACgB,OADhBm7B,EAAA5e,KAAA,EACsB/L,aACrB8Q,GACA,MAAM,8BAEN,IACA,KAAD,EALa,GAARuD,EAAQsW,EAAAvH,MAOVx3B,MAAMC,QAAQwoB,EAAS7kB,KAAKA,QAAS6kB,EAAS7kB,KAAKA,KAAKtI,OAAM,CAAAyjC,EAAA5e,KAAA,SAChE,OADgE4e,EAAA5e,KAAA,GAC1DsF,aAAIgS,GAAmChP,EAAS7kB,KAAKA,OAAO,KAAD,GAAAm7B,EAAA5e,KAAA,uBAE3D,IAAItW,MAAM,4CAA4C,KAAD,GAAAk1B,EAAA5e,KAAA,iBAG7D,OAH6D4e,EAAA7e,KAAA,GAAA6e,EAAArH,GAAAqH,EAAA,SAAAA,EAAA5e,KAAA,GAGvDsF,aAAIgS,GAAgC,CAAE7tB,QAASm1B,EAAArH,GAAE9tB,WAAY,KAAD,GAElE,OAFkEm1B,EAAA7e,KAAA,GAAA6e,EAAA5e,KAAA,GAE5DsF,aAAIgS,IAA6B,IAAQ,KAAD,GAC9C,OAD8CsH,EAAA5e,KAAA,GACxCsF,aAAIgS,IAA0B,IAAQ,KAAD,UAAAsH,EAAAlC,OAAA,6BAAAkC,EAAA1e,OAAA,GAAA2a,GAAA,qBAKxC,SAAUE,GAA0BjG,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAAgf,GAAA,cAAAA,EAAA9e,KAAA8e,EAAA7e,MAAA,OAC/C,OAD+C6e,EAAA7e,KAAA,EACzCsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BuH,EAAA9e,KAAA,EAAA8e,EAAA7e,KAAA,EAEpB/L,aACrB8Q,GACA,QACA,eACA,GACA+P,EAAO1nB,SACP,KAAD,EANa,KAARkb,EAAQuW,EAAAxH,MAOD,CAADwH,EAAA7e,KAAA,SACV,OADU6e,EAAA7e,KAAA,EACJsF,aAAIgS,GAAkChP,EAAS7kB,OAAO,KAAD,EAAAo7B,EAAA7e,KAAA,uBAErD,IAAItW,MAAM,gCAAgC,KAAD,GAAAm1B,EAAA7e,KAAA,iBAGjD,OAHiD6e,EAAA9e,KAAA,GAAA8e,EAAAtH,GAAAsH,EAAA,SAAAA,EAAA7e,KAAA,GAG3CsF,aAAIgS,GAAgC,CAAE7tB,QAASo1B,EAAAtH,GAAE9tB,WAAY,KAAD,GAElE,OAFkEo1B,EAAA9e,KAAA,GAAA8e,EAAA7e,KAAA,GAE5DsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAAuH,EAAAnC,OAAA,6BAAAmC,EAAA3e,OAAA,GAAA4a,GAAA,qBAI3C,SAAUG,GAAuBnG,GAAM,IAAAgK,EAAAC,EAAAC,EAAAC,EAAA,OAAAvf,eAAAG,MAAA,SAAAqf,GAAA,cAAAA,EAAAnf,KAAAmf,EAAAlf,MAAA,OAE5C,OAF4C8e,EACThK,EAAO1nB,QAAlC2xB,EAAQD,EAARC,SAAUC,EAAYF,EAAZE,aAAYE,EAAAlf,KAAA,EACxBsF,aAAIgS,IAA6B,IAAO,KAAD,EAe3C,OAf2C4H,EAAAnf,KAAA,EAErCkf,EAAWF,EAAStjC,KAAI,SAAC2sB,GAC7B,OAAI4W,EAAa11B,MAAK,SAAC61B,GAAQ,OAAKA,EAASlgC,QAAUmpB,EAAKnpB,KAAK,IAC/Dhe,wBAAA,GACKmnC,GAAI,IACPX,aAAc,UACd4W,YAAa,IAGjBp9C,wBAAA,GACKmnC,GAAI,IACPiW,YAAmC,YAAtBjW,EAAKX,aAA6B,EAAI,GAEvD,IAAEyX,EAAAlf,KAAA,EACIsF,aAAIgS,GAA+B2H,IAAW,KAAD,EACnD,OADmDC,EAAAlf,KAAA,EAC7CsF,aAAIgS,GAA2B2H,IAAW,KAAD,EAAAC,EAAAlf,KAAA,iBAE/C,OAF+Ckf,EAAAnf,KAAA,GAAAmf,EAAA3H,GAAA2H,EAAA,SAAAA,EAAAlf,KAAA,GAEzCsF,aAAIgS,GAA6B,CAAE7tB,QAASy1B,EAAA3H,GAAM9tB,WAAY,KAAD,GAEnE,OAFmEy1B,EAAAnf,KAAA,GAAAmf,EAAAlf,KAAA,GAE7DsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAA4H,EAAAxC,OAAA,6BAAAwC,EAAAhf,OAAA,GAAA8a,GAAA,qBAK3C,SAAUlpC,GAAoBgjC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAAuf,GAAA,cAAAA,EAAArf,KAAAqf,EAAApf,MAAA,OAEzC,OADAzS,QAAQC,IAAIsnB,GAAQsK,EAAApf,KAAA,EACdsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0B8H,EAAArf,KAAA,EAAAqf,EAAApf,KAAA,EAEpB/L,aACrB8Q,GACA,OAAO,gBAEP,GACA+P,EAAO1nB,SACP,KAAD,EAED,OARMkb,EAAQ8W,EAAA/H,KAAA+H,EAAApf,KAAA,EAQRsF,aAAIgS,GAA4BhP,EAAS7kB,KAAKA,OAAO,KAAD,EAAA27B,EAAApf,KAAA,iBAE1D,OAF0Dof,EAAArf,KAAA,GAAAqf,EAAA7H,GAAA6H,EAAA,SAAAA,EAAApf,KAAA,GAEpDsF,aAAIgS,GAA0B,CAAE7tB,QAAS21B,EAAA7H,GAAE9tB,WAAY,KAAD,GAE5D,OAF4D21B,EAAArf,KAAA,GAAAqf,EAAApf,KAAA,GAEtDsF,aAAIgS,IAA6B,IAAQ,KAAD,GAC9C,OAD8C8H,EAAApf,KAAA,GACxC/L,aAAKhiB,IAAsB,KAAD,UAAAmtC,EAAA1C,OAAA,6BAAA0C,EAAAlf,OAAA,GAAAgb,GAAA,qBAI7B,SAAUjpC,GAAqB6iC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAAwf,GAAA,cAAAA,EAAAtf,KAAAsf,EAAArf,MAAA,OAEvB,OAFuBqf,EAAAtf,KAAA,EAAAsf,EAAArf,KAAA,EAEjB/L,aAAK8Q,GAAU,MAAM,aAAe,IAAI,KAAD,EAE9D,OAFMuD,EAAQ+W,EAAAhI,KAAAgI,EAAArf,KAAA,EAERsF,aAAIgS,GAA6BhP,EAAS7kB,KAAKA,OAAO,KAAD,EAAA47B,EAAArf,KAAA,gBAE3D,OAF2Dqf,EAAAtf,KAAA,EAAAsf,EAAA9H,GAAA8H,EAAA,SAAAA,EAAArf,KAAA,GAErDsF,aAAIgS,GAA2B,CAAE7tB,QAAS41B,EAAA9H,GAAE9tB,WAAY,KAAD,oBAAA41B,EAAAnf,OAAA,GAAAib,GAAA,cAI1D,SAAUE,GAAwBvG,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAAyf,GAAA,cAAAA,EAAAvf,KAAAuf,EAAAtf,MAAA,OAC7C,OAD6Csf,EAAAtf,KAAA,EACvCsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BgI,EAAAvf,KAAA,EAAAuf,EAAAtf,KAAA,EAEpB/L,aACrB8Q,GACA,OAAO,wBAAD9mB,OACkB62B,EAAO1nB,QAAQ7R,KACvC,GACAu5B,EAAO1nB,QAAQ3J,MACf,KAAD,EAED,OARM6kB,EAAQgX,EAAAjI,KAAAiI,EAAAtf,KAAA,EAQRsF,aAAIgS,GAAgChP,EAAS7kB,KAAKA,OAAO,KAAD,EAAA67B,EAAAtf,KAAA,iBAE9D,OAF8Dsf,EAAAvf,KAAA,GAAAuf,EAAA/H,GAAA+H,EAAA,SAAAA,EAAAtf,KAAA,GAExDsF,aAAIgS,GAA8B,CAAE7tB,QAAS61B,EAAA/H,GAAE9tB,WAAY,KAAD,GAEhE,OAFgE61B,EAAAvf,KAAA,GAAAuf,EAAAtf,KAAA,GAE1DsF,aAAIgS,IAA6B,IAAQ,KAAD,GAC9C,OAD8CgI,EAAAtf,KAAA,GACxC/L,aAAK5mB,GAAoB,CAC7B+f,QAAS,CACP3J,KAAMqxB,EAAO1nB,QAAQ+c,eAEtB,KAAD,UAAAmV,EAAA5C,OAAA,6BAAA4C,EAAApf,OAAA,GAAAkb,GAAA,qBAIC,SAAU9oC,GAA4BwiC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAA0f,GAAA,cAAAA,EAAAxf,KAAAwf,EAAAvf,MAAA,OACjD,OADiDuf,EAAAvf,KAAA,EAC3CsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BiI,EAAAxf,KAAA,EAAAwf,EAAAvf,KAAA,EAEpB/L,aACrB8Q,GACA,OAAO,4BAEP,GACA+P,EAAO1nB,QAAQ3J,MACf,KAAD,EAED,OARM6kB,EAAQiX,EAAAlI,KAAAkI,EAAAvf,KAAA,EAQRsF,aAAIgS,GAAoChP,EAAS7kB,KAAKA,OAAO,KAAD,EAClEmN,KAAM4X,QAAQ,6BAA8B,CAC1C3nB,SAAU,aACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,EACVpgB,MAAO,YACN4gD,EAAAvf,KAAA,iBAEH,OAFGuf,EAAAxf,KAAA,GAAAwf,EAAAhI,GAAAgI,EAAA,SAAAA,EAAAvf,KAAA,GAEGsF,aAAIgS,GAAkC,CAAE7tB,QAAS81B,EAAAhI,GAAE9tB,WAAY,KAAD,GACpEmH,KAAM3xB,MAAMsgD,EAAAhI,GAAE9tB,QAAS,CACrB5I,SAAU,aACVgQ,UAAW,IACXC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,cAAUnS,EACVpgB,MAAO,YACN,QAEH,OAFG4gD,EAAAxf,KAAA,GAAAwf,EAAAvf,KAAA,GAEGsF,aAAIgS,IAA6B,IAAQ,KAAD,GAC9C,OAD8CiI,EAAAvf,KAAA,GACxC/L,aAAK5mB,GAAoB,CAC7B+f,QAAS,CACP3J,KAAMqxB,EAAO1nB,QAAQ+c,eAEtB,KAAD,UAAAoV,EAAA7C,OAAA,6BAAA6C,EAAArf,OAAA,GAAAob,GAAA,qBAKC,SAAU7oC,GAAgCqiC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAA2f,GAAA,cAAAA,EAAAzf,KAAAyf,EAAAxf,MAAA,OACrD,OADqDwf,EAAAxf,KAAA,EAC/CsF,aAAIgS,IAA6B,IAAO,KAAD,EAG1B,OAH0BkI,EAAAzf,KAAA,EAAAyf,EAAAxf,KAAA,EAGpB/L,aACrB8Q,GACA,MAAM,6BAEN,IACA,KAAD,EACD,OANMuD,EAAQkX,EAAAnI,KAAAmI,EAAAxf,KAAA,EAMRsF,aAAIgS,GAAwChP,EAAS7kB,KAAKA,OAAO,KAAD,EAAA+7B,EAAAxf,KAAA,iBAEtE,OAFsEwf,EAAAzf,KAAA,GAAAyf,EAAAjI,GAAAiI,EAAA,SAAAA,EAAAxf,KAAA,GAEhEsF,aAAIgS,GAAsC,CAAE7tB,QAAS+1B,EAAAjI,GAAE9tB,WAAY,KAAD,GAExE,OAFwE+1B,EAAAzf,KAAA,GAAAyf,EAAAxf,KAAA,GAElEsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAAkI,EAAA9C,OAAA,6BAAA8C,EAAAtf,OAAA,GAAAqb,GAAA,qBAI3C,SAAU3oC,GAAiCkiC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAA4f,GAAA,cAAAA,EAAA1f,KAAA0f,EAAAzf,MAAA,OACtD,OADsDyf,EAAAzf,KAAA,EAChDsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BmI,EAAA1f,KAAA,EAAA0f,EAAAzf,KAAA,EAEpB/L,aACrB8Q,GACA,OAAO,6BAEP,GACA+P,EAAO1nB,SACP,KAAD,EANa,KAARkb,EAAQmX,EAAApI,MAQD,CAADoI,EAAAzf,KAAA,SACV,OADUyf,EAAAzf,KAAA,EACJsF,aAAIgS,MAA2C,KAAD,EAAAmI,EAAAzf,KAAA,uBAE9C,IAAItW,MAAM,wBAAwB,KAAD,GAGzC,OAHyC+1B,EAAAzf,KAAA,GAGnCsF,aAAIgS,GAAyChP,EAAS7kB,OAAO,KAAD,GAAAg8B,EAAAzf,KAAA,iBAElE,OAFkEyf,EAAA1f,KAAA,GAAA0f,EAAAlI,GAAAkI,EAAA,SAAAA,EAAAzf,KAAA,GAE5DsF,aAAIgS,GAAuC,CAAE7tB,QAASg2B,EAAAlI,GAAE9tB,WAAY,KAAD,GAEzE,OAFyEg2B,EAAA1f,KAAA,GAAA0f,EAAAzf,KAAA,GAEnEsF,aAAIgS,IAA6B,IAAQ,KAAD,GAC9C,OAD8CmI,EAAAzf,KAAA,GACxCsF,aAAIgS,IAA0B,IAAQ,KAAD,UAAAmI,EAAA/C,OAAA,6BAAA+C,EAAAvf,OAAA,GAAAsb,GAAA,qBAIxC,SAAUzoC,GAAkC+hC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAA6f,GAAA,cAAAA,EAAA3f,KAAA2f,EAAA1f,MAAA,OACvD,OADuD0f,EAAA1f,KAAA,EACjDsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BoI,EAAA3f,KAAA,EAAA2f,EAAA1f,KAAA,EAEpB/L,aACrB8Q,GACA,QAAQ,8BAAD9mB,OACuB62B,EAAO1nB,QAAQ7R,KAC7C,GACAu5B,EAAO1nB,SACP,KAAD,EANa,KAARkb,EAAQoX,EAAArI,MAQD,CAADqI,EAAA1f,KAAA,SACV,OADU0f,EAAA1f,KAAA,EACJsF,aAAIgS,MAA2C,KAAD,EAAAoI,EAAA1f,KAAA,uBAE9C,IAAItW,MAAM,wBAAwB,KAAD,GAGzC,OAHyCg2B,EAAA1f,KAAA,GAGnCsF,aAAIgS,GAA0ChP,EAAS7kB,OAAO,KAAD,GAAAi8B,EAAA1f,KAAA,iBAEnE,OAFmE0f,EAAA3f,KAAA,GAAA2f,EAAAnI,GAAAmI,EAAA,SAAAA,EAAA1f,KAAA,GAE7DsF,aAAIgS,GAAwC,CAAE7tB,QAASi2B,EAAAnI,GAAE9tB,WAAY,KAAD,GAE1E,OAF0Ei2B,EAAA3f,KAAA,GAAA2f,EAAA1f,KAAA,GAEpEsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAAoI,EAAAhD,OAAA,6BAAAgD,EAAAxf,OAAA,GAAAub,GAAA,qBAI3C,SAAUvoC,GAAmC4hC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAA8f,GAAA,cAAAA,EAAA5f,KAAA4f,EAAA3f,MAAA,OACxD,OADwD2f,EAAA3f,KAAA,EAClDsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BqI,EAAA5f,KAAA,EAAA4f,EAAA3f,KAAA,EAEpB/L,aACrB8Q,GACA,SAAS,8BAAD9mB,OACsB62B,EAAO1nB,QAAQ7R,KAC7C,IACA,KAAD,EALa,KAAR+sB,EAAQqX,EAAAtI,MAOD,CAADsI,EAAA3f,KAAA,SACV,OADU2f,EAAA3f,KAAA,EACJsF,aAAIgS,MAA2C,KAAD,EAAAqI,EAAA3f,KAAA,uBAE9C,IAAItW,MAAM,wBAAwB,KAAD,GAGzC,OAHyCi2B,EAAA3f,KAAA,GAGnCsF,aAAIgS,GAA2ChP,EAAS7kB,OAAO,KAAD,GAAAk8B,EAAA3f,KAAA,iBAEpE,OAFoE2f,EAAA5f,KAAA,GAAA4f,EAAApI,GAAAoI,EAAA,SAAAA,EAAA3f,KAAA,GAE9DsF,aAAIgS,GAAuC,CAAE7tB,QAASk2B,EAAApI,GAAE9tB,WAAY,KAAD,GAEzE,OAFyEk2B,EAAA5f,KAAA,GAAA4f,EAAA3f,KAAA,GAEnEsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAAqI,EAAAjD,OAAA,6BAAAiD,EAAAzf,OAAA,GAAAwb,GAAA,qBAI3C,SAAUtoC,GAAuC0hC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAA+f,GAAA,cAAAA,EAAA7f,KAAA6f,EAAA5f,MAAA,OAC5D,OAD4D4f,EAAA5f,KAAA,EACtDsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BsI,EAAA7f,KAAA,EAAA6f,EAAA5f,KAAA,EAEpB/L,aACrB8Q,GACA,QAAQ,mCAER,GACA+P,EAAO1nB,SACP,KAAD,EANa,KAARkb,EAAQsX,EAAAvI,MAQD,CAADuI,EAAA5f,KAAA,SACV,OADU4f,EAAA5f,KAAA,EACJsF,aAAIgS,MAA2C,KAAD,EAAAsI,EAAA5f,KAAA,uBAE9C,IAAItW,MAAM,wBAAwB,KAAD,GAGzC,OAHyCk2B,EAAA5f,KAAA,GAGnCsF,aAAIgS,GAA+ChP,EAAS7kB,OAAO,KAAD,GAAAm8B,EAAA5f,KAAA,iBAExE,OAFwE4f,EAAA7f,KAAA,GAAA6f,EAAArI,GAAAqI,EAAA,SAAAA,EAAA5f,KAAA,GAElEsF,aACJgS,GAA6C,CAAE7tB,QAASm2B,EAAArI,GAAE9tB,WAC1D,KAAD,GAED,OAFCm2B,EAAA7f,KAAA,GAAA6f,EAAA5f,KAAA,GAEKsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAAsI,EAAAlD,OAAA,6BAAAkD,EAAA1f,OAAA,GAAAyb,GAAA,qBAK3C,SAAUpoC,GAAyBuhC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAAggB,GAAA,cAAAA,EAAA9f,KAAA8f,EAAA7f,MAAA,OAC9C,OAD8C6f,EAAA7f,KAAA,EACxCsF,aAAIgS,IAA6B,IAAO,KAAD,EAG1B,OAH0BuI,EAAA9f,KAAA,EAAA8f,EAAA7f,KAAA,EAGpB/L,aAAK8Q,GAAU,MAAM,sBAAwB,IAAI,KAAD,EACvE,OADMuD,EAAQuX,EAAAxI,KAAAwI,EAAA7f,KAAA,EACRsF,aAAIgS,GAAiChP,EAAS7kB,KAAKA,OAAO,KAAD,EAAAo8B,EAAA7f,KAAA,iBAE/D,OAF+D6f,EAAA9f,KAAA,GAAA8f,EAAAtI,GAAAsI,EAAA,SAAAA,EAAA7f,KAAA,GAEzDsF,aAAIgS,GAA+B,CAAE7tB,QAASo2B,EAAAtI,GAAE9tB,WAAY,KAAD,GAEjE,OAFiEo2B,EAAA9f,KAAA,GAAA8f,EAAA7f,KAAA,GAE3DsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAAuI,EAAAnD,OAAA,6BAAAmD,EAAA3f,OAAA,GAAA0b,GAAA,qBAI3C,SAAUloC,GAA0BohC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAAigB,GAAA,cAAAA,EAAA/f,KAAA+f,EAAA9f,MAAA,OAC/C,OAD+C8f,EAAA9f,KAAA,EACzCsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BwI,EAAA/f,KAAA,EAAA+f,EAAA9f,KAAA,EAEpB/L,aACrB8Q,GACA,OAAO,sBAEP,GACA+P,EAAO1nB,SACP,KAAD,EANa,KAARkb,EAAQwX,EAAAzI,MAQD,CAADyI,EAAA9f,KAAA,SACV,OADU8f,EAAA9f,KAAA,EACJsF,aAAIgS,MAAoC,KAAD,EAAAwI,EAAA9f,KAAA,uBAEvC,IAAItW,MAAM,wBAAwB,KAAD,GAGzC,OAHyCo2B,EAAA9f,KAAA,GAGnCsF,aAAIgS,GAAkChP,EAAS7kB,OAAO,KAAD,GAAAq8B,EAAA9f,KAAA,iBAE3D,OAF2D8f,EAAA/f,KAAA,GAAA+f,EAAAvI,GAAAuI,EAAA,SAAAA,EAAA9f,KAAA,GAErDsF,aAAIgS,GAAgC,CAAE7tB,QAASq2B,EAAAvI,GAAE9tB,WAAY,KAAD,GAElE,OAFkEq2B,EAAA/f,KAAA,GAAA+f,EAAA9f,KAAA,GAE5DsF,aAAIgS,IAA6B,IAAQ,KAAD,GAC9C,OAD8CwI,EAAA9f,KAAA,GACxCsF,aAAIgS,IAA0B,IAAQ,KAAD,UAAAwI,EAAApD,OAAA,6BAAAoD,EAAA5f,OAAA,GAAA2b,GAAA,qBAIxC,SAAUhoC,GAA2BihC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAAkgB,GAAA,cAAAA,EAAAhgB,KAAAggB,EAAA/f,MAAA,OAChD,OADgD+f,EAAA/f,KAAA,EAC1CsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0ByI,EAAAhgB,KAAA,EAAAggB,EAAA/f,KAAA,EAEpB/L,aACrB8Q,GACA,QAAQ,uBAAD9mB,OACgB62B,EAAO1nB,QAAQ7R,KACtC,GACAu5B,EAAO1nB,QAAQA,SACf,KAAD,EANa,KAARkb,EAAQyX,EAAA1I,MAQD,CAAD0I,EAAA/f,KAAA,SACV,OADU+f,EAAA/f,KAAA,EACJsF,aAAIgS,MAAoC,KAAD,EAAAyI,EAAA/f,KAAA,uBAEvC,IAAItW,MAAM,wBAAwB,KAAD,GAGzC,OAHyCq2B,EAAA/f,KAAA,GAGnCsF,aAAIgS,GAAmChP,EAAS7kB,OAAO,KAAD,GAAAs8B,EAAA/f,KAAA,iBAE5D,OAF4D+f,EAAAhgB,KAAA,GAAAggB,EAAAxI,GAAAwI,EAAA,SAAAA,EAAA/f,KAAA,GAEtDsF,aAAIgS,GAAiC,CAAE7tB,QAASs2B,EAAAxI,GAAE9tB,WAAY,KAAD,GAEnE,OAFmEs2B,EAAAhgB,KAAA,GAAAggB,EAAA/f,KAAA,GAE7DsF,aAAIgS,IAA6B,IAAQ,KAAD,MAEZ,WAA9BxC,EAAO1nB,QAAQC,WAAuB,CAAA0yB,EAAA/f,KAAA,SACxC,OADwC+f,EAAA/f,KAAA,GAClCsF,aAAIgS,IAA0B,IAAQ,KAAD,UAAAyI,EAAArD,OAAA,6BAAAqD,EAAA7f,OAAA,GAAA4b,GAAA,qBAK1C,SAAU9nC,GAA4B8gC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAAmgB,GAAA,cAAAA,EAAAjgB,KAAAigB,EAAAhgB,MAAA,OACjD,OADiDggB,EAAAhgB,KAAA,EAC3CsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0B0I,EAAAjgB,KAAA,EAAAigB,EAAAhgB,KAAA,EAEpB/L,aACrB8Q,GACA,SAAS,uBAAD9mB,OACe62B,EAAO1nB,QAAQ7R,KACtC,IACA,KAAD,EALa,KAAR+sB,EAAQ0X,EAAA3I,MAOD,CAAD2I,EAAAhgB,KAAA,SACV,OADUggB,EAAAhgB,KAAA,EACJsF,aAAIgS,MAAoC,KAAD,EAAA0I,EAAAhgB,KAAA,uBAEvC,IAAItW,MAAM,wBAAwB,KAAD,GAGzC,OAHyCs2B,EAAAhgB,KAAA,GAGnCsF,aAAIgS,GAAoChP,EAAS7kB,OAAO,KAAD,GAAAu8B,EAAAhgB,KAAA,iBAE7D,OAF6DggB,EAAAjgB,KAAA,GAAAigB,EAAAzI,GAAAyI,EAAA,SAAAA,EAAAhgB,KAAA,GAEvDsF,aAAIgS,GAAgC,CAAE7tB,QAASu2B,EAAAzI,GAAE9tB,WAAY,KAAD,GAElE,OAFkEu2B,EAAAjgB,KAAA,GAAAigB,EAAAhgB,KAAA,GAE5DsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAA0I,EAAAtD,OAAA,6BAAAsD,EAAA9f,OAAA,GAAA6b,GAAA,qBAI3C,SAAU7nC,GAAgC4gC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAAogB,GAAA,cAAAA,EAAAlgB,KAAAkgB,EAAAjgB,MAAA,OACrD,OADqDigB,EAAAjgB,KAAA,EAC/CsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0B2I,EAAAlgB,KAAA,EAAAkgB,EAAAjgB,KAAA,EAEpB/L,aACrB8Q,GACA,QAAQ,4BAER,GACA+P,EAAO1nB,SACP,KAAD,EANa,KAARkb,EAAQ2X,EAAA5I,MAQD,CAAD4I,EAAAjgB,KAAA,SACV,OADUigB,EAAAjgB,KAAA,EACJsF,aAAIgS,MAAoC,KAAD,EAAA2I,EAAAjgB,KAAA,uBAEvC,IAAItW,MAAM,wBAAwB,KAAD,GAGzC,OAHyCu2B,EAAAjgB,KAAA,GAGnCsF,aAAIgS,GAAwChP,EAAS7kB,OAAO,KAAD,GAAAw8B,EAAAjgB,KAAA,iBAEjE,OAFiEigB,EAAAlgB,KAAA,GAAAkgB,EAAA1I,GAAA0I,EAAA,SAAAA,EAAAjgB,KAAA,GAE3DsF,aAAIgS,GAAsC,CAAE7tB,QAASw2B,EAAA1I,GAAE9tB,WAAY,KAAD,GAExE,OAFwEw2B,EAAAlgB,KAAA,GAAAkgB,EAAAjgB,KAAA,GAElEsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAA2I,EAAAvD,OAAA,6BAAAuD,EAAA/f,OAAA,GAAA8b,GAAA,qBAK3C,SAAU3nC,GAA0BygC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAAqgB,GAAA,cAAAA,EAAAngB,KAAAmgB,EAAAlgB,MAAA,OAC/C,OAD+CkgB,EAAAlgB,KAAA,EACzCsF,aAAIgS,IAA6B,IAAO,KAAD,EAG1B,OAH0B4I,EAAAngB,KAAA,EAAAmgB,EAAAlgB,KAAA,EAGpB/L,aAAK8Q,GAAU,MAAM,wBAA0B,IAAI,KAAD,EACzE,OADMuD,EAAQ4X,EAAA7I,KAAA6I,EAAAlgB,KAAA,EACRsF,aAAIgS,GAAkChP,EAAS7kB,KAAKA,OAAO,KAAD,EAAAy8B,EAAAlgB,KAAA,iBAEhE,OAFgEkgB,EAAAngB,KAAA,GAAAmgB,EAAA3I,GAAA2I,EAAA,SAAAA,EAAAlgB,KAAA,GAE1DsF,aAAIgS,GAAgC,CAAE7tB,QAASy2B,EAAA3I,GAAE9tB,WAAY,KAAD,GAElE,OAFkEy2B,EAAAngB,KAAA,GAAAmgB,EAAAlgB,KAAA,GAE5DsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAA4I,EAAAxD,OAAA,6BAAAwD,EAAAhgB,OAAA,GAAA+b,GAAA,qBAI3C,SAAUznC,GAA2BsgC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAAsgB,GAAA,cAAAA,EAAApgB,KAAAogB,EAAAngB,MAAA,OAChD,OADgDmgB,EAAAngB,KAAA,EAC1CsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0B6I,EAAApgB,KAAA,EAAAogB,EAAAngB,KAAA,EAEpB/L,aACrB8Q,GACA,OAAO,wBAEP,GACA+P,EAAO1nB,SACP,KAAD,EANa,KAARkb,EAAQ6X,EAAA9I,MAQD,CAAD8I,EAAAngB,KAAA,SACV,OADUmgB,EAAAngB,KAAA,EACJsF,aAAIgS,MAAqC,KAAD,EAAA6I,EAAAngB,KAAA,uBAExC,IAAItW,MAAM,wBAAwB,KAAD,GAGzC,OAHyCy2B,EAAAngB,KAAA,GAGnCsF,aAAIgS,GAAmChP,EAAS7kB,OAAO,KAAD,GAAA08B,EAAAngB,KAAA,iBAE5D,OAF4DmgB,EAAApgB,KAAA,GAAAogB,EAAA5I,GAAA4I,EAAA,SAAAA,EAAAngB,KAAA,GAEtDsF,aAAIgS,GAAiC,CAAE7tB,QAAS02B,EAAA5I,GAAE9tB,WAAY,KAAD,GAEnE,OAFmE02B,EAAApgB,KAAA,GAAAogB,EAAAngB,KAAA,GAE7DsF,aAAIgS,IAA6B,IAAQ,KAAD,GAC9C,OAD8C6I,EAAAngB,KAAA,GACxCsF,aAAIgS,IAA0B,IAAQ,KAAD,UAAA6I,EAAAzD,OAAA,6BAAAyD,EAAAjgB,OAAA,GAAAgc,GAAA,qBAIxC,SAAUvnC,GAA4BmgC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAAugB,GAAA,cAAAA,EAAArgB,KAAAqgB,EAAApgB,MAAA,OACjD,OADiDogB,EAAApgB,KAAA,EAC3CsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0B8I,EAAArgB,KAAA,EAAAqgB,EAAApgB,KAAA,EAEpB/L,aACrB8Q,GACA,QAAQ,yBAAD9mB,OACkB62B,EAAO1nB,QAAQ7R,KACxC,GACAu5B,EAAO1nB,QAAQA,SACf,KAAD,EANa,KAARkb,EAAQ8X,EAAA/I,MAQD,CAAD+I,EAAApgB,KAAA,SACV,OADUogB,EAAApgB,KAAA,EACJsF,aAAIgS,MAAqC,KAAD,EAAA8I,EAAApgB,KAAA,uBAExC,IAAItW,MAAM,wBAAwB,KAAD,GAGzC,OAHyC02B,EAAApgB,KAAA,GAGnCsF,aAAIgS,GAAoChP,EAAS7kB,OAAO,KAAD,GAAA28B,EAAApgB,KAAA,iBAE7D,OAF6DogB,EAAArgB,KAAA,GAAAqgB,EAAA7I,GAAA6I,EAAA,SAAAA,EAAApgB,KAAA,GAEvDsF,aAAIgS,GAAkC,CAAE7tB,QAAS22B,EAAA7I,GAAE9tB,WAAY,KAAD,GAEpE,OAFoE22B,EAAArgB,KAAA,GAAAqgB,EAAApgB,KAAA,GAE9DsF,aAAIgS,IAA6B,IAAQ,KAAD,MAEZ,WAA9BxC,EAAO1nB,QAAQC,WAAuB,CAAA+yB,EAAApgB,KAAA,SACxC,OADwCogB,EAAApgB,KAAA,GAClCsF,aAAIgS,IAA0B,IAAQ,KAAD,UAAA8I,EAAA1D,OAAA,6BAAA0D,EAAAlgB,OAAA,GAAAic,GAAA,qBAK1C,SAAUrnC,GAA6BggC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAAwgB,GAAA,cAAAA,EAAAtgB,KAAAsgB,EAAArgB,MAAA,OAClD,OADkDqgB,EAAArgB,KAAA,EAC5CsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0B+I,EAAAtgB,KAAA,EAAAsgB,EAAArgB,KAAA,EAEpB/L,aACrB8Q,GACA,SAAS,yBAAD9mB,OACiB62B,EAAO1nB,QAAQ7R,KACxC,IACA,KAAD,EALa,KAAR+sB,EAAQ+X,EAAAhJ,MAOD,CAADgJ,EAAArgB,KAAA,SACV,OADUqgB,EAAArgB,KAAA,EACJsF,aAAIgS,MAAqC,KAAD,EAAA+I,EAAArgB,KAAA,uBAExC,IAAItW,MAAM,wBAAwB,KAAD,GAGzC,OAHyC22B,EAAArgB,KAAA,GAGnCsF,aAAIgS,GAAqChP,EAAS7kB,OAAO,KAAD,GAAA48B,EAAArgB,KAAA,iBAE9D,OAF8DqgB,EAAAtgB,KAAA,GAAAsgB,EAAA9I,GAAA8I,EAAA,SAAAA,EAAArgB,KAAA,GAExDsF,aAAIgS,GAAiC,CAAE7tB,QAAS42B,EAAA9I,GAAE9tB,WAAY,KAAD,GAEnE,OAFmE42B,EAAAtgB,KAAA,GAAAsgB,EAAArgB,KAAA,GAE7DsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAA+I,EAAA3D,OAAA,6BAAA2D,EAAAngB,OAAA,GAAAkc,GAAA,qBAI3C,SAAUpnC,GAAiC8/B,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAAygB,GAAA,cAAAA,EAAAvgB,KAAAugB,EAAAtgB,MAAA,OACtD,OADsDsgB,EAAAtgB,KAAA,EAChDsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BgJ,EAAAvgB,KAAA,EAAAugB,EAAAtgB,KAAA,EAEpB/L,aACrB8Q,GACA,QAAQ,8BAER,GACA+P,EAAO1nB,SACP,KAAD,EANa,KAARkb,EAAQgY,EAAAjJ,MAQD,CAADiJ,EAAAtgB,KAAA,SACV,OADUsgB,EAAAtgB,KAAA,EACJsF,aAAIgS,MAAqC,KAAD,EAAAgJ,EAAAtgB,KAAA,uBAExC,IAAItW,MAAM,wBAAwB,KAAD,GAGzC,OAHyC42B,EAAAtgB,KAAA,GAGnCsF,aAAIgS,GAAyChP,EAAS7kB,OAAO,KAAD,GAAA68B,EAAAtgB,KAAA,iBAElE,OAFkEsgB,EAAAvgB,KAAA,GAAAugB,EAAA/I,GAAA+I,EAAA,SAAAA,EAAAtgB,KAAA,GAE5DsF,aAAIgS,GAAuC,CAAE7tB,QAAS62B,EAAA/I,GAAE9tB,WAAY,KAAD,GAEzE,OAFyE62B,EAAAvgB,KAAA,GAAAugB,EAAAtgB,KAAA,GAEnEsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAAgJ,EAAA5D,OAAA,6BAAA4D,EAAApgB,OAAA,GAAAmc,GAAA,qBAK3C,SAAUE,GAA0BzH,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAA0gB,GAAA,cAAAA,EAAAxgB,KAAAwgB,EAAAvgB,MAAA,OAC/C,OAD+CugB,EAAAvgB,KAAA,EACzCsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BiJ,EAAAxgB,KAAA,EAAAwgB,EAAAvgB,KAAA,EAEpB/L,aACrB8Q,GACA,QAAQ,aAAD9mB,OACM62B,EAAO1nB,QAAQ7R,KAC5B,GACAu5B,EAAO1nB,QAAQA,SACf,KAAD,EANa,KAARkb,EAAQiY,EAAAlJ,MAQD,CAADkJ,EAAAvgB,KAAA,SACV,OADUugB,EAAAvgB,KAAA,EACJsF,aAAIgS,MAA+B,KAAD,EAAAiJ,EAAAvgB,KAAA,uBAElC,IAAItW,MAAM,wBAAwB,KAAD,GAGzC,OAHyC62B,EAAAvgB,KAAA,GAGnCsF,aAAIgS,GAAkChP,EAAS7kB,OAAO,KAAD,GAAA88B,EAAAvgB,KAAA,iBAE3D,OAF2DugB,EAAAxgB,KAAA,GAAAwgB,EAAAhJ,GAAAgJ,EAAA,SAAAA,EAAAvgB,KAAA,GAErDsF,aAAIgS,GAAgC,CAAE7tB,QAAS82B,EAAAhJ,GAAE9tB,WAAY,KAAD,GAElE,OAFkE82B,EAAAxgB,KAAA,GAAAwgB,EAAAvgB,KAAA,GAE5DsF,aAAIgS,IAA6B,IAAQ,KAAD,MAEZ,WAA9BxC,EAAO1nB,QAAQC,WAAuB,CAAAkzB,EAAAvgB,KAAA,SACxC,OADwCugB,EAAAvgB,KAAA,GAClCsF,aAAIgS,IAA0B,IAAQ,KAAD,UAAAiJ,EAAA7D,OAAA,6BAAA6D,EAAArgB,OAAA,GAAAoc,GAAA,qBAK1C,SAAUjnC,GAA+By/B,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAA2gB,GAAA,cAAAA,EAAAzgB,KAAAygB,EAAAxgB,MAAA,OACpD,OADoDwgB,EAAAxgB,KAAA,EAC9CsF,aAAIgS,IAA6B,IAAO,KAAD,EAE1B,OAF0BkJ,EAAAzgB,KAAA,EAAAygB,EAAAxgB,KAAA,EAEpB/L,aACrB8Q,GACA,QAAQ,0BAER,GACA+P,EAAO1nB,SACP,KAAD,EANa,KAARkb,EAAQkY,EAAAnJ,MAQD,CAADmJ,EAAAxgB,KAAA,SACV,OADUwgB,EAAAxgB,KAAA,EACJsF,aAAIgS,MAA+B,KAAD,EAAAkJ,EAAAxgB,KAAA,uBAElC,IAAItW,MAAM,wBAAwB,KAAD,GAGzC,OAHyC82B,EAAAxgB,KAAA,GAGnCsF,aAAIgS,GAAuChP,EAAS7kB,OAAO,KAAD,GAAA+8B,EAAAxgB,KAAA,iBAEhE,OAFgEwgB,EAAAzgB,KAAA,GAAAygB,EAAAjJ,GAAAiJ,EAAA,SAAAA,EAAAxgB,KAAA,GAE1DsF,aAAIgS,GAAqC,CAAE7tB,QAAS+2B,EAAAjJ,GAAE9tB,WAAY,KAAD,GAEvE,OAFuE+2B,EAAAzgB,KAAA,GAAAygB,EAAAxgB,KAAA,GAEjEsF,aAAIgS,IAA6B,IAAQ,KAAD,UAAAkJ,EAAA9D,OAAA,6BAAA8D,EAAAtgB,OAAA,GAAAsc,GAAA,qB,2BCvsCjCnrC,IAAeslC,GAAAjX,eAAAC,KAYfnuB,IAccqlC,GAAAnX,eAAAC,KAkBdhuB,IA5CV,SAAUN,GAAgByjC,GAAM,IAAAxM,EAAA,OAAA5I,eAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAElB,OAFkBF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEZ/L,aAAK8Q,GAAU,MAAO,QAAS,IAAI,KAAD,EAA3C,KAARuD,EAAQxI,EAAAuX,MAED5zB,KAAK,CAADqc,EAAAE,KAAA,QACf,OADeF,EAAAE,KAAA,EACTsF,aAAIgS,GAAwBhP,EAAS7kB,OAAO,KAAD,EAAAqc,EAAAE,KAAA,gBAGnD,OAHmDF,EAAAC,KAAA,EAAAD,EAAAyX,GAAAzX,EAAA,SAAAA,EAAAE,KAAA,GAG7CsF,aAAIgS,GAAsB,CAAE7tB,QAASqW,EAAAyX,GAAM9tB,WAAY,KAAD,oBAAAqW,EAAAI,OAAA,GAAAsX,GAAA,cAIzD,SAAUhmC,GAAiBsjC,GAAM,IAAAxM,EAAAmY,EAAA,OAAA/gB,eAAAG,MAAA,SAAA8X,GAAA,cAAAA,EAAA5X,KAAA4X,EAAA3X,MAAA,OAEnB,OAFmB2X,EAAA5X,KAAA,EAAA4X,EAAA3X,KAAA,EAEb/L,aAAK8Q,GAAU,OAAQ,QAAS,GAAI+P,EAAO1nB,SAAS,KAAD,EACzD,OADXkb,EAAQqP,EAAAN,KAAAM,EAAA3X,KAAA,EACS/L,aAAK8Q,GAAU,MAAO,QAAS,IAAI,KAAD,EAA3C,GAAR0b,EAAQ9I,EAAAN,MAEV/O,EAAS7kB,KAAK,CAADk0B,EAAA3X,KAAA,SACf,OADe2X,EAAA3X,KAAA,GACTsF,aAAIgS,GAAyBhP,EAAS7kB,OAAO,KAAD,GAClD,OADkDk0B,EAAA3X,KAAA,GAC5CsF,aAAIgS,GAAwBmJ,EAASh9B,OAAO,KAAD,GAAAk0B,EAAA3X,KAAA,iBAGnD,OAHmD2X,EAAA5X,KAAA,GAAA4X,EAAAJ,GAAAI,EAAA,SAAAA,EAAA3X,KAAA,GAG7CsF,aAAIgS,GAAuB,CAAE7tB,QAASkuB,EAAAJ,GAAM9tB,WAAY,KAAD,oBAAAkuB,EAAAzX,OAAA,GAAAyW,GAAA,eAsB1D,SAAUhlC,GAAkBmjC,GAAM,IAAAxM,EAAAmY,EAAA,OAAA/gB,eAAAG,MAAA,SAAAoY,GAAA,cAAAA,EAAAlY,KAAAkY,EAAAjY,MAAA,OAEpB,OAFoBiY,EAAAlY,KAAA,EAAAkY,EAAAjY,KAAA,EAEd/L,aACrB8Q,GACA,SAAS,SAAD9mB,OACC62B,EAAO1nB,SAChB,IACA,KAAD,EACgB,OANXkb,EAAQ2P,EAAAZ,KAAAY,EAAAjY,KAAA,EAMS/L,aAAK8Q,GAAU,MAAO,QAAS,IAAI,KAAD,EAA3C,GAAR0b,EAAQxI,EAAAZ,MAEV/O,EAAS7kB,KAAK,CAADw0B,EAAAjY,KAAA,SACf,OADeiY,EAAAjY,KAAA,GACTsF,aAAIgS,GAA0BhP,EAAS7kB,OAAO,KAAD,GACnD,OADmDw0B,EAAAjY,KAAA,GAC7CsF,aAAIgS,GAAwBmJ,EAASh9B,OAAO,KAAD,GAAAw0B,EAAAjY,KAAA,iBAGnD,OAHmDiY,EAAAlY,KAAA,GAAAkY,EAAAV,GAAAU,EAAA,SAAAA,EAAAjY,KAAA,GAG7CsF,aAAIgS,GAAwB,CAAE7tB,QAASwuB,EAAAV,GAAM9tB,WAAY,KAAD,oBAAAwuB,EAAA/X,OAAA,GAAA2W,GAAA,e,2BCajD6J,IAAY/J,GAAAjX,eAAAC,KAmLJghB,IAnLlB,SAAUD,KAAY,OAAAhhB,eAAAG,MAAC,SAADC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAC3B,OAD2BF,EAAAE,KAAA,EACrB4gB,aAAWv1C,GAA+BwD,IAAmB,KAAD,EAClE,OADkEixB,EAAAE,KAAA,EAC5D4gB,aAAWv1C,EAAkCI,IAAsB,KAAD,EACxE,OADwEq0B,EAAAE,KAAA,EAClE4gB,aAAWv1C,GAAyByE,IAAc,KAAD,EACvD,OADuDgwB,EAAAE,KAAA,EACjD4gB,aAAWv1C,GAA0BwE,IAAe,KAAD,EACzD,OADyDiwB,EAAAE,KAAA,GACnD4gB,aAAWv1C,GAAoC4E,IAAwB,KAAD,GAC5E,OAD4E6vB,EAAAE,KAAA,GACtE4gB,aAAWv1C,GAA8B+E,IAAkB,KAAD,GAChE,OADgE0vB,EAAAE,KAAA,GAC1D4gB,aAAWv1C,EAAgCqD,IAAoB,KAAD,GACpE,OADoEoxB,EAAAE,KAAA,GAC9D4gB,aAAWv1C,EAAkCkB,IAAsB,KAAD,GACxE,OADwEuzB,EAAAE,KAAA,GAClE4gB,aAAWv1C,EAAiCytC,IAAuB,KAAD,GACxE,OADwEhZ,EAAAE,KAAA,GAClE4gB,aAAWv1C,EAAiC0tC,IAAuB,KAAD,GACxE,OADwEjZ,EAAAE,KAAA,GAClE4gB,aAAWv1C,GAAiC+D,IAAqB,KAAD,GACtE,OADsE0wB,EAAAE,KAAA,GAChE4gB,aAAWv1C,GAAkCsE,IAAsB,KAAD,GACxE,OADwEmwB,EAAAE,KAAA,GAClE4gB,aAAWv1C,EAAkCU,IAAsB,KAAD,GACxE,OADwE+zB,EAAAE,KAAA,GAClE4gB,aAAWv1C,GAAkC0D,IAAsB,KAAD,GACxE,OADwE+wB,EAAAE,KAAA,GAClE4gB,aAAWv1C,GAAiC2tC,IAAsB,KAAD,GACvE,OADuElZ,EAAAE,KAAA,GACjE4gB,aAAWv1C,EAAgC+C,IAAoB,KAAD,GACpE,OADoE0xB,EAAAE,KAAA,GAC9D4gB,aAAWv1C,EAA6ByuC,IAAkB,KAAD,GAC/D,OAD+Dha,EAAAE,KAAA,GACzD4gB,aAAWv1C,EAAmCO,IAAuB,KAAD,GAC1E,OAD0Ek0B,EAAAE,KAAA,GACpE4gB,aAAWv1C,EAAgC4tC,IAAoB,KAAD,GACpE,OADoEnZ,EAAAE,KAAA,GAC9D4gB,aAAWv1C,EAAqCouC,IAAwB,KAAD,GAC7E,OAD6E3Z,EAAAE,KAAA,GACvE4gB,aACJv1C,GACA8tC,IACA,KAAD,GACD,OADCrZ,EAAAE,KAAA,GACK4gB,aAAWv1C,EAAiCa,IAAqB,KAAD,GACtE,OADsE4zB,EAAAE,KAAA,GAChE4gB,aAAWv1C,GAAoC6uC,IAAwB,KAAD,GAC5E,OAD4Epa,EAAAE,KAAA,GACtE4gB,aACJv1C,EACA+uC,IACA,KAAD,GACD,OADCta,EAAAE,KAAA,GACK4gB,aAAWv1C,EAAgCyB,IAAoB,KAAD,GACpE,OADoEgzB,EAAAE,KAAA,GAC9D4gB,aACJv1C,GACAguC,IACA,KAAD,GACD,OADCvZ,EAAAE,KAAA,GACK4gB,aACJv1C,GACAkuC,IACA,KAAD,GACD,OADCzZ,EAAAE,KAAA,GACK4gB,aAAWv1C,GAAiCgC,IAAoB,KAAD,GACrE,OADqEyyB,EAAAE,KAAA,GAC/D4gB,aACJv1C,GACAmC,IACA,KAAD,GACD,OADCsyB,EAAAE,KAAA,GACK4gB,aACJv1C,GACAsC,IACA,KAAD,GACD,OADCmyB,EAAAE,KAAA,GACK4gB,aACJv1C,GACAyC,IACA,KAAD,GACD,OADCgyB,EAAAE,KAAA,GACK4gB,aACJv1C,GACA2C,IACA,KAAD,GACD,OADC8xB,EAAAE,KAAA,GACK4gB,aACJv1C,GACA4D,IACA,KAAD,GACD,OADC6wB,EAAAE,KAAA,GACK4gB,aACJv1C,GACAqrC,IACA,KAAD,GACD,OADC5W,EAAAE,KAAA,GACK4gB,aAAWv1C,GAAmCuvC,IAAwB,KAAD,GAC3E,OAD2E9a,EAAAE,KAAA,GACrE4gB,aAAWv1C,GAAiCkF,IAAqB,KAAD,GACtE,OADsEuvB,EAAAE,KAAA,GAChE4gB,aACJv1C,GACA4rC,IACA,KAAD,GACD,OADCnX,EAAAE,KAAA,GACK4gB,aAAWv1C,GAAoCwF,IAAwB,KAAD,GAC5E,OAD4EivB,EAAAE,KAAA,GACtE4gB,aAAWv1C,GAAoC2F,IAAuB,KAAD,GAC3E,OAD2E8uB,EAAAE,KAAA,GACrE4gB,aACJv1C,GACA0vC,IACA,KAAD,GACD,OADCjb,EAAAE,KAAA,GACK4gB,aAAWv1C,GAAqC4vC,IAAwB,KAAD,GAC7E,OAD6Enb,EAAAE,KAAA,GACvE4gB,aAAWv1C,GAA6BgG,IAAiB,KAAD,GAC9D,OAD8DyuB,EAAAE,KAAA,GACxD4gB,aAAWv1C,GAA8BmG,IAAkB,KAAD,GAChE,OADgEsuB,EAAAE,KAAA,GAC1D4gB,aAAWv1C,GAA+BsG,IAAmB,KAAD,GAClE,OADkEmuB,EAAAE,KAAA,GAC5D4gB,aAAWv1C,GAAiCyG,IAAqB,KAAD,GACtE,OADsEguB,EAAAE,KAAA,GAChE4gB,aAAWv1C,GAAmC4G,IAAsB,KAAD,GACzE,OADyE6tB,EAAAE,KAAA,GACnE4gB,aACJv1C,GACAgwC,IACA,KAAD,GACD,OADCvb,EAAAE,KAAA,GACK4gB,aACJv1C,GACAiH,IACA,KAAD,GAED,OAFCwtB,EAAAE,KAAA,GAEK4gB,aACJv1C,GACAoH,IACA,KAAD,GAED,OAFCqtB,EAAAE,KAAA,IAEK4gB,aACJv1C,GACAuH,IACA,KAAD,IAED,OAFCktB,EAAAE,KAAA,IAEK4gB,aACJv1C,GACA0H,IACA,KAAD,IAED,OAFC+sB,EAAAE,KAAA,IAEK4gB,aACJv1C,GACA6H,IACA,KAAD,IAED,OAFC4sB,EAAAE,KAAA,IAEK4gB,aACJv1C,GACA+H,IACA,KAAD,IAED,OAFC0sB,EAAAE,KAAA,IAEK4gB,aACJv1C,GACAkI,IACA,KAAD,IAED,OAFCusB,EAAAE,KAAA,IAEK4gB,aACJv1C,GACAqI,IACA,KAAD,IAED,OAFCosB,EAAAE,KAAA,IAEK4gB,aACJv1C,GACAwI,IACA,KAAD,IAED,OAFCisB,EAAAE,KAAA,IAEK4gB,aACJv1C,GACA2I,IACA,KAAD,IAED,OAFC8rB,EAAAE,KAAA,IAEK4gB,aACJv1C,GACA6I,IACA,KAAD,IAGD,OAHC4rB,EAAAE,KAAA,IAGK4gB,aACJv1C,GACAgJ,IACA,KAAD,IAED,OAFCyrB,EAAAE,KAAA,IAEK4gB,aACJv1C,GACAmJ,IACA,KAAD,IAED,OAFCsrB,EAAAE,KAAA,IAEK4gB,aACJv1C,GACAsJ,IACA,KAAD,IAED,OAFCmrB,EAAAE,KAAA,IAEK4gB,aACJv1C,GACAyJ,IACA,KAAD,IAED,OAFCgrB,EAAAE,KAAA,IAEK4gB,aACJv1C,GACA2J,IACA,KAAD,IAED,OAFC8qB,EAAAE,KAAA,IAEK4gB,aACJv1C,GACAkxC,IACA,KAAD,IAED,OAFCzc,EAAAE,KAAA,IAEK4gB,aACJv1C,GACAgK,IACA,KAAD,qBAAAyqB,EAAAI,OAAA,GAAAsX,GAAA,CAGY,SAAUmJ,KAAQ,OAAAjhB,eAAAG,MAAC,SAAD8X,GAAA,cAAAA,EAAA5X,KAAA4X,EAAA3X,MAAA,OAC/B,OAD+B2X,EAAA3X,KAAA,EACzB6gB,aAAI,CAACH,OAAiB,KAAD,mBAAA/I,EAAAzX,OAAA,GAAAyW,GAAA,C,qBCxPvBmK,GAAwBC,aAAiB5pB,IAEzC6pB,GAAa,GAEbC,GAAiBC,eAGvBF,GAAWplC,KAAKklC,IAChBE,GAAWplC,KAAKqlC,IAMhB,ICdgB9pB,GDcVgqB,GAAQC,cCdEjqB,GDcsBA,GCdVkqB,aAAgB,CACxCC,WACA9mB,QACAlY,UACAzL,UACAq6B,SACArU,OAAQ0kB,aAAcpqB,ODQsBqqB,KAAettB,WAAC,EAAG8sB,KAGnEC,GAAeQ,IAAId,IAGJQ,UELAO,OAZf,WACE,OACEviD,cAAA,OAAKG,UAAU,MAAKD,SAClBF,cAACwiD,IAAQ,CAACR,MAAOA,GAAM9hD,SACrBF,cAACg1C,KAAe,CAAChd,QAASA,GAAQ93B,SAChCF,cAAC60C,GAAY,SAKvB,ECTe4N,GAZS,SAAAC,GAClBA,GAAeA,aAAuBC,UACxC,8BAAqBzZ,MAAK,SAAArpC,GAAkD,IAA/C+iD,EAAM/iD,EAAN+iD,OAAQC,EAAMhjD,EAANgjD,OAAQC,EAAMjjD,EAANijD,OAAQC,EAAMljD,EAANkjD,OAAQC,EAAOnjD,EAAPmjD,QAC3DJ,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAOL,GACPM,EAAQN,EACV,GAEJ,ECJAO,IAASC,OACPljD,cAACyoB,IAAM06B,WAAU,CAAAjjD,SACfF,cAACuiD,GAAG,MAENa,SAASC,eAAe,SAM1BZ,I","file":"static/js/main.28d1c64e.chunk.js","sourcesContent":["export default __webpack_public_path__ + \"static/media/logo.ea8293a5.png\";","export default __webpack_public_path__ + \"static/media/logo.6ce24c58.svg\";","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport {Link } from \"react-router-dom\";\n\nconst useStyles = makeStyles((theme) => ({\n errorMessage:{\n fontSize: 12,\n color: 'red',\n }\n }));\n\n const route = [\n {name:'Dashboard', route:'/'},\n {name:'Course List', route:'/playlist'},\n {name:'Trainers', route:'/trainers'}\n ]\n\nexport default function ErrorMessage({error}) {\n const classes = useStyles();\n return (\n <>\n {(error && error !=='') && <div className={classes.errorMessage} >{error}</div>}\n </>\n )\n}\n","import React from 'react'\nimport { makeStyles } from '@material-ui/core/styles';\nimport ErrorMessage from './ErrorMessage';\n\n\nconst useStyles = makeStyles((theme) => ({\n inputWrapper:{\n display:'flex',\n flex:1,\n flexDirection:'column',\n padding:10,\n border:'1px solid rgba(0,0,0,0.2)',\n borderRadius:5,\n marginBottom:10,\n '&:hover':{\n border:'1px solid rgba(0,0,0,0.5)',\n },\n '&:focus-within':{\n border:'1px solid rgba(0,0,0,0.5)',\n }\n },\n textarea:{\n border:'none',\n outline:'none',\n display:'flex',\n flex:1,\n fontFamily:'unset',\n marginTop:10\n },\n textareaHeight:{\n height:'10vh'\n },\n title:{\n fontSize:'14px'\n }\n}))\n\nexport default function GenericTextArea({\n handleChange =()=> null ,\n value,\n placeholder,\n title,\n name,\n isBigger = false,\n error,\n style = {}\n}) {\n const classes = useStyles();\n\n const onChange = (e) => {\n handleChange(e.target.value, name)\n }\n\n return (<>\n <div style={isBigger ? {height:'12vh', ...style} : {...style}} className={classes.inputWrapper} >\n {title && <div className={classes.title}>{title}</div>}\n <textarea name={name} onChange={onChange} value={value} placeholder={placeholder} className={classes.textarea} />\n </div>\n <ErrorMessage error={error} />\n </>\n )\n}\n","export const SYSTEM_DATA_LOADING_REQUEST = \"SYSTEM_DATA_LOADING_REQUEST\";\nexport const SYSTEM_DATA_LOADED_SUCCESS = \"SYSTEM_DATA_LOADED_SUCCESS\";\nexport const SYSTEM_DATA_LOADED_ERROR = \"SYSTEM_DATA_LOADED_ERROR\";\n\nexport const MANUAL_AUTH_REQUEST = \"MANUAL_AUTH_REQUEST\";\nexport const MANUAL_AUTH_SUCCESS = \"MANUAL_AUTH_SUCCESS\";\nexport const MANUAL_AUTH_ERROR = \"MANUAL_AUTH_ERROR\";\n\nexport const SOCIAL_AUTH_REQUEST = \"SOCIAL_AUTH_REQUEST\";\nexport const SOCIAL_AUTH_SUCCESS = \"SOCIAL_AUTH_SUCCESS\";\nexport const SOCIAL_AUTH_ERROR = \"SOCIAL_AUTH_ERROR\";\n\nexport const CREATE_TRAINER_REQUEST = \"CREATE_TRAINER_REQUEST\";\nexport const CREATE_TRAINER_SUCCESS = \"CREATE_TRAINER_SUCCESS\";\nexport const CREATE_TRAINER_ERROR = \"CREATE_TRAINER_ERROR\";\n\nexport const CREATE_COURSE_REQUEST = \"CREATE_COURSE_REQUEST\";\nexport const CREATE_COURSE_SUCCESS = \"CREATE_COURSE_SUCCESS\";\nexport const CREATE_COURSE_ERROR = \"CREATE_COURSE_ERROR\";\n\nexport const UPDATE_COURSE_REQUEST = \"UPDATE_COURSE_REQUEST\";\nexport const UPDATE_COURSE_SUCCESS = \"UPDATE_COURSE_SUCCESS\";\nexport const UPDATE_COURSE_ERROR = \"UPDATE_COURSE_ERROR\";\n\nexport const UPDATE_TRAINER_REQUEST = \"UPDATE_TRAINER_REQUEST\";\nexport const UPDATE_TRAINER_SUCCESS = \"UPDATE_TRAINER_SUCCESS\";\nexport const UPDATE_TRAINER_ERROR = \"UPDATE_TRAINER_ERROR\";\n\nexport const GET_COURSELIST_REQUEST = \"GET_COURSELIST_REQUEST\";\nexport const GET_COURSELIST_SUCCESS = \"GET_COURSELIST_SUCCESS\";\nexport const GET_COURSELIST_ERROR = \"GET_COURSELIST_ERROR\";\n\nexport const GET_TRAINERS_REQUEST = \"GET_TRAINERS_REQUEST\";\nexport const GET_TRAINERS_SUCCESS = \"GET_TRAINERS_SUCCESS\";\nexport const GET_TRAINERS_ERROR = \"GET_TRAINERS_ERROR\";\n\nexport const UPLOAD_VIDEO_REQUEST = \"UPLOAD_VIDEO_REQUEST\";\nexport const UPLOAD_VIDEO_SUCCESS = \"UPLOAD_VIDEO_SUCCESS\";\nexport const UPLOAD_VIDEO_ERROR = \"UPLOAD_VIDEO_ERROR\";\n\nexport const GET_VIDEO_REQUEST = \"GET_VIDEO_REQUEST\";\nexport const GET_VIDEO_SUCCESS = \"GET_VIDEO_SUCCESS\";\nexport const GET_VIDEO_ERROR = \"GET_VIDEO_ERROR\";\n\nexport const DELETE_VIDEO_REQUEST = \"DELETE_VIDEO_REQUEST\";\nexport const DELETE_VIDEO_SUCCESS = \"DELETE_VIDEO_SUCCESS\";\nexport const DELETE_VIDEO_ERROR = \"DELETE_VIDEO_ERROR\";\n\nexport const UPDATE_VIDEO_REQUEST = \"UPDATE_VIDEO_REQUEST\";\nexport const UPDATE_VIDEO_SUCCESS = \"UPDATE_VIDEO_SUCCESS\";\nexport const UPDATE_VIDEO_ERROR = \"UPDATE_VIDEO_ERROR\";\n\nexport const CREATE_QUESTION_REQUEST = \"CREATE_QUESTION_REQUEST\";\nexport const CREATE_QUESTION_SUCCESS = \"CREATE_QUESTION_SUCCESS\";\nexport const CREATE_QUESTION_ERROR = \"CREATE_QUESTION_ERROR\";\n\nexport const GET_CAROUSEL_DATA_REQUEST = \"GET_CAROUSEL_DATA_REQUEST\";\nexport const GET_CAROUSEL_DATA_SUCCESS = \"GET_CAROUSEL_DATA_SUCCESS\";\nexport const GET_CAROUSEL_DATA_ERROR = \"GET_CAROUSEL_DATA_ERROR\";\n\nexport const GET_VIDEOBANK_REQUEST = \"GET_VIDEOBANK_REQUEST\";\nexport const GET_VIDEOBANK_SUCCESS = \"GET_VIDEOBANK_SUCCESS\";\nexport const GET_VIDEOBANK_ERROR = \"GET_VIDEOBANK_ERROR\";\n\nexport const ADD_ITEM_VIDEOBANK_REQUEST = \"ADD_ITEM_VIDEOBANK_REQUEST\";\nexport const ADD_ITEM_VIDEOBANK_SUCCESS = \"ADD_ITEM_VIDEOBANK_SUCCESS\";\nexport const ADD_ITEM_VIDEOBANK_ERROR = \"ADD_ITEM_VIDEOBANK_ERROR\";\n\nexport const DELETE_VIDEOBANK_REQUEST = \"DELETE_VIDEOBANK_REQUEST\";\nexport const DELETE_VIDEOBANK_SUCCESS = \"DELETE_VIDEOBANK_SUCCESS\";\n\nexport const CREATE_CAROUSEL_DATA_REQUEST = \"CREATE_CAROUSEL_DATA_REQUEST\";\nexport const CREATE_CAROUSEL_DATA_SUCCESS = \"CREATE_CAROUSEL_DATA_SUCCESS\";\nexport const CREATE_CAROUSEL_DATA_ERROR = \"CREATE_CAROUSEL_DATA_ERROR\";\n\nexport const UPDATE_CAROUSEL_DATA_REQUEST = \"UPDATE_CAROUSEL_DATA_REQUEST\";\nexport const UPDATE_CAROUSEL_DATA_SUCCESS = \"UPDATE_CAROUSEL_DATA_SUCCESS\";\n\nexport const DELETE_CAROUSEL_REQUEST = \"DELETE_CAROUSEL_REQUEST\";\nexport const DELETE_CAROUSEL_SUCCESS = \"DELETE_CAROUSEL_SUCCESS\";\n\nexport const DELETE_TRAINER_REQUEST = \"DELETE_TRAINER_REQUEST\";\nexport const DELETE_TRAINER_SUCCESS = \"DELETE_TRAINER_SUCCESS\";\n\nexport const DELETE_COURSE_REQUEST = \"DELETE_COURSE_REQUEST\";\nexport const DELETE_COURSE_SUCCESS = \"DELETE_COURSE_SUCCESS\";\n\nexport const VIDEO_MODAL_REQUEST = \"VIDEO_MODAL_REQUEST\";\nexport const VIDEO_MODAL_SUCCESS = \"VIDEO_MODAL_SUCCESS\";\n\nexport const SELECT_QUESTION_CATEGORY_REQUEST =\n \"SELECT_QUESTION_CATEGORY_REQUEST\";\nexport const SELECT_QUESTION_CATEGORY_SUCCESS =\n \"SELECT_QUESTION_CATEGORY_SUCCESS\";\n\nexport const SET_MODALDATA_REQUEST = \"SET_MODALDATA_REQUEST\";\nexport const SET_MODALDATAL_SUCCESS = \"SET_MODALDATAL_SUCCESS\";\n\nexport const GENERIC_LOADER_REQUEST = \"GENERIC_LOADER_REQUEST\";\nexport const GENERIC_LOADER_SUCCESS = \"GENERIC_LOADER_SUCCESS\";\n\nexport const LOGOUT_REQUEST = \"LOGOUT_REQUEST\";\nexport const LOGOUT_SUCCESS = \"LOGOUT_SUCCESS\";\n\nexport const GET_USER_LIST_REQUEST = \"GET_USER_LIST_REQUEST\";\nexport const GET_USER_LIST_SUCCESS = \"GET_USER_LIST_SUCCESS\";\nexport const GET_USER_LIST_ERROR = \"GET_USER_LIST_ERROR\";\n\nexport const GET_QUESTION_CATEGORY_REQUEST = \"GET_QUESTION_CATEGORY_REQUEST\";\nexport const GET_QUESTION_CATEGORY_SUCCESS = \"GET_QUESTION_CATEGORY_SUCCESS\";\nexport const GET_QUESTION_CATEGORY_ERROR = \"GET_QUESTION_CATEGORY_ERROR\";\n\nexport const CREATE_QUESTION_CATEGORY_REQUEST =\n \"CREATE_QUESTION_CATEGORY_REQUEST\";\nexport const CREATE_QUESTION_CATEGORY_SUCCESS =\n \"CREATE_QUESTION_CATEGORY_SUCCESS\";\nexport const CREATE_QUESTION_CATEGORY_ERROR = \"CREATE_QUESTION_CATEGORY_ERROR\";\n\nexport const UPDATE_QUESTION_REQUEST = \"UPDATE_QUESTION_REQUEST\";\nexport const UPDATE_QUESTION_SUCCESS = \"UPDATE_QUESTION_SUCCESS\";\nexport const UPDATE_QUESTION_ERROR = \"UPDATE_QUESTION_ERROR\";\n\nexport const DELETE_QUESTION_CATEGORY_REQUEST =\n \"DELETE_QUESTION_CATEGORY_REQUEST\";\nexport const DELETE_QUESTION_CATEGORY_SUCCESS =\n \"DELETE_QUESTION_CATEGORY_SUCCESS\";\n\nexport const UPDATE_QUESTION_CATEGORY_REQUEST =\n \"UPDATE_QUESTION_CATEGORY_REQUEST\";\nexport const UPDATE_QUESTION_CATEGORY_SUCCESS =\n \"UPDATE_QUESTION_CATEGORY_SUCCESS\";\n\nexport const UPDATE_USER_SUBSCRIPTION_REQUEST =\n \"UPDATE_USER_SUBSCRIPTION_REQUEST\";\nexport const UPDATE_USER_SUBSCRIPTION_SUCCESS =\n \"UPDATE_USER_SUBSCRIPTION_SUCCESS\";\nexport const UPDATE_USER_SUBSCRIPTION_ERROR = \"UPDATE_USER_SUBSCRIPTION_ERROR\";\n\nexport const LOGIN_REQUEST = \"LOGIN_REQUEST\";\nexport const LOGIN_SUCCESS = \"LOGIN_SUCCESS\";\nexport const LOGIN_ERROR = \"LOGIN_ERROR\";\n\nexport const OTP_VERIFICATION_REQUEST = \"OTP_VERIFICATION_REQUEST\";\nexport const OTP_VERIFICATION_SUCCESS = \"OTP_VERIFICATION_SUCCESS\";\nexport const OTP_VERIFICATION_ERROR = \"OTP_VERIFICATION_ERROR\";\n\nexport const RESEND_OTP_REQUEST = \"RESEND_OTP_REQUEST\";\nexport const RESEND_OTP_SUCCESS = \"RESEND_OTP_SUCCESS\";\nexport const RESEND_OTP_ERROR = \"RESEND_OTP_ERROR\";\n\nexport const SET_CURRENT_USER = \"SET_CURRENT_USER\";\n\nexport const GET_DASHBOARD_REQUEST = \"GET_DASHBOARD_REQUEST\";\nexport const GET_DASHBOARD_SUCCESS = \"GET_DASHBOARD_SUCCESS\";\nexport const GET_DASHBOARD_ERROR = \"GET_DASHBOARD_ERROR\";\n\nexport const SEND_NOTIFICATION_REQUEST = \"SEND_NOTIFICATION_REQUEST\";\nexport const SEND_NOTIFICATION_SUCCESS = \"SEND_NOTIFICATION_SUCCESS\";\nexport const SEND_NOTIFICATION_ERROR = \"SEND_NOTIFICATION_ERROR\";\n\nexport const GET_NOTIFICATION_REQUEST = \"GET_NOTIFICATION_REQUEST\";\nexport const GET_NOTIFICATION_SUCCESS = \"GET_NOTIFICATION_SUCCESS\";\nexport const GET_NOTIFICATION_ERROR = \"GET_NOTIFICATION_ERROR\";\n\nexport const SET_PAID_CONTENT_REQUEST = \"SET_PAID_CONTENT_REQUEST\";\nexport const SET_PAID_CONTENT_SUCCESS = \"SET_PAID_CONTENT_SUCCESS\";\nexport const SET_PAID_CONTENT_ERROR = \"SET_PAID_CONTENT_ERROR\";\n\nexport const UPGRADE_USER_PREMIUM_REQUEST = \"UPGRADE_USER_PREMIUM_REQUEST\";\nexport const UPGRADE_USER_PREMIUM_SUCCESS = \"UPGRADE_USER_PREMIUM_SUCCESS\";\nexport const UPGRADE_USER_PREMIUM_ERROR = \"UPGRADE_USER_PREMIUM_ERROR\";\n\nexport const UPGRADE_USER_DATA_REQUEST = \"UPGRADE_USER_DATA_REQUEST\";\nexport const UPGRADE_USER_DATA_SUCCESS = \"UPGRADE_USER_DATA_SUCCESS\";\nexport const UPGRADE_USER_DATA_ERROR = \"UPGRADE_USER_DATA_ERROR\";\n\nexport const GET_BOOKS_REQUEST = \"GET_BOOKS_REQUEST\";\nexport const GET_BOOKS_SUCCESS = \"GET_BOOKS_SUCCESS\";\nexport const GET_BOOKS_ERROR = \"GET_BOOKS_ERROR\";\n\nexport const POST_BOOKS_REQUEST = \"POST_BOOKS_REQUEST\";\nexport const POST_BOOKS_SUCCESS = \"POST_BOOKS_SUCCESS\";\nexport const POST_BOOKS_ERROR = \"POST_BOOKS_ERROR\";\n\nexport const PUT_BOOK_REQUEST = \"PUT_BOOK_REQUEST\";\nexport const PUT_BOOK_SUCCESS = \"PUT_BOOK_SUCCESS\";\nexport const PUT_BOOK_ERROR = \"PUT_BOOK_ERROR\";\n\nexport const DELETE_BOOK_REQUEST = \"DELETE_BOOK_REQUEST\";\nexport const DELETE_BOOK_SUCCESS = \"DELETE_BOOK_SUCCESS\";\nexport const DELETE_BOOK_ERROR = \"DELETE_BOOK_ERROR\";\n\nexport const CREATE_COUPON_REQUEST = \"CREATE_COUPON_REQUEST\";\nexport const CREATE_COUPON_SUCCESS = \"CREATE_COUPON_SUCCESS\";\nexport const CREATE_COUPON_ERROR = \"CREATE_COUPON_ERROR\";\n\nexport const GET_COUPON_LIST_REQUEST = \"GET_COUPON_LIST_REQUEST\";\nexport const GET_COUPON_LIST_SUCCESS = \"GET_COUPON_LIST_SUCCESS\";\nexport const GET_COUPON_LIST_ERROR = \"GET_COUPON_LIST_ERROR\";\n\nexport const POST_GRANT_PREMIUM_REQUEST = \"POST_GRANT_PREMIUM_REQUEST\";\nexport const POST_GRANT_PREMIUM_SUCCESS = \"POST_GRANT_PREMIUM_SUCCESS\";\nexport const POST_GRANT_PREMIUM_ERROR = \"POST_GRANT_PREMIUM_ERROR\";\n\nexport const POST_GRANT_PREMIUM_MANY_REQUEST =\n \"POST_GRANT_PREMIUM_MANY_REQUEST\";\nexport const POST_GRANT_PREMIUM_MANY_SUCCESS =\n \"POST_GRANT_PREMIUM_MANY_SUCCESS\";\nexport const POST_GRANT_PREMIUM_MANY_ERROR = \"POST_GRANT_PREMIUM_MANY_ERROR\";\n\n// Actionable Insight\nexport const GET_ACTIONABLE_INSIGHT_DATA_REQUEST =\n \"GET_ACTIONABLE_INSIGHT_DATA_REQUEST\";\nexport const GET_ACTIONABLE_INSIGHT_DATA_SUCCESS =\n \"GET_ACTIONABLE_INSIGHT_DATA_SUCCESS\";\nexport const GET_ACTIONABLE_INSIGHT_DATA_ERROR =\n \"GET_ACTIONABLE_INSIGHT_DATA_ERROR\";\n\nexport const POST_ACTIONABLE_INSIGHT_DATA_REQUEST =\n \"POST_ACTIONABLE_INSIGHT_DATA_REQUEST\";\nexport const POST_ACTIONABLE_INSIGHT_DATA_SUCCESS =\n \"POST_ACTIONABLE_INSIGHT_DATA_SUCCESS\";\nexport const POST_ACTIONABLE_INSIGHT_DATA_ERROR =\n \"POST_ACTIONABLE_INSIGHT_DATA_ERROR\";\n\nexport const PATCH_ACTIONABLE_INSIGHT_DATA_REQUEST =\n \"PATCH_ACTIONABLE_INSIGHT_DATA_REQUEST\";\nexport const PATCH_ACTIONABLE_INSIGHT_DATA_SUCCESS =\n \"PATCH_ACTIONABLE_INSIGHT_DATA_SUCCESS\";\nexport const PATCH_ACTIONABLE_INSIGHT_DATA_ERROR =\n \"PATCH_ACTIONABLE_INSIGHT_DATA_ERROR\";\n\nexport const DELETE_ACTIONABLE_INSIGHT_DATA_REQUEST =\n \"DELETE_ACTIONABLE_INSIGHT_DATA_REQUEST\";\nexport const DELETE_ACTIONABLE_INSIGHT_DATA_SUCCESS =\n \"DELETE_ACTIONABLE_INSIGHT_DATA_SUCCESS\";\n\nexport const PATCH_ORDER_ACTIONABLE_INSIGHT_DATA_REQUEST =\n \"PATCH_ORDER_ACTIONABLE_INSIGHT_DATA_REQUEST\";\nexport const PATCH_ORDER_ACTIONABLE_INSIGHT_DATA_SUCCESS =\n \"PATCH_ORDER_ACTIONABLE_INSIGHT_DATA_SUCCESS\";\nexport const PATCH_ORDER_ACTIONABLE_INSIGHT_DATA_ERROR =\n \"PATCH_ORDER_ACTIONABLE_INSIGHT_DATA_ERROR\";\n\n// KEY CONCEPT\nexport const GET_KEY_CONCEPT_DATA_REQUEST = \"GET_KEY_CONCEPT_DATA_REQUEST\";\nexport const GET_KEY_CONCEPT_DATA_SUCCESS = \"GET_KEY_CONCEPT_DATA_SUCCESS\";\nexport const GET_KEY_CONCEPT_DATA_ERROR = \"GET_KEY_CONCEPT_DATA_ERROR\";\n\nexport const POST_KEY_CONCEPT_DATA_REQUEST = \"POST_KEY_CONCEPT_DATA_REQUEST\";\nexport const POST_KEY_CONCEPT_DATA_SUCCESS = \"POST_KEY_CONCEPT_DATA_SUCCESS\";\nexport const POST_KEY_CONCEPT_DATA_ERROR = \"POST_KEY_CONCEPT_DATA_ERROR\";\n\nexport const PATCH_KEY_CONCEPT_DATA_REQUEST = \"PATCH_KEY_CONCEPT_DATA_REQUEST\";\nexport const PATCH_KEY_CONCEPT_DATA_SUCCESS = \"PATCH_KEY_CONCEPT_DATA_SUCCESS\";\nexport const PATCH_KEY_CONCEPT_DATA_ERROR = \"PATCH_KEY_CONCEPT_DATA_ERROR\";\n\nexport const DELETE_KEY_CONCEPT_DATA_REQUEST =\n \"DELETE_KEY_CONCEPT_DATA_REQUEST\";\nexport const DELETE_KEY_CONCEPT_DATA_SUCCESS =\n \"DELETE_KEY_CONCEPT_DATA_SUCCESS\";\n\nexport const PATCH_ORDER_KEY_CONCEPT_DATA_REQUEST =\n \"PATCH_ORDER_KEY_CONCEPT_DATA_REQUEST\";\nexport const PATCH_ORDER_KEY_CONCEPT_DATA_SUCCESS =\n \"PATCH_ORDER_KEY_CONCEPT_DATA_SUCCESS\";\nexport const PATCH_ORDER_KEY_CONCEPT_DATA_ERROR =\n \"PATCH_ORDER_KEY_CONCEPT_DATA_ERROR\";\n\n// TOP CAROUSEL\nexport const GET_TOP_CAROUSEL_DATA_REQUEST = \"GET_TOP_CAROUSEL_DATA_REQUEST\";\nexport const GET_TOP_CAROUSEL_DATA_SUCCESS = \"GET_TOP_CAROUSEL_DATA_SUCCESS\";\nexport const GET_TOP_CAROUSEL_DATA_ERROR = \"GET_TOP_CAROUSEL_DATA_ERROR\";\n\nexport const POST_TOP_CAROUSEL_DATA_REQUEST = \"POST_TOP_CAROUSEL_DATA_REQUEST\";\nexport const POST_TOP_CAROUSEL_DATA_SUCCESS = \"POST_TOP_CAROUSEL_DATA_SUCCESS\";\nexport const POST_TOP_CAROUSEL_DATA_ERROR = \"POST_TOP_CAROUSEL_DATA_ERROR\";\n\nexport const PATCH_TOP_CAROUSEL_DATA_REQUEST =\n \"PATCH_TOP_CAROUSEL_DATA_REQUEST\";\nexport const PATCH_TOP_CAROUSEL_DATA_SUCCESS =\n \"PATCH_TOP_CAROUSEL_DATA_SUCCESS\";\nexport const PATCH_TOP_CAROUSEL_DATA_ERROR = \"PATCH_TOP_CAROUSEL_DATA_ERROR\";\n\nexport const DELETE_TOP_CAROUSEL_DATA_REQUEST =\n \"DELETE_TOP_CAROUSEL_DATA_REQUEST\";\nexport const DELETE_TOP_CAROUSEL_DATA_SUCCESS =\n \"DELETE_TOP_CAROUSEL_DATA_SUCCESS\";\n\nexport const PATCH_ORDER_TOP_CAROUSEL_DATA_REQUEST =\n \"PATCH_ORDER_TOP_CAROUSEL_DATA_REQUEST\";\nexport const PATCH_ORDER_TOP_CAROUSEL_DATA_SUCCESS =\n \"PATCH_ORDER_TOP_CAROUSEL_DATA_SUCCESS\";\nexport const PATCH_ORDER_TOP_CAROUSEL_DATA_ERROR =\n \"PATCH_ORDER_TOP_CAROUSEL_DATA_ERROR\";\n\n//VIDEO BANK\nexport const PATCH_VIDEO_BANK_DATA_REQUEST = \"PATCH_VIDEO_BANK_DATA_REQUEST\";\nexport const PATCH_VIDEO_BANK_DATA_SUCCESS = \"PATCH_VIDEO_BANK_DATA_SUCCESS\";\nexport const PATCH_VIDEO_BANK_DATA_ERROR = \"PATCH_VIDEO_BANK_DATA_ERROR\";\n\nexport const PATCH_ORDER_VIDEO_BANK_DATA_REQUEST =\n \"PATCH_ORDER_VIDEO_BANK_DATA_REQUEST\";\nexport const PATCH_ORDER_VIDEO_BANK_DATA_SUCCESS =\n \"PATCH_ORDER_VIDEO_BANK_DATA_SUCCESS\";\nexport const PATCH_ORDER_VIDEO_BANK_DATA_ERROR =\n \"PATCH_ORDER_VIDEO_BANK_DATA_ERROR\";\n","import { createAction } from \"redux-actions\";\nimport * as constants from \"./constants\";\n\nexport const manualAuthRequest = createAction(constants.MANUAL_AUTH_REQUEST);\nexport const manualAuthSuccess = createAction(constants.MANUAL_AUTH_SUCCESS);\nexport const manualAuthError = createAction(constants.MANUAL_AUTH_ERROR);\n\nexport const socialAuthRequest = createAction(constants.SOCIAL_AUTH_REQUEST);\nexport const socialAuthSuccess = createAction(constants.SOCIAL_AUTH_SUCCESS);\nexport const socialAuthError = createAction(constants.SOCIAL_AUTH_ERROR);\n\nexport const createCourseRequest = createAction(\n constants.CREATE_COURSE_REQUEST\n);\nexport const createCourseSuccess = createAction(\n constants.CREATE_COURSE_SUCCESS\n);\nexport const createCourseError = createAction(constants.CREATE_COURSE_ERROR);\n\nexport const updateCourseRequest = createAction(\n constants.UPDATE_COURSE_REQUEST\n);\nexport const updateCourseSuccess = createAction(\n constants.UPDATE_COURSE_SUCCESS\n);\nexport const updateCourseError = createAction(constants.UPDATE_COURSE_ERROR);\n\nexport const createTrainerRequest = createAction(\n constants.CREATE_TRAINER_REQUEST\n);\nexport const createTrainerSuccess = createAction(\n constants.CREATE_TRAINER_SUCCESS\n);\nexport const createTrainerError = createAction(constants.CREATE_TRAINER_ERROR);\n\nexport const createQuestionRequest = createAction(\n constants.CREATE_QUESTION_REQUEST\n);\nexport const createQuestionSuccess = createAction(\n constants.CREATE_QUESTION_SUCCESS\n);\nexport const createQuestionError = createAction(\n constants.CREATE_QUESTION_ERROR\n);\n\nexport const updateTrainerRequest = createAction(\n constants.UPDATE_TRAINER_REQUEST\n);\nexport const updateTrainerSuccess = createAction(\n constants.UPDATE_TRAINER_SUCCESS\n);\nexport const updateTrainerError = createAction(constants.UPDATE_TRAINER_ERROR);\n\nexport const getVideoBankRequest = createAction(\n constants.GET_VIDEOBANK_REQUEST\n);\nexport const getVideoBankSuccess = createAction(\n constants.GET_VIDEOBANK_SUCCESS\n);\nexport const getVideoBankError = createAction(constants.GET_VIDEOBANK_ERROR);\n\nexport const deleteVideobankRequest = createAction(\n constants.DELETE_VIDEOBANK_REQUEST\n);\nexport const deleteVideobankSuccess = createAction(\n constants.DELETE_VIDEOBANK_SUCCESS\n);\n\nexport const getCourseListRequest = createAction(\n constants.GET_COURSELIST_REQUEST\n);\nexport const getCourseListSuccess = createAction(\n constants.GET_COURSELIST_SUCCESS\n);\nexport const getCourseListError = createAction(constants.GET_COURSELIST_ERROR);\n\nexport const addItemToVideobankRequest = createAction(\n constants.ADD_ITEM_VIDEOBANK_REQUEST\n);\nexport const addItemToVideobankSuccess = createAction(\n constants.ADD_ITEM_VIDEOBANK_SUCCESS\n);\nexport const addItemToVideobankError = createAction(\n constants.ADD_ITEM_VIDEOBANK_ERROR\n);\n\nexport const deleteVideoRequest = createAction(constants.DELETE_VIDEO_REQUEST);\nexport const deleteVideoSuccess = createAction(constants.DELETE_VIDEO_SUCCESS);\nexport const deleteVideoError = createAction(constants.DELETE_VIDEO_ERROR);\n\nexport const updateVideoRequest = createAction(constants.UPDATE_VIDEO_REQUEST);\nexport const updateVideoSuccess = createAction(constants.UPDATE_VIDEO_SUCCESS);\nexport const updateVideoError = createAction(constants.UPDATE_VIDEO_ERROR);\n\nexport const getCarouselDataRequest = createAction(\n constants.GET_CAROUSEL_DATA_REQUEST\n);\nexport const getCarouselDataSuccess = createAction(\n constants.GET_CAROUSEL_DATA_SUCCESS\n);\nexport const getCarouselDataError = createAction(\n constants.GET_CAROUSEL_DATA_ERROR\n);\n\nexport const createCarouselDataRequest = createAction(\n constants.CREATE_CAROUSEL_DATA_REQUEST\n);\nexport const createCarouselDataSuccess = createAction(\n constants.CREATE_CAROUSEL_DATA_SUCCESS\n);\nexport const createCarouselDataError = createAction(\n constants.CREATE_CAROUSEL_DATA_ERROR\n);\n\nexport const getUserListRequest = createAction(constants.GET_USER_LIST_REQUEST);\nexport const getUserListSuccess = createAction(constants.GET_USER_LIST_SUCCESS);\nexport const getUserListError = createAction(constants.GET_USER_LIST_ERROR);\n\nexport const getQuestionCategoryRequest = createAction(\n constants.GET_QUESTION_CATEGORY_REQUEST\n);\nexport const getQuestionCategorySuccess = createAction(\n constants.GET_QUESTION_CATEGORY_SUCCESS\n);\nexport const getQuestionCategoryError = createAction(\n constants.GET_QUESTION_CATEGORY_ERROR\n);\n\nexport const createQuestionCategoryRequest = createAction(\n constants.CREATE_QUESTION_CATEGORY_REQUEST\n);\nexport const createQuestionCategorySuccess = createAction(\n constants.CREATE_QUESTION_CATEGORY_SUCCESS\n);\nexport const createQuestionCategoryError = createAction(\n constants.CREATE_QUESTION_CATEGORY_ERROR\n);\n\nexport const deleteQuestionCategoryRequest = createAction(\n constants.DELETE_QUESTION_CATEGORY_REQUEST\n);\nexport const deleteQuestionCategorySuccess = createAction(\n constants.DELETE_QUESTION_CATEGORY_SUCCESS\n);\n\nexport const updateQuestionCategoryRequest = createAction(\n constants.UPDATE_QUESTION_CATEGORY_REQUEST\n);\nexport const updateQuestionCategorySuccess = createAction(\n constants.UPDATE_QUESTION_CATEGORY_SUCCESS\n);\n\nexport const updateCarouselDataRequest = createAction(\n constants.UPDATE_CAROUSEL_DATA_REQUEST\n);\nexport const updateCarouselDataSuccess = createAction(\n constants.UPDATE_CAROUSEL_DATA_SUCCESS\n);\n\nexport const deleteCarouselDataRequest = createAction(\n constants.DELETE_CAROUSEL_REQUEST\n);\nexport const deleteCarouselDataSuccess = createAction(\n constants.DELETE_CAROUSEL_SUCCESS\n);\n\nexport const uploadVideoRequest = createAction(constants.UPLOAD_VIDEO_REQUEST);\nexport const uploadVideoSuccess = createAction(constants.UPLOAD_VIDEO_SUCCESS);\nexport const uploadVideoError = createAction(constants.UPLOAD_VIDEO_ERROR);\n\nexport const getVideoRequest = createAction(constants.GET_VIDEO_REQUEST);\nexport const getVideoSuccess = createAction(constants.GET_VIDEO_SUCCESS);\nexport const getVideoError = createAction(constants.GET_VIDEO_ERROR);\n\nexport const getTrainersRequest = createAction(constants.GET_TRAINERS_REQUEST);\nexport const getTrainersSuccess = createAction(constants.GET_TRAINERS_SUCCESS);\nexport const getTrainersError = createAction(constants.GET_TRAINERS_ERROR);\n\nexport const videoModalRequest = createAction(constants.VIDEO_MODAL_REQUEST);\nexport const videoModalSuccess = createAction(constants.VIDEO_MODAL_SUCCESS);\n\nexport const deleteTrainerRequest = createAction(\n constants.DELETE_TRAINER_REQUEST\n);\nexport const deleteTrainerSuccess = createAction(\n constants.DELETE_TRAINER_SUCCESS\n);\n\nexport const selectQuestionCategoryRequest = createAction(\n constants.SELECT_QUESTION_CATEGORY_REQUEST\n);\nexport const selectQuestionCategorySuccess = createAction(\n constants.SELECT_QUESTION_CATEGORY_SUCCESS\n);\n\nexport const deleteCourseRequest = createAction(\n constants.DELETE_COURSE_REQUEST\n);\nexport const deleteCourseSuccess = createAction(\n constants.DELETE_COURSE_SUCCESS\n);\n\nexport const setModalDataRequest = createAction(\n constants.SET_MODALDATA_REQUEST\n);\nexport const setModalDataSuccess = createAction(\n constants.SET_MODALDATAL_SUCCESS\n);\n\nexport const updateUserSubscriptionRequest = createAction(\n constants.UPDATE_USER_SUBSCRIPTION_REQUEST\n);\nexport const updateUserSubscriptionSuccess = createAction(\n constants.UPDATE_USER_SUBSCRIPTION_SUCCESS\n);\nexport const updateUserSubscriptionError = createAction(\n constants.UPDATE_USER_SUBSCRIPTION_ERROR\n);\n\nexport const updateQuestionRequest = createAction(\n constants.UPDATE_QUESTION_REQUEST\n);\nexport const updateQuestionSuccess = createAction(\n constants.UPDATE_QUESTION_SUCCESS\n);\nexport const updateQuestionError = createAction(\n constants.UPDATE_QUESTION_ERROR\n);\n\nexport const genericLoaderRequest = createAction(\n constants.GENERIC_LOADER_REQUEST\n);\nexport const genericLoaderSuccess = createAction(\n constants.GENERIC_LOADER_SUCCESS\n);\n\nexport const logoutRequest = createAction(constants.LOGOUT_REQUEST);\nexport const logoutSuccess = createAction(constants.LOGOUT_SUCCESS);\n\nexport const loginRequest = createAction(constants.LOGIN_REQUEST);\nexport const loginSuccess = createAction(constants.LOGIN_SUCCESS);\nexport const loginError = createAction(constants.LOGIN_ERROR);\n\nexport const otpVerificationRequest = createAction(\n constants.OTP_VERIFICATION_REQUEST\n);\nexport const otpVerificationSuccess = createAction(\n constants.OTP_VERIFICATION_SUCCESS\n);\nexport const otpVerificationError = createAction(\n constants.OTP_VERIFICATION_ERROR\n);\n\nexport const resendOtpRequest = createAction(constants.RESEND_OTP_REQUEST);\nexport const resendOtpSuccess = createAction(constants.RESEND_OTP_SUCCESS);\nexport const resendOtpError = createAction(constants.RESEND_OTP_ERROR);\n\nexport const setCurrentUser = createAction(constants.SET_CURRENT_USER);\n\nexport const getDashboardRequest = createAction(\n constants.GET_DASHBOARD_REQUEST\n);\nexport const getDashboardSuccess = createAction(\n constants.GET_DASHBOARD_SUCCESS\n);\nexport const getDashboardError = createAction(constants.GET_DASHBOARD_ERROR);\n\nexport const sendNotificationdRequest = createAction(\n constants.SEND_NOTIFICATION_REQUEST\n);\nexport const sendNotificationSuccess = createAction(\n constants.SEND_NOTIFICATION_SUCCESS\n);\nexport const sendNotificationError = createAction(\n constants.SEND_NOTIFICATION_ERROR\n);\n\nexport const getNotificationRequest = createAction(\n constants.GET_NOTIFICATION_REQUEST\n);\nexport const getNotificationSuccess = createAction(\n constants.GET_NOTIFICATION_SUCCESS\n);\nexport const getNotificationError = createAction(\n constants.GET_NOTIFICATION_ERROR\n);\n\nexport const setPaidContentRequest = createAction(\n constants.SET_PAID_CONTENT_REQUEST\n);\nexport const setPaidContentSuccess = createAction(\n constants.SET_PAID_CONTENT_SUCCESS\n);\nexport const setPaidContentError = createAction(\n constants.SET_PAID_CONTENT_ERROR\n);\n\nexport const upgradeUserPremiumRequest = createAction(\n constants.UPGRADE_USER_PREMIUM_REQUEST\n);\nexport const upgradeUserPremiumSuccess = createAction(\n constants.UPGRADE_USER_PREMIUM_SUCCESS\n);\nexport const upgradeUserPremiumError = createAction(\n constants.UPGRADE_USER_PREMIUM_ERROR\n);\n\nexport const upgradeUserDataRequest = createAction(\n constants.UPGRADE_USER_DATA_REQUEST\n);\nexport const upgradeUserDataSuccess = createAction(\n constants.UPGRADE_USER_DATA_SUCCESS\n);\nexport const upgradeUserDataError = createAction(\n constants.UPGRADE_USER_DATA_ERROR\n);\n\nexport const getBooksRequest = createAction(constants.GET_BOOKS_REQUEST);\nexport const getBooksSuccess = createAction(constants.GET_BOOKS_SUCCESS);\nexport const getBooksError = createAction(constants.GET_BOOKS_ERROR);\n\nexport const postBooksRequest = createAction(constants.POST_BOOKS_REQUEST);\nexport const postBooksSuccess = createAction(constants.POST_BOOKS_SUCCESS);\nexport const postBooksError = createAction(constants.POST_BOOKS_ERROR);\n\nexport const putBookRequest = createAction(constants.PUT_BOOK_REQUEST);\nexport const putBookSuccess = createAction(constants.PUT_BOOK_SUCCESS);\nexport const putBookError = createAction(constants.PUT_BOOK_ERROR);\n\nexport const deleteBookRequest = createAction(constants.DELETE_BOOK_REQUEST);\nexport const deleteBookSuccess = createAction(constants.DELETE_BOOK_SUCCESS);\nexport const deleteBookError = createAction(constants.DELETE_BOOK_ERROR);\n\nexport const createCouponRequest = createAction(\n constants.CREATE_COUPON_REQUEST\n);\nexport const createCouponSuccess = createAction(\n constants.CREATE_COUPON_SUCCESS\n);\nexport const createCouponError = createAction(constants.CREATE_COUPON_ERROR);\n\nexport const getCouponListRequest = createAction(\n constants.GET_COUPON_LIST_REQUEST\n);\nexport const getCouponListSuccess = createAction(\n constants.GET_COUPON_LIST_SUCCESS\n);\nexport const getCouponListError = createAction(constants.GET_COUPON_LIST_ERROR);\n\nexport const postGrantPremiumRequest = createAction(\n constants.POST_GRANT_PREMIUM_REQUEST\n);\nexport const postGrantPremiumSuccess = createAction(\n constants.POST_GRANT_PREMIUM_SUCCESS\n);\nexport const postGrantPremiumError = createAction(\n constants.POST_GRANT_PREMIUM_ERROR\n);\n\nexport const postGrantPremiumManyRequest = createAction(\n constants.POST_GRANT_PREMIUM_MANY_REQUEST\n);\nexport const postGrantPremiumManySuccess = createAction(\n constants.POST_GRANT_PREMIUM_MANY_SUCCESS\n);\nexport const postGrantPremiumManyError = createAction(\n constants.POST_GRANT_PREMIUM_MANY_ERROR\n);\n\n// Actionable Insight\nexport const getActionableInsightDataRequest = createAction(\n constants.GET_ACTIONABLE_INSIGHT_DATA_REQUEST\n);\nexport const getActionableInsightDataSuccess = createAction(\n constants.GET_ACTIONABLE_INSIGHT_DATA_SUCCESS\n);\nexport const getActionableInsightDataError = createAction(\n constants.GET_ACTIONABLE_INSIGHT_DATA_ERROR\n);\n\nexport const postActionableInsightDataRequest = createAction(\n constants.POST_ACTIONABLE_INSIGHT_DATA_REQUEST\n);\nexport const postActionableInsightDataSuccess = createAction(\n constants.POST_ACTIONABLE_INSIGHT_DATA_SUCCESS\n);\nexport const postActionableInsightDataError = createAction(\n constants.POST_ACTIONABLE_INSIGHT_DATA_ERROR\n);\n\nexport const patchActionableInsightDataRequest = createAction(\n constants.PATCH_ACTIONABLE_INSIGHT_DATA_REQUEST\n);\nexport const patchActionableInsightDataSuccess = createAction(\n constants.PATCH_ACTIONABLE_INSIGHT_DATA_SUCCESS\n);\nexport const patchActionableInsightDataError = createAction(\n constants.PATCH_ACTIONABLE_INSIGHT_DATA_ERROR\n);\n\nexport const deleteActionableInsightDataRequest = createAction(\n constants.DELETE_ACTIONABLE_INSIGHT_DATA_REQUEST\n);\nexport const deleteActionableInsightDataSuccess = createAction(\n constants.DELETE_ACTIONABLE_INSIGHT_DATA_SUCCESS\n);\n\nexport const patchOrderActionableInsightDataRequest = createAction(\n constants.PATCH_ORDER_ACTIONABLE_INSIGHT_DATA_REQUEST\n);\nexport const patchOrderActionableInsightDataSuccess = createAction(\n constants.PATCH_ORDER_ACTIONABLE_INSIGHT_DATA_SUCCESS\n);\nexport const patchOrderActionableInsightDataError = createAction(\n constants.PATCH_ORDER_ACTIONABLE_INSIGHT_DATA_ERROR\n);\n\n// Key Concepts\nexport const getKeyConceptDataRequest = createAction(\n constants.GET_KEY_CONCEPT_DATA_REQUEST\n);\nexport const getKeyConceptDataSuccess = createAction(\n constants.GET_KEY_CONCEPT_DATA_SUCCESS\n);\nexport const getKeyConceptDataError = createAction(\n constants.GET_KEY_CONCEPT_DATA_ERROR\n);\n\nexport const postKeyConceptDataRequest = createAction(\n constants.POST_KEY_CONCEPT_DATA_REQUEST\n);\nexport const postKeyConceptDataSuccess = createAction(\n constants.POST_KEY_CONCEPT_DATA_SUCCESS\n);\nexport const postKeyConceptDataError = createAction(\n constants.POST_KEY_CONCEPT_DATA_ERROR\n);\n\nexport const patchKeyConceptDataRequest = createAction(\n constants.PATCH_KEY_CONCEPT_DATA_REQUEST\n);\nexport const patchKeyConceptDataSuccess = createAction(\n constants.PATCH_KEY_CONCEPT_DATA_SUCCESS\n);\nexport const patchKeyConceptDataError = createAction(\n constants.PATCH_KEY_CONCEPT_DATA_ERROR\n);\n\nexport const deleteKeyConceptDataRequest = createAction(\n constants.DELETE_KEY_CONCEPT_DATA_REQUEST\n);\nexport const deleteKeyConceptDataSuccess = createAction(\n constants.DELETE_KEY_CONCEPT_DATA_SUCCESS\n);\n\nexport const patchOrderKeyConceptDataRequest = createAction(\n constants.PATCH_ORDER_KEY_CONCEPT_DATA_REQUEST\n);\nexport const patchOrderKeyConceptDataSuccess = createAction(\n constants.PATCH_ORDER_KEY_CONCEPT_DATA_SUCCESS\n);\nexport const patchOrderKeyConceptDataError = createAction(\n constants.PATCH_ORDER_KEY_CONCEPT_DATA_ERROR\n);\n\n// Top Carousel\nexport const getTopCarouselDataRequest = createAction(\n constants.GET_TOP_CAROUSEL_DATA_REQUEST\n);\nexport const getTopCarouselDataSuccess = createAction(\n constants.GET_TOP_CAROUSEL_DATA_SUCCESS\n);\nexport const getTopCarouselDataError = createAction(\n constants.GET_TOP_CAROUSEL_DATA_ERROR\n);\n\nexport const postTopCarouselDataRequest = createAction(\n constants.POST_TOP_CAROUSEL_DATA_REQUEST\n);\nexport const postTopCarouselDataSuccess = createAction(\n constants.POST_TOP_CAROUSEL_DATA_SUCCESS\n);\nexport const postTopCarouselDataError = createAction(\n constants.POST_TOP_CAROUSEL_DATA_ERROR\n);\n\nexport const patchTopCarouselDataRequest = createAction(\n constants.PATCH_TOP_CAROUSEL_DATA_REQUEST\n);\nexport const patchTopCarouselDataSuccess = createAction(\n constants.PATCH_TOP_CAROUSEL_DATA_SUCCESS\n);\nexport const patchTopCarouselDataError = createAction(\n constants.PATCH_TOP_CAROUSEL_DATA_ERROR\n);\n\nexport const deleteTopCarouselDataRequest = createAction(\n constants.DELETE_TOP_CAROUSEL_DATA_REQUEST\n);\nexport const deleteTopCarouselDataSuccess = createAction(\n constants.DELETE_TOP_CAROUSEL_DATA_SUCCESS\n);\n\nexport const patchOrderTopCarouselDataRequest = createAction(\n constants.PATCH_ORDER_TOP_CAROUSEL_DATA_REQUEST\n);\nexport const patchOrderTopCarouselDataSuccess = createAction(\n constants.PATCH_ORDER_TOP_CAROUSEL_DATA_SUCCESS\n);\nexport const patchOrderTopCarouselDataError = createAction(\n constants.PATCH_ORDER_TOP_CAROUSEL_DATA_ERROR\n);\n\n// Video Bank\nexport const patchVideoBankDataRequest = createAction(\n constants.PATCH_VIDEO_BANK_DATA_REQUEST\n);\nexport const patchVideoBankDataSuccess = createAction(\n constants.PATCH_VIDEO_BANK_DATA_SUCCESS\n);\nexport const patchVideoBankDataError = createAction(\n constants.PATCH_VIDEO_BANK_DATA_ERROR\n);\n\nexport const patchOrderVideoBankDataRequest = createAction(\n constants.PATCH_ORDER_VIDEO_BANK_DATA_REQUEST\n);\nexport const patchOrderVideoBankDataSuccess = createAction(\n constants.PATCH_ORDER_VIDEO_BANK_DATA_SUCCESS\n);\nexport const patchOrderVideoBankDataError = createAction(\n constants.PATCH_ORDER_VIDEO_BANK_DATA_ERROR\n);\n","import React, { useEffect } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Modal from '@material-ui/core/Modal';\nimport Backdrop from '@material-ui/core/Backdrop';\nimport Fade from '@material-ui/core/Fade';\nimport {useDispatch, useSelector} from \"react-redux\";\nimport {videoModalRequest, setModalDataRequest} from \"../redux/actions\";\n\nconst useStyles = makeStyles((theme) => ({\n modal: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: theme.palette.background.paper,\n boxShadow: theme.shadows[5],\n height: '85vh',\n width: '100vh',\n borderRadius: 5,\n outline: 'none',\n [theme.breakpoints.down('sm')]: {\n width: '95%'\n },\n },\n\n}))\nexport default function CommonModal({children, onClose=()=>null, style={} }){\n const classes = useStyles()\n const dispatch = useDispatch();\n const isModal = useSelector(state => state.config.videoModal.isVisible);\n\n const handleClose = () => {\n dispatch(videoModalRequest(false));\n dispatch(setModalDataRequest({}))\n onClose()\n };\n\n useEffect(() => {\n if(!isModal){\n handleClose()\n }\n }, [isModal])\n\n return(\n <Modal\n aria-labelledby=\"transition-modal-title\"\n aria-describedby=\"transition-modal-description\"\n className={classes.modal}\n open={isModal}\n onClose={handleClose}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n <Fade in={isModal}>\n <div className={classes.paper} style={{...style}} >\n {children}\n </div>\n </Fade>\n </Modal>\n )\n}","export default \"data:image/jpeg;base64,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\"","export default \"data:image/png;base64,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\"","import React, { useState, useEffect } from \"react\";\nimport clsx from \"clsx\";\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport ListItemText from \"@material-ui/core/ListItemText\";\nimport Select from \"@material-ui/core/Select\";\nimport Checkbox from \"@material-ui/core/Checkbox\";\nimport pdfIcon from \"../assets/document.png\";\nimport { FixedSizeList } from \"react-window\";\n// import { Document, Page, pdfjs } from 'react-pdf';\n// pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\n\nconst useStyles = makeStyles((theme) => ({\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n maxWidth: 300,\n border: \"1px solid rgba(0,0,0,0.2)\",\n padding: \"5px\",\n borderRadius: \"6px\",\n \"& .MuiInput-underline\": {\n \"&:hover:not(.Mui-disabled):before\": {\n borderBottom: \"none\",\n },\n \"&::after\": {\n borderBottom: \"none\",\n },\n },\n \"&::before\": {\n outline: \"none\",\n borderBottom: \"none\",\n },\n \"&:hover\": {\n outline: \"none\",\n borderBottom: \"none\",\n },\n \"&:focus\": {\n outline: \"none\",\n borderBottom: \"none\",\n border: \"none\",\n },\n \"&:active\": {\n outline: \"none\",\n borderBottom: \"none\",\n border: \"none\",\n },\n },\n chips: {\n display: \"flex\",\n flexWrap: \"wrap\",\n },\n chip: {\n margin: 2,\n },\n noLabel: {\n marginTop: theme.spacing(3),\n },\n multiSelect: {\n border: \"none\",\n \"&::before\": {\n outline: \"none\",\n borderBottom: \"none\",\n },\n \"&:focus\": {\n outline: \"none\",\n borderBottom: \"none\",\n border: \"none\",\n },\n \"&:active\": {\n outline: \"none\",\n borderBottom: \"none\",\n border: \"none\",\n },\n },\n pdfIcon: {\n width: 60,\n },\n pdfWrapper: {\n display: \"flex\",\n },\n pdfInfo: {\n fontSize: 14,\n },\n\n selectAllView: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n}));\n\nconst ITEM_HEIGHT = 48;\nconst ITEM_PADDING_TOP = 8;\nconst MenuProps = {\n PaperProps: {\n style: {\n maxHeight: ITEM_HEIGHT * 8.5 + ITEM_PADDING_TOP,\n width: 250,\n },\n },\n};\n\nexport default function MultipleSelect({\n list = [],\n onSelect = () => null,\n name,\n multiple = false,\n nameKey,\n type = \"select\",\n selectedKeys = \"\",\n isToUpdate,\n returnKey = \"_id\",\n defaultSelect = false,\n defaultSelectIndex = 0,\n disabled = false,\n invokeOnSelectOnInitialisation = true,\n}) {\n const classes = useStyles();\n const [personName, setPersonName] = useState([]);\n const [selectedItems, setItem] = useState([]);\n const [isAllSelect, setAllSelect] = useState(false);\n\n const handleChange = (item) => {\n let keys = [],\n allnames = [];\n if (multiple) {\n keys = [...selectedItems];\n allnames = [...personName];\n if (keys?.includes(item._id)) {\n const itemIndex = keys.findIndex((a) => a === item._id);\n keys = keys.filter((a) => a !== item._id);\n if (itemIndex > -1) {\n allnames.splice(itemIndex, 1);\n }\n } else {\n allnames.push(item[nameKey]);\n keys.push(item._id);\n }\n } else {\n keys = item[returnKey];\n allnames = item[nameKey];\n }\n onSelect(keys, name);\n setItem(keys);\n setPersonName(allnames);\n };\n\n const handleSelectAll = () => {\n let keys = [],\n allNames = [];\n if (!isAllSelect) {\n allNames = list.map((a) => a[nameKey]);\n keys = list.map((a) => a._id);\n }\n onSelect(keys, name);\n setItem(keys);\n setPersonName(allNames);\n setAllSelect(!isAllSelect);\n };\n\n useEffect(() => {\n if (isToUpdate && selectedKeys && list.length) {\n if (name === \"trainerId\") {\n const key = list.find((a) => a._id === selectedKeys);\n setItem([key[\"_id\"]]);\n setPersonName(key[nameKey]);\n }\n\n if (name === \"videos\") {\n let allnames = [];\n list?.map((element) => {\n if (selectedKeys?.includes(element._id)) {\n allnames.push(element[nameKey]);\n }\n });\n setItem(selectedKeys);\n setPersonName(allnames);\n }\n\n if (name === \"type\") {\n setItem(selectedKeys);\n setPersonName(selectedKeys);\n }\n }\n }, [isToUpdate]);\n\n useEffect(() => {\n if (!isToUpdate && defaultSelect) {\n setItem([list[defaultSelectIndex]?.[returnKey]]);\n setPersonName([list[defaultSelectIndex]?.[nameKey]]);\n invokeOnSelectOnInitialisation &&\n onSelect(\n multiple ? [list[0]?.[returnKey]] : list[0]?.[returnKey],\n name\n );\n }\n }, []);\n\n return (\n <div>\n <FormControl disabled={disabled} className={classes.formControl}>\n <Select\n labelId=\"demo-mutiple-checkbox-label\"\n className={classes.multiSelect}\n value={personName}\n placeholder=\"dsdfsdf\"\n multiple={multiple}\n renderValue={(selected) => {\n if (multiple) {\n if (selected.length > 0) {\n return selected.join(\" \");\n }\n return selected;\n }\n return selected;\n }}\n MenuProps={MenuProps}\n >\n <div>\n {multiple && (\n <div className={classes.selectAllView} onClick={handleSelectAll}>\n <Checkbox checked={isAllSelect} />\n <div>Select All</div>\n </div>\n )}\n\n <FixedSizeList\n height={1000}\n width={400}\n itemCount={list?.length}\n itemSize={46}\n >\n {({ index, style }) => {\n const item = list[index];\n const isPdf = item?.videoLink?.includes(\".pdf\");\n\n return (\n <div\n style={style}\n key={`${item._id}-${index}`}\n onClick={() => handleChange(item)}\n >\n <MenuItem value={item[nameKey]}>\n <div>{index + 1}</div>\n <Checkbox\n checked={selectedItems?.includes(item[returnKey])}\n />\n {type === \"select\" && (\n <ListItemText primary={item[nameKey]} />\n )}\n {type === \"video\" && !isPdf && (\n <video\n /* poster={item.thumbnail} */ width=\"150\"\n controls\n >\n <source src={item.videoLink} type=\"video/mp4\" />\n </video>\n )}\n {type === \"video\" && isPdf && (\n <div className={classes.pdfWrapper}>\n <img className={classes.pdfIcon} src={pdfIcon} />\n <div>\n <div className={classes.pdfInfo}>{item.title}</div>\n <div className={classes.pdfInfo}>\n {item.subTitle}\n </div>\n </div>\n </div>\n )}\n </MenuItem>\n </div>\n );\n }}\n </FixedSizeList>\n </div>\n </Select>\n </FormControl>\n </div>\n );\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport clsx from 'clsx';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display:'flex',\n flex:1,\n justifyContent:'center',\n alignItems:'center',\n height:'80vh'\n },\n small:{\n width:'20px !important',\n height:'20px !important'\n },\n big:{\n width:'40px !important',\n height:'40px !important'\n }\n}));\n\nexport default function Loader({value = 10, color ='#3ea8ad', variant = 'small', style={}, className}) {\n const classes = useStyles();\n\n return (\n <div className={clsx(variant !== 'small' ? classes.root : {}, className)}>\n <CircularProgress \n color={\"red\"} \n style={{color}} \n className={ variant === 'small' ? classes.small : classes.big} \n value={value}\n />\n </div>\n );\n}","function validator( value ){\n const errors = {}\n if(value.hasOwnProperty('name') ){\n if(value.name !==undefined && value.name.trim() === ''){\n errors.name = 'Enter name'\n }\n }\n if(value.hasOwnProperty('title')){\n if(value.title !==undefined && value.title.trim() === ''){\n errors.title = 'Title is empty' \n }\n }\n\n if(value.hasOwnProperty('email')){\n if(value.email !==undefined && value.email.trim() === ''){\n errors.email = 'Email is empty' \n }\n }\n\n if(value.hasOwnProperty('password')){\n if(value.password !==undefined && value.password.trim() === ''){\n errors.password = 'Password is empty' \n }\n }\n\n if(value.hasOwnProperty('description')){\n if(value.description !==undefined && value.description.trim() === ''){\n errors.description = 'Description is empty'\n }\n }\n if(value.hasOwnProperty('question')){\n if(value.question !==undefined && value.question.trim() === ''){\n errors.question = 'Enter a question'\n }\n }\n\n if(value.hasOwnProperty('content')){\n if(value.content !==undefined && value.content.trim() === ''){\n errors.content = 'Content is empty'\n }\n }\n \n if(value.hasOwnProperty('about')){\n if(value.about !==undefined && value.about.trim() === ''){\n errors.about = 'Breif about the trainer'\n }\n }\n if(value.hasOwnProperty('questionCategory')){\n if(value.questionCategory !==undefined && value.questionCategory.trim() === ''){\n errors.questionCategory = 'Enter something to add category'\n }\n }\n if(value.hasOwnProperty('subtitle')){\n if(value.subtitle !==undefined && value.subtitle.trim() === ''){\n errors.subtitle = 'Subtitle is empty'\n }\n }\n if(value.hasOwnProperty('file')){\n if(value.file !==undefined && value.file === '' && value.url ===''){\n errors.file = 'Choose a picture to upload'\n }\n }\n if(value.hasOwnProperty('thumbnail')){\n if(value.thumbnail !==undefined && value.thumbnail ===''){\n errors.thumbnail = 'Choose a thumbnail of the video'\n }\n }\n if(value.hasOwnProperty('role')){\n if(value.role !==undefined && value.role.trim() === ''){\n errors.role = 'Enter role'\n }\n }\n if(value.hasOwnProperty('videos') && Array.isArray(value.videos)){\n if(!value.videos.length){\n errors.videos = 'Select videos to the course'\n }\n }\n\n if(value.hasOwnProperty('videoIds') && Array.isArray(value.videoIds)){\n if(!value.videoIds.length){\n errors.videoIds = 'Select videos to the video bank'\n }\n }\n \n if(value.hasOwnProperty('trainerId')){\n if(value.trainerId !==undefined && value.trainerId.trim() === ''){\n errors.trainerId = 'Select a trainer'\n }\n }\n if(value.hasOwnProperty('videoId')){\n if(value.videoId !==undefined && value.videoId.trim() === ''){\n errors.videoId = 'Select any video'\n }\n }\n if(value.hasOwnProperty('courseIds') && Array.isArray(value.courseIds)){\n if(!value.courseIds.length){\n errors.courseIds = 'Select the courses in which you want to upload this video.'\n }\n }\n return errors;\n}\n\nexport default validator;","import React, {useState, useEffect} from \"react\";\nimport { makeStyles } from '@material-ui/core/styles';\nimport GenericTextArea from './GenericTextArea';\nimport CommonModal from \"./CommonModal\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport CreateIcon from '@material-ui/icons/Create';\nimport tempAvatar from '../assets/avatar.jpeg';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport {createCourseRequest, videoModalRequest,getTrainersRequest, updateCourseRequest} from '../redux/actions';\nimport {useSelector, useDispatch} from 'react-redux';\nimport MultipleSelect from \"./Select\";\nimport Loader from './Loader'\nimport validator from \"../utils/validation\";\nimport ErrorMessage from \"./ErrorMessage\";\nimport appLogo from '../assets/logo.png'\n\nconst useStyles = makeStyles((theme) => ({\n modalHeader: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: theme.spacing(2),\n borderBottom: '1px solid rgba(0,0,0, 0.2)'\n },\n closeIcon: {\n cursor: 'pointer'\n },\n contentWrapper:{\n display:'flex',\n flex:1,\n flexDirection:'column',\n },\n content:{\n display: 'flex',\n flex: 1,\n padding: 30,\n overflowY: 'scroll'\n },\n mainContent:{\n padding:'1rem',\n width:'55%',\n [theme.breakpoints.down('sm')]: {\n width: '90%'\n },\n },\n lable:{\n fontWeight:'500',\n marginBottom:'1rem',\n marginTop:'1rem'\n },\n avatarWrapper:{\n position:'relative',\n width:150,\n height:100,\n marginBottom:'1rem'\n },\n tempAvatar:{\n width:'100%',\n height:'100%',\n borderRadius:5\n },\n pencilWrapper:{\n position:'absolute',\n right:-10,\n top:35,\n width:30,\n height:30,\n borderRadius:15,\n background:'rgba(0,0,0, .5)',\n color:'#fff',\n display:'flex',\n justifyContent:'center',\n alignItems:'center',\n cursor:'pointer'\n },\n pencilIcon:{\n fontSize:'1.2em'\n },\n inputsWrapper:{\n width: '55%',\n [theme.breakpoints.down('sm')]: {\n width: '100%'\n },\n },\n checkboxWrapper:{\n display:'flex',\n flexDirection:'row',\n alignItems:'center'\n },\n footer: {\n padding: theme.spacing(2),\n borderTop: '1px solid rgba(0,0,0, 0.2)',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n alignItems: 'center',\n },\n button: {\n outline: 'none',\n border: 'none',\n background: '#065fd4',\n color: '#fff',\n width:70,\n height:40,\n cursor: 'pointer'\n },\n input:{\n width:'100%',\n height:'100%',\n position:'absolute',\n zIndex:100,\n left:0,\n opacity:0\n }\n}))\n\n\nconst initialState = {\n title:'',\n description:'',\n trainerId:'',\n subtitle:'',\n image:'',\n file:'',\n url:'',\n errors: {},\n videos:[]\n}\n\nexport default function CreateTrainerModal(){\n const classes = useStyles();\n const dispatch = useDispatch();\n const trainersList = useSelector(state => state.course.allTrainers)\n const isLoading = useSelector(state => state.config.isLoading)\n const modalData = useSelector(state => state.config.modalData)\n const [state, setState] = useState(initialState)\n const videos = useSelector(state => state.course.videos);\n const isToUpdate = Object.keys(modalData).length > 0\n\n const handleReset = () => {\n setState(initialState)\n }\n\n const handleCreateTrainer = () => {\n const errors = validator(state)\n delete errors.videos\n delete errors.subtitle\n setState({...state, errors})\n if(Object.keys(errors).length){\n return;\n }\n var formdata = new FormData();\n formdata.append('title',state.title); \n formdata.append('description', state.description)\n // formdata.append('subtitle', state.subtitle)\n formdata.append('trainerId', state.trainerId)\n formdata.append('image', state.file)\n for (var i = 0; i < state.videos.length; i++) {\n formdata.append('videos[]', state.videos[i]);\n }\n if(isToUpdate){\n if(state.file === ''){\n formdata.delete('image');\n }\n formdata.delete('trainerId');\n dispatch(updateCourseRequest({data:formdata, courseId:modalData._id}))\n return;\n }\n dispatch(createCourseRequest(formdata))\n }\n\n useEffect(() => {\n if(isToUpdate){\n setState({\n title:modalData.title,\n description:modalData.description,\n subtitle:modalData.subtitle || '',\n url:modalData.imageUrl,\n videos:modalData.videos,\n trainerId:modalData.aboutTrainer,\n videos:modalData.videos\n })\n }\n }, [modalData])\n\n useEffect(() => {\n if(!trainersList.isSuccess){\n dispatch(getTrainersRequest())\n }\n }, [])\n\n const handleChange = (value, name) => {\n let stateData = {...state};\n stateData[name] = value;\n setState(stateData);\n }\n\n function onChange(event) {\n var file = event.target.files[0];\n var reader = new FileReader();\n reader.onload = function(event) {\n setState({...state, file, url: event.target.result})\n };\n \n file && reader.readAsDataURL(file);\n }\n\n const handleClose = () => {\n dispatch(videoModalRequest(false));\n };\n\n return(\n <CommonModal onClose={handleReset}>\n <div className={classes.modalHeader} >\n <span>{ \"Create Course\"}</span>\n <CloseIcon onClick={handleClose} className={classes.closeIcon} />\n </div>\n <div className={classes.content} >\n <div className={classes.inputsWrapper} >\n <div className={classes.avatarWrapper} >\n <img className={classes.tempAvatar} src={state.url || tempAvatar} />\n <input onChange={onChange} className={classes.input} type='file' />\n <div className={classes.pencilWrapper} >\n <CreateIcon className={classes.pencilIcon} />\n </div>\n </div>\n <ErrorMessage error={state?.errors?.file} />\n <div className={classes.lable} >Title:</div>\n <GenericTextArea\n value={state.title}\n name='title'\n handleChange={handleChange}\n error = {state?.errors?.title}\n />\n <div className={classes.lable}>Description:</div>\n <GenericTextArea\n name = 'description'\n value={state.description}\n handleChange={handleChange}\n error = {state?.errors?.description}\n />\n <div className={classes.lable}>Subtitle:</div>\n <GenericTextArea\n value={state.subtitle}\n name='subtitle'\n handleChange={handleChange}\n error = {state?.errors?.subtitle}\n />\n {(Array.isArray(videos.data) && videos.data.length > 0) &&\n <>\n <div className={classes.checkboxWrapper} >\n <div className={classes.lable}>Content:</div>\n <MultipleSelect \n isToUpdate={isToUpdate}\n selectedKeys={state.videos} \n type='video' \n multiple={true} \n nameKey='title' \n name='videos' \n onSelect={handleChange} \n list={videos.data} \n />\n </div>\n <ErrorMessage error={state?.errors?.videos} />\n </>\n }\n <div className={classes.checkboxWrapper} >\n <div className={classes.lable}>Trainer:</div>\n <MultipleSelect \n isToUpdate={isToUpdate} \n nameKey='name' \n name='trainerId' \n selectedKeys={state.trainerId}\n onSelect={handleChange} \n list={trainersList.data} \n />\n </div>\n <ErrorMessage error={state?.errors?.trainerId} />\n </div>\n </div>\n <div className={classes.footer} >\n <button disabled={isLoading} onClick={handleCreateTrainer} className={classes.button} >\n {isLoading ? <Loader style={{color:'#fff'}} /> : isToUpdate ? 'UPDATE' : \"ADD\" }\n </button>\n </div>\n </CommonModal>\n )\n} ","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgUpgrade(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000000\",\n strokeWidth: 2,\n d: \"M12,18 L12,8 L12,18 Z M12,23 C18.0751322,23 23,18.0751322 23,12 C23,5.92486775 18.0751322,1 12,1 C5.92486775,1 1,5.92486775 1,12 C1,18.0751322 5.92486775,23 12,23 Z M17,12 L12,7 L7,12\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUpgrade);\nexport default __webpack_public_path__ + \"static/media/upgrade.fb566e4c.svg\";\nexport { ForwardRef as ReactComponent };","import React, { forwardRef, useState } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Table from \"@material-ui/core/Table\";\nimport TableBody from \"@material-ui/core/TableBody\";\nimport TableCell from \"@material-ui/core/TableCell\";\nimport TableContainer from \"@material-ui/core/TableContainer\";\nimport TableHead from \"@material-ui/core/TableHead\";\nimport TableRow from \"@material-ui/core/TableRow\";\nimport Paper from \"@material-ui/core/Paper\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport CreateIcon from \"@material-ui/icons/Create\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport InfiniteScroll from \"react-infinite-scroller\";\nimport { setModalDataRequest, videoModalRequest } from \"../redux/actions\";\nimport Loader from \"./Loader\";\nimport { ReactComponent as UpgradeIcon } from \"../assets/svgs/upgrade.svg\";\nimport { Button, Checkbox } from \"@material-ui/core\";\nimport ArrowDownwardIcon from \"@material-ui/icons/ArrowDownward\";\nimport ArrowUpwardIcon from \"@material-ui/icons/ArrowUpward\";\n\nconst useStyles = makeStyles({\n table: {\n minWidth: 650,\n },\n headerText: {\n fontWeight: \"700\",\n },\n deleteIcon: {\n cursor: \"pointer\",\n },\n tableRow: {\n \"&:hover\": {\n background: \"rgba(0, 0, 0, 0.04)\",\n },\n },\n tableLoader: {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n marginTop: \"10px\",\n },\n selectedActionButton: {\n fontWeight: \"bold\",\n fontSize: \"1rem\",\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n width: \"100%\",\n marginBottom: 10,\n },\n iconButton: {\n paddingRight: 4,\n },\n downgradeAllButton: {\n backgroundColor: \"#757575\",\n marginRight: 10,\n },\n});\n\nconst GenericTable = (\n {\n headers = [],\n cellData,\n keys = [],\n handleDelete = () => null,\n deleteIcon = true,\n editIcon = true,\n editIconComponent,\n headerAlign = \"right\",\n tableCellAlign = \"right\",\n multipleSelect = false,\n downgradeAllAction,\n handleDowngradeAllAction,\n deleteAllAction,\n handleDeleteAllAction,\n upgradeAllAction,\n handleUpgradeAllAction,\n },\n ref\n) => {\n const classes = useStyles();\n const dispatch = useDispatch();\n const [itemToDelete, setItemToDelete] = useState(\"\");\n const [hasMore, setHasMore] = useState(true);\n const [page, setPage] = useState(1);\n const [loadedTableData, setLoadedTableData] = useState(cellData.slice(0, 20));\n const [itemSelectedList, setItemSelectedList] = useState([]);\n const [masterCheckboxChecked, setMasterCheckboxChecked] = useState(false);\n\n const handleLoadMore = () => {\n setTimeout(() => {\n const newData = cellData.slice(page * 20, (page + 1) * 20);\n setLoadedTableData((prevData) => [...prevData, ...newData]);\n setPage(page + 1);\n if ((page + 1) * 20 >= cellData.length) {\n setHasMore(false);\n }\n }, 500);\n };\n\n const isLoading = useSelector((state) => state.config.isLoading);\n\n const handleEdit = (item) => {\n dispatch(setModalDataRequest(item));\n dispatch(videoModalRequest(true));\n };\n\n const getRowItem = (row, item) => {\n // if(item === 'description' || item === 'about'){\n // return <div style={{width:100, height:100, overflow:'hidden'}} >{row[item]}</div>\n // }\n return row[item];\n };\n\n const getEditComponet = (row) => {\n return (\n editIconComponent || (\n <CreateIcon\n onClick={() => {\n handleEdit(row);\n }}\n className={classes.deleteIcon}\n />\n )\n );\n };\n\n const handleSelectMasterCheckBox = (value) => {\n //change property isChecked in checkbox UI\n setLoadedTableData(\n loadedTableData.map((data) => ({ ...data, isChecked: value }))\n );\n //add itemSelectedList to return\n setItemSelectedList(\n value\n ? [...loadedTableData.map((data) => ({ ...data, isChecked: value }))]\n : []\n );\n // setMasterCheckboxChecked(true);\n };\n\n const handleSelectCheckBox = (value) => {\n //add itemSelectedList to return\n const newItemSelectedList = itemSelectedList.some(\n (item) => item._id === value._id\n )\n ? itemSelectedList.filter((item) => item._id !== value._id)\n : [...itemSelectedList, value];\n\n setItemSelectedList(newItemSelectedList);\n //change property isChecked in checkbox UI\n setLoadedTableData(\n loadedTableData.map((data) =>\n data._id === value._id ? { ...data, isChecked: !value.isChecked } : data\n )\n );\n };\n\n React.useEffect(() => {\n Array.isArray(cellData) && setLoadedTableData(cellData.slice(0, 20));\n handleLoadMore();\n }, [cellData]);\n\n React.useEffect(() => {\n if (itemSelectedList.length === cellData.length) {\n setMasterCheckboxChecked(true);\n } else {\n setMasterCheckboxChecked(false);\n }\n }, [itemSelectedList]);\n\n React.useImperativeHandle(ref, () => ({\n changeItemSelectedList(newValue) {\n setItemSelectedList(newValue);\n },\n }));\n\n return (\n <>\n {(downgradeAllAction || deleteAllAction || upgradeAllAction) && (\n <div className={classes.selectedActionButton}>\n {downgradeAllAction && (\n <Button\n variant=\"contained\"\n color=\"secondary\"\n onClick={() => handleDowngradeAllAction(itemSelectedList)}\n className={classes.downgradeAllButton}\n disabled={itemSelectedList.length === 0}\n >\n <ArrowDownwardIcon className={classes.iconButton} />\n Downgrade all\n </Button>\n )}\n {deleteAllAction && (\n <Button\n variant=\"contained\"\n color=\"secondary\"\n onClick={() => handleDeleteAllAction(itemSelectedList)}\n disabled={itemSelectedList.length === 0}\n >\n <DeleteIcon className={classes.iconButton} />\n Delete all\n </Button>\n )}\n {upgradeAllAction && (\n <Button\n variant=\"contained\"\n color=\"secondary\"\n onClick={() => handleUpgradeAllAction(itemSelectedList)}\n disabled={itemSelectedList.length === 0}\n >\n <ArrowUpwardIcon className={classes.iconButton} />\n Upgrade all\n </Button>\n )}\n </div>\n )}\n\n <InfiniteScroll\n pageStart={0}\n loadMore={handleLoadMore}\n hasMore={hasMore}\n loader={\n <div className={classes.tableLoader}>\n <Loader key={0} variant=\"small\" />\n </div>\n }\n initialLoad={false}\n >\n <TableContainer component={Paper}>\n <Table className={classes.table} aria-label=\"simple table\">\n <TableHead>\n <TableRow>\n {multipleSelect && (\n <TableCell\n key={`master-checkbox-cell`}\n className={classes.headerText}\n component=\"th\"\n scope=\"row\"\n >\n <Checkbox\n onClick={(e) =>\n handleSelectMasterCheckBox(e.target.checked)\n }\n checked={masterCheckboxChecked}\n name=\"master-checkbox\"\n color={\"green\"}\n />\n </TableCell>\n )}\n {headers.map((headerTitle, index) => {\n if (index === 0) {\n return (\n <TableCell\n key={`${headerTitle}-${index}`}\n className={classes.headerText}\n component=\"th\"\n scope=\"row\"\n >\n {headerTitle}\n </TableCell>\n );\n }\n return (\n <TableCell\n key={`${headerTitle}-${index}`}\n className={classes.headerText}\n align={headerAlign}\n >\n {headerTitle}\n </TableCell>\n );\n })}\n {editIcon && (\n <TableCell className={classes.headerText} align=\"right\">\n {\"Edit\"}\n </TableCell>\n )}\n {deleteIcon && (\n <TableCell className={classes.headerText} align=\"right\">\n {\"Delete\"}\n </TableCell>\n )}\n </TableRow>\n </TableHead>\n <TableBody>\n {loadedTableData.map((row, i) => {\n return (\n <TableRow className={classes.tableRow} key={i}>\n {multipleSelect && (\n <TableCell key={`${row[i]}`} component=\"th\" scope=\"row\">\n <Checkbox\n onClick={() => handleSelectCheckBox(row)}\n checked={row.isChecked}\n color={\"green\"}\n />\n </TableCell>\n )}\n {keys.map((item, index) => {\n if (index === 0) {\n return (\n <TableCell\n key={`${index}`}\n component=\"th\"\n scope=\"row\"\n >\n {row[item]}{\" \"}\n </TableCell>\n );\n }\n return (\n <TableCell key={`${index}`} align={tableCellAlign}>\n {getRowItem(row, item)}\n </TableCell>\n );\n })}\n {editIcon && (\n <TableCell align=\"right\">\n {getEditComponet(row)}\n </TableCell>\n )}\n {deleteIcon && (\n <TableCell align=\"right\">\n {itemToDelete === row._id && isLoading ? (\n <Loader variant=\"small\" />\n ) : (\n <DeleteIcon\n onClick={() => {\n setItemToDelete(row._id);\n handleDelete(row._id);\n }}\n className={classes.deleteIcon}\n />\n )}\n </TableCell>\n )}\n </TableRow>\n );\n })}\n </TableBody>\n </Table>\n </TableContainer>\n </InfiniteScroll>\n </>\n );\n};\nexport default forwardRef(GenericTable);\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport CircularProgress from '@material-ui/core/CircularProgress';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display:'flex',\n flex:1,\n justifyContent:'center',\n alignItems:'center',\n height:'80vh'\n },\n message:{\n fontSize:'1rem'\n }\n}));\n\nexport default function Error({ color ='#3ea8ad', message = '' }) {\n const classes = useStyles();\n\n return (\n <div className={classes.root} >\n <div className={classes.message} >{message}</div>\n </div>\n );\n}","import React, {useState, useEffect} from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport Paper from '@material-ui/core/Paper';\nimport CreatePlayListModal from '../Components/CreateCourse';\nimport GenericTable from '../Components/Table';\nimport {useSelector, useDispatch} from 'react-redux';\nimport {getTrainersRequest, setModalDataRequest,deleteCourseRequest, getVideoRequest, videoModalRequest, getCourseListRequest} from '../redux/actions';\nimport defaultAvtar from '../assets/avatar.jpeg'\nimport Loader from '../Components/Loader';\nimport Fab from '@material-ui/core/Fab';\nimport AddIcon from '@material-ui/icons/Add';\nimport Error from '../Components/Error';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n padding:10,\n },\n titleWrapper:{\n display:'flex',\n flexDirection:'row',\n justifyContent:'space-between',\n alignItems:'center',\n marginBottom:20\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: 'center',\n color: theme.palette.text.secondary,\n },\n playlistTitle:{\n fontWeight:'bold',\n fontSize:'1.2rem'\n },\n newPlaylistTitle:{\n color:'#065fd4',\n fontWeight:'500',\n cursor:'pointer'\n },\n avtar:{\n width:80,\n height:50,\n borderRadius:5\n },\n fab:{\n position: 'fixed',\n bottom: theme.spacing(5),\n right: theme.spacing(5),\n background:'#3ea8ad', \n '&:hover':{\n background:'#3ea8ad'\n }\n }\n}))\n\nexport default function () {\n const classes = useStyles();\n const dispatch = useDispatch();\n const courses = useSelector(state => state.course.courses)\n const videos = useSelector(state => state.course.videos)\n const [open, setOpen] = useState(false);\n const [state, setState] = useState({\n\n })\n\n useEffect(() => {\n dispatch(getCourseListRequest())\n if(!videos.isSuccess){\n dispatch(getVideoRequest())\n }\n }, [])\n \n const handleOpenModal = () =>{\n if(courses.isLoading){\n return\n }\n dispatch(videoModalRequest(true));\n }\n\n const handleCloseModal = () =>{\n setOpen(false);\n }\n\n const makeTableData = (rows=[]) => {\n if(!rows.length){\n return []\n }\n let data = [];\n rows.map((item) => {\n let a = {\n image:<img src={item.image || defaultAvtar} className={classes.avtar} />,\n title:item.title,\n subtitle:item.subtitle, \n description:item.description , \n imageUrl:item.image,\n _id:item._id,\n aboutTrainer:item.aboutTrainer,\n videos:item.videos\n }\n data.push(a)\n })\n return data\n }\n\n const handleEdit = (item) => {\n dispatch(setModalDataRequest(item))\n handleOpenModal()\n }\n\n const handleDeleteTainer = (courseId) => {\n dispatch(deleteCourseRequest({courseId}))\n }\n \n return (\n <div className={classes.root}>\n <CreatePlayListModal />\n <div className={classes.titleWrapper} >\n <div className={classes.playlistTitle} >Programmes</div>\n {/* <div className={classes.newPlaylistTitle} onClick={handleOpenModal} >NEW CREATE COURSE</div> */}\n </div>\n {courses.isLoading && <Loader variant='big' />}\n {courses.isSuccess && \n <GenericTable\n headers={['Poster', 'Title', 'Sub Title', 'Description']}\n cellData={makeTableData(courses.data)}\n keys={['image', 'title', 'subtitle', 'description']}\n handleEdit={handleEdit}\n handleDelete ={handleDeleteTainer}\n />}\n {courses.isError && <Error message={courses.message} />}\n <Fab size=\"small\" onClick={handleOpenModal} color=\"secondary\" aria-label=\"add\" className={classes.fab}>\n <AddIcon />\n </Fab>\n </div>\n )\n}\n","import React, { useState, useEffect } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport ForwardIcon from \"@material-ui/icons/Forward\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport GenericTextArea from \"./GenericTextArea\";\nimport AddPhotoAlternateIcon from \"@material-ui/icons/AddPhotoAlternate\";\nimport MultipleSelect from \"./Select\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport {\n videoModalRequest,\n setModalDataRequest,\n getCourseListRequest,\n uploadVideoRequest,\n} from \"../redux/actions\";\nimport CommonModal from \"./CommonModal\";\nimport ErrorMessage from \"./ErrorMessage\";\nimport validator from \"../utils/validation\";\nimport Loader from \"./Loader\";\n// import Checkbox from \"@material-ui/core/Checkbox\";\n// import VideoBankSelectType from \"./VideoBankSelectType\";\n\nconst useStyles = makeStyles((theme) => ({\n modalHeader: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n padding: theme.spacing(2),\n borderBottom: \"1px solid rgba(0,0,0, 0.2)\",\n },\n closeIcon: {\n cursor: \"pointer\",\n },\n uploadWrapper: {\n display: \"flex\",\n flex: 1,\n padding: 30,\n overflowY: \"scroll\",\n },\n uploadingWrapper: {\n display: \"flex\",\n flex: 1,\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n uploadIconUnderline: {\n borderBottom: \"5px solid rgba(0,0,0,0.5)\",\n height: \"1px\",\n width: \"41px\",\n },\n uploadIconUnderlineSmall: {\n borderBottom: \"3px solid #065fd4\",\n height: \"1px\",\n width: \"20px\",\n },\n uploadIcon: {\n transform: \"rotate(-90deg)\",\n fontSize: \"3.5rem\",\n color: \"rgba(0,0,0,0.5)\",\n },\n uploadIconSmall: {\n transform: \"rotate(-90deg)\",\n fontSize: \"1.5rem\",\n color: \"#065fd4\",\n },\n uploadIconContainer: {\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n background: \"#f4f4f4\",\n height: 136,\n width: 136,\n borderRadius: 136 / 2,\n marginBottom: 20,\n cursor: \"pointer\",\n },\n uploadIconContainerSmall: {\n position: \" relative\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n marginRight: 10,\n },\n dragTag: {},\n footer: {\n padding: theme.spacing(2),\n borderTop: \"1px solid rgba(0,0,0, 0.2)\",\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n },\n button: {\n outline: \"none\",\n border: \"none\",\n background: \"#065fd4\",\n color: \"#fff\",\n width: 70,\n height: 40,\n cursor: \"pointer\",\n },\n footerContent: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"center\",\n alignItems: \"center\",\n color: \"#065fd4\",\n },\n inputsWrapper: {\n width: \"100%\",\n },\n details: {\n fontWeight: \"500\",\n fontSize: \"1.2rem\",\n marginBottom: 10,\n },\n sectionTitle: {\n fontWeight: \"500\",\n },\n thumbnailDescription: {\n fontWeight: \"normal\",\n fontSize: \"13px\",\n color: \"#808080c9\",\n },\n descriptionWrapper: {\n margin: \"25px 0px\",\n [theme.breakpoints.down(\"sm\")]: {\n width: \"95%\",\n },\n width: \"50%\",\n },\n titleAreaWrapper: {\n width: \"50%\",\n [theme.breakpoints.down(\"sm\")]: {\n width: \"95%\",\n },\n },\n addThumbnail: {\n border: \"1px dotted rgba(0,0,0,0.2)\",\n position: \"relative\",\n borderRadius: 5,\n display: \"flex\",\n width: \"35%\",\n padding: \"2rem\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n cursor: \"pointer\",\n margin: \"20px 0px\",\n [theme.breakpoints.down(\"sm\")]: {\n width: \"55%\",\n },\n },\n uploadThumbnailText: {\n fontSize: \"13px\",\n color: \"grey\",\n },\n input: {\n width: \"100%\",\n height: \"100%\",\n position: \"absolute\",\n zIndex: 100,\n left: 0,\n opacity: 0,\n cursor: \"pointer\",\n },\n thumbnail: {\n width: \"100%\",\n height: \"100%\",\n position: \"absolute\",\n zIndex: 10,\n left: 0,\n cursor: \"pointer\",\n background: \"#fff\",\n },\n checkboxWrapperCarousel: {\n display: \"flex\",\n alignItems: \"center\",\n marginTop: 10,\n },\n checkboxWrapperVideoBank: {\n display: \"flex\",\n alignItems: \"center\",\n marginTop: 10,\n },\n videoBankTypeWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n paddingBottom: 20,\n },\n}));\n\nconst initialState = {\n uploading: false,\n file: \"\",\n // type: \"\",\n title: \"\",\n subtitle: \"\",\n description: \"\",\n errors: {},\n thumbnail: \"\",\n url: \"\",\n // courseIds: [],\n // addToHeroCarousel: false,\n // addToBank: false,\n // isPdf: false,\n // videoBankType: \"monthlyQa\",\n};\n\nexport default function VideoUploader({ handleUpload, handleEdit }) {\n const classes = useStyles();\n const dispatch = useDispatch();\n const isLoading = useSelector((state) => state.config.isLoading);\n const courses = useSelector((state) => state.course.courses);\n const [state, setState] = useState(initialState);\n const modalData = useSelector((state) => state.config.modalData);\n const isVisibleModal = useSelector(\n (state) => state.config.videoModal.isVisible\n );\n const isToUpdate = Object.keys(modalData).length > 0;\n\n const handleClose = () => {\n dispatch(videoModalRequest(false));\n handleResetHandle();\n };\n useEffect(() => {\n return () => {\n handleClose();\n };\n }, []);\n const handleResetHandle = () => {\n setState(initialState);\n dispatch(setModalDataRequest({}));\n };\n\n const handleUploadVideo = () => {\n const errors = validator(state);\n // delete errors.courseIds;\n if (isToUpdate /* || state.isPdf */) {\n delete errors.thumbnail;\n }\n setState({ ...state, errors });\n if (Object.keys(errors).length) {\n return;\n }\n if (isToUpdate) {\n const newData = {\n title: state.title,\n subTitle: state.subtitle,\n description: state.description,\n };\n\n handleEdit({\n payload: newData,\n _id: modalData.video ? modalData.video._id : modalData._id,\n typeUpdate: \"update\",\n });\n\n return;\n }\n const formData = new FormData();\n formData.append(\"video\", state.file);\n // formData.append(\"bankType\", state.videoBankType);\n formData.append(\"title\", state.title);\n formData.append(\"subTitle\", state.subtitle);\n formData.append(\"description\", state.description || \"\");\n formData.append(\"image\", state.thumbnail);\n // formData.append(\"addToBank\", state.addToBank);\n // formData.append(\"addToHeroCarousel\", state.addToHeroCarousel);\n // var courseIds = state.courseIds;\n // for (var i = 0; i < courseIds.length; i++) {\n // formData.append(\"courseId[]\", courseIds[i]);\n // }\n\n // if (state.isPdf) {\n // // formData.delete('image')\n // }\n // dispatch(uploadVideoRequest({ formData }));\n console.log(state);\n\n handleUpload(formData);\n };\n\n function handleChange(value, name) {\n let stateData = { ...state };\n stateData[name] = value;\n setState(stateData);\n }\n\n function onChange(event, name) {\n var file = event.target.files[0];\n var reader = new FileReader();\n reader.onload = function (event) {\n // let isPdf = state.isPdf;\n // if (file.type.includes(\"pdf\")) {\n // isPdf = true;\n // }\n setState({\n ...state,\n [name]: file,\n uploading: true,\n // isPdf,\n url: name === \"thumbnail\" ? event.target.result : \"\",\n });\n };\n\n file && reader.readAsDataURL(file);\n }\n\n useEffect(() => {\n if (isToUpdate && isVisibleModal) {\n setState({\n ...state,\n uploading: true,\n description: modalData.type\n ? modalData.video.description\n : modalData.description,\n title: modalData.type ? modalData.video.title : modalData.title,\n subtitle: modalData.type\n ? modalData.video.subTitle\n : modalData.subTitle,\n url: modalData.type ? modalData.video.image : modalData.image,\n });\n }\n }, [isToUpdate, isVisibleModal]);\n\n useEffect(() => {\n if (!courses.isSuccess) {\n dispatch(getCourseListRequest());\n }\n }, []);\n\n return (\n <CommonModal onClose={handleResetHandle}>\n <div className={classes.modalHeader}>\n <span>Upload Videos</span>\n <CloseIcon onClick={handleClose} className={classes.closeIcon} />\n </div>\n <div\n className={\n state.uploading ? classes.uploadWrapper : classes.uploadingWrapper\n }\n >\n {state.uploading && (\n <div className={classes.inputsWrapper}>\n <div className={classes.details}>Details</div>\n <div className={classes.titleAreaWrapper}>\n <GenericTextArea\n value={state.title}\n handleChange={handleChange}\n name=\"title\"\n title=\"Title (required)\"\n placeholder=\"Add a title that describe your video\"\n error={state?.errors?.title}\n />\n </div>\n <div className={classes.descriptionWrapper}>\n <GenericTextArea\n value={state.subtitle}\n handleChange={handleChange}\n name=\"subtitle\"\n title=\"Subtitle (required)\"\n placeholder=\"Add a subtitle \"\n error={state?.errors?.subtitle}\n />\n </div>\n <div className={classes.descriptionWrapper}>\n <GenericTextArea\n value={state.description}\n handleChange={handleChange}\n name=\"description\"\n isBigger={true}\n title=\"Description\"\n placeholder=\"Tell viewers about your video\"\n error={state?.errors?.description}\n />\n </div>\n {\n /* !state.isPdf && */\n <>\n <div className={classes.sectionTitle}>Thumbnail</div>\n <span className={classes.thumbnailDescription}>\n Select or upload a picture that shows what's in your video. A\n good thumbnail stands out and draws viewers' attention.\n </span>\n <div className={classes.addThumbnail}>\n {state.url !== \"\" && (\n <img className={classes.thumbnail} src={state.url} />\n )}\n <input\n onChange={(e) => onChange(e, \"thumbnail\")}\n accept=\"image/*\"\n className={classes.input}\n type=\"file\"\n capture\n disabled={isToUpdate}\n />\n <AddPhotoAlternateIcon />\n <div className={classes.uploadThumbnailText}>\n Upload Thumbnail\n </div>\n </div>\n </>\n }\n <ErrorMessage error={state?.errors?.thumbnail} />\n {/* {Array.isArray(courses.data) && courses.data.length > 0 && (\n <>\n <div className={classes.sectionTitle}>Courses</div>\n <span className={classes.thumbnailDescription}>\n Add your video to one or more courses. Courses can help\n viewers to discover your content faster.{\" \"}\n </span>\n <MultipleSelect\n name=\"courseIds\"\n onSelect={handleChange}\n nameKey={\"title\"}\n multiple={true}\n list={courses.data}\n />\n <ErrorMessage error={state?.errors?.courseIds} />\n </>\n )} */}\n {/* {!state.isPdf && (\n <div className={classes.checkboxWrapperCarousel}>\n <Checkbox\n checked={state.addToHeroCarousel}\n color=\"primary\"\n inputProps={{ \"aria-label\": \"secondary checkbox\" }}\n onChange={(e) =>\n handleChange(!state.addToHeroCarousel, \"addToHeroCarousel\")\n }\n />\n <div className={classes.sectionTitle}>Add to Hero Carousel</div>\n </div>\n )} */}\n {/* {!state.isPdf && (\n <>\n <div className={classes.checkboxWrapperVideoBank}>\n <Checkbox\n checked={state.addToBank}\n color=\"primary\"\n inputProps={{ \"aria-label\": \"secondary checkbox\" }}\n onChange={(e) =>\n handleChange(!state.addToBank, \"addToBank\")\n }\n />\n <div className={classes.sectionTitle}>Add to Video Bank</div>\n </div>\n {state.addToBank && (\n <div className={classes.videoBankTypeWrapper}>\n Video Bank Type:\n <VideoBankSelectType\n onSelect={handleChange}\n name=\"videoBankType\"\n />\n </div>\n )}\n </>\n )} */}\n </div>\n )}\n {!state.uploading && (\n <React.Fragment>\n <div className={classes.uploadIconContainer}>\n <input\n onChange={(e) => onChange(e, \"file\")}\n accept=\"video/*,.pdf\"\n className={classes.input}\n type=\"file\"\n capture\n />\n <ForwardIcon className={classes.uploadIcon} />\n <div className={classes.uploadIconUnderline} />\n </div>\n <div className={classes.dragTag}>\n Drag and drop Video file to upload\n </div>\n </React.Fragment>\n )}\n </div>\n {state.uploading && (\n <div className={classes.footer}>\n <div className={classes.footerContent}>\n {isLoading && (\n <>\n <div className={classes.uploadIconContainerSmall}>\n <ForwardIcon className={classes.uploadIconSmall} />\n <div className={classes.uploadIconUnderlineSmall} />\n </div>\n <span>Uploading...</span>\n </>\n )}\n </div>\n <button\n disabled={isLoading}\n onClick={handleUploadVideo}\n className={classes.button}\n >\n {isLoading ? <Loader style={{ color: \"#fff\" }} /> : \"UPLOAD\"}\n </button>\n </div>\n )}\n </CommonModal>\n );\n}\n","export default __webpack_public_path__ + \"static/media/videocamera.b7a9e3c8.jpg\";","export default __webpack_public_path__ + \"static/media/mov_bbb.2c92d012.mp4\";","export default __webpack_public_path__ + \"static/media/plus.5527a63d.png\";","export default __webpack_public_path__ + \"static/media/minus.4a4bdce7.png\";","import React, { useState, useRef } from 'react'\nimport { Document, Page, pdfjs } from 'react-pdf';\nimport { makeStyles } from '@material-ui/core/styles';\nimport clsx from 'clsx';\nimport fullScreenIcon from '../assets/full-screen.png'\nimport exitFullScreenIcon from '../assets/exit-full-screen.png'\nimport plusIcon from '../assets/plus.png'\nimport minusIcon from '../assets/minus.png'\n\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\n\nconst useStyles = makeStyles((theme) => ({\n pdfDocuement: {\n },\n documentWrapper: {\n position: 'relative',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n width: 250,\n height: 200,\n overflow: 'hidden',\n \"&:hover .pdf-conrols\" : {\n display: 'flex'\n }\n },\n fullScreenIcon: {\n width: 20,\n height: 20,\n bottom: 20,\n right: 20,\n position: 'absolute',\n zIndex: 10,\n display: 'none'\n },\n pageControlIcon: {\n width: 30,\n height: 30\n },\n leftIcon: {\n left: 20,\n bottom: '50%',\n position: 'absolute',\n zIndex: 10,\n width: 40,\n height: 40,\n borderRadius: 20,\n background: 'white',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n display: 'none'\n },\n rightIcon: {\n right: 20,\n bottom: '50%',\n position: 'absolute',\n zIndex: 10,\n width: 40,\n height: 40,\n borderRadius: 20,\n background: 'white',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n display: 'none'\n },\n nonFullScreenIcon: {\n width: 20,\n height: 20\n },\n nonFullScreenIconView: {\n width: 30,\n height: 30\n },\n}));\n\nexport default function PdfViewer({className, file}) {\n const classes = useStyles()\n const pdfRef = useRef()\n\n const [numPages, setNumPages] = useState(null);\n const [pageNumber, setPageNumber] = useState(1);\n\n function onDocumentLoadSuccess({ numPages }) {\n setNumPages(numPages);\n }\n\n function toggleFullscreen() {\n let elem = document.getElementById(\"document-container\");\n\n if (!document.fullscreenElement) {\n elem.requestFullscreen().catch(err => {\n alert(`Error attempting to enable full-screen mode: ${err.message} (${err.name})`);\n });\n } else {\n document.exitFullscreen();\n }\n }\n\n return (\n <div className={clsx(classes.documentWrapper, className)} id=\"document-container\">\n <div className={clsx(classes.rightIcon, !document.fullscreenElement && classes.nonFullScreenIconView, 'pdf-conrols')} onClick={() => pageNumber < numPages && setPageNumber(pageNumber + 1)} >\n <img className={clsx(classes.pageControlIcon, !document.fullscreenElement && classes.nonFullScreenIcon)} src={plusIcon} />\n </div>\n <div className={clsx(classes.leftIcon, !document.fullscreenElement && classes.nonFullScreenIconView, 'pdf-conrols')} onClick={() => (pageNumber > 1) && setPageNumber(pageNumber - 1)}>\n <img className={clsx(classes.pageControlIcon, !document.fullscreenElement && classes.nonFullScreenIcon)} src={minusIcon} />\n </div>\n <img className={clsx(classes.fullScreenIcon, 'pdf-conrols')} onClick={toggleFullscreen} src={document.fullscreenElement ? exitFullScreenIcon : fullScreenIcon} />\n <Document\n ref={pdfRef}\n file={file}\n className={classes.pdfDocuement}\n onLoadSuccess={onDocumentLoadSuccess}\n >\n <Page pageNumber={pageNumber} />\n </Document>\n </div>\n )\n}\n","import React, { useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemSecondaryAction from '@material-ui/core/ListItemSecondaryAction';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport ListItemAvatar from '@material-ui/core/ListItemAvatar';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Avatar from '@material-ui/core/Avatar';\nimport sampleVideo from '../assets/videos/mov_bbb.mp4'\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport CreateIcon from '@material-ui/icons/Create';\nimport { setModalDataRequest, videoModalRequest, deleteVideoRequest } from '../redux/actions'\nimport { useDispatch, useSelector } from 'react-redux'\nimport Loader from './Loader';\nimport PdfViewer from './PdfViewer';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%',\n backgroundColor: theme.palette.background.paper,\n },\n deleteIcon: {\n cursor: 'pointer',\n },\n videoDetailsDiv: {\n padding: 10,\n paddingRight: 30\n },\n videoTitle: {\n fontSize: '.9rem'\n },\n uploadedTime: {\n fontSize: '.7rem'\n },\n createIcon: {\n cursor: 'pointer',\n marginLeft: 10\n },\n iconWrapper: {\n display: 'flex',\n transform: 'unset'\n },\n pdfViewer: {\n width: 150,\n height: 150\n }\n}));\n\nexport default function VideoList({ list }) {\n const classes = useStyles();\n const dispatch = useDispatch()\n\n const [itemToDelete, setItemToDelete] = useState('')\n const isLoading = useSelector(state => state.config.isLoading)\n\n const handleEdit = (item) => {\n dispatch(setModalDataRequest(item))\n dispatch(videoModalRequest(true))\n }\n\n const handelDeleteVideo = (videoId) => {\n dispatch(deleteVideoRequest({ videoId }))\n }\n\n return (\n <List className={classes.root}>\n\n {list.map((item, index) => {\n const labelId = `checkbox-list-secondary-label-${item}`;\n const isPdf = item?.videoLink?.includes('.pdf')\n return (\n <ListItem key={item._id + index} button>\n <ListItemAvatar>\n {isPdf ? <PdfViewer file={item.videoLink} className={classes.pdfViewer} /> :\n <video width=\"150\" controls>\n <source src={item.videoLink} type=\"video/mp4\" />\n </video>}\n </ListItemAvatar>\n <div className={classes.videoDetailsDiv} >\n <div className={classes.videoTitle} >\n {item.title} {'\\n'}\n </div>\n <div className={classes.uploadedTime} >\n {item.description}s,dbvsbdv sdkvbsd vlksdv sldkv sdlvks dvlskd vlsdjv sldvj sdv sd vs dvhjsdv jshdv shdjv sdjvhs\n </div>\n </div>\n <ListItemSecondaryAction className={classes.iconWrapper} >\n {isLoading && itemToDelete === item._id ? <Loader variant='small' /> :\n <DeleteIcon\n onClick={() => {\n setItemToDelete(item._id)\n handelDeleteVideo(item._id)\n }}\n className={classes.deleteIcon}\n />\n }\n <CreateIcon onClick={() => handleEdit(item)} className={classes.createIcon} />\n </ListItemSecondaryAction>\n </ListItem>\n );\n })}\n </List>\n );\n}","import React, { useState } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport Loader from \"./Loader\";\nimport moment from \"moment\";\nimport { postGrantPremiumManyRequest } from \"../redux/actions\";\nimport VisibilityIcon from \"@material-ui/icons/Visibility\";\nimport VisibilityOffIcon from \"@material-ui/icons/VisibilityOff\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport CreateIcon from \"@material-ui/icons/Create\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n padding: 10,\n },\n titleWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n marginBottom: 20,\n },\n playlistTitle: {\n fontWeight: \"bold\",\n fontSize: \"1.2rem\",\n },\n itemWrapper: {\n marginBottom: 10,\n boxShadow:\n \"0px 2px 1px -1px rgb(0 0 0 / 10%), 0px 1px 1px 0px rgb(0 0 0 / -1%), 0px 1px 0px 0px rgb(0 0 0 / 1%)\",\n background: \"#fff\",\n width: \"100%\",\n },\n image: {\n width: \"100%\",\n height: \"100%\",\n objectFit: \"contain\",\n },\n wrapper: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n },\n deleteIcon: {\n cursor: \"pointer\",\n },\n createIcon: {\n cursor: \"pointer\",\n },\n iconsWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"end\",\n width: \"15%\",\n paddingRight: 20,\n },\n textContentWrapper: {\n paddingRight: 20,\n },\n title: {\n fontSize: \"1.2rem\",\n marginBottom: 5,\n },\n subtitle: {\n fontSize: \"1.1rem\",\n marginBottom: 5,\n },\n description: {\n fontSize: \".95rem\",\n marginBottom: 5,\n },\n fab: {\n position: \"fixed\",\n bottom: theme.spacing(5),\n right: theme.spacing(5),\n background: \"#3ea8ad\",\n \"&:hover\": {\n background: \"#3ea8ad\",\n },\n },\n}));\n\n// const initialState = {\n// premiumValidTillId: moment(new Date()).format(\"YYYY-MM-DD\"),\n// };\n\nexport default function CarouselItem({\n data,\n handleEdit,\n handleDelete,\n handleChangeVisibility,\n showEdit = false,\n}) {\n const classes = useStyles();\n const isLoading = useSelector((state) => state.config.isLoading);\n\n return (\n <div className={classes.itemWrapper}>\n <div className={classes.wrapper}>\n <div\n style={{\n display: \"flex\",\n width: \"80%\",\n }}\n >\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"250px\",\n maxHeight: \"200px\",\n overflow: \"hidden\",\n }}\n >\n {data.videoId ? (\n <video width=\"250\" controls>\n <source src={data.videoLink} type=\"video/mp4\" />\n </video>\n ) : data.video?.videoLink ? (\n <video width=\"250\" controls>\n <source src={data.video?.videoLink} type=\"video/mp4\" />\n </video>\n ) : data.image ? (\n <img className={classes.image} src={data.image} alt=\"img\" />\n ) : null}\n </div>\n <div\n style={{\n padding: 15,\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: `${data.image ? \"center\" : \"flex-start\"}`,\n alignItems: \"center\",\n maxWidth: \"50%\",\n width: \"100%\",\n minWidth: \"400px\",\n }}\n >\n {data.image && (\n <span\n style={{\n display: \"inline-block\",\n maxWidth: \"400px\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n width: \"100%\",\n }}\n >\n {data.caption}\n </span>\n )}\n {(data.videoId || data.video?.videoLink) && (\n <>\n <div\n style={{\n display: \"inline-block\",\n maxWidth: \"400px\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n width: \"100%\",\n fontSize: \".9rem\",\n fontWeight: \"bold\",\n }}\n >\n {data.title || data.video.title}\n </div>\n <div\n style={{\n display: \"inline-block\",\n maxWidth: \"400px\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n width: \"100%\",\n fontSize: \".8rem\",\n fontStyle: \"italic\",\n padding: \"5px 0\",\n }}\n >\n {data.subTitle || data.video.subTitle}\n </div>\n <div\n style={{\n display: \"-webkit-box\",\n maxWidth: \"400px\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"normal\", // Required to work with multi-line truncation\n WebkitLineClamp: 2, // Limits to 2 lines\n WebkitBoxOrient: \"vertical\", // Required for line clamp\n width: \"100%\",\n fontSize: \".7rem\",\n }}\n >\n {data.description || data.video.description}\n </div>\n </>\n )}\n </div>\n <div\n style={{\n padding: 10,\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n >\n {moment(data.video?.createdAt || data.createdAt).format(\n \"DD/MM/YYYY, kk:mm:ss\"\n )}\n </div>\n </div>\n <div className={classes.iconsWrapper}>\n {isLoading ? (\n <Loader variant=\"small\" />\n ) : (\n <div>\n {/* {data.appearInCarousel ? (\n <VisibilityIcon\n onClick={() => handleChangeVisibility(data)}\n className={classes.deleteIcon}\n />\n ) : (\n <VisibilityOffIcon\n onClick={() => handleChangeVisibility(data)}\n className={classes.deleteIcon}\n />\n )} */}\n {showEdit && (\n <CreateIcon\n onClick={() => handleEdit(data)}\n className={classes.createIcon}\n />\n )}\n\n <DeleteIcon\n onClick={() => handleDelete(data._id)}\n className={classes.deleteIcon}\n />\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n","import React, { useState, useEffect, useImperativeHandle } from \"react\";\nimport CommonModal from \"./CommonModal\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n videoModalRequest,\n postTopCarouselDataRequest,\n uploadVideoRequest,\n patchTopCarouselDataRequest,\n setModalDataRequest,\n} from \"../redux/actions\";\nimport GenericTextArea from \"./GenericTextArea\";\nimport Loader from \"./Loader\";\nimport validator from \"../utils/validation\";\nimport MultipleSelect from \"./Select\";\nimport AddPhotoAlternateIcon from \"@material-ui/icons/AddPhotoAlternate\";\nimport ErrorMessage from \"./ErrorMessage\";\nimport Checkbox from \"@material-ui/core/Checkbox\";\nimport { toast } from \"react-toastify\";\nimport ForwardIcon from \"@material-ui/icons/Forward\";\n\nconst useStyles = makeStyles((theme) => ({\n modalHeader: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n padding: theme.spacing(2),\n borderBottom: \"1px solid rgba(0,0,0, 0.2)\",\n },\n closeIcon: {\n cursor: \"pointer\",\n },\n content: {\n flex: 1,\n padding: 30,\n overflowY: \"scroll\",\n },\n footer: {\n padding: theme.spacing(2),\n borderTop: \"1px solid rgba(0,0,0, 0.2)\",\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n },\n button: {\n outline: \"none\",\n border: \"none\",\n background: \"#065fd4\",\n color: \"#fff\",\n width: 70,\n height: 40,\n cursor: \"pointer\",\n },\n inputsWrapper: {\n width: \"100%\",\n },\n divider: {\n // marginBottom: 10\n },\n selectWrapper: {\n // display: 'flex',\n // justifyContent: 'center',\n // alignItems: 'center',\n marginLeft: -theme.spacing(1),\n },\n thumbnail: {\n width: \"100%\",\n height: \"100%\",\n position: \"absolute\",\n zIndex: 10,\n left: 0,\n cursor: \"pointer\",\n background: \"#fff\",\n objectFit: \"contain\",\n },\n addThumbnail: {\n border: \"1px dotted rgba(0,0,0,0.2)\",\n position: \"relative\",\n borderRadius: 5,\n display: \"flex\",\n width: \"60%\",\n // padding: \"2rem\",\n height: \"200px\",\n maxHeight: \"500px\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n cursor: \"pointer\",\n // margin: \"20px 0px\",\n [theme.breakpoints.down(\"sm\")]: {\n width: \"55%\",\n },\n },\n input: {\n width: \"100%\",\n height: \"100%\",\n position: \"absolute\",\n zIndex: 100,\n left: 0,\n opacity: 0,\n cursor: \"pointer\",\n },\n imageUploadWrapper: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n marginTop: theme.spacing(8),\n flexDirection: \"column\",\n },\n checkboxWrapperCarousel: {\n display: \"flex\",\n alignItems: \"center\",\n marginTop: 10,\n },\n uploadWrapper: {\n display: \"flex\",\n flexDirection: \"column\",\n flex: 1,\n paddingTop: 30,\n paddingBottom: 30,\n // overflowY: \"scroll\",\n },\n uploadingWrapper: {\n display: \"flex\",\n flex: 1,\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n paddingTop: 20,\n height: \"50%\",\n },\n uploadIconUnderline: {\n borderBottom: \"5px solid rgba(0,0,0,0.5)\",\n height: \"1px\",\n width: \"41px\",\n },\n uploadIconUnderlineSmall: {\n borderBottom: \"3px solid #065fd4\",\n height: \"1px\",\n width: \"20px\",\n },\n uploadIcon: {\n transform: \"rotate(-90deg)\",\n fontSize: \"3.5rem\",\n color: \"rgba(0,0,0,0.5)\",\n },\n uploadIconSmall: {\n transform: \"rotate(-90deg)\",\n fontSize: \"1.5rem\",\n color: \"#065fd4\",\n },\n uploadIconContainer: {\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n background: \"#f4f4f4\",\n height: 136,\n width: 136,\n borderRadius: 136 / 2,\n marginBottom: 20,\n cursor: \"pointer\",\n },\n uploadIconContainerSmall: {\n position: \" relative\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n marginRight: 10,\n },\n dragTag: {},\n // footer: {\n // padding: theme.spacing(2),\n // borderTop: \"1px solid rgba(0,0,0, 0.2)\",\n // display: \"flex\",\n // flexDirection: \"row\",\n // justifyContent: \"space-between\",\n // alignItems: \"center\",\n // },\n // button: {\n // outline: \"none\",\n // border: \"none\",\n // background: \"#065fd4\",\n // color: \"#fff\",\n // width: 70,\n // height: 40,\n // cursor: \"pointer\",\n // },\n footerContent: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"center\",\n alignItems: \"center\",\n color: \"#065fd4\",\n },\n // inputsWrapper: {\n // width: \"100%\",\n // },\n details: {\n fontWeight: \"500\",\n fontSize: \"1.2rem\",\n marginBottom: 10,\n },\n sectionTitle: {\n fontWeight: \"500\",\n },\n thumbnailDescription: {\n fontWeight: \"normal\",\n fontSize: \"13px\",\n color: \"#808080c9\",\n },\n descriptionWrapper: {\n margin: \"25px 0px\",\n [theme.breakpoints.down(\"sm\")]: {\n width: \"95%\",\n },\n width: \"50%\",\n },\n titleAreaWrapper: {\n width: \"50%\",\n [theme.breakpoints.down(\"sm\")]: {\n width: \"95%\",\n },\n },\n // addThumbnail: {\n // border: \"1px dotted rgba(0,0,0,0.2)\",\n // position: \"relative\",\n // borderRadius: 5,\n // display: \"flex\",\n // width: \"35%\",\n // padding: \"2rem\",\n // flexDirection: \"column\",\n // justifyContent: \"center\",\n // alignItems: \"center\",\n // cursor: \"pointer\",\n // margin: \"20px 0px\",\n // [theme.breakpoints.down(\"sm\")]: {\n // width: \"55%\",\n // },\n // },\n uploadThumbnailText: {\n fontSize: \"13px\",\n color: \"grey\",\n },\n // input: {\n // width: \"100%\",\n // height: \"100%\",\n // position: \"absolute\",\n // zIndex: 100,\n // left: 0,\n // opacity: 0,\n // cursor: \"pointer\",\n // },\n // thumbnail: {\n // width: \"100%\",\n // height: \"100%\",\n // position: \"absolute\",\n // zIndex: 10,\n // left: 0,\n // cursor: \"pointer\",\n // background: \"#fff\",\n // },\n // checkboxWrapperCarousel: {\n // display: \"flex\",\n // alignItems: \"center\",\n // marginTop: 10,\n // },\n checkboxWrapperVideoBank: {\n display: \"flex\",\n alignItems: \"center\",\n marginTop: 10,\n },\n videoBankTypeWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n paddingBottom: 20,\n },\n}));\n\nconst initialState = {\n errors: {},\n type: \"image\",\n title: \"\",\n subtitle: \"\",\n description: \"\",\n image: \"\", // local: file of uploaded image, api: image url\n url: \"\", // local: uploaded image url, api: image url\n // videoId: \"\",\n file: \"\",\n appearInCarousel: true,\n caption: \"\",\n thumbnail: \"\",\n};\n\nconst selectionType = [\n { name: \"Video\", type: \"video\" },\n { name: \"Image\", type: \"image\" },\n];\n\nconst TopCarouselUploader = () => {\n const classes = useStyles();\n const dispatch = useDispatch();\n // const createQuestion = useSelector((state) => state.course.createQuestion);\n const isLoading = useSelector((state) => state.config.isLoading);\n // const videos = useSelector((state) => state.course.videos);\n const [state, setState] = useState(initialState);\n const modalData = useSelector((state) => state.config.modalData);\n const isToUpdate = Object.keys(modalData).length > 0;\n\n const handleClose = () => {\n dispatch(videoModalRequest(false));\n handleResetHandle();\n };\n useEffect(() => {\n return () => {\n handleClose();\n };\n }, []);\n const handleResetHandle = () => {\n setState(initialState);\n dispatch(setModalDataRequest({}));\n };\n\n const handleUpload = () => {\n const errors = validator(state);\n // console.log(state);\n // console.log(errors);\n\n if (isToUpdate /* || state.isPdf */) {\n delete errors.thumbnail;\n }\n\n if (state.type === \"image\") {\n delete errors.title;\n delete errors.description;\n delete errors.subtitle;\n delete errors.thumbnail;\n }\n\n setState({ ...state, errors });\n if (Object.keys(errors).length) {\n //do something\n toast.error(errors[Object.keys(errors)[0]], {\n position: \"top-center\",\n autoClose: 5000,\n hideProgressBar: true,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n theme: \"colored\",\n });\n return;\n }\n let formData = new FormData();\n formData.append(\"appearInCarousel\", state.appearInCarousel);\n formData.append(\"type\", state.type);\n\n if (state.type === \"image\") {\n formData.append(\"image\", state.image);\n formData.append(\"caption\", state.caption);\n } else if (state.type === \"video\") {\n formData.append(\"video\", state.file);\n formData.append(\"title\", state.title);\n formData.append(\"subTitle\", state.subtitle);\n formData.append(\"description\", state.description || \"\");\n formData.append(\"image\", state.thumbnail);\n }\n\n if (isToUpdate) {\n if (state.type === \"image\") {\n formData.delete(\"image\");\n } else if (state.type === \"video\") {\n formData.delete(\"video\");\n formData.delete(\"image\");\n }\n formData.delete(\"appearInCarousel\");\n formData.delete(\"type\");\n\n dispatch(\n patchTopCarouselDataRequest({\n payload: formData,\n _id: modalData._id,\n typeUpdate: \"update\",\n })\n );\n } else {\n if (state.type === \"video\") {\n dispatch(\n uploadVideoRequest({\n formData,\n uploadType: \"topCarousel\",\n })\n );\n } else if (state.type === \"image\") {\n dispatch(postTopCarouselDataRequest(formData));\n }\n }\n };\n\n useEffect(() => {\n if (isToUpdate) {\n if (modalData.type === \"video\") {\n setState({\n ...state,\n uploading: true,\n type: modalData.type,\n description: modalData.description,\n title: modalData.title,\n subtitle: modalData.subTitle,\n url: modalData.image,\n });\n } else if (modalData.type === \"image\") {\n setState({\n ...state,\n type: modalData.type,\n url: modalData.image,\n uploading: true,\n caption: modalData.caption || \"\",\n });\n }\n }\n }, [isToUpdate]);\n\n const handleChange = (value, name) => {\n setState({ ...state, [name]: value });\n };\n\n const handleReset = () => {\n setState(initialState);\n };\n\n function onChange(event, name) {\n var file = event.target.files[0];\n var reader = new FileReader();\n reader.onload = function (event) {\n setState({\n ...state,\n [name]: file,\n uploading: true,\n // isPdf,\n url:\n state.type === \"image\"\n ? event.target.result\n : name === \"thumbnail\"\n ? event.target.result\n : \"\",\n });\n };\n\n file && reader.readAsDataURL(file);\n }\n\n return (\n <CommonModal onClose={handleReset}>\n <div className={classes.modalHeader}>\n <span>Upload Media</span>\n <CloseIcon onClick={handleClose} className={classes.closeIcon} />\n </div>\n <div className={classes.content}>\n <div className={classes.selectWrapper}>\n <MultipleSelect\n isToUpdate={isToUpdate}\n selectedKeys={state.type}\n multiple={false}\n nameKey=\"name\"\n name=\"type\"\n onSelect={handleChange}\n list={selectionType}\n returnKey=\"type\"\n defaultSelect={true}\n />\n </div>\n <div className={classes.divider} />\n {state.type === \"image\" && (\n <>\n <div className={classes.imageUploadWrapper}>\n <div className={classes.addThumbnail}>\n {state.url !== \"\" && (\n <img\n className={classes.thumbnail}\n src={state.url}\n alt=\"Uploaded Img\"\n />\n )}\n <input\n onChange={(e) => onChange(e, \"image\")}\n accept=\"image/*\"\n className={classes.input}\n type=\"file\"\n capture\n disabled={isToUpdate}\n />\n <AddPhotoAlternateIcon />\n <div className={classes.uploadThumbnailText}>Upload Image</div>\n </div>\n <ErrorMessage error={state?.errors?.file} />\n <GenericTextArea\n value={state.caption}\n name={\"caption\"}\n handleChange={handleChange}\n style={{ width: \"60%\", marginTop: 10 }}\n isBigger={true}\n placeholder={\"Image caption...\"}\n />\n </div>\n </>\n )}\n {state.type === \"video\" && (\n <div\n className={\n state.uploading ? classes.uploadWrapper : classes.uploadingWrapper\n }\n >\n {state.uploading && (\n <div className={classes.inputsWrapper}>\n <div className={classes.details}>Details</div>\n <div className={classes.titleAreaWrapper}>\n <GenericTextArea\n value={state.title}\n handleChange={handleChange}\n name=\"title\"\n title=\"Title (required)\"\n placeholder=\"Add a title that describe your video\"\n error={state?.errors?.title}\n />\n </div>\n <div className={classes.descriptionWrapper}>\n <GenericTextArea\n value={state.subtitle}\n handleChange={handleChange}\n name=\"subtitle\"\n title=\"Subtitle (required)\"\n placeholder=\"Add a subtitle \"\n error={state?.errors?.subtitle}\n />\n </div>\n <div className={classes.descriptionWrapper}>\n <GenericTextArea\n value={state.description}\n handleChange={handleChange}\n name=\"description\"\n isBigger={true}\n title=\"Description\"\n placeholder=\"Tell viewers about your video\"\n error={state?.errors?.description}\n />\n </div>\n {\n /* !state.isPdf && */\n <>\n <div className={classes.sectionTitle}>Thumbnail</div>\n <span className={classes.thumbnailDescription}>\n Select or upload a picture that shows what's in your\n video. A good thumbnail stands out and draws viewers'\n attention.\n </span>\n <div className={classes.addThumbnail}>\n {state.url !== \"\" && (\n <img className={classes.thumbnail} src={state.url} />\n )}\n <input\n onChange={(e) => onChange(e, \"thumbnail\")}\n accept=\"image/*\"\n className={classes.input}\n type=\"file\"\n capture\n disabled={isToUpdate}\n />\n <AddPhotoAlternateIcon />\n <div className={classes.uploadThumbnailText}>\n Upload Thumbnail\n </div>\n </div>\n </>\n }\n <ErrorMessage error={state?.errors?.thumbnail} />\n </div>\n )}\n {!state.uploading && (\n <React.Fragment>\n <div className={classes.uploadIconContainer}>\n <input\n onChange={(e) => onChange(e, \"file\")}\n accept=\"video/*,.pdf\"\n className={classes.input}\n type=\"file\"\n capture\n />\n <ForwardIcon className={classes.uploadIcon} />\n <div className={classes.uploadIconUnderline} />\n </div>\n <div className={classes.dragTag}>\n Drag and drop Video file to upload\n </div>\n </React.Fragment>\n )}\n {/* {state.uploading && (\n <div className={classes.footer}>\n <div className={classes.footerContent}>\n {isLoading && (\n <>\n <div className={classes.uploadIconContainerSmall}>\n <ForwardIcon className={classes.uploadIconSmall} />\n <div className={classes.uploadIconUnderlineSmall} />\n </div>\n <span>Uploading...</span>\n </>\n )}\n </div>\n <button\n disabled={isLoading}\n onClick={handleUpload}\n className={classes.button}\n >\n {isLoading ? <Loader style={{ color: \"#fff\" }} /> : \"UPLOAD\"}\n </button>\n </div>\n )} */}\n </div>\n )}\n </div>\n {state.uploading && (\n <div className={classes.footer}>\n <div className={classes.footerContent}>\n {isLoading && (\n <>\n <div className={classes.uploadIconContainerSmall}>\n <ForwardIcon className={classes.uploadIconSmall} />\n <div className={classes.uploadIconUnderlineSmall} />\n </div>\n <span>Uploading...</span>\n </>\n )}\n </div>\n <button\n disabled={isLoading}\n onClick={handleUpload}\n className={classes.button}\n >\n {isLoading ? <Loader style={{ color: \"#fff\" }} /> : \"UPLOAD\"}\n </button>\n </div>\n )}\n {/* {state.type === \"image\" && (\n <div className={classes.footer}>\n <button\n disabled={isLoading}\n onClick={handleUpload}\n className={classes.button}\n >\n {isLoading ? <Loader style={{ color: \"#fff\" }} /> : \"UPLOAD\"}\n </button>\n </div>\n )} */}\n </CommonModal>\n );\n};\nexport default TopCarouselUploader;\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport { Container, Fab } from \"@material-ui/core\";\nimport FileUploader from \"../Components/VideoUploader\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Paper from \"@material-ui/core/Paper\";\nimport Grid from \"@material-ui/core/Grid\";\nimport videocamera from \"../assets/videocamera.jpg\";\nimport VideoList from \"../Components/VideoList\";\nimport AddIcon from \"@material-ui/icons/Add\";\n\nimport { useSelector, useDispatch } from \"react-redux\";\nimport {\n videoModalRequest,\n getVideoRequest,\n getTopCarouselDataRequest,\n patchOrderTopCarouselDataRequest,\n patchTopCarouselDataRequest,\n deleteTopCarouselDataRequest,\n setModalDataRequest,\n} from \"../redux/actions\";\nimport Loader from \"../Components/Loader\";\nimport Error from \"../Components/Error\";\nimport { Document, Page, pdfjs } from \"react-pdf\";\nimport { DragDropContext, Draggable, Droppable } from \"react-beautiful-dnd\";\nimport CarouselItem from \"../Components/CarouselItem\";\nimport TopCarouselUploader from \"../Components/TopCarouselUploader\";\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\n// import { io } from \"socket.io-client\";\n// var socket = require('socket.io-client')('http://ec2-13-233-245-254.ap-south-1.compute.amazonaws.com:3000/', {transports: ['polling']});\n\n// socket.on('connect', function(){\n// console.log(\"connection made\")\n// });\n// socket.on('videoProgress', function(data){\n// console.log(\"video upload progress: \",data);\n// });\n// socket.on('disconnect', function(){\n// console.log(\"disconnected...\")\n// });\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n padding: 10,\n },\n titleWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n marginBottom: 20,\n },\n playlistTitle: {\n fontWeight: \"bold\",\n fontSize: \"1.2rem\",\n },\n fab: {\n position: \"fixed\",\n bottom: theme.spacing(5),\n right: theme.spacing(5),\n background: \"#3ea8ad\",\n \"&:hover\": {\n background: \"#3ea8ad\",\n },\n },\n paperOne: {\n padding: \"40px 60px\",\n textAlign: \"center\",\n color: theme.palette.text.secondary,\n position: \"fixed\",\n top: \"30vh\",\n },\n container: {\n // height:'100%',\n overflowY: \"hidden\",\n },\n childContainer: {\n height: \"inherit\",\n },\n paperWrapper: {\n height: \"inherit\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n button: {\n outline: \"none\",\n border: \"none\",\n background: \"#065fd4\",\n color: \"#fff\",\n padding: 10,\n cursor: \"pointer\",\n },\n title: {\n fontWeight: 700,\n color: \"#000000\",\n },\n description: {\n margin: \"6px 0px 35px 0px\",\n fontSize: \".8rem\",\n },\n videocamera: {\n width: 120,\n height: 120,\n borderRadius: 60,\n marginBottom: 35,\n },\n paperWrapperTwo: {\n // height:'95%'\n },\n paperTwo: {\n minHeight: \"85vh\",\n padding: 10,\n margin: 10,\n },\n loaderWrapper: {\n // height:'100%',\n },\n}));\n\nexport default function TopCarousel() {\n const classes = useStyles();\n const dispatch = useDispatch();\n // const videoModal = useSelector((state) => state.config.videoModal.isVisible);\n const topCarousel = useSelector((state) => state.course.topCarousel);\n const [mediaList, setMediaList] = useState([]);\n useMemo(() => {\n if (\n topCarousel.data &&\n Array.isArray(topCarousel.data) &&\n topCarousel.data.length > 0\n ) {\n setMediaList(topCarousel.data);\n }\n }, [topCarousel]);\n useEffect(() => {\n dispatch(getTopCarouselDataRequest());\n }, []);\n\n const handleOpenModal = () => {\n dispatch(videoModalRequest(true));\n };\n\n const handleEditMedia = (item) => {\n dispatch(setModalDataRequest(item));\n dispatch(videoModalRequest(true));\n };\n\n const handleDeleteImage = (id) => {\n dispatch(deleteTopCarouselDataRequest({ _id: id }));\n // console.log(\"Delete image\", id);\n };\n\n const handleChangeImageVisibility = (data) => {\n const newData = { appearInCarousel: !data.appearInCarousel };\n\n dispatch(\n patchTopCarouselDataRequest({\n payload: newData,\n _id: data._id,\n typeUpdate: \"visibility\",\n })\n );\n };\n const handleDragEnd = (result) => {\n const { source, destination } = result;\n\n // If dropped outside the list\n if (!destination) return;\n\n if (destination.index === source.index) return;\n\n // Reorder the items\n const reorderedItems = [...mediaList];\n const [movedItem] = reorderedItems.splice(source.index, 1);\n reorderedItems.splice(destination.index, 0, movedItem);\n const newOrder = reorderedItems.map((item, index) => {\n return { _id: item._id, sort_index: index };\n });\n\n dispatch(patchOrderTopCarouselDataRequest({ order: newOrder }));\n setMediaList(reorderedItems);\n };\n return (\n <div className={classes.root}>\n <div className={classes.titleWrapper}>\n <div className={classes.playlistTitle}>Top Carousel</div>\n </div>\n <TopCarouselUploader />\n {topCarousel.isLoading && <Loader variant=\"big\" />}\n {topCarousel.isError && <Error message={topCarousel.message} />}\n {topCarousel.isSuccess && mediaList.length > 0 && (\n <>\n <DragDropContext onDragEnd={handleDragEnd}>\n <Droppable droppableId={`top-carousel-dropable`}>\n {(provided) => {\n return (\n <div ref={provided.innerRef} {...provided.droppableProps}>\n {mediaList.map((item, index) => {\n return (\n <Draggable\n key={item._id}\n draggableId={item._id}\n index={index}\n >\n {(provided) => (\n <div\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n style={{\n ...provided.draggableProps.style,\n }}\n >\n <CarouselItem\n key={index}\n data={item}\n handleDelete={handleDeleteImage}\n handleChangeVisibility={\n handleChangeImageVisibility\n }\n showEdit={true}\n handleEdit={handleEditMedia}\n />\n </div>\n )}\n </Draggable>\n );\n })}\n {provided.placeholder}\n </div>\n );\n }}\n </Droppable>\n </DragDropContext>\n </>\n )}\n <Fab\n size=\"small\"\n onClick={handleOpenModal}\n color=\"secondary\"\n aria-label=\"add\"\n className={classes.fab}\n >\n <AddIcon />\n </Fab>\n </div>\n );\n}\n","import React, {useState, useEffect} from \"react\";\nimport { makeStyles } from '@material-ui/core/styles';\nimport GenericTextArea from './GenericTextArea';\nimport CommonModal from \"./CommonModal\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport CreateIcon from '@material-ui/icons/Create';\nimport tempAvatar from '../assets/avatar.jpeg';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport {createTrainerRequest, videoModalRequest, updateTrainerRequest} from '../redux/actions';\nimport {useSelector, useDispatch} from 'react-redux';\nimport Loader from \"./Loader\";\nimport validator from \"../utils/validation\";\nimport ErrorMessage from \"./ErrorMessage\";\n\nconst useStyles = makeStyles((theme) => ({\n modalHeader: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: theme.spacing(2),\n borderBottom: '1px solid rgba(0,0,0, 0.2)'\n },\n closeIcon: {\n cursor: 'pointer'\n },\n contentWrapper:{\n display:'flex',\n flex:1,\n flexDirection:'column',\n },\n content:{\n display: 'flex',\n flex: 1,\n padding: 30,\n overflowY: 'scroll'\n },\n mainContent:{\n padding:'1rem',\n width:'55%',\n [theme.breakpoints.down('sm')]: {\n width: '90%'\n },\n },\n lable:{\n fontWeight:'500',\n marginBottom:'1rem',\n marginTop:'1rem'\n },\n avatarWrapper:{\n position:'relative',\n width:100,\n height:100,\n marginBottom:'1rem'\n },\n tempAvatar:{\n width:'100%',\n height:'100%',\n borderRadius:'50%',\n // border:'1px solid rgba(0,0,0, .3)'\n },\n pencilWrapper:{\n position:'absolute',\n right:-10,\n top:50,\n width:30,\n height:30,\n borderRadius:15,\n background:'rgba(0,0,0, .5)',\n color:'#fff',\n display:'flex',\n justifyContent:'center',\n alignItems:'center',\n cursor:'pointer',\n zIndex:0\n },\n pencilIcon:{\n fontSize:'1.2em'\n },\n inputsWrapper:{\n width: '55%',\n [theme.breakpoints.down('sm')]: {\n width: '100%'\n },\n },\n checkboxWrapper:{\n display:'flex',\n flexDirection:'row',\n alignItems:'center'\n },\n footer: {\n padding: theme.spacing(2),\n borderTop: '1px solid rgba(0,0,0, 0.2)',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n alignItems: 'center',\n },\n button: {\n outline: 'none',\n border: 'none',\n background: '#065fd4',\n color: '#fff',\n width:80,\n height:40,\n cursor: 'pointer'\n },\n input:{\n width:'100%',\n height:'100%',\n position:'absolute',\n zIndex:100,\n left:0,\n opacity:0,\n cursor:'pointer'\n }\n}))\n\nconst initialState = {\n url:'',\n verified:true,\n name:'',\n about:'',\n role:'',\n file:'',\n errors:{}\n}\n\nexport default function CreateTrainerModal(){\n const classes = useStyles();\n const dispatch = useDispatch();\n const trainersList = useSelector(state => state.course.trainersList)\n const isLoading = useSelector(state => state.config.isLoading)\n const modalData = useSelector(state => state.config.modalData)\n const [state, setState] = useState(initialState)\n const isToUpdate = Object.keys(modalData).length > 0\n\n const handleReset = () => {\n setState(initialState)\n }\n\n const handleCreateTrainer = () =>{\n const errors = validator(state)\n setState({...state, errors})\n if(Object.keys(errors).length){\n return;\n }\n var formdata = new FormData();\n formdata.append('name',state.name);\n formdata.append('about', state.about)\n formdata.append('role', state.role)\n formdata.append('verified', state.verified)\n formdata.append('avtar', state.file)\n if(isToUpdate){\n dispatch(updateTrainerRequest({data:formdata, trainerId:modalData._id}))\n return;\n }\n dispatch(createTrainerRequest(formdata))\n \n }\n\n useEffect(() => {\n if(isToUpdate){\n setState({\n name:modalData.name,\n about:modalData.about,\n role:modalData.role,\n url:modalData.profilePicture,\n verified:modalData.isVerified\n })\n }\n }, [modalData])\n\n function onChange(event) {\n var file = event.target.files[0];\n var reader = new FileReader();\n reader.onload = function(event) {\n setState({...state, file, url: event.target.result})\n };\n file && reader.readAsDataURL(file);\n }\n\n const handleChange = (value, name) => {\n let stateData = {...state};\n stateData[name] = value;\n setState(stateData);\n }\n const handleClose = () => {\n dispatch(videoModalRequest(false));\n };\n\n return(\n <CommonModal onClose={handleReset}>\n <div className={classes.modalHeader} >\n <span>{ \"Trainer Details\"}</span>\n <CloseIcon onClick={handleClose} className={classes.closeIcon} />\n </div>\n <div className={classes.content} >\n <div className={classes.inputsWrapper} >\n <div className={classes.avatarWrapper} >\n <img className={classes.tempAvatar} src={state.url || tempAvatar} />\n <input onChange={onChange} className={classes.input} type='file' />\n <div className={classes.pencilWrapper} >\n <CreateIcon className={classes.pencilIcon} />\n </div>\n </div>\n <ErrorMessage error={state?.errors?.file} />\n <div className={classes.lable} >Name:</div>\n <GenericTextArea\n value={state.name}\n name='name'\n handleChange={handleChange}\n error = {state?.errors?.name}\n />\n <div className={classes.lable}>About:</div>\n <GenericTextArea\n name = 'about'\n value={state.about}\n handleChange={handleChange}\n isBigger={true}\n error = {state?.errors?.about}\n />\n <div className={classes.lable}>Role:</div>\n <GenericTextArea\n value={state.role}\n name='role'\n handleChange={handleChange}\n error = {state?.errors?.role}\n />\n <div className={classes.checkboxWrapper} >\n <div className={classes.lable}>Verified:</div>\n <Checkbox\n checked={state.verified}\n color=\"primary\"\n inputProps={{ 'aria-label': 'secondary checkbox' }}\n onChange={(e)=> handleChange(!state.verified, 'verified')}\n />\n </div>\n </div>\n </div>\n <div className={classes.footer} >\n <button disabled={isLoading} onClick={handleCreateTrainer} className={classes.button} >\n {isLoading ? <Loader color = '#fff' /> : isToUpdate ? \"UPDATE\" : 'CREATE' }\n </button>\n </div>\n </CommonModal>\n )\n}","var _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgCheck(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n enableBackground: \"new 0 0 511.375 511.375\",\n height: 512,\n viewBox: \"0 0 511.375 511.375\",\n width: 512,\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m511.375 255.688-57.89-64.273 9.064-86.046-84.651-17.92-43.18-75.012-79.03 35.321-10.667 207.93 10.667 207.929 79.031 35.321 43.179-75.011 84.651-17.921-9.064-86.046z\",\n fill: \"#3ea8ad\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m176.656 12.437-43.179 75.012-84.651 17.921 9.064 86.045-57.89 64.273 57.89 64.272-9.064 86.046 84.651 17.921 43.18 75.011 79.031-35.321v-415.859z\",\n fill: \"#3ea8ad\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m362.878 199.702-22.381-19.977-84.809 95.016-10.667 23.613 10.667 21.439z\",\n fill: \"#f7f0eb\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m166.56 233.095-21.212 21.213 89.185 89.186 21.155-23.701v-45.052l-22.393 25.088z\",\n fill: \"#fffbf5\"\n })))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCheck);\nexport default __webpack_public_path__ + \"static/media/check.cbac346e.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _g2, _g3, _g4, _g5, _g6, _g7, _g8, _g9, _g10, _g11, _g12, _g13, _g14, _g15, _g16;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgCancel(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"red\",\n id: \"Capa_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 512.001 512.001\",\n style: {\n enableBackground: \"new 0 0 512.001 512.001\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M284.286,256.002L506.143,34.144c7.811-7.811,7.811-20.475,0-28.285c-7.811-7.81-20.475-7.811-28.285,0L256,227.717 L34.143,5.859c-7.811-7.811-20.475-7.811-28.285,0c-7.81,7.811-7.811,20.475,0,28.285l221.857,221.857L5.858,477.859 c-7.811,7.811-7.811,20.475,0,28.285c3.905,3.905,9.024,5.857,14.143,5.857c5.119,0,10.237-1.952,14.143-5.857L256,284.287 l221.857,221.857c3.905,3.905,9.024,5.857,14.143,5.857s10.237-1.952,14.143-5.857c7.811-7.811,7.811-20.475,0-28.285 L284.286,256.002z\"\n })))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", null)), _g3 || (_g3 = /*#__PURE__*/React.createElement(\"g\", null)), _g4 || (_g4 = /*#__PURE__*/React.createElement(\"g\", null)), _g5 || (_g5 = /*#__PURE__*/React.createElement(\"g\", null)), _g6 || (_g6 = /*#__PURE__*/React.createElement(\"g\", null)), _g7 || (_g7 = /*#__PURE__*/React.createElement(\"g\", null)), _g8 || (_g8 = /*#__PURE__*/React.createElement(\"g\", null)), _g9 || (_g9 = /*#__PURE__*/React.createElement(\"g\", null)), _g10 || (_g10 = /*#__PURE__*/React.createElement(\"g\", null)), _g11 || (_g11 = /*#__PURE__*/React.createElement(\"g\", null)), _g12 || (_g12 = /*#__PURE__*/React.createElement(\"g\", null)), _g13 || (_g13 = /*#__PURE__*/React.createElement(\"g\", null)), _g14 || (_g14 = /*#__PURE__*/React.createElement(\"g\", null)), _g15 || (_g15 = /*#__PURE__*/React.createElement(\"g\", null)), _g16 || (_g16 = /*#__PURE__*/React.createElement(\"g\", null)));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCancel);\nexport default __webpack_public_path__ + \"static/media/cancel.2ea14058.svg\";\nexport { ForwardRef as ReactComponent };","import React, {useState, useEffect} from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport GenericTable from '../Components/Table';\nimport CreateTrainerModal from \"../Components/CreateTrainer\";\nimport {getTrainersRequest, videoModalRequest, deleteTrainerRequest} from '../redux/actions';\nimport {useSelector, useDispatch} from 'react-redux';\nimport {ReactComponent as VerifiedBadge} from '../assets/svgs/check.svg';\nimport {ReactComponent as UnverifiedBadge} from '../assets/svgs/cancel.svg';\nimport defaultAvtar from '../assets/avatar.jpeg'\nimport Loader from '../Components/Loader';\nimport Fab from '@material-ui/core/Fab';\nimport AddIcon from '@material-ui/icons/Add';\nimport Error from '../Components/Error';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n '&:-webkit-scrollbar':{\n width: 0, \n background: 'transparent'\n },\n padding:10\n },\n titleWrapper:{\n display:'flex',\n flexDirection:'row',\n justifyContent:'space-between',\n alignItems:'center', \n marginBottom:20\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: 'center',\n color: theme.palette.text.secondary,\n },\n playlistTitle:{\n fontWeight:'bold',\n fontSize:'1.2rem'\n },\n newPlaylistTitle:{\n color:'#065fd4',\n fontWeight:'500',\n cursor:'pointer'\n },\n avtar:{\n width:60,\n height:60,\n borderRadius:30\n },\n fab:{\n position: 'fixed',\n bottom: theme.spacing(5),\n right: theme.spacing(5),\n background:'#3ea8ad',\n '&:hover':{\n background:'#3ea8ad'\n }\n }\n}))\n\n\nexport default function Trainers() {\n const classes = useStyles();\n const dispatch = useDispatch();\n const trainersList = useSelector(state => state.course.allTrainers)\n const [state, setState] = useState({\n\n })\n\n const handleOpenModal = () =>{\n if(trainersList.isLoading){\n return;\n }\n dispatch(videoModalRequest(true));\n }\n\n useEffect(() => {\n if(!trainersList.isSuccess){\n dispatch(getTrainersRequest())\n }\n }, [])\n\n const getRating = (rating) => {\n if(rating.length){\n return rating.reduce((a, b)=> a+b)\n }\n return 'NA'\n }\n\n const makeTableData = (rows=[]) => {\n if(!rows.length){\n return []\n }\n let data = [];\n rows.map((item) => {\n let a = {\n profile: <img src={item.profilePicture || defaultAvtar} className={classes.avtar} />,\n name: item.name,\n about: item.about, \n rating: getRating(item.rating) , \n verified: item.verified ? <VerifiedBadge width=\"20px\" height='20px' /> : <UnverifiedBadge width='17px' height='17px' />,\n profilePicture: item.profilePicture,\n _id: item._id,\n isVerified: item.verified,\n role: item.role\n }\n data.push(a)\n })\n return data\n }\n\n const handleDeleteTainer = (trainerId) => {\n dispatch(deleteTrainerRequest({trainerId}))\n }\n\n return (\n <div className={classes.root}>\n <CreateTrainerModal />\n <div className={classes.titleWrapper} >\n <div className={classes.playlistTitle} >Trainers</div>\n {/* <div className={classes.newPlaylistTitle} onClick={handleOpenModal} >CREATE NEW TRAINER</div> */}\n </div>\n {trainersList.isLoading && <Loader variant='big' />}\n {trainersList.isSuccess && \n <GenericTable\n headers={['Profile', 'Name', 'About', 'Rating', 'Role', 'Verified']}\n cellData={makeTableData(trainersList.data)}\n keys={['profile', 'name', 'about', 'rating', 'role', 'verified']}\n handleDelete ={handleDeleteTainer}\n />}\n {trainersList.isError && <Error message={trainersList.message} />}\n <Fab size=\"small\" onClick={handleOpenModal} color=\"secondary\" aria-label=\"add\" className={classes.fab}>\n <AddIcon />\n </Fab>\n </div>\n )\n}\n","var _path, _path2;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgAudioCourse(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n id: \"Layer_3\",\n \"data-name\": \"Layer 3\",\n viewBox: \"0 0 64 64\",\n width: 512,\n height: 512,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M60,28H57V22a1,1,0,0,0-1-1H54.207c-1.114,0-2.232.061-3.343.155A2.994,2.994,0,0,0,49,19.184V16A15.017,15.017,0,0,0,34,1H30A15.017,15.017,0,0,0,15,16v3.184a3,3,0,0,0-1.864,1.972C12.023,21.062,10.905,21,9.793,21H8a1,1,0,0,0-1,1v6H4a1,1,0,0,0-1,1V62a1,1,0,0,0,1,1H60a1,1,0,0,0,1-1V29A1,1,0,0,0,60,28Zm-1,2V57H39.5a37.544,37.544,0,0,1,14.708-3H55a1,1,0,0,0,1-1V50a1,1,0,0,0,1-1V30ZM10,50.008a37.521,37.521,0,0,1,21,6.536v1.619A39.486,39.486,0,0,0,10,52ZM24,20H23a1,1,0,0,0-1-1H21V16a9.011,9.011,0,0,1,9-9h4a9.01,9.01,0,0,1,9,9v3H42a1,1,0,0,0-1,1H40a3,3,0,0,0-3,3v1.93A39.737,39.737,0,0,0,32,27.8a39.737,39.737,0,0,0-5-2.868V23A3,3,0,0,0,24,20Zm-1,2h1a1,1,0,0,1,1,1v6a1,1,0,0,1-1,1H23Zm25-1a1,1,0,0,1,1,1v8a1,1,0,0,1-1,1H43V21Zm-7,9H40a1,1,0,0,1-1-1V23a1,1,0,0,1,1-1h1Zm-9,5a7,7,0,1,1-7,7A7.009,7.009,0,0,1,32,35Zm1,21.544a37.521,37.521,0,0,1,21-6.536V52a39.486,39.486,0,0,0-21,6.162ZM55,23V48h-.793A39.5,39.5,0,0,0,33,54.133V50.941a9,9,0,0,0,0-17.882V29.525a37.668,37.668,0,0,1,4-2.372V29a3,3,0,0,0,3,3h1a1,1,0,0,0,1,1h6a3,3,0,0,0,3-3V23.15c1.065-.091,2.138-.15,3.207-.15ZM30,3h4A13.015,13.015,0,0,1,47,16v3H45V16A11.013,11.013,0,0,0,34,5H30A11.013,11.013,0,0,0,19,16v3H17V16A13.015,13.015,0,0,1,30,3ZM15,22a1,1,0,0,1,1-1h5V31H16a1,1,0,0,1-1-1ZM9,23h.793c1.066,0,2.14.06,3.207.151V30a3,3,0,0,0,3,3h6a1,1,0,0,0,1-1h1a3,3,0,0,0,3-3V27.153a37.668,37.668,0,0,1,4,2.372v3.534a9,9,0,0,0,0,17.882v3.192A39.5,39.5,0,0,0,9.793,48H9ZM7,30V49a1,1,0,0,0,1,1v3a1,1,0,0,0,1,1h.793A37.544,37.544,0,0,1,24.5,57H5V30ZM32,61H5V59H28.533c.985.565,1.955,1.162,2.894,1.819a1,1,0,0,0,1.146,0c.939-.657,1.909-1.254,2.894-1.819H59v2Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.475,46.851a1,1,0,0,0,.972.044l8-4a1,1,0,0,0,0-1.79l-8-4A1,1,0,0,0,28,38v8A1,1,0,0,0,28.475,46.851ZM30,39.618,34.764,42,30,44.382Z\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAudioCourse);\nexport default __webpack_public_path__ + \"static/media/audio-course.66aa66b9.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgTrainer(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n enableBackground: \"new 0 0 512 512\",\n height: 512,\n viewBox: \"0 0 512 512\",\n width: 512,\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m376 271h-60v-18.883c27.182-18.996 45-50.513 45-86.117v-91c0-41.355-33.645-75-75-75h-60c-41.355 0-75 33.645-75 75v91c0 35.604 17.818 67.121 45 86.117v18.883h-60c-57.897 0-105 47.103-105 105v121c0 8.284 6.716 15 15 15s15-6.716 15-15v-46h60v46c0 8.284 6.716 15 15 15s15-6.716 15-15v-61c0-8.284-6.716-15-15-15h-75v-45c0-41.355 33.645-75 75-75h62.628c6.228 17.416 22.859 29.925 42.372 29.996v32.584c-17.459 6.192-30 22.865-30 42.42 0 31.032 30.814 52.772 60 42.42v17.58c0 8.284 6.716 15 15 15s15-6.716 15-15v-60c0-19.555-12.541-36.228-30-42.42v-32.584c19.513-.071 36.144-12.58 42.372-29.996h62.628c41.355 0 75 33.645 75 75v45h-75c-8.284 0-15 6.716-15 15v61c0 8.284 6.716 15 15 15s15-6.716 15-15v-46h60v46c0 8.284 6.716 15 15 15s15-6.716 15-15v-121c0-57.897-47.103-105-105-105zm-150-241h60c24.813 0 45 20.187 45 45v16h-150v-16c0-24.813 20.187-45 45-45zm85.745 91-17.314 27.338c-25.087-6.564-51.773-6.564-76.861 0l-17.315-27.338zm-130.745 45v-19.334l17.328 27.359c3.689 5.825 10.875 8.383 17.415 6.205 25.992-8.662 51.903-9.535 80.516 0 6.547 2.182 13.728-.385 17.415-6.205l17.326-27.359v19.334c0 41.355-33.645 75-75 75s-75-33.645-75-75zm75 255c-8.271 0-15-6.729-15-15s6.729-15 15-15 15 6.729 15 15-6.729 15-15 15zm14.833-120h-29.667c-8.363 0-15.167-6.804-15.167-15.167v-19.207c19.515 5.829 40.449 5.839 60 0v19.207c.001 8.363-6.803 15.167-15.166 15.167z\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTrainer);\nexport default __webpack_public_path__ + \"static/media/trainer.43c61e0c.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _g2;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgCoupon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n enableBackground: \"new 0 0 24 24\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n fill: \"#757575\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"rect\", {\n fill: \"none\",\n height: 24,\n width: 24\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.79,21L3,11.21v2c0,0.53,0.21,1.04,0.59,1.41l7.79,7.79c0.78,0.78,2.05,0.78,2.83,0l6.21-6.21 c0.78-0.78,0.78-2.05,0-2.83L12.79,21z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.38,17.41c0.78,0.78,2.05,0.78,2.83,0l6.21-6.21c0.78-0.78,0.78-2.05,0-2.83l-7.79-7.79C12.25,0.21,11.74,0,11.21,0H5 C3.9,0,3,0.9,3,2v6.21c0,0.53,0.21,1.04,0.59,1.41L11.38,17.41z M7.25,3C7.94,3,8.5,3.56,8.5,4.25S7.94,5.5,7.25,5.5 S6,4.94,6,4.25S6.56,3,7.25,3z\"\n }))))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCoupon);\nexport default __webpack_public_path__ + \"static/media/coupon.b4daed29.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgActionableInsights(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 100 100\",\n style: {\n enableBackground: \"new 0 0 100 100\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M95.07,13.47c-0.15-0.46-0.58-0.78-1.07-0.8l-7.76-0.24l1.69-7.58c0.11-0.48-0.1-0.97-0.51-1.23 c-0.41-0.26-0.95-0.24-1.33,0.06L79.26,9c-0.21,0.17-0.36,0.4-0.42,0.66l-1.91,8.54l-5.32,4.13C65.34,14.8,56.01,9.9,45.55,9.56 V6.59c0-0.64-0.52-1.16-1.16-1.16s-1.16,0.52-1.16,1.16v2.97c-18.6,0.6-33.62,15.62-34.22,34.22H6.04c-0.64,0-1.16,0.52-1.16,1.16 c0,0.64,0.52,1.16,1.16,1.16h2.97c0.2,6.23,2.03,12.27,5.32,17.55c3.4,5.45,8.21,9.88,13.92,12.81c0.17,0.09,0.35,0.13,0.53,0.13 c0.42,0,0.83-0.23,1.03-0.63c0.29-0.57,0.07-1.27-0.5-1.56C18.54,68.88,11.74,58.11,11.32,46.1h2.12c0.64,0,1.16-0.52,1.16-1.16 c0-0.64-0.52-1.16-1.16-1.16h-2.12c0.6-17.32,14.58-31.3,31.9-31.9V14c0,0.64,0.52,1.16,1.16,1.16s1.16-0.52,1.16-1.16v-2.12 c9.72,0.34,18.39,4.89,24.23,11.87l-4.97,3.86c-4.89-5.84-12.23-9.55-20.42-9.55c-14.68,0-26.62,11.94-26.63,26.61 c-0.25,10.83,4.74,16.65,9.14,21.78c3.03,3.53,5.64,6.58,6.26,10.76v12.47c0,0.32,0.13,0.61,0.34,0.82l0,0l4.2,4.18 c1.24,1.23,2.72,1.86,4.39,1.86h4.6c1.68,0,3.15-0.63,4.39-1.86l4.2-4.18l0,0c0.21-0.21,0.34-0.5,0.34-0.82V77.22 c0.62-4.18,3.23-7.23,6.26-10.76c4.4-5.14,9.39-10.96,9.14-21.78c0-5.66-1.78-10.9-4.8-15.22l4.99-3.87 c3.73,5.15,6.01,11.42,6.25,18.2h-2.12c-0.64,0-1.16,0.52-1.16,1.16c0,0.64,0.52,1.16,1.16,1.16h2.12 c-0.41,12.01-7.22,22.77-17.98,28.29c-0.57,0.29-0.79,0.99-0.5,1.56c0.29,0.57,0.99,0.79,1.56,0.5c5.71-2.93,10.52-7.36,13.92-12.81 c3.29-5.28,5.12-11.32,5.32-17.55h2.97c0.64,0,1.16-0.52,1.16-1.16c0-0.64-0.52-1.16-1.16-1.16h-2.97 c-0.24-7.31-2.7-14.07-6.74-19.62l5.32-4.13l8.75,0.27c0.01,0,0.02,0,0.04,0c0.26,0,0.51-0.09,0.71-0.24l6.83-5.31 C95.06,14.45,95.22,13.94,95.07,13.47z M53.3,88.53H35.47v-3.96h17.79v-2.32H35.47v-3.96H53.3V88.53z M49.44,93.05 c-0.8,0.8-1.7,1.18-2.76,1.18h-4.6c-1.05,0-1.96-0.39-2.76-1.18l-2.21-2.2h14.53L49.44,93.05z M68.7,44.69c0,0.01,0,0.02,0,0.03 c0.23,9.95-4.25,15.18-8.58,20.23c-2.92,3.41-5.7,6.65-6.63,11.02h-18.2c-0.93-4.37-3.7-7.61-6.63-11.02 c-4.33-5.06-8.82-10.29-8.58-20.23c0-0.01,0-0.02,0-0.03c0-13.4,10.9-24.31,24.31-24.31c7.45,0,14.12,3.37,18.58,8.66l-10.83,8.41 c-1.96-2.03-4.72-3.3-7.76-3.3c-5.95,0-10.8,4.84-10.8,10.8s4.84,10.8,10.8,10.8s10.8-4.84,10.8-10.8c0-2.08-0.59-4.02-1.61-5.67 l10.81-8.4C67.1,34.81,68.7,39.57,68.7,44.69z M43.47,45.66c0.23,0.29,0.57,0.45,0.92,0.45c0.25,0,0.5-0.08,0.71-0.24l6.63-5.15 c0.72,1.25,1.14,2.69,1.14,4.23c0,4.67-3.8,8.48-8.48,8.48c-4.67,0-8.48-3.8-8.48-8.48s3.8-8.48,8.48-8.48 c2.3,0,4.39,0.92,5.92,2.41l-6.63,5.15C43.17,44.42,43.08,45.15,43.47,45.66z M81.01,10.57l3.96-3.08l-1.2,5.4l-3.96,3.08 L81.01,10.57z M86.75,17.97l-5.53-0.17l3.96-3.08l5.53,0.17L86.75,17.97z\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgActionableInsights);\nexport default __webpack_public_path__ + \"static/media/actionable-insights.4e09dcff.svg\";\nexport { ForwardRef as ReactComponent };","import { createBrowserHistory } from 'history';\n\nconst history = createBrowserHistory();\n\nexport default history;","import React, { useEffect } from \"react\";\nimport clsx from \"clsx\";\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\nimport Drawer from \"@material-ui/core/Drawer\";\nimport AppBar from \"@material-ui/core/AppBar\";\nimport Toolbar from \"@material-ui/core/Toolbar\";\nimport List from \"@material-ui/core/List\";\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Divider from \"@material-ui/core/Divider\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport MenuIcon from \"@material-ui/icons/Menu\";\nimport ChevronLeftIcon from \"@material-ui/icons/ChevronLeft\";\nimport ChevronRightIcon from \"@material-ui/icons/ChevronRight\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport ListItemIcon from \"@material-ui/core/ListItemIcon\";\nimport ListItemText from \"@material-ui/core/ListItemText\";\nimport InboxIcon from \"@material-ui/icons/MoveToInbox\";\nimport DashboardIcon from \"@material-ui/icons/Dashboard\";\nimport MailIcon from \"@material-ui/icons/Mail\";\nimport appLogo from \"../assets/logo.png\";\nimport { Link } from \"react-router-dom\";\nimport { ReactComponent as CourseIcon } from \"../assets/svgs/audio-course.svg\";\nimport { ReactComponent as TrainerIcon } from \"../assets/svgs/trainer.svg\";\nimport { ReactComponent as CouponIcon } from \"../assets/svgs/coupon.svg\";\nimport { ReactComponent as ActionableInsightsIcon } from \"../assets/svgs/actionable-insights.svg\";\nimport { useHistory } from \"react-router-dom\";\nimport OndemandVideoIcon from \"@material-ui/icons/OndemandVideo\";\nimport HelpIcon from \"@material-ui/icons/Help\";\nimport VideoLibraryIcon from \"@material-ui/icons/VideoLibrary\";\nimport ViewCarouselIcon from \"@material-ui/icons/ViewCarousel\";\nimport PeopleIcon from \"@material-ui/icons/People\";\nimport NotificationsIcon from \"@material-ui/icons/Notifications\";\nimport { PictureAsPdf } from \"@material-ui/icons\";\nimport Menu from \"@material-ui/core/Menu\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport AccountCircle from \"@material-ui/icons/AccountCircle\";\nimport Button from \"@material-ui/core/Button\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { otpVerificationRequest, setCurrentUser } from \"../redux/actions\";\nimport history from \"../History\";\n\nconst drawerWidth = 240;\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: \"flex\",\n },\n appBar: {\n zIndex: theme.zIndex.drawer + 1,\n transition: theme.transitions.create([\"width\", \"margin\"], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n background: \"#3ea8ad\",\n },\n appBarShift: {\n marginLeft: drawerWidth,\n width: `calc(100% - ${drawerWidth}px)`,\n transition: theme.transitions.create([\"width\", \"margin\"], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n menuButton: {\n marginRight: 36,\n },\n hide: {\n display: \"none\",\n },\n drawer: {\n width: drawerWidth,\n flexShrink: 0,\n whiteSpace: \"nowrap\",\n },\n drawerOpen: {\n width: drawerWidth,\n transition: theme.transitions.create(\"width\", {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n drawerClose: {\n transition: theme.transitions.create(\"width\", {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n overflowX: \"hidden\",\n width: theme.spacing(7) + 1,\n [theme.breakpoints.up(\"sm\")]: {\n width: theme.spacing(9) + 1,\n },\n },\n toolbar: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n padding: theme.spacing(0, 1),\n // necessary for content to be below app bar\n ...theme.mixins.toolbar,\n },\n content: {\n flexGrow: 1,\n padding: theme.spacing(3),\n },\n appLogo: {\n display: \"flex\",\n width: 40,\n height: 40,\n marginRight: 10,\n [theme.breakpoints.up(\"sm\")]: {\n width: 45,\n height: 45,\n },\n },\n link: {\n textDecoration: \"none\",\n color: \"#3ea8ad\",\n },\n profileMenu: {\n position: \"absolute\",\n right: 0,\n top: 0,\n margin: 10,\n },\n profileName: {\n marginLeft: 8,\n fontSize: 16,\n textTransform: \"initial\",\n },\n}));\n\nconst routes = [\n {\n name: \"Dashboard\",\n route: \"/\",\n iconComponent: <DashboardIcon width={25} height={25} />,\n },\n {\n name: \"Top Carousel\",\n route: \"/top-carousel\",\n iconComponent: <ViewCarouselIcon width={25} height={25} />,\n },\n {\n name: \"Key Concept\",\n route: \"/key-concept\",\n iconComponent: <OndemandVideoIcon width={25} height={25} />,\n },\n {\n name: \"Actionable Insight\",\n route: \"/actionable-insight\",\n iconComponent: <ActionableInsightsIcon width={25} height={25} />,\n },\n {\n name: \"Video Bank\",\n route: \"/video-bank\",\n iconComponent: <VideoLibraryIcon width={25} height={25} />,\n },\n // {\n // name: \"Key Concept\",\n // route: \"/key-concept\",\n // iconComponent: <DashboardIcon width={25} height={25} />,\n // },\n {\n name: \"Question Bank\",\n route: \"/question-bank\",\n iconComponent: <HelpIcon width={25} height={25} />,\n },\n {\n name: \"Programmes\",\n route: \"/programme\",\n iconComponent: <CourseIcon width={25} height={25} />,\n },\n {\n name: \"Trainers\",\n route: \"/trainers\",\n iconComponent: <TrainerIcon width={25} height={25} />,\n },\n {\n name: \"Users\",\n route: \"/users\",\n iconComponent: <PeopleIcon width={25} height={25} />,\n },\n {\n name: \"Notification\",\n route: \"/notification\",\n iconComponent: <NotificationsIcon width={25} height={25} />,\n },\n {\n name: \"Pdf\",\n route: \"/pdf\",\n iconComponent: <PictureAsPdf width={25} height={25} />,\n },\n {\n name: \"Coupon\",\n route: \"/coupon\",\n iconComponent: <CouponIcon width={25} height={25} />,\n },\n];\n\nexport default function MiniDrawer({ children }) {\n const classes = useStyles();\n const theme = useTheme();\n const [open, setOpen] = React.useState(false);\n const loginData = useSelector((state) => state.auth.loginData);\n const [anchorEl, setAnchorEl] = React.useState(null);\n const dispatch = useDispatch();\n\n const handleMenu = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const handleLogout = () => {\n window.localStorage.removeItem(\"currentUser\");\n dispatch(setCurrentUser(null));\n handleClose();\n history.push(\"/\");\n };\n\n const handleChangePassword = () => {\n handleClose();\n history.push(\"/changePassword\");\n };\n\n const handleDrawerOpen = () => {\n setOpen(true);\n };\n\n const handleDrawerClose = () => {\n setOpen(false);\n };\n\n useEffect(() => {}, [history.location.pathname]);\n\n return (\n <div className={classes.root}>\n <CssBaseline />\n <AppBar\n position=\"fixed\"\n className={clsx(classes.appBar, {\n [classes.appBarShift]: open,\n })}\n >\n <Toolbar>\n <IconButton\n color=\"inherit\"\n aria-label=\"open drawer\"\n onClick={handleDrawerOpen}\n edge=\"start\"\n className={clsx(classes.menuButton, {\n [classes.hide]: open,\n })}\n >\n <MenuIcon />\n </IconButton>\n <Link to=\"/\">\n <img className={classes.appLogo} src={appLogo} />\n </Link>\n <Typography variant=\"h6\" noWrap>\n W3 CMS\n </Typography>\n {loginData?.currentUser && (\n <div className={classes.profileMenu}>\n <Button\n size=\"large\"\n aria-label=\"account of current user\"\n aria-controls=\"menu-appbar\"\n aria-haspopup=\"true\"\n onClick={handleMenu}\n color=\"inherit\"\n autoCapitalize=\"off\"\n >\n <AccountCircle />\n <span className={classes.profileName} autoCapitalize=\"off\">\n {loginData.currentUser.name}\n </span>\n </Button>\n <Menu\n id=\"menu-appbar\"\n anchorEl={anchorEl}\n anchorOrigin={{\n vertical: \"top\",\n horizontal: \"right\",\n }}\n keepMounted\n transformOrigin={{\n vertical: \"top\",\n horizontal: \"right\",\n }}\n open={Boolean(anchorEl)}\n onClose={handleClose}\n >\n <MenuItem onClick={handleChangePassword}>\n Change password\n </MenuItem>\n <MenuItem onClick={handleLogout}>Logout</MenuItem>\n </Menu>\n </div>\n )}\n </Toolbar>\n </AppBar>\n <Drawer\n variant=\"permanent\"\n className={clsx(classes.drawer, {\n [classes.drawerOpen]: open,\n [classes.drawerClose]: !open,\n })}\n classes={{\n paper: clsx({\n [classes.drawerOpen]: open,\n [classes.drawerClose]: !open,\n }),\n }}\n >\n <div className={classes.toolbar}>\n <IconButton onClick={handleDrawerClose}>\n {theme.direction === \"rtl\" ? (\n <ChevronRightIcon />\n ) : (\n <ChevronLeftIcon />\n )}\n </IconButton>\n </div>\n <Divider />\n <List>\n {routes.map((router, index) => (\n <Link className={classes.link} to={router.route} key={index}>\n <ListItem button key={router.name}>\n <ListItemIcon>{router.iconComponent}</ListItemIcon>\n <ListItemText primary={router.name} />\n </ListItem>\n </Link>\n ))}\n </List>\n <Divider />\n </Drawer>\n <main className={classes.content}>\n <div className={classes.toolbar} />\n {children}\n </main>\n </div>\n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport CommonModal from \"./CommonModal\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { videoModalRequest, createQuestionRequest, createQuestionCategoryRequest, updateQuestionCategoryRequest, getQuestionCategoryRequest } from \"../redux/actions\";\nimport GenericTextArea from \"./GenericTextArea\";\nimport Loader from './Loader';\nimport validator from '../utils/validation';\nimport MultipleSelect from \"./Select\";\nimport clsx from 'clsx';\n\nconst useStyles = makeStyles((theme) => ({\n modalHeader: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n padding: theme.spacing(2),\n borderBottom: \"1px solid rgba(0,0,0, 0.2)\",\n },\n closeIcon: {\n cursor: \"pointer\",\n },\n content: {\n flex: 1,\n padding: 30,\n overflowY: \"scroll\",\n },\n footer: {\n padding: theme.spacing(2),\n borderTop: '1px solid rgba(0,0,0, 0.2)',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n alignItems: 'center',\n },\n button: {\n outline: 'none',\n border: 'none',\n background: '#065fd4',\n color: '#fff',\n minWidth:70,\n height:40,\n cursor: 'pointer'\n },\n categoryWrapper:{\n paddingBottom: theme.spacing(2),\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center'\n },\n addCategory: {\n outline: 'none',\n border: 'none',\n background: '#065fd4',\n color: '#fff',\n cursor: 'pointer',\n padding: 10,\n marginRight: 10\n },\n addCategoryWrapper: {\n display: 'flex',\n alignItems: 'center'\n },\n disabled: {\n cursor: 'not-allowed'\n }\n}));\n\nconst initialState = {\n question: '',\n errors: {},\n addQuestion: true,\n questionCategory: '',\n categoryId: '',\n}\n\nexport default function AddQuestionModal() {\n const classes = useStyles();\n const dispatch = useDispatch();\n const createQuestion = useSelector(state => state.course.createQuestion)\n const questionCategories = useSelector(state => state.course.questionCategories)\n const selectedQuestionCategory = useSelector(state => state.course.selectedQuestionCategory)\n const isLoading = useSelector(state => state.config.isLoading)\n const [state, setState] = useState(initialState)\n const modalData = useSelector(state => state.config.modalData)\n const isCategoriesAvailable = selectedQuestionCategory?.data?.subCategories?.length > 0\n const isToUpdate = Object.keys(modalData).length > 0\n\n const handleClose = () => {\n dispatch(videoModalRequest(false));\n handleReset()\n };\n\n useEffect(() => {\n if(!isLoading && !state.addQuestion){\n setState({...state, addQuestion:true, questionCategory: '' })\n }\n }, [isLoading])\n\n useEffect(() => {\n if(isToUpdate){\n setState({\n ...state, \n addQuestion: false, \n questionCategory: modalData.name, \n categoryId: modalData._id \n })\n }\n }, [isToUpdate, questionCategories])\n\n const handleCreateQuestion = () => {\n const { question, categoryId} = state;\n const errors = validator({ question })\n setState({...state, errors})\n if(Object.keys(errors).length){\n //do something\n return\n }\n dispatch(createQuestionRequest({ question, categoryId, parentCategoryId: selectedQuestionCategory.data._id }))\n }\n\n const handleCreateQuestionCategory = () => {\n const { questionCategory, categoryId } = state;\n const errors = validator({ questionCategory })\n setState({...state, errors})\n if(Object.keys(errors).length){\n //do something\n return\n }\n if(isToUpdate){\n dispatch(updateQuestionCategoryRequest({ data: { name: questionCategory, parentCategoryId: selectedQuestionCategory.data._id }, categoryId }))\n return\n }\n dispatch(createQuestionCategoryRequest({ name: questionCategory, parentCategoryId: selectedQuestionCategory.data._id }))\n }\n \n useEffect(() => {\n dispatch(getQuestionCategoryRequest())\n }, [])\n\n const handleChange = (value, name) => {\n setState({...state, [name]: value})\n }\n\n const handleReset = () => {\n setState(initialState)\n }\n\n return (\n <CommonModal onClose={handleReset} style={{height:'50vh'}} >\n <div className={classes.modalHeader}>\n <span>Create Question</span>\n <div className={classes.addCategoryWrapper}>\n <button\n onClick={() => setState({...state, addQuestion: !state.addQuestion})}\n className={classes.addCategory}\n >\n {state.addQuestion ? \"Add Category\" : \"Add Question\"}\n </button>\n <CloseIcon onClick={handleClose} className={classes.closeIcon} />\n </div>\n </div>\n <div className={classes.content}>\n {state.addQuestion && \n <div className={classes.categoryWrapper} >\n <div>Select Category: </div>\n {\n questionCategories.isLoading ? \n <span>Fetching Categories...</span> : \n <MultipleSelect \n name='categoryId' \n onSelect={handleChange} \n nameKey={'name'} \n returnKey='_id'\n defaultSelect={true} \n multiple={false} \n list={selectedQuestionCategory.data.subCategories} \n />}\n </div>}\n <GenericTextArea \n isBigger={true}\n style={{ height: '22vh' }}\n placeholder={state.addQuestion ? 'Type a question here...' : 'Type a question category here...'}\n handleChange={handleChange}\n name={state.addQuestion ? 'question' : 'questionCategory'}\n value={state.addQuestion ? state.question : state.questionCategory}\n error={state.addQuestion ? state?.errors?.question : state?.errors?.questionCategory}\n />\n </div>\n <div className={classes.footer}>\n <button\n disabled={createQuestion.isLoading || questionCategories.isLoading || (state.addQuestion && !isCategoriesAvailable)}\n onClick={state.addQuestion ? handleCreateQuestion : handleCreateQuestionCategory}\n className={clsx(classes.button, (state.addQuestion && !isCategoriesAvailable) && classes.disabled)}\n >\n {isLoading ? <Loader style={{color:'#fff'}} /> : state.addQuestion ? \"CREATE QUESTION\" : isToUpdate ? \"UPDATE CATEGORY\" : \"CREATE CATEGORY\"}\n </button>\n </div>\n </CommonModal>\n );\n}\n","import React, { useState, useRef, useEffect } from \"react\";\nimport Fab from \"@material-ui/core/Fab\";\nimport AddIcon from \"@material-ui/icons/Add\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport sampleVideo from \"../assets/videos/mov_bbb.mp4\";\nimport AddQuestionModal from \"../Components/AddQuestionModal\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n videoModalRequest,\n deleteQuestionCategoryRequest,\n selectQuestionCategoryRequest,\n setModalDataRequest,\n setPaidContentRequest,\n updateQuestionRequest,\n sendNotificationdRequest,\n getDashboardRequest,\n getUserListRequest,\n} from \"../redux/actions\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport CreateIcon from \"@material-ui/icons/Create\";\nimport UpdateIcon from \"@material-ui/icons/Update\";\nimport Loader from \"../Components/Loader\";\nimport Error from \"../Components/Error\";\nimport MultipleSelect from \"../Components/Select\";\nimport clsx from \"clsx\";\nimport Checkbox from \"@material-ui/core/Checkbox\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n padding: 10,\n },\n fab: {\n position: \"fixed\",\n bottom: theme.spacing(5),\n right: theme.spacing(5),\n background: \"#3ea8ad\",\n \"&:hover\": {\n background: \"#3ea8ad\",\n },\n },\n update: {\n position: \"fixed\",\n bottom: theme.spacing(5),\n right: theme.spacing(15),\n background: \"#3ea8ad\",\n \"&:hover\": {\n background: \"#3ea8ad\",\n },\n },\n\n videoWrapper: {\n display: \"flex\",\n paddingRight: 20,\n width: \"100%\",\n },\n subtitle: {\n fontSize: \"1.1rem\",\n },\n videoDetailsWrapper: {\n marginLeft: \"1rem\",\n },\n titleWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n marginBottom: 20,\n },\n playlistTitle: {\n fontWeight: \"bold\",\n fontSize: \"1.2rem\",\n },\n questionNo: {\n marginRight: 10,\n },\n categoryName: {\n padding: 10,\n backgroundColor: \"#30989d24\",\n marginBottom: 10,\n borderRadius: 7,\n fontSize: \"1.1rem\",\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n // \"&:hover .icon-wrapper\" : {\n // display: 'flex'\n // }\n },\n categoryItem: {\n marginBottom: 40,\n },\n iconsWrapper: {\n marginTop: 4,\n position: \"absolute\",\n right: 40,\n },\n icon: {\n cursor: \"pointer\",\n marginRight: 10,\n },\n noDataText: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n marginTop: \"20vh\",\n },\n\n itemIconsWrapper: {\n display: \"flex\",\n marginTop: \"1rem\",\n boxShadow:\n \"0px 2px 1px -1px rgb(0 0 0 / 10%), 0px 1px 1px 0px rgb(0 0 0 / -1%), 0px 1px 0px 0px rgb(0 0 0 / 1%)\",\n background: \"#fff\",\n padding: 20,\n paddingLeft: 30,\n borderRadius: 7,\n marginBottom: 10,\n paddingRight: 50,\n alignItems: \"center\",\n\n \"&:hover .item-icon-wrapper\": {\n display: \"flex\",\n },\n },\n itemIconsWrapperActive: {\n border: \"1px solid rgba(0,0,0, 1)\",\n },\n itemIconWrapepr: {\n position: \"absolute\",\n right: 85,\n display: \"none\",\n },\n\n questionInput: {\n outline: \"none\",\n border: \"none\",\n width: \"100%\",\n background: \"unset\",\n height: 200,\n },\n\n disableTextArea: {\n // resize: 'none',\n // overflow: 'hidden',\n height: \"unset\",\n },\n\n updateIconWrapper: {\n width: 81,\n height: 50,\n },\n\n updateButton: {\n width: 81,\n height: 41,\n background: \"#3ea8ad\",\n color: \"white\",\n borderRadius: 5,\n border: \"unset\",\n cursor: \"pointer\",\n },\n}));\n\nexport default function QuestionBank() {\n const classes = useStyles();\n const dispatch = useDispatch();\n const [state, setState] = useState({ itemsToDelete: [] });\n const questionCategories = useSelector(\n (state) => state.course.questionCategories\n );\n console.log(questionCategories);\n const isGenericLoading = useSelector((state) => state.config.isLoading);\n const selectedQuestionCategory = useSelector(\n (state) => state.course.selectedQuestionCategory\n );\n const updateQuestionState = useSelector(\n (state) => state.course.updateQuestion\n );\n const isDataForTheCategory =\n Array.isArray(selectedQuestionCategory?.data?.subCategories) &&\n selectedQuestionCategory?.data?.subCategories?.length > 0;\n const [freeSelectedItems, setFreeSelectedItems] = useState([]);\n const userlist = useSelector((state) => state.course.userlist);\n\n const handleNotifyUsers = () => {\n const formData = new FormData();\n formData.append(\n \"title\",\n `${selectedQuestionCategory.data.name} has updated recently.`\n );\n formData.append(\"body\", \"\");\n formData.append(\"data\", JSON.stringify({}));\n\n for (let i = 0; i < userlist.data.length; i++) {\n console.log(userlist.data[i]._id);\n formData.append(\"userId[]\", userlist.data[i]._id);\n }\n\n dispatch(sendNotificationdRequest(formData));\n };\n\n console.log(userlist.data, \"userlist.data\");\n\n useEffect(() => {\n (async () => {\n if (!userlist.isSccuess) {\n dispatch(getUserListRequest());\n }\n })();\n }, []);\n\n const handleOpenModal = () => {\n dispatch(videoModalRequest(true));\n };\n\n const handleDeleteCategory = (item) => {\n const itemsToDelete = [...state.itemsToDelete];\n itemsToDelete.push(item._id);\n setState({ ...state, itemsToDelete });\n dispatch(\n deleteQuestionCategoryRequest({\n categoryId: item._id,\n parentCategoryId: selectedQuestionCategory.data._id,\n })\n );\n };\n\n const handleEditCategory = (item) => {\n dispatch(setModalDataRequest({ ...item, isQuestionEditing: true }));\n handleOpenModal();\n };\n\n const handleSetPaidContent = () => {\n const payload = {\n data: {\n contentData: freeSelectedItems,\n },\n };\n dispatch(setPaidContentRequest(payload));\n };\n\n const handleSelectCategory = (\n categoryId,\n questions,\n initialCategoryPaidStatus\n ) => {\n let newItems = [...freeSelectedItems],\n categoryExistsIndex;\n\n if (newItems.length > 0) {\n categoryExistsIndex = newItems.findIndex(\n (a) => a.categoryId === categoryId\n );\n }\n\n if (categoryExistsIndex >= 0) {\n newItems[categoryExistsIndex] = {\n free: !newItems[categoryExistsIndex].free,\n categoryId: categoryId,\n childs: questions.map((a) => ({\n questionId: a._id,\n free: !newItems[categoryExistsIndex].free,\n })),\n };\n } else {\n newItems.push({\n categoryId: categoryId,\n free: !initialCategoryPaidStatus || false,\n childs: questions.map((a) => ({\n questionId: a._id,\n free: !initialCategoryPaidStatus || false,\n })),\n });\n }\n setFreeSelectedItems(newItems);\n };\n\n const handleSelectFreeQuestion = (\n categoryId,\n questionId,\n isQuestionSelected,\n numberOfQuestions\n ) => {\n let newItems = [...freeSelectedItems],\n categoryExistsId;\n\n if (newItems.length > 0) {\n categoryExistsId = newItems.findIndex((a) => a.categoryId === categoryId);\n }\n\n if (categoryExistsId >= 0) {\n const isQuestionExistsIndex = newItems[categoryExistsId].childs.findIndex(\n (a) => a.questionId === questionId\n );\n newItems[categoryExistsId].free =\n numberOfQuestions ===\n newItems[categoryExistsId].childs.filter((a) => a.free).length;\n if (isQuestionExistsIndex >= 0) {\n newItems[categoryExistsId].childs[isQuestionExistsIndex].free =\n !isQuestionSelected;\n } else {\n newItems[categoryExistsId].childs = [\n ...newItems[categoryExistsId].childs,\n { questionId: questionId, free: !isQuestionSelected },\n ];\n }\n } else {\n newItems.push({\n categoryId: categoryId,\n free: false,\n childs: [{ questionId: questionId, free: !isQuestionSelected }],\n });\n }\n\n setFreeSelectedItems(newItems);\n };\n\n useEffect(() => {\n setFreeSelectedItems([]);\n if (questionCategories.data.length) {\n handeChangeCategory(questionCategories.data[0]._id);\n }\n }, [questionCategories]);\n\n const GetQustion = ({\n question,\n parentIndex: i,\n item,\n index,\n isQuestionSelected,\n numberOfQuestions,\n }) => {\n const [questionState, setQuestionState] = useState({\n value: question.question,\n disabled: true,\n });\n\n const handleEditQuestion = (item, _id) => {\n setQuestionState({ ...questionState, disabled: false });\n };\n\n const onBlur = () => {\n setQuestionState({ ...questionState, disabled: true });\n };\n\n const onChange = (event) => {\n setQuestionState({ ...questionState, value: event.target.value });\n };\n\n const handleUpdateQuestion = () => {\n dispatch(\n updateQuestionRequest({\n questionId: question._id,\n data: { question: questionState.value },\n })\n );\n onBlur();\n handleNotifyUsers();\n };\n\n return (\n <div\n className={clsx(\n classes.itemIconsWrapper,\n !questionState.disabled && classes.itemIconsWrapperActive\n )}\n >\n <Checkbox\n checked={isQuestionSelected}\n onClick={() =>\n handleSelectFreeQuestion(\n item._id,\n question._id,\n isQuestionSelected,\n numberOfQuestions\n )\n }\n color={\"green\"}\n />\n <div\n key={String(index + i)}\n className={classes.videoWrapper}\n style={index === 0 ? { marginTop: 0 } : {}}\n >\n <div className={classes.questionNo}>{index + 1}.</div>\n <textarea\n className={clsx(\n classes.questionInput,\n questionState.disabled && classes.disableTextArea\n )}\n value={questionState.value}\n disabled={questionState.disabled}\n onChange={onChange}\n />\n </div>\n\n <div className={classes.itemIconWrapepr + \" item-icon-wrapper\"}>\n {questionState.disabled && !updateQuestionState.isLoading && (\n <CreateIcon\n className={classes.icon}\n fontSize=\"small\"\n onClick={() => handleEditQuestion(item, question._id)}\n />\n )}\n {!questionState.disabled && !updateQuestionState.isLoading && (\n <div\n onClick={handleUpdateQuestion}\n className={classes.updateIconWrapper}\n >\n <button className={classes.updateButton}>Update</button>\n </div>\n )}\n {updateQuestionState.isLoading &&\n updateQuestionState.data.questionId === question._id && (\n <Loader className={classes.icon} variant=\"small\" />\n )}\n {/* {!updateQuestionState.isLoading && <DeleteIcon className={classes.icon} fontSize='small' onClick={() => handleDeleteCategory(item)} />} */}\n </div>\n </div>\n );\n };\n\n const renderQuestionBank = () => {\n return (\n <>\n {isDataForTheCategory ? (\n selectedQuestionCategory?.data?.subCategories?.map((item, i) => {\n let isSubcategorySelectedIndex = freeSelectedItems.findIndex(\n (a) => a.categoryId === item._id\n ),\n isSubcategorySelected;\n if (isSubcategorySelectedIndex >= 0) {\n const freeItems = freeSelectedItems[\n isSubcategorySelectedIndex\n ].childs.filter((a) => a.free);\n if (freeItems.length === item.questions.length) {\n isSubcategorySelected = true;\n } else {\n isSubcategorySelected = false;\n }\n } else {\n isSubcategorySelected =\n item?.questions.filter((a) => a.free).length ===\n item?.questions.length;\n }\n return (\n <div\n key={String(i)}\n className={item?.questions?.length > 0 && classes.categoryItem}\n >\n <div className={classes.categoryName}>\n <Checkbox\n checked={isSubcategorySelected}\n onClick={() =>\n handleSelectCategory(\n item._id,\n item?.questions,\n isSubcategorySelected\n )\n }\n color={\"green\"}\n />\n <div>\n {i + 1}. {item.name}\n </div>\n <div className={classes.iconsWrapper + \" icon-wrapper\"}>\n <CreateIcon\n className={classes.icon}\n fontSize=\"small\"\n onClick={() => handleEditCategory(item)}\n />\n {state.itemsToDelete.includes(item._id) ? (\n <Loader className={classes.icon} variant=\"small\" />\n ) : (\n <DeleteIcon\n className={classes.icon}\n fontSize=\"small\"\n onClick={() => handleDeleteCategory(item)}\n />\n )}\n </div>\n </div>\n {item?.questions?.length > 0 &&\n item?.questions.map((question, index) => {\n let isQuestionSelected;\n if (isSubcategorySelectedIndex >= 0) {\n const selectedQuestionIndex = freeSelectedItems[\n isSubcategorySelectedIndex\n ].childs.findIndex((a) => a.questionId === question._id);\n if (selectedQuestionIndex >= 0) {\n isQuestionSelected =\n freeSelectedItems[isSubcategorySelectedIndex].childs[\n selectedQuestionIndex\n ].free;\n } else {\n isQuestionSelected = question.free || false;\n }\n } else {\n isQuestionSelected = question.free || false;\n }\n return (\n <GetQustion\n isQuestionSelected={isQuestionSelected}\n numberOfQuestions={item?.questions?.length}\n question={question}\n parentIndex={i}\n item={item}\n index={index}\n />\n );\n })}\n </div>\n );\n })\n ) : (\n <div className={classes.noDataText}>\n No data avaialable for this category\n </div>\n )}\n </>\n );\n };\n\n const handeChangeCategory = (_id) => {\n dispatch(selectQuestionCategoryRequest({ _id }));\n };\n\n return (\n <div className={classes.root}>\n <div className={classes.titleWrapper}>\n <div className={classes.playlistTitle}>Content</div>\n </div>\n {questionCategories.isSuccess && (\n <MultipleSelect\n name=\"categoryId\"\n onSelect={handeChangeCategory}\n nameKey={\"name\"}\n returnKey=\"_id\"\n defaultSelect={true}\n multiple={false}\n list={questionCategories.data}\n />\n )}\n <AddQuestionModal />\n {questionCategories.isSuccess && renderQuestionBank()}\n {questionCategories.isLoading && <Loader variant=\"big\" />}\n {questionCategories.isError && (\n <Error message={questionCategories.message} />\n )}\n <Fab\n size=\"small\"\n onClick={handleOpenModal}\n color=\"secondary\"\n aria-label=\"add\"\n className={classes.fab}\n >\n <AddIcon />\n </Fab>\n {freeSelectedItems.length > 0 && (\n <Fab\n size=\"small\"\n onClick={handleSetPaidContent}\n color=\"secondary\"\n aria-label=\"add\"\n className={classes.update}\n >\n {isGenericLoading ? (\n <Loader color={\"#fff\"} style={{ color: \"#fff\" }} />\n ) : (\n <UpdateIcon />\n )}\n </Fab>\n )}\n </div>\n );\n}\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport MultipleSelect from \"./Select\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n}));\n\nconst list = [\n { name: \"Monthly Q&A\", videoBankType: \"monthlyQa\" },\n { name: \"Master Class\", videoBankType: \"masterClass\" },\n // { name: 'Video Bank', videoBankType: 'videoBank' },\n // { name: 'Key Concepts', videoBankType: 'keyConcept' },\n // { name: 'Actionable Insights', videoBankType: 'actionableInsights' },\n];\n\nexport default function VideoBankSelectType({ onSelect = () => null, name }) {\n const classes = useStyles();\n\n return (\n <div className={classes.root}>\n <MultipleSelect\n name={name}\n onSelect={onSelect}\n nameKey={\"name\"}\n returnKey={\"videoBankType\"}\n defaultSelect={true}\n defaultSelectIndex={0}\n multiple={false}\n invokeOnSelectOnInitialisation={false}\n list={list}\n // disabled={usersSubscription.isLoading}\n />\n </div>\n );\n}\n","import React, { useState } from \"react\";\nimport CommonModal from \"./CommonModal\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { videoModalRequest, addItemToVideobankRequest } from \"../redux/actions\";\nimport Loader from \"./Loader\";\nimport validator from \"../utils/validation\";\nimport MultipleSelect from \"./Select\";\nimport ErrorMessage from \"./ErrorMessage\";\nimport VideoBankSelectType from \"./VideoBankSelectType\";\n\nconst useStyles = makeStyles((theme) => ({\n modalHeader: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n padding: theme.spacing(2),\n borderBottom: \"1px solid rgba(0,0,0, 0.2)\",\n },\n closeIcon: {\n cursor: \"pointer\",\n },\n content: {\n flex: 1,\n padding: 30,\n overflowY: \"scroll\",\n },\n footer: {\n padding: theme.spacing(2),\n borderTop: \"1px solid rgba(0,0,0, 0.2)\",\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n },\n button: {\n outline: \"none\",\n border: \"none\",\n background: \"#065fd4\",\n color: \"#fff\",\n width: 70,\n height: 40,\n cursor: \"pointer\",\n },\n selectWrapper: {\n display: \"flex\",\n alignItems: \"center\",\n },\n videoBankTypeWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n marginTop: 20,\n },\n}));\n\nconst initialState = {\n videoIds: [],\n errors: {},\n videoBankType: \"monthlyQa\",\n};\n\nexport default function AddVideoBankModal() {\n const classes = useStyles();\n const dispatch = useDispatch();\n const createQuestion = useSelector((state) => state.course.createQuestion);\n const isLoading = useSelector((state) => state.config.isLoading);\n const [state, setState] = useState(initialState);\n const videos = useSelector((state) => state.course.videos);\n\n const handleClose = () => {\n dispatch(videoModalRequest(false));\n handleReset();\n };\n\n const handleAddToVideobank = () => {\n const errors = validator(state);\n setState({ ...state, errors });\n if (Object.keys(errors).length) {\n //do something\n return;\n }\n const { videoIds, videoBankType } = state;\n dispatch(\n addItemToVideobankRequest({\n data: { video: videoIds, bankType: videoBankType },\n })\n );\n };\n\n const handleChange = (value, name) => {\n setState({ ...state, [name]: value });\n };\n\n const handleReset = () => {\n setState(initialState);\n };\n\n return (\n <CommonModal onClose={handleReset} style={{ height: \"50vh\" }}>\n <div className={classes.modalHeader}>\n <span>Add to Video Bank</span>\n <CloseIcon onClick={handleClose} className={classes.closeIcon} />\n </div>\n <div className={classes.content}>\n <div className={classes.selectWrapper}>\n <div className={classes.lable}>Videos:</div>\n <MultipleSelect\n isToUpdate={false}\n // selectedKeys={state.videos}\n type=\"video\"\n multiple={true}\n nameKey=\"title\"\n name=\"videoIds\"\n onSelect={handleChange}\n list={videos.data}\n />\n </div>\n <ErrorMessage error={state?.errors?.videoIds} />\n <div className={classes.videoBankTypeWrapper}>\n Video Bank Type:\n <VideoBankSelectType onSelect={handleChange} name=\"videoBankType\" />\n </div>\n </div>\n <div className={classes.footer}>\n <button\n disabled={createQuestion.isLoading}\n onClick={handleAddToVideobank}\n className={classes.button}\n >\n {isLoading ? <Loader style={{ color: \"#fff\" }} /> : \"ADD\"}\n </button>\n </div>\n </CommonModal>\n );\n}\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport Fab from \"@material-ui/core/Fab\";\nimport AddIcon from \"@material-ui/icons/Add\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n getVideoBankRequest,\n deleteVideobankRequest,\n videoModalRequest,\n getVideoRequest,\n getKeyConceptDataRequest,\n postKeyConceptDataRequest,\n deleteKeyConceptDataRequest,\n patchKeyConceptDataRequest,\n patchOrderKeyConceptDataRequest,\n uploadVideoRequest,\n setModalDataRequest,\n patchVideoBankDataRequest,\n patchOrderVideoBankDataRequest,\n updateVideoRequest,\n} from \"../redux/actions\";\nimport Loader from \"../Components/Loader\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport Error from \"../Components/Error\";\nimport PdfViewer from \"../Components/PdfViewer\";\nimport VideoBankSelectType from \"../Components/VideoBankSelectType\";\nimport { DragDropContext, Draggable, Droppable } from \"react-beautiful-dnd\";\n\nimport CarouselItem from \"../Components/CarouselItem\";\nimport FileUploader from \"../Components/VideoUploader\";\nimport AddVideoBankModal from \"../Components/AddQuestionBankModal\";\nimport MultipleSelect from \"../Components/Select\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n padding: 10,\n [theme.breakpoints.down(\"sm\")]: {\n padding: 0,\n },\n },\n fab: {\n position: \"fixed\",\n bottom: theme.spacing(5),\n right: theme.spacing(5),\n background: \"#3ea8ad\",\n \"&:hover\": {\n background: \"#3ea8ad\",\n },\n },\n videoWrapper: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n marginTop: \"1rem\",\n [theme.breakpoints.down(\"sm\")]: {},\n },\n subtitle: {\n fontSize: \"1.1rem\",\n },\n videoDetailsWrapper: {\n marginLeft: \"1rem\",\n [theme.breakpoints.down(\"sm\")]: {},\n width: \"50%\",\n },\n titleWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n marginBottom: 20,\n },\n playlistTitle: {\n fontWeight: \"bold\",\n fontSize: \"1.2rem\",\n },\n deleteIcon: {\n cursor: \"pointer\",\n },\n contentWrapper: {\n display: \"flex\",\n // justifyContent: \"center\",\n alignItems: \"center\",\n width: \"95%\",\n },\n pdfIcon: {\n width: 100,\n },\n pdfIconWrapper: {\n minWidth: 250,\n },\n keyConceptTypeWrapper: {},\n emptyContent: {\n textAlign: \"center\",\n marginTop: \"20vh\",\n },\n videoBankTypeWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n marginTop: 20,\n },\n}));\n\nconst list = [\n { name: \"Monthly Q&A\", videoBankType: \"monthlyQa\" },\n { name: \"Master Class\", videoBankType: \"masterClass\" },\n // { name: 'Video Bank', videoBankType: 'videoBank' },\n // { name: 'Key Concepts', videoBankType: 'keyConcept' },\n // { name: 'Actionable Insights', videoBankType: 'actionableInsights' },\n];\nexport default function Key() {\n const classes = useStyles();\n const dispatch = useDispatch();\n const videobank = useSelector((state) => state.course.videobank);\n // const [itemToDelete, setItemToDelete] = useState(\"\");\n // const videos = useSelector((state) => state.course.videos);\n // const isLoading = useSelector((state) => state.config.isLoading);\n const [state, setState] = useState({\n videoBankType: \"monthlyQa\",\n });\n const [videoList, setVideoList] = useState([]);\n useMemo(() => {\n if (\n videobank.data &&\n Array.isArray(videobank.data) &&\n videobank.data.length > 0\n ) {\n const sortedData = videobank.data.sort(\n (a, b) => a.type_sort_index - b.type_sort_index\n );\n setVideoList(sortedData);\n }\n }, [videobank]);\n useEffect(() => {\n // if (!videos.isSuccess) {\n // dispatch(getVideoRequest());\n // }\n dispatch(getVideoBankRequest());\n }, []);\n\n const handleUploadVideoBank = (formData) => {\n console.log(\"uploading video bank\", formData);\n dispatch(uploadVideoRequest({ formData, uploadType: state.videoBankType }));\n };\n\n const handleUpdateVideoBank = (data) => {\n console.log(\"updating video bank\", data);\n dispatch(updateVideoRequest(data));\n };\n\n const handleEditVideo = (item) => {\n dispatch(setModalDataRequest(item));\n dispatch(videoModalRequest(true));\n };\n\n const handleDeleteVideo = (id) => {\n dispatch(\n deleteVideobankRequest({ _id: id, videoBankType: state.videoBankType })\n );\n // console.log(\"Delete Video\", id);\n };\n\n const handleChangeVideoVisibility = (data) => {\n const newData = { appearInCarousel: !data.appearInCarousel };\n\n dispatch(\n patchVideoBankDataRequest({\n payload: newData,\n _id: data._id,\n typeUpdate: \"visibility\",\n })\n );\n };\n const handleDragEnd = (result) => {\n const { source, destination } = result;\n\n // If dropped outside the list\n if (!destination) return;\n\n if (destination.index === source.index) return;\n\n // Reorder the items\n const reorderedItems = videoList.filter(\n (item) => item.type === state.videoBankType\n );\n const [movedItem] = reorderedItems.splice(source.index, 1);\n reorderedItems.splice(destination.index, 0, movedItem);\n const newOrder = reorderedItems.map((item, index) => {\n return { _id: item._id, type_sort_index: index };\n });\n\n dispatch(\n patchOrderVideoBankDataRequest({\n type: state.videoBankType,\n order: newOrder,\n })\n );\n // setVideoList(reorderedItems);\n };\n const renderVideoBank = (data) => {\n const list = data.filter((a) => a.type === state.videoBankType);\n if (!list.length) {\n return (\n <div className={classes.emptyContent}>\n No content available for the selected category.\n </div>\n );\n }\n\n return (\n <DragDropContext onDragEnd={handleDragEnd}>\n <Droppable droppableId={`video-bank-dropable`}>\n {(provided) => {\n return (\n <div ref={provided.innerRef} {...provided.droppableProps}>\n {list.map((item, index) => {\n return (\n <Draggable\n key={item?._id}\n draggableId={item?._id}\n index={index}\n >\n {(provided) => (\n <div\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n className={classes.videoWrapper}\n style={{\n ...provided.draggableProps.style,\n marginTop: index === 0 ? 0 : \"15px\",\n }}\n >\n <CarouselItem\n key={index}\n data={item}\n handleEdit={handleEditVideo}\n handleDelete={handleDeleteVideo}\n // handleChangeVisibility={handleChangeVideoVisibility}\n showEdit\n />\n </div>\n )}\n </Draggable>\n );\n })}\n {provided.placeholder}\n </div>\n );\n }}\n </Droppable>\n </DragDropContext>\n );\n };\n\n const handleOpenModal = () => {\n dispatch(videoModalRequest(true));\n };\n\n const handleChange = (value, name) => {\n setState({ ...state, [name]: value });\n console.log(\"value\", value);\n console.log(\"name\", name);\n console.log(\"state\", state);\n };\n\n return (\n <div className={classes.root}>\n <FileUploader\n handleUpload={handleUploadVideoBank}\n handleEdit={handleUpdateVideoBank}\n />\n <div className={classes.titleWrapper}>\n <div className={classes.playlistTitle}>Video Bank</div>\n </div>\n {videobank.isSuccess && (\n <div className={classes.videoBankTypeWrapper}>\n <VideoBankSelectType onSelect={handleChange} name=\"videoBankType\" />\n </div>\n )}\n {videobank.isLoading && <Loader variant=\"big\" />}\n {videobank.isSuccess && renderVideoBank(videoList)}\n {videobank.isError && <Error message={videobank.message} />}\n <Fab\n size=\"small\"\n onClick={handleOpenModal}\n color=\"secondary\"\n aria-label=\"add\"\n className={classes.fab}\n >\n <AddIcon />\n </Fab>\n </div>\n );\n}\n","import React, { useState, useEffect, useImperativeHandle } from \"react\";\nimport CommonModal from \"./CommonModal\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n videoModalRequest,\n updateCarouselDataRequest,\n createCarouselDataRequest,\n} from \"../redux/actions\";\nimport GenericTextArea from \"./GenericTextArea\";\nimport Loader from \"./Loader\";\nimport validator from \"../utils/validation\";\nimport MultipleSelect from \"./Select\";\nimport AddPhotoAlternateIcon from \"@material-ui/icons/AddPhotoAlternate\";\nimport ErrorMessage from \"./ErrorMessage\";\nimport Checkbox from \"@material-ui/core/Checkbox\";\nimport { toast } from \"react-toastify\";\n\nconst useStyles = makeStyles((theme) => ({\n modalHeader: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n padding: theme.spacing(2),\n borderBottom: \"1px solid rgba(0,0,0, 0.2)\",\n },\n closeIcon: {\n cursor: \"pointer\",\n },\n content: {\n flex: 1,\n padding: 30,\n overflowY: \"scroll\",\n },\n footer: {\n padding: theme.spacing(2),\n borderTop: \"1px solid rgba(0,0,0, 0.2)\",\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n },\n button: {\n outline: \"none\",\n border: \"none\",\n background: \"#065fd4\",\n color: \"#fff\",\n width: 70,\n height: 40,\n cursor: \"pointer\",\n },\n inputsWrapper: {\n width: \"55%\",\n [theme.breakpoints.down(\"sm\")]: {\n width: \"100%\",\n },\n },\n divider: {\n // marginBottom: 10\n },\n selectWrapper: {\n // display: 'flex',\n // justifyContent: 'center',\n // alignItems: 'center',\n marginLeft: -theme.spacing(1),\n },\n thumbnail: {\n width: \"100%\",\n height: \"100%\",\n position: \"absolute\",\n zIndex: 10,\n left: 0,\n cursor: \"pointer\",\n background: \"#fff\",\n objectFit: \"contain\",\n },\n addThumbnail: {\n border: \"1px dotted rgba(0,0,0,0.2)\",\n position: \"relative\",\n borderRadius: 5,\n display: \"flex\",\n width: \"60%\",\n // padding: \"2rem\",\n height: \"200px\",\n maxHeight: \"500px\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n cursor: \"pointer\",\n // margin: \"20px 0px\",\n [theme.breakpoints.down(\"sm\")]: {\n width: \"55%\",\n },\n },\n input: {\n width: \"100%\",\n height: \"100%\",\n position: \"absolute\",\n zIndex: 100,\n left: 0,\n opacity: 0,\n cursor: \"pointer\",\n },\n imageUploadWrapper: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n marginTop: theme.spacing(8),\n flexDirection: \"column\",\n },\n checkboxWrapperCarousel: {\n display: \"flex\",\n alignItems: \"center\",\n marginTop: 10,\n },\n}));\n\nconst initialState = {\n errors: {},\n type: \"image\",\n // title: '',\n // subtitle: '',\n // description: '',\n // content: '',\n image: \"\", // local: file of uploaded image, api: image url\n url: \"\", // local: uploaded image url, api: image url\n // videoId: '',\n // file: \"\",\n appearInCarousel: true,\n caption: \"\",\n};\n\n// const selectionType = [\n// {name: 'Video', type: 'video'},\n// {name: 'Image', type: 'image'},\n// {name: 'Text', type: 'text'},\n// ]\n\nconst UploadImageModal = ({ handleUpload }) => {\n const classes = useStyles();\n const dispatch = useDispatch();\n // const createQuestion = useSelector((state) => state.course.createQuestion);\n const isLoading = useSelector((state) => state.config.isLoading);\n // const videos = useSelector((state) => state.course.videos);\n const [state, setState] = useState(initialState);\n const modalData = useSelector((state) => state.config.modalData);\n const isToUpdate = Object.keys(modalData).length > 0;\n\n const handleClose = () => {\n dispatch(videoModalRequest(false));\n handleReset();\n };\n\n useEffect(() => {\n return () => {\n handleClose();\n };\n }, []);\n\n const handleUploadImage = () => {\n let statedata = { ...state };\n // if(state.type === 'text'){\n // delete statedata.url\n // delete statedata.image\n // delete statedata.videoId\n // }\n // if(state.type === 'video'){\n // statedata = { videoId: statedata.videoId }\n // }\n\n if (state.type === \"image\") {\n statedata = { url: statedata.url };\n }\n const errors = validator(statedata);\n // if(state.type === 'text' && isToUpdate){\n // delete errors.file\n // delete errors.videoId\n // }\n setState({ ...state, errors });\n if (Object.keys(errors).length) {\n //do something\n toast.error(errors[Object.keys(errors)[0]], {\n position: \"top-center\",\n autoClose: 5000,\n hideProgressBar: true,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n theme: \"colored\",\n });\n return;\n }\n let formdata = new FormData();\n // formdata.append(\"type\", state.type);\n formdata.append(\"appearInCarousel\", state.appearInCarousel);\n // if(state.type === 'text'){\n // formdata.append('title', state.title)\n // formdata.append('subTitle', state.subtitle)\n // formdata.append('description', state.description)\n // formdata.append('content', state.content)\n // }\n // if(state.type === 'video'){\n // formdata.append('videoId', state.videoId)\n // }\n if (state.type === \"image\") {\n formdata.append(\"image\", state.image);\n formdata.append(\"caption\", state.caption);\n }\n console.log(state);\n\n // image: only upload new image\n handleUpload({ formdata });\n };\n\n useEffect(() => {\n if (isToUpdate) {\n // if(modalData.type === 'video'){\n // setState({\n // ...state,\n // type: modalData.type,\n // })\n // }\n // else if(modalData.type === 'text'){\n // setState({\n // ...state,\n // type: modalData.type,\n // title: modalData.title,\n // subtitle: modalData.subTitle,\n // description: modalData.description,\n // content: modalData.content || '',\n // })\n // }\n // else\n\n if (modalData.type === \"image\") {\n setState({\n ...state,\n type: modalData.type,\n url: modalData.image,\n caption: modalData.caption || \"\",\n });\n }\n }\n }, [isToUpdate]);\n\n const handleChange = (value, name) => {\n setState({ ...state, [name]: value });\n };\n\n const handleReset = () => {\n setState(initialState);\n };\n\n function onChange(event, name) {\n var file = event.target.files[0];\n var reader = new FileReader();\n reader.onload = function (event) {\n setState({ ...state, [name]: file, url: event.target.result });\n };\n\n file && reader.readAsDataURL(file);\n }\n\n return (\n <CommonModal onClose={handleReset}>\n <div className={classes.modalHeader}>\n <span>Upload Image</span>\n <CloseIcon onClick={handleClose} className={classes.closeIcon} />\n </div>\n <div className={classes.content}>\n {/* <div className={classes.selectWrapper} >\n <MultipleSelect\n isToUpdate={isToUpdate}\n selectedKeys={state.type}\n // type='video'\n multiple={false}\n nameKey='name'\n name='type'\n onSelect={handleChange}\n list={selectionType}\n returnKey='type'\n defaultSelect={true}\n />\n <div className={classes.checkboxWrapperCarousel} >\n <Checkbox\n checked={state.appearInCarousel}\n color=\"primary\"\n inputProps={{ 'aria-label': 'secondary checkbox' }}\n onChange={(e)=> handleChange(!state.appearInCarousel, 'appearInCarousel')}\n />\n <div className={classes.sectionTitle} >Add to main Carousel</div>\n </div>\n </div> */}\n <div className={classes.divider} />\n {/* {state.type == 'text' &&\n <div className={classes.inputsWrapper} >\n <GenericTextArea\n isBigger={false}\n placeholder='title here...'\n handleChange={handleChange}\n name='title'\n value={state.title}\n error={state?.errors?.title}\n />\n <GenericTextArea\n isBigger={false}\n placeholder='subtitle here...'\n handleChange={handleChange}\n name='subtitle'\n value={state.subtitle}\n error={state?.errors?.subtitle}\n />\n <GenericTextArea\n isBigger={true}\n placeholder='description here...'\n handleChange={handleChange}\n name='description'\n value={state.description}\n error={state?.errors?.description}\n />\n <GenericTextArea\n isBigger={true}\n style={{height: '22vh'}}\n placeholder='content here...'\n handleChange={handleChange}\n name='content'\n value={state.content}\n error={state?.errors?.content}\n />\n </div>} */}\n {/* {state.type === \"image\" && ( */}\n <div className={classes.imageUploadWrapper}>\n <div className={classes.addThumbnail}>\n {state.url !== \"\" && (\n <img\n className={classes.thumbnail}\n src={state.url}\n alt=\"Uploaded Img\"\n />\n )}\n <input\n onChange={(e) => onChange(e, \"image\")}\n accept=\"image/*\"\n className={classes.input}\n type=\"file\"\n capture\n />\n <AddPhotoAlternateIcon />\n <div className={classes.uploadThumbnailText}>Upload Image</div>\n </div>\n <ErrorMessage error={state?.errors?.file} />\n <GenericTextArea\n value={state.caption}\n name={\"caption\"}\n handleChange={handleChange}\n style={{ width: \"60%\", marginTop: 10 }}\n isBigger={true}\n placeholder={\"Image caption...\"}\n />\n </div>\n {/* )} */}\n {/* {state.type === 'video' &&\n <div className={classes.imageUploadWrapper} >\n Select Video:\n <MultipleSelect\n isToUpdate={false}\n // selectedKeys={state.videos}\n type='video'\n multiple={false}\n nameKey='title'\n name='videoId'\n onSelect={handleChange}\n list={videos.data}\n />\n <ErrorMessage error={state?.errors?.videoId} />\n </div>} */}\n </div>\n <div className={classes.footer}>\n <button\n // disabled={createQuestion.isLoading}\n onClick={handleUploadImage}\n className={classes.button}\n >\n {isLoading ? <Loader style={{ color: \"#fff\" }} /> : \"UPLOAD\"}\n </button>\n </div>\n </CommonModal>\n );\n};\nexport default UploadImageModal;\n","import React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport {\n getActionableInsightDataRequest,\n videoModalRequest,\n // getVideoRequest,\n deleteCarouselDataRequest,\n setModalDataRequest,\n postActionableInsightDataRequest,\n deleteActionableInsightDataRequest,\n patchActionableInsightDataRequest,\n patchOrderActionableInsightDataRequest,\n} from \"../redux/actions\";\n\nimport Fab from \"@material-ui/core/Fab\";\nimport AddIcon from \"@material-ui/icons/Add\";\nimport UploadImageModal from \"../Components/UploadImageModal\";\nimport Loader from \"../Components/Loader\";\nimport Error from \"../Components/Error\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport CarouselItem from \"../Components/CarouselItem\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n padding: 10,\n },\n titleWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n marginBottom: 20,\n },\n playlistTitle: {\n fontWeight: \"bold\",\n fontSize: \"1.2rem\",\n },\n itemWrapper: {\n marginBottom: 10,\n boxShadow:\n \"0px 2px 1px -1px rgb(0 0 0 / 10%), 0px 1px 1px 0px rgb(0 0 0 / -1%), 0px 1px 0px 0px rgb(0 0 0 / 1%)\",\n background: \"#fff\",\n },\n image: {\n width: \"100%\",\n height: \"100%\",\n objectFit: \"contain\",\n },\n wrapper: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n paddingRight: 20,\n },\n deleteIcon: {\n cursor: \"pointer\",\n },\n createIcon: {\n cursor: \"pointer\",\n marginLeft: 10,\n },\n iconsWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n width: \"5%\",\n },\n textContentWrapper: {\n paddingRight: 20,\n },\n title: {\n fontSize: \"1.2rem\",\n marginBottom: 5,\n },\n subtitle: {\n fontSize: \"1.1rem\",\n marginBottom: 5,\n },\n description: {\n fontSize: \".95rem\",\n marginBottom: 5,\n },\n fab: {\n position: \"fixed\",\n bottom: theme.spacing(5),\n right: theme.spacing(5),\n background: \"#3ea8ad\",\n \"&:hover\": {\n background: \"#3ea8ad\",\n },\n },\n}));\n\nexport default function ActionableInsight() {\n const classes = useStyles();\n const dispatch = useDispatch();\n const actionableInsight = useSelector(\n (state) => state.course.actionableInsight\n );\n\n const [imageList, setImageList] = useState([]);\n useMemo(() => {\n if (\n actionableInsight.data &&\n Array.isArray(actionableInsight.data) &&\n actionableInsight.data.length > 0\n ) {\n setImageList(actionableInsight.data);\n }\n }, [actionableInsight]);\n // const [itemToDelete, setItemToDelete] = useState(\"\");\n // const isLoading = useSelector((state) => state.config.isLoading);\n\n useEffect(() => {\n // if (!videos.isSuccess) {\n // dispatch(getVideoRequest());\n // }\n dispatch(getActionableInsightDataRequest());\n }, []);\n\n const handleOpenModal = () => {\n dispatch(videoModalRequest(true));\n };\n\n // const handleEdit = (item) => {\n // dispatch(setModalDataRequest(item));\n // handleOpenModal();\n // };\n\n const handleUploadActionableInsight = (data) => {\n // console.log(data);\n dispatch(postActionableInsightDataRequest(data.formdata));\n };\n\n const handleDeleteImage = (id) => {\n dispatch(deleteActionableInsightDataRequest({ _id: id }));\n // console.log(\"Delete image\", id);\n };\n\n const handleChangeImageVisibility = (data) => {\n const newData = { _id: data._id, appearInCarousel: !data.appearInCarousel };\n dispatch(patchActionableInsightDataRequest(newData));\n };\n\n const handleDragEnd = (result) => {\n const { source, destination } = result;\n\n // If dropped outside the list\n if (!destination) return;\n\n if (destination.index === source.index) return;\n\n // Reorder the items\n const reorderedItems = [...imageList];\n const [movedItem] = reorderedItems.splice(source.index, 1);\n reorderedItems.splice(destination.index, 0, movedItem);\n const newOrder = reorderedItems.map((item, index) => {\n return { _id: item._id, sort_index: index };\n });\n\n dispatch(patchOrderActionableInsightDataRequest({ order: newOrder }));\n setImageList(reorderedItems);\n };\n\n return (\n <div className={classes.root}>\n <div className={classes.titleWrapper}>\n <div className={classes.playlistTitle}>Actionable Insights</div>\n </div>\n <UploadImageModal handleUpload={handleUploadActionableInsight} />\n {actionableInsight.isLoading && <Loader variant=\"big\" />}\n {actionableInsight.isError && (\n <Error message={actionableInsight.message} />\n )}\n {actionableInsight.isSuccess && imageList.length > 0 && (\n <>\n <DragDropContext onDragEnd={handleDragEnd}>\n <Droppable droppableId={`actionable-insight-dropable`}>\n {(provided) => {\n return (\n <div ref={provided.innerRef} {...provided.droppableProps}>\n {imageList.map((item, index) => {\n return (\n <Draggable\n key={item._id}\n draggableId={item._id}\n index={index}\n >\n {(provided) => (\n <div\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n style={{\n ...provided.draggableProps.style,\n }}\n >\n <CarouselItem\n key={index}\n data={item}\n handleDelete={handleDeleteImage}\n handleChangeVisibility={\n handleChangeImageVisibility\n }\n />\n </div>\n )}\n </Draggable>\n );\n })}\n {provided.placeholder}\n </div>\n );\n }}\n </Droppable>\n </DragDropContext>\n </>\n )}\n\n <Fab\n size=\"small\"\n onClick={handleOpenModal}\n color=\"secondary\"\n aria-label=\"add\"\n className={classes.fab}\n >\n <AddIcon />\n </Fab>\n </div>\n );\n}\n","import React from 'react';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\n\nexport default function AlertDialog({header,body,primaryText,secondaryText,onPrimaryBtnClick,onSecondaryBtnClick,open,handleClose}) {\n\n return (\n <div>\n \n <Dialog\n open={open}\n onClose={handleClose}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n <DialogTitle id=\"alert-dialog-title\">{header}</DialogTitle>\n { body && <DialogContent>\n <DialogContentText id=\"alert-dialog-description\">\n {body}\n </DialogContentText>\n </DialogContent>}\n <DialogActions>\n <Button onClick={onPrimaryBtnClick} color=\"primary\">\n {primaryText}\n </Button>\n <Button onClick={onSecondaryBtnClick} color=\"primary\" autoFocus>\n {secondaryText}\n </Button>\n </DialogActions>\n </Dialog>\n </div>\n );\n}\n","export const BASE_URL=process.env.REACT_APP_API_BASE_URL;","import axios from \"axios\";\nimport { BASE_URL } from \"../config\";\n\nexport default function fireAjax(method, URL, headers, data) {\n const url = BASE_URL + URL;\n let config = {};\n if (headers !== undefined && headers !== \"\") {\n config = {\n headers,\n };\n } else {\n config = {\n headers: {\n \"Content-Type\": \"application/json\",\n loginType: \"admin\",\n },\n };\n }\n if (method === \"GET\") {\n return axios.get(url, config, data);\n } else if (method === \"POST\") {\n return axios.post(url, data, config);\n } else if (method === \"PUT\") {\n return axios.put(url, data, config);\n } else if (method === \"DELETE\") {\n return axios.delete(url, data, config);\n } else if (method === \"PATCH\") {\n return axios.patch(url, data, config);\n }\n}\n","import React, { useEffect, useState, useRef } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport GenericTable from \"../Components/Table\";\nimport {\n getUserListRequest,\n updateUserSubscriptionRequest,\n upgradeUserDataRequest,\n upgradeUserPremiumRequest,\n} from \"../redux/actions\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport defaultAvtar from \"../assets/avatar.jpeg\";\nimport Loader from \"../Components/Loader\";\nimport Error from \"../Components/Error\";\nimport moment from \"moment\";\nimport AlertDialog from \"../Components/ActionDialog\";\nimport fireAjax from \"../services\";\nimport { toast } from \"react-toastify\";\nimport Button from \"@material-ui/core/Button\";\nimport TextField from \"@material-ui/core/TextField\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport InputLabel from \"@material-ui/core/InputLabel\";\nimport Select from \"react-select\";\nimport SimpleSelect from \"@material-ui/core/Select\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport { Checkbox } from \"@material-ui/core\";\n\nconst CSVConverter = require(\"papaparse\");\n\nconst list = [\n { label: \"Free\", value: \"free\" },\n { label: \"Premium\", value: \"premium\" },\n];\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n \"&:-webkit-scrollbar\": {\n width: 0,\n background: \"transparent\",\n },\n padding: 10,\n },\n titleWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n marginBottom: 20,\n },\n searchTitle: {\n fontSize: \"1rem\",\n },\n searchFilter: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"16px\",\n alignItems: \"flex-start\",\n marginBottom: 20,\n },\n dateFilter: {\n display: \"flex\",\n gap: \"16px\",\n alignItems: \"flex-start\",\n },\n orderByFilter: {\n display: \"flex\",\n flexDirection: \"row\",\n gap: \"16px\",\n alignItems: \"flex-start\",\n minWidth: 200,\n },\n orderByFilterSelect: {\n minWidth: 200,\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n color: theme.palette.text.secondary,\n },\n playlistTitle: {\n fontWeight: \"bold\",\n fontSize: \"1.2rem\",\n },\n totalRecords: {\n fontWeight: \"bold\",\n fontSize: \"1rem\",\n },\n\n newPlaylistTitle: {\n color: \"#065fd4\",\n fontWeight: \"500\",\n cursor: \"pointer\",\n },\n avtar: {\n width: 60,\n height: 60,\n borderRadius: 30,\n },\n fab: {\n position: \"fixed\",\n bottom: theme.spacing(5),\n right: theme.spacing(5),\n background: \"#3ea8ad\",\n \"&:hover\": {\n background: \"#3ea8ad\",\n },\n },\n}));\n\nexport default function Users() {\n const [openDeleteUserListConfirmDialog, setOpenDeleteUserListConfirmDialog] =\n useState(false);\n const [\n openDowngradeUserListConfirmDialog,\n setOpenDowngradeUserListConfirmDialog,\n ] = useState(false);\n const [isMounted, setIsMounted] = useState(false);\n const [sortedUserData, setSortedUserData] = useState([]);\n const fileInputRef = useRef(null);\n const orderBy = useRef(\"\");\n const searchInput = useRef(\"\");\n // const createdAtFrom = useRef(moment().subtract(7, \"d\").format(\"YYYY-MM-DD\"));\n const [createdAtFrom, setCreatedAtFrom] = useState(\n moment().subtract(7, \"d\").format(\"YYYY-MM-DD\")\n );\n const [createdAtTo, setCreatedAtTo] = useState(moment().format(\"YYYY-MM-DD\"));\n const sortOrder = useRef(\"asc\");\n const subscriptionRefs = useRef([]);\n const [userSelectedList, setUserSelectedList] = useState([]);\n const userTableRef = useRef();\n\n const classes = useStyles();\n const dispatch = useDispatch();\n\n const userlist = useSelector((state) => state.course.userlist);\n\n // useEffect(() => {\n // dispatch(getUserListRequest());\n // }, []);\n\n React.useMemo(() => {\n const sortedData =\n userlist.data &&\n Array.isArray(userlist.data) &&\n userlist.data?.sort((a, b) => {\n return 0;\n });\n setSortedUserData(sortedData);\n }, [userlist]);\n\n const capitalizeFirstLetter = (string) => {\n return string.charAt(0).toUpperCase() + string.slice(1);\n };\n\n const getSubType = (item) => {\n if (item.subscription === \"free\") {\n return \"Free\";\n } else {\n return item.sub_type ? capitalizeFirstLetter(item.sub_type) : \"Premium\";\n }\n };\n\n const getSubDate = (item) => {\n if (item.sub_type === \"purchase\") {\n if (item.paypal_subscription_id) {\n return \"Paypal\";\n } else {\n return \"AppStore\";\n }\n } else {\n return item.sub_end_date\n ? moment(item.sub_end_date).format(\"DD/MM/YYYY, kk:mm:ss\")\n : \"-\";\n }\n };\n\n const makeTableData = (rows = []) => {\n if (!rows.length) {\n return [];\n }\n let data = [];\n rows.map((item, index) => {\n let a = {\n profile: (\n <img\n alt=\"profile_image\"\n src={item.profilePicture || defaultAvtar}\n className={classes.avtar}\n />\n ),\n name: item.name,\n profilePicture: item.profilePicture,\n _id: item._id,\n isChecked: userSelectedList.some((user) => user._id === item._id)\n ? true\n : false,\n // checkBox: checkBoxComponent(item),\n email: item.email,\n sub_type: getSubType(item),\n // subscription: editIconComponent(item, index + 1),\n createdAt: moment(item.createdAt).format(\"DD/MM/YYYY, kk:mm:ss\"),\n isBookDownloaded: `${item.isBookDownloaded ? \"Yes\" : \"No\"}`,\n serialNumber: index + 1,\n sub_end_date: getSubDate(item),\n };\n data.push(a);\n });\n return data;\n };\n\n const onClickSearchButton = (evt) => {\n console.log(\"searchInput\", searchInput.current.value);\n console.log(\"createdAtFrom\", createdAtFrom);\n console.log(\"createdAtTo\", createdAtTo);\n dispatch(\n getUserListRequest({\n data: {\n filter: searchInput.current.value,\n createdAtFrom: createdAtFrom,\n createdAtTo: createdAtTo,\n orderBy: orderBy.current.value,\n sortOrder: sortOrder.current.value,\n },\n })\n );\n };\n\n const handleChangeSubscription = (event, userId, index) => {\n if (event.target.value !== undefined) {\n console.log(\"event\", event);\n const payload = { userId: userId, subscription: event.target.value };\n dispatch(updateUserSubscriptionRequest(payload));\n subscriptionRefs.current[index].value = event.target.value;\n }\n };\n\n // const editIconComponent = (data, index) => {\n // return (\n // <Select\n // className=\"basic-single\"\n // value={list.filter(function(option) {\n // return option.value === data.subscription;\n // })}\n // onInputChange={(e) => handleChangeSubscription(e.value, data._id, index)}\n // options={list}\n // isSearchable={false}\n // ref={(ref) => (subscriptionRefs.current[index] = ref)}\n // isDisabled={false}\n // />\n // );\n // };\n\n const editIconComponent = (data, index) => {\n return (\n <FormControl sx={{ m: 1, minWidth: 120 }}>\n <SimpleSelect\n displayEmpty\n ref={(ref) => (subscriptionRefs.current[index] = ref)}\n onChange={(evt) => handleChangeSubscription(evt, data._id, index)}\n defaultValue={data.subscription}\n >\n <MenuItem value={\"free\"}>Free</MenuItem>\n <MenuItem value={\"premium\"}>Premium</MenuItem>\n </SimpleSelect>\n </FormControl>\n );\n };\n\n const handleFileUpload = (event) => {\n CSVConverter.parse(event.target.files[0], {\n header: true,\n skipEmptyLines: true,\n complete: (results) => {\n let upgradeAddresses = [];\n results.data.forEach((value) => {\n let obj = {\n email: value.Email,\n };\n upgradeAddresses.push(obj);\n });\n dispatch(upgradeUserPremiumRequest(upgradeAddresses));\n dispatch(\n upgradeUserDataRequest({\n userList: sortedUserData,\n premiumEmail: upgradeAddresses,\n })\n );\n toast.success(\"Users Upgraded to Premium\", {\n position: \"top-right\",\n autoClose: 2000,\n hideProgressBar: false,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n });\n event.target.value = null;\n },\n });\n };\n\n const handleDeleteAllUsersAction = (value) => {\n if (value.some((user) => user.sub_type.toLowerCase() === \"purchase\")) {\n toast.error(\"You can't delete paying users, please select again!!!\", {\n position: \"top-center\",\n autoClose: 5000,\n hideProgressBar: true,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n theme: \"colored\",\n });\n console.log(userTableRef);\n\n if (userTableRef.current) {\n userTableRef.current.changeItemSelectedList([]);\n }\n setUserSelectedList([]);\n } else {\n setUserSelectedList(value);\n setOpenDeleteUserListConfirmDialog(true);\n }\n };\n\n const onCloseDeleteUserListConfirmDialog = () => {\n setOpenDeleteUserListConfirmDialog(false);\n };\n\n const onSubmitDeleteUserListConfirmDialog = () => {\n setIsMounted(true);\n const apiResponse = fireAjax(\n \"PATCH\",\n \"users/admin/remove-many-users\",\n undefined,\n {\n userIds: userSelectedList.map((user) => user._id),\n }\n );\n apiResponse\n .then((response) => {\n dispatch(\n getUserListRequest({\n data: {\n filter: searchInput.current.value,\n orderBy: orderBy.current.value,\n sortOrder: sortOrder.current.value,\n },\n })\n );\n toast.success(\"Selected Users Deleted Successfully\", {\n position: \"top-center\",\n autoClose: 5000,\n hideProgressBar: true,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n theme: \"colored\",\n });\n })\n .catch((error) => {\n console.log(\"error\", error.response.data.message);\n toast.error(error.response.data.message, {\n position: \"top-center\",\n autoClose: 5000,\n hideProgressBar: true,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n theme: \"colored\",\n });\n })\n .finally(() => {\n setOpenDeleteUserListConfirmDialog(false);\n setIsMounted(false);\n if (userTableRef.current) {\n userTableRef.current.changeItemSelectedList([]);\n }\n setUserSelectedList([]);\n });\n };\n\n const handleDowngradeAllUsersAction = (value) => {\n if (value.some((user) => user.sub_type.toLowerCase() === \"purchase\")) {\n toast.error(\"You can't downgrade paying users, please select again!!!\", {\n position: \"top-center\",\n autoClose: 5000,\n hideProgressBar: true,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n theme: \"colored\",\n });\n\n if (userTableRef.current) {\n userTableRef.current.changeItemSelectedList([]);\n }\n setUserSelectedList([]);\n } else {\n setUserSelectedList(value);\n setOpenDowngradeUserListConfirmDialog(true);\n }\n };\n\n const onCloseDowngradeUserListConfirmDialog = () => {\n setOpenDowngradeUserListConfirmDialog(false);\n };\n\n const onSubmitDowngradeUserListConfirmDialog = () => {\n setIsMounted(true);\n\n const apiResponse = fireAjax(\"PATCH\", \"coupon/downgrade-many\", undefined, {\n userIds: userSelectedList.map((user) => user._id),\n });\n apiResponse\n .then((response) => {\n dispatch(\n getUserListRequest({\n data: {\n filter: searchInput.current.value,\n orderBy: orderBy.current.value,\n sortOrder: sortOrder.current.value,\n },\n })\n );\n toast.success(\"Selected Users Downgraded Successfully\", {\n position: \"top-center\",\n autoClose: 5000,\n hideProgressBar: true,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n theme: \"colored\",\n });\n })\n .catch((error) => {\n console.log(\"error\", error.response.data.message);\n toast.error(error.response.data.message, {\n position: \"top-center\",\n autoClose: 5000,\n hideProgressBar: true,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n theme: \"colored\",\n });\n })\n .finally(() => {\n setOpenDowngradeUserListConfirmDialog(false);\n setUserSelectedList([]);\n setIsMounted(false);\n });\n };\n\n return (\n <div className={classes.root}>\n <AlertDialog\n header={\"Are you sure you want to delete the selected users?\"}\n primaryText={\"No\"}\n secondaryText={\"Yes\"}\n onPrimaryBtnClick={onCloseDeleteUserListConfirmDialog}\n onSecondaryBtnClick={onSubmitDeleteUserListConfirmDialog}\n open={openDeleteUserListConfirmDialog}\n handleClose={onCloseDeleteUserListConfirmDialog}\n />\n <AlertDialog\n header={\n \"Are you sure you want to downgrade the selected users to free?\"\n }\n primaryText={\"No\"}\n secondaryText={\"Yes\"}\n onPrimaryBtnClick={onCloseDowngradeUserListConfirmDialog}\n onSecondaryBtnClick={onSubmitDowngradeUserListConfirmDialog}\n open={openDowngradeUserListConfirmDialog}\n handleClose={onCloseDowngradeUserListConfirmDialog}\n />\n {/* <div className={classes.titleWrapper}>\n <div className={classes.playlistTitle}>User List</div>\n {/* <input\n type=\"file\"\n name=\"file\"\n accept=\".csv\"\n ref={fileInputRef}\n style={{ display: \"none\" }}\n onChange={handleFileUpload}\n />\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={() => fileInputRef.current.click()}\n >\n Upload CSV to upgrade to premium\n </Button>\n </div> */}\n <div className={classes.searchFilter}>\n <TextField\n id=\"standard-basic\"\n label=\"Search by email address or name\"\n fullWidth\n ref={searchInput}\n onChange={(evt) => (searchInput.current.value = evt.target.value)}\n />\n <div className={classes.dateFilter}>\n <TextField\n id=\"createdAtFromId\"\n label=\"Created from\"\n type=\"date\"\n defaultValue={createdAtFrom}\n InputLabelProps={{\n shrink: true,\n }}\n onChange={(evt) => setCreatedAtFrom(evt.target.value)}\n />\n <TextField\n id=\"createdAtToId\"\n label=\"Created till\"\n type=\"date\"\n defaultValue={createdAtTo}\n InputLabelProps={{\n shrink: true,\n }}\n onChange={(evt) => setCreatedAtTo(evt.target.value)}\n />\n </div>\n\n <div className={classes.orderByFilter}>\n <FormControl className={classes.orderByFilter}>\n <InputLabel id=\"order-by-label\">Sort by</InputLabel>\n <SimpleSelect\n labelId=\"order-by-label\"\n id=\"order-by-select\"\n ref={orderBy}\n className={classes.orderByFilterSelect}\n onChange={(evt) => (orderBy.current.value = evt.target.value)}\n >\n <MenuItem value={\"name\"}>Name</MenuItem>\n <MenuItem value={\"email\"}>Email</MenuItem>\n <MenuItem value={\"createdAt\"}>Created date</MenuItem>\n <MenuItem value={\"updatedAt\"}>Modified date</MenuItem>\n <MenuItem value={\"last_active_date\"}>Last active date</MenuItem>\n </SimpleSelect>\n </FormControl>\n <FormControl className={classes.orderByFilter}>\n <InputLabel id=\"sort-order-label\">Sort order</InputLabel>\n <SimpleSelect\n labelId=\"sort-order-label\"\n id=\"sort-order-select\"\n ref={sortOrder}\n className={classes.orderByFilterSelect}\n onChange={(evt) => (sortOrder.current.value = evt.target.value)}\n >\n <MenuItem value={\"asc\"}>Ascending</MenuItem>\n <MenuItem value={\"desc\"}>Descending</MenuItem>\n </SimpleSelect>\n </FormControl>\n </div>\n\n <Button\n variant=\"contained\"\n color=\"secondary\"\n onClick={onClickSearchButton}\n >\n Search\n </Button>\n <div className={classes.totalRecords}>\n Total records returned: {sortedUserData.length}\n </div>\n </div>\n {userlist.isLoading && !isMounted && <Loader variant=\"big\" />}\n {((userlist.isSuccess && sortedUserData.length > 0) || isMounted) && (\n <GenericTable\n headers={[\n \"S.No\",\n // \"Profile\",\n \"Name\",\n \"Email\",\n // \"Subscription\",\n \"Joined\",\n \"Subscription Type\",\n \"Expires On\",\n \"e-Book Downloaded\",\n ]}\n cellData={makeTableData(sortedUserData)}\n keys={[\n \"serialNumber\",\n // \"profile\",\n \"name\",\n \"email\",\n // \"subscription\",\n \"createdAt\",\n \"sub_type\",\n \"sub_end_date\",\n \"isBookDownloaded\",\n ]}\n multipleSelect={true}\n deleteIcon={false}\n editIcon={false}\n // handleDelete={handleDelete}\n deleteAllAction={true}\n handleDeleteAllAction={handleDeleteAllUsersAction}\n downgradeAllAction={true}\n handleDowngradeAllAction={handleDowngradeAllUsersAction}\n ref={userTableRef}\n />\n )}\n {userlist.isError && <Error message={userlist.message} />}\n </div>\n );\n}\n","import React, { useState } from \"react\";\nimport Modal from \"@material-ui/core/Modal\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport Loader from \"./Loader\";\nimport moment from \"moment\";\nimport { Backdrop, Button, Fade, TextField } from \"@material-ui/core\";\nimport { postGrantPremiumManyRequest } from \"../redux/actions\";\n\nconst useStyles = makeStyles((theme) => ({\n modal: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n paper: {\n display: \"flex\",\n flexDirection: \"column\",\n backgroundColor: theme.palette.background.paper,\n boxShadow: theme.shadows[5],\n height: \"20vh\",\n width: \"50vh\",\n borderRadius: 5,\n outline: \"none\",\n [theme.breakpoints.down(\"sm\")]: {\n width: \"95%\",\n },\n },\n modalHeader: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n padding: theme.spacing(2),\n borderBottom: \"1px solid rgba(0,0,0, 0.2)\",\n },\n closeIcon: {\n cursor: \"pointer\",\n },\n content: {\n padding: 16,\n // overflowY: \"scroll\",\n },\n footer: {\n padding: theme.spacing(1),\n borderTop: \"1px solid rgba(0,0,0, 0.2)\",\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n },\n button: {\n outline: \"none\",\n border: \"none\",\n background: \"#065fd4\",\n color: \"#fff\",\n width: 100,\n height: 40,\n cursor: \"pointer\",\n },\n selectWrapper: {\n display: \"flex\",\n alignItems: \"center\",\n paddingTop: 2,\n },\n videoBankTypeWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n marginTop: 20,\n },\n label: {\n marginRight: 5,\n },\n}));\n\n// const initialState = {\n// premiumValidTillId: moment(new Date()).format(\"YYYY-MM-DD\"),\n// };\n\nexport default function GrantPremiumModal({\n primaryText,\n secondaryText,\n onPrimaryBtnClick,\n onSecondaryBtnClick,\n data,\n open,\n handleClose,\n searchData,\n}) {\n const classes = useStyles();\n const dispatch = useDispatch();\n const isLoading = useSelector((state) => state.config.isLoading);\n const [validTill, setValidTill] = useState(\n moment(new Date()).format(\"YYYY-MM-DD\")\n );\n const [isEdited, setIsEdited] = useState(false);\n\n const today = new Date().toISOString().split(\"T\")[0];\n\n // const handleClose = () => {\n // dispatch(videoModalRequest(false));\n // handleReset();\n // };\n\n const handleGrantPremium = () => {\n const payload = {\n data: {\n userIds: data.map((user) => user._id),\n end_date: validTill,\n },\n search_data: searchData,\n };\n console.log(payload);\n\n dispatch(postGrantPremiumManyRequest(payload));\n handleReset();\n };\n\n const handleChange = (evt) => {\n setIsEdited(true);\n setValidTill(moment(new Date(evt.target.value)).format(\"YYYY-MM-DD\"));\n };\n\n const handleReset = () => {\n setValidTill(moment(new Date()).format(\"YYYY-MM-DD\"));\n setIsEdited(false);\n\n handleClose();\n };\n\n return (\n <Modal\n aria-labelledby=\"transition-modal-title\"\n aria-describedby=\"transition-modal-description\"\n className={classes.modal}\n open={open}\n onClose={handleReset}\n // onClose={handleClose}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n <Fade in={open}>\n <div className={classes.paper}>\n <div className={classes.modalHeader}>\n <span>Grant Premium</span>\n <CloseIcon onClick={handleClose} className={classes.closeIcon} />\n </div>\n <div className={classes.content}>\n <div className={classes.selectWrapper}>\n <div className={classes.label}>Valid till:</div>\n <TextField\n id=\"premiumValidTillId\"\n // label=\"Valid till\"\n type=\"date\"\n name=\"premiumValidTillId\"\n // defaultValue={premiumValidTo.current.value}\n InputLabelProps={{\n shrink: true,\n }}\n inputProps={{\n min: today,\n }}\n onChange={handleChange}\n />\n </div>\n </div>\n <div className={classes.footer}>\n <Button\n disabled={!isEdited}\n onClick={handleGrantPremium}\n variant=\"contained\"\n className={classes.button}\n >\n {isLoading ? <Loader style={{ color: \"#fff\" }} /> : \"Submit\"}\n </Button>\n </div>\n </div>\n </Fade>\n </Modal>\n );\n}\n","import { useEffect, useRef } from \"react\";\n\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value; //assign the value of ref to the argument\n }, [value]); //this code will run when the value of 'value' changes\n return ref.current; //in the end, return the current ref value.\n}\nexport default usePrevious;\n","import React, { useEffect, useState, useRef } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport GenericTable from \"../Components/Table\";\nimport {\n getUserListRequest,\n updateUserSubscriptionRequest,\n createCouponRequest,\n getCouponListRequest,\n} from \"../redux/actions\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport defaultAvtar from \"../assets/avatar.jpeg\";\nimport Loader from \"../Components/Loader\";\nimport Error from \"../Components/Error\";\nimport moment from \"moment\";\nimport AlertDialog from \"../Components/ActionDialog\";\nimport fireAjax from \"../services\";\nimport { toast } from \"react-toastify\";\nimport Button from \"@material-ui/core/Button\";\nimport TextField from \"@material-ui/core/TextField\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport InputLabel from \"@material-ui/core/InputLabel\";\nimport Select from \"react-select\";\nimport SimpleSelect from \"@material-ui/core/Select\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport MultipleSelect from \"../Components/Select\";\nimport { AppBar, Tab, TableCell, Tabs } from \"@material-ui/core\";\nimport GrantPremiumModal from \"../Components/GrantPremiumModal\";\nimport usePrevious from \"../hooks/usePrevious\";\n\nconst CSVConverter = require(\"papaparse\");\n\nfunction a11yProps(index) {\n return {\n id: `simple-tab-${index}`,\n \"aria-controls\": `simple-tabpanel-${index}`,\n };\n}\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n \"&:-webkit-scrollbar\": {\n width: 0,\n background: \"transparent\",\n },\n padding: 10,\n },\n tabContainer: {\n justifyContent: \"space-between\",\n },\n titleWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n marginBottom: 20,\n },\n searchTitle: {\n fontSize: \"1rem\",\n },\n couponForm: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"4px\",\n alignItems: \"flex-start\",\n marginBottom: 20,\n },\n dateRange: {\n display: \"flex\",\n gap: \"16px\",\n alignItems: \"flex-start\",\n marginTop: 10,\n marginBottom: 10,\n },\n searchFilter: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"16px\",\n alignItems: \"flex-start\",\n marginBottom: 20,\n },\n dateFilter: {\n display: \"flex\",\n gap: \"16px\",\n alignItems: \"flex-start\",\n },\n orderByFilter: {\n display: \"flex\",\n flexDirection: \"row\",\n gap: \"16px\",\n alignItems: \"flex-start\",\n minWidth: 200,\n },\n orderByFilterSelect: {\n minWidth: 200,\n },\n paper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n color: theme.palette.text.secondary,\n },\n couponTitle: {\n fontWeight: \"bold\",\n fontSize: \"1.2rem\",\n },\n totalRecords: {\n fontWeight: \"bold\",\n fontSize: \"1rem\",\n },\n newCoupon: {\n fontWeight: \"bold\",\n fontSize: \"1rem\",\n marginTop: 16,\n },\n newPlaylistTitle: {\n color: \"#065fd4\",\n fontWeight: \"500\",\n cursor: \"pointer\",\n },\n avtar: {\n width: 60,\n height: 60,\n borderRadius: 30,\n },\n fab: {\n position: \"fixed\",\n bottom: theme.spacing(5),\n right: theme.spacing(5),\n background: \"#3ea8ad\",\n \"&:hover\": {\n background: \"#3ea8ad\",\n },\n },\n label: {\n marginTop: 10,\n },\n btnIcon: {\n cursor: \"pointer\",\n },\n}));\n\nexport default function Coupon() {\n const [openDeleteDialog, setOpenDeleteDialog] = useState(false);\n const [openGrantPremiumDialog, setOpenGrantPremiumDialog] = useState(false);\n\n const validFrom = useRef(moment(new Date()).format(\"YYYY-MM-DD\"));\n const validTo = useRef(moment(new Date()).format(\"YYYY-MM-DD\"));\n const quantityCoupon = useRef(\"\");\n const validDuration = useRef(\"\");\n const [couponData, setCouponData] = useState([]);\n\n const [activeCouponId, setActiveCouponId] = useState(null);\n const [isMounted, setIsMounted] = useState(false);\n const [sortedUserData, setSortedUserData] = useState([]);\n const orderBy = useRef(\"\");\n const searchInput = useRef(\"\");\n const sortOrder = useRef(\"asc\");\n const [createdAtFrom, setCreatedAtFrom] = useState(\n moment().subtract(7, \"d\").format(\"YYYY-MM-DD\")\n );\n const [createdAtTo, setCreatedAtTo] = useState(moment().format(\"YYYY-MM-DD\"));\n\n const [userSelectedList, setUserSelectedList] = useState([]);\n const [searchData, setSearchData] = useState(null);\n\n const [value, setValue] = useState(0);\n const handleTabChange = (event, newValue) => {\n setValue(newValue);\n };\n\n const classes = useStyles();\n const dispatch = useDispatch();\n\n const userlist = useSelector((state) => state.course.userlist);\n const coupons = useSelector((state) => state.course.coupons);\n const newCoupon = useSelector((state) => state.course.newCoupon);\n const grantPremium = useSelector((state) => state.course.grantPremium);\n\n const previousGrantPremiumLoading = usePrevious(grantPremium.isLoading);\n useEffect(() => {\n dispatch(getCouponListRequest());\n }, []);\n\n React.useMemo(() => {\n const freeUsers =\n userlist.data &&\n Array.isArray(userlist.data) &&\n userlist.data?.filter(\n (user) => user.subscription === \"free\" || user.sub_type === \"freemium\"\n );\n const sortedData =\n freeUsers &&\n Array.isArray(freeUsers) &&\n freeUsers?.sort((a, b) => {\n return 0;\n });\n setSortedUserData(sortedData);\n }, [userlist]);\n\n React.useMemo(() => {\n setCouponData(coupons.data || []);\n }, [coupons]);\n\n const getDurationLabel = (value) => {\n if (+value === 1) {\n return \"1 month\";\n } else if (+value === 3) {\n return \"3 months\";\n } else {\n return \"12 months\";\n }\n };\n const capitalizeFirstLetter = (string) => {\n return string.charAt(0).toUpperCase() + string.slice(1);\n };\n\n const makeCouponTableData = (rows = []) => {\n if (!rows.length) {\n return [];\n }\n let data = [];\n rows.map((item, index) => {\n let a = {\n _id: item._id,\n code: item.code,\n startDate: moment(item.start_date).format(\"DD/MM/YYYY\"),\n endDate: moment(item.end_date).format(\"DD/MM/YYYY\"),\n quantity: item.quantity,\n duration: getDurationLabel(item.duration),\n serialNumber: index + 1,\n };\n data.push(a);\n });\n return data;\n };\n const makeUserTableData = (rows = []) => {\n if (!rows.length) {\n return [];\n }\n let data = [];\n rows.map((item, index) => {\n let a = {\n _id: item._id,\n name: item.name,\n email: item.email,\n sub_type: item.sub_type\n ? capitalizeFirstLetter(item.sub_type)\n : capitalizeFirstLetter(item.subscription),\n serialNumber: index + 1,\n createdAt: moment(item.createdAt).format(\"DD/MM/YYYY, kk:mm:ss\"),\n // endOfSubscription: \"NA\",\n isChecked: userSelectedList.some((user) => user._id === item._id)\n ? true\n : false,\n };\n data.push(a);\n });\n return data;\n };\n\n const onClickSaveButton = (evt) => {\n const payload = {\n quantity: +quantityCoupon.current.value,\n start_date: validFrom.current.value,\n end_date: validTo.current.value,\n duration: validDuration.current.value || 1,\n };\n dispatch(createCouponRequest(payload));\n };\n\n const handleDelete = (e) => {\n setActiveCouponId(e);\n setOpenDeleteDialog(true);\n };\n\n const onCloseDeleleDialogClick = () => {\n setOpenDeleteDialog(false);\n };\n\n const onSubmitDeleteDialogClick = () => {\n setIsMounted(true);\n fireAjax(\"DELETE\", `coupon/${activeCouponId}`).then(() => {\n dispatch(getCouponListRequest());\n setOpenDeleteDialog(false);\n toast.success(\"Coupon Deleted Successfully\", {\n position: \"top-right\",\n autoClose: 2000,\n hideProgressBar: false,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n });\n });\n };\n\n const onClickSearchButton = (evt) => {\n console.log(\"searchInput\", searchInput.current.value);\n console.log(\"createdAtFrom\", createdAtFrom);\n console.log(\"createdAtTo\", createdAtTo);\n dispatch(\n getUserListRequest({\n data: {\n filter: searchInput.current.value,\n createdAtFrom: createdAtFrom,\n createdAtTo: createdAtTo,\n orderBy: orderBy.current.value,\n sortOrder: sortOrder.current.value,\n },\n })\n );\n };\n const handleUpgradeAllUsersAction = (value) => {\n setUserSelectedList(value);\n setSearchData({\n filter: searchInput.current.value,\n createdAtFrom: createdAtFrom,\n createdAtTo: createdAtTo,\n orderBy: orderBy.current.value,\n sortOrder: sortOrder.current.value,\n });\n setOpenGrantPremiumDialog(true);\n };\n\n const onCloseGrantPremiumDialogClick = () => {\n setOpenGrantPremiumDialog(false);\n };\n\n React.useMemo(() => {\n if (previousGrantPremiumLoading && !grantPremium.isLoading) {\n setUserSelectedList([]);\n }\n }, [grantPremium, previousGrantPremiumLoading]);\n\n return (\n <div className={classes.root}>\n <AlertDialog\n header={\"Are you sure you want to delete this coupon?\"}\n primaryText={\"No\"}\n secondaryText={\"Yes\"}\n onPrimaryBtnClick={onCloseDeleleDialogClick}\n onSecondaryBtnClick={onSubmitDeleteDialogClick}\n open={openDeleteDialog}\n handleClose={onCloseDeleleDialogClick}\n />\n <GrantPremiumModal\n open={openGrantPremiumDialog}\n handleClose={onCloseGrantPremiumDialogClick}\n data={userSelectedList || []}\n searchData={searchData || null}\n />\n <div className={classes.titleWrapper}>\n <div className={classes.couponTitle}>Coupon</div>\n </div>\n <AppBar position=\"static\">\n <Tabs\n value={value}\n onChange={handleTabChange}\n className={classes.tabContainer}\n >\n <Tab label=\"Coupon List\" {...a11yProps(0)} />\n\n <Tab label=\"Create Coupon\" {...a11yProps(1)} />\n <Tab label=\"Grant Premium\" {...a11yProps(2)} />\n </Tabs>\n </AppBar>\n {value === 0 && (\n <>\n <h3>Coupon List</h3>\n {coupons.isLoading && !isMounted && <Loader variant=\"big\" />}\n {((coupons.isSuccess && couponData.length > 0) || isMounted) && (\n <GenericTable\n headers={[\n \"S.No\",\n \"Code\",\n \"Start date\",\n \"End date\",\n \"Quantity\",\n \"Duration\",\n ]}\n cellData={makeCouponTableData(couponData)}\n keys={[\n \"serialNumber\",\n \"code\",\n \"startDate\",\n \"endDate\",\n \"quantity\",\n \"duration\",\n ]}\n deleteIcon={true}\n editIcon={false}\n updateIcon={false}\n handleDelete={handleDelete}\n />\n )}\n {coupons.isError && <Error message={coupons.message} />}\n </>\n )}\n {value === 1 && (\n <div className={classes.paperView}>\n <h3>Create Coupon</h3>\n <div className={classes.couponForm}>\n <div className={classes.label}>Quantity</div>\n <input\n onChange={(evt) =>\n (quantityCoupon.current.value = evt.target.value || null)\n }\n type=\"number\"\n id=\"quantity\"\n ref={quantityCoupon}\n name=\"quantityCoupon\"\n placeholder=\"Quantity\"\n defaultValue=\"1\"\n required\n />\n\n <div className={classes.label}>Duration</div>\n <SimpleSelect\n labelId=\"durationLabel\"\n id=\"durationId\"\n ref={validDuration}\n defaultValue={\"1\"}\n className={classes.orderByFilterSelect}\n onChange={(evt) => {\n validDuration.current.value = evt.target.value || null;\n }}\n >\n <MenuItem value={\"1\"}>1 month</MenuItem>\n <MenuItem value={\"3\"}>3 months</MenuItem>\n <MenuItem value={\"12\"}>12 months</MenuItem>\n </SimpleSelect>\n <div className={classes.dateRange}>\n <TextField\n id=\"validFromId\"\n label=\"Valid from\"\n type=\"date\"\n ref={validFrom}\n // defaultValue={validFrom.current.value || null}\n InputLabelProps={{\n shrink: true,\n }}\n onChange={(evt) =>\n (validFrom.current.value = evt.target.value || null)\n }\n />\n\n <TextField\n id=\"validToId\"\n label=\"Valid till\"\n type=\"date\"\n ref={validTo}\n // defaultValue={validTo.current.value || null}\n InputLabelProps={{\n shrink: true,\n }}\n onChange={(evt) =>\n (validTo.current.value = evt.target.value || null)\n }\n />\n </div>\n\n <Button\n variant=\"contained\"\n color=\"secondary\"\n onClick={onClickSaveButton}\n >\n Save\n </Button>\n <div className={classes.newCoupon}>\n New Coupon: {newCoupon.data.code}\n </div>\n </div>\n </div>\n )}\n\n {value === 2 && (\n <>\n <h3>Grant Premium</h3>\n <div className={classes.searchFilter}>\n <TextField\n id=\"standard-basic\"\n label=\"Search by email address or name\"\n fullWidth\n ref={searchInput}\n onChange={(evt) => (searchInput.current.value = evt.target.value)}\n />\n <div className={classes.dateFilter}>\n <TextField\n id=\"createdAtFromId\"\n label=\"Created from\"\n type=\"date\"\n defaultValue={createdAtFrom}\n InputLabelProps={{\n shrink: true,\n }}\n onChange={(evt) => setCreatedAtFrom(evt.target.value)}\n />\n <TextField\n id=\"createdAtToId\"\n label=\"Created till\"\n type=\"date\"\n // ref={createdAtTo}\n defaultValue={createdAtTo}\n InputLabelProps={{\n shrink: true,\n }}\n onChange={(evt) => setCreatedAtTo(evt.target.value)}\n />\n </div>\n\n <div className={classes.orderByFilter}>\n <FormControl className={classes.orderByFilter}>\n <InputLabel id=\"order-by-label\">Sort by</InputLabel>\n <SimpleSelect\n labelId=\"order-by-label\"\n id=\"order-by-select\"\n ref={orderBy}\n className={classes.orderByFilterSelect}\n onChange={(evt) => (orderBy.current.value = evt.target.value)}\n >\n <MenuItem value={\"name\"}>Name</MenuItem>\n <MenuItem value={\"email\"}>Email</MenuItem>\n <MenuItem value={\"createdAt\"}>Created date</MenuItem>\n <MenuItem value={\"updatedAt\"}>Modified date</MenuItem>\n <MenuItem value={\"last_active_date\"}>\n Last active date\n </MenuItem>\n </SimpleSelect>\n </FormControl>\n <FormControl className={classes.orderByFilter}>\n <InputLabel id=\"sort-order-label\">Sort order</InputLabel>\n <SimpleSelect\n labelId=\"sort-order-label\"\n id=\"sort-order-select\"\n ref={sortOrder}\n className={classes.orderByFilterSelect}\n onChange={(evt) =>\n (sortOrder.current.value = evt.target.value)\n }\n >\n <MenuItem value={\"asc\"}>Ascending</MenuItem>\n <MenuItem value={\"desc\"}>Descending</MenuItem>\n </SimpleSelect>\n </FormControl>\n </div>\n\n <Button\n variant=\"contained\"\n color=\"secondary\"\n onClick={onClickSearchButton}\n >\n Search\n </Button>\n <div className={classes.totalRecords}>\n Total records returned: {sortedUserData.length}\n </div>\n </div>\n {userlist.isLoading && !isMounted && <Loader variant=\"big\" />}\n {((userlist.isSuccess && sortedUserData.length > 0) || isMounted) && (\n <GenericTable\n headers={[\n \"S.No\",\n \"Name\",\n \"Email\",\n \"Subscription Type\",\n \"Joined\",\n // \"End Of Subscription\",\n ]}\n cellData={makeUserTableData(sortedUserData)}\n keys={[\n \"serialNumber\",\n \"name\",\n \"email\",\n \"sub_type\",\n \"createdAt\",\n // \"endOfSubscription\",\n ]}\n deleteIcon={false}\n editIcon={false}\n multipleSelect={true}\n upgradeAllAction={true}\n handleUpgradeAllAction={handleUpgradeAllUsersAction}\n />\n )}\n {userlist.isError && <Error message={userlist.message} />}\n </>\n )}\n\n {userlist.isLoading && !isMounted && <Loader variant=\"big\" />}\n {userlist.isError && <Error message={userlist.message} />}\n </div>\n );\n}\n","import React, { useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { useHistory } from \"react-router-dom\";\nimport appLogo from '../assets/logo.png'\nimport { loginRequest } from '../redux/actions'\nimport validator from '../utils/validation'\nimport '../styles/login.scss'\nimport Loader from '../Components/Loader'\nimport {Link} from \"@material-ui/core\";\n\nexport default function Login() {\n\n const dispatch = useDispatch()\n const history = useHistory();\n const loginData = useSelector(state => state.auth.loginData)\n const [state, setState] = useState({ \n email: '',\n password: '',\n errors: {}\n })\n\n const handleSubmit = (e) => {\n e.preventDefault()\n const errors = validator(state)\n setState({ ...state, errors })\n if(Object.keys(errors).length){\n console.log(\"form validation error\")\n }else{\n const payload = { email: state.email, password: state.password }\n dispatch(loginRequest(payload))\n }\n }\n\n const handleChange = (value, name) => {\n let data = { ...state }\n data[name] = value\n setState(data)\n }\n\n const forgotPasswordHandler = (event) => {\n event.preventDefault();\n history.push(\"/forgotPassword\")\n }\n \n return (\n <div className=\"wrapper fadeInDown\">\n \n <div id=\"formContent\">\n <h2 className=\"active\"> Sign In </h2>\n {/* <h2 className=\"inactive underlineHover\">Sign Up </h2> */}\n\n <div className=\"fadeIn first\" style={{marginTop: 16, marginBottom: 16}}>\n <img src={appLogo} id=\"icon\" alt=\"User Icon\" />\n </div>\n\n <form contentEditable={false} onSubmit={handleSubmit}>\n <input onChange={(e) => handleChange(e.target.value, 'email')} type=\"text\" id=\"login\" className=\"fadeIn second\" name=\"login\" placeholder=\"email / username\" required/>\n <input onChange={(e) => handleChange(e.target.value, 'password')} type=\"password\" id=\"password\" className=\"fadeIn third\" name=\"login\" placeholder=\"password\" required/>\n <div style={{ color: 'red', textAlign: 'left', marginLeft: '3rem', fontSize: 15, marginBottom: 10 }} >{loginData.message}</div>\n {loginData.isLoading && <div className='loader-wrapper'><Loader /></div>}\n <Link href=\"#\" style={{display: \"block\", marginBottom: 16}} onClick={forgotPasswordHandler}>\n Forgot password\n </Link>\n <input type=\"submit\" className=\"fadeIn fourth\" value=\"Log In\"/>\n </form>\n\n <div id=\"formFooter\">\n {/* <a className=\"underlineHover\" href=\"#\">Forgot Password?</a> */}\n </div>\n\n </div>\n </div>\n )\n}\n","import React, { useEffect, useMemo } from \"react\";\nimport { Container } from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Paper from \"@material-ui/core/Paper\";\nimport Grid from \"@material-ui/core/Grid\";\nimport videocamera from \"../assets/videocamera.jpg\";\nimport VideoList from \"../Components/VideoList\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { videoModalRequest, getVideoRequest } from \"../redux/actions\";\nimport Loader from \"../Components/Loader\";\nimport Error from \"../Components/Error\";\nimport { Document, Page, pdfjs } from \"react-pdf\";\nimport { getDashboardRequest } from \"../redux/actions\";\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n width: \"100%\",\n height: \"80vh\",\n },\n\n paperOne: {\n width: \"18%\",\n paddingLeft: 20,\n paddingRight: 20,\n paddingTop: 10,\n paddingBottom: 10,\n marginRight: 10,\n marginBottom: 10,\n },\n\n paperView: {\n // width: '50%',\n display: \"flex\",\n // justifyContent:\"space-evenly\",\n flexDirection: \"row\",\n flexWrap: \"wrap\",\n },\n\n detailsView: {\n marginTop: 20,\n marginBottom: 20,\n },\n}));\n\nexport default function UserDashboard() {\n const classes = useStyles();\n const dispatch = useDispatch();\n const userDashboardData = useSelector(\n (state) => state.auth.userDashboardData\n );\n\n useEffect(() => {\n (async () => {\n dispatch(getDashboardRequest());\n })();\n }, []);\n\n const numberOfActiveUsers = useMemo(() => {\n if (userDashboardData.isSuccess) {\n // return userDashboardData.data.filter(a => {\n //\n // } )\n }\n return \"NA\";\n }, [userDashboardData]);\n\n return (\n <Container className={classes.container}>\n {userDashboardData.isLoading && <Loader variant=\"big\" />}\n {userDashboardData.isSuccess && (\n <div>\n <h1>Dashboard</h1>\n <div className={classes.paperView}>\n <Paper className={classes.paperOne}>\n <div className={classes.detailsView}>\n <h2>Total Users</h2>\n <p> {userDashboardData.data.total}</p>\n </div>\n </Paper>\n\n <Paper className={classes.paperOne}>\n <div className={classes.detailsView}>\n <h2> Paid Users </h2>\n <p> {userDashboardData.data.paid}</p>\n </div>\n </Paper>\n <Paper className={classes.paperOne}>\n <div className={classes.detailsView}>\n <h2> Free Users</h2> <p> {userDashboardData.data.free}</p>\n </div>\n </Paper>\n <Paper className={classes.paperOne}>\n <div className={classes.detailsView}>\n <h2>Book Downloaded</h2>{\" \"}\n <p>{userDashboardData.data.bookDownloadCount}</p>\n </div>\n </Paper>\n <Paper className={classes.paperOne}>\n <div className={classes.detailsView}>\n <h2>Active User</h2>{\" \"}\n <p>{userDashboardData.data.active_users}</p>\n </div>\n </Paper>\n <Paper className={classes.paperOne}>\n <div className={classes.detailsView}>\n <h2>Android User</h2>{\" \"}\n <p>{userDashboardData.data.android_users}</p>\n </div>\n </Paper>\n <Paper className={classes.paperOne}>\n <div className={classes.detailsView}>\n <h2>iOS User</h2> <p>{userDashboardData.data.ios_users}</p>\n </div>\n </Paper>\n </div>\n </div>\n )}\n </Container>\n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport GenericTable from \"./Table\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { getNotificationRequest } from \"../redux/actions\";\nimport Loader from \"./Loader\";\nimport AlertDialog from \"./ActionDialog\";\nimport fireAjax from \"../services\";\nimport { toast } from \"react-toastify\";\nconst makeTableData = (rows = []) => {\n if (!rows.length) {\n return [];\n }\n let data = [];\n rows.map((item, index) => {\n let a = {\n description: item.body,\n title: item.title,\n serialNumber: index + 1,\n _id: item._id,\n };\n data.push(a);\n });\n return data;\n};\nexport default function NotificationList() {\n const [open, setOpen] = useState(false);\n const [activeUserId, setActiveUserId] = useState(null);\n const [isMounted, setIsMounted] = useState(false);\n const dispatch = useDispatch();\n const notificationList = useSelector((state) => state.auth.notificationList);\n\n useEffect(() => {\n dispatch(getNotificationRequest());\n }, []);\n\n console.log(notificationList, \"sendNotificationsendNotification\");\n if (notificationList.isLoading && !isMounted) return <Loader variant=\"big\" />;\n\n const handleDelete = (e) => {\n setActiveUserId(e);\n setOpen(true);\n };\n\n const onPrimaryBtnClick = () => {\n setOpen(false);\n };\n\n const onSecondaryBtnClick = () => {\n setIsMounted(true);\n fireAjax(\"DELETE\", `users/admin/removeNotifications/${activeUserId}`).then(\n () => {\n dispatch(getNotificationRequest());\n setOpen(false);\n toast.success(\"Notification Deleted Successfully\", {\n position: \"top-right\",\n autoClose: 2000,\n hideProgressBar: false,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n });\n }\n );\n };\n\n return (\n <div>\n <AlertDialog\n header={\"Are you sure you want to delete this notification?\"}\n primaryText={\"No\"}\n secondaryText={\"Yes\"}\n onPrimaryBtnClick={onPrimaryBtnClick}\n onSecondaryBtnClick={onSecondaryBtnClick}\n open={open}\n handleClose={onPrimaryBtnClick}\n />\n <h3>Notification List</h3>\n <GenericTable\n headers={[\"S.No\", \"Title\", \"Description\"]}\n cellData={makeTableData(notificationList.data.data)}\n keys={[\"serialNumber\", \"title\", \"description\"]}\n deleteIcon={true}\n editIcon={false}\n handleDelete={handleDelete}\n />\n </div>\n );\n}\n","import React, { useEffect } from \"react\";\nimport { Container } from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Paper from \"@material-ui/core/Paper\";\nimport Grid from \"@material-ui/core/Grid\";\nimport videocamera from \"../assets/videocamera.jpg\";\nimport VideoList from \"../Components/VideoList\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport {\n videoModalRequest,\n getVideoRequest,\n getUserListRequest,\n sendNotificationdRequest,\n} from \"../redux/actions\";\nimport Loader from \"../Components/Loader\";\nimport Error from \"../Components/Error\";\nimport { Document, Page, pdfjs } from \"react-pdf\";\nimport { getDashboardRequest } from \"../redux/actions\";\nimport GenericTextArea from \"../Components/GenericTextArea\";\nimport { useState } from \"react\";\nimport MultipleSelect from \"../Components/Select\";\nimport \"react-toastify/dist/ReactToastify.css\";\nimport AppBar from \"@material-ui/core/AppBar\";\nimport Tabs from \"@material-ui/core/Tabs\";\nimport Tab from \"@material-ui/core/Tab\";\nimport Typography from \"@material-ui/core/Typography\";\nimport NotificationList from \"../Components/NotificationList\";\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\n\nfunction a11yProps(index) {\n return {\n id: `simple-tab-${index}`,\n \"aria-controls\": `simple-tabpanel-${index}`,\n };\n}\nconst useStyles = makeStyles((theme) => ({\n container: {\n width: \"100%\",\n height: \"80vh\",\n // display: 'flex',\n // justifyContent: 'center',\n // alignItems: 'center'\n },\n tabContainer: {\n justifyContent: \"space-between\",\n },\n paperOne: {\n width: \"100%\",\n paddingLeft: 20,\n paddingRight: 20,\n paddingTop: 10,\n paddingBottom: 10,\n },\n\n paperView: {\n width: \"50%\",\n },\n\n detailsView: {\n marginTop: 20,\n marginBottom: 20,\n },\n\n fileImg: {\n width: 200,\n height: 100,\n marginBottom: 10,\n marginTop: 20,\n },\n\n button: {\n outline: \"none\",\n border: \"none\",\n background: \"#065fd4\",\n color: \"#fff\",\n width: 150,\n height: 40,\n cursor: \"pointer\",\n marginTop: 20,\n },\n\n selectUser: {\n marginTop: 30,\n },\n}));\n\nexport default function SendNotification() {\n const classes = useStyles();\n const dispatch = useDispatch();\n const sendNotification = useSelector((state) => state.auth.sendNotification);\n const userlist = useSelector((state) => state.course.userlist);\n const [state, setState] = useState({\n title: \"\",\n body: \"\",\n data: {},\n file: null,\n fileUrl: \"\",\n userId: \"\",\n });\n const [value, setValue] = React.useState(0);\n const handleTabChange = (event, newValue) => {\n setValue(newValue);\n };\n console.log(state, \"kkkkkkkk\");\n\n useEffect(() => {\n (async () => {\n dispatch(getDashboardRequest());\n if (!userlist.isSccuess) {\n dispatch(getUserListRequest());\n }\n })();\n }, []);\n\n const getChunk = (array) => {\n const chunkSize = 1000;\n var results = [];\n while (array.length) {\n results.push(array.splice(0, chunkSize));\n }\n return results;\n };\n const handleSubmit = () => {\n var userIds = Array.isArray(state.userId) ? state.userId : [state.userId];\n const data = getChunk(userIds);\n data.forEach((userChunk, index) => {\n const formData = new FormData();\n formData.append(\"title\", state.title);\n formData.append(\"body\", state.body);\n formData.append(\"data\", JSON.stringify(state.data));\n state.file && formData.append(\"file\", state.file);\n for (var i = 0; i < userChunk.length; i++) {\n userChunk[i] && formData.append(\"userId[]\", userChunk[i]);\n }\n setTimeout(() => {\n dispatch(sendNotificationdRequest(formData));\n }, index * 10000);\n });\n };\n\n const handleChange = (value, name) => {\n let data = { ...state };\n data[name] = value;\n setState(data);\n };\n\n const onChange = (event, name) => {\n var file = event.target.files[0];\n var reader = new FileReader();\n reader.onload = function (event) {\n console.log(file, \"event.target.result\");\n setState({ ...state, [name]: file, fileUrl: event.target.result });\n };\n\n file && reader.readAsDataURL(file);\n };\n\n console.log(value, \"valuevalue\");\n return (\n <Container className={classes.container}>\n <AppBar position=\"static\">\n <Tabs\n value={value}\n onChange={handleTabChange}\n aria-label=\"simple tabs example\"\n className={classes.tabContainer}\n >\n <Tab label=\"Send Notification\" {...a11yProps(0)} />\n <Tab label=\"Notification List\" {...a11yProps(1)} />\n </Tabs>\n </AppBar>\n {value === 0 && (\n <div className={classes.paperView}>\n <h3>Send Notification</h3>\n <Paper className={classes.paperOne}>\n <GenericTextArea\n placeholder=\"Title\"\n name=\"title\"\n handleChange={handleChange}\n />\n <GenericTextArea\n placeholder=\"Description\"\n name=\"body\"\n handleChange={handleChange}\n />\n {/* <GenericTextArea placeholder='Data (Optional)' name='data'handleChange={handleChange} /> */}\n {state.fileUrl && (\n <div>\n <img className={classes.fileImg} src={state.fileUrl} />\n </div>\n )}\n <input\n onChange={(e) => onChange(e, \"file\")}\n accept=\"image/*\"\n className={classes.input}\n type=\"file\"\n capture\n />\n <div className={classes.selectUser}>Select User</div>\n <MultipleSelect\n name=\"name\"\n onSelect={(value) => handleChange(value, \"userId\")}\n nameKey={\"name\"}\n returnKey={\"_id\"}\n defaultSelect={true}\n // defaultSelectIndex={defaultSelectIndex}\n multiple={true}\n invokeOnSelectOnInitialisation={false}\n list={userlist.data}\n // disabled={usersSubscription.isLoading}\n />\n\n <button\n disabled={sendNotification.isLoading}\n onClick={handleSubmit}\n className={classes.button}\n >\n {sendNotification.isLoading ? \"...Sending\" : \"Send Notification\"}\n </button>\n </Paper>\n </div>\n )}\n\n {value === 1 && <NotificationList />}\n </Container>\n );\n}\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport CloudUploadIcon from \"@material-ui/icons/CloudUpload\";\nimport { Avatar, Button, Modal, Paper, TextField } from \"@material-ui/core\";\nimport { Backdrop, Fade } from \"@material-ui/core\";\n\nconst UploadPdfModal = (props) => {\n const {\n showUploadPDFModal,\n handleToggleModal,\n uploadedBookData,\n handleFileDrop,\n handleFileInputChange,\n handleFileImageUpload,\n handleBookUpload,\n setUploadedBookData,\n } = props;\n\n const classes = useStyles();\n\n const fileUploadRef = React.useRef(null);\n const uploadImagedRef = React.useRef(null);\n return (\n <Modal\n className={classes.modal}\n open={showUploadPDFModal}\n onClose={handleToggleModal}\n closeAfterTransition\n BackdropComponent={Backdrop}\n BackdropProps={{\n timeout: 500,\n }}\n >\n <Fade in={showUploadPDFModal}>\n <div className={classes.paper}>\n {uploadedBookData.url && (\n <div\n style={{\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n marginBottom: 10,\n }}\n >\n <img\n src={uploadedBookData.url}\n alt=\"EBook\"\n style={{\n width: 200,\n height: 200,\n borderRadius: 12,\n }}\n />\n </div>\n )}\n <TextField\n label=\"Title\"\n variant=\"outlined\"\n value={uploadedBookData.title}\n placeholder=\"Enter title\"\n onChange={(e) =>\n setUploadedBookData({\n ...uploadedBookData,\n title: e.target.value,\n })\n }\n className={classes.titleField}\n style={{\n marginTop: 10,\n }}\n />\n <TextField\n label=\"Enter Description\"\n variant=\"outlined\"\n value={uploadedBookData.description}\n placeholder=\"Enter Description\"\n minRows={4}\n onChange={(e) =>\n setUploadedBookData({\n ...uploadedBookData,\n description: e.target.value,\n })\n }\n fullWidth\n className={classes.titleField}\n />\n <div\n className={classes.dropZone}\n onDrop={handleFileDrop}\n onDragOver={(e) => e.preventDefault()}\n >\n {uploadedBookData.book ? (\n <div>\n <p>Uploaded File: {uploadedBookData.book.name}</p>\n </div>\n ) : (\n <div className={classes.uploadZone}>\n <CloudUploadIcon className={classes.icon} />\n <p className={classes.uploadText}>Drag and Drop here</p>\n <p className={classes.uploadText}>or</p>\n <input\n type=\"file\"\n accept=\".pdf\"\n style={{ display: \"none\" }}\n onChange={handleFileInputChange}\n ref={fileUploadRef}\n />\n <Button\n variant=\"contained\"\n color=\"primary\"\n className={classes.uploadButton}\n onClick={() => fileUploadRef.current.click()}\n >\n Browse File\n </Button>\n </div>\n )}\n </div>\n <div className={classes.imageContainer}>\n <input\n type=\"file\"\n accept=\"image/*\"\n style={{ display: \"none\" }}\n onChange={handleFileImageUpload}\n ref={uploadImagedRef}\n />\n </div>\n <Button\n variant=\"contained\"\n color=\"primary\"\n className={classes.uploadButton}\n onClick={() => uploadImagedRef.current.click()}\n style={{ marginBottom: \"10px\" }}\n >\n Upload Image\n </Button>\n <Button\n variant=\"contained\"\n color=\"primary\"\n className={classes.uploadButton}\n onClick={handleBookUpload}\n disabled={\n !uploadedBookData.url ||\n uploadedBookData.title.length < 1 ||\n uploadedBookData.description.length < 1 ||\n uploadedBookData.book === null\n }\n >\n Upload\n </Button>\n </div>\n </Fade>\n </Modal>\n );\n};\n\nconst useStyles = makeStyles((theme) => ({\n modal: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n paper: {\n display: \"flex\",\n flexDirection: \"column\",\n backgroundColor: theme.palette.background.paper,\n boxShadow: theme.shadows[5],\n width: \"40vw\",\n borderRadius: 5,\n outline: \"none\",\n [theme.breakpoints.down(\"sm\")]: {\n width: \"95%\",\n },\n padding: 12,\n },\n titleField: {\n width: \"100%\",\n marginBottom: 10,\n },\n dropZone: {\n width: \"100%\",\n minHeight: \"30vh\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n border: \"2px dashed #A3A6C7\",\n borderRadius: \"8px\",\n cursor: \"pointer\",\n \"&:hover\": {\n border: \"2px dashed #2196f3\",\n },\n },\n icon: {\n fontSize: \"70px\",\n color: \"#A3A6C7\",\n },\n uploadZone: {\n display: \"flex\",\n alignItems: \"center\",\n flexDirection: \"column\",\n },\n uploadText: {\n margin: 2,\n fontSize: 18,\n },\n uploadButton: {\n fontSize: 14,\n fontWeight: \"600\",\n opacity: 0.8,\n backgroundColor: \"#0010FF\",\n color: \"white\",\n borderRadius: \"8px\",\n padding: \"10px\",\n textTransform: \"capitalize\",\n },\n imageContainer: {\n marginTop: 20,\n },\n imagePaper: {\n padding: theme.spacing(2),\n textAlign: \"center\",\n boxShadow: \"0 4px 6px rgba(0, 0, 0, 0.1)\",\n },\n image: {\n maxWidth: \"50%\",\n maxHeight: \"30%\",\n },\n}));\n\nexport default UploadPdfModal;\n","import React, { useState } from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { toast } from \"react-toastify\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport {\n deleteBookRequest,\n getBooksRequest,\n postBooksRequest,\n} from \"../redux/actions\";\nimport AddIcon from \"@material-ui/icons/Add\";\nimport GenericTable from \"../Components/Table\";\nimport { Fab } from \"@material-ui/core\";\nimport UploadPdfModal from \"../Components/UploadPDFModal\";\n\nexport const Pdf = () => {\n const classes = useStyles();\n const [uploadedBookData, setUploadedBookData] = useState({\n title: \"\",\n description: \"\",\n book: null,\n image: null,\n });\n const [showUploadPDFModal, setShowUploadPDFModal] = useState(false);\n const acceptedFiles = [\"application/pdf\"];\n const dispatch = useDispatch();\n\n const getBooks = useSelector((state) => state.books.getBooks);\n\n const handleFileDrop = (e) => {\n e.preventDefault();\n const file = e.dataTransfer.files[0];\n if (acceptedFiles.includes(file.type)) {\n return setUploadedBookData({\n ...uploadedBookData,\n book: file,\n });\n }\n toast.error(\"Incorrect format. Add a file in .pdf format \", {\n position: \"top-right\",\n autoClose: 2000,\n hideProgressBar: false,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n });\n };\n\n const handleFileInputChange = (e) => {\n const file = e.target.files[0];\n setUploadedBookData({\n ...uploadedBookData,\n book: file,\n });\n };\n\n const handleFileImageUpload = (e) => {\n const file = e.target.files[0];\n const reader = new FileReader();\n\n reader.onload = (event) => {\n const url = event.target.result;\n setUploadedBookData({\n ...uploadedBookData,\n file,\n url,\n });\n };\n reader.readAsDataURL(file);\n };\n\n const handleBookUpload = () => {\n const formData = new FormData();\n formData.append(\"title\", uploadedBookData.title);\n formData.append(\"description\", uploadedBookData.title);\n formData.append(\"addToHeroCarousel\", true);\n formData.append(\"book\", uploadedBookData.book);\n formData.append(\"image\", uploadedBookData.file);\n dispatch(postBooksRequest(formData));\n handleToggleModal();\n toast.success(\"Book Uploaded\", {\n position: \"top-right\",\n autoClose: 2000,\n hideProgressBar: false,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n });\n };\n\n const handleToggleModal = () => {\n setShowUploadPDFModal(!showUploadPDFModal);\n setUploadedBookData({\n title: \"\",\n description: \"\",\n book: null,\n image: null,\n });\n };\n\n const makeTableData = (rows = []) => {\n if (!rows.length) {\n return [];\n }\n let data = [];\n rows.map((item) => {\n let a = {\n image: (\n <img src={item.image} className={classes.avtar} alt={item.title} />\n ),\n title: item.title,\n description: item.description,\n _id: item._id,\n };\n data.push(a);\n });\n return data;\n };\n\n const handleDelete = (_id) => {\n dispatch(deleteBookRequest(_id));\n toast.success(\"Deleted\", {\n position: \"top-right\",\n autoClose: 2000,\n hideProgressBar: false,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n });\n };\n\n React.useEffect(() => {\n dispatch(getBooksRequest());\n }, [dispatch]);\n\n return (\n <div className={classes.container}>\n <div style={{ width: \"100%\" }}>\n {getBooks.isSuccess && (\n <GenericTable\n headers={[\"Image\", \"Title\", \"Description\"]}\n cellData={makeTableData(getBooks?.data)}\n keys={[\"image\", \"title\", \"description\"]}\n deleteIcon={true}\n editIcon={false}\n handleDelete={handleDelete}\n headerAlign=\"center\"\n tableCellAlign=\"right\"\n />\n )}\n </div>\n <UploadPdfModal\n showUploadPDFModal={showUploadPDFModal}\n handleToggleModal={handleToggleModal}\n uploadedBookData={uploadedBookData}\n handleFileDrop={handleFileDrop}\n handleFileInputChange={handleFileInputChange}\n handleFileImageUpload={handleFileImageUpload}\n handleBookUpload={handleBookUpload}\n setUploadedBookData={setUploadedBookData}\n />\n <Fab\n size=\"small\"\n color=\"secondary\"\n aria-label=\"add\"\n className={classes.fab}\n onClick={handleToggleModal}\n >\n <AddIcon />\n </Fab>\n </div>\n );\n};\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n width: \"100%\",\n paddingLeft: 20,\n paddingRight: 20,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n fab: {\n position: \"fixed\",\n bottom: theme.spacing(5),\n right: theme.spacing(5),\n background: \"#3ea8ad\",\n },\n avtar: {\n width: 80,\n height: 50,\n borderRadius: 5,\n },\n}));\n","import React, {useEffect, useState} from 'react'\nimport '../styles/login.scss'\nimport {Button} from \"@material-ui/core\";\n\nexport default function ChangePassword({onSubmit}) {\n\n const [state, setState] = useState({\n currentPassword: '',\n newPassword: '',\n newPasswordConfirmation: '',\n validationRules: {\n number: {\n val: false,\n },\n specialChar: {\n val: false,\n },\n uppercase: {\n val: false,\n },\n lowercase: {\n val: false,\n },\n length: {\n val: false,\n },\n passwordMatch: {\n val: false,\n },\n },\n })\n\n const handleSubmit = (e) => {\n e.preventDefault()\n onSubmit(state.currentPassword, state.newPassword, state.newPasswordConfirmation);\n }\n\n const handleChange = (value, name) => {\n let data = {...state}\n data[name] = value\n setState(data)\n }\n\n useEffect(() => {\n validatePassword(state)\n }, [state.newPassword, state.newPasswordConfirmation])\n\n const isSubmitDisabled = () => {\n let isDisabled = false\n if (state.currentPassword === '' || state.newPassword === '' || state.newPasswordConfirmation === '') {\n isDisabled = true\n }\n\n Object.entries(state.validationRules).forEach((item, key) => {\n if (item[1].val === false) {\n isDisabled = true;\n }\n })\n\n return isDisabled;\n };\n\n const validatePassword = (state) => {\n const {newPassword, newPasswordConfirmation} = state;\n const validationRules = {\n number: {\n val: /\\d/.test(newPassword),\n label: \"Contains at least 1 number\"\n },\n specialChar: {\n val: /[!@#$%^&*(),.?\":{}|<>]/.test(newPassword),\n label: \"Contains at least 1 special character\"\n },\n uppercase: {\n val: /[A-Z]/.test(newPassword),\n label: \"Contains at least 1 uppercase letter\"\n },\n lowercase: {\n val: /[a-z]/.test(newPassword),\n label: \"Contains at least 1 lowercase letter\"\n },\n length: {\n val: newPassword.length >= 12,\n label: \"Password minimum length is 12 characters\"\n },\n passwordMatch: {\n val: newPassword === newPasswordConfirmation,\n label: \"Password confirmation must match\"\n },\n };\n\n // Update error state and return whether all rules are satisfied\n setState((prev) => ({...prev, validationRules}));\n return Object.values(validationRules).every((rule) => rule);\n };\n\n return (\n <div className=\"wrapper fadeInDown\">\n\n <div id=\"formContent\">\n <h2 className=\"active\"> Change password </h2>\n\n <form contentEditable={false}>\n <input onChange={(e) => handleChange(e.target.value, 'currentPassword')} type=\"password\"\n id=\"currentPassword\" className=\"fadeIn first\" name=\"currentPassword\"\n placeholder=\"Current password\" required/>\n <input onChange={(e) => handleChange(e.target.value, 'newPassword')} type=\"password\"\n id=\"newPassword\" className=\"fadeIn first\" name=\"newPassword\" placeholder=\"New password\"\n required/>\n <input onChange={(e) => handleChange(e.target.value, 'newPasswordConfirmation')} type=\"password\"\n id=\"newPasswordConfirmation\" className=\"fadeIn first\" name=\"newPasswordConfirmation\"\n placeholder=\"Confirm new password\" required/>\n <div style={{textAlign: 'left', marginLeft: '3rem', marginTop: 16}} className=\"fadeIn first\">\n {Object.entries(state.validationRules).map(([key, item]) => (\n <div key={key} style={{color: item.val ? 'green' : 'red', fontSize: 15}}>\n {item.label}\n </div>\n ))}\n </div>\n <Button\n className=\"fadeIn second\"\n style={{marginBottom: 24, marginTop: 24}}\n variant=\"contained\"\n color=\"primary\"\n disabled={isSubmitDisabled()}\n onClick={handleSubmit}\n type=\"submit\"\n >Submit</Button>\n </form>\n\n </div>\n </div>\n )\n}\n","import ChangePassword from \"../Components/ChangePassword\";\nimport {useDispatch, useSelector} from \"react-redux\";\nimport fireAjax from \"../services\";\nimport {toast} from 'react-toastify';\nimport {logoutRequest} from \"../redux/actions\";\nimport history from \"../History\";\n\nexport default function UserChangePassword() {\n\n const dispatch = useDispatch()\n const loginData = useSelector(state => state.auth.loginData)\n\n const onSubmitHandler = (currentPassword, newPassword, newPasswordConfirmation) => {\n const apiResponse = fireAjax(\"POST\", \"users/admin/changePassword\",\n undefined, {\n \"email\": loginData.currentUser.email,\n currentPassword,\n newPassword,\n newPasswordConfirmation\n })\n\n apiResponse.then(response => {\n toast.success(response.data.message, {\n position: \"top-center\",\n autoClose: 5000,\n hideProgressBar: true,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n theme: \"colored\",\n });\n dispatch(logoutRequest());\n }).catch(error => {\n console.log(\"error\", error.response.data.message)\n toast.error(error.response.data.message, {\n position: \"top-center\",\n autoClose: 5000,\n hideProgressBar: true,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n theme: \"colored\",\n });\n })\n }\n\n return (\n <ChangePassword onSubmit={onSubmitHandler}/>\n )\n}","import React, { useState, useEffect } from 'react';\nimport Button from \"@material-ui/core/Button\";\n\nconst TimerButton = ({ countdownDuration = 60, onResendClick, buttonLabel }) => {\n const [countdown, setCountdown] = useState(countdownDuration);\n const [isButtonDisabled, setIsButtonDisabled] = useState(true);\n\n const startCountdown = () => {\n setIsButtonDisabled(true);\n setCountdown(countdownDuration);\n\n const countdownInterval = setInterval(() => {\n setCountdown((prevCountdown) => prevCountdown - 1);\n }, 1000);\n\n setTimeout(() => {\n clearInterval(countdownInterval);\n setIsButtonDisabled(false);\n }, countdownDuration * 1000);\n\n return countdownInterval;\n };\n\n useEffect(() => {\n const countdownInterval = startCountdown(); // Start countdown initially\n // Cleanup function to clear interval when component unmounts\n return () => clearInterval(countdownInterval);\n }, []); // Empty dependency array ensures this effect runs only once on mount\n\n const handleButtonClick = () => {\n if (!isButtonDisabled && onResendClick) {\n onResendClick();\n startCountdown();\n }\n };\n\n return (\n <div>\n <Button onClick={handleButtonClick} disabled={isButtonDisabled} variant=\"text\" color=\"primary\" autoCapitalize=\"off\">\n {buttonLabel} {isButtonDisabled && `in ${countdown} seconds`}\n </Button>\n </div>\n );\n};\n\nexport default TimerButton;\n","import React, { useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport appLogo from '../assets/logo.png'\nimport { otpVerificationRequest, resendOtpRequest } from '../redux/actions'\nimport validator from '../utils/validation'\nimport '../styles/login.scss'\nimport Loader from '../Components/Loader'\nimport TimerButton from \"../Components/TimerButton\";\n\nexport default function Otp(props) {\n\n const dispatch = useDispatch()\n const otpData = useSelector(state => state.auth.otpData)\n const [state, setState] = useState({ \n otpCode: '',\n errors: {},\n email: props.location.state.email\n })\n\n const handleSubmit = (e) => {\n e.preventDefault();\n const payload = { email: state.email, otpCode: state.otpCode };\n dispatch(otpVerificationRequest(payload));\n }\n\n const handleChange = (value, name) => {\n let data = { ...state }\n data[name] = value\n setState(data)\n }\n\n const resendOTP = () => {\n const payload = { email: state.email };\n dispatch(resendOtpRequest(payload));\n }\n \n return (\n <div className=\"wrapper fadeInDown\">\n <div id=\"formContent\">\n <h2 className=\"active\"> Sign In </h2>\n {/* <h2 className=\"inactive underlineHover\">Sign Up </h2> */}\n\n <div className=\"fadeIn first\">\n <img src={appLogo} id=\"icon\" alt=\"User Icon\" />\n </div>\n\n <form contentEditable={false} onSubmit={handleSubmit}>\n <input onChange={(e) => handleChange(e.target.value, 'otpCode')} type=\"text\" id=\"otp\" className=\"fadeIn second\" name=\"otpCode\" placeholder=\"Enter the one-time token sent to your email.\" required/>\n <div style={{ color: 'red', textAlign: 'left', marginLeft: '3rem', fontSize: 15, marginBottom: 10 }} >{otpData.message}</div>\n {otpData.isLoading ? <div className='loader-wrapper'><Loader /></div> : '' }\n <TimerButton buttonLabel=\"Resend OTP\" countdownDuration={60} onResendClick={resendOTP} />\n <input type=\"submit\" className=\"fadeIn fourth\" value=\"Submit\"/>\n </form>\n\n <div id=\"formFooter\">\n </div>\n\n </div>\n </div>\n )\n}\n","import React, { useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { useHistory } from \"react-router-dom\";\nimport appLogo from '../assets/logo.png'\nimport {loginRequest, logoutRequest} from '../redux/actions'\nimport validator from '../utils/validation'\nimport '../styles/login.scss'\nimport Loader from '../Components/Loader'\nimport {Link} from \"@material-ui/core\";\nimport fireAjax from \"../services\";\nimport {toast} from \"react-toastify\";\n\nexport default function ForgotPassword() {\n\n const dispatch = useDispatch()\n const history = useHistory();\n const loginData = useSelector(state => state.auth.loginData)\n const [state, setState] = useState({ \n email: '',\n })\n\n const handleSubmit = (e) => {\n e.preventDefault()\n const apiResponse = fireAjax(\"POST\", \"users/admin/resetPassword\",\n undefined, {\n \"email\": state.email,\n })\n\n apiResponse.then(response => {\n toast.success(response.data.message, {\n position: \"top-center\",\n autoClose: 5000,\n hideProgressBar: true,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n theme: \"colored\",\n });\n history.push(\"/\")\n }).catch(error => {\n console.log(\"error\", error.response.data.message)\n toast.error(error.response.data.message, {\n position: \"top-center\",\n autoClose: 5000,\n hideProgressBar: true,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n theme: \"colored\",\n });\n })\n }\n\n const handleChange = (value, name) => {\n let data = { ...state }\n data[name] = value\n setState(data)\n }\n \n return (\n <div className=\"wrapper fadeInDown\">\n \n <div id=\"formContent\">\n <h2 className=\"active\"> Reset Password </h2>\n {/* <h2 className=\"inactive underlineHover\">Sign Up </h2> */}\n\n <form contentEditable={false} onSubmit={handleSubmit}>\n <input onChange={(e) => handleChange(e.target.value, 'email')} type=\"text\" id=\"login\" className=\"fadeIn second\" name=\"email\" placeholder=\"Email address\" required/>\n <div style={{ color: 'red', textAlign: 'left', marginLeft: '3rem', fontSize: 15, marginBottom: 10 }} >{loginData.message}</div>\n <input type=\"submit\" className=\"fadeIn fourth\" value=\"Submit\"/>\n </form>\n\n <div id=\"formFooter\">\n </div>\n\n </div>\n </div>\n )\n}\n","import ChangePassword from \"../Components/ChangePassword\";\nimport {useDispatch, useSelector} from \"react-redux\";\nimport fireAjax from \"../services\";\nimport {toast} from 'react-toastify';\nimport {logoutRequest} from \"../redux/actions\";\nimport history from \"../History\";\nimport {useHistory} from \"react-router-dom\";\nimport {useState} from \"react\";\n\nexport default function ForceChangePassword(props) {\n\n const dispatch = useDispatch()\n const history = useHistory();\n const loginData = useSelector(state => state.auth.loginData)\n\n const [state, setState] = useState({\n email: props.location.state.email\n })\n\n const onSubmitHandler = (currentPassword, newPassword, newPasswordConfirmation) => {\n const apiResponse = fireAjax(\"POST\", \"users/admin/changePassword\",\n undefined, {\n \"email\": state.email,\n currentPassword,\n newPassword,\n newPasswordConfirmation,\n loginFlow: true,\n })\n\n apiResponse.then(response => {\n toast.success(response.data.message, {\n position: \"top-center\",\n autoClose: 5000,\n hideProgressBar: true,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n theme: \"colored\",\n });\n history.push(\"/otp\", {\n email: state.email\n })\n }).catch(error => {\n console.log(\"error\", error.response.data.message)\n toast.error(error.response.data.message, {\n position: \"top-center\",\n autoClose: 5000,\n hideProgressBar: true,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n theme: \"colored\",\n });\n })\n }\n\n return (\n <ChangePassword onSubmit={onSubmitHandler}/>\n )\n}","import React, { useEffect, useMemo, useState } from \"react\";\nimport Fab from \"@material-ui/core/Fab\";\nimport AddIcon from \"@material-ui/icons/Add\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n getVideoBankRequest,\n deleteVideobankRequest,\n videoModalRequest,\n getVideoRequest,\n getKeyConceptDataRequest,\n postKeyConceptDataRequest,\n deleteKeyConceptDataRequest,\n patchKeyConceptDataRequest,\n patchOrderKeyConceptDataRequest,\n uploadVideoRequest,\n setModalDataRequest,\n} from \"../redux/actions\";\nimport Loader from \"../Components/Loader\";\nimport DeleteIcon from \"@material-ui/icons/Delete\";\nimport Error from \"../Components/Error\";\nimport AddVideoBankModal from \"../Components/AddQuestionBankModal\";\nimport PdfViewer from \"../Components/PdfViewer\";\nimport VideoBankSelectType from \"../Components/VideoBankSelectType\";\nimport { DragDropContext, Draggable, Droppable } from \"react-beautiful-dnd\";\n\nimport CarouselItem from \"../Components/CarouselItem\";\nimport FileUploader from \"../Components/VideoUploader\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n padding: 10,\n [theme.breakpoints.down(\"sm\")]: {\n padding: 0,\n },\n },\n fab: {\n position: \"fixed\",\n bottom: theme.spacing(5),\n right: theme.spacing(5),\n background: \"#3ea8ad\",\n \"&:hover\": {\n background: \"#3ea8ad\",\n },\n },\n videoWrapper: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n marginTop: \"1rem\",\n [theme.breakpoints.down(\"sm\")]: {},\n },\n subtitle: {\n fontSize: \"1.1rem\",\n },\n videoDetailsWrapper: {\n marginLeft: \"1rem\",\n [theme.breakpoints.down(\"sm\")]: {},\n width: \"50%\",\n },\n titleWrapper: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n marginBottom: 20,\n },\n playlistTitle: {\n fontWeight: \"bold\",\n fontSize: \"1.2rem\",\n },\n deleteIcon: {\n cursor: \"pointer\",\n },\n contentWrapper: {\n display: \"flex\",\n // justifyContent: \"center\",\n alignItems: \"center\",\n width: \"95%\",\n },\n pdfIcon: {\n width: 100,\n },\n pdfIconWrapper: {\n minWidth: 250,\n },\n keyConceptTypeWrapper: {},\n emptyContent: {\n textAlign: \"center\",\n marginTop: \"20vh\",\n },\n}));\n\nexport default function KeyConcept() {\n const classes = useStyles();\n const dispatch = useDispatch();\n const keyConcept = useSelector((state) => state.course.keyConcept);\n const [itemToDelete, setItemToDelete] = useState(\"\");\n const videos = useSelector((state) => state.course.videos);\n const isLoading = useSelector((state) => state.config.isLoading);\n // const [state, setState] = useState({ videoBankType: \"monthlyQa\" });\n const [videoList, setVideoList] = useState([]);\n useMemo(() => {\n if (\n keyConcept.data &&\n Array.isArray(keyConcept.data) &&\n keyConcept.data.length > 0\n ) {\n setVideoList(keyConcept.data);\n }\n }, [keyConcept]);\n // useEffect(() => {\n // if (!videos.isSuccess) {\n // dispatch(getVideoRequest());\n // }\n // dispatch(getVideoBankRequest());\n // }, []);\n useEffect(() => {\n dispatch(getKeyConceptDataRequest());\n }, []);\n\n const handleUploadKeyConcept = (formData) => {\n // console.log(data);\n dispatch(uploadVideoRequest({ formData, uploadType: \"keyConcept\" }));\n };\n\n const handleUpdateKeyConcept = (data) => {\n // console.log(data);\n dispatch(patchKeyConceptDataRequest(data));\n };\n\n const handleEditVideo = (item) => {\n dispatch(setModalDataRequest(item));\n dispatch(videoModalRequest(true));\n };\n\n const handleDeleteVideo = (id) => {\n dispatch(deleteKeyConceptDataRequest({ _id: id }));\n // console.log(\"Delete Video\", id);\n };\n\n const handleChangeVideoVisibility = (data) => {\n const newData = { appearInCarousel: !data.appearInCarousel };\n\n dispatch(\n patchKeyConceptDataRequest({\n payload: newData,\n _id: data._id,\n typeUpdate: \"visibility\",\n })\n );\n };\n const handleDragEnd = (result) => {\n const { source, destination } = result;\n\n // If dropped outside the list\n if (!destination) return;\n\n if (destination.index === source.index) return;\n\n // Reorder the items\n const reorderedItems = [...videoList];\n const [movedItem] = reorderedItems.splice(source.index, 1);\n reorderedItems.splice(destination.index, 0, movedItem);\n const newOrder = reorderedItems.map((item, index) => {\n return { _id: item._id, sort_index: index };\n });\n\n dispatch(patchOrderKeyConceptDataRequest({ order: newOrder }));\n setVideoList(reorderedItems);\n };\n const renderKeyConcept = () => {\n return (\n <DragDropContext onDragEnd={handleDragEnd}>\n <Droppable droppableId={`key-concept-dropable`}>\n {(provided) => {\n return (\n <div ref={provided.innerRef} {...provided.droppableProps}>\n {videoList.map((item, index) => {\n return (\n <Draggable\n key={item?._id}\n draggableId={item?._id}\n index={index}\n >\n {(provided) => (\n <div\n ref={provided.innerRef}\n {...provided.draggableProps}\n {...provided.dragHandleProps}\n className={classes.videoWrapper}\n style={{\n ...provided.draggableProps.style,\n marginTop: index === 0 ? 0 : \"15px\",\n }}\n >\n <CarouselItem\n key={index}\n data={item}\n handleEdit={handleEditVideo}\n handleDelete={handleDeleteVideo}\n handleChangeVisibility={handleChangeVideoVisibility}\n showEdit\n />\n </div>\n )}\n </Draggable>\n );\n })}\n {provided.placeholder}\n </div>\n );\n }}\n </Droppable>\n </DragDropContext>\n );\n };\n\n const handleOpenModal = () => {\n dispatch(videoModalRequest(true));\n };\n\n return (\n <div className={classes.root}>\n {/* <AddVideoBankModal /> */}\n <FileUploader\n handleUpload={handleUploadKeyConcept}\n handleEdit={handleUpdateKeyConcept}\n />\n <div className={classes.titleWrapper}>\n <div className={classes.playlistTitle}>Key Concept</div>\n </div>\n {/* {keyConcept.isSuccess && (\n <div className={classes.videoBankTypeWrapper}>\n <VideoBankSelectType\n name=\"videoBankType\"\n onSelect={(videoBankType) => setState({ ...state, videoBankType })}\n />\n </div>\n )} */}\n {keyConcept.isLoading && <Loader variant=\"big\" />}\n {keyConcept.isSuccess && renderKeyConcept()}\n {keyConcept.isError && <Error message={keyConcept.message} />}\n <Fab\n size=\"small\"\n onClick={handleOpenModal}\n color=\"secondary\"\n aria-label=\"add\"\n className={classes.fab}\n >\n <AddIcon />\n </Fab>\n </div>\n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport { BrowserRouter as Router, Switch, Route, Link } from \"react-router-dom\";\nimport TopCarousel from \"./screens/TopCarousel\";\nimport PlayList from \"./screens/PlayList\";\nimport Trainers from \"./screens/Trainers\";\nimport MiniDrawer from \"./screens/Demo\";\nimport QuestionBank from \"./screens/QuestionBank\";\nimport VideoBank from \"./screens/VideoBank\";\nimport ActionableInsight from \"./screens/ActionableInsight\";\nimport Users from \"./screens/Users\";\nimport Coupon from \"./screens/Coupon\";\nimport Login from \"./screens/Login\";\nimport { useSelector } from \"react-redux\";\nimport UserDashboard from \"./screens/UserDashboard\";\nimport SendNotification from \"./screens/Notification\";\nimport { Pdf } from \"./screens/Pdf\";\nimport UserChangePassword from \"./screens/UserChangePassword\";\nimport { ConnectedRouter } from \"connected-react-router\";\nimport history from \"./History\";\nimport Otp from \"./screens/Otp\";\nimport ForgotPassword from \"./screens/ForgotPassword\";\nimport ForceChangePassword from \"./screens/ForceChangePassword\";\nimport KeyConcept from \"./screens/KeyConcept\";\n\nexport default function AppNavigator() {\n const loginData = useSelector((state) => state.auth.loginData);\n const [currentUser, setCurrentUser] = useState([]);\n useEffect(() => {\n const currentUser = JSON.parse(localStorage.getItem(\"currentUser\"));\n setCurrentUser(currentUser);\n }, [loginData]);\n\n return (\n <ConnectedRouter history={history}>\n {currentUser && currentUser.authenticated ? (\n <MiniDrawer>\n <Switch>\n <Route exact path=\"/\">\n <UserDashboard />\n </Route>\n <Route path=\"/programme\">\n <PlayList />\n </Route>\n <Route path=\"/notification\">\n <SendNotification />\n </Route>\n <Route path=\"/top-carousel\">\n <TopCarousel />\n </Route>\n <Route path=\"/trainers\">\n <Trainers />\n </Route>\n <Route path=\"/question-bank\">\n <QuestionBank />\n </Route>\n <Route path=\"/actionable-insight\">\n <ActionableInsight />\n </Route>\n <Route path=\"/key-concept\">\n <KeyConcept />\n </Route>\n <Route path=\"/video-bank\">\n <VideoBank />\n </Route>\n <Route path=\"/users\">\n <Users />\n </Route>\n <Route path=\"/pdf\">\n <Pdf />\n </Route>\n <Route path=\"/changePassword\">\n <UserChangePassword />\n </Route>\n <Route path=\"/coupon\">\n <Coupon />\n </Route>\n </Switch>\n </MiniDrawer>\n ) : (\n <>\n <Switch>\n <Route exact path=\"/\" component={Login} />\n <Route path=\"/otp\" component={Otp} />\n <Route path=\"/forgotPassword\" component={ForgotPassword} />\n <Route\n path=\"/forceChangePassword\"\n component={ForceChangePassword}\n />\n </Switch>\n </>\n )}\n </ConnectedRouter>\n );\n}\n","import { handleActions } from \"redux-actions\";\nimport update from \"immutability-helper\";\nimport * as constants from \"../constants\";\nconst initialState = {\n subscriptionStatus: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message:''\n },\n\n loginData: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message:'',\n currentUser: window.localStorage.getItem(\"currentUser\") ? JSON.parse(window.localStorage.getItem(\"currentUser\")) : null\n },\n\n otpData: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message:''\n },\n\n userDashboardData: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message:''\n },\n\n\n sendNotification: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message:''\n },\n notificationList: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message:''\n }\n};\n\n//functions to update user subscription\nconst updateUserSubscriptionRequest = (state, action) => {\n return update(state, {\n subscriptionStatus: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message:{$set:''},\n data: { $set:{} }\n }\n });\n};\n\nconst updateUserSubscriptionSuccess = (state, action) => {\n return update(state, {\n subscriptionStatus: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message:{$set:action.payload.message || ''},\n data: { $set: action.payload }\n }\n });\n};\n\nconst updateUserSubscriptionError = (state, action) => {\n return update(state, {\n subscriptionStatus: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message:{$set:action.payload.message || ''},\n data: { $set: action.payload }\n }\n });\n};\n\n//functions to login\nconst loginRequest = (state, action) => {\n return update(state, {\n loginData: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message:{$set:''},\n data: { $set:{} }\n }\n });\n};\n\nconst loginSuccess = (state, action) => {\n return update(state, {\n loginData: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message:{$set:action.payload.message || ''},\n data: { $set: action.payload }\n }\n });\n};\n\nconst loginError = (state, action) => {\n return update(state, {\n loginData: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message:{$set:action.payload.message || ''},\n data: { $set: action.payload }\n }\n });\n};\n\nconst setCurrentUser = (state, action) => {\n return update(state, {\n loginData: {\n currentUser: { $set: action.payload }\n }\n });\n};\n\nconst logoutRequest = (state, action) => {\n return update(state, {\n loginData: {\n currentUser: { $set: null }\n }\n });\n};\n\n\n//functions to OTP\nconst otpVerificationRequest = (state, action) => {\n return update(state, {\n otpData: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message:{$set:''},\n data: { $set:{} }\n }\n });\n};\n\nconst otpVerificationSuccess = (state, action) => {\n return update(state, {\n otpData: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message:{$set:action.payload.message || ''},\n data: { $set: action.payload }\n }\n });\n};\n\nconst otpVerificationError = (state, action) => {\n return update(state, {\n otpData: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message:{$set:action.payload.message || ''},\n data: { $set: action.payload }\n }\n });\n};\n\n//functions to Resend OTP\nconst resendOtpRequest = (state, action) => {\n return update(state, {\n otpData: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message:{$set:''},\n data: { $set:{} }\n }\n });\n};\n\nconst resendOtpSuccess = (state, action) => {\n return update(state, {\n otpData: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message:{$set:action.payload.message || ''},\n data: { $set: action.payload }\n }\n });\n};\n\nconst resendOtpError = (state, action) => {\n return update(state, {\n otpData: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message:{$set:action.payload.message || ''},\n data: { $set: action.payload }\n }\n });\n};\n\n\n//end\n//functions to login\nconst getDashboardRequest = (state, action) => {\n return update(state, {\n userDashboardData: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message:{$set:''},\n data: { $set:{} }\n }\n });\n};\n\nconst getDashboardSuccess = (state, action) => {\n return update(state, {\n userDashboardData: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message:{$set:action.payload.message || ''},\n data: { $set: action.payload }\n }\n });\n};\n\nconst getDashboardError = (state, action) => {\n return update(state, {\n userDashboardData: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message:{$set:action.payload.message || ''},\n data: { $set: action.payload }\n }\n });\n};\n\n//emd\n\nconst sendNotificationdRequest = (state, action) => {\n return update(state, {\n sendNotification: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message:{$set:''},\n data: { $set:{} }\n }\n });\n};\n\nconst sendNotificationSuccess = (state, action) => {\n return update(state, {\n sendNotification: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message:{$set:action.payload.message || ''},\n data: { $set: action.payload }\n }\n });\n};\n\nconst sendNotificationError = (state, action) => {\n return update(state, {\n sendNotification: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message:{$set:action.payload.message || ''},\n data: { $set: action.payload }\n }\n });\n};\n\n\n\nconst getNotificationdRequest = (state, action) => {\n return update(state, {\n notificationList: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message:{$set:''},\n // data: { $set:{} }\n }\n });\n};\n\nconst getNotificationSuccess = (state, action) => {\n return update(state, {\n notificationList: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message:{$set:action.payload.message || ''},\n data: { $set: action.payload }\n }\n });\n};\n\nconst getNotificationError = (state, action) => {\n return update(state, {\n notificationList: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message:{$set:action.payload.message || ''},\n data: { $set: action.payload }\n }\n });\n};\n\nexport default handleActions(\n {\n [constants.UPDATE_USER_SUBSCRIPTION_REQUEST]: updateUserSubscriptionRequest,\n [constants.UPDATE_USER_SUBSCRIPTION_SUCCESS]: updateUserSubscriptionSuccess,\n [constants.UPDATE_USER_SUBSCRIPTION_ERROR]: updateUserSubscriptionError,\n\n [constants.LOGIN_REQUEST]: loginRequest,\n [constants.LOGIN_SUCCESS]: loginSuccess,\n [constants.LOGIN_ERROR]: loginError,\n\n [constants.OTP_VERIFICATION_REQUEST]: otpVerificationRequest,\n [constants.OTP_VERIFICATION_SUCCESS]: otpVerificationSuccess,\n [constants.OTP_VERIFICATION_ERROR]: otpVerificationError,\n\n [constants.SET_CURRENT_USER]: setCurrentUser,\n\n [constants.LOGOUT_REQUEST]: logoutRequest,\n\n\n [constants.GET_DASHBOARD_REQUEST]: getDashboardRequest,\n [constants.GET_DASHBOARD_SUCCESS]: getDashboardSuccess,\n [constants.GET_DASHBOARD_ERROR]: getDashboardError,\n\n [constants.SEND_NOTIFICATION_REQUEST]: sendNotificationdRequest,\n [constants.SEND_NOTIFICATION_SUCCESS]: sendNotificationSuccess,\n [constants.SEND_NOTIFICATION_ERROR]: sendNotificationError,\n\n [constants.GET_NOTIFICATION_REQUEST]: getNotificationdRequest,\n [constants.GET_NOTIFICATION_SUCCESS]: getNotificationSuccess,\n [constants.GET_NOTIFICATION_ERROR]: getNotificationError,\n\n },\n initialState\n);\n","import { createAction, handleActions } from \"redux-actions\";\nimport update from \"immutability-helper\";\nimport * as constants from \"../constants\";\nconst initialState = {\n createTrainer: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n allTrainers: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n courses: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n createCourses: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n videos: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n createVideos: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n createQuestion: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n heroCarousel: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n videobank: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n addItemTovideobank: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n userlist: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n questionCategories: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n selectedQuestionCategory: {\n data: {},\n },\n\n updateQuestion: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n upgradeUserPremiun: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n\n upgradeUserData: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n coupons: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n newCoupon: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n grantPremium: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n actionableInsight: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n createActionableInsight: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n updateActionableInsight: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n orderActionableInsight: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n keyConcept: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n createKeyConcept: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n updateKeyConcept: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n orderKeyConcept: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n topCarousel: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n createTopCarousel: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n updateTopCarousel: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n orderTopCarousel: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n updateVideoBank: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n orderVideoBank: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n};\n\nconst createTrainerRequest = (state, action) => {\n return update(state, {\n createTrainer: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: {} },\n },\n });\n};\n\nconst createTrainerSuccess = (state, action) => {\n return update(state, {\n createTrainer: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst createTrainerError = (state, action) => {\n return update(state, {\n createTrainer: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: {} },\n },\n });\n};\n//end\n\nconst getTrainersRequest = (state, action) => {\n return update(state, {\n allTrainers: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: {} },\n },\n });\n};\n\nconst getTrainersSuccess = (state, action) => {\n return update(state, {\n allTrainers: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst getTrainersError = (state, action) => {\n return update(state, {\n allTrainers: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: {} },\n },\n });\n};\n//end\n\nconst getCoursesRequest = (state, action) => {\n return update(state, {\n courses: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: {} },\n },\n });\n};\n\nconst getCoursesSuccess = (state, action) => {\n return update(state, {\n courses: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst getCoursesError = (state, action) => {\n return update(state, {\n courses: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: {} },\n },\n });\n};\n//end\n\nconst createCoursesRequest = (state, action) => {\n return update(state, {\n createCourses: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: {} },\n },\n });\n};\n\nconst createCoursesSuccess = (state, action) => {\n return update(state, {\n createCourses: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst createCoursesError = (state, action) => {\n return update(state, {\n createCourses: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: {} },\n },\n });\n};\n//end\n\nconst getVidoesRequest = (state, action) => {\n return update(state, {\n videos: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: {} },\n },\n });\n};\n\nconst getVidoesSuccess = (state, action) => {\n return update(state, {\n videos: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst getVidoesError = (state, action) => {\n return update(state, {\n videos: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: {} },\n },\n });\n};\n\n//end\n\nconst createVideoRequest = (state, action) => {\n return update(state, {\n createVideos: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: {} },\n },\n });\n};\n\nconst createVideoSuccess = (state, action) => {\n return update(state, {\n createVideos: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst createVideoError = (state, action) => {\n return update(state, {\n createVideos: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: {} },\n },\n });\n};\n\n//end\n\nconst createQuestionRequest = (state, action) => {\n return update(state, {\n createQuestion: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: {} },\n },\n });\n};\n\nconst createQuestionSuccess = (state, action) => {\n const { categoryId, parentCategoryId, data } = action.payload;\n let questionCategories = { ...state.questionCategories };\n const parentIndex = questionCategories.data.findIndex(\n (a) => a._id === parentCategoryId\n );\n const categoryIndex = questionCategories.data[\n parentIndex\n ].subCategories.findIndex((a) => a._id === categoryId);\n questionCategories.data[parentIndex].subCategories[\n categoryIndex\n ].questions.push(data);\n\n return update(state, {\n createQuestion: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n questionCategories: { $set: questionCategories },\n });\n};\n\nconst createQuestionError = (state, action) => {\n return update(state, {\n createQuestion: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: {} },\n },\n });\n};\n\n//end\n\nconst getcCarouselDataRequest = (state, action) => {\n return update(state, {\n heroCarousel: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: {} },\n },\n });\n};\n\nconst getcCarouselDataSuccess = (state, action) => {\n return update(state, {\n heroCarousel: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst getcCarouselDataError = (state, action) => {\n return update(state, {\n heroCarousel: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: action.payload.message },\n },\n });\n};\n\n//end\n\nconst getVideobankRequest = (state, action) => {\n return update(state, {\n videobank: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: {} },\n },\n });\n};\n\nconst getVideobankSuccess = (state, action) => {\n const data = action.payload.filter((item) => item.video);\n return update(state, {\n videobank: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: data },\n },\n });\n};\n\nconst getVideobankError = (state, action) => {\n return update(state, {\n videobank: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: action.payload.message },\n },\n });\n};\n\n//end\n\nconst addItemTovideobankRequest = (state, action) => {\n return update(state, {\n addItemTovideobank: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: {} },\n },\n });\n};\n\nconst addItemTovideobankSuccess = (state, action) => {\n return update(state, {\n addItemTovideobank: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst addItemTovideobankError = (state, action) => {\n return update(state, {\n addItemTovideobank: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: action.payload.message },\n },\n });\n};\n\n//end\n\nconst getUserListRequest = (state, action) => {\n return update(state, {\n userlist: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n // data: { $set:{} }\n },\n });\n};\n\nconst getUserListSuccess = (state, action) => {\n return update(state, {\n userlist: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst getUserListError = (state, action) => {\n return update(state, {\n userlist: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: action.payload.message },\n },\n });\n};\n\n//end\n\nconst getQuestionCategoryRequest = (state, action) => {\n return update(state, {\n questionCategories: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: {} },\n },\n });\n};\n\nconst getQuestionCategorySuccess = (state, action) => {\n let selectedQuestionCategory = {};\n if (state.selectedQuestionCategory.data._id) {\n selectedQuestionCategory = action.payload.find(\n (a) => a._id === state.selectedQuestionCategory.data._id\n );\n } else {\n selectedQuestionCategory = action.payload[0];\n }\n\n return update(state, {\n questionCategories: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n selectedQuestionCategory: {\n data: { $set: selectedQuestionCategory },\n },\n });\n};\n\nconst getQuestionCategoryError = (state, action) => {\n return update(state, {\n questionCategories: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: [] },\n },\n });\n};\n\nconst createQuestionCategorySuccess = (state, action) => {\n const { parentCategoryId } = action.payload;\n const data = [...state.questionCategories.data];\n const parentIndex = state.questionCategories.data.findIndex(\n (a) => a._id === parentCategoryId\n );\n let payload = { ...action.payload };\n payload.questions = action.payload.questions || [];\n data[parentIndex].subCategories.push(payload);\n\n return update(state, {\n questionCategories: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: data },\n },\n });\n};\n\nconst deleteQuestionCategorySuccess = (state, action) => {\n const { categoryId, parentCategoryId } = action.payload;\n let questionCategories = { ...state.questionCategories };\n const parentIndex = questionCategories.data.findIndex(\n (a) => a._id === parentCategoryId\n );\n questionCategories.data[parentIndex].subCategories = questionCategories.data[\n parentIndex\n ].subCategories.filter((a) => a._id !== categoryId);\n if (!questionCategories.data.length) {\n questionCategories.isSuccess = false;\n questionCategories.isError = true;\n questionCategories.message = \"No Question Category has been added yet.\";\n }\n return update(state, {\n questionCategories: { $set: questionCategories },\n });\n};\n\nconst updateQuestionCategorySuccess = (state, action) => {\n const { categoryId, data } = action.payload;\n const { name, parentCategoryId } = data;\n let questionCategories = { ...state.questionCategories };\n const parentIndex = questionCategories.data.findIndex(\n (a) => a._id === parentCategoryId\n );\n const categoryIndex = questionCategories.data[\n parentIndex\n ].subCategories.findIndex((a) => a._id == categoryId);\n questionCategories.data[parentIndex].subCategories[categoryIndex].name = name;\n\n return update(state, {\n questionCategories: { $set: questionCategories },\n });\n};\n\nconst selectQuestionCategorySuccess = (state, action) => {\n const data = state.questionCategories.data.find(\n (a) => a._id === action.payload._id\n );\n return update(state, {\n selectedQuestionCategory: {\n data: { $set: data },\n },\n });\n};\n\n//end\n\nconst updateQuestionRequest = (state, action) => {\n return update(state, {\n updateQuestion: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst updateQuestionSuccess = (state, action) => {\n return update(state, {\n updateQuestion: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: {} },\n },\n });\n};\n\nconst updateQuestionError = (state, action) => {\n return update(state, {\n updateQuestion: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: {} },\n },\n });\n};\n\nconst upgradeUserPremiumRequest = (state, action) => {\n return update(state, {\n upgradeUserPremiun: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n },\n });\n};\n\nconst upgradeUserPremiumSuccess = (state, action) => {\n return update(state, {\n upgradeUserPremiun: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst upgradeUserPremiumError = (state, action) => {\n return update(state, {\n upgradeUserPremiun: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: action.payload.message },\n },\n });\n};\n\nconst upgradeUserDataRequest = (state, action) => {\n return update(state, {\n upgradeUserData: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n },\n });\n};\n\nconst upgradeUserDataSuccess = (state, action) => {\n return update(state, {\n upgradeUserData: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action },\n },\n });\n};\n\nconst upgradeUserDataError = (state, action) => {\n return update(state, {\n upgradeUserData: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: action.payload.message },\n },\n });\n};\n\nconst createCouponRequest = (state, action) => {\n return update(state, {\n newCoupon: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: {} },\n },\n });\n};\n\nconst createCouponSuccess = (state, action) => {\n return update(state, {\n newCoupon: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst createCouponError = (state, action) => {\n return update(state, {\n newCoupon: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: {} },\n },\n });\n};\n\nconst getCouponListRequest = (state, action) => {\n return update(state, {\n coupons: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: [] },\n },\n });\n};\n\nconst getCouponListSuccess = (state, action) => {\n return update(state, {\n coupons: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst getCouponListError = (state, action) => {\n return update(state, {\n coupons: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: [] },\n },\n });\n};\n\nconst postGrantPremiumRequest = (state, action) => {\n return update(state, {\n grantPremium: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: {} },\n },\n });\n};\n\nconst postGrantPremiumSuccess = (state, action) => {\n return update(state, {\n grantPremium: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst postGrantPremiumError = (state, action) => {\n return update(state, {\n grantPremium: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: {} },\n },\n });\n};\n\nconst postGrantPremiumManyRequest = (state, action) => {\n return update(state, {\n grantPremium: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: [] },\n },\n });\n};\n\nconst postGrantPremiumManySuccess = (state, action) => {\n return update(state, {\n grantPremium: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst postGrantPremiumManyError = (state, action) => {\n return update(state, {\n grantPremium: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: {} },\n },\n });\n};\n\n//Actionable Insight\nconst getActionableInsightRequest = (state, action) => {\n return update(state, {\n actionableInsight: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: [] },\n },\n });\n};\n\nconst getActionableInsightSuccess = (state, action) => {\n return update(state, {\n actionableInsight: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst getActionableInsightError = (state, action) => {\n return update(state, {\n actionableInsight: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: [] },\n },\n });\n};\n\nconst postActionableInsightRequest = (state, action) => {\n return update(state, {\n createActionableInsight: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: [] },\n },\n });\n};\n\nconst postActionableInsightSuccess = (state, action) => {\n return update(state, {\n createActionableInsight: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst postActionableInsightError = (state, action) => {\n return update(state, {\n createActionableInsight: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: [] },\n },\n });\n};\n\nconst patchActionableInsightRequest = (state, action) => {\n return update(state, {\n updateActionableInsight: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: [] },\n },\n });\n};\n\nconst patchActionableInsightSuccess = (state, action) => {\n return update(state, {\n updateActionableInsight: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst patchActionableInsightError = (state, action) => {\n return update(state, {\n updateActionableInsight: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: [] },\n },\n });\n};\n\nconst patchOrderActionableInsightRequest = (state, action) => {\n return update(state, {\n orderActionableInsight: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: [] },\n },\n });\n};\n\nconst patchOrderActionableInsightSuccess = (state, action) => {\n return update(state, {\n orderActionableInsight: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst patchOrderActionableInsightError = (state, action) => {\n return update(state, {\n orderActionableInsight: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: [] },\n },\n });\n};\n\n//Key Concept\nconst getKeyConceptRequest = (state, action) => {\n return update(state, {\n keyConcept: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: [] },\n },\n });\n};\n\nconst getKeyConceptSuccess = (state, action) => {\n return update(state, {\n keyConcept: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst getKeyConceptError = (state, action) => {\n return update(state, {\n keyConcept: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: [] },\n },\n });\n};\n\nconst postKeyConceptRequest = (state, action) => {\n return update(state, {\n createKeyConcept: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: [] },\n },\n });\n};\n\nconst postKeyConceptSuccess = (state, action) => {\n return update(state, {\n createKeyConcept: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst postKeyConceptError = (state, action) => {\n return update(state, {\n createKeyConcept: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: [] },\n },\n });\n};\n\nconst patchKeyConceptRequest = (state, action) => {\n return update(state, {\n updateKeyConcept: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: [] },\n },\n });\n};\n\nconst patchKeyConceptSuccess = (state, action) => {\n return update(state, {\n updateKeyConcept: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst patchKeyConceptError = (state, action) => {\n return update(state, {\n updateKeyConcept: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: [] },\n },\n });\n};\n\nconst patchOrderKeyConceptRequest = (state, action) => {\n return update(state, {\n orderKeyConcept: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: [] },\n },\n });\n};\n\nconst patchOrderKeyConceptSuccess = (state, action) => {\n return update(state, {\n orderKeyConcept: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst patchOrderKeyConceptError = (state, action) => {\n return update(state, {\n orderKeyConcept: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: [] },\n },\n });\n};\n\n//Top Carousel\nconst getTopCarouselRequest = (state, action) => {\n return update(state, {\n topCarousel: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: [] },\n },\n });\n};\n\nconst getTopCarouselSuccess = (state, action) => {\n return update(state, {\n topCarousel: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst getTopCarouselError = (state, action) => {\n return update(state, {\n topCarousel: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: [] },\n },\n });\n};\n\nconst postTopCarouselRequest = (state, action) => {\n return update(state, {\n createTopCarousel: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: [] },\n },\n });\n};\n\nconst postTopCarouselSuccess = (state, action) => {\n return update(state, {\n createTopCarousel: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst postTopCarouselError = (state, action) => {\n return update(state, {\n createTopCarousel: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: [] },\n },\n });\n};\n\nconst patchTopCarouselRequest = (state, action) => {\n return update(state, {\n updateTopCarousel: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: [] },\n },\n });\n};\n\nconst patchTopCarouselSuccess = (state, action) => {\n return update(state, {\n updateTopCarousel: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst patchTopCarouselError = (state, action) => {\n return update(state, {\n updateTopCarousel: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: [] },\n },\n });\n};\n\nconst patchOrderTopCarouselRequest = (state, action) => {\n return update(state, {\n orderTopCarousel: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: [] },\n },\n });\n};\n\nconst patchOrderTopCarouselSuccess = (state, action) => {\n return update(state, {\n orderTopCarousel: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst patchOrderTopCarouselError = (state, action) => {\n return update(state, {\n orderTopCarousel: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: [] },\n },\n });\n};\n\n//Video Bank\nconst patchVideoBankRequest = (state, action) => {\n return update(state, {\n updateVideoBank: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: [] },\n },\n });\n};\n\nconst patchVideoBankSuccess = (state, action) => {\n return update(state, {\n updateVideoBank: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst patchVideoBankError = (state, action) => {\n return update(state, {\n updateVideoBank: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: [] },\n },\n });\n};\n\nconst patchOrderVideoBankRequest = (state, action) => {\n return update(state, {\n orderVideoBank: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: [] },\n },\n });\n};\n\nconst patchOrderVideoBankSuccess = (state, action) => {\n return update(state, {\n orderVideoBank: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\n\nconst patchOrderVideoBankError = (state, action) => {\n return update(state, {\n orderVideoBank: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: [] },\n },\n });\n};\nexport default handleActions(\n {\n [constants.CREATE_TRAINER_REQUEST]: createTrainerRequest,\n [constants.CREATE_TRAINER_SUCCESS]: createTrainerSuccess,\n [constants.CREATE_TRAINER_ERROR]: createTrainerError,\n\n [constants.GET_TRAINERS_REQUEST]: getTrainersRequest,\n [constants.GET_TRAINERS_SUCCESS]: getTrainersSuccess,\n [constants.GET_TRAINERS_ERROR]: getTrainersError,\n\n [constants.GET_COURSELIST_REQUEST]: getCoursesRequest,\n [constants.GET_COURSELIST_SUCCESS]: getCoursesSuccess,\n [constants.GET_COURSELIST_ERROR]: getCoursesError,\n\n [constants.CREATE_COURSE_REQUEST]: createCoursesRequest,\n [constants.CREATE_COURSE_SUCCESS]: createCoursesSuccess,\n [constants.CREATE_COURSE_ERROR]: createCoursesError,\n\n [constants.GET_CAROUSEL_DATA_REQUEST]: getcCarouselDataRequest,\n [constants.GET_CAROUSEL_DATA_SUCCESS]: getcCarouselDataSuccess,\n [constants.GET_CAROUSEL_DATA_ERROR]: getcCarouselDataError,\n\n [constants.GET_VIDEO_REQUEST]: getVidoesRequest,\n [constants.GET_VIDEO_SUCCESS]: getVidoesSuccess,\n [constants.GET_VIDEO_ERROR]: getVidoesError,\n\n [constants.UPLOAD_VIDEO_REQUEST]: createVideoRequest,\n [constants.UPLOAD_VIDEO_SUCCESS]: createVideoSuccess,\n [constants.UPLOAD_VIDEO_ERROR]: createVideoError,\n\n [constants.CREATE_QUESTION_REQUEST]: createQuestionRequest,\n [constants.CREATE_QUESTION_SUCCESS]: createQuestionSuccess,\n [constants.CREATE_QUESTION_ERROR]: createQuestionError,\n\n [constants.GET_VIDEOBANK_REQUEST]: getVideobankRequest,\n [constants.GET_VIDEOBANK_SUCCESS]: getVideobankSuccess,\n [constants.GET_VIDEOBANK_ERROR]: getVideobankError,\n\n [constants.ADD_ITEM_VIDEOBANK_REQUEST]: addItemTovideobankRequest,\n [constants.ADD_ITEM_VIDEOBANK_SUCCESS]: addItemTovideobankSuccess,\n [constants.ADD_ITEM_VIDEOBANK_ERROR]: addItemTovideobankError,\n\n [constants.GET_USER_LIST_REQUEST]: getUserListRequest,\n [constants.GET_USER_LIST_SUCCESS]: getUserListSuccess,\n [constants.GET_USER_LIST_ERROR]: getUserListError,\n\n [constants.GET_QUESTION_CATEGORY_REQUEST]: getQuestionCategoryRequest,\n [constants.GET_QUESTION_CATEGORY_SUCCESS]: getQuestionCategorySuccess,\n [constants.GET_QUESTION_CATEGORY_ERROR]: getQuestionCategoryError,\n\n [constants.UPDATE_QUESTION_REQUEST]: updateQuestionRequest,\n [constants.UPDATE_QUESTION_SUCCESS]: updateQuestionSuccess,\n [constants.UPDATE_QUESTION_ERROR]: updateQuestionError,\n\n [constants.CREATE_QUESTION_CATEGORY_SUCCESS]: createQuestionCategorySuccess,\n\n [constants.DELETE_QUESTION_CATEGORY_SUCCESS]: deleteQuestionCategorySuccess,\n\n [constants.UPDATE_QUESTION_CATEGORY_SUCCESS]: updateQuestionCategorySuccess,\n\n [constants.SELECT_QUESTION_CATEGORY_SUCCESS]: selectQuestionCategorySuccess,\n\n [constants.UPGRADE_USER_PREMIUM_REQUEST]: upgradeUserPremiumRequest,\n [constants.UPGRADE_USER_PREMIUM_SUCCESS]: upgradeUserPremiumSuccess,\n [constants.UPGRADE_USER_PREMIUM_ERROR]: upgradeUserPremiumError,\n\n [constants.UPGRADE_USER_DATA_REQUEST]: upgradeUserDataRequest,\n [constants.UPGRADE_USER_DATA_SUCCESS]: upgradeUserDataSuccess,\n [constants.UPGRADE_USER_DATA_ERROR]: upgradeUserDataError,\n\n [constants.CREATE_COUPON_REQUEST]: createCouponRequest,\n [constants.CREATE_COUPON_SUCCESS]: createCouponSuccess,\n [constants.CREATE_COUPON_ERROR]: createCouponError,\n\n [constants.GET_COUPON_LIST_REQUEST]: getCouponListRequest,\n [constants.GET_COUPON_LIST_SUCCESS]: getCouponListSuccess,\n [constants.GET_COUPON_LIST_ERROR]: getCouponListError,\n\n [constants.POST_GRANT_PREMIUM_REQUEST]: postGrantPremiumRequest,\n [constants.POST_GRANT_PREMIUM_SUCCESS]: postGrantPremiumSuccess,\n [constants.POST_GRANT_PREMIUM_ERROR]: postGrantPremiumError,\n\n [constants.POST_GRANT_PREMIUM_MANY_REQUEST]: postGrantPremiumManyRequest,\n [constants.POST_GRANT_PREMIUM_MANY_SUCCESS]: postGrantPremiumManySuccess,\n [constants.POST_GRANT_PREMIUM_MANY_ERROR]: postGrantPremiumManyError,\n\n //Actionable Insight\n [constants.GET_ACTIONABLE_INSIGHT_DATA_REQUEST]:\n getActionableInsightRequest,\n [constants.GET_ACTIONABLE_INSIGHT_DATA_SUCCESS]:\n getActionableInsightSuccess,\n [constants.GET_ACTIONABLE_INSIGHT_DATA_ERROR]: getActionableInsightError,\n\n [constants.POST_ACTIONABLE_INSIGHT_DATA_REQUEST]:\n postActionableInsightRequest,\n [constants.POST_ACTIONABLE_INSIGHT_DATA_SUCCESS]:\n postActionableInsightSuccess,\n [constants.POST_ACTIONABLE_INSIGHT_DATA_ERROR]: postActionableInsightError,\n\n [constants.PATCH_ACTIONABLE_INSIGHT_DATA_REQUEST]:\n patchActionableInsightRequest,\n [constants.PATCH_ACTIONABLE_INSIGHT_DATA_SUCCESS]:\n patchActionableInsightSuccess,\n [constants.PATCH_ACTIONABLE_INSIGHT_DATA_ERROR]:\n patchActionableInsightError,\n\n [constants.PATCH_ORDER_ACTIONABLE_INSIGHT_DATA_REQUEST]:\n patchOrderActionableInsightRequest,\n [constants.PATCH_ORDER_ACTIONABLE_INSIGHT_DATA_SUCCESS]:\n patchOrderActionableInsightSuccess,\n [constants.PATCH_ORDER_ACTIONABLE_INSIGHT_DATA_ERROR]:\n patchOrderActionableInsightError,\n\n //Key Concept\n [constants.GET_KEY_CONCEPT_DATA_REQUEST]: getKeyConceptRequest,\n [constants.GET_KEY_CONCEPT_DATA_SUCCESS]: getKeyConceptSuccess,\n [constants.GET_KEY_CONCEPT_DATA_ERROR]: getKeyConceptError,\n\n [constants.POST_KEY_CONCEPT_DATA_REQUEST]: postKeyConceptRequest,\n [constants.POST_KEY_CONCEPT_DATA_SUCCESS]: postKeyConceptSuccess,\n [constants.POST_KEY_CONCEPT_DATA_ERROR]: postKeyConceptError,\n\n [constants.PATCH_KEY_CONCEPT_DATA_REQUEST]: patchKeyConceptRequest,\n [constants.PATCH_KEY_CONCEPT_DATA_SUCCESS]: patchKeyConceptSuccess,\n [constants.PATCH_KEY_CONCEPT_DATA_ERROR]: patchKeyConceptError,\n\n [constants.PATCH_ORDER_KEY_CONCEPT_DATA_REQUEST]:\n patchOrderKeyConceptRequest,\n [constants.PATCH_ORDER_KEY_CONCEPT_DATA_SUCCESS]:\n patchOrderKeyConceptSuccess,\n [constants.PATCH_ORDER_KEY_CONCEPT_DATA_ERROR]: patchOrderKeyConceptError,\n\n //Top Carousel\n [constants.GET_TOP_CAROUSEL_DATA_REQUEST]: getTopCarouselRequest,\n [constants.GET_TOP_CAROUSEL_DATA_SUCCESS]: getTopCarouselSuccess,\n [constants.GET_TOP_CAROUSEL_DATA_ERROR]: getTopCarouselError,\n\n [constants.POST_TOP_CAROUSEL_DATA_REQUEST]: postTopCarouselRequest,\n [constants.POST_TOP_CAROUSEL_DATA_SUCCESS]: postTopCarouselSuccess,\n [constants.POST_TOP_CAROUSEL_DATA_ERROR]: postTopCarouselError,\n\n [constants.PATCH_TOP_CAROUSEL_DATA_REQUEST]: patchTopCarouselRequest,\n [constants.PATCH_TOP_CAROUSEL_DATA_SUCCESS]: patchTopCarouselSuccess,\n [constants.PATCH_TOP_CAROUSEL_DATA_ERROR]: patchTopCarouselError,\n\n [constants.PATCH_ORDER_TOP_CAROUSEL_DATA_REQUEST]:\n patchOrderTopCarouselRequest,\n [constants.PATCH_ORDER_TOP_CAROUSEL_DATA_SUCCESS]:\n patchOrderTopCarouselSuccess,\n [constants.PATCH_ORDER_TOP_CAROUSEL_DATA_ERROR]: patchOrderTopCarouselError,\n\n //Video Bank\n [constants.PATCH_VIDEO_BANK_DATA_REQUEST]: patchVideoBankRequest,\n [constants.PATCH_VIDEO_BANK_DATA_REQUEST]: patchVideoBankSuccess,\n [constants.PATCH_VIDEO_BANK_DATA_REQUEST]: patchVideoBankError,\n\n [constants.PATCH_ORDER_VIDEO_BANK_DATA_REQUEST]: patchOrderVideoBankRequest,\n [constants.PATCH_ORDER_VIDEO_BANK_DATA_SUCCESS]: patchOrderVideoBankSuccess,\n [constants.PATCH_ORDER_VIDEO_BANK_DATA_ERROR]: patchOrderVideoBankError,\n },\n initialState\n);\n","import { handleActions } from \"redux-actions\";\nimport update from \"immutability-helper\";\nimport * as constants from \"../constants\";\n\nconst initialState = {\n getBooks: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n\n postBooks: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n\n putBooks: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n\n deleteBooks: {\n isLoading: false,\n isError: false,\n isSuccess: false,\n data: {},\n message: \"\",\n },\n};\n\nconst getBooksRequest = (state, action) => {\n return update(state, {\n getBooks: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: {} },\n },\n });\n};\nconst getBooksSuccess = (state, action) => {\n return update(state, {\n getBooks: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\nconst getBooksError = (state, action) => {\n return update(state, {\n getBooks: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: {} },\n },\n });\n};\n\nconst postBooksRequest = (state, action) => {\n return update(state, {\n postBooks: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: {} },\n },\n });\n};\nconst postBooksSuccess = (state, action) => {\n return update(state, {\n postBooks: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\nconst postBooksError = (state, action) => {\n return update(state, {\n postBooks: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: {} },\n },\n });\n};\n\nconst putBookRequest = (state, action) => {\n return update(state, {\n putBooks: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: {} },\n },\n });\n};\nconst putBookSuccess = (state, action) => {\n return update(state, {\n putBooks: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\nconst putBookError = (state, action) => {\n return update(state, {\n putBooks: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: {} },\n },\n });\n};\n\nconst deleteBookRequest = (state, action) => {\n return update(state, {\n deleteBooks: {\n isLoading: { $set: true },\n isError: { $set: false },\n isSuccess: { $set: false },\n message: { $set: \"\" },\n data: { $set: {} },\n },\n });\n};\nconst deleteBookSuccess = (state, action) => {\n return update(state, {\n deleteBooks: {\n isLoading: { $set: false },\n isError: { $set: false },\n isSuccess: { $set: true },\n message: { $set: \"\" },\n data: { $set: action.payload },\n },\n });\n};\nconst deleteBookError = (state, action) => {\n return update(state, {\n deleteBooks: {\n isLoading: { $set: false },\n isError: { $set: true },\n isSuccess: { $set: false },\n message: { $set: action.payload.message },\n data: { $set: {} },\n },\n });\n};\n\nexport default handleActions(\n {\n [constants.GET_BOOKS_REQUEST]: getBooksRequest,\n [constants.GET_BOOKS_SUCCESS]: getBooksSuccess,\n [constants.GET_BOOKS_ERROR]: getBooksError,\n [constants.POST_BOOKS_REQUEST]: postBooksRequest,\n [constants.POST_BOOKS_SUCCESS]: postBooksSuccess,\n [constants.POST_BOOKS_ERROR]: postBooksError,\n [constants.PUT_BOOK_REQUEST]: putBookRequest,\n [constants.PUT_BOOK_SUCCESS]: putBookSuccess,\n [constants.PUT_BOOK_ERROR]: putBookError,\n [constants.DELETE_BOOK_REQUEST]: deleteBookRequest,\n [constants.DELETE_BOOK_SUCCESS]: deleteBookSuccess,\n [constants.DELETE_BOOK_ERROR]: deleteBookError,\n },\n initialState\n);\n","import { handleActions } from \"redux-actions\";\nimport update from \"immutability-helper\";\nimport * as constants from \"../constants\";\nconst initialState = {\n systemStatus: {\n isLoading: false,\n errorMessage: []\n },\n};\n\n//functions to update user subscription\nconst onDataLoading = (state, action) => {\n return update(state, {\n systemStatus: {\n isLoading: { $set: true },\n }\n });\n};\n\nconst onDataLoadedSuccess = (state, action) => {\n return update(state, {\n systemStatus: {\n isLoading: { $set: false },\n }\n });\n};\n\nconst onDataLoadedError = (state, action) => {\n return update(state, {\n systemStatus: {\n isLoading: { $set: false },\n errorMessage:{$set:action.payload.message || ''},\n }\n });\n};\n\nexport default handleActions(\n {\n [constants.SYSTEM_DATA_LOADING_REQUEST]: onDataLoading,\n [constants.SYSTEM_DATA_LOADED_SUCCESS]: onDataLoadedSuccess,\n [constants.SYSTEM_DATA_LOADED_ERROR]: onDataLoadedError,\n },\n initialState\n);\n","import { handleActions } from \"redux-actions\";\nimport update from \"immutability-helper\";\nimport * as constants from \"../constants\";\nconst initialState = {\n videoModal: {\n isVisible: false,\n },\n modalData:{},\n isLoading: false\n}\n\n\nconst videoModalRequest = (state, action) => {\n return update(state, {\n videoModal: {\n isVisible: { $set: state.videoModal.isVisible },\n }\n });\n };\n \n const videoModalSuccess = (state, action) => {\n return update(state, {\n videoModal: {\n isVisible: { $set: action?.payload},\n }\n });\n };\n\n const setModalDataRequest = (state, action) => {\n return update(state, {\n modalData: { $set: {} },\n });\n };\n \n const setModalDataSuccess = (state, action) => {\n return update(state, {\n modalData: { $set: action?.payload},\n });\n };\n\n const genericLoaderRequest = (state, action) => {\n return update(state, {\n isLoading: { $set: state.isLoading },\n });\n };\n \n const genericLoaderSuccess = (state, action) => {\n return update(state, {\n isLoading: { $set: action.payload },\n });\n };\n\nexport default handleActions(\n {\n [constants.VIDEO_MODAL_REQUEST]: videoModalRequest,\n [constants.VIDEO_MODAL_SUCCESS]: videoModalSuccess,\n\n [constants.SET_MODALDATA_REQUEST]: setModalDataRequest,\n [constants.SET_MODALDATAL_SUCCESS]: setModalDataSuccess,\n\n [constants.GENERIC_LOADER_REQUEST]: genericLoaderRequest,\n [constants.GENERIC_LOADER_SUCCESS]: genericLoaderSuccess,\n \n },\n initialState\n );","import * as actions from \"../actions\";\nimport fireAjax from \"../../services\";\nimport { call, put } from \"redux-saga/effects\";\nimport { push } from \"connected-react-router\";\nimport Error from \"../../Components/Error\";\nimport { toast } from \"react-toastify\";\n\ntoast.configure();\n\nexport const LOCAL_STORAGE_CURRENT_USER = \"currentUser\";\n\n//function to update user subscription\nexport function* updateUserSubscriptionRequest(action) {\n try {\n const response = yield call(\n fireAjax,\n \"PUT\",\n `users/updateProfile/${action.payload.userId}`,\n \"\",\n { ...action.payload }\n );\n yield put(actions.updateUserSubscriptionSuccess({ ...response.data }));\n } catch (e) {\n yield put(actions.updateUserSubscriptionError({ message: e.message }));\n }\n}\n\n//login\nexport function* loginRequest(action) {\n const headers = {\n loginType: \"admin\",\n };\n try {\n const response = yield call(\n fireAjax,\n \"POST\",\n `users/admin/login`,\n headers,\n { ...action.payload }\n );\n\n yield put(actions.loginSuccess({ ...response.data }));\n\n const data = response.data;\n yield put(\n push(data.nextLoginFlow, {\n email: action.payload.email,\n })\n );\n } catch (e) {\n yield put(\n actions.loginError({ message: e?.response?.data?.message || e?.message })\n );\n }\n}\n\nexport function* logoutRequest(action) {\n try {\n window.localStorage.removeItem(LOCAL_STORAGE_CURRENT_USER);\n yield put(push(\"/\"));\n } catch (error) {\n console.log(error);\n }\n}\n\n//OTP verification\nexport function* otpVerificationRequest(action) {\n try {\n const headers = {\n loginType: \"admin\",\n };\n\n const response = yield call(\n fireAjax,\n \"POST\",\n `users/admin/verifyOtp`,\n headers,\n { ...action.payload }\n );\n\n console.log(\"response\", response);\n yield put(actions.otpVerificationSuccess({ ...response.data }));\n const currentUserData = {\n ...response.data.data,\n authenticated: true,\n };\n window.localStorage.setItem(\n LOCAL_STORAGE_CURRENT_USER,\n JSON.stringify(currentUserData)\n );\n yield put(\n actions.setCurrentUser({\n currentUserData,\n })\n );\n\n yield put(push(\"/\"));\n } catch (e) {\n yield put(\n actions.otpVerificationError({\n message: e?.response?.data?.message || e?.message,\n })\n );\n }\n}\n\n// Resend OTP\nexport function* resendOtpRequest(action) {\n try {\n const headers = {\n loginType: \"admin\",\n };\n\n const response = yield call(\n fireAjax,\n \"POST\",\n `users/admin/resendOtp`,\n headers,\n { ...action.payload }\n );\n\n yield put(actions.resendOtpSuccess({ ...response.data }));\n } catch (e) {\n yield put(\n actions.otpVerificationError({\n message: e?.response?.data?.message || e?.message,\n })\n );\n }\n}\n\n//function to update user subscription\nexport function* getDashboardRequest(action) {\n try {\n const response = yield call(fireAjax, \"GET\", `users/dashboard`, \"\", {\n ...action.payload,\n });\n yield put(actions.getDashboardSuccess({ ...response.data }));\n } catch (e) {\n yield put(\n actions.getDashboardError({\n message: e?.response?.data?.message || e?.message,\n })\n );\n }\n}\n\nexport function* sendNotificationRequest(action) {\n try {\n const response = yield call(\n fireAjax,\n \"POST\",\n `users/sendNotification`,\n \"\",\n action.payload\n );\n if (response.data.message === \"device token not available!\") {\n throw new Error(response.data.message);\n }\n yield put(actions.sendNotificationSuccess({ ...response.data }));\n\n toast.success(\"Notification Send Successfully\", {\n position: \"top-right\",\n autoClose: 2000,\n hideProgressBar: false,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n });\n } catch (e) {\n // alert( e?.response?.data?.message || e?.message)\n toast.error(\"Something went wrong\", {\n position: \"top-right\",\n autoClose: 2000,\n hideProgressBar: false,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n });\n yield put(\n actions.sendNotificationError({\n message: e?.response?.data?.message || e?.message,\n })\n );\n }\n}\n\nexport function* getNotificationRequest(action) {\n console.log(\"sssssssssssss\");\n\n try {\n const response = yield call(\n fireAjax,\n \"GET\",\n `users/admin/listNotifications`,\n \"\",\n action.payload\n );\n if (response.data.message === \"device token not available!\") {\n throw new Error(response.data.message);\n }\n yield put(actions.getNotificationSuccess({ ...response.data }));\n } catch (e) {\n // alert( e?.response?.data?.message || e?.message)\n\n yield put(\n actions.getNotificationError({\n message: e?.response?.data?.message || e?.message,\n })\n );\n }\n}\n","import * as actions from \"../actions\";\nimport fireAjax from \"../../services\";\nimport { call, put } from \"redux-saga/effects\";\n\nexport function* videoModalRequest(action) {\n try {\n yield put(actions.videoModalSuccess(action.payload));\n } catch (e) {}\n}\n\nexport function* setModalDataRequest(action) {\n try {\n yield put(actions.setModalDataSuccess(action.payload));\n } catch (e) {}\n}\n\nexport function* genericLoaderRequest(action) {\n try {\n yield put(actions.genericLoaderSuccess(action.payload));\n } catch (e) {}\n}\n","import * as actions from \"../actions\";\nimport fireAjax from \"../../services\";\nimport { call, put } from \"redux-saga/effects\";\nimport { toast } from \"react-toastify\";\n\n//to get the carousel's data\nexport function* createTrainerRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"POST\",\n `trainer`,\n \"\",\n action.payload\n );\n const trainers = yield call(fireAjax, \"GET\", `trainer`, \"\");\n yield put(actions.getTrainersSuccess(trainers.data.data));\n yield put(actions.createTrainerSuccess(response.data.data));\n yield put(actions.videoModalSuccess(false));\n } catch (e) {\n yield put(actions.createTrainerError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderSuccess(false));\n }\n}\n\nexport function* deleteTrainerRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"DELETE\",\n `trainer/${action.payload.trainerId}`,\n \"\"\n );\n const trainers = yield call(fireAjax, \"GET\", `trainer`, \"\");\n yield put(actions.getTrainersSuccess(trainers.data.data));\n yield put(actions.deleteTrainerSuccess(response.data.data));\n } catch (e) {\n yield put(actions.updateTrainerError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderSuccess(false));\n yield put(actions.videoModalSuccess(false));\n }\n}\n\nexport function* updateTrainerRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"PUT\",\n `trainer/${action.payload.trainerId}`,\n \"\",\n action.payload.data\n );\n const trainers = yield call(fireAjax, \"GET\", `trainer`, \"\");\n yield put(actions.getTrainersSuccess(trainers.data.data));\n yield put(actions.updateTrainerSuccess(response.data.data));\n yield put(actions.videoModalSuccess(false));\n } catch (e) {\n yield put(actions.updateTrainerError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderSuccess(false));\n }\n}\n\n//to get the carousel's data\nexport function* createCoursesrRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"POST\",\n `courses`,\n \"\",\n action.payload\n );\n const courses = yield call(fireAjax, \"GET\", `courses/temp/test`, \"\");\n yield put(actions.getCourseListSuccess(courses.data.data));\n yield put(actions.createCourseSuccess(response.data.data));\n } catch (e) {\n yield put(actions.createTrainerError({ message: e.message }));\n } finally {\n yield put(actions.videoModalSuccess(false));\n yield put(actions.genericLoaderSuccess(false));\n }\n}\n\n//to get the carousel's data\nexport function* updateCoursesrRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"PUT\",\n `courses/${action.payload.courseId}`,\n \"\",\n action.payload.data\n );\n const courses = yield call(fireAjax, \"GET\", `courses/temp/test`, \"\");\n yield put(actions.getCourseListSuccess(courses.data.data));\n yield put(actions.updateCourseSuccess(response.data.data));\n yield put(actions.videoModalSuccess(false));\n } catch (e) {\n yield put(actions.createTrainerError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n }\n}\n\nexport function* deleteCoursesRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"DELETE\",\n `courses/${action.payload.courseId}`,\n \"\",\n action.payload.data\n );\n const courses = yield call(fireAjax, \"GET\", `courses/temp/test`, \"\");\n yield put(actions.getCourseListSuccess(courses.data.data));\n yield put(actions.deleteTrainerSuccess(response.data.data));\n } catch (e) {\n } finally {\n yield put(actions.genericLoaderSuccess(false));\n }\n}\n\nexport function* deleteVideoRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"DELETE\",\n `videos/${action.payload.videoId}`,\n \"\",\n action.payload.data\n );\n const vidoes = yield call(fireAjax, \"GET\", `videos`, \"\");\n if (Array.isArray(vidoes.data) && vidoes.data.length) {\n yield put(actions.getVideoSuccess(vidoes.data));\n } else {\n yield put(actions.getVideoError({ message: \"No video is available\" }));\n }\n yield put(actions.deleteVideoSuccess(response.data.data));\n } catch (e) {\n yield put(actions.deleteVideoError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n }\n}\n\n//to get the carousel's data\nexport function* getCourseListRequest(action) {\n try {\n const response = yield call(fireAjax, \"GET\", `courses/temp/test`, \"\");\n if (Array.isArray(response.data.data) && response.data.data.length) {\n yield put(actions.getCourseListSuccess(response.data.data));\n } else {\n throw new Error(\"No Programme is available\");\n }\n } catch (e) {\n yield put(actions.getCourseListError({ message: e.message }));\n }\n}\n\n//to create the hero carousel's data\nexport function* createCarouselDataRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"POST\",\n `content/sliderData`,\n \"\",\n action.payload.formdata\n );\n const sliderData = yield call(\n fireAjax,\n \"GET\",\n `content/listSliderData?webapp=true`,\n \"\"\n );\n if (Array.isArray(sliderData.data.data) && sliderData.data.data.length) {\n yield put(actions.getCarouselDataSuccess(sliderData.data.data.reverse()));\n } else {\n throw new Error(\"No data is available\");\n }\n // if(Array.isArray(response.data.data) && response.data.data.length ){\n yield put(actions.createCarouselDataSuccess(response.data.data));\n // }else{\n // throw new Error('No Programme is available')\n // }\n } catch (e) {\n yield put(actions.createCarouselDataError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n yield put(actions.videoModalSuccess(false));\n }\n}\n\n//to create the hero carousel's data\nexport function* deleteCarouselDataRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"DELETE\",\n `content/sliderData/${action.payload._id}`,\n \"\",\n \"\"\n );\n const sliderData = yield call(\n fireAjax,\n \"GET\",\n `content/listSliderData?webapp=true`,\n \"\"\n );\n if (Array.isArray(sliderData.data.data) && sliderData.data.data.length) {\n yield put(actions.getCarouselDataSuccess(sliderData.data.data.reverse()));\n } else {\n throw new Error(\"No data is available\");\n }\n yield put(actions.deleteCarouselDataSuccess(response.data.data));\n } catch (e) {\n } finally {\n yield put(actions.genericLoaderRequest(false));\n yield put(actions.videoModalSuccess(false));\n }\n}\n\n//to update the hero carousel's data\nexport function* updateCarouselDataRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"PUT\",\n `content/sliderData/${action.payload._id}`,\n \"\",\n action.payload.formdata\n );\n const sliderData = yield call(\n fireAjax,\n \"GET\",\n `content/listSliderData?webapp=true`,\n \"\"\n );\n if (Array.isArray(sliderData.data.data) && sliderData.data.data.length) {\n yield put(actions.getCarouselDataSuccess(sliderData.data.data.reverse()));\n } else {\n throw new Error(\"No data is available\");\n }\n yield put(actions.updateCarouselDataSuccess(response.data.data));\n } catch (e) {\n } finally {\n yield put(actions.genericLoaderRequest(false));\n yield put(actions.videoModalSuccess(false));\n }\n}\n\n//to get the hero carousel's data\nexport function* getCarouselDataRequest(action) {\n try {\n const response = yield call(\n fireAjax,\n \"GET\",\n `content/listSliderData?webapp=true`,\n \"\"\n );\n // if(Array.isArray(response.data.data) && response.data.data.length ){\n yield put(actions.getCarouselDataSuccess(response.data.data.reverse()));\n // }else{\n // throw new Error('No Programme is available')\n // }\n } catch (e) {\n yield put(actions.getCarouselDataError({ message: e.message }));\n }\n}\n\n//to get the carousel's data\nexport function* getTrainersRequest(action) {\n try {\n const response = yield call(fireAjax, \"GET\", `trainer`, \"\");\n if (Array.isArray(response.data.data) && response.data.data.length) {\n yield put(actions.getTrainersSuccess(response.data.data));\n } else {\n throw new Error(\"No Trainer is available\");\n }\n } catch (e) {\n yield put(actions.getTrainersError({ message: e.message }));\n }\n}\n\n//to upload video\nexport function* uploadVideoRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n // upload video\n const response = yield call(\n fireAjax,\n \"POST\",\n `videos`,\n \"\",\n action.payload.formData\n );\n // const videos = yield call(fireAjax, \"GET\", `videos`, \"\");\n // yield put(actions.getVideoSuccess(videos.data));\n\n // upload video type\n if (response.data.data) {\n if (action.payload.uploadType === \"keyConcept\") {\n const newData = { ...response.data.data };\n yield put(actions.postKeyConceptDataRequest({ videoId: newData._id }));\n } else if (action.payload.uploadType === \"topCarousel\") {\n const newData = { ...response.data.data };\n yield put(actions.postTopCarouselDataRequest({ videoId: newData._id }));\n } else {\n const newData = { ...response.data.data };\n yield put(\n actions.addItemToVideobankRequest({\n videoId: newData._id,\n bankType: action.payload.uploadType,\n })\n );\n }\n\n yield put(actions.uploadVideoSuccess(response.data.data));\n }\n } catch (e) {\n yield put(actions.uploadVideoError({ message: e.message }));\n } finally {\n yield put(actions.videoModalSuccess(false));\n yield put(actions.genericLoaderSuccess(false));\n }\n}\n\n//to update video info\nexport function* updateVideoRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"PUT\",\n `videos/${action.payload._id}`,\n \"\",\n action.payload.payload\n );\n const videos = yield call(fireAjax, \"GET\", `videoBank`, \"\");\n if (Array.isArray(videos.data.data) && videos.data.data.length) {\n yield put(actions.getVideoBankSuccess(videos.data.data));\n } else {\n yield put(actions.getVideoBankError({ message: \"Video bank is empty\" }));\n }\n // yield put(actions.getVideoSuccess(videos.data));\n yield put(actions.updateVideoSuccess(response.data.data));\n } catch (e) {\n yield put(actions.updateVideoError({ message: e.message }));\n } finally {\n yield put(actions.videoModalSuccess(false));\n yield put(actions.genericLoaderSuccess(false));\n }\n}\n\nexport function* getViodesRequest(action) {\n try {\n const response = yield call(fireAjax, \"GET\", `videos`, \"\");\n if (Array.isArray(response.data) && response.data.length) {\n yield put(actions.getVideoSuccess(response.data));\n } else {\n throw new Error(\"No video is available\");\n }\n } catch (e) {\n yield put(actions.getVideoError({ message: e.message }));\n }\n}\n\nexport function* createQuestionRequest(action) {\n const headers = {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n };\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"POST\",\n `content/createQuestion`,\n headers,\n action.payload\n );\n\n yield put(\n actions.createQuestionSuccess({ data: response.data, ...action.payload })\n );\n } catch (e) {\n yield put(actions.createQuestionError({ message: e.message }));\n } finally {\n yield put(actions.videoModalSuccess(false));\n yield put(actions.genericLoaderRequest(false));\n }\n}\n\n//to get the video bank\nexport function* getVideoBankRequest(action) {\n try {\n const response = yield call(fireAjax, \"GET\", `videoBank`, \"\");\n if (Array.isArray(response.data.data) && response.data.data.length) {\n yield put(actions.getVideoBankSuccess(response.data.data));\n } else {\n throw new Error(\"Video bank is empty\");\n }\n } catch (e) {\n yield put(actions.getVideoBankError({ message: e.message }));\n }\n}\n\nexport function* deleteVideoBankRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"DELETE\",\n `videoBank/${action.payload._id}`,\n \"\",\n \"\"\n );\n const videos = yield call(fireAjax, \"GET\", `videoBank`, \"\");\n if (Array.isArray(videos.data.data) && videos.data.data.length) {\n yield put(actions.getVideoBankSuccess(videos.data.data));\n } else {\n yield put(actions.getVideoBankError({ message: \"Video bank is empty\" }));\n }\n yield put(actions.deleteVideobankSuccess(response.data.data));\n } catch (e) {\n } finally {\n yield put(actions.genericLoaderRequest(false));\n }\n}\n\nexport function* addItemToVideoBankRequest(action) {\n const headers = {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n };\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"POST\",\n `videoBank`,\n headers,\n action.payload\n );\n const videos = yield call(fireAjax, \"GET\", `videoBank`, \"\");\n if (Array.isArray(videos.data.data) && videos.data.data.length) {\n yield put(actions.getVideoBankSuccess(videos.data.data));\n } else {\n yield put(actions.getVideoBankError({ message: \"Video bank is empty\" }));\n }\n yield put(actions.addItemToVideobankSuccess(response.data.data));\n } catch (e) {\n } finally {\n yield put(actions.videoModalSuccess(false));\n yield put(actions.genericLoaderRequest(false));\n }\n}\n\n//to get the user list bank\nexport function* getUserListRequest(action) {\n try {\n const response = yield call(\n fireAjax,\n \"GET\",\n `users?search=${action?.payload?.data?.filter}&createdAtFrom=${action?.payload?.data?.createdAtFrom}&createdAtTo=${action?.payload?.data?.createdAtTo}&sortBy=${action?.payload?.data?.orderBy}&sortOrder=${action?.payload?.data?.sortOrder}`,\n \"\"\n );\n\n if (Array.isArray(response.data.data) && response.data.data.length) {\n const data = response.data.data.map((value) => {\n if (value.subscription === \"premium\") {\n return {\n ...value,\n selectIndex: 1,\n };\n } else {\n return {\n ...value,\n selectIndex: 0,\n };\n }\n });\n yield put(actions.getUserListSuccess(data));\n } else {\n throw new Error(\"User List is empty\");\n }\n } catch (e) {\n yield put(actions.getUserListError({ message: e.message }));\n }\n}\n\n//to get the question category\nexport function* getQuestionCategoryRequest(action) {\n try {\n const response = yield call(\n fireAjax,\n \"GET\",\n `content/getQuestionCategory`,\n \"\"\n );\n\n if (Array.isArray(response.data.data) && response.data.data.length) {\n yield put(\n actions.getQuestionCategorySuccess(\n response.data.data.map((a) => ({ ...a }))\n )\n );\n } else {\n throw new Error(\"No Question Category has been added yet.\");\n }\n } catch (e) {\n yield put(actions.getQuestionCategoryError({ message: e.message }));\n }\n}\n\n//to create the question category\nexport function* createQuestionCategoryRequest(action) {\n const headers = {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n };\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"POST\",\n `content/createQuestionCategory`,\n headers,\n action.payload\n );\n\n yield put(actions.createQuestionCategorySuccess(response.data.data));\n } catch (e) {\n yield put(actions.createQuestionCategoryError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n }\n}\n\n//to delete the question category\nexport function* deleteQuestionCategoryRequest(action) {\n try {\n const response = yield call(\n fireAjax,\n \"DELETE\",\n `content/deleteQuestionCategory/${action.payload.categoryId}`,\n \"\"\n );\n\n yield put(actions.deleteQuestionCategorySuccess(action.payload));\n } catch (e) {}\n}\n\n//to update the question category\nexport function* updateQuestionCategoryRequest(action) {\n const headers = {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n };\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"PUT\",\n `content/updateQuestionCategory/${action.payload.categoryId}`,\n headers,\n action.payload.data\n );\n\n yield put(actions.updateQuestionCategorySuccess(action.payload));\n } catch (e) {\n // yield put(actions.createQuestionCategoryError({ message: e.message }));\n } finally {\n yield put(actions.videoModalSuccess(false));\n yield put(actions.genericLoaderRequest(false));\n }\n}\n\n//to select the question category\nexport function* selectQuestionCategoryRequest(action) {\n try {\n yield put(\n actions.selectQuestionCategorySuccess({ _id: action.payload._id })\n );\n } catch (e) {}\n}\n\n//to update the question category\nexport function* updateQuestionyRequest(action) {\n const headers = {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n };\n try {\n yield call(\n fireAjax,\n \"PUT\",\n `content/updateQuestion/${action.payload.questionId}`,\n headers,\n action.payload.data\n );\n\n const response = yield call(\n fireAjax,\n \"GET\",\n `content/getQuestionCategory`,\n \"\"\n );\n\n if (Array.isArray(response.data.data) && response.data.data.length) {\n yield put(actions.getQuestionCategorySuccess(response.data.data));\n }\n\n yield put(actions.updateQuestionSuccess(action.payload));\n } catch (e) {\n // yield put(actions.createQuestionCategoryError({ message: e.message }));\n } finally {\n yield put(actions.updateQuestionError(false));\n }\n}\n\n//to create the hero carousel's data\nexport function* setPaidContentRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n yield call(\n fireAjax,\n \"PUT\",\n `content/setFreeContent`,\n \"\",\n action.payload.data\n );\n const response = yield call(\n fireAjax,\n \"GET\",\n `content/getQuestionCategory`,\n \"\"\n );\n\n if (Array.isArray(response.data.data) && response.data.data.length) {\n yield put(actions.getQuestionCategorySuccess(response.data.data));\n } else {\n throw new Error(\"No Question Category has been added yet.\");\n }\n } catch (e) {\n yield put(actions.createCarouselDataError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n yield put(actions.videoModalSuccess(false));\n }\n}\n\n//to update user to premium\nexport function* upgradeUserPremiumRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"PATCH\",\n \"users/update\",\n \"\",\n action.payload\n );\n if (response) {\n yield put(actions.upgradeUserPremiumSuccess(response.data));\n } else {\n throw new Error(\"Users not updated to premium\");\n }\n } catch (e) {\n yield put(actions.upgradeUserPremiumError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderSuccess(false));\n }\n}\n\nexport function* upgradeUserDataRequest(action) {\n const { userList, premiumEmail } = action.payload;\n yield put(actions.genericLoaderRequest(true));\n try {\n const userData = userList.map((user) => {\n if (premiumEmail.some((emailObj) => emailObj.email === user.email)) {\n return {\n ...user,\n subscription: \"premium\",\n selectIndex: 1,\n };\n }\n return {\n ...user,\n selectIndex: user.subscription === \"premium\" ? 1 : 0,\n };\n });\n yield put(actions.upgradeUserDataSuccess(userData));\n yield put(actions.getUserListSuccess(userData));\n } catch (error) {\n yield put(actions.upgradeUserDataError({ message: error.message }));\n } finally {\n yield put(actions.genericLoaderSuccess(false));\n }\n}\n\n//to get the coupon\nexport function* createCouponRequest(action) {\n console.log(action);\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"POST\",\n `coupon/create`,\n \"\",\n action.payload\n );\n\n yield put(actions.createCouponSuccess(response.data.data));\n } catch (e) {\n yield put(actions.createCouponError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderSuccess(false));\n yield call(getCouponListRequest);\n }\n}\n\nexport function* getCouponListRequest(action) {\n try {\n const response = yield call(fireAjax, \"GET\", `coupon/all`, \"\");\n\n yield put(actions.getCouponListSuccess(response.data.data));\n } catch (e) {\n yield put(actions.getCouponListError({ message: e.message }));\n }\n}\n\nexport function* postGrantPremiumRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"POST\",\n `coupon/grant-premium/${action.payload._id}`,\n \"\",\n action.payload.data\n );\n\n yield put(actions.postGrantPremiumSuccess(response.data.data));\n } catch (e) {\n yield put(actions.postGrantPremiumError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n yield call(getUserListRequest, {\n payload: {\n data: action.payload.search_data,\n },\n });\n }\n}\n\nexport function* postGrantPremiumManyRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"POST\",\n `coupon/grant-premium-many`,\n \"\",\n action.payload.data\n );\n\n yield put(actions.postGrantPremiumManySuccess(response.data.data));\n toast.success(\"Grant Premium Successfully\", {\n position: \"top-center\",\n autoClose: 5000,\n hideProgressBar: true,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n theme: \"colored\",\n });\n } catch (e) {\n yield put(actions.postGrantPremiumManyError({ message: e.message }));\n toast.error(e.message, {\n position: \"top-center\",\n autoClose: 5000,\n hideProgressBar: true,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n theme: \"colored\",\n });\n } finally {\n yield put(actions.genericLoaderRequest(false));\n yield call(getUserListRequest, {\n payload: {\n data: action.payload.search_data,\n },\n });\n }\n}\n\n//Actionable Insight\nexport function* getActionableInsightDataRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n\n try {\n const response = yield call(\n fireAjax,\n \"GET\",\n `content/actionable-insight`,\n \"\"\n );\n yield put(actions.getActionableInsightDataSuccess(response.data.data));\n } catch (e) {\n yield put(actions.getActionableInsightDataError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n }\n}\n\nexport function* postActionableInsightDataRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"POST\",\n `content/actionable-insight`,\n \"\",\n action.payload\n );\n\n if (response) {\n yield put(actions.getActionableInsightDataRequest());\n } else {\n throw new Error(\"No data is available\");\n }\n\n yield put(actions.postActionableInsightDataSuccess(response.data));\n } catch (e) {\n yield put(actions.postActionableInsightDataError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n yield put(actions.videoModalSuccess(false));\n }\n}\n\nexport function* patchActionableInsightDataRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"PATCH\",\n `content/actionable-insight/${action.payload._id}`,\n \"\",\n action.payload\n );\n\n if (response) {\n yield put(actions.getActionableInsightDataRequest());\n } else {\n throw new Error(\"No data is available\");\n }\n\n yield put(actions.patchActionableInsightDataSuccess(response.data));\n } catch (e) {\n yield put(actions.patchActionableInsightDataError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n }\n}\n\nexport function* deleteActionableInsightDataRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"DELETE\",\n `content/actionable-insight/${action.payload._id}`,\n \"\"\n );\n\n if (response) {\n yield put(actions.getActionableInsightDataRequest());\n } else {\n throw new Error(\"No data is available\");\n }\n\n yield put(actions.deleteActionableInsightDataSuccess(response.data));\n } catch (e) {\n yield put(actions.postActionableInsightDataError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n }\n}\n\nexport function* patchOrderActionableInsightDataRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"PATCH\",\n `content/actionable-insight-order`,\n \"\",\n action.payload\n );\n\n if (response) {\n yield put(actions.getActionableInsightDataRequest());\n } else {\n throw new Error(\"No data is available\");\n }\n\n yield put(actions.patchOrderActionableInsightDataSuccess(response.data));\n } catch (e) {\n yield put(\n actions.patchOrderActionableInsightDataError({ message: e.message })\n );\n } finally {\n yield put(actions.genericLoaderRequest(false));\n }\n}\n\n//Key Concept\nexport function* getKeyConceptDataRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n\n try {\n const response = yield call(fireAjax, \"GET\", `content/key-concept`, \"\");\n yield put(actions.getKeyConceptDataSuccess(response.data.data));\n } catch (e) {\n yield put(actions.getKeyConceptDataError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n }\n}\n\nexport function* postKeyConceptDataRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"POST\",\n `content/key-concept`,\n \"\",\n action.payload\n );\n\n if (response) {\n yield put(actions.getKeyConceptDataRequest());\n } else {\n throw new Error(\"No data is available\");\n }\n\n yield put(actions.postKeyConceptDataSuccess(response.data));\n } catch (e) {\n yield put(actions.postKeyConceptDataError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n yield put(actions.videoModalSuccess(false));\n }\n}\n\nexport function* patchKeyConceptDataRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"PATCH\",\n `content/key-concept/${action.payload._id}`,\n \"\",\n action.payload.payload\n );\n\n if (response) {\n yield put(actions.getKeyConceptDataRequest());\n } else {\n throw new Error(\"No data is available\");\n }\n\n yield put(actions.patchKeyConceptDataSuccess(response.data));\n } catch (e) {\n yield put(actions.patchKeyConceptDataError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n\n if (action.payload.typeUpdate === \"update\") {\n yield put(actions.videoModalSuccess(false));\n }\n }\n}\n\nexport function* deleteKeyConceptDataRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"DELETE\",\n `content/key-concept/${action.payload._id}`,\n \"\"\n );\n\n if (response) {\n yield put(actions.getKeyConceptDataRequest());\n } else {\n throw new Error(\"No data is available\");\n }\n\n yield put(actions.deleteKeyConceptDataSuccess(response.data));\n } catch (e) {\n yield put(actions.postKeyConceptDataError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n }\n}\n\nexport function* patchOrderKeyConceptDataRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"PATCH\",\n `content/key-concept-order`,\n \"\",\n action.payload\n );\n\n if (response) {\n yield put(actions.getKeyConceptDataRequest());\n } else {\n throw new Error(\"No data is available\");\n }\n\n yield put(actions.patchOrderKeyConceptDataSuccess(response.data));\n } catch (e) {\n yield put(actions.patchOrderKeyConceptDataError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n }\n}\n\n//Top Carousel\nexport function* getTopCarouselDataRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n\n try {\n const response = yield call(fireAjax, \"GET\", `content/main-carousel`, \"\");\n yield put(actions.getTopCarouselDataSuccess(response.data.data));\n } catch (e) {\n yield put(actions.getTopCarouselDataError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n }\n}\n\nexport function* postTopCarouselDataRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"POST\",\n `content/main-carousel`,\n \"\",\n action.payload\n );\n\n if (response) {\n yield put(actions.getTopCarouselDataRequest());\n } else {\n throw new Error(\"No data is available\");\n }\n\n yield put(actions.postTopCarouselDataSuccess(response.data));\n } catch (e) {\n yield put(actions.postTopCarouselDataError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n yield put(actions.videoModalSuccess(false));\n }\n}\n\nexport function* patchTopCarouselDataRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"PATCH\",\n `content/main-carousel/${action.payload._id}`,\n \"\",\n action.payload.payload\n );\n\n if (response) {\n yield put(actions.getTopCarouselDataRequest());\n } else {\n throw new Error(\"No data is available\");\n }\n\n yield put(actions.patchTopCarouselDataSuccess(response.data));\n } catch (e) {\n yield put(actions.patchTopCarouselDataError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n\n if (action.payload.typeUpdate === \"update\") {\n yield put(actions.videoModalSuccess(false));\n }\n }\n}\n\nexport function* deleteTopCarouselDataRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"DELETE\",\n `content/main-carousel/${action.payload._id}`,\n \"\"\n );\n\n if (response) {\n yield put(actions.getTopCarouselDataRequest());\n } else {\n throw new Error(\"No data is available\");\n }\n\n yield put(actions.deleteTopCarouselDataSuccess(response.data));\n } catch (e) {\n yield put(actions.postTopCarouselDataError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n }\n}\n\nexport function* patchOrderTopCarouselDataRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"PATCH\",\n `content/main-carousel-order`,\n \"\",\n action.payload\n );\n\n if (response) {\n yield put(actions.getTopCarouselDataRequest());\n } else {\n throw new Error(\"No data is available\");\n }\n\n yield put(actions.patchOrderTopCarouselDataSuccess(response.data));\n } catch (e) {\n yield put(actions.patchOrderTopCarouselDataError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n }\n}\n\n//Video bank\nexport function* patchVideoBankDataRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"PATCH\",\n `videoBank/${action.payload._id}`,\n \"\",\n action.payload.payload\n );\n\n if (response) {\n yield put(actions.getVideoBankRequest());\n } else {\n throw new Error(\"No data is available\");\n }\n\n yield put(actions.patchVideoBankDataSuccess(response.data));\n } catch (e) {\n yield put(actions.patchVideoBankDataError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n\n if (action.payload.typeUpdate === \"update\") {\n yield put(actions.videoModalSuccess(false));\n }\n }\n}\n\nexport function* patchOrderVideoBankDataRequest(action) {\n yield put(actions.genericLoaderRequest(true));\n try {\n const response = yield call(\n fireAjax,\n \"PATCH\",\n `videoBank/order-by-type`,\n \"\",\n action.payload\n );\n\n if (response) {\n yield put(actions.getVideoBankRequest());\n } else {\n throw new Error(\"No data is available\");\n }\n\n yield put(actions.patchOrderVideoBankDataSuccess(response.data));\n } catch (e) {\n yield put(actions.patchOrderVideoBankDataError({ message: e.message }));\n } finally {\n yield put(actions.genericLoaderRequest(false));\n }\n}\n","import * as actions from \"../actions\";\nimport fireAjax from \"../../services\";\nimport { call, put } from \"redux-saga/effects\";\n\nexport function* getBooksRequest(action) {\n try {\n const response = yield call(fireAjax, \"GET\", \"books\", \"\");\n\n if (response.data) {\n yield put(actions.getBooksSuccess(response.data));\n }\n } catch (error) {\n yield put(actions.getBooksError({ message: error.message }));\n }\n}\n\nexport function* postBooksRequest(action) {\n try {\n const response = yield call(fireAjax, \"POST\", \"books\", \"\", action.payload);\n const bookData = yield call(fireAjax, \"GET\", \"books\", \"\");\n\n if (response.data) {\n yield put(actions.postBooksSuccess(response.data));\n yield put(actions.getBooksSuccess(bookData.data));\n }\n } catch (error) {\n yield put(actions.postBooksError({ message: error.message }));\n }\n}\n\nexport function* putBookRequest(action) {\n try {\n const response = yield call(\n fireAjax,\n \"POST\",\n `books/${action.payload.id}`,\n \"\",\n action.payload.data\n );\n\n if (response.data) {\n yield put(actions.putBookSuccess(response.data));\n }\n } catch (error) {\n yield put(actions.putBookError({ message: error.message }));\n }\n}\n\nexport function* deleteBookRequest(action) {\n try {\n const response = yield call(\n fireAjax,\n \"DELETE\",\n `books/${action.payload}`,\n \"\"\n );\n const bookData = yield call(fireAjax, \"GET\", \"books\", \"\");\n\n if (response.data) {\n yield put(actions.deleteBookSuccess(response.data));\n yield put(actions.getBooksSuccess(bookData.data));\n }\n } catch (error) {\n yield put(actions.deleteBookError({ message: error.message }));\n }\n}\n","import { takeLatest, takeEvery, all } from \"redux-saga/effects\";\nimport * as constants from \"./constants\";\nimport {\n updateUserSubscriptionRequest,\n loginRequest,\n logoutRequest,\n otpVerificationRequest,\n resendOtpRequest,\n getDashboardRequest,\n sendNotificationRequest,\n getNotificationRequest,\n} from \"./auth/actions\";\nimport {\n videoModalRequest,\n setModalDataRequest,\n genericLoaderRequest,\n} from \"./config/actions\";\nimport {\n createTrainerRequest,\n setPaidContentRequest,\n getUserListRequest,\n selectQuestionCategoryRequest,\n updateQuestionCategoryRequest,\n updateQuestionyRequest,\n deleteQuestionCategoryRequest,\n createQuestionCategoryRequest,\n getQuestionCategoryRequest,\n deleteCarouselDataRequest,\n updateCarouselDataRequest,\n createCarouselDataRequest,\n updateVideoRequest,\n addItemToVideoBankRequest,\n deleteVideoBankRequest,\n getVideoBankRequest,\n getCarouselDataRequest,\n deleteVideoRequest,\n getTrainersRequest,\n createQuestionRequest,\n getViodesRequest,\n getCourseListRequest,\n uploadVideoRequest,\n deleteCoursesRequest,\n deleteTrainerRequest,\n createCoursesrRequest,\n updateTrainerRequest,\n updateCoursesrRequest,\n upgradeUserPremiumRequest,\n upgradeUserDataRequest,\n createCouponRequest,\n getCouponListRequest,\n postGrantPremiumRequest,\n postGrantPremiumManyRequest,\n getActionableInsightDataRequest,\n postActionableInsightDataRequest,\n patchActionableInsightDataRequest,\n deleteActionableInsightDataRequest,\n patchOrderActionableInsightDataRequest,\n getKeyConceptDataRequest,\n postKeyConceptDataRequest,\n patchKeyConceptDataRequest,\n deleteKeyConceptDataRequest,\n patchOrderKeyConceptDataRequest,\n getTopCarouselDataRequest,\n postTopCarouselDataRequest,\n patchTopCarouselDataRequest,\n deleteTopCarouselDataRequest,\n patchOrderTopCarouselDataRequest,\n patchVideoBankDataRequest,\n patchOrderVideoBankDataRequest,\n} from \"./course/actions\";\nimport {\n deleteBookRequest,\n getBooksRequest,\n postBooksRequest,\n} from \"./books/actions\";\n\nexport function* watchActions() {\n yield takeLatest(constants.VIDEO_MODAL_REQUEST, videoModalRequest);\n yield takeLatest(constants.CREATE_TRAINER_REQUEST, createTrainerRequest);\n yield takeLatest(constants.LOGIN_REQUEST, loginRequest);\n yield takeLatest(constants.LOGOUT_REQUEST, logoutRequest);\n yield takeLatest(constants.OTP_VERIFICATION_REQUEST, otpVerificationRequest);\n yield takeLatest(constants.RESEND_OTP_REQUEST, resendOtpRequest);\n yield takeLatest(constants.GET_TRAINERS_REQUEST, getTrainersRequest);\n yield takeLatest(constants.GET_COURSELIST_REQUEST, getCourseListRequest);\n yield takeLatest(constants.CREATE_COURSE_REQUEST, createCoursesrRequest);\n yield takeLatest(constants.UPDATE_COURSE_REQUEST, updateCoursesrRequest);\n yield takeLatest(constants.SET_MODALDATA_REQUEST, setModalDataRequest);\n yield takeLatest(constants.GENERIC_LOADER_REQUEST, genericLoaderRequest);\n yield takeLatest(constants.UPDATE_TRAINER_REQUEST, updateTrainerRequest);\n yield takeLatest(constants.DELETE_TRAINER_REQUEST, deleteTrainerRequest);\n yield takeLatest(constants.DELETE_COURSE_REQUEST, deleteCoursesRequest);\n yield takeLatest(constants.UPLOAD_VIDEO_REQUEST, uploadVideoRequest);\n yield takeLatest(constants.GET_VIDEO_REQUEST, getViodesRequest);\n yield takeLatest(constants.CREATE_QUESTION_REQUEST, createQuestionRequest);\n yield takeLatest(constants.DELETE_VIDEO_REQUEST, deleteVideoRequest);\n yield takeLatest(constants.GET_CAROUSEL_DATA_REQUEST, getCarouselDataRequest);\n yield takeLatest(\n constants.CREATE_CAROUSEL_DATA_REQUEST,\n createCarouselDataRequest\n );\n yield takeLatest(constants.GET_VIDEOBANK_REQUEST, getVideoBankRequest);\n yield takeLatest(constants.DELETE_VIDEOBANK_REQUEST, deleteVideoBankRequest);\n yield takeLatest(\n constants.ADD_ITEM_VIDEOBANK_REQUEST,\n addItemToVideoBankRequest\n );\n yield takeLatest(constants.UPDATE_VIDEO_REQUEST, updateVideoRequest);\n yield takeLatest(\n constants.DELETE_CAROUSEL_REQUEST,\n deleteCarouselDataRequest\n );\n yield takeLatest(\n constants.UPDATE_CAROUSEL_DATA_REQUEST,\n updateCarouselDataRequest\n );\n yield takeLatest(constants.GET_USER_LIST_REQUEST, getUserListRequest);\n yield takeLatest(\n constants.GET_QUESTION_CATEGORY_REQUEST,\n getQuestionCategoryRequest\n );\n yield takeLatest(\n constants.CREATE_QUESTION_CATEGORY_REQUEST,\n createQuestionCategoryRequest\n );\n yield takeLatest(\n constants.DELETE_QUESTION_CATEGORY_REQUEST,\n deleteQuestionCategoryRequest\n );\n yield takeLatest(\n constants.UPDATE_QUESTION_CATEGORY_REQUEST,\n updateQuestionCategoryRequest\n );\n yield takeLatest(\n constants.SELECT_QUESTION_CATEGORY_REQUEST,\n selectQuestionCategoryRequest\n );\n yield takeLatest(\n constants.UPDATE_USER_SUBSCRIPTION_REQUEST,\n updateUserSubscriptionRequest\n );\n yield takeLatest(constants.UPDATE_QUESTION_REQUEST, updateQuestionyRequest);\n yield takeLatest(constants.GET_DASHBOARD_REQUEST, getDashboardRequest);\n yield takeLatest(\n constants.SEND_NOTIFICATION_REQUEST,\n sendNotificationRequest\n );\n yield takeLatest(constants.GET_NOTIFICATION_REQUEST, getNotificationRequest);\n yield takeLatest(constants.SET_PAID_CONTENT_REQUEST, setPaidContentRequest);\n yield takeLatest(\n constants.UPGRADE_USER_PREMIUM_REQUEST,\n upgradeUserPremiumRequest\n );\n yield takeLatest(constants.UPGRADE_USER_DATA_REQUEST, upgradeUserDataRequest);\n yield takeLatest(constants.GET_BOOKS_REQUEST, getBooksRequest);\n yield takeLatest(constants.POST_BOOKS_REQUEST, postBooksRequest);\n yield takeLatest(constants.DELETE_BOOK_REQUEST, deleteBookRequest);\n yield takeLatest(constants.CREATE_COUPON_REQUEST, createCouponRequest);\n yield takeLatest(constants.GET_COUPON_LIST_REQUEST, getCouponListRequest);\n yield takeLatest(\n constants.POST_GRANT_PREMIUM_REQUEST,\n postGrantPremiumRequest\n );\n yield takeLatest(\n constants.POST_GRANT_PREMIUM_MANY_REQUEST,\n postGrantPremiumManyRequest\n );\n // Actionable Insight\n yield takeLatest(\n constants.GET_ACTIONABLE_INSIGHT_DATA_REQUEST,\n getActionableInsightDataRequest\n );\n\n yield takeLatest(\n constants.POST_ACTIONABLE_INSIGHT_DATA_REQUEST,\n postActionableInsightDataRequest\n );\n\n yield takeLatest(\n constants.PATCH_ACTIONABLE_INSIGHT_DATA_REQUEST,\n patchActionableInsightDataRequest\n );\n\n yield takeLatest(\n constants.DELETE_ACTIONABLE_INSIGHT_DATA_REQUEST,\n deleteActionableInsightDataRequest\n );\n\n yield takeLatest(\n constants.PATCH_ORDER_ACTIONABLE_INSIGHT_DATA_REQUEST,\n patchOrderActionableInsightDataRequest\n );\n // Key concept\n yield takeLatest(\n constants.GET_KEY_CONCEPT_DATA_REQUEST,\n getKeyConceptDataRequest\n );\n\n yield takeLatest(\n constants.POST_KEY_CONCEPT_DATA_REQUEST,\n postKeyConceptDataRequest\n );\n\n yield takeLatest(\n constants.PATCH_KEY_CONCEPT_DATA_REQUEST,\n patchKeyConceptDataRequest\n );\n\n yield takeLatest(\n constants.DELETE_KEY_CONCEPT_DATA_REQUEST,\n deleteKeyConceptDataRequest\n );\n\n yield takeLatest(\n constants.PATCH_ORDER_KEY_CONCEPT_DATA_REQUEST,\n patchOrderKeyConceptDataRequest\n );\n\n // Top Carousel\n yield takeLatest(\n constants.GET_TOP_CAROUSEL_DATA_REQUEST,\n getTopCarouselDataRequest\n );\n\n yield takeLatest(\n constants.POST_TOP_CAROUSEL_DATA_REQUEST,\n postTopCarouselDataRequest\n );\n\n yield takeLatest(\n constants.PATCH_TOP_CAROUSEL_DATA_REQUEST,\n patchTopCarouselDataRequest\n );\n\n yield takeLatest(\n constants.DELETE_TOP_CAROUSEL_DATA_REQUEST,\n deleteTopCarouselDataRequest\n );\n\n yield takeLatest(\n constants.PATCH_ORDER_TOP_CAROUSEL_DATA_REQUEST,\n patchOrderTopCarouselDataRequest\n );\n\n yield takeLatest(\n constants.PATCH_VIDEO_BANK_DATA_REQUEST,\n patchVideoBankDataRequest\n );\n\n yield takeLatest(\n constants.PATCH_ORDER_VIDEO_BANK_DATA_REQUEST,\n patchOrderVideoBankDataRequest\n );\n}\n\nexport default function* rootSaga() {\n yield all([watchActions()]);\n}\n","import {createStore, applyMiddleware} from \"redux\";\nimport createSagaMiddleware from \"redux-saga\";\nimport rootReducer from \"./rootReducer\";\nimport rootSaga from \"./rootSaga\";\nimport logger from 'redux-logger';\nimport {connectRouter, routerMiddleware} from 'connected-react-router';\nimport history from '../History';\n\nconst reduxRouterMiddleware = routerMiddleware(history)\n\nconst middleware = [];\n// create the saga middleware\nconst sagaMiddleware = createSagaMiddleware();\n\n//logger to log the firing actions\nmiddleware.push(reduxRouterMiddleware)\nmiddleware.push(sagaMiddleware);\nif (process.env.NODE_ENV !== \"production\") {\n middleware.push(logger);\n}\n\n// mount it on the Store\nconst store = createStore(rootReducer(history), applyMiddleware(...middleware));\n\n// then run the saga\nsagaMiddleware.run(rootSaga);\n// render the application\n\nexport default store;\n\n\n","import {combineReducers} from \"redux\";\nimport auth from './auth/reducer';\nimport course from './course/reducer';\nimport books from \"./books/reducer\";\nimport systems from \"./system/reducer\";\nimport config from './config/reducer';\nimport {connectRouter} from \"connected-react-router\";\n\nexport default (history) => combineReducers({\n systems,\n auth,\n course,\n config,\n books,\n router: connectRouter(history)\n});\n","import logo from \"./logo.svg\";\nimport \"./App.css\";\nimport appLogo from \"./assets/logo.png\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport PlayList from \"./screens/PlayList\";\nimport AppNavigator from \"./Router\";\nimport { Provider } from \"react-redux\";\nimport store from \"./redux/store\";\nimport { ConnectedRouter } from \"connected-react-router\";\nimport history from \"./History\";\n\nfunction App() {\n return (\n <div className=\"App\">\n <Provider store={store}>\n <ConnectedRouter history={history}>\n <AppNavigator />\n </ConnectedRouter>\n </Provider>\n </div>\n );\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n <React.StrictMode>\n <App />\n </React.StrictMode>,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}