{"version":3,"sources":["services/referralApiService.js","redux/authSlice.js","services/jobBoard.service.js","services/getcourse.js","redux/courseSlice.js","redux/userSubscriptionSlice.js","modules/course-lms-v2/components/shared/components/Loader.jsx","redux/homeSlice.js","redux/shareEarnSlice.js","redux/navigationSlice.js","services/freeUser.js","redux/paymentSlice.js","redux/mastersSlice.js","globals/COLORS.js","static/img/almabetterLogo.png","route-constants.js","services/userApiService.js","Layout.js","pages/auth/_components/leftContent.jsx","pages/auth/_assets/logos.jsx","pages/auth/login/page.jsx","pages/auth/signup/page.jsx","services/mixpanel.js","pages/auth/_assets/forgot_pass_bg.webp","pages/auth/forgot_your_password/page.jsx","pages/auth/logout/page.jsx","pages/auth/login_successful/page.jsx","pages/auth/router.jsx","redux/colorModeSlice.js","App.jsx","redux/themeSlice.js","redux/companySlice.js","redux/learnSlice.js","redux/questionLevelsSlice.js","redux/referAndEarnSlice.js","redux/problemsSlice.js","redux/practiceSlice.js","redux/projectsSlice.js","redux/carrerSlice.js","pages/[course-type]/learn/[course-name]/utils.js","redux/webSocketSlice.js","redux/ugDiplomaSlice.js","redux/bannerSlice.js","redux/jobBoardSlice.js","redux/store.js","ErrorBoundary.js","plugins/dayjs.js","index.jsx","modules/course-lms-v2/components/shared/utils/index.js","services/homeTabApiService.js","aws-exports.js","utils.js","constants.js","services/learnTabApiService.js","redux/learnTabSlice.js"],"names":["getReferralPrograms","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","API","get","USER_API_GATEWAY_ENDPOINT_NAME","abrupt","sent","stop","apply","arguments","getShareAndEarnConfig","_ref2","_callee2","_context2","postReferralCode","_ref3","_callee3","body","_context3","post","_x","getReferrarInfo","_ref4","_callee4","_context4","getAllReferrals","_ref5","_callee5","_context5","authSlice","createSlice","name","initialState","isLoggedIn","loggedInUser","profileInfo","reducers","updateAuthStatus","state","action","payload","setLoggedInUser","setProfileInfo","_authSlice$actions","actions","loadUser","dispatch","user","getMyProfile","t0","console","error","_x2","loadProfileInfo","_x3","loggedInUserSelector","authReducer","getAllJobs","getSavedJobs","getSavedJobsCount","getJobParams","_ref6","_callee6","_context6","getJobsAddedCount","_ref8","_callee8","_context8","getCourse","course","selectedCourse","COURSE_TYPE","WEB_DEV","MASTERS_CS","DATA_SCIENCE","MASTERS_DS_AS","DATA_ENGINEERING","DS_BOOTCAMP","UG_DIPLOMA_CS","returnCourseName","returnCourseCamelCaseName","returnCourseApiName","returnActualCourseNameForApi","WEB3","returnRespectiveMastersCourse","courseSlice","courseSelected","userSelectedCourses","popupStatus","popupStatusMobile","setCourseSelected","setUserSelectedCourses","setPopupStatus","setPopupStatusMobile","_courseSlice$actions","courseSelectedSelector","courseReducer","userSelectedCoursesSelector","popUpStatus","userSubscriptionSlice","subscriptionDetails","onBoardingData","userPerformance","userPerformanceHoverbox","paymentCompleted","profileOnboardingData","jobTitles","companies","educationStream","degree","hideSupportWidget","supportWidgetClass","onboardingCourse","isPhoneVerified","onboardingLoaded","setUserSubscription","setUserOnboardingData","setUserPerformance","setUserPerformanceHoverbox","setPaymentCompleted","setProfileOnboardingData","setHideSupportWidget","setSupportWidgetClass","setOnboardingCourse","setIsPhoneVerified","setOnboardingLoaded","_userSubscriptionSlic","userSubscriptionSelector","userSubscriptionReducer","onboardingSelector","getUserPerformanceHoverbox","getState","_Object$keys2","_getState$courseReduc2","_getState$learnTabRed","userSubscription","actualCourseSelected","courseId","modifiedCourse","data","Object","keys","learnTabReducer","courseData","fetchUserPerformanceHoverboxData","id","_x5","_x6","getOnboarding","log","getOnboardingData","_x7","_x8","AlmabetterDesign","_jsxs","className","children","_jsx","Lottie","animationData","logo","loop","getRandom","DefaultLoadingCenteredCircle","props","_objectSpread","CircularProgress","LoadingAlmabetterDesign","memo","homeSlice","upcomingClasses","mentors","events","successStories","hideScrollbar","loadData","eventsData","userFAQ","communityUpdates","communityUpdatesForEnrolledUsers","coupon","status","value","mastersCourseData","ugCourseData","openCallBack","demoClass","customStripBanner","setUpcomingClasses","updateMentors","getEvents","setSuccessStories","setHideScrollbar","setLoadData","resetHomeData","setEventsData","setUserFAQ","setCommunityUpdates","setCommunityUpdatesForEnrolledUsers","setCoupon","setMastersCourseData","setUgCourseData","setOpenCallBack","setDemoClass","setCustomStripBanner","_homeSlice$actions","fetchUpcomingDemoClass","forced","length","undefined","_ref9","_callee9","demoClassList","_context9","homeReducer","getUpcomingDemoClass","_x15","_x16","fetchCustomStripBanner","_ref10","_callee10","slug","campaignData","_context10","window","location","pathname","split","slice","join","fetchCampaignStripBanner","_x17","_x18","shareAndEarnSlice","process","REACT_APP_REFERRAL_URL","referralPrograms","shareAndEarnConfig","signupAmount","redemptionTDSPercent","referralInfo","updateReferralPrograms","updateShareAndEarnConfig","updateReferralInfo","selectReferralInfo","shareAndEarnReducer","_shareAndEarnSlice$ac","navigationSlice","navigationClassname","sidebarClassname","hideCourseSelector","showExtraHeader","onBoardingState","removeHeight","updateNavigationClassname","updateSidebarClassname","updateCourseSelector","updateShowExtraHeader","updateOnBoardingState","updateRemoveHeight","_navigationSlice$acti","getFreeUserCurrentStage","courseName","LEARN_SUBMISSION_API_ENDPOINT_NAME","concat","paymentSlice","subscriptionPlans","separateSubscriptionPlans","remainingInitialCouponTime","setSubscriptionPlans","setSeparateSubscriptionPlans","setRemainingInitialCouponTime","getRemainingInitialCouponTime","_res$stage","_res$stage$split","res","parseInt","stage","updatedAt","_paymentSlice$actions","selectRemainingInitialCouponTime","paymentReducer","mastersCourseSlice","loadOnboarding","currentPage","continueOnboarding","woolfInstance","masterStatus","degreeId","setLoadOnboarding","setContinueOnboarding","setCurrentPage","setWoolfInstance","setMastersStatus","setDegreeId","_mastersCourseSlice$a","mastersDegreeIdSelector","mastersReducer","module","exports","AB_GREEN_C1","AB_GREEN_C2","AB_GREEN_C3","AB_GREEN_C4","AB_GREEN_C5","AB_GRAY_C0","AB_GRAY_C1","AB_GRAY_C3","AB_GRAY_C4","AB_GRAY_C5","AB_GRAY_C6","AB_GRAY_C7","AB_GRAY_C8","AB_GRAY_C9","AB_GRAY_C10","AB_GRAY_C11","AB_GRAY_C12","AB_GRAY_C13","AB_GRAY_C14","AB_GRAY_C15","AB_GRAY_C16","AB_BLUE_C1","AB_BLUE_C2","AB_BLUE_C3","AB_BLUE_C4","AB_BLUE_C5","AB_BLUE_C6","AB_BLUE_C7","AB_BLUE_C8","AB_BLUE_C9","AB_YELLOW_C1","AB_YELLOW_C2","AB_YELLOW_C3","AB_PINK_C1","AB_PINK_C2","AB_PRIMARY","AB_PRIMARY_SHADE_1","AB_PRIMARY_SHADE_2","AB_PRIMARY_SHADE_3","AB_PRIMARY_SHADE_4","AB_PRIMARY_SHADE_5","AB_SECONDARY","AB_SECONDARY_SHADE_1","AB_SECONDARY_SHADE_2","AB_SECONDARY_SHADE_3","AB_SECONDARY_SHADE_4","AB_SECONDARY_SHADE_5","AB_SECONDARY_SHADE_6","AB_SECONDARY_SHADE_7","AB_TERTIARY","AB_TERTIARY_SHADE_1","AB_TERTIARY_SHADE_2","AB_LIGHT","YELLOW_SHADE_1","YELLOW_SHADE_2","BLUE_SHADE_1","AB_ORANGE_LIGHT","AB_MODULE_THEME","AB_GRAY_C17","AB_GRAY_C18","AB_RED_R1","AB_PINK_HOVER","AB_TYPE_COLOUR_1","AB_TYPE_COLOUR_2","AB_PASTEL_PURPLE_1","MODULES_PATH","CHAT","ONBOARDING","JOB_BOARD","HOME","SINGLE_JOB_VIEW","REGISTER_EVENT","MY_ACCOUNT","CERTIFICATES","SHARE_LINKEDIN_POST","PROGRAM_INFORMATION","this","PASSWORD","EDUCATION","WORK_EXPERIENCE","SKILLS","PAYMENT","SUCCESS","POST_PAYMENT_ONBOARDING","MASTERS","EURO","ANNOUNCEMENT","AUTH","LOGIN","FRESHDESK_SSO_LOGIN","THINKIFIC_SSO_LOGIN","SIGN_UP","FORGOT_YOUR_PASSWORD","LOGIN_SUCCESSFUL","LOGOUT","LOGOUT_SUCCESSFUL","DISCORD","COMMUNITY_LANDING","SCHOOL","INTERMEDIATE_PAGE","LIVE_CLASS","PERFORMANCE_DASHBOARD","COHORT_LEADERBOARD","NEW_MENTORSHIP","BASE","NEW_BOOKING","MANAGE_BOOKINGS","INTERVIEW_SIMULATOR","FEEDBACK","FEEDBACK_ROUTE","REPORT","REPORT_ROUTE","WATCH_RECORDINGS","WATCH_RECORDINGS_ROUTE","LEGACY","GROW_HOME","REFER_AND_EARN","PREFIX","MY_REFEERALS","MY_REWARDS","HISTORY","CLASSROOM","COURSE_LMS_DASHBOARD","LMS_IIT","LEARN_HOME","LEARN","LEARN_PROJECTS","SINGLE_PROJECT_VIEW","LEARN_CAREER","LEARN_CAREER_LEARN_TAB","LEARN_MAIN_COURSES","LEARN_TRACK_PROJECTS","LEARN_TRACK_SINGLE_PROJECT","LEARN_MAIN_COURSES_LESSON","PRACTICE_TAB","CODING_ASSESSMENT","SINGLE_CODING_ASSESSMENT_VIEW","CODING_PROBLEM","SINGLE_CODING_PROBLEM","QUIZ_ASSESSMENT","SINGLE_ASSESSMENT_VIEW","FREE_COURSE_CARDS","SINGLE_FREE_COURSE","FREE_COURSE_LESSON","ENV","REACT_APP_ENV","_getMyProfile","_callee51","response","_context51","updateMyProfile","_updateMyProfile","_callee53","userData","_context53","put","headers","getOnboardingInfo","updateOnboardingInfo","checkSubscription","getAllCompanies","_ref20","_callee20","_context20","postOnboardingData","_ref21","_callee21","_context21","_x14","fetchUserPerformanceData","_ref22","_callee22","_context22","_ref23","_callee23","_context23","postUserDataForCallback","_ref24","_callee24","_context24","sendOTPForCallback","_ref25","_callee25","_context25","verifyOTPForCallback","_ref26","_callee26","_context26","_x19","addMobileAfterSignup","_ref30","_callee30","_context30","_x23","verifyOTPAfterSignup","_ref31","_callee31","_context31","_x24","getFreeUserFaq","_ref32","_callee32","url","_context32","fetch","then","json","getEgligibilityForExtension","_ref33","_callee33","_context33","getTopThreeLeaderboard","_ref36","_callee36","_context36","_x28","getUserAlmapoints","_ref37","_callee37","_context37","postErrorLog","_ref38","_callee38","_context38","_x29","appendToExploredCourses","_ref40","_callee40","apiData","_context40","_x30","updateCurrentCourse","_ref41","_callee41","_context41","_x31","postAdmissionTeamData","_ref46","_callee46","_context46","_x34","_ref50","_callee50","date","today","_yield$axios$get","_context50","Date","dayjs","format","axios","_x37","withRouter","LeftSignupContent","src","style","transform","GoogleIcon","iconStyle","width","height","viewBox","fill","xmlns","d","Login","history","useHistory","_useState","useState","_useState2","_slicedToArray","email","setEmail","_useState3","_useState4","password","setPassword","_useState5","_useState6","setError","_useState7","_useState8","disable","setDisable","ifUserIsAuthenticatedRedirect","Auth","currentAuthenticatedUser","push","_signIn","lowercaseEmail","toLowerCase","signIn","finish","useEffect","backgroundImage","boxShadow","backgroundColor","onClick","federatedSignIn","provider","CognitoHostedUIIdentityProvider","Google","onSubmit","e","_Object$keys","preventDefault","temp","message","ErrorOutlineIcon","htmlFor","type","placeholder","onChange","target","replace","Link","to","disabled","color","storeRedirectToAndUserCourseInterests","_getReferralCode","redirectTo","getRedirectTo","queryString","captureParams","urlSearchText","search","urlSearchParams","URLSearchParams","referralCode","utmSource","getReferralCode","refferalGoal","refferalPlan","localStorage","setItem","LOCAL_STORAGE_KEYS","REFERRAL_GOAL","REFERRAL_PLAN","REFERRAL_CODE","includes","REFERRAL_SOURCE","interests","forEach","queryParamVal","queryParam","endsWith","getUserCourseInterests","COURSE_INTERESTS","JSON","stringify","redirectToValue","REDIRECT_TO","sessionStorage","CAMPAIGN_PARAMS","SignUp","useLocation","source","_useState9","_useState10","clicked","setClicked","_useState11","_useState12","userName","setUserName","_signUp","signUp","username","attributes","trim","page","mixpanel","track_pageview","trackPageView","cn","visible","_Fragment","PasswordStrengthBar","onChangeScore","score","feedback","warning","validateEmail","validateFullname","values","every","open","redirectUrl","errorCodes","UserNotFoundException","renderEmail","_emailString","_emailString2","emailString","subString","repeat","validateConfirmPassword","pass","confirmPass","ConfirmPassword","onPasswordSuccessfullyReset","form","setForm","resetPasswordLoading","setResetPasswordLoading","renderedEmail","handleInput","_defineProperty","resetPassword","forgotPasswordSubmit","code","confirmPassword","PutEmail","onEmailSuccessfullyInput","resetButtonLoading","setResetButtonLoading","errorMsg","setErrorMsg","validateForm","onResetButtonClicked","_errorMsg","forgotPassword","ResetPassword","_useState13","_useState14","_useState15","_useState16","setPage","bgImage","alt","emailParam","Logout","React","_logOut","removeItem","GLOBAL_SETTINGS","signOut","logOut","LoginSuccessful","useDispatch","userDetails","useSelector","catch","err","AuthRouter","Switch","Route","exact","path","component","getThemeProperties","theme","inputField","default","COLORS","hover","focused","checkbox","checked","select","datePicker","primary","secondary","tertiary","highlight_1","highlight_2","currentTheme","getItem","colorTheme","palette","colorModeSlice","setColorTheme","LoggedInApp","lazy","App","colorModeReducer","appliedTheme","createTheme","Suspense","fallback","Router","Layout","ThemeProvider","ToastContainer","themeSlice","themes","topics","subTopics","setThemes","Topics","_toConsumableArray","SubTopics","companySlice","setAllCompanies","courseDetailsSlice","courseContent","moduleContent","lessonContent","activeTopic","activeTopicDuration","activeContent","activeTopics","codeResult","isDefault","codeError","topicProblems","selectedQues","topicProblemCode","currentLesson","quizConfig","showPreview","gistUrl","videoUrl","language","multimedia","updateCourseContent","content","updateModuleContent","updateLessonContent","_action$payload$getTo","getTopic","duration","course_problems","problem_code","assessment_config","courseLessons","lessonId","updatePreview","_courseDetailsSlice$a","questionLevelsSlice","modules","competencies","concepts","ratingTemplateByConceptId","setQuestionLevels","_state$modules","m","_state$competencies","Competencies","c","_state$concepts","_c$Concepts","Concepts","RatingTemplate","referAndEarnSlice","referralAmount","balance","lifetimeRewards","referredUsers","vouchers","loading","loadingOverlay","showGiftCardInformation","showRedeemConfirmationOverlay","showRedeemedMessageOverlay","giftCardInformation","redeemedVouchers","referreDetails","selectedVoucherDetails","showGiftOverlay","placeOrderResponse","errorOccured","orderDetails","errorMessage","showVoucherBlock","utmParams","refreeApiCalled","setUserReferralDetails","setReferredUsers","setLoadingStatus","loadingStatus","setLoadingOverlayStatus","setRefreeApiCalled","setVouchersDetails","setGiftCardInformationFlag","setRedeemConfirmationOverlay","setRedeemedMessageOverlay","setGiftCardInformation","setRedeemedVouchers","setReferrUserDetails","setGiftOverlay","setSelectedVoucherDetails","setPlaceOrderResponse","setVoucherBlock","_referAndEarnSlice$ac","problemDetailSlice","optionTab","defaultCodingLanguage","currentSelectedProblem","currentSelectedCodingLanguage","python","javascript","html","css","react","java","headerIcon","reset","settings","fullscreen","tableData","totalCount","solvedCount","solvedProblems","unsolvedProblems","problemsList","updateSubmission","selectTab","setUpdateSubmissions","selectDefaultCodingLanguage","selectedCodingLanguage","resetTab","setCurrentSelectedProblem","updateCode","resetCode","updateHeaderIcon","icon","setTableData","_action$payload","_action$payload$solve","dataArray","sort","a","b","isLocked","filter","problem","solvedStatus","solved","setProblemsList","_action$payload2","_action$payload$solve2","_action$payload3","_action$payload4","_problemDetailSlice$a","currentOptionTab","practiceSlice","localNavigationRoutes","currSelectedTab","practiceTabs","coding_problem","coding_assesment","quiz_assesment","lockFilter","codingAssessment","skillsFilterData","codingAssessmentProblemList","popupShown","assessmentId","totalProblems","currentPracticeTab","sub_tab","selectLockFilter","selectCurrentTab","setCodingAssessment","noComparator","setQuizAssessment","setSkillFilter","setCodingAssesmentProblemsList","_practiceSlice$action","projectSlice","newProjects","submittedProjects","allProjects","currTab","updateProjects","projectData","setCurrTab","resetAllProjectsData","_projectSlice$actions","carrerSlice","almaXCoach","egligibilityCriteria","freeUser","almaxConfirmation","egligibleForExtension","setMentors","setAlmaXCoach","setEgligibilityCriteria","setContent","setFreeUser","resetAllCarrerData","setCheckForExtension","_carrerSlice$actions","setAlmaxConfirmation","webscoketSlice","moduleProgress","courseProgress","trackProgress","codingProblemProgress","projectEvaluated","lessonStatus","updateProgress","eventType","eventData","updateModuleProgress","updateCourseProgress","updateTrackProgress","updateCodingProblemProgress","updateLessonCompleted","lessonCompleted","_webscoketSlice$actio","ugCourseSlice","ugLoadOnboarding","ugCurrentPage","ugContinueOnboarding","setUgLoadOnboarding","setUgContinueOnboarding","setUgCurrentPage","_ugCourseSlice$action","bannerSlice","showStripBanner","setShowStripBanner","jobBoardSlice","jobs","savedJobs","savedJobsCount","currentSavedJobsPage","filterParams","searchRole","filters","workExperience","disableFilter","domain","employmentType","workString","jobLocation","skills","updateJobs","updateSavedJobs","setLoading","updateCurrentPage","updateJobLocation","updateSavedJobsCount","updateSavedJobsCurrentPage","updateFilterParams","updateSearchRole","updateLocationFilter","updateSkillsFilter","updateComapniesFilter","updateDomainFilter","updateEmploymentTypeFilter","updateWorkExperienceFilter","updateWorkStringFilter","updateDisableFilter","resetFilters","_jobBoardSlice$action","store","configureStore","reducer","themeReducer","companyReducer","learnReducer","questionLevelsReducer","referAndEarnReducer","problemReducer","navigationReducer","practiceReducer","projectReducer","carrerReducer","webSocketReducer","ugReducer","bannerReducer","jobBoardReducer","devTools","Component","extend","advancedFormat","localizedFormat","relativeTime","utc","timezone","isBetween","weekday","customParseFormat","objectSupport","isToday","calendar","LinkedInTag","init","debug","persistence","api_host","api_payload_format","Amplify","configure","awsconfig","ReactDOM","render","Provider","document","getElementById","chapterOrderSet","_courseData$course_mo","_courseData$course_mo2","_courseData$learn_mod","_courseData$moduleOrd","_courseData$moduleOrd2","course_modules","learn_modules","order","moduleOrder","sortedData","item","_item$attributes","_item$attributes$lear","_item$attributes$lear2","learn_chapters","_a$attributes","_b$attributes","indexOf","chapterOrder","map","_item$attributes2","_item$attributes2$cha","orderedChapter","index","_item$attributes3","_item$attributes3$lea","_item$attributes3$lea2","_learnChaptersWithLes","learnChaptersWithLessons","_item$attributes4","_item$attributes4$lea","_item$attributes4$lea2","learn_lessons","orderedLearnChapters","_chapterOrder$index","_a$attributes2","_chapterOrder$index2","_b$attributes2","lessonOrder","_item$attributes5","_item$attributes5$lea","_item$attributes5$lea2","_item$attributes6","_item$attributes6$lea","_item$attributes6$lea2","chapter","_chapter$attributes","_chapter$attributes$l","orderedLesson","_item$attributes7","_item$attributes7$lea","_item$attributes7$lea2","ind","_chapter$attributes2","_chapter$attributes2$","_chapter$attributes2$2","_chapter$attributes2$3","orderedLearnLessons","_lessonOrder$index$in","_a$attributes3","_lessonOrder$index$in2","_b$attributes3","finalData","_item$attributes8","_item$attributes8$lea","_item$attributes8$lea2","complimentaryChapterOrderSet","_courseData$attribute","_courseData$attribute2","_courseData$attribute3","_courseData$attribute4","_courseData$attribute5","_courseData$attribute6","_courseData$attribute7","learnChapters","sortedChapterData","_a$attributes4","_b$attributes4","_chapter$attributes3","_chapter$attributes3$","_chapter$attributes4","_chapter$attributes4$","sortedLessonsData","_a$attributes5","_b$attributes5","returnLastLessonName","lastLesson","_chapter$BASIC_INFO","_chapter$BASIC_INFO$l","_chapter$BASIC_INFO$l2","_selectedChapter$attr","_selectedChapter$attr2","_selectedChapter$attr3","_selectedChapter$attr4","_selectedChapter$attr5","_selectedChapter$attr6","_selectedChapter$attr7","_selectedChapter$attr8","_selectedChapter$attr9","_selectedChapter$attr10","_selectedChapter$attr11","_selectedChapter$attr12","_selectedChapter$attr13","_selectedChapter$attr14","_selectedChapter$attr15","_selectedChapter$attr16","_selectedChapter$attr17","_selectedChapter$attr18","_selectedChapter$attr19","_selectedChapter$attr20","_selectedChapter$attr21","_selectedChapter$attr22","_selectedChapter$attr23","_selectedChapter$attr24","_selectedChapter$attr25","_selectedChapter$attr26","selectedChapter","BASIC_INFO","learn_tracks","find","trackId","_item$attributes9","_item$attributes9$lea","_item$attributes9$lea2","_item$attributes10","_item$attributes11","_item$attributes11$le","filtered","t","_t$attributes2","_t$attributes2$learn_","some","lesson","list","Math","floor","random","returnSelectedCourse","makeStringSmall","str","scrollToElement","elementId","element","scrollIntoView","behavior","block","getUpcomingClasses","cohort","getMentors","leadSquareForEventRegistration","details","LEADSQUARED_API_GATEWAY_ENDPOINT_NAME","_x4","getStories","_callee7","event","_context7","getAllEvents","getCommunityUpdates","_ref11","getCommunityUpdatesForEnrolledUsers","_ref12","_x9","_ref16","_callee14","_context14","registerDemoClass","_ref17","_callee15","_args15","_context15","getMastersCourseData","_ref18","_callee16","_context16","queryStringParameters","_x10","REFERRAL_RUPEES_TO_COINS","LEARN_SUBMISSION_API_ENDPOINT","REACT_APP_COURSE_LMS_API_GATEWAY_ENDPOINT","LEADSQUARED_API_GATEWAY_ENDPOINT","REACT_APP_LEADSQUARED_API_ENDPOINT","DOMAIN","getDomain","AWS_REGION","REACT_APP_AWS_REGION","config","region","userPoolId","userPoolWebClientId","oauth","scope","redirectSignIn","redirectSignOut","responseType","endpoints","endpoint","custom_header","_custom_header","currentSession","t1","getIdToken","getJwtToken","t2","call","Authorization","_custom_header2","_custom_header3","_custom_header4","Storage","AWSS3","bucket","getFullName","_user$firstName","_user$lastName","firstName","lastName","doesUserHaveMissingPhone","Error","phone","makeStyles","root","borderColor","button","transition","fontSize","withStyles","TextField","Checkbox","test","String","fullName","_currentCourse","PLAN_TYPE","MASTER","_PLAN_TYPE$MASTER","PRO_LIVE","_PLAN_TYPE$PRO_LIVE","DateTimeFormatter","sameDay","nextDay","nextWeek","lastDay","sameElse","Array","from","entries","reduce","accu","key","protocol","host","LOGIN_PROCESS_STAGE","LOGOUT_PROCESS_STAGE","LINKEDIN_SHARE","JOB_DASHBOARD_VIEWED","REACT_APP_RAZORPAY_KEY_ID","PRO_FLEX","PRO_LEGACY","PRO_UPGRADE","NEW_USER","PREMIUM","CORPORATE","_PLAN_TYPE_NAMES_MAPP","COURSE_TYPE_NAMES_MAPPING","_COURSE_TYPE_NAMES_MA","BOOKING_STAGE","CREATED","TIME_SLOTS_ADDED","COACH_ASSIGNED","SESSION_CONDUCTED","FEEDBACK_SUBMITTED","ADMIN_ON_HOLD","ADMIN_APPROVED","CANCELLED","COMMUNITY","REACT_APP_BACKEND_URL","COURSE_PATHS","COURSE_TYPE_COURSE_PATH_MAPPING","_COURSE_TYPE_COURSE_P","DISCORD_AUTH_CLIENT_ID","_","invert","REACT_APP_WEB_SOCKETS_ENDPOINT","REACT_APP_DISCORD_AUTH_CLIENT_ID","COURSE_SELECTOR","certification","planType","courseType","classType","accredited","woolf","iitGuwahati","for","outcome","masters","ENROLLED_IN","CERTIFICATION","UG_DIPLOMA","getGoalAndPlanBasedOnInterest","_getGoalAndPlanBasedO","goalType","SUB_PLAN_TYPES","PREMIUM_AB","ICONIC_IITG","ICONIC_WOOLF","GLOBAL_IITG_WOOLF","SUB_PLAN_TYPES_MAPPING","_SUB_PLAN_TYPES_MAPPI","STUDENTS_ID","_EMI_PLANS_FOR_SUB_PL","_COURSE_TYPE_COURSE_N","NOTION_DOC","fetchAllClasses","submitClassroomFeedback","_ref28","_callee27","_context27","learnTabSlice","currentChapter","problems","totalModules","selectLanguage","shortCourse","cardData","shortCourseData","lastLessonComplimentary","currentChapterIndex","noLastLesson","classroom","lastAccessedLesson","activityStatus","actualActivityData","practiseData","completeLessonLoader","completedActivities","mobileModuleSelected","selectedTrack","shortCourseLoader","setCurrentChapter","setShortCourseCardData","updateShortCourseData","setPractiseData","setCurrentProblem","setCurrentModule","setTotalModules","setCourseData","setMobileModuleSelected","setSelectedTrack","updateLanguage","resetLanguage","setLastLesson","setNoLastLesson","setCurrentChapterIndex","setLastLessonComplimentary","setClassroom","setLastAccessedLesson","setActivityStatus","_action$payload5","setCompleteLessonLoader","setCompletedActivities","updateShortCourseLoader","successCallbackAfterFeedbackSubmission","params","responseData","activityId","result","currentDate","upcomingData","completedData","getTime","endTime","upcoming","completed","_x11","_x12","_learnTabSlice$action"],"mappings":"+TAGaA,EAAmB,eAAAC,EAAAC,YAAAC,cAAAC,MAAG,SAAAC,IAAA,OAAAF,cAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACpBC,IAAIC,IAAIC,IAA+B,0BAA2B,KAAD,SAAAL,EAAAM,OAAA,SAAAN,EAAAO,MAAA,wBAAAP,EAAAQ,OAAA,GAAAV,EAAA,KAC/E,kBAF+B,OAAAJ,EAAAe,MAAA,KAAAC,UAAA,KAInBC,EAAqB,eAAAC,EAAAjB,YAAAC,cAAAC,MAAG,SAAAgB,IAAA,OAAAjB,cAAAG,MAAA,SAAAe,GAAA,cAAAA,EAAAb,KAAAa,EAAAZ,MAAA,cAAAY,EAAAZ,KAAA,EACtBC,IAAIC,IAAIC,IAA+B,iCAAkC,KAAD,SAAAS,EAAAR,OAAA,SAAAQ,EAAAP,MAAA,wBAAAO,EAAAN,OAAA,GAAAK,EAAA,KACtF,kBAFiC,OAAAD,EAAAH,MAAA,KAAAC,UAAA,KAIrBK,EAAgB,eAAAC,EAAArB,YAAAC,cAAAC,MAAG,SAAAoB,EAAOC,GAAI,OAAAtB,cAAAG,MAAA,SAAAoB,GAAA,cAAAA,EAAAlB,KAAAkB,EAAAjB,MAAA,cAAAiB,EAAAjB,KAAA,EAC5BC,IAAIiB,KAAKf,IAA+B,sCAAwC,CAC3Fa,SACC,KAAD,SAAAC,EAAAb,OAAA,SAAAa,EAAAZ,MAAA,wBAAAY,EAAAX,OAAA,GAAAS,EAAA,KACH,gBAJ4BI,GAAA,OAAAL,EAAAP,MAAA,KAAAC,UAAA,KAMhBY,EAAe,eAAAC,EAAA5B,YAAAC,cAAAC,MAAG,SAAA2B,IAAA,OAAA5B,cAAAG,MAAA,SAAA0B,GAAA,cAAAA,EAAAxB,KAAAwB,EAAAvB,MAAA,cAAAuB,EAAAvB,KAAA,EAChBC,IAAIC,IAAIC,IAA+B,sBAAuB,KAAD,SAAAoB,EAAAnB,OAAA,SAAAmB,EAAAlB,MAAA,wBAAAkB,EAAAjB,OAAA,GAAAgB,EAAA,KAC3E,kBAF2B,OAAAD,EAAAd,MAAA,KAAAC,UAAA,KAIfgB,EAAe,eAAAC,EAAAhC,YAAAC,cAAAC,MAAG,SAAA+B,IAAA,OAAAhC,cAAAG,MAAA,SAAA8B,GAAA,cAAAA,EAAA5B,KAAA4B,EAAA3B,MAAA,cAAA2B,EAAA3B,KAAA,EAChBC,IAAIC,IAAIC,IAAgC,2BAA2B,KAAD,SAAAwB,EAAAvB,OAAA,SAAAuB,EAAAtB,MAAA,wBAAAsB,EAAArB,OAAA,GAAAoB,EAAA,KAChF,kBAF2B,OAAAD,EAAAlB,MAAA,KAAAC,UAAA,I,iLCPtBoB,EAAYC,YAAY,CAC5BC,KAAM,cACNC,aARmB,CACnBC,YAAY,EACZC,aAAc,KACdC,YAAa,MAMbC,SAAU,CACRC,iBAAkB,SAACC,EAAOC,GACxBD,EAAML,WAAaM,EAAOC,OAC5B,EACAC,gBAAiB,SAACH,EAAOC,GACvBD,EAAMJ,aAAeK,EAAOC,OAC9B,EACAE,eAAgB,SAACJ,EAAOC,GACtBD,EAAMH,YAAcI,EAAOC,OAC7B,KAIGG,EACLd,EAAUe,QADGP,EAAgBM,EAAhBN,iBAAkBI,EAAeE,EAAfF,gBAA+BE,EAAdD,eAc3C,SAASG,IACd,sBAAAlC,EAAAjB,YAAAC,cAAAC,MAAO,SAAAgB,EAAOkC,GAAQ,IAAAC,EAAA,OAAApD,cAAAG,MAAA,SAAAe,GAAA,cAAAA,EAAAb,KAAAa,EAAAZ,MAAA,cAAAY,EAAAb,KAAA,EAAAa,EAAAZ,KAAA,EAEC+C,cAAe,KAAD,EAA3BD,EAAIlC,EAAAP,KACVwC,EAASL,EAAgBM,IACzBD,EAAST,GAAiB,IAC1BxB,EAAAZ,KAAA,gBAAAY,EAAAb,KAAA,EAAAa,EAAAoC,GAAApC,EAAA,SAEAqC,QAAQC,MAAKtC,EAAAoC,IAAQ,yBAAApC,EAAAN,OAAA,GAAAK,EAAA,kBAExB,gBAAAwC,GAAA,OAAAzC,EAAAH,MAAA,KAAAC,UAAA,EATD,EAUF,CAEO,SAAS4C,IACd,sBAAAtC,EAAArB,YAAAC,cAAAC,MAAO,SAAAoB,EAAO8B,GAAQ,IAAAC,EAAA,OAAApD,cAAAG,MAAA,SAAAoB,GAAA,cAAAA,EAAAlB,KAAAkB,EAAAjB,MAAA,cAAAiB,EAAAlB,KAAA,EAAAkB,EAAAjB,KAAA,EAEC+C,cAAe,KAAD,EAA3BD,EAAI7B,EAAAZ,KACVwC,EAASL,EAAgBM,IAAO7B,EAAAjB,KAAA,gBAAAiB,EAAAlB,KAAA,EAAAkB,EAAA+B,GAAA/B,EAAA,SAEhCgC,QAAQC,MAAKjC,EAAA+B,IAAQ,yBAAA/B,EAAAX,OAAA,GAAAS,EAAA,kBAExB,gBAAAsC,GAAA,OAAAvC,EAAAP,MAAA,KAAAC,UAAA,EAPD,EAQF,CA0BO,IAAM8C,EAAuB,SAACjB,GAAK,OAAKA,EAAMkB,YAAYtB,YAAa,EAI/DL,MAAiB,O,8OC7FnB4B,EAAU,eAAAhE,EAAAC,YAAAC,cAAAC,MAAG,SAAAC,EAAOoB,GAAI,OAAAtB,cAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACtBC,IAAIiB,KAAKf,IAA+B,uBAAyB,CAC5Ea,SACC,KAAD,SAAAlB,EAAAM,OAAA,SAAAN,EAAAO,MAAA,wBAAAP,EAAAQ,OAAA,GAAAV,EAAA,KACH,gBAJsBuB,GAAA,OAAA3B,EAAAe,MAAA,KAAAC,UAAA,KAMViD,EAAY,eAAA/C,EAAAjB,YAAAC,cAAAC,MAAG,SAAAgB,EAAOK,GAAI,OAAAtB,cAAAG,MAAA,SAAAe,GAAA,cAAAA,EAAAb,KAAAa,EAAAZ,MAAA,cAAAY,EAAAZ,KAAA,EACxBC,IAAIiB,KAAKf,IAA+B,4BAA8B,CACjFa,SACC,KAAD,SAAAJ,EAAAR,OAAA,SAAAQ,EAAAP,MAAA,wBAAAO,EAAAN,OAAA,GAAAK,EAAA,KACH,gBAJwBwC,GAAA,OAAAzC,EAAAH,MAAA,KAAAC,UAAA,KAkBZkD,EAAiB,eAAAjC,EAAAhC,YAAAC,cAAAC,MAAG,SAAA+B,IAAA,OAAAhC,cAAAG,MAAA,SAAA8B,GAAA,cAAAA,EAAA5B,KAAA4B,EAAA3B,MAAA,cAAA2B,EAAA3B,KAAA,EAClBC,IAAIC,IAAIC,IAA+B,oCAAqC,KAAD,SAAAwB,EAAAvB,OAAA,SAAAuB,EAAAtB,MAAA,wBAAAsB,EAAArB,OAAA,GAAAoB,EAAA,KACzF,kBAF6B,OAAAD,EAAAlB,MAAA,KAAAC,UAAA,KAIjBmD,EAAY,eAAAC,EAAAnE,YAAAC,cAAAC,MAAG,SAAAkE,IAAA,OAAAnE,cAAAG,MAAA,SAAAiE,GAAA,cAAAA,EAAA/D,KAAA+D,EAAA9D,MAAA,cAAA8D,EAAA9D,KAAA,EACbC,IAAIC,IAAIC,IAA+B,gCAAiC,KAAD,SAAA2D,EAAA1D,OAAA,SAAA0D,EAAAzD,MAAA,wBAAAyD,EAAAxD,OAAA,GAAAuD,EAAA,KACrF,kBAFwB,OAAAD,EAAArD,MAAA,KAAAC,UAAA,KAWZuD,EAAiB,eAAAC,EAAAvE,YAAAC,cAAAC,MAAG,SAAAsE,IAAA,OAAAvE,cAAAG,MAAA,SAAAqE,GAAA,cAAAA,EAAAnE,KAAAmE,EAAAlE,MAAA,cAAAkE,EAAAlE,KAAA,EAClBC,IAAIC,IAAIC,IAA+B,mCAAoC,KAAD,SAAA+D,EAAA9D,OAAA,SAAA8D,EAAA7D,MAAA,wBAAA6D,EAAA5D,OAAA,GAAA2D,EAAA,KACxF,kBAF6B,OAAAD,EAAAzD,MAAA,KAAAC,UAAA,I,kCC1C9B,uNAEO,SAAS2D,EAAUC,GACxB,IAAIC,EAAiB,GACrB,OAAQD,GACN,IAAK,OACL,KAAKE,IAAYC,QACjB,KAAKD,IAAYE,WACfH,EAAiB,uCACjB,MACF,KAAKC,IAAYG,aACjB,KAAKH,IAAYI,cACfL,EAAiB,0BACjB,MACF,KAAKC,IAAYK,iBACfN,EAAiB,8BACjB,MACF,KAAKC,IAAYM,YACfP,EAAiB,aACjB,MACF,IAAK,cACL,KAAKC,IAAYO,cACfR,EAAiB,cACjB,MACF,QACEA,EAAiB,0BAGrB,OAAOA,CACT,CA+CO,SAASS,EAAiBV,GAC/B,IAAIC,EAAiB,GACrB,OAAQD,GACN,KAAKE,IAAYC,QACfF,EAAiB,8CACjB,MACF,KAAKC,IAAYG,aACfJ,EAAiB,kDACjB,MACF,KAAKC,IAAYK,iBACfN,EAAiB,8BACjB,MACF,KAAKC,IAAYM,YACfP,EAAiB,cACjB,MACF,KAAKC,IAAYI,cACfL,EAAiB,2DACjB,MACF,KAAKC,IAAYE,WACfH,EAAiB,qDACjB,MACF,KAAKC,IAAYO,cACfR,EAAiB,iCACjB,MACF,QACEA,EAAiB,kDAGrB,OAAOA,CACT,CAEO,SAASU,EAA0BX,GACxC,OAAQA,GACN,KAAKE,IAAYC,QACf,MAAO,OACT,KAAKD,IAAYG,aACf,MAAO,cACT,KAAKH,IAAYM,YACf,MAAO,aACT,KAAKN,IAAYK,iBACf,MAAO,kBACT,KAAKL,IAAYI,cACf,MAAO,YACT,KAAKJ,IAAYE,WACf,MAAO,YACT,IAAK,cACL,KAAKF,IAAYO,cACf,MAAO,cACT,IAAK,OACH,MAAO,OACT,QACE,MAAO,cAEb,CAEO,SAASG,EAAoBZ,GAClC,OAAIA,IAAWE,IAAYC,QAClB,OAEFH,CACT,CAuBO,SAASa,EAA6Bb,GAC3C,OAAQA,GACN,KAAKE,IAAYI,cACf,OAAOJ,IAAYG,aACrB,KAAKH,IAAYE,WACjB,KAAKF,IAAYC,QACf,OAAOD,IAAYY,KACrB,QACE,OAAOd,EAEb,CAEO,SAASe,EAA8Bf,GAC5C,OAAQA,GACN,KAAKE,IAAYG,aACf,OAAOH,IAAYI,cACrB,KAAKJ,IAAYC,QACjB,KAAKD,IAAYY,KACf,OAAOZ,IAAYE,WACrB,QACE,OAAOJ,EAEb,C,mCCrLA,4RAEMgB,EAAcvD,YAAY,CAC9BC,KAAM,gBACNC,aAAc,CACZsD,eAAgB,KAChBC,oBAAqB,GACrBC,aAAa,EACbC,mBAAmB,GAErBrD,SAAU,CACRsD,kBAAmB,SAACpD,EAAOC,GACzBD,EAAMgD,eAAiB/C,EAAOC,OAChC,EACAmD,uBAAwB,SAACrD,EAAOC,GAC9BD,EAAMiD,oBAAsBhD,EAAOC,OACrC,EACAoD,eAAgB,SAACtD,EAAOC,GACtBD,EAAMkD,YAAcjD,EAAOC,OAC7B,EACAqD,qBAAsB,SAACvD,EAAOC,GAC5BD,EAAMmD,kBAAoBlD,EAAOC,OACnC,KAIGsD,EACLT,EAAYzC,QADC8C,EAAiBI,EAAjBJ,kBAAmBC,EAAsBG,EAAtBH,uBAAwBC,EAAcE,EAAdF,eAAgBC,EAAoBC,EAApBD,qBAG3DR,MAAmB,QAE3B,IAAMU,EAAyB,SAACzD,GAAK,OAAKA,EAAM0D,cAAcV,cAAe,EAEvEW,EAA8B,SAAC3D,GAAK,OAAKA,EAAM0D,cAAcT,mBAAoB,EAEjFW,EAAc,SAAC5D,GAAK,OAAKA,EAAM0D,cAAcR,WAAY,EAEzDC,EAAoB,SAACnD,GAAK,OAAKA,EAAM0D,cAAcP,iBAAkB,C,sXCJ5EU,EAAwBrE,YAAY,CACxCC,KAAM,0BACNC,aArBmB,CACnBoE,oBAAqB,KACrBC,eAAgB,KAChBC,gBAAiB,KACjBC,wBAAyB,KACzBC,iBAAkB,KAClBC,sBAAuB,CACrBC,UAAW,GACXC,UAAW,GACXC,gBAAiB,GACjBC,OAAQ,IAEVC,mBAAmB,EACnBC,mBAAoB,GACpBC,iBAAkB,KAClBC,iBAAiB,EACjBC,kBAAkB,GAMlB9E,SAAU,CACR+E,oBAAqB,SAAC7E,EAAOC,GAC3BD,EAAM8D,oBAAsB7D,EAAOC,OACrC,EACA4E,sBAAuB,SAAC9E,EAAOC,GAC7BD,EAAM+D,eAAiB9D,EAAOC,OAChC,EACA6E,mBAAoB,SAAC/E,EAAOC,GAC1BD,EAAMgE,gBAAkB/D,EAAOC,OACjC,EACA8E,2BAA4B,SAAChF,EAAOC,GAClCD,EAAMiE,wBAA0BhE,EAAOC,OACzC,EACA+E,oBAAqB,SAACjF,EAAOC,GAC3BD,EAAMkE,iBAAmBjE,EAAOC,OAClC,EACAgF,yBAA0B,SAAClF,EAAOC,GAChCD,EAAMmE,sBAAwBlE,EAAOC,OACvC,EACAiF,qBAAsB,SAACnF,EAAOC,GAC5BD,EAAMwE,kBAAoBvE,EAAOC,OACnC,EACAkF,sBAAuB,SAACpF,EAAOC,GAC7BD,EAAMyE,mBAAqBxE,EAAOC,OACpC,EACAmF,oBAAqB,SAACrF,EAAOC,GAC3BD,EAAM0E,iBAAmBzE,EAAOC,OAClC,EACAoF,mBAAoB,SAACtF,EAAOC,GAC1BD,EAAM2E,gBAAkB1E,EAAOC,OACjC,EACAqF,oBAAqB,SAACvF,EAAOC,GAC3BD,EAAM4E,iBAAmB3E,EAAOC,OAClC,KAIGsF,EAYH3B,EAAsBvD,QAVxBwE,GADmBU,EAAnBX,oBACqBW,EAArBV,uBAEAE,GADkBQ,EAAlBT,mBAC0BS,EAA1BR,4BAKAK,GAJmBG,EAAnBP,oBACwBO,EAAxBN,yBACoBM,EAApBL,qBACqBK,EAArBJ,sBACmBI,EAAnBH,qBACAC,EAAkBE,EAAlBF,mBACAC,EAAmBC,EAAnBD,oBAGWE,EAA2B,SAACzF,GAAK,OAC5CA,EAAM0F,wBAAwB5B,mBAAoB,EAEvCa,EAAkB,SAAC3E,GAAK,OACnCA,EAAM0F,wBAAwBf,eAAgB,EAQnCgB,EAAqB,SAAC3F,GAAK,OACtCA,EAAM0F,wBAAwB3B,cAAe,EA8ExC,SAAS6B,IACd,sBAAAxG,EAAAhC,YAAAC,cAAAC,MAAO,SAAAoB,EAAO8B,EAAUqF,GAAQ,IAAAC,EAAAC,EAAAC,EAAAC,EAAAjD,EAAAkD,EAAAC,EAAAC,EAAAC,EAAA,OAAAhJ,cAAAG,MAAA,SAAAoB,GAAA,cAAAA,EAAAlB,KAAAkB,EAAAjB,MAAA,OAS3B,OAT2BiB,EAAAlB,KAAA,EAEtBuI,EACJJ,IAAWH,wBAAwB5B,oBAC/Bd,EAA8C,QAAhC8C,EAAGQ,OAAOC,KAAKN,UAAiB,IAAAH,OAAA,EAA7BA,EAAgC,GACjDI,EAA+C,QAA3BH,EAAGF,IAAWnC,qBAAa,IAAAqC,OAAA,EAAxBA,EAA0B/C,eACjDmD,EAAgD,QAAxCH,EAAGH,IAAWW,gBAAgBC,kBAAU,IAAAT,OAAA,EAArCA,EAAuCG,SAClDC,EAAiBxD,YACrBsD,GAAwBlD,GACzBpE,EAAAjB,KAAA,EACkB+I,YAAiC,CAClD3E,OAAQW,YAA0B0D,GAClCO,GAAIR,IACH,KAAD,EAHIE,EAAIzH,EAAAZ,KAIVwC,EAASwE,EAA2BqB,IAAOzH,EAAAjB,KAAA,iBAAAiB,EAAAlB,KAAA,GAAAkB,EAAA+B,GAAA/B,EAAA,SAE3CgC,QAAQC,MAAKjC,EAAA+B,IAAQ,yBAAA/B,EAAAX,OAAA,GAAAS,EAAA,mBAExB,gBAAAkI,EAAAC,GAAA,OAAAzH,EAAAlB,MAAA,KAAAC,UAAA,EAlBD,EAmBF,CAEO,SAAS2I,IACd,sBAAAvF,EAAAnE,YAAAC,cAAAC,MAAO,SAAA2B,EAAOuB,EAAUqF,GAAQ,IAAAQ,EAAA,OAAAhJ,cAAAG,MAAA,SAAA0B,GAAA,cAAAA,EAAAxB,KAAAwB,EAAAvB,MAAA,OAEL,OAFKuB,EAAAxB,KAAA,EAE5BkD,QAAQmG,IAAI,WAAW7H,EAAAvB,KAAA,EACJqJ,cAAoB,KAAD,EAEF,OAF9BX,EAAInH,EAAAlB,KACVwC,EAASsE,EAAsBuB,IAC/B7F,EAAS+E,GAAoB,IAAOrG,EAAAnB,OAAA,SAC7BsI,GAAI,QAAAnH,EAAAxB,KAAA,GAAAwB,EAAAyB,GAAAzB,EAAA,SAEX0B,QAAQC,MAAK3B,EAAAyB,IACbH,EAASsE,EAAsB,OAC/BtE,EAAS+E,GAAoB,IAAO,yBAAArG,EAAAjB,OAAA,GAAAgB,EAAA,mBAEvC,gBAAAgI,EAAAC,GAAA,OAAA3F,EAAArD,MAAA,KAAAC,UAAA,EAZD,EAaF,CAEe0F,MAA6B,O,6KCtLtCsD,EAAmB,WAQvB,OACEC,eAAA,OAAKC,UAAU,0EAAyEC,SAAA,CACtFC,cAACC,IAAM,CAACC,cAAeC,EAAMC,MAAM,EAAMN,UAAU,cACnDE,cAAA,KAAGF,UAAU,iCAAgCC,SAAEM,YAVtC,CACX,kBACA,mBACA,mBACA,yBACA,wBAQJ,EAEaC,EAA+B,SAACC,GAC3C,OACEP,cAAA,MAAAQ,wBAAA,CAAKV,UAAU,sEAAyES,GAAK,IAAAR,SAC3FC,cAACS,IAAgB,MAGvB,EAEaC,EAA0BC,eAAKf,E,sMCxCtCgB,EAAY3I,YAAY,CAC5BC,KAAM,cACNC,aAAc,CACZ0I,gBAAiB,KACjB3B,WAAY,KACZ4B,QAAS,KACTC,OAAQ,KACRC,eAAgB,KAChBC,eAAe,EACfC,UAAU,EACVC,WAAY,KACZC,QAAS,KACTC,iBAAkB,KAClBC,iCAAkC,KAClCC,OAAQ,CACNC,QAAQ,EACRC,MAAO,MAETC,kBAAmB,KACnBC,aAAc,KACdC,cAAc,EACdC,UAAW,KACXC,kBAAmB,MAErBvJ,SAAU,CACRwJ,mBAAoB,SAACtJ,EAAOC,GAC1BD,EAAMoI,gBAAkBnI,EAAOC,OACjC,EACAqJ,cAAe,SAACvJ,EAAOC,GACrBD,EAAMqI,QAAUpI,EAAOC,OACzB,EACAsJ,UAAW,SAACxJ,EAAOC,GACjBD,EAAMsI,OAASrI,EAAOC,OACxB,EACAuJ,kBAAmB,SAACzJ,EAAOC,GACzBD,EAAMuI,eAAiBtI,EAAOC,OAChC,EACAwJ,iBAAkB,SAAC1J,EAAOC,GACxBD,EAAMwI,cAAgBvI,EAAOC,OAC/B,EACAyJ,YAAa,SAAC3J,EAAOC,GACnBD,EAAMyI,SAAWxI,EAAOC,OAC1B,EACA0J,cAAe,SAAC5J,EAAOC,GACrBD,EAAMoI,gBAAkB,KACxBpI,EAAMqI,QAAU,KAChBrI,EAAMsI,OAAS,KACftI,EAAMuI,eAAiB,KACvBvI,EAAM0I,WAAa,IACrB,EACAmB,cAAe,SAAC7J,EAAOC,GACrBD,EAAM0I,WAAazI,EAAOC,OAC5B,EACA4J,WAAY,SAAC9J,EAAOC,GAClBD,EAAM2I,QAAU1I,EAAOC,OACzB,EACA6J,oBAAqB,SAAC/J,EAAOC,GAC3BD,EAAM4I,iBAAmB3I,EAAOC,OAClC,EACA8J,oCAAqC,SAAChK,EAAOC,GAC3CD,EAAM6I,iCAAmC5I,EAAOC,OAClD,EACA+J,UAAW,SAACjK,EAAOC,GACjBD,EAAM8I,OAAS7I,EAAOC,OACxB,EACAgK,qBAAsB,SAAClK,EAAOC,GAC5BD,EAAMiJ,kBAAoBhJ,EAAOC,OACnC,EACAiK,gBAAiB,SAACnK,EAAOC,GACvBD,EAAMkJ,aAAejJ,EAAOC,OAC9B,EACAkK,gBAAiB,SAACpK,EAAOC,GACvBD,EAAMmJ,aAAelJ,EAAOC,OAC9B,EACAmK,aAAc,SAACrK,EAAOC,GACpBD,EAAMoJ,UAAYnJ,EAAOC,OAC3B,EACAoK,qBAAsB,SAACtK,EAAOC,GAC5BD,EAAMqJ,kBAAoBpJ,EAAOC,OACnC,KAIGqK,EAkBHpC,EAAU7H,QAjBZgK,EAAoBC,EAApBD,qBACAD,EAAYE,EAAZF,aAeAD,GAdkBG,EAAlBjB,mBACgBiB,EAAhBb,iBACaa,EAAbhB,cACSgB,EAATf,UACiBe,EAAjBd,kBACac,EAAbX,cACWW,EAAXZ,YACaY,EAAbV,cACUU,EAAVT,WACmBS,EAAnBR,oBACmCQ,EAAnCP,oCACSO,EAATN,UACoBM,EAApBL,qBACeK,EAAfJ,gBACeI,EAAfH,iBAqKWI,EAAyB,WAAqB,IAApBC,EAAMtM,UAAAuM,OAAA,QAAAC,IAAAxM,UAAA,IAAAA,UAAA,GAC3C,sBAAAyM,EAAAxN,YAAAC,cAAAC,MAAO,SAAAuN,EAAOrK,EAAUqF,GAAQ,IAAAiF,EAAA,OAAAzN,cAAAG,MAAA,SAAAuN,GAAA,cAAAA,EAAArN,KAAAqN,EAAApN,MAAA,OAEX,GAFWoN,EAAArN,KAAA,GAENmI,IAAWmF,YAAzB5B,WACUqB,EAAM,CAAAM,EAAApN,KAAA,eAAAoN,EAAAhN,OAAA,wBAAAgN,EAAApN,KAAA,EACIsN,cAAuB,KAAD,EAA5CH,EAAaC,EAAA/M,KACnBwC,EAAS6J,EAAaS,IAAgBC,EAAApN,KAAA,iBAAAoN,EAAArN,KAAA,GAAAqN,EAAApK,GAAAoK,EAAA,SAEtCnK,QAAQC,MAAM,8BAA6BkK,EAAApK,IAAS,yBAAAoK,EAAA9M,OAAA,GAAA4M,EAAA,mBAEvD,gBAAAK,EAAAC,GAAA,OAAAP,EAAA1M,MAAA,KAAAC,UAAA,EATD,EAUF,EAEaiN,EAAyB,WAAqB,IAApBX,EAAMtM,UAAAuM,OAAA,QAAAC,IAAAxM,UAAA,IAAAA,UAAA,GAC3C,sBAAAkN,EAAAjO,YAAAC,cAAAC,MAAO,SAAAgO,EAAO9K,EAAUqF,GAAQ,IAAA0F,EAAAC,EAAA,OAAAnO,cAAAG,MAAA,SAAAiO,GAAA,cAAAA,EAAA/N,KAAA+N,EAAA9N,MAAA,OAIH,GAJG8N,EAAA/N,KAAA,EAEtB6N,EAAOG,OAAOC,SAASC,SAASC,MAAM,KAAKC,MAAM,GAAGC,KAAK,MAEjClG,IAAWmF,YAAjC3B,mBAEkBoB,EAAM,CAAAgB,EAAA9N,KAAA,eAAA8N,EAAA1N,OAAA,wBAAA0N,EAAA9N,KAAA,EAELqO,YAAyBT,GAAM,KAAD,EAAnDC,EAAYC,EAAAzN,KAElBwC,EAAS8J,EAAqBkB,IAAeC,EAAA9N,KAAA,iBAAA8N,EAAA/N,KAAA,GAAA+N,EAAA9K,GAAA8K,EAAA,SAE7C7K,QAAQC,MAAM,aAAY4K,EAAA9K,IAAS,yBAAA8K,EAAAxN,OAAA,GAAAqN,EAAA,mBAEtC,gBAAAW,EAAAC,GAAA,OAAAb,EAAAnN,MAAA,KAAAC,UAAA,EAdD,EAeF,EAEegK,MAAiB,O,2FCvS1BgE,G,YAXkBC,oWAAYC,uBAWV7M,YAAY,CACpCC,KAAM,sBACNC,aAXmB,CACnB4M,iBAAkB,GAClBC,mBAAoB,CAClBC,aAAc,EACdC,qBAAsB,GAExBC,aAAc,CAAC,GAMf5M,SAAU,CACR6M,uBAAwB,SAAC3M,EAAOC,GAC9BD,EAAMsM,iBAAmBrM,EAAOC,OAClC,EACA0M,yBAA0B,SAAC5M,EAAOC,GAChCD,EAAMuM,mBAAqBtM,EAAOC,OACpC,EACA2M,mBAAoB,SAAC7M,EAAOC,GAC1BD,EAAM0M,aAAezM,EAAOC,OAC9B,MAiDG,IAEM4M,EAAqB,SAAC9M,GAAK,OAAKA,EAAM+M,oBAAoBL,YAAa,EAE7EM,EACLb,EAAkB7L,QADiB0M,EAAtBL,uBAAgDK,EAAxBJ,yBAA4CI,EAAlBH,mBAGlDV,MAAyB,O,mCCvFxC,YAWMc,EAAkBzN,YAAY,CAClCC,KAAM,oBACNC,aAXmB,CACnBwN,oBAAqB,GACrBC,iBAAkB,GAClBC,oBAAoB,EACpBC,iBAAiB,EACjBC,iBAAiB,EACjBC,cAAc,GAMdzN,SAAU,CACR0N,0BAA2B,SAACxN,EAAOC,GACjCD,EAAMkN,oBAAsBjN,EAAOC,OACrC,EACAuN,uBAAwB,SAACzN,EAAOC,GAC9BD,EAAMmN,iBAAmBlN,EAAOC,OAClC,EACAwN,qBAAsB,SAAC1N,EAAOC,GAC5BD,EAAMoN,mBAAqBnN,EAAOC,OACpC,EACAyN,sBAAuB,SAAC3N,EAAOC,GAC7BD,EAAMqN,gBAAkBpN,EAAOC,OACjC,EACA0N,sBAAuB,SAAC5N,EAAOC,GAC7BD,EAAMsN,gBAAkBrN,EAAOC,OACjC,EACA2N,mBAAoB,SAAC7N,EAAOC,GAC1BD,EAAMuN,aAAetN,EAAOC,OAC9B,KAIG4N,EAOHb,EAAgB3M,QANOwN,EAAzBN,0BACsBM,EAAtBL,uBACoBK,EAApBJ,qBACqBI,EAArBH,sBACqBG,EAArBF,sBACkBE,EAAlBD,mBAGaZ,MAAuB,O,+JCtCzBc,EAAuB,eAAA5Q,EAAAC,YAAAC,cAAAC,MAAG,SAAAC,EAAOwE,GAAM,IAAAiM,EAAA,OAAA3Q,cAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACJ,OAAxCqQ,EAAarL,YAAoBZ,GAAOtE,EAAAE,KAAA,EACjCC,IAAIC,IACfoQ,IAAmC,8CAADC,OACYF,IAC9C,KAAD,SAAAvQ,EAAAM,OAAA,SAAAN,EAAAO,MAAA,wBAAAP,EAAAQ,OAAA,GAAAV,EAAA,KACF,gBANmCuB,GAAA,OAAA3B,EAAAe,MAAA,KAAAC,UAAA,KCI9BgQ,G,MAAe3O,YAAY,CAC/BC,KAAM,iBACNC,aARmB,CACnB0O,kBAAmB,KACnBC,0BAA2B,KAC3BC,2BAA4B,MAM5BxO,SAAU,CACRyO,qBAAsB,SAACvO,EAAOC,GAC5BD,EAAMoO,kBAAoBnO,EAAOC,OACnC,EACAsO,6BAA8B,SAACxO,EAAOC,GACpCD,EAAMqO,0BAA4BpO,EAAOC,OAC3C,EACAuO,8BAA+B,SAACzO,EAAOC,GACrCD,EAAMsO,2BAA6BrO,EAAOC,OAC5C,MA2BSwO,EAAgC,SAAC3M,GAC5C,sBAAA1D,EAAAjB,YAAAC,cAAAC,MAAO,SAAAgB,EAAOkC,GAAQ,IAAAmO,EAAAC,EAAAC,EAAA,OAAAxR,cAAAG,MAAA,SAAAe,GAAA,cAAAA,EAAAb,KAAAa,EAAAZ,MAAA,cAAAY,EAAAb,KAAA,EAAAa,EAAAZ,KAAA,EAEAoQ,EAAwBhM,GAAQ,KAAD,EAA3C8M,EAAGtQ,EAAAP,KAEK,IADA8Q,SAAY,OAAHD,QAAG,IAAHA,GAAU,QAAPF,EAAHE,EAAKE,aAAK,IAAAJ,GAAY,QAAZC,EAAVD,EAAY9C,MAAM,YAAI,IAAA+C,OAAnB,EAAHA,EAAyB,KAE9CpO,EAASiO,EAAiC,OAAHI,QAAG,IAAHA,OAAG,EAAHA,EAAKG,YAC7CzQ,EAAAZ,KAAA,gBAAAY,EAAAb,KAAA,EAAAa,EAAAoC,GAAApC,EAAA,SAEDqC,QAAQC,MAAKtC,EAAAoC,IAAQ,yBAAApC,EAAAN,OAAA,GAAAK,EAAA,kBAExB,gBAAAwC,GAAA,OAAAzC,EAAAH,MAAA,KAAAC,UAAA,EAVD,EAWF,EAEO8Q,EACLd,EAAa7N,QADoDmO,GAAhCQ,EAApBV,qBAAkDU,EAA5BT,6BAA2DS,EAA7BR,+BAKtDS,EAAmC,SAAClP,GAAK,OACpDA,EAAMmP,eAAeb,0BAA2B,EAEnCH,MAAoB,O,iGCxD7BiB,G,iBAAqB5P,YAAY,CACrCC,KAAM,iBACNC,aAXmB,CACnB2P,gBAAgB,EAChBC,YAAa,KACbC,oBAAoB,EACpBC,cAAe,KACfC,aAAc,oBACdC,SAAU,CAAC,GAMX5P,SAAU,CACR6P,kBAAiB,SAAC3P,EAAOC,GACvBD,EAAMqP,eAAiBpP,EAAOC,OAChC,EACA0P,sBAAqB,SAAC5P,EAAOC,GAC3BD,EAAMuP,mBAAqBtP,EAAOC,OACpC,EACA2P,eAAc,SAAC7P,EAAOC,GACpBD,EAAMsP,YAAcrP,EAAOC,OAC7B,EACA4P,iBAAgB,SAAC9P,EAAOC,GACtBD,EAAMwP,cAAgBvP,EAAOC,OAC/B,EACA6P,iBAAgB,SAAC/P,EAAOC,GACtBD,EAAMyP,aAAexP,EAAOC,OAC9B,EACA8P,YAAW,SAAChQ,EAAOC,GACjBD,EAAM0P,SAAWzP,EAAOC,OAC1B,MAIG+P,EAOHb,EAAmB9O,QAOV4P,GAbMD,EAAjBN,kBACcM,EAAdJ,eACqBI,EAArBL,sBACgBK,EAAhBH,iBACgBG,EAAhBF,iBACWE,EAAXD,YAQqC,SAAChQ,GAAK,OAAKA,EAAMmQ,eAAeT,QAAS,GAwDjEN,MAA0B,O,m1pBC/GzCgB,EAAOC,QAAU,CACfC,YAAa,UACbC,YAAa,UACbC,YAAa,UACbC,YAAa,UACbC,YAAa,UACbC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,YACZC,WAAY,UACZC,WAAY,YACZC,WAAY,YACZC,WAAY,YACZC,WAAY,UACZC,YAAa,UACbC,YAAa,UACbC,YAAa,UACbC,YAAa,OACbC,YAAa,UACbC,YAAa,UACbC,YAAa,UACbC,WAAY,UACZC,WAAY,UACZC,WAAY,WACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,aAAc,UACdC,aAAc,UACdC,aAAc,UACdC,WAAY,UACZC,WAAY,UACZC,WAAY,OACZC,mBAAoB,UACpBC,mBAAoB,UACpBC,mBAAoB,UACpBC,mBAAoB,kBACpBC,mBAAoB,kBACpBC,aAAc,UACdC,qBAAsB,UACtBC,qBAAsB,UACtBC,qBAAsB,UACtBC,qBAAsB,UACtBC,qBAAsB,UACtBC,qBAAsB,UACtBC,qBAAsB,UACtBC,YAAa,OACbC,oBAAqB,wBACrBC,oBAAqB,UACrBC,SAAU,CACRC,eAAgB,UAChBC,eAAgB,UAChBC,aAAc,WAEhBC,gBAAiB,UACjBC,gBAAiB,UACjBC,YAAa,UACbC,YAAa,UACbC,UAAW,UACXC,cAAe,UACfC,iBAAkB,UAClBC,iBAAkB,UAClBC,mBAAoB,U,mCClEP,grF,kCCAf,kCAAO,IAAMC,EAAe,CAC1BC,KAAM,QACNC,WAAY,cACZC,UAAW,CACTC,KAAM,aACNC,gBAAiB,kBAEnBC,eAAgB,kBAChBC,WAAY,CACVH,KAAM,cACNI,aAAc,mBACdC,oBAAqB,uBACrB,uBAAIC,GACF,MAAM,GAAN/G,OAAUgH,KAAKP,KAAI,uBACrB,EACA,YAAIQ,GACF,MAAM,GAANjH,OAAUgH,KAAKP,KAAI,YACrB,EACA,aAAIS,GACF,MAAM,GAANlH,OAAUgH,KAAKP,KAAI,aACrB,EACA,mBAAIU,GACF,MAAM,GAANnH,OAAUgH,KAAKP,KAAI,mBACrB,EACA,UAAIW,GACF,MAAM,GAANpH,OAAUgH,KAAKP,KAAI,UACrB,GAEFY,QAAS,CACPZ,KAAM,SAAC5S,GAAM,UAAAmM,OAASnM,EAAM,aAC5ByT,QAAS,SAACzT,GAAM,UAAAmM,OAASnM,EAAM,qBAC/B0T,wBAAyB,uBAE3BC,QAAS,CACPjB,WAAY,SAAC1S,GAAM,UAAAmM,OAASnM,EAAM,gBAClC4T,KAAM,SAAC5T,GAAM,UAAAmM,OAASnM,EAAM,sBAC5B6T,aAAc,SAAC7T,GAAM,UAAAmM,OAASnM,EAAM,mBAEtC8T,KAAM,CACJlB,KAAM,QACN,SAAImB,GACF,MAAM,GAAN5H,OAAUgH,KAAKP,KAAI,SACrB,EACA,uBAAIoB,GACF,MAAM,GAAN7H,OAAUgH,KAAKP,KAAI,uBACrB,EACA,uBAAIqB,GACF,MAAM,GAAN9H,OAAUgH,KAAKP,KAAI,uBACrB,EACA,WAAIsB,GACF,MAAM,GAAN/H,OAAUgH,KAAKP,KAAI,UACrB,EACA,wBAAIuB,GACF,MAAM,GAANhI,OAAUgH,KAAKP,KAAI,wBACrB,EACA,oBAAIwB,GACF,MAAM,GAANjI,OAAUgH,KAAKP,KAAI,oBACrB,EACA,UAAIyB,GACF,MAAM,GAANlI,OAAUgH,KAAKP,KAAI,UACrB,EACA,qBAAI0B,GACF,MAAM,GAANnI,OAAUgH,KAAKP,KAAI,qBACrB,EACA,WAAI2B,GACF,MAAM,GAANpI,OAAUgH,KAAKP,KAAI,WACrB,GAEF4B,kBAAmB,aACnBC,OAAQ,CACN7B,KAAM,SAAC5S,GAAM,UAAAmM,OAASnM,EAAM,YAC5B0U,kBAAmB,SAAC1U,GAAM,UAAAmM,OAASnM,EAAM,iBACzC2U,WAAY,SAAC3U,GAAM,UAAAmM,OAASnM,EAAM,wBAEpC4U,sBAAuB,SAAC5U,GAAM,UAAAmM,OAASnM,EAAM,2BAC7C6U,mBAAoB,SAAC7U,GAAM,UAAAmM,OAASnM,EAAM,wBAC1C8U,eAAgB,CACdC,KAAM,SAAC/U,GAAM,UAAAmM,OAASnM,EAAM,aAC5B4S,KAAM,SAAC5S,GAAM,UAAAmM,OAASnM,EAAM,kBAC5BgV,YAAa,SAAChV,GAAM,UAAAmM,OAASnM,EAAM,uBACnCiV,gBAAiB,SAACjV,GAAM,UAAAmM,OAASnM,EAAM,oBACvCkV,oBAAqB,SAAClV,GAAM,UAAAmM,OAASnM,EAAM,qBAC3CmV,SAAU,SAACnV,GAAM,UAAAmM,OAASnM,EAAM,6BAChCoV,eAAgB,SAACpV,GAAM,UAAAmM,OAASnM,EAAM,wCACtCqV,OAAQ,SAACrV,GAAM,UAAAmM,OAASnM,EAAM,2BAC9BsV,aAAc,SAACtV,GAAM,UAAAmM,OAASnM,EAAM,sCACpCuV,iBAAkB,SAACvV,GAAM,UAAAmM,OAASnM,EAAM,8BACxCwV,uBAAwB,SAACxV,GAAM,UAAAmM,OAASnM,EAAM,yCAC9CyV,OAAQ,SAACzV,GAAM,UAAAmM,OAASnM,EAAM,qBAEhC0V,UAAW,SAAC1V,GAAM,UAAAmM,OAASnM,EAAM,UACjC2V,eAAgB,CACdC,OAAQ,kBACRhD,KAAM,4BACNiD,aAAc,+BACdC,WAAY,6BACZC,QAAS,2BAEXC,UAAW,CACTpD,KAAM,SAAC5S,GAAM,UAAAmM,OAASnM,EAAM,gBAE9BiW,qBAAsB,CACpBC,QAAS,SAAClW,GAAM,UAAAmM,OAASnM,EAAM,kBAC/BmW,WAAY,SAACnW,GAAM,UAAAmM,OAASnM,EAAM,UAClCoW,MAAO,SAACpW,GAAM,UAAAmM,OAASnM,EAAM,WAC7BqW,eAAgB,CACdzD,KAAM,SAAC5S,GAAM,UAAAmM,OAASnM,EAAM,cAC5BsW,oBAAqB,SAACtW,GAAM,UAAAmM,OAASnM,EAAM,qBAE7CuW,aAAc,SAACvW,GAAM,UAAAmM,OAASnM,EAAM,wBACpCwW,uBAAwB,SAACxW,GAAM,UAAAmM,OAASnM,EAAM,uBAC9CyW,mBAAoB,SAACzW,GAAM,UAAAmM,OAASnM,EAAM,iBAC1C0W,qBAAsB,SAAC1W,GAAM,UAAAmM,OAASnM,EAAM,oDAC5C2W,2BAA4B,SAAC3W,GAAM,UAAAmM,OAC7BnM,EAAM,wDACZ4W,0BAA2B,SAAC5W,GAAM,UAAAmM,OAASnM,EAAM,uCAEnD6W,aAAc,CACZjE,KAAM,SAAC5S,GAAM,UAAAmM,OAASnM,EAAM,cAC5B8W,kBAAmB,CACjBlE,KAAM,SAAC5S,GAAM,UAAAmM,OAASnM,EAAM,iCAC5B+W,8BAA+B,SAAC/W,GAAM,UAAAmM,OAASnM,EAAM,wCAEvDgX,eAAgB,CACdpE,KAAM,SAAC5S,GAAM,UAAAmM,OAASnM,EAAM,8BAC5BiX,sBAAuB,SAACjX,GAAM,UAAAmM,OAASnM,EAAM,qCAE/CkX,gBAAiB,CACftE,KAAM,SAAC5S,GAAM,UAAAmM,OAASnM,EAAM,+BAC5BmX,uBAAwB,SAACnX,GAAM,UAAAmM,OAASnM,EAAM,sCAEhDoX,kBAAmB,SAACpX,GAAM,UAAAmM,OAASnM,EAAM,oCACzCqX,mBAAoB,SAACrX,GAAM,UAAAmM,OAASnM,EAAM,0CAC1CsX,mBAAoB,SAACtX,GAAM,UAAAmM,OACrBnM,EAAM,6D,88BC7HVuX,EAAMlN,oWAAYmN,eAAiB,MAElC,SAAe7Y,IAAY,OAAA8Y,EAAAtb,MAAC,KAADC,UAAA,CAOjC,SAAAqb,IAAA,OAAAA,EAAApc,YAAAC,cAAAC,MAPM,SAAAmc,IAAA,IAAAC,EAAA,OAAArc,cAAAG,MAAA,SAAAmc,GAAA,cAAAA,EAAAjc,KAAAic,EAAAhc,MAAA,cAAAgc,EAAAhc,KAAA,EACkBC,IAAIC,IACzBC,IACA,YACA,CAAC,GACD,KAAD,EAJa,OAAR4b,EAAQC,EAAA3b,KAAA2b,EAAA5b,OAAA,SAKP2b,GAAQ,wBAAAC,EAAA1b,OAAA,GAAAwb,EAAA,MAChBvb,MAAA,KAAAC,UAAA,CAWM,SAAeyb,EAAe9a,GAAA,OAAA+a,EAAA3b,MAAC,KAADC,UAAA,CAMpC,SAAA0b,IAAA,OAAAA,EAAAzc,YAAAC,cAAAC,MANM,SAAAwc,EAA+BC,GAAQ,IAAAL,EAAA,OAAArc,cAAAG,MAAA,SAAAwc,GAAA,cAAAA,EAAAtc,KAAAsc,EAAArc,MAAA,cAAAqc,EAAArc,KAAA,EACrBC,IAAIqc,IAAInc,IAAgC,UAAW,CACxEa,KAAMob,EACNG,QAAS,CAAC,IACT,KAAD,EAHY,OAARR,EAAQM,EAAAhc,KAAAgc,EAAAjc,OAAA,SAIP2b,GAAQ,wBAAAM,EAAA/b,OAAA,GAAA6b,EAAA,MAChB5b,MAAA,KAAAC,UAAA,CAcM,IAMMgc,EAAiB,eAAA9b,EAAAjB,YAAAC,cAAAC,MAAG,SAAAgB,IAAA,OAAAjB,cAAAG,MAAA,SAAAe,GAAA,cAAAA,EAAAb,KAAAa,EAAAZ,MAAA,cAAAY,EAAAZ,KAAA,EACzBC,IAAIC,IACRC,IACA,+BACA,CAAC,GACD,KAAD,SAAAS,EAAAR,OAAA,SAAAQ,EAAAP,MAAA,wBAAAO,EAAAN,OAAA,GAAAK,EAAA,uBAL2B,OAAAD,EAAAH,MAAA,KAAAC,UAAA,KAOjBic,EAAoB,eAAA3b,EAAArB,YAAAC,cAAAC,MAAG,SAAAoB,EAAOwB,GAAO,OAAA7C,cAAAG,MAAA,SAAAoB,GAAA,cAAAA,EAAAlB,KAAAkB,EAAAjB,MAAA,cAAAiB,EAAAjB,KAAA,EAC1CC,IAAIqc,IACRnc,IACA,+BACA,CACEa,KAAIoJ,YAAA,GAAO7H,KAEb,KAAD,mBAAAtB,EAAAX,OAAA,GAAAS,EAAA,KACF,gBARgCsC,GAAA,OAAAvC,EAAAP,MAAA,KAAAC,UAAA,KAoBpBkc,EAAiB,eAAAjb,EAAAhC,YAAAC,cAAAC,MAAG,SAAA+B,IAAA,OAAAhC,cAAAG,MAAA,SAAA8B,GAAA,cAAAA,EAAA5B,KAAA4B,EAAA3B,MAAA,cAAA2B,EAAA3B,KAAA,EAClBC,IAAIC,IACfC,IACA,8BACA,KAAD,SAAAwB,EAAAvB,OAAA,SAAAuB,EAAAtB,MAAA,wBAAAsB,EAAArB,OAAA,GAAAoB,EAAA,KACF,kBAL6B,OAAAD,EAAAlB,MAAA,KAAAC,UAAA,KAqCjBmc,EAAe,eAAAjP,EAAAjO,YAAAC,cAAAC,MAAG,SAAAgO,IAAA,OAAAjO,cAAAG,MAAA,SAAAiO,GAAA,cAAAA,EAAA/N,KAAA+N,EAAA9N,MAAA,cAAA8N,EAAA9N,KAAA,EACvBC,IAAIC,IAAIC,IAAgC,iBAAkB,CAAC,GAAG,KAAD,SAAA2N,EAAA1N,OAAA,SAAA0N,EAAAzN,MAAA,wBAAAyN,EAAAxN,OAAA,GAAAqN,EAAA,uBADzC,OAAAD,EAAAnN,MAAA,KAAAC,UAAA,KAgEf6I,EAAiB,eAAAuT,EAAAnd,YAAAC,cAAAC,MAAG,SAAAkd,IAAA,OAAAnd,cAAAG,MAAA,SAAAid,GAAA,cAAAA,EAAA/c,KAAA+c,EAAA9c,MAAA,cAAA8c,EAAA9c,KAAA,EAClBC,IAAIC,IAAIC,IAAgC,iBAAkB,CAAC,GAAG,KAAD,SAAA2c,EAAA1c,OAAA,SAAA0c,EAAAzc,MAAA,wBAAAyc,EAAAxc,OAAA,GAAAuc,EAAA,KAC3E,kBAF6B,OAAAD,EAAArc,MAAA,KAAAC,UAAA,KAIjBuc,EAAkB,eAAAC,EAAAvd,YAAAC,cAAAC,MAAG,SAAAsd,EAAOjc,GAAI,OAAAtB,cAAAG,MAAA,SAAAqd,GAAA,cAAAA,EAAAnd,KAAAmd,EAAAld,MAAA,cAAAkd,EAAAld,KAAA,EAC9BC,IAAIqc,IAAInc,IAAgC,iBAAkB,CACrEa,SACC,KAAD,SAAAkc,EAAA9c,OAAA,SAAA8c,EAAA7c,MAAA,wBAAA6c,EAAA5c,OAAA,GAAA2c,EAAA,KACH,gBAJ8BE,GAAA,OAAAH,EAAAzc,MAAA,KAAAC,UAAA,KAOlB4c,EAAwB,eAAAC,EAAA5d,YAAAC,cAAAC,MAAG,SAAA2d,EAAO5U,GAAI,OAAAhJ,cAAAG,MAAA,SAAA0d,GAAA,cAAAA,EAAAxd,KAAAwd,EAAAvd,MAAA,cAAAud,EAAAvd,KAAA,EACpCC,IAAIC,IACfoQ,IAAmC,qCAADC,OACO,OAAJ7H,QAAI,IAAJA,OAAI,EAAJA,EAAMtE,OAAM,cAAAmM,OAAiB,OAAJ7H,QAAI,IAAJA,OAAI,EAAJA,EAAMM,KACpE,KAAD,SAAAuU,EAAAnd,OAAA,SAAAmd,EAAAld,MAAA,wBAAAkd,EAAAjd,OAAA,GAAAgd,EAAA,KACF,gBALoC/P,GAAA,OAAA8P,EAAA9c,MAAA,KAAAC,UAAA,KAQxBuI,EAAgC,eAAAyU,EAAA/d,YAAAC,cAAAC,MAAG,SAAA8d,EAAO/U,GAAI,OAAAhJ,cAAAG,MAAA,SAAA6d,GAAA,cAAAA,EAAA3d,KAAA2d,EAAA1d,MAAA,cAAA0d,EAAA1d,KAAA,EAC5CC,IAAIC,IACfoQ,IAAmC,sCAADC,OACQ,OAAJ7H,QAAI,IAAJA,OAAI,EAAJA,EAAMtE,OAAM,cAAAmM,OAAiB,OAAJ7H,QAAI,IAAJA,OAAI,EAAJA,EAAMM,GAAE,gBACvE,KAAD,SAAA0U,EAAAtd,OAAA,SAAAsd,EAAArd,MAAA,wBAAAqd,EAAApd,OAAA,GAAAmd,EAAA,KACF,gBAL4CjQ,GAAA,OAAAgQ,EAAAjd,MAAA,KAAAC,UAAA,KAQhCmd,EAAuB,eAAAC,EAAAne,YAAAC,cAAAC,MAAG,SAAAke,EAAOnV,GAAI,OAAAhJ,cAAAG,MAAA,SAAAie,GAAA,cAAAA,EAAA/d,KAAA+d,EAAA9d,MAAA,cAAA8d,EAAA9d,KAAA,EACnCC,IAAIiB,KACff,IACA,uBACA,CACEa,KAAM0H,IAER,KAAD,SAAAoV,EAAA1d,OAAA,SAAA0d,EAAAzd,MAAA,wBAAAyd,EAAAxd,OAAA,GAAAud,EAAA,KACF,gBARmCvP,GAAA,OAAAsP,EAAArd,MAAA,KAAAC,UAAA,KAWvBud,EAAkB,eAAAC,EAAAve,YAAAC,cAAAC,MAAG,SAAAse,EAAOjd,GAAI,OAAAtB,cAAAG,MAAA,SAAAqe,GAAA,cAAAA,EAAAne,KAAAme,EAAAle,MAAA,cAAAke,EAAA9d,OAAA,SACpCH,IAAIiB,KAAKf,IAA+B,YAAc,CAC3Da,UACA,wBAAAkd,EAAA5d,OAAA,GAAA2d,EAAA,KACH,gBAJ8B1P,GAAA,OAAAyP,EAAAzd,MAAA,KAAAC,UAAA,KAMlB2d,EAAoB,eAAAC,EAAA3e,YAAAC,cAAAC,MAAG,SAAA0e,EAAOrd,GAAI,OAAAtB,cAAAG,MAAA,SAAAye,GAAA,cAAAA,EAAAve,KAAAue,EAAAte,MAAA,cAAAse,EAAAle,OAAA,SACtCH,IAAIiB,KAAKf,IAA+B,cAAgB,CAC7Da,UACA,wBAAAsd,EAAAhe,OAAA,GAAA+d,EAAA,KACH,gBAJgCE,GAAA,OAAAH,EAAA7d,MAAA,KAAAC,UAAA,KAiCpBge,EAAoB,eAAAC,EAAAhf,YAAAC,cAAAC,MAAG,SAAA+e,EAAO1d,GAAI,OAAAtB,cAAAG,MAAA,SAAA8e,GAAA,cAAAA,EAAA5e,KAAA4e,EAAA3e,MAAA,cAAA2e,EAAAve,OAAA,SACtCH,IAAIqc,IAAInc,IAA+B,YAAc,CAC1Da,UACA,wBAAA2d,EAAAre,OAAA,GAAAoe,EAAA,KACH,gBAJgCE,GAAA,OAAAH,EAAAle,MAAA,KAAAC,UAAA,KAMpBqe,EAAoB,eAAAC,EAAArf,YAAAC,cAAAC,MAAG,SAAAof,EAAO/d,GAAI,OAAAtB,cAAAG,MAAA,SAAAmf,GAAA,cAAAA,EAAAjf,KAAAif,EAAAhf,MAAA,cAAAgf,EAAA5e,OAAA,SACtCH,IAAIiB,KACTf,IAA+B,6BAE/B,CACEa,UAEH,wBAAAge,EAAA1e,OAAA,GAAAye,EAAA,KACF,gBARgCE,GAAA,OAAAH,EAAAve,MAAA,KAAAC,UAAA,KAsB1B,IAAM0e,EAAc,eAAAC,EAAA1f,YAAAC,cAAAC,MAAG,SAAAyf,IAAA,IAAAC,EAAA,OAAA3f,cAAAG,MAAA,SAAAyf,GAAA,cAAAA,EAAAvf,KAAAuf,EAAAtf,MAAA,OACJ,OAAlBqf,EAXM,QAAR1D,GAEe,SAARA,EADF,iEAGU,OAARA,EACF,6EAEF,iEAIgB2D,EAAAlf,OAAA,SAChBmf,MAAMF,GAAKG,MAAK,SAACtO,GAAG,OAAKA,EAAIuO,MAAM,KAAC,wBAAAH,EAAAhf,OAAA,GAAA8e,EAAA,KAC5C,kBAH0B,OAAAD,EAAA5e,MAAA,KAAAC,UAAA,KAKdkf,EAA2B,eAAAC,EAAAlgB,YAAAC,cAAAC,MAAG,SAAAigB,IAAA,OAAAlgB,cAAAG,MAAA,SAAAggB,GAAA,cAAAA,EAAA9f,KAAA8f,EAAA7f,MAAA,cAAA6f,EAAAzf,OAAA,SAClCH,IAAIC,IACToQ,IAAmC,yCAEpC,wBAAAuP,EAAAvf,OAAA,GAAAsf,EAAA,KACF,kBALuC,OAAAD,EAAApf,MAAA,KAAAC,UAAA,KA6BjC,IAQMsf,EAAsB,eAAAC,EAAAtgB,YAAAC,cAAAC,MAAG,SAAAqgB,EAAOtX,GAAI,OAAAhJ,cAAAG,MAAA,SAAAogB,GAAA,cAAAA,EAAAlgB,KAAAkgB,EAAAjgB,MAAA,cAAAigB,EAAAjgB,KAAA,EAClCC,IAAIC,IACfoQ,IAAmC,gDAADC,OACc7H,IAChD,KAAD,SAAAuX,EAAA7f,OAAA,SAAA6f,EAAA5f,MAAA,wBAAA4f,EAAA3f,OAAA,GAAA0f,EAAA,KACF,gBALkCE,GAAA,OAAAH,EAAAxf,MAAA,KAAAC,UAAA,KAOtB2f,EAAiB,eAAAC,EAAA3gB,YAAAC,cAAAC,MAAG,SAAA0gB,IAAA,OAAA3gB,cAAAG,MAAA,SAAAygB,GAAA,cAAAA,EAAAvgB,KAAAugB,EAAAtgB,MAAA,cAAAsgB,EAAAtgB,KAAA,EAClBC,IAAIC,IAAIoQ,IAAmC,oBAAqB,KAAD,SAAAgQ,EAAAlgB,OAAA,SAAAkgB,EAAAjgB,MAAA,wBAAAigB,EAAAhgB,OAAA,GAAA+f,EAAA,KAC7E,kBAF6B,OAAAD,EAAA7f,MAAA,KAAAC,UAAA,KAUjB+f,EAAY,eAAAC,EAAA/gB,YAAAC,cAAAC,MAAG,SAAA8gB,EAAOzf,GAAI,OAAAtB,cAAAG,MAAA,SAAA6gB,GAAA,cAAAA,EAAA3gB,KAAA2gB,EAAA1gB,MAAA,cAAA0gB,EAAAtgB,OAAA,SAC9BH,IAAIiB,KACTf,IACA,sCACA,CACEa,UAEH,wBAAA0f,EAAApgB,OAAA,GAAAmgB,EAAA,KACF,gBARwBE,GAAA,OAAAH,EAAAjgB,MAAA,KAAAC,UAAA,KAcZogB,EAAuB,eAAAC,EAAAphB,YAAAC,cAAAC,MAAG,SAAAmhB,EAAOC,GAAO,OAAArhB,cAAAG,MAAA,SAAAmhB,GAAA,cAAAA,EAAAjhB,KAAAihB,EAAAhhB,MAAA,cAAAghB,EAAA5gB,OAAA,SAC5CH,IAAIiB,KACTf,IACA,6BACA,CACEa,KAAM+f,KAET,wBAAAC,EAAA1gB,OAAA,GAAAwgB,EAAA,KACF,gBARmCG,GAAA,OAAAJ,EAAAtgB,MAAA,KAAAC,UAAA,KAUvB0gB,EAAmB,eAAAC,EAAA1hB,YAAAC,cAAAC,MAAG,SAAAyhB,EAAOL,GAAO,OAAArhB,cAAAG,MAAA,SAAAwhB,GAAA,cAAAA,EAAAthB,KAAAshB,EAAArhB,MAAA,cAAAqhB,EAAAjhB,OAAA,SACxCH,IAAIiB,KACTf,IACA,2CACA,CACEa,KAAM+f,KAET,wBAAAM,EAAA/gB,OAAA,GAAA8gB,EAAA,KACF,gBAR+BE,GAAA,OAAAH,EAAA5gB,MAAA,KAAAC,UAAA,KAwCnB+gB,EAAqB,eAAAC,EAAA/hB,YAAAC,cAAAC,MAAG,SAAA8hB,EAAOV,GAAO,OAAArhB,cAAAG,MAAA,SAAA6hB,GAAA,cAAAA,EAAA3hB,KAAA2hB,EAAA1hB,MAAA,cAAA0hB,EAAA1hB,KAAA,EACpCC,IAAIiB,KACff,IACA,8BACA,CACEa,KAAM+f,IAER,KAAD,SAAAW,EAAAthB,OAAA,SAAAshB,EAAArhB,MAAA,wBAAAqhB,EAAAphB,OAAA,GAAAmhB,EAAA,KACF,gBARiCE,GAAA,OAAAH,EAAAjhB,MAAA,KAAAC,UAAA,KA0CrB6N,EAAwB,eAAAuT,EAAAniB,YAAAC,cAAAC,MAAG,SAAAkiB,EAAOjU,GAAI,IAAAkU,EAAAC,EAAA1C,EAAA2C,EAAAtZ,EAAA,OAAAhJ,cAAAG,MAAA,SAAAoiB,GAAA,cAAAA,EAAAliB,KAAAkiB,EAAAjiB,MAAA,OAQqG,OARrGiiB,EAAAliB,KAAA,EAEzC+hB,EAAO,IAAII,KAEXH,EAAQI,IAAML,GAAMM,OAAO,cAI3B/C,EAAG,GAAA9O,OAfC,SAARoL,EACK,uCAGF,0CAWiB,yEAAApL,OAAwEwR,EAAK,8CAAAxR,OAA6C3C,GAAIqU,EAAAjiB,KAAA,EAE7HqiB,IAAMniB,IAAImf,GAAK,KAAD,EAAzB,GAAyB2C,EAAAC,EAAA5hB,MAA7BqI,EAAIsZ,EAAJtZ,OAEU,OAAJA,QAAI,IAAJA,KAAMA,KAAI,CAAAuZ,EAAAjiB,KAAA,gBAAAiiB,EAAA7hB,OAAA,SACf,MAAI,eAAA6hB,EAAA7hB,OAAA,SAGNsI,EAAKA,KAAK,IAAE,QAEoB,OAFpBuZ,EAAAliB,KAAA,GAAAkiB,EAAAjf,GAAAif,EAAA,SAEnBhf,QAAQC,MAAM,iBAAgB+e,EAAAjf,IAASif,EAAA7hB,OAAA,SAEhC,MAAI,yBAAA6hB,EAAA3hB,OAAA,GAAAuhB,EAAA,mBAEd,gBAtBoCS,GAAA,OAAAV,EAAArhB,MAAA,KAAAC,UAAA,I,kJC7btB+hB,4BAJf,SAAe/iB,GAAgB,IAAbmK,EAAQnK,EAARmK,SAChB,OAAOC,cAAA,OAAKF,UAAU,eAAcC,SAAEA,GACxC,I,yECiBe6Y,MAvBf,WACE,OACE/Y,eAAA,OAAKC,UAAU,uEAAsEC,SAAA,CACnFF,eAAA,OAAKC,UAAU,sCAAqCC,SAAA,CAClDC,cAAA,OACE6Y,IAAI,gBACJ/Y,UAAU,wCAGZE,cAAA,MAAIF,UAAU,qCAAoCC,SAAC,gCAKrDC,cAAA,OACE6Y,IAAI,sBACJ/Y,UAAU,wDACVgZ,MAAO,CAAEC,UAAW,kBAI5B,ECwHaC,EAAa,SAAH9hB,GAAuB,IAAjB+hB,EAAS/hB,EAAT+hB,UAC3B,OACEpZ,eAAA,OACEqZ,MAAM,KACNC,OAAO,KACPrZ,UAAWmZ,EACXG,QAAQ,YACRC,KAAK,OACLC,MAAM,6BAA4BvZ,SAAA,CAElCC,cAAA,QACEuZ,EAAE,wfACFF,KAAK,YAEPrZ,cAAA,QACEuZ,EAAE,gPACFF,KAAK,YAEPrZ,cAAA,QACEuZ,EAAE,kPACFF,KAAK,YAEPrZ,cAAA,QACEuZ,EAAE,uOACFF,KAAK,cAIb,EC9Je,SAASG,IACtB,IAAMC,EAAUC,uBAChBC,EAA0BC,mBAAS,IAAGC,EAAAC,YAAAH,EAAA,GAA/BI,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GACtBI,EAAgCL,mBAAS,IAAGM,EAAAJ,YAAAG,EAAA,GAArCE,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAC5BG,EAA0BT,mBAAS,CAAC,GAAEU,EAAAR,YAAAO,EAAA,GAA/B/gB,EAAKghB,EAAA,GAAEC,EAAQD,EAAA,GAEtBE,EAA8BZ,oBAAS,GAAMa,EAAAX,YAAAU,EAAA,GAAtCE,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAEpBG,EAA6B,eAAAhlB,EAAAC,YAAAC,cAAAC,MAAG,SAAAC,IAAA,OAAAF,cAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEfykB,IAAKC,2BAA2B,KAAD,EAAxC5kB,EAAAO,MAERgjB,EAAQsB,KAAK/N,IAAasB,KAAKM,kBAChC1Y,EAAAE,KAAA,eAAAF,EAAAC,KAAA,EAAAD,EAAAkD,GAAAlD,EAAA,iCAAAA,EAAAQ,OAAA,GAAAV,EAAA,kBAEJ,kBAPkC,OAAAJ,EAAAe,MAAA,KAAAC,UAAA,KAad,SAAAokB,IAWpB,OAXoBA,EAAAnlB,YAAAC,cAAAC,MAArB,SAAAgB,IAAA,IAAAkkB,EAAA,OAAAnlB,cAAAG,MAAA,SAAAe,GAAA,cAAAA,EAAAb,KAAAa,EAAAZ,MAAA,OAG8C,OAF5CukB,GAAW,GAAM3jB,EAAAb,KAAA,EAET8kB,EAAiBlB,EAAMmB,cAAalkB,EAAAZ,KAAA,EACpCykB,IAAKM,OAAOF,EAAgBd,GAAU,KAAD,SAAAnjB,EAAAZ,KAAA,EACrCwkB,IAAgC,KAAD,EAAA5jB,EAAAZ,KAAA,gBAAAY,EAAAb,KAAA,EAAAa,EAAAoC,GAAApC,EAAA,SAErCujB,EAAQvjB,EAAAoC,IAAQ,QAEE,OAFFpC,EAAAb,KAAA,GAEhBwkB,GAAW,GAAO3jB,EAAAokB,OAAA,6BAAApkB,EAAAN,OAAA,GAAAK,EAAA,yBAErBJ,MAAA,KAAAC,UAAA,CAfDykB,qBAAU,WACRT,GACF,GAAG,IA6BH,OACE5a,cAAA,OACEF,UAAU,wEACVgZ,MAAO,CAAEwC,gBAAiB,8BAA+Bvb,SAEzDF,eAAA,OACEC,UAAU,8EACVgZ,MAAO,CAAEyC,UAAW,mCAAoCxb,SAAA,CAExDC,cAAA,OAAKF,UAAU,uCAAsCC,SACnDC,cAAC4Y,EAAiB,MAGpB/Y,eAAA,OAAKC,UAAU,6DAA4DC,SAAA,CACzEF,eAAA,OAAKC,UAAU,uEAAsEC,SAAA,CACnFF,eAAA,OAAKC,UAAU,wCAAuCC,SAAA,CACpDC,cAAA,MAAIF,UAAU,2CAA0CC,SAAC,oBAGzDC,cAAA,KAAGF,UAAU,uBAAsBC,SAAC,sDAItCC,cAAA,OAAKF,UAAU,sBAAqBC,SAClCF,eAAA,OACEC,UAAU,kFACVgZ,MAAO,CACL0C,gBAAiB,WAEnBC,QAAS,kBACPZ,IAAKa,gBAAgB,CACnBC,SAAUC,IAAgCC,QAC1C,EACH9b,SAAA,CAEDC,cAAA,OAAKF,UAAU,2BAA0BC,SACvCC,cAACgZ,EAAU,MAEbhZ,cAAA,KAAGF,UAAU,6BAA4BC,SAAC,6BAM9CC,cAAA,KAAAD,SAAG,OACHC,cAAA,OAAKF,UAAU,4CAA2CC,SACxDC,cAAA,OAAKF,UAAU,yDAAwDC,SACrEF,eAAA,QAAMic,SA7DH,SAACC,GAAO,IAADC,EACtBD,EAAEE,iBACF,IAAMC,EAAO,CAAC,EACA,KAAVnC,IACFmC,EAAKnC,MAAQ,0BAEE,KAAbI,IACF+B,EAAK/B,SAAW,0BAGG,QAArB6B,EAAIjd,OAAOC,KAAKkd,UAAK,IAAAF,GAAjBA,EAAmB7Y,OAAQoX,EAAS2B,GAzBnC,WAEclB,EAAArkB,MAAC,KAADC,UAAA,CAwBdukB,EACP,EAiDwCrb,UAAU,0BAAyBC,SAAA,CAC3DF,eAAA,OAAKC,UAAU,wBAAuBC,SAAA,CACnCzG,EAAM6iB,SACLtc,eAAA,QAAMC,UAAU,+CAA8CC,SAAA,CAC5DC,cAACoc,IAAgB,IAAG,IAAE9iB,EAAM6iB,WAGhCtc,eAAA,OAAKC,UAAU,gBAAeC,SAAA,CAC5BC,cAAA,SAAOqc,QAAQ,QAAOtc,SAAC,eACvBC,cAAA,SACEF,UAAU,uDACVwc,KAAK,OACLld,GAAG,QACHmd,YAAY,QACZ9a,MAAOsY,EACPyC,SAAU,SAACT,GAAC,OACV/B,EAAS+B,EAAEU,OAAOhb,MAAMib,QAAQ,MAAO,IAAI,IAGpC,KAAV3C,GACC/Z,cAAA,QAAMF,UAAU,uBAAsBC,SACnCzG,EAAMygB,WAIbla,eAAA,OAAKC,UAAU,gBAAeC,SAAA,CAC5BC,cAAA,SAAOqc,QAAQ,WAAUtc,SAAC,kBAC1BC,cAAA,SACEF,UAAU,uDACVwc,KAAK,WACLld,GAAG,WACHmd,YAAY,WACZ9a,MAAO0Y,EACPqC,SAAU,SAACT,GAAC,OAAK3B,EAAY2B,EAAEU,OAAOhb,MAAM,IAEhC,KAAb0Y,GACCna,cAAA,QAAMF,UAAU,uBAAsBC,SACnCzG,EAAM6gB,iBAKfna,cAAC2c,IAAI,CACHC,GAAI5P,IAAasB,KAAKK,qBACtB7O,UAAU,0CAAyCC,SACpD,qBAGDC,cAAA,UACE6c,SAAUnC,EACV5a,UAAU,+EACVwc,KAAK,SAAQvc,SAEZ2a,EACC1a,cAACS,IAAgB,CACfqY,MAAO,CAAEI,MAAO,OAAQC,OAAQ,OAAQ2D,MAAO,UAGjD,sBAOZ9c,cAAA,OAAKF,UAAU,gCAA+BC,SAC5CF,eAAA,OAAKC,UAAU,yCAAwCC,SAAA,CACrDC,cAAA,QAAAD,SAAM,4BACNC,cAAA,QACEF,UAAU,kGACV2b,QAAS,WACPhC,EAAQiD,QAAQ,eAClB,EAAE3c,SACH,wBASf,C,oFCjJA,SAASgd,IAAyC,IAADC,EAAAlmB,EACzCmmB,EAAaC,cAEbC,EAAcC,cAEpBxnB,EAAqD,QAArDonB,EA5BF,WACE,IAAMK,EAAgBlZ,OAAOC,SAASkZ,OACtC,GAAID,EAAe,CACjB,IAAME,EAAkB,IAAIC,gBAAgBH,GACtCI,EAAeF,EAAgBjnB,IAAI,gBACnConB,EAAYH,EAAgBjnB,IAAI,cACtC,OAAKmnB,EACE,CAAEA,eAAcC,aADG,CAAC,CAE7B,CACF,CAmBsCC,UAAiB,IAAAX,IAAI,CAAC,EAAlDS,EAAY7nB,EAAZ6nB,aAAcC,EAAS9nB,EAAT8nB,UAChBL,EAAgBlZ,OAAOC,SAASkZ,OAChCC,EAAkB,IAAIC,gBAAgBH,GACtCO,EAAeL,EAAgBjnB,IAAI,QACnCunB,EAAeN,EAAgBjnB,IAAI,QAErCmnB,IACFG,GACEE,aAAaC,QAAQC,IAAmBC,cAAeL,GACzDC,GACEC,aAAaC,QAAQC,IAAmBE,cAAeL,GACzDC,aAAaC,QAAQC,IAAmBG,cAAeV,IAGrDC,GAAuC,QAA9B5mB,EAAI,CAAC,YAAa,oBAAY,IAAAA,GAA1BA,EAA4BsnB,SAASV,IACpDI,aAAaC,QAAQC,IAAmBK,gBAAiBX,GAG3D,IAAMY,EAnCR,WACE,IAAMA,EAAY,GACZjB,EAAgBlZ,OAAOC,SAASkZ,OAOtC,OANID,GACsB,IAAIG,gBAAgBH,GAC5BkB,SAAQ,SAACC,EAAeC,GAClCA,EAAWC,SAAS,aAAaJ,EAAUvD,KAAK0D,EACtD,IAEKH,CACT,CAyBoBK,GASlB,GAPa,OAATL,QAAS,IAATA,KAAWnb,QACb2a,aAAaC,QACXC,IAAmBY,iBACnBC,KAAKC,UAAUR,IAIfrB,EAAY,CACd,IAAM8B,EAAkB5B,EAAcF,EAAaE,EAAcF,EAIjE,OAFAa,aAAaC,QAAQC,IAAmBgB,YAAaD,QACrDE,eAAelB,QAAQC,IAAmBgB,YAAaD,EAEzD,CAEI5B,GACFW,aAAaC,QAAQC,IAAmBkB,gBAAiB/B,EAE7D,CAEe,SAASgC,IACtB,IAAM1F,EAAUC,uBACVtV,EAAWgb,wBAEXC,EADc,IAAI7B,gBAAgBpZ,EAASkZ,QACtBhnB,IAAI,UAC/BqjB,EAA0BC,mBAAS,IAAGC,EAAAC,YAAAH,EAAA,GAA/BI,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GACtBI,EAAgCL,mBAAS,IAAGM,EAAAJ,YAAAG,EAAA,GAArCE,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAC5BG,EAA0BT,mBAAS,CAAC,GAAEU,EAAAR,YAAAO,EAAA,GAA/B/gB,EAAKghB,EAAA,GAAEC,EAAQD,EAAA,GACtBE,EAA8BZ,oBAAS,GAAMa,EAAAX,YAAAU,EAAA,GAAtCE,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAC1B6E,EAA8B1F,oBAAS,GAAM2F,EAAAzF,YAAAwF,EAAA,GAAtCE,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAC1BG,EAAgC9F,mBAAS,IAAG+F,EAAA7F,YAAA4F,EAAA,GAArCE,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GACtB/E,EAA6B,eAAA1jB,EAAArB,YAAAC,cAAAC,MAAG,SAAAgB,IAAA,OAAAjB,cAAAG,MAAA,SAAAe,GAAA,cAAAA,EAAAb,KAAAa,EAAAZ,MAAA,cAAAY,EAAAb,KAAA,EAAAa,EAAAZ,KAAA,EAEfykB,IAAKC,2BAA2B,KAAD,EAAxC9jB,EAAAP,MAERgjB,EAAQsB,KAAK/N,IAAasB,KAAKM,kBAChC5X,EAAAZ,KAAA,gBAAAY,EAAAb,KAAA,EAAAa,EAAAoC,GAAApC,EAAA,SAEGqoB,GAAqB,gBAAXA,GACZxpB,YAAAC,cAAAC,MAAC,SAAAC,IAAA,OAAAF,cAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACOykB,IAAKa,gBAAgB,CACzBC,SAAUC,IAAgCC,SACzC,KAAD,mBAAA3lB,EAAAQ,OAAA,GAAAV,EAAA,IAHJH,GAKD,yBAAAmB,EAAAN,OAAA,GAAAK,EAAA,kBAEJ,kBAfkC,OAAAG,EAAAP,MAAA,KAAAC,UAAA,KAsBd,SAAAkpB,IAgBpB,OAhBoBA,EAAAjqB,YAAAC,cAAAC,MAArB,SAAAoB,IAAA,OAAArB,cAAAG,MAAA,SAAAoB,GAAA,cAAAA,EAAAlB,KAAAkB,EAAAjB,MAAA,OACmB,OAAjBukB,GAAW,GAAMtjB,EAAAlB,KAAA,EAAAkB,EAAAjB,KAAA,EAETykB,IAAKkF,OAAO,CAChBC,SAAUjG,EAAMmB,cAChBf,WACA8F,WAAY,CACV/nB,KAAc,OAAR0nB,QAAQ,IAARA,OAAQ,EAARA,EAAUlD,QAAQ,OAAQ,KAAKwD,UAEtC,KAAD,SAAA7oB,EAAAjB,KAAA,EACIykB,IAAKM,OAAOpB,EAAMmB,cAAef,GAAU,KAAD,SAAA9iB,EAAAjB,KAAA,EAC1CwkB,IAAgC,KAAD,EAAAvjB,EAAAjB,KAAA,iBAAAiB,EAAAlB,KAAA,GAAAkB,EAAA+B,GAAA/B,EAAA,SAErCkjB,EAAQljB,EAAA+B,IAAQ,QAElBuhB,GAAW,GAAO,yBAAAtjB,EAAAX,OAAA,GAAAS,EAAA,oBACnBR,MAAA,KAAAC,UAAA,CAtBDykB,qBAAU,WACR0B,IACAnC,IC1GG,SAAsBhlB,GAAY,IAATuqB,EAAIvqB,EAAJuqB,KAC9BC,IAASC,eAAe,CAAEF,QAC5B,CDyGIG,CAAc,CAAEH,KAAM,UACxB,GAAG,IA+DH,OACEngB,cAAA,OAAKF,UAAU,wEAAuEC,SACpFF,eAAA,OACEC,UAAU,8EACVgZ,MAAO,CAAEyC,UAAW,mCAAoCxb,SAAA,CAExDC,cAAA,OAAKF,UAAU,uCAAsCC,SACnDC,cAAC4Y,EAAiB,CAAC0D,MAAM,MAE3Bzc,eAAA,OAAKC,UAAU,6DAA4DC,SAAA,CACzEF,eAAA,OACEC,UAAS,sEAAA6G,OACN6Y,EAA8C,iBAApC,mCACVzf,SAAA,CAEHF,eAAA,OAAKC,UAAU,wCAAuCC,SAAA,CACpDC,cAAA,MAAIF,UAAU,2CAA0CC,SAAC,0BAGzDC,cAAA,KAAGF,UAAU,uBAAsBC,SAAC,yEAKtCC,cAAA,OACEF,UAAWygB,IAAG,sBAAuB,CACnC,iBAAkBf,EAClBgB,SAAUhB,IACTzf,SAEHF,eAAA,OACEC,UAAU,kFACVgZ,MAAO,CACL0C,gBAAiB,WAEnBC,QA7CO,WACnB,IACEZ,IAAKa,gBAAgB,CACnBC,SAAUC,IAAgCC,QAE9C,CAAE,MAAOviB,GACPD,QAAQC,MAAMA,EAChB,CACF,EAqCoCyG,SAAA,CAEtBC,cAAA,OAAKF,UAAU,0BAAyBC,SACtCC,cAACgZ,EAAU,MAEbhZ,cAAA,KAAGF,UAAU,6BAA4BC,SAAC,8BAK5Cyf,GACAxf,cAAA,KACE8Y,MAAO,CAAEgE,MAAO,yBAChBhd,UAAU,2BACV2b,QAAS,WACPgE,GAAW,EACb,EAAE1f,SACH,yCAIFyf,EACC3f,eAAA4gB,WAAA,CAAA1gB,SAAA,CACEC,cAAA,KAAGF,UAAU,kBAAiBC,SAAC,OAC/BC,cAAA,OAAKF,UAAU,4CAA2CC,SACxDF,eAAA,OAAKC,UAAU,UAASC,SAAA,CACtBF,eAAA,OAAKC,UAAU,yBAAwBC,SAAA,CACpCzG,EAAM6iB,SACLtc,eAAA,QAAMC,UAAU,+CAA8CC,SAAA,CAC5DC,cAACoc,IAAgB,IAAG,IAAE9iB,EAAM6iB,WAGhCtc,eAAA,OAAKC,UAAU,0BAAyBC,SAAA,CACtCC,cAAA,SAAOqc,QAAQ,WAAUtc,SAAC,uDAG1BC,cAAA,SACEF,UAAU,uDACVwc,KAAK,OACLld,GAAG,WACHmd,YAAY,uBACZ9a,MAAOme,EACPpD,SAAU,SAACT,GAAC,OAAK8D,EAAY9D,EAAEU,OAAOhb,MAAM,IAE9CzB,cAAA,QAAMF,UAAU,uBAAsBC,SACnCzG,EAAMsmB,cAGX/f,eAAA,OAAKC,UAAU,0BAAyBC,SAAA,CACtCC,cAAA,SAAOqc,QAAQ,QAAOtc,SAAC,eACvBC,cAAA,SACEF,UAAU,uDACVwc,KAAK,OACLld,GAAG,QACHmd,YAAY,mBACZ9a,MAAOsY,EACPyC,SAAU,SAACT,GAAC,OACV/B,EAAS+B,EAAEU,OAAOhb,MAAMib,QAAQ,MAAO,IAAI,IAG/C1c,cAAA,QAAMF,UAAU,uBAAsBC,SACnCzG,EAAMygB,WAIXla,eAAA,OAAKC,UAAU,0BAAyBC,SAAA,CACtCC,cAAA,SAAOqc,QAAQ,WAAUtc,SAAC,oBAC1BC,cAAA,SACEF,UAAU,uDACVwc,KAAK,WACLld,GAAG,WACHmd,YAAY,WACZ9a,MAAO0Y,EACPqC,SAAU,SAACT,GAAC,OAAK3B,EAAY2B,EAAEU,OAAOhb,MAAM,IAE9CzB,cAAC0gB,IAAmB,CAClBvG,SAAUA,EACVwG,cArIC,SAACC,EAAOC,GAE7BtG,EADEJ,GAAYyG,GAAS,GAAKA,GAAS,EAC7BpgB,wBAAC,CAAC,EACLlH,GAAK,IACR6gB,SAAU0G,EAASC,QACfD,EAASC,QACT,oCAEOtgB,wBAAC,CAAC,EAAIlH,GAAK,IAAE6gB,SAAU,KACxC,IA8HsBna,cAAA,QAAMF,UAAU,uBAAsBC,SACnCzG,EAAM6gB,iBAIbna,cAAA,OAAKF,UAAU,6BAA4BC,SACzCC,cAAA,UACEF,UAAU,yEACV2b,QArKL,WACf,IAAMS,EAAO,CAAC,EACdA,EAAKnC,MAAQA,EACTgH,YAAchH,GACZ,GACA,6BACF,yBACJmC,EAAK0D,SAAWA,EACZoB,YAAiBpB,GACf,GACA,8BACF,yBACJ1D,EAAK/B,SAAWA,EACZ7gB,EAAM6gB,SACJ7gB,EAAM6gB,SACN,GACF,yBAECpb,OAAOkiB,OAAO/E,GAAMgF,OAAM,SAACzf,GAAK,MAAe,KAAVA,CAAY,IAtCjD,WAEcqe,EAAAnpB,MAAC,KAADC,UAAA,CAqCdmpB,GADoDxF,EAAS2B,EAEpE,EAiJwCnc,SAEjB2a,EACC1a,cAACS,IAAgB,CACfqY,MAAO,CACLI,MAAO,OACPC,OAAQ,OACR2D,MAAO,UAIX,uBAIN9c,cAAA,OAAKF,UAAU,sBAAqBC,SAClCF,eAAA,MACEC,UAAU,sBACVgZ,MAAO,CAAEgE,MAAO,WAAY/c,SAAA,CAC7B,iCACqC,IACpCC,cAAA,QACEF,UAAU,uDACV2b,QAAS,kBACPtX,OAAOgd,KACL,mCACA,SACD,EACFphB,SACF,sBAEO,IAAI,sBAEZF,eAAA,QACEC,UAAU,6CACV2b,QAAS,kBACPtX,OAAOgd,KACL,sCACA,SACD,EACFphB,SAAA,CAEA,IAAI,iCASjBC,cAAA,OAAKF,UAAU,6BAA4BC,SACzCF,eAAA,MACEC,UAAU,yDACVgZ,MAAO,CAAEgE,MAAO,WAAY/c,SAAA,CAC7B,iCACqC,IACpCC,cAAA,QACEF,UAAU,uDACV2b,QAAS,kBACPtX,OAAOgd,KAAK,mCAAoC,SAAS,EAC1DphB,SACF,sBAEO,IAAI,sBAEZF,eAAA,QACEC,UAAU,6CACV2b,QAAS,kBACPtX,OAAOgd,KACL,sCACA,SACD,EACFphB,SAAA,CAEA,IAAI,4BAOfF,eAAA,OAAKC,UAAU,8CAA6CC,SAAA,CAC1DC,cAAA,QAAAD,SAAM,8BACNC,cAAA,QACEF,UAAU,kGACV2b,QAAS,WACP,IAAM2F,EAAclE,cAChBkE,EACF3H,EAAQiD,QAAQ,0BAAD/V,OAA2Bya,IAE1C3H,EAAQiD,QAAQ,cAEpB,EAAE3c,SACH,sBAQb,C,YEtZe,MAA0B,4CCWnCshB,G,OAAa,CACjBC,sBAAuB,mCAGnBC,EAAc,SAACxH,GAAW,IAADyH,EAAAC,EACzBC,EAAc3H,EAAMzV,MAAM,KAC9Bod,EAAcA,EAAY,GAC1B,IAAMC,EAAY5H,EAAMxV,MAAM,GAAc,QAAXid,EAAAE,SAAW,IAAAF,OAAA,EAAXA,EAAare,QAAS,GAKvD,OAHEue,EAAYhF,QAAQiF,EAAW,IAAIC,QAAkB,QAAXH,EAAAC,SAAW,IAAAD,OAAA,EAAXA,EAAate,QAAS,IAChE,IACA4W,EAAMzV,MAAM,KAAK,EAErB,EACMud,EAA0B,SAACC,EAAMC,GACrC,OAAOD,IAASC,CAClB,EACA,SAASC,EAAepsB,GAA0C,IAAvCmkB,EAAKnkB,EAALmkB,MAAOkI,EAA2BrsB,EAA3BqsB,4BAChCtI,EAA0BC,mBAAS,CAAC,GAAEC,EAAAC,YAAAH,EAAA,GAA/BrgB,EAAKugB,EAAA,GAAEU,EAAQV,EAAA,GACtBI,EAAwBL,mBAAS,CAAC,GAAEM,EAAAJ,YAAAG,EAAA,GAA7BiI,EAAIhI,EAAA,GAAEiI,EAAOjI,EAAA,GACpBG,EAAwDT,oBAAS,GAAMU,EAAAR,YAAAO,EAAA,GAAhE+H,EAAoB9H,EAAA,GAAE+H,EAAuB/H,EAAA,GAC9CgI,EAAgBf,EAAYxH,GAE5BwI,EAAc,SAACxG,GACnBoG,EAAO3hB,wBAAC,CAAC,EACJ0hB,GAAI,GAAAM,YAAA,GACNzG,EAAEU,OAAOvkB,KAAO6jB,EAAEU,OAAOhb,QAE9B,EA+BMghB,EAAa,eAAA3rB,EAAAjB,YAAAC,cAAAC,MAAG,SAAAC,IAAA,IAAAmmB,EAAA,OAAArmB,cAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACU,OAA9BisB,GAAwB,GAAMnsB,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAEtBykB,IAAK6H,qBAAqB3I,EAAOmI,EAAKS,KAAMT,EAAK/H,UAAU,KAAD,EAChE8H,IAA8B/rB,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAAkD,GAAAlD,EAAA,SAExBimB,EAAUjmB,EAAAkD,GAAI+iB,SAAW,4BAC/B5B,EAAS,CAAE4B,YAAW,QAES,OAFTjmB,EAAAC,KAAA,GAEtBksB,GAAwB,GAAOnsB,EAAAklB,OAAA,6BAAAllB,EAAAQ,OAAA,GAAAV,EAAA,wBAElC,kBAXkB,OAAAc,EAAAH,MAAA,KAAAC,UAAA,KAYnB,OACEiJ,eAAA4gB,WAAA,CAAA1gB,SAAA,CACEF,eAAA,OAAKC,UAAU,kCAAiCC,SAAA,CAC9CF,eAAA,MAAAE,SAAA,CAAI,yCAAuCuiB,KAC3CtiB,cAAA,MAAAD,SAAI,6CAELzG,EAAM6iB,SACLtc,eAAA,QAAMC,UAAU,+CAA8CC,SAAA,CAC5DC,cAACoc,IAAgB,IAAG,IAAE9iB,EAAM6iB,WAGhCtc,eAAA,OAAKC,UAAU,gBAAeC,SAAA,CAC5BC,cAAA,SACEF,UAAU,uDACV5H,KAAK,OACLokB,KAAK,OACLC,YAAY,aACZ9a,MAAOygB,EAAKS,KACZnG,SAAU+F,IAEZviB,cAAA,QAAMF,UAAU,kDAAiDC,SAC9DzG,EAAMqpB,UAGX9iB,eAAA,OAAKC,UAAU,gBAAeC,SAAA,CAC5BC,cAAA,SACE9H,KAAK,WACL4H,UAAU,uDACVwc,KAAK,WACLC,YAAY,qBACZ9a,MAAOygB,EAAK/H,SACZqC,SAAU+F,IAEZviB,cAAC0gB,IAAmB,CAClBvG,SAAU+H,EAAK/H,SACfwG,cA5EiB,SAACC,EAAOC,GAC3BqB,EAAK/H,UAAYyG,GAAS,GAAKA,GAAS,EAC1CrG,EAAQ/Z,wBAAC,CAAC,EACLlH,GAAK,IACR6gB,SAAU0G,EAASC,QACfD,EAASC,QACT,qCAEDvG,EAAQ/Z,wBAAC,CAAC,EAAIlH,GAAK,IAAE6gB,SAAU,KACxC,IAqEMna,cAAA,QAAMF,UAAU,kDAAiDC,SAC9DzG,EAAM6gB,cAGXta,eAAA,OAAKC,UAAU,gBAAeC,SAAA,CAC5BC,cAAA,SACE9H,KAAK,kBACL4H,UAAU,uDACVwc,KAAK,WACLC,YAAY,uBACZ9a,MAAOygB,EAAKU,gBACZpG,SAAU+F,IAEZviB,cAAA,QAAMF,UAAU,wCAAuCC,SACpDzG,EAAMspB,qBAGX5iB,cAAA,UACEF,UAAU,iEACV2b,QAtFW,WACf,IAAMS,EAAO,CAAC,EACdA,EAAKyG,KAAOT,EAAKS,KAAO,GAAK,yBAC7BzG,EAAK/B,SAAW+H,EAAK/H,SACjB7gB,EAAM6gB,SACJ7gB,EAAM6gB,SACN,GACF,yBACJ+B,EAAK0G,gBAAkBV,EAAKU,gBACxBf,EAAwBK,EAAK/H,SAAU+H,EAAKU,iBAC1C,GACA,4DACF,yBAEC7jB,OAAOkiB,OAAO/E,GAAMgF,OAAM,SAACzf,GAAK,MAAe,KAAVA,CAAY,IACjDghB,IADoDlI,EAAS2B,EAEpE,EAuEMW,SAAUuF,EAAqBriB,SAE9BqiB,EACCpiB,cAACS,IAAgB,CACfqY,MAAO,CAAEI,MAAO,OAAQC,OAAQ,OAAQ2D,MAAO,UAGjD,wBAKV,CAEA,SAAS+F,EAAQ3rB,GAAgC,IAA7B4rB,EAAwB5rB,EAAxB4rB,yBAClBtI,EAA0BZ,mBAAS,IAAGa,EAAAX,YAAAU,EAAA,GAA/BT,EAAKU,EAAA,GAAET,EAAQS,EAAA,GACtB6E,EAAoD1F,oBAAS,GAAM2F,EAAAzF,YAAAwF,EAAA,GAA5DyD,EAAkBxD,EAAA,GAAEyD,EAAqBzD,EAAA,GAChDG,EAAgC9F,mBAAS,IAAG+F,EAAA7F,YAAA4F,EAAA,GAArCuD,EAAQtD,EAAA,GAAEuD,EAAWvD,EAAA,GAEtBwD,EAAe,WACnB,IAAIF,EAAW,GAGf,GAFKlJ,IAAOkJ,EAAW,2BAClBA,GAAalC,YAAchH,KAAQkJ,EAAW,sBAC/CA,EAEF,OADAC,EAAYD,GACLA,CAEX,EAEMG,EAAoB,eAAA3rB,EAAA5B,YAAAC,cAAAC,MAAG,SAAAgB,IAAA,IAAAssB,EAAA,OAAAvtB,cAAAG,MAAA,SAAAe,GAAA,cAAAA,EAAAb,KAAAa,EAAAZ,MAAA,OACK,IAAf+sB,IACJ,CAADnsB,EAAAZ,KAAA,eAAAY,EAAAR,OAAA,iBAEkB,OAFlBQ,EAAAb,KAAA,EAEV6sB,GAAsB,GAAMhsB,EAAAZ,KAAA,EACtBykB,IAAKyI,eAAevJ,GAAO,KAAD,EAChC+I,EAAyB/I,GAAO/iB,EAAAZ,KAAA,iBAAAY,EAAAb,KAAA,GAAAa,EAAAoC,GAAApC,EAAA,SAE5BisB,EAAW,wBACXjsB,EAAAoC,GAAEupB,QAAQtB,IACZ4B,EAAW5B,EAAWrqB,EAAAoC,GAAEupB,OAE1BO,EAAYD,GAAU,QAEO,OAFPjsB,EAAAb,KAAA,GAEtB6sB,GAAsB,GAAOhsB,EAAAokB,OAAA,6BAAApkB,EAAAN,OAAA,GAAAK,EAAA,yBAEhC,kBAhByB,OAAAU,EAAAd,MAAA,KAAAC,UAAA,KAkB1B,OACEiJ,eAAA4gB,WAAA,CAAA1gB,SAAA,CACEC,cAAA,MAAIF,UAAU,yBAAwBC,SAAC,0BACvCC,cAAA,MAAIF,UAAU,gBAAeC,SAAC,6EAG9BC,cAAA,SACEF,UAAU,4DACVwc,KAAK,OACLC,YAAY,mBACZ9a,MAAOsY,EACPyC,SAAU,SAACT,GAAC,OAAK/B,EAAS+B,EAAEU,OAAOhb,MAAM,IAE1CwhB,GACCjjB,cAAA,QAAMF,UAAU,kCAAiCC,SAAEkjB,IAErDjjB,cAAA,UACEF,UAAU,iEACV2b,QAAS2H,EACTvG,SAAUkG,EAAmBhjB,SAE5BgjB,EACC/iB,cAACS,IAAgB,CACfqY,MAAO,CAAEI,MAAO,OAAQC,OAAQ,OAAQ2D,MAAO,UAGjD,wBAKV,CAEe,SAASyG,IACtB,IAAM9J,EAAUC,uBAChB8J,EAA0B5J,mBAAS,IAAG6J,EAAA3J,YAAA0J,EAAA,GAA/BzJ,EAAK0J,EAAA,GAAEzJ,EAAQyJ,EAAA,GACtBC,EAAwB9J,mBAAS,GAAE+J,EAAA7J,YAAA4J,EAAA,GAA5BvD,EAAIwD,EAAA,GAAEC,EAAOD,EAAA,GAKpB,OACE9jB,eAAA,OAAKC,UAAU,gEAA+DC,SAAA,CAC5EC,cAAA,OAAKF,UAAU,yBAAyB+Y,IAAKgL,EAASC,IAAI,eAC1D9jB,cAAA,OAAKF,UAAU,qEAAoEC,SACjFC,cAAA,OACEF,UAAU,kCACV+Y,IAAI,gBACJiL,IAAI,WAGRjkB,eAAA,OAAKC,UAAU,qHAAoHC,SAAA,CACvH,IAATogB,GACCngB,cAAC6iB,EAAQ,CACPC,yBAA0B,SAACiB,GACzB/J,EAAS+J,GACTH,EAAQ,EACV,IAGM,IAATzD,GACCngB,cAACgiB,EAAe,CACdC,4BAzB0B,WAClCxI,EAAQsB,KAAK/N,IAAasB,KAAKC,MACjC,EAwBUwL,MAAOA,SAMnB,CCtOeiK,MAnBf,WACE,IAAMvK,EAAUC,uBAehB,OAbAuK,IAAM5I,WAAU,WACO,SAAA6I,IAQpB,OARoBA,EAAAruB,YAAAC,cAAAC,MAArB,SAAAC,IAAA,OAAAF,cAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAEgE,OAFhEF,EAAAC,KAAA,EAEI2nB,aAAaqG,WAAWnG,IAAmBoG,iBAAiBluB,EAAAE,KAAA,EACtDykB,IAAKwJ,UAAU,KAAD,EACpB5K,EAAQiD,QAAQ1P,IAAasB,KAAKC,OAAOrY,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAAkD,GAAAlD,EAAA,SAEzCmD,QAAQC,MAAKpD,EAAAkD,IAAI,yBAAAlD,EAAAQ,OAAA,GAAAV,EAAA,mBAEpBW,MAAA,KAAAC,UAAA,EAToB,WACAstB,EAAAvtB,MAAC,KAADC,UAAA,CASrB0tB,EACF,GAAG,IAEItkB,cAAAygB,WAAA,GACT,E,iBCkBe8D,MA/Bf,WACE,IAAMtrB,EAAWurB,cACXC,EAAcC,YAAYhrB,KAC1B+f,EAAUC,uBAuBhB,OAjBA2B,qBAAU,WACRR,IAAKC,2BACFlF,KAAI,eAAAhgB,EAAAC,YAAAC,cAAAC,MAAC,SAAAC,EAAOkD,GAAI,OAAApD,cAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACVquB,GAAaxrB,EAASD,eAAY,wBAAA9C,EAAAQ,OAAA,GAAAV,EAAA,KACxC,gBAAAuB,GAAA,OAAA3B,EAAAe,MAAA,KAAAC,UAAA,EAFI,IAGJ+tB,OAAM,SAACC,GACNvrB,QAAQC,MAAMsrB,GACdnL,EAAQiD,QAAQ1P,IAAasB,KAAKC,MACpC,GACJ,GAAG,IAEH8M,qBAAU,WACJoJ,GACFhL,EAAQsB,KAAK,cAEjB,GAAG,CAAC0J,IAIGzkB,cAAA,SACT,EC5Be,SAAS6kB,IACtB,OACE7kB,cAAA,OAAKZ,GAAG,QAAOW,SACbF,eAACilB,SAAM,CAAA/kB,SAAA,CACLC,cAAC+kB,QAAK,CAACC,OAAK,EAACC,KAAMjY,IAAasB,KAAKC,MAAO2W,UAAW1L,IAGvDxZ,cAAC+kB,QAAK,CACJC,OAAK,EACLC,KAAMjY,IAAasB,KAAKM,iBACxBsW,UAAWX,IAEbvkB,cAAC+kB,QAAK,CAACC,OAAK,EAACC,KAAMjY,IAAasB,KAAKI,QAASwW,UAAW/F,IACzDnf,cAAC+kB,QAAK,CAACC,OAAK,EAACC,KAAMjY,IAAasB,KAAKO,OAAQqW,UAAWlB,IACxDhkB,cAAC+kB,QAAK,CACJC,OAAK,EACLC,KAAMjY,IAAasB,KAAKQ,kBACxBoW,UAAWlB,IAEbhkB,cAAC+kB,QAAK,CACJC,OAAK,EACLC,KAAMjY,IAAasB,KAAKK,qBACxBuW,UAAW3B,QAMrB,C,+CCpCM4B,EAAqB,SAACC,GAC1B,OAAQA,GACN,IAAK,OACH,MAAO,CACLC,WAAY,CACVC,QAASC,IAAOtZ,oBAChBuZ,MAAOD,IAAOvZ,YACdyZ,QAASF,IAAOvZ,YAChB6Q,SAAU0I,IAAOtZ,qBAEnByZ,SAAU,CACRJ,QAASC,IAAOvZ,YAChB2Z,QAASJ,IAAOvZ,aAElB4Z,OAAQ,CACNN,QAASC,IAAOtZ,qBAElB4Z,WAAY,CACVC,QAASP,IAAOpa,mBAChB4a,UAAWR,IAAOvZ,YAClBga,SAAUT,IAAOtZ,oBACjBga,YAAaV,IAAOna,mBACpB8a,YAAaX,IAAO/Z,eAG1B,IAAK,QACH,MAAO,CACL6Z,WAAY,CACVC,QAASC,IAAOja,mBAChBka,MAAOD,IAAOha,mBACdka,QAASF,IAAOha,mBAChBsR,SAAU0I,IAAOja,oBAEnBoa,SAAU,CACRJ,QAASC,IAAOra,WAChBya,QAASJ,IAAOnb,YAElBwb,OAAQ,CACNN,QAASC,IAAOja,oBAElBua,WAAY,CACVC,QAASP,IAAOtZ,oBAChB8Z,UAAWR,IAAOra,WAClB8a,SAAUT,IAAOja,mBACjB2a,YAAaV,IAAOja,mBACpB4a,YAAaX,IAAO/Z,eAO9B,EAEM2a,EAAerI,aAAasI,QAAQ,gBAAkB,OAEtDjuB,GAAe,CACnBkuB,WAAY,CACVC,QAAO9lB,YAAA,CACL8b,KAAM6J,GACHhB,EAAmBgB,MAKtBI,GAAiBtuB,YAAY,CACjCC,KAAM,mBACNC,gBACAI,SAAU,CACRiuB,cAAe,SAAC/tB,EAAOC,GACrBD,EAAM4tB,WAAa3tB,EAAOC,OAC5B,KAIW6tB,GAAkBD,GAAextB,QAAjCytB,cAEAD,MAAsB,Q,wBC/D/BE,I,OAAcC,gBAAK,kBAAM,mDAA6B,KAyC7CC,OAvCf,WACE,IAAM1tB,EAAWurB,cACX6B,EAAa3B,aAAY,SAACjsB,GAAK,OAAKA,EAAMmuB,iBAAiBP,UAAU,IAEnEplB,EAAkByjB,aAAY,SAACjsB,GAAK,OAAKA,EAAMgL,WAAW,IAA1DxC,cACF4lB,EAAeC,YAAYT,GAQjC,OANAhL,qBAAU,WDwDL,IAAqB+J,ECvDxBtH,aAAaC,QAAQ,cAAe,SACpC9kB,GDsDwBmsB,ECtDH,QDuDvB,eAAAxvB,EAAAC,YAAAC,cAAAC,MAAO,SAAAC,EAAOiD,GAAQ,IAAAqtB,EAAA,OAAAxwB,cAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAChBkwB,EAAU,CAAC,EAEbA,EADY,SAAVlB,EACK5kB,YAAA,CACL8b,KAAM,QACH6I,EAAmBC,IAGjB5kB,YAAA,CACL8b,KAAM,SACH6I,EAAmBC,IAG1BnsB,EAASutB,GAAc,CAAEF,aAAY,wBAAApwB,EAAAQ,OAAA,GAAAV,EAAA,KACtC,gBAAAuB,GAAA,OAAA3B,EAAAe,MAAA,KAAAC,UAAA,EAdD,ICrDA,GAAG,IAGDiJ,eAAA,OACEC,UAAS,GAAA6G,OACP1F,EAAgB,eAAiB,GAAE,gKAC0HlB,SAAA,CAE/JC,cAAC+mB,WAAQ,CAACC,SAAUhnB,cAACU,KAAuB,IAAIX,SAC9CC,cAACinB,IAAM,CAAAlnB,SACLC,cAACknB,EAAM,CAAAnnB,SACLC,cAACmnB,IAAa,CAAC/B,MAAOyB,EAAa9mB,SACjCF,eAACilB,SAAM,CAAA/kB,SAAA,CACLC,cAAC+kB,QAAK,CAACE,KAAMjY,IAAasB,KAAKlB,KAAM8X,UAAWL,IAChD7kB,cAAC+kB,QAAK,CAACE,KAAK,IAAIC,UAAWuB,gBAOrCzmB,cAAA,OAAKF,UAAU,sBAAqBC,SAClCC,cAAConB,KAAc,QAIvB,E,0BC/CMC,I,MAAapvB,YAAY,CAC7BC,KAAM,eACNC,aARmB,CACnBmvB,OAAQ,GACRC,OAAQ,GACRC,UAAW,IAMXjvB,SAAU,CACRkvB,UAAW,SAAChvB,EAAOC,GACjBD,EAAM6uB,OAAS5uB,EAAOC,QAEtB,IAAI+uB,EAAS,GACbhvB,EAAOC,QAAQ4lB,SAAQ,SAAA3oB,GAAA,IAAG2xB,EAAM3xB,EAAN2xB,OAAM,OAAOG,EAAO3M,KAAIpkB,MAAX+wB,EAAMC,aAASJ,GAAO,IAC7D9uB,EAAM8uB,OAASG,EAEf,IAAIE,EAAY,GAChBF,EAAOnJ,SAAQ,SAAAznB,GAAA,IAAG0wB,EAAS1wB,EAAT0wB,UAAS,OAAOI,EAAU7M,KAAIpkB,MAAdixB,EAASD,aAASH,GAAU,IAC9D/uB,EAAM+uB,UAAYI,CACpB,MAkBWP,IAdcA,GAAWtuB,QAAzB0uB,UAcAJ,GAAkB,S,mBClC3BQ,GAAe5vB,YAAY,CAC/BC,KAAM,iBACNC,aANmB,CACnB2E,UAAW,IAMXvE,SAAU,CACRuvB,gBAAiB,SAACrvB,EAAOC,GACvBD,EAAMqE,UAAYpE,EAAOC,OAC3B,KAI+BkvB,GAAa9uB,QAAjC+uB,gBASAD,UAAoB,QCC7BE,GAAqB9vB,YAAY,CACrCC,KAAM,uBACNC,aA3BmB,CACnB6vB,cAAe,GACfC,cAAe,GACfC,cAAe,CACbC,YAAa,GACbC,oBAAqB,GACrBC,cAAe,GACfC,aAAc,GACdC,WAAY,GACZ5F,KAAM,GACN6F,UAAW,GACXC,UAAW,GACXC,cAAe,GACfC,aAAc,GACdC,iBAAkB,GAClBC,cAAe,GACfC,WAAY,GACZC,aAAa,EACbC,QAAS,GACTC,SAAU,GACVC,SAAU,aACVC,WAAY,KAOd5wB,SAAU,CACR6wB,oBAAqB,SAAC3wB,EAAOC,GAC3BD,EAAMuvB,cAAgBtvB,EAAOC,QAAQ0wB,OACvC,EACAC,oBAAqB,SAAC7wB,EAAOC,GAC3BD,EAAMwvB,cAAgBvvB,EAAOC,QAAQ0wB,OACvC,EACAE,oBAAqB,SAAC9wB,EAAOC,GAC3B,IAAA8wB,EAUI9wB,EAAOC,QAAQ8wB,SATjBvxB,EAAIsxB,EAAJtxB,KACAmxB,EAAOG,EAAPH,QACAK,EAAQF,EAARE,SACAC,EAAeH,EAAfG,gBACAC,EAAYJ,EAAZI,aACAC,EAAiBL,EAAjBK,kBACAb,EAAOQ,EAAPR,QACAC,EAAQO,EAARP,SACAE,EAAUK,EAAVL,WAEF1wB,EAAMyvB,cAAcI,aAAe5vB,EAAOC,QAAQmxB,cAClDrxB,EAAMyvB,cAAcC,YAAcjwB,EAClCO,EAAMyvB,cAAcG,cAAgBgB,EACpC5wB,EAAMyvB,cAAcE,oBAAsB7gB,SAASmiB,GAAY,GAC/DjxB,EAAMyvB,cAAcQ,eAA+B,OAAfiB,QAAe,IAAfA,OAAe,EAAfA,EAAiB7qB,OAAQ,GAC7DrG,EAAMyvB,cAAcU,iBAAmBgB,EACvCnxB,EAAMyvB,cAAcY,WAAae,EACjCpxB,EAAMyvB,cAAcW,cAAgBnwB,EAAOC,QAAQoxB,SACnDtxB,EAAMyvB,cAAcc,QAAUA,EAC9BvwB,EAAMyvB,cAAce,SAAWA,EAC/BxwB,EAAMyvB,cAAcgB,SAAWxwB,EAAOC,QAAQuwB,SAC9CzwB,EAAMyvB,cAAciB,WAAaA,CACnC,EACAa,cAAe,SAACvxB,EAAOC,GACrBD,EAAMyvB,cAAca,aAAc,CACpC,KAIGkB,GACLlC,GAAmBhvB,QAENgvB,IAHmBkC,GAAnBb,oBAAwCa,GAAnBX,oBAAwCW,GAAnBV,oBAG1CxB,GAA0B,S,UC7DnCmC,GAAsBjyB,YAAY,CACtCC,KAAM,wBACNC,aATmB,CACnBgyB,QAAS,GACTC,aAAc,GACdC,SAAU,GACVC,0BAA2B,CAAC,GAM5B/xB,SAAU,CACRgyB,kBAAmB,SAAC9xB,EAAK7C,GAAmB,IAAD40B,EAAd7xB,EAAO/C,EAAP+C,SAC3B6xB,EAAA/xB,EAAM0xB,SAAQpP,KAAIpkB,MAAA6zB,EAAA7C,aAAKhvB,GAAW,KAClCF,EAAM0xB,QAAQ5L,SAAQ,SAACkM,GAAC,IAAAC,EAAA,OAAKA,EAAAjyB,EAAM2xB,cAAarP,KAAIpkB,MAAA+zB,EAAA/C,cAAM,OAAD8C,QAAC,IAADA,OAAC,EAADA,EAAGE,eAAgB,IAAI,IAChFlyB,EAAM2xB,aAAa7L,SAAQ,SAACqM,GAAO,IAADC,EAAAC,GAChCD,EAAApyB,EAAM4xB,UAAStP,KAAIpkB,MAAAk0B,EAAAlD,cAAM,OAADiD,QAAC,IAADA,OAAC,EAADA,EAAGG,WAAY,KACtC,OAADH,QAAC,IAADA,GAAW,QAAVE,EAADF,EAAGG,gBAAQ,IAAAD,GAAXA,EAAavM,SAAQ,SAAAznB,GAAA,IAAGsI,EAAEtI,EAAFsI,GAAE,OAAQ3G,EAAM6xB,0BAA0BlrB,GAAO,OAADwrB,QAAC,IAADA,OAAC,EAADA,EAAGI,cAAc,GAC3F,GACF,KAeWd,IAXsBA,GAAoBnxB,QAA1CwxB,kBAWAL,GAA2B,SCNpCe,I,OAAoBhzB,YAAY,CACpCC,KAAM,sBACNC,aA7BmB,CACnB+yB,eAAgB,EAChBzN,aAAc,GACd0N,QAAS,EACTC,gBAAiB,EACjBC,cAAe,GACfC,SAAU,GACVC,SAAS,EACTC,gBAAgB,EAChBC,yBAAyB,EACzBC,+BAA+B,EAC/BC,4BAA4B,EAC5BC,oBAAqB,CAAC,EACtBC,iBAAkB,GAClBC,eAAgB,CAAC,EACjBC,uBAAwB,CAAC,EACzBC,iBAAiB,EACjBC,mBAAoB,CAClBC,cAAc,EACdC,aAAc,CAAC,EACfC,aAAc,IAEhBC,kBAAkB,EAClBC,UAAW,CAAC,EACZC,iBAAiB,GAMjBh0B,SAAU,CACRi0B,uBAAwB,SAAC/zB,EAAOC,GAC9B,OAAA8H,wBAAA,GACK/H,GAAK,IACRyyB,eAAgBxyB,EAAOC,QAAQuyB,eAC/BzN,aAAc/kB,EAAOC,QAAQ8kB,aAC7B0N,QAASzyB,EAAOC,QAAQwyB,QACxBC,gBAAiB1yB,EAAOC,QAAQyyB,gBAChCC,cAAe3yB,EAAOC,QAAQ0yB,cAC9BiB,UAAW5zB,EAAOC,QAAQ2zB,WAE9B,EAEAG,iBAAkB,SAACh0B,EAAOC,GACxB,OAAA8H,wBAAA,GACK/H,GAAK,IACR4yB,cAAe3yB,EAAOC,QAAQ0yB,eAElC,EAEAqB,iBAAkB,SAACj0B,EAAOC,GACxB,OAAA8H,wBAAA,GAAY/H,GAAK,IAAE8yB,QAAS7yB,EAAOC,QAAQg0B,eAC7C,EAEAC,wBAAyB,SAACn0B,EAAOC,GAC/B,OAAA8H,wBAAA,GAAY/H,GAAK,IAAE+yB,eAAgB9yB,EAAOC,QAAQ6yB,gBACpD,EACAqB,mBAAoB,SAACp0B,EAAOC,GAC1B,OAAA8H,wBAAA,GACK/H,GAAK,IACR8zB,gBAAiB7zB,EAAOC,SAE5B,EAEAm0B,mBAAoB,SAACr0B,EAAOC,GAC1B,OAAA8H,wBAAA,GACK/H,GAAK,IACR6yB,SAAU5yB,EAAOC,QAAQ2yB,UAE7B,EAGAyB,2BAA4B,SAACt0B,EAAOC,GAClC,OAAA8H,wBAAA,GACK/H,GAAK,IACRgzB,wBAAyB/yB,EAAOC,QAAQ8yB,yBAE5C,EAGAuB,6BAA8B,SAACv0B,EAAOC,GACpC,OAAA8H,wBAAA,GACK/H,GAAK,IACRizB,8BAA+BhzB,EAAOC,QAAQ+yB,+BAElD,EAGAuB,0BAA2B,SAACx0B,EAAOC,GACjC,OAAA8H,wBAAA,GACK/H,GAAK,IACRkzB,2BAA4BjzB,EAAOC,QAAQgzB,4BAE/C,EAGAuB,uBAAwB,SAACz0B,EAAOC,GAC9B,OAAA8H,wBAAA,GACK/H,GAAK,IACRmzB,oBAAqBlzB,EAAOC,QAAQizB,qBAExC,EAGAuB,oBAAqB,SAAC10B,EAAOC,GAC3B,OAAA8H,wBAAA,GACK/H,GAAK,IACRozB,iBAAkBnzB,EAAOC,QAAQkzB,kBAErC,EAGAuB,qBAAsB,SAAC30B,EAAOC,GAC5B,OAAA8H,wBAAA,GACK/H,GAAK,IACRqzB,eAAgBpzB,EAAOC,QAAQmzB,eAC/BE,gBAAiBtzB,EAAOC,QAAQqzB,gBAChCO,gBAAiB7zB,EAAOC,QAAQ4zB,iBAEpC,EAGAc,eAAgB,SAAC50B,EAAOC,GACtB,OAAA8H,wBAAA,GACK/H,GAAK,IACRuzB,gBAAiBtzB,EAAOC,QAAQqzB,iBAEpC,EAEAsB,0BAA2B,SAAC70B,EAAOC,GACjC,OAAA8H,wBAAA,GACK/H,GAAK,IACRszB,uBAAwBrzB,EAAOC,QAAQozB,wBAE3C,EAGAwB,sBAAuB,SAAC90B,EAAOC,GAC7B,OAAA8H,wBAAA,GACK/H,GAAK,IACRwzB,mBAAoBvzB,EAAOC,QAAQszB,oBAEvC,EAGAuB,gBAAiB,SAAC/0B,EAAOC,GACvB,OAAA8H,wBAAA,GAAY/H,GAAK,IAAE4zB,iBAAkB3zB,EAAOC,QAAQ0zB,kBACtD,MAIGoB,GAiBHxC,GAAkBlyB,QACPkyB,IAjBSwC,GAAtBjB,uBACgBiB,GAAhBf,iBACkBe,GAAlBX,mBAC0BW,GAA1BV,2BAC4BU,GAA5BT,6BACyBS,GAAzBR,0BACsBQ,GAAtBP,uBACmBO,GAAnBN,oBACoBM,GAApBL,qBACyBK,GAAzBH,0BACcG,GAAdJ,eACqBI,GAArBF,sBACuBE,GAAvBb,wBACea,GAAfD,gBACkBC,GAAlBZ,mBACgBY,GAAhBhB,iBAEaxB,GAAyB,SCxIlCyC,I,MAAqBz1B,YAAY,CACrCC,KAAM,uBACNC,aAlCmB,CACnBw1B,UAAW,EACXC,sBAAuB,aACvBC,uBAAwB,EACxBC,8BAA+B,aAC/BnL,KAAM,CACJoL,OAAQ,GACRC,WAAY,GACZC,KAAM,GACNC,IAAK,GACLC,MAAO,GACPC,KAAM,IAERC,WAAY,CACVC,OAAO,EACPC,UAAU,EACVC,YAAY,GAEdC,UAAW,CACT3vB,KAAM,GACN4vB,WAAY,EACZC,YAAa,EACbC,eAAgB,GAChBC,iBAAkB,IAEpBC,aAAc,CACZhwB,KAAM,GACN6vB,YAAa,GAEfI,kBAAkB,GAMlBx2B,SAAU,CACRy2B,UAAW,SAACv2B,EAAOC,GACjBD,EAAMk1B,UAAYj1B,EAAOC,OAC3B,EACAs2B,qBAAsB,SAACx2B,EAAOC,GAC5BD,EAAMs2B,iBAAmBr2B,EAAOC,OAClC,EACAu2B,4BAA6B,SAACz2B,EAAOC,GACnCD,EAAMm1B,sBAAwBl1B,EAAOC,QAAQuwB,QAC/C,EACAiG,uBAAwB,SAAC12B,EAAOC,GAC9BD,EAAMq1B,8BAAgCp1B,EAAOC,OAC/C,EACAy2B,SAAU,SAAC32B,EAAOC,GAChBD,EAAMk1B,UAAY,CACpB,EACA0B,0BAA2B,SAAC52B,EAAOC,GACjCD,EAAMo1B,uBAAyBn1B,EAAOC,OACxC,EACA22B,WAAY,SAAC72B,EAAOC,GAClBD,EAAMkqB,KAAKlqB,EAAMq1B,+BAAiCp1B,EAAOC,OAC3D,EACA42B,UAAW,SAAC92B,EAAOC,GACjBD,EAAMkqB,KAAO,CACXoL,OAAQ,GACRC,WAAY,GACZC,KAAM,GACNC,IAAK,GACLC,MAAO,GACPC,KAAM,GAEV,EACAoB,iBAAkB,SAAC/2B,EAAOC,GACxBD,EAAM41B,WAAW31B,EAAOC,QAAQ82B,MAAQ/2B,EAAOC,QAAQ8I,KACzD,EACAiuB,aAAc,SAACj3B,EAAOC,GAAY,IAADi3B,EAAAC,EAMzBC,EAAkB,OAANn3B,QAAM,IAANA,GAAe,QAATi3B,EAANj3B,EAAQC,eAAO,IAAAg3B,OAAT,EAANA,EAAiB7wB,KACnC+wB,GAAaA,EAAUC,MANP,SAACC,EAAGC,GAClB,OAAKD,EAAE9P,WAAWgQ,UAAYD,EAAE/P,WAAWgQ,UAAkB,EACtD,CACT,IAKA,IAAMpB,EAAmBgB,EAAUK,QACjC,SAACC,GAAO,MAAyC,aAApCA,EAAQlQ,WAAWmQ,YAA2B,IAEvDxB,EAAiBiB,EAAUK,QAC/B,SAACC,GAAO,MAAyC,WAApCA,EAAQlQ,WAAWmQ,YAAyB,IAE3D33B,EAAMg2B,UAAUG,eAAiBA,EACjCn2B,EAAMg2B,UAAUI,iBAAmBA,EACnCp2B,EAAMg2B,UAAU3vB,KAAO+wB,EACvBp3B,EAAMg2B,UAAUE,YAAmC,QAAxBiB,EAAGl3B,EAAOC,QAAQ03B,cAAM,IAAAT,IAAIl3B,EAAOC,QAAQg2B,WACxE,EACA2B,gBAAiB,SAAC73B,EAAOC,GAAY,IAAD63B,EAAAC,EAAAC,EAAAC,EAClCj4B,EAAMq2B,aAAahwB,KAAqB,QAAjByxB,EAAG73B,EAAOC,eAAO,IAAA43B,OAAA,EAAdA,EAAgBzxB,KAC1CrG,EAAMq2B,aAAaH,YAAoC,QAAzB6B,EAAiB,QAAjBC,EAAG/3B,EAAOC,eAAO,IAAA83B,OAAA,EAAdA,EAAgBJ,cAAM,IAAAG,IAAkB,QAAlBE,EAAIh4B,EAAOC,eAAO,IAAA+3B,OAAA,EAAdA,EAAgB/B,WAC7E,MAoBG,IAAAgC,GAaHjD,GAAmB30B,QAER20B,IAdGiD,GAAhBC,iBAC2BD,GAA3BzB,4BACSyB,GAAT3B,UACsB2B,GAAtBxB,uBACQwB,GAARvB,SACyBuB,GAAzBtB,0BACUsB,GAAVrB,WACgBqB,GAAhBnB,iBACoBmB,GAApB1B,qBACY0B,GAAZjB,aACeiB,GAAfL,gBACSK,GAATpB,UAGa7B,GAA0B,S,UCpGnCmD,GAAgB54B,YAAY,CAChCC,KAAM,uBACNC,aA1BmB,CACnB24B,sBAAuB,CACrBC,gBAAiB,EACjBC,aAAc,CACZC,eAAgB,EAChBC,iBAAkB,EAClBC,eAAgB,GAElBC,WAAY,CACVH,eAAgB,YAGpBI,iBAAkB,CAAC,EACnBF,eAAgB,CAAC,EACjBG,iBAAkB,KAClBC,4BAA6B,CAC3BzyB,KAAM,GACN6vB,YAAa,KACb6C,YAAY,EACZC,aAAc,KACdC,cAAe,OAOjBn5B,SAAU,CACRy2B,UAAW,SAACv2B,EAAOC,GACjBD,EAAMq4B,sBAAsBE,aAAat4B,EAAOC,QAAQg5B,oBACtDj5B,EAAOC,QAAQi5B,OACnB,EACAC,iBAAkB,SAACp5B,EAAOC,GACxBD,EAAMq4B,sBAAsBM,WAAW14B,EAAOC,QAAQg5B,oBACpDj5B,EAAOC,QAAQy4B,UACnB,EACAU,iBAAkB,SAACr5B,EAAOC,GACxBD,EAAMq4B,sBAAsBC,gBAAkBr4B,EAAOC,QAAQo4B,eAC/D,EACAgB,oBAAqB,SAACt5B,EAAOC,GAAY,IAADi3B,EAKtC,GAAW,OAANj3B,QAAM,IAANA,GAAe,QAATi3B,EAANj3B,EAAQC,eAAO,IAAAg3B,IAAfA,EAAiBqC,aAAc,CAAC,IAADzB,EAC5BV,EAAkB,OAANn3B,QAAM,IAANA,GAAe,QAAT63B,EAAN73B,EAAQC,eAAO,IAAA43B,OAAT,EAANA,EAAiBzxB,KACnC+wB,GAAaA,EAAUC,MANT,SAACC,EAAGC,GAClB,OAAKD,EAAE9P,WAAWgQ,UAAYD,EAAE/P,WAAWgQ,UAAkB,EACtD,CACT,GAIA,CACAx3B,EAAM44B,iBAAmB34B,EAAOC,OAClC,EACAs5B,kBAAmB,SAACx5B,EAAOC,GAAY,IAAD+3B,EAM9BZ,EAAkB,OAANn3B,QAAM,IAANA,GAAe,QAAT+3B,EAAN/3B,EAAQC,eAAO,IAAA83B,OAAT,EAANA,EAAiB3xB,KACnC+wB,GAAaA,EAAUC,MANP,SAACC,EAAGC,GAClB,OAAKD,EAAE9P,WAAWgQ,UAAYD,EAAE/P,WAAWgQ,UAAkB,EACtD,CACT,IAKAx3B,EAAM04B,eAAiBz4B,EAAOC,OAChC,EACAu5B,eAAgB,SAACz5B,EAAOC,GACtBD,EAAM64B,iBAAmB54B,EAAOC,OAClC,EACAw5B,+BAAgC,SAAC15B,EAAOC,GACtCD,EAAM84B,4BAA8B74B,EAAOC,OAC7C,KAyEG,IAAAy5B,GAQHvB,GAAc93B,QAEH83B,IATJuB,GAATpD,UACmBoD,GAAnBL,oBACgBK,GAAhBN,iBACiBM,GAAjBH,kBACcG,GAAdF,eACgBE,GAAhBP,iBAC8BO,GAA9BD,+BAGatB,GAAqB,S,oBCjJ9BwB,GAAep6B,YAAY,CAC/BC,KAAM,iBACNC,aATmB,CACnBm6B,YAAa,KACbC,kBAAmB,KACnBC,YAAa,KACbC,QAAS,GAMTl6B,SAAU,CACRm6B,eAAgB,SAACj6B,EAAOC,GACtBD,EAAM65B,YAAc55B,EAAOC,QAAQg6B,YACnCl6B,EAAM85B,kBAAoB75B,EAAOC,QAAQ45B,kBACzC95B,EAAM+5B,YAAc95B,EAAOC,QAAQ65B,WACrC,EACAI,WAAY,SAACn6B,EAAOC,GAClBD,EAAMg6B,QAAU/5B,EAAOC,OACzB,EACAk6B,qBAAsB,SAACp6B,EAAOC,GAC5BD,EAAM65B,YAAc,KACpB75B,EAAM85B,kBAAoB,KAC1B95B,EAAM+5B,YAAc,IACtB,KA8CG,IAAAM,GAA6DT,GAAat5B,QAElEs5B,IAFcS,GAAdJ,eAA0BI,GAAVF,WAAgCE,GAApBD,qBAE5BR,GAAoB,S,mBC9D7BU,I,YAAc96B,YAAY,CAC9BC,KAAM,gBACNC,aAAc,CACZ66B,WAAY,KACZC,qBAAsB,KACtB5J,QAAS,KACT6J,SAAU,KACVC,kBAAmB,KACnBryB,QAAS,KACTsyB,sBAAuB,CAAC,GAE1B76B,SAAU,CACR86B,WAAY,SAAC56B,EAAOC,GAClBD,EAAMqI,QAAUpI,EAAOC,OACzB,EACA26B,cAAe,SAAC76B,EAAOC,GACrBD,EAAMu6B,WAAat6B,EAAOC,OAC5B,EACA46B,wBAAyB,SAAC96B,EAAOC,GAC/BD,EAAMw6B,qBAAuBv6B,EAAOC,OACtC,EACA66B,WAAY,SAAC/6B,EAAOC,GAClBD,EAAM4wB,QAAU3wB,EAAOC,OACzB,EACA86B,YAAa,SAACh7B,EAAOC,GACnBD,EAAMy6B,SAAWx6B,EAAOC,OAC1B,EACA+6B,mBAAoB,SAACj7B,EAAOC,GAC1BD,EAAMu6B,WAAa,KACnBv6B,EAAMw6B,qBAAuB,KAC7Bx6B,EAAM4wB,QAAU,KAChB5wB,EAAMy6B,SAAW,IACnB,EACAS,qBAAsB,SAACl7B,EAAOC,GAC5BD,EAAM26B,sBAAwB16B,EAAOC,OACvC,MAIGi7B,GASHb,GAAYh6B,QAuHDg6B,IA/HAa,GAAbN,cACuBM,GAAvBL,wBACUK,GAAVJ,WACWI,GAAXH,YACkBG,GAAlBF,mBACoBE,GAApBC,qBACUD,GAAVP,WACoBO,GAApBD,qBAwHaZ,GAAmB,S,2BClE3B,ICvFDe,GAAiB77B,YAAY,CACjCC,KAAM,mBACNC,aAXmB,CACnB47B,eAAgB,CAAC,EACjBC,eAAgB,CAAC,EACjBC,cAAe,CAAC,EAChBC,sBAAuB,CAAC,EACxBC,iBAAkB,CAAC,EACnBC,aAAc,CAAC,GAMf77B,SAAU,CACR87B,eAAgB,SAAC57B,EAAOC,GACtB,IAAAi3B,EAAiCj3B,EAAOC,QAAhC27B,EAAS3E,EAAT2E,UAAWC,EAAS5E,EAAT4E,UACnB97B,EAAM67B,GAAaC,CACrB,EACAC,qBAAsB,SAAC/7B,EAAOC,GAC5BD,EAAMs7B,eAAiBr7B,EAAOC,OAChC,EACA87B,qBAAsB,SAACh8B,EAAOC,GAC5BD,EAAMu7B,eAAiBt7B,EAAOC,OAChC,EACA+7B,oBAAqB,SAACj8B,EAAOC,GAC3BD,EAAMw7B,cAAgBv7B,EAAOC,OAC/B,EACAg8B,4BAA6B,SAACl8B,EAAOC,GACnCD,EAAMy7B,sBAAwBx7B,EAAOC,OACvC,EACAi8B,sBAAuB,SAACn8B,EAAOC,GAC7BD,EAAMo8B,gBAAkBn8B,EAAOC,OACjC,KAsCGm8B,GAOHhB,GAAe/6B,QAEJ+6B,IARCgB,GAAdT,eACoBS,GAApBN,qBACmBM,GAAnBJ,oBACoBI,GAApBL,qBAC2BK,GAA3BH,4BACqBG,GAArBF,sBAGad,GAAsB,SCzF/BiB,GAAgB98B,YAAY,CAChCC,KAAM,YACNC,aARmB,CACnB68B,kBAAkB,EAClBC,cAAe,KACfC,sBAAsB,GAMtB38B,SAAU,CACR48B,oBAAmB,SAAC18B,EAAOC,GACzBD,EAAMu8B,iBAAmBt8B,EAAOC,OAClC,EACAy8B,wBAAuB,SAAC38B,EAAOC,GAC7BD,EAAMy8B,qBAAuBx8B,EAAOC,OACtC,EACA08B,iBAAgB,SAAC58B,EAAOC,GACtBD,EAAMw8B,cAAgBv8B,EAAOC,OAC/B,KAIG28B,GACLP,GAAch8B,QAMDg8B,IAPmBO,GAAnBH,oBAAqCG,GAAhBD,iBAAyCC,GAAvBF,wBAOvCL,GAAqB,SCzB9BQ,GAAct9B,YAAY,CAC9BC,KAAM,gBACNC,aANmB,CACnBq9B,gBAAiB,MAMjBj9B,SAAU,CACRk9B,mBAAoB,SAACh9B,EAAOC,GAC1BD,EAAM+8B,gBAAkB98B,EAAOC,OACjC,KAQW48B,IAJuBA,GAAYx8B,QAAnC08B,mBAIAF,GAAmB,S,UCU5BG,I,OAAgBz9B,YAAY,CAChCC,KAAM,kBACNC,aAxBmB,CACnBw9B,KAAM,CAAC,EACPC,UAAW,CAAC,EACZrK,SAAS,EACTxjB,YAAa,EACb8tB,eAAgB,KAChBC,qBAAsB,EACtBC,aAAc,CAAC,EACfC,WAAY,GACZC,QAAS,CACPC,eAAgB,CAAC,EACjB9xB,SAAU,GACV+xB,eAAe,EACfC,OAAQ,GACRC,eAAgB,GAChBC,WAAY,GACZC,YAAa,GACbC,OAAQ,GACR15B,UAAW,KAObvE,SAAU,CACRk+B,WAAY,SAACh+B,EAAOC,GAClBD,EAAMk9B,KAAOj9B,EAAOC,OACtB,EACA+9B,gBAAiB,SAACj+B,EAAOC,GACvBD,EAAMm9B,UAAYl9B,EAAOC,OAC3B,EACAg+B,WAAY,SAACl+B,EAAOC,GAClBD,EAAM8yB,QAAU7yB,EAAOC,OACzB,EACAi+B,kBAAmB,SAACn+B,EAAOC,GACzBD,EAAMsP,YAAcrP,EAAOC,OAC7B,EACAk+B,kBAAmB,SAACp+B,EAAOC,GACzBD,EAAMw9B,QAAQM,YAAc79B,EAAOC,OACrC,EACAm+B,qBAAsB,SAACr+B,EAAOC,GAC5BD,EAAMo9B,eAAiBn9B,EAAOC,OAChC,EACAo+B,2BAA4B,SAACt+B,EAAOC,GAClCD,EAAMq9B,qBAAuBp9B,EAAOC,OACtC,EACAq+B,mBAAoB,SAACv+B,EAAOC,GAC1BD,EAAMs9B,aAAer9B,EAAOC,OAC9B,EACAs+B,iBAAkB,SAACx+B,EAAOC,GACxBD,EAAMu9B,WAAat9B,EAAOC,OAC5B,EACAu+B,qBAAsB,SAACz+B,EAAOC,GAC5BD,EAAMw9B,QAAQ7xB,SAAW1L,EAAOC,OAClC,EACAw+B,mBAAoB,SAAC1+B,EAAOC,GAC1BD,EAAMw9B,QAAQO,OAAS99B,EAAOC,OAChC,EACAy+B,sBAAuB,SAAC3+B,EAAOC,GAC7BD,EAAMw9B,QAAQn5B,UAAYpE,EAAOC,OACnC,EACA0+B,mBAAoB,SAAC5+B,EAAOC,GAC1BD,EAAMw9B,QAAQG,OAAS19B,EAAOC,OAChC,EACA2+B,2BAA4B,SAAC7+B,EAAOC,GAClCD,EAAMw9B,QAAQI,eAAiB39B,EAAOC,OACxC,EACA4+B,2BAA4B,SAAC9+B,EAAOC,GAClCD,EAAMw9B,QAAQC,eAAiBx9B,EAAOC,OACxC,EACA6+B,uBAAwB,SAAC/+B,EAAOC,GAC9BD,EAAMw9B,QAAQK,WAAa59B,EAAOC,OACpC,EACA8+B,oBAAqB,SAACh/B,EAAOC,GAC3BD,EAAMw9B,QAAQE,cAAgBz9B,EAAOC,OACvC,EACA++B,aAAc,SAACj/B,GACbA,EAAMw9B,QAAU,CACdC,eAAgB,CAAC,EACjB9xB,SAAU,GACV+xB,eAAe,EACfC,OAAQ,GACRC,eAAgB,GAChBC,WAAY,GACZC,YAAa,GACbC,OAAQ,GACR15B,UAAW,GAEf,MA6CG,IAWA66B,GAmBHjC,GAAc38B,QAEH28B,IApBEiC,GAAfjB,gBACUiB,GAAVlB,WACUkB,GAAVhB,WACiBgB,GAAjBf,kBACoBe,GAApBb,qBAC0Ba,GAA1BZ,2BACkBY,GAAlBX,mBACgBW,GAAhBV,iBACoBU,GAApBT,qBACkBS,GAAlBN,mBAC0BM,GAA1BL,2BAC0BK,GAA1BJ,2BACsBI,GAAtBH,uBACmBG,GAAnBF,oBACYE,GAAZD,aACiBC,GAAjBd,kBACqBc,GAArBP,sBACkBO,GAAlBR,mBAGazB,GAAqB,SCxHrBkC,GA7BDC,YAAe,CAC3BC,QAAS,CACPn+B,gBACAo+B,gBACA55B,6BACA65B,kBACApR,oBACAqR,gBACA97B,mBACA+7B,yBACAC,uBACAC,kBACAC,uBACAC,mBACAC,kBACAt5B,qBACAwE,iBACA+0B,iBACA5vB,oBACAhB,oBACA6wB,oBACAC,aACAC,iBACAnzB,yBACAozB,oBAEFC,UAAUh0B,I,2CC/CyBof,IAAM6U,U,sPCS3CvgB,KAAMwgB,OAAOC,MACbzgB,KAAMwgB,OAAOE,MACb1gB,KAAMwgB,OAAOG,MACb3gB,KAAMwgB,OAAOI,MACb5gB,KAAMwgB,OAAOK,MACb7gB,KAAMwgB,OAAOM,MACb9gB,KAAMwgB,OAAOO,MACb/gB,KAAMwgB,OAAOQ,IACbhhB,KAAMwgB,OAAOS,MACbjhB,KAAMwgB,OAAOU,MACblhB,KAAMwgB,OAAOW,MAEEnhB,GAAK,ECXlBohB,KAAYC,KAAK,UAAW,MAAM,GAEpCxZ,IAASwZ,KAEH,mCAEJ,CACEC,MAAqC,QAA9Bh1B,oWAAYmN,cACnB8nB,YAAa,eACbC,SAAU,kCACVC,mBAAoB,SAIxBC,WAAQC,UAAUC,MAElBC,IAASC,OACPr6B,cAACs6B,IAAQ,CAAC1C,MAAOA,GAAM73B,SAErBC,cAAC2mB,GAAG,MAGN4T,SAASC,eAAe,Q,yTCUnB,SAASC,EAAgBv7B,GAC9B,IAAK,IAADtJ,EAAA8kC,EAAAC,EAAAC,EAAAC,EAAAC,EACI3Q,EAA6E,QAAtEv0B,EAAmC,QAAnC8kC,EAAa,OAAVx7B,QAAU,IAAVA,GAA0B,QAAhBy7B,EAAVz7B,EAAY67B,sBAAc,IAAAJ,OAAhB,EAAVA,EAA4B77B,YAAI,IAAA47B,IAAc,OAAVx7B,QAAU,IAAVA,GAAyB,QAAf07B,EAAV17B,EAAY87B,qBAAa,IAAAJ,OAAf,EAAVA,EAA2B97B,YAAI,IAAAlJ,IAAI,GACjFqlC,EAA4C,QAAvCJ,EAAa,OAAV37B,QAAU,IAAVA,GAAuB,QAAb47B,EAAV57B,EAAYg8B,mBAAW,IAAAJ,OAAb,EAAVA,EAAyBx2B,MAAM,aAAK,IAAAu2B,IAAI,GAIhDM,EAHyBhR,EAAQ+F,QACrC,SAACkL,GAAI,IAAAC,EAAAC,EAAAC,EAAA,OAAS,OAAJH,QAAI,IAAJA,GAAgB,QAAZC,EAAJD,EAAMnb,kBAAU,IAAAob,GAAgB,QAAhBC,EAAhBD,EAAkBG,sBAAc,IAAAF,GAAM,QAANC,EAAhCD,EAAkCx8B,YAAI,IAAAy8B,OAAlC,EAAJA,EAAwCp4B,QAAS,CAAC,IAG3DoB,QACAurB,MAAK,SAACC,EAAGC,GAAC,IAAAyL,EAAAC,EAAA,OAAKT,EAAMU,QAAS,OAAD5L,QAAC,IAADA,GAAa,QAAZ0L,EAAD1L,EAAG9P,kBAAU,IAAAwb,OAAZ,EAADA,EAAez3B,MAAQi3B,EAAMU,QAAS,OAAD3L,QAAC,IAADA,GAAa,QAAZ0L,EAAD1L,EAAG/P,kBAAU,IAAAyb,OAAZ,EAADA,EAAe13B,KAAK,IAEnF43B,EAAeT,EAAWU,KAAI,SAACT,GACnC,IAAK,IAADU,EAAAC,EACF,OAAW,OAAJX,QAAI,IAAJA,GAAgB,QAAZU,EAAJV,EAAMnb,kBAAU,IAAA6b,GAAc,QAAdC,EAAhBD,EAAkBF,oBAAY,IAAAG,OAA1B,EAAJA,EAAgCz3B,MAAM,QAAS,EACxD,CAAE,MAAOhL,GACP,MAAO,EACT,CACF,IACM0iC,EAAiBb,EAAWU,KAAI,SAACT,EAAMa,GAC3C,IAAK,IAADC,EAAAC,EAAAC,EAAAC,EACIC,EAA+B,OAAJlB,QAAI,IAAJA,GAAgB,QAAZc,EAAJd,EAAMnb,kBAAU,IAAAic,GAAgB,QAAhBC,EAAhBD,EAAkBV,sBAAc,IAAAW,GAAM,QAANC,EAAhCD,EAAkCr9B,YAAI,IAAAs9B,OAAlC,EAAJA,EAAwClM,QACvE,SAACkL,GAAI,IAAAmB,EAAAC,EAAAC,EAAA,OAAS,OAAJrB,QAAI,IAAJA,GAAgB,QAAZmB,EAAJnB,EAAMnb,kBAAU,IAAAsc,GAAe,QAAfC,EAAhBD,EAAkBG,qBAAa,IAAAF,GAAM,QAANC,EAA/BD,EAAiC19B,YAAI,IAAA29B,OAAjC,EAAJA,EAAuCt5B,QAAS,CAAC,IAEvDw5B,EAA+C,OAAxBL,QAAwB,IAAxBA,GAClB,QAD0CD,EAAxBC,EACzB/3B,eAAO,IAAA83B,OAD0C,EAAxBA,EAEzBvM,MACA,SAACC,EAAGC,GAAC,IAAA4M,EAAAC,EAAAC,EAAAC,EAAA,OACgB,QAAnBH,EAAAhB,EAAaK,UAAM,IAAAW,OAAA,EAAnBA,EAAqBjB,QAAS,OAAD5L,QAAC,IAADA,GAAa,QAAZ8M,EAAD9M,EAAG9P,kBAAU,IAAA4c,OAAZ,EAADA,EAAe74B,QACzB,QAD8B84B,EACjDlB,EAAaK,UAAM,IAAAa,OAAA,EAAnBA,EAAqBnB,QAAS,OAAD3L,QAAC,IAADA,GAAa,QAAZ+M,EAAD/M,EAAG/P,kBAAU,IAAA8c,OAAZ,EAADA,EAAe/4B,MAAK,IAEvD,OAAAxD,wBAAA,GACK46B,GAAI,IACPnb,WAAUzf,wBAAA,GACL46B,EAAKnb,YAAU,IAClBub,eAAgB,CACd18B,KAAM69B,MAId,CAAE,MAAOrjC,GACP,OAAO8hC,CACT,CACF,IAEM4B,EAAchB,EAAeH,KAAI,SAACT,EAAMa,GAC5C,IAAK,IAADgB,EAAAC,EAAAC,EACIb,EAA+B,OAAJlB,QAAI,IAAJA,GAAgB,QAAZ6B,EAAJ7B,EAAMnb,kBAAU,IAAAgd,GAAgB,QAAhBC,EAAhBD,EAAkBzB,sBAAc,IAAA0B,GAAM,QAANC,EAAhCD,EAAkCp+B,YAAI,IAAAq+B,OAAlC,EAAJA,EAAwCjN,QACvE,SAACkL,GAAI,IAAAgC,EAAAC,EAAAC,EAAA,OAAS,OAAJlC,QAAI,IAAJA,GAAgB,QAAZgC,EAAJhC,EAAMnb,kBAAU,IAAAmd,GAAe,QAAfC,EAAhBD,EAAkBV,qBAAa,IAAAW,GAAM,QAANC,EAA/BD,EAAiCv+B,YAAI,IAAAw+B,OAAjC,EAAJA,EAAuCn6B,QAAS,CAAC,IAE7D,OAA+B,OAAxBm5B,QAAwB,IAAxBA,OAAwB,EAAxBA,EAA0BT,KAAI,SAAC0B,GACpC,IAAK,IAADC,EAAAC,EACF,OAAc,OAAPF,QAAO,IAAPA,GAAmB,QAAZC,EAAPD,EAAStd,kBAAU,IAAAud,GAAa,QAAbC,EAAnBD,EAAqBR,mBAAW,IAAAS,OAAzB,EAAPA,EAAkCn5B,MAAM,QAAS,EAC1D,CAAE,MAAOhL,GACP,MAAO,EACT,CACF,GACF,CAAE,MAAOA,GACP,MAAO,EACT,CACF,IAEMokC,EAAgB1B,EAAeH,KAAI,SAACT,EAAMa,GAC9C,IAAK,IAAD0B,EAAAC,EAAAC,EACF,OAAAr9B,wBAAA,GACK46B,GAAI,IACPnb,WAAUzf,wBAAA,GACL46B,EAAKnb,YAAU,IAClBub,eAAgB,CACd18B,KAAU,OAAJs8B,QAAI,IAAJA,GAAgB,QAAZuC,EAAJvC,EAAMnb,kBAAU,IAAA0d,GAAgB,QAAhBC,EAAhBD,EAAkBnC,sBAAc,IAAAoC,GAAM,QAANC,EAAhCD,EAAkC9+B,YAAI,IAAA++B,OAAlC,EAAJA,EAAwChC,KAAI,SAAC0B,EAASO,GAC1D,IAAK,IAADC,EAAAC,EAAAC,EAAAC,EACIC,EAA6B,OAAPZ,QAAO,IAAPA,GAAmB,QAAZQ,EAAPR,EAAStd,kBAAU,IAAA8d,GAAe,QAAfC,EAAnBD,EAAqBrB,qBAAa,IAAAsB,GAAM,QAANC,EAAlCD,EAAoCl/B,YAAI,IAAAm/B,GACzD,QADyDC,EAAxCD,EACxB15B,eAAO,IAAA25B,OADwB,EAAPA,EAExBpO,MACA,SAACC,EAAGC,GAAC,IAAAoO,EAAAC,EAAAC,EAAAC,EAAA,OACoB,QAAvBH,EAAApB,EAAYf,GAAO6B,UAAI,IAAAM,OAAA,EAAvBA,EAAyBzC,QAAS,OAAD5L,QAAC,IAADA,GAAa,QAAZsO,EAADtO,EAAG9P,kBAAU,IAAAoe,OAAZ,EAADA,EAAer6B,QACzB,QAD8Bs6B,EACrDtB,EAAYf,GAAO6B,UAAI,IAAAQ,OAAA,EAAvBA,EAAyB3C,QAAS,OAAD3L,QAAC,IAADA,GAAa,QAAZuO,EAADvO,EAAG/P,kBAAU,IAAAse,OAAZ,EAADA,EAAev6B,MAAK,IAG3D,OAAAxD,wBAAA,GACK+8B,GAAO,IACVtd,WAAUzf,wBAAA,GACL+8B,EAAQtd,YAAU,IACrByc,cAAe,CACb59B,KAAMq/B,MAId,CAAE,MAAO7kC,GACP,OAAOikC,CACT,CACF,QAIR,CAAE,MAAOjkC,GACP,OAAO8hC,CACT,CACF,IACMoD,EAAyB,OAAbd,QAAa,IAAbA,OAAa,EAAbA,EAAexN,QAC/B,SAACkL,GAAI,IAAAqD,EAAAC,EAAAC,EAAA,OAAS,OAAJvD,QAAI,IAAJA,GAAgB,QAAZqD,EAAJrD,EAAMnb,kBAAU,IAAAwe,GAAgB,QAAhBC,EAAhBD,EAAkBjD,sBAAc,IAAAkD,GAAM,QAANC,EAAhCD,EAAkC5/B,YAAI,IAAA6/B,OAAlC,EAAJA,EAAwCx7B,QAAS,CAAC,IAE9D,OAAA3C,wBAAA,GACKtB,GAAU,IACb67B,eAAcpT,YAAM6W,GACpBxD,cAAarT,YAAM6W,IAEvB,CAAE,MAAOllC,GAEP,OADAD,QAAQC,MAAM,qBAAsBA,GAC7B4F,CACT,CACF,CAEO,SAAS0/B,EAA6B1/B,GAAa,IAAD2/B,EAAAC,EAAAC,EAAAC,EAAAC,EAAAnoC,EAAAooC,EAAAC,EACvD,GAAe,OAAVjgC,QAAU,IAAVA,GAAsB,QAAZ2/B,EAAV3/B,EAAY+gB,kBAAU,IAAA4e,GAAe,QAAfC,EAAtBD,EAAwBO,qBAAa,IAAAN,GAAM,QAANC,EAArCD,EAAuChgC,YAAI,IAAAigC,IAA3CA,EAA6C57B,OAAQ,OAAOjE,EACjE,IAAM08B,EAAyB,OAAV18B,QAAU,IAAVA,GAAsB,QAAZ8/B,EAAV9/B,EAAY+gB,kBAAU,IAAA+e,GAAc,QAAdC,EAAtBD,EAAwBpD,oBAAY,IAAAqD,OAA1B,EAAVA,EAAsC36B,MAAM,MAC3D+6B,EAAmE,QAAlDvoC,EAAA6wB,YAAiB,OAAVzoB,QAAU,IAAVA,GAAsB,QAAZggC,EAAVhgC,EAAY+gB,kBAAU,IAAAif,GAAe,QAAfC,EAAtBD,EAAwBE,qBAAa,IAAAD,OAA3B,EAAVA,EAAuCrgC,aAAI,IAAAhI,OAAA,EAA/CA,EAAkDg5B,MAAK,SAACC,EAAGC,GAAO,IAADsP,EAAAC,EACzF,OAAmB,OAAZ3D,QAAY,IAAZA,OAAY,EAAZA,EAAcD,QAAS,OAAD5L,QAAC,IAADA,GAAa,QAAZuP,EAADvP,EAAG9P,kBAAU,IAAAqf,OAAZ,EAADA,EAAet7B,QAAoB,OAAZ43B,QAAY,IAAZA,OAAY,EAAZA,EAAcD,QAAS,OAAD3L,QAAC,IAADA,GAAa,QAAZuP,EAADvP,EAAG/P,kBAAU,IAAAsf,OAAZ,EAADA,EAAev7B,MAC3F,IASA,OARiB,OAAjBq7B,QAAiB,IAAjBA,KAAmB9gB,SAAQ,SAACgf,GAAa,IAADiC,EAAAC,EAAAvoC,EAAAwoC,EAAAC,EAChC3C,EAAqB,OAAPO,QAAO,IAAPA,GAAmB,QAAZiC,EAAPjC,EAAStd,kBAAU,IAAAuf,GAAa,QAAbC,EAAnBD,EAAqBxC,mBAAW,IAAAyC,OAAzB,EAAPA,EAAkCn7B,MAAM,MACtDs7B,EAAgE,QAA/C1oC,EAAAywB,YAAc,OAAP4V,QAAO,IAAPA,GAAmB,QAAZmC,EAAPnC,EAAStd,kBAAU,IAAAyf,GAAe,QAAfC,EAAnBD,EAAqBhD,qBAAa,IAAAiD,OAA3B,EAAPA,EAAoC7gC,aAAI,IAAA5H,OAAA,EAA5CA,EAA+C44B,MACvE,SAACC,EAAGC,GAAC,IAAA6P,EAAAC,EAAA,OACQ,OAAX9C,QAAW,IAAXA,OAAW,EAAXA,EAAarB,QAAS,OAAD5L,QAAC,IAADA,GAAa,QAAZ8P,EAAD9P,EAAG9P,kBAAU,IAAA4f,OAAZ,EAADA,EAAe77B,QAAmB,OAAXg5B,QAAW,IAAXA,OAAW,EAAXA,EAAarB,QAAS,OAAD3L,QAAC,IAADA,GAAa,QAAZ8P,EAAD9P,EAAG/P,kBAAU,IAAA6f,OAAZ,EAADA,EAAe97B,MAAK,IAEzFu5B,EAAQtd,WAAWyc,cAAc59B,KAAO8gC,CAC1C,IACAp/B,wBAAA,GACKtB,GAAU,IACb+gB,WAAUzf,wBAAA,GACK,OAAVtB,QAAU,IAAVA,OAAU,EAAVA,EAAY+gB,YAAU,IACzBmf,cAAe,CACbtgC,KAAMugC,MAId,CAsBO,SAASU,EAAqBxC,EAASyC,GAAa,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAClD/iC,EAAO,CAAC,EACRgjC,EAAyB,OAAPvE,QAAO,IAAPA,GAAmB,QAAZ0C,EAAP1C,EAASwE,kBAAU,IAAA9B,GAAc,QAAdC,EAAnBD,EAAqB+B,oBAAY,IAAA9B,GAAM,QAANC,EAAjCD,EAAmCphC,YAAI,IAAAqhC,OAAhC,EAAPA,EAAyC8B,MAC/D,SAAC7G,GAAI,OAAS,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMh8B,MAAOmI,SAAmB,OAAVy4B,QAAU,IAAVA,OAAU,EAAVA,EAAYkC,QAAQ,IAGtD,OAAKJ,GAUU,OAAfA,QAAe,IAAfA,GAA2B,QAAZH,EAAfG,EAAiB7hB,kBAAU,IAAA0hB,GAAe,QAAfC,EAA3BD,EAA6B3G,qBAAa,IAAA4G,GAAM,QAANC,EAA1CD,EAA4C9iC,YAAI,IAAA+iC,GAAhDA,EAAkD3gB,OAAM,SAACka,EAAM0C,GAAS,IAADqE,EAAAC,EAAAC,EAU3CC,EAAAC,EAAAC,EATpBC,EAAe,OAAJrH,QAAI,IAAJA,GAAgB,QAAZ+G,EAAJ/G,EAAMnb,kBAAU,IAAAkiB,GAAgB,QAAhBC,EAAhBD,EAAkB3G,sBAAc,IAAA4G,GAAM,QAANC,EAAhCD,EAAkCtjC,YAAI,IAAAujC,OAAlC,EAAJA,EAAwCnS,QAAO,SAACwS,EAAGzG,GAAK,IAAA0G,EAAAC,EAAA,OACtE,OAADF,QAAC,IAADA,GAAa,QAAZC,EAADD,EAAGziB,kBAAU,IAAA0iB,GAAe,QAAfC,EAAbD,EAAejG,qBAAa,IAAAkG,OAA3B,EAADA,EAA8B9jC,KAAK+jC,MAAK,SAACC,GACvC,OAAU,OAANA,QAAM,IAANA,OAAM,EAANA,EAAQ1jC,MAAOmI,SAAmB,OAAVy4B,QAAU,IAAVA,OAAU,EAAVA,EAAYjW,YACtCjrB,EAAKgkC,OAASA,GACP,EAGX,GAAE,IAEJ,SAAY,OAARL,QAAQ,IAARA,OAAQ,EAARA,EAAUt/B,QAAS,KACrBrE,EAAK+J,OAAa,OAAJuyB,QAAI,IAAJA,GAAgB,QAAZkH,EAAJlH,EAAMnb,kBAAU,IAAAqiB,OAAZ,EAAJA,EAAkBpqC,KAChC4G,EAAKy+B,QAAc,OAAJnC,QAAI,IAAJA,GAAgB,QAAZmH,EAAJnH,EAAMnb,kBAAU,IAAAsiB,GAAgB,QAAhBC,EAAhBD,EAAkB/G,sBAAc,IAAAgH,OAA5B,EAAJA,EAAkC1jC,KAAKg/B,IAC/C,EAGX,IACOh/B,GA1BE,CACLgkC,OACiB,OAAfhB,QAAe,IAAfA,GAA2B,QAAZ1B,EAAf0B,EAAiB7hB,kBAAU,IAAAmgB,GAAe,QAAfC,EAA3BD,EAA6BpF,qBAAa,IAAAqF,GAAM,QAANC,EAA1CD,EAA4CvhC,YAAI,IAAAwhC,GAAK,QAALC,EAAhDD,EAAmD,UAAE,IAAAC,GAAY,QAAZC,EAArDD,EAAuDtgB,kBAAU,IAAAugB,GAAgB,QAAhBC,EAAjED,EAAmEhF,sBAAc,IAAAiF,GAAM,QAANC,EAAjFD,EAAmF3hC,YAAI,IAAA4hC,GAAK,QAALC,EAAvFD,EAA0F,UAAE,IAAAC,GAC9E,QAD8EC,EAA5FD,EACI1gB,kBAAU,IAAA2gB,GAAe,QAAfC,EADdD,EACgBlE,qBAAa,IAAAmE,GAAM,QAANC,EAD7BD,EAC+B/hC,YAAI,IAAAgiC,OADpB,EAAfA,EACsC,GACxCj4B,OAAuB,OAAfi5B,QAAe,IAAfA,GAA2B,QAAZf,EAAfe,EAAiB7hB,kBAAU,IAAA8gB,GAAe,QAAfC,EAA3BD,EAA6B/F,qBAAa,IAAAgG,GAAM,QAANC,EAA1CD,EAA4CliC,YAAI,IAAAmiC,GAAK,QAALC,EAAhDD,EAAmD,UAAE,IAAAC,GAAY,QAAZC,EAArDD,EAAuDjhB,kBAAU,IAAAkhB,OAAlD,EAAfA,EAAmEjpC,KAC3EqlC,QACiB,OAAfuE,QAAe,IAAfA,GAA2B,QAAZV,EAAfU,EAAiB7hB,kBAAU,IAAAmhB,GAAe,QAAfC,EAA3BD,EAA6BpG,qBAAa,IAAAqG,GAAM,QAANC,EAA1CD,EAA4CviC,YAAI,IAAAwiC,GAAK,QAALC,EAAhDD,EAAmD,UAAE,IAAAC,GAAY,QAAZC,EAArDD,EAAuDthB,kBAAU,IAAAuhB,GAAgB,QAAhBC,EAAjED,EAAmEhG,sBAAc,IAAAiG,GACzE,QADyEC,EAAjFD,EACI3iC,YAAI,IAAA4iC,OADO,EAAfA,EACW,GAoBnB,CAEO,SAASrhC,EAAU0iC,GACxB,OAAOA,EAAKC,KAAKC,MAAMD,KAAKE,UAAe,OAAJH,QAAI,IAAJA,OAAI,EAAJA,EAAM5/B,SAC/C,CAEO,SAASggC,EAAqB3oC,GACnC,OAAOA,IAAWE,IAAYG,aAC1B,cACAL,IAAWE,IAAYK,iBACvB,kBACAP,IAAWE,IAAYC,QACvB,OACAH,IAAWE,IAAYO,cACvB,cACAT,CACN,CAmGO,IAQM4oC,EAAkB,SAACC,GAC9B,OAAU,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAKnoB,cAAcwB,QAAQ,MAAO,GAC3C,EAwDO,SAAS4mB,EAAgBC,GAC9B,IAAMC,EAAUjJ,SAASC,eAAe+I,GACpCC,GACFA,EAAQC,eAAe,CAAEC,SAAU,SAAUC,MAAO,SAExD,C,+ZC9ZaC,G,KAAkB,eAAAhuC,EAAAC,YAAAC,cAAAC,MAAG,SAAAC,EAAO6tC,GAAM,OAAA/tC,cAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EAChCC,IAAIC,IACfoQ,IAAmC,0DAADC,OACwBk9B,IAC1D,KAAD,SAAA3tC,EAAAM,OAAA,SAAAN,EAAAO,MAAA,wBAAAP,EAAAQ,OAAA,GAAAV,EAAA,KACF,gBAL8BuB,GAAA,OAAA3B,EAAAe,MAAA,KAAAC,UAAA,MAOlBktC,EAAU,eAAAhtC,EAAAjB,YAAAC,cAAAC,MAAG,SAAAgB,EAAOyD,GAAM,OAAA1E,cAAAG,MAAA,SAAAe,GAAA,cAAAA,EAAAb,KAAAa,EAAAZ,MAAA,cAAAY,EAAAZ,KAAA,EACxBC,IAAIC,IACfoQ,IAAmC,kCAADC,OACAnM,IAClC,KAAD,SAAAxD,EAAAR,OAAA,SAAAQ,EAAAP,MAAA,wBAAAO,EAAAN,OAAA,GAAAK,EAAA,KACF,gBALsBwC,GAAA,OAAAzC,EAAAH,MAAA,KAAAC,UAAA,KAgBVmtC,EAA8B,eAAAlsC,EAAAhC,YAAAC,cAAAC,MAAG,SAAA2B,EAAOssC,GAAO,OAAAluC,cAAAG,MAAA,SAAA0B,GAAA,cAAAA,EAAAxB,KAAAwB,EAAAvB,MAAA,cAAAuB,EAAAvB,KAAA,EAC7CC,IAAIiB,KAAK2sC,IAAsC,iCAAmC,CAC7F7sC,KAAM4sC,IACL,KAAD,SAAArsC,EAAAnB,OAAA,SAAAmB,EAAAlB,MAAA,wBAAAkB,EAAAjB,OAAA,GAAAgB,EAAA,KACH,gBAJ0CwsC,GAAA,OAAArsC,EAAAlB,MAAA,KAAAC,UAAA,KAoB9ButC,EAAU,eAAA9gC,EAAAxN,YAAAC,cAAAC,MAAG,SAAAquC,EAAOC,GAAK,IAAA59B,EAAA,OAAA3Q,cAAAG,MAAA,SAAAquC,GAAA,cAAAA,EAAAnuC,KAAAmuC,EAAAluC,MAAA,OASnC,MALgB,6BAHbqQ,EAAalM,YAAU8pC,KAIV,gCAAf59B,GACe,mCAAfA,IAEAA,EAAa,2BACd69B,EAAAluC,KAAA,EAEYC,IAAIC,IACfoQ,IAAmC,+BAADC,OACHF,IAC/B,KAAD,SAAA69B,EAAA9tC,OAAA,SAAA8tC,EAAA7tC,MAAA,wBAAA6tC,EAAA5tC,OAAA,GAAA0tC,EAAA,KACF,gBAfsB1kC,GAAA,OAAA2D,EAAA1M,MAAA,KAAAC,UAAA,KAiBV2tC,EAAY,eAAAzgC,EAAAjO,YAAAC,cAAAC,MAAG,SAAAsE,EAAOG,GAAM,OAAA1E,cAAAG,MAAA,SAAAqE,GAAA,cAAAA,EAAAnE,KAAAmE,EAAAlE,MAAA,cAAAkE,EAAAlE,KAAA,EAC1BC,IAAIC,IACfoQ,IAAmC,yCAADC,OACOnM,IACzC,KAAD,SAAAF,EAAA9D,OAAA,SAAA8D,EAAA7D,MAAA,wBAAA6D,EAAA5D,OAAA,GAAA2D,EAAA,KACF,gBALwBsF,GAAA,OAAAmE,EAAAnN,MAAA,KAAAC,UAAA,KAQZ4tC,EAAmB,eAAAC,EAAA5uC,YAAAC,cAAAC,MAAG,SAAAuN,IAAA,OAAAxN,cAAAG,MAAA,SAAAuN,GAAA,cAAAA,EAAArN,KAAAqN,EAAApN,MAAA,cAAAoN,EAAApN,KAAA,EACpBC,IAAIC,IAAIoQ,IAAmC,0BAA2B,KAAD,SAAAlD,EAAAhN,OAAA,SAAAgN,EAAA/M,MAAA,wBAAA+M,EAAA9M,OAAA,GAAA4M,EAAA,KACnF,kBAF+B,OAAAmhC,EAAA9tC,MAAA,KAAAC,UAAA,KAInB8tC,EAAmC,eAAAC,EAAA9uC,YAAAC,cAAAC,MAAG,SAAAgO,EAAO0C,GAAU,OAAA3Q,cAAAG,MAAA,SAAAiO,GAAA,cAAAA,EAAA/N,KAAA+N,EAAA9N,MAAA,cAAA8N,EAAA9N,KAAA,EACrDC,IAAIC,IACfoQ,IAAmC,uDAADC,OACqBF,IACvD,KAAD,SAAAvC,EAAA1N,OAAA,SAAA0N,EAAAzN,MAAA,wBAAAyN,EAAAxN,OAAA,GAAAqN,EAAA,KACF,gBAL+C6gC,GAAA,OAAAD,EAAAhuC,MAAA,KAAAC,UAAA,KAwBnC8M,EAAoB,eAAAmhC,EAAAhvC,YAAAC,cAAAC,MAAG,SAAA+uC,IAAA,OAAAhvC,cAAAG,MAAA,SAAA8uC,GAAA,cAAAA,EAAA5uC,KAAA4uC,EAAA3uC,MAAA,cAAA2uC,EAAA3uC,KAAA,EACrBC,IAAIC,IAAIC,IAA+B,iCAAkC,KAAD,SAAAwuC,EAAAvuC,OAAA,SAAAuuC,EAAAtuC,MAAA,wBAAAsuC,EAAAruC,OAAA,GAAAouC,EAAA,KACtF,kBAFgC,OAAAD,EAAAluC,MAAA,KAAAC,UAAA,KAIpBouC,EAAiB,eAAAC,EAAApvC,YAAAC,cAAAC,MAAG,SAAAmvC,IAAA,IAAAvsC,EAAAwsC,EAAAvuC,UAAA,OAAAd,cAAAG,MAAA,SAAAmvC,GAAA,cAAAA,EAAAjvC,KAAAivC,EAAAhvC,MAAA,OAAmB,OAAZuC,EAAOwsC,EAAAhiC,OAAA,QAAAC,IAAA+hC,EAAA,GAAAA,EAAA,GAAG,CAAC,EAACC,EAAAhvC,KAAA,EACrCC,IAAIiB,KAAKf,IAA+B,gCAAkC,CACrFa,KAAMuB,IACL,KAAD,SAAAysC,EAAA5uC,OAAA,SAAA4uC,EAAA3uC,MAAA,wBAAA2uC,EAAA1uC,OAAA,GAAAwuC,EAAA,KACH,kBAJ6B,OAAAD,EAAAtuC,MAAA,KAAAC,UAAA,KAMjByuC,EAAoB,eAAAC,EAAAzvC,YAAAC,cAAAC,MAAG,SAAAwvC,EAAOvhC,GAAI,OAAAlO,cAAAG,MAAA,SAAAuvC,GAAA,cAAAA,EAAArvC,KAAAqvC,EAAApvC,MAAA,cAAAovC,EAAApvC,KAAA,EAChCC,IAAIC,IAAIC,IAAgC,uCAAwC,CAC3FkvC,sBAAuB,CACrBzhC,UAED,KAAD,SAAAwhC,EAAAhvC,OAAA,SAAAgvC,EAAA/uC,MAAA,wBAAA+uC,EAAA9uC,OAAA,GAAA6uC,EAAA,KACH,gBANgCG,GAAA,OAAAJ,EAAA3uC,MAAA,KAAAC,UAAA,I,kNC/GpBL,EAAiC,4BACjCmQ,EACX,qCAEWi/B,EAA2B,GAE3B1B,EACX,gCAKI2B,EACJ/gC,oWAAYghC,2CACZ,0DACIC,EACJjhC,oWAAYkhC,oCACZ,0DAIIC,EAASC,eAAe,wBACxBC,EAAarhC,oWAAYshC,sBAAwB,aAWjDp0B,EAAMlN,oWAAYmN,eAAiB,MAMnCo0B,EAAS,CACbvrB,KAAM,CAEJwrB,OAAQH,EACRI,WAnBFzhC,uBAoBE0hC,oBAjBF1hC,6BAkBE2hC,MAAO,CACLpQ,OAhBJvxB,oBAiBI4hC,MAAO,CACL,QACA,QACA,UACA,SACA,iCAEFC,eAAe,GAAD//B,OAAKq/B,GAAMr/B,OAAGqG,IAAasB,KAAKM,iBAAgB,KAC9D+3B,gBAAgB,GAADhgC,OAAKq/B,GAAMr/B,OAAGqG,IAAasB,KAAKQ,kBAAiB,KAChE83B,aAAc,SAGlBvwC,IAAK,CACHwwC,UAAW,CACT,CACE3uC,KAAM3B,EACNuwC,SArDNjiC,2BAsDMkiC,cAAc,WAAD,IAAAC,EAAAnxC,YAAAC,cAAAC,MAAE,SAAAC,IAAA,OAAAF,cAAAG,MAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAkD,GAAA,UAAAlD,EAAAE,KAAA,EAEqBykB,IAAKosB,iBAAgB,OAEvC,OAFuC/wC,EAAAgxC,GAAAhxC,EAAAO,KAClD0wC,aACAC,cAAWlxC,EAAAmxC,GAAAnxC,EAAAkD,GAAAuN,OAAA2gC,KAAApxC,EAAAkD,GAAAlD,EAAAgxC,IAAAhxC,EAAAM,OAAC,SAAD,CAFd+wC,cAAarxC,EAAAmxC,KAAA,wBAAAnxC,EAAAQ,OAAA,GAAAV,EAAA,KAIhB,yBAAAgxC,EAAArwC,MAAA,KAAAC,UAAA,EANa,IAQhB,CACEsB,KAAMwO,EACNogC,SAAUlB,EACVmB,cAAc,WAAD,IAAAS,EAAA3xC,YAAAC,cAAAC,MAAE,SAAAgB,IAAA,OAAAjB,cAAAG,MAAA,SAAAe,GAAA,cAAAA,EAAAb,KAAAa,EAAAZ,MAAA,cAAAY,EAAAoC,GAAA,UAAApC,EAAAZ,KAAA,EAEqBykB,IAAKosB,iBAAgB,OAEvC,OAFuCjwC,EAAAkwC,GAAAlwC,EAAAP,KAClD0wC,aACAC,cAAWpwC,EAAAqwC,GAAArwC,EAAAoC,GAAAuN,OAAA2gC,KAAAtwC,EAAAoC,GAAApC,EAAAkwC,IAAAlwC,EAAAR,OAAC,SAAD,CAFd+wC,cAAavwC,EAAAqwC,KAAA,wBAAArwC,EAAAN,OAAA,GAAAK,EAAA,KAIhB,yBAAAywC,EAAA7wC,MAAA,KAAAC,UAAA,EANa,IAQhB,CACEsB,KAjFmB,cAkFnB4uC,SAAU,4BACVC,cAAc,WAAD,IAAAU,EAAA5xC,YAAAC,cAAAC,MAAE,SAAAoB,IAAA,OAAArB,cAAAG,MAAA,SAAAoB,GAAA,cAAAA,EAAAlB,KAAAkB,EAAAjB,MAAA,cAAAiB,EAAAb,OAAA,SACN,CACL+wC,cAAc,UAAD5gC,OArEM,0CAsEpB,wBAAAtP,EAAAX,OAAA,GAAAS,EAAA,KACF,yBAAAswC,EAAA9wC,MAAA,KAAAC,UAAA,EAJa,IAMhB,CACEsB,KAAM+rC,EACN6C,SAAUhB,EACViB,cAAc,WAAD,IAAAW,EAAA7xC,YAAAC,cAAAC,MAAE,SAAA2B,IAAA,OAAA5B,cAAAG,MAAA,SAAA0B,GAAA,cAAAA,EAAAxB,KAAAwB,EAAAvB,MAAA,cAAAuB,EAAAyB,GAAA,UAAAzB,EAAAvB,KAAA,EAEqBykB,IAAKosB,iBAAgB,OAEvC,OAFuCtvC,EAAAuvC,GAAAvvC,EAAAlB,KAClD0wC,aACAC,cAAWzvC,EAAA0vC,GAAA1vC,EAAAyB,GAAAuN,OAAA2gC,KAAA3vC,EAAAyB,GAAAzB,EAAAuvC,IAAAvvC,EAAAnB,OAAC,SAAD,CAFd+wC,cAAa5vC,EAAA0vC,KAAA,wBAAA1vC,EAAAjB,OAAA,GAAAgB,EAAA,KAIhB,yBAAAgwC,EAAA/wC,MAAA,KAAAC,UAAA,EANa,MAUpB+wC,QAAS,CACPC,MAAO,CACLC,OAAO,iBAADlhC,OAAmBoL,GACzBs0B,OAAQH,KAKCE,K,iZCzGF0B,EAAc,SAAC5uC,GAAU,IAAD6uC,EAAAC,EAC7BC,EAA2B,QAAlBF,EAAO,OAAJ7uC,QAAI,IAAJA,OAAI,EAAJA,EAAM+uC,iBAAS,IAAAF,IAAI,GAC/BG,EAAyB,QAAjBF,EAAO,OAAJ9uC,QAAI,IAAJA,OAAI,EAAJA,EAAMgvC,gBAAQ,IAAAF,IAAI,GACnC,MAAO,GAAArhC,OAAGshC,EAAS,KAAAthC,OAAIuhC,GAAWhoB,MACpC,EAqBaioB,GATyBC,MASE,SAAClvC,GACvC,QAAY,OAAJA,QAAI,IAAJA,KAAMmvC,MAChB,GAoBsCC,aAAW,SAACljB,GAAK,MAAM,CAC3DmjB,KAAM,CACJ,UAAW,CACTzrB,MAAOsI,EAAMkB,QAAQjB,WAAWC,SAElC,uBAAwB,CACtBxI,MAAOsI,EAAMkB,QAAQjB,WAAWxI,UAElC,sBAAuB,CACrBC,MAAOsI,EAAMkB,QAAQjB,WAAWI,SAElC,UAAW,CACT3I,MAAOsI,EAAMkB,QAAQjB,WAAWI,SAElC,uBAAwB,CACtB3I,MAAOsI,EAAMkB,QAAQjB,WAAWxI,UAElC,2BAA4B,CAC1B,aAAc,CACZ2rB,YAAapjB,EAAMkB,QAAQjB,WAAWC,SAExC,mBAAoB,CAClBkjB,YAAapjB,EAAMkB,QAAQjB,WAAWG,OAExC,yBAA0B,CACxBgjB,YAAapjB,EAAMkB,QAAQjB,WAAWI,SAExC,0BAA2B,CACzB+iB,YAAapjB,EAAMkB,QAAQjB,WAAWxI,UAExC,sBAAuB,CACrBC,MAAOsI,EAAMkB,QAAQjB,WAAWI,WAItCgK,KAAM,CACJpW,KAAM+L,EAAMkB,QAAQjB,WAAWC,SAEjCmjB,OAAQ,CACN,UAAW,CACTC,WAAY,iBACZ3vB,UAAW,eAEb2vB,WAAY,kBACZC,SAAU,WAEb,IAE4BC,aAAW,SAACxjB,GACvC,MAAO,CACLmjB,KAAM,CACJ,UAAW,CACTzrB,MAAOsI,EAAMkB,QAAQjB,WAAWC,SAElC,uBAAwB,CACtBxI,MAAOsI,EAAMkB,QAAQjB,WAAWxI,UAElC,sBAAuB,CACrBC,MAAOsI,EAAMkB,QAAQjB,WAAWI,SAElC,aAAc,CACZ3I,MAAOsI,EAAMkB,QAAQjB,WAAWI,SAElC,UAAW,CACT3I,MAAOsI,EAAMkB,QAAQjB,WAAWI,SAElC,uBAAwB,CACtB3I,MAAOsI,EAAMkB,QAAQjB,WAAWxI,UAElC,2BAA4B,CAC1B,aAAc,CACZ2rB,YAAapjB,EAAMkB,QAAQjB,WAAWC,SAExC,mBAAoB,CAClBkjB,YAAapjB,EAAMkB,QAAQjB,WAAWG,OAExC,yBAA0B,CACxBgjB,YAAapjB,EAAMkB,QAAQjB,WAAWI,SAExC,0BAA2B,CACzB+iB,YAAapjB,EAAMkB,QAAQjB,WAAWxI,YAKhD,GArC6B+rB,CAqC1BC,KAEyBD,aAAW,SAACxjB,GAAK,MAAM,CACjDmjB,KAAM,CACJ,YAAa,CACXzrB,MAAOsI,EAAMkB,QAAQZ,SAASC,SAEhC7I,MAAOsI,EAAMkB,QAAQZ,SAASJ,SAEhCK,QAAS,CAAC,EACX,GAR2BijB,CAQxBE,KA/FG,IAiGM/nB,EAAgB,SAAChH,GAG5B,MADE,wJACQgvB,KAAKC,OAAOjvB,GAAOmB,cAC/B,EAEa8F,EAAmB,SAAC9oB,GAC/B,IAAM+wC,EAAe,OAAJ/wC,QAAI,IAAJA,OAAI,EAAJA,EAAMwkB,QAAQ,OAAQ,KAAKwD,OAE5C,MADsB,uCACD6oB,KAAKE,EAC5B,EA+EO,SAAS/rB,IACd,IAAMG,EAAgBlZ,OAAOC,SAASkZ,OACtC,GAAID,EAAe,CACjB,IAEMJ,EAFkB,IAAIO,gBAAgBH,GAET/mB,IAAI,cAEvC,GAAI2mB,EAAY,OAAOA,CACzB,CACF,CAkC0BisB,EAAA,GAAA1mB,YAAA0mB,EACvBC,IAAUC,QAAMC,EAAA,GAAA7mB,YAAA6mB,EACd3uC,IAAYG,aAAeH,IAAYG,cAAY2nB,YAAA6mB,EACnD3uC,IAAYC,QAAUD,IAAYC,SAAO6nB,YAAA6mB,EACzC3uC,IAAYY,KAAOZ,IAAYC,SAAO0uC,IAAA7mB,YAAA0mB,EAExCC,IAAUG,UAAQC,EAAA,GAAA/mB,YAAA+mB,EAChB7uC,IAAYG,aAAeH,IAAYG,cAAY2nB,YAAA+mB,EACnD7uC,IAAYC,QAAUD,IAAYC,SAAO6nB,YAAA+mB,EACzC7uC,IAAYO,cAAgBP,IAAYO,eAAaunB,YAAA+mB,EACrD7uC,IAAYY,KAAOZ,IAAYC,SAAO4uC,IA0BpC,SAASC,IAA6D,IAA3CtxB,EAAIthB,UAAAuM,OAAA,QAAAC,IAAAxM,UAAA,GAAAA,UAAA,GAAG,GAAI4hB,EAAM5hB,UAAAuM,OAAA,QAAAC,IAAAxM,UAAA,GAAAA,UAAA,GAAG,GACpD,OADgEA,UAAAuM,OAAA,QAAAC,IAAAxM,UAAA,IAAAA,UAAA,GAE5D2hB,IAAML,GAAMwhB,SAAS,KAAM,CACzB+P,QAAQ,GAAD9iC,OAAK6R,EAAM,YAClBkxB,QAAQ,GAAD/iC,OAAK6R,EAAM,eAClBmxB,SAAS,GAADhjC,OAAK6R,EAAM,WACnBoxB,QAAQ,GAADjjC,OAAK6R,EAAM,gBAClBqxB,SAAS,GAADljC,OAAK6R,EAAM,mBAErBD,IAAML,GAAMM,OAAOA,GAAU,eACnC,CAEO,SAAS4E,IACd,IAAMD,EAAchZ,OAAOC,SAASkZ,OAEpC,GAAKH,EAAL,CAEA,IAAMI,EAAkB,IAAIC,gBAAgBL,GAc5C,OAZuB2sB,MAAMC,KAAKxsB,EAAgBysB,WAAWC,QAAO,SAACC,EAAIpzC,GAAoB,IAADI,EAAA4iB,YAAAhjB,EAAA,GAAhBqzC,EAAGjzC,EAAA,GAAEuK,EAAKvK,EAAA,GASpF,MARY,eAARizC,IAIAD,GAHGA,EAGC,IAAAvjC,OAAQwjC,EAAG,KAAAxjC,OAAIlF,GAFf,IAAAkF,OAAQwjC,EAAG,KAAAxjC,OAAIlF,IAMhByoC,CACT,GAAG,GAdqB,CAiB1B,C,klBClWajE,EAAY,WAEvB,MADY,GAAAt/B,OAAMxC,OAAOC,SAASgmC,SAAQ,MAAAzjC,OAAKxC,OAAOC,SAASimC,KAEjE,EAEMrE,EAASC,KAAe,wBA8CjBjoB,GAJC,GAADrX,OAAKq/B,EAAM,0BAIU,CAChChnB,YAAa,cACbsrB,oBAAqB,sBACrBC,qBAAsB,uBACtB3rB,iBAAkB,mBAClBT,cAAe,gBACfF,cAAe,gBACfC,cAAe,gBACfssB,eAAgB,iBAChBnsB,gBAAiB,kBACjBosB,qBAAsB,uBACtBrmB,gBAAiB,kBACjBlF,gBAAiB,oBAwBNiqB,GAPHtkC,oWAAY6lC,0BAOG,CACvBC,SAAU,WACVrB,SAAU,WACVsB,WAAY,aACZC,YAAa,cACbC,SAAU,WACVC,QAAS,UACTC,UAAW,qBACX5B,OAAQ,YAYG1uC,GATuBuwC,EAAA,GAAAzoB,YAAAyoB,EACjC9B,EAAUwB,SAAW,YAAUnoB,YAAAyoB,EAC/B9B,EAAUG,SAAW,YAAU9mB,YAAAyoB,EAC/B9B,EAAUyB,WAAa,YAAUpoB,YAAAyoB,EACjC9B,EAAU2B,SAAW,YAAUtoB,YAAAyoB,EAC/B9B,EAAU4B,QAAU,WAASvoB,YAAAyoB,EAC7B9B,EAAUC,OAAS,WAGK,CACzBvuC,aAAc,eACdF,QAAS,UACTI,iBAAkB,mBAClBC,YAAa,cACbF,cAAe,aACfF,WAAY,aACZK,cAAe,gBACfK,KAAM,SAGK4vC,GAAyBC,EAAA,GAAA3oB,YAAA2oB,EACnCzwC,EAAYG,aAAe,mDAAiD2nB,YAAA2oB,EAC5EzwC,EAAYC,QAAU,+CAA6C6nB,YAAA2oB,EACnEzwC,EAAYM,YAAc,+BAA6BwnB,YAAA2oB,EACvDzwC,EAAYK,iBAAmB,+BAA6BynB,YAAA2oB,EAC5DzwC,EAAYI,cACX,gEAA8D0nB,YAAA2oB,EAC/DzwC,EAAYE,WACX,sDAAoD4nB,YAAA2oB,EACrDzwC,EAAYO,cAAgB,kCAAgCkwC,GAGlDC,EAAgB,CAC3BC,QAAS,UACTC,iBAAkB,iBAClBC,eAAgB,gBAChBC,kBAAmB,mBACnBC,mBAAoB,oBACpBC,cAAe,cACfC,eAAgB,gBAChBC,UAAW,aAcAC,GAFXhnC,oWAAYinC,sBAEW,qCA2BnBC,EACqB,0BADrBA,EAEkC,uCAFlCA,EAGS,cAHTA,EAKc,8BALdA,EAMW,aANXA,EAOQ,aAPRA,EAQW,gBAEJC,GAA+BC,EAAA,GAAAzpB,YAAAypB,EACzCvxC,EAAYG,aAAekxC,GAAoCvpB,YAAAypB,EAC/DvxC,EAAYC,QAAUoxC,GAAiDvpB,YAAAypB,EACvEvxC,EAAYM,YAAc+wC,GAAwBvpB,YAAAypB,EAClDvxC,EAAYK,iBAAmBgxC,GAA6BvpB,YAAAypB,EAC5DvxC,EAAYI,cAAgBixC,GAA0BvpB,YAAAypB,EACtDvxC,EAAYE,WAAamxC,GAAuBvpB,YAAAypB,EAChDvxC,EAAYO,cAAgB8wC,GAA0BE,GAmB5CC,GAhBkCC,IAAEC,OAC/CJ,GAYAnnC,oWAAYwnC,+BAIZxnC,oWAAYynC,kCAAoC,uBAYrCC,EAAkB,CAC7BC,cAAe,CACb,CACEt0C,KAAMgzC,EAA0BxwC,EAAYG,cAC5C4G,MAAO/G,EAAYG,aACnB4xC,SAAUtD,EAAUG,SACpBoD,WAAYhyC,EAAYG,aACxB6uB,SAAU,WACVpN,KAAM,YACNqwB,UAAW,sBACXC,WAAY,CACVC,OAAO,EACPC,aAAa,GAEfC,IAAK,uDACLC,QAAS,gCAEX,CACE90C,KAAMgzC,EAA0BxwC,EAAYC,SAC5C8G,MAAOrG,YAAoBV,EAAYC,SACvC8xC,SAAUtD,EAAUG,SACpBoD,WAAYhyC,EAAYC,QACxB+uB,SAAU,WACVpN,KAAM,YACNqwB,UAAW,sBACXC,WAAY,CACVC,OAAO,EACPC,aAAa,GAEfC,IAAK,uDACLC,QAAS,iCAGbC,QAAS,CACP,CACE/0C,KAAMgzC,EAA0BxwC,EAAYI,eAC5C2G,MAAO/G,EAAYG,aACnB4xC,SAAUtD,EAAUC,OACpBsD,WAAYhyC,EAAYI,cACxB4uB,SAAU,YACVpN,KAAM,YACNqwB,UAAW,sBACXC,WAAY,CACVC,OAAO,EACPC,aAAa,GAEfC,IAAK,oCACLC,QAAQ,kCAEV,CACE90C,KAAMgzC,EAA0BxwC,EAAYE,YAC5C6G,MAAOrG,YAAoBV,EAAYC,SACvC8xC,SAAUtD,EAAUC,OACpBsD,WAAYhyC,EAAYE,WACxB8uB,SAAU,YACVpN,KAAM,YACNqwB,UAAW,sBACXC,WAAY,CACVC,OAAO,EACPC,aAAa,GAEfC,IAAK,oCACLC,QAAQ,oCAsBDE,EAAc,CACzBC,cAAe,gBACfh/B,QAAS,UACTi/B,WAAY,aAWDC,GAPU3yC,EAAYG,aAChBH,EAAYC,QACVD,EAAYI,cACZJ,EAAYE,WACVF,EAAYC,QAGO2yC,EAAA,GAAA9qB,YAAA8qB,EACvC5yC,EAAYG,aAAe,CAC1B0yC,SAAU7yC,EAAYG,aACtB4xC,SAAUtD,EAAUG,WACrB9mB,YAAA8qB,EACA5yC,EAAYC,QAAU,CACrB4yC,SAAUnyC,YAAoBV,EAAYC,SAC1C8xC,SAAUtD,EAAUG,WACrB9mB,YAAA8qB,EACA5yC,EAAYI,cAAgB,CAC3ByyC,SAAU7yC,EAAYG,aACtB4xC,SAAUtD,EAAUC,SACrB5mB,YAAA8qB,EACA5yC,EAAYE,WAAa,CACxB2yC,SAAUnyC,YAAoBV,EAAYC,SAC1C8xC,SAAUtD,EAAUC,SACrB5mB,YAAA8qB,EACA5yC,EAAYO,cAAgB,CAC3BsyC,SAAUnyC,YAAoBV,EAAYC,SAC1C8xC,SAAUtD,EAAUG,WACrBgE,GAaUE,EAAiB,CAC5BC,WAAY,aACZC,YAAa,cACbC,aAAc,eACdC,kBAAmB,qBAGRC,GAAsBC,EAAA,GAAAtrB,YAAAsrB,EAChCN,EAAeC,WAAa,WAASjrB,YAAAsrB,EACrCN,EAAeE,YAAc,UAAQlrB,YAAAsrB,EACrCN,EAAeG,aAAe,UAAQnrB,YAAAsrB,EACtCN,EAAeI,kBAAoB,UAAQE,GAkBjCC,GAf4BC,EAAA,GAAAxrB,YAAAwrB,EACtCR,EAAeE,YACd,wDAAiDlrB,YAAAwrB,EAClDR,EAAeG,aACd,wDAAiDnrB,YAAAwrB,EAClDR,EAAeI,kBACd,wDAGwCK,EAAA,GAAAzrB,YAAAyrB,EACzCvzC,EAAYG,aAAe,gBAAc2nB,YAAAyrB,EACzCvzC,EAAYY,KAAO,mBAAiBknB,YAAAyrB,EACpCvzC,EAAYO,cAAgB,iBAGJ,CACzB,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA,uCACA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","file":"static/js/main.0495d0f3.chunk.js","sourcesContent":["import { API } from 'aws-amplify';\nimport { USER_API_GATEWAY_ENDPOINT_NAME } from '../aws-exports';\n\nexport const getReferralPrograms = async () => {\n return await API.get(USER_API_GATEWAY_ENDPOINT_NAME, `/api/referrer/programs`);\n};\n\nexport const getShareAndEarnConfig = async () => {\n return await API.get(USER_API_GATEWAY_ENDPOINT_NAME, `/api/referrer/share-earn-conf`);\n};\n\nexport const postReferralCode = async (body) => {\n return await API.post(USER_API_GATEWAY_ENDPOINT_NAME, `/api/referred/v2/push-referral-code`, {\n body,\n });\n};\n\nexport const getReferrarInfo = async () => {\n return await API.get(USER_API_GATEWAY_ENDPOINT_NAME, `/api/referrer/info`);\n};\n\nexport const getAllReferrals = async () => {\n return await API.get(USER_API_GATEWAY_ENDPOINT_NAME, '/api/referrer/referrals');\n};\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport {\n updateMyProfile,\n getMyProfile,\n getOnboardingInfo,\n updateOnboardingInfo,\n} from \"../services/userApiService\";\n\nconst initialState = {\n isLoggedIn: false,\n loggedInUser: null,\n profileInfo: null,\n};\n\nconst authSlice = createSlice({\n name: \"authReducer\",\n initialState,\n reducers: {\n updateAuthStatus: (state, action) => {\n state.isLoggedIn = action.payload;\n },\n setLoggedInUser: (state, action) => {\n state.loggedInUser = action.payload;\n },\n setProfileInfo: (state, action) => {\n state.profileInfo = action.payload;\n },\n },\n});\n\nexport const { updateAuthStatus, setLoggedInUser, setProfileInfo } =\n authSlice.actions;\n\nexport function updateUser(userObj) {\n return async (dispatch) => {\n try {\n const updatedUser = await updateMyProfile(userObj);\n dispatch(setLoggedInUser(updatedUser));\n } catch (error) {\n console.error(error);\n }\n };\n}\n\nexport function loadUser() {\n return async (dispatch) => {\n try {\n const user = await getMyProfile();\n dispatch(setLoggedInUser(user));\n dispatch(updateAuthStatus(true));\n // dispatch(getProfileInfo());\n } catch (error) {\n console.error(error);\n }\n };\n}\n\nexport function loadProfileInfo() {\n return async (dispatch) => {\n try {\n const user = await getMyProfile();\n dispatch(setLoggedInUser(user));\n } catch (error) {\n console.error(error);\n }\n };\n}\n\nexport function getProfileInfo() {\n return async (dispatch) => {\n try {\n const profileInfo = await getOnboardingInfo();\n dispatch(setProfileInfo(profileInfo));\n } catch (error) {\n console.error(error);\n }\n };\n}\n\nexport function updateProfileInfo(updateObj) {\n return async (dispatch, getState) => {\n try {\n const updatedInfo = await updateOnboardingInfo(updateObj);\n dispatch(\n setProfileInfo({ ...profileInfoSelector(getState()), ...updatedInfo })\n );\n } catch (error) {\n console.error(error);\n }\n };\n}\n\nexport const loggedInUserSelector = (state) => state.authReducer.loggedInUser;\nexport const profileInfoSelector = (state) => state.authReducer.profileInfo;\nexport const woolfTokenSelector = (state) => state.authReducer.woolfToken;\n\nexport default authSlice.reducer;\n","import { API } from 'aws-amplify';\nimport { USER_API_GATEWAY_ENDPOINT_NAME } from '../aws-exports';\n\nexport const getAllJobs = async (body) => {\n return await API.post(USER_API_GATEWAY_ENDPOINT_NAME, `/api/job-board/fetch`, {\n body,\n });\n};\n\nexport const getSavedJobs = async (body) => {\n return await API.post(USER_API_GATEWAY_ENDPOINT_NAME, `/api/user-job-board/fetch`, {\n body,\n });\n};\n\nexport const postSavedJob = async (jobId) => {\n return await API.post(USER_API_GATEWAY_ENDPOINT_NAME, `/api/user-job-board/save`, {\n body: { jobId },\n });\n};\n\nexport const removedSavedJob = async (jobId) => {\n return await API.post(USER_API_GATEWAY_ENDPOINT_NAME, `/api/user-job-board/remove`, {\n body: { jobId },\n });\n};\n\nexport const getSavedJobsCount = async () => {\n return await API.get(USER_API_GATEWAY_ENDPOINT_NAME, `/api/user-job-board/total-counts`);\n};\n\nexport const getJobParams = async () => {\n return await API.get(USER_API_GATEWAY_ENDPOINT_NAME, `/api/job-board/filter-params`);\n};\n\nexport const getJobById = async (jobId) => {\n return await API.get(\n USER_API_GATEWAY_ENDPOINT_NAME,\n `/api/job-board/fetch/by-job-id?jobId=${jobId}`\n );\n};\n\nexport const getJobsAddedCount = async () => {\n return await API.get(USER_API_GATEWAY_ENDPOINT_NAME, `/api/job-board/no-of-jobs-added`);\n};\n","import { COURSE_TYPE, PLAN_TYPE } from 'src/constants';\n\nexport function getCourse(course) {\n let selectedCourse = '';\n switch (course) {\n case 'web3':\n case COURSE_TYPE.WEB_DEV:\n case COURSE_TYPE.MASTERS_CS:\n selectedCourse = 'full-stack-web-development-with-web3';\n break;\n case COURSE_TYPE.DATA_SCIENCE:\n case COURSE_TYPE.MASTERS_DS_AS:\n selectedCourse = 'full-stack-data-science';\n break;\n case COURSE_TYPE.DATA_ENGINEERING:\n selectedCourse = 'full-stack-data-engineering';\n break;\n case COURSE_TYPE.DS_BOOTCAMP:\n selectedCourse = 'dsBootcamp';\n break;\n case 'ugDiplomaCS':\n case COURSE_TYPE.UG_DIPLOMA_CS:\n selectedCourse = 'ugDiplomaCS';\n break;\n default:\n selectedCourse = 'full-stack-data-science';\n break;\n }\n return selectedCourse;\n}\n\nexport function getCourseForRouting(course) {\n let selectedCourse = '';\n switch (course) {\n case COURSE_TYPE.WEB_DEV:\n selectedCourse = 'full-stack-web-development';\n break;\n case COURSE_TYPE.DATA_SCIENCE:\n selectedCourse = 'full-stack-data-science';\n break;\n case COURSE_TYPE.DATA_ENGINEERING:\n selectedCourse = 'full-stack-data-engineering';\n break;\n case COURSE_TYPE.DS_BOOTCAMP:\n selectedCourse = 'dsBootcamp';\n break;\n case COURSE_TYPE.MASTERS_DS_AS:\n selectedCourse = 'masters-in-data-science';\n break;\n case COURSE_TYPE.MASTERS_CS:\n selectedCourse = 'masters-in-computer-science';\n break;\n case COURSE_TYPE.UG_DIPLOMA_CS:\n selectedCourse = 'ug-diploma-in-computer-science';\n break;\n default:\n selectedCourse = 'full-stack-data-science';\n break;\n }\n return selectedCourse;\n}\n\nexport function returnCourseNameAccToCourseAndPlan(course, plan) {\n if (course === COURSE_TYPE.WEB3 && plan === PLAN_TYPE.PRO_LIVE) {\n return 'Certification in Full Stack Web Development';\n } else if (course === COURSE_TYPE.DATA_SCIENCE && plan === PLAN_TYPE.PRO_LIVE) {\n return 'Certification in Full Stack Data Science and AI';\n } else if (course === COURSE_TYPE.WEB3 && plan === PLAN_TYPE.MASTER) {\n return 'Masters in Computer Science : Software Engineering';\n } else if (course === COURSE_TYPE.DATA_SCIENCE && plan === PLAN_TYPE.MASTER) {\n return 'Masters in CS : Data Science and Artificial Intelligence';\n } else {\n return 'Certification in Full Stack Data Science and AI';\n }\n}\n\nexport function returnCourseName(course) {\n let selectedCourse = '';\n switch (course) {\n case COURSE_TYPE.WEB_DEV:\n selectedCourse = 'Certification in Full Stack Web Development';\n break;\n case COURSE_TYPE.DATA_SCIENCE:\n selectedCourse = 'Certification in Full Stack Data Science and AI';\n break;\n case COURSE_TYPE.DATA_ENGINEERING:\n selectedCourse = 'Full Stack Data Engineering';\n break;\n case COURSE_TYPE.DS_BOOTCAMP:\n selectedCourse = 'Ds Bootcamp';\n break;\n case COURSE_TYPE.MASTERS_DS_AS:\n selectedCourse = 'Masters in CS : Data Science and Artificial Intelligence';\n break;\n case COURSE_TYPE.MASTERS_CS:\n selectedCourse = 'Masters in Computer Science : Software Engineering';\n break;\n case COURSE_TYPE.UG_DIPLOMA_CS:\n selectedCourse = 'UG Diploma in Computer Science';\n break;\n default:\n selectedCourse = 'Certification in Full Stack Data Science and AI';\n break;\n }\n return selectedCourse;\n}\n\nexport function returnCourseCamelCaseName(course) {\n switch (course) {\n case COURSE_TYPE.WEB_DEV:\n return 'web3';\n case COURSE_TYPE.DATA_SCIENCE:\n return 'dataScience';\n case COURSE_TYPE.DS_BOOTCAMP:\n return 'dsBootcamp';\n case COURSE_TYPE.DATA_ENGINEERING:\n return 'dataEngineering';\n case COURSE_TYPE.MASTERS_DS_AS:\n return 'mastersDs';\n case COURSE_TYPE.MASTERS_CS:\n return 'mastersCS';\n case 'ugDiplomaCS':\n case COURSE_TYPE.UG_DIPLOMA_CS:\n return 'ugDiplomaCS';\n case 'web3':\n return 'web3';\n default:\n return 'dataScience';\n }\n}\n\nexport function returnCourseApiName(course) {\n if (course === COURSE_TYPE.WEB_DEV) {\n return 'web3';\n }\n return course;\n}\n\nexport function returnCourseNameFromCamelCase(course) {\n switch (course) {\n case 'web3':\n return 'Certification in Full Stack Web Development';\n case 'dataScience':\n return 'Certification in Full Stack Data Science and AI';\n case 'dsBootcamp':\n return 'Ds Bootcamp';\n case 'dataEngineering':\n return 'Full Stack Data Engineering';\n case 'mastersDs':\n return 'Masters in CS : Data Science and Artificial Intelligence';\n case 'mastersCS':\n return 'Masters in CS : Data Science and Artificial Intelligence';\n case 'ugDiplomaCS':\n return 'UG Diploma in Computer Science';\n default:\n return 'Certification in Full Stack Data Science and AI';\n }\n}\n\nexport function returnActualCourseNameForApi(course) {\n switch (course) {\n case COURSE_TYPE.MASTERS_DS_AS:\n return COURSE_TYPE.DATA_SCIENCE;\n case COURSE_TYPE.MASTERS_CS:\n case COURSE_TYPE.WEB_DEV:\n return COURSE_TYPE.WEB3;\n default:\n return course;\n }\n}\n\nexport function returnRespectiveMastersCourse(course) {\n switch (course) {\n case COURSE_TYPE.DATA_SCIENCE:\n return COURSE_TYPE.MASTERS_DS_AS;\n case COURSE_TYPE.WEB_DEV:\n case COURSE_TYPE.WEB3:\n return COURSE_TYPE.MASTERS_CS;\n default:\n return course;\n }\n}\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst courseSlice = createSlice({\n name: 'courseReducer',\n initialState: {\n courseSelected: null,\n userSelectedCourses: [],\n popupStatus: false,\n popupStatusMobile: false,\n },\n reducers: {\n setCourseSelected: (state, action) => {\n state.courseSelected = action.payload;\n },\n setUserSelectedCourses: (state, action) => {\n state.userSelectedCourses = action.payload;\n },\n setPopupStatus: (state, action) => {\n state.popupStatus = action.payload;\n },\n setPopupStatusMobile: (state, action) => {\n state.popupStatusMobile = action.payload;\n },\n },\n});\n\nexport const { setCourseSelected, setUserSelectedCourses, setPopupStatus, setPopupStatusMobile } =\n courseSlice.actions;\n\nexport default courseSlice.reducer;\n\nexport const courseSelectedSelector = (state) => state.courseReducer.courseSelected;\n\nexport const userSelectedCoursesSelector = (state) => state.courseReducer.userSelectedCourses;\n\nexport const popUpStatus = (state) => state.courseReducer.popupStatus;\n\nexport const popupStatusMobile = (state) => state.courseReducer.popupStatusMobile;\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport _ from \"lodash\";\nimport { COURSE_TYPE, PLAN_TYPE } from \"../constants\";\nimport {\n returnActualCourseNameForApi,\n returnCourseCamelCaseName,\n} from \"../services/getcourse\";\nimport {\n checkSubscription,\n fetchUserPerformanceData,\n fetchUserPerformanceHoverboxData,\n getOnboardingData,\n} from \"../services/userApiService\";\n\nconst initialState = {\n subscriptionDetails: null,\n onBoardingData: null,\n userPerformance: null,\n userPerformanceHoverbox: null,\n paymentCompleted: null,\n profileOnboardingData: {\n jobTitles: [],\n companies: [],\n educationStream: [],\n degree: [],\n },\n hideSupportWidget: false,\n supportWidgetClass: \"\",\n onboardingCourse: null,\n isPhoneVerified: false,\n onboardingLoaded: false,\n};\n\nconst userSubscriptionSlice = createSlice({\n name: \"userSubscriptionReducer\",\n initialState,\n reducers: {\n setUserSubscription: (state, action) => {\n state.subscriptionDetails = action.payload;\n },\n setUserOnboardingData: (state, action) => {\n state.onBoardingData = action.payload;\n },\n setUserPerformance: (state, action) => {\n state.userPerformance = action.payload;\n },\n setUserPerformanceHoverbox: (state, action) => {\n state.userPerformanceHoverbox = action.payload;\n },\n setPaymentCompleted: (state, action) => {\n state.paymentCompleted = action.payload;\n },\n setProfileOnboardingData: (state, action) => {\n state.profileOnboardingData = action.payload;\n },\n setHideSupportWidget: (state, action) => {\n state.hideSupportWidget = action.payload;\n },\n setSupportWidgetClass: (state, action) => {\n state.supportWidgetClass = action.payload;\n },\n setOnboardingCourse: (state, action) => {\n state.onboardingCourse = action.payload;\n },\n setIsPhoneVerified: (state, action) => {\n state.isPhoneVerified = action.payload;\n },\n setOnboardingLoaded: (state, action) => {\n state.onboardingLoaded = action.payload;\n },\n },\n});\n\nexport const {\n setUserSubscription,\n setUserOnboardingData,\n setUserPerformance,\n setUserPerformanceHoverbox,\n setPaymentCompleted,\n setProfileOnboardingData,\n setHideSupportWidget,\n setSupportWidgetClass,\n setOnboardingCourse,\n setIsPhoneVerified,\n setOnboardingLoaded,\n} = userSubscriptionSlice.actions;\n\nexport const userSubscriptionSelector = (state) =>\n state.userSubscriptionReducer.subscriptionDetails;\n\nexport const isPhoneVerified = (state) =>\n state.userSubscriptionReducer.isPhoneVerified;\n\nexport const userDataScienceSubscription = (state) =>\n state.userSubscriptionReducer.subscriptionDetails[COURSE_TYPE.DATA_SCIENCE] ||\n {};\nexport const userWeb3Subscription = (state) =>\n state.userSubscriptionReducer.subscriptionDetails[COURSE_TYPE.WEB_DEV];\n\nexport const onboardingSelector = (state) =>\n state.userSubscriptionReducer.onBoardingData;\nexport const onboardingCourseSelector = (state) =>\n state.userSubscriptionReducer.onboardingCourse;\n\nexport function fetchUserSubscription({ forced = true } = { forced: true }) {\n return async (dispatch, getState) => {\n try {\n const existingUserSubscription = userSubscriptionSelector(getState());\n if (forced || !existingUserSubscription) {\n const userSubscription = await checkSubscription();\n const userSubObject = {};\n userSubscription.map(\n (subscription) =>\n (userSubObject[subscription.courseType] = subscription)\n );\n dispatch(setUserSubscription(userSubObject));\n return userSubObject;\n }\n } catch (error) {\n console.error(error);\n }\n };\n}\n\nexport function upsertUserSubscription(newSubscription) {\n return (dispatch, getState) => {\n try {\n const existingUserSubscription = {\n ...userSubscriptionSelector(getState()),\n };\n if (newSubscription.planType !== PLAN_TYPE.NEW_USER) {\n existingUserSubscription[newSubscription.courseType] = newSubscription;\n dispatch(setUserSubscription(existingUserSubscription));\n }\n } catch (error) {\n console.error(error);\n }\n };\n}\n\nconst sortPerformanceData = (data, track) => {\n const cloneData = _.cloneDeep(data);\n const moduleSlugs =\n track?.learn_modules?.map((i) => i?.attributes?.name) ?? [];\n const sortedData = [...cloneData?.modulesData].sort((a, b) => {\n const slugA = a?.name ?? \"\";\n const slugB = b?.name ?? \"\";\n const indexA = moduleSlugs.indexOf(slugA);\n const indexB = moduleSlugs.indexOf(slugB);\n return indexA - indexB;\n });\n cloneData.modulesData = sortedData;\n return cloneData;\n};\n\nexport function getUserPerformance(courseData) {\n return async (dispatch, getState) => {\n try {\n const userSubscription =\n getState().userSubscriptionReducer.subscriptionDetails;\n const courseSelected = Object.keys(userSubscription)?.[0];\n const actualCourseSelected = getState().courseReducer?.courseSelected;\n const modifiedCourse = returnActualCourseNameForApi(\n actualCourseSelected || courseSelected\n );\n const data = await fetchUserPerformanceData({\n course: returnCourseCamelCaseName(modifiedCourse),\n id: courseData?.courseId,\n });\n const sortedData =\n sortPerformanceData(data, courseData?.FOUNDATION_TRACK) ?? data ?? {};\n dispatch(setUserPerformance(sortedData));\n } catch (error) {\n console.error(error);\n }\n };\n}\n\nexport function getUserPerformanceHoverbox() {\n return async (dispatch, getState) => {\n try {\n const userSubscription =\n getState().userSubscriptionReducer.subscriptionDetails;\n const courseSelected = Object.keys(userSubscription)?.[0];\n const actualCourseSelected = getState().courseReducer?.courseSelected;\n const courseId = getState().learnTabReducer.courseData?.courseId;\n const modifiedCourse = returnActualCourseNameForApi(\n actualCourseSelected || courseSelected\n );\n const data = await fetchUserPerformanceHoverboxData({\n course: returnCourseCamelCaseName(modifiedCourse),\n id: courseId,\n });\n dispatch(setUserPerformanceHoverbox(data));\n } catch (error) {\n console.error(error);\n }\n };\n}\n\nexport function getOnboarding() {\n return async (dispatch, getState) => {\n try {\n console.log(\"hit API\");\n const data = await getOnboardingData();\n dispatch(setUserOnboardingData(data));\n dispatch(setOnboardingLoaded(true));\n return data;\n } catch (error) {\n console.error(error);\n dispatch(setUserOnboardingData(null));\n dispatch(setOnboardingLoaded(true));\n }\n };\n}\n\nexport default userSubscriptionSlice.reducer;\n","import { getRandom } from '../utils';\nimport { memo } from 'react';\nimport Lottie from 'lottie-react';\nimport logo from './almabetterLoader.json';\nimport { CircularProgress } from '@mui/material';\n\nconst Loader = () => {\n return (\n
\n
\n \n
\n
\n );\n};\n\nexport default Loader;\n\nconst LoadingCircle = ({ iconStyle }) => (\n \n \n \n \n);\n\nconst AlmabetterDesign = () => {\n const text = [\n 'Doing alchemy..',\n 'Creating magic..',\n 'Casting spells..',\n 'Preparing playground..',\n 'Doing science..',\n ];\n return (\n
\n \n

{getRandom(text)}

\n
\n );\n};\n\nexport const DefaultLoadingCenteredCircle = (props) => {\n return (\n
\n \n
\n );\n};\n\nexport const LoadingAlmabetterDesign = memo(AlmabetterDesign);\n","import { createSlice } from '@reduxjs/toolkit';\nimport { COURSE_TYPE } from 'src/constants';\nimport { returnCourseApiName, returnRespectiveMastersCourse } from 'src/services/getcourse';\nimport { fetchCampaignStripBanner, getFreeUserFaq } from 'src/services/userApiService';\nimport { returnActualCourseNameForApi } from '../services/getcourse';\nimport {\n getAllEvents,\n getCommunityUpdates,\n getEventBookings,\n getMentors,\n getStories,\n getUpcomingClasses,\n registerEvent,\n getCommunityUpdatesForEnrolledUsers,\n getUpcomingDemoClass,\n getMastersCourseData,\n} from '../services/homeTabApiService';\n\nconst homeSlice = createSlice({\n name: 'homeReducer',\n initialState: {\n upcomingClasses: null,\n courseData: null,\n mentors: null,\n events: null,\n successStories: null,\n hideScrollbar: false,\n loadData: false,\n eventsData: null,\n userFAQ: null,\n communityUpdates: null,\n communityUpdatesForEnrolledUsers: null,\n coupon: {\n status: false,\n value: null,\n },\n mastersCourseData: null,\n ugCourseData: null,\n openCallBack: false,\n demoClass: null,\n customStripBanner: null,\n },\n reducers: {\n setUpcomingClasses: (state, action) => {\n state.upcomingClasses = action.payload;\n },\n updateMentors: (state, action) => {\n state.mentors = action.payload;\n },\n getEvents: (state, action) => {\n state.events = action.payload;\n },\n setSuccessStories: (state, action) => {\n state.successStories = action.payload;\n },\n setHideScrollbar: (state, action) => {\n state.hideScrollbar = action.payload;\n },\n setLoadData: (state, action) => {\n state.loadData = action.payload;\n },\n resetHomeData: (state, action) => {\n state.upcomingClasses = null;\n state.mentors = null;\n state.events = null;\n state.successStories = null;\n state.eventsData = null;\n },\n setEventsData: (state, action) => {\n state.eventsData = action.payload;\n },\n setUserFAQ: (state, action) => {\n state.userFAQ = action.payload;\n },\n setCommunityUpdates: (state, action) => {\n state.communityUpdates = action.payload;\n },\n setCommunityUpdatesForEnrolledUsers: (state, action) => {\n state.communityUpdatesForEnrolledUsers = action.payload;\n },\n setCoupon: (state, action) => {\n state.coupon = action.payload;\n },\n setMastersCourseData: (state, action) => {\n state.mastersCourseData = action.payload;\n },\n setUgCourseData: (state, action) => {\n state.ugCourseData = action.payload;\n },\n setOpenCallBack: (state, action) => {\n state.openCallBack = action.payload;\n },\n setDemoClass: (state, action) => {\n state.demoClass = action.payload;\n },\n setCustomStripBanner: (state, action) => {\n state.customStripBanner = action.payload;\n },\n },\n});\n\nexport const {\n setCustomStripBanner,\n setDemoClass,\n setUpcomingClasses,\n setHideScrollbar,\n updateMentors,\n getEvents,\n setSuccessStories,\n resetHomeData,\n setLoadData,\n setEventsData,\n setUserFAQ,\n setCommunityUpdates,\n setCommunityUpdatesForEnrolledUsers,\n setCoupon,\n setMastersCourseData,\n setUgCourseData,\n setOpenCallBack,\n} = homeSlice.actions;\n\nexport const getFAQ = (state) => state.homeReducer.userFAQ;\nexport const communityUpdates = (state) => state.homeReducer.communityUpdates;\nexport const communityUpdatesForEnrolledUsers = (state) =>\n state.homeReducer.communityUpdatesForEnrolledUsers;\nexport const getCoupon = (state) => state.homeReducer.coupon;\nexport const getMastersCourseDataSelector = (state) => state.homeReducer.mastersCourseData;\n\nexport const getUgCourseData = (state) => state.homeReducer.ugCourseData;\n\nexport const fetchUserFaq = () => {\n return async (dispatch) => {\n try {\n const result = await getFreeUserFaq();\n dispatch(setUserFAQ(result));\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport const fetchCommunityUpdates = () => {\n return async (dispatch, getState) => {\n try {\n const data = await getCommunityUpdates();\n const mappedData = data?.map((singleDataObject, index) => {\n return { ...singleDataObject, isOnline: Math.random() > 0.5 };\n });\n dispatch(setCommunityUpdates(mappedData));\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport const fetchCommunityUpdatesForEnrolledUsers = () => {\n return async (dispatch, getState) => {\n try {\n const userSubscription = getState().userSubscriptionReducer.subscriptionDetails;\n const courseSelected = Object.keys(userSubscription)[0];\n const actualCourseSelected = getState().courseReducer.courseSelected;\n const courseName = returnCourseApiName(actualCourseSelected || courseSelected);\n const modifiedCourse = returnActualCourseNameForApi(courseName);\n const data = await getCommunityUpdatesForEnrolledUsers(modifiedCourse);\n const mappedData = data?.map((singleDataObject, index) => {\n return { ...singleDataObject, isOnline: Math.random() > 0.5 };\n });\n dispatch(setCommunityUpdatesForEnrolledUsers(mappedData));\n } catch (err) {\n console.error(err);\n }\n };\n};\n\nexport const upcomingClasses = () => {\n return async (dispatch, getState) => {\n try {\n const userSubscription = getState().userSubscriptionReducer.subscriptionDetails;\n const courseSelected = Object.keys(userSubscription)[0];\n const actualCourseSelected = getState().courseReducer.courseSelected;\n const courseName = returnCourseApiName(actualCourseSelected || courseSelected);\n const modifiedCourse = returnActualCourseNameForApi(courseName);\n const cohortDetails = userSubscription[modifiedCourse]?.cohort?.name;\n if (cohortDetails) {\n const result = await getUpcomingClasses(cohortDetails);\n dispatch(setUpcomingClasses(result));\n }\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport const getMentorsData = () => {\n return async (dispatch, getState) => {\n try {\n const userSubscription = getState().userSubscriptionReducer.subscriptionDetails;\n const courseSelected = Object.keys(userSubscription)[0];\n const actualCourseSelected = getState().courseReducer.courseSelected;\n\n const modifiedCourse = returnActualCourseNameForApi(actualCourseSelected || courseSelected);\n\n const result = await getMentors(modifiedCourse);\n\n dispatch(updateMentors(result));\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport const fetchEvents = () => {\n return async (dispatch, getState) => {\n try {\n const userSubscription = getState().userSubscriptionReducer.subscriptionDetails;\n const courseSelected = Object.keys(userSubscription)[0];\n const actualCourseSelected = getState().courseReducer.courseSelected;\n const modifiedCourse = returnCourseApiName(actualCourseSelected || courseSelected);\n\n const isProLiveSubscription = userSubscription?.[modifiedCourse]?.planType === 'pro_live';\n const subscriptionCourse = userSubscription?.[modifiedCourse]?.courseType;\n\n const isUgSubscription =\n isProLiveSubscription &&\n userSubscription?.[modifiedCourse]?.courseType === COURSE_TYPE.UG_DIPLOMA_CS;\n\n if (isUgSubscription) return;\n\n const finalCourse = isProLiveSubscription\n ? returnRespectiveMastersCourse(subscriptionCourse)\n : modifiedCourse;\n\n const result = await getAllEvents(finalCourse);\n if (result.length) {\n result.sort(function compare(a, b) {\n const dateA = new Date(a?.attributes?.startTime);\n const dateB = new Date(b?.attributes?.startTime);\n const dateATime = dateA.getTime();\n const dateBTime = dateB.getTime();\n if (!isNaN(dateATime) && !isNaN(dateBTime)) {\n return dateA - dateB;\n } else if (!isNaN(dateATime)) {\n return -1;\n } else if (!isNaN(dateBTime)) {\n return 1;\n } else {\n return 0;\n }\n });\n }\n dispatch(setEventsData(result));\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport const getSuccessStroies = () => {\n return async (dispatch, getState) => {\n try {\n const userSubscription = getState().userSubscriptionReducer.subscriptionDetails;\n const courseSelected = Object.keys(userSubscription)[0];\n const actualCourseSelected = getState().courseReducer.courseSelected;\n const modifiedCourse = returnActualCourseNameForApi(actualCourseSelected || courseSelected);\n const result = await getStories(modifiedCourse);\n dispatch(setSuccessStories(result));\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport const fetchMastersData = (slug) => {\n return async (dispatch) => {\n try {\n const courseData = await getMastersCourseData(slug);\n dispatch(setMastersCourseData(courseData));\n } catch (e) {\n console.error(e);\n }\n };\n};\n\nexport const fetchUpcomingDemoClass = (forced = false) => {\n return async (dispatch, getState) => {\n try {\n const { demoClass } = getState().homeReducer;\n if (demoClass && !forced) return;\n const demoClassList = await getUpcomingDemoClass();\n dispatch(setDemoClass(demoClassList));\n } catch (error) {\n console.error('[UPCOMING DEMO CLASS ERROR]', error);\n }\n };\n};\n\nexport const fetchCustomStripBanner = (forced = false) => {\n return async (dispatch, getState) => {\n try {\n const slug = window.location.pathname.split('/').slice(1).join('-');\n\n const { customStripBanner } = getState().homeReducer;\n\n if (customStripBanner && !forced) return;\n\n const campaignData = await fetchCampaignStripBanner(slug);\n\n dispatch(setCustomStripBanner(campaignData));\n } catch (error) {\n console.error('[CAMPAIGN]', error);\n }\n };\n};\n\nexport default homeSlice.reducer;\n","import { createSlice } from '@reduxjs/toolkit';\nimport {\n getReferralPrograms,\n getReferrarInfo,\n getShareAndEarnConfig,\n} from '../services/referralApiService';\nimport { REFERRAL_RUPEES_TO_COINS } from 'src/aws-exports';\n\nconst referralUrlBase = process.env.REACT_APP_REFERRAL_URL || 'https://referral-dev.almagrow.com/';\n\nconst initialState = {\n referralPrograms: [],\n shareAndEarnConfig: {\n signupAmount: 0,\n redemptionTDSPercent: 0,\n },\n referralInfo: {},\n};\n\nconst shareAndEarnSlice = createSlice({\n name: 'shareAndEarnReducer',\n initialState,\n reducers: {\n updateReferralPrograms: (state, action) => {\n state.referralPrograms = action.payload;\n },\n updateShareAndEarnConfig: (state, action) => {\n state.shareAndEarnConfig = action.payload;\n },\n updateReferralInfo: (state, action) => {\n state.referralInfo = action.payload;\n },\n },\n});\n\nexport function fetchReferralPrograms() {\n return async (dispatch, getState) => {\n try {\n const referralPrograms = selectReferralPrograms(getState());\n if (referralPrograms && referralPrograms.length > 0) return;\n const res = await getReferralPrograms();\n dispatch(updateReferralPrograms(res));\n } catch (error) {\n console.error(error);\n }\n };\n}\n\nexport function fetchShareAndEarnAmt() {\n return async (dispatch) => {\n try {\n const res = await getShareAndEarnConfig();\n const amt = (res?.signupAmount / 100) * REFERRAL_RUPEES_TO_COINS;\n const tds = res?.redemptionTDSPercent;\n dispatch(\n updateShareAndEarnConfig({\n signupAmount: amt,\n redemptionTDSPercent: tds,\n })\n );\n } catch (error) {\n console.error(error);\n }\n };\n}\n\nexport function fetchReferralInfo() {\n return async (dispatch, getState) => {\n try {\n const referralInfo = selectReferralInfo(getState());\n if (referralInfo && referralInfo.referralCode) return;\n const res = await getReferrarInfo();\n res.referralUrl = referralUrlBase + res?.referralCode;\n dispatch(updateReferralInfo(res));\n } catch (error) {\n console.error(error);\n }\n };\n}\n\nexport const selectReferralPrograms = (state) => state.shareAndEarnReducer.referralPrograms;\nexport const selectShareAndEarnAmt = (state) => state.shareAndEarnReducer.shareAndEarnConfig;\nexport const selectReferralInfo = (state) => state.shareAndEarnReducer.referralInfo;\n\nexport const { updateReferralPrograms, updateShareAndEarnConfig, updateReferralInfo } =\n shareAndEarnSlice.actions;\n\nexport default shareAndEarnSlice.reducer;\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialState = {\n navigationClassname: '',\n sidebarClassname: '',\n hideCourseSelector: false,\n showExtraHeader: true,\n onBoardingState: false,\n removeHeight: false,\n};\n\nconst navigationSlice = createSlice({\n name: 'navigationReducer',\n initialState,\n reducers: {\n updateNavigationClassname: (state, action) => {\n state.navigationClassname = action.payload;\n },\n updateSidebarClassname: (state, action) => {\n state.sidebarClassname = action.payload;\n },\n updateCourseSelector: (state, action) => {\n state.hideCourseSelector = action.payload;\n },\n updateShowExtraHeader: (state, action) => {\n state.showExtraHeader = action.payload;\n },\n updateOnBoardingState: (state, action) => {\n state.onBoardingState = action.payload;\n },\n updateRemoveHeight: (state, action) => {\n state.removeHeight = action.payload;\n },\n },\n});\n\nexport const {\n updateNavigationClassname,\n updateSidebarClassname,\n updateCourseSelector,\n updateShowExtraHeader,\n updateOnBoardingState,\n updateRemoveHeight,\n} = navigationSlice.actions;\n\nexport default navigationSlice.reducer;\n","import { API } from 'aws-amplify';\nimport {\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n LEADSQUARED_API_GATEWAY_ENDPOINT_NAME,\n} from '../aws-exports';\nimport { returnCourseApiName } from './getcourse';\n\nexport const getFreeUserCurrentStage = async (course) => {\n const courseName = returnCourseApiName(course);\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/user/getting-started-stage?courseType=${courseName}`\n );\n};\n\nexport const postFreeUserCurrentStage = async (body) => {\n return await API.post(LEARN_SUBMISSION_API_ENDPOINT_NAME, `/api/user/getting-started-stage`, {\n body,\n });\n};\n\nexport const FUDVisitTracker = async () => {\n return await API.post(LEADSQUARED_API_GATEWAY_ENDPOINT_NAME, `/api/fud-visit-capture`, {\n body: {},\n });\n};\n","import { createSlice } from '@reduxjs/toolkit';\nimport { COURSE_TYPE } from 'src/constants';\nimport { getFreeUserCurrentStage } from 'src/services/freeUser';\nimport { fetchSubscriptionPlans } from 'src/services/paymentApiService';\n\nconst initialState = {\n subscriptionPlans: null,\n separateSubscriptionPlans: null,\n remainingInitialCouponTime: null,\n};\n\nconst paymentSlice = createSlice({\n name: 'paymentReducer',\n initialState,\n reducers: {\n setSubscriptionPlans: (state, action) => {\n state.subscriptionPlans = action.payload;\n },\n setSeparateSubscriptionPlans: (state, action) => {\n state.separateSubscriptionPlans = action.payload;\n },\n setRemainingInitialCouponTime: (state, action) => {\n state.remainingInitialCouponTime = action.payload;\n },\n },\n});\n\nexport const getSubscriptionPlans = () => {\n return async (dispatch) => {\n try {\n const result = await fetchSubscriptionPlans();\n const reduced = result.reduce((acc, curr) => {\n const { paymentMode, goalType } = curr;\n if (paymentMode === 'pay_after_placement') {\n acc[goalType] = curr;\n } else if (goalType === COURSE_TYPE.UG_DIPLOMA_CS) {\n acc[goalType] = curr;\n } else if ([COURSE_TYPE.MASTERS_CS, COURSE_TYPE.MASTERS_DS_AS].includes(goalType)) {\n acc[goalType] = curr;\n }\n return acc;\n }, {});\n dispatch(setSubscriptionPlans(result));\n dispatch(setSeparateSubscriptionPlans(reduced));\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport const getRemainingInitialCouponTime = (course) => {\n return async (dispatch) => {\n try {\n const res = await getFreeUserCurrentStage(course);\n const stage = parseInt(res?.stage?.split('-')?.[1]);\n if (stage === 4) {\n dispatch(setRemainingInitialCouponTime(res?.updatedAt));\n }\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport const { setSubscriptionPlans, setSeparateSubscriptionPlans, setRemainingInitialCouponTime } =\n paymentSlice.actions;\n\nexport const selectSubscriptionPlans = (state) => state.paymentReducer.separateSubscriptionPlans;\nexport const selectAllSubscriptionPlans = (state) => state.paymentReducer.subscriptionPlans;\nexport const selectRemainingInitialCouponTime = (state) =>\n state.paymentReducer.remainingInitialCouponTime;\n\nexport default paymentSlice.reducer;\n","import { createSlice } from '@reduxjs/toolkit';\nimport {\n returnRespectiveMastersCourse,\n returnActualCourseNameForApi,\n} from 'src/services/getcourse';\nimport { getMastersApplicationStatus, getMastersDegreeId } from 'src/services/mastersApiService';\n\nconst initialState = {\n loadOnboarding: false,\n currentPage: null,\n continueOnboarding: false,\n woolfInstance: null,\n masterStatus: 'START_APPLICATION',\n degreeId: {},\n};\n\nconst mastersCourseSlice = createSlice({\n name: 'mastersReducer',\n initialState,\n reducers: {\n setLoadOnboarding(state, action) {\n state.loadOnboarding = action.payload;\n },\n setContinueOnboarding(state, action) {\n state.continueOnboarding = action.payload;\n },\n setCurrentPage(state, action) {\n state.currentPage = action.payload;\n },\n setWoolfInstance(state, action) {\n state.woolfInstance = action.payload;\n },\n setMastersStatus(state, action) {\n state.masterStatus = action.payload;\n },\n setDegreeId(state, action) {\n state.degreeId = action.payload;\n },\n },\n});\n\nexport const {\n setLoadOnboarding,\n setCurrentPage,\n setContinueOnboarding,\n setWoolfInstance,\n setMastersStatus,\n setDegreeId,\n} = mastersCourseSlice.actions;\n\nexport const loadMastersOnboarding = (state) => state.mastersReducer.loadOnboarding;\nexport const currentMastersState = (state) => state.mastersReducer.currentPage;\nexport const continueMastersOnboarding = (state) => state.mastersReducer.continueOnboarding;\nexport const woolfInstanceSelector = (state) => state.mastersReducer.woolfInstance;\nexport const mastersStatusSelector = (state) => state.mastersReducer.masterStatus;\nexport const mastersDegreeIdSelector = (state) => state.mastersReducer.degreeId;\n\nfunction pageSetter(status) {\n switch (status) {\n case 'init':\n return 'CONTINUE_APPLICATION';\n case 'profile_completed':\n return 'APPLICATION_PENDING';\n case 'ineligible':\n return 'INELIGIBLE';\n case 'seat_reserved':\n return 'SEAT_RESERVED';\n case 'application_verified':\n return 'APPLICATION_VERIFIED';\n case 'application_rejected':\n return 'APPLICATION_REJECTED';\n case 'payment_completed':\n return '';\n case 'added_to_degree':\n return 'PAYMENT_COMPLETED';\n case 'university_onboarded':\n return '';\n default:\n return 'START_APPLICATION';\n }\n}\nexport const getMastersStatus = () => {\n return async (dispatch, getState) => {\n try {\n const actualCourseSelected = returnRespectiveMastersCourse(\n getState().courseReducer.courseSelected\n );\n const res = await getMastersApplicationStatus(actualCourseSelected);\n const status = pageSetter(res?.status);\n dispatch(setMastersStatus(status));\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport const fetchMastersDegreeId = () => {\n return async (dispatch, getState) => {\n try {\n const actualCourseSelected = returnActualCourseNameForApi(\n getState().courseReducer.courseSelected\n );\n const res = await getMastersDegreeId(actualCourseSelected);\n\n dispatch(setDegreeId({ [actualCourseSelected]: res?.degreeId }));\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport default mastersCourseSlice.reducer;\n","module.exports = {\n AB_GREEN_C1: '#134F5C',\n AB_GREEN_C2: '#47C71A',\n AB_GREEN_C3: '#76CE65',\n AB_GREEN_C4: '#359D91',\n AB_GREEN_C5: '#E2FBEF',\n AB_GRAY_C0: '#FAFAFA',\n AB_GRAY_C1: '#E5E5E5',\n AB_GRAY_C3: '#D2DDE8',\n AB_GRAY_C4: '#ffffff14',\n AB_GRAY_C5: '#0f0f0b',\n AB_GRAY_C6: '#ffffff1a',\n AB_GRAY_C7: '#00000099',\n AB_GRAY_C8: '#0000001a',\n AB_GRAY_C9: '#8492a6',\n AB_GRAY_C10: '#5D6672',\n AB_GRAY_C11: '#CAD7E5',\n AB_GRAY_C12: '#515151',\n AB_GRAY_C13: '#EEE',\n AB_GRAY_C14: '#666666',\n AB_GRAY_C15: '#F4F4F4',\n AB_GRAY_C16: '#8491A0',\n AB_BLUE_C1: '#148EFF',\n AB_BLUE_C2: '#0070E0',\n AB_BLUE_C3: ' #5258F5',\n AB_BLUE_C4: '#114ADC',\n AB_BLUE_C5: '#1F50FD',\n AB_BLUE_C6: '#F5F8FF',\n AB_BLUE_C7: '#1C5DDB',\n AB_BLUE_C8: '#E2EDFB',\n AB_BLUE_C9: '#5E6E88',\n AB_YELLOW_C1: '#FDA623',\n AB_YELLOW_C2: '#F8ECDE',\n AB_YELLOW_C3: '#C07E1A',\n AB_PINK_C1: '#FDB5B5',\n AB_PINK_C2: '#FAEFEF',\n AB_PRIMARY: '#000',\n AB_PRIMARY_SHADE_1: '#1C1C25',\n AB_PRIMARY_SHADE_2: '#333333',\n AB_PRIMARY_SHADE_3: '#101010',\n AB_PRIMARY_SHADE_4: 'rgba(0,0,0,0.3)',\n AB_PRIMARY_SHADE_5: 'rgba(0,0,0,0.8)',\n AB_SECONDARY: '#cc0000',\n AB_SECONDARY_SHADE_1: '#E50914',\n AB_SECONDARY_SHADE_2: '#ad0510',\n AB_SECONDARY_SHADE_3: '#ff4b55',\n AB_SECONDARY_SHADE_4: '#ff1111',\n AB_SECONDARY_SHADE_5: '#F00037',\n AB_SECONDARY_SHADE_6: '#FAE0E3',\n AB_SECONDARY_SHADE_7: '#7B152A',\n AB_TERTIARY: '#fff',\n AB_TERTIARY_SHADE_1: 'rgba(255,255,255,0.7)',\n AB_TERTIARY_SHADE_2: '#F8F8FA',\n AB_LIGHT: {\n YELLOW_SHADE_1: '#FDF8F1',\n YELLOW_SHADE_2: '#FAE9DE',\n BLUE_SHADE_1: '#1B252F',\n },\n AB_ORANGE_LIGHT: '#F9EBEB',\n AB_MODULE_THEME: '#fafbff',\n AB_GRAY_C17: '#7B8698',\n AB_GRAY_C18: '#D7E1EA',\n AB_RED_R1: '#FAEFEF',\n AB_PINK_HOVER: '#FBEAEA',\n AB_TYPE_COLOUR_1: '#5E6E88',\n AB_TYPE_COLOUR_2: '#8E99AC',\n AB_PASTEL_PURPLE_1: '#ECEFFE',\n};\n","export default \"data:image/png;base64,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\"","export const MODULES_PATH = {\n CHAT: '/chat',\n ONBOARDING: '/onboarding',\n JOB_BOARD: {\n HOME: '/job-board',\n SINGLE_JOB_VIEW: '/job-board/:id',\n },\n REGISTER_EVENT: '/register-event',\n MY_ACCOUNT: {\n HOME: '/my-account',\n CERTIFICATES: '/my-certificates',\n SHARE_LINKEDIN_POST: '/share-linkedin-post',\n get PROGRAM_INFORMATION() {\n return `${this.HOME}/program-information`;\n },\n get PASSWORD() {\n return `${this.HOME}/password`;\n },\n get EDUCATION() {\n return `${this.HOME}/education`;\n },\n get WORK_EXPERIENCE() {\n return `${this.HOME}/work-experience`;\n },\n get SKILLS() {\n return `${this.HOME}/skills`;\n },\n },\n PAYMENT: {\n HOME: (course) => `/${course}/payment`,\n SUCCESS: (course) => `/${course}/payment/success`,\n POST_PAYMENT_ONBOARDING: '/payment/onboarding',\n },\n MASTERS: {\n ONBOARDING: (course) => `/${course}/onboarding`,\n EURO: (course) => `/${course}/euro-scholarship`,\n ANNOUNCEMENT: (course) => `/${course}/announcement`,\n },\n AUTH: {\n HOME: '/auth',\n get LOGIN() {\n return `${this.HOME}/login`;\n },\n get FRESHDESK_SSO_LOGIN() {\n return `${this.HOME}/sso_login/freshdesk`;\n },\n get THINKIFIC_SSO_LOGIN() {\n return `${this.HOME}/sso_login/thinkific`;\n },\n get SIGN_UP() {\n return `${this.HOME}/signup`;\n },\n get FORGOT_YOUR_PASSWORD() {\n return `${this.HOME}/forgot_your_password`;\n },\n get LOGIN_SUCCESSFUL() {\n return `${this.HOME}/login_successful`;\n },\n get LOGOUT() {\n return `${this.HOME}/logout`;\n },\n get LOGOUT_SUCCESSFUL() {\n return `${this.HOME}/logout_successful`;\n },\n get DISCORD() {\n return `${this.HOME}/discord`;\n },\n },\n COMMUNITY_LANDING: '/community',\n SCHOOL: {\n HOME: (course) => `/${course}/school`,\n INTERMEDIATE_PAGE: (course) => `/${course}/school/join`,\n LIVE_CLASS: (course) => `/${course}/school/live-class`,\n },\n PERFORMANCE_DASHBOARD: (course) => `/${course}/performance-dashboard`,\n COHORT_LEADERBOARD: (course) => `/${course}/cohort-leaderboard`,\n NEW_MENTORSHIP: {\n BASE: (course) => `/${course}/polaris`,\n HOME: (course) => `/${course}/polaris/home`,\n NEW_BOOKING: (course) => `/${course}/polaris/home/book`,\n MANAGE_BOOKINGS: (course) => `/${course}/polaris/manage`,\n INTERVIEW_SIMULATOR: (course) => `/${course}/polaris/session`,\n FEEDBACK: (course) => `/${course}/polaris/manage/feedback`,\n FEEDBACK_ROUTE: (course) => `/${course}/polaris/manage/feedback/:bookingId`,\n REPORT: (course) => `/${course}/polaris/manage/report`,\n REPORT_ROUTE: (course) => `/${course}/polaris/manage/report/:bookingId`,\n WATCH_RECORDINGS: (course) => `/${course}/polaris/manage/recording`,\n WATCH_RECORDINGS_ROUTE: (course) => `/${course}/polaris/manage/recording/:bookingId`,\n LEGACY: (course) => `/${course}/polaris/legacy`,\n },\n GROW_HOME: (course) => `/${course}/home`,\n REFER_AND_EARN: {\n PREFIX: '/refer-and-earn',\n HOME: '/refer-and-earn/dashboard',\n MY_REFEERALS: '/refer-and-earn/my-referrals',\n MY_REWARDS: '/refer-and-earn/my-rewards',\n HISTORY: '/refer-and-earn/history',\n },\n CLASSROOM: {\n HOME: (course) => `/${course}/classroom`,\n },\n COURSE_LMS_DASHBOARD: {\n LMS_IIT: (course) => `/${course}/iit-guwahati`,\n LEARN_HOME: (course) => `/${course}/home`,\n LEARN: (course) => `/${course}/learn`,\n LEARN_PROJECTS: {\n HOME: (course) => `/${course}/projects`,\n SINGLE_PROJECT_VIEW: (course) => `/${course}/projects/:name`,\n },\n LEARN_CAREER: (course) => `/${course}/almax-career-track`,\n LEARN_CAREER_LEARN_TAB: (course) => `/${course}/AlmaX/:name/:type`,\n LEARN_MAIN_COURSES: (course) => `/${course}/learn/:name`,\n LEARN_TRACK_PROJECTS: (course) => `/${course}/learn/:name/:track/:moduleId/capstone-projects`,\n LEARN_TRACK_SINGLE_PROJECT: (course) =>\n `/${course}/learn/:name/:track/:moduleId/capstone-projects/:id`,\n LEARN_MAIN_COURSES_LESSON: (course) => `/${course}/learn/:name/:track/:lesson/:type`,\n },\n PRACTICE_TAB: {\n HOME: (course) => `/${course}/practice`,\n CODING_ASSESSMENT: {\n HOME: (course) => `/${course}/practice/coding-assessments`,\n SINGLE_CODING_ASSESSMENT_VIEW: (course) => `/${course}/practice/coding-assessments/:name`,\n },\n CODING_PROBLEM: {\n HOME: (course) => `/${course}/practice/coding-problems`,\n SINGLE_CODING_PROBLEM: (course) => `/${course}/practice/coding-problems/:name`,\n },\n QUIZ_ASSESSMENT: {\n HOME: (course) => `/${course}/practice/quiz-assessments`,\n SINGLE_ASSESSMENT_VIEW: (course) => `/${course}/practice/quiz-assessments/:name`,\n },\n FREE_COURSE_CARDS: (course) => `/${course}/practice/supplementary-courses`,\n SINGLE_FREE_COURSE: (course) => `/${course}/practice/supplementary-courses/:name`,\n FREE_COURSE_LESSON: (course) =>\n `/${course}/practice/supplementary-courses/:name/:lessonName/:type`,\n },\n};\n","import { API } from \"aws-amplify\";\nimport axios from \"axios\";\nimport {\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n USER_API_GATEWAY_ENDPOINT,\n USER_API_GATEWAY_ENDPOINT_NAME,\n} from \"../aws-exports\";\nimport { returnCourseApiName } from \"./getcourse\";\nimport dayjs from \"dayjs\";\nconst ENV = process.env.REACT_APP_ENV || \"dev\";\n\nexport async function getMyProfile() {\n const response = await API.get(\n USER_API_GATEWAY_ENDPOINT_NAME,\n \"/api/user\",\n {}\n );\n return response;\n}\n\nexport async function getNameChangeInfo() {\n const response = await API.get(\n USER_API_GATEWAY_ENDPOINT_NAME,\n \"/api/name-changes\",\n {}\n );\n return response;\n}\n\nexport async function updateMyProfile(userData) {\n const response = await API.put(USER_API_GATEWAY_ENDPOINT_NAME, \"/api/me\", {\n body: userData,\n headers: {},\n });\n return response;\n}\n\nexport async function updateBookingData(updateBookingData) {\n const response = await API.put(\n USER_API_GATEWAY_ENDPOINT_NAME,\n `/api/student/booking`,\n {\n body: updateBookingData,\n headers: {},\n }\n );\n return response;\n}\n\nexport const getJWTToken = async () => {\n return await API.get(USER_API_GATEWAY_ENDPOINT_NAME, \"/api/auth-jwt\", {\n queryStringParameters: { type: \"student\" },\n });\n};\n\nexport const getOnboardingInfo = async () =>\n await API.get(\n USER_API_GATEWAY_ENDPOINT_NAME,\n \"/api/post-payment-onboarding\",\n {}\n );\n\nexport const updateOnboardingInfo = async (payload) => {\n await API.put(\n USER_API_GATEWAY_ENDPOINT_NAME,\n \"/api/post-payment-onboarding\",\n {\n body: { ...payload },\n }\n );\n};\n\nexport const verifyCohortChangeFromUserSide = async (payload) => {\n return await API.post(\n USER_API_GATEWAY_ENDPOINT_NAME,\n \"/api/v2/check-subscription/confirm-cohort-change-message\",\n {\n body: { ...payload },\n }\n );\n};\n\nexport const checkSubscription = async () => {\n return await API.get(\n USER_API_GATEWAY_ENDPOINT_NAME,\n \"/api/v2/check-subscription\"\n );\n};\n\nexport const checkSubscriptionForCourseType = async (courseType) => {\n const courseName = returnCourseApiName(courseType);\n return await API.get(\n USER_API_GATEWAY_ENDPOINT_NAME,\n `/api/v2/check-subscription/${courseName}`\n );\n};\n\nexport const requestAirmeetAccessForCourseType = async (courseType) => {\n const courseName = returnCourseApiName(courseType);\n return await API.get(\n USER_API_GATEWAY_ENDPOINT_NAME,\n \"/request-airmeet-access\",\n {\n queryStringParameters: { courseType: courseName },\n }\n );\n};\n\nexport const markCoursesAsInterest = async (courses) =>\n await API.post(USER_API_GATEWAY_ENDPOINT_NAME, \"/api/course-interest\", {\n body: {\n courses,\n },\n });\n\nexport const getUserCredits = async () =>\n await API.get(USER_API_GATEWAY_ENDPOINT_NAME, \"/api/user-credit\");\n\n// company API Service\nexport const getAllCompanies = async () =>\n await API.get(USER_API_GATEWAY_ENDPOINT_NAME, \"/api/companies\", {});\n\nexport const addNewCompany = async (companyData) => {\n return await API.post(USER_API_GATEWAY_ENDPOINT_NAME, \"/api/companies\", {\n body: companyData,\n });\n};\n\n// job-title API Service\nexport const getAllJobTitles = async () =>\n await API.get(USER_API_GATEWAY_ENDPOINT_NAME, \"/api/job-titles\", {});\n\nexport const addNewJobTitle = async (jobTitleData) => {\n return await API.post(USER_API_GATEWAY_ENDPOINT_NAME, \"/api/job-titles\", {\n body: jobTitleData,\n });\n};\n\n// search university API Service\nexport const searchUniversities = async (searchText) =>\n await API.get(USER_API_GATEWAY_ENDPOINT_NAME, \"/api/universities\", {\n queryStringParameters: { searchText },\n });\n\nexport const addNewUniversity = async (universityData) => {\n return await API.post(USER_API_GATEWAY_ENDPOINT_NAME, \"/api/universities\", {\n body: universityData,\n });\n};\n\n// Degree API Service\nexport const getDegree = async () =>\n await API.get(USER_API_GATEWAY_ENDPOINT_NAME, \"/api/university-degree\", {});\n\nexport const addNewDegree = async (degree) => {\n return await API.post(\n USER_API_GATEWAY_ENDPOINT_NAME,\n \"/api/university-degree\",\n {\n body: degree,\n }\n );\n};\n\n// education stream API Service\nexport const getAllEducationStreams = async () => {\n return await API.get(\n USER_API_GATEWAY_ENDPOINT_NAME,\n \"/api/university-stream\"\n );\n};\n\nexport const addNewEducationStream = async (body) => {\n return await API.post(\n USER_API_GATEWAY_ENDPOINT_NAME,\n \"/api/university-stream\",\n {\n body,\n }\n );\n};\n\n// onboarding API\nexport const getOnboardingData = async () => {\n return await API.get(USER_API_GATEWAY_ENDPOINT_NAME, \"/api/user/info\", {});\n};\n\nexport const postOnboardingData = async (body) => {\n return await API.put(USER_API_GATEWAY_ENDPOINT_NAME, \"/api/user/info\", {\n body,\n });\n};\n\n// performance dashboard\nexport const fetchUserPerformanceData = async (data) => {\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/performance/profile?goalType=${data?.course}&courseId=${data?.id}`\n );\n};\n\n// my performance dropdown\nexport const fetchUserPerformanceHoverboxData = async (data) => {\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/performance/hoverbox?goalType=${data?.course}&courseId=${data?.id}&moduleId=4`\n );\n};\n\n// request callback for user\nexport const postUserDataForCallback = async (data) => {\n return await API.post(\n USER_API_GATEWAY_ENDPOINT_NAME,\n \"/api/user/onboarding\",\n {\n body: data,\n }\n );\n};\n\n// OTP SERVICES\nexport const sendOTPForCallback = async (body) => {\n return API.post(USER_API_GATEWAY_ENDPOINT_NAME, `/send/otp`, {\n body,\n });\n};\n\nexport const verifyOTPForCallback = async (body) => {\n return API.post(USER_API_GATEWAY_ENDPOINT_NAME, `/verify/otp`, {\n body,\n });\n};\n\nexport const sendWhatsappOtp = async (body) => {\n return API.post(\n USER_API_GATEWAY_ENDPOINT_NAME,\n `/api/user/whatsapp/send-otp`,\n {\n body,\n }\n );\n};\n\nexport const verifyWhatsappOtp = async (body) => {\n return API.post(\n USER_API_GATEWAY_ENDPOINT_NAME,\n `/api/user/whatsapp/verify-otp`,\n {\n body,\n }\n );\n};\n\n// OTP SERVICES\nexport const sendOTPAfterSignup = async (body) => {\n return API.post(USER_API_GATEWAY_ENDPOINT_NAME, `/api/user/phone/send-otp`, {\n body,\n });\n};\n\nexport const addMobileAfterSignup = async (body) => {\n return API.put(USER_API_GATEWAY_ENDPOINT_NAME, `/api/user`, {\n body,\n });\n};\n\nexport const verifyOTPAfterSignup = async (body) => {\n return API.post(\n USER_API_GATEWAY_ENDPOINT_NAME,\n `/api/user/phone/verify-otp`,\n {\n body,\n }\n );\n};\n\n// free user FQA\nfunction getFaqUrl() {\n if (ENV === \"dev\") {\n return \"https://strapiv2.almagrow.com/api/faq?populate=faqCategory.faq\";\n } else if (ENV === \"prod\") {\n return \"https://strapiv2.almagrow.com/api/faq?populate=faqCategory.faq\";\n } else if (ENV === \"qa\") {\n return \"https://strapi-course-lms-qa.almagrow.com/api/faq?populate=faqCategory.faq\";\n }\n return \"https://strapiv2.almagrow.com/api/faq?populate=faqCategory.faq\";\n}\n\nexport const getFreeUserFaq = async () => {\n const url = getFaqUrl();\n return fetch(url).then((res) => res.json());\n};\n\nexport const getEgligibilityForExtension = async () => {\n return API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/career/user-config/almax-config`\n );\n};\n\nexport const applyForABCATExtension = async (apiData) => {\n return API.post(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n \"/api/career/apply-for-extension/v2\",\n {\n body: apiData,\n }\n );\n};\n\nexport async function authDiscordsUser(payload) {\n const response = await API.post(\n USER_API_GATEWAY_ENDPOINT_NAME,\n \"/api/discord/register-user\",\n {\n body: payload,\n }\n );\n return response;\n}\n\n// cohort leaderboard\nexport const fetchLeaderboardUserData = async (data) => {\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/cohort-leaderboard?courseType=${data}`\n );\n};\n\n// get top three leaderboard\nexport const getTopThreeLeaderboard = async (data) => {\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/cohort-leaderboard/top-three?courseType=${data}`\n );\n};\n\nexport const getUserAlmapoints = async () => {\n return await API.get(LEARN_SUBMISSION_API_ENDPOINT_NAME, `/api/user-points`);\n};\n\n// get recipts\nexport const getReceiptFromAPI = () => {\n return API.get(USER_API_GATEWAY_ENDPOINT_NAME, \"/api/receipt\");\n};\n\n// error logging\nexport const postErrorLog = async (body) => {\n return API.post(\n USER_API_GATEWAY_ENDPOINT_NAME,\n \"/api/error-reporting/frontend-error\",\n {\n body,\n }\n );\n};\n\nexport const getSelectedCourses = async () => {\n return API.get(USER_API_GATEWAY_ENDPOINT_NAME, `/api/selected-goals`);\n};\n\nexport const appendToExploredCourses = async (apiData) => {\n return API.post(\n USER_API_GATEWAY_ENDPOINT_NAME,\n \"/api/selected-goals/append\",\n {\n body: apiData,\n }\n );\n};\n\nexport const updateCurrentCourse = async (apiData) => {\n return API.post(\n USER_API_GATEWAY_ENDPOINT_NAME,\n \"/api/selected-goals/update-course-status\",\n {\n body: apiData,\n }\n );\n};\n\nexport const fetchUserReferredCode = async () => {\n return await API.get(\n USER_API_GATEWAY_ENDPOINT_NAME,\n \"/api/user/referrer-referral-code\",\n {}\n );\n};\n\nexport const getReferralInfo = async (goalType) => {\n return await API.get(\n USER_API_GATEWAY_ENDPOINT_NAME,\n `/api/payment/referral-info?goalType=${goalType}`\n );\n};\n\nexport const getWoolfToken = async () => {\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/woolf/generate-token`\n );\n};\n\n// talk to admission team\nexport const getAdmissionTeamData = async (apiData) => {\n return await API.get(\n USER_API_GATEWAY_ENDPOINT_NAME,\n `/api/talk-to-admission-team?courseType=${apiData.courseType}&planType=${apiData.planType}&subPlanType=${apiData.subPlanType}`\n );\n};\n\nexport const postAdmissionTeamData = async (apiData) => {\n return await API.post(\n USER_API_GATEWAY_ENDPOINT_NAME,\n \"/api/talk-to-admission-team\",\n {\n body: apiData,\n }\n );\n};\n\n// should sow banner\nexport const getShouldShowBanner = async (courseType) => {\n return await API.get(\n USER_API_GATEWAY_ENDPOINT_NAME,\n `/api/banner/should-show?courseType=${courseType}`\n );\n};\n\n// referrer info\nexport const getReferrerInfo = async () => {\n return await API.get(\n USER_API_GATEWAY_ENDPOINT_NAME,\n \"/api/referred/referrer-info\"\n );\n};\n\n// get coach info for upcoming bacth\nexport const getUpcomingCoachInfo = async (courseType) => {\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/web-course/current-coach?courseType=${courseType}`\n );\n};\n\nconst getWebsiteStrapiUrl = () => {\n if (ENV === \"prod\") {\n return \"https://strapiwebsitev2.almagrow.com\";\n }\n\n return \"https://dev.website.strapi.almagrow.com\";\n};\n\nexport const fetchCampaignStripBanner = async (slug) => {\n try {\n const date = new Date();\n\n const today = dayjs(date).format(\"YYYY-MM-DD\");\n\n const baseUrl = getWebsiteStrapiUrl();\n\n const url = `${baseUrl}/api/strip-banners?populate=pages&filters[$and][0][expiryDate][$gte]=${today}&filters[$and][0][pages][slug][$contains]=${slug}`;\n\n const { data } = await axios.get(url);\n\n if (!data || !data?.data) {\n return null;\n }\n\n return data.data[0];\n } catch (error) {\n console.error(\"CAMPAIGN ERROR\", error);\n\n return null;\n }\n};\n","import React from \"react\";\n\nimport { withRouter } from \"react-router-dom\";\n\nfunction Layout({ children }) {\n return
{children}
;\n}\n\nexport default withRouter(Layout);\n","function LeftSignupContent() {\n return (\n
\n
\n \n\n

\n Let's start your journey\n

\n
\n\n
\n );\n}\n\nexport default LeftSignupContent;\n","export const WhiteAlmabetterLogo = ({ iconStyle }) => {\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const PasiaBazzarLogo = ({ iconStyle }) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const GoogleIcon = ({ iconStyle }) => {\n return (\n \n \n \n \n \n \n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport { Link, useHistory } from \"react-router-dom\";\nimport { MODULES_PATH } from \"../../../route-constants\";\nimport { Auth } from \"aws-amplify\";\nimport { CircularProgress } from \"@material-ui/core\";\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\nimport { CognitoHostedUIIdentityProvider } from \"@aws-amplify/auth\";\n\nimport LeftSignupContent from \"../_components/leftContent\";\nimport { GoogleIcon } from \"../_assets/logos\";\n\nexport default function Login() {\n const history = useHistory();\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [error, setError] = useState({});\n\n const [disable, setDisable] = useState(false);\n\n const ifUserIsAuthenticatedRedirect = async () => {\n try {\n const user = await Auth.currentAuthenticatedUser();\n if (user) {\n history.push(MODULES_PATH.AUTH.LOGIN_SUCCESSFUL);\n }\n } catch (err) {}\n };\n\n useEffect(() => {\n ifUserIsAuthenticatedRedirect();\n }, []);\n\n async function signIn() {\n setDisable(true);\n try {\n const lowercaseEmail = email.toLowerCase();\n await Auth.signIn(lowercaseEmail, password);\n await ifUserIsAuthenticatedRedirect();\n } catch (error) {\n setError(error);\n } finally {\n setDisable(false);\n }\n }\n\n const validate = (e) => {\n e.preventDefault();\n const temp = {};\n if (email === \"\") {\n temp.email = \"This field is required\";\n }\n if (password === \"\") {\n temp.password = \"This field is required\";\n }\n\n if (Object.keys(temp)?.length) setError(temp);\n else signIn();\n };\n\n return (\n \n \n
\n \n
\n\n
\n
\n
\n

\n Sign in to ISDA\n

\n

\n Build a better career with guaranteed outcome!\n

\n
\n
\n \n Auth.federatedSignIn({\n provider: CognitoHostedUIIdentityProvider.Google,\n })\n }\n >\n
\n \n
\n

\n Continue with Gmail\n

\n
\n
\n\n

or

\n
\n
\n
\n
\n {error.message && (\n \n {error.message}\n \n )}\n
\n \n \n setEmail(e.target.value.replace(/\\s/g, \"\"))\n }\n />\n {email === \"\" && (\n \n {error.email}\n \n )}\n
\n
\n \n setPassword(e.target.value)}\n />\n {password === \"\" && (\n \n {error.password}\n \n )}\n
\n
\n \n Forgot Password?\n \n \n {disable ? (\n \n ) : (\n \"Sign In\"\n )}\n \n \n
\n
\n
\n
\n
\n Don't have an account ?\n {\n history.replace(`/auth/signup`);\n }}\n >\n Sign Up\n \n
\n
\n \n \n \n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { MODULES_PATH } from \"../../../route-constants\";\nimport PasswordStrengthBar from \"react-password-strength-bar\";\nimport { Auth } from \"aws-amplify\";\nimport {\n captureParams,\n getRedirectTo,\n validateEmail,\n validateFullname,\n} from \"../../../utils\";\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\nimport { CircularProgress } from \"@material-ui/core\";\nimport { LOCAL_STORAGE_KEYS } from \"../../../constants\";\nimport { CognitoHostedUIIdentityProvider } from \"@aws-amplify/auth\";\nimport { GoogleIcon } from \"../_assets/logos\";\nimport LeftSignupContent from \"../_components/leftContent\";\nimport { trackPageView } from \"../../../services/mixpanel\";\nimport cn from \"classnames\";\n\nfunction getReferralCode() {\n const urlSearchText = window.location.search;\n if (urlSearchText) {\n const urlSearchParams = new URLSearchParams(urlSearchText);\n const referralCode = urlSearchParams.get(\"referralCode\");\n const utmSource = urlSearchParams.get(\"utm_source\");\n if (!referralCode) return {};\n return { referralCode, utmSource };\n }\n}\n\nfunction getUserCourseInterests() {\n const interests = [];\n const urlSearchText = window.location.search;\n if (urlSearchText) {\n const urlSearchParams = new URLSearchParams(urlSearchText);\n urlSearchParams.forEach((queryParamVal, queryParam) => {\n if (queryParam.endsWith(\"Interest\")) interests.push(queryParam);\n });\n }\n return interests;\n}\n\nfunction storeRedirectToAndUserCourseInterests() {\n const redirectTo = getRedirectTo();\n\n const queryString = captureParams();\n\n const { referralCode, utmSource } = getReferralCode() ?? {};\n const urlSearchText = window.location.search;\n const urlSearchParams = new URLSearchParams(urlSearchText);\n const refferalGoal = urlSearchParams.get(\"goal\");\n const refferalPlan = urlSearchParams.get(\"plan\");\n\n if (referralCode) {\n refferalGoal &&\n localStorage.setItem(LOCAL_STORAGE_KEYS.REFERRAL_GOAL, refferalGoal);\n refferalPlan &&\n localStorage.setItem(LOCAL_STORAGE_KEYS.REFERRAL_PLAN, refferalPlan);\n localStorage.setItem(LOCAL_STORAGE_KEYS.REFERRAL_CODE, referralCode);\n }\n\n if (utmSource && [\"referearn\", \"shareearn\"]?.includes(utmSource)) {\n localStorage.setItem(LOCAL_STORAGE_KEYS.REFERRAL_SOURCE, utmSource);\n }\n\n const interests = getUserCourseInterests();\n\n if (interests?.length) {\n localStorage.setItem(\n LOCAL_STORAGE_KEYS.COURSE_INTERESTS,\n JSON.stringify(interests)\n );\n }\n\n if (redirectTo) {\n const redirectToValue = queryString ? redirectTo + queryString : redirectTo;\n\n localStorage.setItem(LOCAL_STORAGE_KEYS.REDIRECT_TO, redirectToValue);\n sessionStorage.setItem(LOCAL_STORAGE_KEYS.REDIRECT_TO, redirectToValue);\n return;\n }\n\n if (queryString) {\n localStorage.setItem(LOCAL_STORAGE_KEYS.CAMPAIGN_PARAMS, queryString);\n }\n}\n\nexport default function SignUp() {\n const history = useHistory();\n const location = useLocation();\n const queryParams = new URLSearchParams(location.search);\n const source = queryParams.get(\"source\");\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [error, setError] = useState({});\n const [disable, setDisable] = useState(false);\n const [clicked, setClicked] = useState(false);\n const [userName, setUserName] = useState(\"\");\n const ifUserIsAuthenticatedRedirect = async () => {\n try {\n const user = await Auth.currentAuthenticatedUser();\n if (user) {\n history.push(MODULES_PATH.AUTH.LOGIN_SUCCESSFUL);\n }\n } catch (err) {\n if (source && source === \"rcb_success\") {\n (async () => {\n await Auth.federatedSignIn({\n provider: CognitoHostedUIIdentityProvider.Google,\n });\n })();\n }\n }\n };\n useEffect(() => {\n storeRedirectToAndUserCourseInterests();\n ifUserIsAuthenticatedRedirect();\n trackPageView({ page: \"Signup\" });\n }, []);\n\n async function signUp() {\n setDisable(true);\n try {\n await Auth.signUp({\n username: email.toLowerCase(),\n password,\n attributes: {\n name: userName?.replace(/\\s+/g, \" \").trim(),\n },\n });\n await Auth.signIn(email.toLowerCase(), password);\n await ifUserIsAuthenticatedRedirect();\n } catch (error) {\n setError(error);\n }\n setDisable(false);\n }\n\n const validate = () => {\n const temp = {};\n temp.email = email\n ? validateEmail(email)\n ? \"\"\n : \"Please enter a valid email\"\n : \"This field is required\";\n temp.userName = userName\n ? validateFullname(userName)\n ? \"\"\n : \"Please enter your full name\"\n : \"This field is required\";\n temp.password = password\n ? error.password\n ? error.password\n : \"\"\n : \"This field is required\";\n\n if (!Object.values(temp).every((value) => value === \"\")) setError(temp);\n else signUp();\n };\n\n const validatePassword = (score, feedback) => {\n if (password && score >= 0 && score <= 2) {\n setError({\n ...error,\n password: feedback.warning\n ? feedback.warning\n : \"Please select a better password\",\n });\n } else setError({ ...error, password: \"\" });\n };\n\n const googleSignup = () => {\n try {\n Auth.federatedSignIn({\n provider: CognitoHostedUIIdentityProvider.Google,\n });\n } catch (error) {\n console.error(error);\n }\n };\n\n return (\n
\n \n
\n \n
\n
\n \n
\n

\n Welcome to ISDA✨\n

\n

\n Sign up today to kickstart your learning and land your dream\n job!\n

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

\n Continue with Gmail\n

\n
\n
\n {!clicked && (\n {\n setClicked(true);\n }}\n >\n Don't have Gmail? Sign up with Email\n

\n )}\n {clicked ? (\n <>\n

or

\n
\n
\n
\n {error.message && (\n \n {error.message}\n \n )}\n
\n \n setUserName(e.target.value)}\n />\n \n {error.userName}\n \n
\n
\n \n \n setEmail(e.target.value.replace(/\\s/g, \"\"))\n }\n />\n \n {error.email}\n \n
\n\n
\n \n setPassword(e.target.value)}\n />\n \n \n {error.password}\n \n
\n
\n
\n \n {disable ? (\n \n ) : (\n \"Sign Up for free\"\n )}\n \n
\n
\n \n By signing up, I accept ISDA's{\" \"}\n \n window.open(\n \"https://isda.academy/term-of-use\",\n \"_blank\"\n )\n }\n >\n Terms of Services\n {\" \"}\n and acknowledge the\n \n window.open(\n \"https://isda.academy/privacy-policy\",\n \"_blank\"\n )\n }\n >\n {\" \"}\n Privacy Policy\n \n \n
\n
\n
\n \n ) : (\n
\n \n By signing up, I accept ISDA's{\" \"}\n \n window.open(\"https://isda.academy/term-of-use\", \"_blank\")\n }\n >\n Terms of Services\n {\" \"}\n and acknowledge the\n \n window.open(\n \"https://isda.academy/privacy-policy\",\n \"_blank\"\n )\n }\n >\n {\" \"}\n Privacy Policy\n \n \n
\n )}\n \n
\n Already have an account ?\n {\n const redirectUrl = getRedirectTo();\n if (redirectUrl) {\n history.replace(`/auth/login?redirectTo=${redirectUrl}`);\n } else {\n history.replace(`/auth/login`);\n }\n }}\n >\n Sign In\n \n
\n \n \n \n );\n}\n","import mixpanel from 'mixpanel-browser';\nimport { getFullName } from '../utils';\n\nexport function identifyUser(user) {\n mixpanel.identify(user.id);\n mixpanel.people.set({\n $name: getFullName(user),\n $email: user.email,\n });\n}\n\nexport function trackPageView({ page }) {\n mixpanel.track_pageview({ page });\n}\n\nexport function resetUser() {\n mixpanel.reset();\n}\n","export default __webpack_public_path__ + \"static/media/forgot_pass_bg.03300017.webp\";","import React, { useState } from \"react\";\nimport bgImage from \"../_assets/forgot_pass_bg.webp\";\nimport { Auth } from \"aws-amplify\";\nimport PasswordStrengthBar from \"react-password-strength-bar\";\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\nimport { CircularProgress } from \"@material-ui/core\";\nimport { MODULES_PATH } from \"../../../route-constants\";\nimport { useHistory } from \"react-router-dom\";\nimport { validateEmail } from \"../../../utils\";\nimport logo from \"../../../static/img/almabetterLogo.png\";\n\nconst errorCodes = {\n UserNotFoundException: \"User with this email not found\",\n};\n\nconst renderEmail = (email) => {\n let emailString = email.split(\"@\");\n emailString = emailString[0];\n const subString = email.slice(2, emailString?.length - 2);\n const emailSubstring =\n emailString.replace(subString, \"*\".repeat(emailString?.length - 4)) +\n \"@\" +\n email.split(\"@\")[1];\n return emailSubstring;\n};\nconst validateConfirmPassword = (pass, confirmPass) => {\n return pass === confirmPass;\n};\nfunction ConfirmPassword({ email, onPasswordSuccessfullyReset }) {\n const [error, setError] = useState({});\n const [form, setForm] = useState({});\n const [resetPasswordLoading, setResetPasswordLoading] = useState(false);\n const renderedEmail = renderEmail(email);\n\n const handleInput = (e) => {\n setForm({\n ...form,\n [e.target.name]: e.target.value,\n });\n };\n\n const validatePassword = (score, feedback) => {\n if (form.password && score >= 0 && score <= 2) {\n setError({\n ...error,\n password: feedback.warning\n ? feedback.warning\n : \"Please select a better password\",\n });\n } else setError({ ...error, password: \"\" });\n };\n\n const validate = () => {\n const temp = {};\n temp.code = form.code ? \"\" : \"This field is required\";\n temp.password = form.password\n ? error.password\n ? error.password\n : \"\"\n : \"This field is required\";\n temp.confirmPassword = form.confirmPassword\n ? validateConfirmPassword(form.password, form.confirmPassword)\n ? \"\"\n : \"Please make sure the confirm password is same as password\"\n : \"This field is required\";\n\n if (!Object.values(temp).every((value) => value === \"\")) setError(temp);\n else resetPassword();\n };\n\n const resetPassword = async () => {\n setResetPasswordLoading(true);\n try {\n await Auth.forgotPasswordSubmit(email, form.code, form.password);\n onPasswordSuccessfullyReset();\n } catch (err) {\n const message = err.message || \"Failed resetting password\";\n setError({ message });\n } finally {\n setResetPasswordLoading(false);\n }\n };\n return (\n <>\n
\n

We have sent a password reset code to {renderedEmail}

\n

Enter it below to reset your password

\n
\n {error.message && (\n \n {error.message}\n \n )}\n
\n \n \n {error.code}\n \n
\n
\n \n \n \n {error.password}\n \n
\n
\n \n \n {error.confirmPassword}\n \n
\n \n {resetPasswordLoading ? (\n \n ) : (\n \"Reset my password\"\n )}\n \n \n );\n}\n\nfunction PutEmail({ onEmailSuccessfullyInput }) {\n const [email, setEmail] = useState(\"\");\n const [resetButtonLoading, setResetButtonLoading] = useState(false);\n const [errorMsg, setErrorMsg] = useState(\"\");\n\n const validateForm = () => {\n let errorMsg = \"\";\n if (!email) errorMsg = \"Email Field is required\";\n if (!errorMsg && !validateEmail(email)) errorMsg = \"Email is not valid\";\n if (errorMsg) {\n setErrorMsg(errorMsg);\n return errorMsg;\n }\n };\n\n const onResetButtonClicked = async () => {\n const errorMsg = validateForm();\n if (errorMsg) return;\n try {\n setResetButtonLoading(true);\n await Auth.forgotPassword(email);\n onEmailSuccessfullyInput(email);\n } catch (e) {\n let errorMsg = \"Error resetting email\";\n if (e.code in errorCodes) {\n errorMsg = errorCodes[e.code];\n }\n setErrorMsg(errorMsg);\n } finally {\n setResetButtonLoading(false);\n }\n };\n\n return (\n <>\n

Forgot your password?

\n

\n Enter your email below and we will send a message to reset your password\n

\n setEmail(e.target.value)}\n />\n {errorMsg && (\n {errorMsg}\n )}\n \n {resetButtonLoading ? (\n \n ) : (\n \"Reset my password\"\n )}\n \n \n );\n}\n\nexport default function ResetPassword() {\n const history = useHistory();\n const [email, setEmail] = useState(\"\");\n const [page, setPage] = useState(1);\n const onPasswordSuccessfullyReset = () => {\n history.push(MODULES_PATH.AUTH.LOGIN);\n };\n\n return (\n
\n \"Background\"\n
\n \n
\n
\n {page === 1 && (\n {\n setEmail(emailParam);\n setPage(2);\n }}\n />\n )}\n {page === 2 && (\n \n )}\n
\n
\n );\n}\n","import { Auth } from 'aws-amplify';\nimport React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { MODULES_PATH } from 'src/route-constants';\nimport { LOCAL_STORAGE_KEYS } from '../../../constants';\n\nfunction Logout() {\n const history = useHistory();\n\n React.useEffect(() => {\n async function logOut() {\n try {\n localStorage.removeItem(LOCAL_STORAGE_KEYS.GLOBAL_SETTINGS);\n await Auth.signOut();\n history.replace(MODULES_PATH.AUTH.LOGIN);\n } catch (e) {\n console.error(e);\n }\n }\n logOut();\n }, []);\n\n return <>;\n}\n\nexport default Logout;\n","import React, { useEffect } from \"react\";\n\nimport { getGoalAndPlanBasedOnInterest } from \"../../../constants\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { loadUser, loggedInUserSelector } from \"../../../redux/authSlice\";\nimport { Auth } from \"aws-amplify\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { MODULES_PATH } from \"../../../route-constants\";\n\nfunction LoginSuccessful() {\n const dispatch = useDispatch();\n const userDetails = useSelector(loggedInUserSelector);\n const history = useHistory();\n\n const returnGoalAndPlan = (courseInterest) => {\n return getGoalAndPlanBasedOnInterest[courseInterest] ?? {};\n };\n\n useEffect(() => {\n Auth.currentAuthenticatedUser()\n .then(async (user) => {\n if (!userDetails) dispatch(loadUser());\n })\n .catch((err) => {\n console.error(err);\n history.replace(MODULES_PATH.AUTH.LOGIN);\n });\n }, []);\n\n useEffect(() => {\n if (userDetails) {\n history.push(\"/onboarding\");\n }\n }, [userDetails]);\n\n if (!userDetails) return
;\n\n return
;\n}\n\nexport default LoginSuccessful;\n","import { Route, Switch } from \"react-router-dom\";\nimport Login from \"./login/page\";\nimport { MODULES_PATH } from \"../../route-constants\";\nimport SignUp from \"./signup/page\";\nimport ResetPassword from \"./forgot_your_password/page\";\nimport Logout from \"./logout/page\";\nimport LoginSuccessful from \"./login_successful/page\";\n// import FreshdeskSSO from './sso_login/freshdesk/page';\n// import ThinkificSSO from './sso_login/thinkific/page';\n// import Discord from './discord/page';\n\nexport default function AuthRouter() {\n return (\n
\n \n \n {/* \n */}\n \n \n \n \n \n {/* */}\n \n
\n );\n}\n","import { createSlice } from '@reduxjs/toolkit';\nimport COLORS from '../globals/COLORS';\n\nconst getThemeProperties = (theme) => {\n switch (theme) {\n case 'dark':\n return {\n inputField: {\n default: COLORS.AB_TERTIARY_SHADE_1,\n hover: COLORS.AB_TERTIARY,\n focused: COLORS.AB_TERTIARY,\n disabled: COLORS.AB_TERTIARY_SHADE_1,\n },\n checkbox: {\n default: COLORS.AB_TERTIARY,\n checked: COLORS.AB_TERTIARY,\n },\n select: {\n default: COLORS.AB_TERTIARY_SHADE_1,\n },\n datePicker: {\n primary: COLORS.AB_PRIMARY_SHADE_1,\n secondary: COLORS.AB_TERTIARY,\n tertiary: COLORS.AB_TERTIARY_SHADE_1,\n highlight_1: COLORS.AB_PRIMARY_SHADE_2,\n highlight_2: COLORS.AB_SECONDARY,\n },\n };\n case 'light':\n return {\n inputField: {\n default: COLORS.AB_PRIMARY_SHADE_4,\n hover: COLORS.AB_PRIMARY_SHADE_5,\n focused: COLORS.AB_PRIMARY_SHADE_5,\n disabled: COLORS.AB_PRIMARY_SHADE_4,\n },\n checkbox: {\n default: COLORS.AB_PRIMARY,\n checked: COLORS.AB_BLUE_C1,\n },\n select: {\n default: COLORS.AB_PRIMARY_SHADE_4,\n },\n datePicker: {\n primary: COLORS.AB_TERTIARY_SHADE_1,\n secondary: COLORS.AB_PRIMARY,\n tertiary: COLORS.AB_PRIMARY_SHADE_4,\n highlight_1: COLORS.AB_PRIMARY_SHADE_4,\n highlight_2: COLORS.AB_SECONDARY,\n },\n };\n\n default:\n break;\n }\n};\n\nconst currentTheme = localStorage.getItem('color-theme') || 'dark';\n\nconst initialState = {\n colorTheme: {\n palette: {\n type: currentTheme,\n ...getThemeProperties(currentTheme),\n },\n },\n};\n\nconst colorModeSlice = createSlice({\n name: 'colorModeReducer',\n initialState,\n reducers: {\n setColorTheme: (state, action) => {\n state.colorTheme = action.payload;\n },\n },\n});\n\nexport const { setColorTheme } = colorModeSlice.actions;\n\nexport default colorModeSlice.reducer;\n\nexport function switchTheme(theme) {\n return async (dispatch) => {\n let palette = {};\n if (theme === 'dark') {\n palette = {\n type: 'dark',\n ...getThemeProperties(theme),\n };\n } else {\n palette = {\n type: 'light',\n ...getThemeProperties(theme),\n };\n }\n dispatch(setColorTheme({ palette }));\n };\n}\n","import { BrowserRouter as Router, Route, Switch } from \"react-router-dom\";\nimport React, { useEffect, Suspense, lazy } from \"react\";\nimport Layout from \"./Layout\";\n\nimport { MODULES_PATH } from \"./route-constants\";\nimport AuthRouter from \"./pages/auth/router\";\nimport { ThemeProvider } from \"@material-ui/core\";\nimport { createTheme } from \"@material-ui/core/styles\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { switchTheme } from \"./redux/colorModeSlice\";\n\nimport { LoadingAlmabetterDesign } from \"./modules/course-lms-v2/components/shared/components/Loader\";\n\nimport { ToastContainer } from \"react-toastify\";\n\nimport \"./global.css\";\n\nconst LoggedInApp = lazy(() => import(\"./pages/LoggedInApp\"));\n\nfunction App() {\n const dispatch = useDispatch();\n const colorTheme = useSelector((state) => state.colorModeReducer.colorTheme);\n\n const { hideScrollbar } = useSelector((state) => state.homeReducer);\n const appliedTheme = createTheme(colorTheme);\n\n useEffect(() => {\n localStorage.setItem(\"color-theme\", \"light\");\n dispatch(switchTheme(\"light\"));\n // return () => clearInterval(interval);\n }, []);\n\n return (\n \n }>\n \n \n \n \n \n \n \n \n \n \n \n\n
\n \n
\n
\n );\n}\n\nexport default App;\n","import { createSlice } from '@reduxjs/toolkit';\nimport { getAllThemes } from '../modules/new-mentorship/apiService';\n\nconst initialState = {\n themes: [],\n topics: [],\n subTopics: [],\n};\n\nconst themeSlice = createSlice({\n name: 'themeReducer',\n initialState,\n reducers: {\n setThemes: (state, action) => {\n state.themes = action.payload;\n\n let Topics = [];\n action.payload.forEach(({ topics }) => Topics.push(...topics));\n state.topics = Topics;\n\n let SubTopics = [];\n Topics.forEach(({ subTopics }) => SubTopics.push(...subTopics));\n state.subTopics = SubTopics;\n },\n },\n});\n\nexport const { setThemes } = themeSlice.actions;\n\nexport const themesSelector = (state) => state.themeReducer.themes;\n\nexport const topicsSelector = (state) => state.themeReducer.topics;\n\nexport const fetchAllThemes = () => async (dispatch, getState) => {\n const existingThemes = themesSelector(getState());\n if (!existingThemes?.length) {\n const themes = await getAllThemes();\n dispatch(setThemes(themes));\n }\n};\n\nexport default themeSlice.reducer;\n","import { createSlice } from '@reduxjs/toolkit';\nimport { getAllCompanies } from '../services/userApiService';\n\nconst initialState = {\n companies: [],\n};\n\nconst companySlice = createSlice({\n name: 'companyReducer',\n initialState,\n reducers: {\n setAllCompanies: (state, action) => {\n state.companies = action.payload;\n },\n },\n});\n\nexport const { setAllCompanies } = companySlice.actions;\n\nexport function fetchCompanies() {\n return async (dispatch) => {\n const response = await getAllCompanies();\n dispatch(setAllCompanies(response));\n };\n}\n\nexport default companySlice.reducer;\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialState = {\n courseContent: [],\n moduleContent: [],\n lessonContent: {\n activeTopic: '',\n activeTopicDuration: '',\n activeContent: '',\n activeTopics: '',\n codeResult: '',\n code: '',\n isDefault: '',\n codeError: '',\n topicProblems: '',\n selectedQues: '',\n topicProblemCode: [],\n currentLesson: '',\n quizConfig: [],\n showPreview: false,\n gistUrl: '',\n videoUrl: '',\n language: 'javascript',\n multimedia: [],\n },\n};\n\nconst courseDetailsSlice = createSlice({\n name: 'courseDetailsReducer',\n initialState,\n reducers: {\n updateCourseContent: (state, action) => {\n state.courseContent = action.payload.content;\n },\n updateModuleContent: (state, action) => {\n state.moduleContent = action.payload.content;\n },\n updateLessonContent: (state, action) => {\n const {\n name,\n content,\n duration,\n course_problems,\n problem_code,\n assessment_config,\n gistUrl,\n videoUrl,\n multimedia,\n } = action.payload.getTopic;\n state.lessonContent.activeTopics = action.payload.courseLessons;\n state.lessonContent.activeTopic = name;\n state.lessonContent.activeContent = content;\n state.lessonContent.activeTopicDuration = parseInt(duration) / 60;\n state.lessonContent.topicProblems = course_problems?.data || [];\n state.lessonContent.topicProblemCode = problem_code;\n state.lessonContent.quizConfig = assessment_config;\n state.lessonContent.currentLesson = action.payload.lessonId;\n state.lessonContent.gistUrl = gistUrl;\n state.lessonContent.videoUrl = videoUrl;\n state.lessonContent.language = action.payload.language;\n state.lessonContent.multimedia = multimedia;\n },\n updatePreview: (state, action) => {\n state.lessonContent.showPreview = true;\n },\n },\n});\n\nexport const { updateCourseContent, updateModuleContent, updateLessonContent } =\n courseDetailsSlice.actions;\n\nexport default courseDetailsSlice.reducer;\n","import { createSlice } from '@reduxjs/toolkit';\nimport { getQuestionLevels } from '../modules/new-mentorship/apiService';\n\nconst initialState = {\n modules: [],\n competencies: [],\n concepts: [],\n ratingTemplateByConceptId: {},\n};\n\nconst questionLevelsSlice = createSlice({\n name: 'questionLevelsReducer',\n initialState,\n reducers: {\n setQuestionLevels: (state, { payload }) => {\n state.modules.push(...(payload || []));\n state.modules.forEach((m) => state.competencies.push(...(m?.Competencies || [])));\n state.competencies.forEach((c) => {\n state.concepts.push(...(c?.Concepts || []));\n c?.Concepts?.forEach(({ id }) => (state.ratingTemplateByConceptId[id] = c?.RatingTemplate));\n });\n },\n },\n});\n\nexport const { setQuestionLevels } = questionLevelsSlice.actions;\n\nexport const questionLevelsSelector = (state) => state.questionLevelsReducer;\n\nexport const fetchQuestionLevels = () => {\n return async (dispatch, getState) => {\n const { modules } = questionLevelsSelector(getState());\n if (!modules?.length) dispatch(setQuestionLevels(await getQuestionLevels()));\n };\n};\n\nexport default questionLevelsSlice.reducer;\n","import { createSlice } from '@reduxjs/toolkit';\nimport { getAllReferrals } from '../services/referralApiService';\n\nconst initialState = {\n referralAmount: 0,\n referralCode: '',\n balance: 0,\n lifetimeRewards: 0,\n referredUsers: [],\n vouchers: [],\n loading: false,\n loadingOverlay: false,\n showGiftCardInformation: false,\n showRedeemConfirmationOverlay: false,\n showRedeemedMessageOverlay: false,\n giftCardInformation: {},\n redeemedVouchers: [],\n referreDetails: {},\n selectedVoucherDetails: {},\n showGiftOverlay: false,\n placeOrderResponse: {\n errorOccured: false,\n orderDetails: {},\n errorMessage: '',\n },\n showVoucherBlock: true,\n utmParams: {},\n refreeApiCalled: false,\n};\n\nconst referAndEarnSlice = createSlice({\n name: 'referAndEarnReducer',\n initialState,\n reducers: {\n setUserReferralDetails: (state, action) => {\n return {\n ...state,\n referralAmount: action.payload.referralAmount,\n referralCode: action.payload.referralCode,\n balance: action.payload.balance,\n lifetimeRewards: action.payload.lifetimeRewards,\n referredUsers: action.payload.referredUsers,\n utmParams: action.payload.utmParams,\n };\n },\n\n setReferredUsers: (state, action) => {\n return {\n ...state,\n referredUsers: action.payload.referredUsers,\n };\n },\n\n setLoadingStatus: (state, action) => {\n return { ...state, loading: action.payload.loadingStatus };\n },\n\n setLoadingOverlayStatus: (state, action) => {\n return { ...state, loadingOverlay: action.payload.loadingOverlay };\n },\n setRefreeApiCalled: (state, action) => {\n return {\n ...state,\n refreeApiCalled: action.payload,\n };\n },\n\n setVouchersDetails: (state, action) => {\n return {\n ...state,\n vouchers: action.payload.vouchers,\n };\n },\n\n // To Show Gift Card Overlay Or Not\n setGiftCardInformationFlag: (state, action) => {\n return {\n ...state,\n showGiftCardInformation: action.payload.showGiftCardInformation,\n };\n },\n\n // To Show Redeem Confirmation Overlay or Not\n setRedeemConfirmationOverlay: (state, action) => {\n return {\n ...state,\n showRedeemConfirmationOverlay: action.payload.showRedeemConfirmationOverlay,\n };\n },\n\n // To show Redeemed Message Overlay or not\n setRedeemedMessageOverlay: (state, action) => {\n return {\n ...state,\n showRedeemedMessageOverlay: action.payload.showRedeemedMessageOverlay,\n };\n },\n\n // To Set GiftCard Information Object\n setGiftCardInformation: (state, action) => {\n return {\n ...state,\n giftCardInformation: action.payload.giftCardInformation,\n };\n },\n\n // To set Redeemed Vouchers\n setRedeemedVouchers: (state, action) => {\n return {\n ...state,\n redeemedVouchers: action.payload.redeemedVouchers,\n };\n },\n\n // To set Referr Details - Details of the user whose REFERRAL CODE being used by the Current User\n setReferrUserDetails: (state, action) => {\n return {\n ...state,\n referreDetails: action.payload.referreDetails,\n showGiftOverlay: action.payload.showGiftOverlay,\n refreeApiCalled: action.payload.refreeApiCalled,\n };\n },\n\n // To show Gift Overlay on the Payment/Checkout Page or Not\n setGiftOverlay: (state, action) => {\n return {\n ...state,\n showGiftOverlay: action.payload.showGiftOverlay,\n };\n },\n\n setSelectedVoucherDetails: (state, action) => {\n return {\n ...state,\n selectedVoucherDetails: action.payload.selectedVoucherDetails,\n };\n },\n\n // To Set PlaceOrderResponse\n setPlaceOrderResponse: (state, action) => {\n return {\n ...state,\n placeOrderResponse: action.payload.placeOrderResponse,\n };\n },\n\n // To Set the ShowVoucherBlock status in GiftCard Modal\n setVoucherBlock: (state, action) => {\n return { ...state, showVoucherBlock: action.payload.showVoucherBlock };\n },\n },\n});\n\nexport const {\n setUserReferralDetails,\n setLoadingStatus,\n setVouchersDetails,\n setGiftCardInformationFlag,\n setRedeemConfirmationOverlay,\n setRedeemedMessageOverlay,\n setGiftCardInformation,\n setRedeemedVouchers,\n setReferrUserDetails,\n setSelectedVoucherDetails,\n setGiftOverlay,\n setPlaceOrderResponse,\n setLoadingOverlayStatus,\n setVoucherBlock,\n setRefreeApiCalled,\n setReferredUsers,\n} = referAndEarnSlice.actions;\nexport default referAndEarnSlice.reducer;\n\nexport const getReferrals = () => async (dispatch) => {\n const referredUsers = await getAllReferrals();\n referredUsers.sort((user1, user2) => new Date(user2.signupTS) - new Date(user1.signupTS));\n dispatch(setReferredUsers({ referredUsers }));\n};\n","import { createSlice } from '@reduxjs/toolkit';\nimport { returnActualCourseNameForApi } from '../services/getcourse';\nimport { getProblems } from '../services/practiceApiService';\n\nconst initialState = {\n optionTab: 0,\n defaultCodingLanguage: 'javascript',\n currentSelectedProblem: 0,\n currentSelectedCodingLanguage: 'javascript',\n code: {\n python: '',\n javascript: '',\n html: '',\n css: '',\n react: '',\n java: '',\n },\n headerIcon: {\n reset: false,\n settings: false,\n fullscreen: false,\n },\n tableData: {\n data: [],\n totalCount: 0,\n solvedCount: 0,\n solvedProblems: [],\n unsolvedProblems: [],\n },\n problemsList: {\n data: [],\n solvedCount: 0,\n },\n updateSubmission: false,\n};\n\nconst problemDetailSlice = createSlice({\n name: 'problemDetailReducer',\n initialState,\n reducers: {\n selectTab: (state, action) => {\n state.optionTab = action.payload;\n },\n setUpdateSubmissions: (state, action) => {\n state.updateSubmission = action.payload;\n },\n selectDefaultCodingLanguage: (state, action) => {\n state.defaultCodingLanguage = action.payload.language;\n },\n selectedCodingLanguage: (state, action) => {\n state.currentSelectedCodingLanguage = action.payload;\n },\n resetTab: (state, action) => {\n state.optionTab = 0;\n },\n setCurrentSelectedProblem: (state, action) => {\n state.currentSelectedProblem = action.payload;\n },\n updateCode: (state, action) => {\n state.code[state.currentSelectedCodingLanguage] = action.payload;\n },\n resetCode: (state, action) => {\n state.code = {\n python: '',\n javascript: '',\n html: '',\n css: '',\n react: '',\n java: '',\n };\n },\n updateHeaderIcon: (state, action) => {\n state.headerIcon[action.payload.icon] = action.payload.value;\n },\n setTableData: (state, action) => {\n const compare = (a, b) => {\n if (!a.attributes.isLocked && b.attributes.isLocked) return -1;\n return 0;\n };\n\n const dataArray = action?.payload?.data;\n dataArray && dataArray.sort(compare);\n\n const unsolvedProblems = dataArray.filter(\n (problem) => problem.attributes.solvedStatus === 'unsolved'\n );\n const solvedProblems = dataArray.filter(\n (problem) => problem.attributes.solvedStatus === 'solved'\n );\n state.tableData.solvedProblems = solvedProblems;\n state.tableData.unsolvedProblems = unsolvedProblems;\n state.tableData.data = dataArray;\n state.tableData.solvedCount = action.payload.solved ?? action.payload.solvedCount;\n },\n setProblemsList: (state, action) => {\n state.problemsList.data = action.payload?.data;\n state.problemsList.solvedCount = action.payload?.solved ?? action.payload?.solvedCount;\n },\n },\n});\n\nexport function fetchProblems() {\n return async (dispatch, getState) => {\n try {\n const userSubscription = getState().userSubscriptionReducer.subscriptionDetails;\n const courseSelected = Object.keys(userSubscription)[0];\n const actualCourseSelected = getState().courseReducer.courseSelected;\n const modifiedCourse = returnActualCourseNameForApi(actualCourseSelected || courseSelected);\n const data = await getProblems(modifiedCourse);\n dispatch(setTableData(data));\n dispatch(setProblemsList(data));\n } catch (error) {\n console.error(error);\n }\n };\n}\n\nexport const {\n currentOptionTab,\n selectDefaultCodingLanguage,\n selectTab,\n selectedCodingLanguage,\n resetTab,\n setCurrentSelectedProblem,\n updateCode,\n updateHeaderIcon,\n setUpdateSubmissions,\n setTableData,\n setProblemsList,\n resetCode,\n} = problemDetailSlice.actions;\n\nexport default problemDetailSlice.reducer;\n","import { createSlice } from '@reduxjs/toolkit';\nimport { returnActualCourseNameForApi } from '../services/getcourse';\nimport {\n getCodingAssessment,\n getQuizAssessment,\n getSkillsFilter,\n} from '../services/practiceApiService';\n\nconst initialState = {\n localNavigationRoutes: {\n currSelectedTab: 0,\n practiceTabs: {\n coding_problem: 1,\n coding_assesment: 1,\n quiz_assesment: 1,\n },\n lockFilter: {\n coding_problem: 'default',\n },\n },\n codingAssessment: {},\n quiz_assesment: {},\n skillsFilterData: null,\n codingAssessmentProblemList: {\n data: [],\n solvedCount: null,\n popupShown: false,\n assessmentId: null,\n totalProblems: null,\n },\n};\n\nconst practiceSlice = createSlice({\n name: 'problemDetailReducer',\n initialState,\n reducers: {\n selectTab: (state, action) => {\n state.localNavigationRoutes.practiceTabs[action.payload.currentPracticeTab] =\n action.payload.sub_tab;\n },\n selectLockFilter: (state, action) => {\n state.localNavigationRoutes.lockFilter[action.payload.currentPracticeTab] =\n action.payload.lockFilter;\n },\n selectCurrentTab: (state, action) => {\n state.localNavigationRoutes.currSelectedTab = action.payload.currSelectedTab;\n },\n setCodingAssessment: (state, action) => {\n const compare = (a, b) => {\n if (!a.attributes.isLocked && b.attributes.isLocked) return -1;\n return 0;\n };\n if (!action?.payload?.noComparator) {\n const dataArray = action?.payload?.data;\n dataArray && dataArray.sort(compare);\n }\n state.codingAssessment = action.payload;\n },\n setQuizAssessment: (state, action) => {\n const compare = (a, b) => {\n if (!a.attributes.isLocked && b.attributes.isLocked) return -1;\n return 0;\n };\n\n const dataArray = action?.payload?.data;\n dataArray && dataArray.sort(compare);\n\n state.quiz_assesment = action.payload;\n },\n setSkillFilter: (state, action) => {\n state.skillsFilterData = action.payload;\n },\n setCodingAssesmentProblemsList: (state, action) => {\n state.codingAssessmentProblemList = action.payload;\n },\n },\n});\n\nexport function fetchCodingAssessment() {\n return async (dispatch, getState) => {\n try {\n const userSubscription = getState().userSubscriptionReducer.subscriptionDetails;\n const courseSelected = Object.keys(userSubscription)?.[0];\n const actualCourseSelected = getState().courseReducer?.courseSelected;\n const modifiedCourse = returnActualCourseNameForApi(actualCourseSelected || courseSelected);\n const codingAssessment = await getCodingAssessment(modifiedCourse);\n dispatch(setCodingAssessment(codingAssessment));\n } catch (error) {\n console.error(error);\n }\n };\n}\n\nexport function fetchCodingAssessmentById(currentPath, assessmentId) {\n return async (dispatch, getState) => {\n try {\n if (currentPath) {\n const current = getState().practiceReducer?.codingAssessment?.data?.find(\n (i) => i.id === assessmentId\n );\n const learnProblems = {\n data: current?.attributes?.learn_problems?.data,\n solvedCount: current?.attributes?.solved,\n popupShown: current?.attributes.popupShown,\n assessmentId: assessmentId,\n totalProblems: current?.attributes?.totalProblems,\n };\n dispatch(setCodingAssesmentProblemsList(learnProblems));\n return learnProblems;\n }\n } catch (error) {\n console.error(error);\n }\n };\n}\n\nexport function fetchQuizAssessment() {\n return async (dispatch, getState) => {\n try {\n const userSubscription = getState().userSubscriptionReducer.subscriptionDetails;\n const courseSelected = Object.keys(userSubscription)[0];\n const actualCourseSelected = getState().courseReducer.courseSelected;\n const modifiedCourse = returnActualCourseNameForApi(actualCourseSelected || courseSelected);\n const quizAssessment = await getQuizAssessment(modifiedCourse);\n dispatch(setQuizAssessment(quizAssessment));\n return quizAssessment;\n } catch (error) {\n console.error(error);\n }\n };\n}\n\nexport function fetchSkillFilters() {\n return async (dispatch, getState) => {\n try {\n const userSubscription = getState().userSubscriptionReducer.subscriptionDetails;\n const courseSelected = Object.keys(userSubscription)[0];\n const actualCourseSelected = getState().courseReducer.courseSelected;\n const modifiedCourse = returnActualCourseNameForApi(actualCourseSelected || courseSelected);\n const skillFilter = await getSkillsFilter(modifiedCourse);\n dispatch(setSkillFilter(skillFilter));\n } catch (error) {\n console.error(error);\n }\n };\n}\n\nexport const {\n selectTab,\n setCodingAssessment,\n selectCurrentTab,\n setQuizAssessment,\n setSkillFilter,\n selectLockFilter,\n setCodingAssesmentProblemsList,\n} = practiceSlice.actions;\n\nexport default practiceSlice.reducer;\n","import { createSlice } from '@reduxjs/toolkit';\nimport dayjs from 'dayjs';\nimport { returnActualCourseNameForApi } from '../services/getcourse';\nimport { getProjects } from '../services/projectApiService';\n\nconst initialState = {\n newProjects: null,\n submittedProjects: null,\n allProjects: null,\n currTab: 1,\n};\n\nconst projectSlice = createSlice({\n name: 'projectReducer',\n initialState,\n reducers: {\n updateProjects: (state, action) => {\n state.newProjects = action.payload.projectData;\n state.submittedProjects = action.payload.submittedProjects;\n state.allProjects = action.payload.allProjects;\n },\n setCurrTab: (state, action) => {\n state.currTab = action.payload;\n },\n resetAllProjectsData: (state, action) => {\n state.newProjects = null;\n state.submittedProjects = null;\n state.allProjects = null;\n },\n },\n});\n\nexport function fetchProjects() {\n return async (dispatch, getState) => {\n try {\n const userSubscription = getState().userSubscriptionReducer.subscriptionDetails;\n const courseSelected = Object.keys(userSubscription)[0];\n const actualCourseSelected = getState().courseReducer.courseSelected;\n const modifiedCourse = returnActualCourseNameForApi(actualCourseSelected || courseSelected);\n const data = await getProjects(modifiedCourse);\n const projectData = {};\n const submittedProjects = {};\n data.data.sort((a, b) => {\n if (b?.attributes?.createdAt) {\n return dayjs(b?.attributes?.createdAt) - dayjs(a?.attributes?.createdAt);\n }\n return -1;\n });\n\n data?.data?.forEach((item) => {\n const attributs = { ...item?.attributes, projectId: item?.id };\n if (item?.attributes?.solvedStatus === 'unsolved') {\n const module = item?.attributes?.module;\n if (projectData?.[module]) {\n projectData[module] = [...projectData[module], attributs];\n } else {\n projectData[module] = [attributs];\n }\n } else {\n const module = item?.attributes?.module;\n if (submittedProjects?.[module]) {\n submittedProjects[module] = [...submittedProjects[module], attributs];\n } else {\n submittedProjects[module] = [attributs];\n }\n }\n });\n dispatch(updateProjects({ projectData, submittedProjects, allProjects: data?.data }));\n } catch (error) {\n console.error(error);\n }\n };\n}\n\nexport const { updateProjects, setCurrTab, resetAllProjectsData } = projectSlice.actions;\n\nexport default projectSlice.reducer;\n","import { createSlice } from '@reduxjs/toolkit';\nimport _ from 'lodash';\nimport { getMentorList } from 'src/modules/new-mentorship/apiService';\nimport { returnCourseApiName } from 'src/services/getcourse';\nimport { getEgligibilityForExtension } from 'src/services/userApiService';\nimport { chapterOrderSet } from '../modules/course-lms-v2/components/shared/utils';\nimport {\n getCarrerContent,\n getCoachesChampions,\n getEgligibilityCriteria,\n getFreeUserCarrer,\n} from '../services/carrerTabApiService';\nimport { returnActualCourseNameForApi } from '../services/getcourse';\n\nconst carrerSlice = createSlice({\n name: 'carrerReducer',\n initialState: {\n almaXCoach: null,\n egligibilityCriteria: null,\n content: null,\n freeUser: null,\n almaxConfirmation: null,\n mentors: null,\n egligibleForExtension: {},\n },\n reducers: {\n setMentors: (state, action) => {\n state.mentors = action.payload;\n },\n setAlmaXCoach: (state, action) => {\n state.almaXCoach = action.payload;\n },\n setEgligibilityCriteria: (state, action) => {\n state.egligibilityCriteria = action.payload;\n },\n setContent: (state, action) => {\n state.content = action.payload;\n },\n setFreeUser: (state, action) => {\n state.freeUser = action.payload;\n },\n resetAllCarrerData: (state, action) => {\n state.almaXCoach = null;\n state.egligibilityCriteria = null;\n state.content = null;\n state.freeUser = null;\n },\n setCheckForExtension: (state, action) => {\n state.egligibleForExtension = action.payload;\n },\n },\n});\n\nexport const {\n setAlmaXCoach,\n setEgligibilityCriteria,\n setContent,\n setFreeUser,\n resetAllCarrerData,\n setAlmaxConfirmation,\n setMentors,\n setCheckForExtension,\n} = carrerSlice.actions;\n\nexport const getAllMentors = (state) => state.carrerReducer.mentors;\n\nexport const egligibleForExtension = (state) => state.carrerReducer.egligibleForExtension;\n\nexport const fetchExtensionData = (course) => {\n return async (dispatch) => {\n try {\n const res = await getEgligibilityForExtension();\n dispatch(setCheckForExtension(res));\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport const fetchAlmaXCoaches = () => {\n return async (dispatch, getState) => {\n try {\n const userSubscription = getState().userSubscriptionReducer.subscriptionDetails;\n const courseSelected = Object.keys(userSubscription)[0];\n const actualCourseSelected = getState().courseReducer.courseSelected;\n const modifiedCourse = returnActualCourseNameForApi(actualCourseSelected || courseSelected);\n const result = await getCoachesChampions(modifiedCourse);\n dispatch(setAlmaXCoach(result));\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nconst careerModuleMapper = (data) => {\n try {\n const modulesData = [...data?.moduleCriterias];\n const moduleOrder = data?.moduleOrder ?? '';\n const moduleSlugs = moduleOrder.split('\\n');\n const sortedData = [...modulesData].sort((a, b) => {\n const slugA = a?.moduleData?.data?.attributes?.slug ?? '';\n const slugB = b?.moduleData?.data?.attributes?.slug ?? '';\n const indexA = moduleSlugs.indexOf(slugA);\n const indexB = moduleSlugs.indexOf(slugB);\n return indexA - indexB;\n });\n data.moduleCriterias = sortedData;\n return data;\n } catch (error) {\n console.error(error);\n }\n};\n\nexport const fetchEgligibilityCriteria = () => {\n return async (dispatch, getState) => {\n try {\n const userSubscription = getState().userSubscriptionReducer.subscriptionDetails;\n const courseSelected = Object.keys(userSubscription)[0];\n const actualCourseSelected = getState().courseReducer.courseSelected;\n const modifiedCourse = returnActualCourseNameForApi(actualCourseSelected || courseSelected);\n const result = await getEgligibilityCriteria(modifiedCourse);\n const cloneResult = _.cloneDeep(result);\n const mapped = careerModuleMapper(cloneResult);\n dispatch(setEgligibilityCriteria(mapped));\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport const fetchCarrerContent = (courseSelected) => {\n return async (dispatch, getState) => {\n try {\n const apiCourseName = returnActualCourseNameForApi(courseSelected);\n const { almaxContent } = await getCarrerContent(apiCourseName);\n const courseData = almaxContent?.attributes?.learn_tracks?.data?.[0]?.attributes;\n const finalData = chapterOrderSet(courseData);\n dispatch(setContent(finalData));\n } catch (error) {\n console.error(error, 'error');\n }\n };\n};\n\nexport const fetchFreeUserCarrer = (course) => {\n return async (dispatch, getState) => {\n try {\n const userSubscription = getState().userSubscriptionReducer.subscriptionDetails;\n const courseSelected = Object.keys(userSubscription)[0];\n const actualCourseSelected = getState().courseReducer.courseSelected;\n const modifiedCourse = returnActualCourseNameForApi(actualCourseSelected || courseSelected);\n const planType = (actualCourseSelected ?? courseSelected).includes('masters')\n ? 'masters'\n : 'pro_live';\n const result = await getFreeUserCarrer({\n course: modifiedCourse,\n plan: planType,\n });\n dispatch(setFreeUser(result));\n } catch (error) {\n console.error(error, 'error');\n }\n };\n};\n\nexport const fetchMentorsList = () => {\n return async (dispatch, getState) => {\n try {\n const userSubscription = getState().userSubscriptionReducer.subscriptionDetails;\n const courseSelected = Object.keys(userSubscription)[0];\n const actualCourseSelected = getState().courseReducer.courseSelected;\n const course = returnCourseApiName(actualCourseSelected || courseSelected);\n const modifiedCourse = returnActualCourseNameForApi(course);\n const response = await getMentorList(modifiedCourse);\n dispatch(setMentors(response));\n } catch (error) {\n console.error('error fetching data', error);\n }\n };\n};\n\nexport default carrerSlice.reducer;\n","/* eslint-disable camelcase */\nimport _ from 'lodash';\nimport { COURSE_TYPE } from 'src/constants';\n\nexport const individualTrackProgress = (courseData, item = 'FOUNDATION_TRACK', trackModules) => {\n try {\n const modules = trackModules ?? courseData?.[item]?.learn_modules;\n const weightage = 100 / modules?.length / 100;\n let progress = 0;\n for (const module of modules) {\n progress += moduleProgress(module) * weightage;\n }\n return Math.round(progress ?? 0);\n } catch (error) {\n console.error(error);\n }\n};\n\nexport const bootcampProgress = (courseData, name = 'FOUNDATION_TRACK') => {\n const trackProgress = individualTrackProgress(courseData, name);\n const clonedCourseData = _.cloneDeep(courseData);\n clonedCourseData.BASIC_INFO.progress = trackProgress;\n return clonedCourseData;\n};\n\nexport const ugProgress = (courseData) => {\n try {\n const weightage = {\n foundation: 0.5,\n specialisation: 0.25,\n industry: 0.25,\n };\n\n const foundationTrackProgress = individualTrackProgress(courseData, 'FOUNDATION_TRACK') ?? 0;\n const industryTrackProgress = individualTrackProgress(courseData, 'INDUSTRY_TRACK') ?? 0;\n const specialisationProgress = individualTrackProgress(courseData, 'SPECIALISATION_TRACK') ?? 0;\n\n const courseProgress =\n weightage.foundation * foundationTrackProgress +\n weightage.industry * industryTrackProgress +\n weightage.specialisation * specialisationProgress;\n return Math.round(courseProgress);\n } catch (error) {\n console.error(error);\n }\n};\n\nexport const mastersProgress = (courseData) => {\n try {\n let totalProgress = 0;\n const specialisationAccess = courseData?.FOUNDATION_TRACK?.progress >= 100;\n const foundationTrackProgress = individualTrackProgress(courseData, 'FOUNDATION_TRACK') ?? 0;\n const industryTrackProgress = individualTrackProgress(courseData, 'INDUSTRY_TRACK') ?? 0;\n const specialisationProgress = specialisationAccess\n ? individualTrackProgress(courseData, 'SPECIALISATION_TRACK') ?? 0\n : 0;\n\n const weightage = 100 / 3 / 100;\n\n totalProgress =\n weightage * foundationTrackProgress +\n weightage * industryTrackProgress +\n weightage * specialisationProgress;\n totalProgress = Math.round(totalProgress ?? 0);\n\n return {\n totalProgress,\n FOUNDATION_TRACK: foundationTrackProgress,\n INDUSTRY_TRACK: industryTrackProgress,\n SPECIALISATION_TRACK: specialisationProgress,\n };\n } catch (error) {\n console.error(error);\n }\n};\n\nexport const moduleProgress = (item) => {\n if (!item) return 0;\n try {\n const isProjectPresent = item?.attributes?.project_categories?.data?.length > 0 ?? null;\n const { solvedLessonsCount, totalLessonsCount } = item?.attributes ?? {};\n const isModuleProjectCompleted = item?.attributes?.projectStatus ?? null;\n let progress = 0;\n if (isProjectPresent) {\n progress = (solvedLessonsCount / totalLessonsCount) * 90;\n if (isModuleProjectCompleted) {\n progress += 10;\n }\n } else {\n progress = (solvedLessonsCount / totalLessonsCount) * 100;\n }\n return Math.floor(progress) ?? 0;\n } catch (error) {\n console.error(error);\n return 0;\n }\n};\n\nexport function convertToWeeksOrMonths(value, unit = 'weeks') {\n const minutesInHour = 60;\n const hoursInDay = 24;\n const daysInWeek = 7;\n const daysInMonth = 30;\n\n let conversionFactor;\n\n if (unit === 'weeks') {\n conversionFactor = minutesInHour * hoursInDay * daysInWeek;\n } else if (unit === 'months') {\n conversionFactor = minutesInHour * hoursInDay * daysInMonth;\n }\n const result = (value ?? 0) / conversionFactor;\n return parseInt(result);\n}\n\nexport const lessonContentMapper = (lesson) => {\n const lessonActivities = [];\n if (\n !_.isEmpty(lesson?.attributes?.gistUrl) ||\n !_.isEmpty(lesson?.attributes?.notion_id) ||\n !_.isEmpty(lesson?.attributes?.content)\n ) {\n lessonActivities.push('Concept');\n }\n if (\n !_.isEmpty(lesson?.attributes?.video_url) ||\n !_.isEmpty(lesson?.attributes?.cdnVideoUrl) ||\n !_.isEmpty(lesson?.attributes?.videoUrl)\n ) {\n lessonActivities.push('Video');\n }\n if (lesson?.attributes?.coding_assessment?.data) {\n lessonActivities.push('Code');\n }\n if (lesson?.attributes?.learn_assessment?.data) {\n lessonActivities.push('Quiz');\n }\n if (lesson?.attributes?.learn_assignment?.data) {\n lessonActivities.push('Assignment');\n }\n if (lesson?.attributes?.peer_review_publication) {\n lessonActivities.push('Peer');\n }\n return lessonActivities;\n};\n\nexport const moduleProgressData = (courseData, moduleProgress) => {\n const data = _.cloneDeep(courseData);\n if (data?.courseId !== moduleProgress?.courseId) return courseData;\n\n const parsedKeys = Object.keys(data).filter((item) => {\n if (item !== 'BASIC_INFO' && item !== 'courseId') {\n return data[item];\n }\n return null;\n });\n\n const parsedData = parsedKeys.map((item) => data[item]);\n\n const tracksData = parsedData?.map((item) => {\n item.learn_modules?.forEach((module) => {\n if (module.id === moduleProgress?.moduleId) {\n module.attributes.progress = moduleProgress?.progress;\n }\n });\n return item;\n });\n const obj = {\n ...courseData,\n };\n tracksData?.forEach((item) => {\n const type = item?.trackType;\n if (type) {\n const trackType = type.includes('foundation')\n ? 'FOUNDATION_TRACK'\n : type.includes('industry')\n ? 'INDUSTRY_TRACK'\n : 'SPECIALISATION_TRACK';\n\n obj[trackType] = {\n ...item,\n };\n }\n });\n return obj;\n};\n\nexport const trackProgressData = (courseData, trackProgress) => {\n try {\n const data = _.cloneDeep(courseData);\n if (data?.courseId !== trackProgress?.courseId) return courseData;\n\n const parsedKeys = Object.keys(data).filter((item) => {\n if (item !== 'BASIC_INFO' && item !== 'courseId') {\n return data[item];\n }\n return null;\n });\n\n const parsedData = parsedKeys.map((item) => data[item]);\n const tracksData = parsedData?.map((item) => {\n if (trackProgress?.tracks) {\n trackProgress?.tracks?.forEach((track) => {\n if (item.id === track?.trackId) {\n item.progress = track?.progress;\n }\n });\n }\n\n return item;\n });\n const obj = {\n ...courseData,\n };\n tracksData?.forEach((item) => {\n const type = item?.trackType;\n if (type) {\n const trackType = type.includes('foundation')\n ? 'FOUNDATION_TRACK'\n : type.includes('industry')\n ? 'INDUSTRY_TRACK'\n : 'SPECIALISATION_TRACK';\n\n obj[trackType] = {\n ...item,\n };\n }\n });\n return obj;\n } catch (error) {\n console.error(error);\n }\n};\n\nexport const courseProgressData = (courseData, courseProgress) => {\n const data = _.cloneDeep(courseData);\n if (data?.courseId !== courseProgress?.courseId) return courseData;\n const obj = {\n ...data,\n BASIC_INFO: {\n ...data.BASIC_INFO,\n progress: courseProgress?.progress ?? 0,\n },\n };\n return obj;\n};\n\nexport const projectProgressData = (courseData, projectProgress) => {\n const data = _.cloneDeep(courseData);\n if (data?.courseId !== projectProgress?.courseId) return courseData;\n\n const parsedKeys = Object.keys(data).filter((item) => {\n if (item !== 'BASIC_INFO' && item !== 'courseId') {\n return data[item];\n }\n return null;\n });\n const parsedData = parsedKeys.map((item) => data[item]);\n const tracksData = parsedData?.map((item) => {\n item.learn_modules?.forEach((module) => {\n if (module.id === projectProgress?.moduleId) {\n module.attributes.projectStatus = projectProgress?.projectStatus === 'completed';\n }\n });\n return item;\n });\n const obj = {\n ...courseData,\n };\n tracksData?.forEach((item) => {\n const type = item?.trackType;\n if (type) {\n const trackType = type.includes('foundation')\n ? 'FOUNDATION_TRACK'\n : type.includes('industry')\n ? 'INDUSTRY_TRACK'\n : 'SPECIALISATION_TRACK';\n\n obj[trackType] = {\n ...item,\n };\n }\n });\n return obj;\n};\n\nexport const lessonCompletedData = (courseData, lessonData) => {\n const data = _.cloneDeep(courseData);\n if (data?.courseId !== lessonData?.courseId) return courseData;\n const parsedKeys = Object.keys(data).filter((item) => {\n if (item !== 'BASIC_INFO' && item !== 'courseId') {\n return data[item];\n }\n return null;\n });\n const parsedData = parsedKeys.map((item) => data[item]);\n const tracksData = parsedData?.map((item) => {\n lessonData?.trackIds?.forEach((trackId) => {\n if (item.id === trackId) {\n item.learn_modules?.forEach((module) => {\n module.attributes.learn_chapters.data.forEach((chapter) => {\n if (chapter?.id === lessonData?.chapterId) {\n chapter.attributes.learn_lessons.data.forEach((lesson) => {\n if (lesson?.id === lessonData?.lessonId) {\n lesson.attributes.solvedStatus =\n lessonData?.status === 'completed' ? 'complete' : 'in-progress';\n }\n });\n }\n });\n });\n }\n });\n\n return item;\n });\n const obj = {\n ...courseData,\n };\n tracksData?.forEach((item) => {\n const type = item?.trackType;\n if (type) {\n const trackType = type.includes('foundation')\n ? 'FOUNDATION_TRACK'\n : type.includes('industry')\n ? 'INDUSTRY_TRACK'\n : 'SPECIALISATION_TRACK';\n\n obj[trackType] = {\n ...item,\n };\n }\n });\n return obj;\n};\n\nexport const returnLastLesson = (courseData, lastLesson) => {\n try {\n const { trackId, moduleId, chapterId, lessonId } = lastLesson;\n const lastTrack = Object.values(courseData)?.find((i) => i?.id === parseInt(trackId));\n const module = lastTrack?.learn_modules?.find((i) => i?.id === parseInt(moduleId)) ?? null;\n const moduleIndex =\n lastTrack?.learn_modules?.findIndex((i) => i?.id === parseInt(moduleId)) ?? 0;\n const chapter =\n module?.attributes?.learn_chapters?.data?.find((i) => i?.id === parseInt(chapterId)) ?? null;\n const chapterIndex =\n module?.attributes?.learn_chapters?.data?.findIndex((i) => i?.id === parseInt(chapterId)) ??\n 0;\n const lesson = chapter?.attributes?.learn_lessons?.data?.find(\n (i) => i?.id === parseInt(lessonId)\n );\n const lastTrackType = lastTrack?.trackType ?? '';\n const convertedName = lastTrackType?.includes('specialisation')\n ? 'SPECIALISATION_TRACK'\n : lastTrackType?.includes('foundation')\n ? 'FOUNDATION_TRACK'\n : lastTrackType?.includes('industry')\n ? 'INDUSTRY_TRACK'\n : 'SPECIALISATION_TRACK' ?? '';\n\n return {\n lastChapterLesson: lesson?.id,\n openChapter: chapter\n ? {\n [moduleIndex]: {\n [chapterIndex]: true,\n },\n }\n : null,\n currTab: convertedName,\n lastTrack,\n };\n } catch (error) {\n console.error(error);\n return {\n lastChapterLesson: null,\n openChapter: null,\n currTab: null,\n lastTrack: null,\n };\n }\n};\n\nexport const courseTag = (course, masters) => {\n if (course === COURSE_TYPE.DATA_SCIENCE && !masters) {\n return { months: 6, modules: 6 };\n } else if (course === COURSE_TYPE.DATA_SCIENCE && masters) {\n return { months: 15, modules: 13 };\n } else if (course === COURSE_TYPE.WEB_DEV && !masters) {\n return {\n months: 6,\n modules: 5,\n };\n } else if (course === COURSE_TYPE.WEB_DEV && masters) {\n return {\n months: 15,\n modules: 13,\n };\n } else if (course === COURSE_TYPE.MASTERS_CS) {\n return {\n months: 15,\n modules: 13,\n };\n } else if (course === COURSE_TYPE.MASTERS_DS_AS) {\n return {\n months: 15,\n modules: 13,\n };\n } else if (course === COURSE_TYPE.UG_DIPLOMA_CS) {\n return {\n months: 12,\n modules: 9,\n };\n }\n};\n\nexport const moduleCardInfo = (item) => {\n if (!item) return 0;\n try {\n const isProjectPresent = item?.attributes?.project_categories?.data?.length > 0 ?? null;\n const strings = [];\n if (isProjectPresent) {\n strings.push(\n '90% progress equally on completing all lessons',\n '10% progress on completing the capstone project'\n );\n } else {\n strings.push('100% progress on completing all lessons');\n }\n return strings;\n } catch (error) {\n console.error(error);\n return 0;\n }\n};\n\nexport const gradeInfo = (item) => {\n try {\n const isProjectPresent = item?.attributes?.project_categories?.data?.length > 0 ?? null;\n const isGradePresent = item?.attributes?.learn_chapters?.data?.some((chapter) =>\n chapter?.attributes?.learn_lessons?.data?.some((lesson) => {\n return lesson?.attributes?.learn_assessment?.data?.attributes?.gradeWeight;\n })\n );\n const strings = [];\n if (isGradePresent) {\n strings.push('Mid/End Course Quiz Assessment');\n }\n if (isProjectPresent) {\n strings.push('Capstone Project');\n }\n return strings;\n } catch (error) {\n console.error(error);\n }\n};\n","import { createSlice } from '@reduxjs/toolkit';\nimport {\n courseProgressData,\n lessonCompletedData,\n moduleProgressData,\n projectProgressData,\n trackProgressData,\n} from '../pages/[course-type]/learn/[course-name]/utils';\nimport { setCourseData } from './learnTabSlice';\n\nexport const progressEventMapping = {\n coding_problem_solved: 'codingProblemProgress',\n track_progress: 'trackProgress',\n course_progress: 'courseProgress',\n module_progress: 'moduleProgress',\n project_evaluated: 'projectEvaluated',\n lesson_status: 'lessonStatus',\n};\n\nconst initialState = {\n moduleProgress: {},\n courseProgress: {},\n trackProgress: {},\n codingProblemProgress: {},\n projectEvaluated: {},\n lessonStatus: {},\n};\n\nconst webscoketSlice = createSlice({\n name: 'webSocketReducer',\n initialState,\n reducers: {\n updateProgress: (state, action) => {\n const { eventType, eventData } = action.payload;\n state[eventType] = eventData;\n },\n updateModuleProgress: (state, action) => {\n state.moduleProgress = action.payload;\n },\n updateCourseProgress: (state, action) => {\n state.courseProgress = action.payload;\n },\n updateTrackProgress: (state, action) => {\n state.trackProgress = action.payload;\n },\n updateCodingProblemProgress: (state, action) => {\n state.codingProblemProgress = action.payload;\n },\n updateLessonCompleted: (state, action) => {\n state.lessonCompleted = action.payload;\n },\n },\n});\n\nexport const getProgressUpdatesFromWebSocket = (message) => {\n return async (dispatch, getState) => {\n try {\n const courseData = getState().learnTabReducer.courseData ?? {};\n const eventType = progressEventMapping?.[message.eventType] ?? null;\n if (eventType) {\n dispatch(updateProgress({ eventType, eventData: message.eventData }));\n }\n if (eventType === 'trackProgress') {\n const trackData = trackProgressData(courseData, message.eventData);\n await dispatch(setCourseData(trackData));\n }\n if (eventType === 'moduleProgress') {\n const moduleData = moduleProgressData(courseData, message.eventData);\n await dispatch(setCourseData(moduleData));\n }\n if (eventType === 'courseProgress') {\n const course = courseProgressData(courseData, message.eventData);\n await dispatch(setCourseData(course));\n }\n if (eventType === 'projectEvaluated') {\n const projectData = projectProgressData(courseData, message.eventData);\n await dispatch(setCourseData(projectData));\n }\n if (eventType === 'lessonStatus') {\n const lessonComplete = lessonCompletedData(courseData, message.eventData);\n await dispatch(setCourseData(lessonComplete));\n }\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport const {\n updateProgress,\n updateModuleProgress,\n updateTrackProgress,\n updateCourseProgress,\n updateCodingProblemProgress,\n updateLessonCompleted,\n} = webscoketSlice.actions;\n\nexport default webscoketSlice.reducer;\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialState = {\n ugLoadOnboarding: false,\n ugCurrentPage: null,\n ugContinueOnboarding: false,\n};\n\nconst ugCourseSlice = createSlice({\n name: 'ugReducer',\n initialState,\n reducers: {\n setUgLoadOnboarding(state, action) {\n state.ugLoadOnboarding = action.payload;\n },\n setUgContinueOnboarding(state, action) {\n state.ugContinueOnboarding = action.payload;\n },\n setUgCurrentPage(state, action) {\n state.ugCurrentPage = action.payload;\n },\n },\n});\n\nexport const { setUgLoadOnboarding, setUgCurrentPage, setUgContinueOnboarding } =\n ugCourseSlice.actions;\n\nexport const loadUgOnboarding = (state) => state.ugReducer.ugLoadOnboarding;\nexport const currentUgState = (state) => state.ugReducer.ugCurrentPage;\nexport const continueUgOnboarding = (state) => state.ugReducer.ugContinueOnboarding;\n\nexport default ugCourseSlice.reducer;\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialState = {\n showStripBanner: null,\n};\n\nconst bannerSlice = createSlice({\n name: 'bannerReducer',\n initialState,\n reducers: {\n setShowStripBanner: (state, action) => {\n state.showStripBanner = action.payload;\n },\n },\n});\n\nexport const { setShowStripBanner } = bannerSlice.actions;\n\nexport const getshowStripBanner = (state) => state.bannerReducer.showStripBanner;\n\nexport default bannerSlice.reducer;\n","import { createSlice } from '@reduxjs/toolkit';\nimport {\n getAllJobs,\n getJobParams,\n getSavedJobs,\n getSavedJobsCount,\n} from '../services/jobBoard.service';\n\nconst initialState = {\n jobs: {},\n savedJobs: {},\n loading: false,\n currentPage: 1,\n savedJobsCount: null,\n currentSavedJobsPage: 1,\n filterParams: {},\n searchRole: '',\n filters: {\n workExperience: {},\n location: [],\n disableFilter: true,\n domain: '',\n employmentType: '',\n workString: '',\n jobLocation: '',\n skills: [],\n companies: [],\n },\n};\n\nconst jobBoardSlice = createSlice({\n name: 'jobBoardReducer',\n initialState,\n reducers: {\n updateJobs: (state, action) => {\n state.jobs = action.payload;\n },\n updateSavedJobs: (state, action) => {\n state.savedJobs = action.payload;\n },\n setLoading: (state, action) => {\n state.loading = action.payload;\n },\n updateCurrentPage: (state, action) => {\n state.currentPage = action.payload;\n },\n updateJobLocation: (state, action) => {\n state.filters.jobLocation = action.payload;\n },\n updateSavedJobsCount: (state, action) => {\n state.savedJobsCount = action.payload;\n },\n updateSavedJobsCurrentPage: (state, action) => {\n state.currentSavedJobsPage = action.payload;\n },\n updateFilterParams: (state, action) => {\n state.filterParams = action.payload;\n },\n updateSearchRole: (state, action) => {\n state.searchRole = action.payload;\n },\n updateLocationFilter: (state, action) => {\n state.filters.location = action.payload;\n },\n updateSkillsFilter: (state, action) => {\n state.filters.skills = action.payload;\n },\n updateComapniesFilter: (state, action) => {\n state.filters.companies = action.payload;\n },\n updateDomainFilter: (state, action) => {\n state.filters.domain = action.payload;\n },\n updateEmploymentTypeFilter: (state, action) => {\n state.filters.employmentType = action.payload;\n },\n updateWorkExperienceFilter: (state, action) => {\n state.filters.workExperience = action.payload;\n },\n updateWorkStringFilter: (state, action) => {\n state.filters.workString = action.payload;\n },\n updateDisableFilter: (state, action) => {\n state.filters.disableFilter = action.payload;\n },\n resetFilters: (state) => {\n state.filters = {\n workExperience: {},\n location: [],\n disableFilter: true,\n domain: '',\n employmentType: '',\n workString: '',\n jobLocation: '',\n skills: [],\n companies: [],\n };\n },\n },\n});\n\nexport function fetchAllJobs(params) {\n return async (dispatch, getState) => {\n try {\n dispatch(setLoading(true));\n const res = await getAllJobs(params);\n res.totalPages = Math.ceil(res.totalCount / 10);\n dispatch(updateJobs(res));\n } catch (error) {\n console.log(error);\n } finally {\n dispatch(setLoading(false));\n }\n };\n}\n\nexport function fetchSavedJobs(params) {\n return async (dispatch, getState) => {\n try {\n dispatch(setLoading(true));\n const res = await getSavedJobs(params);\n dispatch(updateSavedJobsCount(res?.totalCount));\n dispatch(updateSavedJobs(res));\n } catch (error) {\n console.log(error);\n } finally {\n dispatch(setLoading(false));\n }\n };\n}\n\nexport function fetchSavedJobsCount() {\n return async (dispatch, getState) => {\n try {\n const res = await getSavedJobsCount();\n dispatch(updateSavedJobsCount(res?.noOfSavedJobs));\n } catch (error) {\n console.log(error);\n }\n };\n}\n\nexport const fetchFilterParams = () => {\n return async (dispatch) => {\n try {\n const result = await getJobParams();\n dispatch(updateFilterParams(result));\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport const {\n updateSavedJobs,\n updateJobs,\n setLoading,\n updateCurrentPage,\n updateSavedJobsCount,\n updateSavedJobsCurrentPage,\n updateFilterParams,\n updateSearchRole,\n updateLocationFilter,\n updateDomainFilter,\n updateEmploymentTypeFilter,\n updateWorkExperienceFilter,\n updateWorkStringFilter,\n updateDisableFilter,\n resetFilters,\n updateJobLocation,\n updateComapniesFilter,\n updateSkillsFilter,\n} = jobBoardSlice.actions;\n\nexport default jobBoardSlice.reducer;\n","import { configureStore } from '@reduxjs/toolkit';\nimport authReducer from './authSlice';\nimport themeReducer from './themeSlice';\nimport userSubscriptionReducer from './userSubscriptionSlice';\nimport companyReducer from './companySlice';\nimport colorModeReducer from './colorModeSlice';\nimport learnReducer from './learnSlice';\nimport courseReducer from './courseSlice';\nimport questionLevelsReducer from './questionLevelsSlice';\nimport referAndEarnReducer from './referAndEarnSlice';\nimport problemReducer from './problemsSlice';\nimport navigationReducer from './navigationSlice';\nimport practiceReducer from './practiceSlice';\nimport projectReducer from './projectsSlice';\nimport learnTabReducer from './learnTabSlice';\nimport homeReducer from './homeSlice';\nimport carrerReducer from './carrerSlice';\nimport mastersReducer from './mastersSlice';\nimport paymentReducer from './paymentSlice';\nimport webSocketReducer from './webSocketSlice';\nimport ugReducer from './ugDiplomaSlice';\nimport bannerReducer from './bannerSlice';\nimport shareAndEarnReducer from './shareEarnSlice';\nimport jobBoardReducer from './jobBoardSlice';\n\nconst store = configureStore({\n reducer: {\n authReducer,\n themeReducer,\n userSubscriptionReducer,\n companyReducer,\n colorModeReducer,\n learnReducer,\n courseReducer,\n questionLevelsReducer,\n referAndEarnReducer,\n problemReducer,\n navigationReducer,\n practiceReducer,\n projectReducer,\n learnTabReducer,\n homeReducer,\n carrerReducer,\n mastersReducer,\n paymentReducer,\n webSocketReducer,\n ugReducer,\n bannerReducer,\n shareAndEarnReducer,\n jobBoardReducer,\n },\n devTools: process.env.NODE_ENV === 'development', // disables redux devtools in production\n});\n\nexport default store;\n","import React from \"react\";\nimport { postErrorLog } from \"./services/userApiService\";\nimport store from \"./redux/store\";\n\nexport class MyErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError() {\n return { hasError: true };\n }\n\n async componentDidMount() {\n const storedError = sessionStorage.getItem(\"errorLog\");\n if (storedError) {\n try {\n await postErrorLog(JSON.parse(storedError));\n sessionStorage.removeItem(\"errorLog\");\n } catch (error) {\n console.error(\"Error logging:\", error);\n }\n }\n }\n\n componentDidCatch(error, info) {\n console.error(error);\n console.error(info.componentStack);\n\n sessionStorage.setItem(\n \"errorLog\",\n JSON.stringify({\n error: error.message,\n location: window.location.href,\n errorStack: JSON.stringify(error.stack),\n componentStack: JSON.stringify(info.componentStack),\n reduxStore: {\n ...store.getState()?.authReducer?.loggedInUser,\n },\n })\n );\n const currentCourse = window.location.origin;\n window.location.assign(currentCourse);\n }\n\n render() {\n return this.props.children;\n }\n}\n","import dayjs from 'dayjs';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\nimport isBetween from 'dayjs/plugin/isBetween';\nimport weekday from 'dayjs/plugin/weekday';\nimport * as customParseFormat from 'dayjs/plugin/customParseFormat';\nimport objectSupport from 'dayjs/plugin/objectSupport';\nimport isToday from 'dayjs/plugin/isToday';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport calendar from 'dayjs/plugin/calendar';\n\ndayjs.extend(advancedFormat);\ndayjs.extend(localizedFormat);\ndayjs.extend(relativeTime);\ndayjs.extend(utc);\ndayjs.extend(timezone);\ndayjs.extend(isBetween);\ndayjs.extend(weekday);\ndayjs.extend(customParseFormat);\ndayjs.extend(objectSupport);\ndayjs.extend(isToday);\ndayjs.extend(calendar);\n\nexport default dayjs;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport Amplify from \"aws-amplify\";\nimport awsconfig from \"./aws-exports\";\nimport { Provider } from \"react-redux\";\nimport store from \"./redux/store\";\nimport { MyErrorBoundary } from \"./ErrorBoundary\";\nimport \"./static/css/index.css\";\nimport LinkedInTag from \"react-linkedin-insight\";\nimport \"src/plugins/dayjs\";\nimport mixpanel from \"mixpanel-browser\";\n\nif (process.env.NODE_ENV !== \"development\") {\n LinkedInTag.init(\"2558316\", \"px\", false);\n}\nmixpanel.init(\n process.env.NODE_ENV !== \"development\"\n ? \"99b136e107efb941c6b779aa2f034804\"\n : \"dummy-token\",\n {\n debug: process.env.REACT_APP_ENV === \"dev\",\n persistence: \"localStorage\",\n api_host: \"https://phaseshift.almagrow.com\",\n api_payload_format: \"json\",\n }\n);\n\nAmplify.configure(awsconfig);\n\nReactDOM.render(\n \n {/* */}\n \n {/* */}\n ,\n document.getElementById(\"root\")\n);\n","import dayjs from 'dayjs';\nimport { COURSE_TYPE } from 'src/constants';\nimport { leadSquareForEventRegistration } from '../../../../../services/homeTabApiService';\n\nexport const nameConverter = (e) => {\n return e?.split(' ')?.join('-');\n};\n\nexport const firstChapter = (data) => {\n let temp = '';\n if (data?.gistUrl) {\n temp = 'Concept-Colab';\n } else if (data?.notion_id) {\n temp = 'Concept-Notion';\n } else if (data?.content) {\n temp = 'Concept';\n } else if (data?.videoUrl || data?.cdnVideoUrl) {\n temp = 'Video';\n } else if (data?.coding_assessments?.data) {\n temp = 'Code';\n } else if (data?.learn_assessments?.data) {\n temp = 'Quiz';\n } else if (data?.learn_project?.data) {\n temp = 'Project';\n } else if (data?.peer_review_publication) {\n temp = 'Peer';\n } else if (data?.learn_assignment?.data) {\n temp = 'Assignment';\n } else if (data?.multimedia) {\n temp = `Multimedia-${data?.multimedia?.[0]?.name}`;\n }\n return temp;\n};\n\nexport function secondsToDhms(seconds) {\n seconds = Number(seconds);\n const d = Math.floor(seconds / (3600 * 24));\n const h = Math.floor((seconds % (3600 * 24)) / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n\n const dDisplay = d > 0 ? d : 0;\n const hDisplay = h > 0 ? h : 0;\n const mDisplay = m > 0 ? m : 0;\n return [dDisplay, hDisplay, mDisplay];\n}\n\nexport function chapterOrderSet(courseData) {\n try {\n const modules = courseData?.course_modules?.data ?? courseData?.learn_modules?.data ?? [];\n const order = courseData?.moduleOrder?.split('\\n') ?? [];\n const filterNoChapterModules = modules.filter(\n (item) => item?.attributes?.learn_chapters?.data?.length > 0\n );\n const sortedData = filterNoChapterModules\n .slice()\n .sort((a, b) => order.indexOf(a?.attributes?.slug) - order.indexOf(b?.attributes?.slug));\n\n const chapterOrder = sortedData.map((item) => {\n try {\n return item?.attributes?.chapterOrder?.split('\\n') || [];\n } catch (error) {\n return [];\n }\n });\n const orderedChapter = sortedData.map((item, index) => {\n try {\n const learnChaptersWithLessons = item?.attributes?.learn_chapters?.data?.filter(\n (item) => item?.attributes?.learn_lessons?.data?.length > 0\n );\n const orderedLearnChapters = learnChaptersWithLessons\n ?.slice()\n ?.sort(\n (a, b) =>\n chapterOrder[index]?.indexOf(a?.attributes?.slug) -\n chapterOrder[index]?.indexOf(b?.attributes?.slug)\n );\n return {\n ...item,\n attributes: {\n ...item.attributes,\n learn_chapters: {\n data: orderedLearnChapters,\n },\n },\n };\n } catch (error) {\n return item;\n }\n });\n\n const lessonOrder = orderedChapter.map((item, index) => {\n try {\n const learnChaptersWithLessons = item?.attributes?.learn_chapters?.data?.filter(\n (item) => item?.attributes?.learn_lessons?.data?.length > 0\n );\n return learnChaptersWithLessons?.map((chapter) => {\n try {\n return chapter?.attributes?.lessonOrder?.split('\\n') || [];\n } catch (error) {\n return [];\n }\n });\n } catch (error) {\n return [];\n }\n });\n\n const orderedLesson = orderedChapter.map((item, index) => {\n try {\n return {\n ...item,\n attributes: {\n ...item.attributes,\n learn_chapters: {\n data: item?.attributes?.learn_chapters?.data?.map((chapter, ind) => {\n try {\n const orderedLearnLessons = chapter?.attributes?.learn_lessons?.data\n ?.slice()\n ?.sort(\n (a, b) =>\n lessonOrder[index][ind]?.indexOf(a?.attributes?.slug) -\n lessonOrder[index][ind]?.indexOf(b?.attributes?.slug)\n );\n\n return {\n ...chapter,\n attributes: {\n ...chapter.attributes,\n learn_lessons: {\n data: orderedLearnLessons,\n },\n },\n };\n } catch (error) {\n return chapter;\n }\n }),\n },\n },\n };\n } catch (error) {\n return item;\n }\n });\n const finalData = orderedLesson?.filter(\n (item) => item?.attributes?.learn_chapters?.data?.length > 0\n );\n return {\n ...courseData,\n course_modules: [...finalData],\n learn_modules: [...finalData],\n };\n } catch (error) {\n console.error('An error occurred:', error);\n return courseData;\n }\n}\n\nexport function complimentaryChapterOrderSet(courseData) {\n if (!courseData?.attributes?.learnChapters?.data?.length) return courseData;\n const chapterOrder = courseData?.attributes?.chapterOrder?.split('\\n');\n const sortedChapterData = [...courseData?.attributes?.learnChapters?.data]?.sort((a, b) => {\n return chapterOrder?.indexOf(a?.attributes?.slug) - chapterOrder?.indexOf(b?.attributes?.slug);\n });\n sortedChapterData?.forEach((chapter) => {\n const lessonOrder = chapter?.attributes?.lessonOrder?.split('\\n');\n const sortedLessonsData = [...chapter?.attributes?.learn_lessons?.data]?.sort(\n (a, b) =>\n lessonOrder?.indexOf(a?.attributes?.slug) - lessonOrder?.indexOf(b?.attributes?.slug)\n );\n chapter.attributes.learn_lessons.data = sortedLessonsData;\n });\n return {\n ...courseData,\n attributes: {\n ...courseData?.attributes,\n learnChapters: {\n data: sortedChapterData,\n },\n },\n };\n}\n\nexport function listLastLesson(sortedData, lastLesson) {\n let data = null;\n sortedData?.some((i, ind) =>\n i?.attributes?.learn_chapters?.data?.some((t, index) =>\n t?.attributes?.learn_lessons?.data.some((lesson, id) => {\n if (lesson?.id === parseInt(lastLesson)) {\n data = {\n lessonId: lesson?.id,\n chapterId: index,\n moduleId: ind,\n };\n return true;\n }\n return false;\n })\n )\n );\n return data;\n}\n\nexport function returnLastLessonName(chapter, lastLesson) {\n const data = {};\n const selectedChapter = chapter?.BASIC_INFO?.learn_tracks?.data?.find(\n (item) => item?.id === parseInt(lastLesson?.trackId)\n );\n // data attributes added in BASIC_INFO only after learn_modules\n if (!selectedChapter)\n return {\n lesson:\n selectedChapter?.attributes?.learn_modules?.data?.[0]?.attributes?.learn_chapters?.data?.[0]\n ?.attributes?.learn_lessons?.data?.[0],\n module: selectedChapter?.attributes?.learn_modules?.data?.[0]?.attributes?.name,\n chapter:\n selectedChapter?.attributes?.learn_modules?.data?.[0]?.attributes?.learn_chapters\n ?.data?.[0],\n };\n selectedChapter?.attributes?.learn_modules?.data?.every((item, ind) => {\n const filtered = item?.attributes?.learn_chapters?.data?.filter((t, index) =>\n t?.attributes?.learn_lessons?.data.some((lesson) => {\n if (lesson?.id === parseInt(lastLesson?.lessonId)) {\n data.lesson = lesson;\n return true;\n }\n return false;\n })\n );\n if (filtered?.length > 0) {\n data.module = item?.attributes?.name;\n data.chapter = item?.attributes?.learn_chapters?.data[ind];\n return false;\n }\n return true;\n });\n return data;\n}\n\nexport function getRandom(list) {\n return list[Math.floor(Math.random() * list?.length)];\n}\n\nexport function returnSelectedCourse(course) {\n return course === COURSE_TYPE.DATA_SCIENCE\n ? 'dataScience'\n : course === COURSE_TYPE.DATA_ENGINEERING\n ? 'dataEngineering'\n : course === COURSE_TYPE.WEB_DEV\n ? 'web3'\n : course === COURSE_TYPE.UG_DIPLOMA_CS\n ? 'ugDiplomaCS'\n : course;\n}\n\nexport const enrollNowRedirect = (courseSelected, history, location) => {\n leadSquareForEventRegistration({\n activityName: 'EnrolNow',\n activityValues: {\n pageUrl: window.location.href,\n goal: courseSelected,\n location,\n },\n });\n history.push(`/${courseSelected}/payment`);\n};\n\nexport function formatTime(date) {\n const formattedDate = dayjs.utc(date).format('YYYYMMDDTHHmmssZ');\n return formattedDate.replace('+00:00', 'Z');\n}\n\nexport const eventsColor = {\n SUCCESS_BACKGROUND: '#EAF9F5',\n SUCCESS: '#3D8D7F',\n ERROR_BACKGROUND: '#F9EAEA',\n ERROR: '#AB3845',\n DISABLED_BACKGROUND: '#E0E0E0',\n DISABLED: '#404040',\n};\n\nexport const INITIAL_CODE = {\n javascript: `// Add your code in the main function only.\n// a & b are example variables of how to take integer and string input\n// readline function is for reading input\nfunction main() {\n var a = parseInt(readLine());\n var b = readLine();\n console.log(a);\n}`,\n java: `import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.math.*;\n\n// Add you code in the main function only\n// a and b are example variables of how to take integer and string input\n\npublic class Main {\n\n public static void main(String[] args) {\n Scanner in = new Scanner(System.in);\n int a;\n a = in.nextInt();\n String b;\n b = in.nextLine();\n System.out.println(a);\n }\n}`,\n\n python: `#write your code inside main function\ndef main():\n a = int(input())\n b = int(input())\n \nmain();`,\n\n sql: `--Write your Query here`,\n};\n\nexport const javascriptHiddenCode = `process.stdin.resume();\nprocess.stdin.setEncoding('ascii');\nvar input_stdin = \"\";\nvar input_stdin_array = \"\";\nvar input_currentline = 0;\nprocess.stdin.on('data', function (data) {\n input_stdin += data;\n});\nprocess.stdin.on('end', function () {\n input_stdin_array = input_stdin.split(\"\\\\n\");\n main();\n});\nfunction readLine() {\n return input_stdin_array[input_currentline++];\n}\n\n`;\n\nexport function isValidURL(string) {\n const res = string.match(\n /(http(s)?:\\/\\/.)?(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)/g\n );\n return res !== null;\n}\n\nexport function validUrlString(str) {\n if (str?.length > 0) {\n return str.startsWith('https://') ? str : 'https://' + str;\n }\n return str;\n}\n\nexport const addToCalendar = (data) => {\n let calendarUrl = 'https://calendar.google.com/calendar/render';\n calendarUrl += '?action=TEMPLATE';\n calendarUrl += '&text=' + encodeURIComponent(data?.topic);\n calendarUrl += '&dates=' + formatTime(data?.startTime) + '/' + formatTime(data?.endTime);\n return window.open(calendarUrl);\n};\n\nexport const makeStringSmall = (str) => {\n return str?.toLowerCase().replace(/\\s/g, '');\n};\n\nexport const freeLearnerCourseDashboardContent = [\n {\n id: 1,\n title: (course) => 'Unlocking Success: The Journey Begins!',\n para: 'This video will help you take a quick dive into your journey at AlmaBetter.',\n person: (course) => {\n return {\n name: 'Shivam Datta',\n designation: 'Co-founder & CEO, AlmaBetter',\n };\n },\n image: () => 'https://img.youtube.com/vi/tAQGFuXoi_0/0.jpg',\n },\n {\n id: 2,\n title: (course) =>\n course === COURSE_TYPE?.DATA_SCIENCE\n ? 'Cracking the Code: Inside the Certification in Full Stack Data Science and AI Curriculum!'\n : 'Cracking the Code: Inside the Certification in Full Stack Web Development Curriculum!',\n para: 'Learn about our pay after placement model along with curriculum tour',\n person: (course) => {\n if (course === COURSE_TYPE?.DATA_SCIENCE) {\n return {\n name: 'Alok Anand',\n designation: 'Co-founder & COO, AlmaBetter',\n };\n }\n return {\n name: 'Arshyan Ahsan',\n designation: 'Co-founder & CPSO, AlmaBetter',\n };\n },\n image: (course) =>\n course === COURSE_TYPE?.DATA_SCIENCE\n ? 'https://img.youtube.com/vi/JE00c5wUTGI/0.jpg'\n : 'https://img.youtube.com/vi/J1DhOLThsG8/0.jpg',\n },\n {\n id: 3,\n title: (course) => 'Career Success: Landing Top Jobs!',\n para: 'Learn about career outcomes and how we are going to get you placed in one of the leading tech companies.',\n person: (course) => {\n return {\n name: 'Ravi Kumar Gupta',\n designation: 'Co-founder & CBO, AlmaBetter',\n };\n },\n image: (course) =>\n course === COURSE_TYPE?.DATA_SCIENCE\n ? 'https://img.youtube.com/vi/bk1C7drPKnw/0.jpg'\n : 'https://img.youtube.com/vi/jQJWhHNE9D0/0.jpg',\n },\n];\n\nexport function scrollToElement(elementId) {\n const element = document.getElementById(elementId);\n if (element) {\n element.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n}\n\nexport const generateWhatsAppShareUrl = (eventDetails) => {\n const shareUrl = `https://wa.me/?text=${encodeURIComponent(eventDetails)}`;\n return shareUrl;\n};\n\nexport function generateMailtoLink(email = '', subject = '', body = '') {\n const encodedEmail = encodeURIComponent(email);\n const encodedSubject = encodeURIComponent(subject);\n const encodedBody = encodeURIComponent(body);\n return `mailto:${encodedEmail}?subject=${encodedSubject}&body=${encodedBody}`;\n}\n","import { API } from 'aws-amplify';\nimport {\n LEADSQUARED_API_GATEWAY_ENDPOINT_NAME,\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n USER_API_GATEWAY_ENDPOINT_NAME,\n} from '../aws-exports';\nimport { getCourse } from './getcourse';\nimport { LOCAL_STORAGE_KEYS } from '../constants';\n\nexport const getUpcomingClasses = async (cohort) => {\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/v2/classroom/upcoming-class-for-cohort?cohortName=${cohort}`\n );\n};\n\nexport const getMentors = async (course) => {\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/strapi/mentors?courseType=${course}`\n );\n};\n\nexport const registerEvent = async ({ eventId, eventType }) => {\n return await API.post(LEARN_SUBMISSION_API_ENDPOINT_NAME, `/api/event/register-user`, {\n body: {\n eventId,\n eventType,\n },\n });\n};\n\nexport const leadSquareForEventRegistration = async (details) => {\n return await API.post(LEADSQUARED_API_GATEWAY_ENDPOINT_NAME, `/api/leadsquared-event-capture`, {\n body: details,\n });\n};\n\nexport const getEventById = async ({ eventId, eventType }) => {\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/event/single-event?eventId=${eventId}&eventType=${eventType}`\n );\n};\n\nexport const getEventBookings = async (event) => {\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/event/booking/get-booking-status/${event}`\n );\n};\n\nexport const getStories = async (event) => {\n let courseName = getCourse(event);\n\n if (\n courseName === 'masters-in-data-science' ||\n courseName === 'masters-in-computer-science' ||\n courseName === 'ug-diploma-in-computer-science'\n ) {\n courseName = 'full-stack-data-science';\n }\n\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/course/success-stories/${courseName}`\n );\n};\n\nexport const getAllEvents = async (course) => {\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/event/upcoming-events?courseType=${course}`\n );\n};\n\n// community\nexport const getCommunityUpdates = async () => {\n return await API.get(LEARN_SUBMISSION_API_ENDPOINT_NAME, `/api/community/updates`);\n};\n\nexport const getCommunityUpdatesForEnrolledUsers = async (courseName) => {\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/community/updates-for-enrolled-user?courseType=${courseName}`\n );\n};\n\nexport const getGlobalSettings = async () => {\n return await API.get(USER_API_GATEWAY_ENDPOINT_NAME, '/api/global-settings/v2');\n};\nlet globalSettingsPromise = null;\n\nexport const getCachedGlobalSettings = async () => {\n if (globalSettingsPromise) {\n return globalSettingsPromise;\n } else {\n globalSettingsPromise = (async () => {\n let globalSettings = await getGlobalSettings();\n return globalSettings;\n })();\n return globalSettingsPromise;\n }\n};\n\nexport const getUpcomingDemoClass = async () => {\n return await API.get(USER_API_GATEWAY_ENDPOINT_NAME, `/api/user-demo-class/upcoming`);\n};\n\nexport const registerDemoClass = async (payload = {}) => {\n return await API.post(USER_API_GATEWAY_ENDPOINT_NAME, `/api/user-demo-class/register`, {\n body: payload,\n });\n};\n\nexport const getMastersCourseData = async (slug) => {\n return await API.get(USER_API_GATEWAY_ENDPOINT_NAME, '/api/masters-application/course-data', {\n queryStringParameters: {\n slug,\n },\n });\n};\n","import { Auth } from \"aws-amplify\";\nimport { getDomain } from \"./constants\";\nimport { MODULES_PATH } from \"./route-constants\";\n\nexport const USER_API_GATEWAY_ENDPOINT_NAME = \"User-API-Gateway-Endpoint\";\nexport const LEARN_SUBMISSION_API_ENDPOINT_NAME =\n \"LEARN_SUBMISSION_API_ENDPOINT_NAME\";\nexport const REFINER_API = \"REFINER_API\";\nexport const REFERRAL_RUPEES_TO_COINS = 10;\n\nexport const LEADSQUARED_API_GATEWAY_ENDPOINT_NAME =\n \"LEADSQUARED_API_ENDPOINT_NAME\";\n\nexport const USER_API_GATEWAY_ENDPOINT =\n process.env.REACT_APP_USER_API_GATEWAY_ENDPOINT ||\n \"https://api-dev.isda.academy\";\nconst LEARN_SUBMISSION_API_ENDPOINT =\n process.env.REACT_APP_COURSE_LMS_API_GATEWAY_ENDPOINT ||\n \"https://6c7jn568a0.execute-api.ap-south-1.amazonaws.com\";\nconst LEADSQUARED_API_GATEWAY_ENDPOINT =\n process.env.REACT_APP_LEADSQUARED_API_ENDPOINT ||\n \"https://62hfbkofzc.execute-api.ap-south-1.amazonaws.com\";\n\nexport const REFINER_API_KEY = \"b1bf343e-cdb5-4168-acf8-2d31571f4f8d\";\n\nconst DOMAIN = getDomain() || \"http://localhost:3000\";\nconst AWS_REGION = process.env.REACT_APP_AWS_REGION || \"ap-south-1\";\nconst USER_POOL_ID =\n process.env.REACT_APP_USER_POOL_ID || \"ap-south-1_RfPNx2qw1\";\n\nconst USER_POOL_WEB_CLIENT_ID =\n process.env.REACT_APP_USER_POOL_WEB_CLIENT_ID || \"7cphtui385a6c0d2uee7eplbrl\";\n\nconst USER_POOL_OAUTH_DOMAIN =\n process.env.REACT_APP_USER_POOL_OAUTH_DOMAIN ||\n \"isda-dev.auth.ap-south-1.amazoncognito.com\";\n\nconst ENV = process.env.REACT_APP_ENV || \"dev\";\n\n// const IDENTITY_POOL_ID =\n// process.env.REACT_APP_IDENTITY_POOL_ID ||\n// \"ap-south-1:5ef56f79-cca8-4903-a118-94aa6caab07b\";\n\nconst config = {\n Auth: {\n // identityPoolId: IDENTITY_POOL_ID,\n region: AWS_REGION,\n userPoolId: USER_POOL_ID,\n userPoolWebClientId: USER_POOL_WEB_CLIENT_ID,\n oauth: {\n domain: USER_POOL_OAUTH_DOMAIN,\n scope: [\n \"phone\",\n \"email\",\n \"profile\",\n \"openid\",\n \"aws.cognito.signin.user.admin\",\n ],\n redirectSignIn: `${DOMAIN}${MODULES_PATH.AUTH.LOGIN_SUCCESSFUL}/`,\n redirectSignOut: `${DOMAIN}${MODULES_PATH.AUTH.LOGOUT_SUCCESSFUL}/`,\n responseType: \"code\",\n },\n },\n API: {\n endpoints: [\n {\n name: USER_API_GATEWAY_ENDPOINT_NAME,\n endpoint: USER_API_GATEWAY_ENDPOINT,\n custom_header: async () => {\n return {\n Authorization: `Bearer ${(await Auth.currentSession())\n .getIdToken()\n .getJwtToken()}`,\n };\n },\n },\n {\n name: LEARN_SUBMISSION_API_ENDPOINT_NAME,\n endpoint: LEARN_SUBMISSION_API_ENDPOINT,\n custom_header: async () => {\n return {\n Authorization: `Bearer ${(await Auth.currentSession())\n .getIdToken()\n .getJwtToken()}`,\n };\n },\n },\n {\n name: REFINER_API,\n endpoint: \"https://api.refiner.io/v1\",\n custom_header: async () => {\n return {\n Authorization: `Bearer ${REFINER_API_KEY}`,\n };\n },\n },\n {\n name: LEADSQUARED_API_GATEWAY_ENDPOINT_NAME,\n endpoint: LEADSQUARED_API_GATEWAY_ENDPOINT,\n custom_header: async () => {\n return {\n Authorization: `Bearer ${(await Auth.currentSession())\n .getIdToken()\n .getJwtToken()}`,\n };\n },\n },\n ],\n },\n Storage: {\n AWSS3: {\n bucket: `ab-user-files-${ENV}`,\n region: AWS_REGION,\n },\n },\n};\n\nexport default config;\n","import { TextField, Checkbox, withStyles, makeStyles } from '@material-ui/core';\nimport dayjs from 'dayjs';\nimport { COURSE_TYPE, PLAN_TYPE } from './constants';\n\nexport const isUrlValid = (url) => {\n const res = url.match(\n /(http(s)?:\\/\\/.)(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)/g\n );\n if (res == null) return false;\n else return true;\n};\n\nexport const getFullName = (user) => {\n const firstName = user?.firstName ?? '';\n const lastName = user?.lastName ?? '';\n return `${firstName} ${lastName}`.trim();\n};\n\nexport const getFirstAndLastNamesFromName = (name) => {\n if (!name) {\n return { firstName: null, lastName: null };\n }\n const matches = name.match(/\\S+/g);\n const firstName = matches[0];\n const lastName = matches.slice(1).join(' ');\n return { firstName, lastName };\n};\n\nexport class UserDefinedError extends Error {}\n\nexport const isEmailNotVerified = (user) => {\n return user.isEmailNotVerified;\n};\nexport const doesUserHaveMissingDetails = (user) => {\n return !user.firstName || !user.lastName || !user.phone;\n};\n\nexport const doesUserHaveMissingPhone = (user) => {\n return !user?.phone;\n};\n\nexport function isKeyTrue(obj, key) {\n if (!obj) return false;\n try {\n return Object.hasOwnProperty.call(obj, key) && obj[key] === true;\n } catch (e) {\n return false;\n }\n}\n\nexport function isKeyFalse(obj, key) {\n if (!obj) return false;\n try {\n return Object.hasOwnProperty.call(obj, key) && obj[key] === false;\n } catch (e) {\n return false;\n }\n}\n\nexport const useDarkThemeInputStyle = makeStyles((theme) => ({\n root: {\n '& label': {\n color: theme.palette.inputField.default,\n },\n '& label.Mui-disabled': {\n color: theme.palette.inputField.disabled,\n },\n '& label.Mui-focused': {\n color: theme.palette.inputField.focused,\n },\n '& input': {\n color: theme.palette.inputField.focused,\n },\n '& input.Mui-disabled': {\n color: theme.palette.inputField.disabled,\n },\n '& .MuiOutlinedInput-root': {\n '& fieldset': {\n borderColor: theme.palette.inputField.default,\n },\n '&:hover fieldset': {\n borderColor: theme.palette.inputField.hover,\n },\n '&.Mui-focused fieldset': {\n borderColor: theme.palette.inputField.focused,\n },\n '&.Mui-disabled fieldset': {\n borderColor: theme.palette.inputField.disabled,\n },\n '& .MuiSelect-select': {\n color: theme.palette.inputField.focused,\n },\n },\n },\n icon: {\n fill: theme.palette.inputField.default,\n },\n button: {\n '&:hover': {\n transition: 'transform 0.3s',\n transform: 'scale(1.05)',\n },\n transition: 'transform 0.25s',\n fontSize: 'inherit',\n },\n}));\n\nexport const TextFieldDark = withStyles((theme) => {\n return {\n root: {\n '& label': {\n color: theme.palette.inputField.default,\n },\n '& label.Mui-disabled': {\n color: theme.palette.inputField.disabled,\n },\n '& label.Mui-focused': {\n color: theme.palette.inputField.focused,\n },\n '& textarea': {\n color: theme.palette.inputField.focused,\n },\n '& input': {\n color: theme.palette.inputField.focused,\n },\n '& input.Mui-disabled': {\n color: theme.palette.inputField.disabled,\n },\n '& .MuiOutlinedInput-root': {\n '& fieldset': {\n borderColor: theme.palette.inputField.default,\n },\n '&:hover fieldset': {\n borderColor: theme.palette.inputField.hover,\n },\n '&.Mui-focused fieldset': {\n borderColor: theme.palette.inputField.focused,\n },\n '&.Mui-disabled fieldset': {\n borderColor: theme.palette.inputField.disabled,\n },\n },\n },\n };\n})(TextField);\n\nexport const CheckboxDark = withStyles((theme) => ({\n root: {\n '&$checked': {\n color: theme.palette.checkbox.checked,\n },\n color: theme.palette.checkbox.default,\n },\n checked: {},\n}))(Checkbox);\n\nexport const validateEmail = (email) => {\n const re =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(String(email).toLowerCase());\n};\n\nexport const validateFullname = (name) => {\n const fullName = name?.replace(/\\s+/g, ' ').trim();\n const fullNameRegex = /^[a-zA-Z]+\\s[a-zA-Z]+(\\s[a-zA-Z]+)*$/;\n return fullNameRegex.test(fullName);\n};\n\nexport function shadeColor(color, percent) {\n let R = parseInt(color.substring(1, 3), 16);\n let G = parseInt(color.substring(3, 5), 16);\n let B = parseInt(color.substring(5, 7), 16);\n\n R = Math.floor((R * (100 + percent)) / 100);\n G = Math.floor((G * (100 + percent)) / 100);\n B = Math.floor((B * (100 + percent)) / 100);\n\n R = R < 255 ? R : 255;\n G = G < 255 ? G : 255;\n B = B < 255 ? B : 255;\n\n const RR = R.toString(16)?.length === 1 ? '0' + R.toString(16) : R.toString(16);\n const GG = G.toString(16)?.length === 1 ? '0' + G.toString(16) : G.toString(16);\n const BB = B.toString(16)?.length === 1 ? '0' + B.toString(16) : B.toString(16);\n\n return '#' + RR + GG + BB;\n}\n\nexport const formatBytes = (bytes, decimals = 2) => {\n const d = Math.floor(Math.log(bytes) / Math.log(1024));\n return 0 === bytes\n ? '0 Bytes'\n : parseFloat((bytes / Math.pow(1024, d)).toFixed(Math.max(0, decimals))) +\n ' ' +\n ['Bytes', 'KB', 'MB', 'GB'][d];\n};\n\nexport const isWeekEndDay = (date) => [0, 6].includes(dayjs(date).weekday());\n\nexport const readUtcTimeAsLocalTime = (utcTime) => {\n if (!utcTime) return;\n const localTime = utcTime.slice(0, -1) + '+05:30';\n return localTime;\n};\n\nexport function checkTimeNearClasses() {\n // Convert time strings to Date objects\n const startTime = new Date(`1970-01-01T19:30:00`);\n const endTime = new Date(`1970-01-01T10:00:00`);\n\n // Get the current time\n const currentDateTime = new Date();\n const currentTimeStr = currentDateTime.toLocaleTimeString('en-US', { hour12: false });\n const checkTime = new Date(`1970-01-01T${currentTimeStr}`);\n\n // Check if the check_time falls within the specified range\n if (startTime <= endTime) {\n return startTime <= checkTime && checkTime <= endTime;\n } else {\n return startTime <= checkTime || checkTime <= endTime;\n }\n}\n\nexport const numberFormatter = (num) => {\n const formatter = new Intl.NumberFormat('en-IN', {\n currency: 'INR',\n });\n return formatter.format(num);\n};\n\nexport const tagColor = {\n pending: {\n color: '#EC7622',\n backgroundColor: 'rgba(255, 122, 0, 0.08)',\n },\n success: {\n color: '#4C9D8A',\n backgroundColor: 'rgba(32, 168, 152, 0.08)',\n },\n error: {\n color: '#F00037',\n backgroundColor: 'rgba(240, 0, 55, 0.08)',\n },\n};\n\nexport function getRedirectTo() {\n const urlSearchText = window.location.search;\n if (urlSearchText) {\n const urlSearchParams = new URLSearchParams(urlSearchText);\n\n const redirectTo = urlSearchParams.get('redirectTo');\n\n if (redirectTo) return redirectTo;\n }\n}\n\nexport const getImgUrl = (payload, preferred = 'medium') => {\n const formats = payload?.data?.attributes?.formats || payload?.formats || payload;\n if (formats[preferred]?.url) {\n return formats[preferred].url;\n }\n return (\n formats?.medium?.url ||\n formats?.large?.url ||\n payload?.data?.attributes?.url ||\n formats?.url ||\n payload?.url\n );\n};\n\nexport function isValidWebSocketURL(url) {\n try {\n const websocketUrlPattern = /^(wss?|ws):\\/\\/\\S+$/;\n return websocketUrlPattern.test(url);\n } catch (error) {\n console.error(error);\n return false;\n }\n}\n\nexport const masterEnrol = {\n pathname: (course) => `/${course}/home`,\n mastersCourseSelected: (course) =>\n [COURSE_TYPE.MASTERS_CS, COURSE_TYPE.MASTERS_DS_AS, COURSE_TYPE.UG_DIPLOMA_CS]?.includes(\n course\n ),\n};\n\nexport const currentCourse = {\n [PLAN_TYPE.MASTER]: {\n [COURSE_TYPE.DATA_SCIENCE]: COURSE_TYPE.DATA_SCIENCE,\n [COURSE_TYPE.WEB_DEV]: COURSE_TYPE.WEB_DEV,\n [COURSE_TYPE.WEB3]: COURSE_TYPE.WEB_DEV,\n },\n [PLAN_TYPE.PRO_LIVE]: {\n [COURSE_TYPE.DATA_SCIENCE]: COURSE_TYPE.DATA_SCIENCE,\n [COURSE_TYPE.WEB_DEV]: COURSE_TYPE.WEB_DEV,\n [COURSE_TYPE.UG_DIPLOMA_CS]: COURSE_TYPE.UG_DIPLOMA_CS,\n [COURSE_TYPE.WEB3]: COURSE_TYPE.WEB_DEV,\n },\n};\n\nexport const getRespectiveMastersCourse = (course) => {\n if (course === COURSE_TYPE.DATA_SCIENCE) return COURSE_TYPE.MASTERS_DS_AS;\n if (course === COURSE_TYPE.WEB_DEV) return COURSE_TYPE.MASTERS_CS;\n return course;\n};\n\nexport function isZeroOrGreater(value) {\n if (typeof value === 'number' && value >= 0) {\n return true;\n }\n if (typeof value === 'string' && !isNaN(value) && parseFloat(value) >= 0) {\n return true;\n }\n return false;\n}\n\nexport const scrollToTop = (id) => {\n const element = document.getElementById(id);\n if (!element || !element.scrollTo) return;\n element.scrollTo(0, 0);\n};\n\nexport function DateTimeFormatter(date = '', format = '', calendar = false) {\n return calendar\n ? dayjs(date).calendar(null, {\n sameDay: `${format} [Today]`,\n nextDay: `${format} [Tomorrow]`,\n nextWeek: `${format} ddd Do`,\n lastDay: `${format} [Yesterday]`,\n sameElse: `${format} Do MMM, YYYY`,\n })\n : dayjs(date).format(format || 'DD MMM, YYYY');\n}\n\nexport function captureParams() {\n const queryString = window.location.search;\n\n if (!queryString) return;\n\n const urlSearchParams = new URLSearchParams(queryString);\n\n const newQueryString = Array.from(urlSearchParams.entries()).reduce((accu, [key, value]) => {\n if (key !== 'redirectTo') {\n if (!accu) {\n accu += `?${key}=${value}`;\n } else {\n accu += `&${key}=${value}`;\n }\n }\n\n return accu;\n }, '');\n\n return newQueryString;\n}\n","import _ from \"lodash\";\nimport { returnCourseApiName } from \"./services/getcourse\";\nexport const getDomain = () => {\n const domain = `${window.location.protocol}//${window.location.host}`;\n return domain;\n};\n\nconst DOMAIN = getDomain() || \"http://localhost:3000\";\n\nexport const ALMABETTER_HOME_LINKS = {\n ROOT: \"https://www.almabetter.com\",\n get TERM_AND_CONDITIONS() {\n return `${this.ROOT}/terms-of-use`;\n },\n get PRIVACY() {\n return `${this.ROOT}/privacy-policy`;\n },\n get ABOUT_US() {\n return `${this.ROOT}/about-us`;\n },\n get COMMUNITY() {\n return `${this.ROOT}/community`;\n },\n};\n\nexport const THINKIFIC_ALMABETTER_LINKS = {\n ROOT: \"https://learn.almabetter.com\",\n get DATA_SCIENCE_PRO_LIVE_ALMAX_PRE_REG_FORM() {\n return `${this.ROOT}/courses/take/pro-live-onboarding/multimedia/27676716-almax-pre-registration-form`;\n },\n get DATA_SCIENCE_PRO_FLEX_ALMAX_PRE_REG_FORM() {\n return `${this.ROOT}/courses/take/pro-flex-onboarding/multimedia/27488097-almax-pre-registration-form`;\n },\n get WEB3_PRO_LIVE_ALMAX_PRE_REG_FORM() {\n return `${this.ROOT}/courses/take/web-development-pro-program-onboarding/multimedia/33533152-almax-pre-registration-form`;\n },\n get ENROLLMENTS_PAGE() {\n return `${this.ROOT}/enrollments`;\n },\n get SSO_LOGOUT_URL() {\n return `${this.ROOT}/users/sign_out`;\n },\n};\n\nexport const IMAGE_FILE_SIZE_MAX = 1449616;\n\nexport const THINKIFIC_CONSTANTS = {\n SSO_LOGIN: {\n URL: \"https://almabetter.thinkific.com/api/sso/v2/sso/jwt\",\n ERROR_URL: `${DOMAIN}/thinkific_login_error`,\n },\n};\n\nexport const LOCAL_STORAGE_KEYS = {\n REDIRECT_TO: \"REDIRECT_TO\",\n LOGIN_PROCESS_STAGE: \"LOGIN_PROCESS_STAGE\",\n LOGOUT_PROCESS_STAGE: \"LOGOUT_PROCESS_STAGE\",\n COURSE_INTERESTS: \"COURSE_INTERESTS\",\n REFERRAL_CODE: \"REFERRAL_CODE\",\n REFERRAL_GOAL: \"REFERRAL_GOAL\",\n REFERRAL_PLAN: \"REFERRAL_PLAN\",\n LINKEDIN_SHARE: \"LINKEDIN_SHARE\",\n REFERRAL_SOURCE: \"REFERRAL_SOURCE\",\n JOB_DASHBOARD_VIEWED: \"JOB_DASHBOARD_VIEWED\",\n GLOBAL_SETTINGS: \"GLOBAL_SETTINGS\",\n CAMPAIGN_PARAMS: \"CAMPAIGN_PARAMS\",\n};\n\nexport const LOGIN_LOGOUT_PROCESS_STAGE_VALUES = {\n COGNITO_AUTH_SUCCESSFUL: \"COGNITO_AUTH_SUCCESSFUL\",\n LOGOUT_STARTED: \"LOGOUT_STARTED\",\n};\n\nexport const ASSIGNMENT_SUBMISSION_INSTRUCTION_VIDEO_URL =\n \"https://ab-public-bucket-dev.s3.ap-south-1.amazonaws.com/submissionPart1.mp4\";\nexport const CAPSTONE_PROJECT_SUBMISSION_INSTRUCTION_VIDEO_URL =\n \"https://ab-public-bucket-dev.s3.ap-south-1.amazonaws.com/capstoneProjectVideo.mp4\";\n\nexport const COURSES_OFFERED = [\"data-science\", \"wev-dev\"];\n\nexport const RAZORPAY = {\n SCRIPT_SRC: \"https://checkout.razorpay.com/v1/checkout.js\",\n KEY_ID: process.env.REACT_APP_RAZORPAY_KEY_ID || \"rzp_test_gVz50FqbpOF707\",\n CURRENCY: \"INR\",\n};\n\nexport const ALMABETTER_LOGO_URL =\n \"https://ab-public-bucket-prod.s3.ap-south-1.amazonaws.com/razorpay_icon.png\";\n\nexport const PLAN_TYPE = {\n PRO_FLEX: \"pro_flex\",\n PRO_LIVE: \"pro_live\",\n PRO_LEGACY: \"pro_legacy\",\n PRO_UPGRADE: \"pro_upgrade\",\n NEW_USER: \"new_user\",\n PREMIUM: \"premium\",\n CORPORATE: \"corporate_training\",\n MASTER: \"masters\",\n};\n\nexport const PLAN_TYPE_NAMES_MAPPING = {\n [PLAN_TYPE.PRO_FLEX]: \"Pro Flex\",\n [PLAN_TYPE.PRO_LIVE]: \"Pro Live\",\n [PLAN_TYPE.PRO_LEGACY]: \"Pro User\",\n [PLAN_TYPE.NEW_USER]: \"New User\",\n [PLAN_TYPE.PREMIUM]: \"Premium\",\n [PLAN_TYPE.MASTER]: \"Masters\",\n};\n\nexport const COURSE_TYPE = {\n DATA_SCIENCE: \"data-science\",\n WEB_DEV: \"web-dev\",\n DATA_ENGINEERING: \"data-engineering\",\n DS_BOOTCAMP: \"ds-bootcamp\",\n MASTERS_DS_AS: \"masters-ds\",\n MASTERS_CS: \"masters-cs\",\n UG_DIPLOMA_CS: \"ug-diploma-cs\",\n WEB3: \"web3\",\n};\n\nexport const COURSE_TYPE_NAMES_MAPPING = {\n [COURSE_TYPE.DATA_SCIENCE]: \"Certification in Full Stack Data Science and AI\",\n [COURSE_TYPE.WEB_DEV]: \"Certification in Full Stack Web Development\",\n [COURSE_TYPE.DS_BOOTCAMP]: \"Data Science Ninja Bootcamp\",\n [COURSE_TYPE.DATA_ENGINEERING]: \"Full Stack Data Engineering\",\n [COURSE_TYPE.MASTERS_DS_AS]:\n \"Masters in CS : Artificial Intelligence and Machine Learning\",\n [COURSE_TYPE.MASTERS_CS]:\n \"Masters in Computer Science : Software Engineering\",\n [COURSE_TYPE.UG_DIPLOMA_CS]: \"UG Diploma in Computer Science\",\n};\n\nexport const BOOKING_STAGE = {\n CREATED: \"created\",\n TIME_SLOTS_ADDED: \"timeSlotsAdded\",\n COACH_ASSIGNED: \"coachAssigned\",\n SESSION_CONDUCTED: \"sessionConducted\",\n FEEDBACK_SUBMITTED: \"feedbackSubmitted\",\n ADMIN_ON_HOLD: \"adminOnHold\",\n ADMIN_APPROVED: \"adminApproved\",\n CANCELLED: \"cancelled\",\n};\n\nexport const BOOKING_STATUS = {\n ACTIVE: \"active\",\n COMPLETED: \"completed\",\n CANCELLED: \"cancelled\",\n DEFAULTED: \"defaulted\",\n};\n\nexport const USER_CREDITS_DEDUCTION_AMOUNT = 15;\nexport const REACT_APP_BACKEND_URL =\n process.env.REACT_APP_BACKEND_URL || \"https://strapiv2.almagrow.com/api/\";\n\nexport const COMMUNITY = \"https://community.almabetter.com/\";\nexport const DATE_FORMAT_1 = \"Do MMM YYYY, hh:mm A\";\nexport const DATE_ONLY_FROMAT_1 = \"Do MMM YYYY\";\nexport const DATE_ONLY_FROMAT_2 = \"dddd, DD MMM YYYY\";\n\nexport const MENTORSHIP_RESOURCE_LINK =\n \"https://almabetter.notion.site/Mentorship-65a81629919b4ee1b26efaa393d6851c\";\n\nexport const FRESHDESK_SUPPORT_URL =\n \"https://almabetter.myfreshworks.com/login/auth/1662641230821?client_id=451980303908285122&redirect_uri=https%3A%2F%2Falmabetter-support.freshdesk.com%2Ffreshid%2Fcustomer_authorize_callback%3Fhd%3Dsupport.almabetter.com\";\n\nexport const PAYMENT_ONBOARDING_FORM_STAGE = {\n BASIC_INFO: \"BASIC_INFO\",\n EDUCATION: \"EDUCATION\",\n WORK_EXPERIENCE: \"WORK_EXPERIENCE\",\n SOCIAL: \"SOCIAL\",\n SKILLS: \"SKILLS\",\n GOAL: \"GOAL\",\n};\n\nexport const UG_PAYMENT_ONBOARDING_FORM_STAGE = {\n BASIC_INFO: \"BASIC_INFO\",\n TWELTH_EDUCATION: \"12_EDUCATION\",\n GRADUATION_EDUCATION: \"GRADUATION_EDUCATION\",\n GOAL: \"GOAL\",\n};\n\nconst COURSE_PATHS = {\n FULL_STACK_DATA_SCIENCE: \"full-stack-data-science\",\n FULL_STACK_WEB_DEVELOPMENT_WITH_WEB3: \"full-stack-web-development-with-web3\",\n DS_BOOTCAMP: \"ds-bootcamp\",\n ALMAX_THE_LAST_MILE: \"almax-the-last-mile-new\",\n DATA_ENGINEERING: \"full-stack-data-engineering\",\n MASTERS_DS_AS: \"masters-ds\",\n MASTERS_CS: \"masters-cs\",\n UG_DIPLOMA_CS: \"ug-diploma-cs\",\n};\nexport const COURSE_TYPE_COURSE_PATH_MAPPING = {\n [COURSE_TYPE.DATA_SCIENCE]: COURSE_PATHS.FULL_STACK_DATA_SCIENCE,\n [COURSE_TYPE.WEB_DEV]: COURSE_PATHS.FULL_STACK_WEB_DEVELOPMENT_WITH_WEB3,\n [COURSE_TYPE.DS_BOOTCAMP]: COURSE_PATHS.DS_BOOTCAMP,\n [COURSE_TYPE.DATA_ENGINEERING]: COURSE_PATHS.DATA_ENGINEERING,\n [COURSE_TYPE.MASTERS_DS_AS]: COURSE_PATHS.MASTERS_DS_AS,\n [COURSE_TYPE.MASTERS_CS]: COURSE_PATHS.MASTERS_CS,\n [COURSE_TYPE.UG_DIPLOMA_CS]: COURSE_PATHS.UG_DIPLOMA_CS,\n};\n\nexport const COURSE_PATH_COURSE_TYPE_MAPPING = _.invert(\n COURSE_TYPE_COURSE_PATH_MAPPING\n);\nexport const getCriteriaForGivenCoursePath = (coursePath) => {\n if (COURSE_PATH_COURSE_TYPE_MAPPING[coursePath]) {\n const courseType = COURSE_PATH_COURSE_TYPE_MAPPING[coursePath];\n return { courseType };\n } else if (coursePath === COURSE_PATHS.ALMAX_THE_LAST_MILE) {\n return { courseType: COURSE_TYPE.DATA_SCIENCE, almax: true };\n }\n return {};\n};\nexport const WEB_SOCKETS_ENDPOINT =\n process.env.REACT_APP_WEB_SOCKETS_ENDPOINT ||\n \"wss://7nq4wvs58h.execute-api.ap-south-1.amazonaws.com/dev\";\n\nexport const DISCORD_AUTH_CLIENT_ID =\n process.env.REACT_APP_DISCORD_AUTH_CLIENT_ID || \"1098890425391132684\";\n\nexport const COMMUNITY_EVENT_TYPES = {\n PAYMENT: \"payment\",\n PLACEMENT: \"placement\",\n ROUND_ASSIGNED: \"round-assigned\",\n COURSE_COMPLETION: \"course-completion\",\n PROJECT_COMPLETED: \"project-completed\",\n ASSESSMENT_COMPLETED: \"assessment-completed\",\n MODULE_COMPLETED: \"module-completed\",\n};\n\nexport const COURSE_SELECTOR = {\n certification: [\n {\n name: COURSE_TYPE_NAMES_MAPPING[COURSE_TYPE.DATA_SCIENCE],\n value: COURSE_TYPE.DATA_SCIENCE,\n planType: PLAN_TYPE.PRO_LIVE,\n courseType: COURSE_TYPE.DATA_SCIENCE,\n duration: \"6 months\",\n type: \"Part-time\",\n classType: \"Online live classes\",\n accredited: {\n woolf: false,\n iitGuwahati: true,\n },\n for: \"College students, graduates & working professionals.\",\n outcome: \"5-25 LPA Job + Certification\",\n },\n {\n name: COURSE_TYPE_NAMES_MAPPING[COURSE_TYPE.WEB_DEV],\n value: returnCourseApiName(COURSE_TYPE.WEB_DEV),\n planType: PLAN_TYPE.PRO_LIVE,\n courseType: COURSE_TYPE.WEB_DEV,\n duration: \"6 months\",\n type: \"Part-time\",\n classType: \"Online live classes\",\n accredited: {\n woolf: false,\n iitGuwahati: true,\n },\n for: \"College students, graduates & working professionals.\",\n outcome: \"5-25 LPA Job + Certification\",\n },\n ],\n masters: [\n {\n name: COURSE_TYPE_NAMES_MAPPING[COURSE_TYPE.MASTERS_DS_AS],\n value: COURSE_TYPE.DATA_SCIENCE,\n planType: PLAN_TYPE.MASTER,\n courseType: COURSE_TYPE.MASTERS_DS_AS,\n duration: \"12 months\",\n type: \"Part-time\",\n classType: \"Online live classes\",\n accredited: {\n woolf: true,\n iitGuwahati: true,\n },\n for: \"Graduates & Working Professionals\",\n outcome: `5-40 LPA Job + Master's Degree`,\n },\n {\n name: COURSE_TYPE_NAMES_MAPPING[COURSE_TYPE.MASTERS_CS],\n value: returnCourseApiName(COURSE_TYPE.WEB_DEV),\n planType: PLAN_TYPE.MASTER,\n courseType: COURSE_TYPE.MASTERS_CS,\n duration: \"12 months\",\n type: \"Part-time\",\n classType: \"Online live classes\",\n accredited: {\n woolf: true,\n iitGuwahati: true,\n },\n for: \"Graduates & Working Professionals\",\n outcome: `5-40 LPA Job + Master's Degree`,\n },\n ],\n // ugCourses: [\n // {\n // name: COURSE_TYPE_NAMES_MAPPING[COURSE_TYPE.UG_DIPLOMA_CS],\n // value: COURSE_TYPE.UG_DIPLOMA_CS,\n // planType: PLAN_TYPE.PRO_LIVE,\n // courseType: COURSE_TYPE.UG_DIPLOMA_CS,\n // duration: '12 months',\n // type: 'Part-time',\n // classType: 'Online live classes',\n // accredited: {\n // woolf: true,\n // iitGuwahati: true,\n // },\n // for: '1st, 2nd & 3rd Year College Students',\n // outcome: `Internship + Diploma + 5+LPA Job`,\n // },\n // ],\n};\n\nexport const ENROLLED_IN = {\n CERTIFICATION: \"certification\",\n MASTERS: \"masters\",\n UG_DIPLOMA: \"ugCourses\",\n};\n\nexport const COURSE_INTEREST_COURSE_TYPE = {\n dataScienceInterest: COURSE_TYPE.DATA_SCIENCE,\n softDevInterest: COURSE_TYPE.WEB_DEV,\n mastersDSInterest: COURSE_TYPE.MASTERS_DS_AS,\n mastersCSInterest: COURSE_TYPE.MASTERS_CS,\n ugdiplomaCSInterest: COURSE_TYPE.WEB_DEV,\n};\n\nexport const getGoalAndPlanBasedOnInterest = {\n [COURSE_TYPE.DATA_SCIENCE]: {\n goalType: COURSE_TYPE.DATA_SCIENCE,\n planType: PLAN_TYPE.PRO_LIVE,\n },\n [COURSE_TYPE.WEB_DEV]: {\n goalType: returnCourseApiName(COURSE_TYPE.WEB_DEV),\n planType: PLAN_TYPE.PRO_LIVE,\n },\n [COURSE_TYPE.MASTERS_DS_AS]: {\n goalType: COURSE_TYPE.DATA_SCIENCE,\n planType: PLAN_TYPE.MASTER,\n },\n [COURSE_TYPE.MASTERS_CS]: {\n goalType: returnCourseApiName(COURSE_TYPE.WEB_DEV),\n planType: PLAN_TYPE.MASTER,\n },\n [COURSE_TYPE.UG_DIPLOMA_CS]: {\n goalType: returnCourseApiName(COURSE_TYPE.WEB_DEV),\n planType: PLAN_TYPE.PRO_LIVE,\n },\n};\n\nexport const LESSON_ACTIVITIES_IDS_FOR_REFINER = {\n Concept: \"e4645f10-41ba-11ee-9727-81770d4ea292\",\n \"Concept-Colab\": \"e4645f10-41ba-11ee-9727-81770d4ea292\",\n \"Concept-Notion\": \"e4645f10-41ba-11ee-9727-81770d4ea292\",\n Video: \"8aa794c0-4268-11ee-a2af-f9fae2984f65\",\n Quiz: \"a89d84f0-426e-11ee-a2ca-9feca5aa8883\",\n Code: \"0a405710-4272-11ee-8ad9-99e125048ea3\",\n Assignment: \"e4eca580-4272-11ee-aa24-fd4a05278182\",\n};\n\nexport const SUB_PLAN_TYPES = {\n PREMIUM_AB: \"premium_ab\",\n ICONIC_IITG: \"iconic_iitg\",\n ICONIC_WOOLF: \"iconic_woolf\",\n GLOBAL_IITG_WOOLF: \"global_iitg_woolf\",\n};\n\nexport const SUB_PLAN_TYPES_MAPPING = {\n [SUB_PLAN_TYPES.PREMIUM_AB]: \"Premium\",\n [SUB_PLAN_TYPES.ICONIC_IITG]: \"Iconic\",\n [SUB_PLAN_TYPES.ICONIC_WOOLF]: \"Iconic\",\n [SUB_PLAN_TYPES.GLOBAL_IITG_WOOLF]: \"Global\",\n};\n\nexport const EMI_PLANS_FOR_SUB_PLAN_TYPES = {\n [SUB_PLAN_TYPES.ICONIC_IITG]:\n \"*Pay in easy EMIs starting at ₹ 3,333 per month\",\n [SUB_PLAN_TYPES.ICONIC_WOOLF]:\n \"*Pay in easy EMIs starting at ₹ 3,333 per month\",\n [SUB_PLAN_TYPES.GLOBAL_IITG_WOOLF]:\n \"*Pay in easy EMIs starting at ₹ 5,555 per month\",\n};\n\nexport const COURSE_TYPE_COURSE_NAME_MAPPING = {\n [COURSE_TYPE.DATA_SCIENCE]: \"Data Science\",\n [COURSE_TYPE.WEB3]: \"Web Development\",\n [COURSE_TYPE.UG_DIPLOMA_CS]: \"UG Diploma CS\",\n};\n\nexport const STUDENTS_ID = [\n \"000febd2-7c05-4d53-87a9-936ed368d4ce\",\n \"006d5598-0396-44e8-88d9-885169061e4b\",\n \"01ea9f74-cefb-4cbd-bd8b-fb3c10b79729\",\n \"029e5f77-20ed-4738-a078-48a801db8c20\",\n \"0392e598-accb-4914-b482-0633aa585a7d\",\n \"0395d69b-15e8-456d-85e5-689f98f1d7b6\",\n \"044896dc-4ba9-48c9-b9c5-891f552b728b\",\n \"048bdefc-45e7-4c12-a706-bd706c8b66f9\",\n \"0496958e-7a59-493b-823d-35051f70b3e4\",\n \"050d8b78-c9cc-42b3-a859-db799e007d80\",\n \"0575fa26-01fc-4db8-8be6-4ed563fa3522\",\n \"077c5934-56b5-4e49-a4c3-c2aa12dad108\",\n \"07be0e81-f163-4bbd-a1a7-dda76e14fa10\",\n \"0953e186-a952-4751-a69b-c3641f69d230\",\n \"0991c178-1cb2-42d4-941a-ea358a9acedc\",\n \"0b6bff0d-a44a-40fd-9ac2-1cb08961d806\",\n \"0c6ec349-e612-4e12-b5df-cd71952abc39\",\n \"0c8d3931-587c-4dec-9574-dec62e6385c5\",\n \"0c9ba815-5bce-4c08-8f73-09a971ef8537\",\n \"0caa1668-e429-4ae0-aa84-c83da5aada40\",\n \"0cc02c36-fe73-42ae-8e01-e040ff25c4c7\",\n \"0f823b68-38e5-49d5-9de7-c75a13bbbd66\",\n \"0ff03d12-3776-4924-afc4-0a75f233a319\",\n \"109b1ef4-6dcc-4d72-9c93-8e88e6972b45\",\n \"13e45ff2-32ed-4ae4-a3ff-339c4929e55b\",\n \"1419b7cc-7cdf-4a32-90ec-26487f555cd1\",\n \"157345ec-eb24-4090-96ab-cb27e0bb1f54\",\n \"15927fcd-fb24-4a92-ac4e-615b5d1d75e1\",\n \"15cf8e51-bd84-4be0-b8ec-12a837dd5195\",\n \"16126eb9-e693-4afc-9aa4-15c8b756a11e\",\n \"18b9f6a9-5b56-4738-8b4e-86ac3d56fd63\",\n \"1a2e5e8b-9852-46f5-aa2c-3b6256333405\",\n \"1a9e6adb-993f-46eb-8f7f-8e35aedfeb17\",\n \"1c67214a-c416-4f70-8b54-b6de7ef08c81\",\n \"1c744a33-8f51-455c-a44a-f305fd252098\",\n \"1cff0b67-d7ff-4277-928f-18fce61f8404\",\n \"1d191e69-a926-49fa-bd42-5d15ba2df490\",\n \"1df5a58f-6d70-4cc0-b447-04f7d3ad4284\",\n \"1e731435-c242-4bd4-974f-3e6863d21235\",\n \"1eb5726f-7803-4fbf-9751-5de248267344\",\n \"1f571bc8-e336-4033-9060-35747a774a11\",\n \"1f9451eb-15d5-45f7-b4b5-52ee24d82445\",\n \"1fd6b8a3-baef-4170-9f1c-5acb4457f67c\",\n \"21e85fce-df1f-4ade-8fbf-b24eef794758\",\n \"222e4351-cab4-488d-8c1c-e0fddfb172fe\",\n \"22de443e-82c4-4cf4-a6b0-fd0fa78c5ea2\",\n \"235b98d2-5c75-45e6-a703-d1f0c56e1c19\",\n \"237a382d-7609-4190-927e-b95dc0b96a16\",\n \"23bf1ef5-c6de-4dd1-90d7-6656e9d590c0\",\n \"24cbae7e-fa86-4686-b5b5-2b9c11c7c25b\",\n \"24dad4c5-db25-411e-ac06-704cbae1047b\",\n \"26cce5f5-2f0b-4ca9-b4fd-f26fcde27109\",\n \"2a648530-1c8c-43aa-9337-7a3b4cb55b49\",\n \"2aa36a57-767e-4678-ab94-7d7eeef4af48\",\n \"2ad275c6-e057-4d59-90d7-6bc34bd26ff7\",\n \"2b19c3c0-f6c6-4837-aa00-bfd76ea760e3\",\n \"2b3932c5-a804-4ace-9e6d-7137c7953df2\",\n \"2bd666d6-5664-4f48-a9e6-13e9e1c5c4d5\",\n \"2c3af4fe-8000-4248-b9ff-81311d3aa2ff\",\n \"2c529d68-1465-4f8e-b350-2733c9f6bf6d\",\n \"2c83796e-777d-48bb-8cf0-418bdcdbb6fe\",\n \"2d184b80-37e0-40e7-ad47-521463a18c7e\",\n \"2d71870f-deb8-4783-a621-15f3b9d70a2a\",\n \"2eb9b8ae-7fc2-4481-a619-5d4b2ac77081\",\n \"2f24add7-1478-4877-a50f-d41833e132dc\",\n \"2fe9538c-e2eb-4420-83a2-d9aa4776c0df\",\n \"2fef734e-e79a-4abb-9a9a-b4792434cb75\",\n \"30e97b7e-c8e5-43e9-9ab7-9581f348e794\",\n \"318dbad3-f125-4c12-be1f-ac00e6648935\",\n \"321847d8-11f0-4e7e-8677-6b7c7d4c9442\",\n \"321e2def-26ad-4a9e-8e17-f0f2bc775969\",\n \"32b84801-80f3-453f-ad7c-4e7cb62168ec\",\n \"339e09a3-12c7-41fb-b527-eb0456eaee23\",\n \"351829c5-d2ec-46cb-8e31-ab66a7248e7c\",\n \"35848275-81f7-4ac2-a23f-e99e4dc40347\",\n \"35d525ad-5e6c-4ee2-b7de-b425e97b03d8\",\n \"36b6e3c1-cf0b-4752-b79f-b85223df4073\",\n \"36f9385c-69b1-4a96-99e2-5716d149aad8\",\n \"38e265c6-1cec-4eed-a40c-2ed71a4b73f1\",\n \"39521f92-9b55-4989-bd36-fb9b0c0a4dd7\",\n \"3a2d07f1-0047-4ad9-ae34-b862e78ae4e7\",\n \"3b5871a8-adf9-47d0-9d0a-01d80c065832\",\n \"3c1757da-56d1-44e0-86b7-de1cf6777ef7\",\n \"3ceffc5d-aec9-4d9e-9321-f3e14d1aa0ab\",\n \"3e9d9951-4e1a-4f9f-b228-0b415d04b72b\",\n \"3ea0038b-abae-4d5d-b3ce-f3e818ad5f4b\",\n \"3eff14e5-4b82-4138-8e2a-fede288e815c\",\n \"3fa100d9-f5f9-4553-be8d-208ec019459c\",\n \"406b4a17-ce1a-40d4-bcf0-44ce3bdaa781\",\n \"40a2bfb1-d865-43fd-8398-34d149a61e29\",\n \"40f8864b-ce2d-471e-b77c-77aee0defdf7\",\n \"4198bf1e-24cf-4c41-92ac-650dfae2fa1c\",\n \"421731c2-0df4-4c84-8e65-fa18cfe42081\",\n \"4217926f-5941-4e63-9774-084a4495ef94\",\n \"42d25b68-6cc4-4960-a7ce-110558ca2b66\",\n \"43353afd-d4d1-4ff1-972e-1e974de3857c\",\n \"4498287e-2b58-4465-8f2c-8fcbd28e8e6e\",\n \"470c60ce-c6c2-4bd4-8dc8-f3b193408442\",\n \"476f3148-cc03-401d-a973-88f98b0bfabe\",\n \"48da9081-bca3-41ac-bbb9-79fc81950d9b\",\n \"48eb13b3-0173-44cf-93fd-2a50d20bc792\",\n \"48f5d86e-fec9-4d2d-bfdc-11f095d11c36\",\n \"49d05154-4f33-42ca-9ea7-b3f30a2a78f0\",\n \"4adc5a5b-48aa-4bf0-a07e-93eb8e4e97b3\",\n \"4b41587d-02f7-439d-811e-a89dd623adee\",\n \"4b8b3217-ba3f-46d1-985e-4047f65990a4\",\n \"4c18343e-5202-4997-8304-d48dab624853\",\n \"4c834ff5-e828-4908-a1c9-1b046710fce3\",\n \"4cdfaaa1-397b-4554-a608-3d5ecde8bbf1\",\n \"4d145687-d5f3-4304-9a25-f914ba19dd68\",\n \"4d370a3a-308f-435c-9110-1f346a1b652e\",\n \"4fe19e4d-7187-4b15-b352-3e37a6cad34b\",\n \"4fe81a14-f249-4c02-a100-ff6a5007c0a8\",\n \"4ffb2777-ad82-4db0-a846-5e50527d8f74\",\n \"51a700ac-32ab-4378-8c04-641def0acc88\",\n \"51db3fac-d544-41fa-9a67-ad533f8d6343\",\n \"5344fc40-8d1b-4766-a2cf-f283415c6d4a\",\n \"54c0de10-c36a-4a0c-bc2b-0d1231432cc5\",\n \"553f91c9-03e3-4f58-957d-81b5fd3e1597\",\n \"555919ae-021c-422d-87c3-1130e79924d7\",\n \"557a607f-131f-476c-b6df-937f614d23fc\",\n \"56a89bb9-9b4d-41c4-ba88-47af93fdd0f7\",\n \"572af99f-124b-41f7-af1b-db2ed4066f8d\",\n \"57ab8f63-3e5c-47f2-b38e-a1eac7264855\",\n \"5820849d-a650-427b-8ac7-9e4b02fa454a\",\n \"5868f22a-6b2a-4025-b254-82f70309dbfb\",\n \"5879b87f-62d7-4efd-9d52-6879fb4b9f7b\",\n \"5a418f95-bcb7-4a8f-adc6-5e321d444c6c\",\n \"5abdb996-7366-452a-b062-8732c9213f5b\",\n \"5acf9d4d-63a1-493d-9584-8dd903b128b1\",\n \"5c2455bc-098d-4128-afa5-506948b18acd\",\n \"5c6b34de-4b26-4155-9dfa-5db298f87cb7\",\n \"5d41f06e-9780-4c3a-afd9-59feb13519eb\",\n \"5d710e6a-e29e-421a-8fe0-1c0cd25bc450\",\n \"5dc4fdd9-c154-4751-92de-93e95bca0b6a\",\n \"5df673df-f781-456e-bd6f-46c73b502497\",\n \"5f0d7b26-d49a-4657-8a60-757b68365964\",\n \"5fa72e02-0367-4579-a743-55a5bff67c4d\",\n \"6085fb62-2827-4a92-8898-083d3beabbd0\",\n \"6099ed55-d0b8-4e71-a656-36d7b302b234\",\n \"609df756-92ef-4bf2-b240-5583009e59e3\",\n \"60e05f81-5c15-4a52-94a4-86ba7a47ba1e\",\n \"62136ef7-a114-4c3b-9e59-1a49063040dd\",\n \"62827ef1-e804-4c6c-8526-4aaa298d109a\",\n \"6369eb7f-95b4-401c-8a43-fbdf0e153b86\",\n \"63773163-80b6-4fa4-bc98-afc0422261b8\",\n \"639d10e5-acec-45bd-a89a-d3fa626a5ec2\",\n \"6423c9fa-2d0c-43b6-a43e-48644bfaf589\",\n \"64f4e8d0-ec10-425d-8df9-e86c2ce5f759\",\n \"6552f2e3-7753-49b8-909f-bb677e57fb45\",\n \"65bcbf92-6561-45fd-a3f1-ca1b521a7d2e\",\n \"667ca6ce-1392-4c59-a614-a62f6be9ec70\",\n \"6904f324-276c-493d-8d9e-46b91cac0f2d\",\n \"69defee0-6c31-4566-989c-85828871072b\",\n \"6ba83eaf-ab21-43fd-93bc-76c9b47fd975\",\n \"6d48d7b3-0c5d-48be-bd82-9b499c304dd1\",\n \"6d64d8e5-7089-41f7-a37e-dcdeee9610a2\",\n \"6e0480ba-6bfd-4c91-9d88-0b1260cc3e56\",\n \"6fc9493c-fbc0-4d86-8777-7e60c18922dc\",\n \"70af7be5-bf1a-44ed-9a1d-2d6ec42662aa\",\n \"713ddff8-b9df-49fc-bef5-728845c202a6\",\n \"71e190fa-4439-406c-b4ca-e19c79b3c0b5\",\n \"72082a3f-a926-490a-a830-f9552a842174\",\n \"736ae480-d220-4c66-9be5-ab761b654cd3\",\n \"74fbd46d-5db0-4420-9e6c-bfe22392609f\",\n \"750a4891-d9b9-49d9-8811-c6c7f5bf553b\",\n \"766d3b2b-0a7a-4581-9d34-15dffd9da7b1\",\n \"76bd5ddd-1711-40f2-bb22-228f33861d37\",\n \"77ba2ec3-c59f-4f90-8a53-90417110e92d\",\n \"7859e4de-5a17-4693-bc90-e15f69d017d8\",\n \"79cb4b19-8410-4730-a92b-67a73cee6fae\",\n \"79d8a1da-a897-48c3-97e6-bd649f4ef05d\",\n \"7a500e34-29e7-4c6e-bf6e-a754aa387c3c\",\n \"7a51843b-1627-4a26-bde4-907d6aa36a25\",\n \"7aa80f65-9966-4023-9576-af8629edd752\",\n \"7b59030a-0484-4878-9bfe-487da606c840\",\n \"7c12ba71-a490-4c69-9eba-10fb57adf0a9\",\n \"7c2049a4-d5d0-4eaa-b14d-da1e9ff4b6e9\",\n \"7c46121d-cc87-400d-8f84-1bdabb5d8184\",\n \"7dfa1d26-d2d3-49aa-ac6e-ddd511d2d4da\",\n \"7dfbfcaf-3409-4226-bd48-837d943092b1\",\n \"7e07f236-2326-4749-a825-53b95c460918\",\n \"7e28a382-fd7f-42de-87a3-20f364b45d62\",\n \"7e78bfd3-b19d-4403-8f8f-1b8f40e0ea3b\",\n \"7eb6bd5e-1b57-4e37-b485-e8bb3112d7a4\",\n \"7f05db87-6f57-400b-a2f9-8fcf54e2ee3e\",\n \"802c73bd-d45c-468a-84f4-23f5077e0bb4\",\n \"8053218e-71f7-47dd-b320-5195693b3046\",\n \"80839e13-e8f0-430a-b8b7-f46c30892277\",\n \"81260192-5471-4404-9a71-52bd45cf0a46\",\n \"81e92088-7674-4f12-9f43-d2b9075df22a\",\n \"83d6aa14-cc5e-41f1-ad29-5af3fcadfde0\",\n \"84def573-bd9e-4d11-acc9-5c35c9080664\",\n \"84f9c731-66ac-4f4c-8883-7a392b619445\",\n \"84fa8d62-d715-4a94-93ab-8519956c8dae\",\n \"85010a4a-2a4e-49c7-a3b5-ba4e895f3f11\",\n \"85147de1-4551-45b9-916b-16571819b0b7\",\n \"855f63d6-cba7-4eaf-878a-cb22ccebdd28\",\n \"8682fc85-1233-4bde-a94e-282f864c85a3\",\n \"86c9be0a-dbb5-42d1-83c2-8847189748dc\",\n \"8774a55a-545d-4140-9aae-3c9701abcc3c\",\n \"8900fb7d-caee-4893-9fc4-db147b273b7b\",\n \"89a166bf-a028-4fb2-8aad-83f015852ce5\",\n \"8aec6186-accb-4e49-a443-22d3fc62b986\",\n \"8af5ce7b-50d8-4158-91a2-998defc72fde\",\n \"8d0aa5c2-f88b-4664-bb3d-31ed8a4bef07\",\n \"8d27fd5d-72be-484b-b1c4-c2a45463007b\",\n \"8d43174a-3ee9-4e11-b94b-627382530171\",\n \"8dedc642-aedc-46e3-a009-e2c13271d222\",\n \"8e8cd71c-bb35-4ca6-8429-ab0511bb9b36\",\n \"8e9d7d52-c7d0-4632-aeba-3e083072e841\",\n \"90980deb-120f-41fd-b0f5-bc2f386c85ab\",\n \"9118921f-e912-4cb7-9439-2c6a14ade322\",\n \"919cf91e-4814-4faf-8b64-b266cbc7d8a0\",\n \"921906a5-3e49-4746-a6ac-844b1066487a\",\n \"931ae78f-59dc-406d-8adc-7eaeb0310fc2\",\n \"934d3062-5cca-41c2-8736-9934becf4d21\",\n \"93978f78-54b7-4e64-9892-aa4174a757c1\",\n \"93a58432-80c6-4aaa-9804-88f4d57f08bb\",\n \"93aa1baf-945e-4b0b-93fa-16328be4f073\",\n \"93ae4b74-c7ff-4711-83d0-a79b65adc0a4\",\n \"93cab098-4f13-4a78-a92d-27fad86faef1\",\n \"94396d17-00b7-4c99-8b0d-1d2d8d28f684\",\n \"94c21a11-95a0-4c23-aeba-c4c86994a856\",\n \"94d2e520-fee6-4916-b693-452b1fa5d835\",\n \"94f47f61-5273-4fea-a61a-bb177a1f27d9\",\n \"9525dfaf-faae-43e1-9a80-cf2ab4f52d82\",\n \"9530e894-8362-4eb8-bdfb-8cd7a0ac3204\",\n \"9668ff25-7fb7-4410-8235-6a6515b96091\",\n \"969aa072-c1cd-4a17-bed2-91662e99dc15\",\n \"97cdf6bf-8d5e-4691-8742-f59580a0e01b\",\n \"9832a198-b978-449c-bd7b-588fb6e49660\",\n \"98733457-b096-4ecf-ac37-9b1103d094ec\",\n \"9878c2f6-398f-426a-911d-8ee1915caf5b\",\n \"98df23a4-7a68-4dae-8ba9-cfeabb18b441\",\n \"99b93126-dd3f-4977-b7fe-c6f39b765c9e\",\n \"9ab8b42f-d73d-4cd8-8d8a-a8fd5e07c75b\",\n \"9cf1be24-4854-48b2-b9e7-b9a37a9efaed\",\n \"9e88f0dc-d1af-4648-8f12-ca0a47cd8654\",\n \"a041f05f-3d7c-4351-9425-3f5b3d96b1aa\",\n \"a0aed35f-b147-4ebb-8c01-3f43bf15daa1\",\n \"a13af911-4904-4ad0-9ee8-804a8811be6e\",\n \"a2154ca3-93c5-47ef-9665-dc0c3c6851a9\",\n \"a3244281-87fd-4531-9d06-f8b771ea1487\",\n \"a5080417-b1a7-4a65-9148-fa6b16d073bf\",\n \"a5b24d46-7a33-4429-8189-fd778e0fe225\",\n \"a5b392a3-d0da-472a-a87d-f1a4cc24e90f\",\n \"a5f6f1aa-f13b-4239-bf5b-562b613e6b49\",\n \"a73925f2-848f-42f2-a283-968ca31dddec\",\n \"a766ef7b-0222-4795-9c3d-9aaf690fa58a\",\n \"a8242533-e73f-4847-9c33-c3bf1d0ded74\",\n \"a89bcc24-d9b7-4adc-a298-2a44717a63d5\",\n \"a93f84c8-08cf-4c01-8bf8-b5a7037af023\",\n \"a9afce01-5b05-4a88-a04c-1d1e062f6855\",\n \"aad7988d-b427-4bbe-bf63-c9d65e23adef\",\n \"ab4feb9b-189f-4805-8d74-9b9c0d7c5a88\",\n \"ab687c9f-fdf7-4b6b-91d9-6a3481ba433e\",\n \"acb750f4-74d1-4fd6-8655-cfe8c5d7a925\",\n \"ad898000-1a75-40e9-a09a-d46a6959cabb\",\n \"af3888d5-239b-40af-9c08-0e0b1fae6b63\",\n \"afe5270a-317e-46d5-8e84-aa8c33e03fe9\",\n \"afe961a8-cec6-4c6e-bb6c-a64b09635ad7\",\n \"b0e5c9ff-97d2-4d83-98c0-8dbcbc5a9960\",\n \"b103d017-ca5a-4b4c-9761-7f93e2d29944\",\n \"b12a99f5-ebf6-4864-9da5-e0a86bf1960d\",\n \"b12b4075-5a8e-4881-a705-9f1e79ace382\",\n \"b18a828b-d944-44d2-bd97-8781e624806a\",\n \"b23004c6-3d50-4b31-917c-34611a68face\",\n \"b2f172f0-158b-4701-b143-72daf11e170d\",\n \"b454fdac-11f1-4d2c-a635-29c6b778430f\",\n \"b5730ba5-af85-4164-851b-473d76adfe14\",\n \"b5fc1db3-393d-4e3d-b245-35c8f84ef055\",\n \"b69210c2-4a1a-42a2-9aaa-6eb8f926c90a\",\n \"b6b603fc-ae62-48e6-b9da-83a44d565b22\",\n \"b6ba7a30-7b25-4b8a-b0f2-d939390f7676\",\n \"b6fd1250-8655-4884-ac59-8e40023e5d1d\",\n \"b76479a7-a5e2-4e03-81ab-46a29331da63\",\n \"b8e98865-656f-4e68-be16-e4794a504e2f\",\n \"b91fff82-a0fd-4763-a044-22c917120dce\",\n \"bad38215-08e3-4ace-b236-dbf112c27b0c\",\n \"bad87e61-febf-4f49-90a4-343ad8dab6b0\",\n \"bc2a9f7b-6bb3-43c6-87b7-9ef3369a1ba2\",\n \"bc3e0d28-2eb3-443c-b373-b4fdffa4b2cf\",\n \"bcdf53e8-e0f4-49e8-8914-5d2cf6ecbc45\",\n \"bce9fe05-e560-46df-9bca-7717395bc30d\",\n \"bd8cf752-55fb-4391-89d1-dfeb7167d8af\",\n \"bdd2dd3b-63e9-438b-8dba-8c47f0d81d76\",\n \"be19e6a3-09f8-42ea-8bd3-68bf061cae7e\",\n \"bebc926c-5ac6-464b-981c-1625681cde0a\",\n \"c03e6084-c7a0-4f98-b3a3-d092fe0fd984\",\n \"c183a6ee-dd7a-4735-bafe-73247e767bb1\",\n \"c2542c78-779c-4774-81ce-8b947ee07692\",\n \"c2a2faf8-cb3d-4f48-807c-ac84655823f7\",\n \"c3b6304e-1854-4fc8-807a-021a3fbf7402\",\n \"c458cf61-02e1-4240-ac5e-2dc4d4a2ef5a\",\n \"c6c917c3-6491-4196-a483-046471df4eaf\",\n \"c7a492f0-57c2-413b-bf4b-045a26105fdf\",\n \"c8d9be6d-d884-4d08-8c5b-3e5d6af36725\",\n \"c9c8bbed-56eb-4227-9deb-7ae0715e786a\",\n \"c9dab287-953b-4071-bc82-bdc966a82e8e\",\n \"ca78b44a-4231-47ed-81dd-b374546a4187\",\n \"caa805ff-4b44-4369-b83c-dd38a8326379\",\n \"ccedf4b2-44eb-4c20-8a26-6c2f73d130fe\",\n \"cd97090d-85e0-41d6-b659-b1df866cd6c7\",\n \"ce164914-20c7-40d4-a03a-33e1e64e0e1f\",\n \"cee1f693-c3fc-4ed1-b0b0-06932d12766c\",\n \"cf82d901-e4b3-49a6-88d1-81b5d724e566\",\n \"cf8d49ec-fcf9-4f51-b182-2c213523211a\",\n \"d0517db5-bac5-4ebd-9426-2c70e97c2407\",\n \"d18af5ba-816f-43fe-8af4-02e7d4e6905d\",\n \"d23ab0d7-3231-49ab-9685-e8fe3145180e\",\n \"d2961f8b-17a2-4e5d-b4d0-348368581133\",\n \"d2f080bb-5a54-4e19-81de-c9072d4109e2\",\n \"d555b30c-91c7-47e6-a36c-0a8eb0977f18\",\n \"d58f6ae9-3c67-44bd-a127-3fdba669d650\",\n \"d671fc72-8a19-4d11-9b09-5c781b732478\",\n \"d765d4a6-469c-4274-8652-ba2897cfcf30\",\n \"d7e58007-c1d0-49f3-92b0-e83fc08a9703\",\n \"d91508e0-f263-4ed5-be16-b26c4c674c86\",\n \"d99d28a9-d7a0-41fb-9bda-5f95c89e123f\",\n \"dce4081e-111f-435f-a146-5ff0b184a727\",\n \"dcec2c8f-0b4f-4ff7-8dd2-57ece7270a96\",\n \"dd2eb41d-75a3-44cb-8c24-f294a0d3ad54\",\n \"dd37c6a1-05fb-4747-8634-df0fe2094895\",\n \"dd9e7e93-ce61-4f4a-8dae-775be04c181b\",\n \"de192e68-2295-4752-ad8e-cf18d147056a\",\n \"dee0a9c3-a3dd-4559-b11d-da8bd2555a15\",\n \"df2f82ab-8234-44f7-841a-2e1c68be4b79\",\n \"dfb8d36d-0e66-40b1-a4cb-94df5a8972c0\",\n \"e2a28a06-4d14-4bfd-8949-f134b7e83957\",\n \"e323e41b-2d76-48ab-90f5-553b4868e7ec\",\n \"e3a7164e-9c0e-4e69-9c47-bdeb9b52664c\",\n \"e3f666d5-fd3f-4cf1-b819-8b2102b823ca\",\n \"e508188e-ada1-4ae5-8ca5-0709c4d2b6e4\",\n \"e8c78c69-ea90-4bd5-82be-0c2e8bd0fd0b\",\n \"e9e78f83-4926-49d1-9c79-59e5f0dbc136\",\n \"eb6d3811-6c56-4237-b74c-77fb306186f8\",\n \"eb7044a4-7a7a-498b-afdd-fe61c9a3c29f\",\n \"eba3cab5-ff6c-4468-a0ab-33cd2d07dd25\",\n \"ebbd695a-1773-45d2-9946-11760452282f\",\n \"ecd17a8d-10d5-48ec-9959-9a5358f4a97a\",\n \"ed3871d3-f99b-4db0-a2d5-2469e2281e57\",\n \"ef6a9b86-e240-4b1d-880c-14400dd532eb\",\n \"ef758c3f-95a1-40a7-90b9-ae97868dfd35\",\n \"efa06d56-f1e4-4f95-b4a9-19fbdf80c802\",\n \"efbd4c74-e63d-48a6-8239-79f05d81769d\",\n \"f10c5f86-7d82-47dd-99b4-9ea9e49728da\",\n \"f2819c0f-6cbd-4ba1-bd27-39675d5eb33d\",\n \"f294546c-79bc-449e-b22b-f3d2c8cbb4a2\",\n \"f2969e4f-dccb-4b81-9ba1-013b837e40ac\",\n \"f2a2d153-5ef2-43fa-953d-376115005f40\",\n \"f33d7be9-c80b-435f-8bdc-64c2f4166ff9\",\n \"f3499381-a7f8-4ec0-825e-88699e4aee86\",\n \"f399e13f-9e3e-4c51-9f98-f78ecfa4e54f\",\n \"f4a57c3d-146c-44cd-905f-1979789bd835\",\n \"f537eced-9990-4e8c-9438-03bf18da744a\",\n \"f542a168-75bb-46b3-93dc-5ef42a82374d\",\n \"f6c83c05-3251-4a0c-ab3d-5fd25e76520a\",\n \"f7d58215-f67b-4bc2-b677-97ede542711c\",\n \"f7dd3bfe-8ded-402f-907d-03be75f50c43\",\n \"f7ea896d-a8cc-496e-a203-c21207808b93\",\n \"f82a18cb-e4a0-49a3-84a4-26810ba9a61f\",\n \"f9d0821f-a4dc-4c6d-a90c-9188e9bbf494\",\n \"fa8ab4ff-6207-4d5e-8ea5-680e8d4ec5cf\",\n \"fb0b6b2d-7cff-4d83-8a59-2a5617f5cf00\",\n \"fb16b880-606e-47f2-9bcd-daa6c118600a\",\n \"fbcb8621-c08b-421a-9926-0afda22e28ab\",\n \"fc2afb01-6aea-45ef-9668-aa52f55135cf\",\n \"fcdc5d11-44ec-47e0-bca3-e2b26a7509f9\",\n \"fe27b860-6a6f-4378-9e87-b32cf72d8a5f\",\n \"feb7ef1e-751f-4320-8bee-11aa5734eb59\",\n \"ff56a84d-9776-4259-9b53-fe00c1a3f1d8\",\n \"ff61210f-bbc0-4f54-a9d9-a5868d5368ad\",\n \"c537aaba-f3b5-444e-baa1-5c65b10ef2c1\",\n \"3d5fbcb2-2776-4eaa-9b1a-4fad13234983\",\n \"63b51dd2-3d45-48ea-bac2-aaf2c18c4800\",\n \"79fd5bbe-32f6-4003-a928-7db891232ce1\",\n \"fc4930ad-40b6-4999-b855-a227a42f769f\",\n \"b6eea4d2-ffe9-4793-9049-65f4229484db\",\n];\n\nexport const NOTION_DOC =\n \"https://isda-academy.notion.site/Thank-You-for-Applying-12feebdbc51c801f9fb5de868432678b\";\n","import { API } from 'aws-amplify';\nimport { LEARN_SUBMISSION_API_ENDPOINT_NAME } from '../aws-exports';\nimport { returnSelectedCourse } from '../modules/course-lms-v2/components/shared/utils';\nimport { getCourse, returnCourseApiName, returnCourseCamelCaseName } from './getcourse';\n\nexport const fetchShortCourseCardData = async (course) => {\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/short-courses?courseType=${course}`\n );\n};\n\nexport const fetchShortCourseData = async (slug) => {\n return await API.get(LEARN_SUBMISSION_API_ENDPOINT_NAME, `/api/short-courses/fetch?slug=${slug}`);\n};\n\nexport const postComplimentaryActivityStatus = async (data) => {\n return await API.post(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/short-courses/lesson/activity/update-status`,\n {\n body: data,\n }\n );\n};\n\nexport const courseData = async (course, param) => {\n const selectedCourse = returnSelectedCourse(course);\n let string = `/api/course/v2/contents?course=${selectedCourse}`;\n if (param) {\n string = `/api/course/v2/contents?course=${selectedCourse}&${param}`;\n }\n return await API.get(LEARN_SUBMISSION_API_ENDPOINT_NAME, string);\n};\n\nexport const postComplimentaryLastLesson = async (data) => {\n return await API.post(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/short-courses/last-lesson/update-status`,\n {\n body: data,\n }\n );\n};\n\nexport const getComplimentaryLastLesson = async (courseId) => {\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/short-courses/last-lesson/get-status?courseId=${courseId}`\n );\n};\n\nexport const postLastLesson = async (course) => {\n return await API.post(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/course/last-lesson?courseId=${course.courseId}&courseType=${course?.type}`,\n {\n body: {\n courseId: course.courseId,\n moduleId: course.moduleId,\n chapterId: course.chapterId,\n lessonId: course.lessonId,\n trackId: course.trackId,\n },\n }\n );\n};\n\nexport const completeLesson = async (course) => {\n const courseName = returnCourseCamelCaseName(course.type);\n return await API.put(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/course/v2/complete-lesson?courseId=${course.courseId}&courseType=${courseName}`,\n {\n body: {\n lessonId: course.lessonId,\n status: course.status,\n },\n }\n );\n};\n\nexport const fetchPrepLessonPopupStatus = async (data) => {\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/popup/get-status?entityId=${data.id}&entityType=${data.type}`\n );\n};\n\nexport const postPrepLessonPopupStatus = async (data) => {\n return await API.post(LEARN_SUBMISSION_API_ENDPOINT_NAME, `/api/popup/mark-as-shown`, {\n body: {\n entityType: data?.type,\n entityId: typeof data?.id === 'string' ? data?.id : JSON.stringify(data?.id),\n },\n });\n};\n\nexport const postCompletePrepLesson = async (course) => {\n return await API.post(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/short-courses/lesson/update-status`,\n {\n body: {\n lessonId: course.lessonId,\n courseId: course.courseId,\n status: course.status,\n },\n }\n );\n};\n\nexport const postPopupShown = async (data) => {\n return await API.post(LEARN_SUBMISSION_API_ENDPOINT_NAME, `/api/course/mark-popup-shown`, {\n body: {\n entityType: data?.type,\n entityId: typeof data?.id === 'string' ? data?.id : JSON.stringify(data?.id),\n },\n });\n};\n\nexport const getProblemsById = async (data) => {\n const selectedCourse = getCourse(data?.course);\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/assessment/coding-assessments/${selectedCourse}/${data?.id}`\n );\n};\n\nexport const getQuizById = async (data) => {\n const courseName = returnCourseApiName(data.course);\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/assessment/mcq-assessments/${courseName}/${data?.id}`\n );\n};\n\nexport const getProjectsById = async (data) => {\n const selectedCourse = getCourse(data?.course);\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/project/${selectedCourse}/${data?.id}`\n );\n};\n\nexport const getLastLesson = async (data) => {\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/course/last-lesson?courseId=${data?.courseId}&courseType=${data?.courseType}`\n );\n};\n\nexport const getAssignmentById = async (assignment) => {\n const selectedCourse = getCourse(assignment?.course);\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/course/assignment/${selectedCourse}/${assignment?.id}`\n );\n};\n\nexport const postAssignmentDataById = async (assignment) => {\n const selectedCourse = getCourse(assignment?.course);\n return await API.post(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/course/assignment/${selectedCourse}/${assignment?.id}`,\n {\n body: {\n link: assignment?.link,\n evaluationStatus: assignment?.evaluationStatus,\n },\n }\n );\n};\n\nexport const getShortCourseCategory = async (course) => {\n const selectedCourse = getCourse(course);\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/course/short-course-category/${selectedCourse}`\n );\n};\n\nexport const fetchMultimediaAssignment = async (data) => {\n const courseName = returnCourseApiName(data?.course);\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/assignment/${courseName}/${data.id}`\n );\n};\n\nexport const postMultimediaAssignment = async (data) => {\n return await API.post(LEARN_SUBMISSION_API_ENDPOINT_NAME, `/api/assignment/submit`, {\n body: data,\n });\n};\n\n// classRoom\nexport const fetchClassRoomData = async (course) => {\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/classroom/all-classes-activity?courseType=${course}`\n );\n};\n\nexport const fetchAllClasses = async (course) => {\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/v2/classroom/classes?courseType=${course}`\n );\n};\n\nexport const fetchPreSignedUrl = async ({ cloudType, itemKey }) =>\n API.post(LEARN_SUBMISSION_API_ENDPOINT_NAME, `/api/v2/classroom/get-signed-url`, {\n body: {\n cloudType,\n itemKey,\n },\n });\n\n// get classroom video\nexport const fetchPreSignedUrlFromAWS = async (videoItemKey) => {\n return await fetchPreSignedUrl({ cloudType: 'aws', itemKey: videoItemKey });\n};\n\nexport const fetchHandoutsForClassroom = async (handoutItemKey) => {\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/classroom/get-signed-url?ItemKey=${handoutItemKey}`\n );\n};\n\nexport const submitClassroomFeedback = async (body) => {\n return await API.post(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/v2/classroom/student/submit-feedback`,\n {\n body,\n }\n );\n};\n\nexport const getRecordMapByPageId = async (pageId) => {\n return await API.get(LEARN_SUBMISSION_API_ENDPOINT_NAME, `/api/notion/get-page/${pageId}`);\n};\n\nexport const selectSpecialisationTrack = async (data) => {\n return await API.post(LEARN_SUBMISSION_API_ENDPOINT_NAME, `/api/course/select/tracks`, {\n body: data,\n });\n};\n\nexport const trackAssesmentForWoolf = async (data) => {\n return await API.post(LEARN_SUBMISSION_API_ENDPOINT_NAME, `/api/assessment/track/activities`, {\n body: data,\n });\n};\n\nexport const fetchAllActivitiesStatus = async (lessonId) => {\n return await API.get(\n LEARN_SUBMISSION_API_ENDPOINT_NAME,\n `/api/course/lesson/${lessonId}/activities`\n );\n};\n\nexport const updateLessonActivityStatus = async (body) => {\n return await API.post(LEARN_SUBMISSION_API_ENDPOINT_NAME, `/api/course/lesson/actvities`, {\n body,\n });\n};\n","import { createSlice } from '@reduxjs/toolkit';\nimport { currentLessonActivityStatus } from 'src/modules/course-lms-v2/components/local/learnLesson/lesson/utils';\nimport {\n chapterOrderSet,\n complimentaryChapterOrderSet,\n returnLastLessonName,\n} from 'src/modules/course-lms-v2/components/shared/utils';\nimport { returnCourseApiName } from 'src/services/getcourse';\nimport { returnActualCourseNameForApi } from '../services/getcourse';\nimport {\n courseData,\n fetchAllActivitiesStatus,\n fetchAllClasses,\n fetchShortCourseCardData,\n fetchShortCourseData,\n getComplimentaryLastLesson,\n getLastLesson,\n submitClassroomFeedback,\n updateLessonActivityStatus,\n} from '../services/learnTabApiService';\n\nconst initialState = {\n currentChapter: {\n module: 0,\n chapter: 0,\n problems: [],\n currentSelectedProblem: 0,\n totalModules: 0,\n },\n courseData: null,\n headerIcon: {\n reset: false,\n settings: false,\n fullscreen: false,\n },\n selectLanguage: 'javascript',\n code: {\n python: '',\n javascript: '',\n html: '',\n css: '',\n react: '',\n java: '',\n },\n shortCourse: {\n cardData: [],\n shortCourseData: {},\n },\n updateSubmission: false,\n lastLesson: null,\n lastLessonComplimentary: null,\n currentChapterIndex: null,\n noLastLesson: false,\n classroom: null,\n lastAccessedLesson: null,\n activityStatus: null,\n actualActivityData: null,\n practiseData: null,\n completeLessonLoader: false,\n completedActivities: {},\n mobileModuleSelected: null,\n selectedTrack: null,\n shortCourseLoader: false,\n};\n\nconst learnTabSlice = createSlice({\n name: 'learnTabReducer',\n initialState,\n reducers: {\n setCurrentChapter: (state, action) => {\n state.currentChapter.chapter = action.payload.chapter;\n },\n setShortCourseCardData: (state, action) => {\n state.shortCourse.cardData = action.payload;\n },\n updateShortCourseData: (state, action) => {\n state.shortCourse.shortCourseData = action.payload;\n },\n setPractiseData: (state, action) => {\n state.practiseData = action.payload;\n },\n setCurrentProblem: (state, action) => {\n state.currentChapter.currentSelectedProblem = action.payload;\n },\n setCurrentModule: (state, action) => {\n state.currentChapter.module = action.payload;\n },\n setTotalModules: (state, action) => {\n state.currentChapter.totalModules = action.payload;\n },\n setCourseData: (state, action) => {\n state.courseData = action.payload;\n },\n setMobileModuleSelected: (state, action) => {\n state.mobileModuleSelected = action.payload;\n },\n setSelectedTrack: (state, action) => {\n state.selectedTrack = action.payload;\n },\n updateHeaderIcon: (state, action) => {\n state.headerIcon[action.payload.icon] = action.payload.value;\n },\n updateLanguage: (state, action) => {\n state.selectLanguage = action.payload;\n },\n resetLanguage: (state, action) => {\n state.code = {\n python: '',\n javascript: '',\n html: '',\n css: '',\n react: '',\n java: '',\n };\n },\n updateCode: (state, action) => {\n state.code[state.selectLanguage] = action.payload;\n },\n setUpdateSubmissions: (state, action) => {\n state.updateSubmission = action.payload;\n },\n setLastLesson: (state, action) => {\n if (action.payload?.length === 0 || typeof action.payload !== 'object') {\n state.noLastLesson = true;\n }\n state.lastLesson =\n typeof action.payload === 'object' && action.payload?.length > 0 ? action.payload?.[0] : {};\n },\n setNoLastLesson: (state, action) => {\n state.noLastLesson = action.payload;\n },\n setCurrentChapterIndex: (state, action) => {\n state.currentChapterIndex = action.payload;\n },\n setLastLessonComplimentary: (state, action) => {\n state.lastLessonComplimentary = action.payload;\n },\n setClassroom: (state, action) => {\n state.classroom = action.payload;\n },\n setLastAccessedLesson: (state, action) => {\n state.lastAccessedLesson = action.payload;\n },\n setActivityStatus: (state, action) => {\n if (action.payload?.status) {\n state.activityStatus = action.payload.status;\n }\n if (action.payload?.data) {\n state.actualActivityData = action.payload.data;\n }\n },\n setCompleteLessonLoader: (state, action) => {\n state.completeLessonLoader = action.payload;\n },\n setCompletedActivities: (state, action) => {\n state.completedActivities = action.payload;\n },\n updateShortCourseLoader: (state, action) => {\n state.shortCourseLoader = action.payload;\n },\n },\n});\n\nexport const getLastAccessedLesson = (state) => state.learnTabReducer.lastAccessedLesson;\nexport const shortCourseCardData = (state) => state.learnTabReducer.shortCourse.cardData;\n\nexport const fetchLastAccessedLesson = () => {\n return async (dispatch, getState) => {\n try {\n const courseInfo = getState().learnTabReducer.courseData;\n const lastLesson = getState().learnTabReducer.lastLesson;\n const data = returnLastLessonName(courseInfo, lastLesson);\n dispatch(setLastAccessedLesson({ ...data }));\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport const getShortCourseData = (slug) => {\n return async (dispatch, getState) => {\n try {\n dispatch(updateShortCourseLoader(true));\n const result = await fetchShortCourseData(slug);\n const sortedData = complimentaryChapterOrderSet(result);\n dispatch(fetchComplimentaryLastLesson(sortedData?.id));\n dispatch(updateShortCourseData(sortedData));\n } catch (error) {\n dispatch(updateShortCourseData({}));\n console.error(error);\n } finally {\n dispatch(updateShortCourseLoader(false));\n }\n };\n};\n\nexport const getActivityStatus = (activityData) => {\n return async (dispatch, getState) => {\n try {\n const userSubscription = getState().userSubscriptionReducer.subscriptionDetails;\n const actualCourseSelected = getState().courseReducer.courseSelected;\n const courseApiName = returnCourseApiName(actualCourseSelected);\n const selectedCourseSubscription = userSubscription?.[courseApiName] ?? null;\n if (!selectedCourseSubscription) return [];\n const res = await fetchAllActivitiesStatus(activityData?.lessonId);\n const allStatus = currentLessonActivityStatus(res);\n await dispatch(setActivityStatus({ status: allStatus, data: res }));\n return allStatus;\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport const postLessonActivityStatus = (activityData) => {\n return async (dispatch, getState) => {\n try {\n const userSubscription = getState().userSubscriptionReducer.subscriptionDetails;\n const actualCourseSelected = getState().courseReducer.courseSelected;\n const courseApiName = returnCourseApiName(actualCourseSelected);\n const selectedCourseSubscription = userSubscription?.[courseApiName] ?? null;\n if (!selectedCourseSubscription) return null;\n return await updateLessonActivityStatus(activityData);\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport const getClassroomData = () => {\n return async (dispatch, getState) => {\n try {\n const userSubscription = getState().userSubscriptionReducer.subscriptionDetails;\n const courseSelected = Object.keys(userSubscription)[0];\n const actualCourseSelected = returnCourseApiName(getState().courseReducer.courseSelected);\n const modifiedCourse = returnActualCourseNameForApi(actualCourseSelected || courseSelected);\n const result = await fetchAllClasses(modifiedCourse);\n\n const currentDate = new Date().getTime();\n const upcomingData = result.filter((item) => {\n const itemTime = new Date(item.endTime).getTime();\n return itemTime > currentDate;\n });\n\n const completedData = result.filter((item) => {\n const itemTime = new Date(item.endTime).getTime();\n return itemTime <= currentDate;\n });\n dispatch(\n setClassroom({\n upcoming: upcomingData,\n completed: completedData,\n })\n );\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport const successCallbackAfterFeedbackSubmission = (params, responseData) => {\n return async (dispatch, getState) => {\n delete responseData?.email;\n delete responseData?.activityId;\n const apiData = {\n activityId: params?.activityId,\n feedback: responseData,\n };\n const res = await submitClassroomFeedback(apiData);\n if (res) {\n dispatch(getClassroomData());\n }\n };\n};\n\nexport const getShortCourseCardData = () => {\n return async (dispatch, getState) => {\n try {\n const userSubscription = getState().userSubscriptionReducer.subscriptionDetails;\n const courseSelected = Object.keys(userSubscription)[0];\n const actualCourseSelected = getState().courseReducer.courseSelected;\n const modifiedCourse = returnActualCourseNameForApi(actualCourseSelected || courseSelected);\n const result = await fetchShortCourseCardData(modifiedCourse);\n dispatch(setShortCourseCardData(result));\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport const getCourseData = () => {\n return async (dispatch, getState) => {\n try {\n const userSubscription = getState().userSubscriptionReducer.subscriptionDetails;\n const courseSelected = Object.keys(userSubscription)[0];\n const actualCourseSelected = getState().courseReducer.courseSelected;\n const modifiedCourse = returnActualCourseNameForApi(actualCourseSelected || courseSelected);\n const apiCourseName = returnCourseApiName(actualCourseSelected || courseSelected);\n const param =\n userSubscription?.[apiCourseName]?.paymentStage === 'reserve_seat' ||\n !userSubscription?.[apiCourseName]\n ? actualCourseSelected?.includes('masters')\n ? 'planType=masters'\n : 'planType=pro_live'\n : null;\n const result = await courseData(modifiedCourse, param);\n const data = result?.data?.[0]?.attributes;\n const obj = {\n BASIC_INFO: { ...data },\n courseId: result?.data?.[0]?.id,\n };\n data?.learn_tracks?.data?.forEach((item) => {\n const attributes = item?.attributes;\n const type = attributes?.trackType;\n if (type) {\n const trackType = type.includes('foundation')\n ? 'FOUNDATION_TRACK'\n : type.includes('industry')\n ? 'INDUSTRY_TRACK'\n : 'SPECIALISATION_TRACK';\n\n obj[trackType] = {\n ...chapterOrderSet(attributes),\n id: item?.id,\n courseId: result?.data?.[0]?.id,\n };\n }\n });\n\n dispatch(setCourseData(obj));\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport const fetchlastLesson = (data) => {\n return async (dispatch, getState) => {\n try {\n const result = await getLastLesson(data);\n dispatch(setLastLesson(result));\n return result;\n } catch (error) {\n console.error(error);\n dispatch(setLastLesson([]));\n }\n };\n};\n\nexport const fetchComplimentaryLastLesson = (courseId) => {\n return async (dispatch, getState) => {\n try {\n const result = await getComplimentaryLastLesson(courseId);\n dispatch(setLastLessonComplimentary(result?.lessonId));\n } catch (error) {\n console.error(error);\n }\n };\n};\n\nexport const {\n setCurrentChapter,\n setCurrentProblem,\n setCurrentModule,\n setTotalModules,\n setCourseData,\n updateHeaderIcon,\n updateLanguage,\n updateCode,\n setUpdateSubmissions,\n setLastLesson,\n setCurrentChapterIndex,\n setLastLessonComplimentary,\n setNoLastLesson,\n resetLanguage,\n setClassroom,\n setLastAccessedLesson,\n setActivityStatus,\n setPractiseData,\n setCompleteLessonLoader,\n setCompletedActivities,\n setMobileModuleSelected,\n setSelectedTrack,\n setShortCourseCardData,\n updateShortCourseData,\n updateShortCourseLoader,\n} = learnTabSlice.actions;\n\nexport default learnTabSlice.reducer;\n"],"sourceRoot":""}