{"version":3,"sources":["components/_dashboard/examen/ExamenFormEpreuveItem.tsx","@types/examen.ts","utils/helper.ts","components/Markdown.tsx","components/MenuPopover.tsx","redux/slices/chat.ts","redux/slices/blog.ts","redux/slices/user.ts","redux/slices/product.ts","redux/slices/kanban.ts","redux/slices/studyPlan.ts","redux/rootReducer.ts","redux/store.ts","hooks/useScreenConfig.ts","utils/helperExamen.ts","components/_dashboard/studyPlan/details/SubChapterCard.tsx","components/_dashboard/studyPlan/details/StudyPlanDetailsSidebar.tsx","hooks/usePostMessage.ts","components/_dashboard/studyPlan/details/StudyPlanContentIframe.tsx","components/_dashboard/pedagogy/HomeworkCorrectedMeeting.tsx","components/_dashboard/pedagogy/HomeworkCorrected.tsx","components/_dashboard/pedagogy/HomeworkRejected.tsx","hooks/useChapterItem.ts","components/_dashboard/pedagogy/HomeworkIsScore.tsx","components/IconButtonClignoter.tsx","components/HelpPopover.tsx","components/_dashboard/studyPlan/details/StudyPlanDetailsContentQuiz.tsx","components/_dashboard/studyPlan/details/StudyPlanDetailsAssimilate.tsx","components/_dashboard/studyPlan/details/StudyPlanDetailsToolbar.tsx","components/_dashboard/studyPlan/details/StudyPlanDetailsItemInfo.tsx","components/_dashboard/message/MessageQuestionCard.tsx","components/_dashboard/studyPlan/details/StudyPlanDetailsItemQuestion.tsx","hooks/useStudyPlanMove.ts","components/TextMaxLine.tsx","components/_dashboard/studyPlan/details/StudyPlanDetailsMove.tsx","components/_dashboard/studyPlan/details/StudyPlanDetailsToolbarSide.tsx","components/_dashboard/studyPlan/details/StudyPlanDetailsContentHtml.tsx","components/_dashboard/media/MediaEmptyContent.tsx","components/_dashboard/media/MediaPDF.tsx","redux/db.ts","hooks/useDBEvaluation.ts","components/_dashboard/pedagogy/HomeworkTodoFiles.tsx","components/_dashboard/pedagogy/HomeworkTodoErrorFileMsg.tsx","hooks/useMediatheque.ts","hooks/useHomeworkFile.ts","components/_dashboard/pedagogy/HomeworkTodoFilesAdd.tsx","components/_dashboard/pedagogy/HomeworkTodoErrorSendedMsg.tsx","components/_dashboard/pedagogy/HomeworkTodoSave.tsx","components/_dashboard/pedagogy/HomeworkTodoSaveDraft.tsx","components/_dashboard/pedagogy/HomeworkTodoSaveErrorMsg.tsx","components/_dashboard/pedagogy/HomeworkTodoRetrieveDraft.tsx","components/_dashboard/pedagogy/HomeworkPlagiat.tsx","components/_dashboard/pedagogy/HomeworkAlertSave.tsx","components/_dashboard/pedagogy/HomeworkTodoForm.tsx","components/_dashboard/meeting/MeetingContainer.tsx","components/_dashboard/pedagogy/HomeworkTodoVoice.tsx","components/_dashboard/media/MediaIcon.tsx","components/_dashboard/media/MediaMenuItem.tsx","components/_dashboard/media/MediaMenuPopover.tsx","components/_dashboard/media/MediaCarrousel.tsx","components/_dashboard/pedagogy/HomeworkTodo.tsx","components/_dashboard/studyPlan/details/StudyPlanDetailsHomework.tsx","components/_dashboard/studyPlan/details/StudyPlanDetailsLearningICDL.tsx","hooks/useLearningICDL.ts","components/_dashboard/studyPlan/details/StudyPlanDetailsLearningICDLNote.tsx","components/_dashboard/studyPlan/details/StudyPlanDetailsContentByType.tsx","components/_dashboard/studyPlan/details/StudyPlanDetailsControl.tsx","components/_dashboard/studyPlan/details/StudyPlanDetailsContent.tsx","components/LightboxModal.tsx","components/_dashboard/help/HelpLightboxModal.tsx","components/_dashboard/help/HelpCardImage.tsx","components/_dashboard/help/HelpCardTutorial.tsx","components/_dashboard/help/HelpCardTutorials.tsx","components/_dashboard/help/HelpCard.tsx","components/_dashboard/help/HelpDrawer.tsx","components/editor/quill/QuillEditorToolbarStyle.tsx","components/editor/quill/QuillEditorToolbar.tsx","components/editor/quill/index.tsx","components/editor/draft/DraftEditorToolbar.tsx","components/editor/draft/DraftEditorStyle.tsx","components/_dashboard/examen/ExamenFormObjectifSession.tsx","components/_dashboard/examen/ExamenFormValidationSchema.ts","components/_dashboard/examen/ExamenFormInformations.tsx","components/_dashboard/examen/ExamenFormEpreuves.tsx","components/_dashboard/examen/ExamenFormConfirmation.tsx","components/_dashboard/examen/ExamenForm.tsx","components/file/FileCard.tsx","components/file/FileAttachment.tsx","hooks/useWorkshop.ts","components/_dashboard/workshop/WorkshopSummons.tsx","components/animate/variants/Wrap.ts","components/animate/variants/Actions.ts","components/animate/variants/background/BackgroundPan.ts","components/animate/variants/fade/FadeIn.ts","components/animate/variants/zoom/ZoomIn.ts","components/animate/variants/zoom/ZoomOut.ts","components/animate/variants/bounce/BounceIn.ts","components/animate/variants/bounce/BounceOut.ts","components/animate/MotionInView.tsx","components/animate/MotionContainer.tsx","components/animate/DialogAnimate.tsx","components/animate/ButtonAnimate.tsx","hooks/useStudyPlan.ts","hooks/useModuleAuthorize.tsx","pages/Page500.tsx","redux/slices/survey.ts","components/authentication/login/LoginForm.tsx","pages/authentication/LoginTrackerGoogle.tsx","pages/authentication/Login.tsx","config.ts","hooks/useSidebarConfig.tsx","hooks/useLocalStorage.ts","redux/slices/virtualClass.ts","hooks/useBrand.ts","@types/workshop.ts","components/Page.tsx","redux/slices/workshop.ts","components/ModuleNotAuthorized.tsx","@types/virtualClass.ts","hooks/useStudyPlanChapterItem.ts","redux/slices/homeworkInProgress.ts","components/CardContainer.tsx","hooks/useTrackerGoogle.ts","components/FormikInput.tsx","components/DialogConfirm.tsx","redux/slices/meeting.ts","utils/helperSupport.tsx","utils/formatTime.ts","utils/jwt.ts","theme/palette.ts","components/SkeletonLoadSingle.tsx","components/file/FileDetailsAttachments.tsx","hooks/useTrackerActivity.tsx","components/PhoneInfo.tsx","contexts/StudyPlanContext.tsx","components/DialogTitleWithClose.tsx","mapper/agendaMap.ts","@types/task.ts","locales/i18n.ts","utils/highlight.ts","contexts/CollapseDrawerContext.tsx","components/LoadingScreen.tsx","layouts/main/MainSearchStudent.tsx","layouts/main/index.tsx","hooks/useCollapseDrawer.ts","components/MyAvatar.tsx","layouts/dashboard/AccountPopover.tsx","components/_dashboard/scheduleTeacher/ScheduleTeacherEventForm.tsx","components/_dashboard/agenda/AgendaHomeworkForm.tsx","components/_dashboard/agenda/AgendaDispatcherEvent.tsx","layouts/dashboard/MeetPopover.tsx","components/_dashboard/help/HelpPopover.tsx","layouts/dashboard/HelpButton.tsx","layouts/dashboard/FavoritesPopover.tsx","layouts/dashboard/NotificationsPopover.tsx","components/_dashboard/student/account/AccountShortInfos.tsx","components/_dashboard/student/StudentHour.tsx","layouts/dashboard/AlertsPopover.tsx","components/_dashboard/tracking/CountdownTimer.tsx","hooks/useCountdown.ts","components/_dashboard/workflow/WorkflowUpdated.tsx","hooks/useStudyPlanAverage.ts","layouts/dashboard/DashboardNavbar.tsx","components/NavSection.tsx","components/OneTrust.tsx","components/Faciliti.tsx","layouts/dashboard/Footer.tsx","layouts/dashboard/DashboardSidebar.tsx","components/_dashboard/virtualClass/VirtualClassAccess.tsx","components/_dashboard/seminar/SeminarErrorMessage.tsx","components/_dashboard/seminar/SeminarActionRegister.tsx","components/_dashboard/seminar/SeminarActionCancel.tsx","components/_dashboard/virtualClass/VirtualClassReplay.tsx","components/_dashboard/workshop/WorkshopPaymentForm.tsx","components/_dashboard/seminar/SeminarActionPayment.tsx","components/_dashboard/workshop/WorkshopRegister.tsx","components/_dashboard/virtualClass/VirtualClassRegister.tsx","components/_dashboard/virtualClass/VirtualClassReplayVideo.tsx","components/_dashboard/seminar/SeminarButtons.tsx","components/_dashboard/virtualClass/VirtualClassForm.tsx","components/_dashboard/virtualClass/VirtualClassDetails.tsx","components/_dashboard/workshop/WorkshopCreditView.tsx","components/_dashboard/workshop/WorkshopForm.tsx","components/_dashboard/workshop/WorkshopDetails.tsx","components/_dashboard/chatbot/ChatBot.tsx","components/_dashboard/workflow/WorkflowReconnecting.tsx","layouts/dashboard/WelcomeCallPopup.tsx","components/_dashboard/tracking/attendance/AttendanceTracking.tsx","hooks/useAttendanceTracking.ts","components/_dashboard/hub/HubMessageState.tsx","components/_dashboard/workflow/WorkflowVersion.tsx","hooks/useWorkflowVersion.ts","components/_dashboard/survey/SurveyStepper.tsx","hooks/useSurveyStepper.ts","components/_dashboard/survey/SurveyFormDialog.tsx","components/_dashboard/virtualClass/VirtualClassSurveyAfterLive.tsx","components/_dashboard/virtualClass/VirtualClassSurveyAfterReplay.tsx","components/_dashboard/survey/SurveyRelance.tsx","components/_dashboard/studyPlan/PostMessageStudyPlan.tsx","hooks/useExamenInscriptionPopup.ts","components/_dashboard/examen/ExamenInscriptionPopup.tsx","components/_dashboard/studyPlan/details/StudyPlanDetailsTrackerGoogle.tsx","components/_dashboard/virtualClass/VirtualClassTrackerGoogle.tsx","components/_dashboard/workshop/WorkshopTrackerGoogle.tsx","hooks/useLocales.ts","components/_dashboard/agenda/AgendaTrackerGoogle.tsx","components/_dashboard/meeting/MeetingTrackerGoogle.tsx","hooks/useExamenRecupResultat.ts","components/_dashboard/examen/ExamenRecupResultatPopup.tsx","layouts/dashboard/index.tsx","guards/GuestGuard.tsx","guards/AuthGuard.tsx","components/_dashboard/overtime/OvertimeForm.tsx","components/_dashboard/overtime/OvertimeProposed.tsx","components/_dashboard/overtime/OvertimeCurrent.tsx","pages/dashboard/Overtimes.tsx","pages/dashboard/StudyPlanSearchDetails.tsx","pages/dashboard/ExamenCreate.tsx","components/_dashboard/tracking/attendance/report/communStyles.ts","components/_dashboard/tracking/attendance/report/AtendanceReportHeader.tsx","components/_dashboard/tracking/attendance/report/AttendanceReportFooter.tsx","components/_dashboard/tracking/attendance/report/AttendanceReportInformations.tsx","components/_dashboard/tracking/attendance/report/AttendanceReportPersonnal.tsx","hooks/useAttendanceReport.ts","components/_dashboard/tracking/attendance/report/AttendanceReportWeek.tsx","components/_dashboard/tracking/attendance/report/AttendanceReportPage.tsx","components/_dashboard/tracking/attendance/AttendanceReportView.tsx","pages/AttendanceReportLandingPage.tsx","components/_dashboard/examen/ExamenInscriptionAdd.tsx","hooks/useExamenFormGestionInterne.ts","components/_dashboard/examen/ExamenFormPeriode.tsx","components/_dashboard/examen/ExamenFormGestionInterneValidationSchema.ts","components/_dashboard/examen/ExamenFormObjectivePlanning.tsx","components/_dashboard/examen/ExamenFormSessionInterne.tsx","components/_dashboard/examen/ExamenFormGestionInterne.tsx","pages/dashboard/ExamenCreateGestionInterne.tsx","routes/index.tsx","theme/shape.ts","theme/typography.ts","theme/breakpoints.ts","theme/overrides/Rating.tsx","theme/overrides/TreeView.tsx","theme/overrides/Checkbox.tsx","theme/overrides/index.ts","theme/overrides/Fab.ts","theme/overrides/Tabs.ts","theme/overrides/Chip.tsx","theme/overrides/Card.ts","theme/overrides/Menu.ts","theme/overrides/Grid.ts","theme/overrides/Link.ts","theme/overrides/Input.ts","theme/overrides/Radio.ts","theme/overrides/Badge.ts","theme/overrides/Lists.ts","theme/overrides/Table.ts","theme/overrides/Paper.ts","theme/overrides/Alert.tsx","theme/overrides/Switch.ts","theme/overrides/Select.ts","theme/overrides/Button.ts","theme/overrides/Dialog.ts","theme/overrides/Avatar.ts","theme/overrides/Slider.ts","theme/overrides/Drawer.ts","theme/overrides/Pickers.ts","theme/overrides/Stepper.ts","theme/overrides/Tooltip.ts","theme/overrides/Popover.ts","theme/overrides/SvgIcon.ts","theme/overrides/DataGrid.tsx","theme/overrides/Skeleton.ts","theme/overrides/Timeline.ts","theme/overrides/Backdrop.ts","theme/overrides/Snackbar.ts","theme/overrides/Progress.ts","theme/overrides/Container.ts","theme/overrides/Accordion.ts","theme/overrides/IconButton.ts","theme/overrides/Typography.ts","theme/overrides/Pagination.ts","theme/overrides/ButtonGroup.ts","theme/overrides/Breadcrumbs.ts","theme/overrides/Autocomplete.ts","theme/overrides/ControlLabel.ts","theme/overrides/ToggleButton.ts","theme/overrides/LoadingButton.ts","theme/shadows.ts","theme/index.tsx","theme/globalStyles.tsx","components/RtlLayout.tsx","components/ScrollToTop.ts","components/GoogleAnalytics.tsx","components/NotistackProvider.tsx","components/ThemePrimaryColor.tsx","components/ThemeLocalization.tsx","components/charts/BaseOptionChart.tsx","components/ABTasty.tsx","App.tsx","serviceWorkerRegistration.ts","reportWebVitals.ts","index.tsx","components/_dashboard/favorite/FavoriteAction.tsx","redux/slices/message.ts","components/_dashboard/studyPlan/details/ChapterItemStatus.tsx","utils/axios.ts","redux/slices/homeworkCacheContent.ts","@types/objectiveType.ts","redux/slices/objective.ts","components/HeaderBreadcrumbs.tsx","hooks/useExamen.ts","redux/slices/examen.ts","components/CardMediaCustom.tsx","@types/learning.ts","redux/slices/learning.ts","components/_dashboard/studyPlan/details/ChapterItemCard.tsx","components/_dashboard/meeting/MeetingDrawer.tsx","components/_dashboard/meeting/MeetingTimeCount.tsx","redux/slices/notification.ts","hooks/useAuth.ts","assets/illustration_upload.tsx","assets/illustration_500.tsx","assets/illustration_404.tsx","assets/illustration_maintenance.tsx","assets/icon_sent.tsx","components/file/FileAction.tsx","components/_dashboard/pedagogy/HomeworkNote.tsx","components/_dashboard/studyPlan/ScoreView.tsx","@types/contract.ts","hooks/useFile.ts","contexts/PageSettingsContext.tsx","components/_dashboard/meeting/MeetingErrorMessage.tsx","components/_dashboard/meeting/MeetingForm.tsx","redux/slices/favorite.ts","components/_dashboard/survey/SurveyCardInformation.tsx","routes/paths.ts","utils/getFileFormat.tsx","redux/slices/mediaFile.ts","utils/formatNumber.ts","components/_dashboard/survey/SurveyCategoryCard.tsx","components/Selector.tsx","hooks/usePageSettings.ts","components/RowListItem.tsx","utils/formatPhone.ts","hooks/useStudyPlanHomework.ts","components/_dashboard/media/MediaFileHeader.tsx","components/_dashboard/media/MediaFileAction.tsx","components/_dashboard/media/MediaFileCard.tsx","components/upload/UploadMultiFile.tsx","components/upload/UploadSingleFile.tsx","components/upload/UploadAvatar.tsx","components/_dashboard/student/StudentHourMessage.tsx","hooks/useTackerActivityEvents.ts","components/CardMediaVideo.tsx","hooks/useSurvey.ts","components/_dashboard/survey/SurveyInputCheck.tsx","components/_dashboard/survey/SurveyInputMemo.tsx","components/_dashboard/survey/SurveyInputRadio.tsx","components/_dashboard/survey/SurveyInputRating.tsx","components/_dashboard/survey/SurveyInput.tsx","hooks/useVisioSurvey.ts","components/_dashboard/meeting/MeetingButtonVisio.tsx","components/_dashboard/meeting/MeetingPhoneMessage.tsx","components/_dashboard/meeting/MeetingVisioMessage.tsx","components/Label.tsx","@types/seminar.ts","mapper/workshopMap.ts","mapper/taskMap.ts","@types/job.ts","redux/slices/task.ts","components/file/FileThumb.tsx","pages/Page404.tsx","mapper/objectiveMap.ts","hooks/useObjective.ts","components/_dashboard/seminar/SeminarStatusDisplay.tsx","hooks/useIsMountedRef.ts","components/_dashboard/message/MessagePopover.tsx","components/_dashboard/examen/ExamenPrerequis.tsx","components/_dashboard/studyPlan/Moyenne/StudyPlanChapterAverageList.tsx","components/_dashboard/studyPlan/Moyenne/StudyPlanChapterAverageListContainer.tsx","components/_dashboard/studyPlan/Moyenne/StudyPlanChapterAverageDialog.tsx","@types/agenda.ts","components/_dashboard/pedagogy/HomeworkStatusRender.tsx","components/_dashboard/studyPlan/skill/SkillList.tsx","components/_dashboard/survey/SurveyContainer.tsx","components/_dashboard/studyPlan/details/ChapterItemGroupCard.tsx","hooks/useSettings.ts","components/_dashboard/survey/SurveyStepperStandard.tsx","hooks/useSurveyStepperStandard.tsx","@types/pageTemplateModel.ts","redux/slices/student.ts","components/AlertErrorMessage.tsx","components/_dashboard/pedagogy/HomeworkMandatoryRender.tsx","components/_dashboard/examen/ExamenFormDocument.tsx","components/_dashboard/message/MessageErrorMsg.tsx","components/_dashboard/message/MessageForm.tsx","@types/account.ts","redux/slices/pageTemplate.ts","contexts/HubContext.tsx","@types/payment.ts","contexts/SettingsContext.tsx","utils/formatText.tsx","components/_dashboard/scheduleTeacher/TimeSlotsFilter.tsx","components/_dashboard/scheduleTeacher/TimeSlotsDisplay.tsx","components/_dashboard/media/MediaFileAvatar.tsx","components/_dashboard/scheduleTeacher/ScheduleTeacherMessage.tsx","components/_dashboard/meeting/MeetingView.tsx","@types/notificationModel.ts","components/_dashboard/agenda/AgendaTaskDetail.tsx","components/_dashboard/examen/ExamenCentreInfosDisplay.tsx","@types/SpecificNeed.ts","redux/slices/specificNeeds.ts","mapper/specificNeedsMap.ts","hooks/useAppStart.ts","contexts/JWTContext.tsx","@types/meeting.ts","components/_dashboard/studyPlan/skill/SkillStatusIndicator.tsx","components/_dashboard/studyPlan/skill/SkillCardList.tsx","components/_dashboard/scheduleTeacher/TimeSlotsWeekDisplay.tsx","components/_dashboard/scheduleTeacher/ScheduleTeacherEventsForm.tsx","components/_dashboard/meeting/MeetingAlertMessageOral.tsx","hooks/usePerson.ts","components/Scrollbar.tsx","components/_dashboard/studyPlan/ScoreAvgProgress.tsx","@types/media.ts","utils/createAvatar.ts","components/EmptyContent.tsx","components/@material-extend/MAvatar.tsx","components/@material-extend/MBreadcrumbs.tsx","components/@material-extend/MIconButton.tsx","components/@material-extend/MHidden.tsx","components/MIconButton.tsx","mapper/virtualClassMap.ts","redux/slices/agenda.ts","components/_dashboard/job/JobFilter.tsx","components/_dashboard/payment/PaymentForm.tsx","components/EmptyContentLarge.tsx","components/_dashboard/studyPlan/toolbar/StudyPlanSearchPopover.tsx","components/_dashboard/studyPlan/toolbar/StudyPlanUpatedPopover.tsx","components/_dashboard/studyPlan/toolbar/StudyPlanActionsPopover.tsx","components/TagType.tsx","utils/collection.ts","components/_dashboard/objective/ObjectiveForm.tsx","@types/article.ts","redux/slices/article.ts","redux/slices/mail.ts","redux/slices/job.ts","components/_dashboard/studyPlan/details/StudyPlanItemScore.tsx","hooks/useFavorite.tsx","hooks/useOvertime.ts","hooks/usePayment.ts","hooks/useStudyPlanChapter.ts","components/_dashboard/survey/SurveyStandard.tsx","layouts/LogoOnlyLayout.tsx","components/_dashboard/studyPlan/details/ChapterStatus.tsx","components/_dashboard/main/CarouselDotsControlsPaging.tsx","hooks/useExamenForm.ts","@types/internship.ts","redux/slices/internship.ts","utils/helperInternship.ts","guards/ModuleGuard.tsx","utils/helperStudyPlan.ts","@types/common.ts","@types/pedagogy.ts","@types/survey.ts","redux/slices/calendar.ts","redux/slices/dashboardJob.ts","components/SvgIconStyle.tsx","@types/favorite.ts","components/IllustrationMessage.tsx","hooks/useModuleGuard.ts","components/_dashboard/meeting/MeetingStatusDisplay.tsx","components/_dashboard/studyPlan/skill/SkillDrawer.tsx","datas/helpCategories.ts","hooks/useHubConnection.ts","components/_dashboard/favorite/FavoriteListItem.tsx","components/Logo.tsx","hooks/useServices.ts","components/_dashboard/message/MessageQuestionCardDetail.tsx","components/_dashboard/studyPlan/details/StudyPlanDetailsEventPopover.tsx","components/_dashboard/studyPlan/details/StudyPlanItemFavoriteAction.tsx","@types/message.ts"],"names":["ExamenFormEpreuveItem","props","_statutsEpreuve$filte","_statutsEpreuve$filte2","epreuve","statutsEpreuve","onChange","values","_props$isResultat","isResultat","error","_useState","useState","_useState2","_slicedToArray","current","setCurrent","handleChange","name","value","_objectSpread","_defineProperty","useEffect","typeFichier","filter","statut","code","listeCategoryObjectif","includes","categorie","listeProgression","formePassage","isWriteNote","epr","saisiNote","isViewNote","affichageNote","_jsx","_Fragment","children","ViewResultat","statusList","etatInscription","etaIns","ViewInscription","_ref","isWriteNoteOverride","_jsxs","Box","sx","mt","Typography","variant","gutterBottom","concat","codeReferentiel","designation","Stack","gap","flexDirection","alignItems","justifyItems","Selector","fullWidth","label","size","options","map","query","onFilter","disabled","TextFieldNote","_ref2","_ref3","yearMax","Date","getFullYear","yearMin","direction","TextField","type","inputProps","min","max","step","style","textAlign","InputProps","endAdornment","InputAdornment","position","e","target","note","margin","marginTop","width","Boolean","helperText","select","anneeBenefice","years","i","push","getYears","MenuItem","ExamenListResult","ExamenSaveResult","defaultExamen","_createClass","arguments","length","undefined","session","defaultSession","epreuves","region","defaultMetadata","statutInscription","statutResultat","dispensee","avis","domaineTravaille","defaultDomaine","departement","defaultDepartement","academie","positionnement","defaultPositionnement","observation","periode","defaultPeriode","gestionInscriptionInterne","_classCallCheck","dateEpreuvesAdmissibilite","dateEpreuvesAdmission","dateDebutInscription","dateFinInscription","dateEpreuvesPreAdmissibilite","dateEpreuvesSportives","filtreDepartemental","fichiers","filesMandatory","isSended","pourcentageDevoirsRealises","nombreJoursStage","noteDossierProMin","centreExamen","nombrePlacesMin","nombrePlacesMax","nombreInscrits","dateDebut","dateFin","academieCode","regionCode","favorable","enCours","actif","adresseEntreprise","TypeCategoryObjectif","TypePeriodeInscription","ExamenUpdateDateEnvResult","Mois","Trimestre","getAccount","credit","getLeftToPay","creditStudent","priceUnit","amount","accountCredit","accountAmount","formatCardPayment","content","replace","resizeImage","img","height","canvas","document","createElement","ctx","getContext","drawImage","toDataURL","base64ToBlob","base64","binaryString","window","atob","len","bytes","Uint8Array","charCodeAt","Blob","urlBase64ToUint8Array","base64String","repeat","rawData","outputArray","removeAccents","text","r","toLowerCase","trim","RegExp","isValidHttpUrl","url","test","MarkdownWrapperStyle","styled","_blockquote","theme","isLight","palette","mode","typography","body1","paddingLeft","spacing","lineHeight","fontSize","fontFamily","padding","borderRadius","shape","borderRadiusMd","backgroundColor","background","neutral","color","secondary","breakpoints","up","marginBottom","left","top","display","overflowX","whiteSpace","common","white","grey","warning","components","h1","Object","assign","_objectDestructuringEmpty","h2","h3","_ref4","h4","_ref5","h5","_ref6","h6","_ref7","p","_ref8","component","hr","_ref9","Divider","my","ul","_ref10","li","_ref11","a","_ref12","href","Link","rel","Markdown","_ref13","other","ReactMarkdown","rehypePlugins","rehypeRaw","rehypeHighlight","ArrowStyle","zIndex","right","transform","paper","borderRight","alpha","borderBottom","MenuPopover","_objectWithoutProperties","_excluded","Popover","anchorOrigin","vertical","horizontal","transformOrigin","PaperProps","ml","overflow","boxShadow","customShadows","z20","border","objFromArray","array","key","reduce","accumulator","slice","createSlice","initialState","isLoading","contacts","byId","allIds","conversations","activeConversationId","participants","recipients","reducers","startLoading","state","hasError","action","payload","getContactsSuccess","keys","getConversationsSuccess","getConversationSuccess","conversation","id","onSendMessage","conversationId","newMessage","messageId","body","message","contentType","attachments","createdAt","senderId","messages","markConversationAsReadSuccess","unreadCount","getParticipantsSuccess","resetActiveConversation","addRecipients","_slice$actions","actions","posts","post","recentPosts","hasMore","index","getPostsSuccess","getPostsInitial","getMorePosts","setIndex","noHasMore","getPostSuccess","getRecentPostsSuccess","myProfile","users","userList","followers","friends","gallery","cards","addressBook","invoices","notifications","getProfileSuccess","getUsersSuccess","deleteUser","user","getFollowersSuccess","onToggleFollow","followerId","handleToggle","follower","isFollowed","getFriendsSuccess","getGallerySuccess","getUserListSuccess","getCardsSuccess","getAddressBookSuccess","getInvoicesSuccess","getNotificationsSuccess","products","product","sortBy","filters","gender","category","colors","priceRange","rating","checkout","activeStep","cart","subtotal","total","discount","shipping","billing","getProductsSuccess","getProductSuccess","sortByProducts","filterProducts","getCart","sum","cartItem","price","quantity","addCart","isEmptyCart","_toConsumableArray","_product","uniqBy","deleteCart","updateCart","item","resetCart","onBackStep","onNextStep","onGotoStep","goToStep","increaseQuantity","productId","decreaseQuantity","createBilling","applyDiscount","applyShipping","board","columns","columnOrder","getBoardSuccess","createColumnSuccess","newColumn","persistCard","persistColumn","addTask","_action$payload","card","columnId","cardIds","deleteTask","_action$payload2","cardId","omit","updateColumnSuccess","column","deleteColumnSuccess","deletedColumn","c","marker","chapterItemUpdatedList","phases","skills","chapter","subChapter","currentSendingPhase","constrainedCourse","updated","progression","context","internshipsOfSupport","endLoading","setStudyPlan","studyPlan","assimilate","count","selectItem","itemTmp","status","StudyPlanItemStatus","None","Read","initProgression","phasesTmp","produce","draft","getMarker","resetUpdated","resetState","rootPersistConfig","storage","keyPrefix","whitelist","productPersistConfig","allReducers","combineReducers","article","articleReducer","meeting","meetingReducer","favorite","favoriteReducer","agenda","agendaReducer","objective","objectiveReducer","task","taskReducer","virtualClass","virtualClassReducer","workshop","workshopReducer","mediaFile","mediaFileReducer","messageReducer","homeworkInProgress","homeworkInProgressReducer","mail","mailReducer","chat","chatReducer","blog","blogReducer","userReducer","calendar","calendarReducer","kanban","kanbanReducer","learning","learningReducer","pageTemplate","pageTemplateReducer","notification","notificationReducer","job","jobReducer","dashboardJob","dashboardJobReducer","survey","surveyReducer","internship","internshipReducer","studyPlanReducer","examen","examenReducer","specificNeeds","specificNeedsReducer","student","studentReducer","homeworkCacheContent","persistReducer","productReducer","store","configureStore","reducer","middleware","getDefaultMiddleware","serializableCheck","immutableCheck","persistor","persistStore","dispatch","useSelector","useReduxSelector","useDispatch","useReduxDispatch","useScreenConfig","useTheme","isMobile","useMediaQuery","down","isMediumOrMobile","isDesktop","isLargeScreen","getLabelCategoryObjectif","Examen","minuscule","debuteMajuscule","minusculePluriel","debuteMajusculePluriel","accord","accordPluriel","precision","precisionPluriel","possessif","debuteMajusculePossessif","Concours","TitrePro","Certification","getLabelDefaultCategoryObjectif","getLabelMultiCategoryObjectif","categories","defaultLabels","result","forEach","separator","labelsCategorie","getLabelTypeFile","getSessionsFutures","sessions","s","getSessionsFuturesDisponibles","getPeriodesFutures","periodes","isAllowedUnregisterExamenInterne","_examen$session","_examen$periode","SkillStyle","Accordion","SubChapterCard","selectedId","onSelect","items","expanded","event","AccordionSummary","expandIcon","ExpandMore","ChapterStatus","flexShrink","AccordionDetails","paddingRight","flexGrow","StudyPlanChapterAverageDialog","chapters","averageComponent","ScoreAvgProgress","onClick","ChapterItemGroupCard","StudyPlanDetailsSidebar","_managerChapterItem$s3","_chapter$chapters","isOpenSidebar","onCloseSidebar","isFullScreen","pathname","useLocation","_React$useState","React","_React$useState2","setExpanded","isExpanded","managerChapterItem","useStudyPlanChapterItem","_managerChapterItem$s","_managerChapterItem$s2","selectedKey","selected","selector","section","querySelector","scrollIntoView","behavior","block","renderContent","CardHeader","title","Tooltip","MIconButton","MenuBook","ImportContacts","Scrollbar","MHidden","Drawer","open","onClose","ModalProps","keepMounted","keysListenOfUrl","usePostMessage","_ref$url","onEvent","location","URL","origin","listenerMessage","ev","data","addEventListener","removeEventListener","BoxStyled","StudyPlanDetailsIframe","eventHandler","courseId","useTrackerActivity","parent","StudyPlanItemType","Audio","Video","CardMediaVideoAudio","isVideo","CardMediaCustom","EmptyContent","description","HomeworkCorrectedMeeting","_lastMeeting$metadata","_last$teacher","_last$teacher2","last","homeworkBase","getContractCurrent","useAuth","events","openPopup","setOpenPopup","_useState3","_useState4","showMessage","setShowMessage","_useState5","_useState6","lastMeeting","setLastMeeting","contract","material","_homeworkNoteMin$find","_getTeacherListForMee","_events$filter","homeworkCorrected","HomeworkStatus","Corrected","Remade","noteMin","homeworkNoteMin","find","n","scoreOn","noteTooLow","isScore","scoreType","ScoreType","sur20","parseFloat","hasScheduleTeacher","getTeacherListForMeeting","scheduleId","previousMeetings","evt","_evt$metadatas","_evt$metadatas2","_evt$metadatas2$homew","eventType","AgendaEventType","Meeting","metadatas","MeetingStatus","Cancel","homework","barCode","sort","b","start","existingMeeting","correctionDate","askMeeting","manageMessage","homeworkType","HomeworkType","eLearning","Alert","severity","bgcolor","primary","lighter","icon","Info","main","fFullDateWithHours","teacher","civility","firstName","lastName","AlertTitle","MeetingDrawer","buttonType","defaultPro","MeetingPopup","Dialog","maxWidth","DialogContent","pb","xs","sm","md","src","maxHeight","DialogTitle","Card","HomeworkNote","DialogActions","justifyContent","Button","ContentStyle","HomeworkCorrected","fileCorrectedType","_ref2$isInPopup","isInPopup","elearning","Elearning","Sended","Rejected","dateCorrected","receptionDate","sendingDate","appreciation","Standard","Voice","ViewStandard","ReportStage","EvaluationStage","ViewEvaluationStage","ViewOther","divider","orientation","flexItem","Avatar","mr","fDate","FileDetailsAttachments","files","f","userType","UserType","Student","ViewScore","fileName","token","fileType","FileType","CorrectionType","typFicMed","MediaFileType","Pdf","isS3","marginLeft","Media","perimetre","MediaPerimetre","_item","MediaFileCard","HomeworkRejectedOrToRedo","anchorRef","useRef","setOpen","ref","anchorEl","py","px","useChapterItem","setState","information","getInformations","labels","getLabel","isDownload","_homeworkBase$files","Html","media","Homework","_f$references","references","split","_media$observation","_media$title","Url","Annexe","HomeworkIsScore","_ref$isScore","Label","RootStyle","IconButton","animationDuration","animationName","animationIterationCount","transition","IconButtonClignoter","HelpPopover","defaultOpen","_useLocalStorage","useLocalStorage","_useLocalStorage2","reminder","setReminder","openInfo","setOpenInfo","withoutImg","FormControlLabel","control","Checkbox","checked","StudyPlanDetailsContentQuiz","onScore","StudyPlanDetailsAssimilate","selectedItem","onAssimilate","quizOpen","setQuizOpen","openSuccess","setOpenSuccess","_useState7","_useState8","openEchec","setOpenEchec","isChecked","Assimilate","isAssimilateControl","isQuizAssimilate","quizAssimilate","handleOpen","handleClose","handleSuccessClose","handleQuizOpen","_selectedItem$quizAss","_selectedItem$quizAss2","buttonName","score","endOfRead","QuizRounded","DialogConnaissance","CheckRounded","FormControl","Switch","modeAccess","ModeAccess","Write","DialogTitleWithClose","StudyPlanDetailsToolbar","onFullScreen","openSidebar","locked","onToggleSidebar","_useChapterItem","isReadOnly","minHeight","MenuBookTwoTone","homeworks","ChapterItemStatus","HomeworkMandatoryRender","mandatory","coefficient","Chip","renderHomeworkStatus","FullscreenExit","Fullscreen","StudyPlanDetailsItemInfo","_selected$chapter","_selected$subChapter","_homeworkBase$materia","_homeworkBase$materia2","infoList","scheduleLabel","toString","boundCourse","focusOpacity","CopyToClipboard","info","getCopy","onCopy","console","log","CopyAll","ListItem","ListItemText","primaryTypographyProps","mb","secondaryTypographyProps","HeaderStyle","MessageQuestionCard","questionDetails","setQuestionDetails","idType","reference","read","publicationDate","getMessage","MessageType","Question","details","Answer","MessageQuestionCardDetail","questionAnswer","StudyPlanDetailsItemQuestion","questions","q","Badge","badgeContent","Icon","anchor","Close","question","MessagePopover","params","subjectId","serviceId","pro","small","useStudyPlanMove","_managerChapterItem$s4","useStudyPlan","previous","next","previousLine","rowNumber","nextLine","phase","unityChapter","TextMaxLine","textOverflow","wordBreak","fontWeight","ButtonsMobile","_useStudyPlanMove","m","ContainerButtonStyle","getStudyPlanItemLabel","Disabled","Locked","ChevronLeftRounded","ChevronRightRounded","ButtonsStandard","_useStudyPlanMove2","previousLabel","nextLabel","StudyPlanButtonReturn","mobile","getTypeSupport","ChapterItemIconTypeStatus","StudyPlanMove","navigate","useNavigate","handleClick","PATH_DASHBOARD","handleReturn","root","GpsFixed","StudyPlanDetailsToolbarSide","_selected$item4","services","_selected$item","_selected$item2","_selected$item3","subjects","getQuestionParameters","StudyPlanItemFavoriteAction","StudyPlanDetailsEventPopover","studyPlanItem","MIconButtonDowload","file","skillIds","SkillList","StudyPlanDetailsContentHtml","onEndOfRead","MediaEmptyContent","paddingBottom","_regeneratorRuntime","t","prototype","hasOwnProperty","o","defineProperty","Symbol","iterator","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","y","GeneratorFunction","GeneratorFunctionPrototype","d","getPrototypeOf","v","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","pop","prev","charAt","stop","rval","handle","complete","finish","catch","delegateYield","FallbackViwerPdf","viewer","WebViewer","licenseKey","path","disabledElements","instance","UI","loadDocument","filename","setLanguage","setFitMode","FitMode","FitWidth","documentViewer","Core","pageNumber","ex","className","MediaPDF","setUrl","_useFile","useFile","getFile","errorDownload","getUrlS3","forceRefresh","setForceRefresh","loadUrl","_getUrl","_getLoadFile","_asyncToGenerator","_callee","response","_context","fileNameS3","referentiel","MediaReferentiel","apply","_callee2","_context2","SkeletonLoadSingle","db","_Dexie","_inherits","SkillAndYouEntDBDexie","_super","_createSuper","_this","evaluations","version","stores","Dexie","HomeworkTodoFiles","_ref$fileFormats","fileFormats","isOpen","setIsOpen","attach2Fill","List","RowItemDisplay","Attachment","w","onDelete","deleteFileHomeworkInProgress","HomeworkTodoErrorFileMsg","HomeworkAddFileResult","ErrorFilesSizeReached","ErrorHomeworkSended","ErrorNumberFilesReached","ErrorExtensions","NotFound","RowItemDisplayAlert","alertColor","useMediatheque","_sendFile","_useHubConnection","useHubConnection","onError","getUrlSigned","disConnect","_x4","_x5","urlApi","axiosInstance","get","headers","writeOnly","sendFile","_x6","_x7","_callee3","_context3","axios","put","t0","uploadDataToS3","_x","_x2","_x3","fichier","isUploaded","useHomeworkFile","_useMediatheque","addFileS3","request","_yield$getUrlSigned","requestFinal","erreur","addFiles","filesAdd","_iterator","_step","startLoadingFile","_createForOfIteratorHelper","Success","hasErrorFile","endLoadingFile","HomeworkFilesAdd","_onSubmit","onAdd","filesAdded","alreadyAttached","_useSelector","isLoadingFile","errorFile","enqueueSnackbar","useSnackbar","FormSchema","Yup","required","getInitialValues","conDvrFicId","formik","useFormik","initialValues","validationSchema","onSubmit","resetForm","_yield$addFiles","setSubmitting","errors","touched","handleSubmit","setFieldValue","isSubmitting","extensions","getFieldProps","attachmentType","FormikProvider","Form","noValidate","autoComplete","UploadMultiFile","showPreview","maxSize","accept","onDrop","acceptedFiles","fileRejections","preview","onRemove","filteredItems","_file","labelFormat","maxFiles","isDragActive","LoadingButton","loading","loadingIndicator","HomeworkTodoErrorSendedMsg","HomeworkSendResult","IsFileRequired","IsOnlineError","IsTypeFileRequired","HomeworkTodoSave","onSaved","setIsLoading","saveContentAuto","CircularProgress","SaveRounded","HomeworkTodoSaveDraft","defaultValue","onSave","timeSaved","valueChanged","useWatch","interval","setTimeout","clearInterval","HomeworkTodoSaveErrorMsg","initError","HomeworkTodoRetrieveDraft","evaluation","onRetrieve","DialogConfirm","onCancel","onConfirm","HomeworkPlagiat","isPlagiat","setIsPlagiat","removePlagiat","HomeworkAlertSave","isSavedOnServer","setIsSavedOnServer","Snackbar","PanelStyle","marginRight","maxCaraterLength","HomeworkTodoPanelEdit","_errors$content","opened","fullScreen","isVisible","managerStudyPlanHomework","useStudyPlanHomework","errorSended","isLoadingSended","_useForm","useForm","resolver","yupResolver","defaultValues","watch","setValue","register","_useForm$formState","getValues","formState","isValid","openConfirm","setOpenConfirm","savedTime","setSavedTime","_useDBEvaluation","homeworkId","setEvaluation","setLoading","isDraft","setIsDraft","_getId","where","equals","toArray","addOrUpate","_evaluation","newId","evaluationKey","update","date","add","unDraft","remove","_callee4","_context4","delete","useDBEvaluation","contentHeight","setContentHeight","_useSelector2","idCache","courseIdCache","barCodeCache","contentCache","applyContentCache","useContentCache","setUseContentCache","hasContentCache","getHomeworkInProgress","updateHomeworkCacheContent","container","getElementById","heightTitle","clientHeight","sendHomeworkInProgress","updatedSended","contentOnLine","isValidFiles","some","_f$fileName$toLocaleL","toLocaleLowerCase","_f$fileName$toLocaleL2","_toArray","extension","isValidOnline","isValidSend","ToolbarFileAttachments","fDateTime","Controller","render","field","fieldState","SendRounded","QuillEditor","simple","FormHelperText","numberOfCaracters","LinearProgress","withoutImage","RowItemDisplayTitle","RowItemDisplayFiles","Edit","join","MeetingContainer","_ref$isVoice","isVoice","modeRead","setModeRead","selectMeeting","MeetingView","onChangeMode","MeetingForm","HomeworkTodoVoice","meetings","getMeetings","isEventMaterial","ScheduleTeacher","meetingCurrent","_event$metadatas$home","Registered","alt","paragraph","duration","PhoneLabel","brandId","brand","phoneNumber","MediaIcon","PdfPersonnalise","PdfSecurises","PictureAsPdf","LibraryMusicRounded","Videos","VideoLibraryRounded","UrlText","Images","Image","ArticleRounded","MediaMenuItem","MediaMenuItemIframe","MediaMenuItemDownload","FileAction","download","downloadImage","downloadUrl","downloadS3","DialogAnimate","scroll","CardMedia","frameBorder","MediaMenuPopover","medias","MediaCarousel","_ref$nbRows","nbRows","carouselRef","settings","dots","arrows","autoplay","slidesToShow","slidesToScroll","rows","rtl","CarouselDotsControlsPagingProps","Slider","ContainerEvaluation","HomeworkTodo","_ref$isEnonceOnly","isEnonceOnly","keyId","tabValue","setTabValue","updateByActivity","HomeworkTodoPanelEnnonce","Tabs","indicatorColor","textColor","newValue","scrollButtons","allowScrollButtonsMobile","Tab","Collapse","in","flex","RootEnnonceStyle","_ref3$medias","mediaView","x","isFiles","RenderContent","view","setView","filesFilterred","CardContainer","getMediaType","StudyPlanDetailsHomework","_chapterItem$homework","_chapterItem$homework2","chapterItem","authorizedModule","useModuleAuthorize","accessibleModules","ModuleType","HomeworkUpdate","dateStatus","ModuleNotAuthorized","HomeworkStepFiles","StudyPlanDetailsLearningICDL","_useLearningICDL","_useAuth","getGenreMasculin","setScore","setError","getICDLInformations","onUrl","getTestICDL","compte","birth_date","birthDate","birth_name","birthPlace","email","first_name","last_name","testId","properties","customId","useLearningICDL","subheader","IllustrationInfo","maxHeightImg","isColumn","StudyPlanDetailsLearningICDLNote","ScoreView","avatar","StudyPlanDetailsContentByType","addLogLearning","fouEfm","proEfm","CardDownload","CardLinkUrl","StudyPlanDetailsControl","boundCourses","getStatus","assilimates","_save","isBlocked","isLocked","StudyPlanDetailsControlCard","dense","alignContent","CheckBoxRounded","course","ListItemButton","updateById","StudyPlanDetailsContent","setIsFullScreen","setOpenSidebar","initHomeworkCacheContent","clearHomeworkCacheContent","handleEndOfRead","z8","applyHomeworkCache","callBack","Container","disableGutters","LockedContent","ToolBarSide","AppBar","bottom","LightboxModalStyles","isRTL","backgroundIcon","iconName","backgroundSize","backgroundPosition","backgroundRepeat","backgroundImage","GlobalStyles","styles","backdropFilter","outline","borderRadiusSm","LightboxModal","images","photoIndex","setPhotoIndex","toolbarButtons","Lightbox","mainSrc","nextSrc","prevSrc","onCloseRequest","onMovePrevRequest","onMoveNextRequest","reactModalStyle","overlay","HelpLightboxModal","selectedImage","setSelectedImage","HelpCardImage","getUrl","image","CardActionArea","CardContent","AccordionStyle","z1","HelpCardTutorial","tutorial","disableRipple","HelpCardTutorials","tutorials","panel","CardStyle","z16","HelpCard","pageview","useTrackerGoogle","page_level_1","page_path","general","help","HelpLinkAllHelps","helpCategoryId","usePageSettings","HelpDrawer","QuillEditorToolbarStyle","fill","stroke","subtitle2","borderColor","focus","FONT_FAMILY","FONT_SIZE","HEADINGS","undoChange","this","quill","history","undo","redoChange","redo","Size","Quill","import","Font","formats","QuillEditorToolbar","isSimple","font","heading","roundUndo","roundRedo","fontStyle","body2","_ref2$id","_ref2$simple","_ref2$maxLength","maxLength","alertInContent","quillRef","imageHandler","input","setAttribute","click","onchange","_input$files$","_quillRef$current","_quillRef$current2","_quillRef$current3","editor","range","fileReader","getEditor","getEditorSelection","makeUnprivilegedEditor","getLength","FileReader","onload","_e$target","imgEvent","img2","insertEmbed","readAsDataURL","modules","useMemo","toolbar","handlers","maxlength","delay","maxStack","userOnly","syntax","clipboard","matchVisual","EditorToolbar","ReactQuill","placeholder","on","getText","toolbarFull","inline","bold","italic","underline","strikethrough","monospace","superscript","subscript","blockType","dropdownClassName","list","unordered","ordered","indent","outdent","center","justify","colorPicker","popupClassName","link","unlink","emoji","embedded","uploadCallback","reject","xhr","XMLHttpRequest","setRequestHeader","FormData","append","send","JSON","parse","responseText","present","opacity","disabledOpacity","hover","minWidth","borderTopColor","borderBottomColor","disabledBackground","fontWeightMedium","fontWeightBold","ExamenFormObjectifSession","_objectifs$filter$","_objectifs$filter$$se","_values$session","objectifs","_props$sessionsLocked","sessionsLocked","_useFormikContext","useFormikContext","setValues","labelType","useExamen","_newSession$epreuves","objGen","newSession","SelectField","ses","ExamenCentreInfosDisplay","ExamenFormValidationSchema","of","ensure","val","isFinite","nullable","Number","isInteger","when","is","ExamenFormInformations","_values$departement3","departements","regions","academies","dateDebutEpreuve","statutsInscription","_values$departement","_values$departement2","dep","ins","ExamenFormEpreuves","_errors$session","_errors$session$epreu","ExamenFormDocument","FileItemMandatory","ControllerField","ExamenFormConfirmation","useBrand","to","ExamenForm","sessionId","setActiveStep","setFiles","_useExamenForm","useExamenForm","errorForm","isLoadingForm","statutsResultat","examens","categoriesGereesEnExterne","steps","exa","ExamenFormValidationSchemaArr","currentValidationSchema","isLastStep","isStopAndSaveStep","_values$session2","isEpreuve","handleBack","isSendAction","Stepper","alternativeLabel","Step","StepLabel","Formik","addOrUpdate","suivi","setTouched","_values$session3","_values$session4","_values$session5","_values$session6","_values$session7","CardActions","pr","pl","pt","FileNameStyle","FileCard","actionFile","isDeleting","setIsDeleting","disableTypography","noWrap","handleDelete","DeleteOutlined","FileAttachment","getIcon","MediaFileAvatar","isRead","getFileThumb","getFileNameDisk","mediaCurrent","FileThumb","iconFile","_wrapRegExp","BabelRegExp","WeakMap","set","_setPrototypeOf","buildGroups","exec","groups","indices","Array","isArray","WorkshopSummons","getWorkshopSummons","appendChild","contentDisposition","_filename","blobURL","responseType","timeout","Accept","match","createObjectURL","useWorkshop","registered","varWrapEnter","animate","staggerChildren","varSmallClick","scale","tap","varMediumClick","TRANSITION","ease","gradient","deg","DISTANCE","TRANSITION_ENTER","TRANSITION_EXIT","varFadeIn","initial","exit","varFadeInUp","varFadeInDown","varFadeInRight","IN","OUT","translateY","translateX","varBounceIn","scaleY","scaleX","MotionInView","variants","threshold","controls","useAnimation","_useInView","useInView","triggerOnce","_useInView2","inView","motion","div","MotionContainer","_ref$open","AnimatePresence","PaperComponent","Paper","ButtonAnimate","_ref$mediumClick","mediumClick","whileTap","whileHover","studyPlanManager","useContext","StudyPlanContext","search","searchString","itemType","_studyPlanManager$pha","helperStudyPlan","progressionGeneral","getImageOfCourse","refresh","initialize","_getContractCurrent","modulesCurrent","moduleList","am","Page","paddingTop","Page500","navigation","SeverErrorIllustration","reload","surveys","surveyStandard","isOpenModal","setSurveys","removeSurvey","keyApp","tmpSurveys","setLastSurvey","selectSurveyStandard","addSurvey","k","closeModal","maskSurvey","lisQue","typApp","appId","createSurveyVirtuelle","created","LoginForm","login","errorMessage","isMountedRef","useIsMountedRef","_useSnackbar","closeSnackbar","showPassword","setShowPassword","setAnchorEl","LoginSchema","contractId","password","remember","setErrors","_values$contractId","_values$password","afterSubmit","currentTarget","edge","Help","show","eyeFill","eyeOffFill","RouterLink","PATH_AUTH","resetPassword","LoginTrackerGoogle","loginPageView","SectionStyle","Login","logout","URLSearchParams","accessToken","isValidToken","setSession","app","apiConfig","urlBase","process","modePlugin","signalRConfig","activate","brandDefaultConfig","googleAnalyticsConfig","REACT_APP_FIREBASE_API_KEY","REACT_APP_FIREBASE_AUTH_DOMAIN","REACT_APP_FIREBASE_DATABASE_URL","REACT_APP_FIREBASE_PROJECT_ID","REACT_APP_FIREBASE_STORAGE_BUCKET","REACT_APP_FIREBASE_MESSAGING_SENDER_ID","REACT_APP_FIREBASE_APPID","REACT_APP_FIREBASE_MEASUREMENT_ID","REACT_APP_AWS_COGNITO_USER_POOL_ID","REACT_APP_AWS_COGNITO_CLIENT_ID","REACT_APP_AUTH0_CLIENT_ID","REACT_APP_AUTH0_DOMAIN","REACT_APP_MAP_MAPBOX","messagesAccess","civilityId","messageFunctionLimitee","ICONS","training","Mail","DateRangeRounded","dashboard","Home","LaptopRounded","PeopleRounded","FeedRounded","SelfImprovementRounded","BusinessCenterRounded","advanced_tools","SvgIconStyle","contact","PhoneRounded","payment","CreditCard","available","EventAvailable","profil","Person","parrainage","ShareLocationRounded","CUSTOM_MENU","ADDACTIVITIES_MENU","activity","isExternalLink","EDUTOOLS_MENU","documents","useSidebarConfig","_getLabelDefaultCateg","_forumActivity$","getUrlParrainage","urlParrainage","photoLibrary","additionalLearnings","forumActivity","getConfig","useCallback","newConfig","sidebarConfig","_item$children","child","Dashboard","config","toolsMenu","AdvancedTools","tmpToolsChildren","lib","idx","unshift","manageAdvancedTools","StudyPlan","WorkshopView","WorkshopUpdate","VirtualClassView","VirtualClassUpdate","notes","historic","internships","InternalShipView","InternalShipUpdate","Agenda","all","unread","school","JobView","Forum","storedValue","localStorage","getItem","listener","storageArea","currentValue","setItem","stringify","isLoadingList","virtualClasses","isFull","isRequired","virtualClassId","startLoadingList","getVirtualClassesSuccess","getVirtualClassSuccess","seminar","countMaxPlaces","countRegistered","supports","setReplay","updateList","_event","viewReplayCount","selectVirtualClassId","selectVirtualClass","toAssist","_state$virtualClass","registerOrCancel","waitingList","openModal","getVirtualClassList","_response$data","VirtualClassListResult","SeminarErrorResult","t1","getVirtualClass","_response$data2","VirtualClassItemResult","registerVirtualClass","onSuccess","_response$data3","VirtualClassRegisteredResult","ClosedContract","Full","WaitingList","updateSeminar","registeredId","cancelVirtualClass","VirtualClassCancelResult","getReplayVirtualClass","_callee5","_response$data4","_url","_context5","ClassilioResult","brands","urlContains","_brands$filter$2","_brands$filter$3","_brands$find","baseUrl","hostname","setBrand","_brands$filter$","brandDetect","domaine","host","brandName","WorkshopStatus","WorkshopListResult","WorkshopDetailResult","WorkshopRegisteredResult","forwardRef","_ref$title","fncPageView","pageContext","sendPageViewEvent","_getConfig","_meunItem","meunItem","_c$children","setHelpCategoryId","Helmet","workshops","workshopId","getWorkshopsSuccess","getWorkshopSuccess","selectWorkshopById","selectWorkshop","getWorkshopList","convertWorkshopToSeminar","getWorkshop","detail","putWaitingListWorkshop","errorDescription","ClosingDate","ErrorPlacespaceAvailable","PlaceSpaceAvailable","registerWorkshop","getLinksPayment","_response$data5","encodeURIComponent","PaymentAddResult","Payment","getMessagesAccess","InformationsContract","_contrat$debtRecovery","_contrat$debtRecovery2","_contrat$debtRecovery3","_contrat$debtRecovery4","_contrat$debtRecovery5","_useAuth2","contrat","informations","debtRecovery","blockingCorrection","blockingTraining","blockingPayment","blockingOvertime","UnBlockTemporary","suspendedTraining","ContractState","Registred","VirtualClassStatus","StudyPlanView","SendingPhase","saveProgress","mediaId","marked","getEvaluation","studyPlanSearch","chapterParent","level","getItemsByReference","startLoadingSended","initErrorFile","endLoadingSended","hasErrorSended","getHomeworkInProgressSuccess","HomeworkInProgressResult","HomeworkSaveContentResult","sended","linkedModules","ModuleGuard","tagManagerArgs","dataLayer","page_type","TagManager","tags","sub_chapter","material_name","material_type","user_id","contract_id","page_level_2","page_level_3","item_list_num","InputField","errorText","rest","_useField","useField","_useField2","meta","_at","at","_at2","renderHelperText","_excluded2","_useField3","_useField4","helpers","selectedValue","_at3","_at4","isError","InputLabel","Select","CheckboxField","_excluded3","_useField5","_useField6","_at5","_at6","_useField7","_useField8","_at7","_at8","_ref$isLoading","_ref$maxWidth","_ref$withoutImage","_ref$disabled","IllustrationMessage","selectMeetingByEvent","removeMeeting","addOrUpdateMeeting","MeetingAddOrUpdateResult","addEvent","convertMeetingToAgendaEvents","updateEvent","cancelMeeting","MeetingCancelResult","removeEvent","eventId","getUrlVisio","_survey","MeetingAccessResult","IconTypeSupport","MusicNote","HelpCenter","LinkSharp","OndemandVideoOutlined","ArticleOutlined","getDateFromTimeStamp","differenceBetweenMinute","dateEnd","differenceInMinutes","isDateValid","isAfterDate","isAfter","isBeforeDate","end","isBefore","fDateMeeting","format","locale","fr","fPeriode","getMonth","fDatePeriode","formatDate","getDay","fDashboardDate","timeCount","startDate","moment","getTime","targetDate","diffDuration","diff","totalDays","Math","abs","days","floor","daysms","hours","hoursms","minutes","durations","addTime","minute","addMinutes","addDayss","day","addDays","formatType","fDateFromNovadis","datString","substring","fTime","fDateTimeSuffix","fToNow","formatDistanceToNow","addSuffix","formatAPI","getDateMonthGlissant","month","addMonths","getDateTimeToString","convertStringToDate","getWeekdaysDescriptions","getWeekDays","startOfWeek","endDate","lastDayOfWeek","weeks","getWeekDaysMove","upOrDown","convertMinsToHrsMins","mins","eachWeekOfMonth","year","endOfMonth","eachWeekOfInterval","weekStartsOn","getCurrentDateFr","toLocaleString","timeZone","toDate","getDateLocaleFromFr","dateFr","dateLocale","currentDateFr","addMilliseconds","decoded","jwtDecode","currentTime","now","exp","defaults","Authorization","removeItem","createGradient","color1","color2","PRIMARY","light","dark","darker","INFO","SUCCESS","WARNING","ERROR","GREY","GRADIENTS","success","COMMON","black","contrastText","misc","gradients","chart","violet","blue","green","yellow","red","hoverOpacity","default","active","Grid","Skeleton","mx","_ref$parent","timeoutTracker","inactivityTime","clearTimeout","LogActivity","consoles","setLog","idConnextion","idConnection","setInterval","expiredTimeValue","dateTimeServer","PhoneInfo","Phone","phoneFormat","Types","StudyPlanReducer","_action$payload$item","_action$payload$item2","refreshPhases","createContext","StudyPlanProvider","_useReducer","useReducer","_useReducer2","dispatchRedux","Provider","StudyPlanSaveProgressResult","change_Chapter_Item","reset_Updated","logoutUser","fileInfo","FileBaseImageOfCourseResult","_view","urlStudyPlanView","urlStudyPlan","Global","Control","StudyPlanResult","getItemsUpdated","uf","updateChapterUpdated","change_StudyPlan","extractHomework","getObjectives","_props$title","_props$disabled","CloseIcon","_meeting$material","allDay","dateStart","convertAgendaEventToMeeting","metadata","timeSlot","phone","isVisio","idVirtualClass","convertObjectifToAgendaEvent","isLate","ToDo","dvr","sup","codBarDvr","TaskUpdateResult","TaskListResult","TaskStatus","i18n","use","LanguageDetector","initReactI18next","init","resources","en","translations","enLocales","de","deLocales","frLocales","lng","fallbackLng","debug","ns","defaultNS","fallbackNS","interpolation","escapeValue","hljs","configure","languages","collapseClick","collapseHover","onToggleCollapse","onHoverEnter","onHoverLeave","CollapseDrawerContext","CollapseDrawerProvider","collapse","setCollapse","savedCollapse","setSavedCollapse","handleToggleCollapse","isCollapse","ProgressBarStyle","pointerEvents","snackbar","ProgressBar","NProgress","showSpinner","LoadingScreen","rotateY","repeatDelay","Infinity","rotate","MainSearchStudent","PageNotFoundIllustration","MainLayout","getStudent","Page404","isLinkDashboard","Outlet","QuestionnaireLayout","useCollapseDrawer","MyAvatar","MAvatar","avatarUrl","objectFit","createAvatar","AccountPopover","_ref$isSmall","isSmall","contractCurrent","MENU_OPTIONS","PersonRounded","linkTo","visible","CalendarTodayRounded","availability","LibraryBooksRounded","CreditCardRounded","PaymentView","PaymentUpdate","VpnKeyRounded","currentSize","truncate","option","ScheduleTeacherEventForm","_selectedEvent$metada3","isOpenMeeting","setIsOpenMeeting","errorRefreshEvent","setErrorRefreshEvent","selectedEvent","_selectedEvent$metada","_selectedEvent$metada2","getSchedulesEventByDateAndMaterial","SheduleTeacherMessage","TimeSlotsFilter","ScheduleType","Mixte","standard","duplicate","rdv","timeSlots","TimeSlotsDisplay","onSelected","hourLimit","AgendaHomeworkForm","_useObjective","useObjective","getHomeworkByEvent","updateObjectiveEvent","eventsToLate","setHomeworkBase","setUpdated","EventSchema","isDateError","isDateMinError","sendingPhase","StudentHourMessage","DesktopDatePicker","minDate","renderInput","TimePicker","ampm","WatchLater","AccessTime","DataUsage","HomeworkStatusRender","Assignment","VerifiedUser","RowItemDisplayComment","multiline","maxRows","DispatcherEventScreen","agendaEvent","Task","DispatchFavorite","DispatchRender","VirtualClass","FavoriteToggleAction","FavoriteType","keyFav","Workshop","Evaluation","AgendaTaskDetail","MeetItem","_getCategoryType","Examens","getCategoryType","MeetsPopover","_ref2$isSmall","selectEvent","dateCurrent","eventsMeet","sortEventsMeet","valueOf","browserFill","disablePadding","historicRdv","AgendaDispatcherEvent","updateConfig","notDisplayMessageHelp","HelpButton","_student$config","pageSettingsContext","helpCategory","helpCategories","HelpRounded","FavoritesPopover","_useFavorite","useFavorite","favorites","load","notificationContent","handleSelect","starFill","orderBy","FavoriteListItem","NotificationListItem","NotificationType","Adresse","tagLabel","setRead","VirtualClassNotificationCancelBySchool","VirtualClassNotificationCancel","VirtualClassNotificationConfirmation","Events","Actualites","DevoirsCorriges","Devoirs","DevoirsEnvoyes","DevoirsRecus","Colis","Medias","Notification","Questions","NovadisImportant","NovadisNormal","TachesMessage","MeetingAbsence","VirtualClassNotificationWaiting","getObservationByType","clockFill","createdDate","NotificationsPopover","connection","countUnRead","onScroll","getMoreNotifications","getNotifications","persist","bellFill","setAllRead","doneAllFill","InfiniteScroll","loader","dataLength","settingItem","getNotificationSettings","AccountShortInfos","StudentHour","msg","getHourAlertMessage","AlertsPopover","_useOvertime","useOvertime","authorized","getOvertimeAlert","_usePayment","usePayment","authorizedPayment","getPaymentAlert","alertList","setAlertList","tmpAlertList","messageLimited","WarningRounded","alert","CircularBaseStyle","CircularValueStyle","CountdownTimer","_ref3$startDate","warningSecond","errorSecond","_ref3$size","_ref3$fontSize","onExpired","_useCountdown","countDownDate","countDown","setCountDown","countInit","getReturnValues","useCountdown","_useCountdown2","seconds","compteur","getColor","colorBase","thickness","padStart","WorkflowUpdated","updatedDate","setUpdatedDate","time","timeOut","off","handleReset","PATH_PAGE","maintenance","useStudyPlanAverage","setChapters","chapterList","WebkitBackdropFilter","DRAWER_WIDTH","ToolbarStyle","Toolbar","DashboardNavbar","onOpenSidebar","showAccountInfo","lg","menu2Fill","numberOfMandatoryHomeworkCorrected","averageScore","Visibility","ListItemStyle","ListSubheader","disableSticky","overline","borderTopLeftRadius","borderBottomLeftRadius","ListItemIconStyle","ListItemIcon","NavListItem","NavItem","isShow","isActiveRoot","matchPath","hasActiveVisibleSub","hasActiveSub","activeRootStyle","selectedOpacity","activeIconStyle","activeSubHeader","activeSubStyle","activeSubBlock","arrowIosDownwardFill","arrowIosForwardFill","unmountOnExit","isActiveSub","transitions","NavSection","navConfig","_ref6$isShow","OneTrust","OneTrustFooter","textDecoration","Faciliti","FACILITI_SRC","scriptAlreadyExists","scriptsList","getElementsByTagName","_scriptsList$i","fs","dataset","applicationIdentifier","head","initFaciliti","VisibilityOff","Footer","mentionLegal","complex","DashboardSidebar","_useSidebarConfig","_useCollapseDrawer","Logo","ArrowForwardIos","ArrowBackIos","onMouseEnter","onMouseLeave","VirtualClassAccess","MeetingTimeCount","isVirtual","isActivate","isStarted","RowItemDisplayDateTime","isLimit","hideHourMessage","SeminarStatus","MeetingTimeCountDisplay","isPhone","Open","MeetingButtonVisio","Videocam","VisoRequiredDisplay","SeminarErrorMessage","OutOfTime","Invalid","Unavailable","SeminarActionType","SeminarActionRegister","Register","SeminarActionCancel","_meeting","VirtualClassReplay","replay","moveInactityTime","useTrackerActivityEvents","playbackId","playbackID","activityId","activityID","isSurvey","handleReplay","WorkshopPaymentForm","leftToPay","setChecked","formPayment","setFormPayment","getFormatCurrency","ConfirmationNumber","ConditionsGeneralesCard","Lock","SeminarActionPayment","WorkshopRegister","VirtualClassRegister","VirtualClassReplayVideo","loadSurvey","logReplay","SeminarButtonRender","isReplay","SeminarType","RegisterWaitingList","VirtualClassForm","_virtualClass$meeting","_virtualClass$meeting2","_virtualClass$meeting3","_virtualClass$meeting4","PersonalVideoOutlined","SeminarStatusDisplay","meetingState","dateLimit","Present","RowItemDisplayAnimateur","Notes","CheckCircleSharp","Done","CalendarToday","MediasView","isDisabledRegister","currentMedias","RowItemDisplayMedias","VirtualClassDetails","handClose","WorkshopCreditView","creditBalance","WorkShopForm","controlCheckCGV","isRegister","isFinished","RowItemDisplayLocation","place","RowItemDisplayTeacher","RowItemDisplayPayment","NotesOutlined","WorkShopDetailInfos","public","utils","program","BubbleChart","EventNote","SquareFoot","WorkshopDetails","ChatBot","enseignes","space","getServices","chatBotScript","chatBot","hideChatBot","dyduAfterLoad","_window","dydu","_contract$brand","_dydu$ui","_dydu$ui2","_contract$training","_contract$brand2","_contract$brand3","_contract$training2","_contract$bills","enseigne","valueEnseigne","ens","ui","toggle","setRegisterContext","registrationDate","debitAmount","bills","_invoice$scheduleNext","_invoice$scheduleNext2","vpcBills","bill","accountingJournal","invoice","scheduleNext","paymentChoice","teaser","WorkflowReconnecting","WelcomeCallPopup","WelcomeCall","notDisplayWelcomeCall","setNotDisplayWelcomeCall","openQuestion","setOpenQuestion","timeoutOut","MessageForm","AttendanceTrackingPopup","AttendanceTracking","_useAttendanceTrackin","delaySecond","onAttendanceTracking","relance","attendanceTracking","setAttendanceTracking","dayOfWeek","getHours","getMinutes","dateOff","setTime","TypeLog","AttendanceTrackingLoaded","onHere","AttendanceTrackingValidated","useAttendanceTracking","hour","HubMessageState","connect","HubConnectionState","Disconnected","Reconnecting","WorkflowVersion","isChangeVersion","currentVersion","parseInt","setIsChangeVersion","useVersion","SurveyStepper","isValidItem","setIsValidItem","_useSurvey","useSurvey","onMove","categoryList","onChangeOption","onChangeOptionTextRep","onChangeChecked","save","isErrorSurveyItem","_useSurveyStepper","getCountStep","accumulateur","valeurCourante","surveyList","onStepBack","prevActiveStep","onStepNext","getSurveyStep","useSurveyStepper","stepMax","surveyItemActif","arrowIosBackFill","SurveyCategoryCard","isRegroupement","SurveyInput","onChangeOptionText","onValid","MobileStepper","nextButton","backButton","SurveyFormDialog","hideBackdrop","SurveyContainer","isStepper","VirtualClassSurveyAfterLive","setSurvey","surveyMandatory","relanceOfNumber","classeVirtuelle","vc","VirtualClassSurveyAfterReplay","SurveyRelance","surveysLoaded","sondages","aDate","bDate","SurveyStepperStandard","SurveyStandard","PostMessageStudyPlan","postMessage","useExamenInscriptionPopup","objectifSAY","dateExamenEnvisagee","saisieNonObligatoire","setSaisieNonObligatoire","saisieObligatoire","setSaisieObligatoire","objectifOK","setObjectifOK","registrationMissing","setRegistrationMissing","_useState9","_useState10","_useState11","_useState12","setMandatory","closingDate","dateInscription","miFormationDepassee","nbJours","round","checkDatesContrat","_objectif$sessions","_objectif$periodes","_objectif$periodes2","objectif","periodeInscription","Session","checkObjectif","_e$statutInscription","managePopup","examenCreateInterne","onRegister","ExamenInscriptionPopup","_getLabelCategoryObje","_useExamenInscription","examenLabel","StudyPlanDetailsTrackerGoogle","_managerChapterItem$s10","_managerChapterItem$s11","_managerChapterItem$s5","_managerChapterItem$s6","_managerChapterItem$s7","_managerChapterItem$s8","_managerChapterItem$s9","VirtualClassTrackerGoogle","WorkshopTrackerGoogle","LANGS","systemValue","enUS","deDE","frFR","useLocales","_useTranslation","useTranslation","translate","langStorage","onChangeLang","newlang","changeLanguage","currentLang","_lang","allLang","language","AgendaTrackerGoogle","_useLocales","MeetingTrackerGoogle","account","useExamenRecupResultat","dateLastView","setDateLastView","today","differenceInDays","ExamenRecupResultatPopup","_useExamenRecupResult","MainStyle","APP_BAR_MOBILE","APP_BAR_DESKTOP","DashboardLayout","isControlOnly","useAxiosControl","elt","ScheduleTeacherTrackerGoogle","PageSettingsProvider","GuestGuard","isAuthenticated","Navigate","AuthGuard","requestedLocation","setRequestedLocation","OvertimeForm","choices","flexWrap","numberOfMonths","OvertimeProposed","setSelected","overtimes","OvertimeStatus","PaymentForm","PaymentFormType","overtime","OvertimeCurrent","Overtimes","Current","HeaderBreadcrumbs","links","StudyPlanSearchDetails","_useStudyPlan","StudyPlanSearch","StudyPlanActions","ExamenCreate","_useExamen","subHeader","communStyles","StyleSheet","subtitle1","colorGray","alignCenter","noBorder","borderBottomWidth","table","tableHeader","tableBody","tableRow","gridContainer","col2","col4","col8","col6","mb4","mb8","mb40","mb20","timelineDot","timelineDotEmpty","borderWidth","AttendanceReportHeader","View","fixed","source","Text","footer","AttendanceReportFooter","AttendanceReportInformation","AttendanceReportPersonnal","_report$student","_report$student2","_report$contract","_report$student3","_report$student3$addr","_report$student4","_report$student4$addr","_report$student5","_report$student5$addr","_report$student6","_report$student6$addr","_report$student7","_report$student7$addr","_report$contract2","_report$contract3","_report$contract4","_report$contract5","_report$contract6","_report$contract6$tra","_report$contract7","_report$contract7$tra","_report$contract8","_report$contract8$tra","_report$contract9","_report$contract9$tra","_report$contract9$tra2","_report$contract10","_report$contract11","_report$contract12","_report$contract12$tr","report","male","address","wayNumber","wayName","postalCode","city","countryName","partner","hoursReport","tableCell_1","tableCell_3","timelineItem","timelineSeparator","timelineConnector","timelineConnectorNone","mt4","AttendanceReportWeek","detailsOfWeek","lastDay","getFirstRowCol","firstConnection","_item$detailHours$fin","attendance","getCol","detailHours","family","fonts","page","AttendanceReportPage","Document","AttendanceReportView","_useAttendanceReport","setWeeks","formatTimeHHmm","timeSplit","getAttendance","_details","authorization","merge","firstDateEachWeekOfMonth","firstDate","weeksCurrent","firstDateOfWeek","getWeek","detailHour","generatePdfDocument","blob","pdf","toBlob","useAttendanceReport","PDFViewer","AttendanceReportLandingPage","_useParams","useParams","page404","ExamenInscriptionAdd","categoriesGereesParSAY","SubCardStyle","z12","defaultCategoryLabels","labelExamSAY","labelExamExterne","examenCreate","useExamenFormGestionInterne","getExamen","_exa$statutInscriptio","_student$address","_student$address2","_student$address2$pos","department","departmentCode","changeDepartment","ExamenFormPeriode","_values$periode3","labelExamen","filteredPeriodes","allowRegistration","_values$periode","_values$periode2","newPeriode","infosPeriode","ExamenPrerequis","ExamenFormGestIntPeriodeValidationSchema","ExamenFormGestIntSessionValidationSchema","ExamenFormObjectivePlanning","datExaEnv","examenObjective","ObjectiveParamsForm","onSaveSuccess","newDatExaEnv","updateDateExamenEnvisagee","amendmentId","dateEnvisagee","addWithoutSave","lockOnSave","disableStartEndDates","skipPopupGenerate","closeOnModifyPeriode","ExamenFormSessionInterne","_values$session8","_values$session9","_values$session10","_values$session11","_values$session12","filteredSessions","listeSessions","nbPlacesRestantes","estComplete","pluriel","_infosSession$epreuve","infosSession","ExamenFormGestionInterne","_useExamenFormGestion","backToExamens","formDateEnvisagee","ExamenCreateGestionInterne","examAlreadyExists","disableAddExamen","labelCategoryObjectif","Loadable","Component","isDashboard","Suspense","fallback","Router","useRoutes","element","ResetPassword","VerifyCode","ChangePassword","LandingStudyPlan","MentionLegal","Contact","StudyPlanDetails","StudyPlanHomeworks","Overtime","StudyPlanSkills","TranscriptOfStudyNotes","Historic","Internships","InternshipCreate","ExamenUpdate","Articles","Article","Jobs","Job","FavoriteList","VirtualClassList","WorkshopList","StudyPlanPlanDocuments","StudyPlanTools","Message","StudentAccount","LogoOnlyLayout","Maintenance","LandingSurveyPage","lazy","pxToRem","responsiveFontSizes","fontWeightRegular","caption","letterSpacing","textTransform","button","xl","ICON_SMALL","ICON_LARGE","ICON","SvgIcon","ICON_SIZE","CheckedIcon","IndeterminateIcon","ComponentsOverrides","MuiFab","defaultProps","styleOverrides","extended","Fab","MuiTab","borderTopRightRadius","labelIcon","wrapper","textColorInherit","MuiTabPanel","MuiTabScrollButton","MuiChip","deleteIcon","closeCircleFill","colorDefault","outlined","avatarColorInfo","avatarColorSuccess","avatarColorWarning","avatarColorError","MuiCard","MuiCardHeader","titleTypographyProps","subheaderTypographyProps","MuiCardContent","MuiMenuItem","Menu","MuiGrid","MuiLink","MuiInputBase","MuiInput","MuiFilledInput","MuiOutlinedInput","Input","MuiRadio","svg","Radio","MuiBadge","dot","MuiListItemIcon","MuiListItemAvatar","MuiListItemText","Lists","MuiTableRow","MuiTableCell","borderBottomRightRadius","stickyHeader","MuiTablePagination","borderTop","selectIcon","Table","MuiPaper","elevation","standardStyle","filledStyle","outlinedStyle","MuiAlert","iconMapping","infoFill","alertCircleFill","checkmarkCircle2Fill","alertTriangleFill","standardInfo","standardSuccess","standardWarning","standardError","filledInfo","filledSuccess","filledWarning","filledError","outlinedInfo","outlinedSuccess","outlinedWarning","outlinedError","MuiSwitch","thumb","track","switchBase","MuiSelect","IconComponent","ExpandMoreRoundedIcon","MuiButton","sizeLarge","containedInherit","containedPrimary","containedSecondary","containedInfo","containedSuccess","containedWarning","containedError","outlinedInherit","textInherit","MuiRating","emptyIcon","iconEmpty","sizeSmall","Rating","MuiDialog","z24","paperFullWidth","MuiDialogTitle","MuiDialogContent","MuiDialogActions","MuiAvatar","MuiAvatarGroup","MuiSlider","markLabel","valueLabel","MuiDrawer","modal","MuiStepConnector","line","MuiTooltip","tooltip","arrow","MuiPopover","MuiSvgIcon","fontSizeSmall","fontSizeLarge","MuiCheckbox","checkedIcon","indeterminateIcon","MuiDataGrid","MuiGridMenu","MuiGridFilterForm","MuiGridPanelFooter","DataGrid","MuiSkeleton","animation","MuiTimelineDot","MuiTimelineConnector","Timeline","MuiTreeView","defaultCollapseIcon","minusSquareOutline","defaultExpandIcon","plusSquareOutline","defaultEndIcon","closeSquareOutline","MuiTreeItem","iconContainer","TreeView","varLow","varHigh","MuiBackdrop","Backdrop","MuiSnackbarContent","MuiLinearProgress","bar","colorPrimary","buffer","Progress","MuiContainer","MuiAccordion","MuiAccordionSummary","expandIconWrapper","MuiIconButton","MuiTypography","MuiPaginationItem","textPrimary","outlinedPrimary","Pagination","styleContained","MuiButtonGroup","ButtonGroup","MuiBreadcrumbs","Breadcrumbs","MuiAutocomplete","Autocomplete","MuiFormControlLabel","MuiFormHelperText","MuiFormLabel","ControlLabel","MuiToggleButton","ToggleButton","MuiLoadingButton","LIGHT_MODE","DARK_MODE","createShadow","transparent1","transparent2","transparent3","createCustomShadow","transparent","shadows","ThemeConfig","_useSettings","useSettings","themeDirection","themeMode","themeOptions","createTheme","componentsOverride","StyledEngineProvider","injectFirst","ThemeProvider","CssBaseline","GlobalThemeStyles","boxSizing","html","WebkitOverflowScrolling","MozAppearance","WebkitAppearance","textarea","WebkitFilter","RtlLayout","dir","cacheRtl","createCache","stylisPlugins","rtlPlugin","compat","CacheProvider","ScrollToTop","scrollTo","GA_MEASUREMENT_ID","GoogleAnalytics","gtmId","SnackbarStyles","SnackbarIcon","NotistackProvider","CloseSnackbarAction","SnackbarProvider","maxSnack","preventDuplicate","autoHideDuration","iconVariant","ThemePrimaryColor","defaultTheme","setColor","ThemeLocalization","BaseOptionChartStyle","ABTasty","ErrorFallback","resetErrorBoundary","errorLocation","excludeErrors","App","isInitialized","ErrorBoundary","FallbackComponent","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","HelmetProvider","ReduxProvider","PersistGate","LocalizationProvider","dateAdapter","AdapterDateFns","SettingsProvider","HubContextProvider","HashRouter","AuthProvider","navigator","serviceWorker","ready","registration","unregister","getInit","dateCreated","_ref$type","News","isToolbarSide","stopPropagation","preventDefault","removeFavorite","addFavorite","Courses","starOutline","getMessagesSuccess","addQuestionSuccess","getQuestionSuccess","getServicesSuccess","updateRead","getLabels","getMessages","pageSize","MessageListResult","MessageItemResult","addQuestion","formData","_question","MessageAddResult","themeId","toggleReadMessage","ServiceListResult","_homeworkBase$homewor","withoutColor","getColorsStatus","cp","getColorsIconStatus","hexa","baseURL","AXIOS_FULL_READONLY_MESSAGE","interceptors","Survey","tracker","_error$response","_error$response$confi","_error$response2","_error$response3","_error$response4","_error$response6","_error$response5","errorMsg","reqInterceptor","resInterceptor","eject","deactivateHomeworkCache","ObjectiveResult","ObjectiveSaveResult","ObjectiveCalculateResult","ObjectivePlanningAskUnlockResult","calculateInfos","getObjectiveSuccess","updateCalculateInfos","updateDateAskUnlock","dateAskUnlock","planningJson","objectivePlanning","eventList","_homework$homeworks","extractDateBad","lock","daysWorking","periodesOff","createObjective","_interval","_jalons","jalons","saveObjective","askUnlockObjective","_ref$moreLink","moreLink","MBreadcrumbs","isString","categoryObjectif","getInscriptionExamenSAY","insObjectifSAY","insExamenSAY","etatsInscription","objectifsGeresParSAY","objectifsGeresEnExterne","startLoadingForm","hasErrorForm","getLoadSuccess","_state$objectifsGeres","_state$objectifsGeres2","objectifInscriptionAnticipee","listeObjectifsSAY","from","Map","updateDatExaEnv","getExamens","form","onLoad","_useScreenConfig","setIsloading","iframeRef","mediaUrl","setMediaUrl","scrolling","allowFullScreen","LearningResultResponse","PHOTO_LIBRARY_ID","FORUM","learnings","getLearnings","_action$payload3","_x$id","_y$id","_y$properties","_y$properties2","updateLearning","updateLearnings","_learning","lastAccess","item1","item2","silence","ChapterItemCard","_ref$view","_getStudyPlanItemLabe","isIndicatorLocked","isUpdated","isSelected","selectedItemRef","Sync","CoefficientChip","StudyPlanItemScore","CardReference","_media","ChapterItemHomeworkNote","studyPlanItemHomework","_ref$buttonType","InsertInvitationRounded","ScheduleTeacherEventsForm","PaperStyled","setMinutes","PageSettingsContext","getDateServer","dateStartActivateVisio","dateEndActivateVisio","currentDate","isRefresh","notif","VirtualClassNotificationPlaceOfFree","CamCoaAbouti","CamCoaPriseContact","CamCoaRepondeur","CamCoaNeRepondsPas","CamCoaNumeroErrone","CamCoaAbandonne","EvaluationEnonceUnlock","CURRENCIES","_context$student2","_context$student4","_context$student5","_context$student6","_context$student7","_context$student11","_context$student12","_context$student13","AuthContext","_context$student","_context$student3","_context$student3$con","contracts","authorizeDownload","InProgress","showHourAlert","_getContractCurrent$b","_context$student8","_context$student8$add","_context$student9","_context$student9$add","_context$student10","_context$student10$ad","zoneGeographic","currency","UploadIllustration","PRIMARY_MAIN","PRIMARY_DARK","PRIMARY_DARKER","xmlns","viewBox","x1","x2","y1","y2","offset","stopColor","stopOpacity","fillRule","strokeWidth","cx","cy","rx","ry","strokeLinecap","MaintenanceIllustration","SentIcon","managerFile","_x8","_x9","_x10","_x11","fileNameDisk","_x12","_x13","mediaType","SocialNetworkType","LogConnectionUpdateResult","setErrorDownload","getCall","_x17","_callee9","_context9","getCallExterne","_x18","_callee10","_context10","_x14","_callee6","_context6","_x15","_x16","_callee8","_context8","getAvatar","_callee7","_context7","urlS3","exists","isCloseSidebar","setCloseSidebar","setDebugMode","setVideoPlay","play","dateServer","debugMode","isVideoPlay","setting","setSetting","diffTime","MeetingErrorMessage","ErrorDate","ErrorDouble","ErrorMaterial","ErrorTeacherBusy","_meeting$dateStart","_meeting$dateEnd","_ref$homework","MeetingUpdate","PHONE","VISIO","typeDefault","filteredTypes","updateMeetingType","PermContactCalendar","RowItem","MeetingTypeRadio","subTitle","MeetingType","MeetingPhoneMessage","MeetingVisioMessage","MeetingAlertMessageOral","getFavoritesSuccess","addFavoriteSuccess","removeFavoriteSuccess","addFavoriteNotification","removeFavoriteNotification","getFavorites","FavoriteListResult","FavoriteAddResult","showNotification","notifTxt","notifTimeout","SurveyCardInformation","sublink","ROOTS_AUTH","ROOTS_DASHBOARD","loginUnprotected","registerUnprotected","changePassword","verify","comingSoon","pricing","about","faqs","page500","new","historicSupport","internshipCreate","examenAdd","profile","newUser","editById","eCommerce","shop","productById","newProduct","postById","newPost","edit","FORMAT_IMG","FORMAT_VIDEO","FORMAT_WORD","FORMAT_EXCEL","FORMAT_POWERPOINT","FORMAT_PDF","FORMAT_PHOTOSHOP","FORMAT_ILLUSTRATOR","getFileType","fileUrl","getFileName","lastIndexOf","getFileFormat","ImageRounded","PictureAsPdfRounded","formatFileSize","decimalPoint","dm","pow","toFixed","mediaFiles","hash","getMediaFiles","updateMediaFiles","updateMedias","getAllMediaFiles","CategoryType","MediaFileListResult","logMediaFile","fData","number","numeral","_groupBy","dangerouslySetInnerHTML","__html","css","groupBy","regroupementId","group","SurveyGroupCard","SurveyContainerInput","SurveyCategoryCardTitle","regroupementTitre","TableContainer","TableHead","TableCell","optionList","reponse","align","TableBody","TableRow","RootListItem","coach","LocationOn","AlertErrorMessage","_ref14","_ref15","startsWith","getHomeworks","getHomework","getStudyPlanItemHomeworks","studyPlanItemHomeworkBase","MediaFileHeader","MediaFileAction","video","setVideo","downloadMedia","DropZoneStyle","cursor","_ref3$showFilesSelect","showFilesSelected","onRemoveAll","hasFile","_useDropzone","useDropzone","validator","_other$maxFileNameLen","_file$name","maxFileNameLg","maxFileNameLength","getRootProps","getInputProps","isDragReject","ShowRejectionItems","_getFileData","getFileData","fileFill","ListItemSecondaryAction","closeFill","PlaceholderStyle","easing","easeInOut","shorter","UploadAvatar","multiple","roundAddAPhoto","idEvent","createSaveRequest","requestSave","appTyp","reponses","questionId","valueText","QuestionType","Rad","Rat","Chk","questionType","textRep","titre","fait","modeLecture","categoryId","isErrorSurvey","_step2","isControl","_iterator2","getElementsByClassName","getComputedStyle","_step3","_iterator3","Mem","every","Txt","err","unChecked","notValue","textPre","optionId","SurveySaveResult","isCategoryError","SurveyInputCheck","FormGroup","SurveyInputMemo","isMemo","htmAdd","minRows","SurveyInputRadio","RadioGroup","SurveyInputRadioRegroupement","SurveyInputRating","objectOptions","fromEntries","rate","optionSelected","HoverRating","OptionTextPrecision","Star","controlError","useVisioSurvey","onVisio","surveyClaVir","_ref$isVirtual","showMeetingAlert","handleVisio","OutOfTimeEnd","Ended","WaitingTeacher","ownerState","styleFilled","styleOutlined","styleGhost","_ref2$color","_ref2$variant","convertWorkshopToAgendaEvents","isInscrit","heureDebut","heureFin","nomAtelier","nombreDePlacesMaxi","nombreInscription","professeur","convertWorkshopStatus","idStatut","isInWaitingList","Display","isDocument","containsFiles","descriptif","nombreHeure","dateLimiteInscription","lieu","coutEnEuros","coutEnCredit","prixUnitaire","txtMethode","txtObjectifs","txtProgramme","txtPublic","txtTheme","txtMateriel","convertTaskToAgendaEvent","ResultResponse","ResultDetailResult","tasks","getTasksSuccess","selectedTask","addOrUpdateTask","TitleIsRequired","DateStartIsRequired","DateEndIsRequired","removeTask","ThumbStyle","_ref2$isLinkDashboard","convertObjectiveEvent","notDvr","enable","lockBy","_useStudyPlanHomework","eventsLate","setEventsLate","addAgendaEvent","homeWorkToDoList","homeWork","convertEvent","convertObjectiveEventToAgendaEvent","_getHomeworks3","_getHomeworks4","homeworkDoList","jalonCount","_request$daysWorking2","eventsInAgenda","homeworkDoCount","updateEventsObjective","calculate","_getHomeworks","_getHomeworks2","_request$daysWorking","saveCalculatedObjective","eventTmp","eventLate","eventAgenda","_objective$events","newList","unlockObjective","currentContract","RenderRegisteredStatus","Absent","isMounted","_ref$small","_ref$labelButton","labelButton","LiveHelp","preReqPouDvrRea","preReqNbJouSta","preReqNotDosProMin","valuePourcentageDevoirsRealises","valueNombreJoursStage","valueNoteDossierProMin","examLabel","CustomCircularProgress","ListItemCardMobile","coef","ListItemCardPC","StudyPlanChapterAverageList","extractInfo","base","_createElement","StyledTab","TabsContainer","itemsIncludeDo","itemsExcludeDo","existInclude","TabIndicatorProps","CheckCircleOutlineRounded","HighlightOffRounded","StudyPlanChapterAverageListContainer","setItems","manager","useStudyPlanChapter","_manager$getItems","itemsFilter","getItems","averageType","StudyPlanItemScoreType","Include","IncludeDo","ExcludeDo","AgendaEventListResult","Do","_ref$skillIds","skillList","Verified","SkillDrawer","SkillCardList","SurveyResult","BadRequest","_getSurveyItemAsync","CannotFindSurvey","nextSteps","ListStyle","viewItemCard","SettingsContext","setStart","saved","setSaved","_useSurveyStepperStan","setSteps","findNextStep","getNextStep","stepIndex","findIndex","fnCallback","stepNext","conditions","idQuestion","arr","useSurveyStepperStandard","isErrorCategory","ContainerInput","PageTemplateType","PageTemplateResult","_action$payload$stude","clearData","StudentResult","resizeAvatar","_ref$mandatory","InfoOutlined","_touched$session","_touched$session2","_errors$session2","_errors$session3","handleRemove","idCurrent","nom","taille","nomDisk","typeMime","MessageErrorMsg","ObservationIsRequired","ServiceIsRequired","SubjectIsRequed","_params$subjects4","_params$services2","_params$services2$fin","_params$subjects5","_params$subjects5$fin","_params$subjects6","_ref2$params","_useModuleAuthorize","QuestionUpdate","QuestionUpdateFilter","servicesFiltered","useServices","MessageFormSchema","_params$subjects","_params$subjects2","subject","keyService","handleDrop","sortedSubjects","sub","observationTheme","observationSubject","_params$services","_params$subjects3","serviceCurrent","service","AlertDescription","descriptionServices","StudentUpdateAction","StudentUpdateResult","StudentChangePasswordResult","StudentSignInResult","StudentPasswordResult","templates","template","getPageTemplatesSuccess","getPageTemplates","HubContext","_methode","setConnection","setConnectionState","setIsStarted","connectionId","_connect","accessTokenFactory","transport","HttpTransportType","WebSockets","skipNegotiation","newConnection","HubConnectionBuilder","withUrl","withAutomaticReconnect","configureLogging","LogLevel","build","onreconnecting","Disconnecting","onclose","onreconnected","Connected","methode","methodName","_len","args","_key","_args","PRIMARY_COLOR","themeColor","themeStretch","onChangeDirection","onChangeColor","onToggleStretch","colorOption","setSettings","tmpText","_metadatas$","_ref$metadatas","setTeacher","handleTeacher","TimeSlotTeacher","Fragment","Autres","LinkRounded","_meeting$homework2","handleModal","MeetingStatusDisplay","_meeting$homework","_ref$isLinkToCourse","isLinkToCourse","addHours","isCreating","DesktopDateTimePicker","trash2Fill","adresse","SpecificNeedResult","BSE_BSP_RADIO_BTN","listeBesSpeDeclares","aucunBesSpe","examenBesSpe","pedagogiqueBesSpe","radioButton","aucunBesSpeSauvegarde","alerteSuppressionBSE","alerteSuppressionBSP","getSpecificNeeds","_state$examenBesSpe2","_state$pedagogiqueBes2","_state$aucunBesSpe","_state$examenBesSpe3","_state$pedagogiqueBes3","_state$aucunBesSpe3","aucunBesoin","pedagogiques","pedagogique","_state$examenBesSpe","_state$pedagogiqueBes","isExamen","isPedagogique","existingBesSpe","besSpe","getStudentDeclaredSpecificNeeds","_state$aucunBesSpe$id","_state$aucunBesSpe2","changeRadioButton","updatePedagogies","_state$pedagogiqueBes4","updateExamens","_state$examenBesSpe4","useAppStart","loadData","_student$contracts","getSchedulesEvent","getMeetingsEvent","classes","getTaskList","elearnings","resetStudyPlan","JWTReducer","_state$student","_state$student2","_state$student3","_state$student4","phone1","phone2","isChangePassword","dayWeek","timeStart","timeEnd","keyAppId","dispatchSlice","_state$student5","_student","authorize","unAuthorized","Reconnected","Initial","loadAvatar","Logout","responseReset","EmailIncorrect","ts","sign","passwordNew","passwordConfirm","updateProfile","_form$student$contrac","AddressError","PersonnalDatas","Password","_state$student6","IdConnection","pastTimeMinute","Connection_Id","saveAvatar","_callee11","_context11","Config","MeetingListResult","SkillStatusIndicator","iconColor","labelColor","SkillStatusType","Acquired","PartialAcquired","BeingEvaluated","NotAcquired","Lens","SkillCard","skill","studyPlanItemHomeworks","homeworkKeys","myKey","TimeSlotsWeekDisplay","setIsError","WeekDaysControl","dates","_events$filter$","slots","endTime","startTime","accumaleur","_ref2$date","initWeekDaysControl","setDates","handleMove","materialId","teacherList","Oral","_materials$","materials","setMaterialId","selectedTeacher","eventsFiltered","eventsCurrent","eventsFind","metaEvent","_teacher$selected","isDuplicate","_w$metadatas$material","_w$metadatas$teacher","_teacher$selected2","_w$metadatas","materialsSorted","_teacher$selected3","_usePerson","Gender","getGender","MALE","FEMALE","UNDEFINED","usePerson","_meeting$teacher","_meeting$teacher2","teacherLabel","SimpleBarStyle","SimpleBarReact","userAgent","clickOnTrack","_ref$dense","scoreCount","PRIMARY_NAME","INFO_NAME","SUCCESS_NAME","WARNING_NAME","ERROR_NAME","getFirstCharacter","capitalize","getAvatarColor","_ref2$withoutImg","header","_ref$color","Separator","LinkItem","_last","_ref2$activeLast","activeLast","currentLink","listDefault","listActiveLast","breakpoint","hiddenUp","hiddenDown","fileDownload","convertVirtualClassToAgendaEvent","selectedRange","getSchedulesEventSuccess","getOtherEventsSuccess","selectEventByKey","allEventsWithoutObjective","deleteEvent","enabled","dateAPI","agendaMap","virtualClassList","_response$data6","AgendaListItems","module","SORT_OPTIONS","TYPE_OPTIONS","DirectionType","JobFilter","setFilter","onSearch","searchQuery","SearchRounded","getUrlType","urlReturn","contractLate","contractSchedule","workShop","_getLinkPayment","EmptyContentLarge","SearchStyle","OutlinedInput","SupportToggleGroup","ToggleButtonGroup","borderStyle","SupportToggleButton","STUDY_PLAN_ITEM_TYPE_FILTER","StudyPlanSearchControl","searchText","supportType","getSupportTypes","typeString","supportTypes","newTypes","startAdornment","searchFill","onKeyPress","charCode","autoFocus","newSupportTypes","_filter$searchText","itemTypeTab","_filter$supportType","_filter$supportType2","_getTypeSupport","StudyPlanSearchPopover","chapterItemList","setChapterItemList","StudyPlanUpdatedPopover","_ref$chapterItemUpdat","syncFill","Settings","LocalActivity","Filter","TagType","arrObject","groupingKeyFn","groupby","datas","entries","useStyles","makeStyles","selectedDay","_ref2$lockOnSave","_ref2$disableStartEnd","_ref2$skipPopupGenera","_ref2$closeOnModifyPe","objCalcInfos","setObjCalcInfos","handleDaysWorkingChange","currentIndex","indexOf","newChecked","splice","closePopupGenerate","closeConfirm","infos","calculateSuccessHandler","DateRangePicker","startText","endText","handleChangeDate","startProps","endProps","DayPicker","selectedDays","onDayClick","selectedIndex","DateUtils","isSameDay","localeUtils","MomentLocaleUtils","newObjInfos","ArticleResult","ArticlesResult","articles","getArticlesSuccess","Set","getArticlesInitial","getMoreArticles","getArticleSuccess","myArticle","categoryUrl","getRecentArticlesSuccess","getAllArticle","sortName","getArticle","mails","getLabelsSuccess","getMailsSuccess","getMailSuccess","getMail","mailId","isLoadingMore","jobs","startLoadingMore","getJobsSuccess","_action$payload$reque","pageIndex","clearJobs","getJob","getJobSuccess","getJobs","totalCount","totalPages","getDetailJob","currentOvertime","Reject","Validated","extractItems","phaseId","unityId","chapterId","_ph","_unityChpt$chapters","ph","unityChpt","chapterSelected","getAllItems","_studyPlanManager$pha2","isValidSurvey","itemsUpdated","hChapterColorProgression","listStyle","DotStyle","appendDots","customPaging","setExamen","InternshipListResult","InternshipAddResult","internshipTypeOfLocation","getIntershipListSuccess","typeOfLocation","addInternshipSuccess","selectInternship","_intership$signataire","_intership$gestion","intership","referentIsSignataire","signataire","site","referent","isGestion","gestion","initGestionaire","function","complement","toUpperCase","eventsJson","computeInternshipEventsIds","country","countryCode","getInternshipList","addInternship","moduleLocked","useModuleGuard","getColorsProgression","toDo","_chapter","setProgress","unLockFirstLocked","parameters","unlockLevelList","unlockLevel","setLock","parameter","numEnvMax","isHomeworkDo","intChapterProgress","coefficientSummary","scoreSummary","_chapHomework$homewor","chapHomework","homeworksCorrected","extractItem","cleanSearchString","StudyPlanItemTypeSearchString","unityCode","chapterCode","subChapterCode","getFirstSubChapterWithItems","extractDataType","itemHomework","itemMedia","StudyPlanContextTypeControl","selectedEventId","getEventsSuccess","createEventSuccess","newEvent","updateEventSuccess","deleteEventSuccess","selectRange","createEvent","getDashboardJobs","DSC","term","jobTypeId","mask","WebkitMask","_ref4$isColumn","_ref4$maxHeightImg","row","_methodeHttp","proxy","methodeHttp","localTime","onTrackerPage","Tracker","secondaryAction","setServicesFiltered","getServicesFiltered","InfoStyle","NoResponseStyle","SkeletonLoad","_ref5$questionAnswer","answer","MessageContentItem","_message$fromDetails","_message$fromDetails2","avatarImg","fromDetails","ser","keyOfCourse","StudyPlanItemEventPopover","schedule","taskOfCourse","Todo","isMedia"],"mappings":";qPAoBaA,EAAwB,SAACC,GAAgB,IAADC,EAAAC,EAC3CC,EAAyEH,EAAzEG,QAASC,EAAgEJ,EAAhEI,eAAgBC,EAAgDL,EAAhDK,SAAUC,EAAsCN,EAAtCM,OAAMC,EAAgCP,EAA9BQ,kBAAU,IAAAD,GAAQA,EAAEE,EAAUT,EAAVS,MACvEC,EAA8BC,mBAAkBR,GAAQS,EAAAC,YAAAH,EAAA,GAAjDI,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAGpBI,EAAe,SAACC,EAAcC,IACpB,SAATD,IAAoBC,EAAQ,IAAiB,SAATD,IAAoBC,EAAQ,KAAIA,EAAQ,KAEjFH,EAAUI,wBAAC,GAAKL,GAAO,GAAAM,YAAA,GAAGH,EAAOC,MAGnCG,qBAAU,WACRhB,EAAQc,wBAAC,GACJL,GAAO,IACVQ,YAAalB,EAAemB,QAC1B,SAACC,GAAqB,OAAKA,EAAOC,OAASX,EAAQU,UACnD,GAAGF,iBAEN,CAACR,IAGmBV,EAAemB,QACpC,SAACC,GAAqB,OACpBA,EAAOE,sBAAsBC,SAASrB,EAAOsB,YAC7CJ,EAAOK,iBAAiBF,SAASrB,EAAOwB,iBAH5C,IAMMC,EAA2F,QAAhF9B,EAAGG,EAAemB,QAAO,SAACS,GAAkB,OAAKA,EAAIP,OAASX,EAAQU,UAAQ,UAAE,IAAAvB,OAAA,EAA7EA,EAChBgC,UACEC,EAA0F,QAAhFhC,EAAGE,EAAemB,QAAO,SAACS,GAAkB,OAAKA,EAAIP,OAASX,EAAQU,UAAQ,UAAE,IAAAtB,OAAA,EAA7EA,EACfiC,cAEJ,OACEC,cAAAC,WAAA,CAAAC,SACG9B,EACC4B,cAACG,EAAY,CACXpC,QAASW,EACToB,WAAYA,EACZH,YAAaA,EACb1B,SAAUW,EACVwB,WAAYpC,EACZqC,gBAAiBnC,EAAOoC,OACxBjC,MAAOA,IAGT2B,cAACO,EAAe,CACdxC,QAASW,EACToB,WAAYA,EACZH,YAAaA,EACb1B,SAAUW,EACVwB,WAAYpC,EACZqC,gBAAiBnC,EAAOoC,OACxBjC,MAAOA,OAmBjB,SAASkC,EAAeC,GAQV,IAPZJ,EAAUI,EAAVJ,WACArC,EAAOyC,EAAPzC,QACA4B,EAAWa,EAAXb,YAEAU,GADUG,EAAVV,WACeU,EAAfH,iBACAhC,EAAKmC,EAALnC,MACAJ,EAAQuC,EAARvC,SAGMwC,EAAsBd,GAAkC,QAAnB5B,EAAQqB,OAEnD,OACEsB,eAACC,IAAG,CAACC,GAAI,CAAEC,GAAI,GAAIX,SAAA,CACjBF,cAACc,IAAU,CACTC,QAAQ,QACRC,cAAY,EAAAd,SAAA,GAAAe,OACTlD,EAAQmD,gBAAe,OAAAD,OAAMlD,EAAQoD,eAC1CT,eAACU,IAAK,CAACC,IAAK,MAAOC,cAAc,MAAMC,WAAY,WAAYC,aAAc,SAAStB,SAAA,CACpFF,cAACyB,IAAQ,CACPC,WAAW,EACX7C,KAAK,SACL8C,MAAO,SACPC,KAAK,QACLC,QAASzB,EAAW0B,KAAI,SAAClC,GACvB,MAAO,CAAEd,MAAOc,EAAIP,KAAMsC,MAAO/B,EAAIuB,gBAEvCY,MAAOhE,EAAQqB,OACf4C,SAAU,SAAClD,GAAa,OAAKb,EAAS,SAAUa,IAChDmD,SAA8B,QAApB5B,IAGXI,GACCT,cAACkC,EAAa,CACZnE,QAASA,EACT4B,YAAaA,EACbtB,MAAOA,EACPJ,SAAUA,UAUtB,SAASkC,EAAYgC,GAQP,IAPZ/B,EAAU+B,EAAV/B,WACArC,EAAOoE,EAAPpE,QACA4B,EAAWwC,EAAXxC,YACAG,EAAUqC,EAAVrC,WACAO,EAAe8B,EAAf9B,gBACAhC,EAAK8D,EAAL9D,MACAJ,EAAQkE,EAARlE,SAaA,OACE+B,cAACW,IAAG,CAACC,GAAI,CAAEC,GAAI,GAAIX,SACjBQ,eAACC,IAAG,CAAAT,SAAA,CACFF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAA,GAAAe,OAAKlD,EAAQmD,gBAAe,OAAAD,OAAMlD,EAAQoD,eACrET,eAACU,IAAK,CAACC,IAAK,MAAOC,cAAc,MAAMC,WAAY,WAAYC,aAAc,SAAStB,SAAA,CACpFF,cAACyB,IAAQ,CACPC,WAAW,EACX7C,KAAK,SACL8C,MAAO,SACPC,KAAK,QACLC,QAASzB,EAAW0B,KAAI,SAAClC,GACvB,MAAO,CAAEd,MAAOc,EAAIP,KAAMsC,MAAO/B,EAAIuB,gBAEvCY,MAAOhE,EAAQqB,OACf4C,SAAU,SAAClD,GAAa,OAAKb,EAAS,SAAUa,IAChDmD,SAA8B,QAApB5B,IAEXP,GACCE,cAACkC,EAAa,CACZnE,QAASA,EACT4B,YAAaA,EACbtB,MAAOA,EACPJ,SAAUA,YAiBxB,IAAMiE,EAAgB,SAAHE,GAAsE,IAAhErE,EAAOqE,EAAPrE,QAAS4B,EAAWyC,EAAXzC,YAAatB,EAAK+D,EAAL/D,MAAOJ,EAAQmE,EAARnE,SAC9CoE,GAAU,IAAIC,MAAOC,cACrBC,EAAUH,EAAU,EAU1B,OACE3B,eAACU,IAAK,CAACC,IAAI,OAAOoB,UAAU,MAAKvC,SAAA,CAC/BF,cAAC0C,IAAS,CACR7D,KAAK,OACLkC,QAAQ,WACR4B,KAAK,SACLf,KAAK,QACLgB,WAAY,CACVC,IAAK,IACLC,IAAK,KACLC,KAAM,MACNC,MAAO,CAAEC,UAAW,UAEtBC,WAAY,CAAEC,aAAcnD,cAACoD,IAAc,CAACC,SAAS,SACrDpB,UAAWtC,EACX1B,SAAU,SAACqF,GAAM,OAAKrF,EAAS,OAAQqF,EAAEC,OAAOzE,QAChDA,MAAOf,EAAQyF,KACfC,OAAO,SACP9B,MAAM,OACNf,GAAI,CAAE8C,UAAW,OAAQC,MAAO,SAChCtF,MAAOuF,QAAc,OAALvF,QAAK,IAALA,OAAK,EAALA,EAAemF,MAC/BK,WAAkB,OAALxF,QAAK,IAALA,OAAK,EAALA,EAAemF,OAEV,QAAnBzF,EAAQqB,QACPY,cAAC0C,IAAS,CACR7D,KAAK,gBACLkC,QAAQ,WACR4B,KAAK,SACLf,KAAK,QACLkC,QAAM,EACNlB,WAAY,CACVC,IAAKL,EACLM,IAAKT,EACLW,MAAO,CAAEC,UAAW,UAEtBhF,SAAU,SAACqF,GAAM,OAAKrF,EAAS,gBAAiBqF,EAAEC,OAAOzE,QACzDA,MAAiC,IAA1Bf,EAAQgG,cAAsB,GAAKhG,EAAQgG,cAClDN,OAAO,SACP9B,MAAM,6BACNf,GAAI,CAAE8C,UAAW,OAAQC,MAAO,SAChCtF,MAAOuF,QAAc,OAALvF,QAAK,IAALA,OAAK,EAALA,EAAe0F,eAC/BF,WAAkB,OAALxF,QAAK,IAALA,OAAK,EAALA,EAAe0F,cAAc7D,SAjDjC,WAEf,IADA,IAAI8D,EAAQ,GACHC,EAAYzB,EAASyB,EAAI5B,EAAS4B,IACzCD,EAAME,KAAKD,GAEb,OAAOD,EA8CAG,GAAWrC,KAAI,SAAChD,GACf,OACEkB,cAACoE,IAAQ,CAACtF,MAAOA,EAAMoB,SACpBpB,GAD0BA,a,qUC5M/BuF,EAAgB,SAAhBA,GAAgB,OAAhBA,IAAgB,uBAAhBA,IAAgB,qBAAhBA,EAAgB,KAWhBC,EAAgB,SAAhBA,GAAgB,OAAhBA,IAAgB,uBAAhBA,IAAgB,qBAAhBA,IAAgB,iBAAhBA,IAAgB,2CAAhBA,IAAgB,yCAAhBA,IAAgB,iDAAhBA,IAAgB,yCAAhBA,EAAgB,KAgBfC,EAAaC,aACxB,SAAAD,IAqBG,IApBMlF,EAAIoF,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACPtD,EAAWsD,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACdjF,EAASiF,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACZpE,EAAeoE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAClBG,EAAOH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAAII,EACdC,EAAQL,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACXM,EAAMN,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAAIO,EACbC,EAAiBR,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAAIO,EACxBE,EAAcT,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAAIO,EACrBG,EAASV,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GACTW,EAAIX,UAAAC,OAAA,SAAAC,IAAAF,UAAA,IAAAA,UAAA,IAAG,GAEPY,EAAgBZ,UAAAC,OAAA,SAAAC,IAAAF,UAAA,IAAAA,UAAA,IAAG,IAAIa,EACvBC,EAAWd,UAAAC,OAAA,SAAAC,IAAAF,UAAA,IAAAA,UAAA,IAAG,IAAIe,EAClBC,EAAQhB,UAAAC,OAAA,SAAAC,IAAAF,UAAA,IAAAA,UAAA,IAAG,IAAIO,EACfU,EAAcjB,UAAAC,OAAA,SAAAC,IAAAF,UAAA,IAAAA,UAAA,IAAG,IAAIkB,EACrBjG,EAAY+E,UAAAC,OAAA,SAAAC,IAAAF,UAAA,IAAAA,UAAA,IAAG,MACfmB,EAAWnB,UAAAC,OAAA,SAAAC,IAAAF,UAAA,IAAAA,UAAA,IAAG,GACdoB,EAAOpB,UAAAC,OAAA,SAAAC,IAAAF,UAAA,IAAAA,UAAA,IAAG,IAAIqB,EACdC,EAAyBtB,UAAAC,OAAA,SAAAC,IAAAF,UAAA,KAAAA,UAAA,IAAQuB,YAAA,KAAAzB,GAAA,KAnBjClF,OAAI,KACJ8B,cAAW,KACX3B,YAAS,KACTa,kBAAe,KACfuE,UAAO,KACPE,WAAQ,KACRC,SAAM,KACNE,oBAAiB,KACjBC,iBAAc,KACdC,YAAS,KACTC,OAAI,KAEJC,mBAAgB,KAChBE,cAAW,KACXE,WAAQ,KACRC,iBAAc,KACdhG,eAAY,KACZkG,cAAW,KACXC,UAAO,KACPE,+BAIElB,EAAcL,aACzB,SAAAK,IAqBG,IApBMxF,EAAIoF,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACPtD,EAAWsD,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACdwB,EAAyBxB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAC5ByB,EAAqBzB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACxB0B,EAAoB1B,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACvB2B,EAAkB3B,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACrB4B,EAA4B5B,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAC/B6B,EAAqB7B,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACxB8B,EAAmB9B,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACtBK,EAAQL,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACX+B,EAAQ/B,UAAAC,OAAA,SAAAC,IAAAF,UAAA,IAAAA,UAAA,IAAG,GACXgC,EAAchC,UAAAC,OAAA,SAAAC,IAAAF,UAAA,KAAAA,UAAA,IACdiC,EAAQjC,UAAAC,OAAA,SAAAC,IAAAF,UAAA,KAAAA,UAAA,IACRkC,EAA0BlC,UAAAC,OAAA,SAAAC,IAAAF,UAAA,IAAAA,UAAA,IAAG,EAC7BmC,EAAgBnC,UAAAC,OAAA,SAAAC,IAAAF,UAAA,IAAAA,UAAA,IAAG,EACnBoC,EAAiBpC,UAAAC,OAAA,SAAAC,IAAAF,UAAA,IAAAA,UAAA,IAAG,EACpBqC,EAAYrC,UAAAC,OAAA,SAAAC,IAAAF,UAAA,IAAAA,UAAA,IAAG,KACfsC,EAAetC,UAAAC,OAAA,SAAAC,IAAAF,UAAA,IAAAA,UAAA,IAAG,EAClBuC,EAAevC,UAAAC,OAAA,SAAAC,IAAAF,UAAA,IAAAA,UAAA,IAAG,EAClBwC,EAAcxC,UAAAC,OAAA,SAAAC,IAAAF,UAAA,IAAAA,UAAA,IAAG,EAACuB,YAAA,KAAAnB,GAAA,KAnBlBxF,OAAI,KACJ8B,cAAW,KACX8E,4BAAyB,KACzBC,wBAAqB,KACrBC,uBAAoB,KACpBC,qBAAkB,KAClBC,+BAA4B,KAC5BC,wBAAqB,KACrBC,sBAAmB,KACnBzB,WAAQ,KACR0B,WAAQ,KACRC,iBAAc,KACdC,WAAQ,KACRC,6BAA0B,KAC1BC,mBAAgB,KAChBC,oBAAiB,KACjBC,eAAY,KACZC,kBAAe,KACfC,kBAAe,KACfC,oBAIEnB,EAActB,aACzB,SAAAsB,IAOG,IANMzG,EAAIoF,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACPtD,EAAWsD,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACdoB,EAAOpB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACV9B,EAAI8B,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACPyC,EAASzC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAAInC,KAChB6E,EAAO1C,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAAInC,KAAM0D,YAAA,KAAAF,GAAA,KALpBzG,OAAI,KACJ8B,cAAW,KACX0E,UAAO,KACPlD,OAAI,KACJuE,YAAS,KACTC,aAILnC,EAAeR,aACnB,SAAAQ,IAAwD,IAArC3F,EAAIoF,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAAWtD,EAAWsD,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAAEuB,YAAA,KAAAhB,GAAA,KAAlC3F,OAAI,KAAc8B,iBAG1BqE,EAAkBhB,aAC7B,SAAAgB,IAKG,IAJMnG,EAAIoF,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACPtD,EAAWsD,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACd2C,EAAY3C,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACf4C,EAAU5C,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAAEuB,YAAA,KAAAR,GAAA,KAHfnG,OAAI,KACJ8B,cAAW,KACXiG,eAAY,KACZC,gBAIL1B,EAAqBnB,aACzB,SAAAmB,IAAyD,IAAtC2B,EAAS7C,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAAW8C,EAAO9C,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAAEuB,YAAA,KAAAL,GAAA,KAAnC2B,YAAS,KAAcC,aAGtCjC,EAAcd,aAClB,SAAAc,IAKG,IAJMkC,EAAK/C,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GACLgD,EAAiBhD,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACpByC,EAASzC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KACZ0C,EAAO1C,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAAIuB,YAAA,KAAAV,GAAA,KAHdkC,QAAK,KACLC,oBAAiB,KACjBP,YAAS,KACTC,aA4ICO,EAAoB,SAApBA,GAAoB,OAApBA,EAAoB,aAApBA,EAAoB,eAApBA,EAAoB,cAApBA,EAAoB,oBAApBA,EAAoB,WAApBA,EAAoB,KAQpBC,EAAsB,SAAtBA,GAAsB,OAAtBA,EAAsB,WAAtBA,EAAsB,gBAAtBA,EAAsB,cAAtBA,EAAsB,KAqCtBC,GA9BVD,EAAuBE,KACvBF,EAAuBG,UA6BY,SAAzBF,GAAyB,OAAzBA,IAAyB,uBAAzBA,IAAyB,qBAAzBA,IAAyB,iBAAzBA,EAAyB,O,iCCvVrC,gRASO,SAASG,EAAWC,GACzB,OAAe,IAAXA,EAAqB,EACR,GAATA,EAAe,IAGlB,SAASC,EACdC,EACAF,EACAG,GAEA,IAAMrJ,EAAQiJ,EAAWC,GAAUE,EAEnC,OAAIpJ,EAAQ,EACH,CACLkJ,OAAQA,EAASD,EAAWC,GAC5BI,QAASJ,EAASD,EAAWC,IAAWG,EACxCE,cAAevJ,EACfwJ,cAAexJ,EAAQqJ,GAIpB,CACLH,OAAQ,EACRI,OAAQ,EACRE,cAAe,EACfD,cAAe,GAMZ,IAAME,EAAoB,SAACC,GA4ChC,OADAA,GADAA,GAJAA,GAJAA,GAJAA,GAJAA,GAJAA,GAJAA,GAJAA,GAJAA,GAJAA,GADAA,GADAA,GADAA,GAFAA,EAAUA,EAAQC,QAAQ,cAAe,WAEvBA,QAAQ,2CAA4C,KACpDA,QAAQ,cAAe,KACvBA,QAAQ,kEAAmE,KAC3EA,QAChB,gCACA,8EAEgBA,QAChB,kCACA,8EAEgBA,QAChB,wCACA,8EAEgBA,QAChB,oCACA,8EAEgBA,QAChB,qCACA,8EAEgBA,QAChB,uCACA,8EAEgBA,QAChB,6CACA,8EAEgBA,QAChB,yCACA,8EAEgBA,QAChB,oCACA,8EAEgBA,QAAQ,cAAe,kBACvBA,QAAQ,YAAa,UAI5BC,EAAc,SAACC,GAC1B,IAEIhF,EAAQgF,EAAIhF,MACZiF,EAASD,EAAIC,OAEbjF,EAAQiF,EACNjF,EANU,MAOZiF,GAPY,IAOUjF,EACtBA,EARY,KAWViF,EAVW,MAWbjF,GAXa,IAWSiF,EACtBA,EAZa,KAgBjB,IAAIC,EAASC,SAASC,cAAc,UACpC,GAAc,MAAVF,EAAgB,CAClBA,EAAOlF,MAAQA,EACfkF,EAAOD,OAASA,EAChB,IAAII,EAAMH,EAAOI,WAAW,MAG5B,OAFG,OAAHD,QAAG,IAAHA,KAAKE,UAAUP,EAAK,EAAG,EAAGhF,EAAOiF,GAE1BC,EAAOM,UAAU,eAKrB,SAASC,EAAaC,EAAgB1G,GAI3C,IAHA,IAAM2G,EAAeC,OAAOC,KAAKH,GAC3BI,EAAMH,EAAa5E,OACnBgF,EAAQ,IAAIC,WAAWF,GACpBxF,EAAI,EAAGA,EAAIwF,IAAOxF,EACzByF,EAAMzF,GAAKqF,EAAaM,WAAW3F,GAGrC,OAAO,IAAI4F,KAAK,CAACH,GAAQ,CAAE/G,KAAMA,IAQ5B,IAAMmH,EAAwB,SAACC,GAOpC,IANA,IACIV,GAAUU,EADA,IAAIC,QAAQ,EAAKD,EAAarF,OAAS,GAAM,IACrB+D,QAAQ,MAAO,KAAKA,QAAQ,KAAM,KAEpEwB,EAAUV,OAAOC,KAAKH,GACtBa,EAAc,IAAIP,WAAWM,EAAQvF,QAEhCT,EAAI,EAAGA,EAAIgG,EAAQvF,SAAUT,EACpCiG,EAAYjG,GAAKgG,EAAQL,WAAW3F,GAEtC,OAAOiG,GAGIC,EAAgB,SAACC,GAC5B,IAAIC,EAAID,EAAKE,cAAcC,OAW3B,OADAF,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,GADAA,EAAIA,EAAE5B,QAAQ,IAAI+B,OAAO,6BAAY,KAAM,MACrC/B,QAAQ,IAAI+B,OAAO,OAAK,KAAM,OAC9B/B,QAAQ,IAAI+B,OAAO,OAAK,KAAM,MAC9B/B,QAAQ,IAAI+B,OAAO,qBAAU,KAAM,MACnC/B,QAAQ,IAAI+B,OAAO,qBAAU,KAAM,MACnC/B,QAAQ,IAAI+B,OAAO,OAAK,KAAM,MAC9B/B,QAAQ,IAAI+B,OAAO,yBAAW,KAAM,MACpC/B,QAAQ,IAAI+B,OAAO,SAAK,KAAM,OAC9B/B,QAAQ,IAAI+B,OAAO,qBAAU,KAAM,MACnC/B,QAAQ,IAAI+B,OAAO,aAAQ,KAAM,MAIlC,SAASC,EAAeC,GAU7B,OATgB,IAAIF,OAClB,wKAMA,KAEaG,KAAKD,K,mKCnKhBE,EAAuBC,YAAO,MAAPA,EAAc,SAAArK,GAAgB,IAADsK,EAAZC,EAAKvK,EAALuK,MACtCC,EAAiC,UAAvBD,EAAME,QAAQC,KAE9B,MAAO,CAEL,aAAYnM,wBAAA,GACPgM,EAAMI,WAAWC,OAAK,IACzBC,YAAaN,EAAMO,QAAQ,GAC3B,OAAQ,CACNC,WAAY,KAKhB,gBAAcT,EAAA,CACZS,WAAY,IACZC,SAAU,QACV/H,OAAQ,YACRJ,SAAU,WACVoI,WAAY,iBACZC,QAASX,EAAMO,QAAQ,EAAG,EAAG,EAAG,GAChCK,aAAcZ,EAAMa,MAAMC,eAC1BC,gBAAiBf,EAAME,QAAQc,WAAWC,QAC1CC,MAAM,GAADhL,OAAK8J,EAAME,QAAQb,KAAK8B,UAAS,gBAAalN,YAAA8L,EAClDC,EAAMoB,YAAYC,GAAG,MAAQ,CAC5BzI,MAAO,QACR3E,YAAA8L,EACD,cAAe,CACbuB,aAAc,eACdb,SAAU,qBACVC,WAAY,4BACZQ,MAAM,GAADhL,OAAK8J,EAAME,QAAQb,KAAK8B,UAAS,iBACvClN,YAAA8L,EACD,WAAY,CACVwB,KAAM,GACNC,KAAM,EACNC,QAAS,QACThB,SAAU,MACVhD,QAAS,WACTnF,SAAU,WACV4I,MAAOlB,EAAME,QAAQb,KAAKnI,WAC3B6I,GAEH,sBAAuB,CACrBU,SAAU,GACViB,UAAW,OACXC,WAAY,MACZhB,QAASX,EAAMO,QAAQ,GACvBW,MAAOlB,EAAME,QAAQ0B,OAAOC,MAC5BjB,aAAcZ,EAAMa,MAAMD,aAC1BG,gBAAiBf,EAAME,QAAQ4B,KAAK7B,EAAU,IAAM,QAEtD,SAAU,CACRQ,SAAU,GACVG,aAAc,EACde,WAAY,MACZhB,QAASX,EAAMO,QAAQ,GAAK,IAC5BW,MAAOlB,EAAME,QAAQ6B,QAAQ9B,EAAU,SAAW,WAClDc,gBAAiBf,EAAME,QAAQ6B,QAAQ9B,EAAU,UAAY,UAC7D,SAAU,CAAEU,QAAS,EAAGI,gBAAiB,oBAKzCiB,EAAa,CACjBC,GAAI,SAAA7K,GAAA,IAAMvE,EAAKqP,OAAAC,OAAA,IAAAC,YAAAhL,OAAA,OAAOnC,cAACc,IAAU/B,YAAA,CAACgC,QAAQ,MAASnD,KACnDwP,GAAI,SAAAhL,GAAA,IAAMxE,EAAKqP,OAAAC,OAAA,IAAAC,YAAA/K,OAAA,OAAOpC,cAACc,IAAU/B,YAAA,CAACgC,QAAQ,MAASnD,KACnDyP,GAAI,SAAAC,GAAA,IAAM1P,EAAKqP,OAAAC,OAAA,IAAAC,YAAAG,OAAA,OAAOtN,cAACc,IAAU/B,YAAA,CAACgC,QAAQ,MAASnD,KACnD2P,GAAI,SAAAC,GAAA,IAAM5P,EAAKqP,OAAAC,OAAA,IAAAC,YAAAK,OAAA,OAAOxN,cAACc,IAAU/B,YAAA,CAACgC,QAAQ,MAASnD,KACnD6P,GAAI,SAAAC,GAAA,IAAM9P,EAAKqP,OAAAC,OAAA,IAAAC,YAAAO,OAAA,OAAO1N,cAACc,IAAU/B,YAAA,CAACgC,QAAQ,MAASnD,KACnD+P,GAAI,SAAAC,GAAA,IAAMhQ,EAAKqP,OAAAC,OAAA,IAAAC,YAAAS,OAAA,OAAO5N,cAACc,IAAU/B,YAAA,CAACgC,QAAQ,MAASnD,KACnDiQ,EAAG,SAAAC,GAAA,IAAMlQ,EAAKqP,OAAAC,OAAA,IAAAC,YAAAW,OAAA,OAAO9N,cAACc,IAAU/B,YAAA,CAACgC,QAAQ,QAAQgN,UAAU,OAAUnQ,KACrEoQ,GAAI,SAAAC,GAAA,IAAMrQ,EAAKqP,OAAAC,OAAA,IAAAC,YAAAc,OAAA,OAAOjO,cAACkO,IAAOnP,YAAA,CAAC6B,GAAI,CAAEuN,GAAI,IAASvQ,KAClDwQ,GAAI,SAAAC,GAAA,IAAMzQ,EAAKqP,OAAAC,OAAA,IAAAC,YAAAkB,OAAA,OAAOrO,cAACc,IAAU/B,YAAA,CAACgP,UAAU,KAAKhN,QAAQ,SAAYnD,KACrE0Q,GAAI,SAAAC,GAAA,IAAM3Q,EAAKqP,OAAAC,OAAA,IAAAC,YAAAoB,OAAA,OAAOvO,cAACc,IAAU/B,YAAA,CAACgP,UAAU,KAAKhN,QAAQ,SAAYnD,KAErE4Q,EAAG,SAAAC,GAAmB,IAAb7Q,EAAKqP,OAAAC,OAAA,IAAAC,YAAAsB,OAEZ,OADiB7Q,EAAT8Q,KACKnP,SAAS,QAGpBS,cAAC2O,IAAI5P,YAAA,CAACwE,OAAO,SAASqL,IAAI,gCAAmChR,IAF7DoC,cAAC2O,IAAI5P,YAAA,GAAKnB,MASD,SAASiR,EAAQC,GAAyB,IAAnBC,EAAK9B,OAAAC,OAAA,IAAAC,YAAA2B,OACzC,OACE9O,cAAC4K,EAAoB,CAAA1K,SACnBF,cAACgP,IAAajQ,YAAA,CACZkQ,cAAe,CAACC,IAAWC,KAC3BpC,WAAYA,GACRgC,Q,kJClGNK,EAAavE,YAAO,OAAPA,EAAe,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,OAAA/L,YAAA,GACvC+L,EAAMoB,YAAYC,GAAG,MAAQ,CAC5BG,KAAM,EACN8C,OAAQ,EACR1L,MAAO,GACP2L,MAAO,GACP1G,OAAQ,GACRJ,QAAS,KACTnF,SAAU,WACVsI,aAAc,YACd4D,UAAW,kBACXxD,WAAYhB,EAAME,QAAQc,WAAWyD,MACrCC,YAAY,aAADxO,OAAeyO,YAAM3E,EAAME,QAAQ4B,KAAK,KAAM,MACzD8C,aAAa,aAAD1O,OAAeyO,YAAM3E,EAAME,QAAQ4B,KAAK,KAAM,WAM/C,SAAS+C,EAAWxN,GAA4C,IAAzClC,EAAQkC,EAARlC,SAAUU,EAAEwB,EAAFxB,GAAOmO,EAAKc,YAAAzN,EAAA0N,GAC1D,OACEpP,eAACqP,IAAOhR,wBAAA,CACNiR,aAAc,CACZC,SAAU,SACVC,WAAY,SAEdC,gBAAiB,CACfF,SAAU,MACVC,WAAY,SAEdE,WAAY,CACVxP,GAAE7B,YAAA,CACA8B,GAAI,IACJwP,GAAI,GACJC,SAAU,UACVC,UAAW,SAACxF,GAAK,OAAKA,EAAMyF,cAAcC,KAC1CC,OAAQ,SAAC3F,GAAK,mBAAA9J,OAAkB8J,EAAME,QAAQ4B,KAAK,QACnDlJ,MAAO,KACJ/C,KAGHmO,GAAK,IAAA7O,SAAA,CAETF,cAACoP,EAAU,IAEVlP,Q,4RC1CP,SAASyQ,EAAaC,GAA2B,IAAbC,EAAGpM,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KACxC,OAAOmM,EAAME,QAAO,SAACC,EAAarS,GAEhC,OADAqS,EAAYrS,EAAQmS,IAAQnS,EACrBqS,IACN,IAmBL,IAUMC,EAAQC,YAAY,CACxBpS,KAAM,OACNqS,aAZ8B,CAC9BC,WAAW,EACX9S,OAAO,EACP+S,SAAU,CAAEC,KAAM,GAAIC,OAAQ,IAC9BC,cAAe,CAAEF,KAAM,GAAIC,OAAQ,IACnCE,qBAAsB,KACtBC,aAAc,GACdC,WAAY,IAMZC,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,GAIpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAIvBC,mBAAkB,SAACJ,EAAOE,GACxB,IAAMX,EAAWW,EAAOC,QAExBH,EAAMT,SAASC,KAAOV,EAAaS,GACnCS,EAAMT,SAASE,OAASrE,OAAOiF,KAAKL,EAAMT,SAASC,OAIrDc,wBAAuB,SAACN,EAAOE,GAC7B,IAAMR,EAAgBQ,EAAOC,QAE7BH,EAAMN,cAAcF,KAAOV,EAAaY,GACxCM,EAAMN,cAAcD,OAASrE,OAAOiF,KAAKL,EAAMN,cAAcF,OAI/De,uBAAsB,SAACP,EAAOE,GAC5B,IAAMM,EAAeN,EAAOC,QAExBK,GACFR,EAAMN,cAAcF,KAAKgB,EAAaC,IAAMD,EAC5CR,EAAML,qBAAuBa,EAAaC,GACrCT,EAAMN,cAAcD,OAAO/R,SAAS8S,EAAaC,KACpDT,EAAMN,cAAcD,OAAOpN,KAAKmO,EAAaC,KAG/CT,EAAML,qBAAuB,MAKjCe,cAAa,SAACV,EAAOE,GACnB,IAAMM,EAAeN,EAAOC,QACpBQ,EACNH,EADMG,eAGFC,EAAa,CACjBH,GAHAD,EADsBK,UAKtBC,KAJAN,EADiCO,QAMjCC,YALAR,EAD0CQ,YAO1CC,YANAT,EADuDS,YAQvDC,UAPAV,EADoEU,UASpEC,SARAX,EAD+EW,UAYjFnB,EAAMN,cAAcF,KAAKmB,GAAgBS,SAAS/O,KAAKuO,IAGzDS,8BAA6B,SAACrB,EAAOE,GACnC,IAAQS,EAAmBT,EAAOC,QAA1BQ,eACFH,EAAeR,EAAMN,cAAcF,KAAKmB,GAC1CH,IACFA,EAAac,YAAc,IAK/BC,uBAAsB,SAACvB,EAAOE,GAC5B,IAAMN,EAAeM,EAAOC,QAC5BH,EAAMJ,aAAeA,GAIvB4B,wBAAuB,SAACxB,GACtBA,EAAML,qBAAuB,MAG/B8B,cAAa,SAACzB,EAAOE,GACnB,IAAML,EAAaK,EAAOC,QAC1BH,EAAMH,WAAaA,MAMVV,IAAa,QAGrBuC,EAAkEvC,EAAMwC,QAAnDD,EAAbD,cAA4BC,EAAbhB,cAAsCgB,EAAvBF,wBC/H7C,IAWMrC,EAAQC,YAAY,CACxBpS,KAAM,OACNqS,aAb8B,CAC9BC,WAAW,EACX9S,OAAO,EACPoV,MAAO,GACPC,KAAM,KACNC,YAAa,GACbC,SAAS,EACTC,MAAO,EACP9Q,KAAM,IAMN4O,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,GAIpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAIvB8B,gBAAe,SAACjC,EAAOE,GACrBF,EAAMV,WAAY,EAClBU,EAAM4B,MAAQ1B,EAAOC,SAIvB+B,gBAAe,SAAClC,EAAOE,GACrBF,EAAMV,WAAY,EAClBU,EAAM4B,MAAQ1B,EAAOC,SAGvBgC,aAAY,SAACnC,GACX,IAAMoC,EAAWpC,EAAMgC,MAAQhC,EAAM9O,KACrC8O,EAAMgC,MAAQI,GAGhBC,UAAS,SAACrC,GACRA,EAAM+B,SAAU,GAIlBO,eAAc,SAACtC,EAAOE,GACpBF,EAAMV,WAAY,EAClBU,EAAM6B,KAAO3B,EAAOC,SAItBoC,sBAAqB,SAACvC,EAAOE,GAC3BF,EAAMV,WAAY,EAClBU,EAAM8B,YAAc5B,EAAOC,YAMlBhB,IAAa,QAGIA,EAAMwC,QAAvBQ,a,mBCrCf,IAgBMhD,EAAQC,YAAY,CACxBpS,KAAM,OACNqS,aAlB8B,CAC9BC,WAAW,EACX9S,OAAO,EACPgW,UAAW,KACXZ,MAAO,GACPa,MAAO,GACPC,SAAU,GACVC,UAAW,GACXC,QAAS,GACTC,QAAS,GACTC,MAAO,KACPC,YAAa,GACbC,SAAU,GACVC,cAAe,MAMfnD,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,GAIpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAIvB+C,kBAAiB,SAAClD,EAAOE,GACvBF,EAAMV,WAAY,EAClBU,EAAMwC,UAAYtC,EAAOC,SAI3B8B,gBAAe,SAACjC,EAAOE,GACrBF,EAAMV,WAAY,EAClBU,EAAM4B,MAAQ1B,EAAOC,SAIvBgD,gBAAe,SAACnD,EAAOE,GACrBF,EAAMV,WAAY,EAClBU,EAAMyC,MAAQvC,EAAOC,SAIvBiD,WAAU,SAACpD,EAAOE,GAChB,IAAMkD,EAAa9V,iBAAO0S,EAAM0C,UAAU,SAACW,GAAI,OAAKA,EAAK5C,KAAOP,EAAOC,WACvEH,EAAM0C,SAAWU,GAInBE,oBAAmB,SAACtD,EAAOE,GACzBF,EAAMV,WAAY,EAClBU,EAAM2C,UAAYzC,EAAOC,SAI3BoD,eAAc,SAACvD,EAAOE,GACpB,IAAMsD,EAAatD,EAAOC,QAEpBsD,EAAexT,cAAI+P,EAAM2C,WAAW,SAACe,GACzC,OAAIA,EAASjD,KAAO+C,EAClBtW,wBAAA,GACKwW,GAAQ,IACXC,YAAaD,EAASC,aAGnBD,KAGT1D,EAAM2C,UAAYc,GAIpBG,kBAAiB,SAAC5D,EAAOE,GACvBF,EAAMV,WAAY,EAClBU,EAAM4C,QAAU1C,EAAOC,SAIzB0D,kBAAiB,SAAC7D,EAAOE,GACvBF,EAAMV,WAAY,EAClBU,EAAM6C,QAAU3C,EAAOC,SAIzB2D,mBAAkB,SAAC9D,EAAOE,GACxBF,EAAMV,WAAY,EAClBU,EAAM0C,SAAWxC,EAAOC,SAI1B4D,gBAAe,SAAC/D,EAAOE,GACrBF,EAAMV,WAAY,EAClBU,EAAM8C,MAAQ5C,EAAOC,SAIvB6D,sBAAqB,SAAChE,EAAOE,GAC3BF,EAAMV,WAAY,EAClBU,EAAM+C,YAAc7C,EAAOC,SAI7B8D,mBAAkB,SAACjE,EAAOE,GACxBF,EAAMV,WAAY,EAClBU,EAAMgD,SAAW9C,EAAOC,SAI1B+D,wBAAuB,SAAClE,EAAOE,GAC7BF,EAAMV,WAAY,EAClBU,EAAMiD,cAAgB/C,EAAOC,YAMpBhB,IAAa,QAGrBuC,EAAuCvC,EAAMwC,QAAvBD,EAAd6B,eAA0B7B,EAAV0B,W,YC1J/B,IAwBMjE,EAAQC,YAAY,CACxBpS,KAAM,UACNqS,aA1BiC,CACjCC,WAAW,EACX9S,OAAO,EACP2X,SAAU,GACVC,QAAS,KACTC,OAAQ,KACRC,QAAS,CACPC,OAAQ,GACRC,SAAU,MACVC,OAAQ,GACRC,WAAY,GACZC,OAAQ,IAEVC,SAAU,CACRC,WAAY,EACZC,KAAM,GACNC,SAAU,EACVC,MAAO,EACPC,SAAU,EACVC,SAAU,EACVC,QAAS,OAOXrF,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,GAIpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAIvBiF,mBAAkB,SAACpF,EAAOE,GACxBF,EAAMV,WAAY,EAClBU,EAAMmE,SAAWjE,EAAOC,SAI1BkF,kBAAiB,SAACrF,EAAOE,GACvBF,EAAMV,WAAY,EAClBU,EAAMoE,QAAUlE,EAAOC,SAIzBmF,eAAc,SAACtF,EAAOE,GACpBF,EAAMqE,OAASnE,EAAOC,SAGxBoF,eAAc,SAACvF,EAAOE,GACpBF,EAAMsE,QAAQC,OAASrE,EAAOC,QAAQoE,OACtCvE,EAAMsE,QAAQE,SAAWtE,EAAOC,QAAQqE,SACxCxE,EAAMsE,QAAQG,OAASvE,EAAOC,QAAQsE,OACtCzE,EAAMsE,QAAQI,WAAaxE,EAAOC,QAAQuE,WAC1C1E,EAAMsE,QAAQK,OAASzE,EAAOC,QAAQwE,QAIxCa,QAAO,SAACxF,EAAOE,GACb,IAAM4E,EAAO5E,EAAOC,QAEd4E,EAAWU,cAAIX,EAAK7U,KAAI,SAACyV,GAAkB,OAAKA,EAASC,MAAQD,EAASE,aAC1EX,EAA2B,IAAhBH,EAAKjS,OAAe,EAAImN,EAAM4E,SAASK,SAClDC,EAA2B,IAAhBJ,EAAKjS,OAAe,EAAImN,EAAM4E,SAASM,SAClDC,EAA0B,IAAhBL,EAAKjS,OAAe,KAAOmN,EAAM4E,SAASO,QAE1DnF,EAAM4E,SAASE,KAAOA,EACtB9E,EAAM4E,SAASK,SAAWA,EAC1BjF,EAAM4E,SAASM,SAAWA,EAC1BlF,EAAM4E,SAASO,QAAUA,EACzBnF,EAAM4E,SAASG,SAAWA,EAC1B/E,EAAM4E,SAASI,MAAQD,EAAWE,GAGpCY,QAAO,SAAC7F,EAAOE,GACb,IAAMkE,EAAUlE,EAAOC,QACjB2F,EAA6C,IAA/B9F,EAAM4E,SAASE,KAAKjS,OAGtCmN,EAAM4E,SAASE,KADbgB,EACiB,GAAA1W,OAAA2W,YAAO/F,EAAM4E,SAASE,MAAI,CAAEV,IAEzBnU,cAAI+P,EAAM4E,SAASE,MAAM,SAACkB,GAE9C,OADkBA,EAASvF,KAAO2D,EAAQ3D,GAExCvT,wBAAA,GACK8Y,GAAQ,IACXJ,SAAUI,EAASJ,SAAW,IAG3BI,KAGXhG,EAAM4E,SAASE,KAAOmB,iBAAO,GAAD7W,OAAA2W,YAAK/F,EAAM4E,SAASE,MAAI,CAAEV,IAAU,OAGlE8B,WAAU,SAAClG,EAAOE,GAChB,IAAMiG,EAAa7Y,iBAAO0S,EAAM4E,SAASE,MAAM,SAACsB,GAAI,OAAKA,EAAK3F,KAAOP,EAAOC,WAE5EH,EAAM4E,SAASE,KAAOqB,GAGxBE,UAAS,SAACrG,GACRA,EAAM4E,SAASC,WAAa,EAC5B7E,EAAM4E,SAASE,KAAO,GACtB9E,EAAM4E,SAASI,MAAQ,EACvBhF,EAAM4E,SAASG,SAAW,EAC1B/E,EAAM4E,SAASK,SAAW,EAC1BjF,EAAM4E,SAASM,SAAW,EAC1BlF,EAAM4E,SAASO,QAAU,MAG3BmB,WAAU,SAACtG,GACTA,EAAM4E,SAASC,YAAc,GAG/B0B,WAAU,SAACvG,GACTA,EAAM4E,SAASC,YAAc,GAG/B2B,WAAU,SAACxG,EAAOE,GAChB,IAAMuG,EAAWvG,EAAOC,QACxBH,EAAM4E,SAASC,WAAa4B,GAG9BC,iBAAgB,SAAC1G,EAAOE,GACtB,IAAMyG,EAAYzG,EAAOC,QACnBgG,EAAalW,cAAI+P,EAAM4E,SAASE,MAAM,SAACV,GAC3C,OAAIA,EAAQ3D,KAAOkG,EACjBzZ,wBAAA,GACKkX,GAAO,IACVwB,SAAUxB,EAAQwB,SAAW,IAG1BxB,KAGTpE,EAAM4E,SAASE,KAAOqB,GAGxBS,iBAAgB,SAAC5G,EAAOE,GACtB,IAAMyG,EAAYzG,EAAOC,QACnBgG,EAAalW,cAAI+P,EAAM4E,SAASE,MAAM,SAACV,GAC3C,OAAIA,EAAQ3D,KAAOkG,EACjBzZ,wBAAA,GACKkX,GAAO,IACVwB,SAAUxB,EAAQwB,SAAW,IAG1BxB,KAGTpE,EAAM4E,SAASE,KAAOqB,GAGxBU,cAAa,SAAC7G,EAAOE,GACnBF,EAAM4E,SAASO,QAAUjF,EAAOC,SAGlC2G,cAAa,SAAC9G,EAAOE,GACnB,IAAM+E,EAAW/E,EAAOC,QACxBH,EAAM4E,SAASK,SAAWA,EAC1BjF,EAAM4E,SAASI,MAAQhF,EAAM4E,SAASG,SAAWE,GAGnD8B,cAAa,SAAC/G,EAAOE,GACnB,IAAMgF,EAAWhF,EAAOC,QACxBH,EAAM4E,SAASM,SAAWA,EAC1BlF,EAAM4E,SAASI,MAAQhF,EAAM4E,SAASG,SAAW/E,EAAM4E,SAASK,SAAWC,MAMlE/F,IAAa,QAGrBuC,EAeHvC,EAAMwC,QAdDD,EAAP8D,QACO9D,EAAPmE,QACSnE,EAAT2E,UACU3E,EAAV8E,WACU9E,EAAV4E,WACU5E,EAAV6E,WACU7E,EAAVwE,WACaxE,EAAbmF,cACanF,EAAbqF,cACarF,EAAboF,cACgBpF,EAAhBgF,iBACgBhF,EAAhBkF,iBACclF,EAAd4D,eACc5D,EAAd6D,e,oBCtMF,SAASzG,EAA+CC,GAAoC,IAArBC,EAAWpM,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KACnF,OAAOmM,EAAME,QAA6B,SAACC,EAAarS,GAEtD,OADAqS,EAAYrS,EAAQmS,IAAQnS,EACrBqS,IACN,IAaL,IAUMC,EAAQC,YAAY,CACxBpS,KAAM,SACNqS,aAZiC,CACjCC,WAAW,EACX9S,OAAO,EACPwa,MAAO,CACLlE,MAAO,GACPmE,QAAS,GACTC,YAAa,KAOfpH,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,GAIpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAIvBgH,gBAAe,SAACnH,EAAOE,GACrBF,EAAMV,WAAY,EAClB,IAAM0H,EAAQ9G,EAAOC,QACf2C,EAAQhE,EAAyBkI,EAAMlE,OACvCmE,EAAUnI,EAA2BkI,EAAMC,SACzCC,EAAgBF,EAAhBE,YACRlH,EAAMgH,MAAQ,CACZlE,QACAmE,UACAC,gBAKJE,oBAAmB,SAACpH,EAAOE,GACzB,IAAMmH,EAAYnH,EAAOC,QACzBH,EAAMV,WAAY,EAClBU,EAAMgH,MAAMC,QAAO/Z,wBAAA,GACd8S,EAAMgH,MAAMC,SAAO,GAAA9Z,YAAA,GACrBka,EAAU5G,GAAK4G,IAElBrH,EAAMgH,MAAME,YAAY7U,KAAKgV,EAAU5G,KAGzC6G,YAAW,SAACtH,EAAOE,GACjB,IAAM+G,EAAU/G,EAAOC,QACvBH,EAAMgH,MAAMC,QAAUA,GAGxBM,cAAa,SAACvH,EAAOE,GACnBF,EAAMgH,MAAME,YAAchH,EAAOC,SAGnCqH,QAAO,SAACxH,EAAOE,GACb,IAAAuH,EAA2BvH,EAAOC,QAA1BuH,EAAID,EAAJC,KAAMC,EAAQF,EAARE,SAEd3H,EAAMgH,MAAMlE,MAAM4E,EAAKjH,IAAMiH,EAC7B1H,EAAMgH,MAAMC,QAAQU,GAAUC,QAAQvV,KAAKqV,EAAKjH,KAGlDoH,WAAU,SAAC7H,EAAOE,GAChB,IAAA4H,EAA6B5H,EAAOC,QAA5B4H,EAAMD,EAANC,OAAQJ,EAAQG,EAARH,SAEhB3H,EAAMgH,MAAMC,QAAQU,GAAUC,QAAU5H,EAAMgH,MAAMC,QAAQU,GAAUC,QAAQta,QAC5E,SAACmT,GAAE,OAAKA,IAAOsH,KAEjB/H,EAAMgH,MAAMlE,MAAQkF,eAAKhI,EAAMgH,MAAMlE,MAAO,CAACiF,KAI/CE,oBAAmB,SAACjI,EAAOE,GACzB,IAAMgI,EAAShI,EAAOC,QAEtBH,EAAMV,WAAY,EAClBU,EAAMgH,MAAMC,QAAQiB,EAAOzH,IAAMyH,GAInCC,oBAAmB,SAACnI,EAAOE,GACzB,IAAQyH,EAAazH,EAAOC,QAApBwH,SACFS,EAAgBpI,EAAMgH,MAAMC,QAAQU,GAE1C3H,EAAMV,WAAY,EAClBU,EAAMgH,MAAMC,QAAUe,eAAKhI,EAAMgH,MAAMC,QAAS,CAACU,IACjD3H,EAAMgH,MAAMlE,MAAQkF,eAAKhI,EAAMgH,MAAMlE,MAAKiD,YAAMqC,EAAcR,UAC9D5H,EAAMgH,MAAME,YAAclH,EAAMgH,MAAME,YAAY5Z,QAAO,SAAC+a,GAAC,OAAKA,IAAMV,SAM7DxI,IAAa,QAEDA,EAAZwC,Q,4LC5Ff,IAkBMxC,EAAQC,YAAY,CACxBpS,KAAM,YACNqS,aApBmC,CACnCC,WAAW,EACX9S,OAAO,EACP8b,OAAQ,KACRC,uBAAwB,KACxBC,OAAQ,KACRC,OAAQ,KACRC,QAAS,KACTtC,KAAM,KACNuC,WAAY,KACZC,oBAAqB,EACrBC,mBAAmB,EACnBC,SAAS,EACTC,YAAa,EACbC,QAAS,KACTC,qBAAsB,MAMtBnJ,SAAU,CACRC,aAAY,SAACC,GACXA,EAAMV,WAAY,EAClBU,EAAMxT,OAAQ,GAGhB0c,WAAU,SAAClJ,GACTA,EAAMV,WAAY,GAGpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAGvBgJ,aAAY,SAACnJ,EAAOE,GAClBF,EAAMV,WAAY,EAClBU,EAAMsI,OAASpI,EAAOC,QAAQiJ,UAAUd,OACxCtI,EAAMwI,OAAStI,EAAOC,QAAQiJ,UAAUZ,OACxCxI,EAAMyI,OAASvI,EAAOC,QAAQiJ,UAAUX,OACxCzI,EAAMiJ,qBAAuB/I,EAAOC,QAAQiJ,UAAUH,qBACtDjJ,EAAMuI,uBAAyBrI,EAAOC,QAAQiJ,UAAUb,uBACxDvI,EAAM4I,oBAAsB1I,EAAOC,QAAQiJ,UAAUR,oBACrD5I,EAAM6I,kBAAoB3I,EAAOC,QAAQ0I,kBACzC7I,EAAMgJ,QAAU9I,EAAOC,QAAQiJ,UAAUJ,QACzChJ,EAAM+I,YACH7I,EAAOC,QAAQ4I,YAAYM,WAAanJ,EAAOC,QAAQ4I,YAAYO,MAAS,KAGjFC,WAAU,SAACvJ,EAAOE,GAChB,IAAAuH,EAAuDvH,EAAOC,QAA7CiG,GAAFqB,EAAPiB,QAAajB,EAAJrB,MAAM0C,EAAOrB,EAAPqB,QAGnBU,GAHsC/B,EAAVkB,WAAkBlB,EAANe,OAGjCtb,wBAAA,GACNkZ,GAAI,IACPqD,QAAY,OAAJrD,QAAI,IAAJA,OAAI,EAAJA,EAAMqD,UAAWC,IAAoBC,KAAOD,IAAoBE,KAAW,OAAJxD,QAAI,IAAJA,OAAI,EAAJA,EAAMqD,OACrFX,SAAa,OAAJ1C,QAAI,IAAJA,OAAI,EAAJA,EAAMqD,UAAWC,IAAoBC,MAAcvD,EAAK0C,WAG/DC,EAAcc,cAEZC,EAAYC,YAAQ/J,EAAMwI,QAAS,SAACwB,GACxC,OAAOb,YAAaa,EAAOR,MAM7BxJ,EAAMwI,OAASsB,EACf9J,EAAMsI,OAAS2B,YAAUT,GACzBxJ,EAAM0I,QAAUxI,EAAOC,QAAQuI,QAC/B1I,EAAMoG,KAAOoD,EACbxJ,EAAM2I,WAAazI,EAAOC,QAAQwI,WAClC3I,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ,KACdwT,EAAM8I,QAAUA,EAChB9I,EAAM+I,YAAeA,EAAYM,WAAaN,EAAYO,MAAS,KAGrEY,aAAY,SAAClK,GACXA,EAAM8I,SAAU,EAChB9I,EAAMV,WAAY,GAGpB6K,WAAU,SAACnK,GACTA,EAAMV,WAAY,EAClBU,EAAMxT,OAAQ,EACdwT,EAAMsI,OAAS,KACftI,EAAMuI,uBAAyB,KAC/BvI,EAAMwI,OAAS,KACfxI,EAAMyI,OAAS,KACfzI,EAAM0I,QAAU,KAChB1I,EAAMoG,KAAO,KACbpG,EAAM2I,WAAa,KACnB3I,EAAM4I,oBAAsB,EAC5B5I,EAAM6I,mBAAoB,EAC1B7I,EAAM8I,SAAU,EAChB9I,EAAM+I,YAAc,EACpB/I,EAAMgJ,QAAU,KAChBhJ,EAAMiJ,qBAAuB,SAMpB9J,IAAa,Q,GAGEA,EAAMwC,QAArBwI,W,+CCzGTC,GAAoB,CACxBpL,IAAK,OACLqL,YACAC,UAAW,SACXC,UAAW,IAGPC,GAAuB,CAC3BxL,IAAK,UACLqL,YACAC,UAAW,SACXC,UAAW,CAAC,SAAU,aAGlBE,GAAcC,YAAgB,CAClCC,QAASC,IACTC,QAASC,IACTC,SAAUC,IACVC,OAAQC,IACRC,UAAWC,IACXC,KAAMC,IACNC,aAAcC,IACdC,SAAUC,IACVC,UAAWC,IACX7K,QAAS8K,IACTC,mBAAoBC,IACpBC,KAAMC,IACNC,KAAMC,EACNC,KAAMC,EACNhJ,KAAMiJ,EACNC,SAAUC,IACVC,OAAQC,EACRC,SAAUC,IACVC,aAAcC,IACdC,aAAcC,IACdC,IAAKC,IACLC,aAAcC,KACdC,OAAQC,IACRC,WAAYC,IACZpE,UAAWqE,EACXC,OAAQC,IACRC,cAAeC,IACfC,QAASC,KACTC,qBAAsBA,KACtB5J,QAAS6J,YAAezD,GAAsB0D,KCzE1CC,GAAQC,YAAe,CAC3BC,QAASJ,YAAe7D,ID2EN,SAACpK,EAAYE,GAI/B,MAHoB,sBAAhBA,EAAOpP,OACTkP,OAAQlN,GAEH2X,GAAYzK,EAAOE,MC9E1BoO,WAAYC,YAAqB,CAC/BC,mBAAmB,EACnBC,gBAAgB,MAIdC,GAAYC,YAAaR,IAKvBS,GAAaT,GAAbS,SAEFC,GAAcC,IACdC,GAAc,WAAH,OAASC,gB,iCCvB1B,uDAGe,SAASC,IACtB,IAAM/V,EAAQgW,cAgBd,MAAO,CACLC,SAXeC,YAAclW,EAAMoB,YAAY+U,KAAK,OAYpDC,iBAXeF,YAAclW,EAAMoB,YAAY+U,KAAK,OAYpDE,UATaH,YAAclW,EAAMoB,YAAYC,GAAG,OAUhDiV,cATaJ,YAAclW,EAAMoB,YAAYC,GAAG,OAUhDpB,QAPqC,UAAvBD,EAAME,QAAQC,Q,iCClBhC,6RAeaoW,EAA2B,SAACjL,GACvC,OAAQA,GACN,KAAK3O,IAAqB6Z,OACxB,MAAO,CACLC,UAAW,SACXC,gBAAiB,SACjBC,iBAAkB,UAClBC,uBAAwB,UACxBC,OAAQ,gBACRC,cAAe,cACfC,UAAW,aACXC,iBAAkB,cAClBC,UAAW,aACXC,yBAA0B,cAE9B,KAAKva,IAAqBwa,SACxB,MAAO,CACLV,UAAW,WACXC,gBAAiB,WACjBC,iBAAkB,WAClBC,uBAAwB,WACxBC,OAAQ,cACRC,cAAe,eACfC,UAAW,eACXC,iBAAkB,eAClBC,UAAW,eACXC,yBAA0B,gBAE9B,KAAKva,IAAqBya,SACxB,MAAO,CACLX,UAAW,sBACXC,gBAAiB,sBACjBC,iBAAkB,wBAClBC,uBAAwB,wBACxBC,OAAQ,yBACRC,cAAe,4BACfC,UAAW,yBACXC,iBAAkB,4BAClBC,UAAW,0BACXC,yBAA0B,2BAE9B,KAAKva,IAAqB0a,cACxB,MAAO,CACLZ,UAAW,gBACXC,gBAAiB,gBACjBC,iBAAkB,iBAClBC,uBAAwB,iBACxBC,OAAQ,wBACRC,cAAe,qBACfC,UAAW,sBACXC,iBAAkB,qBAClBC,UAAW,mBACXC,yBAA0B,oBAE9B,QACE,MAAO,CACLT,UAAW,GACXC,gBAAiB,GACjBC,iBAAkB,GAClBC,uBAAwB,GACxBC,OAAQ,GACRC,cAAe,GACfC,UAAW,GACXC,iBAAkB,GAClBC,UAAW,GACXC,yBAA0B,MASrBI,EAAkC,WAC7C,OAAOf,EAAyB5Z,IAAqB6Z,SAM1Ce,EAAgC,SAACC,GAC5C,IAAMC,EAAgBH,IAElBI,EAAgC,CAClCjB,UAAW,GACXC,gBAAiB,GACjBC,iBAAkB,GAClBC,uBAAwB,GACxBC,OAAqB,OAAbY,QAAa,IAAbA,OAAa,EAAbA,EAAeX,cACvBA,cAAe,GACfC,UAAwB,OAAbU,QAAa,IAAbA,OAAa,EAAbA,EAAeT,iBAC1BA,iBAAkB,IAkBpB,OAfAQ,EAAWG,SAAQ,SAACxI,EAAWjW,GAC7B,IAAM0e,EAAoB1e,EAAI,EAAI,MAAQ,GACpC2e,EAAkBtB,EAAyBpH,GAEjDuI,EAAOjB,UAAYiB,EAAOjB,UAAYmB,GAA2B,OAAfC,QAAe,IAAfA,OAAe,EAAfA,EAAiBpB,WACnEiB,EAAOhB,gBAAkBgB,EAAOhB,gBAAkBkB,GAA2B,OAAfC,QAAe,IAAfA,OAAe,EAAfA,EAAiBnB,iBAC/EgB,EAAOf,iBACLe,EAAOf,iBAAmBiB,GAA2B,OAAfC,QAAe,IAAfA,OAAe,EAAfA,EAAiBlB,kBACzDe,EAAOd,uBACLc,EAAOd,uBAAyBgB,GAA2B,OAAfC,QAAe,IAAfA,OAAe,EAAfA,EAAiBjB,2BAGjEc,EAAOZ,cAAgB,OAASY,EAAOf,iBACvCe,EAAOV,iBAAmB,OAASU,EAAOf,iBAEnCe,GAGII,EAAmB,SAAClgB,GAC/B,OAAQA,GACN,IAAK,MACH,MAAO,2BACT,IAAK,MACH,MAAO,QACT,IAAK,MACH,MAAO,qBAET,QACE,MAAO,KAIAmgB,EAAqB,SAACC,GACjC,OAAOA,EACHA,EAAS5jB,QACP,SAAC6jB,GAAgB,OACfA,EAAE9c,uBAC0B,KAA5B8c,EAAE9c,uBACF,IAAI5D,KAAK0gB,EAAE9c,wBAA0B,IAAI5D,QAE7C,IAGO2gB,EAAgC,SAACF,GAC5C,OAAOA,EACHA,EAAS5jB,QACP,SAAC6jB,GAAgB,OACfA,EAAE9c,uBAC0B,KAA5B8c,EAAE9c,uBACF,IAAI5D,KAAK0gB,EAAE9c,wBAA0B,IAAI5D,MACzC0gB,EAAE/b,eAAiB+b,EAAEhc,mBAEzB,IAGOkc,EAAqB,SAACC,GACjC,OAAOA,EAAWA,EAAShkB,QAAO,SAAC0O,GAAgB,OAAK,IAAIvL,KAAKuL,EAAE3G,YAAc,IAAI5E,QAAU,IAGpF8gB,EAAmC,SAAC7D,GAAoB,IAAD8D,EAAAC,EAClE,MAAiC,MAApB,OAAN/D,QAAM,IAANA,GAAe,QAAT8D,EAAN9D,EAAQ3a,eAAO,IAAAye,OAAT,EAANA,EAAiBhkB,OAAyC,MAApB,OAANkgB,QAAM,IAANA,GAAe,QAAT+D,EAAN/D,EAAQ1Z,eAAO,IAAAyd,OAAT,EAANA,EAAiBjkB,Q,+UC5JpDkkB,EAAa1Y,YAAO2Y,IAAP3Y,EAAkB,SAAArK,GAAQ,MAAQ,CACnDmL,aAAc,EACd,kBAAmB,CACjBG,gBAHyCtL,EAALuK,MAGbE,QAAQ4B,KAAK,KACpCnJ,UAAW,OAUA,SAAS+f,EAActhB,GAA0D,IAAvDoY,EAAOpY,EAAPoY,QAASmJ,EAAUvhB,EAAVuhB,WAAYC,EAAQxhB,EAARwhB,SACpDrR,EAAkCiI,EAAlCjI,GAAIsI,EAA8BL,EAA9BK,YAAajZ,EAAiB4Y,EAAjB5Y,MAAOiiB,EAAUrJ,EAAVqJ,MAC1B7Y,EAAQgW,cACd,OACErgB,eAAC6iB,EAAU,CACTM,SAAUvR,IAAOoR,EACjBzlB,SAAU,SAAC6lB,EAAYD,GAAiB,OAAKF,EAASrR,EAAIuR,IAAU3jB,SAAA,CAEpEQ,eAACqjB,IAAgB,CAACC,WAAYhkB,cAACikB,IAAU,CAACrjB,GAAI,CAAEqL,MAAO,aAAgB/L,SAAA,CACrEF,cAACkkB,IAAa,CAAC3J,QAASA,IACxBva,cAACc,IAAU,CAACC,QAAQ,QAAQH,GAAI,CAAE+C,MAAO,MAAOwgB,WAAY,GAAIjkB,SAC7DyB,OAGLjB,eAAC0jB,IAAgB,CAACxjB,GAAI,CAAEiN,EAAG,EAAG/B,gBAAiBf,EAAME,QAAQ4B,KAAK,MAAO3M,SAAA,CACvEQ,eAACC,IAAG,CAAC6L,QAAQ,OAAOlL,cAAc,MAAM+iB,aAAa,OAAMnkB,SAAA,CACzDF,cAACW,IAAG,CAACC,GAAI,CAAE0jB,SAAU,KACrBtkB,cAACukB,IAA6B,CAC5B1lB,KAAM0b,EAAQ5Y,MACd6iB,SAAU,CAACjK,GACXkK,iBAAkBzkB,cAAC0kB,IAAgB,CAAC9J,YAAaA,IAAgB1a,SAEhE,SAACykB,GAAO,OAAK3kB,cAAC0kB,IAAgB,CAACC,QAASA,EAAS/J,YAAaA,UAGnE5a,cAAC4kB,IAAoB,CAAChB,MAAOA,U,kDCrBtB,SAASiB,EAAuBrkB,GAMb,IAADskB,EAAAC,EAL/BC,EAAaxkB,EAAbwkB,cACAC,EAAczkB,EAAdykB,eACA1K,EAAO/Z,EAAP+Z,QACAmJ,EAAUljB,EAAVkjB,WACAwB,EAAY1kB,EAAZ0kB,aAEQC,EAAaC,cAAbD,SACRE,EAAgCC,IAAM/mB,SAAcmlB,GAAW6B,EAAA9mB,YAAA4mB,EAAA,GAAxDxB,EAAQ0B,EAAA,GAAEC,EAAWD,EAAA,GACpBpE,EAAqBL,cAArBK,iBACFviB,EAAe,SAAC0T,EAAYmT,GAChCD,IAAYC,GAAanT,IAGrBoT,EAAqBC,cAE3B1mB,qBAAU,WACJ+lB,GACFC,MAED,CAACE,IAEJlmB,qBAAU,WACHykB,GAEL8B,EAAY9B,KACX,CAACA,IAGJzkB,qBAAU,WAAO,IAAD2mB,EAAAC,EACRC,EAAyC,QAA9BF,EAAGF,EAAmBK,gBAAQ,IAAAH,GAAM,QAANC,EAA3BD,EAA6B3N,YAAI,IAAA4N,OAAN,EAA3BA,EAAmChV,IACvD,GAAIiV,EAAa,CACf,IAAME,EAAQ,UAAA/kB,OAAa6kB,GACrBG,EAAUnd,SAASod,cAAcF,GAChC,OAAPC,QAAO,IAAPA,KAASE,eAAe,CAAEC,SAAU,SAAUC,MAAO,aAOtD,CAA4B,QAA5BvB,EAACY,EAAmBK,gBAAQ,IAAAjB,OAAA,EAA3BA,EAA6B7M,OAEjC,IAAMqO,EACJ5lB,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACumB,IAAU,CACTC,MACExmB,cAACc,IAAU,CAACC,QAAQ,YAAYC,cAAY,EAAAd,UAClC,OAAPqa,QAAO,IAAPA,OAAO,EAAPA,EAASiK,UAAW,iBAAmB,6BAG5CzS,OACE/R,cAACymB,IAAO,CAACD,MAAM,qCAAiCtmB,SAC9CF,cAAC0mB,IAAW,CAAC/B,QAAS,kBAAMM,KAAiB/kB,SAC1C8kB,IAAkB7D,EAAmBnhB,cAAC2mB,IAAQ,IAAM3mB,cAAC4mB,IAAc,UAK5E5mB,cAAC6mB,IAAS,CACRjmB,GAAI,CACF4L,QAAS,OACTlL,cAAe,SACfsH,OAAQsc,EAAe,qBAAuB,QAC9ChlB,SAEFQ,eAACC,IAAG,CAACiI,OAAO,OAAM1I,SAAA,CACR,OAAPqa,QAAO,IAAPA,GAAiB,QAAVwK,EAAPxK,EAASiK,gBAAQ,IAAAO,OAAV,EAAPA,EAAmBjjB,KAAI,SAAC0Y,GACvB,OACExa,cAACyjB,EAAc,CACblJ,QAASC,EAETkJ,WAAYG,EACZF,SAAU/kB,GAFL4b,EAAWlI,QAMd,OAAPiI,QAAO,IAAPA,OAAO,EAAPA,EAASqJ,QAAS5jB,cAAC4kB,IAAoB,CAAChB,MAAc,OAAPrJ,QAAO,IAAPA,OAAO,EAAPA,EAASqJ,gBAMjE,OACEljB,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAAC8mB,IAAO,CAACnjB,MAAM,OAAMzD,SACnBF,cAAC+mB,IAAM,CACLC,KAAMhC,EACNiC,QAAShC,EACTiC,WAAY,CAAEC,aAAa,GAC3B/W,WAAY,CAAExP,GAAI,CAAE+C,MAAO,MAAQzD,SAElComB,MAGLtmB,cAAC8mB,IAAO,CAACnjB,MAAM,SAAQzD,SACrBF,cAAC+mB,IAAM,CACLhmB,QAAQ,aACRimB,MAAOhC,EACP5U,WAAY,CACVxP,GAAI,CACF+C,MAAOqhB,EAAgB,EAAI,IAC3B3hB,SAAU,WAEZnD,SAEDomB,S,mLCrILc,GAAiD,CACrD,0CAA2C,CAAC,YAAa,OAAQ,QACjE,kCAAmC,CAAC,QACpC,mCAAoC,CAAC,iBAAkB,OACvD,2CAA4C,CAAC,SAalCC,GAAiB,SAAH7mB,GAA+C,IAAD8mB,EAAA9mB,EAAxCkK,WAAG,IAAA4c,EAAG,GAAEA,EAAEC,EAAO/mB,EAAP+mB,QACrCC,EAAW/c,aAAeC,GAAO,IAAI+c,IAAI/c,GAAO,KAC9CwH,EAAOkV,GAAwB,OAARI,QAAQ,IAARA,OAAQ,EAARA,EAAUE,QAEvC,SAASC,EAAgBC,QACVjjB,IAATuN,GAA+B,OAATA,GAAiC,IAAhBA,EAAKxN,QAE5C,CAAS,OAAR8iB,QAAQ,IAARA,OAAQ,EAARA,EAAUE,QAAQnoB,SAASqoB,EAAGF,UACzB,OAAJxV,QAAI,IAAJA,OAAI,EAAJA,EAAM3S,SAASqoB,EAAGC,KAAKllB,QACzB4kB,EAAQK,EAAGC,KAAKllB,KAAMilB,EAAGC,KAAK/oB,OAepC,OAVAG,qBAAU,WACR,GAAKwL,aAAeC,GAIpB,OADAnB,OAAOue,iBAAiB,UAAWH,GAC5B,WACLpe,OAAOwe,oBAAoB,UAAWJ,MAEvC,CAACjd,IAEG,I,qBC3BHsd,GAAYnd,aAAOlK,IAAPkK,CAAY,CAC5B2B,QAAS,OACTlL,cAAe,SACfgjB,SAAU,EACV1b,OAAQ,OACR0H,SAAU,SAGG,SAAS2X,GAAsBznB,GAIb,IAH/BkK,EAAGlK,EAAHkK,IACA/H,EAAInC,EAAJmC,KAGQulB,GAFA1nB,EAAR2nB,SAEyBC,aAAmB,CAAEC,OAAQ,OAA9CH,cAQR,OAR8D/a,aACnDka,GAAe,CACxB3c,IAAKA,EACL6c,QAAS,WACPW,EAAa,UAIZzd,aAAeC,GAQlB1K,cAACgoB,GAAS,CAAA9nB,SACP,CAACooB,IAAkBC,MAAOD,IAAkBE,OAAOjpB,SAASoD,GAC3D3C,cAACyoB,KAAmB,CAAC/d,IAAKA,EAAKge,QAAS/lB,IAAS2lB,IAAkBE,QAEnExoB,cAAC2oB,KAAe,CAACje,IAAKA,EAAKge,SAAS,MAVtC1oB,cAACgoB,GAAS,CAAA9nB,SACRF,cAAC4oB,KAAY,CAACpC,MAAM,8BAA8BqC,YAAY,O,+ICJvD,SAASC,GAAwBtoB,GAGb,IAADolB,EAAAC,EAAAkD,EAAAC,EAAAC,EAFhCC,EAAI1oB,EAAJ0oB,KACAC,EAAY3oB,EAAZ2oB,aAEQC,EAAuBC,eAAvBD,mBACAE,EAAW5I,cAAY,SAAC7O,GAAgB,OAAKA,EAAMiL,UAAnDwM,OACRhrB,EAAkCC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAA1CirB,EAAS/qB,EAAA,GAAEgrB,EAAYhrB,EAAA,GAC9BirB,EAAsClrB,oBAAS,GAAMmrB,EAAAjrB,YAAAgrB,EAAA,GAA9CE,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAClCG,EAAsCtrB,mBAA6B,MAAKurB,EAAArrB,YAAAorB,EAAA,GAAjEE,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAE5B/e,EAAQgW,eAERkJ,EAAWb,IAGXc,EAAsC,QAA9BtE,EAFaD,cAESI,gBAAQ,IAAAH,GAAM,QAANC,EAA3BD,EAA6B3N,YAAI,IAAA4N,OAAN,EAA3BA,EAAmCqE,SAEpDjrB,qBAAU,WAAO,IAADkrB,EAAAC,EAAAC,EACRC,EACI,MAARpB,GAAgB,CAACqB,IAAeC,UAAWD,IAAeE,QAAQlrB,SAAa,OAAJ2pB,QAAI,IAAJA,OAAI,EAAJA,EAAM5N,QAE7EoP,EAAkE,QAA3DP,EAAGQ,KAAgBC,MAAK,SAACC,GAAC,OAAKA,EAAEha,OAAgB,OAARoZ,QAAQ,IAARA,OAAQ,EAARA,EAAUa,mBAAQ,IAAAX,OAAA,EAAxDA,EAA0DrrB,MAEtEisB,GAAsB,EAM1B,IACc,OAAZ5B,QAAY,IAAZA,OAAY,EAAZA,EAAc6B,WACF,OAAZ7B,QAAY,IAAZA,OAAY,EAAZA,EAAc8B,aAAcC,IAAUC,OACtCT,IACI,OAAJxB,QAAI,IAAJA,OAAI,EAAJA,EAAM1lB,OACS,MAAX,OAAJ0lB,QAAI,IAAJA,OAAI,EAAJA,EAAM1lB,MAEN,IACEunB,EAAaK,WAAWlC,EAAK1lB,KAAKiF,QAAQ,IAAK,MAAQiiB,EACvD,MAAOpnB,GACPynB,GAAa,EAIjB,IAAMM,GACgE,QAApEjB,EAAAkB,aAAyBhC,EAAgB,OAARY,QAAQ,IAARA,OAAQ,EAARA,EAAUqB,WAAYpC,UAAa,IAAAiB,OAAA,EAApEA,EAAsE1lB,QAAS,EAG3E8mB,EAAwC,OAANlC,QAAM,IAANA,GAMrC,QAN2Ce,EAANf,EACpCnqB,QACA,SAACssB,GAAgB,IAAAC,EAAAC,EAAAC,EAAA,OACfH,EAAII,YAAcC,KAAgBC,UACrB,QAAbL,EAAAD,EAAIO,iBAAS,IAAAN,OAAA,EAAbA,EAAepQ,UAAW2Q,KAAcC,SAC3B,QAAbP,EAAAF,EAAIO,iBAAS,IAAAL,GAAU,QAAVC,EAAbD,EAAeQ,gBAAQ,IAAAP,OAAV,EAAbA,EAAyBQ,YAAwB,OAAZjD,QAAY,IAAZA,OAAY,EAAZA,EAAciD,mBACtD,IAAA/B,OAN2C,EAANA,EAOpCgC,MAAK,SAAC7d,EAAgB8d,GAAc,OACpC,IAAIhqB,KAAKkM,EAAE+d,OAAU,IAAIjqB,KAAKgqB,EAAEC,OAAU,GAAK,KAG7CC,GACY,OAAhBhB,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB9mB,QAAS,EAAI8mB,EAAiB,GAAK,KAEjDzB,GACW,OAAfyC,QAAe,IAAfA,OAAe,EAAfA,EAAiBD,SAAa,OAAJrD,QAAI,IAAJA,OAAI,EAAJA,EAAMuD,iBAAkBD,EAAgBD,OAASrD,EAAKuD,eAC5ED,EACA,KAMAE,EAAapC,GAAqBS,GAAcM,IAAuBtB,EAGvE4C,GAA4B,OAAZxD,QAAY,IAAZA,OAAY,EAAZA,EAAcyD,gBAAiBC,IAAaC,UAElE9C,EAAeD,GACfH,EAAe+C,GAAiBD,GAChClD,EAAakD,KACZ,CAACvD,EAAcG,IAMlB,OACE5oB,eAAAT,WAAA,CAAAC,SAAA,CACG6pB,GACC/pB,cAAC+sB,KAAK,CACJC,SAAS,OACTpsB,GAAI,CAAEqsB,QAASliB,EAAME,QAAQiiB,QAAQC,SACrCC,KAAMptB,cAACqtB,KAAI,CAACzsB,GAAI,CAAEqL,MAAOlB,EAAME,QAAQiiB,QAAQI,QAAWptB,SAAA,4DAAAe,OAEHssB,YACrDxD,EAAYwC,OACb,KAAAtrB,QACY,OAAX8oB,QAAW,IAAXA,GAAsB,QAAXhB,EAAXgB,EAAaiC,iBAAS,IAAAjD,OAAX,EAAXA,EAAwByE,SAAO,QAAAvsB,OACR,OAAX8oB,QAAW,IAAXA,OAAW,EAAXA,EAAaiC,UAAUwB,QAAQC,SAAQ,KAAAxsB,OAAe,OAAX8oB,QAAW,IAAXA,OAAW,EAAXA,EAAaiC,UAAUwB,QAAQE,UAAS,KAAAzsB,OAAe,OAAX8oB,QAAW,IAAXA,OAAW,EAAXA,EAAaiC,UAAUwB,QAAQG,UAC9H,GAAE,OAKXhE,GACCjpB,eAACqsB,KAAK,CACJC,SAAS,OACTpsB,GAAI,CAAEqsB,QAASliB,EAAME,QAAQiiB,QAAQC,SACrCC,KAAMptB,cAACqtB,KAAI,CAACzsB,GAAI,CAAEqL,MAAOlB,EAAME,QAAQiiB,QAAQI,QAAWptB,SAAA,CAE1DF,cAAC4tB,KAAU,CAAA1tB,SAAC,4CACZQ,eAACU,IAAK,CAACqB,UAAU,SAAQvC,SAAA,CAAC,gLAGxBF,cAACW,IAAG,CAAAT,SACFF,cAAC6tB,KAAa,CACZC,WAAW,SACX5D,SAAUA,EACViC,SAAUhD,EACV4E,WAAgB,OAAJ7E,QAAI,IAAJA,GAAa,QAATF,EAAJE,EAAMsE,eAAO,IAAAxE,OAAT,EAAJA,EAAe1W,aAMrCtS,cAACguB,GAAY,CACXhH,KAAMuC,EACNJ,aAAcA,EACdD,KAAMA,EACNjC,QA/CmB,WACvBuC,GAAa,IA+CTU,SAAUA,EACV6D,WAAgB,OAAJ7E,QAAI,IAAJA,GAAa,QAATD,EAAJC,EAAMsE,eAAO,IAAAvE,OAAT,EAAJA,EAAe3W,QAMnC,IAAM0b,GAAe,SAACpwB,GACpB,IAAQopB,EAA4DppB,EAA5DopB,KAAMC,EAAsDrpB,EAAtDqpB,QAASkC,EAA6CvrB,EAA7CurB,aAAcD,EAA+BtrB,EAA/BsrB,KAAMgB,EAAyBtsB,EAAzBssB,SAAU6D,EAAenwB,EAAfmwB,WAGrD,OACE/tB,cAACiuB,IAAM,CAACC,SAAS,KAAKlH,KAAMA,EAAMC,QAASA,EAASrmB,GAAI,CAAEyO,OAAQ,MAAOnP,SACvEF,cAACmuB,KAAa,CAACvtB,GAAI,CAAEiN,EAAG,EAAGugB,GAAI,GAAIluB,SACjCQ,eAACU,IAAK,CAACqB,UAAW,CAAE4rB,GAAI,SAAUC,GAAI,SAAUC,GAAI,OAAQruB,SAAA,CAC1DF,cAACW,IAAG,CACFoN,UAAU,MACVygB,IAAK,oDACL5tB,GAAI,CAAE6tB,UAAW,IAAK9qB,MAAO,UAE/BjD,eAACU,IAAK,CAAAlB,SAAA,CACJF,cAAC0uB,KAAW,CAAAxuB,SAAC,0BACbQ,eAACU,IAAK,CAACqB,UAAU,SAAS6I,QAAS,EAAG1K,GAAI,CAAEiN,EAAG,EAAGugB,GAAI,GAAIluB,SAAA,CACxDQ,eAACI,IAAU,CAACC,QAAQ,QAAOb,SAAA,CAAC,sDAC4B,OAAZipB,QAAY,IAAZA,OAAY,EAAZA,EAAcxnB,MAAM,gIAIhE3B,cAAC2uB,IAAI,CAAC/tB,GAAI,CAAE8K,QAAS,EAAG/H,MAAO,eAAgBzD,SAC7CF,cAAC4uB,KAAY,CAAC3D,UAAW9B,EAAa8B,UAAWkB,SAAUjD,EAAMvnB,MAAO,gBAG5EjB,eAACmuB,KAAa,CAACjuB,GAAI,CAAEkuB,eAAgB,UAAW5uB,SAAA,CAC9CF,cAAC+uB,IAAM,CAACpK,QAASsC,EAASlmB,QAAQ,OAAMb,SAAC,cAGzCF,cAAC6tB,KAAa,CACZC,WAAW,SACX5D,SAAUA,EACViC,SAAUhD,EACVlC,QAASA,EACT8G,WAAYA,kB,UCtLtBiB,GAAenkB,YAAO,MAAPA,EAAc,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,MAAQ,CACjDW,QAASX,EAAMO,QAAQ,KACvB5H,UAAWqH,EAAMO,QAAQ,IACzBK,aAAcZ,EAAMa,MAAMD,aAC1BG,gBAAiBf,EAAME,QAAQc,WAAWC,YAe/BijB,GAAoB,SAAH9sB,GAKC,IAJ7B+mB,EAAI/mB,EAAJ+mB,KACAgG,EAAiB/sB,EAAjB+sB,kBACA/F,EAAYhnB,EAAZgnB,aAAYgG,EAAAhtB,EACZitB,iBAAS,IAAAD,GAAQA,EAGjB,GAAIhG,EAAayD,eAAiBC,IAAaC,UAC7C,OACEpsB,eAACU,IAAK,CAACR,GAAI,CAAE6B,UAAW,SAAUkB,MAAO,OAAQiF,OAAQ,QAAS1I,SAAA,EAC9DkvB,GAAapvB,cAAC8oB,GAAwB,CAACK,aAAcA,EAAcD,KAAMA,IAC3ElpB,cAACioB,GAAsB,CACrBvd,IAAKye,EAAakG,UAAU3kB,IAC5B/H,KAAM2lB,IAAkBgH,eAOhC,QAAa3qB,IAATukB,EAAoB,OAAOlpB,cAAAC,WAAA,IAG/B,GAAa,OAATipB,GAAiBA,EAAK5N,SAAWiP,IAAegF,OAClD,OACEvvB,cAAC4oB,KAAY,CACXjgB,IAAI,0DACJ6d,MAAO,8DACPqC,YAAa,oEAInB,IACE,CAAC0B,IAAeE,OAAQF,IAAeC,UAAWD,IAAeiF,UAAUjwB,SAAS2pB,EAAK5N,QAwDzF,OACEtb,cAAC4oB,KAAY,CACXjgB,IAAI,0DACJ6d,MAAO,yDACPqC,YAAa,oEA1DjB,IAAM4G,EACJvG,EAAK5N,SAAWiP,IAAeiF,SAAe,OAAJtG,QAAI,IAAJA,OAAI,EAAJA,EAAMwG,cAAqB,OAAJxG,QAAI,IAAJA,OAAI,EAAJA,EAAMyG,YAEnE/pB,EACJsjB,EAAK5N,SAAWiP,IAAeiF,SAAWtG,EAAKtjB,YAAcsjB,EAAK0G,aACpE,OAAQzG,EAAayD,cACnB,KAAKC,IAAagD,SAClB,KAAKhD,IAAaiD,MAChB,OACEpvB,eAACU,IAAK,CAACR,GAAI,CAAE6B,UAAW,SAAUkB,MAAO,OAAQiF,OAAQ,QAAS1I,SAAA,EAC9DkvB,GAAapvB,cAAC8oB,GAAwB,CAACK,aAAcA,EAAcD,KAAMA,IAC3ElpB,cAAC+vB,GAAY,CACX5G,aAAcA,EACdD,KAAMA,EACNgG,kBAAmBA,EACnBtpB,YAAaA,EACb6pB,cAAeA,OAKvB,KAAK5C,IAAamD,YAChB,OACEhwB,cAAC+vB,GAAY,CACX5G,aAAcA,EACdD,KAAMA,EACNgG,kBAAmBA,EACnBtpB,YAAaA,EACb6pB,cAAeA,IAIrB,KAAK5C,IAAaoD,gBAChB,OACEjwB,cAACkwB,GAAmB,CAClB/G,aAAcA,EACdD,KAAMA,EACNgG,kBAAmBA,EACnBtpB,YAAaA,EACb6pB,cAAeA,IAGrB,QACE,OACEzvB,cAACmwB,GAAS,CACRhH,aAAcA,EACdD,KAAMA,EACNgG,kBAAmBA,EACnBtpB,YAAaA,EACb6pB,cAAeA,MAyBrBM,GAAe,SAAH3tB,GAMD,IALf8mB,EAAI9mB,EAAJ8mB,KACAgG,EAAiB9sB,EAAjB8sB,kBACA/F,EAAY/mB,EAAZ+mB,aACAsG,EAAartB,EAAbqtB,cACA7pB,EAAWxD,EAAXwD,YAEA,OACElF,eAACU,IAAK,CACJqB,UAAW,CAAE4rB,GAAI,SAAUC,GAAI,OAC/B8B,QACEpwB,cAACkO,IAAO,CACNmiB,YAAanH,EAAK5N,SAAWiP,IAAeC,UAAY,WAAa,aACrE8F,UAAQ,IAGZhlB,QAAS,CAAE+iB,GAAI,EAAGC,GAAI,EAAGC,GAAI,GAC7B5qB,MAAO,OACPiF,OAAQ,OAAO1I,SAAA,CAEfQ,eAACC,IAAG,CAAAT,SAAA,CACe,MAAhBgpB,EAAKsE,SACJ9sB,eAACC,IAAG,CAAC6L,QAAQ,OAAOlL,cAAc,MAAMC,WAAW,SAASX,GAAI,CAAEC,GAAI,GAAIX,SAAA,CACxEF,cAACuwB,IAAM,CACL/B,IAAG,2BAAAvtB,OACyB,QAA1BioB,EAAKsE,QAAQC,SAAqB,cAAgB,aAAY,QAEhE7sB,GAAI,CAAE+C,MAAO,GAAIiF,OAAQ,GAAI4nB,GAAI,KAGnCxwB,cAACc,IAAU,CAACiN,UAAU,OAAOhN,QAAQ,UAASb,SAAA,GAAAe,OACxCioB,EAAKsE,QAAQE,UAAS,KAAAzsB,OAAIioB,EAAKsE,QAAQG,YAE7C3tB,cAACW,IAAG,CAAC6L,QAAQ,OAAO8X,SAAU,IAC9BtkB,cAACc,IAAU,CAACiN,UAAU,OAAOhN,QAAQ,UAAUH,GAAI,CAAEyP,GAAI,GAAInQ,SAC1DuwB,YAAMhB,EAAe,sBAK5BzvB,cAACgvB,GAAY,CAACpuB,GAAI,CAAEqL,MAAO,WAAYghB,QAAS,mBAAoB/sB,SAClEF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SACzBF,cAAC6O,IAAQ,CAAC3O,SAAU0F,QAGxB5F,cAAC0wB,IAAsB,CACrBC,MAAOzH,EAAKyH,MAAMxxB,QAChB,SAACyxB,GAAC,OACAA,EAAEC,WAAaC,IAAStG,WACvB,CAACD,IAAeE,OAAQF,IAAeiF,UAAUjwB,SAAS2pB,EAAK5N,SAC9D,CAACwV,IAAStG,UAAWsG,IAASC,SAASxxB,SAASqxB,EAAEC,kBAI5D7wB,cAACW,IAAG,CAACC,GAAI,CAAE+C,MAAO,SAAUzD,SAC1BF,cAACgxB,GAAS,CAAC7H,aAAcA,EAAcD,KAAMA,EAAMgG,kBAAmBA,UAUxEgB,GAAsB,SAAH5iB,GAMR,IALf4b,EAAI5b,EAAJ4b,KACAgG,EAAiB5hB,EAAjB4hB,kBACA/F,EAAY7b,EAAZ6b,aACAsG,EAAaniB,EAAbmiB,cACWniB,EAAX1H,YAEA,OACElF,eAACU,IAAK,CAACC,IAAI,OAAMnB,SAAA,CACfF,cAACc,IAAU,CAACC,QAAQ,YAAYH,GAAI,CAAEyP,GAAI,GAAInQ,SAAC,2CAG/CF,cAACW,IAAG,CAACC,GAAI,CAAEyP,GAAI,GAAInQ,SACjBF,cAACgxB,GAAS,CAAC7H,aAAcA,EAAcD,KAAMA,EAAMgG,kBAAmBA,MAGxExuB,eAACI,IAAU,CAACC,QAAQ,UAAUH,GAAI,CAAEyP,GAAI,GAAInQ,SAAA,CAAC,gBAChCuwB,YAAMhB,EAAe,wBAUlCU,GAAY,SAAH3iB,GAME,IALf0b,EAAI1b,EAAJ0b,KACAgG,EAAiB1hB,EAAjB0hB,kBACA/F,EAAY3b,EAAZ2b,aACAsG,EAAajiB,EAAbiiB,cACWjiB,EAAX5H,YAEA,OACElF,eAACU,IAAK,CAACC,IAAI,OAAMnB,SAAA,CACfF,cAACgxB,GAAS,CAAC7H,aAAcA,EAAcD,KAAMA,EAAMgG,kBAAmBA,IACtExuB,eAACI,IAAU,CAACC,QAAQ,UAAUH,GAAI,CAAEyP,GAAI,GAAInQ,SAAA,CAAC,iBAC/BuwB,YAAMhB,EAAe,wBASnCuB,GAAY,SAAHtjB,GAA2E,IAArEwb,EAAIxb,EAAJwb,KAAMC,EAAYzb,EAAZyb,aAAc+F,EAAiBxhB,EAAjBwhB,kBAEvC,MAAK,CAAC3E,IAAeC,WAAWjrB,SAAS2pB,EAAK5N,QAG5C5a,eAACC,IAAG,CAAAT,SAAA,CACDipB,EAAa6B,SACZhrB,cAAC4uB,KAAY,CAAC3D,UAAW9B,EAAa8B,UAAWkB,SAAUjD,EAAMvnB,MAAO,WAG1E3B,cAACW,IAAG,CAACC,GAAI,CAAE0jB,SAAU,KACpB4K,GACClvB,cAAC0wB,IAAsB,CACrBC,MAAO,CACL,CACEM,SAAU/B,EAAkBgC,MAAMD,SAClCE,SAAUC,IAASC,eACnB/e,IAAK,GACLue,SAAUC,IAAStG,UACnB5oB,KAAM,GACNoqB,UAAW,CACT1Z,GAAI,EACJ1M,YAAa,GACb0rB,UAAWC,IAAcC,IACzB9mB,IAAK,GACL+mB,MAAM,GAERA,MAAM,MAKdzxB,cAACW,IAAG,CAACC,GAAI,CAAE8wB,WAAY,QAASxxB,SAC7BipB,EAAawH,MACXxxB,QAAO,SAACyxB,GAAC,OAAKA,EAAEO,WAAaC,IAASO,OAASf,EAAEgB,YAAcC,IAAerH,aAC9E1oB,KAAI,SAACgwB,GAAK,OACT9xB,cAAC+xB,KAAa,CAACvU,UAAWsU,GAAYA,EAAMxf,YAlCQtS,cAAAC,WAAA,KC1PnD+xB,GAA2B,SAAHxxB,GAGC,IAFpC2rB,EAAQ3rB,EAAR2rB,SACAhD,EAAY3oB,EAAZ2oB,aAEM8I,EAAYC,iBAAO,MACzB5zB,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GASpB,OAAI2qB,EAAayD,eAAiBC,IAAaC,UAAkB9sB,cAAAC,WAAA,SAKnD0E,GAAZwnB,GACY,MAAZA,GACA,CAAC5B,IAAeiF,SAAUjF,IAAeE,QAAQlrB,SAAS4sB,EAAS7Q,QAGjE5a,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAAC+uB,IAAM,CAACqD,IAAKH,EAAWlxB,QAAQ,WAAWkL,MAAM,UAAU0Y,QAlB9C,WACjBwN,GAAQ,IAiB2EjyB,SAAC,kDAGhFF,cAAC4P,IAAW,CACVoX,KAAMA,EACNC,QApBY,WAClBkL,GAAQ,IAoBFE,SAAUJ,EAAUvzB,QACpBkC,GAAI,CAAE+C,MAAO,KAAMzD,SAEnBQ,eAACmmB,IAAS,CAACjmB,GAAI,CAAEgI,OAAQ,KAAM1I,SAAA,CAC7BF,cAACW,IAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQjL,WAAY,SAAU+wB,GAAI,EAAGC,GAAI,KAAMryB,SACjEF,cAACW,IAAG,CAACC,GAAI,CAAE0jB,SAAU,GAAIpkB,SACvBF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAC5BisB,EAAS7Q,SAAWiP,IAAeiF,SAChC,2BACA,mCAIVxvB,cAACkO,IAAO,IACRlO,cAACW,IAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SAChBF,cAACivB,GAAiB,CAAC/F,KAAMiD,EAAUhD,aAAcA,EAAciG,WAAW,cAO/EpvB,cAAAC,WAAA,K,kBC1DM,SAASuyB,GAAeva,GACrC,IAAA3Z,EAA0BC,qBAOtBC,EAAAC,YAAAH,EAAA,GAPGuT,EAAKrT,EAAA,GAAEi0B,EAAQj0B,EAAA,GAStBS,qBAAU,WACR,GAAa,OAATgZ,EAAJ,CAEA,IAAMiS,EAAwC,KAA7BjS,EAAKiS,SAASqB,WAAoB,KAAOtT,EAAKiS,SAEzDwI,EAAcC,IACdC,EAASC,IAEfJ,EAAS,CACPvI,SAAUA,EACV4I,WAAYJ,EAAYI,WACxB3J,aAAcuJ,EAAYvJ,aAC1B3L,UAAWkV,EAAYlV,UACvB7b,MAAOixB,EAAOjxB,MACdiE,YAAagtB,EAAOhtB,iBAErB,CAACqS,IAEJ,IAAM0a,EAAkB,WAAO,IAADI,EAC5B,OAAQ9a,EAAKtV,MACX,KAAK2lB,IAAkBkJ,IAOvB,KAAKlJ,IAAkB0K,KACrB,MAAO,CACL7J,aAAc,KACd2J,WAAa7a,EAA2Bgb,MAAM3gB,GAAK,EACnDkL,UAAYvF,EAA4Bgb,OAG5C,KAAK3K,IAAkB4K,SACrB,IAAM/J,EAAgBlR,EAA+BkR,aAEjD8J,EAA0B,QAArBF,EAAG5J,EAAawH,aAAK,IAAAoC,OAAA,EAAlBA,EAAoB5zB,QAAO,SAACyxB,GAAC,IAAAuC,EAAA,OAC3B,QAD2BA,EACvCvC,EAAEwC,kBAAU,IAAAD,OAAA,EAAZA,EAAc5zB,SAASqxB,EAAEK,SAASoC,MAAM,KAAK,OAC7C,GAGF,YADc1uB,IAAVsuB,IAAqBA,EAAQ9J,IAA4B,OAAZA,QAAY,IAAZA,OAAY,EAAZA,EAAcwH,MAAM,KAC9D,CACLxH,aAAcA,EACd2J,aAAYG,EACZzV,UAAWyV,GAGjB,MAAO,CAAE9J,aAAc,KAAM2J,YAAY,EAAOtV,UAAW,OAGvDqV,EAAW,WAAO,IAADS,EAAAC,EACrB,OAAQtb,EAAKtV,MACX,KAAK2lB,IAAkBC,MACvB,KAAKD,IAAkBE,MACvB,KAAKF,IAAkBkL,IACvB,KAAKlL,IAAkBkJ,IACvB,KAAKlJ,IAAkBmL,OACrB,IAAMR,EAAShb,EAA4Bgb,MAC3C,MAAO,CACLtxB,MAAOsxB,EAAMzM,MACb5gB,aACmB,QAAjB0tB,EAAAL,EAAMrtB,mBAAW,IAAA0tB,OAAA,EAAjBA,EAAmBhpB,kBAA6B,QAAhBipB,EAAKN,EAAMzM,aAAK,IAAA+M,OAAA,EAAXA,EAAajpB,eAAgB,GAAK2oB,EAAMrtB,aAGnF,QACE,MAAO,CAAEjE,MAAOsW,EAAKtW,MAAOiE,YAAa,MAI/C,OAAA7G,aAAA,GACK8S,G,aC3FQ,SAAS6hB,GAAelzB,GAAuB,IAADmzB,EAAAnzB,EAAnBwqB,QACxC,YAD+C,IAAA2I,GAAQA,EAErD3zB,cAAAC,WAAA,IAEAD,cAAC4zB,KAAK,CAAC7yB,QAAQ,WAAWkL,MAAM,UAAS/L,SAAC,iB,4CCHxC2zB,GAAYhpB,YAAOipB,KAAPjpB,EAAmB,SAAArK,GAAQA,EAALuK,MAAK,MAAQ,CACnDgpB,kBAAmB,MACnBC,cAAe,YACfC,wBAAyB,EACzBC,WAAY,OACZtrB,OAAQ,OACRjF,MAAO,OACPgI,aAAc,OACda,QAAS,OACTsiB,eAAgB,SAChBvtB,WAAY,aAQC4yB,GAHa,SAAHhyB,GAA8D,IAAxDjC,EAAQiC,EAARjC,SAAiB6O,GAAL5M,EAAFvB,GAAYiP,aAAA1N,EAAA2N,KACnD,OAAO9P,cAAC6zB,GAAS90B,0BAAA,GAAKgQ,GAAK,IAAA7O,SAAGA,M,8DCJjB,SAASk0B,GAAW5zB,GAOb,IANpB3B,EAAI2B,EAAJ3B,KACA2nB,EAAKhmB,EAALgmB,MACAqC,EAAWroB,EAAXqoB,YACAlgB,EAAGnI,EAAHmI,IACA0pB,EAAQ7xB,EAAR6xB,SACAgC,EAAW7zB,EAAX6zB,YAEAC,EAAgCC,aAAgB11B,EAAMw1B,GAAYG,EAAA/1B,YAAA61B,EAAA,GAA3DG,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAC5Bl2B,EAAgCC,mBAASk2B,GAASj2B,EAAAC,YAAAH,EAAA,GAA3Cq2B,EAAQn2B,EAAA,GAAEo2B,EAAWp2B,EAAA,GAW5B,OACEkC,eAACkP,IAAW,CACVoX,KAAM2N,EACN1N,QAZoB,WACtB2N,GAAY,IAYVvC,SAAkB,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAU3zB,QACpBkC,GAAI,CAAE+C,MAAO,KAAMzD,SAAA,CAEnBF,cAAC4oB,KAAY,CAACiM,WAAoB,KAARlsB,EAAY6d,MAAOA,EAAOqC,YAAaA,EAAalgB,IAAKA,IACnF3I,cAACkO,IAAO,IACRlO,cAACW,IAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQjL,WAAY,SAAU+wB,GAAI,EAAGC,GAAI,KAAMryB,SACjEF,cAACW,IAAG,CAACC,GAAI,CAAE0jB,SAAU,GAAIpkB,SACvBF,cAAC80B,KAAgB,CACfC,QAAS/0B,cAACg1B,KAAQ,CAACC,SAAUR,EAAUx2B,SAjB5B,WACnB22B,GAAY,GACZF,GAAY,MAgBJ/yB,MAAM,uC,yBC9BH,SAASuzB,GAA2B10B,GAIb,IAHpCkK,EAAGlK,EAAHkK,IAEAyqB,GADQ30B,EAAR2nB,SACO3nB,EAAP20B,SAEQjN,EAAiBE,aAAmB,CAAEC,OAAQ,OAA9CH,aASR,OAT8D/a,aACnDka,GAAe,CACxB3c,IAAKA,EACL6c,QAAS,SAAC5kB,EAAc7D,GACtBopB,EAAa,MACA,SAATvlB,GAAiBwyB,EAAQr2B,OAI5B2L,aAAeC,GAIlB1K,cAACW,IAAG,CACFC,GAAI,CACF4L,QAAS,OACTlL,cAAe,SACfgjB,SAAU,EACV1b,OAAQ,OACR0H,SAAU,UACVpQ,SAEFF,cAAC2oB,KAAe,CAACje,IAAKA,EAAKge,SAAS,MAZ/B1oB,cAAC4oB,KAAY,CAACpC,MAAM,GAAGqC,YAAY,gC,0BCgM/BuM,GAxLoB,SAAH50B,GAGQ,IAFtC60B,EAAY70B,EAAZ60B,aACAC,EAAY90B,EAAZ80B,aAEQnU,EAAqBL,cAArBK,iBACAxB,EAAY0J,eAAZ1J,QACF0S,EAAWH,iBAAO,MACxB5zB,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GACpBirB,EAAgClrB,oBAAS,GAAMmrB,EAAAjrB,YAAAgrB,EAAA,GAAxC8L,EAAQ7L,EAAA,GAAE8L,EAAW9L,EAAA,GAC5BG,EAAsCtrB,oBAAS,GAAMurB,EAAArrB,YAAAorB,EAAA,GAA9C4L,EAAW3L,EAAA,GAAE4L,EAAc5L,EAAA,GAClC6L,EAAkCp3B,oBAAS,GAAMq3B,EAAAn3B,YAAAk3B,EAAA,GAA1CE,EAASD,EAAA,GAAEE,EAAYF,EAAA,GACxBG,GAAwB,OAAZV,QAAY,IAAZA,OAAY,EAAZA,EAAc/Z,UAAWC,IAAoBya,WACzDC,GAAkC,OAAZZ,QAAY,IAAZA,OAAY,EAAZA,EAAc1yB,QAAS2lB,IAAkB4K,SAE/DgD,KAA+B,OAAZb,QAAY,IAAZA,OAAY,EAAZA,EAAcc,gBAEjCC,EAAa,WACjBjE,GAAQ,IAGJkE,EAAc,WAClBlE,GAAQ,IAGJmE,EAAqB,WACzBZ,GAAe,IAGXa,EAAiB,WACrBf,GAAY,GACZM,GAAa,IAoBf,GAPA72B,qBAAU,WACJ+nB,IACFwO,GAAY,GACZM,GAAa,MAEd,CAAC9O,KAECiP,EAAqB,OAAOj2B,cAAAC,WAAA,IAEjC,IAAKo1B,EAAc,OAAOr1B,cAAAC,WAAA,IAE1B,IAAK81B,GAAaG,EAAkB,CAAC,IAADM,EAAAC,EAE5BC,IADmC,QAA3BF,EAAAnB,EAAac,sBAAc,IAAAK,OAAA,EAA3BA,EAA6BG,QAAS,GACzB,EAAI,aAAe,YACxCC,EAAavB,EAAmCuB,UAEtD,OACEl2B,eAACC,IAAG,CAACC,GAAI,CAAE8K,QAAS,EAAG9C,OAAQ,IAAK1I,SAAA,CACjCihB,EACCnhB,cAAC0mB,IAAW,CAACzkB,UAAW20B,EAAWjS,QAASyR,EAAWl2B,SACrDF,cAAC62B,KAAW,MAGd72B,cAAC+uB,IAAM,CACL9sB,UAAW20B,EACX71B,QAAQ,YACRa,KAAK,QACLwwB,IAAKC,EACL1N,QAASyR,EACTx1B,GAAI,CAAE8L,WAAY,UAAWxM,SAC9B,6BAIHF,cAACo0B,GAAW,CACVC,aAAcuC,EACdpQ,MAAM,yCACNqC,YAAY,6GACZlgB,IAAK,kDACL9J,KAAI,oBACJwzB,SAAUA,IAEZ3xB,eAACo2B,GAAkB,CAAC9P,KAAMA,EAAMuO,SAAUA,EAAUc,YAAaA,EAAYn2B,SAAA,CAC1Eq1B,GACCv1B,cAACk1B,GAA2B,CAC1BxqB,KAAgC,QAA3B+rB,EAAApB,EAAac,sBAAc,IAAAM,OAAA,EAA3BA,EAA6B/rB,MAAO,GACzCyd,SAAUkN,EAAa/iB,GACvB6iB,QAzDI,SAACr2B,GACD,KAAVA,GACFw2B,EAAa,MAAM,GACnBI,GAAe,KAEfF,GAAY,GACZM,GAAa,QAsDPP,IAAaM,GACbn1B,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACmuB,KAAa,CAAAjuB,SACZF,cAAC4oB,KAAY,CACXpC,MAAO,oDACPqC,YACE,sMAEFlgB,IAAK,4DAGT3I,cAAC6uB,KAAa,CAACjuB,GAAI,CAAEkuB,eAAgB,UAAW5uB,SAC9CF,cAAC+uB,IAAM,CAAChuB,QAAQ,YAAY4jB,QAAS4R,EAAer2B,SACjDw2B,SAKRb,GACCn1B,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACmuB,KAAa,CAAAjuB,SACZF,cAAC2uB,IAAI,CAAAzuB,SACHQ,eAACqsB,KAAK,CAACC,SAAS,QAAO9sB,SAAA,CACrBF,cAAC4tB,KAAU,CAAA1tB,SAAC,iDAAgD,gJAMlEQ,eAACmuB,KAAa,CAACjuB,GAAI,CAAEkuB,eAAgB,UAAW5uB,SAAA,CAC9CF,cAAC+uB,IAAM,CAACpK,QAAS4R,EAAer2B,SAAC,oBACjCF,cAAC+uB,IAAM,CAAChuB,QAAQ,YAAY4jB,QAAS0R,EAAYn2B,SAAC,kCAWhE,OAAIg2B,EAEAx1B,eAACC,IAAG,CAAAT,SAAA,CACFF,cAACW,IAAG,CAACC,GAAI,CAAE8K,QAAS,EAAG9C,OAAQ,IAAK1I,SAClCF,cAAC4zB,KAAK,CAAC7yB,QAAQ,QAAQkL,MAAM,UAAS/L,SACpCQ,eAACU,KAAK,CAACqB,UAAW,MAAOlB,WAAY,SAASrB,SAAA,CAC5CF,cAAC+2B,KAAY,IAAG,IAAC/2B,cAACW,IAAG,CAAAT,SAAEihB,EAAmB,GAAK,uBAIpDsU,GACC/0B,eAACo2B,GAAkB,CAAC9P,KAAMyO,EAAaF,UAAU,EAAOc,YAAaC,EAAmBp2B,SAAA,CACtFF,cAACmuB,KAAa,CAAAjuB,SACZF,cAAC2uB,IAAI,CAAAzuB,SACHQ,eAACqsB,KAAK,CAACC,SAAS,UAAS9sB,SAAA,CACvBF,cAAC4tB,KAAU,CAAA1tB,SAAC,yCAA2C,mEAK7DF,cAAC6uB,KAAa,CAACjuB,GAAI,CAAEkuB,eAAgB,UAAW5uB,SAC9CF,cAAC+uB,IAAM,CAAChuB,QAAQ,YAAY4jB,QAAS2R,EAAmBp2B,SAAC,sBAUnEF,cAACg3B,KAAW,CAACp1B,KAAK,QAAO1B,SACvBF,cAACymB,IAAO,CAACD,MAAM,2GAAoFtmB,SACjGF,cAAC80B,KAAgB,CACfC,QACE/0B,cAACi3B,KAAM,CACLhC,QAASc,EACT93B,SAAUq3B,EACVrpB,MAAO8pB,EAAY,UAAY,UAC/B9zB,UAAiB,OAAP0d,QAAO,IAAPA,OAAO,EAAPA,EAASuX,cAAeC,KAAWC,QAGjDz1B,MAAOwf,EAAmB,GAAK,qBAenC2V,GAAqB,SAAH30B,GAA0D,IAApDjC,EAAQiC,EAARjC,SAAU8mB,EAAI7kB,EAAJ6kB,KAAMuO,EAAQpzB,EAARozB,SAAUc,EAAWl0B,EAAXk0B,YACtD,OACE31B,eAACutB,IAAM,CACLjH,KAAMA,EACNkH,SAAS,KACTxsB,WAAS,EACTd,GAAE7B,aAAA,GAAQw2B,GAAY,CAAE,mCAAoC,CAAE3sB,OAAQ,UAAc1I,SAAA,CAEpFF,cAACq3B,KAAoB,CAAC/kB,GAAG,UAAU2U,QAASoP,EAAa7P,MAAO,6BAC/DtmB,MCzLQ,SAASo3B,GAAuB92B,GAQb,IAPhC60B,EAAY70B,EAAZ60B,aACAkC,EAAY/2B,EAAZ+2B,aACArS,EAAY1kB,EAAZ0kB,aACAsS,EAAWh3B,EAAXg3B,YACAC,EAAMj3B,EAANi3B,OACAnC,EAAY90B,EAAZ80B,aACAoC,EAAel3B,EAAfk3B,gBAEQvW,EAAqBL,cAArBK,iBACRwW,EAA6CnF,GAAe6C,GAApD1zB,EAAKg2B,EAALh2B,MAAOiE,EAAW+xB,EAAX/xB,YAAaujB,EAAYwO,EAAZxO,aACpByO,EAAevO,eAAfuO,WAyBR,OACEl3B,eAACC,IAAG,CACFC,GAAI,CACF4L,QAAS,OACTjL,WAAY,SACZs2B,UAAW,GACXnsB,QAAS,MACTI,gBAAiB,QAEnBwG,GAAG,kBAAiBpS,SAAA,EAElBs3B,GAAerW,IACfnhB,cAACymB,IAAO,CAACD,MAAM,qCAAiCtmB,SAC9CF,cAACW,IAAG,CAAAT,SACFF,cAAC0mB,IAAW,CAAC/B,QAAS+S,EAAgBx3B,SACpCF,cAAC83B,IAAe,UAKxBp3B,eAACC,IAAG,CAACC,GAAI,CAAEyP,GAAI,EAAG1M,MAAOwlB,EAAe,MAAQ,MAAOhF,WAAY,GAAIjkB,SAAA,CACrEF,cAACc,IAAU,CAACC,QAAQ,QAAQgN,UAAW,MAAM7N,SAC1CyB,IAEc,KAAhBiE,GAAsB5F,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAE0F,IAErDgyB,GACC53B,cAACc,IAAU,CAACC,QAAQ,UAAUH,GAAI,CAAEqL,MAAO,iBAAkBO,QAAS,SAAUtM,SAC7EipB,EAAeA,EAAaiD,QAAsB,OAAZiJ,QAAY,IAAZA,OAAY,EAAZA,EAAc/iB,KAIxD6W,GAvDsB,WAC3B,IAAMgD,EAAuB,OAAZhD,QAAY,IAAZA,OAAY,EAAZA,EAAc4O,WAAsB,OAAZ5O,QAAY,IAAZA,OAAY,EAAZA,EAAc4O,UAAUrzB,QAAS,GAE1E,OACEhE,eAACU,IAAK,CAAAlB,SAAA,CACJQ,eAACC,IAAG,CAACC,GAAI,CAAE4L,QAAS,cAAelL,cAAe,MAAOC,WAAY,WAAYF,IAAK,GAAInB,SAAA,CACvFm1B,GAAgBr1B,cAACg4B,KAAiB,CAAC/f,KAAMod,IAE1Cr1B,cAACi4B,IAAuB,CAACC,UAAuB,OAAZ/O,QAAY,IAAZA,OAAY,EAAZA,EAAc+O,YAClDl4B,cAAC0zB,GAAe,CAAC1I,QAAqB,OAAZ7B,QAAY,IAAZA,OAAY,EAAZA,EAAc6B,UACT,KAAlB,OAAZ7B,QAAY,IAAZA,OAAY,EAAZA,EAAcgP,cAAqBhP,EAAcgP,YAAc,GAC9Dn4B,cAACo4B,IAAI,CAACx2B,KAAK,QAAQD,MAAK,QAAAV,OAAsB,OAAZkoB,QAAY,IAAZA,OAAY,EAAZA,EAAcgP,aAAep3B,QAAQ,gBAG3Ef,cAACW,IAAG,CAACC,GAAI,CAAE+C,MAAO,OAAQzD,SACvBipB,GACCnpB,cAACgyB,GAAwB,CAAC7F,SAAUA,EAAUhD,aAAcA,SAuC/CkP,MAEnBr4B,cAACW,IAAG,CAACC,GAAI,CAAE0jB,SAAU,KACrB5jB,eAACC,IAAG,CAAC6L,QAAQ,OAAOlL,cAAe,cAAeC,WAAW,WAAUrB,SAAA,EACnEihB,GACAnhB,cAACymB,IAAO,CAACD,MAAOtB,EAAe,iBAAmB,sBAAsBhlB,SACtEF,cAACW,IAAG,CAAAT,SACFF,cAACm0B,GAAmB,CAACxP,QAAS4S,EAAar3B,SACxCglB,EAAellB,cAACs4B,IAAc,IAAMt4B,cAACu4B,IAAU,WAKtDd,GACAz3B,cAACo1B,GAA0B,CAACC,aAAcA,EAAcC,aAAcA,U,wDCrGjE,SAASkD,GAAwBh4B,GAA+C,IAADi4B,EAAAC,EAAAC,EAAAC,EAA3C7S,EAAQvlB,EAARulB,SAC3CkM,EAAYC,iBAAO,MACzB5zB,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GAUd2qB,GACI,OAARpD,QAAQ,IAARA,OAAQ,EAARA,EAAU9N,KAAKtV,QAAS2lB,IAAkB4K,UAC7B,OAARnN,QAAQ,IAARA,OAAQ,EAARA,EAAU9N,MAA+BkR,aAC1C,KAEA8J,EAAQ,CACZ3K,IAAkBkJ,IAClBlJ,IAAkBkL,IAClBlL,IAAkBE,MAClBF,IAAkBC,OAClBhpB,SAAiB,OAARwmB,QAAQ,IAARA,OAAQ,EAARA,EAAU9N,KAAKtV,OACb,OAARojB,QAAQ,IAARA,OAAQ,EAARA,EAAU9N,MAA4Bgb,MACvC,KAEE4F,EAAW,CACf,CAAEhoB,IAAK,KAAM/R,MAAO,IACpB,CAAE+R,IAAK,WAAY/R,MAAe,OAARinB,QAAQ,IAARA,GAAiB,QAAT0S,EAAR1S,EAAUxL,eAAO,IAAAke,OAAT,EAARA,EAAmB92B,OAC7C,CAAEkP,IAAK,gBAAiB/R,MAAe,OAARinB,QAAQ,IAARA,GAAoB,QAAZ2S,EAAR3S,EAAUvL,kBAAU,IAAAke,OAAZ,EAARA,EAAsB/2B,OACrD,CAAEkP,IAAK,UAAW/R,MAAe,OAARinB,QAAQ,IAARA,OAAQ,EAARA,EAAU9N,KAAKtW,OACxC,CAAEkP,IAAK,0BAAqB/R,MAAOqqB,EAAeA,EAAaiD,QAAkB,OAARrG,QAAQ,IAARA,OAAQ,EAARA,EAAU9N,KAAK3F,IACxF,CAAEzB,IAAK,aAAc/R,MAAOqqB,EAA2B,OAAZA,QAAY,IAAZA,GAAsB,QAAVwP,EAAZxP,EAAce,gBAAQ,IAAAyO,OAAV,EAAZA,EAAwBG,cAAgB,IACnF,CAAEjoB,IAAK,aAAW/R,MAAOqqB,EAA2B,OAAZA,QAAY,IAAZA,GAAsB,QAAVyP,EAAZzP,EAAce,gBAAQ,IAAA0O,OAAV,EAAZA,EAAwBj3B,MAAQ,IACxE,CAAEkP,IAAK,WAAS/R,MAAOm0B,EAAa,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOzM,MAAS,IAC/C,CAAE3V,IAAK,2BAAmB/R,MAAOm0B,EAAa,OAALA,QAAK,IAALA,OAAK,EAALA,EAAO3gB,GAAGymB,WAAa,IAChE,CAAEloB,IAAK,iBAAe/R,OAAe,OAARinB,QAAQ,IAARA,OAAQ,EAARA,EAAU9N,KAAK+gB,aAAsB,OAARjT,QAAQ,IAARA,OAAQ,EAARA,EAAU9N,KAAK+gB,YAAc,KAWzF,OACEt4B,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACymB,IAAO,CAACD,MAAM,eAActmB,SAC3BF,cAAC0mB,IAAW,CACV0L,IAAKH,EACLrwB,KAAK,QACLqK,MAAO+a,EAAO,UAAY,UAC1BrC,QAlDW,WACjBwN,GAAQ,IAkDFvxB,GAAE7B,aAAA,GACIioB,GAAQ,CACViG,QAAS,SAACliB,GAAK,OACb2E,aAAM3E,EAAME,QAAQiiB,QAAQI,KAAMviB,EAAME,QAAQ8G,OAAOknB,iBAE3D/4B,SAEFF,cAACqtB,KAAI,CAAC7hB,SAAS,cAGnB9K,eAACkP,IAAW,CACVoX,KAAMA,EACNC,QA3Dc,WAClBkL,GAAQ,IA2DJE,SAAUJ,EAAUvzB,QACpBkC,GAAI,CAAE+C,MAAO,KAAMzD,SAAA,CAEnBQ,eAACU,IAAK,CAACoL,QAAQ,OAAOlL,cAAc,MAAKpB,SAAA,CACvCF,cAACc,IAAU,CAACC,QAAQ,KAAKH,GAAI,CAAEiN,EAAG,GAAI3N,SAAC,iBAGvCF,cAACk5B,mBAAe,CAAC9uB,KApCT,WACd,IAAI+uB,EAAe,GAInB,OAHAN,EAAS/2B,KAAI,SAACmW,GACO,KAAfA,EAAKnZ,QAAcq6B,GAAI,GAAAl4B,OAAOgX,EAAKpH,IAAG,OAAA5P,OAAMgX,EAAKnZ,MAAK,UAErDq6B,EA+BsBC,GAAWC,OAAQ,kBAAMC,QAAQC,IAAI,KAAIr5B,SAC9DF,cAACymB,IAAO,CAACD,MAAM,SAAQtmB,SACrBF,cAAC8zB,KAAU,CACTlzB,GAAI,CACF2L,IAAK,EACL+C,MAAO,EACPjM,SAAU,YACVnD,SAEFF,cAACw5B,KAAO,aAMhBx5B,cAACkO,IAAO,IACRlO,cAAC6mB,IAAS,CAAA3mB,SACP24B,EACE15B,QAAO,SAAC8E,GAAC,MAAiB,KAAZA,EAAEnF,OAA4B,OAAZmF,EAAEnF,SAClCgD,KAAI,SAACq3B,GACJ,OACEn5B,cAACy5B,KAAQ,CAAAv5B,SACPF,cAAC05B,KAAY,CACXC,uBAAwB,CAAExuB,WAAY,YAAayuB,GAAI,KACvDC,yBAA0B,CAAE1uB,WAAY,WACxC+hB,QACExsB,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAC3BF,cAAA,UAAAE,SAASi5B,EAAKtoB,MAAa,MAAIsoB,EAAKr6B,YAN7Bq6B,EAAKtoB,gB,mHCnH9BgjB,GAAYhpB,YAAO8jB,IAAP9jB,EAAa,SAAArK,GAAQA,EAALuK,MAAK,MAAQ,CAC7CW,QAAS,GACTjI,OAAQ,OAGJq2B,GAAcjvB,YAAOkZ,IAAPlZ,EAAyB,SAAA1I,GAAQ,MAAQ,CAC3D2J,gBADmD3J,EAAL4I,MACvBE,QAAQ4B,KAAK,SAavB,SAASktB,GAAmB33B,GAAyC,IAAtCwQ,EAAOxQ,EAAPwQ,QACtC6N,EAAWG,eAEjBtiB,EAA8CC,mBAA+B,IAAGC,EAAAC,YAAAH,EAAA,GAAzE07B,EAAex7B,EAAA,GAAEy7B,EAAkBz7B,EAAA,GAClC8T,EAA8DM,EAA9DN,GAAI4nB,EAA0DtnB,EAA1DsnB,OAAmB1T,GAAuC5T,EAAlDunB,UAAkDvnB,EAAvC4T,OAAO4T,EAAgCxnB,EAAhCwnB,KAAMC,EAA0BznB,EAA1BynB,gBAAiB13B,EAASiQ,EAATjQ,KAY7D,OACE3C,cAAC6zB,GAAS,CAAA3zB,SACRQ,eAAC8iB,IAAS,CAACvlB,SAZM,SAAC6lB,EAAY2B,GAC5BA,GAAyC,IAA3BuU,EAAgBt1B,QAChC+b,EACE6Z,aAAWhoB,EAAI4nB,EAAQK,KAAYC,SAAnCF,EAA6C,SAACG,GAAO,OAAKR,EAAmBQ,KAA7EH,EACE,iBAQ8Bp6B,SAAA,CAChCQ,eAACo5B,GAAW,CAAC9V,WAAYhkB,cAACikB,IAAU,IAAI/jB,SAAA,CACtCQ,eAACC,IAAG,CAACC,GAAI,CAAE+C,MAAO,MAAOwgB,WAAY,GAAIjkB,SAAA,CACvCF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAEsmB,IAC7BxmB,cAACc,IAAU,CAACC,QAAQ,UAASb,SAC1BuwB,YAAM4J,EAAiB,mCAG3B13B,IAAS43B,KAAYC,UAAYx6B,cAAC4zB,KAAK,CAAC7yB,QAAQ,WAAUb,SAAC,6BAC3DyC,IAAS43B,KAAYG,QACpB16B,cAAC4zB,KAAK,CAAC7yB,QAAQ,WAAUb,SAAEk6B,EAAO,iBAAgB,2BAGtDp6B,cAACokB,IAAgB,CAAAlkB,SACdF,cAAC26B,KAAyB,CAACC,eAAgBZ,W,cC3BvC,SAASa,GAA4Br6B,GAEb,IADrCulB,EAAQvlB,EAARulB,SAEQ9S,EAAayN,cAAY,SAAC7O,GAAgB,OAAKA,EAAMe,WAArDK,SACR3U,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GACdyzB,EAAYC,iBAAO,MAKnBmE,EAAc,WAClBlE,GAAQ,IAGJ2I,EAAY7nB,EAAS9T,QACzB,SAAC47B,GAAC,OACAA,EAAEZ,aAAsB,OAARpU,QAAQ,IAARA,OAAQ,EAARA,EAAUoU,YAC1B,CAACI,KAAYC,SAAUD,KAAYG,QAAQn7B,SAASw7B,EAAEp4B,SAE1D,OACEjC,eAAAT,WAAA,CAAAC,SAAA,CACG46B,EAAUp2B,OAAS,GAClB1E,cAACymB,IAAO,CAACD,MAAM,sBAAkBtmB,SAC/BF,cAAC0mB,IAAW,CAAC/B,QAhBD,WAClBwN,GAAQ,IAeiCC,IAAKH,EAAU/xB,SAChDF,cAACg7B,KAAK,CAACC,aAAcH,EAAUp2B,OAAQuH,MAAM,QAAQlL,QAAQ,WAAUb,SACrEF,cAACk7B,KAAI,CAAC9N,KAAMwN,KAAgBj3B,MAAO,GAAIiF,OAAQ,WAKvDlI,eAACqmB,IAAM,CACLC,KAAMA,EACNC,QAASoP,EACT8E,OAAO,QACP/qB,WAAY,CAAExP,GAAI,CAAE+C,MAAO,CAAE0qB,GAAI,EAAGC,GAAI,OAAUpuB,SAAA,CAElDQ,eAACU,IAAK,CAACyM,EAAG,IAAKpL,UAAU,MAAMlB,WAAW,SAAQrB,SAAA,CAChDF,cAACymB,IAAO,CAACD,MAAM,SAAQtmB,SACrBF,cAAC8zB,KAAU,CAACnP,QAAS0R,EAAaz1B,GAAI,CAAE4vB,GAAI,GAAItwB,SAC9CF,cAACo7B,KAAK,QAGV16B,eAACC,IAAG,CAAAT,SAAA,CACFF,cAACc,IAAU,CAACC,QAAQ,KAAIb,SAAC,uCACzBQ,eAACI,IAAU,CAACC,QAAQ,QAAQH,GAAI,CAAEqL,MAAO,kBAAmB/L,SAAA,CACjD,OAAR6lB,QAAQ,IAARA,OAAQ,EAARA,EAAUpkB,MACX3B,cAAA,SACS,OAAR+lB,QAAQ,IAARA,OAAQ,EAARA,EAAUoU,mBAKjBn6B,cAACkO,IAAO,IACRlO,cAAC6mB,IAAS,CAAA3mB,SACP46B,EACE37B,QAAO,SAAC47B,GAAC,OAAKA,EAAEX,QAChB/N,MAAK,SAAC7d,EAAG8d,GAAC,OAAM9d,EAAE6rB,gBAAkB/N,EAAE+N,iBAAmB,EAAI,KAC7Dv4B,KAAI,SAACu5B,GAAQ,OACZr7B,cAAC+5B,GAAmB,CAAmBnnB,QAASyoB,GAAtBA,EAAS/oB,SAIzCtS,cAACkO,IAAO,IAERlO,cAACW,IAAG,CAACC,GAAI,CAAEiN,EAAG,EAAGtM,WAAY,SAAUiL,QAAS,OAAQlL,cAAe,UAAWpB,SAChFF,cAACs7B,KAAc,CACb35B,MAAe,OAARokB,QAAQ,IAARA,OAAQ,EAARA,EAAUpkB,MACjB45B,OAAQ,CACNC,WAAmB,OAARzV,QAAQ,IAARA,OAAQ,EAARA,EAAUpjB,QAAS2lB,IAAkB4K,SAAW,SAAW,QACtEuI,UAAW,MACXC,IAAK,GACLvB,UAAmB,OAARpU,QAAQ,IAARA,OAAQ,EAARA,EAAUoU,WAEvBwB,OAAO,Y,4CC9DJC,GAjDU,WAAO,IAADC,EACrBxhB,EAAWyhB,eAAXzhB,OACFqL,EAAqBC,cAE3BrnB,EAA0BC,mBAGvB,CACDw9B,SAAU,KACVC,KAAM,OACNx9B,EAAAC,YAAAH,EAAA,GANKuT,EAAKrT,EAAA,GAAEi0B,EAAQj0B,EAAA,GA0CtB,OAlCAS,qBAAU,WAAO,IAAD2mB,EAAAC,EAAAf,EACd,GAA0C,QAAX,QAA3Bc,EAAAF,EAAmBK,gBAAQ,IAAAH,OAAA,EAA3BA,EAA6B3N,MAAjC,CAIA,IAAI8jB,EAAW,KACXC,EAAO,KACLC,GAA0C,QAA3BpW,EAAAH,EAAmBK,gBAAQ,IAAAF,OAAA,EAA3BA,EAA6B5N,KAAKikB,WAAY,EAC7DC,GAAsC,QAA3BrX,EAAAY,EAAmBK,gBAAQ,IAAAjB,OAAA,EAA3BA,EAA6B7M,KAAKikB,WAAY,EAEzD,OAAN7hB,QAAM,IAANA,KAAQvY,KAAI,SAACs6B,GACXA,EAAM5X,SAAS1iB,KAAI,SAACu6B,GAClBA,EAAa7X,SAAS1iB,KAAI,SAACyY,GACzB,GAAyB,OAArBA,EAAQiK,SASV,OAAOjK,EAAQqJ,MAAM9hB,KAAI,SAACgwB,GACpBA,EAAMoK,YAAcD,IAAcF,EAAWjK,GAE7CA,EAAMoK,YAAcC,IAAUH,EAAOlK,MAX3CvX,EAAQiK,SAAS1iB,KAAI,SAAC0Y,GAA4B,OAChDA,EAAWoJ,MAAM9hB,KAAI,SAACgwB,GAChBA,EAAMoK,YAAcD,IAAcF,EAAWjK,GAE7CA,EAAMoK,YAAcC,IAAUH,EAAOlK,kBAarDW,EAAS,CAAEsJ,SAAUA,EAAUC,KAAMA,OACpC,CAA4B,QAA5BH,EAACnW,EAAmBK,gBAAQ,IAAA8V,OAAA,EAA3BA,EAA6B5jB,OAE1B,CAAE8jB,SAAUlqB,EAAMkqB,SAAUC,KAAMnqB,EAAMmqB,O,gFC5ClC,SAASM,GAAW97B,GAAsD,IAAnD4J,EAAI5J,EAAJ4J,KAAM8jB,EAAQ1tB,EAAR0tB,SAAUttB,EAAEJ,EAAFI,GAAOmO,EAAKc,aAAArP,EAAAsP,IAChE,OACE9P,cAACc,IAAU/B,0BAAA,CACTgC,QAAQ,WACJgO,GAAK,IACTnO,GAAE7B,aAAA,CACAmvB,SAAUA,EACV5d,SAAU,SACV5D,WAAY,SACZ6vB,aAAc,WACdC,UAAW,aACXhxB,SAAU,UACVixB,WAAY,UACZxwB,MAAO,WACJrL,GACHV,SAEDkK,KCVP,IAmBMsyB,GAAgB,SAAHl8B,GAIZ,IAHLmkB,EAAOnkB,EAAPmkB,QAIAgY,EAA2Bf,KAAnBG,EAAQY,EAARZ,SAAUC,EAAIW,EAAJX,KAElB,OACEt7B,eAACC,IAAG,CAAC6L,QAAS,OAAQsiB,eAAgB,WAAYluB,GAAI,CAAEg8B,EAAG,GAAI18B,SAAA,CAC5D67B,GACC/7B,cAAC68B,GAAoB,CAAA38B,SACnBF,cAACymB,IAAO,CAACD,MAAOsW,aAAsBf,GAAUp6B,MAAMzB,SACpDF,cAAC0mB,IAAW,CACVzkB,SAAU,CAACsZ,IAAoBwhB,SAAUxhB,IAAoByhB,QAAQz9B,SACnEw8B,EAASzgB,QAEXqJ,QAAS,kBAAMA,EAAQoX,EAAS5B,UAAW4B,EAASG,YAAWh8B,SAE/DF,cAACi9B,KAAkB,UAM1BjB,GACCh8B,cAAC68B,GAAoB,CAAA38B,SACnBF,cAACymB,IAAO,CAACD,MAAOsW,aAAsBd,GAAMr6B,MAAMzB,SAChDF,cAAC0mB,IAAW,CACVzkB,SAAU,CAACsZ,IAAoBwhB,SAAUxhB,IAAoByhB,QAAQz9B,SACnEy8B,EAAK1gB,QAEPqJ,QAAS,kBAAMA,EAAQqX,EAAK7B,UAAW6B,EAAKE,YAAWh8B,SAEvDF,cAACk9B,KAAmB,cAS5BC,GAAkB,SAAHh7B,GAId,IAHLwiB,EAAOxiB,EAAPwiB,QAIAyY,EAA2BxB,KAAnBG,EAAQqB,EAARrB,SAAUC,EAAIoB,EAAJpB,KAEZqB,EAAiBtB,GAAYe,aAAsBf,GAAUp6B,OAAU,GACvE27B,EAAatB,GAAQc,aAAsBd,GAAMr6B,OAAU,GAEjE,OACEjB,eAACC,IAAG,CAAC6L,QAAS,OAAQsiB,eAAgB,gBAAiBluB,GAAI,CAAEg8B,EAAG,GAAI18B,SAAA,CAClEF,cAACu9B,GAAqB,CAACC,QAAQ,IAC/B98B,eAACC,IAAG,CAACU,IAAI,OAAOmL,QAAS,OAAOtM,SAAA,CAC7B67B,GACC/7B,cAACymB,IAAO,CAACD,MAAK,GAAAvlB,OAAKw8B,aAAe1B,EAASp5B,MAAMhB,MAAK,OAAAV,OAAMo8B,GAAgBn9B,SAC1EQ,eAACquB,IAAM,CACL9sB,SAAU,CAACsZ,IAAoBwhB,SAAUxhB,IAAoByhB,QAAQz9B,SACnEw8B,EAASzgB,QAEXva,QAAQ,WACR4jB,QAAS,kBAAMA,EAAQoX,EAAS5B,UAAW4B,EAASG,YAAWh8B,SAAA,CAE/DF,cAACi9B,KAAkB,IAAI,IACvBj9B,cAAC09B,KAAyB,CACxBpiB,OAAQygB,EAASzgB,OACjB3Y,KAAMo5B,EAASp5B,KACf/B,GAAI,CAAE4vB,GAAI,MAEZxwB,cAACs8B,GAAW,CAAClyB,KAAMizB,EAAenP,SAAU,IAAKjiB,MAAM,iBAK5D+vB,GACCh8B,cAACymB,IAAO,CAACD,MAAK,GAAAvlB,OAAKw8B,aAAezB,EAAKr5B,MAAMhB,MAAK,OAAAV,OAAMq8B,GAAYp9B,SAClEQ,eAACquB,IAAM,CACL9sB,SAAU,CAACsZ,IAAoBwhB,SAAUxhB,IAAoByhB,QAAQz9B,SACnEy8B,EAAK1gB,QAEPva,QAAQ,WACR4jB,QAAS,kBAAMA,EAAQqX,EAAK7B,UAAW6B,EAAKE,YAAWh8B,SAAA,CAEvDF,cAAC09B,KAAyB,CAACpiB,OAAQ0gB,EAAK1gB,OAAQ3Y,KAAMq5B,EAAKr5B,KAAM/B,GAAI,CAAE4vB,GAAI,MAC3ExwB,cAACs8B,GAAW,CAAClyB,KAAMkzB,EAAWpP,SAAU,MACxCluB,cAACk9B,KAAmB,gBASnBS,GAnHO,WACpB,IAAQxc,EAAqBL,cAArBK,iBACFyc,EAAWC,cAEXC,EAAc,SAAC3D,EAAmB+B,GACtC0B,EAAS,GAAD38B,OAAI88B,KAAe9iB,UAAUwf,QAAO,KAAAx5B,OAAIk5B,EAAS,KAAAl5B,OAAIi7B,KAG/D,OACEl8B,cAAAC,WAAA,CAAAC,SACGihB,EACCnhB,cAAC08B,GAAa,CAAC/X,QAASmZ,IAExB99B,cAACm9B,GAAe,CAACxY,QAASmZ,OA0GrBP,GAAwB,SAAHn7B,GAAyC,IAAnCo7B,EAAMp7B,EAANo7B,OAChCI,EAAWC,cAEXG,EAAe,WACnBJ,EAASG,KAAe9iB,UAAUgjB,OAGpC,OACEj+B,cAACymB,IAAO,CAACD,MAAM,2BAAuBtmB,SACnCs9B,EACCx9B,cAAC0mB,IAAW,CAAC/B,QAASqZ,EAAa99B,SACjCF,cAACk+B,KAAQ,MAGXx9B,eAACquB,IAAM,CAAChuB,QAAQ,WAAW4jB,QAASqZ,EAAa99B,SAAA,CAC/CF,cAACi9B,KAAkB,IAAG,sB,SChHnBJ,GAAuBhyB,YAAOlK,IAAPkK,CAAY,CAC9CpH,OAAQ,cAUK,SAAS06B,GAA2B39B,GAGjB,IAAD49B,EAF/BrY,EAAQvlB,EAARulB,SACA/E,EAAQxgB,EAARwgB,SAEA2W,EAA0DnF,GAAuB,OAARzM,QAAQ,IAARA,OAAQ,EAARA,EAAU9N,MAA3EiS,EAAQyN,EAARzN,SAAU4I,EAAU6E,EAAV7E,WAAY3J,EAAYwO,EAAZxO,aAAc3L,EAASma,EAATna,UACpC6gB,EAAa3d,cAAY,SAAC7O,GAAgB,OAAKA,EAAMe,WAArDyrB,SAoBR,OACE39B,eAACC,IAAG,CACFC,GAAI,CACFg8B,EAAG,IACHr7B,WAAY,SACZiL,QAAS,OACTlL,cAAe0f,EAAW,MAAQ,UAClC9gB,SAAA,CAEDgqB,GAAYA,EAAS4O,eACpB94B,cAAC68B,GAAoB,CAAA38B,SACnBF,cAAC6tB,KAAa,CAACC,WAAW,aAAa5D,SAAUA,EAAUiC,SAAUhD,MAGzEnpB,cAAC68B,GAAoB,CAAA38B,SACnBF,cAACs7B,KAAc,CACb35B,MAAe,OAARokB,QAAQ,IAARA,GAAc,QAANqY,EAARrY,EAAU9N,YAAI,IAAAmmB,OAAN,EAARA,EAAgBz8B,MACvB45B,OAnCsB,WAAO,IAAD+C,EAAAC,EAAAC,EAClC,YAAiB75B,IAAbulB,GAAuC,OAAbA,GAAqC,KAAhBA,EAAS5X,GACnD,CACLkpB,UAAW,GACXC,UAAW,GACXC,IAAK,GACL+C,SAAU,GACVtE,WAAmB,OAARpU,QAAQ,IAARA,GAAc,QAANuY,EAARvY,EAAU9N,YAAI,IAAAqmB,OAAN,EAARA,EAAgBnE,YAAa,GACxCkE,SAAUA,GAEP,CACL7C,WAAmB,OAARzV,QAAQ,IAARA,GAAc,QAANwY,EAARxY,EAAU9N,YAAI,IAAAsmB,OAAN,EAARA,EAAgB57B,QAAS2lB,IAAkB4K,SAAW,SAAW,QAC5EuI,UAAW,MACXC,IAAK,GACLvB,WAAmB,OAARpU,QAAQ,IAARA,GAAc,QAANyY,EAARzY,EAAU9N,YAAI,IAAAumB,OAAN,EAARA,EAAgBrE,YAAa,IAqB5BuE,GACR/C,OAAO,EACP7N,WAAW,iBAIf9tB,cAAC66B,GAA4B,CAAC9U,SAAkB,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAU9N,OAElDjY,cAACW,IAAG,CAACC,GAAI,CAAEg5B,GAAI,KACf55B,cAAC68B,GAAoB,CAAA38B,SACnBF,cAACw4B,GAAwB,CAACzS,SAAUA,MAEtC/lB,cAAC68B,GAAoB,CAAA38B,UACV,OAAR6lB,QAAQ,IAARA,OAAQ,EAARA,EAAU9N,OAAQjY,cAAC2+B,KAA2B,CAAC1mB,KAAM8N,EAAS9N,SAEjEjY,cAAC68B,GAAoB,CAAA38B,SACnBF,cAAC4+B,KAA4B,CAACC,cAAuB,OAAR9Y,QAAQ,IAARA,OAAQ,EAARA,EAAU9N,SAGzDjY,cAAC68B,GAAoB,CAAA38B,SAClB4yB,GAActV,GAAaxd,cAAC8+B,IAAkB,CAACC,KAAMvhB,MAExDxd,cAAC68B,GAAoB,CAAA38B,SAClBipB,GAAgBA,EAAa+O,YAAyB,OAAZ/O,QAAY,IAAZA,OAAY,EAAZA,EAAc6V,SAASt6B,QAAS,GACzE1E,cAACi/B,KAAS,CAACD,SAAsB,OAAZ7V,QAAY,IAAZA,OAAY,EAAZA,EAAc6V,SAAUlR,WAAW,oBC9FnD,SAASoR,GAA2B1+B,GAKb,IAJpCkK,EAAGlK,EAAHkK,IACAge,EAAOloB,EAAPkoB,QAEAyW,GADQ3+B,EAAR2nB,SACW3nB,EAAX2+B,aAEQjX,EAAiBE,aAAmB,CAAEC,OAAQ,OAA9CH,aAWR,OAX8D/a,aACnDka,GAAe,CACxB3c,IAAKA,EACL6c,QAAS,SAAC5kB,EAAc7D,GACT,QAAT6D,GAA4B,OAAV7D,GACpBqgC,GAAeA,IAEjBjX,EAAa,UAIZzd,aAAeC,GAIlB1K,cAACW,IAAG,CACFC,GAAI,CACF4L,QAAS,OACTlL,cAAe,SACfgjB,SAAU,EACV1b,OAAQ,OACR0H,SAAU,UACVpQ,SAEFF,cAAC2oB,KAAe,CAACje,IAAG,GAAAzJ,OAAKyJ,GAAOge,QAASA,MAZpC1oB,cAAC4oB,KAAY,CAACpC,MAAM,GAAGqC,YAAY,gC,6CC1BxCgL,GAAYhpB,YAAOlK,IAAPkK,EAAY,SAAArK,GAAQA,EAALuK,MAAK,MAAQ,CAC5C9H,UAAW,SACX2F,OAAQ,OACRjF,MAAO,OACP6I,QAAS,OACTlL,cAAe,SACfC,WAAY,SACZutB,eAAgB,SAChBztB,IAAK,OACLqK,QAAS,WAGI,SAAS0zB,GAAiBj9B,GAKb,IAJ1BqkB,EAAKrkB,EAALqkB,MACA7d,EAAGxG,EAAHwG,IACAkgB,EAAW1mB,EAAX0mB,YACA9W,EAAM5P,EAAN4P,OAEA,OACE/R,cAAC6zB,GAAS,CAAA3zB,SACRQ,eAACiuB,IAAI,CAAAzuB,SAAA,CACHF,cAAC4oB,KAAY,CAACjgB,IAAKA,EAAK6d,MAAOA,EAAOqC,YAAaA,EAAajoB,GAAI,CAAE+C,MAAO,UAC5EoO,GAAU/R,cAAA,OAAKgD,MAAO,CAAEq8B,cAAe,QAASn/B,SAAE6R,S,4BCjC3DutB,GAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EA8BA,IAAMkhC,GAAmB,SAAHhkC,GAA+D,IAAzDqnB,EAAIrnB,EAAJqnB,KAAMsS,EAAS35B,EAAT25B,UAC1BsK,EAASvS,iBAAO,MACdhK,EAAiBE,aAAmB,CAAEC,OAAQ,OAA9CH,aAuCR,OArCAjpB,qBAAU,WAgCR,OA/BAylC,KACE,CACEC,WAAY,uBACZC,KAAM,aACNC,iBAAkB,CAAC,iBAAkB,gBAEvCJ,EAAO/lC,SAENijC,MAAK,SAACmD,GACLA,EAASC,GAAGC,aAAand,EAAM,CAAEod,SAAS,GAADhkC,OAAKk5B,EAAS,UACvD2K,EAASC,GAAGG,YAAY,MACxBJ,EAASC,GAAGI,WAAWL,EAASM,QAAQC,UAExC,IAAQC,EAAmBR,EAASS,KAA5BD,eAURA,EAAexd,iBAAiB,gBAAgB,SAAC0d,EAAiB38B,GAChEqf,EAAa,YAGhBoc,OAAM,SAACmB,GACNnM,QAAQC,IAAI,QAASkM,EAAG7yB,YAGrB,eAGN,IAGD5S,cAAA,OACE0lC,UAAU,YACVtT,IAAKqS,EACLzhC,MAAO,CAAEshB,SAAU,EAAG1b,OAAQ,OAAQ0H,SAAU,SAAU3M,MAAO,WASxD,SAASgiC,GAAQxjC,GAAuC,IAApC8wB,EAAK9wB,EAAL8wB,MAAOkH,EAASh4B,EAATg4B,UAChC7nB,EAAoB2gB,EAApB3gB,GAAImf,EAAgBwB,EAAhBxB,KAAMP,EAAU+B,EAAV/B,MAClB5yB,EAAsBC,mBAAS,IAAGC,EAAAC,YAAAH,EAAA,GAA3BoM,EAAGlM,EAAA,GAAEonC,EAAMpnC,EAAA,GAClBqnC,EAAwDC,eAAhDC,EAAOF,EAAPE,QAAS50B,EAAS00B,EAAT10B,UAAW60B,EAAaH,EAAbG,cAAeC,EAAQJ,EAARI,SAC3Cxc,EAAwClrB,oBAAS,GAAMmrB,EAAAjrB,YAAAgrB,EAAA,GAAhDyc,EAAYxc,EAAA,GAAEyc,EAAezc,EAAA,GAE9B0c,EAAU,WAAO,IAADC,EAAAC,EACpBV,EAAO,IACPnU,EACI,YAAsB4U,KAAAE,aAAAjH,KAAAiE,MAArB,SAAAiD,IAAA,IAAAC,EAAA,OAAAnH,KAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,cAAA0K,EAAA1K,KAAA,EAC2BiK,EACxB/U,EAAMyV,WACN1T,EAAM2T,YAAcxV,IAASyV,iBAAmB5T,EAAM9B,UACtD,KAAD,EAHGsV,EAAaC,EAAAxE,KAKjB0D,EAAOa,GAAU,wBAAAC,EAAAzC,UAAAuC,QAClBM,MAAA,KAAAriC,WAPD,GAQA,YAA2B6hC,KAAAC,aAAAjH,KAAAiE,MAA1B,SAAAwD,IAAA,IAAAN,EAAA,OAAAnH,KAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,cAAAgL,EAAAhL,KAAA,EAC2B+J,EAAQzzB,GAAI,KAAD,EAAjCm0B,EAAaO,EAAA9E,KAEjB0D,EAAOa,GAAU,wBAAAO,EAAA/C,UAAA8C,QAClBD,MAAA,KAAAriC,WAJD,IA2BN,OAjBAxF,qBAAU,WAOR,OANIkS,EACFg1B,GAAgB,GAEhBC,IAGK,eACN,CAAC9zB,IAEJrT,qBAAU,YACHkS,GAAa+0B,IAChBC,GAAgB,GAChBC,OAED,CAACj1B,EAAW+0B,IAEXF,EAEAhmC,cAACo/B,GAAiB,CAChBz2B,IAAI,sDACJ6d,MAAM,kEACNqC,YAAY,yDAKhB7oB,cAACW,IAAG,CAACC,GAAI,CAAE0jB,SAAU,EAAG1b,OAAQ,OAAQ0H,SAAU,UAAWpQ,SAC1DiR,GAAqB,KAARzG,EACZ1K,cAACinC,KAAkB,IAEnBjnC,cAACwkC,GAAgB,CAAC3c,KAAMnd,EAAKyvB,UAAWA,GAAa,W,gMCrHhD+M,GAAK,IAZgB,SAAAC,GAAAC,aAAAC,EAAAF,GAAA,IAAAG,EAAAC,aAAAF,GAIhC,SAAAA,IAAe,IAADG,EAIT,OAJSxhC,aAAA,KAAAqhC,IACZG,EAAAF,EAAA1G,KAAA,KAAM,qBAHR6G,iBAAW,EAITD,EAAKE,QAAQ,GAAGC,OAAO,CACrBF,YAAa,gCACZD,EACJ,OAAAhjC,aAAA6iC,GAT+B,C,QAASO,I,cCb3CtI,GAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAMO,I,oDCmCYuH,YAAO8jB,IAAP9jB,CAAa,CAC9Ba,QAAS,GACTjI,OAAQ,IAWK,SAASokC,GAAiBrnC,GAMb,IAL1BmwB,EAAKnwB,EAALmwB,MACA1yB,EAAQuC,EAARvC,SACAiC,EAAQM,EAARN,SAAQ4nC,EAAAtnC,EACRunC,mBAAW,IAAAD,EAAG,GAAEA,EAChB7gB,EAAOzmB,EAAPymB,QAEA3oB,EAA4BC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAApC0pC,EAAMxpC,EAAA,GAAEypC,EAASzpC,EAAA,GAMlB63B,EAAc,WAClBpP,IACAghB,GAAU,IAWZ,OACEvnC,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACymB,IAAO,CAACD,MAAM,uBAAmBtmB,SAChCF,cAACg7B,KAAK,CAACC,aAActK,EAAMjsB,OAAQ3D,QAAQ,WAAWkL,MAAM,QAAO/L,SACjEF,cAAC0mB,IAAW,CAAC9kB,KAAK,QAAQ+iB,QArBf,WACjBsjB,GAAU,IAoB0C/nC,SAC5CF,cAACk7B,KAAI,CAAC9N,KAAM8a,KAAavkC,MAAO,GAAIiF,OAAQ,WAIlDlI,eAACqmB,IAAM,CACLC,KAAMghB,EACN/gB,QAASoP,EACT8E,OAAO,QACPjU,WAAY,CAAEC,aAAa,GAC3B/W,WAAY,CAAExP,GAAI,CAAE+C,MAAO,CAAE0qB,GAAI,EAAGC,GAAI,OAAUpuB,SAAA,CAElDQ,eAACU,IAAK,CAACyM,EAAG,IAAKpL,UAAU,MAAMlB,WAAW,SAAQrB,SAAA,CAChDF,cAACymB,IAAO,CAACD,MAAM,SAAQtmB,SACrBF,cAAC8zB,KAAU,CAACnP,QAAS0R,EAAaz1B,GAAI,CAAE4vB,GAAI,GAAItwB,SAC9CF,cAACo7B,KAAK,QAGVp7B,cAACc,IAAU,CAACC,QAAQ,KAAKH,GAAI,CAAEyP,GAAI,KAAMnQ,SAAC,4DAI5CF,cAACkO,IAAO,IACRlO,cAACW,IAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SAChBF,cAACmoC,KAAI,CAAAjoC,SACHQ,eAAC0nC,KAAc,CAAChb,KAAMptB,cAACqoC,KAAU,IAAK7hB,MAAM,uBAAsBtmB,SAAA,CAChEQ,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAAC,sDAEhB,OAAX6nC,QAAW,IAAXA,OAAW,EAAXA,EAAajmC,KAAI,SAACwmC,GACjB,OACE5nC,eAACI,IAAU,CAACC,QAAQ,UAAUgN,UAAW,OAAO7N,SAAA,CAC7CooC,EAAE,MADiDA,MAIvD,wCAGLtoC,cAAC0wB,IAAsB,CAACC,MAAOA,EAAO4X,SAjD7B,SAACj2B,GACpBmO,aACE+nB,aAA6Bl2B,EAA7Bk2B,EAAiC,WAC/BvqC,EAAS0yB,EAAMxxB,QAAO,SAACyxB,GAAC,OAAKA,EAAEte,KAAOA,oBAmDtCtS,cAACkO,IAAO,IACPhO,EAASm2B,EAAa1F,S,iCChHhB,SAAS8X,GAAwBjoC,GAA4C,IACtFoS,EAAkB,yCACtB,OAFsDpS,EAALnC,OAG/C,KAAKqqC,IAAsBC,sBACzB/1B,EAAU,kDACV,MACF,KAAK81B,IAAsBE,oBACzBh2B,EAAU,oDACV,MACF,KAAK81B,IAAsBG,wBACzBj2B,EAAU,8CACV,MACF,KAAK81B,IAAsBI,gBACzBl2B,EAAU,iDACV,MACF,KAAK81B,IAAsBK,SAC3B,KAAKL,IAAsB7G,MACzBjvB,EAAU,qCAGd,OACE5S,cAACgpC,KAAmB,CAACC,WAAW,QAAO/oC,SACrCF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAE0S,M,qFCrCnC0sB,GAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAQA,IAyDe4lC,GAzDQ,WAAO,IAAD1oC,EAAA2B,EAAAgnC,EAC3BC,EAAgCC,eAAxBC,EAAOF,EAAPE,QAsBFC,GAtBqBH,EAAVI,WAsBC,SAAAC,EAAAC,GAAA,OAAAvnC,KAAAokC,aAAAjH,KAAAiE,MAAG,SAAAwD,EAAO9V,EAAkB0Y,GAAc,IAAAlD,EAAA,OAAAnH,KAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,cAAAgL,EAAAhL,KAAA,EACrC4N,KAAcC,IAAG,GAAA5oC,OAAS0oC,EAAM,cAAA1oC,OAAagwB,GAAY,CAC5E6Y,QAAS,CAAEC,WAAW,KACrB,KAAD,EAFU,OAARtD,EAAQO,EAAA9E,KAAA8E,EAAA3E,OAAA,SAGLoE,EAAS5e,MAAI,wBAAAmf,EAAA/C,UAAA8C,QACrBD,MAAA,KAAAriC,aACD,SAeeulC,EAAQC,EAAAC,GAAA,OAAAf,KAAA5C,aAAAjH,KAAAiE,MAAvB,SAAA4G,EAAwBtiB,EAAYnd,GAAW,IAAA+7B,EAAA,OAAAnH,KAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,cAAAoO,EAAArG,KAAA,EAAAqG,EAAApO,KAAA,EAEpBqO,KAAMC,IAAI5/B,EAAKmd,GAAM,KAAD,EAA7B,OAAR4e,EAAQ2D,EAAAlI,KAAAkI,EAAA/H,OAAA,SACa,MAApBoE,EAASnrB,QAAc,OAGkB,OAHlB8uB,EAAArG,KAAA,EAAAqG,EAAAG,GAAAH,EAAA,SAE9B9Q,QAAQj7B,MAAM,0BAAyB+rC,EAAAG,IACvCjB,EAAQ,wBAAyBc,EAAAG,GAAM33B,SAASw3B,EAAA/H,OAAA,UACzC,GAAK,yBAAA+H,EAAAnG,UAAAkG,EAAA,mBAEfrD,MAAA,KAAAriC,WACD,MAAO,CAAE+lC,eA/CW,SAAAC,EAAAC,EAAAC,GAAA,OAAAnqC,KAAA+lC,aAAAjH,KAAAiE,MAAG,SAAAiD,EAAOvV,EAAkB0Y,EAAgB9hB,GAAS,IAAA+iB,EAAAlgC,EAAAmgC,EAAA,OAAAvL,KAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,cAAA0K,EAAA1K,KAAA,EAEjDuN,EAAatY,EAAU0Y,GAAQ,KAAD,EAErC,GAFTiB,EAAOlE,EAAAxE,KAELx3B,EAAYkgC,EAAZlgC,IAAYkgC,EAAPt4B,GACD,OAAR5H,EAAY,CAAAg8B,EAAA1K,KAAA,eAAA0K,EAAArE,OAAA,SAAAtjC,0BAAA,GAAc6rC,GAAO,IAAExrC,QAAQ,KAAK,cAAAsnC,EAAA1K,KAAA,EAE3BgO,EAASniB,EAAMnd,GAAK,KAAD,EAA5B,OAAVmgC,EAAUnE,EAAAxE,KAAAwE,EAAArE,OAAA,SAAAtjC,0BAAA,GAEJ6rC,GAAO,IAAExrC,OAAQyrC,KAAU,yBAAAnE,EAAAzC,UAAAuC,QACxCM,MAAA,KAAAriC,YAqCwB8kC,eAAcS,a,cC9DzC1K,GAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAsBA,IAsEewnC,GAtES,WAAO,IAADtqC,EAAA2B,EAC5B4oC,EAAmD7B,KAA3BK,GAAFwB,EAAdP,eAA4BO,EAAZxB,cAAcS,EAAQe,EAARf,SAEtCZ,GAD+B/f,eAAvBD,mBACwBigB,gBAAxBC,EAAOF,EAAPE,QA0BF0B,GA1BqB5B,EAAVI,WA0BF,SAAAkB,EAAAC,GAAA,OAAAxoC,KAAAokC,aAAAjH,KAAAiE,MAAG,SAAAwD,EAAOkE,EAA8BlM,GAAS,IAAAmM,EAAAja,EAAAvmB,EAAAygC,EAAA1E,EAAA,OAAAnH,KAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,cAAAgL,EAAAjD,KAAA,EAAAiD,EAAAhL,KAAA,EAGpBuN,EACtCxK,EAAKlgC,KACL,6CACA,KAAD,EAH4B,GAG5BqsC,EAAAlE,EAAA9E,KAHOjR,EAAQia,EAARja,SAAUvmB,EAAGwgC,EAAHxgC,IAAWwgC,EAANE,OAMX,KAAR1gC,EAAU,CAAAs8B,EAAAhL,KAAA,gBAAAgL,EAAAhL,KAAA,GACWgO,EAASjL,EAAMr0B,GAAK,KAAD,GAA5B,IAAAs8B,EAAA9E,KACD,CAAD8E,EAAAhL,KAAA,SAQV,OAPAiP,EAAQta,MAAQ,GACZwa,EAAel+B,OAAOC,OAAO,GAAI+9B,EAAS,CAC5Cha,SAAU8N,EAAKlgC,KACf+C,KAAMm9B,EAAKn9B,KACXiR,YAAaksB,EAAKp8B,KAClBgkC,WAAY1V,IAEd+V,EAAAhL,KAAA,GACqB4N,KAAcl2B,KAAI,6CAErCy3B,GACA,KAAD,GAHW,OAAR1E,EAAQO,EAAA9E,KAAA8E,EAAA3E,OAAA,SAILoE,EAAS5e,MAAI,QAAAmf,EAAAhL,KAAA,iBAAAgL,EAAAjD,KAAA,GAAAiD,EAAAuD,GAAAvD,EAAA,SAMxB1N,QAAQC,IAAGyN,EAAAuD,IACXjR,QAAQC,IAAIyN,EAAAuD,GAAG33B,SACf02B,EAAQ,wBAAyBtC,EAAAuD,GAAG33B,SAAS,eAAAo0B,EAAA3E,OAAA,SAGxC,CAAE5f,OAAQimB,IAAsB7G,MAAOlR,MAAO,KAAI,yBAAAqW,EAAA/C,UAAA8C,EAAA,oBAC1DD,MAAA,KAAAriC,aAED,MAAO,CAAE4mC,SA9DK,SAAAZ,GAAA,OAAAjqC,KAAA+lC,aAAAjH,KAAAiE,MAAG,SAAAiD,EAAOyE,GAA4B,IAAAK,EAAA3a,EAAA4a,EAAAC,EAAAzM,EAAA0H,EAAA,OAAAnH,KAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAClDvb,aAASgrB,gBAELH,EAAgC,GAE9B3a,EAAQsa,EAAQta,MACtBsa,EAAQta,MAAQ,GAAG4a,EAAAG,aAEA/a,GAAK+V,EAAA3C,KAAA,EAAAwH,EAAAvoB,IAAA,WAAAwoB,EAAAD,EAAA1gB,KAAAiX,KAAC,CAAD4E,EAAA1K,KAAA,SAAT,OAAJ+C,EAAIyM,EAAA1sC,MAAA4nC,EAAA1K,KAAA,GACUgP,EAAUC,EAASlM,GAAM,KAAD,GAAjC,IAAR0H,EAAQC,EAAAxE,MAEDzf,SAAWimB,IAAsBiD,QAAO,CAAAjF,EAAA1K,KAAA,SACnDsP,EAASpnC,KAAKuiC,EAAS9V,MAAM,IAAI+V,EAAA1K,KAAA,iBAEO,OAAxCvb,aAASmrB,aAAanF,EAAShkB,SAASikB,EAAArE,OAAA,SACjC,CAAE1R,MAAO2a,EAAUlsC,QAAQ,IAAO,QAAAsnC,EAAA1K,KAAA,gBAAA0K,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAA6D,GAAA7D,EAAA,SAAA6E,EAAAjoC,EAAAojC,EAAA6D,IAAA,eAAA7D,EAAA3C,KAAA,GAAAwH,EAAA3a,IAAA8V,EAAArC,OAAA,YAIlB,OAA3B5jB,aAASorB,gBAAkBnF,EAAArE,OAAA,SAEpB,CAAE1R,MAAO2a,EAAUlsC,QAAQ,IAAM,yBAAAsnC,EAAAzC,UAAAuC,EAAA,0BACzCM,MAAA,KAAAriC,c,cCjDH66B,GAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAgCe,SAASwoC,GAAgBtrC,GAMb,IAADurC,EALxBC,EAAKxrC,EAALwrC,MACA/kB,EAAOzmB,EAAPymB,QACAkC,EAAY3oB,EAAZ2oB,aAEA8iB,GADezrC,EAAf0rC,gBACU1rC,EAAVyrC,YAEAE,EAAqCzrB,cAAY,SAAC7O,GAAgB,OAAKA,EAAM8L,sBAArEyuB,EAAaD,EAAbC,cAAeC,EAASF,EAATE,UACfC,EAAoBC,eAApBD,gBAEAjB,GADYhC,eAAZC,QACawB,KAAbO,UACFmB,EAAaC,OAAa7gC,MAAM,CACpC+kB,MAAO8b,OACJC,SAAS,iCACT7pC,IAAI,EAAG,yCACPC,IAAI,EAAG,+CAON6pC,EAAmB,WAAH,MAAU,CAC9Bhc,MAAO,GACPvE,QAASjD,EAAaiD,QACtB9Z,GAAI6W,EAAa7W,GACjB6V,SAAUgB,EAAahB,SACvBykB,YAAa,IAGTC,EAASC,aAA+B,CAC5CC,cAAeJ,IACfK,iBAAkBR,EAClBS,SAAS,SAADxC,EAAAC,GAAA,OAAAqB,KAAAxF,aAAAjH,KAAAiE,MAAE,SAAAiD,EAAOtoC,EAAMiE,GAAA,IAAA+qC,EAAAC,EAAAxc,EAAA,OAAA2O,KAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAA4B,OAAX75B,EAAbirC,cAAeF,EAAS/qC,EAAT+qC,UAASxG,EAAA1K,KAAA,EACzBqP,EAASntC,GAAQ,KAAD,EAMvC,OANuCivC,EAAAzG,EAAAxE,MAAhCvR,EAAKwc,EAALxc,OAEEjsB,OAAS,IACjBsnC,EAAMrb,GACN2b,EAAgB,sBAAoB,CAAEvrC,QAAS,YAC/CmsC,EAAU,CAAEhvC,OAAQyuC,OACrBjG,EAAArE,OAAA,kCAAAqE,EAAAzC,UAAAuC,QA0BFM,MAAA,KAAAriC,cAGK4oC,EACNR,EADMQ,OAAQnvC,EACd2uC,EADc3uC,OAAQovC,EACtBT,EADsBS,QAASC,EAC/BV,EAD+BU,aAA4BC,GAC3DX,EAD6CY,aAC7CZ,EAD2DW,eAyBzDE,GAxBFb,EAD0Ec,cAyB9D/1B,aAAOuR,EAAaykB,eAAeF,aAGjD,OAFKA,EAAWnuC,SAAS,SAASmuC,EAAWxpC,KAAK,QAGhDlE,cAAC6tC,KAAc,CAAC/uC,MAAO+tC,EAAO3sC,SAC5BQ,eAACotC,KAAI,CAACC,YAAU,EAACC,aAAa,MAAMf,SAAUM,EAAartC,SAAA,EAC9C,OAAV+rC,QAAU,IAAVA,OAAU,EAAVA,EAAYvnC,QAAS,EACpB1E,cAACW,IAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SAChBF,cAAC+sB,KAAK,CAACC,SAAS,UAAS9sB,SAAC,oEAK5BQ,eAACC,IAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SAAA,EACdksC,GACApsC,cAACiuC,KAAe,CACdC,aAAW,EACXC,QAAS,UACTC,OAAQV,GAAc,kBACtB/c,MAAOzyB,EAAOyyB,MACd0d,OA1CK,SAACC,EAAoBC,EAAiCzqB,GACvE,GAA6B,IAAzBwqB,EAAc5pC,OAAlB,CAEA,IAAIisB,EAAQzyB,EAAOyyB,MAEnB2d,EAAcxsC,KAAI,SAACi9B,GAAmB,OACpCpO,EAAMzsB,KACJ+I,OAAOC,OAAO6xB,EAAM,CAClByP,QAAS,SAKfhB,EAAc,QAAS7c,GACvB4c,MA6BYkB,SA1BO,SAAC1P,GACpB,IAAM2P,EAAgBxwC,EAAOyyB,MAAMxxB,QAAO,SAACwvC,GAAW,OAAKA,IAAU5P,KACrEyO,EAAc,QAASkB,IAyBXrwC,MAAOuF,QAAQ0pC,EAAQ3c,OAAS0c,EAAO1c,OACvCie,YAAazlB,EAAaykB,eAAejsC,MACzCktC,SAAU,EACVC,cAAc,IAGjBxB,EAAQ3c,OAAS0c,EAAO1c,OACvB3wB,cAAC+sB,KAAK,CAACC,SAAS,QAAO9sB,SAAEotC,EAAQ3c,OAAS0c,EAAO1c,QAGlD0b,GAAarsC,cAACyoC,GAAwB,CAACpqC,MAAOguC,OAInDrsC,cAAC6uB,KAAa,CAACjuB,GAAI,CAAEkuB,eAAgB,UAAW5uB,SAC9CF,cAAC+uC,KAAa,CACZhuC,QAAQ,YACRiuC,QAAS5C,EACTxqC,KAAK,QACLqtC,iBAAiB,gBACjBtqB,QAASsC,EAAQ/mB,SAClB,kB,cCvJI,SAASgvC,GAA0B1uC,GAA8C,IAC1FoS,EAAkB,sDACtB,OAFwDpS,EAALnC,OAGjD,KAAK8wC,IAAmBC,eACtBx8B,EAAU,gEACV,MACF,KAAKu8B,IAAmBE,cACtBz8B,EACE,+FAEF,MACF,KAAKu8B,IAAmBG,mBACtB18B,EAAU,0CACV,MACF,KAAKu8B,IAAmBpG,SACxB,KAAKoG,IAAmBtN,MACtBjvB,EAAU,qCAId,OACE5S,cAACgpC,KAAmB,CAACC,WAAW,QAAO/oC,SACrCF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAE0S,M,yBCZpB,SAAS28B,GAAgB/uC,GAIb,IAHzBgI,EAAOhI,EAAPgI,QACA2gB,EAAY3oB,EAAZ2oB,aACAqmB,EAAOhvC,EAAPgvC,QAEAlxC,EAAkCC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAA1C6S,EAAS3S,EAAA,GAAEixC,EAAYjxC,EAAA,GACxByzB,EAAYC,iBAAO,MAoBzB,OACElyB,cAACW,IAAG,CAAAT,SACFF,cAACymB,IAAO,CAACD,MAAO,cAActmB,SAC5BF,cAAC0mB,IAAW,CAAC0L,IAAKH,EAAWtN,QArBhB,WACjB8qB,GAAa,GACG,OAAZjnC,QAAgC7D,IAAZ6D,IAAuBA,EAAU,IAEzDiY,aACEivB,aAAgB,CACdvnB,SAAUgB,EAAahB,SACvB7V,GAAI6W,EAAa7W,GACjB8Z,QAASjD,EAAaiD,QACtB5jB,QAASA,EACTolC,eAAgB,MALlB8B,EAMG,WACDD,GAAa,GACbD,QAEF7N,MAAK,kBAAM8N,GAAa,OAM2BvvC,SAC9CiR,EACCnR,cAAC2vC,KAAgB,CAAC5uC,QAAQ,gBAAgBa,KAAM,UAEhD5B,cAAC4vC,KAAW,UCxCT,SAASC,GAAqBrvC,GAMb,IAL9Bu0B,EAAOv0B,EAAPu0B,QACA70B,EAAQM,EAARN,SACA4vC,EAAYtvC,EAAZsvC,aAEAC,GADYvvC,EAAZ2oB,aACM3oB,EAANuvC,QAEAzxC,EAAkCC,mBAAS,IAAGC,EAAAC,YAAAH,EAAA,GAAvC0xC,EAASxxC,EAAA,GAGVyxC,GAHwBzxC,EAAA,GAGT0xC,aAAS,CAC5Bnb,UACAl2B,KAAM,UACNixC,aAAcA,KAYhB,OATA7wC,qBAAU,WACR,GAAqB,KAAjBgxC,EAAJ,CAEA,IAAME,EAAWC,YAAW,WAC1BL,EAAOE,KACN,KACH,OAAO,kBAAMI,cAAcF,OAC1B,CAACF,IAEG/vC,EAAS8vC,EAAuB,OAAZC,QAAY,IAAZA,OAAY,EAAZA,EAAcvrC,QC/B5B,SAAS4rC,GAAwB9vC,GAAwC,IAArC25B,EAAS35B,EAAT25B,UACzC97B,EAAUqiB,cAAY,SAAC7O,GAAgB,OAAKA,EAAM8L,sBAAlDtf,MACAiuC,EAAoBC,eAApBD,gBAERrtC,qBAAU,WACRsxC,iBACC,CAACpW,IAEJl7B,qBAAU,WACHZ,GACLiuC,EAAgB,sDAAoD,CAAEvrC,QAAS,YAC9E,CAAC1C,IAGJ,OAAKA,GAAmB,KAAVA,EAEZ2B,cAAC+sB,KAAK,CAACC,SAAS,QAAQ/F,QAAS,kBAAMxG,aAAS8vB,iBAAarwC,SAC3DF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAJT,0DACaF,cAAAC,WAAA,ICVtB,SAASuwC,GAAyBhwC,GAGb,IAFlCiwC,EAAUjwC,EAAViwC,WACAC,EAAUlwC,EAAVkwC,WAEApyC,EAAwBC,oBAAS,GAAKC,EAAAC,YAAAH,EAAA,GAA/B0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GAcpB,OACEwB,cAAC2wC,KAAa,CAAC3pB,KAAMA,EAAM4pB,SAVT,WAClBze,GAAQ,IAS0ChhB,WAAW,EAAO0/B,UAN/C,WACjBJ,GAAYC,EAAWD,EAAWjoC,SACtC2pB,GAAQ,IAIsFjyB,SAC5FF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAC,yGCnCnB,SAAS4wC,GAAetwC,GAA6C,IAA1C6zB,EAAW7zB,EAAX6zB,YACxC/1B,EAAkCC,mBAAS81B,GAAY71B,EAAAC,YAAAH,EAAA,GAAhDyyC,EAASvyC,EAAA,GAAEwyC,EAAYxyC,EAAA,GACtByyC,EAAkBnV,eAAlBmV,cAYR,OAJAhyC,qBAAU,WACR+xC,EAAa3c,KACZ,CAACA,IAEC0c,EAGHrwC,eAACqsB,KAAK,CAACC,SAAS,UAAU/F,QAbD,WACzB+pB,GAAa,GAEbC,KAUsD/wC,SAAA,CACpDF,cAACc,IAAU,CAAAZ,SAAC,qCACZF,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAC,yZALXF,cAAAC,WAAA,I,eCbV,SAASixC,GAAiB1wC,GAA6C,IAA1C6zB,EAAW7zB,EAAX6zB,YAC1C/1B,EAA8CC,mBAAS81B,GAAY71B,EAAAC,YAAAH,EAAA,GAA5D6yC,EAAe3yC,EAAA,GAAE4yC,EAAkB5yC,EAAA,GAU1C,OAJAS,qBAAU,WACRmyC,EAAmB/c,KAClB,CAACA,IAEC8c,EAGHnxC,cAACqxC,KAAQ,CAACrhC,aAAc,CAAEE,WAAY,SAAUD,SAAU,UAAY+W,KAAMmqB,EAAgBjxC,SAC1FQ,eAACqsB,KAAK,CACJC,SAAS,OACT/F,QAdc,WAClBmqB,GAAmB,IAcfhkB,KAAMptB,cAAC4vC,KAAW,IAClB5sC,MAAO,CAAEqJ,aAAc,QAASnM,SAAA,CAEhCF,cAACc,IAAU,CAAAZ,SAAC,qDACZF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAC,sRAXLF,cAAAC,WAAA,I,sCChB/Bq/B,GAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAgEA,IAAMguC,GAAazmC,YAAO8jB,IAAP9jB,CAAa,CAC9Ba,QAAS,GACTjI,OAAQ,EACRqI,gBAAiB,UACjBlD,OAAQ,sBACR0H,SAAU,SAGNusB,GAAuBhyB,YAAOlK,IAAPkK,CAAY,CACvC0mC,YAAa,IAITC,GAAmB,IAEnBhF,GAAaC,OAAa7gC,MAAM,CACpCpD,QAASikC,OAAa3pC,IAAI0uC,GAAkB,IAG5C7gB,MAAO8b,SAGM,SAASgF,GAAqBjxC,GAKjB,IAAD2B,EAAAuvC,EAJzBvoB,EAAY3oB,EAAZ2oB,aAEAwoB,GADUnxC,EAAVoxC,WACMpxC,EAANmxC,QAGMlxB,GAFGjgB,EAATqxC,UAEiBjxB,gBAEXkxB,GADoBhW,eAAlBmV,cACyBc,gBACzBzF,EAAoBC,eAApBD,gBAGRH,EAAyCzrB,cACvC,SAAC7O,GAAgB,OAAKA,EAAM8L,sBADtBq0B,EAAW7F,EAAX6F,YAAaC,EAAe9F,EAAf8F,gBAGrBC,EASIC,aAA4B,CAC9BjnC,KAAM,YACNknC,SAAUC,aAAY7F,IACtB8F,cAAe,CACb9pC,QAAS,GACTmoB,MAAO,GACPre,GAAI6W,EAAa7W,GACjB8Z,QAASjD,EAAaiD,QACtBjE,SAAUgB,EAAahB,SACvB7M,OAAQ,IACR61B,iBAAiB,KAlBnBoB,EAAKL,EAALK,MAEAxd,GADKmd,EAALhP,MACOgP,EAAPnd,SAEAyd,GADQN,EAARO,SACQP,EAARM,UACAjF,EAAY2E,EAAZ3E,aACSmF,GAAAR,EAATS,UAAST,EACTU,WAAavF,EAAMqF,EAANrF,OAef/uC,GAfmCo0C,EAAZjF,aAAqBiF,EAAPG,QAeCt0C,oBAAS,IAAMC,EAAAC,YAAAH,EAAA,GAA9Cw0C,EAAWt0C,EAAA,GAAEu0C,EAAcv0C,EAAA,GAClCirB,EAAkClrB,mBAAS,IAAGmrB,EAAAjrB,YAAAgrB,EAAA,GAAvCupB,EAAStpB,EAAA,GAAEupB,EAAYvpB,EAAA,GAC9BwpB,EbxH6B,SAAH1yC,GAMrB,IAAD2B,EAAAC,EAAAkL,EALJ6a,EAAQ3nB,EAAR2nB,SACAgrB,EAAU3yC,EAAV2yC,WAKA70C,EAAoCC,mBAA4B,MAAKC,EAAAC,YAAAH,EAAA,GAA9DmyC,EAAUjyC,EAAA,GAAE40C,EAAa50C,EAAA,GAChCirB,EAA8BlrB,oBAAS,GAAKmrB,EAAAjrB,YAAAgrB,EAAA,GAArCulB,EAAOtlB,EAAA,GAAE2pB,EAAU3pB,EAAA,GAC1BG,EAA8BtrB,oBAAS,GAAMurB,EAAArrB,YAAAorB,EAAA,GAAtCypB,EAAOxpB,EAAA,GAAEypB,EAAUzpB,EAAA,GAwD1B,OAtDA7qB,qBAAU,WAAO,IAADu0C,EACdJ,EAAc,MACdG,GAAW,GAEX,YAAqBC,KAAAjN,aAAAjH,KAAAiE,MAApB,SAAAiD,IAAA,IAAA5iB,EAAA,OAAA0b,KAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,cAAA0K,EAAA1K,KAAA,EACqBkL,GAAGO,YACpBgM,MAAM,iBACNC,OAAO,GAADzyC,OAAIknB,EAAQ,KAAAlnB,OAAIkyC,IACtBQ,UAAU,KAAD,GAHN/vB,EAAK8iB,EAAAxE,MAKDx9B,OAAS,IACjB0uC,EAAcxvB,EAAM,IACpB2vB,EAAW3vB,EAAM,GAAG0vB,UAEtBD,GAAW,GAAO,wBAAA3M,EAAAzC,UAAAuC,QACnBM,MAAA,KAAAriC,WAXD,KAYC,CAAC0jB,EAAUgrB,IAsCP,CACLS,WArCc,SAAAnJ,GAAA,OAAAtoC,KAAAokC,aAAAjH,KAAAiE,MAAG,SAAAwD,EAAOv+B,GAAe,IAAAqrC,EAAAC,EAAA,OAAAxU,KAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,WACnCgT,EAAQ,CAADhI,EAAAhL,KAAA,eAAAgL,EAAA3E,OAAA,qBAEPoO,GAA2C,KAA7BA,EAAWsD,cAAoB,CAAA/M,EAAAhL,KAAA,eAAAgL,EAAAhL,KAAA,EACxBkL,GAAGO,YAAYuM,OAAOvD,EAAWn+B,GAAK,CAC3D9J,QAASA,EACT8qC,SAAS,IACR,KAAD,EAHY,OAAAtM,EAAA9E,KAAA8E,EAAA3E,OAAA,SAKP,GAAC,OAQT,OALKwR,EAA0B,CAC9BE,cAAc,GAAD9yC,OAAKknB,EAAQ,KAAAlnB,OAAIkyC,GAC9Bc,KAAM,IAAI3xC,KACVkG,QAASA,EACT8qC,SAAS,GACVtM,EAAAhL,KAAA,GAEmBkL,GAAGO,YAAYyM,IAAIL,GAAa,KAAD,GAA7CC,EAAK9M,EAAA9E,KACX2R,EAAYvhC,IAAMwhC,EAClBV,EAAcS,GAAa,yBAAA7M,EAAA/C,UAAA8C,QAC5BD,MAAA,KAAAriC,YAgBCgsC,aACA0D,QAfW,kBAAA/xC,KAAAmkC,aAAAjH,KAAAiE,MAAG,SAAA4G,IAAA,OAAA7K,KAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,UACI,MAAdyU,EAAkB,CAAArG,EAAApO,KAAA,eAAAoO,EAAA/H,OAAA,wBAAA+H,EAAApO,KAAA,EAChBkL,GAAGO,YAAYuM,OAAiB,OAAVvD,QAAU,IAAVA,OAAU,EAAVA,EAAYn+B,GAAK,CAC3CghC,SAAS,IACR,KAAD,mBAAAlJ,EAAAnG,UAAAkG,QACHrD,MAAA,KAAAriC,YAWC6uC,UACAc,OAVU,kBAAA9mC,KAAAi5B,aAAAjH,KAAAiE,MAAG,SAAA8Q,IAAA,OAAA/U,KAAAe,MAAA,SAAAiU,GAAA,cAAAA,EAAAvQ,KAAAuQ,EAAAtY,MAAA,UACK,MAAdyU,EAAkB,CAAA6D,EAAAtY,KAAA,eAAAsY,EAAAjS,OAAA,wBAAAiS,EAAAtY,KAAA,EAChBkL,GAAGO,YAAY8M,OAAiB,OAAV9D,QAAU,IAAVA,OAAU,EAAVA,EAAYn+B,IAAK,KAAD,mBAAAgiC,EAAArQ,UAAAoQ,QAC7CvN,MAAA,KAAAriC,aayD4D+vC,CAAgB,CAC3ErsB,SAAUgB,EAAahB,SACvBgrB,WAAYhqB,EAAa7W,KAFnBshC,EAAUV,EAAVU,WAAYO,EAAOjB,EAAPiB,QAAS1D,EAAUyC,EAAVzC,WAAY6C,EAAOJ,EAAPI,QAASc,EAAMlB,EAANkB,OAK1CjzB,EAAqBL,cAArBK,iBACRmT,EAAwCC,aAAgB,4BAA4B,GAAKC,EAAA/1B,YAAA61B,EAAA,GAAlFpP,EAAYsP,EAAA,GACnB3K,GADoC2K,EAAA,GACMj2B,mBAAS,MAAIurB,EAAArrB,YAAAorB,EAAA,GAAhD4qB,EAAa3qB,EAAA,GAAE4qB,EAAgB5qB,EAAA,GAEtC6qB,EAAkFj0B,cAChF,SAAC7O,GAAgB,OAAKA,EAAMgO,wBADtB+0B,EAAOD,EAAPC,QAASC,EAAaF,EAAbE,cAAeC,EAAYH,EAAZG,aAAcC,GAAYJ,EAAZI,aAAcC,GAAiBL,EAAjBK,kBAI5Drf,GAA8Cp3B,oBAAS,GAAMq3B,GAAAn3B,YAAAk3B,GAAA,GAAtDsf,GAAerf,GAAA,GAAEsf,GAAkBtf,GAAA,GAE1C32B,qBAAU,WACRuzC,EAAS,QAAS,IAClBA,EAAS,SAAU,KACnBA,EAAS,UAAW,IACpBA,EAAS,UAAWrpB,EAAaiD,SACjComB,EAAS,KAAMrpB,EAAa7W,IAC5BkgC,EAAS,WAAYrpB,EAAahB,UAGlC,IAAMgtB,EACJH,IACA7rB,GACAyrB,IAAYzrB,EAAa7W,IACzBuiC,IAAkB1rB,EAAahB,UAC/B2sB,IAAiB3rB,EAAaiD,QAEhC8oB,GAAkC,OAAfC,QAAe,IAAfA,MAGnB10B,EACE20B,aACEjsB,EAAahB,SACbgB,EAAa7W,GAFf8iC,EAGE,SAACtjB,GACD0gB,EAAS,QAAS1gB,EAAMnB,OACxB6hB,EAAS,SAAU1gB,EAAMxW,QAEpB65B,IACH3C,EAAS,UAAW1gB,EAAMtpB,SAC1BiY,EAAS40B,aAA2B,CAAElpB,SAAUhD,EAAc3gB,QAASspB,EAAMtpB,YAGzD,KAAlBspB,EAAMtpB,SAAgBgqC,EAAS,mBAAmB,OAExD7Q,MAAK,WACDwT,GACF3C,EAAS,UAAWuC,SAIvB,CAAC5rB,IAEJlqB,qBAAU,WACR,IAAMq2C,EAAYxsC,SAASysC,eAAe,mBACtCC,EAAc,GACdF,IACFE,EAAcF,EAAUG,cAIxBf,EADEvzB,EACe,IAAMq0B,EACdtwB,EACQ,IAAMswB,EAEN,IAAMA,EAAc,QAQzC,IAAMvI,GAAQ,SAAAxC,GAAA,OAAAtoC,KAAAokC,aAAAjH,KAAAiE,MAAG,SAAAiD,EAAO3e,GAAwB,IAAA/oB,EAAA,OAAAwgC,KAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAC1Cl9B,EAAQ+oB,EAAKrf,QACjB1J,EAAK,4CAAAmC,OAAsC4mB,EAAKuE,QAAO,YAAAnrB,OAAWnC,GAClE2hB,EACEi1B,aAAuB,CACrBpjC,GAAIuV,EAAKvV,GACT6V,SAAUN,EAAKM,SACf3f,QAAS1J,EACTstB,QAASvE,EAAKuE,QACdwhB,eAAgBzkB,EAAaykB,gBAL/B8H,EAMG,SAACvpB,GAIF2lB,EAAyB6D,cAAcxpB,GACvC4mB,GAAe,GACfqB,IACA9H,EAAgB,6CAAqC,CAAEvrC,QAAS,cAblE20C,EAcG,WACD3C,GAAe,GACfzG,EAAgB,sDAAiD,CAAEvrC,QAAS,cAE9E,wBAAA2lC,EAAAzC,UAAAuC,QACHM,MAAA,KAAAriC,YAmCK0sC,GAAkBoB,EAAM,mBAGxB5hB,GAAQ4hB,EAAM,SAEdqD,GAAgBrD,EAAM,WAEtBsD,GACJllB,GAAMjsB,OAAS,GACfisB,GAAMmlB,MAAK,SAACllB,GACV,IAAAmlB,EAAiCnlB,EAAEK,SAAS+kB,oBAAoB3iB,MAAM,KAAKwQ,UAASoS,EAAAC,aAAAH,GAA7EI,EAASF,EAAA,GAAaA,EAAAjlC,MAAA,GAC7B,OAAOmY,EAAaykB,eAAeF,WAAWnuC,SAAS,IAAD0B,OAAKk1C,OAc/D,IAAMC,QATkBzxC,IAAlBixC,IAAiD,OAAlBA,IAEjCA,GAAclxC,OAAS,KACvBkxC,GAAclxC,OAAS8sC,IACvBroB,EAAaykB,eAAeF,WAAWnuC,SAAS,QAQ9C82C,GAAcR,IAAgBO,GAEpC,OACEp2C,cAAAC,WAAA,CAAAC,SACEQ,eAAA,QAAMusC,SAAUM,EAAaN,IAAW36B,GAAG,aAAatP,MAAO,CAAE4F,OAAQ,QAAS1I,SAAA,CAChFQ,eAAC4wC,GAAU,CAAC1wC,GAAI,CAAEgI,OAAO,gBAAD3H,OAAkBwzC,EAAa,QAAQv0C,SAAA,CAC7DF,cAACswC,GAAwB,CAACnW,UAAWhR,EAAaiD,UAElD1rB,eAACU,IAAK,CAACG,WAAW,SAASiL,QAAQ,OAAOlL,cAAc,MAAKpB,SAAA,CAC3DF,cAACs2C,GAAsB,CAAC3lB,MAAmB,OAAZxH,QAAY,IAAZA,OAAY,EAAZA,EAAcwH,MAAOvE,QAAqB,OAAZjD,QAAY,IAAZA,OAAY,EAAZA,EAAciD,UAC3EpsB,cAACW,IAAG,CAACC,GAAI,CAAE0jB,SAAU,KACrBtkB,cAAC68B,GAAoB,CAAA38B,SACnBF,cAACuvC,GAAgB,CACfpmB,aAAcA,EACd3gB,QAASotC,GACTpG,QAxDE,WACdyD,EAAasD,YAAU,IAAIj0C,OAC3BkwC,EAAS,mBAAmB,GAC5B2B,SAwDQn0C,cAAC68B,GAAoB,CAAA38B,SACnBF,cAACw2C,KAAU,CACT33C,KAAK,QACLk2B,QAASA,EACT0hB,OAAQ,SAAAr0C,GAAA,IAAGs0C,EAAKt0C,EAALs0C,MAA0Bt0C,EAAnBu0C,WAAct4C,MAAK,OACnC2B,cAAC6nC,GAAiB,CAChBlX,MAAO+lB,EAAM53C,MACbb,SAAUy4C,EAAMz4C,SAChB8pC,YAAa5e,EAAaykB,eAAeF,WACzCzmB,QAAS,kBAAMqS,QAAQC,IAAI,KAAIr5B,SAE9B,SAACm2B,EAAa4V,GAAU,OACvB9iB,GACEnpB,cAAC8rC,GAAgB,CACf3iB,aAAcA,EACd6iB,MAAO,SAACrb,GAAiB,OACvB6hB,EAAS,QAAQ,GAADvxC,OAAA2W,aAAM8+B,EAAM53C,OAAK8Y,aAAK+Y,MAExC1J,QAASoP,EACT6V,gBAAiBwK,EAAM53C,MAAM4F,OAC7BunC,WAAYA,YAQ1BjsC,cAAC68B,GAAoB,CAAA38B,SACnBF,cAACymB,IAAO,CAACD,MAAO,0CAAiCtmB,SAC/CF,cAAC0mB,IAAW,CAAC/B,QA5GH,WACtBouB,GAAe,IA2GmC7yC,SACpCF,cAAC42C,KAAW,aAMnB5E,GAAehyC,cAACkvC,GAA0B,CAAC7wC,MAAO2zC,IAEnDhyC,cAAC8wC,GAAe,CAACzc,aAAcsd,IAE/B3xC,cAACw2C,KAAU,CACT33C,KAAK,UACLk2B,QAASA,EACT0hB,OAAQ,SAAAnpC,GAAA,IAAGopC,EAAKppC,EAALopC,MAAqBr4C,EAAKiP,EAAnBqpC,WAAct4C,MAAK,OACnC2B,cAAC62C,KAAW,CACVC,QAAM,EACNxkC,GAAG,eACHxT,MAAO43C,EAAM53C,MACbb,SAAU,SAACa,GACT43C,EAAMz4C,SAASa,GACf2hB,EAAS40B,aAA2B,CAAElpB,SAAUhD,EAAc3gB,QAAS1J,MAEzET,MAAOuF,QAAQvF,QAKrB2B,cAACkxC,GAAiB,CAAC7c,YAAa+hB,KAAkBjF,KAEjDvtC,QAAQypC,EAAO7kC,UACdxI,cAAC+2C,KAAc,CAAC14C,OAAK,EAACuC,GAAI,CAAE2xB,GAAI,GAAIryB,SACnB,QADmBwxC,EACjCrE,EAAO7kC,eAAO,IAAAkpC,OAAA,EAAdA,EAAgB9+B,WAInBqiC,IAAmB3B,GACnBtzC,cAACwwC,GAAyB,CAACC,WAAYA,EAAYC,WAvH1C,SAAC5xC,GAClB0zC,EAAS,UAAW1zC,GACpB2hB,EAAS40B,aAA2B,CAAElpB,SAAUhD,EAAc3gB,QAAS1J,QAwHjEkB,cAAC6vC,GAAqB,CACpBC,aAAc,GACd/a,QAASA,EACT5L,aAAcA,EACd4mB,OAlJU,SAACjxC,GACnB,GAAc,gBAAVA,EACJ,IAEE80C,EAAW90C,GAAO6iC,MAAK,eAGvB,MAAO8D,GACPnM,QAAQC,IAAIkM,EAAI,kBA0IUvlC,SAEnB,SAAC8vC,EAAmBgH,GACnB,IAAIl4C,EAASk4C,EAAoBxF,GAAoB,IACjD1yC,EAAQ,MAAKA,EAAQ,KAEzB,IAAMgO,EAAUhO,EAAQ,IAAMA,EAAQ,GAChCT,EAAQS,GAAS,GAEvB,OACE4B,eAACC,IAAG,CAAAT,SAAA,EACA4M,IAAYzO,GACZqC,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAAC,8BACJF,cAAA,UAAAE,SAAQ,iCAAkC,QAIrE4M,GACC9M,cAACc,IAAU,CAACC,QAAQ,UAAUkL,MAAM,UAAS/L,SAAC,sFAK/C7B,GACCqC,eAACI,IAAU,CAACC,QAAQ,UAAUkL,MAAM,QAAO/L,SAAA,CAAC,oEACkBpB,EAAM,OAItEkB,cAACi3C,KAAc,CACbl2C,QAAQ,cACRjC,MAAOA,EACP8B,GAAE7B,0BAAA,GACI+N,GAAW,CAAE,2BAA4B,CAAEmgB,QAAS,aACpD5uB,GAAS,CACX,2BAA4B,CAC1B4uB,QAAS,UACTnhB,gBAAiB,eAKV,KAAdknC,GACCtyC,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAAC,mCAA2B8yC,cAQrEhzC,cAAC2wC,KAAa,CACZ3pB,KAAM8rB,EACN3hC,UAAW8gC,EACXpB,UAAWtD,EAAaN,IACxB2D,SAAU,kBAAMmC,GAAe,IAC/B7kB,SAAS,KACTgpB,cAAc,EACdj1C,UAAWo0C,GAAYn2C,SAEvBF,cAACW,IAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SAChBQ,eAACynC,KAAI,CAAAjoC,SAAA,CACHF,cAACm3C,KAAmB,CAClB3wB,MAAOxmB,cAACc,IAAU,CAACC,QAAQ,KAAIb,SAAC,8BAGlCF,cAACo3C,KAAmB,CAACzmB,MAAOA,KAC3BylB,IACCp2C,cAACooC,KAAc,CAAC5hB,MAAM,wBAAqB4G,KAAMptB,cAACq3C,KAAI,IAAIn3C,SAAC,oFAK3Dm2C,GAwBA31C,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACgpC,KAAmB,CAACC,WAAW,UAAS/oC,SACvCF,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAC,yKAOhCF,cAACooC,KAAc,CACb5hB,MAAM,2DACN4G,KAAM,UAlCV1sB,eAACsoC,KAAmB,CAACC,WAAW,QAAO/oC,SAAA,EACvB,OAAb01C,SAAa,IAAbA,QAAa,EAAbA,GAAelxC,SAAU8sC,IACxBxxC,cAACc,IAAU,CAACC,QAAQ,QAAQC,cAAY,EAAAd,SAAC,4EAIzC21C,KAAiB1sB,EAAaykB,eAAeF,WAAWnuC,SAAS,SACjEmB,eAACI,IAAU,CAACC,QAAQ,QAAQC,cAAY,EAAAd,SAAA,CAAC,4CACAipB,EAAaykB,eAAejsC,MAAM,IACxEwnB,EAAaykB,eAAeF,WAAW4J,KAAK,KAAK,sEAIpDlB,IAAiBjtB,EAAaykB,eAAeF,WAAWnuC,SAAS,SACjEmB,eAACI,IAAU,CAACC,QAAQ,QAAQC,cAAY,EAAAd,SAAA,CAAC,mDACO,IAC7CipB,EAAaykB,eAAeF,WAAW4J,KAAK,KAAK,6L,2CC3czD,SAASC,GAAgB/2C,GAMpC,IALFkc,EAAOlc,EAAPkc,QAAO86B,EAAAh3C,EACPi3C,eAAO,IAAAD,GAAQA,EAKT/2B,EAAWG,eACjBtiB,EAAgCC,oBAAS,GAAKC,EAAAC,YAAAH,EAAA,GAAvCo5C,EAAQl5C,EAAA,GAAEm5C,EAAWn5C,EAAA,GAM5B,OAJAS,qBAAU,WACRwhB,EAASm3B,aAAcl7B,MACtB,CAACA,IAEGg7B,EACL13C,cAAC63C,KAAW,CACV5wB,QAAS,kBAAMqS,QAAQC,IAAI,KAC3Bue,aAAc,kBAAMH,GAAY,IAChCF,QAASA,IAGXz3C,cAAC+3C,KAAW,CACVnH,SAAU,kBAAM+G,GAAY,IAC5B1wB,QAAS,kBAAMqS,QAAQC,IAAI,KAC3BpN,SAAUzP,EAAQyP,W,cCZlB0H,GAAYhpB,YAAO8jB,IAAP9jB,CAAa,CAC7Ba,QAAS,GACTjI,OAAQ,EACR6gB,SAAU,EACV1b,OAAQ,OACR0H,SAAU,WAGL,SAAS0nC,GAAiBx3C,GAAoD,IAADm4B,EAAhDxP,EAAY3oB,EAAZ2oB,aAC1BG,EAAW5I,cAAY,SAAC7O,GAAgB,OAAKA,EAAMiL,UAAnDwM,OACAF,EAAuBC,eAAvBD,mBACF6uB,EAAWC,aAAY5uB,GAEvB6uB,EACJ7uB,EAAOnqB,QACL,SAAC2kB,GAAK,OACJA,EAAM+H,YAAcC,KAAgBssB,iBACpCt0B,EAAM0C,QAAU2C,EAAae,SAAS4O,iBACxCp0B,OAAS,EAEP2zC,EAAiBJ,EAAS94C,QAC9B,SAAC2kB,GAAK,IAAAw0B,EAAA,OACJx0B,EAAM+H,YAAcC,KAAgBC,UACZ,QAAxBusB,EAAAx0B,EAAMkI,UAAUG,gBAAQ,IAAAmsB,OAAA,EAAxBA,EAA0BlsB,WAAYjD,EAAaiD,SACnDtI,EAAMkI,UAAU1Q,SAAW2Q,KAAcssB,cAC3C,GAEF,OACEv4C,cAAC6zB,GAAS,CAAA3zB,SACRQ,eAACU,IAAK,CAACoL,QAAQ,OAAOlL,cAAe,MAAOC,WAAY,SAASrB,SAAA,CAC/DF,cAACW,IAAG,CACFoN,UAAU,MACVyqC,IAAI,gBACJhqB,IAAK,wDACL5tB,GAAI,CAAE6tB,UAAW,QAASmL,GAAI,KAEhCl5B,eAACC,IAAG,CAAAT,SAAA,CACFF,cAACs2C,GAAsB,CAAC3lB,MAAmB,OAAZxH,QAAY,IAAZA,OAAY,EAAZA,EAAcwH,MAAOvE,QAAqB,OAAZjD,QAAY,IAAZA,OAAY,EAAZA,EAAciD,UAC3E1rB,eAACI,IAAU,CAAC23C,WAAS,EAAC13C,QAAQ,YAAWb,SAAA,CAAC,wBACrBipB,EAAauvB,SAAS,eAE1CP,GAAmBE,EAClB33C,eAAAT,WAAA,CAAAC,SAAA,CACEQ,eAACI,IAAU,CAACE,cAAY,EAACD,QAAQ,QAAOb,SAAA,CAAC,qIAEO,IAC9CF,cAAA,UAAAE,SAA8B,QAA9By4B,EAASxP,EAAae,gBAAQ,IAAAyO,OAAA,EAArBA,EAAuBG,gBAAuB,OAGxDuf,EACCr4C,cAAC6mB,IAAS,CAAA3mB,SACRF,cAACu3C,GAAgB,CAAC76B,QAAuB,OAAd27B,QAAc,IAAdA,OAAc,EAAdA,EAAgBrsB,UAAsByrB,SAAS,MAG5E/2C,eAAAT,WAAA,CAAAC,SAAA,CACEQ,eAACI,IAAU,CAACE,cAAY,EAACD,QAAQ,QAAOb,SAAA,CAAC,qBACpB,IACnBQ,eAAA,UAAAR,SAAA,CACG,IAAI,+FAEE,IACRF,cAAA,SAAM,8GAEeopB,IAAqB0B,QAAQ,OAGrD9qB,cAAC6tB,KAAa,CACZC,WAAW,SACX5D,SAAUf,EAAae,SACvBiC,SAAUhD,UAMlBzoB,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACc,IAAU,CAACE,cAAY,EAACD,QAAQ,QAAOb,SAAC,sHAIzCQ,eAACI,IAAU,CAACE,cAAY,EAACD,QAAQ,QAAOb,SAAA,CAAC,wDACS,IAChDF,cAAC24C,KAAU,CAACC,QAASxvB,IAAqByvB,MAAMvmC,GAAIwmC,YAAY,mBAAoB,IAAI,6E,6GC7FjG,SAASC,GAASv4C,GACvB,OAD8BA,EAAJmC,MAExB,KAAK4uB,IAAcC,IACnB,KAAKD,IAAcynB,gBACnB,KAAKznB,IAAc0nB,aACjB,OAAOj5C,cAACk5C,KAAY,IACtB,KAAK3nB,IAAchJ,MACjB,OAAOvoB,cAACm5C,KAAmB,IAC7B,KAAK5nB,IAAc6nB,OACjB,OAAOp5C,cAACq5C,KAAmB,IAC7B,KAAK9nB,IAAc+nB,QACjB,OAAOt5C,cAAC2O,KAAI,IACd,KAAK4iB,IAAcgoB,OACjB,OAAOv5C,cAACw5C,KAAK,IACf,QACE,OAAOx5C,cAACy5C,KAAc,KCTb,SAASC,GAAal5C,GAAiC,IAA9ByyB,EAAKzyB,EAALyyB,MACtC,OAAQA,EAAM3B,WACZ,KAAKC,IAAc+nB,QACjB,OACE54C,eAAC0D,KAAQ,CAACsK,KAAMukB,EAAMvoB,IAAIxK,SAAA,CACxBF,cAAC+4C,GAAS,CAACp2C,KAAMswB,EAAM3B,YACvBtxB,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAE+yB,EAAMzM,WAG3C,KAAK+K,IAAchJ,MACnB,KAAKgJ,IAAc6nB,OACjB,OAAOp5C,cAAC25C,GAAmB,CAAC1mB,MAAOA,IACrC,QACE,OAAOjzB,cAAC45C,GAAqB,CAAC3mB,MAAOA,KAI3C,SAAS2mB,GAAqBz3C,GAAiC,IAA9B8wB,EAAK9wB,EAAL8wB,MACvB3gB,EAAwC2gB,EAAxC3gB,GAAI6e,EAAoC8B,EAApC9B,SAAUF,EAA0BgC,EAA1BhC,SAAUQ,EAAgBwB,EAAhBxB,KAAMP,EAAU+B,EAAV/B,MAEtC,OACElxB,cAAC65C,KAAU,CAAA35C,SACR,SAAC45C,EAAU/T,EAASgU,EAAe5oC,EAAW60B,EAAegU,EAAaC,GAAU,OACnFv5C,eAAC0D,KAAQ,CACPugB,QAAS,kBACP8M,EACIwoB,EAAW/oB,EAAMyV,WAAY1V,EAAUE,EAAU7e,GACjDwnC,EAASxnC,EAAI6e,EAAUF,IAC5B/wB,SAAA,CAEAiR,EACCnR,cAAC2vC,KAAgB,CAAC5uC,QAAQ,gBAAgBa,KAAM,UAEhD5B,cAAC+4C,GAAS,CAACp2C,KAAMswB,EAAM3B,YAGzBtxB,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAE+yB,EAAMzM,cAO/C,SAASmzB,GAAmBv3C,GAAiC,IAA9B6wB,EAAK7wB,EAAL6wB,MAC7B30B,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GAKpB,OACEwB,cAAAC,WAAA,CAAAC,SACEQ,eAACw5C,KAAa,CAAChsB,SAAS,KAAKisB,OAAO,QAAQlzB,QAL5B,WAClBkL,GAAQ,IAI4DnL,KAAMA,EAAK9mB,SAAA,CAC3EF,cAAC0uB,KAAW,CAAAxuB,SAAE+yB,EAAMzM,QACpBxmB,cAACmuB,KAAa,CAAAjuB,SACZF,cAACo6C,KAAS,CACRx5C,GAAI,CAAE0jB,SAAU,EAAG1b,OAAQ,MAAO0H,SAAU,UAC5CvC,UAAU,SACVssC,YAAY,IACZ7rB,IAAKxH,EAAOiM,EAAMvoB,IAAM,YC/DrB,SAAS4vC,GAAgB95C,GAA4C,IAAzC+5C,EAAM/5C,EAAN+5C,OAAQ/zB,EAAKhmB,EAALgmB,MAC3CyL,EAAYC,iBAAO,MACzB5zB,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GAUpB,OAAsB,IAAlB+7C,EAAO71C,OAAqB1E,cAAAC,WAAA,IAG9BS,eAACC,IAAG,CAAAT,SAAA,CACFF,cAAC0mB,IAAW,CAAC9kB,KAAK,QAAQwwB,IAAKH,EAAWtN,QAZ3B,WACjBwN,GAAQ,IAWwDjyB,SAC5DF,cAACy5C,KAAc,MAGjB/4C,eAACkP,IAAW,CACVoX,KAAMA,EACNC,QAdc,WAClBkL,GAAQ,IAcJE,SAAUJ,EAAUvzB,QACpBkC,GAAI,CACF+C,MAAO,KACPzD,SAAA,CAEFF,cAACW,IAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQjL,WAAY,SAAU+wB,GAAI,EAAGC,GAAI,IAAKjxB,cAAe,OAAQpB,SACvFF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAEsmB,MAE/BxmB,cAACkO,IAAO,IACRlO,cAAC6mB,IAAS,CAACjmB,GAAI,CAAEgI,OAAQ,CAAEylB,GAAI,IAAKC,GAAI,SAAWpuB,SAChDq6C,EAAOz4C,KAAI,SAAC86B,GACX,OAAO58B,cAAC05C,GAAa,CAACzmB,MAAO2J,GAAQA,EAAEtqB,e,mCCnCpC,SAASkoC,GAAah6C,GAAgD,IAA7CN,EAAQM,EAARN,SAAQu6C,EAAAj6C,EAAEk6C,cAAM,IAAAD,EAAG,EAACA,EACpD1vC,EAAQgW,eACR45B,EAAczoB,iBAAsB,MAEpC0oB,EAAQ77C,aAAA,CACZ87C,MAAM,EACNC,QAAQ,EACRC,UAAU,EACVC,aAAc,EACdC,eAAgB,EAChBC,KAAMR,EACNS,IAAKv3C,QAA4B,QAApBmH,EAAMtI,YAChB24C,aAAgC,CACjCx6C,GAAI,CAAEC,GAAI,MAId,OAIEb,aAHA,CAGCW,IAAG,CAACC,GAAI,CAAE+C,MAAO,QAASzD,SACzBF,cAACq7C,KAAMt8C,0BAAA,CAACqzB,IAAKuoB,GAAiBC,GAAQ,IAAA16C,SACnCA,O,cCCHo7C,GAAsBzwC,YAAOlK,IAAPkK,CAAY,CACtCyZ,SAAU,EACV1b,OAAQ,SAYK,SAAS2yC,GAAY/6C,GAMb,IALrB2oB,EAAY3oB,EAAZ2oB,aACAoxB,EAAM/5C,EAAN+5C,OACA5I,EAAMnxC,EAANmxC,OAAM6J,EAAAh7C,EACNi7C,oBAAY,IAAAD,GAAQA,EACpBE,EAAKl7C,EAALk7C,MAEM3wC,EAAQgW,cACdziB,EAAgCC,mBAAS,GAAEC,EAAAC,YAAAH,EAAA,GAApCq9C,EAAQn9C,EAAA,GAAEo9C,EAAWp9C,EAAA,GACpBq9C,EAAqBl2B,cAArBk2B,iBACoBtP,eAApBD,gBAkBR,GAAInjB,EAAayD,eAAiBC,IAAaiD,MAE7C,OAAO9vB,cAACg4C,GAAiB,CAAC7uB,aAAcA,IAE1C,GAAIA,EAAayD,eAAiBC,IAAaC,UAC7C,OACE9sB,cAAAC,WAAA,CAAAC,SACEF,cAACk1B,GAA2B,CAC1BxqB,IAAKye,EAAakG,UAAU3kB,IAC5Byd,SAAUgB,EAAaiD,QACvB+I,QAtBQ,WAEdib,YAAW,WACTyL,EAAiB,CAAE1zB,SAAUgB,EAAahB,SAAU7V,GAAI6W,EAAa7W,GAAIopC,MAAOA,GAAhFG,EACE,WAEEviB,QAAQC,IAAI,oDAGf,WAmBL,GAAIkiB,EACF,OACEz7C,cAAC87C,GAAwB,CAAC3yB,aAAcA,EAAcoxB,OAAQA,EAAQ3I,YAAY,IAGtF,IAAMtrB,EACJtmB,cAACoB,IAAK,CAACoL,QAAS,OAAQlL,cAAe,SAAUsH,OAAQ,OAAO1I,SAC7D,CAAC2sB,IAAaoD,iBAAiB1wB,SAAS4pB,EAAayD,cACpD5sB,cAAAC,WAAA,CAAAC,SACEF,cAACW,IAAG,CACF6L,QAAQ,OACR5L,GAAI,CAAEkuB,eAAgB,SAAUxe,SAAU,OAAQ1H,OAAQ,QAC1DtH,cAAe,MACf0B,MAAO,CAAEqI,YAAa,GAAInL,SAE1BF,cAAC4oB,KAAY,CACXpC,MAAM,uDACNqC,YAAY,uHACZlgB,IAAI,iEAKVjI,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACW,IAAG,CAAC6L,QAAQ,OAAOlL,cAAe,MAAO0B,MAAO,CAAEqI,YAAa,GAAInL,SAClEQ,eAACq7C,KAAI,CACHj9C,MAAO68C,EACPK,eAAe,UACfC,UAAU,UACVh+C,SA7DS,SAAC6lB,EAAYo4B,GAChCN,EAAYM,IA6DFC,eAAa,EACbC,0BAAwB,EAAAl8C,SAAA,CAExBF,cAACq8C,KAAG,CAAC16C,MAAM,cACX3B,cAACq8C,KAAG,CAAC16C,MAAM,sBAIfjB,eAAC46C,GAAmB,CAAAp7C,SAAA,CAClBF,cAACs8C,KAAQ,CACPC,GAAiB,IAAbZ,EACJ/6C,GAAE7B,aAAA,GACiB,IAAb48C,GAAkB,CACpB/yC,OAAQ,iBAER,yBAA0B,CAAEA,OAAQ,UAEtC1I,SAEFF,cAAC87C,GAAwB,CACvB3yB,aAAcA,EACdoxB,OAAQA,EACR3I,YAAY,MAIhB5xC,cAACs8C,KAAQ,CACPC,GAAiB,IAAbZ,EACJ/6C,GAAE7B,aAAA,GACiB,IAAb48C,GAAkB,CACpB/yC,OAAQ,iBAER,yBAA0B,CAAEA,OAAQ,UAEtC1I,SAEFF,cAACyxC,GAAqB,CACpBtoB,aAAcA,EACdwoB,OAAQA,EACRC,YAAY,cAS1B,OACE5xC,cAACW,IAAG,CACFiI,OAAQ,OACR0H,SAAS,SACTksC,KAAK,OACL9wC,QAAS,OACT9K,GAAI,CAAEkL,gBAAiBf,EAAME,QAAQ4B,KAAK,MAAO3M,SAEhDomB,IAaP,IAAMm2B,GAAmB5xC,YAAOlK,IAAPkK,EAAY,SAAA1I,GAAQA,EAAL4I,MAAK,MAAQ,CACnDpH,MAAO,OACPiF,OAAQ,UAWV,SAASkzC,GAAwB15C,GAIL,IAAD2wB,EAHzB5J,EAAY/mB,EAAZ+mB,aACUuzB,GAAAt6C,EAAVwvC,WAAUxvC,EACVm4C,eAAM,IAAAmC,EAAG,GAAEA,EAEPC,EAAkB,OAANpC,QAAM,IAANA,OAAM,EAANA,EAAQ3vB,MAAK,SAACgyB,GAAC,OAAKA,EAAEj6C,OAAS2lB,IAAkB0K,QAC1D2pB,IAAWA,EAAkB,OAANpC,QAAM,IAANA,OAAM,EAANA,EAAQ3vB,MAAK,SAACgyB,GAAC,OAAKA,EAAEj6C,OAAS2lB,IAAkBkJ,QAE/E,IAAMqrB,GAAsB,OAAZ1zB,QAAY,IAAZA,GAAmB,QAAP4J,EAAZ5J,EAAcwH,aAAK,IAAAoC,OAAP,EAAZA,EAAqBruB,QAAS,EAE9C,OACEhE,eAAC+7C,GAAgB,CACf77C,GAAE7B,aAAA,CAAI6J,OAAQi0C,EAAU,MAAQ,OAAWA,GAAW,CAAEvsC,SAAU,SAAYpQ,SAAA,CAE9EF,cAACs2C,GAAsB,CACrB3lB,MAAmB,OAAZxH,QAAY,IAAZA,OAAY,EAAZA,EAAcwH,MAAMxxB,QACzB,SAACyxB,GAAC,OAAoB,KAAfA,EAAEO,UAAmBP,EAAEgB,YAAcC,IAAerH,aAE7D4B,QAAqB,OAAZjD,QAAY,IAAZA,OAAY,EAAZA,EAAciD,WAElB,OAANmuB,QAAM,IAANA,OAAM,EAANA,EAAQ71C,QAAS,GAAK1E,cAAC88C,GAAa,CAACje,cAAe8d,GAAwBpC,EAAO,QAO1F,SAASuC,GAAaxvC,GAAuD,IAApDuxB,EAAavxB,EAAbuxB,cACvB,OAAQA,EAAcl8B,MACpB,KAAK2lB,IAAkB0K,KACrB,OACEhzB,cAACk/B,GAA2B,CAC1Bx0B,IAAMm0B,EAAoCn0B,IAC1Cyd,SAAU0W,EAAcvsB,GACxBoW,SAAS,IAIf,KAAKJ,IAAkBkJ,IACrB,OACExxB,cAAC2lC,GAAQ,CACP1S,MAAQ4L,EAAqC5L,MAC7CkH,UAAW0E,EAAcvsB,KAG/B,KAAKgW,IAAkBE,MACvB,KAAKF,IAAkBC,MACrB,OACEvoB,cAACioB,GAAsB,CACrBvd,IAAMm0B,EAAqC5L,MAAMvoB,IACjD/H,KAAMk8B,EAAcl8B,OAI5B,OAAO3C,cAAAC,WAAA,IAGF,SAASq2C,GAAsB9oC,GAMlC,IALFmjB,EAAKnjB,EAALmjB,MAMAlH,GALOjc,EAAP4e,QAKwB7tB,sBAAkDmrB,EAAAjrB,YAAAgrB,EAAA,GAAnEszB,EAAIrzB,EAAA,GAAEszB,EAAOtzB,EAAA,GAEdoU,EAAc,SAACn7B,IACX,OAAJo6C,QAAI,IAAJA,OAAI,EAAJA,EAAMp6C,QAASA,EAAMq6C,EAAOj+C,0BAAC,GAAKg+C,GAAI,IAAE/1B,MAAO+1B,EAAK/1B,QACnDg2B,EAAQ,CAAEh2B,MAAM,EAAMrkB,KAAMA,KAG7Bs6C,EAAiBtsB,EAAMxxB,QAAO,SAACyxB,GAAC,OAAMA,EAAEgW,eAE9C,OAA+B,KAAb,OAAdqW,QAAc,IAAdA,OAAc,EAAdA,EAAgBv4C,QAAqB1E,cAAAC,WAAA,IAGvCS,eAACC,IAAG,CAACC,GAAI,CAAEyC,SAAU,YAAanD,SAAA,CAChCQ,eAACU,IAAK,CAACqB,UAAW,MAAOpB,IAAI,MAAME,WAAY,SAAUX,GAAI,CAAEg8B,EAAG,GAAI18B,SAAA,CACpEF,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAC,oEAC9BF,cAACs6C,GAAgB,CACfC,OAAQ0C,EAAe99C,QACrB,SAACyxB,GAAC,OAAM,CAACW,IAAc6nB,OAAQ7nB,IAAchJ,OAAOhpB,SAASqxB,EAAEU,cAEjE9K,MAAM,0EAEPy2B,EAAenH,MAAK,SAACllB,GAAC,MAAK,CAACW,IAAchJ,OAAOhpB,SAASqxB,EAAEU,eAC3DtxB,cAAC0mB,IAAW,CAAC/B,QAAS,kBAAMmZ,EAAYvM,IAAchJ,QAAOroB,SAC3DF,cAAC+4C,GAAS,CAACp2C,KAAM4uB,IAAchJ,UAGlC00B,EAAenH,MAAK,SAACllB,GAAC,MAAK,CAACW,IAAc6nB,QAAQ75C,SAASqxB,EAAEU,eAC5DtxB,cAAC0mB,IAAW,CAAC/B,QAAS,kBAAMmZ,EAAYvM,IAAc6nB,SAAQl5C,SAC5DF,cAAC+4C,GAAS,CAACp2C,KAAM4uB,IAAc6nB,cAIrCp5C,cAACW,IAAG,CAACC,GAAI,CAAEqC,UAAW,SAAUQ,OAAQ,OAAQvD,SAC7C68C,IAAY,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAM/1B,OACbhnB,cAACk9C,KAAa,CAACt8C,GAAI,CAAE+C,MAAO,IAAK,yBAA0B,CAAE+H,QAAS,SAAWxL,SAC/EF,cAACw6C,GAAa,CACZE,OAAQ,EACRx6C,SAAU+8C,EACP99C,QAAO,SAACyxB,GAAC,MAAK,CAAK,OAAJmsB,QAAI,IAAJA,OAAI,EAAJA,EAAMp6C,MAAMpD,SAASqxB,EAAEU,cACtCxvB,KAAI,SAACmxB,GACJ,OACEvyB,eAACC,IAAG,CAAAT,SAAA,CACFF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAE+yB,EAAMzM,QACnCxmB,cAACioB,GAAsB,CACrBvd,IAAKuoB,EAAMvoB,IACX/H,KAAMw6C,GAAalqB,EAAM3B,aAG3B5wB,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAAC,cAAS+yB,EAAMrxB,UAPrCqxB,EAAM3gB,gBAsBpC,IAAM6qC,GAAe,SAAC7rB,GACpB,OAAQA,GACN,KAAKC,IAAchJ,MACjB,OAAOD,IAAkBC,MAE3B,KAAKgJ,IAAc6nB,OACjB,OAAO9wB,IAAkBE,MAC3B,QACE,OAAOF,IAAkBgH,Y,oBC1SzBuE,GAAYhpB,YAAO8jB,IAAP9jB,EAAa,SAAArK,GAAQ,MAAQ,CAC7CoI,OAAQ,MACR0b,SAAU,EACVhU,SAAU,SACVxE,gBAJqCtL,EAALuK,MAITE,QAAQ4B,KAAK,KACpCnB,QAAS,MAWI,SAAS0xC,GAAwBj7C,GAAkD,IAADk7C,EAAAC,EAA9CC,EAAWp7C,EAAXo7C,YACjDj/C,EAAgCC,mBAAS,GAAEC,EAAAC,YAAAH,EAAA,GAApCq9C,EAAQn9C,EAAA,GAAEo9C,EAAWp9C,EAAA,GACpBg/C,EAAqBC,aAAmB,CAC9CC,kBAAmB,CAACC,KAAWC,kBADzBJ,iBAQR,GAAID,EAAYjiC,SAAWC,IAAoBya,WAE7C,OAAKwnB,EAEHx9C,cAACu7C,GAAY,CACXpyB,aAAco0B,EAAYp0B,aAC1BoxB,OAAQgD,EAAY35B,MACpB+tB,OAAmC,OAA3B4L,EAAYM,WACpBnC,MAAO6B,EAAY1sC,MANO7Q,cAAC89C,KAAmB,IAYpD,IAAM50B,EAAOq0B,EAAYp0B,aAAa4O,UACpCwlB,EAAYp0B,aAAa4O,UAAUrzB,OAAS,GAG9C,OACE1E,cAAC6zB,GAAS,CAAA3zB,SACRF,cAACW,IAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQlL,cAAe,SAAUsH,OAAQ,QAAS1I,SACnE,CAAC2sB,IAAaoD,iBAAiB1wB,SAASg+C,EAAYp0B,aAAayD,cAChE5sB,cAAAC,WAAA,CAAAC,SACEF,cAACW,IAAG,CACFC,GAAI,CACFiN,EAAG,EACHrB,QAAS,OACT5D,OAAQ,OACR0H,SAAU,OACVwe,eAAgB,UAChB5uB,SAEFF,cAACivB,GAAiB,CAChB9F,aAAco0B,EAAYp0B,aAC1BD,KAAMA,EACNgG,kBACgC,QADfmuB,EACfE,EAAYp0B,aAAawH,aAAK,IAAA0sB,OAAA,EAA9BA,EAAgCl+C,QAC9B,SAACyxB,GAAC,OAAKA,EAAEO,WAAaC,IAASC,kBAC/B,SAMV3wB,eAAAT,WAAA,CAAAC,SAAA,CACEQ,eAACq7C,KAAI,CACHj9C,MAAO68C,EACPK,eAAe,UACfC,UAAU,UACVh+C,SAtDS,SAAC6lB,EAAYo4B,GAChCN,EAAYM,IAsDFC,eAAa,EACbC,0BAAwB,EACxBr7C,QAAQ,aAAYb,SAAA,CAEpBF,cAACq8C,KAAG,CAAC16C,MAAM,gBAET,CAACkrB,IAAaoD,gBAAiBpD,IAAaC,WAAWvtB,SACvDg+C,EAAYp0B,aAAayD,eACtB5sB,cAACq8C,KAAG,CAAC16C,MAAM,8BAEd,CAACkrB,IAAaoD,gBAAiBpD,IAAaiD,MAAOjD,IAAaC,WAAWvtB,SAC3Eg+C,EAAYp0B,aAAayD,eACtB5sB,cAACq8C,KAAG,CAAC16C,MAAM,iBAGlBjB,eAACC,IAAG,CACFC,GAAI,CACFiN,EAAG,EACHrB,QAAS,OACT5D,OAAQ,OACR0H,SAAU,OACVwe,eAAgB,SAChBvtB,WAAY,UACZrB,SAAA,CAEY,IAAby7C,GACC37C,cAACivB,GAAiB,CAChB9F,aAAco0B,EAAYp0B,aAC1BD,KAAMA,EACNgG,kBACgC,QADfouB,EACfC,EAAYp0B,aAAawH,aAAK,IAAA2sB,OAAA,EAA9BA,EAAgCn+C,QAC9B,SAACyxB,GAAC,OAAKA,EAAEO,WAAaC,IAASC,kBAC/B,KAIM,IAAbsqB,GACC37C,cAAC+9C,GAAiB,CAChBptB,MAAOzH,EAAKyH,MAAMxxB,QAAO,SAACmpC,GAAC,OAAKA,EAAEzX,WAAaC,IAASC,aAG9C,IAAb4qB,GACC37C,cAACu7C,GAAY,CACXpyB,aAAco0B,EAAYp0B,aAC1BoxB,OAAQgD,EAAY35B,MACpB63B,cAAc,EACd9J,QAAQ,EACR+J,MAAO6B,EAAY1sC,gBAgBrC,IAAMktC,GAAoB,SAAH37C,GAAmD,IAA7CuuB,EAAKvuB,EAALuuB,MAI3B,OACE3wB,cAACW,IAAG,CAAC6L,QAAQ,OAAOlL,cAAc,SAASV,GAAI,CAAEgI,OAAQ,OAAQjF,MAAO,QAASzD,SAC/EF,cAAC4oB,KAAY,CACXjgB,IAAI,mDACJ6d,MAAO,4EACPqC,YAAa7oB,cAAC0wB,IAAsB,CAACC,MAAOA,S,mBC5KrC,SAASqtB,GAA4Bx9C,GAA2C,IAAxCyX,EAAIzX,EAAJyX,KACrDgmC,ECdK,WACL,IAAAC,EAA0D70B,eAAlD1J,EAAOu+B,EAAPv+B,QAA6Bw+B,GAAFD,EAAlB90B,mBAAoC80B,EAAhBC,kBAC7BC,EAAatiB,eAAbsiB,SACR9/C,EAA0BC,oBAAkB,GAAMC,EAAAC,YAAAH,EAAA,GAA3CD,EAAKG,EAAA,GAAE6/C,EAAQ7/C,EAAA,GACtBirB,EAAkClrB,oBAAkB,GAAMmrB,EAAAjrB,YAAAgrB,EAAA,GAAnDtY,EAASuY,EAAA,GAAE+lB,EAAY/lB,EAAA,GAmC9B,MAAO,CAAErrB,QAAO8S,YAAWmtC,oBAjCC,SAACrmC,GAA2B,OAAK,SAACsmC,GAC5D9O,GAAa,GAEbhvB,aACE+9B,aACE,CACEC,OAAQ,CACNC,WAAmB,OAAP/+B,QAAO,IAAPA,OAAO,EAAPA,EAASg/B,UACrBC,WAAmB,OAAPj/B,QAAO,IAAPA,OAAO,EAAPA,EAASgO,SACrBkxB,WAAmB,OAAPl/B,QAAO,IAAPA,OAAO,EAAPA,EAASk/B,WACrBC,MAAc,OAAPn/B,QAAO,IAAPA,OAAO,EAAPA,EAASm/B,MAChBC,WAAmB,OAAPp/B,QAAO,IAAPA,OAAO,EAAPA,EAAS+N,UACrBtX,OAAQ+nC,IAAqB,OAAS,SACtCa,UAAkB,OAAPr/B,QAAO,IAAPA,OAAO,EAAPA,EAASgO,UAEtBsxB,OAAQhnC,EAAKoX,UAAU6vB,WAAWC,UAEpClnC,EAAK3F,GAbPksC,EAcE,SAACh7C,EAAckH,GACf+kC,GAAa,GACT/kC,GAAe,KAARA,EACT6zC,EAAM7zC,GAIR0zC,EAAS56C,KArBXg7C,EAsBG,WACDH,GAAS,GACT5O,GAAa,UDpB+B2P,GAA1C/gD,EAAK4/C,EAAL5/C,MAAOigD,EAAmBL,EAAnBK,oBAAqBntC,EAAS8sC,EAAT9sC,UAMpC,OACEzQ,eAACC,IAAG,CACFC,GAAI,CACF4L,QAAS,OACTlL,cAAe,SACfgjB,SAAU,EACV1b,OAAQ,OACR0H,SAAU,SACV5E,QAAS,IACTxL,SAAA,CAEFQ,eAACw8C,KAAa,CAAC12B,MAAM,IAAI64B,UAAWr/C,cAACg4B,KAAiB,CAAC/f,KAAMA,IAAUrX,GAAI,CAAEi3B,UAAW,GAAI33B,SAAA,CAC1FF,cAACc,IAAU,CAACC,QAAQ,YAAY03C,WAAS,EAAAv4C,SACtC+X,EAAKtW,QAER3B,cAACc,IAAU,CAACC,QAAQ,QAAQ03C,WAAS,EAAAv4C,SAAC,yKAItCF,cAACW,IAAG,CAACC,GAAI,CAAEqC,UAAW,SAAUpC,GAAI,GAAIX,SACtCF,cAAC+uC,KAAa,CAAChuC,QAAQ,YAAYiuC,QAAS79B,EAAWwT,QAxBvC,WACtB25B,EAAoBrmC,EAApBqmC,EAA0B,SAAC5zC,GAAW,OAAKnB,OAAOyd,KAAKtc,OAuB+BxK,SAAC,6CAMpF7B,GACC2B,cAACs/C,KAAgB,CACf32C,IAAI,0CACJ42C,aAAc,IACdC,UAAU,EAAKt/C,SAEfQ,eAACqsB,KAAK,CAACC,SAAS,QAAO9sB,SAAA,CACrBF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAC,WAAmB,qI,cErD5C,SAASu/C,GAAgCj/C,GAEd,IADxCyX,EAAIzX,EAAJyX,KAEA,OACEjY,cAACW,IAAG,CACFC,GAAI,CACF4L,QAAS,OACTlL,cAAe,SACfgjB,SAAU,EACV1b,OAAQ,OACR0H,SAAU,UACVpQ,SAEFF,cAACk9C,KAAa,CACZt8C,GAAI,CACFg8B,EAAG,OACH/E,UAAW,EACX,yBAA0B,CAAEzJ,GAAI,GAChCtiB,gBAAiB,QAEnB0a,MAAO,IACP64B,UACE3+C,eAACU,IAAK,CAACqB,UAAW,MAAOpB,IAAI,OAAOE,WAAY,SAASrB,SAAA,CACvDF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAC,WAC5BF,cAAC0/C,KAAS,CACRz0B,UAAWC,IAAUC,MACrBwL,MAAQ1e,EAA+BoX,UAAUsH,MAAMoC,gBAI7D4mB,OACE3/C,cAACW,IAAG,CAACoN,UAAU,MAAMyqC,IAAI,UAAUhqB,IAAI,qDCDlC,SAASoxB,GAA6Bp/C,GAGlB,IAFjCyX,EAAIzX,EAAJyX,KACAknB,EAAW3+B,EAAX2+B,YAEAlgC,qBAAU,WACR,GAAIgZ,EAAKtV,OAAS2lB,IAAkBgH,UAAW,CAC7C,IAAM9Q,EAAYvG,EAA+BoX,WACrC,OAAR7Q,QAAQ,IAARA,OAAQ,EAARA,EAAU0gC,aACZz+B,aACEo/B,aACErhC,EAAS0gC,WAAWY,OACpBthC,EAAS0gC,WAAWa,OACpBvhC,EAAS0gC,WAAWC,SAHtBU,EAIE,kBAAMvmB,QAAQC,IAAI,gBAIzB,CAACthB,IAMJ,OAAQA,EAAKtV,MACX,KAAK2lB,IAAkBgH,UACrB,IAAMD,EAAapX,EAA+BoX,UAClD,GAAa,OAATA,QAAS,IAATA,OAAS,EAATA,EAAW6vB,WACb,OAAQ7vB,EAAU6vB,WAAWY,QAC3B,IAAK,KACH,OAAQ7nC,EAAKqD,QACX,KAAKC,IAAoBya,WACvB,OAAOh2B,cAACy/C,GAAgC,CAACxnC,KAAMA,IAEjD,KAAKsD,IAAoBC,KACzB,KAAKD,IAAoBE,KACvB,OAAOzb,cAACg+C,GAA4B,CAAC/lC,KAAMA,KAKrD,OAAOjY,cAACioB,GAAsB,CAACvd,IAAK2kB,EAAU3kB,IAAKyd,SAAUlQ,EAAK3F,GAAI3P,KAAMsV,EAAKtV,OAEnF,KAAK2lB,IAAkBkJ,IACrB,OAAOxxB,cAAC2lC,GAAQ,CAAC1S,MAAQhb,EAA4Bgb,MAAOkH,UAAWliB,EAAK3F,KAC9E,KAAKgW,IAAkBE,MACvB,KAAKF,IAAkBC,MACrB,OACEvoB,cAACioB,GAAsB,CACrBvd,IAAMuN,EAA4Bgb,MAAMvoB,IACxCyd,SAAUlQ,EAAK3F,GACf3P,KAAMsV,EAAKtV,OAGjB,KAAK2lB,IAAkB0K,KACrB,OACEhzB,cAACk/B,GAA2B,CAC1Bx0B,IAAMuN,EAA4Bgb,MAAMvoB,IACxCyd,SAAUlQ,EAAK3F,GACfoW,SAAS,EACTyW,YAxCgB,WAClBA,GAAaA,OA0CjB,KAAK7W,IAAkBmL,OACrB,OAAOzzB,cAACggD,GAAYjhD,aAAA,GAAMkZ,IAC5B,KAAKqQ,IAAkBkL,IACrB,IAAMP,EAAShb,EAA4Bgb,MAC3C,OACEjzB,cAACigD,GAAW,CAACt3C,IAAI,8CAA8C6d,MAAM,GAAEtmB,SACrEF,cAAC+uB,IAAM,CAAC9iB,MAAM,UAAUlL,QAAQ,YAAYwC,OAAQ,SAAUmL,KAAMukB,EAAMvoB,IAAIxK,SAAC,qBAMrF,KAAKooB,IAAkB4K,SACrB,OAAOlzB,cAACo9C,GAAwB,CAACG,YAAatlC,IAChD,QACE,OAAOjY,cAAAC,WAAA,KAIb,IAAM+/C,GAAe,SAAH79C,GAAQA,EAAFmQ,GAAqC,IAAjC2gB,EAAK9wB,EAAL8wB,MAC1B,OACEjzB,cAACigD,GAAW,CACVz5B,MAAM,6DACN7d,IAAI,8CAA6CzI,SAEjDF,cAAC65C,KAAU,CAAA35C,SACR,SAAC45C,EAAU/T,EAASgU,EAAe5oC,EAAW60B,GAAa,OAC1DhmC,cAAC+uC,KAAa,CACZC,QAAS79B,EACTlF,MAAM,UACNlL,QAAQ,YACR4jB,QAAS,kBAAMm1B,EAAS7mB,EAAM3gB,GAAI2gB,EAAM9B,SAAU8B,EAAMhC,WAAU/wB,SACnE,4BAeL+/C,GAAc,SAAH79C,GAAoD,IAA9CokB,EAAKpkB,EAALokB,MAAO7d,EAAGvG,EAAHuG,IAAKzI,EAAQkC,EAARlC,SACjC,OACEF,cAACW,IAAG,CAACC,GAAI,CAAEgI,OAAQ,OAAQjF,MAAO,QAASzD,SACzCF,cAACk9C,KAAa,CAACt8C,GAAI,CAAEg8B,EAAG,EAAG9wB,gBAAiB,OAAQ+rB,UAAW,GAAI33B,SACjEQ,eAAC4+C,KAAgB,CAAC32C,IAAKA,EAAIzI,SAAA,CACzBF,cAACc,IAAU,CAACC,QAAQ,YAAY03C,WAAS,EAAAv4C,SACtCsmB,IAEFtmB,U,yBC1JXo/B,GAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EA+BA,IAsDe48C,GAtDiB,SAAH1/C,GAKQ,IAJnCyX,EAAIzX,EAAJyX,KACA0C,EAAOna,EAAPma,QACA1c,EAAQuC,EAARvC,SACAiC,EAAQM,EAARN,SAEMwlB,EAAqBC,cAC3BrnB,EAA0BC,mBAGvB,CAAE4S,UAAiC,QAAlB,OAAJ8G,QAAI,IAAJA,OAAI,EAAJA,EAAM+gB,aAAqCmnB,aAAc,OAAO3hD,EAAAC,YAAAH,EAAA,GAHzEuT,EAAKrT,EAAA,GAAEi0B,EAAQj0B,EAAA,GAoCtB,GA/BAS,qBAAU,WACR,GAAQ,OAAJgZ,QAAI,IAAJA,OAAI,EAAJA,EAAM+gB,YAAa,CACrB,IAAMyN,EAAW/gB,EAAmB06B,UAAc,OAAJnoC,QAAI,IAAJA,OAAI,EAAJA,EAAM+gB,aAEpD,GAAIyN,GAAYA,EAAS/hC,OAAS,EAAG,CACnC,IAAM27C,EAAc5Z,EAAStnC,QAAO,SAAC8E,GAAC,OAAKA,EAAEqX,SAAWC,IAAoBya,cAGxEqqB,EAAY37C,OAAS,EACvB+tB,EAAS,CAAEthB,WAAW,EAAOgvC,aAAcE,IAE3C5tB,EAAS,CAAEthB,WAAW,EAAOgvC,aAAc,YAExC1tB,EAAS,CAAEthB,WAAW,EAAOgvC,aAAc,UAEnD,CAACloC,IAKJhZ,qBAAU,WAAO,IAADqhD,EACVzuC,EAAMV,WAAoC,OAAvBU,EAAMsuC,cAC7B,YAAoBG,KAAA/Z,aAAAjH,KAAAiE,MAAnB,SAAAiD,IAAA,IAAA1nC,EAAA,OAAAwgC,KAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,UACM/jB,GAAS0C,EAAO,CAAA+rB,EAAA1K,KAAA,eAAA0K,EAAArE,OAAA,iBACJ,GACJ,OADTvjC,EAAQmZ,IACSnZ,EAAMwc,SAAWC,IAAoBwhB,SAAQ,CAAA2J,EAAA1K,KAAA,eAAA0K,EAAArE,OAAA,iBAElEpkC,EAASa,GAAO,wBAAA4nC,EAAAzC,UAAAuC,QACjBM,MAAA,KAAAriC,WAND,KAOC,CAACkW,EAAS9I,EAAMV,YAEfU,EAAMV,UAAW,OAAOnR,cAACW,IAAG,CAAAT,SAAC,eAEjC,IAAMqgD,MAAgB,OAAJtoC,QAAI,IAAJA,OAAI,EAAJA,EAAM+gB,eAAgBnnB,EAAMV,YAAaU,EAAMsuC,cAC3DK,KACJvoC,IAAQ,CAACsD,IAAoByhB,OAAQzhB,IAAoBwhB,UAAUx9B,SAAS0Y,EAAKqD,SAInF,OAAOtb,cAACW,IAAG,CAAAT,SAAEA,EAASqgD,EAAW1uC,EAAMsuC,aAAcK,MAU1CC,GAA8B,SAAHt+C,GAGC,IAFvCyhB,EAAKzhB,EAALyhB,MACAzC,EAAgBhf,EAAhBgf,iBAGMuE,GADWmY,cACUlY,eAM3B,OAAK/B,EAGH5jB,cAACW,IAAG,CAACC,GAAI,CAAEg8B,EAAG,OAAQ/uB,EAAG,GAAI3N,SAC3BF,cAAC2uB,IAAI,CAAC/tB,GAAI,CAAEiN,EAAG,GAAI3N,SACjBQ,eAACU,KAAK,CAACoL,QAAQ,OAAOjL,WAAY,SAASrB,SAAA,CACzCQ,eAACC,IAAG,CAAAT,SAAA,CACFQ,eAACI,IAAU,CAAC23C,WAAS,EAAC13C,QAAQ,KAAKkC,UAAW,SAAS/C,SAAA,CAAC,wDACN,IAC7B,KAAb,OAAL0jB,QAAK,IAALA,OAAK,EAALA,EAAOlf,QAAe,qBAAuB,wBAAwB,OAExE1E,cAAC6mB,IAAS,CAAA3mB,SACRQ,eAACynC,KAAI,CAACuY,OAAK,EAAAxgD,SAAA,CACTF,cAACy5B,KAAQ,CAACinB,OAAK,EAAC9/C,GAAI,CAAEkL,gBAAiB,WAAY5L,SACjDQ,eAACU,KAAK,CACJqB,UAAU,MACVk+C,aAAc,SACd7xB,eAAgB,gBAChBnrB,MAAO,OAAOzD,SAAA,CAEdQ,eAACU,KAAK,CAACqB,UAAU,MAAMk+C,aAAc,SAAUr1C,QAAS,EAAEpL,SAAA,CACxDF,cAAC4gD,KAAe,CAAC30C,MAAM,YACvBjM,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAC,2BAAiC,QAG7DihB,GAAoBnhB,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAC,cAIhD,OAAL0jB,QAAK,IAALA,OAAK,EAALA,EAAO9hB,KAAI,SAAC++C,GAAM,OACjB7gD,cAACy5B,KAAQ,CAACinB,OAAK,EAAAxgD,SACbF,cAAC8gD,KAAc,CAACn8B,QAAS,kBApCrB1M,EAoCwC4oC,OAnC5Dn7B,EAAmBq7B,WAAW9oC,EAAKkiB,WADhB,IAACliB,GAoCgD/X,SAClDQ,eAACU,KAAK,CACJqB,UAAU,MACVk+C,aAAc,SACd7xB,eAAgB,gBAChBnrB,MAAO,OAAOzD,SAAA,CAEdF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAE2gD,EAAOl/C,QAAoB,IACxD3B,cAACW,IAAG,CAAAT,UACAihB,GACAnhB,cAACg4B,KAAiB,CAAC/f,KAAM4oC,YAXdA,EAAOhwC,gBAqBpC7Q,cAACW,IAAG,CACFoN,UAAU,MACVyqC,IAAI,gBACJhqB,IAAK,wDACL5tB,GAAI,CAAE6tB,UAAW,QAASmL,GAAI,EAAG/4B,GAAI,YAvD5Bb,cAAAC,WAAA,KC3Dd,SAAS+gD,GAAuBxgD,GAKL,IAADk4B,EAJ/B3S,EAAQvlB,EAARulB,SACAuP,EAAY90B,EAAZ80B,aACAr3B,EAAQuC,EAARvC,SACA0c,EAAOna,EAAPma,QAEQwG,EAAqBL,cAArBK,iBACRmT,EAAwCC,aAAgB,4BAA4B,GAAKC,EAAA/1B,YAAA61B,EAAA,GAAlFpP,EAAYsP,EAAA,GAAEysB,EAAezsB,EAAA,GACpCl2B,EAAsCC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAA9Ck5B,EAAWh5B,EAAA,GAAE0iD,EAAc1iD,EAAA,GAC5BuM,EAAQgW,cACd0I,EAA0ClrB,mBAAS,KAAImrB,EAAAjrB,YAAAgrB,EAAA,GAAhDgrB,EAAa/qB,EAAA,GAAEgrB,EAAgBhrB,EAAA,GAEtCzqB,qBAAU,WACJkiB,IAAqB+D,GAAc+7B,GAAgB,KACtD,CAAC9/B,IAEJliB,qBAAU,WACR,IAAMq2C,EAAYxsC,SAASysC,eAAe,mBACtCC,EAAc,GACdF,IACFE,EAAcF,EAAUG,cAIxBf,EADEvzB,EACe,GAAKq0B,EACbtwB,EACQ,GAAKswB,EAEL,IAAMA,MAI3Bv2C,qBAAU,WAAO,IAADq/B,EAC2CC,GAA7C,OAARxY,QAAQ,IAARA,GAAc,QAANuY,EAARvY,EAAU9N,YAAI,IAAAqmB,OAAN,EAARA,EAAgB37B,QAAS2lB,IAAkB4K,SAE7CzS,aAAS0gC,aAAkC,OAARp7B,QAAQ,IAARA,GAAc,QAANwY,EAARxY,EAAU9N,YAAI,IAAAsmB,OAAN,EAATA,EAA2CpV,eAE7E1I,aAAS2gC,gBAGX,OAAO,WACL3gC,aAAS2gC,mBAEV,CAAS,OAARr7B,QAAQ,IAARA,OAAQ,EAARA,EAAU9N,OAEd,IAAMopC,EAAkB,WACtB,IAAIviD,EAAQinB,EAAS9N,KACR,MAATnZ,GAAiBA,EAAMwc,SAAWC,IAAoBwhB,UAEtDj+B,EAAM6D,OAAS2lB,IAAkB0K,OAE/Bl0B,EAA4B83B,YAC/B93B,EAA4B83B,WAAY,EACzC34B,EAASa,MAIP23C,EACJz2C,cAAC6mB,IAAS,CAAA3mB,SACRF,cAAC2uB,IAAI,CACH/tB,GAAI,CACFg8B,EAAG,EACH/uB,EAAG,EACH/B,gBAAiBf,EAAME,QAAQ4B,KAAK,KACpC0D,UAAW,SAACxF,GAAK,OAAKA,EAAMyF,cAAc8wC,IAC1C79C,OAAQ,QACRvD,SAEA6lB,GAA8B,OAAV,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAU9N,MAGtBvX,eAACU,IAAK,CACJqB,UAAW,MACXlB,WAAW,UACXX,GAAI,CAAEgI,OAASsc,EAAuC,OAA3B,uBAAoChlB,SAAA,CAE/DF,cAAC6kB,EAAuB,CACtBG,cAAewS,EACfvS,eAAgB,WACdi8B,GAAgB1pB,IAElBjd,QAAiB,OAARwL,QAAQ,IAARA,OAAQ,EAARA,EAAUxL,QACnBmJ,WAAoB,OAARqC,QAAQ,IAARA,GAAoB,QAAZ2S,EAAR3S,EAAUvL,kBAAU,IAAAke,OAAZ,EAARA,EAAsBpmB,GAClC4S,aAAcA,IAEhBllB,cAACW,IAAG,CAACC,GAAI,CAAE+C,MAAO,QAASzD,SACzBF,cAACoB,IAAK,CAACqB,UAAW,SAAUqsB,eAAe,eAAevtB,WAAW,UAASrB,SAC5EF,cAACkgD,GAAuB,CAACjiD,SAAUA,EAAU0c,QAASA,EAAS1C,KAAM8N,EAAS9N,KAAK/X,SAChF,SAACqgD,EAAWJ,EAAcK,GAAQ,OACjC9/C,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACs3B,GAAuB,CACtBjC,aAAsB,OAARtP,QAAQ,IAARA,OAAQ,EAARA,EAAU9N,KACxBuf,YAAaA,EACblC,aAAcA,EACdpQ,aAAcA,EACduS,OAAQ8oB,GAAaC,EACrBjpB,aAAc,WACZ9W,aACE8gC,aAAmB,CACjBp1B,UAAmB,OAARpG,QAAQ,IAARA,OAAQ,EAARA,EAAU9N,MAA+BkR,aACpDq4B,SAAU,kBAAMP,GAAiB/7B,QAIvCwS,gBAAiB,kBAAMwpB,GAAgB1pB,MAGzCx3B,cAACkO,IAAO,IACRxN,eAAC+gD,IAAS,CAACvzB,SAAU,KAAMwzB,gBAAc,EAAAxhD,SAAA,CACvCF,cAACW,IAAG,CACFqC,MAAO,CAAE4F,OAAO,gBAAD3H,OAAkBwzC,EAAa,QAC9C7zC,GAAI,CACFkL,gBAAiBf,EAAME,QAAQ4B,KAAK,MAEtCyF,GAAG,aAAYpS,SAEdqgD,EACCvgD,cAACygD,GAA2B,CAC1B78B,MAAOu8B,EACPh/B,iBAAkBA,IAElBq/B,EACFxgD,cAAC2hD,GAAa,IAEdjhD,eAACU,IAAK,CAACqB,UAAW,MAAOmG,OAAO,MAAK1I,SAAA,CACnCF,cAAC4/C,GAA6B,CAC5B3nC,KAAM8N,EAAS9N,KACfknB,YAAakiB,KAEblgC,GACAnhB,cAAC4hD,GAAW,CAAC77B,SAAUA,EAAU/E,UAAU,SAKlDG,EACCnhB,cAAC6hD,IAAM,CACLx+C,SAAS,QACT4I,MAAM,UACNrL,GAAI,CAAE2L,IAAK,OAAQu1C,OAAQ,EAAG70B,QAASliB,EAAME,QAAQ4B,KAAK,MAAO3M,SAEjEF,cAAC4hD,GAAW,CAAC77B,SAAUA,EAAU/E,SAAUG,MAG7CnhB,cAAC29B,GAAa,oBA3E9B39B,cAACinC,KAAkB,QAyF3B,OACEjnC,cAAAC,WAAA,CAAAC,SACGglB,EACCllB,cAACiuB,IAAM,CACLjH,KAAM9B,EACNxjB,WAAW,EACXkwC,YAAU,EACVhxC,GAAI,CACFyO,OAAQ,KACR,mBAAoB,CAAEutB,EAAG,IACzB18B,SAEDu2C,IAGHz2C,cAACW,IAAG,CAAAT,SAAEu2C,MAWd,IAAMmL,GAAc,SAAHz/C,GAAkD,IAA5C4jB,EAAQ5jB,EAAR4jB,SAAU/E,EAAQ7e,EAAR6e,SAC/B,OACEtgB,eAACU,IAAK,CACJqB,UAAWue,EAAW,MAAQ,SAC9Bzf,WAAY,SACZo/C,aAAc,gBAAgBzgD,SAAA,CAE7B8gB,GAAYhhB,cAACu9B,GAAqB,CAACC,OAAQxc,IAC5ChhB,cAACm+B,GAA2B,CAACpY,SAAUA,EAAU/E,SAAUA,IAC1DA,GAAYhhB,cAAC29B,GAAa,QAK3BgkB,GAAgB,WACpB,OACE3hD,cAACW,IAAG,CAACC,GAAI,CAAEg8B,EAAG,OAAQ/uB,EAAG,GAAI3N,SAC3BF,cAAC2uB,IAAI,CAAC/tB,GAAI,CAAEiN,EAAG,GAAI3N,SACjBF,cAAC4oB,KAAY,CACXpC,MAAM,4CACNqC,YAAY,GACZlgB,IAAI,kD,wSClPd,SAASo5C,IACP,IAAMh3C,EAAQgW,cACRihC,EAA4B,QAApBj3C,EAAMtI,UAEdw/C,EAAiB,SAACC,GAAgB,MAAM,CAC5CC,eAAgB,YAChBC,mBAAoB,SACpBC,iBAAkB,YAClBv2C,gBAAiB4D,YAAM3E,EAAME,QAAQ4B,KAAK,KAAM,IAChDy1C,gBAAgB,+BAADrhD,OAAiCihD,EAAQ,YAG1D,OACEliD,cAACuiD,IAAY,CACXC,OAAQ,CACN,sBAAuB,CACrB,gBAAiB,CACfC,eAAgB,YAChB32C,gBAAiB4D,YAAM3E,EAAME,QAAQ4B,KAAK,KAAM,MAIlD,kBAAmB,CACjBjE,OAAQ,kBACR8C,QAASX,EAAMO,QAAQ,EAAG,GAC1BQ,gBAAiB,eAEnB,0BAA2B,CAAEU,QAAS,QACtC,2BAA4B,CAC1B5D,OAAQ,kBACR8C,QAAS,EACT4Y,SAAU,EACV9X,QAAS,OACTjL,WAAY,SACZ,OAAQ,CACNiL,QAAS,OACTjL,WAAY,UAEd,qBAAsB,CACpB+iB,SAAU,GAEZ,2BAA4B,CAC1B3gB,MAAOoH,EAAMO,QAAQ,GACrB1C,OAAQmC,EAAMO,QAAQ,GACtBwjB,eAAgB,SAChB4C,WAAY3mB,EAAMO,QAAQ,GAC1BK,aAAcZ,EAAMa,MAAMD,eAK9B,iBAAkB,CAAE+2C,QAAS,QAC7B,kCAAmC,CACjC/+C,MAAO,OACPiF,OAAQ,OACR,sBAAuBq5C,EAAe,oBACtC,uBAAwBA,EAAe,oBACvC,qBAAsBA,EAAe,UAEvC,qBAAsB,CACpBv2C,QAASX,EAAMO,QAAQ,GACvBK,aAAcZ,EAAMa,MAAM+2C,eAC1B,uBAAsB5jD,YAAA,CACpBuN,KAAMvB,EAAMO,QAAQ,GACpBgE,MAAO,QACJ2yC,EAAeD,EAAQ,oBAAsB,mBAElD,uBAAsBjjD,YAAA,CACpBuQ,MAAOvE,EAAMO,QAAQ,GACrBgB,KAAM,QACH21C,EAAeD,EAAQ,iBAAmB,2BA4E5CY,MAzDf,SAAsBpiD,GAOC,IANrBqiD,EAAMriD,EAANqiD,OACAC,EAAUtiD,EAAVsiD,WACAC,EAAaviD,EAAbuiD,cACA/a,EAAMxnC,EAANwnC,OACA/gB,EAAOzmB,EAAPymB,QACGlY,EAAKc,YAAArP,EAAAsP,GAER7Q,qBAAU,WAEN6J,SAAS6J,KAAK3P,MAAMsN,SADlB03B,EAC6B,SAEA,UAEhC,CAACA,IAEJ,IAIMgb,EAAiB,CAHrBhjD,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAA,GAAAe,OAAK6hD,EAAa,EAAC,OAAA7hD,OAAM4hD,EAAOn+C,WAUjE,OACEhE,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAAC+hD,EAAmB,IAEnB/Z,GACChoC,cAACijD,IAAQlkD,YAAA,CACPg1B,kBAAmB,IACnBmvB,QAASL,EAAOC,GAChBK,QACoB,IAAlBN,EAAOn+C,QAAgBo+C,IAAeD,EAAOn+C,OAAS,OAClDC,EACAk+C,GAAQC,EAAa,GAAKD,EAAOn+C,QAEvC0+C,QACoB,IAAlBP,EAAOn+C,QAA+B,IAAfo+C,OACnBn+C,EACAk+C,GAAQC,EAAaD,EAAOn+C,OAAS,GAAKm+C,EAAOn+C,QAEvD2+C,eAAgBp8B,EAChBq8B,kBAAmB,kBAAMP,GAAeD,EAAaD,EAAOn+C,OAAS,GAAKm+C,EAAOn+C,SACjF6+C,kBAAmB,kBAAMR,GAAeD,EAAa,GAAKD,EAAOn+C,SACjEs+C,eAAgBA,EAChBQ,gBA5Ba,CACnBC,QAAS,CACPp0C,OAAQ,QA2BAN,QCzIP,SAAS20C,EAAiBljD,GAAqD,IAAlDwmB,EAAIxmB,EAAJwmB,KAAMmL,EAAO3xB,EAAP2xB,QAAS0wB,EAAMriD,EAANqiD,OACjDvkD,EAA0CC,mBAAiB,GAAEC,EAAAC,YAAAH,EAAA,GAAtDqlD,EAAanlD,EAAA,GAAEolD,EAAgBplD,EAAA,GAEtC,OACEwB,cAAC4iD,EAAa,CACZC,OAAQA,EACRC,WAAYa,EACZZ,cAAea,EACf5b,OAAQhhB,EACRC,QAAS,kBAAMkL,GAAQ,MCPd,SAAS0xB,EAAarjD,GAAkC,IAA/BqiD,EAAMriD,EAANqiD,OACtCvkD,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GAMdslD,EAAS,SAACC,GACd,MAAM,gBAAN9iD,OAAuB8iD,IAGzB,OACErjD,eAACiuB,IAAI,CAAAzuB,SAAA,CACHQ,eAACsjD,IAAc,CAACr/B,QAVD,WACjBwN,GAAQ,IAS+BvxB,GAAI,CAAE4L,QAAS,QAAStM,SAAA,CAC3DF,cAACW,IAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQlL,cAAe,UAAWpB,SACpDF,cAACikD,IAAW,CAACrjD,GAAI,CAAE47C,KAAM,YAAat8C,SACpCF,cAACc,IAAU,CAACiN,UAAU,MAAMhN,QAAQ,YAAWb,SAAC,8DAKpDF,cAACo6C,IAAS,CACRrsC,UAAU,MACVnN,GAAI,CAAE+C,MAAO,IAAKiF,OAAQ,KAC1Bm7C,MAAOD,EAAOjB,EAAO,IACrBrK,IAAI,QAGRx4C,cAAC0jD,EAAiB,CAChBb,OAAQA,EAAO/gD,KAAI,SAACmC,GAClB,OAAO6/C,EAAO7/C,MAEhBkuB,QAASA,EACTnL,KAAMA,O,qDCnCRk9B,EAAiBr5C,YAAO2Y,IAAP3Y,EAAkB,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,MAAQ,CACvDwF,UAAWxF,EAAMyF,cAAc2zC,GAC/Bx4C,aAAcZ,EAAMa,MAAMD,aAC1BksB,UAAW,OAEX,6BAA8B,CAAE9rB,WAAY,OAAQwE,UAAW,YAYlD,SAAS6zC,EAAgBjiD,GAKb,IAJzB0R,EAAK1R,EAAL0R,MACAgQ,EAAQ1hB,EAAR0hB,SACAwgC,EAAQliD,EAARkiD,SACApmD,EAAQkE,EAARlE,SAEA,OACEyC,eAACwjD,EAAc,CACbxC,gBAAc,EACd79B,SAAUA,IAAahQ,EAAMklB,WAC7B96B,SAAUA,EAAS4V,EAAMklB,YAAY74B,SAAA,CAErCF,cAAC+jB,IAAgB,CAACugC,eAAa,EAACtgC,WAAYhkB,cAACikB,IAAU,CAACrjB,GAAI,CAAEqL,MAAO,aAAgB/L,SACnFF,cAACc,IAAU,CAAAZ,SAAEmkD,EAAS79B,UAExBxmB,cAACokB,IAAgB,CAAAlkB,SACfF,cAACW,IAAG,CAACC,GAAI,CAAE+C,MAAO,OAAQ2M,SAAU,UAAWpQ,SAC7CF,cAAC2oB,IAAe,CAACje,IAAK25C,EAAS35C,IAAKge,SAAS,WCjCxC,SAAS67B,EAAiB/jD,GAAwC,IAArCgkD,EAAShkD,EAATgkD,UAC1ClmD,EAAgCC,oBAA2B,GAAMC,EAAAC,YAAAH,EAAA,GAA1DulB,EAAQrlB,EAAA,GAAEgnB,EAAWhnB,EAAA,GAEtBI,EAAe,SAAC6lD,GAAa,OAAK,SAAC3gC,EAA6B2B,GACpED,IAAYC,GAAag/B,KAE3B,OACE/jD,eAACC,IAAG,CAAAT,SAAA,CACFF,cAACc,IAAU,CAACC,QAAQ,YAAY03C,WAAS,EAAAv4C,SAAC,cAG1CF,cAACoB,IAAK,CAACqB,UAAU,SAASpB,IAAK,EAAEnB,SAC9BskD,EAAU1iD,KAAI,SAACuiD,EAAUxwC,GAAK,OAC7B7T,cAACokD,EAAgB,CAEfvwC,MAAOA,EACP5V,SAAUW,EACVylD,SAAUA,EACVxgC,SAAUA,GAJLhQ,W,uDCXX6wC,EAAY75C,YAAO8jB,IAAP9jB,EAAa,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,MAAQ,CAC7Ce,gBAAiB,UACjByE,UAAWxF,EAAMyF,cAAcm0C,IAC/Bh5C,aAAcZ,EAAMa,MAAMC,eAC1BW,QAAS,OACTlL,cAAe,SACfsH,OAAQ,OACRjF,MAAO,WAOM,SAASihD,EAAQziD,GAA+B,IAA5BkU,EAAQlU,EAARkU,SACzBwuC,EAAaC,cAAbD,SASR,OAPA5lD,qBAAU,WACR4lD,EAAS,CACPE,aAAa,UAAD9jD,OAAYoV,EAAS1U,OACjCqjD,UAAWjnB,IAAeknB,QAAQC,SAEnC,CAAC7uC,IAGFrW,cAAC0kD,EAAS,CAAAxkD,SACRF,cAACikD,IAAW,CAACrjD,GAAI,CAAEgI,OAAQ,OAAQjF,MAAO,QAASzD,SACjDF,cAAC6mB,IAAS,CAACjmB,GAAI,CAAEgI,OAAQ,CAAEylB,GAAI,OAAQC,GAAI,SAAWpuB,SACpDQ,eAACU,IAAK,CAACkK,QAAS,EAAEpL,SAAA,CACfmW,EAAS0tC,MAAMr/C,OAAS,GAAK1E,cAAC6jD,EAAa,CAAChB,OAAQxsC,EAAS0tC,QAE7D1tC,EAASmuC,WAAanuC,EAASmuC,UAAU9/C,OAAS,GACjD1E,cAACukD,EAAiB,CAACC,UAAWnuC,EAASmuC,YAGzCxkD,cAACW,IAAG,CAACC,GAAI,CAAEqC,UAAW,QAAS/C,SAC7BF,cAACmlD,EAAgB,MAGlB9uC,EAASmuC,WAAanuC,EAASmuC,UAAU9/C,OAAS,GACjDhE,eAACC,IAAG,CAAAT,SAAA,CACFF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAC,qBAC5BQ,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAAC,gNAGE,mBAWhD,IAAMilD,EAAmB,WACvB,IAAMvnB,EAAWC,cACTunB,EAAmBC,cAAnBD,eAMR,OAAKA,GAAqC,KAAnBA,EAGrBplD,cAAC+uB,IAAM,CAAChuB,QAAQ,OAAO4jB,QAPL,WAClBiZ,EAASG,IAAeknB,QAAQC,OAMYhlD,SAAC,0BAHMF,cAAAC,WAAA,K,kBCxDxC,SAASqlD,EAAU9kD,GAAgD,IAA7CwmB,EAAIxmB,EAAJwmB,KAAMC,EAAOzmB,EAAPymB,QAAS5Q,EAAQ7V,EAAR6V,SAC5CggB,EAAc,SAAC/yB,GACnB2jB,GAAWA,KAGb,OACEvmB,eAACqmB,IAAM,CACLC,KAAMA,EACNC,QAASoP,EACT8E,OAAO,QACPjU,WAAY,CAAEC,aAAa,GAC3B/W,WAAY,CACVxP,GAAI,CACF+C,MAAO,CAAE0qB,GAAI,EAAGC,GAAI,OAEtBpuB,SAAA,CAEFQ,eAACU,IAAK,CAACyM,EAAG,IAAKpL,UAAU,MAAMlB,WAAW,SAASX,GAAI,CAAEmL,WAAY,WAAY7L,SAAA,CAC/EF,cAACymB,IAAO,CAACD,MAAM,SAAQtmB,SACrBF,cAAC8zB,IAAU,CAACnP,QAAS0R,EAAaz1B,GAAI,CAAE4vB,GAAI,GAAItwB,SAC9CF,cAACo7B,IAAK,QAGV16B,eAACI,IAAU,CAACC,QAAQ,KAAKH,GAAI,CAAEyP,GAAI,KAAMnQ,SAAA,CAAC,UAChCmW,EAAS1U,YAIrB3B,cAAC4kD,EAAQ,CAACvuC,SAAUA,S,8KCkFXkvC,EAhIiB16C,YAAO,MAAPA,EAAc,SAAArK,GAAgB,IAAbuK,EAAKvK,EAALuK,MACzCi3C,EAA4B,QAApBj3C,EAAMtI,UAEpB,MAAO,CACL,iiDACE,CACE+iD,KAAMz6C,EAAME,QAAQiiB,QAAQI,MAEhC,8kBACE,CACErhB,MAAOlB,EAAME,QAAQiiB,QAAQI,MAEjC,iiDACE,CACEm4B,OAAQ16C,EAAME,QAAQiiB,QAAQI,MAElC,eAAgB,CACdm4B,OAAQ16C,EAAME,QAAQb,KAAK8iB,SAE7B,iCAAkC,CAChCs4B,KAAMz6C,EAAME,QAAQb,KAAK8iB,SAE3B,8EAA+E,CAC7E,UAAW,CAAEw1B,QAAS,SAExB,wBAAyB,CACvBhyC,OAAQ,OACRf,aAAa,aAAD1O,OAAe8J,EAAME,QAAQ4B,KAAK,QAC9C,gBAAiB,CACf,uBAAwB,CACtB0kC,YAAaxmC,EAAMO,QAAQ,KAK/B,WAAY,CACVI,QAAS,EACTc,QAAS,OACTjL,WAAY,SACZutB,eAAgB,SAChBnjB,aAAc,EACdM,MAAOlB,EAAME,QAAQb,KAAK8iB,SAI5B,yBAA0B,CACxBvpB,MAAO,GACPiF,OAAQ,IAIV,qBAAoB7J,wBAAA,GACfgM,EAAMI,WAAWu6C,WAAS,IAC7Bz5C,MAAOlB,EAAME,QAAQb,KAAK8iB,QAC1B,eAAgB,CACdu4B,OAAQ16C,EAAME,QAAQb,KAAK8iB,WAG/B,yBAAwBnuB,YAAA,GAClBijD,GAAS,CACX1yC,MAAO,eACPhD,KAAM,oBAGV,4CAA6C,CAC3C,qBAAsB,CACpBZ,QAAS,EACTc,QAAS,OACTjL,WAAY,SACZutB,eAAgB,WAGpB,iBAAkB,CAChB,qBAAsB,CACpBnjB,aAAc,EACdM,MAAOlB,EAAME,QAAQb,KAAKnI,SAC1B0jD,YAAa,yBACb75C,gBAAiBf,EAAME,QAAQ8G,OAAO6zC,MACtC,eAAgB,CAAEH,OAAQ16C,EAAME,QAAQb,KAAKnI,WAE/C,uBAAwB,CACtByJ,QAAS,EACThI,UAAW,EACXgN,OAAQ,OACR+d,UAAW,IACXne,SAAU,OACVC,UAAWxF,EAAMyF,cAAcC,IAC/B9E,aAAcZ,EAAMa,MAAMD,aAC1BG,gBAAiBf,EAAME,QAAQc,WAAWyD,OAE5C,oBAAqB,CACnBvD,MAAOlB,EAAME,QAAQb,KAAK8iB,SAI5B,aAAc,CACZ,uBAAwB,CAAExhB,QAAS,EAAGc,QAAS,QAC/C,oBAAqB,CACnB7I,MAAO,GACPiF,OAAQ,GACR4D,QAAS,OACTjL,WAAY,SACZutB,eAAgB,WAIpB,8BAA+B,CAC7B,uBAAwB,CAAEpjB,QAAS,GACnC,oBAAqB,CACnBjI,OAAQ,EACRkI,aAAc,EACd,gBAAiB,CAAE+E,OAAQ,qBAI/B,oCAAqC,CACnC,uBAAwB,CACtBhF,QAASX,EAAMO,QAAQ,EAAG,IAE5B,oBAAqB,CACnBI,QAASX,EAAMO,QAAQ,GAAK,a,2BCjHlCu6C,EAAc,CAAC,QAAS,SAAU,UAAW,SAAU,WAEvDC,EAAY,CAChB,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QAEIC,EAAW,CAAC,YAAa,YAAa,YAAa,YAAa,YAAa,aAE5E,SAASC,IAEdC,KAAKC,MAAMC,QAAQC,OAEd,SAASC,IAEdJ,KAAKC,MAAMC,QAAQG,OAIrB,IAAMC,EAAOC,QAAMC,OAAO,0BAC1BF,EAAKnqC,UAAY0pC,EACjBU,QAAM/T,SAAS8T,GAAM,GAGrB,IAAMG,EAAOF,QAAMC,OAAO,0BAC1BC,EAAKtqC,UAAYypC,EACjBW,QAAM/T,SAASiU,GAAM,GAEd,IAAMC,EAAU,CACrB,QACA,aACA,aACA,OACA,SACA,OACA,aACA,QACA,YACA,OACA,UACA,SACA,QACA,SACA,SACA,OACA,OACA,SACA,OACA,SACA,QACA,YACA,SAQa,SAASC,EAAkBpmD,GAAkD,IAA/C8R,EAAE9R,EAAF8R,GAAIu0C,EAAQrmD,EAARqmD,SAAa93C,EAAKc,YAAArP,EAAAsP,GACjE,OACE9P,cAACulD,EAAuBxmD,wBAAA,GAAKgQ,GAAK,IAAA7O,SAChCQ,eAAA,OAAK4R,GAAIA,EAAGpS,SAAA,CACVQ,eAAA,OAAKglC,UAAU,aAAYxlC,SAAA,EACvB2mD,GACAnmD,eAAA,UAAQglC,UAAU,UAAUoK,aAAa,GAAE5vC,SAAA,CACzCF,cAAA,UAAQlB,MAAM,GAAEoB,SAAC,SAChB2lD,EAAY/jD,KAAI,SAACglD,GAAI,OACpB9mD,cAAA,UAAmBlB,MAAOgoD,EAAK5mD,SAC5B4mD,GADUA,UAOjBD,GACA7mD,cAAA,UAAQ0lC,UAAU,UAAUoK,aAAa,OAAM5vC,SAC5C4lD,EAAUhkD,KAAI,SAACF,GAAI,OAClB5B,cAAA,UAAmBlB,MAAO8C,EAAK1B,SAC5B0B,GADUA,QAOnBlB,eAAA,UAAQglC,UAAU,YAAYoK,aAAa,GAAE5vC,SAAA,CAC1C6lD,EAASjkD,KAAI,SAACilD,EAASlzC,GAAK,OAC3B7T,cAAA,UAAsBlB,MAAO+U,EAAQ,EAAE3T,SACpC6mD,GADUA,MAIf/mD,cAAA,UAAQlB,MAAM,GAAEoB,SAAC,iBAIrBQ,eAAA,OAAKglC,UAAU,aAAYxlC,SAAA,CACzBF,cAAA,UAAQ2C,KAAK,SAAS+iC,UAAU,YAChC1lC,cAAA,UAAQ2C,KAAK,SAAS+iC,UAAU,cAChC1lC,cAAA,UAAQ2C,KAAK,SAAS+iC,UAAU,iBAChC1lC,cAAA,UAAQ2C,KAAK,SAAS+iC,UAAU,kBAGhCmhB,GACAnmD,eAAA,OAAKglC,UAAU,aAAYxlC,SAAA,CACzBF,cAAA,UAAQ0lC,UAAU,aAClB1lC,cAAA,UAAQ0lC,UAAU,qBAItBhlC,eAAA,OAAKglC,UAAU,aAAYxlC,SAAA,CACzBF,cAAA,UAAQ2C,KAAK,SAAS+iC,UAAU,UAAU5mC,MAAM,YAChDkB,cAAA,UAAQ2C,KAAK,SAAS+iC,UAAU,UAAU5mC,MAAM,YAC9C+nD,GAAY7mD,cAAA,UAAQ2C,KAAK,SAAS+iC,UAAU,YAAY5mC,MAAM,QAC9D+nD,GAAY7mD,cAAA,UAAQ2C,KAAK,SAAS+iC,UAAU,YAAY5mC,MAAM,WAGhE+nD,GACAnmD,eAAA,OAAKglC,UAAU,aAAYxlC,SAAA,CACzBF,cAAA,UAAQ2C,KAAK,SAAS+iC,UAAU,YAAY5mC,MAAM,UAClDkB,cAAA,UAAQ2C,KAAK,SAAS+iC,UAAU,YAAY5mC,MAAM,YAIpD+nD,GACAnmD,eAAA,OAAKglC,UAAU,aAAYxlC,SAAA,CACzBF,cAAA,UAAQ2C,KAAK,SAAS+iC,UAAU,kBAChC1lC,cAAA,UAAQ2C,KAAK,SAAS+iC,UAAU,qBAIpChlC,eAAA,OAAKglC,UAAU,aAAYxlC,SAAA,CACzBF,cAAA,UAAQ2C,KAAK,SAAS+iC,UAAU,eAAe5mC,MAAM,QACrDkB,cAAA,UAAQ0lC,UAAU,gBAGpBhlC,eAAA,OAAKglC,UAAU,aAAYxlC,SAAA,CACzBF,cAAA,UAAQ2C,KAAK,SAAS+iC,UAAU,YAChC1lC,cAAA,UAAQ2C,KAAK,SAAS+iC,UAAU,cAC9BmhB,GAAY7mD,cAAA,UAAQ2C,KAAK,SAAS+iC,UAAU,gBAGhD1lC,cAAA,OAAK0lC,UAAU,aAAYxlC,UACvB2mD,GAAY7mD,cAAA,UAAQ2C,KAAK,SAAS+iC,UAAU,kBAG9CmhB,GACAnmD,eAAA,OAAKglC,UAAU,aAAYxlC,SAAA,CACzBF,cAAA,UAAQ2C,KAAK,SAAS+iC,UAAU,UAASxlC,SACvCF,cAACk7B,IAAI,CAAC9N,KAAM45B,IAAWrjD,MAAO,GAAIiF,OAAQ,OAE5C5I,cAAA,UAAQ2C,KAAK,SAAS+iC,UAAU,UAASxlC,SACvCF,cAACk7B,IAAI,CAAC9N,KAAM65B,IAAWtjD,MAAO,GAAIiF,OAAQ,gB,wHC5KxD02B,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAWA,IAAMuwB,EAAYhpB,YAAOlK,IAAPkK,EAAY,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,MAAQ,CAC5CY,aAAcZ,EAAMa,MAAMD,aAC1BG,gBAAiB,OACjB4E,OAAO,aAADzP,OAAe8J,EAAME,QAAQ4B,KAAK,QACxCjE,OAAQ,MACR,0BAAyB7J,wBAAA,CACvB4mD,YAAa,eACV56C,EAAMI,WAAWC,OAAK,IACzBK,WAAYV,EAAMI,WAAWM,WAC7B6E,SAAU,SAEZ,eAAgB,CACd1H,OAAQ,OACR6lB,UAAW,OACX,qBAAsB,CACpBy4B,UAAW,SACXj7C,MAAOlB,EAAME,QAAQb,KAAKnI,UAE5B,kBAAiBlD,wBAAA,GACZgM,EAAMI,WAAWg8C,OAAK,IACzBz7C,QAASX,EAAMO,QAAQ,GACvBK,aAAcZ,EAAMa,MAAMD,aAC1BG,gBAAiBf,EAAME,QAAQ4B,KAAK,YA2B3B,SAASgqC,EAAW10C,GAUb,IAADilD,EAAAjlD,EATnBmQ,UAAE,IAAA80C,EAAG,gBAAeA,EACpB/oD,EAAK8D,EAAL9D,MACAS,EAAKqD,EAALrD,MACAb,EAAQkE,EAARlE,SAAQopD,EAAAllD,EACR20C,cAAM,IAAAuQ,GAAQA,EAAAC,EAAAnlD,EACdolD,iBAAS,IAAAD,EAAG,IAAMA,EAClB1mD,EAAEuB,EAAFvB,GACA4mD,EAAcrlD,EAAdqlD,eACGz4C,EAAKc,YAAA1N,EAAA2N,GAEF23C,EAAWv1B,iBAAmB,MAC5Boa,EAAoBC,cAApBD,gBAGR,SAASob,IACP,IAAMC,EAAQ7+C,SAASC,cAAc,SAErC4+C,EAAMC,aAAa,OAAQ,QAC3BD,EAAMC,aAAa,SAAU,WAC7BD,EAAME,QAENF,EAAMG,SAAQvhB,YAAAjH,IAAAiE,MAAG,SAAAiD,IAAA,IAAAuhB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA1jD,EAAA2jD,EAAA,OAAA/oB,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,UACI,MAAf2rB,EAAMh3B,OAAmC,MAAlBg3B,EAAMh3B,MAAM,GAAU,CAAA+V,EAAA1K,KAAA,SAE/C,KAZuB,SAWI,QAAjB+rB,EAAGJ,EAAMh3B,MAAM,UAAE,IAAAo3B,OAAA,EAAdA,EAAgBnmD,OAEE,CAAA8kC,EAAA1K,KAAA,QAC2C,OAAxEsQ,EAAgB,iCAAkC,CAAEvrC,QAAS,UAAW2lC,EAAArE,OAAA,iBAIpE8lB,EAAiB,OAARV,QAAQ,IAARA,GAAiB,QAATO,EAARP,EAAU/oD,eAAO,IAAAspD,OAAT,EAARA,EAAmBM,YAC5BF,EAAgB,OAARX,QAAQ,IAARA,GAAiB,QAATQ,EAARR,EAAU/oD,eAAO,IAAAupD,OAAT,EAARA,EAAmBM,qBAC3B7jD,EAAiB,OAAR+iD,QAAQ,IAARA,GAAiB,QAATS,EAART,EAAU/oD,eAAO,IAAAwpD,OAAT,EAARA,EAAmBM,uBAAuBL,GAASM,aAG9DJ,EAAa,IAAIK,YACVC,OAAS,SAAUrlD,GAAI,IAADslD,EAE3BjgD,EAAMG,SAASC,cAAc,OACjCJ,EAAIggD,OAAS,SAAUE,GAErB,IAAIC,EAAOhgD,SAASC,cAAc,OAElC+/C,EAAKt6B,IAAM9lB,YAAYC,IAAQ,GAG3BjE,EAASokD,EAAKt6B,IAAI9pB,OAAS6iD,EAC7Bjb,EAAgB,iCAAkC,CAAEvrC,QAAS,UAIzD,OAANonD,QAAM,IAANA,KAAQY,YAAiB,OAALX,QAAK,IAALA,OAAK,EAALA,EAAOv0C,MAAQ,QAASi1C,EAAKt6B,MAGnD7lB,EAAI6lB,IAAc,QAAXo6B,EAAGtlD,EAAEC,cAAM,IAAAqlD,OAAA,EAARA,EAAUnmC,QAGtB4lC,EAAWW,cAAmB,OAALrB,QAAK,IAALA,OAAK,EAALA,EAAOh3B,MAAM,IAAI,yBAAA+V,EAAAzC,UAAAuC,OAKhD,IAAMyiB,EAAUC,mBACd,iBAAO,CACLC,QAAS,CACP7T,UAAU,IAADr0C,OAAMqR,GACf82C,SAAU,CACRhD,KAAMJ,EACNM,KAAMD,EACNtC,MAAO2D,IAGX2B,UAAW,CAAEvqD,MAAOyoD,GACpBpB,QAAS,CACPmD,MAAO,IACPC,SAAU,IACVC,UAAU,GAEZC,QAAQ,EACRC,UAAW,CACTC,aAAa,MAGjB,IAGF,OACEjpD,eAACmzB,EAAS,CACRjzB,GAAE7B,wBAAA,GACIV,GAAS,CACXqS,OAAQ,SAAC3F,GAAK,mBAAA9J,OAAkB8J,EAAME,QAAQ5M,MAAMivB,SAEnD1sB,GACHV,SAAA,CAEFF,cAAC4pD,EAAa,CAACt3C,GAAIA,EAAIu0C,SAAU/P,IAChC0Q,EACDxnD,cAAC6pD,IAAU9qD,wBAAA,CACTqzB,IAAKq1B,EACL3oD,MAAOA,EACPb,SAAUA,EACVgrD,QAASA,EACTtC,QAASA,EACTmD,YAAY,6CACR/6C,GAAK,IACT/L,MAAO,CAAE4F,OAAQ,aAlHzB49C,QAAM/T,SAAS,qBAAqB,SAAUyT,EAAYrkD,GACxDqkD,EAAM6D,GAAG,eAAe,SAAUzmD,GACrB4iD,EAAM8D,UAERtlD,OAAS7C,EAAQ/C,OAAOonD,EAAMC,QAAQC,a,YC5BtC6D,EAAc,CACzBC,OAAQ,CACNC,KAAM,CAAE/8B,KA5BG,uCA4BsBsY,UAAW,UAC5C0kB,OAAQ,CAAEh9B,KA5BG,yCA4BwBsY,UAAW,UAChD2kB,UAAW,CAAEj9B,KA5BG,4CA4B2BsY,UAAW,UACtD4kB,cAAe,CAAEl9B,KA5BG,gDA4B+BsY,UAAW,UAC9D6kB,UAAW,CAAEn9B,KAlBJ,qCAkB2BsY,UAAW,UAC/C8kB,YAAa,CAAEp9B,KAlBJ,uCAkB6BsY,UAAW,UACnD+kB,UAAW,CAAEr9B,KAlBJ,qCAkB2BsY,UAAW,WAEjDglB,UAAW,CACThlB,UAAW,WACXilB,kBAAmB,oBAErBn/C,SAAU,CACRk6B,UAAW,WACXilB,kBAAmB,oBAErBC,KAAM,CACJC,UAAW,CAAEz9B,KAzCC,0CAyC2BsY,UAAW,UACpDolB,QAAS,CAAE19B,KAzCC,wCAyCyBsY,UAAW,UAChDqlB,OAAQ,CAAE39B,KAzCC,uCAyCwBsY,UAAW,UAC9CslB,QAAS,CAAE59B,KAzCC,wCAyCyBsY,UAAW,WAElDziC,UAAW,CACTqJ,KAAM,CAAE8gB,KA3CE,sCA2CsBsY,UAAW,UAC3CulB,OAAQ,CAAE79B,KA3CE,wCA2CwBsY,UAAW,UAC/Cp2B,MAAO,CAAE8d,KA3CE,uCA2CuBsY,UAAW,UAC7CwlB,QAAS,CAAE99B,KA3CE,yCA2CyBsY,UAAW,WAEnDj6B,WAAY,CACVi6B,UAAW,WACXilB,kBAAmB,oBAErBQ,YAAa,CACX/9B,KA3CW,uCA4CXsY,UAAW,SACX0lB,eAAgB,4BAElBC,KAAM,CACJD,eAAgB,oBAChBC,KAAM,CAAEj+B,KAvDJ,gCAuDsBsY,UAAW,UACrC4lB,OAAQ,CAAEl+B,KAvDJ,kCAuDwBsY,UAAW,WAE3C6lB,MAAO,CACLn+B,KApDK,iCAqDLsY,UAAW,SACX0lB,eAAgB,sBAElBI,SAAU,CACRp+B,KA3DQ,oCA4DRsY,UAAW,SACX0lB,eAAgB,yBAElBrH,MAAO,CACL32B,KA7DK,iCA8DLsY,UAAW,SACX0lB,eAAgB,qBAChBK,eA2BJ,SAA6B1sB,GAC3B,OAAO,IAAI6E,SAAQ,SAACnC,EAASiqB,GAC3B,IAAMC,EAAM,IAAIC,eAChBD,EAAI3kC,KAAK,OAAQ,iCACjB2kC,EAAIE,iBAAiB,gBAAiB,mBACtC,IAAMhkC,EAAO,IAAIikC,SACjBjkC,EAAKkkC,OAAO,QAAShtB,GACrB4sB,EAAIK,KAAKnkC,GACT8jC,EAAI7jC,iBAAiB,QAAQ,WAC3B,IAAM2e,EAAWwlB,KAAKC,MAAMP,EAAIQ,cAChC1qB,EAAQgF,MAEVklB,EAAI7jC,iBAAiB,SAAS,WAC5B,IAAMzpB,EAAQ4tD,KAAKC,MAAMP,EAAIQ,cAC7BT,EAAOrtD,UAxCTm6C,IAAK,CAAE4T,SAAS,EAAMl0B,WAAW,IAEnCkc,OAAQ,CAAEhnB,KAlEF,kCAkEsBsY,UAAW,UACzCygB,QAAS,CACPC,KAAM,CAAEh5B,KAnEI,wCAmEsBsY,UAAW,UAC7C4gB,KAAM,CAAEl5B,KAnEI,wCAmEsBsY,UAAW,YAIvB3mC,wBAAA,GACrBkrD,GAAW,IACdpoD,QAAS,CAAC,SAAU,YAAa,OAAQ,YAAa,OAAQ,QAAS,UACvEqoD,OAAMnrD,wBAAA,GACDkrD,EAAYC,QAAM,IACrBroD,QAAS,CAAC,OAAQ,SAAU,eAE9B6oD,UAAS3rD,wBAAA,GACJkrD,EAAYS,WAAS,IACxB7oD,QAAS,CAAC,SAAU,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,gBAE1D+oD,KAAI7rD,wBAAA,GACCkrD,EAAYW,MAAI,IACnB/oD,QAAS,CAAC,YAAa,eCzGFgJ,YAAOlK,IAAPkK,EAAY,SAAArK,GAAgB,IAAbuK,EAAKvK,EAALuK,MAChCC,EAAiC,UAAvBD,EAAME,QAAQC,KACxB82C,EAA4B,QAApBj3C,EAAMtI,UAEpB,MAAO,CACLkJ,aAAcZ,EAAMa,MAAMD,aAC1B+E,OAAO,aAADzP,OAAe8J,EAAME,QAAQ4B,KAAK,QAGxC,YAAa,CACX6D,OAAQ,OACR/E,aAAc,EACdI,WAAY,cACZ,wBAAyB,CACvBsgD,QAASthD,EAAME,QAAQ8G,OAAOu6C,iBAEhC,QAAS,CACP3oD,MAAO,GACPiF,OAAQ,GACRzJ,OAAQ6L,EAAU,OAAS,gBAE7B,0BAA2B,CACzBuF,UAAW,OACXxE,WAAYhB,EAAME,QAAQ8G,OAAOgU,UAEnC,UAAW,CACTxV,UAAW,OACXxE,WAAYhB,EAAME,QAAQ8G,OAAOw6C,QAKrC,cAAe,CACbC,SAAU,GACV7gD,aAAc,EACd4E,UAAW,OACXxE,WAAY,cACZ2E,OAAO,aAADzP,OAAe8J,EAAME,QAAQ4B,KAAK,QACxC,UAAW,CACT0D,UAAW,OACXxE,WAAYhB,EAAME,QAAQ8G,OAAOw6C,OAEnC,+BAAgC,CAC9BtgD,MAAOlB,EAAME,QAAQb,KAAK8iB,SAE5B,8BAA6BnuB,wBAAA,GACvBijD,GAAS,CACX1yC,MAAO,MACPhD,KAAM,SACL,GAAF,CACDmgD,eAAgB1hD,EAAME,QAAQb,KAAK8iB,UAErC,+BAA8BnuB,wBAAA,GACxBijD,GAAS,CACX1yC,MAAO,MACPhD,KAAM,SACL,GAAF,CACDogD,kBAAmB3hD,EAAME,QAAQb,KAAK8iB,WAG1C,sBAAuB,CACrBvpB,MAAO,OACP+M,OAAQ,OACRhN,UAAWqH,EAAMO,QAAQ,GACzBI,QAASX,EAAMO,QAAQ,EAAG,GAC1BiF,UAAWxF,EAAMyF,cAAcC,IAC/B9E,aAAcZ,EAAMa,MAAMD,aAC1BI,WAAYhB,EAAME,QAAQc,WAAWyD,MACrC,gCAAiC,CAC/BhE,SAAU,GACVqsB,UAAW,OACXnsB,QAASX,EAAMO,QAAQ,GAAK,IAE9B,+BAAgC,CAC9BS,WAAYhB,EAAME,QAAQ8G,OAAOgU,UAEnC,oCAAqC,CACnCha,WAAYhB,EAAME,QAAQ8G,OAAOw6C,QAIrC,WAAY,CACVj9C,MAAO,EACP5D,QAAS,EACTY,KAAM,OACNoE,OAAQ,OACRJ,SAAU,SACVC,UAAWxF,EAAMyF,cAAcC,IAC/B9E,aAAcZ,EAAMa,MAAMD,aAC1BI,WAAYhB,EAAME,QAAQc,WAAWyD,MAGrC,iGACE,CACE/L,OAAQ,EACR+I,QAAS,OACT9I,UAAWqH,EAAMO,QAAQ,GACzBwjB,eAAgB,gBAChB,WAAY,CACVrrB,OAAQ,EACR+H,SAAU,GACVkF,OAAQ,OACR+rB,WAAY,OACZ94B,MAAO,kBACPsI,MAAOlB,EAAME,QAAQ0B,OAAOC,MAC5Bb,WAAYhB,EAAME,QAAQiiB,QAAQI,KAClC3hB,aAAcZ,EAAMa,MAAMD,aAC1B,aAAc,CACZM,MAAOlB,EAAME,QAAQ8G,OAAO9P,SAC5B8J,WAAYhB,EAAME,QAAQ8G,OAAO46C,oBAEnC,iBAAkB,CAChB5gD,WAAY,cACZE,MAAOlB,EAAME,QAAQb,KAAK8iB,SAE5B,UAAW,CAAE3c,UAAW,QACxB,WAAY,CAAEA,UAAW,UAI/B,UAAW,CACT3H,OAAQ,GACR4C,SAAU,GACVO,WAAY,cACZL,QAASX,EAAMO,QAAQ,EAAG,KAC1BW,MAAOlB,EAAME,QAAQb,KAAK8iB,QAC1BvhB,aAAcZ,EAAMa,MAAMD,aAC1B+E,OAAO,aAADzP,OAAe8J,EAAME,QAAQ4B,KAAK,UAK5C,wBAAyB,CACvBnB,QAAS,EACT,kCAAmC,CACjCA,QAASX,EAAMO,QAAQ,GACvBS,WAAYhB,EAAME,QAAQ4B,KAAK,OAC/B,uCAAwC,CACtCrB,SAAU,GACVE,QAASX,EAAMO,QAAQ,IAAM,GAC7BW,MAAOlB,EAAME,QAAQb,KAAK8B,UAC1BP,aAAcZ,EAAMa,MAAMD,aAC1B8wB,WAAY1xB,EAAMI,WAAWyhD,kBAE/B,8CAA+C,CAC7Cj9C,aAAc,OACdY,UAAWxF,EAAMyF,cAAc8wC,GAC/Br1C,MAAOlB,EAAME,QAAQb,KAAK8iB,QAC1BnhB,WAAYhB,EAAME,QAAQ0B,OAAOC,QAGrC,mCAAoC,CAClCnJ,OAAQ,EACRiI,QAASX,EAAMO,QAAQ,MAEzB,4BAA6B,CAC3B7H,OAAQ,EACRE,MAAO,GACPiF,OAAQ,GACR4jD,SAAU,GACV7gD,aAAc,EACd2E,SAAU,SACVjN,SAAU,WACV,UAAW,CAAEkN,UAAW,QACxB,WAAY,CACVlB,OAAQ,EACR7D,SAAU,EACV7H,MAAO,OACPiF,OAAQ,OACR4D,QAAS,OACTb,aAAc,EACdnD,QAAS,WACTnF,SAAU,WACV9B,WAAY,SACZutB,eAAgB,SAChB7iB,MAAOlB,EAAME,QAAQ0B,OAAOC,MAC5B6vB,WAAY1xB,EAAMI,WAAW0hD,eAC7Bt8C,UAAW,oCAEb,0BAA2B,CACzBA,UAAW,OACX5E,aAAc,MACd,WAAY,CAAEH,SAAU,MAG5B,0BAA2B,CAAEkF,OAAQ,SAIvC,iBAAkB,CAChB9H,OAAQ,OACR8C,QAASX,EAAMO,QAAQ,GACvB,0BAA2B,CACzBE,SAAU,GACVixB,WAAY1xB,EAAMI,WAAWyhD,kBAE/B,0BAA2B,CAAElpD,UAAW,EAAG2I,aAAc,IACzD,kCAAmC,CACjCG,QAAS,OACTH,aAAc,EACd9K,WAAY,SACZ,WAAY,CACViK,SAAU,GACVkmB,WAAY3mB,EAAMO,QAAQ,MAKhC,kBAAmB,CAAEgF,SAAU,OAAQ5E,QAASX,EAAMO,QAAQ,IAG9D,qBAAsB,CACpB1C,OAAQ,OACR,+BAAgC,CAC9B8C,QAASX,EAAMO,QAAQ,GACvBS,WAAYhB,EAAME,QAAQ4B,KAAK,OAC/B,qCAAsC,CAAEL,QAAS,QACjD,sCAAuC,CACrChB,SAAU,GACVE,QAASX,EAAMO,QAAQ,IAAM,GAC7BW,MAAOlB,EAAME,QAAQb,KAAK8B,UAC1BP,aAAcZ,EAAMa,MAAMD,aAC1B8wB,WAAY1xB,EAAMI,WAAWyhD,mBAGjC,qCAAsC,CACpClhD,QAASX,EAAMO,QAAQ,EAAG,EAAG,IAE/B,oCAAqC,CAAEI,QAASX,EAAMO,QAAQ,EAAG,EAAG,KAItE,kBAAmB,CACjBI,QAAS,EAET,4BAA6B,CAC3BjI,OAAQ,EACR4L,OAAQ,EACR7D,SAAU,GACVE,QAASX,EAAMO,QAAQ,GACvBS,WAAYhB,EAAME,QAAQ4B,KAAK,OAC/B4vB,WAAY1xB,EAAMI,WAAWyhD,iBAC7B,mCAAoC,CAClCvpD,SAAU,WACVqI,QAASX,EAAMO,QAAQ,IAAM,IAE/B,kCAAmC,CACjC7H,OAAQ,EACRE,MAAO,OACPiF,OAAQ,OACR8H,OAAQ,OACRrN,SAAU,WACV0I,WAAY,eAEd,8CAA+C,CAC7CsD,QAAS,EACTkB,UAAWxF,EAAMyF,cAAc8wC,GAC/Bv1C,WAAYhB,EAAME,QAAQ0B,OAAOC,MACjCjB,aAAcZ,EAAMa,MAAMD,eAG9B,mCAAoC,CAClClI,OAAQ,EACRi/C,QAAS,OACT32C,WAAY,OACZL,QAASX,EAAMO,QAAQ,IAEzB,yCAA0C,CACxCE,SAAU,GACVvI,UAAW,SACXgJ,MAAOlB,EAAME,QAAQb,KAAKnI,SAC1B0J,aAAcZ,EAAMa,MAAMD,aAC1B+E,OAAO,cAADzP,OAAgB8J,EAAME,QAAQ4B,KAAK,SAE3C,iCAAkC,CAAEnB,QAASX,EAAMO,QAAQ,EAAG,EAAG,IACjE,wDAAyD,CACvDI,QAASX,EAAMO,QAAQ,EAAG,KAK9B,wBAAyB,CACvBoF,OAAQ,OACRrE,aAAc,EACdN,WAAY,cACZ4D,aAAa,aAAD1O,OAAe8J,EAAME,QAAQ4B,KAAK,SAIhD,qBAAsB,CACpBgrB,UAAW,IACXnsB,QAASX,EAAMO,QAAQ,EAAG,GAC1B,wCAAyC,CACvCW,MAAOlB,EAAME,QAAQb,KAAKnI,gB,qPCnRnB,SAAS6qD,EAA0BlvD,GAAa,IAADmvD,EAAAC,EAAAC,EACpDC,EAAmCtvD,EAAnCsvD,UAASC,EAA0BvvD,EAAxBwvD,sBAAc,IAAAD,EAAG,GAAEA,EACtCE,EAA8BC,cAAtBpvD,EAAMmvD,EAANnvD,OAAQqvD,EAASF,EAATE,UAEVC,GAAY36B,EADG46B,cAAb56B,YACqBpR,gBA2B7B,OAzBAxiB,qBAAU,WAIR,GAA4B,KAAxBf,EAAO0G,QAAQvF,KAAa,CAAC,IAADquD,EACxBC,EAAkB,OAATT,QAAS,IAATA,OAAS,EAATA,EAAWtiC,MAAK,SAAC8U,GAAkB,OAAKA,EAAErgC,OAASnB,EAAOmB,QAEnEuuD,EAAmB,OAAND,QAAM,IAANA,OAAM,EAANA,EAAQ5qC,SAAS6H,MAClC,SAAC5H,GAAgB,OAAKA,EAAE3jB,OAASnB,EAAO0G,QAAQvF,QAGlDkuD,EAASxuD,wBAAC,GACLb,GAAM,IACTsB,UAAiB,OAANmuD,QAAM,IAANA,OAAM,EAANA,EAAQnuD,UACnBoF,QAAO7F,wBAAA,GACFb,EAAO0G,SAAO,IACjBE,SAAoB,OAAV8oD,QAAU,IAAVA,GAAoB,QAAVF,EAAVE,EAAY9oD,gBAAQ,IAAA4oD,OAAV,EAAVA,EAAsB5rD,KAAI,SAAClC,GACnC,OAAAb,wBAAA,GAAYa,GAAG,IAAER,OAAQ,MAAOoE,KAAM,EAAGtE,YAAa,WAExD4H,aAAwB,OAAV8mD,QAAU,IAAVA,OAAU,EAAVA,EAAY9mD,qBAI/B,CAAC5I,EAAO0G,QAAQvF,OAGjBqB,eAACC,IAAG,CAACC,GAAI,CAAEiN,EAAG,KAAM3N,SAAA,CAClBF,cAACc,IAAU,CAACC,QAAQ,YAAY03C,WAAS,EAAAv4C,SACtCstD,IAGH9sD,eAACU,IAAK,CAACC,IAAI,OAAOC,cAAe,MAAMpB,SAAA,CACrCF,cAACoB,IAAK,CAACuC,MAAM,MAAKzD,SAChBF,cAAC6tD,IAAW,CACVnsD,WAAS,EACTC,MAAO6rD,EACP3uD,KAAM,OACNgpB,KAAMqlC,EAAUprD,KAAI,SAAC86C,GACnB,MAAO,CAAEv9C,KAAMu9C,EAAEv9C,KAAMsC,MAAOi7C,EAAEz7C,oBAKtCT,eAACU,IAAK,CAACC,IAAI,OAAOC,cAAe,SAAUqC,MAAM,MAAKzD,SAAA,CACpDF,cAAC6tD,IAAW,CACVnsD,WAAS,EACTC,MAAM,UACN9C,KAAM,eACNgpB,MACW,OAATqlC,QAAS,IAATA,GACoD,QAD3CH,EAATG,EACI/tD,QAAO,SAACmpC,GAAS,OAAKA,EAAEjpC,OAASnB,EAAOmB,QAAM,UAAE,IAAA0tD,GACxC,QADwCC,EADpDD,EAEIhqC,gBAAQ,IAAAiqC,OAFH,EAATA,EAEc7tD,QAAO,SAAC2uD,GAAkB,OAAMV,EAAe7tD,SAASuuD,EAAIzuD,SACvEyC,KAAI,SAAC86C,GACJ,MAAO,CAAEv9C,KAAMu9C,EAAEv9C,KAAMsC,MAAOi7C,EAAEz7C,kBAC5B,KAGZnB,cAAC+tD,IAAwB,CAACjnD,aAAoB,OAAN5I,QAAM,IAANA,GAAe,QAAT+uD,EAAN/uD,EAAQ0G,eAAO,IAAAqoD,OAAT,EAANA,EAAiBnmD,qBAGpC,KAAxB5I,EAAO0G,QAAQvF,MAAkD,IAAnCnB,EAAO0G,QAAQE,SAASJ,OACrD1E,cAACW,IAAG,CAAAT,SACFF,cAAC4oB,IAAY,CACXpC,MAAM,8CACN7d,IAAK,6CACLkgB,YAAY,uMAMhB7oB,cAACW,IAAG,CAAAT,SACFF,cAAC4oB,IAAY,CACXpC,MAAM,GACN7d,IAAK,uD,YCnGjB8jC,IAAcA,IAAW,SAAS,SAAUnxB,EAAQ1I,GAElD,OAAOqzC,KAAKt7C,KAAK,QAASiI,GAAS,SAAC9T,GAAK,OAAU,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOS,SAAS+b,MAAW,QAGpE,IAAM0yC,EAA6B,CACxCvhB,MAAa7gC,MAAM,CACjBvM,KAAMotC,MAAaC,SAAS,4BAC5B9nC,QAAS6nC,MAAa7gC,MAAM,CAC1BvM,KAAMotC,MAAaC,SAAS,kCAGhCD,MAAa7gC,MAAM,CACjBrG,YAAaknC,MAAa7gC,MAAM,CAC9BvM,KAAMotC,MAAaC,SAAS,uCAE9B3nC,OAAQ0nC,MAAa7gC,MAAM,CACzBvM,KAAMotC,MAAaC,SAAS,kCAE9BjnC,SAAUgnC,MAAa7gC,MAAM,CAC3BvM,KAAMotC,MAAaC,SAAS,oCAE9BznC,kBAAmBwnC,MAAa7gC,MAAM,CACpCvM,KAAMotC,MAAaC,SAAS,8CAIhCD,MAAa7gC,MAAM,CACjBlM,aAAc+sC,MAAaC,SAAS,uCACpC9nC,QAAS6nC,MAAa7gC,MAAM,CAC1BnF,eAAgBgmC,MAChB3nC,SAAU2nC,MACPwhB,GACCxhB,MAAa7gC,MAAM,CACjBxM,OAAQqtC,MAAayhB,SAASxhB,SAAS,UACvClpC,KAAMipC,MAAaC,SAAS,UAAUn9B,WArC7B,SAAC4+C,GAAW,OAAMC,SAASD,GAAOA,OAAMxpD,KAsCjDZ,cAAe0oC,MACZ4hB,WACA1jD,KAAK,gBAAiB,UAAU,SAAU7L,EAAOkK,GAEhD,MAAsB,QADPA,EAAIqf,OACRjpB,WAENkvD,OAAOC,UAAUzvD,IACR,IAAVA,GACAA,GAAS,IAAIwD,MAAOC,cAAgB,IACpCzD,GAAS,IAAIwD,MAAOC,qBAO/BmqC,SAAS,kCACZlmC,SAAUimC,MAAY+hB,KAAK,iBAAkB,CAC3CC,IAAI,EACJ9sB,KAAM8K,MAAY5pC,IAAI,EAAG,gDAA6C6pC,SAAS,UAIrFD,MAAa7gC,MAAM,CACjBlF,SAAU+lC,MACV7nC,QAAS6nC,MAAa7gC,MAAM,CAC1BpF,SAAUimC,MAAY+hB,KAAK,WAAY,CACrCC,IAAI,EACJ9sB,KAAM8K,MAAY9hC,KAChB,kBACA,+CACA,SAAUiZ,GACR,QAAc,OAAVA,GAAoC,KAAb,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOlf,WAAsB,OAALkf,QAAK,IAALA,OAAK,EAALA,EAAOkyB,MAAK,SAACllB,GAAC,MAAgB,QAAXA,EAAEjuB,oB,gBCzDhE,SAAS+rD,EAAuB9wD,GAAa,IAAD+wD,EACjDC,EACNhxD,EADMgxD,aAAcC,EACpBjxD,EADoBixD,QAASC,EAC7BlxD,EAD6BkxD,UAAWC,EACxCnxD,EADwCmxD,iBAAkBC,EAC1DpxD,EAD0DoxD,mBAAoB34C,EAC9EzY,EAD8EyY,SAEhFg3C,EAA8BC,cAAtBpvD,EAAMmvD,EAANnvD,OAAQqvD,EAASF,EAATE,UAmBhB,OAjBAtuD,qBAAU,WAAO,IAADgwD,EAId,GAAiC,MAAX,QAAlBA,EAAA/wD,EAAOqH,mBAAW,IAAA0pD,OAAA,EAAlBA,EAAoB5vD,MAAa,CACnC,IAAIkG,EAA0B,OAAZqpD,QAAY,IAAZA,OAAY,EAAZA,EAAczvD,QAC9B,SAAC8hC,GAAc,IAAAiuB,EAAA,OAAKjuB,EAAE5hC,QAA2B,QAAvB6vD,EAAKhxD,EAAOqH,mBAAW,IAAA2pD,OAAA,EAAlBA,EAAoB7vD,SACnD,GACFkuD,EAASxuD,wBAAC,GACLb,GAAM,IACTqH,YAAaA,EACbE,SAAmB,OAATqpD,QAAS,IAATA,OAAS,EAATA,EAAW3vD,QAAO,SAACqP,GAAW,OAAKA,EAAEnP,QAAoB,OAAXkG,QAAW,IAAXA,OAAW,EAAXA,EAAa6B,iBAAc,GACnFrC,OAAe,OAAP8pD,QAAO,IAAPA,OAAO,EAAPA,EAAS1vD,QAAO,SAACkL,GAAuB,OAAKA,EAAEhL,QAAoB,OAAXkG,QAAW,IAAXA,OAAW,EAAXA,EAAa8B,eAAY,SAG5F,CAAmB,QAAnBsnD,EAACzwD,EAAOqH,mBAAW,IAAAopD,OAAA,EAAlBA,EAAoBtvD,OAGtBqB,eAACC,IAAG,CAACC,GAAI,CAAEiN,EAAG,KAAM3N,SAAA,CACjB6uD,GACCruD,eAACU,IAAK,CAACC,IAAI,MAAMoB,UAAU,MAAMlB,WAAY,SAASrB,SAAA,CACpDF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SACX,QAAbmW,EAAqB,mBAAqB,qBAE7C3V,eAACkzB,IAAK,CAAC7yB,QAAQ,QAAQkL,MAAM,UAAS/L,SAAA,CACnCuwB,YAAMs+B,GAAmB,UAKhC/uD,cAACc,IAAU,CAACC,QAAQ,YAAY03C,WAAS,EAAAv4C,SAAC,iBAI1CQ,eAACU,IAAK,CAACC,IAAI,OAAMnB,SAAA,CACfF,cAACoB,IAAK,CAACC,IAAI,OAAOC,cAAe,MAAMpB,SACrCF,cAAC6tD,IAAW,CACVnsD,WAAS,EACTC,MAAM,iBACN9C,KAAM,mBACNgpB,KAAkB,OAAZ+mC,QAAY,IAAZA,OAAY,EAAZA,EAAc9sD,KAAI,SAACqtD,GACvB,MAAO,CAAE9vD,KAAM8vD,EAAI9vD,KAAMsC,MAAM,GAADV,OAAKkuD,EAAI9vD,KAAI,OAAA4B,OAAMkuD,EAAIhuD,qBAI3DT,eAACU,IAAK,CAACC,IAAI,OAAOC,cAAe,MAAMpB,SAAA,CACrCF,cAAC6tD,IAAW,CACVnsD,WAAS,EACTC,MAAM,YACN9C,KAAM,cACNgpB,KAAa,OAAPgnC,QAAO,IAAPA,OAAO,EAAPA,EAAS/sD,KAAI,SAAC86C,GAClB,MAAO,CAAEv9C,KAAMu9C,EAAEv9C,KAAMsC,MAAOi7C,EAAEz7C,kBAGpCnB,cAAC6tD,IAAW,CACVnsD,WAAS,EACTC,MAAM,cACN9C,KAAM,gBACNgpB,KAAe,OAATinC,QAAS,IAATA,OAAS,EAATA,EAAWhtD,KAAI,SAAC86C,GACpB,MAAO,CAAEv9C,KAAMu9C,EAAEv9C,KAAMsC,MAAOi7C,EAAEz7C,qBAItCT,eAACC,IAAG,CAAAT,SAAA,CACFF,cAACc,IAAU,CAACC,QAAQ,YAAY03C,WAAS,EAAAv4C,SAAC,8BAI1CF,cAACoB,IAAK,CAACC,IAAI,OAAOC,cAAe,MAAMpB,SACrCF,cAAC6tD,IAAW,CACVnsD,WAAS,EACTC,MAAM,GACNM,SAAqC,QAA3B/D,EAAOmC,gBACjBxB,KAAM,yBACNgpB,KAAwB,OAAlBmnC,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBltD,KAAI,SAACstD,GAC7B,MAAO,CAAE/vD,KAAM+vD,EAAI/vD,KAAMsC,MAAOytD,EAAIjuD,6B,wCChFrC,SAASkuD,EAAmBzxD,GACzC,IAAQI,EAAmBJ,EAAnBI,eACRqvD,EAAsCC,cAA9BpvD,EAAMmvD,EAANnvD,OAAQqvD,EAASF,EAATE,UAAWlgB,EAAMggB,EAANhgB,OAErBzuC,EAAe,SAACb,GACpBwvD,EAASxuD,wBAAC,GACLb,GAAM,IACT0G,QAAO7F,wBAAA,GACFb,EAAO0G,SAAO,IACjBE,SAAQ8S,YACH1Z,EAAO0G,QAAQE,SAAShD,KAAI,SAACwmC,GAC9B,OAAIA,EAAEjpC,OAAStB,EAAQsB,KACdtB,EAEFuqC,YAQX7hC,EAAiBvI,EAAO0G,QAAQE,SAAS3F,QAAO,SAACyxB,GAAC,MACtD,CAAC,MAAO,OAAOrxB,SAASqxB,EAAE1xB,gBAG5B,OACEwB,eAACC,IAAG,CAACC,GAAI,CAAEiN,EAAG,KAAM3N,SAAA,CAClBF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,aAEhCF,cAACc,IAAU,CAACC,QAAQ,UAAUC,cAAY,EAAAd,SAAC,gFAI3CF,cAACoB,IAAK,CAACC,IAAI,OAAMnB,SACdhC,EAAO0G,QAAQE,SAAShD,KAAI,SAAClC,EAAKiU,GAAW,IAADy7C,EAAAC,EACrClxD,EAAc,OAANgvC,QAAM,IAANA,GAAe,QAATiiB,EAANjiB,EAAQzoC,eAAO,IAAA0qD,GAAU,QAAVC,EAAfD,EAAiBxqD,gBAAQ,IAAAyqD,OAAnB,EAANA,EAA4B17C,GAC1C,OACE7T,cAACrC,IAAqB,CAEpBM,SAAUW,EACVb,QAAS6B,EACT5B,eAAgBJ,EAAMI,eACtBE,OAAQA,EACRG,MAAOA,GAAM,GAAA4C,OALLrB,EAAIP,KAAI,KAAA4B,OAAI4S,SAW3BpN,EAAe/B,OAAS,GACvBhE,eAACC,IAAG,CAACC,GAAI,CAAEC,GAAI,GAAIX,SAAA,CACjBF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,6BAChCQ,eAAC8uD,IAAkBzwD,wBAAA,GAAKnB,GAAK,IAAE+E,KAAK,MAAM3E,eAAgBA,EAAekC,SAAA,CACvEF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,wFAGhCF,cAACW,IAAG,CAACC,GAAI,CAAEg8B,EAAG,GAAI18B,SACfuG,EAAe3E,KAAI,SAACm/B,GAAC,OACpBjhC,cAACyvD,EAAiB,CAAC1xD,QAASkjC,GAAQA,EAAE5hC,WAG1CW,cAAC0vD,IAAe,CAAC7wD,KAAK,yBAAyBC,MAAO2H,EAAe/B,OAAS,cAQ1F,SAAS+qD,EAAiBjvD,GAAqC,IAAlCzC,EAAOyC,EAAPzC,QAC3B,OACEiC,cAACW,IAAG,CAAAT,SACFQ,eAACU,IAAK,CAACC,IAAI,OAAOC,cAAe,MAAOC,WAAY,SAASrB,SAAA,CAC3DQ,eAACI,IAAU,CAACC,QAAQ,QAAOb,SAAA,CACxBnC,EAAQmD,gBAAgB,IAAEnD,EAAQoD,YAAY,QAEjDnB,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAE2iB,YAAiB9kB,EAAQmB,oB,8BC5EnD,SAASywD,EAAuB/xD,GAAa,IAADqvD,EACjDjvD,EAAmBJ,EAAnBI,eACRqvD,EAAsCC,cAA9BpvD,EAAMmvD,EAANnvD,OACF26C,GADmBwU,EAATE,UAAiBF,EAANhgB,OACbuiB,eACRlpD,EAAWxI,EAAO0G,QAAQ4B,SAASsvC,MAAK,SAACllB,GAAC,MAAgB,QAAXA,EAAEjuB,QACvD,OACEjC,eAACC,IAAG,CAACC,GAAI,CAAEiN,EAAG,KAAM3N,SAAA,CAClBF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,oCAChCF,cAACc,IAAU,CAACC,QAAQ,UAAUC,cAAY,EAAAd,SAAC,6GAI3CQ,eAACC,IAAG,CAAAT,SAAA,CACD,IACDF,cAAC2O,IAAI,CACHgW,QAAS,kBAAMpb,OAAOyd,KAAK,uDAC3B6oC,GAAG,IAAG3vD,SAENF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAC,mEAGhCF,cAACwvD,IAAkBzwD,wBAAA,GAAKnB,GAAK,IAAE+E,KAAK,MAAM3E,eAAgBA,EAAekC,SACvEF,cAAC0vD,IAAe,CAAC7wD,KAAK,mBAAmBC,MAAO4H,SAG1C,OAANxI,QAAM,IAANA,GAAe,QAAT+uD,EAAN/uD,EAAQ0G,eAAO,IAAAqoD,OAAT,EAANA,EAAiBvmD,WACjBhG,eAACqsB,IAAK,CAACC,SAAS,QAAO9sB,SAAA,CACrBF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,8BAChCQ,eAACI,IAAU,CAACC,QAAQ,QAAOb,SAAA,CAAC,8LAE6C,IACvEQ,eAAA,UAAAR,SAAA,CACG,IACDF,cAAC24C,IAAU,CAACG,YAAa,iBAAkBF,QAASC,EAAMA,WAClD,IAAI,gD,uDCKX,SAASiX,EAAUtvD,GAAgD,IAA7C8R,EAAE9R,EAAF8R,GAAIy9C,EAASvvD,EAATuvD,UAAWnf,EAAQpwC,EAARowC,SAC5ChT,EAAWC,cACTyO,EAAoBC,cAApBD,gBACRhuC,EAAoCC,mBAAS,GAAEC,EAAAC,YAAAH,EAAA,GAAxCoY,EAAUlY,EAAA,GAAEwxD,EAAaxxD,EAAA,GAChCirB,EAA0BlrB,mBAAS,IAAGmrB,EAAAjrB,YAAAgrB,EAAA,GAA/BkH,EAAKjH,EAAA,GAAEumC,EAAQvmC,EAAA,GACtBwmC,EAaIC,YAAc,CAChB79C,KACAy9C,cAdAK,EAASF,EAATE,UACAC,EAAaH,EAAbG,cACAnD,EAASgD,EAAThD,UACA3tC,EAAM2wC,EAAN3wC,OACAqvC,EAAYsB,EAAZtB,aACAE,EAASoB,EAATpB,UACAD,EAAOqB,EAAPrB,QACAG,EAAkBkB,EAAlBlB,mBAEAhxD,GADekyD,EAAfI,gBACcJ,EAAdlyD,gBACAqY,EAAQ65C,EAAR75C,SACAk6C,EAAOL,EAAPK,QAMMC,EAA8B9vC,aAAY,SAAC7O,GAAgB,OAAKA,EAAM0N,UAAtEixC,0BAEJC,EAAQ,CACV,CACEn+C,GAAI,SACJ3Q,MAAO,UACPoM,UAAW,SAACghD,GAAwB,OAClC/uD,cAAC8sD,EAAyB,CACxBI,UAAoB,OAATA,QAAS,IAATA,OAAS,EAATA,EAAW/tD,QACpB,SAACugC,GAAC,OAA8B,OAAzB8wB,QAAyB,IAAzBA,OAAyB,EAAzBA,EAA2BjxD,SAASmgC,EAAElgC,cAAekgC,EAAE35B,6BAEhEgpD,iBAAkBA,EAClB14C,SAAUA,EACV+2C,eAAgBmD,EAAQzuD,KAAI,SAAC4uD,GAAG,OAAKA,EAAI9rD,QAAQvF,YAIvD,CACEiT,GAAI,eACJ3Q,MAAO,eACPoM,UAAW,SAACghD,GAAwB,OAClC/uD,cAAC0uD,EAAsB,CACrBK,iBAAkBA,EAClB/wD,eAAgBA,EAChB4wD,aAAcA,EACdE,UAAWA,EACXD,QAASA,EACTG,mBAAoBA,EACpB34C,SAAUA,MAIhB,CACE/D,GAAI,WACJ3Q,MAAO,WACPoM,UAAW,SAACghD,GAAwB,OAClC/uD,cAACqvD,EAAkB,CACjBN,iBAAkBA,EAClB/wD,eAAgBA,EAChBC,SAAUgyD,EACVt/B,MAAOA,MAIb,CACEre,GAAI,eACJ3Q,MAAO,eACPoM,UAAW,SAACghD,GAAwB,OAClC/uD,cAAC2vD,EAAsB,CACrBZ,iBAAkBA,EAClB9wD,SAAUgyD,EACVt/B,MAAOA,OAMXggC,EAAgC3C,EAGzB,KAAP17C,IACFm+C,EAAQA,EAAMz/C,MAAM,GACpB2/C,EAAgCA,EAA8B3/C,MAAM,IAEtE,IAAM4/C,GAA0BD,EAA8Bj6C,GACxDm6C,GAAan6C,IAAe+5C,EAAM/rD,OAAS,EAEjDzF,qBAAU,WACJmxD,GAAW9jB,EAAgBA,EAAiB,CAAEvrC,QAAS,YAC1D,CAACqvD,IAUJ,IAAMU,GAAoB,SAAC5yD,GAA6B,IAAD+uD,EAAA8D,EAC/CC,GAC0B,QAAf,QAAd/D,EAAA/uD,EAAO0G,eAAO,IAAAqoD,OAAA,EAAdA,EAAgBnoD,WAAyD,KAAtB,QAAdisD,EAAA7yD,EAAO0G,eAAO,IAAAmsD,OAAA,EAAdA,EAAgBjsD,SAASJ,UACtC,iBAAzB+rD,EAAM/5C,GAAYpE,GAIpB,MAFkB,CAAC,MAAO,OAAO/S,SAAe,OAANrB,QAAM,IAANA,OAAM,EAANA,EAAQ+G,kBAAkB5F,OAEhD2xD,GAAaH,IAG7BI,GAAa,WACjBjB,EAAct5C,EAAa,IAqB7B,GAA+B,KAA3B6I,EAAOlf,gBAAwB,OAAOL,cAAC2uB,IAAI,IAE/C,IAAMuiC,GAAeL,IAAc,CAAC,MAAO,OAAOtxD,SAASggB,EAAOlf,iBAElE,OACEK,eAACiuB,IAAI,CAAAzuB,SAAA,CACHQ,eAACC,IAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SAAA,CAChBF,cAACmxD,IAAO,CAACz6C,WAAYA,EAAY06C,kBAAgB,EAAAlxD,SAC9CuwD,EAAM3uD,KAAI,SAACmW,GAAI,OACdjY,cAACqxD,IAAI,CAAAnxD,SACHF,cAACsxD,IAAS,CAAApxD,SAAE+X,EAAKtW,SADRsW,EAAKtW,YAKnByuD,GAAapwD,cAAC+sB,IAAK,CAACC,SAAS,QAAO9sB,SAAEkwD,OAGxC15C,IAAe+5C,EAAM/rD,OACpB1E,cAAAC,WAAA,IAEAD,cAACuxD,IAAM,CACLxkB,cAAextB,EACfytB,iBAAkB4jB,GAClB3jB,SAzCa,SAAC/uC,EAAgBsV,GAChCs9C,GAAkB5yD,GACpBuiB,YACE+wC,YAAYtzD,EAAZszD,EAAoB,WAClBllB,EAAgB,6BAA2B,CAAEvrC,QAAS,YAClD6vC,GAAUA,IAEdhT,EAASG,IAAe0zB,MAAMlB,cAIlCP,EAAct5C,EAAa,GAC3BlD,EAAQk+C,WAAW,IACnBl+C,EAAQ45B,eAAc,KA4BKltC,SAEtB,SAACtC,GAAgB,IAAD+zD,EAAAC,EAAAC,EAAAC,EAAAC,EACP7zD,EAAmBN,EAAnBM,OAEF6wD,GAFqBnxD,EAAXyvC,QAGR,OAANnvC,QAAM,IAANA,GAAe,QAATyzD,EAANzzD,EAAQ0G,eAAO,IAAA+sD,OAAT,EAANA,EAAiBtrD,gCACX,OAANnI,QAAM,IAANA,GAAe,QAAT0zD,EAAN1zD,EAAQ0G,eAAO,IAAAgtD,OAAT,EAANA,EAAiB1rD,yBACX,OAANhI,QAAM,IAANA,GAAe,QAAT2zD,EAAN3zD,EAAQ0G,eAAO,IAAAitD,OAAT,EAANA,EAAiBvrD,yBACX,OAANpI,QAAM,IAANA,GAAe,QAAT4zD,EAAN5zD,EAAQ0G,eAAO,IAAAktD,OAAT,EAANA,EAAiB7rD,4BAEnB,OACEjG,cAACW,IAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SAChBQ,eAACotC,IAAI,CAAA5tC,SAAA,CACFuwD,EAAM/5C,GAAY3I,UAAUghD,GAAoB,IAEjDruD,eAACsxD,IAAW,CACVpxD,GAAI,CACFW,WAAY,WACZutB,eAAgB,gBAChBmjC,GAAI,EACJC,GAAI,EACJC,GAAI,GACJjyD,SAAA,CAED0wC,GAAY5wC,cAAC+uB,IAAM,CAACpK,QAASisB,EAAS1wC,SAAC,YACxCQ,eAACU,IAAK,CAACqB,UAAU,MAAMpB,IAAI,OAAMnB,SAAA,CACf,IAAfwW,GACC1W,cAAC+uB,IAAM,CAACpK,QAASssC,GAAYlwD,QAAQ,WAAUb,SAAC,oBAKlDF,cAAC+uC,IAAa,CACZC,QAASqhB,EACT1tD,KAAK,SACL5B,QAAQ,YACRkL,MAAM,UAAS/L,SAEd4wD,GAAkB5yD,GAAU,cAAgB,eAGhDgzD,IACClxD,cAAC+uC,IAAa,CACZpsC,KAAK,SACLV,WAAiB,OAAN/D,QAAM,IAANA,GAAe,QAAT6zD,EAAN7zD,EAAQ0G,eAAO,IAAAmtD,OAAT,EAANA,EAAiBrrD,UAC5B3F,QAAQ,YACRkL,MAAM,UACN+iC,QAASqhB,EAAcnwD,SACxB,gD,uNC/PjBkyD,EAAgBvnD,YAAO/J,IAAP+J,EAAmB,SAAArK,GAAQA,EAALuK,MAAK,MAAQ,CACvD2B,WAAY,SACZ4D,SAAU,SACVisB,aAAc,WACdrO,SAAU,QACV1hB,QAAS,YAQI,SAAS6lD,EAAQlwD,GAY5B,IAXFmQ,EAAEnQ,EAAFmQ,GACA1Q,EAAIO,EAAJP,KACA/C,EAAIsD,EAAJtD,KACAyzD,EAAUnwD,EAAVmwD,WACA/pB,EAAQpmC,EAARomC,SAQAjqC,EAAoCC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAA5Ci0D,EAAU/zD,EAAA,GAAEg0D,EAAah0D,EAAA,GAiBhC,OACEwB,cAACW,IAAG,CAACC,GAAI,CAAEg8B,EAAG,GAAI18B,SAChBQ,eAACU,IAAK,CAACqB,UAAW,MAAOpB,IAAI,MAAMytB,eAAgB,gBAAiBvtB,WAAW,SAAQrB,SAAA,CACrFF,cAACumB,IAAU,CACTksC,mBAAmB,EACnB9S,OAAQ2S,EACR9rC,MACExmB,cAACymB,IAAO,CAACD,MAAO3nB,EAAKqB,SACnBF,cAACoyD,EAAa,CAACrxD,QAAQ,QAAQ2xD,QAAM,EAAAxyD,SAClCrB,MAIPwgD,UAAWr/C,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAE0B,IAC1ChB,GAAI,CAAEiN,EAAG,EAAG,wBAAyB,CAAE2iB,GAAI,MAG5C+X,IAAagqB,GACZvyD,cAAC8zB,IAAU,CAAClzB,GAAI,CAAE+K,aAAc,GAAK,aAAW,SAASgZ,QAAS,kBA9BrD,SAACrS,GAChBi2B,IACFiqB,GAAc,GAEdjqB,EAASj2B,GAET89B,YAAW,WACToiB,GAAc,KACb,MAsByEG,CAAargD,IAAIpS,SACvFF,cAAC4yD,IAAc,MAIlBL,GAAcvyD,cAAC2vC,IAAgB,CAAC1jC,MAAM,UAAUrK,KAAM,U,sBCrDhD,SAASixD,EAAcryD,GAA2C,IAAxCu+B,EAAIv+B,EAAJu+B,KAAMwJ,EAAQ/nC,EAAR+nC,SACzCtX,EACF8N,EAAK5N,WAAaC,IAASO,MAASoN,EAAK/S,UAA4BiF,SAAW8N,EAAK9N,SAEjF6hC,EAAU,WACd,OAAI/zB,EAAK5N,WAAaC,IAASO,MAE3B3xB,cAAC+yD,IAAe,CACdC,OAASj0B,EAAK/S,UAA4BoO,KAC1Cz3B,KAAOo8B,EAAK/S,UAA4BsF,YAIvC2hC,YAAahiC,IAGhBiiC,EAAkB,WACtB,OAAIn0B,EAAK5N,WAAaC,IAASC,eAAuB0N,EAAK9N,SACvD8N,EAAK5N,WAAaC,IAAS7P,OAAewd,EAAK/S,UAAUthB,IACzDq0B,EAAK5N,WAAaC,IAAS8B,SAAiB6L,EAAK/S,UAAUkF,MAAMyV,WAC9D,IAGT,GACE5H,EAAK5N,WAAaC,IAASO,OAC3B,CAACJ,IAAchJ,MAAOgJ,IAAc6nB,QAAQ75C,SACzCw/B,EAAK/S,UAA4BsF,WAEpC,CACA,IAAI6hC,EAAe,CACjB98C,SAAU,CAAE1U,MAAO,IACnBy4B,MAAM,EACN5T,MAAOuY,EAAK9N,SACZE,SAAUC,IAASO,MACnBV,SAAUA,EACVrvB,KAAMm9B,EAAKn9B,KACX8I,IAAMq0B,EAAK/S,UAA4BthB,IACvC4mB,UAAYyN,EAAK/S,UAA4BsF,UAC7Chf,GAAI,EACJ1M,YAAa,GACbwtB,WAAY,GACZ3B,KAAMsN,EAAKtN,KACXP,MAAO,CAAED,SAAU,GAAI2nB,QAAS,GAAIjS,WAAY,IAChDC,aAAa,GAGf,OAAO5mC,cAAC+xB,IAAa,CAACvU,UAAW21C,IAGnC,OACEnzD,cAACqyD,EAAQ,CACPxzD,KAAMkgC,EAAK5N,WAAaC,IAASC,eAAiB,kBAAiB0N,EAAK9N,SACxErvB,KAAMm9B,EAAKn9B,KACX0Q,GAAIysB,EAAKzsB,GACTi2B,SAAUA,EACV+pB,WACEtyD,cAAC65C,IAAU,CAAA35C,SACR,SACC45C,EACA/T,EACAgU,EACA5oC,EACA60B,EACAgU,EACAC,GAAU,OAEVj6C,cAAAC,WAAA,CAAAC,SACgB,OAAb6+B,EAAKr0B,UAA6B/F,IAAbo6B,EAAKr0B,KAAkC,KAAbq0B,EAAKr0B,IACnD1K,cAACozD,IAAS,CACRjiD,UAAWA,EACX6hD,QAAQ,EACRruC,QAAS,kBACPoa,EAAKtN,KACDwoB,EAAWlb,EAAKr0B,IAAMumB,EAAU8N,EAAK5N,SAAU4N,EAAKzsB,IACpD0nC,EAAYjb,EAAKr0B,IAAMumB,EAAU8N,EAAKtN,OAE5C4hC,SAAUP,MAGZ9yD,cAACozD,IAAS,CACRjiD,UAAWA,EACX6hD,QAAQ,EACRruC,QAAS,kBACPoa,EAAKtN,KACDwoB,EAAWiZ,IAAmBn0B,EAAK9N,SAAU8N,EAAK5N,SAAU4N,EAAKzsB,IACjEwnC,EAAS/a,EAAKzsB,GAAIysB,EAAK5N,SAAU+hC,IAAmBn0B,EAAK9N,WAE/DoiC,SAAUP,e,uICzG5BxzB,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAAA,SAAAgwD,MAAA,SAAAhwD,EAAA+G,GAAA,WAAAkpD,EAAAjwD,OAAA,EAAA+G,IAAA,IAAA/G,EAAAkH,OAAAg1B,UAAAn1B,EAAA,IAAAmpD,QAAA,SAAAD,EAAAjwD,EAAAi8B,EAAA1xB,GAAA,IAAA6xB,EAAA,IAAAl1B,OAAAlH,EAAAi8B,GAAA,OAAAl1B,EAAAopD,IAAA/zB,EAAA7xB,GAAAxD,EAAAw/B,IAAAvmC,IAAAowD,YAAAh0B,EAAA6zB,EAAA/zB,WAAA,SAAAm0B,EAAArwD,EAAAi8B,GAAA,IAAA1xB,EAAAxD,EAAAw/B,IAAAtK,GAAA,OAAAtyB,OAAAiF,KAAArE,GAAAiD,QAAA,SAAAzG,EAAAk1B,GAAA,IAAAG,EAAA7xB,EAAA0xB,GAAA,oBAAAG,EAAAr1B,EAAAk1B,GAAAj8B,EAAAo8B,OAAA,SAAAz7B,EAAA,WAAAX,EAAAo8B,EAAAz7B,OAAA,EAAAy7B,EAAAh7B,QAAAT,IAAAoG,EAAAk1B,GAAAj8B,EAAAo8B,EAAAz7B,IAAA,OAAAoG,IAAA4C,OAAAszB,OAAA,cAAA6G,YAAAmsB,EAAA/oD,QAAA+oD,EAAA/zB,UAAAo0B,KAAA,SAAAvpD,GAAA,IAAAk1B,EAAAj8B,EAAAswD,KAAAhzB,KAAA,KAAAv2B,GAAA,GAAAk1B,EAAA,CAAAA,EAAAs0B,OAAAF,EAAAp0B,EAAA,UAAA1xB,EAAA0xB,EAAAu0B,QAAAjmD,MAAAgmD,OAAAF,EAAA9lD,EAAA,cAAA0xB,GAAAg0B,EAAA/zB,UAAAI,OAAAn3B,SAAA,SAAA82B,EAAA1xB,GAAA,oBAAAA,EAAA,KAAA6xB,EAAAr1B,EAAAw/B,IAAA,aAAAvmC,EAAAs8B,OAAAn3B,SAAAm4B,KAAA,KAAArB,EAAA1xB,EAAApF,QAAA,yBAAAnF,EAAA+G,GAAA,IAAAk1B,EAAAG,EAAAr1B,GAAA,WAAA0pD,MAAAC,QAAAz0B,KAAA+X,KAAA,KAAA/X,OAAA,sBAAA1xB,EAAA,KAAA5J,EAAA,YAAAX,EAAAs8B,OAAAn3B,SAAAm4B,KAAA,KAAArB,GAAA,eAAAj8B,EAAAmB,UAAA,uBAAAnB,IAAAoB,OAAA,KAAApB,EAAA,GAAA0N,MAAA4vB,KAAAt9B,IAAAY,KAAAyvD,EAAArwD,EAAAW,IAAA4J,EAAAi5B,MAAA,KAAAxjC,MAAA,OAAAA,EAAAs8B,OAAAn3B,SAAAm4B,KAAA,KAAArB,EAAA1xB,IAAAylD,EAAAxsB,MAAA,KAAAriC,W,WCOe,SAASwvD,EAAezzD,GAAwC,IAArC8c,EAAQ9c,EAAR8c,SAChC42C,EDLK,WAAwB,IAAD1zD,EAC5B8oC,EAAYD,cAAZC,QAEFlD,EAAU,SAAC17B,EAAaumB,GAC5B,IAAMo6B,EAAOviD,SAASC,cAAc,KACpCsiD,EAAK38C,KAAOhE,EACZ2gD,EAAK9nD,OAAS,SACd8nD,EAAKvR,SAAW7oB,EAChBnoB,SAAS6J,KAAKwhD,YAAY9I,GAC1BA,EAAKxD,QACLwD,EAAKjX,UA4BP,MAAO,CAAE8f,mBAzBe,SAAAzpB,GAAA,OAAAjqC,KAAA+lC,YAAAjH,IAAAiE,MAAG,SAAAiD,EAAOupB,GAAiB,IAAAtpB,EAAA2tB,EAAAC,EAAAC,EAAA,OAAAh1B,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,cAAA0K,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAE1B4N,IAAcC,IAAG,yBAAA5oC,OAA+B8uD,GAAa,CAChFwE,aAAc,OACdC,QAAS,IACT1qB,QAAS,CACP2qB,OAAQ,8BAET,KAAD,EANU,KAQA,QARRhuB,EAAQC,EAAAxE,YAQA,IAARuE,OAAQ,EAARA,EAAU5e,MAAI,CAAA6e,EAAA1K,KAAA,SAOwC,OANlDo4B,EAA6B,OAAR3tB,QAAQ,IAARA,OAAQ,EAARA,EAAUqD,QAAQ,uBACzCuqB,EAAoB,GAEpBD,IACFC,EAAYD,EAAmBM,MAAKpB,EAAC,qBAA+B,CAAAruB,SAAA,KAAE,IAEpEqvB,EAAU/qD,OAAOke,IAAIktC,gBAAgBluB,EAAS5e,MAAK6e,EAAArE,OAAA,SAChD+D,EAAQkuB,EAASD,IAAU,QAAA3tB,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAA6D,GAAA7D,EAAA,SAGpC4C,EAAQ,0BAA2B,IAAI,yBAAA5C,EAAAzC,UAAAuC,EAAA,oBAE1CM,MAAA,KAAAriC,aC/B8BmwD,GAAvBV,mBAMR,OACEl0D,cAAAC,WAAA,CAAAC,UACW,OAARod,QAAQ,IAARA,OAAQ,EAARA,EAAUu3C,aACT70D,cAAC+uB,IAAM,CAAChuB,QAAQ,YAAY4jB,QAPb,WACnBuvC,EAAmB52C,EAAShL,KAM0BpS,SAAC,oB,yiDChBpD,IAAM40D,EAAe,CAC1BC,QAAS,CACP7gC,WAAY,CAAE8gC,gBAAiB,MCEtBC,EAAgB,CAC3B1I,MAAO,CAAE2I,MAAO,MAChBC,IAAK,CAAED,MAAO,MAGHE,EAAiB,CAC5B7I,MAAO,CAAE2I,MAAO,KAChBC,IAAK,CAAED,MAAO,KCXVG,EAAa,CACjB3c,SAAU,EACV4c,KAAM,UAGFC,EAAW,SAACC,GAAW,yBAAAv0D,OAAwBu0D,EAAG,6CCLlDC,GDSgBF,EAAS,GAAIA,EAAS,GAStBA,EAAS,GAAIA,EAAS,GAUtBA,EAAS,KAAMA,EAAS,KASxBA,EAAS,KAAMA,EAAS,KCrC7B,KAEXG,EAAmB,CACvBhd,SAAU,IACV4c,KAAM,CAAC,IAAM,IAAM,IAAM,MAErBK,EAAkB,CACtBjd,SAAU,IACV4c,KAAM,CAAC,IAAM,IAAM,IAAM,MAGdM,EAAY,CACvBC,QAAS,CAAExJ,QAAS,GACpB0I,QAAS,CAAE1I,QAAS,EAAGn4B,WAAYwhC,GACnCI,KAAM,CAAEzJ,QAAS,EAAGn4B,WAAYyhC,IAGrBI,EAAc,CACzBF,QAAS,CAAE/0B,EAAG20B,EAAUpJ,QAAS,GACjC0I,QAAS,CAAEj0B,EAAG,EAAGurB,QAAS,EAAGn4B,WAAYwhC,GACzCI,KAAM,CAAEh1B,EAAG20B,EAAUpJ,QAAS,EAAGn4B,WAAYyhC,IASlCK,EAAgB,CAC3BH,QAAS,CAAE/0B,GAAG,IAAWurB,QAAS,GAClC0I,QAAS,CAAEj0B,EAAG,EAAGurB,QAAS,EAAGn4B,WAAYwhC,GACzCI,KAAM,CAAEh1B,GAAG,IAAWurB,QAAS,EAAGn4B,WAAYyhC,IAGnCM,EAAiB,CAC5BJ,QAAS,CAAEjZ,EAAG6Y,EAAUpJ,QAAS,GACjC0I,QAAS,CAAEnY,EAAG,EAAGyP,QAAS,EAAGn4B,WAAYwhC,GACzCI,KAAM,CAAElZ,EAAG6Y,EAAUpJ,QAAS,EAAGn4B,WAAYyhC,I,OCtCzCF,EAAW,IACXS,EAAK,CAAEhB,MAAO,EAAG7I,QAAS,GAC1B8J,EAAM,CAAEjB,MAAO,EAAG7I,QAAS,GAE3BqJ,EAAmB,CACvBhd,SAAU,IACV4c,KAAM,CAAC,IAAM,IAAM,IAAM,MAGrBK,EAAkB,CACtBjd,SAAU,IACV4c,KAAM,CAAC,IAAM,IAAM,IAAM,MCXrBG,GDgBG12D,wBAAA,GAAOm3D,GAAE,IAAEhiC,WAAYwhC,IAC1B32D,wBAAA,GAAOo3D,GAAG,IAAEjiC,WAAYyhC,IAIrB52D,wBAAA,GAAOo3D,GAAG,IAAEC,WAAYX,IACxB12D,wBAAA,GAAOm3D,GAAE,IAAEE,WAAY,EAAGliC,WAAYwhC,IACzC32D,wBAAA,GAAOo3D,GAAG,IAAEC,WAAYX,EAAUvhC,WAAYyhC,IAI3C52D,wBAAA,GAAOo3D,GAAG,IAAEC,YAAY,MACxBr3D,wBAAA,GAAOm3D,GAAE,IAAEE,WAAY,EAAGliC,WAAYwhC,IACzC32D,wBAAA,GAAOo3D,GAAG,IAAEC,YAAY,IAAWliC,WAAYyhC,IAI5C52D,wBAAA,GAAOo3D,GAAG,IAAEE,YAAY,MACxBt3D,wBAAA,GAAOm3D,GAAE,IAAEG,WAAY,EAAGniC,WAAYwhC,IACzC32D,wBAAA,GAAOo3D,GAAG,IAAEE,YAAY,IAAWniC,WAAYyhC,IAI5C52D,wBAAA,GAAOo3D,GAAG,IAAEE,WAAYZ,IACxB12D,wBAAA,GAAOm3D,GAAE,IAAEG,WAAY,EAAGniC,WAAYwhC,IACzC32D,wBAAA,GAAOo3D,GAAG,IAAEE,WAAYZ,EAAUvhC,WAAYyhC,ICzCnC,KAEXQ,EAAM,CAAEjB,MAAO,EAAG7I,QAAS,GAE3BqJ,EAAmB,CACvBhd,SAAU,IACV4c,KAAM,CAAC,IAAM,IAAM,IAAM,MCErBI,GDQG32D,wBAAA,GAAOo3D,GAAG,IAAEC,YAAY,IAAWliC,WAAYwhC,IAK/C32D,wBAAA,GAAOo3D,GAAG,IAAEC,WAAYX,EAAUvhC,WAAYwhC,IAK9C32D,wBAAA,GAAOo3D,GAAG,IAAEE,YAAY,IAAWniC,WAAYwhC,IAK/C32D,wBAAA,GAAOo3D,GAAG,IAAEE,WAAYZ,EAAUvhC,WAAYwhC,ICvB9B,CACvBhd,SAAU,IACV4c,KAAM,CAAC,IAAM,IAAM,IAAM,OAGrBK,EAAkB,CACtBjd,SAAU,IACV4c,KAAM,CAAC,IAAM,IAAM,IAAM,MAGdgB,EAAc,CACzBvB,QAAS,CACPG,MAAO,CAAC,GAAK,IAAK,GAAK,KAAM,IAAM,GACnC7I,QAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GACzBn4B,WAAYwhC,GAEdI,KCvBS,CACPZ,MAAO,CAAC,GAAK,IAAK,IAClB7I,QAAS,CAAC,EAAG,EAAG,K,GD6BNttD,YAAA,GAAO22D,GAEf32D,wBAAA,GClBK,CACP+hC,EAAG,CAAC,IAAK,GAAI,KACby1B,OAAQ,CAAC,KAAO,GAAK,GACrBlK,QAAS,CAAC,EAAG,EAAG,KDeiB,IAAEn4B,WAAYyhC,IAU7C52D,wBAAA,GCpCK,CACP+hC,EAAG,EAAE,GAAI,IAAK,KACdy1B,OAAQ,CAAC,KAAO,GAAK,GACrBlK,QAAS,CAAC,EAAG,EAAG,KDiCe,IAAEn4B,WAAYyhC,IAU3C52D,wBAAA,GC9BK,CACP69C,EAAG,CAAC,EAAG,IAAK,KACZ4Z,OAAQ,CAAC,EAAG,GAAK,GACjBnK,QAAS,CAAC,EAAG,EAAG,KD2BiB,IAAEn4B,WAAYyhC,IAU7C52D,wBAAA,GChCK,CACP69C,EAAG,CAAC,GAAI,GAAI,KACZ4Z,OAAQ,CAAC,EAAG,GAAK,GACjBnK,QAAS,CAAC,EAAG,EAAG,KD6BkB,IAAEn4B,WAAYyhC,I,qHEpDrC,SAASc,EAAYj2D,GAMb,IALrBN,EAAQM,EAARN,SACAw2D,EAAQl2D,EAARk2D,SACAxiC,EAAU1zB,EAAV0zB,WACAyiC,EAASn2D,EAATm2D,UACG5nD,EAAKc,YAAArP,EAAAsP,GAEF8mD,EAAWC,cACjBC,EAAsBC,YAAU,CAC9BJ,UAAWA,GAAa,EACxBK,aAAa,IACbC,EAAAx4D,YAAAq4D,EAAA,GAHK1kC,EAAG6kC,EAAA,GAAEC,EAAMD,EAAA,GAclB,OATAh4D,qBAAU,WACHy3D,IACDQ,EACFN,EAASrqC,MAAMtf,OAAOiF,KAAKwkD,GAAU,IAErCE,EAASrqC,MAAMtf,OAAOiF,KAAKwkD,GAAU,OAEtC,CAACE,EAAUM,EAAQR,IAGpB12D,cAACW,IAAG5B,wBAAA,CACFqzB,IAAKA,EACLrkB,UAAWopD,IAAOC,IAClBvB,UAASa,GAAWzpD,OAAOiF,KAAKwkD,GAAU,GAC1C3B,QAAS6B,EACTF,SAAUA,EACVxiC,WAAYA,GACRnlB,GAAK,IAAA7O,SAERA,K,0BCjCQ,SAASm3D,EAAe72D,GAAsD,IAAnDwmB,EAAIxmB,EAAJwmB,KAAM9mB,EAAQM,EAARN,SAAa6O,EAAKc,YAAArP,EAAAsP,GAChE,OACE9P,cAACW,IAAG5B,wBAAA,CACFgP,UAAWopD,IAAOC,IAClBvB,SAAS,EACTd,QAAS/tC,EAAO,UAAY,OAC5B0vC,SAAU5B,GACN/lD,GAAK,IAAA7O,SAERA,K,2ECTQ,SAASg6C,EAAa15C,GAMb,IAAD82D,EAAA92D,EALrBwmB,YAAI,IAAAswC,GAAQA,EACZvC,EAAOv0D,EAAPu0D,QACA9tC,EAAOzmB,EAAPymB,QACA/mB,EAAQM,EAARN,SACG6O,EAAKc,YAAArP,EAAAsP,GAER,OACE9P,cAACu3D,IAAe,CAAAr3D,SACb8mB,GACChnB,cAACiuB,IAAMlvB,wBAAA,CACL2C,WAAS,EACTwsB,SAAS,KACTlH,KAAMA,EACNC,QAASA,EACTuwC,eAAgB,SAAC55D,GAAK,OACpB8C,eAACC,IAAG5B,wBAAA,CACFgP,UAAWopD,IAAOC,KACbrC,GAAWgB,GAAW,IAC3Bn1D,GAAI,CACF+C,MAAO,OACPiF,OAAQ,OACR4D,QAAS,OACTjL,WAAY,SACZutB,eAAgB,UAChB5uB,SAAA,CAEFF,cAACW,IAAG,CAACgkB,QAASsC,EAASrmB,GAAI,CAAE+C,MAAO,OAAQiF,OAAQ,OAAQvF,SAAU,WACtErD,cAACy3D,IAAK14D,wBAAA,GAAKnB,GAAK,IAAAsC,SAAGtC,EAAMsC,kBAGzB6O,GAAK,IAAA7O,SAERA,O,sCClCI,SAASw3D,EAAal3D,GAKb,IAADm3D,EAAAn3D,EAJrBo3D,mBAAW,IAAAD,GAAQA,EACnBz3D,EAAQM,EAARN,SACAU,EAAEJ,EAAFI,GACGmO,EAAKc,YAAArP,EAAAsP,GAER,OACE9P,cAACW,IAAG5B,wBAAA,CACFgP,UAAWopD,IAAOC,IAClBS,SAAS,MACTC,WAAW,QACXpB,SAAUkB,EAAcxC,EAAiBH,EACzCr0D,GAAE7B,YAAA,CAAIyN,QAAS,eAAkB5L,IAC7BmO,GAAK,IAAA7O,SAERA,O,iCC3BP,oEA2He47B,IAtFM,WACnB,IAAMi8B,EAAmBC,qBAAWC,KACpC/Z,EAAoD70B,cAA5C1J,EAAOu+B,EAAPv+B,QAASyJ,EAAkB80B,EAAlB90B,mBAAoBwO,EAAUsmB,EAAVtmB,WA0DrC,MAAO,CACLvd,QAAwB,OAAhB09C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB19C,SAAU,GACpCD,wBAAwC,OAAhB29C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB39C,yBAA0B,GACpE89C,OAxDa,SAACC,EAAsBC,GAA4D,IAADC,EAC3FzN,EAA+B,GAanC,OAXgB,OAAhBmN,QAAgB,IAAhBA,GAAwB,QAARM,EAAhBN,EAAkB19C,cAAM,IAAAg+C,GAAxBA,EAA0Bv2D,KAAI,SAACs6B,GAAqB,OAClDA,EAAM5X,SAAS1iB,KAAI,SAACyY,GAClB+9C,IACE/9C,EACApQ,YAAcguD,EAAa5tD,QAC3BqgD,EACA,KACAwN,SAICxN,GA2CPtwC,QAAwB,OAAhBy9C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBz9C,SAAU,GACpCK,QAAyB,OAAhBo9C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBp9C,QAC3Bs2B,cAtBF,YAC6B,OAAhB8mB,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB9/C,MACxB4lC,WAAaptB,YAAM,IAAInuB,MAEZ,OAAhBy1D,QAAgB,IAAhBA,KAAkB38C,WACA,OAAhB28C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBx9C,QACF,OAAhBw9C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB9/C,MAClB,EACgB,OAAhB8/C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBv9C,aAepBwB,WAXiB,WACD,OAAhB+7C,QAAgB,IAAhBA,KAAkB/7C,cAWlB7K,UAA2B,OAAhB4mD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB5mD,UAC7B9S,MAAuB,OAAhB05D,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB15D,MACzBoc,oBAAqC,OAAhBs9C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBt9C,oBACvC89C,mBAAoC,OAAhBR,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBn9C,YACtC49C,iBAAkC,OAAhBT,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBS,iBACpC39C,QAAyB,OAAhBk9C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBl9C,QAC3B49C,QAAS,SAAC1b,GAAmB,OACX,OAAhBgb,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBW,WAChB3b,GACO,OAAPp9B,QAAO,IAAPA,OAAO,EAAPA,EAASuX,aAAcC,IAAW1b,KAClC2N,IAAqB1O,oBAEzBI,sBAAsC,OAAhBi9C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBj9C,uBAAwB,GAChE8c,aACAwmB,SA1DF,SAAkBznB,GAChB,IAAI1e,EAAuB,OAAhB8/C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB9/C,KAE7B,OAAQA,EAAKtV,MACX,KAAK2lB,IAAkBgH,UACpBrX,EAAgCoX,UAAUsH,MAAQA,EAGvD1e,EAAMqD,OAASC,IAAoBya,WACnB,OAAhB+hC,QAAgB,IAAhBA,KAAkB38C,WACA,OAAhB28C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBx9C,QACF,OAAhBw9C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB9/C,MAClB,EACgB,OAAhB8/C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBv9C,gB,iCCxExB,8CAUe,SAASijC,EAAkBj9C,GAAiD,IAADm4D,EAA7Cjb,EAAiBl9C,EAAjBk9C,kBAC3CQ,EAAwC70B,cAAhCD,EAAkB80B,EAAlB90B,mBAAoBzJ,EAAOu+B,EAAPv+B,QAEtBi5C,EAAqC,QAAvBD,EAAGvvC,WAAoB,IAAAuvC,OAAA,EAApBA,EAAsBE,WAE7C,MAAO,CACLrb,iBAAkBE,EAAkB5H,MAAK,SAACgjB,GAAE,OAAKF,EAAer5D,SAASu5D,MACzEn5C,UACAyJ,wB,kCCpBJ,qIAWMyK,EAAYhpB,YAAOkuD,IAAPluD,EAAa,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,MAAQ,CAC7CyB,QAAS,OACTqrB,UAAW,OACXt2B,WAAY,SACZy3D,WAAYjuD,EAAMO,QAAQ,IAC1B+zB,cAAet0B,EAAMO,QAAQ,QAKhB,SAAS2tD,EAAO92D,GAAQA,EAAL9D,MAA0B,IACpD66D,EAAar7B,cAOnB,OACE79B,cAAC6zB,EAAS,CAACrN,MAAM,0CAAyCtmB,SACxDF,cAACyhD,IAAS,CAAAvhD,SACRQ,eAACC,IAAG,CAACC,GAAI,CAAEstB,SAAU,IAAKzqB,OAAQ,OAAQR,UAAW,UAAW/C,SAAA,CAC9DF,cAACc,IAAU,CAACC,QAAQ,KAAK03C,WAAS,EAAAv4C,SAAC,gDAGnCF,cAACc,IAAU,CAACF,GAAI,CAAEqL,MAAO,kBAAmB/L,SAAC,iFAI7CF,cAACm5D,IAAsB,CAACv4D,GAAI,CAAEgI,OAAQ,IAAKuF,GAAI,CAAEkgB,GAAI,EAAGC,GAAI,OAE5DtuB,cAAC+uB,IAAM,CAACpK,QAlBO,WACrBu0C,EAAWn7B,IAAeE,MAC1B10B,OAAOie,SAAS4xC,UAgBuBx3D,KAAK,QAAQb,QAAQ,YAAWb,SAAC,uC,0WCzC5Eo/B,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAeA,IAOM0N,EAAQC,YAAY,CACxBpS,KAAM,SACNqS,aATgC,CAChCmoD,QAAS,GACTn6C,OAAQ,KACRo6C,eAAgB,KAChBC,aAAa,GAMb5nD,SAAU,CAER6nD,WAAU,SAAC3nD,EAAOE,GAChBF,EAAMwnD,QAAO,GAAAp4D,OAAA2W,YAAO/F,EAAMwnD,SAAOzhD,YAAK7F,EAAOC,WAG/CynD,aAAY,SAAC5nD,EAAOE,GAClB,IAAAuH,EAA8BvH,EAAOC,QAA7BM,EAAEgH,EAAFhH,GAAIonD,EAAMpgD,EAANogD,OAAQhe,EAAKpiC,EAALoiC,MACdie,EAAa9nD,EAAMwnD,QAAQroD,QAEjCa,EAAMwnD,QAAUM,EAAWx6D,QACzB,SAAC6jB,GAAC,QAAOA,EAAE1Q,KAAOA,GAAM0Q,EAAE02C,SAAWA,GAAU12C,EAAE04B,QAAUA,MAI3D7pC,EAAMqN,QACNrN,EAAMqN,OAAO5M,KAAOA,GACpBT,EAAMqN,OAAOw6C,SAAWA,GACxB7nD,EAAMqN,OAAOw8B,QAAUA,IAEvB7pC,EAAMqN,OAAS,KACfrN,EAAM0nD,aAAc,IAIxBK,cAAa,SAAC/nD,EAAOE,GACnBF,EAAMqN,OAASnN,EAAOC,SAExB6nD,qBAAoB,SAAChoD,EAAOE,GAC1BF,EAAMynD,eAAiBvnD,EAAOC,QAC9BH,EAAM0nD,aAAc,GAEtBO,UAAS,SAACjoD,EAAOE,GACf,IAAA4H,EAA0B5H,EAAOC,QAAzB0pC,EAAK/hC,EAAL+hC,MAAOge,EAAM//C,EAAN+/C,OACV7nD,EAAMwnD,QAAQvjB,MAAK,SAACikB,GAAC,OAAKA,EAAEre,QAAUA,GAASqe,EAAEL,SAAWA,OAC/D7nD,EAAMwnD,QAAO,GAAAp4D,OAAA2W,YAAO/F,EAAMwnD,SAAO,CAAEtnD,EAAOC,YAG9CgoD,WAAU,SAACnoD,GACTA,EAAM0nD,aAAc,EACpB1nD,EAAMynD,eAAiB,KACvBznD,EAAMqN,OAAS,SAMNlO,MAAa,QAGrB,IAAAuC,EAOHvC,EAAMwC,QANRimD,EAAYlmD,EAAZkmD,aACAD,EAAUjmD,EAAVimD,WACAI,EAAarmD,EAAbqmD,cACAE,EAASvmD,EAATumD,UACAD,EAAoBtmD,EAApBsmD,qBACAG,EAAUzmD,EAAVymD,WAMWC,EAAa,SAAChvB,GACzB,OAAA1E,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,OAAAlH,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,cAAA0K,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAEoB4N,IAAcl2B,KAAI,mBAA8Bu3B,GAAS,KAAD,EAAjEvE,EAAAxE,KACDra,MACXpH,YACEg5C,EAAa,CAAEnnD,GAAI24B,EAAQivB,OAAQR,OAAQzuB,EAAQkvB,OAAQze,MAAOzQ,EAAQmvB,SAE7E1zB,EAAA1K,KAAA,eAAA0K,EAAA3C,KAAA,EAAA2C,EAAA6D,GAAA7D,EAAA,iCAAAA,EAAAzC,UAAAuC,EAAA,mBAKM6zB,EAAwB,SAAC/nD,EAAY4lB,GAChD,MAAO,CACLwhC,OAAQ,SACRhe,MAAOppC,EAAGymB,WACVzmB,GAAI,IACJ5H,IAAK,GACL/I,MAAO,GACP24D,QAAS,GACT10D,YAAa,GACbsyB,UAAWA,K,+aC7GfoH,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EA0Ce,SAASi3D,IAAa,IAADxuB,EAClCmS,EAAgC70B,cAAxBmxC,EAAKtc,EAALsc,MAAOC,EAAYvc,EAAZuc,aACTC,EAAeC,cACrBC,EAA2CruB,cAC3CjuC,GADuBs8D,EAAftuB,gBAA8BsuB,EAAbC,cACet8D,oBAAS,IAAMC,EAAAC,YAAAH,EAAA,GAAhDw8D,EAAYt8D,EAAA,GAAEu8D,EAAev8D,EAAA,GAC5Bq6C,EAAU+W,cAAV/W,MACRpvB,EAAgClrB,mBAAmC,MAAKmrB,EAAAjrB,YAAAgrB,EAAA,GAAjE4I,EAAQ3I,EAAA,GAAEsxC,EAAWtxC,EAAA,GAUtB1C,EAAOpjB,QAAQyuB,GAEf4oC,EAAcxuB,MAAa7gC,MAAM,CACrCsvD,WAAYzuB,MAAaliC,OAAOmiC,SAAS,qCACzCyuB,SAAU1uB,MAAaliC,OAAOmiC,SAAS,gCAGnCG,EAASC,YAAyB,CACtCC,cAAe,CACbmuB,WAAY,GACZC,SAAU,GACVC,UAAU,GAEZpuB,iBAAkBiuB,EAClBhuB,SAAS,SAADxC,EAAAC,GAAA,OAAAqB,KAAAxF,YAAAjH,IAAAiE,MAAE,SAAAiD,EAAOtoC,EAAMsC,GAAA,IAAA66D,EAAAjuB,EAAAF,EAAAouB,EAAAC,EAAA,OAAAj8B,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAAuC,OAAnCq/B,EAAS76D,EAAT66D,UAAWjuB,EAAa5sC,EAAb4sC,cAAeF,EAAS1sC,EAAT0sC,UAASxG,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAEpDw+B,EAAuB,QAAlBc,EAACp9D,EAAOg9D,kBAAU,IAAAI,OAAA,EAAjBA,EAAmB/wD,OAAuB,QAAjBgxD,EAAEr9D,EAAOi9D,gBAAQ,IAAAI,OAAA,EAAfA,EAAiBhxD,QAAQ,KAAD,EAE3DmwD,EAAah8D,SACf0uC,GAAc,GACf1G,EAAA1K,KAAA,gBAAA0K,EAAA3C,KAAA,EAAA2C,EAAA6D,GAAA7D,EAAA,SAEDwG,IACIwtB,EAAah8D,UACf0uC,GAAc,GACdiuB,EAAU,CAAEG,YAAa,mEAC1B,yBAAA90B,EAAAzC,UAAAuC,EAAA,mBAEJM,MAAA,KAAAriC,cAGK4oC,EAAuER,EAAvEQ,OAAQC,EAA+DT,EAA/DS,QAASpvC,EAAsD2uC,EAAtD3uC,OAAQuvC,EAA8CZ,EAA9CY,aAAcF,EAAgCV,EAAhCU,aAAcI,GAAkBd,EAAlBc,cAU7D,OACE3tC,cAAC6tC,IAAc,CAAC/uC,MAAO+tC,EAAO3sC,SAC5BQ,eAACotC,IAAI,CAACE,aAAa,MAAMnvC,KAAK,YAAYkvC,YAAU,EAACd,SAAUM,EAAartC,SAAA,CAC1EQ,eAACU,IAAK,CAACkK,QAAS,EAAEpL,SAAA,CACfmtC,EAAOmuB,aAAex7D,cAAC+sB,IAAK,CAACC,SAAS,QAAO9sB,SAAEmtC,EAAOmuB,cACtDf,GAAgBz6D,cAAC+sB,IAAK,CAACC,SAAS,QAAO9sB,SAAEu6D,IAE1Cz6D,cAAC0C,IAAS3D,wBAAA,CACR2C,WAAS,EACTssC,aAAa,WACbrrC,KAAK,OACLhB,MAAM,oBACFgsC,GAAc,eAAa,IAC/BtvC,MAAOuF,QAAQ0pC,EAAQ4tB,YAAc7tB,EAAO6tB,YAC5Cr3D,WAAYypC,EAAQ4tB,YAAc7tB,EAAO6tB,WACzCh4D,WAAY,CACVC,aACEnD,cAACoD,IAAc,CAACC,SAAS,MAAKnD,SAC5BF,cAAC8zB,IAAU,CAACnP,QAnER,SAACb,GACnBk3C,EAAYl3C,EAAM23C,gBAkE8BC,KAAK,MAAKx7D,SAC1CF,cAAC27D,IAAI,YAOf37D,cAAC0C,IAAS3D,wBAAA,CACR2C,WAAS,EACTssC,aAAa,mBACbrrC,KAAMm4D,EAAe,OAAS,WAC9Bn5D,MAAM,gBACFgsC,GAAc,aAAW,IAC7BzqC,WAAY,CACVC,aACEnD,cAACoD,IAAc,CAACC,SAAS,MAAKnD,SAC5BF,cAAC8zB,IAAU,CAACnP,QA3CD,WACzBo2C,GAAgB,SAACa,GAAI,OAAMA,MA0C4BF,KAAK,MAAKx7D,SACjDF,cAACk7B,IAAI,CAAC9N,KAAM0tC,EAAee,IAAUC,WAK7Cz9D,MAAOuF,QAAQ0pC,EAAQ6tB,UAAY9tB,EAAO8tB,UAC1Ct3D,WAAYypC,EAAQ6tB,UAAY9tB,EAAO8tB,eAI3Cz6D,eAACU,IAAK,CAACqB,UAAU,MAAMlB,WAAW,SAASutB,eAAe,gBAAgBluB,GAAI,CAAEuN,GAAI,GAAIjO,SAAA,CACtFF,cAAC80B,IAAgB,CACfC,QAAS/0B,cAACg1B,IAAQj2B,wBAAA,GAAK4uC,GAAc,aAAW,IAAE1Y,QAAS/2B,EAAOk9D,YAClEz5D,MAAM,uBAGR3B,cAAC2O,IAAI,CAACZ,UAAWguD,IAAYh7D,QAAQ,YAAY8uD,GAAImM,IAAUC,cAAc/7D,SAAC,8BAKhFF,cAAC+uC,IAAa,CACZrtC,WAAS,EACTE,KAAK,QACLe,KAAK,SACL5B,QAAQ,YACRiuC,QAASvB,EACT5uC,KAAK,eAAcqB,SACpB,iBAIDF,cAAC+P,IAAO,CACNiX,KAAMA,EACNqL,SAAUA,EACVpL,QApHY,WAClB+zC,EAAY,OAoHNhrD,aAAc,CACZC,SAAU,SACVC,WAAY,QACZhQ,SAEFF,cAACW,IAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SAChBQ,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAC3BF,cAAA,UAAAE,SAAQ,uBACRF,cAAA,SAAM,kGAGNA,cAAA,SAAM,8BAAyB,IAC/BA,cAAC24C,IAAU,CACTC,QAASC,EACTC,YAAuB,OAAVD,EAAiB,gBAAkB,mBAC/C,IAAI,yD,sBC/KNqjB,EATY,WACzB,IAAQC,EAAkBrX,cAAlBqX,cAMR,OAJAl9D,qBAAU,WACRk9D,MACC,IAEIn8D,cAAAC,WAAA,KCSH4zB,EAAYhpB,YAAOkuD,IAAPluD,EAAa,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,OAAA/L,YAAA,GACpC+L,EAAMoB,YAAYC,GAAG,MAAQ,CAC5BI,QAAS,YAIP4vD,EAAevxD,YAAOlK,IAAPkK,EAAY,SAAAzI,GAAQ,MAAQ,CAC/CuB,MAAO,OACPuqB,SAAU,IACV1hB,QAAS,OACTlL,cAAe,SACfwtB,eAAgB,SAChBrrB,OANuCrB,EAAL2I,MAMpBO,QAAQ,EAAG,EAAG,EAAG,OAG3B0jB,EAAenkB,YAAO,MAAPA,EAAc,SAAAyC,GAAQ,MAAQ,CACjD4gB,SAAU,IACVzqB,OAAQ,OACR+I,QAAS,OACTqrB,UAAW,QACXv2B,cAAe,SACfwtB,eAAgB,SAChBpjB,QAPyC4B,EAALvC,MAOrBO,QAAQ,GAAI,OAKd,SAAS+wD,IACtB,IAAAne,EAA+B70B,cAAvBqvC,EAAUxa,EAAVwa,WACAR,GADkBha,EAANoe,OACDl3C,cAAX8yC,QACArf,EAAU+W,cAAV/W,MACFtd,EAAS,IAAIghC,gBAAgBrE,GAC7Bt6B,EAAWC,cACX2+B,EAAcjhC,EAAOsO,IAAI,gBACzBjF,EAAOrJ,EAAOsO,IAAI,QAiBxB,OAfA5qC,qBAAU,WAEJu9D,GAAeC,YAAaD,KAC9BE,YAAWF,GACX9D,IAAa/2B,MAAK,WACZiD,GAAiB,cAATA,GAAsBhH,EAASG,IAAe9iB,UAAUgjB,MAEhE2G,GAAiB,WAATA,GAAmBhH,EAASG,IAAejhB,QAE7C8gB,EAANgH,GACU7G,IAAeknB,QAAQ0X,WAGxC,CAACH,IAGF97D,eAACmzB,EAAS,CAACrN,MAAM,sBAAqBtmB,SAAA,CACpCF,cAACk8D,EAAkB,IAEnBl8D,cAAC8mB,IAAO,CAACnjB,MAAM,SAAQzD,SACrBF,cAACo8D,EAAY,CAAAl8D,SACXF,cAAA,OAAKwuB,IAAI,wCAAwCgqB,IAAI,kBAIzDx4C,cAACyhD,IAAS,CAACvzB,SAAS,KAAIhuB,SACtBQ,eAACsuB,EAAY,CAAA9uB,SAAA,CACXQ,eAACU,IAAK,CAACqB,UAAU,SAASlB,WAAW,aAAaX,GAAI,CAAEg5B,GAAI,GAAI15B,SAAA,CAC9DF,cAACW,IAAG,CACFC,GAAI,CAAEg5B,GAAI,EAAGnL,UAAW,QACxB1gB,UAAU,MACVygB,IAAG,sBAAAvtB,OAAwB43C,EAAK,UAElC74C,cAACc,IAAU,CAACC,QAAQ,KAAKC,cAAY,EAAAd,SAAC,gEAKxCF,cAACu6D,EAAS,c,iCC3FpB,8OAAO,IAAMqC,EAAY,CACvBC,QAASC,gCACTC,YAAY,GAODC,EAAoC,CAC/CC,UAAU,GAGCC,EAAqB,KAyBrBC,GAtBHL,yTAAYM,2BACRN,yTAAYO,+BACXP,yTAAYQ,gCACdR,yTAAYS,8BACRT,yTAAYU,kCACRV,yTAAYW,uCACxBX,yTAAYY,yBACJZ,yTAAYa,kCAIfb,yTAAYc,mCACdd,yTAAYe,gCAIZf,yTAAYgB,0BACdhB,yTAAYiB,uBAGGjB,yTAAYkB,qBAEAlB,gBAExBmB,EAAiB,CAC5B,CACEptD,IAAK,iBACL/R,MAAO,SAAC6gB,GACN,MAAM,mWAKV,CACE9O,IAAK,iBACL/R,MAAO,SAAC6gB,GACN,MAAM,iVAIV,CACE9O,IAAK,WACL/R,MAAO,SAAC6gB,GACN,MAAM,uPAKV,CACE9O,IAAK,UACL/R,MAAO,SAAC6gB,GACN,MAAM,uJAAN1e,OACiD,SAAjB,OAAP0e,QAAO,IAAPA,OAAO,EAAPA,EAASu+C,YAAuB,IAAM,GAAE,yBAGrE,CACErtD,IAAK,oBACL/R,MAAO,SAAC6gB,GACN,MAAM,0PAMCw+C,EACX,gFAEWxzC,EAAkB,CAC7B,CACE9Z,IAAK,EACL/R,MAAO,GAET,CACE+R,IAAK,GACL/R,MAAO,M,uEC5CaD,E,kRAIXu/D,EAAQ,CACnBC,SAAUr+D,cAACk+B,IAAQ,IACnBrgB,KAAM7d,cAACs+D,IAAI,IACXlgD,SAAUpe,cAACu+D,IAAgB,IAC3BC,UAAWx+D,cAACy+D,IAAI,IAChB1mC,UAAW/3B,cAACq3C,IAAI,IAChBj6B,aAAcpd,cAAC0+D,IAAa,IAC5BphD,SAAUtd,cAAC2+D,IAAa,IACxBniD,QAASxc,cAAC4+D,IAAW,IACrBnN,MAAOzxD,cAAC6+D,IAAsB,IAC9B//C,IAAK9e,cAAC8+D,IAAqB,IAC3BC,gBAfsBlgE,EAeE,oBAdxBmB,cAACg/D,IAAY,CAACxwC,IAAG,wBAAAvtB,OAA0BpC,EAAI,QAAQ+B,GAAI,CAAE+C,MAAO,OAAQiF,OAAQ,WAepFq2D,QAASj/D,cAACk/D,IAAY,IACtBha,KAAMllD,cAAC27D,IAAI,IACXwD,QAASn/D,cAACo/D,IAAU,IACpBC,UAAWr/D,cAACs/D,IAAc,IAC1BC,OAAQv/D,cAACw/D,IAAM,IACfC,WAAYz/D,cAAC0/D,IAAoB,KAI9BC,EAAW,SAAXA,GAAW,OAAXA,EAAW,8BAAXA,EAAW,CAAXA,GAAW,IAIVC,EAAqB,CACzBttD,GAAI,gBACJkU,MAAO,kCACPoe,KAAM7G,IAAe9iB,UAAU4kD,SAC/BhuB,WAAW,EACXiuB,gBAAgB,GAGZC,EAAgB,CACpBztD,GAAI,WACJkU,MAAO,yBACPoe,KAAM7G,IAAe9iB,UAAU+kD,UAC/BnuB,WAAW,EACXiuB,gBAAgB,GA+SHG,IA9RU,WAAO,IAADtH,EAAAuH,EAAAC,EAE7BjiB,EAA0D70B,cAAlDD,EAAkB80B,EAAlB90B,mBAAoBzJ,EAAOu+B,EAAPv+B,QAGtBspC,GAH+C/K,EAAhBkiB,iBAChB3S,cAAb56B,UAE4B,QAApB8lC,EAAAvvC,WAAoB,IAAAuvC,OAAA,EAApBA,EAAsBE,aAAc,IAE5Cv+C,EAAWwhB,cAAXxhB,OACRhc,EAA0CC,mBAAiB,IAAGC,EAAAC,YAAAH,EAAA,GAAvD+hE,EAAa7hE,EAAA,GAEpB2tC,GAFsC3tC,EAAA,GAEuBkiB,aAC3D,SAAC7O,GAAgB,OAAKA,EAAM2M,aADtB8hD,EAAYn0B,EAAZm0B,aAAcC,EAAmBp0B,EAAnBo0B,oBAAqBC,EAAar0B,EAAbq0B,cAwDrCC,GA1CY7Q,cAAV/W,MA0CU6nB,uBAAY,WAE5B,IAAIC,EAAYC,EACbzhE,QAAO,SAACy9B,GAAC,OAAKA,EAAEiV,aAChB/vC,KAAI,SAACmW,GAAI,IAAA4oD,EAAA,OACR5zD,OAAOC,OACL,GAAEnO,YAAA,GACGkZ,GACL,CAAE/X,SAAc,OAAJ+X,QAAI,IAAJA,GAAc,QAAV4oD,EAAJ5oD,EAAM/X,gBAAQ,IAAA2gE,OAAV,EAAJA,EAAgB/+D,KAAI,SAACg/D,GAAK,OAAK7zD,OAAOC,OAAO,GAAI4zD,WAMnE,OAFI7X,EAAQ1pD,SAASo+C,IAAWojB,YApDN,SAACC,GAE3B,GAAIA,GAAUA,EAAOt8D,OAAS,EAAG,CAC/B,IAAIu8D,EAAkB,OAAND,QAAM,IAANA,OAAM,EAANA,EAAQp2C,MAAK,SAACgyB,GAAM,OAAKA,EAAEtqC,KAAOqtD,EAAYuB,iBAC9D,GAAID,EAAW,CACb,IAAME,EAAwB,GAG1BlY,EAAQ1pD,SAASo+C,IAAWruB,aAAiC,OAAnBixC,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB77D,QAAS,GAC1Ey8D,EAAiBj9D,KAAK07D,GAIpBU,GAAgBA,EAAa57D,OAAS,GACxC47D,EAAax+D,KAAI,SAACs/D,EAAgBC,GAAW,OAC3CF,EAAiBj9D,KAAK,CACpBoO,GAAIqtD,EAAYuB,cAAgBG,EAChC76C,MAAO46C,EAAIz/D,MACXijC,KAAMw8B,EAAI12D,IACVmnC,WAAW,EACXiuB,gBAAgB,OAMlBqB,EAAiBz8D,OAAS,GAE5By8D,EAAiBG,QAAQvB,GACzBkB,EAAU/gE,SAAWihE,IAGrBF,EAAYh0D,OAAOC,OAAO+zD,EAAWlB,IAC3B7/D,SAAW,OAmBiBqhE,CAAoBZ,GAEzDA,IACN,CAAC1X,EAAS3uC,EAAQgmD,EAAcC,KAE7BK,EAA8B,CAClC,CACEtuD,GAAI,YACJkU,MAAO,kBACPoe,KAAM7G,IAAeknB,QAAQ0X,IAC7BvvC,KAAMgxC,EAAMI,UACZ3sB,UAAWoX,EAAQ1pD,SAASo+C,IAAWojB,WACvCjB,gBAAgB,GAElB,CACExtD,GAAI,WACJkU,MAAO,YACPoe,KAAM7G,IAAe9iB,UAAUgjB,KAC/B7Q,KAAMgxC,EAAMC,SACZxsB,UAAWoX,EAAQ1pD,SAASo+C,IAAW6jB,WACvC1B,gBAAgB,GAElB,CACExtD,GAAI,YACJkU,MAAO,iBACPoe,KAAM7G,IAAehG,UAAUkG,KAC/B7Q,KAAMgxC,EAAMrmC,UACZ8Z,UAAWoX,EAAQ1pD,SAASo+C,IAAW6jB,WACvC1B,gBAAgB,GAElB,CACExtD,GAAIqtD,EAAYuB,cAChB16C,MAAO,oBACPoe,KAAM7G,IAAe9f,KAAKggB,KAC1B7Q,KAAMgxC,EAAMW,eACZ7+D,SAAU,GACV2xC,UAAWoX,EAAQ1pD,SAASo+C,IAAWojB,WACvCjB,gBAAgB,GAElB,CACExtD,GAAI,WACJkU,MAAO,WACPoe,KAAM7G,IAAezgB,SAASstC,KAC9Bx9B,KAAMgxC,EAAM9gD,SACZu0B,UACEoX,EAAQ1pD,SAASo+C,IAAW8jB,eAAiBxY,EAAQ1pD,SAASo+C,IAAW+jB,gBAC3E5B,gBAAgB,GAElB,CACExtD,GAAI,eACJkU,MAAO,qBACPoe,KAAM7G,IAAe3gB,aAAawtC,KAClCx9B,KAAMgxC,EAAMhhD,aACZy0B,UACEoX,EAAQ1pD,SAASo+C,IAAWgkB,mBAC5B1Y,EAAQ1pD,SAASo+C,IAAWikB,oBAC9B9B,gBAAgB,GAElB,CACExtD,GAAI,SACJkU,MAAO,YACPoe,KAAM7G,IAAe9f,KAAKggB,KAC1B7Q,KAAMgxC,EAAM3M,MACZvxD,SAAU,CACR,CACEoS,GAAI,SACJkU,MAAO,iBACPoe,KAAM7G,IAAe0zB,MAAMn3C,OAC3Bu3B,UAAWv3B,EAAO5V,OAAS,EAC3Bo7D,gBAAgB,GAElB,CACExtD,GAAI,OACJkU,MAAO,qBACPoe,KAAM7G,IAAe0zB,MAAMoQ,MAC3BhwB,WAAW,EACXiuB,gBAAgB,GAElB,CACExtD,GAAI,UACJkU,MAAO,aACPoe,KAAM7G,IAAe0zB,MAAMqQ,SAC3BjwB,WAAW,EACXiuB,gBAAgB,GAElB,CACExtD,GAAI,aACJkU,MAAO,aACPoe,KAAM7G,IAAe0zB,MAAMsQ,YAC3BlwB,UACEoX,EAAQ1pD,SAASo+C,IAAWqkB,mBAC5B/Y,EAAQ1pD,SAASo+C,IAAWskB,oBAC9BnC,gBAAgB,GAElB,CACExtD,GAAI,SACJkU,MAAwC,QAAnC05C,EAAE79C,qBAAiC,IAAA69C,OAAA,EAAjCA,EAAmCv+C,uBAC1CijB,KAAM7G,IAAe0zB,MAAMlB,QAC3B1e,UAAWoX,EAAQ1pD,SAASo+C,IAAWp8B,QACvCu+C,gBAAgB,IAGpBjuB,UAAWoX,EAAQ1pD,SAASo+C,IAAW6jB,WACvC1B,gBAAgB,GAElB,CACExtD,GAAI,WACJkU,MAAO,SACPoe,KAAM7G,IAAejhB,OACrBsQ,KAAMgxC,EAAMhgD,SACZyzB,UAAWoX,EAAQ1pD,SAASo+C,IAAWukB,QACvCpC,gBAAgB,GAElB,CACExtD,GAAI,WACJkU,MAAO,aACPoe,KAAM7G,IAAenrB,QAAQuvD,IAC7B/0C,KAAMgxC,EAAMvgD,KACZg0B,UAAWoX,EAAQ1pD,SAASo+C,IAAWojB,WACvCjB,gBAAgB,EAChB5/D,SAAU,CACR,CACEoS,GAAI,eACJkU,MAAO,mBACPoe,KAAM7G,IAAenrB,QAAQuvD,IAC7BtwB,WAAW,EACXiuB,gBAAgB,GAElB,CACExtD,GAAI,kBACJkU,MAAO,mBACPoe,KAAM7G,IAAenrB,QAAQwvD,OAC7BvwB,WAAW,EACXiuB,gBAAgB,GAElB,CACExtD,GAAI,kBACJkU,MAAO,+BACPoe,KAAM7G,IAAenrB,QAAQyvD,OAC7BxwB,WAAW,EACXiuB,gBAAgB,GAElB,CACExtD,GAAI,oBACJkU,MAAO,8BACPoe,KAAM7G,IAAenrB,QAAQyoB,SAC7BwW,WAAW,EACXiuB,gBAAgB,KAItB,CACExtD,GAAI,OACJkU,MAAO,4BACPoe,KAAM7G,IAAejf,IAAI8rC,KACzBx9B,KAAMgxC,EAAMt/C,IACZ+yB,UACEoX,EAAQ1pD,SAASo+C,IAAW2kB,UAC5BrZ,EAAQ1pD,SAASo+C,IAAWqkB,mBAC5B/Y,EAAQ1pD,SAASo+C,IAAWskB,oBAC9BnC,gBAAgB,GAElB,CACExtD,GAAI,WACJkU,MAAO,gBACPoe,KAAM7G,IAAevhB,QAAQouC,KAC7Bx9B,KAAMgxC,EAAM5hD,QACZq1B,UAAWoX,EAAQ1pD,SAASo+C,IAAWojB,WACvCjB,gBAAgB,GAElB,CACExtD,GAAI,QACJkU,MAAO,QACPoe,KAAsB,QAAlBu7B,EAAEK,EAAc,UAAE,IAAAL,OAAA,EAAhBA,EAAkBz1D,IACxB0iB,KAAMptB,cAACuiE,IAAK,IACZ1wB,UAAW2uB,EAAc97D,OAAS,GAAKukD,EAAQ1pD,SAASo+C,IAAWojB,WACnEjB,gBAAgB,GAGlB,CACExtD,GAAI,WACJkU,MAAO,UACPoe,KAAM7G,IAAeknB,QAAQga,QAC7B7xC,KAAMgxC,EAAMa,QACZptB,UAAWoX,EAAQ1pD,SAASo+C,IAAWojB,WACvCjB,gBAAgB,GAGlB,CACExtD,GAAI,aACJkU,MAAO,aACPoe,KAAMy7B,EACNjzC,KAAMgxC,EAAMqB,WACZ5tB,UAA6B,KAAlBwuB,EACXP,gBAAgB,GAElB,CACExtD,GAAI,QACJkU,MAAO,QACPoe,KAAM7G,IAAeknB,QAAQC,KAC7B93B,KAAMgxC,EAAMlZ,KACZrT,UAAWoX,EAAQ1pD,SAASo+C,IAAWojB,WACvCjB,gBAAgB,IAGpB,MAAO,CAAEW,YAAWr3C,qBAAoBzJ,UAASihD,mB,qFClYpC,SAASrsC,EAA2B1jB,EAAai/B,GAC9D,IAAAxxC,EAA0BC,oBAAS,WACjC,IAAMikE,EAAcC,aAAaC,QAAQ7xD,GACzC,OAAuB,OAAhB2xD,EAAuB1yB,EAAemc,KAAKC,MAAMsW,MACxDhkE,EAAAC,YAAAH,EAAA,GAHKQ,EAAKN,EAAA,GAAEg0C,EAAQh0C,EAAA,GAKtBS,qBAAU,WACR,IAAM0jE,EAAW,SAACr/D,GACZA,EAAEs/D,cAAgBH,cAAgBn/D,EAAEuN,MAAQA,GAC9C2hC,EAASlvC,EAAE44C,SAAW+P,KAAKC,MAAM5oD,EAAE44C,UAAY54C,EAAE44C,WAKrD,OAFA3yC,OAAOue,iBAAiB,UAAW66C,GAE5B,WACLp5D,OAAOwe,oBAAoB,UAAW46C,MAEvC,CAAC9xD,EAAKi/B,IAUT,MAAO,CAAChxC,EARuB,SAACo9C,GAC9B1J,GAAS,SAACqwB,GACR,IAAMpgD,EAA6B,oBAAby5B,EAA0BA,EAAS2mB,GAAgB3mB,EAEzE,OADAumB,aAAaK,QAAQjyD,EAAKo7C,KAAK8W,UAAUtgD,IAClCA,S,gXC1Bb6c,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EA2BA,IAaM0N,EAAQC,YAAY,CACxBpS,KAAM,eACNqS,aAfsC,CACtCC,WAAW,EACX6xD,eAAe,EACf3kE,OAAO,EACP4kE,eAAgB,GAChB7lD,aAAc,KACd8lD,QAAQ,EACRC,YAAY,EACZ5J,aAAa,EAEb6J,eAAgB,GAMhBzxD,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,GAEpBkyD,iBAAgB,SAACxxD,GACfA,EAAMmxD,eAAgB,GAGxBjoD,WAAU,SAAClJ,GACTA,EAAMV,WAAY,GAIpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,QACrBH,EAAMmxD,eAAgB,GAIxBM,yBAAwB,SAACzxD,EAAOE,GAC9BF,EAAMV,WAAY,EAClBU,EAAMoxD,eAAiBlxD,EAAOC,QAC9BH,EAAMxT,OAAQ,EACdwT,EAAM0nD,aAAc,EACpB1nD,EAAMmxD,eAAgB,GAGxBO,uBAAsB,SAAC1xD,EAAOE,GAC5BF,EAAMV,WAAY,EAClB,IAAIqyD,EAAUzxD,EAAOC,QACrBH,EAAMqxD,OAASM,EAAQC,gBAAkBD,EAAQE,gBACjD7xD,EAAMsxD,WACgB,MAApBK,EAAQG,UAAgD,IAA5BH,EAAQG,SAASj/D,SAExC8+D,EAAQG,SAAS7tB,MAAK,SAAC3U,GAAsB,OAAKA,EAAE6xB,UAC3DnhD,EAAMuL,aAAeomD,EACrB3xD,EAAMxT,OAAQ,GAGhBulE,UAAS,SAAC/xD,EAAOE,GACf,IAAQO,EAAOP,EAAOC,QAAdM,GACFuxD,EAAa/hE,cAAI+P,EAAMoxD,gBAAgB,SAACa,GAC5C,OAAIA,EAAOxxD,KAAOA,EAChBvT,wBAAA,GAAY+kE,GAAM,IAAEC,gBAAiBD,EAAOC,gBAAkB,IAEzDD,KAGTjyD,EAAMoxD,eAAiBY,GAGzBG,qBAAoB,SAACnyD,EAAOE,GAC1BF,EAAM0nD,aAAc,EACpB1nD,EAAMuxD,eAAiBrxD,EAAOC,SAGhCiyD,mBAAkB,SAACpyD,EAAOE,GACxBF,EAAM0nD,aAAc,EACpB1nD,EAAMV,WAAY,EAClBU,EAAMxT,OAAQ,EAEd,IAAImlE,EAAUzxD,EAAOC,QAErBH,EAAMqxD,OAASM,EAAQC,gBAAkBD,EAAQE,gBACjD7xD,EAAMsxD,WACgB,MAApBK,EAAQG,UAAgD,IAA5BH,EAAQG,SAASj/D,QAEzC8+D,EAAQG,SAAS7tB,MAAK,SAAC3U,GAAsB,OAAKA,EAAE6xB,UAC1DnhD,EAAMuL,aAAerL,EAAOC,SAE9BkyD,SAAQ,SAACryD,GAAQ,IAADsyD,EACdtyD,EAAK9S,wBAAA,GACA8S,GAAK,IACRuL,aAAYre,wBAAA,GACP8S,EAAMuL,cAAY,IACrBV,QAAO3d,wBAAA,GAAyB,QAAzBolE,EAAOtyD,EAAMuL,oBAAY,IAAA+mD,OAAA,EAAlBA,EAAoBznD,SAAO,IAAGpB,OAAQ,SAI1D8oD,iBAAgB,SAACvyD,EAAOE,GACtBF,EAAMV,WAAY,EAClBU,EAAM0nD,aAAc,EACpB1nD,EAAMuxD,eAAiB,EACvBvxD,EAAMuL,aAAe,KACrBvL,EAAMxT,OAAQ,EAEd,IAAAib,EAAwCvH,EAAOC,QAAvCM,EAAEgH,EAAFhH,GAAI+xD,EAAW/qD,EAAX+qD,YAAaxP,EAAUv7C,EAAVu7C,WACnBgP,EAAa/hE,cAAI+P,EAAMoxD,gBAAgB,SAACa,GAC5C,OAAIA,EAAOxxD,KAAOA,EAChBvT,wBAAA,GAAY+kE,GAAM,IAAEjP,WAAYA,EAAYwP,YAAaA,IAEpDP,KAGTjyD,EAAMoxD,eAAiBY,GAGzBS,UAAS,SAACzyD,GACRA,EAAM0nD,aAAc,GAItBS,WAAU,SAACnoD,GACTA,EAAM0nD,aAAc,EACpB1nD,EAAMuxD,eAAiB,EACvBvxD,EAAMuL,aAAe,KACrBvL,EAAMxT,OAAQ,MAML2S,MAAa,QAGrB,IAAAuC,EAOHvC,EAAMwC,QAJRwmD,GAFkBzmD,EAAlB0wD,mBACS1wD,EAAT+wD,UACU/wD,EAAVymD,YACAgK,EAAoBzwD,EAApBywD,qBACQzwD,EAAR2wD,SACS3wD,EAATqwD,UAKK,SAASW,IACd,OAAAh+B,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,IAAA/lB,EAAAgmB,EAAA+9B,EAAA5Z,EAAAnoC,EAAA,OAAA6c,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAEsC,OADnCvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ6vD,oBAAoB38B,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAElBqO,IAAMR,IAA8B,0BAA0B,KAAD,EAA9EpD,EAAQC,EAAAxE,KAAAsiC,EACW/9B,EAAS5e,KAA1B+iC,EAAI4Z,EAAJ5Z,KAAMnoC,EAAM+hD,EAAN/hD,OAAMikB,EAAA6D,GAEZ9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACPk6B,IAAuB94B,QAAO,GAAAjF,EAAA6D,KAG9Bk6B,IAAuB17B,SAAQ,oBAFqB,OAAvDtoB,EAASzP,EAAMwC,QAAQ8vD,yBAAyB1Y,IAAOlkB,EAAArE,OAAA,oBAGmB,OAA1E5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmB37B,YAAarC,EAAArE,OAAA,oBAAAqE,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAI9EjmB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQ,MAAO,yBAAAikB,EAAAzC,UAAAuC,EAAA,mBAOhD,SAASo+B,EAAgBtyD,GAC9B,OAAAi0B,YAAAjH,IAAAiE,MAAO,SAAAwD,IAAA,IAAAtmB,EAAAgmB,EAAAo+B,EAAA5sD,EAAAwK,EAAA,OAAA6c,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgBo1B,EAAAjD,KAAA,EAAAiD,EAAAhL,KAAA,EAGdqO,IAAMR,IAAG,qBAAA5oC,OAAgDqR,IAAM,KAAD,EAA/Em0B,EAAQO,EAAA9E,KAAA2iC,EACWp+B,EAAS5e,KAA1B5P,EAAI4sD,EAAJ5sD,KAAMwK,EAAMoiD,EAANpiD,OAAMukB,EAAAuD,GAEZ9nB,EAAMukB,EAAAhL,KAAAgL,EAAAuD,KACPu6B,IAAuBn5B,QAAO,GAAA3E,EAAAuD,KAG9Bu6B,IAAuB/7B,SAAQ,oBAFmB,OAArDtoB,EAASzP,EAAMwC,QAAQ+vD,uBAAuBtrD,IAAO+uB,EAAA3E,OAAA,oBAGqB,OAA1E5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmB37B,YAAa/B,EAAA3E,OAAA,oBAAA2E,EAAAhL,KAAA,iBAAAgL,EAAAjD,KAAA,GAAAiD,EAAA29B,GAAA39B,EAAA,SAI9EvmB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmB7iC,SAAU,yBAAAmF,EAAA/C,UAAA8C,EAAA,mBAKtE,IAAMg+B,EAAuB,SAACzyD,GAAU,OAAK,SAAC0yD,GACnD,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAA4G,IAAA,IAAA1pB,EAAAgmB,EAAAw+B,EAAAvoD,EAAA+F,EAAA,OAAA6c,IAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgBw4B,EAAArG,KAAA,EAAAqG,EAAApO,KAAA,EAEdqO,IAAM32B,KAAI,qBAAAzS,OACVqR,EAAE,eACvBA,EACA,CACEw3B,QAAS,CAAEC,WAAW,KAExB,KAAD,EANKtD,EAAQ2D,EAAAlI,KAAA+iC,EAOcx+B,EAAS5e,KAA7BnL,EAAOuoD,EAAPvoD,QAAS+F,EAAMwiD,EAANxiD,OAAM2nB,EAAAG,GAEf9nB,EAAM2nB,EAAApO,KAAAoO,EAAAG,KACP26B,IAA6Bv5B,QAAO,GAAAvB,EAAAG,KAkBpC26B,IAA6BC,eAAc,GAAA/6B,EAAAG,KAG3C26B,IAA6BE,KAAI,oBALxB,OAfZ3kD,EACEzP,EAAMwC,QAAQ4wD,iBAAiB,CAC7B9xD,GAAIA,EACJuiD,WAAYn4C,EAAQpB,SAAW2Q,IAAcssB,WAC7C8rB,YAAa3nD,EAAQpB,SAAW2Q,IAAco5C,eAGlD5kD,EACE6kD,YAAc,CACZhzD,GAAIA,EACJuiD,WAAYn4C,EAAQpB,SAAW2Q,IAAcssB,WAC7C8rB,YAAa3nD,EAAQpB,SAAW2Q,IAAco5C,YAC9CE,aAAc7oD,EAAQpK,MAG1B0yD,IAAY56B,EAAA/H,OAAA,oBAGoE,OAAhF5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmBS,kBAAmB/6B,EAAA/H,OAAA,oBAGV,OAAtE5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmBU,QAASh7B,EAAA/H,OAAA,oBAGC,OAAvE5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmB7iC,SAAUuI,EAAA/H,OAAA,oBAAA+H,EAAApO,KAAA,iBAAAoO,EAAArG,KAAA,GAAAqG,EAAAu6B,GAAAv6B,EAAA,SAI3E3pB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmB7iC,SAAU,yBAAAuI,EAAAnG,UAAAkG,EAAA,qBAKhEq7B,EACX,SAAClzD,EAAYizD,GAAoB,OAAK,SAACP,GACrC,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAA8Q,IAAA,IAAA5zB,EAAAgmB,EAAAhkB,EAAA,OAAA6c,IAAAe,MAAA,SAAAiU,GAAA,cAAAA,EAAAvQ,KAAAuQ,EAAAtY,MAAA,OAE0C,OADvCvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ4wD,kBAAiB,IAAO9vB,EAAAvQ,KAAA,EAAAuQ,EAAAtY,KAAA,EAEtBqO,IAAM32B,KAAI,qBAAAzS,OACVskE,EAAY,WACjCA,EACA,CACEz7B,QAAS,CAAEC,WAAW,KAExB,KAAD,EANKtD,EAAQ6N,EAAApS,KAONzf,EAAWgkB,EAAS5e,KAApBpF,OAAM6xB,EAAA/J,GAEN9nB,EAAM6xB,EAAAtY,KAAAsY,EAAA/J,KACPk7B,IAAyB95B,QAAO,oBAYvB,OAXZlrB,EACEzP,EAAMwC,QAAQ4wD,iBAAiB,CAC7B9xD,GAAIA,EACJuiD,YAAY,EACZwP,aAAa,KAIjB5jD,EACE6kD,YAAc,CAAEhzD,GAAIA,EAAIuiD,YAAY,EAAOwP,aAAa,EAAOkB,aAAc,KAE/EP,IAAY1wB,EAAAjS,OAAA,oBAI2D,OAAvE5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmB7iC,SAAUyS,EAAAjS,OAAA,oBAAAiS,EAAAtY,KAAA,iBAAAsY,EAAAvQ,KAAA,GAAAuQ,EAAAqwB,GAAArwB,EAAA,SAI3E7zB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmB7iC,SAAU,yBAAAyS,EAAArQ,UAAAoQ,EAAA,qBAKlEqxB,EACX,SAACz6B,GAAyB,OAAK,SAAC+5B,GAC9B,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAAoiC,IAAA,IAAAllD,EAAAgmB,EAAAm/B,EAAAC,EAAApjD,EAAA,OAAA6c,IAAAe,MAAA,SAAAylC,GAAA,cAAAA,EAAA/hC,KAAA+hC,EAAA9pC,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgBk0D,EAAA/hC,KAAA,EAAA+hC,EAAA9pC,KAAA,EAEdqO,IAAM32B,KAAI,8BAE/Bu3B,GACA,KAAD,EAHKxE,EAAQq/B,EAAA5jC,KAAA0jC,EAIUn/B,EAAS5e,KAAzBnd,EAAGk7D,EAAHl7D,IAAK+X,EAAMmjD,EAANnjD,OAAMqjD,EAAAv7B,GAEX9nB,EAAMqjD,EAAA9pC,KAAA8pC,EAAAv7B,KACPw7B,IAAgBp6B,QAAO,oBAGX,OAFflrB,EAASzP,EAAMwC,QAAQuH,cACvB0F,EAASzP,EAAMwC,QAAQowD,UAAU,CAAEtxD,GAAI24B,EAAQ34B,MAC/C0yD,EAAUt6D,GAAKo7D,EAAAzjC,OAAA,oBAGsC,OAArD5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQA,KAAWqjD,EAAAzjC,OAAA,oBAAAyjC,EAAA9pC,KAAA,iBAAA8pC,EAAA/hC,KAAA,GAAA+hC,EAAAnB,GAAAmB,EAAA,SAIzDrlD,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmB7iC,SAAU,yBAAAikC,EAAA7hC,UAAA0hC,EAAA,sB,4DCvUzEK,EAAmE,CACvE,CAAE1zD,GAAI,KAAM2zD,YAAa,SAAUpnE,KAAM,uBACzC,CAAEyT,GAAI,KAAM2zD,YAAa,eAAgBpnE,KAAM,iBAC/C,CAAEyT,GAAI,KAAM2zD,YAAa,YAAapnE,KAAM,aAC5C,CAAEyT,GAAI,KAAM2zD,YAAa,cAAepnE,KAAM,eAC9C,CAAEyT,GAAI,KAAM2zD,YAAa,YAAapnE,KAAM,cAC5C,CAAEyT,GAAI,KAAM2zD,YAAa,QAASpnE,KAAM,oBACxC,CAAEyT,GAAI,KAAM2zD,YAAa,iBAAkBpnE,KAAM,kBACjD,CAAEyT,GAAI,KAAM2zD,YAAa,aAAcpnE,KAAM,kBAC7C,CAAEyT,GAAI,KAAM2zD,YAAa,eAAgBpnE,KAAM,kBAC/C,CAAEyT,GAAI,KAAM2zD,YAAa,WAAYpnE,KAAM,YAC3C,CAAEyT,GAAI,KAAM2zD,YAAa,SAAUpnE,KAAM,UACzC,CAAEyT,GAAI,KAAM2zD,YAAa,eAAgBpnE,KAAM,kBAC/C,CAAEyT,GAAI,KAAM2zD,YAAa,gBAAiBpnE,KAAM,iBAChD,CAAEyT,GAAI,KAAM2zD,YAAa,aAAcpnE,KAAM,iBAC7C,CAAEyT,GAAI,KAAM2zD,YAAa,aAAcpnE,KAAM,eAC7C,CAAEyT,GAAI,KAAM2zD,YAAa,MAAOpnE,KAAM,UACtC,CAAEyT,GAAI,KAAM2zD,YAAa,oBAAqBpnE,KAAM,eACpD,CAAEyT,GAAI,KAAM2zD,YAAa,cAAepnE,KAAM,gBAoCjC+wD,IA9BE,WAAO,IAADsW,EAAAC,EAAAC,EAIjBC,EAAUv9D,SAAS0e,SAAS8+C,SAEhChoE,EAA0BC,mBAAS2+D,KAAmB1+D,EAAAC,YAAAH,EAAA,GAA/Cu6C,EAAKr6C,EAAA,GAAE+nE,EAAQ/nE,EAAA,GAEtBS,qBAAU,WAAO,IAADunE,EACRC,EAAsE,QAA3DD,EAAGR,EAAO7mE,QAAO,SAACmtB,GAAC,OAAK+5C,EAAQ9mE,SAAS+sB,EAAE25C,gBAAc,UAAE,IAAAO,OAAA,EAAxDA,EAA0Dl0D,GAC1Em0D,GAAaF,EAASE,KACzB,IAEH,IAAMC,EAAU59D,SAAS0e,SAASm/C,KAAKl+D,QACE,QADKy9D,EAC5CF,EAAO7mE,QAAO,SAACmtB,GAAC,OAAKA,EAAEha,KAAOumC,KAAO,UAAE,IAAAqtB,OAAA,EAAvCA,EAAyCD,YACzC,IAGIpnE,EAAOiK,SAAS0e,SAASm/C,KAAKl+D,QAA+C,QAAxC09D,EAACH,EAAO7mE,QAAO,SAACmtB,GAAC,OAAKA,EAAEha,KAAOumC,KAAO,UAAE,IAAAstB,OAAA,EAAvCA,EAAyCtnE,KAAM,IAErF+nE,EAA8C,QAArCR,EAAGJ,EAAOp7C,MAAK,SAAC0B,GAAC,OAAKA,EAAEha,KAAOumC,YAAM,IAAAutB,OAAA,EAAlCA,EAAoCvnE,KAEtD,MAAO,CACLg6C,QACA6tB,UACA7nE,OACA+nE,e,iCCGJ,wIAAO,IAAKC,EAAc,SAAdA,GAAc,OAAdA,IAAc,eAAdA,IAAc,eAAdA,IAAc,eAAdA,IAAc,qBAAdA,IAAc,iBAAdA,IAAc,mBAAdA,EAAc,KAkCdC,EAAkB,SAAlBA,GAAkB,OAAlBA,IAAkB,uBAAlBA,IAAkB,qBAAlBA,IAAkB,iBAAlBA,EAAkB,KAYlBC,EAAoB,SAApBA,GAAoB,OAApBA,IAAoB,uBAApBA,IAAoB,qBAApBA,IAAoB,iBAApBA,EAAoB,KAUpBC,EAAwB,SAAxBA,GAAwB,OAAxBA,IAAwB,uBAAxBA,IAAwB,qBAAxBA,IAAwB,iBAAxBA,IAAwB,6BAAxBA,IAAwB,uDAAxBA,EAAwB,M,4KC9F9BjO,EAAOkO,sBACX,SAAAzmE,EAAkE4xB,GAAS,IAAxElyB,EAAQM,EAARN,SAAUklD,EAAc5kD,EAAd4kD,eAAc8hB,EAAA1mE,EAAEgmB,aAAK,IAAA0gD,EAAG,GAAEA,EAAEC,EAAW3mE,EAAX2mE,YAAgBp4D,EAAKc,YAAArP,EAAAsP,GACpDqV,EAAaC,cAAbD,SACFiiD,EAAc/hB,cACZR,EAAaC,cAAbD,SACA4b,EAAcR,cAAdQ,UAEF4G,EAAoB3G,uBAAY,SAAC74C,GAAgB,IAADy/C,EAAAC,EAChDC,EAAsB,QAAdF,EAAG7G,WAAW,IAAA6G,OAAA,EAAXA,EAAa18C,MAAK,SAAC1Q,GAAC,OAAKA,EAAE0qB,KAAKrlC,SAAS4lB,MAEnDqiD,GACH/G,IAAY3+D,KAAI,SAACoY,GAAC,IAAAutD,EAAA,OACN,QADMA,EAChBvtD,EAAEha,gBAAQ,IAAAunE,OAAA,EAAVA,EACItoE,QAAO,SAACy9C,GAAC,OAAKz3B,EAAS5lB,SAASq9C,EAAEhY,SACnC9iC,KAAI,SAAC86C,GACJ4qB,EAAW,CACTl1D,GAAIsqC,EAAEtqC,GACNwtD,gBAAgB,EAChBl7B,KAAMgY,EAAEhY,KACRiN,WAAW,EACXrrB,MAAOo2B,EAAEp2B,MACTtmB,SAAU,UAKhBsnE,GACF3iB,EACE53C,OAAOC,OACL,GACA,CACE63C,aAAsB,QAAVwiB,EAAEC,SAAQ,IAAAD,OAAA,EAARA,EAAU/gD,OAE1BqB,MAKL,IASH,OAPA5oB,qBAAU,WACJkoE,EAAaE,EAAkBF,KAC9BE,IAELD,EAAYM,kBAAkBtiB,GAAkC,MAC/D,CAACiiB,EAAmBjiB,IAGrB1kD,eAACC,IAAG5B,wBAAA,CAACqzB,IAAKA,GAASrjB,GAAK,IAAA7O,SAAA,CACtBF,cAAC2nE,IAAM,CAAAznE,SACLF,cAAA,SAAAE,SAAQsmB,MAETtmB,SAMM64D,O,0XC7Efz5B,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAwBA,IAWM0N,EAAQC,YAAY,CACxBpS,KAAM,WACNqS,aAbkC,CAClCC,WAAW,EACX9S,OAAO,EACPupE,UAAW,GACXtqD,SAAU,KACV4lD,QAAQ,EACR2E,WAAY,EACZ7E,eAAe,EACfzJ,aAAa,GAMb5nD,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ,MAEhBglE,iBAAgB,SAACxxD,GACfA,EAAMmxD,eAAgB,EACtBnxD,EAAMxT,MAAQ,MAGhB0c,WAAU,SAAClJ,GACTA,EAAMV,WAAY,GAIpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMmxD,eAAgB,EACtBnxD,EAAMxT,MAAQ0T,EAAOC,SAIvB81D,oBAAmB,SAACj2D,EAAOE,GACzBF,EAAMmxD,eAAgB,EACtBnxD,EAAMV,WAAY,EAClBU,EAAM+1D,UAAY71D,EAAOC,QACzBH,EAAMxT,MAAQ,MAGhB0pE,mBAAkB,SAACl2D,EAAOE,GACxBF,EAAMV,WAAY,EAClBU,EAAMyL,SAAWvL,EAAOC,QACxB,IAAIwxD,EAAUzxD,EAAOC,QACrBH,EAAMqxD,OAASM,EAAQC,gBAAkBD,EAAQE,gBACjD7xD,EAAMxT,MAAQ,MAGhB2pE,mBAAkB,SAACn2D,EAAOE,GACxBF,EAAM0nD,aAAc,EACpB1nD,EAAMg2D,WAAa91D,EAAOC,SAG5Bi2D,eAAc,SAACp2D,EAAOE,GACpBF,EAAMV,WAAY,EAClB,IAAIqyD,EAAUzxD,EAAOC,QACrBH,EAAMqxD,OAASM,EAAQC,gBAAkBD,EAAQE,gBACjD7xD,EAAMyL,SAAWvL,EAAOC,QACxBH,EAAMxT,MAAQ,MAEhBo0C,SAAQ,SAAC5gC,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAM0nD,aAAc,EACpB1nD,EAAMg2D,WAAa,EACnBh2D,EAAMyL,SAAW,KAEjBzL,EAAMxT,MAAQ,MAGhB+lE,iBAAgB,SAACvyD,EAAOE,GACtBF,EAAMV,WAAY,EAClBU,EAAM0nD,aAAc,EACpB1nD,EAAMg2D,WAAa,EACnBh2D,EAAMyL,SAAW,KACjBzL,EAAMxT,OAAQ,EAEd,IAAAib,EAAwCvH,EAAOC,QAAvCM,EAAEgH,EAAFhH,GAAI+xD,EAAW/qD,EAAX+qD,YAAaxP,EAAUv7C,EAAVu7C,WACnBgP,EAAa/hE,cAAI+P,EAAM+1D,WAAW,SAAC9D,GACvC,OAAIA,EAAOxxD,KAAOA,EAChBvT,wBAAA,GAAY+kE,GAAM,IAAEjP,WAAYA,EAAYwP,YAAaA,IAEpDP,KAGTjyD,EAAM+1D,UAAY/D,GAIpBS,UAAS,SAACzyD,GACRA,EAAM0nD,aAAc,GAItBS,WAAU,SAACnoD,GACTA,EAAM0nD,aAAc,EACpB1nD,EAAMg2D,WAAa,EACnBh2D,EAAMxT,MAAQ,SAML2S,MAAa,QAGrB,IAAAuC,EAAsEvC,EAAMwC,QAAzCwmD,GAAbzmD,EAAd00D,eAAyB10D,EAAT+wD,UAAqB/wD,EAAVymD,YAAYgO,EAAkBz0D,EAAlBy0D,mBAI/C,SAASE,IACd,OAAA3hC,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,IAAA/lB,EAAAgmB,EAAA+9B,EAAA5Z,EAAAnoC,EAAA,OAAA6c,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAEsC,OADnCvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ6vD,oBAAoB38B,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAElBqO,IAAMR,IAA0B,sBAAsB,KAAD,EAAtEpD,EAAQC,EAAAxE,KAAAsiC,EACW/9B,EAAS5e,KAA1B+iC,EAAI4Z,EAAJ5Z,KAAMnoC,EAAM+hD,EAAN/hD,OAAMikB,EAAA6D,GAEZ9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACPu8B,IAAmBn7B,QAAO,GAAAjF,EAAA6D,KAG1Bu8B,IAAmB/9B,SAAQ,oBAF4D,OAA1FtoB,EAASzP,EAAMwC,QAAQs0D,oBAAoBld,EAAK9oD,KAAI,SAAC0M,GAAC,OAAK25D,YAAyB35D,QAAMk4B,EAAArE,OAAA,oBAGhB,OAA1E5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmB37B,YAAarC,EAAArE,OAAA,oBAAAqE,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAI9EpN,QAAQC,IAAGmN,EAAAi+B,IACXlkD,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQ,MAAO,yBAAAikB,EAAAzC,UAAAuC,EAAA,mBAOhD,SAAS4hC,EAAY91D,GAC1B,OAAAi0B,YAAAjH,IAAAiE,MAAO,SAAAwD,IAAA,IAAAtmB,EAAAgmB,EAAAo+B,EAAAwD,EAAA5lD,EAAA,OAAA6c,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgBo1B,EAAAjD,KAAA,EAAAiD,EAAAhL,KAAA,EAEdqO,IAAMR,IAAG,wBAAA5oC,OAAiDqR,IAAM,KAAD,EAAhFm0B,EAAQO,EAAA9E,KAAA2iC,EACap+B,EAAS5e,KAA5BwgD,EAAMxD,EAANwD,OAAQ5lD,EAAMoiD,EAANpiD,OAAMukB,EAAAuD,GAEd9nB,EAAMukB,EAAAhL,KAAAgL,EAAAuD,KACPw8B,IAAqBp7B,QAAO,GAAA3E,EAAAuD,KAG5Bw8B,IAAqBh+B,SAAQ,oBAF6C,OAA7EtoB,EAASzP,EAAMwC,QAAQu0D,mBAAmBI,YAAyBE,KAAUrhC,EAAA3E,OAAA,oBAGH,OAA1E5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmB37B,YAAa/B,EAAA3E,OAAA,oBAAA2E,EAAAhL,KAAA,iBAAAgL,EAAAjD,KAAA,GAAAiD,EAAA29B,GAAA39B,EAAA,SAI9EvmB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmB7iC,SAAU,yBAAAmF,EAAA/C,UAAA8C,EAAA,mBAKtE,IAAMuhC,EAAyB,SAACh2D,GAAU,OAAK,SAAC0yD,GACrD,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAA4G,IAAA,IAAA1pB,EAAAgmB,EAAAw+B,EAAAxiD,EAAA,OAAA6c,IAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgBw4B,EAAArG,KAAA,EAAAqG,EAAApO,KAAA,EAEdqO,IAAMR,IAAG,gCAAA5oC,OACEqR,GAChC,CACEw3B,QAAS,CAAEC,WAAW,KAExB,KAAD,EALKtD,EAAQ2D,EAAAlI,KAAA+iC,EAMuBx+B,EAAS5e,KAAtBo9C,EAAhBsD,iBAAkB9lD,EAAMwiD,EAANxiD,OAAM2nB,EAAAG,GAExB9nB,EAAM2nB,EAAApO,KAAAoO,EAAAG,KACPy8B,IAAyBr7B,QAAO,GAAAvB,EAAAG,KAkBhCy8B,IAAyBwB,YAAW,GAAAp+B,EAAAG,KAGpCy8B,IAAyByB,yBAAwB,oBALxC,OAfZhoD,EACEzP,EAAMwC,QAAQ4wD,iBAAiB,CAC7B9xD,GAAIA,EACJuiD,YAAY,EACZwP,aAAa,KAIjB5jD,EACE6kD,YAAc,CACZhzD,GAAIA,EACJuiD,YAAY,EACZwP,aAAa,KAGjBW,IAAY56B,EAAA/H,OAAA,oBAGoE,OAAhF5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmBS,kBAAmB/6B,EAAA/H,OAAA,oBAGK,OAArF5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmBgE,uBAAwBt+B,EAAA/H,OAAA,oBAGd,OAAvE5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmB7iC,SAAUuI,EAAA/H,OAAA,oBAAA+H,EAAApO,KAAA,iBAAAoO,EAAArG,KAAA,GAAAqG,EAAAu6B,GAAAv6B,EAAA,SAI3E3pB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmB7iC,SAAU,yBAAAuI,EAAAnG,UAAAkG,EAAA,qBAKhEw+B,EAAmB,SAACr2D,GAAU,OAAK,SAAC0yD,GAC/C,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAA8Q,IAAA,IAAA5zB,EAAAgmB,EAAAm/B,EAAAnjD,EAAA,OAAA6c,IAAAe,MAAA,SAAAiU,GAAA,cAAAA,EAAAvQ,KAAAuQ,EAAAtY,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgB0iC,EAAAvQ,KAAA,EAAAuQ,EAAAtY,KAAA,EAEdqO,IAAMR,IAAG,4BAAA5oC,OACFqR,GAC5B,CACEw3B,QAAS,CAAEC,WAAW,KAExB,KAAD,EALKtD,EAAQ6N,EAAApS,KAAA0jC,EAMuBn/B,EAAS5e,KAAtB+9C,EAAhB2C,iBAAkB9lD,EAAMmjD,EAANnjD,OAAM6xB,EAAA/J,GAExB9nB,EAAM6xB,EAAAtY,KAAAsY,EAAA/J,KACPy8B,IAAyBr7B,QAAO,GAAA2I,EAAA/J,KAiBhCy8B,IAAyBwB,YAAW,GAAAl0B,EAAA/J,KAGpCy8B,IAAyByB,yBAAwB,oBALxC,OAdZhoD,EACEzP,EAAMwC,QAAQ4wD,iBAAiB,CAC7B9xD,GAAIA,EACJuiD,YAAY,EACZwP,aAAa,KAGjB5jD,EACE6kD,YAAc,CACZhzD,GAAIA,EACJuiD,YAAY,EACZwP,aAAa,KAGjBW,IAAY1wB,EAAAjS,OAAA,oBAGoE,OAAhF5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmBS,kBAAmB7wB,EAAAjS,OAAA,oBAGK,OAArF5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmBgE,uBAAwBp0B,EAAAjS,OAAA,oBAGd,OAAvE5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmB7iC,SAAUyS,EAAAjS,OAAA,oBAAAiS,EAAAtY,KAAA,iBAAAsY,EAAAvQ,KAAA,GAAAuQ,EAAAqwB,GAAArwB,EAAA,SAI3E7zB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmB7iC,SAAU,yBAAAyS,EAAArQ,UAAAoQ,EAAA,qBAKhEu0B,EAAkB,SAACt2D,GAAU,OAAK,SAAC0yD,GAC9C,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAAoiC,IAAA,IAAAllD,EAAAgmB,EAAAoiC,EAAApmD,EAAAja,EAAA,OAAA82B,IAAAe,MAAA,SAAAylC,GAAA,cAAAA,EAAA/hC,KAAA+hC,EAAA9pC,MAAA,OAIoC,OAHjCvb,EAAaT,IAAbS,SAAQqlD,EAAA/hC,KAAA,EAGdtjB,EAASzP,EAAMwC,QAAQ5B,gBAAgBk0D,EAAA9pC,KAAA,EAClBqO,IAAMR,IAAG,6BAAA5oC,OACCqR,EAAE,eAAArR,OAAc6nE,mBAAmBhgE,SAAS0e,SAAS9Y,QAClF,KAAD,EAFG+3B,EAAQq/B,EAAA5jC,KAAA2mC,EAGgBpiC,EAAS5e,KAA7BpF,EAAMomD,EAANpmD,OAAQja,EAAOqgE,EAAPrgE,QAAOs9D,EAAAv7B,GACf9nB,EAAMqjD,EAAA9pC,KAAA8pC,EAAAv7B,KACPw+B,IAAiBp9B,QAAO,oBACR,OAAnBq5B,EAAUx8D,GAASs9D,EAAAzjC,OAAA,oBAGnB5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmBsE,WAAY,QAAAlD,EAAA9pC,KAAA,iBAAA8pC,EAAA/hC,KAAA,GAAA+hC,EAAAnB,GAAAmB,EAAA,SAG7ErlD,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQiiD,IAAmB7iC,SAAU,yBAAAikC,EAAA7hC,UAAA0hC,EAAA,sB,iCC1S7E,4KAae,SAAS7nB,IACtB,IAEMlrC,GACJq2D,EAH4B5/C,cAAtB4/C,sBAIN,6GAEF,OACEjpE,cAACW,IAAG,CAAAT,SACFF,cAACs/C,IAAgB,CAAC32C,IAAK,wCAAyC62C,UAAU,EAAMt/C,SAC9EF,cAACW,IAAG,CAAAT,SACFQ,eAACI,IAAU,CAACC,QAAQ,QAAQkL,MAAM,QAAO/L,SAAA,CACvCF,cAAC6O,IAAQ,CAAC3O,SAAU0S,IAAa,aAQtC,IAAMs2D,EAAuB,WAAO,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EACxCC,EAAwCngD,cAAhCD,EAAkBogD,EAAlBpgD,mBAAoBzJ,EAAO6pD,EAAP7pD,QACtB8pD,EAAUrgD,IAEhB,IAAW,OAAPzJ,QAAO,IAAPA,OAAO,EAAPA,EAASuX,cAAeC,IAAW1b,KAAM,OAAOzb,cAAAC,WAAA,IAEpD,IAAMypE,EAAe,CACnB,CAAE/nE,MAAO,eAAgB7C,MAAO2qE,EAAQE,cACxC,CAAEhoE,MAAO,qBAAsB7C,MAA2B,QAAtBqqE,EAAEM,EAAQE,oBAAY,IAAAR,OAAA,EAApBA,EAAsBS,oBAC5D,CAAEjoE,MAAO,wBAAsB7C,MAA2B,QAAtBsqE,EAAEK,EAAQE,oBAAY,IAAAP,OAAA,EAApBA,EAAsBS,kBAC5D,CAAEloE,MAAO,mBAAoB7C,MAA2B,QAAtBuqE,EAAEI,EAAQE,oBAAY,IAAAN,OAAA,EAApBA,EAAsBS,iBAC1D,CAAEnoE,MAAO,uBAAwB7C,MAA2B,QAAtBwqE,EAAEG,EAAQE,oBAAY,IAAAL,OAAA,EAApBA,EAAsBS,kBAC9D,CAAEpoE,MAAO,sBAAuB7C,MAA2B,QAAtByqE,EAAEE,EAAQE,oBAAY,IAAAJ,OAAA,EAApBA,EAAsBS,kBAC7D,CAAEroE,MAAO,6BAA2B7C,MAAO2qE,EAAQQ,mBACnD,CAAEtoE,MAAO,kBAAmB7C,MAAO2qE,EAAQ53D,QAAUq4D,IAAcC,YAGrE,OACEnqE,cAACk9C,IAAa,CAAC12B,MAAM,+BAA4B5lB,GAAI,CAAEg8B,EAAG,GAAI18B,SAC5DF,cAAC2uB,IAAI,CAAC/tB,GAAI,CAAEiN,EAAG,GAAI3N,SAChBwpE,EAAa5nE,KAAI,SAACmC,GACjB,OACEvD,eAACU,IAAK,CACJqB,UAAW,MACXlB,WAAW,SACXutB,eAAgB,gBAAgB5uB,SAAA,CAGhCF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAE+D,EAAEtC,QAC9BsC,EAAEnF,MACDkB,cAAC4zB,IAAK,CAAC7yB,QAAQ,QAAQkL,MAAM,QAAO/L,SAAC,QAIrCF,cAAC4zB,IAAK,CAAC7yB,QAAQ,QAAQkL,MAAM,UAAS/L,SAAC,UARpC+D,EAAEtC,gB,iCCpCrB,4MAAO,IAAK8iE,EAAsB,SAAtBA,GAAsB,OAAtBA,IAAsB,uBAAtBA,IAAsB,qBAAtBA,EAAsB,KAUtBK,EAAsB,SAAtBA,GAAsB,OAAtBA,IAAsB,uBAAtBA,IAAsB,qBAAtBA,EAAsB,KAsCtBsF,EAAkB,SAAlBA,GAAkB,OAAlBA,IAAkB,eAAlBA,IAAkB,eAAlBA,IAAkB,mBAAlBA,IAAkB,eAAlBA,IAAkB,iBAAlBA,IAAkB,aAAlBA,IAAkB,qBAAlBA,EAAkB,KAoBlBlF,EAA4B,SAA5BA,GAA4B,OAA5BA,IAA4B,iBAA5BA,IAA4B,qBAA5BA,IAA4B,eAA5BA,IAA4B,mCAA5BA,IAA4B,6BAA5BA,IAA4B,2BAA5BA,IAA4B,2BAA5BA,EAA4B,KAsC5Ba,EAAe,SAAfA,GAAe,OAAfA,IAAe,uBAAfA,IAAe,qBAAfA,IAAe,iBAAfA,EAAe,KASfN,EAAwB,SAAxBA,GAAwB,OAAxBA,IAAwB,iBAAxBA,IAAwB,qBAAxBA,EAAwB,M,0MCmBrB9/C,IAzIiB,WAC9B,IAAMoyC,EAAmBC,qBAAWC,KAC5BC,EAAWp8B,cAAXo8B,OACRha,EAAoD70B,cAAfuO,GAAtBsmB,EAAPv+B,QAA2Bu+B,EAAlB90B,mBAA8B80B,EAAVtmB,YACrCtD,EAAwBC,YAA+B,OAAQ81C,IAAcC,cAAa91C,EAAA/1B,YAAA61B,EAAA,GAA/EE,EAAA,GAASA,EAAA,GAsHpB,MAAO,CACLc,aApFF,SAAsBxR,EAAYmR,IACL,OAAhB8iC,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB9/C,MAEvBqD,OAAS2Z,EAAU1Z,IAAoBya,WAAaza,IAAoBE,KAE9D,OAAhBs8C,QAAgB,IAAhBA,KAAkB38C,WACA,OAAhB28C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBx9C,QACF,OAAhBw9C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB9/C,MAClB,EACgB,OAAhB8/C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBv9C,aA4EpBvc,SAlHF,SAAkBa,GACA,OAAhBi5D,QAAgB,IAAhBA,KAAkBwS,aAAa,CAC7BpiD,SACErpB,EAAM6D,OAAS2lB,IAAkB4K,SACvB,OAALp0B,QAAK,IAALA,OAAK,EAALA,EAAiCqqB,aAAahB,SAC/CrpB,EAAMwT,GACZA,GACExT,EAAM6D,OAAS2lB,IAAkB4K,SACvB,OAALp0B,QAAK,IAALA,OAAK,EAALA,EAAiCqqB,aAAa7W,GAAGymB,WAClD,IACNp2B,KAAM7D,EAAM6D,KACZ2Y,OAAQxc,EAAMwc,OACdkvD,QACE1rE,EAAM6D,OAAS2lB,IAAkB4K,UAAYp0B,EAAM6D,OAAS2lB,IAAkBgH,UACzExwB,EAA6Bm0B,MAAM3gB,GAAGymB,WACvC,IACN0xC,QAAQ,EACR9zC,MAAO,EACPC,UACE93B,EAAM6D,OAAS2lB,IAAkB0K,OAAa,OAALl0B,QAAK,IAALA,OAAK,EAALA,EAA6B83B,YAlB1EmhC,EAmBG,SAACt1C,GAEc,OAAhBs1C,QAAgB,IAAhBA,KAAkBh8C,mBA6FpBi4B,OArEF,SAAgB/7B,EAA4BuC,GAC1B,OAAhBu9C,QAAgB,IAAhBA,KAAkB38C,WAAW28C,EAAiBx9C,QAAUtC,GAAO,EAAOuC,IAqEtEqhC,iBAxCuB,SAACgkB,GAAa,OAAK,SAACv2B,GAC3C7oB,YACEiqD,YAAc7K,EAAd6K,EAAwB,SAACj6B,EAAYjyB,EAAUk9B,GAC7C,IAAMj5B,EAASy1C,EAAOxc,GAEtB,GAAIj5B,GAAUA,EAAO/d,OAAS,EAAG,CAC/B,IAAIimE,EAAkBloD,EAAO,GAC5BkoD,EAAgB1yD,KAA+BkR,aAAa4O,UAAU7zB,KAAKusC,GAC3Ek6B,EAAgB1yD,KAA+BkR,aAAakG,UAAY7Q,EAEzD,OAAhBu5C,QAAgB,IAAhBA,KAAkB38C,WACwB,IAAxCuvD,EAAgBC,cAAcC,MAC1BF,EAAgBpwD,QAChBowD,EAAgBC,cACpBD,EAAgB1yD,MAChB,EACkC,IAAlC0yD,EAAgBpwD,QAAQswD,MAAcF,EAAgBpwD,QAAU,SAdtEmwD,EAiBG,WACDpxC,QAAQC,IAAI,0BAqBhBwnB,WAnEF,SAAoBzuC,GAAoC,IAAxB4pB,EAAiBz3B,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAC5Cge,EAASy1C,EAAO5lD,GAEtB,GAAImQ,GAAUA,EAAO/d,OAAS,EAAG,CAC/B,IAAIimE,EAAkB,KAElBzuC,EAAY,IAAGyuC,EAAkBloD,EAAOmI,MAAK,SAACgyB,GAAC,OAAKA,EAAE3kC,KAAKikB,YAAcA,MAErD,OAApByuC,IAA0BA,EAAkBloD,EAAO,IAEnDkoD,IACc,OAAhB5S,QAAgB,IAAhBA,KAAkB38C,WACwB,IAAxCuvD,EAAgBC,cAAcC,MAC1BF,EAAgBpwD,QAChBowD,EAAgBC,cACpBD,EAAgB1yD,MAChB,EACkC,IAAlC0yD,EAAgBpwD,QAAQswD,MAAcF,EAAgBpwD,QAAU,SAmDtE6lC,UAjBF,SAAmBjmB,GAAoB,IAADk+B,EAChCzN,EAA6B,GAOjC,OALgB,OAAhBmN,QAAgB,IAAhBA,GAAwB,QAARM,EAAhBN,EAAkB19C,cAAM,IAAAg+C,GAAxBA,EAA0Bv2D,KAAI,SAACs6B,GAAqB,OAClDA,EAAM5X,SAAS1iB,KAAI,SAACyY,GAClBuwD,YAAoBvwD,EAAS4f,EAAW,KAAMywB,SAG3CA,GAUP7kC,SAAU,CACR9N,KAAsB,OAAhB8/C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB9/C,KACxBsC,QAAyB,OAAhBw9C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBx9C,QAC3BC,WAA4B,OAAhBu9C,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBv9C,YAEhCod,gB,6bCzJJ0H,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAwBA,IAUM0N,EAAQC,YAAY,CACxBpS,KAAM,qBACNqS,aAZ4C,CAC5CC,WAAW,EACXi7B,eAAe,EACf6F,iBAAiB,EACjB5F,WAAW,EACX2F,aAAa,EACb3zC,OAAO,EACPsf,mBAAoB,MAMpBhM,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,EAClBU,EAAMxT,OAAQ,GAGhBotC,iBAAgB,SAAC55B,GACfA,EAAMu6B,eAAgB,EACtBv6B,EAAMw6B,WAAY,GAGpB0+B,mBAAkB,SAACl5D,GACjBA,EAAMogC,iBAAkB,EACxBpgC,EAAMmgC,aAAc,GAGtBj3B,WAAU,SAAClJ,GACTA,EAAMV,WAAY,EAClBU,EAAMxT,OAAQ,GAGhBwtC,eAAc,SAACh6B,GACbA,EAAMu6B,eAAgB,EACtBv6B,EAAMw6B,WAAY,GAGpB2+B,cAAa,SAACn5D,GACZA,EAAMu6B,eAAgB,EACtBv6B,EAAMw6B,WAAY,GAGpBkE,UAAS,SAAC1+B,GACRA,EAAMV,WAAY,EAClBU,EAAMxT,OAAQ,GAGhB4sE,iBAAgB,SAACp5D,GACfA,EAAMogC,iBAAkB,GAI1BngC,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAIvB45B,aAAY,SAAC/5B,EAAOE,GAClBF,EAAMu6B,eAAgB,EACtBv6B,EAAMw6B,UAAYt6B,EAAOC,SAI3Bk5D,eAAc,SAACr5D,EAAOE,GACpBF,EAAMogC,iBAAkB,EACxBpgC,EAAMmgC,YAAcjgC,EAAOC,SAI7Bm5D,6BAA4B,SAACt5D,EAAOE,GAClCF,EAAMV,WAAY,EAClBU,EAAM8L,mBAAqB5L,EAAOC,YAMzBhB,MAAa,QAGrB,IAAAuC,EACLvC,EAAMwC,QADsB+8B,GAAFh9B,EAAby3D,cAAwBz3D,EAATg9B,WAAW9E,EAAgBl4B,EAAhBk4B,iBAAkBI,EAAct4B,EAAds4B,eAAgBD,EAAYr4B,EAAZq4B,aAK9DwJ,EACX,SAACjtB,EAAkB7V,GAAU,OAAK,SAAC0yD,GACjC,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,IAAA/lB,EAAAgmB,EAAA+9B,EAAA/hD,EAAAqP,EAAA,OAAAwN,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgB80B,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAEdqO,IAAMR,IAAG,qCAAA5oC,OACOknB,EAAQ,KAAAlnB,OAAIqR,IACjD,KAAD,EAFKm0B,EAAQC,EAAAxE,KAAAsiC,EAGW/9B,EAAS5e,KAA1BpF,EAAM+hD,EAAN/hD,OAAQxK,EAAIusD,EAAJvsD,KAAIyuB,EAAA6D,GACZ9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACP6gC,IAAyBz/B,QAAO,oBAInC,OAHAlrB,EAASzP,EAAMwC,QAAQuH,cAEvBiqD,EAAU/sD,GACVyuB,EAAArE,OAAA,oBAAAqE,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAIJjmB,EAASzP,EAAMwC,QAAQ1B,SAAQ40B,EAAAi+B,KAAS,yBAAAj+B,EAAAzC,UAAAuC,EAAA,qBAOnCkJ,EAAkB,SAACzE,GAA+B,OAAK,SAAC+5B,GACnE,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAAwD,IAAA,IAAAtmB,EAAAgmB,EAAAhkB,EAAA,OAAA6c,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,OACW,OAARvb,EAAaT,IAAbS,SAAQumB,EAAAjD,KAAA,EAAAiD,EAAAhL,KAAA,EAGSqO,IAAM32B,KAAI,mCAE/Bu3B,EACA,CACEnB,QAAS,CAAEC,WAAW,KAExB,KAAD,EANKtD,EAAQO,EAAA9E,KAONzf,EAAWgkB,EAAS5e,KAApBpF,OAAMukB,EAAAuD,GACN9nB,EAAMukB,EAAAhL,KAAAgL,EAAAuD,KACP8gC,IAA0B1/B,QAAO,EAAA3E,EAAAuD,KAIjC8gC,IAA0BtiC,UAAQ/B,EAAAuD,KAClC8gC,IAA0BxpC,MADQ,GACH,gBAJtB,OAAZmjC,IAAYh+B,EAAA3E,OAAA,oBAKyB,OAArC5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,KAAKk1B,EAAA3E,OAAA,oBAAA2E,EAAAhL,KAAA,iBAAAgL,EAAAjD,KAAA,GAAAiD,EAAA29B,GAAA39B,EAAA,SAKzCvmB,EAASzP,EAAMwC,QAAQ1B,SAAS,KAAK,yBAAAk1B,EAAA/C,UAAA8C,EAAA,qBAM9ByB,EAA+B,SAACl2B,GAAU,OAAK,SAAC0yD,GAC3D,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAA4G,IAAA,IAAA1pB,EAAA,OAAA6e,IAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,OAEsC,OADnCvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQi4B,oBAAoBrB,EAAArG,KAAA,EAAAqG,EAAApO,KAAA,EAElBqO,IAAMR,IAAG,4CAAA5oC,OAAsDqR,GAAM,CAC1Fw3B,QAAS,CAAEC,WAAW,KACrB,KAAD,EAFY,IAAAK,EAAAlI,KAGDra,KAAK,CAADuiB,EAAApO,KAAA,SAE0B,OADzCgpC,IACAvkD,EAASzP,EAAMwC,QAAQq4B,kBAAkBzB,EAAA/H,OAAA,kBAI3C5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,KAAKs4B,EAAApO,KAAA,iBAAAoO,EAAArG,KAAA,GAAAqG,EAAAG,GAAAH,EAAA,SAErC3pB,EAASzP,EAAMwC,QAAQ1B,SAAS,KAAK,QAEvC2O,EAASzP,EAAMwC,QAAQq4B,kBAAkB,yBAAAzB,EAAAnG,UAAAkG,EAAA,qBAyEhCuL,EACX,SAACzK,GAA+B,OAChC,SAAC+5B,GAA6C,OAC9C,SAAC17B,GACC,OAAA/C,YAAAjH,IAAAiE,MAAO,SAAAoiC,IAAA,IAAAl/B,EAAAw+B,EAAAxiD,EAAA6oD,EAAA,OAAAhsC,IAAAe,MAAA,SAAAylC,GAAA,cAAAA,EAAA/hC,KAAA+hC,EAAA9pC,MAAA,OACwC,OAA7Cvb,YAASzP,EAAMwC,QAAQu3D,sBAAsBjF,EAAA/hC,KAAA,EAAA+hC,EAAA9pC,KAAA,EAEtBqO,IAAM32B,KAAI,+BAE7Bu3B,GACA,KAAD,EAHGxE,EAAQq/B,EAAA5jC,KAAA+iC,EAIex+B,EAAS5e,KAA5BpF,EAAMwiD,EAANxiD,OAAQ6oD,EAAMrG,EAANqG,OAAMxF,EAAAv7B,GACd9nB,EAAMqjD,EAAA9pC,KAAA8pC,EAAAv7B,KACP4E,IAAmBxD,QAAO,kBAEX,OADlBlrB,YAASzP,EAAMwC,QAAQy3D,oBACvBjG,EAAUsG,GAAQxF,EAAAzjC,OAAA,oBAIR,OADV5hB,YAASzP,EAAMwC,QAAQ03D,eAAezoD,IACtC6mB,IAAUw8B,EAAAzjC,OAAA,oBAAAyjC,EAAA9pC,KAAA,iBAAA8pC,EAAA/hC,KAAA,GAAA+hC,EAAAnB,GAAAmB,EAAA,SAIdrlD,YAASzP,EAAMwC,QAAQ03D,eAAe,KACtC5hC,IAAU,yBAAAw8B,EAAA7hC,UAAA0hC,EAAA,uB,yQCzRZjhB,EAAY75C,YAAO8jB,IAAP9jB,EAAa,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,MAAQ,CAC7Ce,gBAAiB,UACjByE,UAAWxF,EAAMyF,cAAcm0C,IAC/Bh5C,aAAcZ,EAAMa,MAAMC,eAC1BgsB,UAAW,WAUE,SAASqlB,EAAa/6C,GAQb,IAPtBqkB,EAAKrkB,EAALqkB,MACA64B,EAASl9C,EAATk9C,UACAn/C,EAAQiC,EAARjC,SACAqrE,EAAappE,EAAbopE,cACA5rB,EAAMx9C,EAANw9C,OACA/+C,EAAEuB,EAAFvB,GACGmO,EAAKc,YAAA1N,EAAA2N,GAER,OACEpP,eAACgkD,EAAS3lD,wBAAA,CAAC6B,GAAE7B,YAAA,GAAO6B,IAAUmO,GAAK,IAAA7O,SAAA,CAChCsmB,GAASxmB,cAACumB,IAAU,CAACC,MAAOA,EAAO64B,UAAWA,EAAWM,OAAQA,IAClE3/C,cAACikD,IAAW,CAACrjD,GAAI,CAAEiN,EAAG,GAAI3N,SACtBqrE,EAGAvrE,cAACwrE,IAAW,CAAC9tB,kBAAmB6tB,EAAcrrE,SAAEA,IAFhDA,U,sDCjCV,iFAuBe,SAAS4kD,IACtB,IAAA5G,EAAoD70B,cAA5CD,EAAkB80B,EAAlB90B,mBAAoBzJ,EAAOu+B,EAAPv+B,QAASiY,EAAUsmB,EAAVtmB,WAC7BgvC,EAAchX,cAAdgX,UACAzhD,EAAaC,cAAbD,SAsDR,MAAO,CAAEg3C,cA1Ca,WACpB,IAAMsP,EAAiB,CACrBC,UAAW,CACT5nD,MAAO,WACP+0B,MAAO+tB,EACP7hB,aAAc,SACd4mB,UAAW,QAIfC,IAAWF,UAAUD,IAgCC5mB,SA7BP,SAACgnB,GAChB,IAAAlT,EAAgCvvC,IAAxBi1C,EAAQ1F,EAAR0F,SAAU/rD,EAAEqmD,EAAFrmD,GAAIumC,EAAK8f,EAAL9f,MACtB,IAAIjhB,EAAJ,CAEA,IAAM6zC,EAAiB,CACrBC,UAAW,CACT5nD,MAAO,WACP+0B,MAAOA,EAAMl3C,MACbk/C,OAAQwd,EAAS/rD,GACjBiI,QAAa,OAAJsxD,QAAI,IAAJA,OAAI,EAAJA,EAAMtxD,QACfuxD,YAAiB,OAAJD,QAAI,IAAJA,OAAI,EAAJA,EAAMC,YACnBC,cAAmB,OAAJF,QAAI,IAAJA,OAAI,EAAJA,EAAME,cACrBC,cAAmB,OAAJH,QAAI,IAAJA,OAAI,EAAJA,EAAMG,cACrBC,QAAgB,OAAPtsD,QAAO,IAAPA,OAAO,EAAPA,EAASrN,GAClB45D,YAAa55D,EACb0yC,UAAW6mB,EAAK7mB,WAAa7/B,EAC7B4/B,aAAc8mB,EAAK9mB,aACnBonB,aAAcN,EAAKM,aACnBC,aAAcP,EAAKO,aACnBT,UAAW,MACXU,cAAeR,EAAKQ,gBAIxBT,IAAWF,UAAUD,KAKW3nD,MAFpB,gB,iZC3DT,SAASwoD,EAAW1uE,GACMA,EAAvB2uE,UAAR,IAAsBC,EAAI38D,YAAKjS,EAAKkS,GACpC28D,EAAsBC,YAAS9uE,GAAM+uE,EAAAluE,YAAAguE,EAAA,GAA9B/1B,EAAKi2B,EAAA,GAAEC,EAAID,EAAA,GAUlB,OACE3sE,cAAC0C,IAAS3D,wBAAA,CACR4D,KAAK,OACLtE,MAAOuuE,EAAKt/B,SAAWs/B,EAAKvuE,QAAS,EACrCwF,WAZJ,WACE,IAAAgpE,EAAyBC,aAAGF,EAAM,UAAW,SAAQG,EAAAtuE,YAAAouE,EAAA,GAA9Cv/B,EAAOy/B,EAAA,GAAE1uE,EAAK0uE,EAAA,GAErB,GAAIz/B,GAAWjvC,EACb,OAAOA,EAQK2uE,IACRt2B,GACA81B,IAKH,SAAS3e,EAAYjwD,GAC1B,IAAQ+D,EAAuC/D,EAAvC+D,MAAOkmB,EAAgCjqB,EAAhCiqB,KAAMioB,EAA0BlyC,EAA1BkyC,aAAiB08B,EAAI38D,YAAKjS,EAAKqvE,GACpDC,EAA+BR,YAAS9uE,GAAMuvE,EAAA1uE,YAAAyuE,EAAA,GAAvCx2B,EAAKy2B,EAAA,GAAEP,EAAIO,EAAA,GAAEC,EAAOD,EAAA,GACZE,EAAkB32B,EAAzB53C,MACA0zC,EAAa46B,EAAb56B,SACR86B,EAAyBR,aAAGF,EAAM,UAAW,SAAQW,EAAA9uE,YAAA6uE,EAAA,GAArCjvE,GAAFkvE,EAAA,GAAOA,EAAA,IACfC,EAAUnvE,IAAS,EAYzB,OAJAY,qBAAU,WACJ6wC,GAAc0C,EAAS1C,KAC1B,IAGDpvC,eAACs2B,IAAWj4B,wBAAA,GAAKytE,GAAI,IAAEnuE,MAAOmvE,EAAQttE,SAAA,CACpCF,cAACytE,IAAU,CACTzqE,MAAO,CACL8I,gBAAiB,QACjBT,YAAa,MACbgZ,aAAc,OACdnkB,SAEDyB,IAEH3B,cAAC0tE,IAAM3uE,wBAAA,GAAK23C,GAAK,IAAE53C,MAAOuuE,GAAgC,GAAGntE,SACtD,OAAJ2nB,QAAI,IAAJA,OAAI,EAAJA,EAAM/lB,KAAI,SAACmW,EAAWpE,GAAa,OAClC7T,cAACoE,IAAQ,CAAatF,MAAOmZ,EAAK5Y,KAAKa,SACpC+X,EAAKtW,OADOkS,SAvBvB,WACE,GAAI25D,EACF,OAAOxtE,cAAC+2C,IAAc,CAAA72C,SAAE7B,IA0BvB2uE,OAKA,SAASW,EAAc/vE,GAC5B,IAAQ+D,EAAmB/D,EAAnB+D,MAAU6qE,EAAI38D,YAAKjS,EAAKgwE,GAChCC,EAA8BnB,YAAS9uE,GAAMkwE,EAAArvE,YAAAovE,EAAA,GAAtCn3B,EAAKo3B,EAAA,GAAElB,EAAIkB,EAAA,GACVt7B,EADkBs7B,EAAA,GAClBt7B,SAaR,OACE9xC,eAACs2B,IAAW,CAAA92B,SAAA,CACVF,cAAC80B,IAAgB/1B,YAAA,CACfD,MAAO43C,EAAMzhB,SAAWyhB,EAAM53C,MAC9Bm2B,QAASyhB,EAAMzhB,SAAWyhB,EAAM53C,MAChCi2B,QAAS/0B,cAACg1B,IAAQj2B,wBAAA,GAAK23C,GAAK,IAAEz4C,SATpC,SAAsBqF,GACpBkvC,EAASlvC,EAAEC,OAAO0xB,aASdtzB,MAAOA,GACH6qE,IAlBV,WACE,IAAAuB,EAAyBjB,aAAGF,EAAM,UAAW,SAAQoB,EAAAvvE,YAAAsvE,EAAA,GAA9CzgC,EAAO0gC,EAAA,GAAE3vE,EAAK2vE,EAAA,GACrB,GAAI1gC,GAAWjvC,EACb,OAAO2B,cAAC+2C,IAAc,CAAA72C,SAAE7B,IAiBvB2uE,MAKA,SAAStd,EAAgB9xD,GACDA,EAArB2uE,UAAR,IAAmBztE,EAAUlB,EAAVkB,MACnBmvE,EAA+BvB,YAAS9uE,GAAMswE,EAAAzvE,YAAAwvE,EAAA,GAAhCrB,GAAFsB,EAAA,GAAMA,EAAA,IACV17B,EADmB07B,EAAA,GACnB17B,SAaR,OAJAvzC,qBAAU,WACRuzC,EAAS1zC,KACR,CAACA,IAGFkB,cAACW,IAAG,CAAAT,SACD0sE,EAAKt/B,SAAWs/B,EAAKvuE,OACpB2B,cAAC4zB,IAAK,CAAC7yB,QAAQ,QAAQkL,MAAM,QAAO/L,SAd1C,WACE,IAAAiuE,EAAyBrB,aAAGF,EAAM,UAAW,SAAQwB,EAAA3vE,YAAA0vE,EAAA,GAA9C7gC,EAAO8gC,EAAA,GAAE/vE,EAAK+vE,EAAA,GACrB,GAAI9gC,GAAWjvC,EACb,OAAOA,EAYF2uE,S,8PCrHI,SAASr8B,EAAanwC,GAUb,IATtBwmB,EAAIxmB,EAAJwmB,KAAIqnD,EAAA7tE,EACJ2Q,iBAAS,IAAAk9D,GAAQA,EACjBx9B,EAASrwC,EAATqwC,UACAD,EAAQpwC,EAARowC,SACA1wC,EAAQM,EAARN,SAAQouE,EAAA9tE,EACR0tB,gBAAQ,IAAAogD,EAAG,KAAIA,EAAAC,EAAA/tE,EACf02C,oBAAY,IAAAq3B,GAAQA,EAAAC,EAAAhuE,EACpByB,gBAAQ,IAAAusE,GAAQA,EACb5tE,EAAEiP,YAAArP,EAAAsP,GAECtH,EACJ9H,eAAAT,WAAA,CAAAC,SAAA,CACGA,EAEDQ,eAACmuB,IAAa,CAAA3uB,SAAA,CACX0wC,GACC5wC,cAAC+uB,IAAM,CAACpK,QAASisB,EAAU3uC,SAAUkP,EAAUjR,SAAC,WAIjD2wC,GACC7wC,cAAC+uC,IAAa,CACZ9iC,MAAM,UACNlL,QAAQ,YACRiuC,QAAS79B,GAAalP,EACtBgtC,iBAAkBhtC,EAAW,YAAc,gBAC3C0iB,QAASksB,EAAU3wC,SACpB,oBAQT,OACEF,cAACiuB,IAAMlvB,wBAAA,CAACioB,KAAMA,EAAMkH,SAAUA,GAActtB,GAAE,IAAAV,SAC3Cg3C,EACCx2C,eAAAT,WAAA,CAAAC,SAAA,CAAE,IAAEsI,KAEJxI,cAAAC,WAAA,CAAAC,SACEF,cAACyuE,IAAmB,CAAAvuE,SAAEsI,W,qRCzDhC82B,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAwBA,IAMM0N,EAAQC,YAAY,CACxBpS,KAAM,UACNqS,aARiC,CACjCC,WAAW,EACX9S,OAAO,EACPqe,QAAS,MAMT/K,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,GAGpB4J,WAAU,SAAClJ,GACTA,EAAMV,WAAY,GAIpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAIvB08D,qBAAoB,SAAC78D,EAAOE,GAC1BF,EAAMxT,MAAQ,KACdwT,EAAM6K,QAAU3K,EAAOC,QACvBH,EAAMV,WAAY,GAIpBymC,cAAa,SAAC/lC,EAAOE,GACnBF,EAAMxT,MAAQ,KACdwT,EAAM6K,QAAU3K,EAAOC,QACvBH,EAAMV,WAAY,GAIpBw9D,cAAa,SAAC98D,GACZA,EAAMxT,MAAQ,KACdwT,EAAM6K,QAAU,KAChB7K,EAAMV,WAAY,GAIpB6oD,WAAU,SAACnoD,GACTA,EAAMV,WAAY,EAClBU,EAAM6K,QAAU,KAChB7K,EAAMxT,MAAQ,SAML2S,MAAa,QAGrB,IAAAuC,EAA2EvC,EAAMwC,QAAzEokC,EAAarkC,EAAbqkC,cAAe82B,EAAoBn7D,EAApBm7D,qBAIjBE,GAJiDr7D,EAAVymD,WAAyBzmD,EAAbo7D,cAI9B,SAACjyD,GAAgB,OAAK,SAACsoD,GACvD,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,IAAA/lB,EAAAgmB,EAAA+9B,EAAA/hD,EAAAxK,EAAA,OAAAqnB,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgB80B,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAEdqO,IAAM32B,KAC3B,2BACAgJ,GACA,KAAD,EAHK+pB,EAAQC,EAAAxE,KAAAsiC,EAKW/9B,EAAS5e,KAA1BpF,EAAM+hD,EAAN/hD,OAAQxK,EAAIusD,EAAJvsD,KAAIyuB,EAAA6D,GAEZ9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACPskC,IAAyBljC,QAAO,oBAInB,OAHG,IAAfjvB,EAAQpK,GAAUmO,EAASquD,YAAS,CAACC,YAA6B92D,MACjEwI,EAASuuD,YAAYD,YAA6B92D,KAEvD+sD,EAAU/sD,GAAMyuB,EAAArE,OAAA,oBAGgC,OAAhD5hB,EAASzP,EAAMwC,QAAQ1B,SAAS20B,EAAS5e,OAAO6e,EAAArE,OAAA,oBAAAqE,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAIpDjmB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQ,MAAO,yBAAAikB,EAAAzC,UAAAuC,EAAA,sBAK1CyoC,EAAgB,SAACvyD,GAAgB,OAAK,SAACsoD,GAClD,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAAwD,IAAA,IAAAtmB,EAAAgmB,EAAAhkB,EAAA,OAAA6c,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgBo1B,EAAAjD,KAAA,EAAAiD,EAAAhL,KAAA,EAEdqO,IAAMR,IAAG,uBAAA5oC,OAA+Cyb,EAAQpK,KAAM,KAAD,EAAtFm0B,EAAQO,EAAA9E,KACNzf,EAAWgkB,EAAS5e,KAApBpF,OAAMukB,EAAAuD,GAEN9nB,EAAMukB,EAAAhL,KAAAgL,EAAAuD,KACP2kC,IAAoBvjC,QAAO,oBAGlB,OAFZlrB,EAASzP,EAAMwC,QAAQm7D,iBACvBluD,EAAS0uD,YAAY,CAAEC,QAAS1yD,EAAQpK,MACxC0yD,IAAYh+B,EAAA3E,OAAA,oBAGqC,OAAjD5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQ,MAAOukB,EAAA3E,OAAA,oBAAA2E,EAAAhL,KAAA,iBAAAgL,EAAAjD,KAAA,GAAAiD,EAAA29B,GAAA39B,EAAA,SAIrDvmB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQ,MAAO,yBAAAukB,EAAA/C,UAAA8C,EAAA,qBAK1CsoC,EACX,SAAC/8D,GAAU,OACX,SAAC0yD,GAAuD,OACxD,SAAC17B,GACC,OAAA/C,YAAAjH,IAAAiE,MAAO,SAAA4G,IAAA,IAAA1pB,EAAAgmB,EAAAo+B,EAAApiD,EAAA4oC,EAAAikB,EAAA,OAAAhwC,IAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgBw4B,EAAArG,KAAA,EAAAqG,EAAApO,KAAA,EAEhBqO,IAAMR,IAAG,gBAAA5oC,OAAwCqR,EAAE,YAAW,KAAD,EAA9Em0B,EAAQ2D,EAAAlI,KAAA2iC,EACqBp+B,EAAS5e,KAAlCpF,EAAMoiD,EAANpiD,OAAQ4oC,EAAIwZ,EAAJxZ,KAAMnsC,EAAM2lD,EAAN3lD,OAAMkrB,EAAAG,GACpB9nB,EAAM2nB,EAAApO,KAAAoO,EAAAG,KACPglC,IAAoB5jC,QAAO,oBAEN,OADxBlrB,EAASzP,EAAMwC,QAAQuH,cACvBiqD,EAAU3Z,EAAMnsC,GAAQkrB,EAAA/H,OAAA,oBAIR,OADhB5hB,EAASzP,EAAMwC,QAAQuH,cACvBuuB,EAAQ7mB,GAAQ2nB,EAAA/H,OAAA,kBAAA+H,EAAApO,KAAA,iBAAAoO,EAAArG,KAAA,GAAAqG,EAAAu6B,GAAAv6B,EAAA,SAKpB3pB,EAASzP,EAAMwC,QAAQuH,cACvBuuB,EAAQ,IAAI,yBAAAc,EAAAnG,UAAAkG,EAAA,uB,4NCtJb,SAAS1M,EAAe96B,EAAyB/B,GACtD,OAAQ+B,GAMN,KAAK2lB,IAAkBC,MACrB,MAAO,CACL6E,KAAMptB,cAACwvE,EAAe,CAAC7sE,KAAMA,EAAM/B,GAAE7B,YAAA,GAAO6B,KAC5Ce,MAAO,SAEX,KAAK2mB,IAAkBgH,UACrB,MAAO,CACLlC,KAAMptB,cAACwvE,EAAe,CAAC7sE,KAAMA,EAAM/B,GAAE7B,YAAA,GAAO6B,KAC5Ce,MAAO,0BAEX,KAAK2mB,IAAkB4K,SACrB,MAAO,CAAE9F,KAAMptB,cAACwvE,EAAe,CAAC7sE,KAAMA,EAAM/B,GAAE7B,YAAA,GAAO6B,KAAUe,MAAO,iBACxE,KAAK2mB,IAAkBkL,IACrB,MAAO,CAAEpG,KAAMptB,cAACwvE,EAAe,CAAC7sE,KAAMA,EAAM/B,GAAE7B,YAAA,GAAO6B,KAAUe,MAAO,QACxE,KAAK2mB,IAAkBE,MACrB,MAAO,CAAE4E,KAAMptB,cAACwvE,EAAe,CAAC7sE,KAAMA,EAAM/B,GAAE7B,YAAA,GAAO6B,KAAUe,MAAO,YAExE,QACE,MAAO,CAAEyrB,KAAMptB,cAACwvE,EAAe,CAAC7sE,KAAMA,EAAM/B,GAAE7B,YAAA,GAAO6B,KAAUe,MAAO,UAQrE,SAAS6tE,EAAehvE,GAAsC,IAAnCmC,EAAInC,EAAJmC,KAAM/B,EAAEJ,EAAFI,GACtC,OAAQ+B,GAMN,KAAK2lB,IAAkBC,MACrB,OAAOvoB,cAACyvE,IAAS,CAAC7uE,GAAE7B,YAAA,CAAIkN,MAAO,WAAcrL,KAC/C,KAAK0nB,IAAkBgH,UACrB,OAAOtvB,cAAC0vE,IAAU,CAAC9uE,GAAE7B,YAAA,CAAIkN,MAAO,WAAcrL,KAChD,KAAK0nB,IAAkB4K,SACrB,OAAOlzB,cAACq3C,IAAI,CAACz2C,GAAE7B,YAAA,CAAIkN,MAAO,WAAcrL,KAC1C,KAAK0nB,IAAkBkL,IACrB,OAAOxzB,cAAC2vE,IAAS,CAAC/uE,GAAE7B,YAAA,CAAIkN,MAAO,WAAcrL,KAC/C,KAAK0nB,IAAkBE,MACrB,OAAOxoB,cAAC4vE,IAAqB,CAAChvE,GAAE7B,YAAA,CAAIkN,MAAO,WAAcrL,KAE3D,QACE,OAAOZ,cAAC6vE,IAAe,CAACjvE,GAAE7B,YAAA,CAAIkN,MAAO,WAAcrL,MAGlD,IAAMk8B,EAAwB,SAAC7kB,GAAyB,IAADqb,EAAAC,EAC5D,OAAQtb,EAAKtV,MACX,KAAK2lB,IAAkBC,MACvB,KAAKD,IAAkBE,MACvB,KAAKF,IAAkBkL,IACvB,KAAKlL,IAAkBkJ,IACvB,KAAKlJ,IAAkBmL,OACrB,IAAMR,EAAShb,EAA4Bgb,MAC3C,MAAO,CACLtxB,MAAOsxB,EAAMzM,MACb5gB,aACmB,QAAjB0tB,EAAAL,EAAMrtB,mBAAW,IAAA0tB,OAAA,EAAjBA,EAAmBhpB,kBAA6B,QAAhBipB,EAAKN,EAAMzM,aAAK,IAAA+M,OAAA,EAAXA,EAAajpB,eAAgB,GAAK2oB,EAAMrtB,aAGnF,QACE,MAAO,CAAEjE,MAAOsW,EAAKtW,MAAOiE,YAAa,O,gCCnF/C,6qCAoCO,SAASkqE,EAAqBhxE,GACnC,OAAO,IAAIwD,KAAa,IAARxD,GAGX,SAASixE,EACd97B,EACA+7B,GAEA,OAAOC,YAAoB,IAAI3tE,KAAK2xC,GAAO,IAAI3xC,KAAK0tE,IAG/C,SAASE,EAAYj8B,GAC1B,OAAOpB,YAAQoB,GAGV,SAASk8B,EAAYl8B,EAA8B+7B,GACxD,OAAOI,YAAQ,IAAI9tE,KAAK2xC,GAAO,IAAI3xC,KAAK0tE,IAGnC,SAASK,EAAa9jD,EAA+B+jD,GAC1D,OAAOC,YAAS,IAAIjuE,KAAKiqB,GAAQ,IAAIjqB,KAAKguE,IAGrC,IAAME,EAAe,SAACjkD,EAAsB+jD,GACjD,MAAM,GAANrvE,OAAUwvE,YAAO,IAAInuE,KAAKiqB,GAAQ,oBAAqB,CAAEmkD,OAAQC,MAAK,SAAA1vE,OAAQwvE,YAC5E,IAAInuE,KAAKiqB,GACT,QACA,CAAEmkD,OAAQC,MACX,UAAA1vE,OAAMwvE,YAAO,IAAInuE,KAAKguE,GAAM,QAAS,CAAEI,OAAQC,QAGrCC,EAAW,SAACrkD,EAAsB+jD,GAC7C,OAAI,IAAIhuE,KAAKiqB,GAAOskD,aAAe,IAAIvuE,KAAKguE,GAAKO,WACzC,GAAN5vE,OAAUwvB,EAAMlE,GAAM,QAAAtrB,OAAOwvB,EAAM6/C,IAE/B,GAANrvE,OAAUwvB,EAAMlE,EAAO,MAAK,OAAAtrB,OAAMwvB,EAAM6/C,EAAK,iBAGlCQ,EAAe,SAACvkD,EAAsB+jD,EAAoBS,GACrE,OAAI,IAAIzuE,KAAKiqB,GAAOykD,WAAa,IAAI1uE,KAAKguE,GAAKU,SACvC,GAAN/vE,OAAUwvE,YAAO,IAAInuE,KAAKiqB,GAAQ,+BAA6B,CAAEmkD,OAAQC,MAAK,QAAA1vE,OAAOwvE,YACnF,IAAInuE,KAAKguE,GACT,+BACA,CAAEI,OAAQC,OAGR,GAAN1vE,OAAUwvE,YAAO,IAAInuE,KAAKiqB,GAAQwkD,EAAY,CAAEL,OAAQC,MAAK,UAAA1vE,OAAMwvE,YACjE,IAAInuE,KAAKguE,GACT,QACA,CAAEI,OAAQC,QAIDM,EAAiB,SAAC1kD,EAAsB+jD,GACnD,MAAM,GAANrvE,OAAUwvE,YAAO,IAAInuE,KAAKiqB,GAAQ,oBAAqB,CAAEmkD,OAAQC,MAAK,MAAA1vE,OAAKwvE,YACzE,IAAInuE,KAAKiqB,GACT,QACA,CAAEmkD,OAAQC,MACX,UAAA1vE,OAAMwvE,YAAO,IAAInuE,KAAKguE,GAAM,QAAS,CAAEI,OAAQC,QAGrCpjD,EAAqB,SAAC0mB,GACjC,MAAM,GAANhzC,OAAUwvE,YAAO,IAAInuE,KAAK2xC,GAAO,oBAAqB,CAAEy8B,OAAQC,MAAK,WAAA1vE,OAAOwvE,YAC1E,IAAInuE,KAAK2xC,GACT,QACA,CAAEy8B,OAAQC,QAIP,SAASO,EAAU3kD,EAAsBhpB,GAC9C,IAAIkf,EAAS,GAEb,GAAI8J,GAAmB,KAAVA,GAAgBhpB,GAAoB,IAAVA,EAAc,CACnD,IAAM4tE,EAAYC,IAAO,IAAI9uE,KAAKiqB,GAAO8kD,WACnCC,EAAaF,IAAO,IAAI9uE,KAAKiB,GAAQ8tE,WACvCE,EAAeJ,EAAUK,KAAKF,GAElC,GAAqB,IAAjBC,EAAoB,CAGpB9uD,EADE8uD,EAAe,EACR,OAEA,qBAKX,IAAME,GAFNF,EAAeG,KAAKC,IAAIJ,IAEM,MACxBK,EAAOF,KAAKG,MAAMJ,GAClBK,EAASP,EAAY,MACrBQ,EAAQL,KAAKG,MAAMC,EAAM,MACzBE,EAAUT,EAAY,KACtBU,EAAUP,KAAKG,MAAMG,EAAO,KAI5BE,EAAY,GAEdN,EAAO,GACTM,EAAUhuE,KAAK,GAADjD,OAAI2wE,EAAI,SAAA3wE,OAAQ2wE,EAAO,EAAI,IAAM,KAE7CG,EAAQ,GACVG,EAAUhuE,KAAK,GAADjD,OAAI8wE,EAAK,UAAA9wE,OAAS8wE,EAAQ,EAAI,IAAM,KAEhDE,EAAU,GACZC,EAAUhuE,KAAK,GAADjD,OAAIgxE,EAAO,WAAAhxE,OAAUgxE,EAAU,EAAI,IAAM,KAIvDxvD,EADEyvD,EAAUxtE,OAAS,EACf,GAAAzD,OAAMwhB,EAAM,KAAAxhB,OAAIixE,EAAU56B,KAAK,OAE5B,IAKf,OAAO70B,EAGF,SAAS0vD,EAAQl+B,EAA8Bm+B,GACpD,OAAOC,YAAW,IAAI/vE,KAAK2xC,GAAOm+B,GAG7B,SAASE,EAASr+B,EAAqBs+B,GAC5C,OAAOC,YAAQv+B,EAAMs+B,GAGhB,SAAS9hD,EAAMwjB,GAAoE,IAAtCw+B,EAAkBhuE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,eACvE,OAAOgsE,YAAO,IAAInuE,KAAK2xC,GAAOw+B,EAAY,CAAE/B,OAAQC,MAG/C,SAASp6B,EAAUtC,GACxB,OAAOw8B,YAAO,IAAInuE,KAAK2xC,GAAO,gBAAiB,CAAEy8B,OAAQC,MAEpD,SAAS+B,EAAiBz+B,GAAgD,IAAlCw8B,EAAchsE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,eAC9D,GAAa,IAATwvC,EAAY,MAAO,GAEvB,IAAI0+B,EAAS,GAAA1xE,OAAMgzC,EAAKlb,WAAW65C,UAAU,EAAG,GAAE,KAAA3xE,OAAIgzC,EAAKlb,WAAW65C,UAAU,EAAG,GAAE,KAAA3xE,OAAIgzC,EACtFlb,WACA65C,UAAU,EAAG,IAEhB,OAAOniD,EAAMkiD,EAAWlC,GAGnB,SAASoC,EAAM5+B,GACpB,OAAOw8B,YAAO,IAAInuE,KAAK2xC,GAAO,QAAS,CAAEy8B,OAAQC,MAO5C,SAASmC,EAAgB7+B,GAC9B,OAAOw8B,YAAO,IAAInuE,KAAK2xC,GAAO,qBAAsB,CAAEy8B,OAAQC,MAGzD,SAASoC,EAAO9+B,GACrB,OAAO++B,YAAoB,IAAI1wE,KAAK2xC,GAAO,CACzCg/B,WAAW,EACXvC,OAAQC,MAIL,IAAMuC,EAAY,SAACj/B,GACxB,OAAOw8B,YAAO,IAAInuE,KAAK2xC,GAAO,aAAc,CAAEy8B,OAAQC,OAG3CwC,EAAuB,SAACC,GACnC,OAAOC,YAAU,IAAI/wE,KAAQ8wE,IAGlBE,EAAsB,WACjC,OAAO7C,YAAO,IAAInuE,KAAQ,yBAA0B,CAAEouE,OAAQC,OAOnD4C,EAAsB,SAACt/B,GAClC,OAAO,IAAI3xC,KAAK2xC,IASX,SAASu/B,IACd,MAAO,CACL,CAAE7xE,MAAO,QAAS7C,MAAO,GACzB,CAAE6C,MAAO,QAAS7C,MAAO,GACzB,CAAE6C,MAAO,WAAY7C,MAAO,GAC5B,CAAE6C,MAAO,QAAS7C,MAAO,GACzB,CAAE6C,MAAO,WAAY7C,MAAO,GAC5B,CAAE6C,MAAO,SAAU7C,MAAO,GAC1B,CAAE6C,MAAO,WAAY7C,MAAO,IAIzB,IAAM20E,EAAc,SAACx/B,GAK1B,IAJA,IAAIk9B,EAAYuC,YAAYz/B,GACxB0/B,EAAUC,YAAc3/B,GACtB4/B,EAAQ,GAEP1C,GAAawC,GAClBE,EAAM3vE,KAAKitE,GACXA,EAAYqB,YAAQrB,EAAW,GAGjC,OAAO0C,GAGIC,EAAkB,SAAC7/B,EAAY8/B,GAC1C,OAAON,EAAYjB,YAAQv+B,EAAM8/B,EAAW,GAAK,KAGtCC,EAAuB,SAACC,GACnC,IAAIpzC,EAAI6wC,KAAKG,MAAMoC,EAAO,IACtBr3C,EAAIq3C,EAAO,GAEThC,EAAUr1C,EAAI,GAAK,IAAMA,EAAIA,EACnC,MAAM,GAAN37B,OAFc4/B,EAAI,GAAK,IAAMA,EAAIA,EAElB,KAAA5/B,OAAIgxE,IAGRiC,EAAkB,SAACC,EAAcf,GAC5C,IAAI7mD,EAAQ,IAAIjqB,KAAK6xE,EAAMf,EAAO,GAC5B9C,EAAM8D,YAAW,IAAI9xE,KAAK6xE,EAAMf,EAAO,IAE7C,OAAOiB,YAAmB,CAAE9nD,MAAOA,EAAO+jD,IAAKA,GAAO,CAAEgE,aAAc,KAG3DC,EAAmB,WAC9B,OAAOnD,KACL,IAAI9uE,MAAOkyE,eAAe,QAAS,CAAEC,SAAU,iBAC/C,uBACAC,UAISC,EAAsB,SAACC,GAClC,GAAIA,EAAQ,CAEV,IAAMC,EAAa,IAAIvyE,KAIjBwyE,EAAgB1D,IACpByD,EAAWL,eAAe,QAAS,CAAEC,SAAU,iBAC/C,uBACAC,SAGIlD,EAAOqD,EAAWxD,UAAYyD,EAAczD,UAKlD,OAFgB0D,YAAgBH,EAAQpD,GAI1C,OAAOoD,I,iCC1ST,mGAOMnY,EAAe,SAACD,GACpB,IAAKA,EACH,OAAO,EAET,IAAMwY,EAAUC,YAA2BzY,GACrC0Y,EAAc5yE,KAAK6yE,MAAQ,IAEjC,OAAOH,EAAQI,IAAMF,GAgBjBxY,EAAa,SAACF,GACdA,GACFiG,aAAaK,QAAQ,cAAetG,GACpC5yB,IAAcyrC,SAASvrC,QAAQn9B,OAAO2oE,cAAa,UAAAr0E,OAAau7D,KAKhEiG,aAAa8S,WAAW,sBACjB3rC,IAAcyrC,SAASvrC,QAAQn9B,OAAO2oE,iB,qDCnCjD,SAASE,EAAeC,EAAgBC,GACtC,MAAM,8BAANz0E,OAAqCw0E,EAAM,MAAAx0E,OAAKy0E,EAAM,KAyDxD,IAAMC,EAAU,CACdxoD,QAAS,UACTyoD,MAAO,UACPtoD,KAAM,UACNuoD,KAAM,UACNC,OAAQ,WASJC,EAAO,CACX5oD,QAAS,UACTyoD,MAAO,UACPtoD,KAAM,UACNuoD,KAAM,UACNC,OAAQ,WAEJE,EAAU,CACd7oD,QAAS,UACTyoD,MAAO,UACPtoD,KAAM,UACNuoD,KAAM,UACNC,OAAQ,WAEJG,EAAU,CACd9oD,QAAS,UACTyoD,MAAO,UACPtoD,KAAM,UACNuoD,KAAM,UACNC,OAAQ,WAEJI,EAAQ,CACZ/oD,QAAS,UACTyoD,MAAO,UACPtoD,KAAM,UACNuoD,KAAM,UACNC,OAAQ,WAUJK,EAAO,CACX,EAAG,UACH,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,KAAOzmE,YAAM,UAAW,KACxB,MAAQA,YAAM,UAAW,KACzB,MAAQA,YAAM,UAAW,KACzB,MAAQA,YAAM,UAAW,KACzB,MAAQA,YAAM,UAAW,KACzB,MAAQA,YAAM,UAAW,KACzB,MAAQA,YAAM,UAAW,KACzB,MAAQA,YAAM,UAAW,KAGrB0mE,EAAY,CAChBlpD,QAASsoD,EAAeG,EAAQC,MAAOD,EAAQroD,MAC/C6L,KAAMq8C,EAAeO,EAAKH,MAAOG,EAAKzoD,MACtC+oD,QAASb,EAAeQ,EAAQJ,MAAOI,EAAQ1oD,MAC/CxgB,QAAS0oE,EAAeS,EAAQL,MAAOK,EAAQ3oD,MAC/CjvB,MAAOm3E,EAAeU,EAAMN,MAAOM,EAAM5oD,OAWrCgpD,EAAS,CACb3pE,OAAQ,CAAE4pE,MAAO,OAAQ3pE,MAAO,QAChCsgB,QAAOnuB,wBAAA,GAAO42E,GAAO,IAAEa,aAAc,SACrCtqE,UAASnN,wBAAA,GAnFO,CAChBouB,QAAS,UACTyoD,MAAO,UACPtoD,KAAM,UACNuoD,KAAM,UACNC,OAAQ,YA8EiB,IAAEU,aAAc,SACzCr9C,KAAIp6B,wBAAA,GAAOg3E,GAAI,IAAES,aAAc,SAC/BH,QAAOt3E,wBAAA,GAAOi3E,GAAO,IAAEQ,aAAcL,EAAK,OAC1CrpE,QAAO/N,wBAAA,GAAOk3E,GAAO,IAAEO,aAAcL,EAAK,OAC1C93E,MAAKU,wBAAA,GAAOm3E,GAAK,IAAEM,aAAc,SACjCC,KAAI13E,wBAAA,GArDO,CACXouB,QAAS,UACTyoD,MAAO,UACPtoD,KAAM,UACNuoD,KAAM,UACNC,OAAQ,YAgDO,IAAEU,aAAc,SAC/B3pE,KAAMspE,EACNO,UAAWN,EACXO,MAnBmB,CACnBC,OAAQ,CAAC,UAAW,UAAW,UAAW,WAC1CC,KAAM,CAAC,UAAW,UAAW,UAAW,WACxCC,MAAO,CAAC,UAAW,UAAW,UAAW,WACzCC,OAAQ,CAAC,UAAW,UAAW,UAAW,WAC1CC,IAAK,CAAC,UAAW,UAAW,UAAW,YAevC5mD,QAAS+lD,EAAK,OACdpkE,OAAQ,CACNw6C,MAAO4pB,EAAK,MACZpwD,SAAUowD,EAAK,OACfl0E,SAAUk0E,EAAK,OACfxpB,mBAAoBwpB,EAAK,OACzBvwB,MAAOuwB,EAAK,OACZc,aAAc,IACd3qB,gBAAiB,MAIfrhD,EAAU,CACd2qE,MAAK72E,wBAAA,GACAu3E,GAAM,IACTlsE,KAAM,CAAE8iB,QAASipD,EAAK,KAAMjqE,UAAWiqE,EAAK,KAAMl0E,SAAUk0E,EAAK,MACjEpqE,WAAY,CAAEyD,MAAO,OAAQ0nE,QAAS,OAAQlrE,QAASmqE,EAAK,MAC5DpkE,OAAMhT,YAAA,CAAIo4E,OAAQhB,EAAK,MAASG,EAAOvkE,UAEzC8jE,KAAI92E,wBAAA,GACCu3E,GAAM,IACTlsE,KAAM,CAAE8iB,QAAS,OAAQhhB,UAAWiqE,EAAK,KAAMl0E,SAAUk0E,EAAK,MAC9DpqE,WAAY,CAAEyD,MAAO2mE,EAAK,KAAMe,QAASf,EAAK,KAAMnqE,QAASmqE,EAAK,QAClEpkE,OAAMhT,YAAA,CAAIo4E,OAAQhB,EAAK,MAASG,EAAOvkE,WAI5B9G,O,iCC5Lf,wEAGe,SAASg8B,IACtB,OACEjnC,cAACo3E,IAAI,CAAC9hC,WAAS,EAAChqC,QAAS,EAAG1K,GAAI,CAAEgI,OAAQ,OAAQjF,MAAO,OAAQkK,EAAG,GAAI3N,SACtEQ,eAAC02E,IAAI,CAACn/D,MAAI,EAACoW,GAAI,GAAGnuB,SAAA,CAChBF,cAACq3E,IAAQ,CAACt2E,QAAQ,cAAc4C,MAAM,OAAO/C,GAAI,CAAEgI,OAAQ,IAAK+C,aAAc,KAC9EjL,eAACC,IAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQ3L,GAAI,KAAMX,SAAA,CACpCF,cAACq3E,IAAQ,CAACt2E,QAAQ,WAAWH,GAAI,CAAE+C,MAAO,GAAIiF,OAAQ,MACtD5I,cAACq3E,IAAQ,CAACt2E,QAAQ,OAAOH,GAAI,CAAE02E,GAAI,EAAGhzD,SAAU,e,sDCV1D,+DAUe,SAASoM,EAAsBlwB,GAAoD,IAAjDmwB,EAAKnwB,EAALmwB,MAAO4X,EAAQ/nC,EAAR+nC,SACtD,OACEvoC,cAACW,IAAG,CAACC,GAAI,CAAEg8B,EAAG,GAAI18B,SACfywB,EAAM7uB,KAAI,SAACi9B,GAAI,OACd/+B,cAAC6yD,IAAc,CAAe9zB,KAAMA,EAAMwJ,SAAUA,GAA/BxJ,EAAKzsB,W,yLCblCgtB,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAYe,SAAS8kB,EAAkB5nB,GAA8C,IAAD+2E,EAAA/2E,EAA1C6nB,cAAM,IAAAkvD,EAAG,KAAIA,EACpDC,EAAwC,KAMtCtvD,EAAe,SAACpE,GAA6C,IAAjC2zD,EAAsBhzE,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAErD+yE,GACFE,aAAaF,GAMfA,EAAiBpnC,YAAW,WAC1BqyB,aAAaK,QACX,eACAqP,YAAQ7vE,KAAK6yE,MAAOsC,GAAgBpG,UAAUt4C,cAE/C,MAqBL,OAlBA95B,qBAAU,WACR,GAAc,MAAVopB,EAQJ,OANAA,EAAOP,iBAAiB,YAAaI,GACrCG,EAAOP,iBAAiB,SAAUI,GAClCG,EAAOP,iBAAiB,UAAWI,GACnCG,EAAOP,iBAAiB,SAAUI,GAG3B,WACS,MAAVG,IACJA,EAAON,oBAAoB,YAAaG,GACxCG,EAAON,oBAAoB,SAAUG,GACrCG,EAAON,oBAAoB,UAAWG,GACtCG,EAAON,oBAAoB,SAAUG,OAEtC,CAACG,IAEG,CACLH,gBASG,SAASyvD,EAAWx1E,GAAWA,EAARy1E,SAAoD,IAADx1E,EAC/E87C,EAAwD70B,cAAhDwuD,EAAM35B,EAAN25B,OAAQzuD,EAAkB80B,EAAlB90B,mBAAoBzJ,EAAOu+B,EAAPv+B,QAAS28C,EAAMpe,EAANoe,OAEvCwb,EAAe1uD,IAAqB2uD,aAsC1C,OAVA94E,qBAAU,WAER,IAAMkxC,EAAW6nC,aAAY,kBA1BtB,kBAAA51E,KAAAmkC,YAAAjH,IAAAiE,MAAG,SAAAiD,IAAA,IAAAyxC,EAAA,OAAA34C,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,UAEL,CAAC7E,IAAWC,OAAO73B,SAAgB,OAAPogB,QAAO,IAAPA,OAAO,EAAPA,EAASuX,YAAY,CAADwP,EAAA1K,KAAA,eAAA0K,EAAArE,OAAA,iBAGS,KAAxD41C,EAAmBxV,aAAaC,QAAQ,iBAEzB,CAADh8B,EAAA1K,KAAA,eACbi8C,EAAmB,IAAI31E,KAAY,OAAPqd,QAAO,IAAPA,OAAO,EAAPA,EAASu4D,gBAAgB7G,WAAS,CAAA3qC,EAAA1K,KAAA,SAEjE,KADmB+zC,YAAwB,IAAIztE,KAAQ,IAAIA,MAAM21E,IAGhD,IAAE,CAAAvxC,EAAA1K,KAAA,gBAAA0K,EAAA1K,KAAA,EACXsgC,IAAS,KAAD,SAAA51B,EAAArE,OAAA,kBAMhB41C,IAAqBA,GAAmB,IAAI31E,MAAO+uE,WACrDwG,EAAOC,EAAc,GAAG,SAACh5E,GAAa,OAAKw6B,QAAQC,IAAIz6B,MACxD,yBAAA4nC,EAAAzC,UAAAuC,QACFM,MAAA,KAAAriC,WAIoC80B,KAAO,KAG1C,OAAO,WACL8W,cAAcF,MAEf,CAAC2nC,IAEG93E,cAAAC,WAAA,M,sDC1GT,oHAOe,SAASk4E,EAAS33E,GAAgC,IAA7B1B,EAAK0B,EAAL1B,MAClC,OACE4B,eAACquB,IAAM,CAAChuB,QAAQ,OAAOkL,MAAM,UAAS/L,SAAA,CACpCQ,eAAC6vB,IAAM,CACLxvB,QAAQ,WACRkL,MAAM,UACNrL,GAAI,CAAE4vB,GAAI,EAAGzkB,WAAY,OAAQ2E,OAAQ,qBAAsBxQ,SAAA,CAE/DF,cAACo4E,IAAK,CAAC5sE,SAAS,QAAQS,MAAM,YAAa,OACnC,IACTnN,KAKA,SAAS65C,EAAUx2C,GAAsE,IAAnE22C,EAAW32C,EAAX22C,YAAaF,EAAOz2C,EAAPy2C,QACxC,OAAO54C,cAAAC,WAAA,CAAAC,SAAGm4E,YAAYv/B,EAAaF,O,kNCtBrCtZ,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EA+CA,IACKg1E,EAAK,SAALA,GAAK,OAALA,EAAK,oCAALA,EAAK,yCAALA,EAAK,8BAALA,EAAK,yBAALA,EAAK,kBAALA,EAAK,gBAALA,EAAK,iCAALA,EAAK,CAALA,GAAK,IA4CJpnE,EAA+B,CACnCC,WAAW,EACX9S,OAAO,EACP8b,OAAQ,KACRC,uBAAwB,KACxBC,OAAQ,KACRC,OAAQ,KACRC,QAAS,KACTtC,KAAM,KACNuC,WAAY,KACZC,oBAAqB,EACrBC,mBAAmB,EACnBC,SAAS,EACTC,YAAa,EACbC,QAAS,KACTC,qBAAsB,KACtBqlC,aAAc,MAUVo4B,EAAmB,SAAC1mE,EAAuBE,GAA8B,IAADymE,EAAAC,EAC5E,OAAQ1mE,EAAOpP,MACb,IAAK,UACH,OAAA5D,wBAAA,GACK8S,GAAK,IACRV,UAAWY,EAAOC,QAAQb,UAC1B9S,MAAO,OAEX,IAAK,SACH,OAAAU,wBAAA,GACK8S,GAAK,IACRxT,MAAO0T,EAAOC,QAAQ3T,MACtB8S,WAAW,IAEf,IAAK,mBACH,OAAApS,wBAAA,GACK8S,GAAK,IACRV,WAAW,EACXgJ,OAAQpI,EAAOC,QAAQiJ,UAAUd,OACjCE,OAAQtI,EAAOC,QAAQiJ,UAAUZ,OACjCC,OAAQvI,EAAOC,QAAQiJ,UAAUX,OACjCQ,qBAAsB/I,EAAOC,QAAQiJ,UAAUH,qBAC/CqlC,aAAcpuC,EAAOC,QAAQiJ,UAAUklC,aACvC/lC,uBAAwBrI,EAAOC,QAAQiJ,UAAUb,uBACjDK,oBAAqB1I,EAAOC,QAAQiJ,UAAUR,oBAC9CC,kBAAmB3I,EAAOC,QAAQ0I,kBAClCG,QAAS9I,EAAOC,QAAQiJ,UAAUJ,QAClCD,YACG7I,EAAOC,QAAQ4I,YAAYM,WAAanJ,EAAOC,QAAQ4I,YAAYO,MAAS,MAEnF,IAAK,qBAEH,IAAIR,EAAmB5I,EAAOC,QAAQ2I,SAEf,QAAnB69D,EAAAzmE,EAAOC,QAAQiG,YAAI,IAAAugE,OAAA,EAAnBA,EAAqBl9D,UAAWC,IAAoBC,OACtDzJ,EAAOC,QAAQiG,KAAKqD,OAASC,IAAoBE,OAG5B,QAAnBg9D,EAAA1mE,EAAOC,QAAQiG,YAAI,IAAAwgE,OAAA,EAAnBA,EAAqBn9D,UAAWC,IAAoBE,OAAMd,GAAU,GACxE,IAAIN,EAASxI,EAAMwI,OACfO,EAAcc,cASlB,OAPAg9D,YACE19D,YAAaX,EAAStI,EAAOC,QAAQiG,MACrCpG,EAAM4I,oBACN5I,EAAM6I,kBACNE,GAGF7b,wBAAA,GACK8S,GAAK,IACRwI,OAAQA,EACRF,OAAQ2B,YAAU/J,EAAOC,QAAQiG,MACjCsC,QAASxI,EAAOC,QAAQuI,QACxBtC,KAAMlG,EAAOC,QAAQiG,KACrBuC,WAAYzI,EAAOC,QAAQwI,WAC3BrJ,WAAW,EACX9S,MAAO,KACPsc,QAASA,EACTC,YAAcA,EAAYM,WAAaN,EAAYO,MAAS,MAEhE,IAAK,gBACH,OAAApc,wBAAA,GACK8S,GAAK,IACR8I,SAAS,EACTxJ,WAAW,IAEf,IAAK,cACH,MAAO,CACLA,WAAW,EACX9S,OAAO,EACP8b,OAAQ,KACRC,uBAAwB,KACxBC,OAAQ,KACRC,OAAQ,KACRC,QAAS,KACTtC,KAAM,KACNuC,WAAY,KACZC,oBAAqB,EACrBC,mBAAmB,EACnBC,SAAS,EACTC,YAAa,EACbC,QAAS,KACTC,qBAAsB,KACtBqlC,aAAc,MAGlB,QACE,OAAOtuC,IAMPomD,EAAmB0gB,wBAA2C,MAkBpE,SAASC,EAAiBp4E,GAAyC,IAAD2B,EAArCjC,EAAQM,EAARN,SAC3B24E,EAA0BC,qBAAWP,EAAkBrnE,GAAa6nE,EAAAt6E,YAAAo6E,EAAA,GAA7DhnE,EAAKknE,EAAA,GAAEt4D,EAAQs4D,EAAA,GAChBC,EAAgBp4D,cA8ItB,OACE5gB,cAACi4D,EAAiBghB,SAAQ,CACxBn6E,MAAKC,wBAAA,GACA8S,GAAK,IACR04D,aArEJ,SAACt/B,GAAqC,IAAA7oC,EAAA,gBAAAqnC,GAAA,OAAArnC,KAAAmkC,YAAAjH,IAAAiE,MAAK,SAAAwD,EAAOi+B,GAAmC,IAAAv+B,EAAAhkB,EAAA,OAAA6c,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,cAAAgL,EAAAjD,KAAA,EAAAiD,EAAAhL,KAAA,EAE5D4N,IAAcl2B,KAAI,iCAErCu3B,EACA,CACEnB,QAAS,CAAEC,WAAW,KAExB,KAAD,EANGtD,EAAQO,EAAA9E,KAOJzf,EAAWgkB,EAAS5e,KAApBpF,OAAMukB,EAAAuD,GACN9nB,EAAMukB,EAAAhL,KAAAgL,EAAAuD,KACP2uC,IAA4BvtC,QAAO,kBACtB,OAAhBq5B,GAAU,GAAMh+B,EAAA3E,OAAA,oBAAA2E,EAAAhL,KAAA,iBAAAgL,EAAAjD,KAAA,GAAAiD,EAAA29B,GAAA39B,EAAA,SAKpB1N,QAAQC,IAAGyN,EAAA29B,IAAK,yBAAA39B,EAAA/C,UAAA8C,EAAA,oBAEnBD,MAAA,KAAAriC,aAmDG2W,WAjCa,SACjBb,EACAtC,EACA0C,EACAH,GAEAiG,EAAS,CACP9d,KAAM21E,EAAMa,oBACZnnE,QAAS,CACPuI,QAASA,EACTtC,KAAMA,EACNuC,WAAYA,EACZG,QAASA,MAsBToB,aAjBe,WACnB0E,EAAS,CAAE9d,KAAM21E,EAAMc,cAAepnE,QAAS,CAAE2I,SAAS,MAiBtDqB,WAda,WACjByE,EAAS,CACP9d,KAAM21E,EAAMe,WACZrnE,QAAS,CAAE2I,SAAS,MAYlB69C,iBAnDJ,SAAC8gB,GAAuB,IAAAhsE,EAAA,gBAAAo8B,GAAA,OAAAp8B,KAAAi5B,YAAAjH,IAAAiE,MAAK,SAAA4G,EAAO66B,GAA0C,IAAAv+B,EAAAo+B,EAAApiD,EAAAogC,EAAA,OAAAvjB,IAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,cAAAoO,EAAApO,KAAA,EACvD4N,IAAcl2B,KAAI,0BAErC4lE,GACA,KAAD,EAHG7yC,EAAQ2D,EAAAlI,KAAA2iC,EAIep+B,EAAS5e,KAA5BpF,EAAMoiD,EAANpiD,OAAQogC,EAAMgiB,EAANhiB,OAAMzY,EAAAG,GACd9nB,EAAM2nB,EAAApO,KAAAoO,EAAAG,KACPgvC,IAA4B5tC,QAAO,iBACpB,OAAlBq5B,EAAUniB,GAAQzY,EAAA/H,OAAA,mCAAA+H,EAAAnG,UAAAkG,QAIvBrD,MAAA,KAAAriC,aAwCGi0D,WArJU,SAAAjuB,EAAAC,EAAAC,GAAA,OAAAxoC,KAAAokC,YAAAjH,IAAAiE,MAAG,SAAAiD,EACjBgzC,EACAtiD,EACAxc,GAA0B,IAAA++D,EAAAC,EAAAjzC,EAAA+9B,EAAA/hD,EAAAxH,EAAAL,EAAAmd,EAAA,OAAAuH,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAY0B,OAZ1B0K,EAAA3C,KAAA,EAGxBtjB,EAAS,CAAE9d,KAAM21E,EAAMtpC,QAASh9B,QAAS,CAAEb,WAAW,KAGhDsoE,EACJD,IAAUnP,IAAcsP,OAAM,SAAA14E,OAAYopE,IAAcsP,QAAW,GAE/DD,EACJxiD,IAAeC,IAAWyiD,QAAO,4DAAA34E,OAEHw4E,GAAkB/yC,EAAA1K,KAAA,EAE3B4N,IAAcC,IAAuB6vC,GAAc,KAAD,EAAnEjzC,EAAQC,EAAAxE,KAAAsiC,EAEgB/9B,EAAS5e,KAA/BpF,EAAM+hD,EAAN/hD,OAAQxH,EAASupD,EAATvpD,UAASyrB,EAAA6D,GACjB9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACPsvC,IAAgBluC,QAAO,oBAsCzB,OApCD1wB,EAAUb,uBAAyB0/D,YAAgB7+D,EAAUZ,QAG7DY,EAAUZ,OAAOvY,KAAI,SAAC+L,GACpBA,EAAE2W,SAAS1iB,KAAI,SAACi4E,GAAoB,OAAKC,YAAqBD,SAI5Dn/D,EAAcc,cAElBg9D,YACEz9D,EAAUZ,OACVY,EAAUR,oBACVC,EACAE,GAGF6F,EAAS,CACP9d,KAAM21E,EAAM2B,iBACZjoE,QAAS,CACPiJ,UAAWA,EACXP,kBAAmBA,EACnBE,YAAaA,KAKbmd,EAAiC,GACrC9c,EAAUZ,OAAOvY,KAAI,SAACs6B,GAAqB,OACzCA,EAAM5X,SAAS1iB,KAAI,SAACyY,GAClB2/D,YAAgB3/D,EAASwd,SAIzB,CAACZ,IAAWC,MAAOD,IAAW1b,MAAMlc,SAAS23B,IAC/C8hD,EAAcmB,YAAcpiD,IAC7B2O,EAAArE,OAAA,oBAID5hB,EAAS,CAAE9d,KAAM21E,EAAMltC,OAAQp5B,QAAS,CAAE3T,MAAO,sCAAwC,QAAAqoC,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAG7FjmB,EAAS,CACP9d,KAAM21E,EAAMltC,OACZp5B,QAAS,CAAE3T,MAAO,qCAAuCqoC,EAAAi+B,GAAM/xD,WAC9D,yBAAA8zB,EAAAzC,UAAAuC,EAAA,oBAENM,MAAA,KAAAriC,cA+EKvE,SAEDA,M,8KCvXMm3B,EAAuB,SAACz5B,GACnC,IACEsC,EAKEtC,EALFsC,SAAQk6E,EAKNx8E,EAJF4oB,aAAK,IAAA4zD,EAAG,6BAAyBA,EACjCnzD,EAGErpB,EAHFqpB,QAAOozD,EAGLz8E,EAFFqE,gBAAQ,IAAAo4E,GAAQA,EACbtrE,EAAKc,YACNjS,EAAKkS,GAET,OACEpP,eAACguB,IAAW3vB,wBAAA,CAAC6B,GAAI,CAAEg8B,EAAG,EAAG/uB,EAAG,EAAGgqB,UAAW,SAAc9oB,GAAK,IAAA7O,SAAA,CAC1DsmB,EACAS,EACCjnB,cAAC8zB,IAAU,CACT,aAAW,QACXnP,QAASsC,EACThlB,SAAUA,EACVrB,GAAI,CACFyC,SAAU,WACViM,MAAO,EACP/C,IAAK,EACLN,MAAO,SAAClB,GAAK,OAAKA,EAAME,QAAQ4B,KAAK,OACrC3M,SAEFF,cAACs6E,IAAS,MAEV,KACHp6E,Q,iCCvCP,yIAQa6uE,EAA+B,SAACryD,GAAmC,IAAD69D,EAC7E,MAAO,CACLC,QAAQ,EACRjuD,MAAO7P,EAAQ+9D,UACfnK,IAAK5zD,EAAQszD,QACbxpD,MAAM,GAADvlB,OAAqB,QAArBs5E,EAAK79D,EAAQwN,gBAAQ,IAAAqwD,OAAA,EAAhBA,EAAkB54E,OAC5BkqB,UAAWC,IAAgBC,QAC3BkwB,UAAW,UACXhwC,MAAO,UACPqG,GAAIoK,EAAQpK,GAAGymB,WACf/M,UAAWtP,EACX0Q,KAAM,aAaH,SAASstD,EACdC,EACAC,GAEA,MAAO,CACLtoE,GAAI,EACJ09D,QAAS4K,EAAS5K,QAClByK,UAAWG,EAASH,UACpBjtD,QAASmtD,EAASntD,QAClBtD,SAAUywD,EAASzwD,SACnB2wD,MAAO,GACPC,QAASH,EAASG,QAClBl1E,YAAa,GACb0V,OAAQ2Q,IAAczQ,KACtB7Y,KAAMg4E,EAASh4E,KACfo4E,eAAgB,KAChB5uD,SAAU,MAMP,IAAM6uD,EAA+B,SAC1Cl3D,EACAjQ,EACA4jB,GAEiB,MAAb3T,EAAMwsD,MACRxsD,EAAMwsD,IAAG,GAAArvE,OAAM6iB,EAAMyI,MAAK,aAC1BzI,EAAMyI,MAAK,GAAAtrB,OAAM6iB,EAAMyI,MAAK,cAG9B,IAAM0uD,EACJ,CAAC1wD,IAAe2wD,KAAM3wD,IAAeiF,UAAUjwB,SAASukB,EAAM62D,SAASr/D,SACvE+0D,YAAa,IAAI/tE,KAAKwhB,EAAMyI,OAAQ,IAAIjqB,MAE1C,MAAO,CACLgQ,GAAIuB,EAAMklB,WACVyhD,QAAQ,EACRjuD,MAAOzI,EAAMyI,MACb+jD,IAAKxsD,EAAMwsD,IACX9pD,MAAO1C,EAAM0C,MACbwF,UAAW,CACT1Z,GAAIwR,EAAM62D,SAASQ,IACnBhzD,SAAUrE,EAAM62D,SAASS,IACzBhvD,QAAStI,EAAM62D,SAASU,UACxBz1E,YAAake,EAAMle,YACnB6xB,OAAQA,EACRnc,OAAQwI,EAAM62D,SAASr/D,OACvB2/D,OAAQA,GAEVpvD,UAAWC,IAAgBoH,SAC3BjnB,MAAOgvE,EAAS,UAAY,UAC5Bh/B,UAAWg/B,EAAS,UAAY,UAChC7tD,KAAM,M,iCCrEV,sGAAO,IAAKkuD,EAAgB,SAAhBA,GAAgB,OAAhBA,IAAgB,uBAAhBA,IAAgB,qBAAhBA,IAAgB,qCAAhBA,IAAgB,iDAAhBA,IAAgB,6CAAhBA,IAAgB,yCAAhBA,EAAgB,KAShBC,EAAc,SAAdA,GAAc,OAAdA,IAAc,uBAAdA,IAAc,qBAAdA,EAAc,KAKdC,EAAU,SAAVA,GAAU,OAAVA,IAAU,eAAVA,IAAU,eAAVA,IAAU,eAAVA,EAAU,M,uGCrBtBC,IACGC,IAAIC,KACJD,IAAIE,KACJC,KAAK,CACJC,UAAW,CACTC,GAAI,CAAEC,aAAcC,GACpBC,GAAI,CAAEF,aAAcG,GACpBxL,GAAI,CAAEqL,aAAcI,IAEtBC,IAAK,KACLC,YAAa,KACbC,OAAO,EACPC,GAAI,CAAC,gBACLC,UAAW,eACXC,WAAY,eACZC,cAAe,CACbC,aAAa,KAIJnB,EAAI,EAAJA,I,0BCzBfoB,IAAKC,UAAU,CACbC,UAAW,CAAC,aAAc,MAAO,KAAM,OAAQ,OAAQ,OAAQ,MAAO,UAIxExzE,OAAOszE,KAAOA,I,mOCMR3rE,EAA2C,CAC/C8rE,eAAe,EACfC,eAAe,EACfC,iBAAkB,aAClBC,aAAc,aACdC,aAAc,cAGVC,EAAwB1E,wBAAcznE,GAM5C,SAASosE,EAAsB98E,GAA6C,IAA1CN,EAAQM,EAARN,SACxBmhB,EAAkBP,cAAlBO,cACR/iB,EAAgCC,mBAAS,CACvCspD,OAAO,EACP0E,OAAO,IACP/tD,EAAAC,YAAAH,EAAA,GAHKi/E,EAAQ/+E,EAAA,GAAEg/E,EAAWh/E,EAAA,GAM5B81B,EAA0CC,YAAyB,qBAAqB,GAAMC,EAAA/1B,YAAA61B,EAAA,GAAvFmpD,EAAajpD,EAAA,GAAEkpD,EAAgBlpD,EAAA,GAEhCmpD,EAAuB,WAC3BD,GAAkBH,EAAS11B,OAC3B21B,EAAWz+E,wBAAC,GAAKw+E,GAAQ,IAAE11B,OAAQ01B,EAAS11B,UAS9C5oD,qBAAU,WACHoiB,EAYCo8D,IAAkBF,EAAS11B,OAC7B81B,IATFH,EAAY,CACV31B,OAAO,EACP0E,OAAO,MAUV,CAAClrC,IAMJ,OACErhB,cAACq9E,EAAsBpE,SAAQ,CAC7Bn6E,MAAO,CACL8+E,WAAYL,EAAS11B,QAAU01B,EAAShxB,MACxCywB,cAAeO,EAAS11B,MACxBo1B,cAAeM,EAAShxB,MACxB2wB,iBAAkBS,EAClBR,aApCmB,WACnBI,EAAS11B,OACX21B,EAAWz+E,wBAAC,GAAKw+E,GAAQ,IAAEhxB,OAAO,MAmChC6wB,aAZmB,WACvBI,EAAWz+E,wBAAC,GAAKw+E,GAAQ,IAAEhxB,OAAO,OAY9BrsD,SAEDA,I,2FCzED2zB,EAAYhpB,YAAO,MAAPA,EAAc,SAAArK,GAAQ,MAAQ,CAC9CoI,OAAQ,OACR4D,QAAS,OACTjL,WAAY,SACZutB,eAAgB,SAChBhjB,gBALsCtL,EAALuK,MAKVE,QAAQc,WAAWmrE,YAKrC,SAAS2G,IACd,IAAM9yE,EAAQgW,cAEd,OACE/gB,cAACuiD,IAAY,CACXC,OAAQ,CACN,aAAc,CACZs7B,cAAe,OACf,SAAU,CACRvxE,IAAK,EACLD,KAAM,EACN1D,OAAQ,EACRjF,MAAO,OACPN,SAAU,QACVgM,OAAQtE,EAAMsE,OAAO0uE,SACrBjyE,gBAAiBf,EAAME,QAAQiiB,QAAQI,KACvC/c,UAAU,WAADtP,OAAa8J,EAAME,QAAQiiB,QAAQI,OAE9C,SAAU,CACRhe,MAAO,EACP+8C,QAAS,EACT1oD,MAAO,IACPiF,OAAQ,OACR4D,QAAS,QACTnJ,SAAU,WACVkM,UAAW,oCACXgB,UAAU,YAADtP,OAAc8J,EAAME,QAAQiiB,QAAQI,KAAI,cAAArsB,OAAa8J,EAAME,QAAQiiB,QAAQI,WAQhG,SAAS0wD,IAaP,OAZAC,IAAUnB,UAAU,CAClBoB,aAAa,IAGfh1B,mBAAQ,WACN+0B,IAAU1xD,UACT,IAEHttB,qBAAU,WACRg/E,IAAUn8C,SACT,IAEI,KAGM,SAASq8C,EAAah8E,GAAgB,IAAV4M,EAAK9B,OAAAC,OAAA,IAAAC,YAAAhL,OACtC02C,EAAU+W,cAAV/W,MACR,OACEn4C,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACg+E,EAAW,IAEZt9E,eAACmzB,EAAS90B,wBAAA,GAAKgQ,GAAK,IAAA7O,SAAA,CAClBF,cAACm3D,IAAOC,IAAG,CACTvB,QAAS,CAAEuoB,QAAS,GACpBrpB,QAAS,CAAEqpB,QAAS,KACpBlqD,WAAY,CACVwkB,SAAU,EACV4c,KAAM,YACN+oB,YAAa,EACbr0E,OAAQs0E,KACRp+E,SAEFF,cAACW,IAAG,CACFoN,UAAU,MACVnN,GAAI,CAAE+C,MAAO,GAAIiF,OAAQ,QACzB4lB,IAAG,iBAAAvtB,OAAmB43C,EAAK,YAI/B74C,cAACW,IAAG,CACFoN,UAAWopD,IAAOC,IAClBrC,QAAS,CACPG,MAAO,CAAC,IAAK,EAAG,EAAG,IAAK,KACxBqpB,OAAQ,CAAC,IAAK,EAAG,EAAG,IAAK,KACzBlyB,QAAS,CAAC,IAAM,EAAG,EAAG,EAAG,KACzB1gD,aAAc,CAAC,MAAO,MAAO,MAAO,MAAO,QAE7CuoB,WAAY,CAAEohC,KAAM,SAAU5c,SAAU,IAAK1uC,OAAQs0E,KACrD19E,GAAI,CACF+C,MAAO,IACPiF,OAAQ,IACR+C,aAAc,MACdtI,SAAU,WACVqN,OAAQ,SAAC3F,GAAK,mBAAA9J,OAAkByO,YAAM3E,EAAME,QAAQiiB,QAAQ2oD,KAAM,UAItE71E,cAACW,IAAG,CACFoN,UAAWopD,IAAOC,IAClBrC,QAAS,CACPG,MAAO,CAAC,EAAG,IAAK,IAAK,EAAG,GACxBqpB,OAAQ,CAAC,EAAG,IAAK,IAAK,EAAG,GACzBlyB,QAAS,CAAC,EAAG,IAAM,IAAM,IAAM,GAC/B1gD,aAAc,CAAC,MAAO,MAAO,MAAO,MAAO,QAE7CuoB,WAAY,CACVohC,KAAM,SACN5c,SAAU,IACV1uC,OAAQs0E,KAEV19E,GAAI,CACF+C,MAAO,IACPiF,OAAQ,IACR+C,aAAc,MACdtI,SAAU,WACVqN,OAAQ,SAAC3F,GAAK,mBAAA9J,OAAkByO,YAAM3E,EAAME,QAAQiiB,QAAQ2oD,KAAM,iB,4FCzHxEhiD,GAAYhpB,YAAOkuD,IAAPluD,EAAa,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,MAAQ,CAC7CyB,QAAS,OACTqrB,UAAW,OACXt2B,WAAY,SACZy3D,WAAYjuD,EAAMO,QAAQ,IAC1B+zB,cAAet0B,EAAMO,QAAQ,QAGlBkzE,GAAoB,WAC/B,OACEx+E,cAAC6zB,GAAS,CAACrN,MAAO,cAActmB,SAC9BF,cAACyhD,IAAS,CAAAvhD,SACRF,cAACq3D,IAAe,CAACxB,QAAQ,UAAU7uC,MAAI,EAAA9mB,SACrCQ,eAACC,IAAG,CAACC,GAAI,CAAEstB,SAAU,IAAKzqB,OAAQ,OAAQR,UAAW,UAAW/C,SAAA,CAC9DF,cAACm3D,IAAOC,IAAG,CAACV,SAAUJ,IAAYp2D,SAChCF,cAACc,IAAU,CAACC,QAAQ,KAAK03C,WAAS,EAAAv4C,SAAC,0CAIrCF,cAACm3D,IAAOC,IAAG,CAACV,SAAUJ,IAAYp2D,SAChCF,cAACy+E,IAAwB,MAG3Bz+E,cAAC2vC,IAAgB,CAAC5uC,QAAQ,4B,UCpBvB,SAAS29E,KACtB,IAAQxmB,EAAW9yC,cAAX8yC,OAEFsE,EADS,IAAID,gBAAgBrE,GACRruB,IAAI,gBAC/BsC,EAAgDzrB,aAAY,SAAC7O,GAAgB,OAAKA,EAAM8N,WAAhFxO,EAASg7B,EAATh7B,UAAW9S,EAAK8tC,EAAL9tC,MAAOshB,EAAOwsB,EAAPxsB,QAASsK,EAAQkiB,EAARliB,SAUnC,OARAhrB,qBAAU,WACHu9D,GAEDA,GAAeC,YAAaD,IAC9B/7C,YAASk+D,YAAWniB,MAErB,CAACA,IAEArrD,EAAkBnR,cAACw+E,GAAiB,IAEpCngF,EAAc2B,cAAC4+E,WAAO,CAACC,iBAAiB,IAEvCl/D,GAAYsK,EAGfjqB,cAAAC,WAAA,CAAAC,SACEF,cAAA,OAAAE,SACEF,cAAC8+E,IAAM,QALqB9+E,cAAC4+E,WAAO,CAACC,iBAAiB,IAYvD,SAASE,KACd,IAAQ7mB,EAAW9yC,cAAX8yC,OAEFsE,EADS,IAAID,gBAAgBrE,GACRruB,IAAI,gBAE/B,OAAK2yB,EAIDA,IAAgBC,YAAaD,GACxBx8D,cAAC4+E,WAAO,CAACC,iBAAiB,IAIjC7+E,cAAAC,WAAA,CAAAC,SACEF,cAAA,OAAAE,SACEF,cAAC8+E,IAAM,QAVJ9+E,cAAC4+E,WAAO,CAACC,iBAAiB,I,YC3CtBG,GAFW,WAAH,OAAShnB,qBAAWqlB,I,gOCK5B,SAAS4B,GAAQz+E,GAA8B,IAAxBuO,EAAK9B,OAAAC,OAAA,IAAAC,YAAA3M,OACjCmf,EAAY0J,eAAZ1J,QAER,OACE3f,cAACk/E,KAAOngF,wBAAA,CACNyvB,IAAY,OAAP7O,QAAO,IAAPA,OAAO,EAAPA,EAASw/D,UACdv+E,GAAI,CACF,QAAS,CAAEstB,SAAU,OAAQkxD,UAAW,YAE1C5mC,IAAY,OAAP74B,QAAO,IAAPA,OAAO,EAAPA,EAAS9gB,KACdoN,OAAc,OAAP0T,QAAO,IAAPA,OAAO,EAAPA,EAASw/D,WAAY,UAAYE,aAAoB,OAAP1/D,QAAO,IAAPA,OAAO,EAAPA,EAAS9gB,MAAMoN,OAChE8C,GAAK,IAAA7O,SAERm/E,aAAoB,OAAP1/D,QAAO,IAAPA,OAAO,EAAPA,EAAS9gB,MAAMA,Q,6FCtBnCygC,GAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAkCe,SAASg8E,GAAc9+E,GAA4C,IAAD2B,EAAAo9E,EAAA/+E,EAAxCg/E,eAAO,IAAAD,GAAQA,EAChD3hD,EAAWC,cACX5L,EAAYC,iBAAO,MACzBgsB,EAAgD70B,eAAxCizC,EAAMpe,EAANoe,OAAQ38C,EAAOu+B,EAAPv+B,QAASyJ,EAAkB80B,EAAlB90B,mBACnBsxC,EAAeC,eACrBC,EAA2CruB,eAAnCsuB,EAAaD,EAAbC,cAAevuB,EAAesuB,EAAftuB,gBACvBhuC,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GAQd63B,EAAc,WAClBlE,GAAQ,IAkBJstD,EAAkBr2D,IAElBs2D,EAAe,CACnB,CACE/9E,MAAO,SACPyrB,KAAMptB,cAAC2/E,KAAa,IACpBC,OAAQ7hD,KAAepe,QAAQ4/C,OAC/BsgB,SAAS,GAEX,CACEl+E,MAAO,wBACPyrB,KAAMptB,cAAC8/E,KAAoB,IAC3BF,OAAQ7hD,KAAepe,QAAQogE,aAC/BF,SAAS,GAEX,CACEl+E,MAAO,uBACPyrB,KAAMptB,cAACggF,KAAmB,IAC1BJ,OAAQ7hD,KAAepe,QAAQqgD,UAC/B6f,SAAS,GAEX,CACEl+E,MAAO,YACPyrB,KAAMptB,cAACigF,KAAiB,IACxBL,OAAQ7hD,KAAepe,QAAQw/C,QAC/B0gB,QAAS,CAACliC,KAAWuiC,YAAaviC,KAAWwiC,eAAerqC,MAAK,SAAClZ,GAAC,OAClD,OAAf6iD,QAAe,IAAfA,OAAe,EAAfA,EAAiB5mB,WAAWt5D,SAASq9B,OAIzC,CACEj7B,MAAO,eACPyrB,KAAMptB,cAACogF,KAAa,IACpBR,OAAQ7hD,KAAepe,QAAQw7C,SAC/B0kB,SAAS,IAIPQ,EAAcb,EA9DD,GADE,GAiErB,OACE9+E,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAAC0mB,KAAW,CACV0L,IAAKH,EACLtN,QAlEa,WACjBwN,GAAQ,IAkEJvxB,GAAE7B,YAAA,CACA2M,QAAS,EACT/H,MAAO08E,EACPz3E,OAAQy3E,GACJr5D,GAAQ,CACV,WAAY,CACV3X,OAAQ,EACR7G,QAAS,KACT7E,MAAO,OACPiF,OAAQ,OACR+C,aAAc,MACdtI,SAAU,WACV4pB,QAAS,SAACliB,GAAK,OAAK2E,YAAM3E,EAAME,QAAQ4B,KAAK,KAAM,SAGvD3M,SAEFF,cAACi/E,GAAQ,CAACr+E,GAAI,CAAE+C,MAAO08E,EAAaz3E,OAAQy3E,OAG9C3/E,eAACkP,KAAW,CACVoX,KAAMA,EACNC,QAASoP,EACThE,SAAUJ,EAAUvzB,QACpBkC,GAAI,CAAE+C,MAAO,KACbX,MAAO,CAAEqM,OAAQ,KAAOnP,SAAA,CAExBQ,eAACC,IAAG,CAACC,GAAI,CAAEuN,GAAI,IAAKokB,GAAI,KAAMryB,SAAA,CAC5BF,cAACc,IAAU,CAACC,QAAQ,YAAY2xD,QAAM,EAAAxyD,SAC5B,OAAPyf,QAAO,IAAPA,OAAO,EAAPA,EAAS9gB,OAEZ6B,eAACI,IAAU,CAACC,QAAQ,QAAQH,GAAI,CAAEqL,MAAO,kBAAmB/L,SAAA,CAAC,iBAC/Cu/E,EAAgBntE,MAE9BtS,cAACc,IAAU,CAACC,QAAQ,QAAQH,GAAI,CAAEqL,MAAO,kBAAmB/L,SACzDogF,aAASb,EAAgBphB,SAAS18D,MAAO,SAG9C3B,cAACkO,KAAO,CAACtN,GAAI,CAAEuN,GAAI,KAClBuxE,EAAavgF,QAAO,SAACugC,GAAC,OAAKA,EAAEmgD,WAAS/9E,KAAI,SAACy+E,GAAM,OAChD7/E,eAAC0D,KAAQ,CAEPyrD,GAAI0wB,EAAOX,OACX7xE,UAAWguD,IACXp3C,QAAS0R,EACTz1B,GAAI,CAAEuK,WAAY,QAASmnB,GAAI,EAAGC,GAAI,KAAMryB,SAAA,CAE5CF,cAACW,IAAG,CACFC,GAAI,CACF4vB,GAAI,EACJ7sB,MAAO,GACPiF,OAAQ,GACRqD,MAAO,WACP/L,SAEDqgF,EAAOnzD,OAGTmzD,EAAO5+E,QAjBH4+E,EAAO5+E,UAoBhB3B,cAACW,IAAG,CAACC,GAAI,CAAEiN,EAAG,EAAGskD,GAAI,KAAMjyD,SACzBF,cAAC+uB,KAAM,CAACrtB,WAAS,EAACuK,MAAM,UAAUlL,QAAQ,WAAW4jB,QA1H3C,kBAAAxiB,KAAAokC,aAAAjH,KAAAiE,MAAG,SAAAiD,IAAA,OAAAlH,KAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAED,OAFC0K,EAAA3C,KAAA,EAEjB82B,IAAgBn0B,EAAA1K,KAAA,EAEJ,OAANsgC,QAAM,IAANA,OAAM,EAANA,IAAW,KAAD,EACZ5B,EAAah8D,UACfk/B,EAAS,KACTvH,KACDqQ,EAAA1K,KAAA,gBAAA0K,EAAA3C,KAAA,EAAA2C,EAAA6D,GAAA7D,EAAA,SAEDpN,QAAQj7B,MAAKqoC,EAAA6D,IACb+B,EAAgB,mBAAoB,CAAEvrC,QAAS,UAAW,yBAAA2lC,EAAAzC,UAAAuC,EAAA,mBAE7DM,MAAA,KAAAriC,YA6GkFvE,SAAC,wB,sOCvIzEsgF,GAA2B,SAAHhgF,GAAYA,EAANwnC,OAAsD,IAADy4C,EAA7Cx5D,EAAOzmB,EAAPymB,QAC3CxG,EAAWG,cACjBtiB,EAA0CC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAlDoiF,EAAaliF,EAAA,GAAEmiF,EAAgBniF,EAAA,GACtCirB,EAAkDlrB,oBAAS,GAAMmrB,EAAAjrB,YAAAgrB,EAAA,GAA1Dm3D,EAAiBl3D,EAAA,GAAEm3D,EAAoBn3D,EAAA,GAC9CyiB,EAAkCzrB,aAAY,SAAC7O,GAAgB,OAAKA,EAAMiL,UAAlEgkE,EAAa30C,EAAb20C,cAAex3D,EAAM6iB,EAAN7iB,OACjB2uB,EAAWC,aAAY5uB,GAmB7B,OATArqB,qBAAU,WAAO,IAAD8hF,EAAAC,EACdvgE,EACEwgE,aACE/N,aAAU4N,EAAev0D,OACZ,OAAbu0D,QAAa,IAAbA,GAA2B,QAAdC,EAAbD,EAAe90D,UAAU,UAAE,IAAA+0D,GAAU,QAAVC,EAA3BD,EAA6B72D,gBAAQ,IAAA82D,OAAxB,EAAbA,EAAuC1uE,GAFzC2uE,EAGE,kBAAMJ,GAAqB,SAE9B,IAGD7gF,cAAC6mB,KAAS,CAAA3mB,SACRQ,eAACU,KAAK,CAACkK,QAAS,EAAG1K,GAAI,CAAE2xB,GAAI,IAAKD,GAAI,GAAIpyB,SAAA,CACvCwgF,GACC1gF,cAAC+3C,KAAW,CAACnH,SAAU,kBAAM+vC,GAAiB,IAAQ15D,QAASA,KAG/Dy5D,GAAkC,MAAjBI,GACjBpgF,eAAC02E,KAAI,CAAC9hC,WAAS,EAAChqC,QAAS,EAAEpL,SAAA,CACzBF,cAACo3E,KAAI,CAACn/D,MAAI,EAACoW,GAAI,GAAGnuB,SAChBF,cAACc,IAAU,CAACC,QAAQ,KAAKiC,MAAO,CAAEC,UAAW,UAAW/C,SACrDuwB,aAAmB,OAAbqwD,QAAa,IAAbA,OAAa,EAAbA,EAAev0D,MAAO,oBAGjC7rB,eAAC02E,KAAI,CAACn/D,MAAI,EAACoW,GAAI,GAAGnuB,SAAA,CAChBQ,eAACI,IAAU,CAACC,QAAQ,KAAKiC,MAAO,CAAEC,UAAW,UAAW/C,SAAA,CAAC,gBAC7CF,cAAA,QAAAE,SAAoB,OAAb4gF,QAAa,IAAbA,OAAa,EAAbA,EAAet6D,WAGjCo6D,GACC5gF,cAAC+sB,KAAK,CAACC,SAAS,QAAO9sB,SAAC,0FAK1BF,cAACkhF,KAAqB,OAGxBlhF,cAACo3E,KAAI,CAACn/D,MAAI,EAACoW,GAAI,GAAGnuB,SAChBF,cAACmhF,KAAe,CACdn1D,UAAwB,OAAb80D,QAAa,IAAbA,GAAwB,QAAXL,EAAbK,EAAe90D,iBAAS,IAAAy0D,OAAX,EAAbA,EAA0BthF,QAAO,SAACy9B,GAAM,MACjD,CAACwkD,KAAaC,MAAOD,KAAaE,UAAU/hF,SAASq9B,EAAEj6B,SACvDzC,SAED,SAACy6E,GACA,IAAM4G,GAAatpC,GAAY,IAAI94C,QACjC,SAACmpC,GAAM,OACL6nC,aAAY7nC,EAAE/b,MAAO,IAAIjqB,QACxBgmC,EAAEtc,UAAUwB,QAAQlb,KAAOqoE,EAASntD,QAAQlb,IAC3CqoE,EAASzwD,SAAS5X,KAAOg2B,EAAEtc,UAAU9B,SAAS5X,OAGpD,GAAIivE,EAAU78E,OAAS,EAAG,CACxB,IAAM88E,EAAG,uCAAAvgF,OAAoCuvE,aAC3C+Q,EAAU,GAAGh1D,MACbg1D,EAAU,GAAGjR,KACd,KACD,OACEtwE,cAAC4oB,KAAY,CACXpC,MAAO,4CACPqC,YAAW,6SAAA5nB,OACgIugF,GAC3I74E,IAAK,0CAGJ,OAAKgyE,EAAS8G,WAA2C,IAA9B9G,EAAS8G,UAAU/8E,OASjD1E,cAAC0hF,KAAgB,CAEfD,UAAW9G,EAAS8G,UACpBE,WAAY,SAAC/G,GAAkB,OApF/Bl+D,EAqFeg+D,aAA4BC,EAAUC,GApFzEn6D,EAASiuD,aAAqBhyD,SAC9BikE,GAAiB,GAFE,IAACjkE,GAuFA8iE,SAAS,EACToC,UAAWjH,EAASiH,WAAU,WAAA3gF,OANd05E,EAASntD,QAAQlb,KARnCtS,cAAC4oB,KAAY,CACXpC,MAAO,2BACP7d,IAAK,2D,4QC1H7B22B,GAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EA8Ee,SAASu+E,GAAkBrhF,GAA+C,IAADurC,EAA3CjoB,EAAKtjB,EAALsjB,MACnCwoB,GADiD9rC,EAAPymB,QACtBslB,eAApBD,iBACRw1C,EACEC,eADMC,EAAkBF,EAAlBE,mBAAoBC,EAAoBH,EAApBG,qBAAsB9wE,EAAS2wE,EAAT3wE,UAAW9S,EAAKyjF,EAALzjF,MAAO6jF,EAAYJ,EAAZI,aAEpE5jF,EAAwCC,mBAAuBulB,EAAMkI,WAAUxtB,EAAAC,YAAAH,EAAA,GAAxE6qB,EAAY3qB,EAAA,GAAE2jF,EAAe3jF,EAAA,GACpCirB,EAA8BlrB,oBAAS,GAAMmrB,EAAAjrB,YAAAgrB,EAAA,GAAtC9O,EAAO+O,EAAA,GAAE04D,EAAU14D,EAAA,GACpBkU,EAAWC,cAGXwkD,EAAc51C,OAAa7gC,MAAM,CACrC4a,MAAOimB,OAAa3pC,IAAI,KAAK4pC,SAAS,4BACtCngB,MAAOkgB,OAAW5pC,IAAI,IAAIP,MAAQoqC,SAAS,2BAC3C4jC,IAAK7jC,OAAWC,SAAS,2BACzB7jB,YAAa4jB,SASTI,EAASC,aAAU,CACvBC,cAAe,CACbvmB,MAAO1C,EAAM0C,MACb+F,MAAOzI,EAAMyI,MACb+jD,IAAKxsD,EAAMwsD,IACXznD,YAAa/E,EAAMkI,UAAUpmB,aAE/BonC,iBAAkBq1C,EAClBp1C,SAAS,SAADxC,EAAAC,GAAA,OAAAqB,KAAAxF,aAAAjH,KAAAiE,MAAE,SAAAiD,EAAOtoC,EAAMiE,GAAA,IAAAirC,EAAA+gB,EAAA,OAAA7uB,KAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAAiB,GAAboR,EAAajrC,EAAbirC,eACrBk1C,IAAeC,EAAc,CAAA77C,EAAA1K,KAAA,eAAA0K,EAAArE,OAAA,iBACjC,IACQ8rB,EAAMlhD,OAAOC,OAAO,GAAI4W,EAAO,CACnCyI,MAAOruB,EAAOquB,MACd+jD,IAAKpyE,EAAOoyE,IACZrkE,MAAO,UACPgwC,UAAW,UACXjwB,UAAW/e,OAAOC,OAAO,GAAI4W,EAAMkI,UAAW,CAC5CpmB,YAAa1H,EAAO2qB,YACpBoyD,QAAQ,MAIZgH,EAAqB9zB,EAArB8zB,EAA0B,kBACxB31C,EAAgB,6BAA2B,CAAEvrC,QAAS,eAExDqsC,GAAc,GACd,MAAO/uC,GACPi7B,QAAQj7B,MAAMA,GACf,wBAAAqoC,EAAAzC,UAAAuC,QACFM,MAAA,KAAAriC,cAGKvG,EAAwE2uC,EAAxE3uC,OAAQmvC,EAAgER,EAAhEQ,OAAQC,EAAwDT,EAAxDS,QAAuBE,GAAiCX,EAA/CY,aAA+CZ,EAAjCW,eAAeG,EAAkBd,EAAlBc,cAM9D,GAJA1uC,qBAAU,WACRkjF,EAAgBH,EAAmB74D,EAAahB,SAAUgB,EAAa7W,OACtE,MAEc,OAAZ6W,QAAY,IAAZA,OAAY,EAAZA,EAAc4O,WAAW,OAAO/3B,cAAAC,WAAA,IAErC,IAAMksB,EAAWhD,EAAa4O,UAAU5O,EAAa4O,UAAUrzB,OAAS,GAElE49E,EAAcjS,aAAa,IAAI/tE,KAAKpE,EAAOoyE,KAAM,IAAIhuE,KAAKpE,EAAOquB,QACjEg2D,EAAiBlS,aAAa,IAAI/tE,KAAKpE,EAAOquB,OAAQ,IAAIjqB,MAIhE,OACEtC,cAACW,KAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SAChBQ,eAAA,QAAMstC,aAAa,MAAMD,YAAU,EAACd,SAAUJ,EAAOU,aAAartC,SAAA,CAChEQ,eAACynC,KAAI,CAAAjoC,SAAA,CACHQ,eAACy2C,KAAmB,CAClB/pB,KAAMptB,cAACq3C,KAAI,IACX7wB,MAAO9lB,eAACI,IAAU,CAACC,QAAQ,KAAIb,SAAA,CAAC,IAAEipB,EAAaxnB,SAAoBzB,SAAA,CAEnEQ,eAACI,IAAU,CAACC,QAAQ,QAAOb,SAAA,CACxB,IAAI,YACEipB,EAAaiD,QAAQ,YAAUjD,EAAad,OAAOm6D,aAAc,OAE1ExiF,cAACi4B,KAAuB,CAACC,UAAW/O,EAAa+O,YAChDgqD,EAAapsC,MACZ,SAACrqB,GAAG,OACFA,EAAIO,UAAU7D,WAAagB,EAAahB,UACxCsD,EAAIO,UAAU1Z,KAAO6W,EAAa7W,OAEpCtS,cAAC4zB,KAAK,CAAC7yB,QAAQ,QAAQkL,MAAM,QAAO/L,SAAC,oCAMzCF,cAACyiF,KAAkB,IACnB/hF,eAAC47C,KAAQ,CAACC,GAAI5hC,EAAQza,SAAA,CACpBF,cAACooC,KAAc,CACb5hB,MACE9lB,eAACU,KAAK,CAACqB,UAAW,CAAE4rB,GAAI,OAAS/iB,QAAS,EAAEpL,SAAA,CAC1CF,cAAC0iF,KAAiB,CAChB/gF,MAAM,OACNghF,QAAS,IAAIrgF,KACbxD,MAAOZ,EAAOquB,MACdtuB,SAAU,SAACg2C,GACLi8B,aAAYj8B,KACdzG,EACE,QACA,IAAIlrC,KAAK,GAADrB,OAAIwvB,aAAMwjB,EAAO,cAAa,KAAAhzC,OAAI4xE,aAAM30E,EAAOquB,OAAO,SAEhEihB,EACE,MACA,IAAIlrC,KAAK,GAADrB,OAAIwvB,aAAMwjB,EAAO,cAAa,KAAAhzC,OAAI4xE,aAAM30E,EAAOoyE,KAAK,WAIlEsS,YAAa,SAACrnD,GAAM,OAClBv7B,cAAC0C,KAAS3D,wBAAA,GACJw8B,GAAM,IACV93B,OAAO,QACP7C,GAAI,CAAEC,GAAI,GACVa,WAAS,EACTrD,MAAOuF,QAAQypC,EAAO9gB,QAAUg2D,QAItCviF,cAAC6iF,KAAU,CACTC,MAAM,EACNnhF,MAAM,KACN7C,MAAOZ,EAAOquB,MACdtuB,SAAU,SAACi+C,GACLg0B,aAAYh0B,IACd1O,EACE,QACA,IAAIlrC,KAAK,GAADrB,OAAIwvB,aAAMvyB,EAAOquB,MAAO,cAAa,KAAAtrB,OAAI4xE,aAAM32B,GAAU,UAIvE0mC,YAAa,SAACrnD,GAAM,OAClBv7B,cAAC0C,KAAS3D,wBAAA,CAAC2C,WAAS,GAAK65B,GAAM,IAAE93B,OAAO,QAAQpF,MAAOkkF,QAG3DviF,cAAC6iF,KAAU,CACTC,MAAM,EACNnhF,MAAM,OACN7C,MAAOZ,EAAOoyE,IACdryE,SAAU,SAACi+C,GACLg0B,aAAYh0B,IACd1O,EACE,MACA,IAAIlrC,KAAK,GAADrB,OAAIwvB,aAAMvyB,EAAOquB,MAAO,cAAa,KAAAtrB,OAAI4xE,aAAM32B,GAAU,UAIvE0mC,YAAa,SAACrnD,GAAM,OAClBv7B,cAAC0C,KAAS3D,wBAAA,CAAC2C,WAAS,GAAK65B,GAAM,IAAE93B,OAAO,QAAQpF,MAAOikF,WAK/Dl1D,KAAMptB,cAAC+iF,KAAU,OAEjBT,GAAeC,GAAkB3+E,QAAQypC,EAAO9gB,SAChD7rB,eAACsoC,KAAmB,CAACC,WAAW,QAAO/oC,SAAA,EACnC0D,QAAQypC,EAAO9gB,QAAUg2D,IACzBviF,cAACc,IAAU,CAAAZ,SAAC,+DAEboiF,IAAgB1+E,QAAQypC,EAAO9gB,QAC9BvsB,cAACc,IAAU,CAAAZ,SAAC,yEAKpBF,cAACs8C,KAAQ,CAACC,IAAK5hC,EAAQza,SACrBF,cAACooC,KAAc,CACb5hB,MAAOgqD,aAAa1sD,EAAMyI,MAAOzI,EAAMwsD,KACvCljD,KAAMptB,cAACgjF,KAAU,QAIrBhjF,cAACooC,KAAc,CACbhb,KAAMptB,cAACijF,KAAS,IAChBz8D,MACE9lB,eAAAT,WAAA,CAAAC,SAAA,CAAE,WACS,IACTF,cAACkjF,KAAoB,CAAC5nE,OAAgB,OAAR6Q,QAAQ,IAARA,OAAQ,EAARA,EAAU7Q,OAAQ3Y,KAAkB,OAAZwmB,QAAY,IAAZA,OAAY,EAAZA,EAAcyD,oBAKzEzD,EAAa6B,SAAWmB,GACvBnsB,cAACooC,KAAc,CACb5hB,MAAOxmB,cAAC4uB,KAAY,CAAC3D,UAAW9B,EAAa8B,UAAWkB,SAAUA,IAClEiB,KAAMptB,cAACmjF,KAAU,MAIpBh6D,EAAa6V,SAASt6B,OAAS,GAC9B1E,cAACooC,KAAc,CAAC5hB,MAAM,8BAAwB4G,KAAMptB,cAACojF,KAAY,IAAIljF,SACnEF,cAACi/B,KAAS,CAACnR,WAAW,aAAakR,SAAU7V,EAAa6V,aAI9Dt+B,eAAC47C,KAAQ,CAACC,GAAI5hC,EAAQza,SAAA,CACpBF,cAACqjF,KAAqB,CAAAnjF,SACpBF,cAAC0C,KAAS3D,wBAAA,CACRkD,SAAU6hB,EAAMkI,UAAUyL,OAC1B/1B,WAAS,EACT4hF,WAAS,EACTpoC,KAAM,EACNqoC,QAAS,EACT5hF,MAAM,IACFgsC,EAAc,gBAAc,IAChCtvC,MAAOuF,QAAQ0pC,EAAQzkB,aAAewkB,EAAOxkB,aAC7ChlB,WAAYypC,EAAQzkB,aAAewkB,EAAOxkB,YAC1CjoB,GAAI,CAAEg5B,GAAI,QAGbv7B,GAAS2B,cAACgpC,KAAmB,CAACC,WAAW,QAAO/oC,SAAE7B,OAErD2B,cAACs8C,KAAQ,CAACC,IAAK5hC,EAAQza,SACpBhC,EAAO2qB,aACN7oB,cAACqjF,KAAqB,CAAAnjF,SAAEhC,EAAO2qB,mBAIpC/E,EAAMkI,UAAUyL,OACfz3B,cAAAC,WAAA,CAAAC,SACEF,cAAC+sB,KAAK,CAACC,SAAS,UAAS9sB,SAAC,oCAG5BQ,eAACmuB,KAAa,CAACjuB,GAAI,CAAEkuB,eAAgB,UAAW5uB,SAAA,CAC7Cya,EACCja,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAAC+uB,KAAM,CACLpsB,KAAK,SACL5B,QAAQ,OACRkL,MAAM,UACN0Y,QAAS,kBAAMy9D,GAAW,IAAOliF,SAClC,YAIDF,cAAC+uC,KAAa,CACZ9sC,SAAU6hB,EAAMkI,UAAUyL,OAC1B90B,KAAK,SACLsJ,MAAM,UACNlL,QAAQ,YACRiuC,QAAS79B,EACT89B,iBAAiB,aAAY/uC,SAC9B,mBAKHF,cAAAC,WAAA,CAAAC,SACEF,cAAC+uB,KAAM,CACLpsB,KAAK,SACL5B,QAAQ,OACRkL,MAAM,UACNhK,UAAU,EACV0iB,QAAS,kBAAMy9D,GAAW,IAAMliF,SACjC,gBAKHya,GACA3a,cAAC+uB,KAAM,CACLpsB,KAAK,SACL5B,QAAQ,YACRkL,MAAM,UACNhK,UAAU,EACV0iB,QA9PK,WACjBiZ,EAASG,KAAe9iB,UAAUwf,QAAO,IAAAx5B,OAAOkoB,EAAaiD,WA6P7BlsB,SACrB,iC,wBC5TA,SAASsjF,GAAqBhjF,GAIb,IAH9BijF,EAAWjjF,EAAXijF,YACAz7C,EAAMxnC,EAANwnC,OACA/gB,EAAOzmB,EAAPymB,QAEIT,EAAgB,GAEpB,OAAmB,OAAXi9D,QAAW,IAAXA,OAAW,EAAXA,EAAa53D,WACnB,KAAKC,KAAgB43D,KACnBl9D,EAAQ,yBACR,MACF,KAAKsF,KAAgBssB,gBACnB5xB,EAAQ,uBACR,MACF,KAAKsF,KAAgBoH,SACnB1M,EAAQ,gBACR,MACF,KAAKsF,KAAgBC,QACnBvF,EAAQ,cAIZ,OACE9lB,eAACqmB,KAAM,CACLC,KAAMghB,EACN/gB,QAASA,EACTkU,OAAO,QACP/qB,WAAY,CAAExP,GAAI,CAAE+C,MAAO,CAAE0qB,GAAI,EAAGC,GAAI,OAAUpuB,SAAA,CAElDQ,eAACU,KAAK,CAACyM,EAAG,IAAKpL,UAAU,MAAMlB,WAAW,SAAQrB,SAAA,CAChDF,cAACymB,KAAO,CAACD,MAAM,SAAQtmB,SACrBF,cAAC0mB,KAAW,CAAC/B,QAASsC,EAASrmB,GAAI,CAAE4vB,GAAI,GAAItwB,SAC3CF,cAACo7B,KAAK,QAGV16B,eAACI,IAAU,CAACC,QAAQ,KAAKH,GAAI,CAAEyP,GAAI,KAAMnQ,SAAA,CACtC,IACAsmB,KAEHxmB,cAACoB,KAAK,CAACqB,UAAU,MAAM6I,QAAS,EAAGwjB,eAAe,WAAWxK,SAAU,EAAEpkB,SACvEF,cAACymB,KAAO,CAACD,MAAM,6BAA4BtmB,SACzCF,cAAA,QAAAE,SACEF,cAAC2jF,GAAgB,CAACF,YAAaA,aAKvCzjF,cAACkO,KAAO,IAERlO,cAAC4jF,GAAc,CAACH,YAAaA,EAAaz7C,OAAQA,EAAQ/gB,QAASA,OASzE,IAAM08D,GAAmB,SAAHxhF,GAAgD,IAA1CshF,EAAWthF,EAAXshF,YAC1B,OAAmB,OAAXA,QAAW,IAAXA,OAAW,EAAXA,EAAa53D,WACnB,KAAKC,KAAgB+3D,aACnB,OACE7jF,cAAC8jF,KAAoB,CACnBt9D,MAAkB,OAAXi9D,QAAW,IAAXA,OAAW,EAAXA,EAAaj9D,MACpB7jB,KAAMohF,KAAaF,aACnBG,OAAQ,CAAE77D,SAAU,GAAIgrB,WAAY,EAAG7gC,KAAgB,OAAXmxE,QAAW,IAAXA,OAAW,EAAXA,EAAanxE,IAAIk4D,QAAS,KAG5E,KAAK1+C,KAAgBm4D,SACnB,OACEjkF,cAAC8jF,KAAoB,CACnBt9D,MAAkB,OAAXi9D,QAAW,IAAXA,OAAW,EAAXA,EAAaj9D,MACpB7jB,KAAMohF,KAAaE,SACnBD,OAAQ,CAAE77D,SAAU,GAAIgrB,WAAY,EAAG7gC,KAAgB,OAAXmxE,QAAW,IAAXA,OAAW,EAAXA,EAAanxE,IAAIk4D,QAAS,KAG5E,KAAK1+C,KAAgB43D,KACnB,OACE1jF,cAAC8jF,KAAoB,CACnBt9D,MAAkB,OAAXi9D,QAAW,IAAXA,OAAW,EAAXA,EAAaj9D,MACpB7jB,KAAMohF,KAAaL,KACnBM,OAAQ,CAAE77D,SAAU,GAAIgrB,WAAY,EAAG7gC,KAAgB,OAAXmxE,QAAW,IAAXA,OAAW,EAAXA,EAAanxE,IAAIk4D,QAAS,KAG5E,KAAK1+C,KAAgBoH,SACnB,OACElzB,cAAC8jF,KAAoB,CACnBt9D,MAAkB,OAAXi9D,QAAW,IAAXA,OAAW,EAAXA,EAAaj9D,MACpB7jB,KAAMohF,KAAaG,WACnBF,OAAQ,CACN77D,SAAUs7D,EAAYz3D,UAAU7D,SAChCgrB,WAAYswC,EAAYz3D,UAAU1Z,GAClCA,GAAI,EACJk4D,QAAS,KAKnB,OAAOxqE,cAAAC,WAAA,KAGH2jF,GAAiB,SAAHxhF,GAAsE,IAAhEqhF,EAAWrhF,EAAXqhF,YAAaz7C,EAAM5lC,EAAN4lC,OAAQ/gB,EAAO7kB,EAAP6kB,QACvCxG,EAAWG,cACjBtiB,EAAgCC,oBAAS,GAAKC,EAAAC,YAAAH,EAAA,GAAvCo5C,EAAQl5C,EAAA,GAAEm5C,EAAWn5C,EAAA,GAE5B,OAAmB,OAAXilF,QAAW,IAAXA,OAAW,EAAXA,EAAa53D,WACnB,KAAKC,KAAgBssB,gBACnB,OAAOp4C,cAACwgF,GAAwB,CAACv5D,QAASA,EAAS+gB,OAAQA,IAE7D,KAAKlc,KAAgBC,QAEnB,OADAtL,EAASm3B,aAAc6rC,EAAYz3D,YAC5B0rB,EACL13C,cAAC63C,KAAW,CAAC5wB,QAASA,EAAS6wB,aAAc,kBAAMH,GAAY,MAE/D33C,cAAC+3C,KAAW,CAACnH,SAAU,kBAAM+G,GAAY,IAAO1wB,QAASA,IAE7D,KAAK6E,KAAgBoH,SACnB,OAAOlzB,cAAC6hF,GAAkB,CAAC/9D,MAAO2/D,EAAax8D,QAASA,IAC1D,KAAK6E,KAAgB43D,KACnB,OAAO1jF,cAACmkF,KAAgB,CAACjnE,KAAMumE,EAAYz3D,UAAW/E,QAASA,IAGnE,OAAOjnB,cAAAC,WAAA,K,oBClFT,SAASmkF,GAAQ5jF,GAMb,IALFsjB,EAAKtjB,EAALsjB,MACAH,EAAQnjB,EAARmjB,SAKA0gE,EA1BF,SAAyBx4D,GACvB,OAAQA,GACN,KAAKC,KAAgBC,QACnB,MAAO,CAAE1V,SAAU,cAAepK,MAAO,IAC3C,KAAK6f,KAAgBm4D,SACnB,MAAO,CAAE5tE,SAAU,UAAWpK,MAAO,IACvC,KAAK6f,KAAgB+3D,aACnB,MAAO,CAAExtE,SAAU,mBAAoBpK,MAAO,IAChD,KAAK6f,KAAgB43D,KACnB,MAAO,CAAErtE,SAAU,QAASpK,MAAO,IACrC,KAAK6f,KAAgBw4D,QACnB,MAAO,CAAEjuE,SAAU,UAAWpK,MAAO,IACvC,KAAK6f,KAAgBoH,SACnB,MAAO,CAAE7c,SAAU,gBAAcpK,MAAO,IAC1C,QACE,MAAO,CAAEoK,SAAU,aAAcpK,MAAO,KAWhBs4E,CAAgBzgE,EAAM+H,WAA1CxV,EAAQguE,EAARhuE,SAAeguE,EAALp4E,MAClB,OACEjM,cAAC8gD,KAAc,CACbn8B,QAAS,kBAAMhB,EAASG,IACxBljB,GAAI,CACF0xB,GAAI,IACJC,GAAI,IACJ1xB,GAAI,OACJX,SAEFF,cAAC05B,KAAY,CACXxM,QACExsB,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAE4jB,EAAM0C,QACvCxmB,cAAC4zB,KAAK,CAAC7yB,QAAQ,SAASH,GAAI,CAAEqL,MAAO,OAAQH,gBAAiBgY,EAAMm4B,WAAY/7C,SAC7EmW,OAIPnK,UACElM,cAACc,IAAU,CACTC,QAAQ,QACRH,GAAI,CACFC,GAAI,GACJ2L,QAAS,OACTjL,WAAY,SACZ0K,MAAO,iBACP/L,SAEDswE,aAAa1sD,EAAMyI,MAAOzI,EAAMwsD,WAQ9B,SAASkU,GAAYriF,GAA0C,IAADsiF,EAAAtiF,EAAtCq9E,eAAO,IAAAiF,GAAQA,EAC9CxyD,EAAYC,iBAAO,MACzB5zB,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GACdiiB,EAAWG,cACjBurB,EAA+CzrB,aAAY,SAAC7O,GAAgB,OAAKA,EAAMiL,UAA/EwM,EAAM6iB,EAAN7iB,OAAQiwC,EAAWptB,EAAXotB,YAAaunB,EAAa30C,EAAb20C,cAMvBzqD,EAAc,WAClBlE,GAAQ,IAOJxO,EAAW,SAACG,GAIhB,OAHAqO,GAAQ,GAGArO,EAAM+H,WACZ,KAAKC,KAAgB+3D,aAEnB,YADApjE,EAASujD,aAAqBlgD,EAAMxR,KAEtC,KAAKwZ,KAAgBm4D,SAEnB,YADAxjE,EAASunD,aAAmBlkD,EAAMxR,KAItCmO,EAASikE,aAAY5gE,KAGjB6gE,EAAc,IAAIriF,KAElBsiF,EAAat7D,EAAOnqB,QACxB,SAACssB,GAAG,OACF0kD,aAAY1kD,EAAI6kD,IAAKqU,KACnBl5D,EAAII,YAAcC,KAAgBC,SAClCN,EAAIO,UAAU1Q,SAAW2Q,KAAcssB,YACtC9sB,EAAII,YAAcC,KAAgB+3D,cAAgBp4D,EAAIO,UAAU6oC,YAChEppC,EAAII,YAAcC,KAAgBm4D,UAAYx4D,EAAIO,UAAU6oC,eAG7DgwB,EAAiBjtE,aAAIgtE,GAAYv4D,MAAK,SAAC7d,EAAG8d,GAC9C,OAAO,IAAIhqB,KAAKkM,EAAE+d,OAAOu4D,UAAY,IAAIxiF,KAAKgqB,EAAEC,OAAOu4D,aAGzD,OACEpkF,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACymB,KAAO,CAACD,MAAM,cAAatmB,SAC1BF,cAAC0mB,KAAW,CACV0L,IAAKH,EACLrwB,KAAM49E,EAAU,SAAW,QAC3BvzE,MAAO+a,EAAO,UAAY,UAC1BrC,QAlDW,WACjBwN,GAAQ,IAiDkBjyB,SAEpBF,cAACg7B,KAAK,CAACC,aAAc2pD,EAAWlgF,OAAQuH,MAAM,QAAO/L,SACnDF,cAACk7B,KAAI,CAAC9N,KAAM23D,KAAaphF,MAAO,GAAIiF,OAAQ,WAIlDlI,eAACkP,KAAW,CACVoX,KAAMA,EACNC,QAASoP,EACThE,SAAUJ,EAAUvzB,QACpBkC,GAAI,CAAE+C,MAAO,KAAMzD,SAAA,CAEnBF,cAACW,IAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQjL,WAAY,SAAU+wB,GAAI,EAAGC,GAAI,KAAMryB,SACjEF,cAACW,IAAG,CAACC,GAAI,CAAE0jB,SAAU,GAAIpkB,SACvBF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,oBAIpCF,cAACkO,KAAO,IAEmB,IAA1B22E,EAAengF,OACd1E,cAAC4oB,KAAY,CACXpC,MAAO,6CACPqC,YAAa,qCACblgB,IAAK,+CAGP3I,cAAAC,WAAA,CAAAC,SACEF,cAAC6mB,KAAS,CAACjmB,GAAI,CAAEgI,OAAQ,CAAEylB,GAAI,IAAKC,GAAI,SAAWpuB,SACjDF,cAACmoC,KAAI,CAAC68C,gBAAc,EAAA9kF,SACjB2kF,EAAe7zE,MAAM,EAAG,IAAIlP,KAAI,SAACgiB,GAAK,OACrC9jB,cAACokF,GAAQ,CAAgBtgE,MAAOA,EAAOH,SAAUA,GAAlCG,EAAMxR,aAO/BtS,cAACkO,KAAO,IAERlO,cAACW,IAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SAChBF,cAAC+uB,KAAM,CACLrtB,WAAS,EACT4iD,eAAa,EACbv2C,UAAWguD,IACXlM,GAAI9xB,KAAe0zB,MAAMwzB,YACzBtgE,QAAS0R,EAAYn2B,SACtB,oBAMJ4gF,GACC9gF,cAACklF,GAAqB,CACpBzB,YAAa3C,EACb75D,QAnGiB,WACvBxG,EAASu5C,iBAmGHhyB,OAAQuxB,O,+CCnNH,SAASnlC,GAAW5zB,GAA0D,IAAvDyxB,EAASzxB,EAATyxB,UAAW0C,EAAQn0B,EAARm0B,SAAUC,EAAWp0B,EAAXo0B,YACzDspB,EAA8C70B,eAAtC1J,EAAOu+B,EAAPv+B,QAASwlE,EAAYjnC,EAAZinC,aAWjB,OAXyCjnC,EAAVtmB,WAWR53B,cAAAC,WAAA,IAGrBS,eAACkP,KAAW,CACVoX,KAAM2N,EACN1N,QAdoB,WACtB2N,GAAY,IAcVvC,SAAmB,OAATJ,QAAS,IAATA,OAAS,EAATA,EAAWvzB,QACrBkC,GAAI,CAAE+C,MAAO,KAAMzD,SAAA,CAEnBF,cAAC4oB,KAAY,CACXpC,MAAO,gDACPqC,YACE,qGAEFlgB,IAAK,wCAEP3I,cAACkO,KAAO,IACRlO,cAACW,IAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQjL,WAAY,SAAU+wB,GAAI,EAAGC,GAAI,KAAMryB,SACjEF,cAACW,IAAG,CAACC,GAAI,CAAE0jB,SAAU,GAAIpkB,SACvBF,cAAC80B,KAAgB,CACfC,QAAS/0B,cAACg1B,KAAQ,CAAC/2B,SAzBR,WACnB22B,GAAY,GACRD,GAAUlU,YAAS0kE,EAAYpmF,wBAAC,GAAY,OAAP4gB,QAAO,IAAPA,OAAO,EAAPA,EAASqhD,QAAM,IAAEokB,uBAAuB,SAwBzEzjF,MAAM,uC,yBC/BH,SAAS0jF,GAAU7kF,GAAyC,IAAD8kF,EAAA/F,EAAA/+E,EAArCg/E,eAAO,IAAAD,GAAQA,EAC1C5/D,EAAY0J,eAAZ1J,QACRrhB,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GACdyzB,EAAYC,iBAAO,MACnBqzD,EAAsBlgC,eAC5B57B,EAAgClrB,qBAAiB,OAAPohB,QAAO,IAAPA,GAAe,QAAR2lE,EAAP3lE,EAASqhD,cAAM,IAAAskB,OAAR,EAAPA,EAAiBF,wBAAsB17D,EAAAjrB,YAAAgrB,EAAA,GAA1EkL,EAAQjL,EAAA,GAAEkL,EAAWlL,EAAA,GAU5B,GAA2C,KAAvC67D,EAAoBngC,eAAuB,OAAOplD,cAAAC,WAAA,IAEtD,IAAMulF,EAAeC,KAAe76D,MAAK,SAAC1Q,GAAC,OAAKA,EAAE5H,KAAOizE,EAAoBngC,kBAE7E,OAAKogC,GAAiC,OAAjBA,EAGnB9kF,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACymB,KAAO,CAACD,MAAM,OAAMtmB,SACnBF,cAAC0mB,KAAW,CACV0L,IAAKH,EACLrwB,KAAM49E,EAAU,SAAW,QAC3BvzE,MAAO+a,GAAQ2N,EAAW,UAAY,UACtChQ,QArBW,SAACrhB,GAClB6uB,GAAQ,IAqBFvxB,GAAE7B,YAAA,GACIioB,GAAQ,CACViG,QAAS,SAACliB,GAAK,OACb2E,YAAM3E,EAAME,QAAQiiB,QAAQI,KAAMviB,EAAME,QAAQ8G,OAAOknB,iBAE3D/4B,SAEFF,cAAC0lF,KAAW,QAGfzzD,GAAaA,EAAUvzB,SACtBsB,cAACo0B,GAAW,CAACO,SAAUA,EAAUC,YAAaA,EAAa3C,UAAWA,IAGvEjL,GAAQhnB,cAACslD,KAAU,CAACt+B,KAAMA,EAAMC,QAhCjB,WAClBkL,GAAQ,IA+BiD9b,SAAUmvE,OAxBlBxlF,cAAAC,WAAA,I,sDCZtC,SAAS0lF,GAAgBnlF,GAA8C,IAAD++E,EAAA/+E,EAA1Cg/E,eAAO,IAAAD,GAAQA,EAClDttD,EAAYC,iBAAO,MACzB5zB,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GACpBonF,EAAiEC,eAAzDC,EAASF,EAATE,UAAWC,EAAIH,EAAJG,KAAMjiF,EAAM8hF,EAAN9hF,OAAQswC,EAAMwxC,EAANxxC,OAAQ4xC,EAAmBJ,EAAnBI,oBAEzC/mF,qBAAU,WACR8mF,MACC,IAEH,IAIM1vD,EAAc,WAClBlE,GAAQ,IAGJ8zD,EAAe,SAACp1E,EAAkBlO,GACtC0zB,IACAvyB,EAAO+M,EAAKlO,IAGd,OACEjC,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACymB,KAAO,CAACD,MAAM,UAAStmB,SACtBF,cAAC0mB,KAAW,CACV0L,IAAKH,EACLrwB,KAAM49E,EAAU,SAAW,QAC3BvzE,MAAO+a,EAAO,UAAY,UAC1BrC,QApBW,WACjBwN,GAAQ,IAmBkBjyB,SAEpBF,cAACg7B,KAAK,CACJC,aACE+qD,GACEhmF,cAACy2D,IAAY,CAACC,SAAUd,IAAU11D,SAAE8lF,IAGxC/5E,MAAM,QAAO/L,SAEbF,cAACk7B,KAAI,CAAC9N,KAAM84D,KAAUviF,MAAO,GAAIiF,OAAQ,WAI/ClI,eAACkP,KAAW,CACVoX,KAAMA,EACNC,QAASoP,EACThE,SAAUJ,EAAUvzB,QACpBkC,GAAI,CAAE+C,MAAO,KAAMzD,SAAA,CAEnBF,cAACW,IAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQjL,WAAY,SAAU+wB,GAAI,EAAGC,GAAI,KAAMryB,SACjEF,cAACW,IAAG,CAACC,GAAI,CAAE0jB,SAAU,GAAIpkB,SACvBF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,gBAIpCF,cAACkO,KAAO,IAEc,IAArB43E,EAAUphF,OACT1E,cAAC4oB,KAAY,CACXpC,MAAO,mEACPqC,YACE,0HAEFlgB,IAAK,mDAGPjI,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAAC6mB,KAAS,CAACjmB,GAAI,CAAEgI,OAAQ,CAAEylB,GAAI,IAAKC,GAAI,SAAWpuB,SACjDF,cAACmoC,KAAI,CAAC68C,gBAAc,EAAA9kF,SACjBimF,mBACCL,GACA,SAACl1D,GACC,OAAOA,EAAEte,KAEX,QAECtB,MAAM,EAAG,GACTlP,KAAI,SAAC8a,GAAQ,OACZ5c,cAAComF,KAAgB,CAEfxpE,SAAUA,EACV+G,SAAUsiE,EACVx3C,SAAU2F,GAHLx3B,EAAStK,WASxBtS,cAACkO,KAAO,IAERlO,cAACW,IAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SAChBF,cAAC+uB,KAAM,CACLrtB,WAAS,EACT4iD,eAAa,EACbv2C,UAAWguD,IACXlM,GAAI9xB,KAAenhB,SACnB+H,QAAS0R,EAAYn2B,SACtB,yB,oJC5Df,SAASmmF,GAAoB7lF,GAQzB,IAPFoe,EAAYpe,EAAZoe,aACAg8B,EAAQp6C,EAARo6C,SACA3zB,EAAOzmB,EAAPymB,QAMMxG,EAAWG,cACXgd,EAAWC,cAED,MAAZ+c,IACFA,EAAW,CACTtoC,GAAIg0E,KAAiBC,QACrBt6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,GACPggE,SAAU,gBAiGd,OACExmF,cAAC8gD,KAAc,CACbn8B,QAAS,kBAhGQ,SAAC1M,GAMpB,OALIgP,GAASA,IAGRhP,EAAKmiB,MAAM3Z,EAASgmE,aAAQxuE,EAAK3F,GAAbm0E,EAAiB,kBAAMntD,QAAQC,IAAI,WAEpDthB,EAAKtV,MACX,KAAK2jF,KAAiBI,uCACtB,KAAKJ,KAAiBK,+BACtB,KAAKL,KAAiBM,qCACtB,KAAKN,KAAiBzC,aACpBpjE,EAASujD,aAAqB/rD,EAAKiiB,SACnC,MACF,KAAKosD,KAAiBO,OACpBpmE,EAASunD,aAAmB/vD,EAAKiiB,SACjC,MACF,KAAKosD,KAAiBQ,WACpBlpD,EAAS,GAAD38B,OAAI88B,KAAevhB,QAAQyhB,KAAI,KAAAh9B,OAAIgX,EAAKiiB,SAChD,MACF,KAAKosD,KAAiBS,gBACtB,KAAKT,KAAiBU,QACtB,KAAKV,KAAiBW,eACtB,KAAKX,KAAiBY,cACZ,OAAJjvE,QAAI,IAAJA,OAAI,EAAJA,EAAMkiB,YAAgC,KAAf,OAAJliB,QAAI,IAAJA,OAAI,EAAJA,EAAMkiB,WAC3ByD,EAAS,GAAD38B,OAAI88B,KAAe9iB,UAAUwf,QAAO,KAAAx5B,OAAIgX,EAAKkiB,YAErDyD,EAASG,KAAehG,UAAUkG,MAEpC,MACF,KAAKqoD,KAAiBC,QACpB,MACF,KAAKD,KAAiBa,MACpBvpD,EAAS,GAAD38B,OAAI88B,KAAe9iB,UAAUgjB,OACrC,MACF,KAAKqoD,KAAiBc,OAEtB,KAAKd,KAAiBe,aACpB,MACF,KAAKf,KAAiBgB,UACpB1pD,EAAS,GAAD38B,OAAI88B,KAAenrB,QAAQuvD,IAAG,KAAAlhE,OAAIgX,EAAK3F,GAAE,KAAArR,OAAIgX,EAAKiiB,OAAM,OAChE,MACF,KAAKosD,KAAiBiB,iBACtB,KAAKjB,KAAiBkB,cACpB5pD,EAAS,GAAD38B,OAAI88B,KAAenrB,QAAQuvD,IAAG,KAAAlhE,OAAIgX,EAAK3F,GAAE,KAAArR,OAAIgX,EAAKiiB,OAAM,OAChE,MACF,KAAKosD,KAAiBmB,cACpB7pD,EAAS,GAAD38B,OAAI88B,KAAenrB,QAAQuvD,IAAG,KAAAlhE,OAAIgX,EAAK3F,GAAE,KAAArR,OAAIgX,EAAKiiB,OAAM,OAChE,MACF,KAAKosD,KAAiBoB,eACpBjnE,EAASujD,aAAqB/rD,EAAKiiB,SACnC,MACF,KAAKosD,KAAiBhC,QACpB1mD,EAAS,GAAD38B,OAAI88B,KAAe0zB,MAAMlB,WA4CpB01B,CAAarnE,IAC5Bhe,GAAE7B,YAAA,CACAuzB,GAAI,IACJC,GAAI,IACJ1xB,GAAI,OACA+d,EAAawb,MAAQ,CACvBnN,QAAS,oBAEX/sB,SAEFF,cAAC05B,KAAY,CACXxM,QACExsB,eAACI,IAAU,CAACC,QAAQ,YAAWb,SAAA,CACT,KAAnB06C,EAASp0B,MAAe5H,EAAa4H,MAAQo0B,EAASp0B,MApDpC,SAAC5H,GAG5B,OAF2C,OAAZA,QAAY,IAAZA,OAAY,EAAZA,EAAcjc,MAG3C,KAAK2jF,KAAiBM,qCACpB,OACE5mF,cAACc,IAAU,CAACiN,UAAU,MAAMhN,QAAQ,UAAUH,GAAI,CAAEqL,MAAO,WAAY/L,SAAC,4HAK5E,KAAKomF,KAAiBqB,gCACpB,OACE3nF,cAACc,IAAU,CAACiN,UAAU,MAAMhN,QAAQ,UAAUH,GAAI,CAAEqL,MAAO,WAAY/L,SAAC,uGAK5E,KAAKomF,KAAiBoB,eACpB,OACE1nF,cAACc,IAAU,CAACiN,UAAU,MAAMhN,QAAQ,UAAUH,GAAI,CAAEqL,MAAO,WAAY/L,SAAC,sLAK5E,KAAKomF,KAAiBW,eACpB,GAA8B,MAA1BroE,EAAaub,WAAuD,KAAlCvb,EAAaub,UAAU5vB,OAC3D,OACEvK,cAACc,IAAU,CAACiN,UAAU,MAAMhN,QAAQ,UAAUH,GAAI,CAAEqL,MAAO,WAAY/L,SAAC,uEAMhF,OAAOF,cAAAC,WAAA,IAmBE2nF,CAAqBhpE,GAEtB5e,cAACc,IAAU,CAACiN,UAAU,MAAMhN,QAAQ,UAAUH,GAAI,CAAEqL,MAAO,kBAAmB/L,SACxD,KAAnB06C,EAASp0B,MACRxmB,cAACc,IAAU,CACTC,QAAQ,UACRH,GAAI,CACF,QAAS,CACP4K,SAAU,sBAEZtL,SAEFF,cAAC6O,KAAQ,CAAC3O,SAAU0e,EAAaiK,gBAGnCjK,EAAa4H,WAKrBta,UACExL,eAACI,IAAU,CACTC,QAAQ,UACRH,GAAI,CACFC,GAAI,GACJ2L,QAAS,OACTjL,WAAY,SACZ0K,MAAO,iBACP/L,SAAA,CAEFF,cAACW,IAAG,CAACoN,UAAWmtB,KAAM9N,KAAMy6D,KAAWjnF,GAAI,CAAE4vB,GAAI,GAAK7sB,MAAO,GAAIiF,OAAQ,MACxE6nB,aAAM7R,EAAakpE,aACpB9nF,cAACW,IAAG,CAAC2jB,SAAU,IAEftkB,cAAC4zB,KAAK,CAAC7yB,QAAQ,QAAQH,GAAI,CAAEqL,MAAO2uC,EAAS3uC,MAAOghB,QAAS2tB,EAAS3tB,SAAU/sB,SAC7E06C,EAAS4rC,kBAST,SAASuB,GAAoB5lF,GAAiD,IAADsiF,EAAAtiF,EAA7Cq9E,eAAO,IAAAiF,GAAQA,EACtDxyD,EAAYC,iBAAO,MACzB5zB,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GACZwpF,EAAe3+C,eAAf2+C,WACFvnE,EAAWG,cACjBurB,EAAoEzrB,aAClE,SAAC7O,GAAgB,OAAKA,EAAM+M,gBADtBhL,EAAOu4B,EAAPv4B,QAASkB,EAAaq3B,EAAbr3B,cAAejB,EAAKs4B,EAALt4B,MAAO9Q,EAAIopC,EAAJppC,KAAMoY,EAAKgxB,EAALhxB,MAAO8sE,EAAW97C,EAAX87C,YAG5C37C,EAAoBC,eAApBD,gBAMFjW,EAAc,WAClBlE,GAAQ,IAOJ+1D,EAAWxnB,uBAAY,kBAAMjgD,EAAS0nE,kBAAyB,CAAC1nE,IAatE,OAXAxhB,qBAAU,WACE,OAAV+oF,QAAU,IAAVA,KAAYj+B,GAAG,6BAA6B,SAACxuB,GAC3C9a,EAAS2nE,aAAiB,EAAG,IAAI,IACjC97C,EAAgB/Q,EAAO/U,MAAO,CAAEzlB,QAAS,OAAQsnF,SAAS,SAE3D,IAEHppF,qBAAU,WACRwhB,EAAS2nE,aAAiBv0E,EAAO9Q,GAAM,MACtC,CAAC8Q,EAAO9Q,IAGTrC,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACymB,KAAO,CAACD,MAAM,gBAAetmB,SAC5BF,cAAC0mB,KAAW,CACV0L,IAAKH,EACLrwB,KAAM49E,EAAU,SAAW,QAC3BvzE,MAAO+a,EAAO,UAAY,UAC1BrC,QAhCW,WACjBwN,GAAQ,IA+BkBjyB,SAEpBF,cAACg7B,KAAK,CAACC,aAAcgtD,EAAah8E,MAAM,QAAO/L,SAC7CF,cAACk7B,KAAI,CAAC9N,KAAMk7D,KAAU3kF,MAAO,GAAIiF,OAAQ,WAI/ClI,eAACkP,KAAW,CACVoX,KAAMA,EACNC,QAASoP,EACThE,SAAUJ,EAAUvzB,QACpBkC,GAAI,CAAE+C,MAAO,IAAKN,SAAU,YAAanD,SAAA,CAEzCF,cAACW,IAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQjL,WAAY,SAAU+wB,GAAI,EAAGC,GAAI,KAAMryB,SACjEQ,eAACC,IAAG,CAACC,GAAI,CAAE0jB,SAAU,GAAIpkB,SAAA,CACvBQ,eAACI,IAAU,CAACC,QAAQ,YAAWb,SAAA,CAAC,kBAAgBib,EAAM,OACtDza,eAACI,IAAU,CAACC,QAAQ,QAAQH,GAAI,CAAEqL,MAAO,kBAAmB/L,SAAA,CAAC,aAChD+nF,EAAY,sCAI5BA,EAAc,GACbvnF,eAACU,KAAK,CAACE,cAAe,MAAOC,WAAY,SAAUo/C,aAAa,gBAAezgD,SAAA,CAC7EF,cAACW,IAAG,CAACC,GAAI,CAAE0jB,SAAU,KACrB5jB,eAACquB,KAAM,CAAC9iB,MAAM,UAAUlL,QAAQ,OAAO4jB,QAhDrB,WAC1BlE,EAAS8nE,gBAAa,kBAAMjvD,QAAQC,IAAI,YA+CoCr5B,SAAA,CAClEF,cAACk7B,KAAI,CAAC9N,KAAMo7D,KAAa7kF,MAAO,GAAIiF,OAAQ,KAAM,+BAIxD5I,cAACkO,KAAO,IAEG,IAAViN,EACCnb,cAAC4oB,KAAY,CACXpC,MAAO,0CACPqC,YAAa,GACblgB,IAAK,gEAGP3I,cAAC6mB,KAAS,CAACjmB,GAAI,CAAEgI,OAAQ,KAAM1I,SAC7BF,cAACyoF,KAAc,CACbzsD,KAAMksD,EACNt0E,QAASA,EACT80E,OACE1oF,cAACy5B,KAAQ,CAAC74B,GAAI,CAAEW,WAAY,SAAUo/C,aAAc,UAAWzgD,SAC7DF,cAAC+uB,KAAM,CAACpK,QAASujE,EAAUnnF,QAAQ,OAAOa,KAAK,QAAO1B,SAAC,2BAK3DyoF,WAAYxtE,EAAMjb,SAElBF,cAACmoC,KAAI,CAAC68C,gBAAc,EAAA9kF,SACjB4U,EAAchT,KAAI,SAAC8c,GAClB,IAAMgqE,EAAcC,eAA0B1pF,QAC5C,SAAC6jB,GAA4B,OAAKA,EAAE1Q,KAAOsM,EAAajc,QACxD,GACF,OACE3C,cAACqmF,GAAoB,CAEnBznE,aAAcA,EACdg8B,SAAUguC,EACV3hE,QAASoP,GAAY,GAAAp1B,OAHb2d,EAAatM,IAAErR,OAAG2d,EAAasb,QAAMj5B,OAAG2d,EAAajc,sB,cChVpE,SAASmmF,KACtB,IAAA5qC,EAAwC70B,eAAhC1J,EAAOu+B,EAAPv+B,QAEFsK,GAAWb,EAFkB80B,EAAlB90B,sBAIjB,OACEppB,cAAC2uB,KAAI,CAAC/tB,GAAI,CAAEiN,EAAG,IAAM3N,SACnBQ,eAACU,KAAK,CAAAlB,SAAA,CACJQ,eAACI,IAAU,CAACC,QAAQ,YAAWb,SAAA,CACrB,OAAPyf,QAAO,IAAPA,OAAO,EAAPA,EAASgO,SAAS,IAAS,OAAPhO,QAAO,IAAPA,OAAO,EAAPA,EAAS+N,aAEhChtB,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAAC,eACf+pB,EAASo0C,SAAS/rD,GAAG,IAAE2X,EAASo0C,SAAS18D,SAExDjB,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAAC,iBAAY+pB,EAAS3X,WCb5C,SAASy2E,GAAWvoF,GAAwC,IAAD++E,EAAA/+E,EAApCg/E,eAAO,IAAAD,GAAOA,EAE5CyJ,GAAcC,EADY5/D,eAAxB4/D,uBAaR,OAAOjpF,cAAAC,WAAA,CAAAC,SAAG8oF,GAAe,KAARA,IATRxJ,EACLx/E,cAACymB,KAAO,CAACD,MAAOwiE,EAAI9oF,SAClBF,cAACgjF,KAAU,CAAC/2E,MAAM,cAGpBjM,cAAC4zB,KAAK,CAAC3nB,MAAM,UAAS/L,SAAE8oF,O,6CCDf,SAASE,KACtB,IAAMj3D,EAAYC,iBAAO,MACzB5zB,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GACpB0/C,EAAuC70B,eAA/B4/C,EAAiB/qB,EAAjB+qB,kBAAmBtpD,EAAOu+B,EAAPv+B,QAC3BwpE,EAAyCC,eAAjCC,EAAUF,EAAVE,WAAYC,EAAgBH,EAAhBG,iBACpBC,EAA+CC,eAAvCC,EAAiBF,EAAjBE,kBAAmBC,EAAeH,EAAfG,gBAC3BjgE,EAAkClrB,mBAA2B,IAAGmrB,EAAAjrB,YAAAgrB,EAAA,GAAzDkgE,EAASjgE,EAAA,GAAEkgE,EAAYlgE,EAAA,GAE9BzqB,qBAAU,WACR,IAAI4qF,EAAe91B,QAGnB01B,GAAqBI,EAAa3lF,KAAKwlF,KAGvCL,GAAcQ,EAAa3lF,KAAKolF,KAGhC,IAAMQ,EAAiB7gB,IACnB6gB,GAAqC,KAAnBA,GACpBD,EAAa3lF,KAAK,CAChBsiB,MAAO,2DACPqC,YAAaihE,EACbnhF,IAAK,KAGLkhF,GAAcD,EAAaC,KAC9B,CAAQ,OAAPlqE,QAAO,IAAPA,OAAO,EAAPA,EAASrN,KAEb,IAGM+jB,EAAc,WAClBlE,GAAQ,IAIV,OAAyB,IAArBw3D,EAAUjlF,OAAqB1E,cAAAC,WAAA,IAGjCS,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACymB,KAAO,CAACD,MAAM,YAAWtmB,SACxBF,cAAC8zB,KAAU,CACT1B,IAAKH,EACLrwB,KAAM,SACNqK,MAAO+a,EAAO,UAAY,UAC1BrC,QAjBW,WACjBwN,GAAQ,IAgBkBjyB,SAEpBF,cAAC+pF,KAAc,CAAC99E,MAAM,cAG1BvL,eAACkP,KAAW,CACVoX,KAAMA,EACNC,QAASoP,EACThE,SAAUJ,EAAUvzB,QACpBkC,GAAI,CAAE+C,MAAO,KAAMzD,SAAA,CAEnBF,cAACW,IAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQjL,WAAY,SAAU+wB,GAAI,EAAGC,GAAI,KAAMryB,SACjEF,cAACW,IAAG,CAACC,GAAI,CAAE0jB,SAAU,GAAIpkB,SACvBF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,gBAIpCF,cAACkO,KAAO,IAERxN,eAACU,KAAK,CAACC,IAAI,MAAKnB,SAAA,CACbypF,EAAU7nF,KAAI,SAACkoF,EAAkBn2E,GAChC,OAAIm2E,EAAMj4E,OAEN/R,cAAC+uB,KAAM,CACLpK,QAAS,YACF,OAALqlE,QAAK,IAALA,OAAK,EAALA,EAAOj4E,UAAe,OAALi4E,QAAK,IAALA,KAAOj4E,UACxBskB,KAEFz0B,KAAK,QAAO1B,SAGZQ,eAACqsB,KAAK,CAACC,SAAS,QAAQpsB,GAAI,CAAEqC,UAAW,QAAS/C,SAAA,CAChDF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAE8pF,EAAMxjE,QACvCxmB,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAE8pF,EAAMnhE,kBAJhChV,GAUTnT,eAACqsB,KAAK,CAACC,SAAS,QAAQpsB,GAAI,CAAEqC,UAAW,OAAQ25B,EAAG,GAAI18B,SAAA,CACtDF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAE8pF,EAAMxjE,QACvCxmB,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAE8pF,EAAMnhE,gBAFyBhV,MAMlE7T,cAACkpE,KAAoB,a,mCCtG/B,IAAM+gB,GAAoBp/E,YAAO8kC,IAAP9kC,EAAyB,SAAArK,GAAQA,EAALuK,MAAK,MAAQ,CACjEkB,MAAO,gBAEHi+E,GAAqBr/E,YAAO8kC,IAAP9kC,EAAyB,SAAA1I,GAAQ,MAAQ,CAClE8J,MAD0D9J,EAAL4I,MACxCE,QAAQiiB,QAAQI,KAC7BjqB,SAAU,WACViJ,KAAM,MAaO,SAAS69E,GAAc/nF,GAQb,IAPvBkvE,EAAUlvE,EAAVkvE,WAAU8Y,EAAAhoF,EACV+uE,iBAAS,IAAAiZ,EAAG,IAAI9nF,KAAM8nF,EACtBC,EAAajoF,EAAbioF,cACAC,EAAWloF,EAAXkoF,YAAWC,EAAAnoF,EACXR,YAAI,IAAA2oF,EAAG,GAAEA,EAAAC,EAAApoF,EACToJ,gBAAQ,IAAAg/E,EAAG,OAAMA,EACjBC,EAASroF,EAATqoF,UAEAC,EC9Ba,SAAsBpZ,EAAkBH,GACrD,IAAMwZ,EAAgB,IAAIroF,KAAKgvE,GAAYD,UAC3C/yE,EAAkCC,mBAASosF,EAAgBxZ,EAAUE,WAAU7yE,EAAAC,YAAAH,EAAA,GAAxEssF,EAASpsF,EAAA,GAAEqsF,EAAYrsF,EAAA,GAoB9B,OAlBAS,qBAAU,WACR,IAAMkxC,EAAW6nC,aAAY,WAC3B6S,EAAaF,GAAgB,IAAIroF,MAAO+uE,aACvC,KAEH,OAAO,kBAAMhhC,cAAcF,MAC1B,CAACw6C,IAEoB,SAACC,EAAmBE,GAO1C,MAAO,CALMpZ,KAAKG,MAAM+Y,EAAS,OACnBlZ,KAAKG,MAAO+Y,EAAS,MAAwB,MAC3ClZ,KAAKG,MAAO+Y,EAAS,KAAmB,KACxClZ,KAAKG,MAAO+Y,EAAS,IAAkB,MAKlDG,CAAgBH,EAAWzZ,EAAUE,WDQJ2Z,CAAa1Z,EAAYH,GAAU8Z,EAAAxsF,YAAAisF,EAAA,GAApE9Y,EAAIqZ,EAAA,GAAElZ,EAAKkZ,EAAA,GAAEhZ,EAAOgZ,EAAA,GAAEC,EAAOD,EAAA,GACpC3sF,EAA0BC,mBAAiB,KAARwzE,EAAyB,GAAVE,EAAeiZ,GAAQ1sF,EAAAC,YAAAH,EAAA,GAAlEQ,EAAKN,EAAA,GACN2sF,GADgB3sF,EAAA,GACG,KAARuzE,EAAyB,GAAVE,EAAeiZ,GAEzCE,EAAW,WACf,OAAID,EAAWb,EAAoB,CAAEr+E,MAAO,UAAWo/E,UAAW,WAC9DF,EAAWd,EAAsB,CAAEp+E,MAAO,UAAWo/E,UAAW,WAE7D,CAAEp/E,MAAO,UAAWo/E,UAAW,YAQxC,OAJApsF,qBAAU,WACJ2yE,EAAOG,EAAQE,EAAUiZ,GAAW,GAAGT,MAC1C,CAACS,IAGFxqF,eAACC,IAAG,CAAC0C,SAAS,WAAWmJ,QAAQ,cAAatM,SAAA,CAC5CF,cAACiqF,GAAiB,CAChBlpF,QAAQ,cACRH,GAAI,CAAEqL,MAAOm/E,IAAWC,WACxBzpF,KAAMA,EACN0pF,UAAW,EACXxsF,MAAO,MAETkB,cAACkqF,GAAkB,CACjBnpF,QAAQ,cACRjC,MAAQqsF,EAAWrsF,EAAS,IAC5B8B,GAAI,CAAEqL,MAAOm/E,IAAWn/E,OACxBrK,KAAMA,IAER5B,cAACW,IAAG,CACF4L,IAAK,EACLD,KAAM,EACNw1C,OAAQ,EACRxyC,MAAO,EACPjM,SAAS,WACTmJ,QAAQ,OACRjL,WAAW,SACXutB,eAAe,SAAQ5uB,SAEvBQ,eAACI,IAAU,CAACF,GAAI,CAAE4K,SAAUA,GAAYuC,UAAU,MAAM9B,MAAM,gBAAe/L,SAAA,CAC1E+xE,EAAQl5C,WAAWwyD,SAAS,EAAG,KAAK,IAAEL,EAAQnyD,WAAWwyD,SAAS,EAAG,a,cE3EhFjsD,GAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAmCkBuH,YAAO8jB,KAAP9jB,EAAa,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,MAAQ,CAC7CuF,SAAU,SACVjN,SAAU,WACViM,MAAO,GACP/C,IAAK,IACL8C,OAAQ,GACRkB,UAAWxF,EAAMyF,cAAcm0C,IAC/Bh5C,aAAcZ,EAAMa,MAAMC,eAC1B6E,OAAQ,oBACRwd,SAAU,QAOG,SAASs9D,KACHniE,eAAXizC,OADiC,IAADn6D,EAEhC6lF,EAAe3+C,eAAf2+C,WACR1zD,EAAsCC,YAGnC,qBAAsB,CAAEhI,MAAO,KAAM+jD,IAAK,OAAO97C,EAAA/1B,YAAA61B,EAAA,GAH7Cm3D,EAAWj3D,EAAA,GAAEk3D,EAAcl3D,EAAA,GAIlCl2B,EAAwBC,oBAAkB,GAAMC,EAAAC,YAAAH,EAAA,GAAzC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GACZwiB,EAAaF,cAAbE,SACF4c,EAAWC,cAGjB5+B,qBAAU,WAQR,OAPU,OAAV+oF,QAAU,IAAVA,KAAYj+B,GAAG,mBAAmB,SAAC4hC,GAEjC,IAAMC,EAAUzZ,aAAQ,IAAI7vE,KAAQqpF,GAAMta,UAC1Cqa,EAAe,CAAEn/D,OAAO,IAAIjqB,MAAO+uE,UAAWf,IAAKsb,IACnDz5D,GAAQ,MAGH,WACK,OAAV61D,QAAU,IAAVA,KAAY6D,IAAI,sBAEjB,IAEH,IAIMC,EAAW,kBAAA3pF,KAAAokC,aAAAjH,KAAAiE,MAAG,SAAAiD,IAAA,OAAAlH,KAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAClB7J,GAAQ,GACRu5D,EAAe,CAAEn/D,MAAO,KAAM+jD,IAAK,OACnC1yC,EAASmuD,KAAUC,aAAa,wBAAAtlD,EAAAzC,UAAAuC,QACjCM,MAAA,KAAAriC,YAGD,OAAKgnF,EAAYl/D,OAASk/D,EAAYnb,KAAM,IAAIhuE,MAAO+uE,UAAkBrxE,cAAAC,WAAA,IAGvES,eAACC,KAAG,CAAAT,SAAA,CACFQ,eAACU,KAAK,CAACqB,UAAU,MAAMpB,IAAI,MAAME,WAAY,SAASrB,SAAA,EAClD8gB,GACAtgB,eAACI,IAAU,CAACC,QAAQ,QAAQH,GAAI,CAAEqL,MAAO,WAAY/L,SAAA,CAAC,sBACnC,SAGrBF,cAACmqF,GAAc,CACbvoF,KAAM,GACN4J,SAAU,SACV8lE,WAAY,IAAIhvE,KAAKmpF,EAAYnb,KACjCa,UAAW,IAAI7uE,KAAKmpF,EAAYl/D,OAChC89D,cAAe,IACfC,YAAa,GACbG,UAAWqB,OAGf9rF,cAACiuB,KAAM,CAACjH,KAAMA,EAAMtlB,WAAS,EAACwsB,SAAS,KAAIhuB,SACzCF,cAACmuB,KAAa,CAACvtB,GAAI,CAAEiN,EAAG,GAAI3N,SAC1BQ,eAAC4+C,KAAgB,CACf32C,IAAI,gDACJ6d,MAAM,iBACN+4B,aAAc,IAAIr/C,SAAA,CAElBF,cAACW,KAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQsiB,eAAgB,OAAQ5uB,SAClDF,cAACmqF,GAAc,CACb7Y,WAAY,IAAIhvE,KAAKmpF,EAAYnb,KACjCa,UAAW,IAAI7uE,KAAKmpF,EAAYl/D,OAChC89D,cAAe,IACfC,YAAa,GACbG,UAAWqB,MAIf9rF,cAACc,IAAU,CAACC,QAAQ,YAAY03C,WAAS,EAAAv4C,SAAC,kEAI1CQ,eAACI,IAAU,CAACC,QAAQ,QAAOb,SAAA,CAAC,qCACGuwB,aAAM,IAAInuB,KAAKmpF,EAAYnb,KAAM,SAAS,OAEzEtwE,cAACc,IAAU,CAACC,QAAQ,QAAQC,cAAY,EAAAd,SAAC,6GAKzCF,cAACW,KAAG,CAAAT,SACFF,cAAC+uB,KAAM,CAACntB,KAAK,QAAQb,QAAQ,YAAY4jB,QA7DjC,WAClBwN,GAAQ,IA4DgEjyB,SAAC,kC,kCClH9D+rF,GApBa,WAC1B,IAAA3tF,EAAgCC,mBAAkC,IAAGC,EAAAC,YAAAH,EAAA,GAA9DkmB,EAAQhmB,EAAA,GAAE0tF,EAAW1tF,EAAA,GACpB6b,EAAWyhB,eAAXzhB,OAaR,OAXApb,qBAAU,WACR,KAAe,OAAXob,GAAqC,IAAlBA,EAAO3V,QAAgB8f,EAAS9f,OAAS,GAAhE,CAEA,IAAIynF,EAAuC,GAC3C9xE,EAAOvY,KAAI,SAACs6B,GACV+vD,EAAcA,EAAYlrF,OAAM2W,aAAKwkB,EAAM5X,cAGzC2nE,EAAYznF,OAAS,GAAGwnF,EAAYC,MACvC,CAAC9xE,IAEG,CACLmK,a,cCnBJ8a,GAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EA6CA,IAMMuwB,GAAYhpB,YAAOg3C,KAAPh3C,EAAe,SAAArK,GAAA,IAAA2B,EAAG4I,EAAKvK,EAALuK,MAAK,OAAA5I,EAAA,CACvCoO,UAAW,OACXkyC,eAAgB,YAChB2pC,qBAAsB,YACtBtgF,gBAAiB4D,YAAM3E,EAAME,QAAQc,WAAWmrE,QAAS,MAAKl4E,aAAAmD,EAC7D4I,EAAMoB,YAAYC,GAAG,MAAQ,CAC5BzI,MAAM,eAAD1C,OAAiBorF,IAAgB,SACvCrtF,aAAAmD,EAAC,SACM,KAAIA,KAGRmqF,GAAezhF,YAAO0hF,KAAP1hF,EAAgB,SAAAzI,GAAA,IAAG2I,EAAK3I,EAAL2I,MAAK,OAAA/L,aAAA,CAC3C64B,UAfoB,IAgBnB9sB,EAAMoB,YAAYC,GAAG,MAAQ,CAC5ByrB,UAhBmB,GAiBnBnsB,QAASX,EAAMO,QAAQ,EAAG,QAUf,SAASkhF,GAAeh/E,GAA2C,IAADE,EAAvC++E,EAAaj/E,EAAbi/E,cAChC7O,EAAeoB,KAAfpB,WACR1/B,EAA4D70B,eAApD1J,EAAOu+B,EAAPv+B,QAASyJ,EAAkB80B,EAAlB90B,mBAAoBwO,EAAUsmB,EAAVtmB,WAAY0kC,EAAMpe,EAANoe,OACzC93C,EAAaynE,KAAbznE,SACFyF,EAAWb,IACTo0B,EAAqBC,aAAmB,CAAEC,kBAAmB,CAACC,KAAWojB,aAAzEvjB,iBACFzyC,EAAQgW,cACRy+D,EAAUv+D,aAAclW,EAAMoB,YAAY+U,KAAK,MAC/CwrE,EAAkBzrE,aAAclW,EAAMoB,YAAYC,GAAG,MAW3D,MAVsB,CAAC+qB,KAAWyiD,SAASr6E,SAAgB,OAAPogB,QAAO,IAAPA,OAAO,EAAPA,EAASuX,YAYzDl3B,cAAC6zB,GAAS,CAAA3zB,SACRF,cAACW,IAAG,CAACC,GAAI,CAAEiN,EAAG,GAAKskD,GAAI,KAAMjyD,SAC3BF,cAAC+uB,KAAM,CAAChuB,QAAQ,WAAWkL,MAAM,QAAQ0Y,QAZ/B,kBAAAjX,KAAA64B,aAAAjH,KAAAiE,MAAG,SAAAiD,IAAA,OAAAlH,KAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,cAAA0K,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAEL,OAANsgC,QAAM,IAANA,OAAM,EAANA,IAAW,KAAD,EAEhB/yD,OAAOie,SAAS4xC,SAAS1yB,EAAA1K,KAAA,eAAA0K,EAAA3C,KAAA,EAAA2C,EAAA6D,GAAA7D,EAAA,iCAAAA,EAAAzC,UAAAuC,EAAA,mBAE5BM,MAAA,KAAAriC,YAMsEvE,SAAC,oBAQtEF,cAAC6zB,GAAS,CACRjzB,GAAE7B,YAAA,GACI6+E,GAAc,CAChBj6E,MAAO,CAAEgpF,GAAG,eAAD1rF,OAhEE,IAgE6B,UAE5Cf,SAEFQ,eAAC4rF,GAAY,CAAApsF,SAAA,CACXF,cAAC8mB,KAAO,CAACnjB,MAAM,OAAMzD,SACnBF,cAAC8zB,KAAU,CAACnP,QAAS8nE,EAAe7rF,GAAI,CAAE4vB,GAAI,EAAGvkB,MAAO,gBAAiB/L,SACvEF,cAACk7B,KAAI,CAAC9N,KAAMw/D,WAIhB5sF,cAACW,IAAG,CAACC,GAAI,CAAE0jB,SAAU,KACrBtkB,cAACwrF,GAAe,IAChBxrF,cAAC+oF,GAAW,CAACvJ,SAAS,IAEtB9+E,eAACU,KAAK,CAACqB,UAAU,MAAMlB,WAAW,SAAS+J,QAAS,CAAE+iB,GAAI,EAAGC,GAAI,KAAMpuB,SAAA,CACpE+pB,EAAS4iE,mCAAqC,GAC7C7sF,cAACymB,KAAO,CAACD,MAAM,6EAAsEtmB,SACnFQ,eAACiuB,KAAI,CAAC/tB,GAAI,CAAEiN,EAAG,WAAY+uB,EAAG,EAAG35B,UAAW,UAAW/C,SAAA,CACrDF,cAAC8mB,KAAO,CAACnjB,MAAM,SAAQzD,SACrBQ,eAACU,KAAK,CAACqB,UAAU,MAAMqsB,eAAe,SAASvtB,WAAW,SAAS+J,QAAQ,MAAKpL,SAAA,CAC9EF,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAC,2BAC9BF,cAACqtB,KAAI,CAACzsB,GAAI,CAAEgI,OAAQ,OAAQjF,MAAO,OAAQsI,MAAOlB,EAAME,QAAQ4B,KAAK,aAGzE7M,cAACukB,KAA6B,CAACC,SAAUA,EAAU3lB,KAAK,yBAAkBqB,SACvE,SAACykB,GAAO,OACP3kB,cAAC+uB,KAAM,CAACpK,QAASA,EAAQzkB,SACvBF,cAAC0/C,KAAS,CACR/oB,MAAO1M,EAAS6iE,aAAa/zD,WAC7B9N,UAAWC,KAAUC,kBAQlCyM,GACCl3B,eAAAT,WAAA,CAAAC,SAAA,CACGwsF,GAAmB1sF,cAAC8oF,GAAiB,IACtC9oF,cAACymB,KAAO,CAACD,MAAM,uDAAmDtmB,SAChEF,cAAC+sF,KAAU,CAAC9gF,MAAM,iBAIvBuxC,GAAoBx9C,cAACkpF,GAAa,IAEnClpF,cAACwkF,GAAY,CAAChF,QAASA,IACtBhiC,GAAoBx9C,cAAC2lF,GAAgB,CAACnG,QAASA,IAC/ChiC,GAAoBx9C,cAAC+nF,GAAoB,CAACvI,QAASA,IACpDx/E,cAACqlF,GAAU,CAAC7F,QAASA,IAErBx/E,cAACs/E,GAAc,CAACE,QAASA,Y,kHChI7BwN,IAfqBniF,aAAO,SAACjN,GAAK,OACtCoC,cAACitF,KAAaluF,YAAA,CAACmuF,eAAa,EAACxrC,gBAAc,GAAK9jD,MADvBiN,EAExB,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,OAAAhM,wBAAA,GACNgM,EAAMI,WAAWgiF,UAAQ,IAC5BzpF,UAAWqH,EAAMO,QAAQ,GACzBe,aAActB,EAAMO,QAAQ,GAC5BD,YAAaN,EAAMO,QAAQ,GAC3BW,MAAOlB,EAAME,QAAQb,KAAK8iB,aAQNriB,YAAOi2C,KAAPj2C,EAA2C,SAAA1I,GAAA,IAAG4I,EAAK5I,EAAL4I,MAAK,OAAAhM,wBAAA,GACpEgM,EAAMI,WAAWg8C,OAAK,IACzBv+C,OAAQ,GACRvF,SAAU,WAEVgI,YAAaN,EAAMO,QAAQ,GAC3B+Y,aAActZ,EAAMO,QAAQ,KAC5BW,MAAOlB,EAAME,QAAQb,KAAK8B,UAC1B,WAAY,CACVK,IAAK,EACL+C,MAAO,EACP3L,MAAO,EACPm+C,OAAQ,EACRt5C,QAAS,KACTgE,QAAS,OACTnJ,SAAU,WACV+pF,oBAAqB,EACrBC,uBAAwB,EACxBvhF,gBAAiBf,EAAME,QAAQiiB,QAAQI,YAIrCggE,GAAoBziF,YAAO0iF,KAAP1iF,EAAqB,SAAAzI,GAAQA,EAAL2I,MAAK,MAAQ,CAC7DpH,MAAO,GACPiF,OAAQ,GACR4D,QAAS,OACTjL,WAAY,SACZutB,eAAgB,aASlB,SAAS0+D,GAAWlgF,GAA4C,IAAzC2K,EAAI3K,EAAJ2K,KAAM/X,EAAQoN,EAARpN,SAAUU,EAAE0M,EAAF1M,GAGrC,OAAOqX,EAAK6nD,eACV9/D,cAACgtF,GAAa,CAACroE,QAHU,WAAH,OAASpb,OAAOyd,KAAK/O,EAAK2sB,OAGJhkC,GAAE7B,YAAA,GAAO6B,GAAKV,SACvDA,IAGHF,cAACgtF,GAAa,CAACj/E,UAAWguD,IAAYlM,GAAI53C,EAAK2sB,KAAMhkC,GAAE7B,YAAA,GAAO6B,GAAKV,SAChEA,IAsBP,SAASutF,GAAOjgF,GAA0E,IAAvEyK,EAAIzK,EAAJyK,KAAMy1E,EAAMlgF,EAANkgF,OACjB3iF,EAAQgW,cACNoE,EAAaC,cAAbD,SACAqB,EAAsDvO,EAAtDuO,MAAOoe,EAA+C3sB,EAA/C2sB,KAAMxX,EAAyCnV,EAAzCmV,KAAM+L,EAAmClhB,EAAnCkhB,KAAMj5B,EAA6B+X,EAA7B/X,SAC3BytF,GADwD11E,EAAnB6nD,iBACtBl7B,KAASgpD,YAAU,CAAEhpD,OAAM0rC,KAAK,GAASnrD,IAGxD0oE,EAA8B,OAAR3tF,QAAQ,IAARA,OAAQ,EAARA,EAAU0qB,MACpC,SAACk2C,GAAK,OACC,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOjvB,aAAkB,OAALivB,QAAK,IAALA,OAAK,EAALA,EAAOl8B,SAAUgpD,YAAU,CAAEhpD,KAAMk8B,EAAMl8B,KAAM0rC,KAAK,GAASnrD,MAI/E2oE,EAAuB,OAAR5tF,QAAQ,IAARA,OAAQ,EAARA,EAAU0qB,MAC7B,SAACk2C,GAAK,OAAU,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOl8B,SAAUgpD,YAAU,CAAEhpD,KAAMk8B,EAAMl8B,KAAM0rC,KAAK,GAASnrD,MAG1E7mB,EAAwBC,mBAASovF,GAAanvF,EAAAC,YAAAH,EAAA,GAAvC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GAMduvF,EAAkB,CACtB9hF,MAAO,eACPwwB,WAAY,mBACZxP,QAASvd,YAAM3E,EAAME,QAAQiiB,QAAQI,KAA6C,EAAvCviB,EAAME,QAAQ8G,OAAOi8E,iBAChE,WAAY,CAAExhF,QAAS,UAGnByhF,EAAkB,CACtBhiF,MAAO,gBAGHiiF,EAAkB,CACtBjiF,MAAO,eACPwwB,WAAY,mBACZxP,QAASvd,YAAM3E,EAAME,QAAQiiB,QAAQI,KAA6C,EAAvCviB,EAAME,QAAQ8G,OAAOi8E,kBAG5DG,EAAiB,CACrBliF,MAAO,eACPwwB,WAAY,mBACZ,WAAY,CAAEjwB,QAAS,UAGnB4hF,EAAiB,CACrBnhE,QAASvd,YAAM3E,EAAME,QAAQiiB,QAAQI,KAAMviB,EAAME,QAAQ8G,OAAOi8E,kBA4BlE,OAAY,OAAR9tF,QAAQ,IAARA,OAAQ,EAARA,EAAU41C,MAAK,SAACgrB,GAAU,OAAKA,EAAMjvB,cAErCnxC,eAAAT,WAAA,CAAAC,SAAA,CACEQ,eAACssF,GAAa,CACZroE,QA5DW,WACjBwN,GAASnL,IA4DHpmB,GAAE7B,YAAA,GA7BJ4uF,EAEKI,EACEF,EAELH,GAEK1mE,EAAOknE,EAGPH,EAGJ,MAkBC7tF,SAAA,CAEFF,cAACstF,GAAiB,CAAC1sF,GAAE7B,YAAA,GAAQ8uF,GAAuBI,GAAmB/tF,SACpEktB,GAAQA,IAGVsgE,GACChtF,eAAAT,WAAA,CAAAC,SAAA,CAEEF,cAAC05B,KAAY,CAAC+4B,mBAAiB,EAACvlC,QAAS1G,EAAO5lB,GAAI,CAAE8L,WAAY,YACjEysB,GAAQA,EACTn5B,cAACW,IAAG,CACFoN,UAAWmtB,KACX9N,KAAMpG,EAAOqnE,KAAuBC,KACpC1tF,GAAI,CAAE+C,MAAO,GAAIiF,OAAQ,GAAIyH,GAAI,WAMxCq9E,GACC1tF,cAACs8C,KAAQ,CACPC,GAAIv1B,EACJwtC,QAAQ,OACR+5B,eAAa,EACb3tF,GAAE7B,YAAA,GAAQ8uF,GAAuBO,GAAkBluF,SAEnDF,cAACmoC,KAAI,CAACp6B,UAAU,MAAMi3E,gBAAc,EAAA9kF,SACjCA,EACEf,QAAO,SAAC8Y,GAAI,OAAKA,EAAK45B,aACtB/vC,KAAI,SAACmW,GACJ,IAAQuO,EAAgBvO,EAAhBuO,MAAOoe,EAAS3sB,EAAT2sB,KACT4pD,IAAc5pD,KAASgpD,YAAU,CAAEhpD,OAAM0rC,KAAK,GAASnrD,GAE7D,OACEzkB,eAAC8sF,GAAW,CAEVv1E,KAAMA,EACNrX,GAAE7B,YAAA,GACIyvF,GAAeL,GACnBjuF,SAAA,CAEFF,cAACstF,GAAiB,CAAAptF,SAChBF,cAACW,IAAG,CACFoN,UAAU,OACVnN,GAAE7B,YAAA,CACA4E,MAAO,EACPiF,OAAQ,EACR4D,QAAS,OACTb,aAAc,MACdpK,WAAY,SACZutB,eAAgB,SAChB7B,QAAS,gBACTiH,WAAY,SAACnpB,GAAK,OAAKA,EAAM0jF,YAAYluD,OAAO,eAC5CiuD,GAAe,CACjBj/E,UAAW,WACX0d,QAAS,qBAKjBjtB,cAAC05B,KAAY,CAAC+4B,mBAAiB,EAACvlC,QAAS1G,MAzBpCA,aAqCvB9lB,eAAC8sF,GAAW,CACVv1E,KAAMA,EACNrX,GAAE7B,YAAA,GAzFA4uF,GAAgBG,EAEXC,EAEF,MAuFH7tF,SAAA,CAEFF,cAACstF,GAAiB,CAAC1sF,GAAE7B,YAAA,IAAS4uF,GAAgBG,IAAiBG,GAAmB/tF,SAC/EktB,GAAQA,IAEVsgE,GACChtF,eAAAT,WAAA,CAAAC,SAAA,CAEEF,cAAC05B,KAAY,CAAC+4B,mBAAiB,EAACvlC,QAAS1G,EAAO5lB,GAAI,CAAE8L,WAAY,YACjEysB,GAAQA,QAYJ,SAASu1D,GAAUhhF,GAA2D,IAAxDihF,EAASjhF,EAATihF,UAASC,EAAAlhF,EAAEggF,cAAM,IAAAkB,GAAOA,EAAK7/E,EAAKc,aAAAnC,EAAAoC,IACrE,OACE9P,cAACW,IAAG5B,wBAAA,GAAKgQ,GAAK,IAAA7O,SACZF,cAACmoC,KAAI,CAAC68C,gBAAc,EAAA9kF,SACjByuF,EACExvF,QAAO,SAACy9C,GAAC,OAAKA,EAAE/K,aAChB/vC,KAAI,SAACmW,GACJ,OAAOjY,cAACytF,GAAO,CAAkBx1E,KAAMA,EAAMy1E,OAAQA,GAAhCz1E,EAAKuO,e,kCC9RvB,SAASqoE,KAKtB,OAJA5vF,qBAAU,cAEP,IAGDe,cAAC2nE,IAAM,CAAAznE,SAEHF,cAAAC,WAAA,CAAAC,SACEF,cAAA,UACEwuB,IAAI,yDACJ,gBAAc,QACd7rB,KAAK,kBACL,eAAa,QACb,qBAAmB,6CAkBxB,SAASmsF,KACd,OACE9uF,cAAA,UACEsS,GAAG,aACHozB,UAAU,uBACV1iC,MAAO,CACL+I,WAAY,OACZ2E,OAAQ,OACRzE,MAAO,UACP8iF,eAAgB,YAChBvjF,SAAU,QACVtL,SACH,8B,eC5CU,SAAS8uF,KA6BtB,OA5BA/vF,qBAAU,WACR,IAAMgwF,EAAe,qDAcrB,IALA,IAAIhrF,EAAI,EACJirF,GAAsB,EAEtBC,EAAcrmF,SAASsmF,qBAAqB,WAExCF,GAAuBjrF,GAAe,OAAXkrF,QAAW,IAAXA,OAAW,EAAXA,EAAazqF,SAAQ,CAAC,IAAD2qF,GACpC,QAAdA,EAAAF,EAAYlrF,UAAE,IAAAorF,OAAA,EAAdA,EAAgB7gE,OAAQygE,IAC1BC,GAAsB,GAGxBjrF,GAAQ,EAGLirF,GApBL,WACE,IAAII,EAAKxmF,SAASC,cAAc,UAChCumF,EAAG1nC,aAAa,MAAOqnC,GACvBK,EAAGC,QAAQC,sBAAwB,uCACnC1mF,SAAS2mF,KAAKt7B,YAAYm7B,GAiB1BI,KAED,IAGD1vF,cAACymB,KAAO,CAACD,MAAM,wCAA+BtmB,SAC5CQ,eAACquB,KAAM,CAAC,yBAAoBhuB,QAAQ,OAAMb,SAAA,CACxCF,cAAC2vF,KAAa,CAAC/uF,GAAI,CAAE2wC,YAAa,SAClCvxC,cAAA,KAAAE,SAAG,0BCJI,SAAS0vF,KACtB,IAAA1xC,EAAwC70B,eAElCY,GAFSi0B,EAAPv+B,SAESyJ,EAFkB80B,EAAlB90B,uBAIjB,OACE1oB,eAACC,KAAG,CAAAT,SAAA,CACFF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAE+pB,EAAS4uB,MAAMl3C,QAChDjB,eAACI,IAAU,CAACC,QAAQ,UAAUgN,UAAW,MAAM7N,SAAA,CAAC,qBACjCm4E,aAAYpuD,EAAS4uB,MAAMgiC,MAAO5wD,EAAS4uB,MAAMvmC,OAEhEtS,cAACc,IAAU,CAACC,QAAQ,UAAUgN,UAAW,MAAM7N,SAC7CF,cAAC2O,KAAI,CAACZ,UAAWguD,IAAY1R,UAAU,SAASwF,GAAI9xB,KAAeknB,QAAQ4qC,aAAa3vF,SAAC,0BAI3FF,cAAC8uF,GAAc,IACf9uF,cAACc,IAAU,CAACC,QAAQ,UAAUgN,UAAW,MAAM7N,SAC7CF,cAACgvF,GAAQ,S,0BCVXn7D,GAAYhpB,YAAO,MAAPA,EAAc,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,OAAA/L,aAAA,GACrC+L,EAAMoB,YAAYC,GAAG,MAAQ,CAC5B+X,WAAY,EACZ+P,WAAYnpB,EAAM0jF,YAAYluD,OAAO,QAAS,CAC5CmY,SAAU3tC,EAAM0jF,YAAY/1C,SAASo3C,eAKtBjlF,YAAO,MAAPA,EAAc,SAAAzI,GAAA,IAAG2I,EAAK3I,EAAL2I,MAAK,MAAQ,CACjDyB,QAAS,OACTjL,WAAY,SACZmK,QAASX,EAAMO,QAAQ,EAAG,KAC1BK,aAAcZ,EAAMa,MAAM+2C,eAC1B72C,gBAAiBf,EAAME,QAAQ4B,KAAK,WAQvB,SAASkjF,GAAgBziF,GAA4D,IAAzD0X,EAAa1X,EAAb0X,cAAeC,EAAc3X,EAAd2X,eAChDE,EAAaC,cAAbD,SACR6qE,EAAmD/vB,eAAlCQ,GAAFuvB,EAAPrwE,QAAkBqwE,EAATvvB,WAAWr3C,EAAkB4mE,EAAlB5mE,mBAC5B6mE,EACEjR,KADMpB,EAAUqS,EAAVrS,WAAYZ,EAAaiT,EAAbjT,cAAeC,EAAagT,EAAbhT,cAAeC,EAAgB+S,EAAhB/S,iBAAkBC,EAAY8S,EAAZ9S,aAAcC,EAAY6S,EAAZ7S,aAIlF9+E,EAAkCC,oBAAS,GAAKC,EAAAC,YAAAH,EAAA,GAAzC6S,EAAS3S,EAAA,GAAEixC,EAAYjxC,EAAA,GAE9BS,qBAAU,WAERwwC,GAAa,KACZ,IAEHxwC,qBAAU,WACJ+lB,GACFC,MAID,CAACE,IAEaiE,IAAjB,IAEM9C,EACJ5lB,eAACmmB,KAAS,CACRjmB,GAAI,CACF6L,UAAW,SACX7D,OAAQ,EACR,uBAAwB,CACtBA,OAAQ,EACR4D,QAAS,OACTlL,cAAe,WAEjBpB,SAAA,CAEFF,cAACoB,KAAK,CACJkK,QAAS,EACT1K,GAAE7B,wBAAA,CACAwzB,GAAI,IACJ4/B,GAAI,EACJ/jC,GAAI,GACAwvD,GAAc,CAChBr8E,WAAY,WACX,GAAF,CACDq4B,GAAI,IACJ15B,SAEFQ,eAACU,KAAK,CAACqB,UAAU,MAAMlB,WAAW,SAASutB,eAAe,gBAAe5uB,SAAA,CACvEF,cAACW,IAAG,CACFC,GAAI,CACF4L,QAAS,cACT5D,OAAQ,OACRkmB,eAAgB,SAChBvtB,WAAY,UACZrB,SAEFF,cAACkwF,KAAI,CACH1Q,QAAS5B,EACTh9E,GAAI,CACFgI,OAAQ,QAKd5I,cAAC8mB,KAAO,CAACnjB,MAAM,SAAQzD,UACnB09E,GACA59E,cAACymB,KAAO,CAACD,MAAM,qBAAiBtmB,SAC9BF,cAAC8zB,KAAU,CAACnP,QAASu4D,EAAiBh9E,SACnC88E,EAAgBh9E,cAACmwF,KAAe,IAAMnwF,cAACowF,KAAY,eAQhEpwF,cAAC0uF,GAAU,CAACC,UAAWluB,IAAaitB,QAAS9P,IAC7C59E,cAACW,IAAG,CAAC2jB,SAAU,KACbs5D,GACA59E,cAACoB,KAAK,CACJkK,QAAS,EACT/J,WAAW,SACXX,GAAI,CAAE2xB,GAAI,EAAGnE,GAAI,EAAGvtB,GAAI,GAAI8C,MAAO,EAAGV,UAAW,SAAUyJ,WAAY,UAAWxM,SAElFF,cAAC4vF,GAAM,SAMf,OACElvF,eAACmzB,GAAS,CACRjzB,GAAE7B,YAAA,CACA4E,MAAO,CACLgpF,GAAI/O,EAvHS,IADF,MA0HTZ,GAAiB,CACnB35E,SAAU,aAEZnD,SAAA,CAGFF,cAAC8mB,KAAO,CAACnjB,MAAM,OAAMzD,SACnBF,cAAC+mB,KAAM,CACLC,KAAMhC,EACNiC,QAAShC,EACT7U,WAAY,CACVxP,GAAI,CAAE+C,MArIG,IAqIkB0L,OAAQ,OACnCnP,SAEDomB,OAKHnV,GACAnR,cAAC8mB,KAAO,CAACnjB,MAAM,SAAQzD,SACrBF,cAAC+mB,KAAM,CACLC,MAAI,EACJjmB,QAAQ,aACRsvF,aAAclT,EACdmT,aAAclT,EACdhtE,WAAY,CACVxP,GAAE7B,YAAA,CACA4E,MAAOi6E,EArJA,IADF,IAuJLvuE,OAAQ,KACR6kB,WAAY,cACR+oD,GAAiB,CACnBxtE,YAAa,EACbgzC,eAAgB,YAChB2pC,qBAAsB,YACtB77E,UAAW,SAACxF,GAAK,OAAKA,EAAMyF,cAAcC,KAC1Cwc,QAAS,SAACliB,GAAK,OAAK2E,YAAM3E,EAAME,QAAQc,WAAWmrE,QAAS,SAGhEh3E,SAEDomB,S,uHChLAiqE,GAAqB,SAAH/vF,GAMC,IAL9Bi6E,EAASj6E,EAATi6E,UACAzK,EAAOxvE,EAAPwvE,QACAnb,EAAUr0D,EAAVq0D,WACAv5C,EAAM9a,EAAN8a,OACAiqD,EAAY/kE,EAAZ+kE,aAEA,OACEvlE,cAACwwF,KAAgB,CAACjkE,MAAOkuD,EAAWnK,IAAKN,EAASygB,WAAW,EAAKvwF,SAC/D,SAACyrF,EAAc+E,EAAqBC,GAAkB,OACrDjwF,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAAC4wF,KAAsB,CACrBrkE,MAAOkuD,EACPnK,IAAKN,EACL6gB,SAAS,EACTC,gBAAiBx1E,IAAWy1E,KAAc31D,MAAMl7B,SAE/C20D,EACC70D,cAACgxF,KAAuB,CACtBL,WAAW,EACXM,SAAS,EACTR,WAAW,EACX9E,KAAMA,EACN+E,WAAYA,IAGdhwF,eAAAT,WAAA,CAAAC,SAAA,CACG,KACCywF,GAAa97B,GACb70D,cAACc,IAAU,CAAAZ,SACTQ,eAACkzB,KAAK,CAAC7yB,QAAQ,QAAQkL,MAAM,OAAM/L,SAAA,CAAC,qBACfyrF,YAO9BrwE,IAAWy1E,KAAcG,MACxBlxF,cAAAC,WAAA,CAAAC,SACG20D,EACC70D,cAACooC,KAAc,CACb5hB,MAAOxmB,cAACmxF,KAAkB,CAAClvF,UAAU,EAAOqQ,GAAIizD,IAChDn4C,KAAMptB,cAACoxF,KAAQ,IAAIlxF,SAEnBQ,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAC1B,IACDF,cAAA,UAAAE,SAAQ,qBAAsB,8BAIlCF,cAACooC,KAAc,CAAC5hB,MAAM,GAAG4G,KAAMptB,cAACoxF,KAAQ,IAAIlxF,SAC1CF,cAACqxF,KAAmB,e,UCrEvB,SAASC,GAAmB9wF,GAA6C,IAA1CnC,EAAKmC,EAALnC,MACxCuU,GADmDpS,EAAJmC,KAC7B,uDAEtB,OAAQtE,EAAMokB,QACZ,KAAKiiD,KAAmB6sB,UACtB3+E,EAAU,mDACV,MACF,KAAK8xD,KAAmB8sB,QACtB5+E,EAAU,gEACV,MACF,KAAK8xD,KAAmB+sB,YACtB7+E,EAAU,4CACV,MACF,KAAK8xD,KAAmBS,eACtBvyD,EAAU,wDACV,MACF,KAAK8xD,KAAmBU,KACxB,KAAKV,KAAmBgE,oBACtB91D,EAAU,oCAId,OAAO5S,cAAC+sB,KAAK,CAACC,SAAS,QAAO9sB,SAAE0S,I,cCLtB8+E,GAAiB,SAAjBA,GAAiB,OAAjBA,IAAiB,mBAAjBA,IAAiB,uBAAjBA,IAAiB,6CAAjBA,EAAiB,KAsBd,SAASC,GAAqBnxF,GACzCA,EAAF8R,GAQsB,IAPtB3P,EAAInC,EAAJmC,KACAV,EAAQzB,EAARyB,SAEA5D,GADKmC,EAALgmB,MACKhmB,EAALnC,OAEA8S,GADO3Q,EAAPymB,QACSzmB,EAAT2Q,WACA0/B,EAASrwC,EAATqwC,UAEAvyC,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GAMpB,OAJAS,qBAAU,WACJZ,GAAO8zB,GAAQ,KAClB,CAAC9zB,IAGFqC,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAAC+uB,KAAM,CACLntB,KAAK,QACLb,QAAQ,YACRkL,MAAM,UACN0Y,QAAS,kBAAMwN,GAAQ,IACvBlwB,SAAUA,EACVrB,GAAI,CAAEC,GAAI,EAAG+4B,GAAI,GAAI15B,SAEpByC,IAAS+uF,GAAkBE,SAAW,aAAe,mCAGxD5xF,cAAC2wC,KAAa,CACZ3pB,KAAMA,EACN4pB,SAAU,kBAAMze,GAAQ,IACxB0e,UAAWA,EACX1/B,UAAWA,EAAUjR,SAEpByC,IAAS+uF,GAAkBE,SACxB,qCACA,8DClCG,SAASC,GAAmBrxF,GAA6C,IAA1CyB,EAAQzB,EAARyB,SACtCwe,GADuDjgB,EAAPymB,QACrCrG,eACT0rB,EAAoBC,eAApBD,gBACRhuC,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GACpB2tC,EAA2CzrB,aAAY,SAAC7O,GAAgB,OAAKA,EAAMuL,gBAA3EjM,EAASg7B,EAATh7B,UAAW9S,EAAK8tC,EAAL9tC,MAAO+e,EAAY+uB,EAAZ/uB,aAkB1B,OAJAne,qBAAU,WACJZ,GAAO8zB,GAAQ,KAClB,CAAC9zB,IAGFqC,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAAC+uB,KAAM,CACLntB,KAAK,QACLb,QAAQ,WACRkL,MAAM,UACN0Y,QAAS,kBAAMwN,GAAQ,IACvBlwB,SAAUA,EAAS/B,SACpB,4BAGDF,cAAC2wC,KAAa,CACZ3pB,KAAMA,EACN7V,UAAWA,EACX0/B,UA9Bc,WAAO,IAADihD,EACxBrxE,EACE+kD,aACEpoD,EAAc9K,GACO,QADLw/E,EAChB10E,EAAcV,eAAO,IAAAo1E,OAAA,EAArBA,EAAuBx/E,GAFzBkzD,EAGE,WACAl5B,EAAgB,yBAAuB,CAAEvrC,QAAS,iBAyBlD6vC,SAAU,kBAAMze,GAAQ,IAAOjyB,SAE/BF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAC,uF,sCCxFpCo/B,GAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EA4Be,SAASyuF,GAAkBvxF,GAAsD,IAAD2B,EAAlD6vF,EAAMxxF,EAANwxF,OAAQ7gF,EAAS3Q,EAAT2Q,UAAWmB,EAAE9R,EAAF8R,GACtDqN,EAAY0J,eAAZ1J,QACAsyE,EAAqBC,eAArBD,iBACFxxE,EAAWG,cACTxD,EAAiBsD,aAAY,SAAC7O,GAAgB,OAAKA,EAAMuL,gBAAzDA,aA0BR,OAAc,MAAV40E,EAAuBhyF,cAAAC,WAAA,IAGzBD,cAAC+uB,KAAM,CACL9sB,SAAUkP,EACVwT,QAAS,kBA7BK,kBAAAxiB,KAAAokC,aAAAjH,KAAAiE,MAAG,SAAAiD,IAAA,OAAAlH,KAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OACnBvb,EACEilD,aAAsB,CACpB/3C,UAAiB,OAAPhO,QAAO,IAAPA,OAAO,EAAPA,EAASgO,WAAY,GAC/BD,WAAkB,OAAP/N,QAAO,IAAPA,OAAO,EAAPA,EAAS+N,YAAa,GACjCoxB,OAAc,OAAPn/B,QAAO,IAAPA,OAAO,EAAPA,EAASm/B,QAAS,GACzBqzC,YAAkB,OAANH,QAAM,IAANA,OAAM,EAANA,EAAQI,aAAc,GAClCC,YAAkB,OAANL,QAAM,IAANA,OAAM,EAANA,EAAQM,aAAc,GAClChgF,GAAIA,GANNozD,EAOG,SAACh7D,GAKF,GAHAnB,OAAOyd,KAAKtc,GACZunF,GAA6B,OAAZ70E,QAAY,IAAZA,OAAY,EAAZA,EAAc9K,GAAGymB,aAAc,IAEV,KAAtB,OAAZ3b,QAAY,IAAZA,OAAY,EAAZA,EAAc2mD,oBAAsC,OAAZ3mD,QAAY,IAAZA,OAAY,EAAZA,EAAcm1E,UAAU,CAClE,IAAMrzE,EAASm7C,aAAkC,OAAZj9C,QAAY,IAAZA,OAAY,EAAZA,EAAc9K,IAAI,GAEvDmO,EAASq5C,aAAU56C,IACnBuB,EAASm5C,aAAc16C,SAG3B,wBAAAwnB,EAAAzC,UAAAuC,QACHM,MAAA,KAAAriC,WAOkB+tF,IACf5wF,KAAK,QACLb,QAAQ,YACRkL,MAAM,UAAS/L,SAChB,mB,6ECjCU,SAASuyF,GAAmBjyF,GAA+C,IAA5C8R,EAAE9R,EAAF8R,GAAIogF,EAASlyF,EAATkyF,UAC1CjyE,EAAWG,cACjBtiB,EAAgCC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAxCy3B,EAASv3B,EAAA,GAAEm0F,EAAUn0F,EAAA,GAC5BirB,EAAsClrB,mBAAS,IAAGmrB,EAAAjrB,YAAAgrB,EAAA,GAA3CmpE,EAAWlpE,EAAA,GAAEmpE,EAAcnpE,EAAA,GAC1BopE,EAAsBzpE,eAAtBypE,kBAER7zF,qBAAU,WACJ82B,GACFtV,EACEmoD,aAAgBt2D,EAAhBs2D,EAAoB,SAACpgE,GACnBqqF,EAAetqF,aAAkBC,UAGtC,CAACutB,IAMJ,OACE/1B,cAACW,KAAG,CAAAT,SACFF,cAACyhD,IAAS,CAACvzB,SAAS,KAAIhuB,SACtBQ,eAACynC,KAAI,CAAAjoC,SAAA,CACHF,cAACm3C,KAAmB,CAClB3wB,MACE9lB,eAACI,IAAU,CAACC,QAAQ,YAAWb,SAAA,CAAC,2CACc,OAATwyF,QAAS,IAATA,OAAS,EAATA,EAAWrqF,cAAc,uBAKlErI,cAACooC,KAAc,CACbhb,KAAMptB,cAACgpE,KAAO,IACdxiD,MACE9lB,eAACI,IAAU,CAACC,QAAQ,YAAWb,SAAA,CAAC,qBACd,IAChBF,cAACc,IAAU,CAACC,QAAQ,YAAYgN,UAAU,OAAO9B,MAAM,QAAO/L,SAC3D4yF,EAA2B,OAATJ,QAAS,IAATA,OAAS,EAATA,EAAWpqF,oBAGnCpI,SAEDQ,eAACI,IAAU,CAACC,QAAQ,QAAOb,SAAA,CAAC,+PAG4C,IACtEF,cAAA,UAAAE,SAAkB,OAATwyF,QAAS,IAATA,OAAS,EAATA,EAAW1qF,SAAgB,qCAAmC,IACvEhI,cAAA,UAAAE,SAAkB,OAATwyF,QAAS,IAATA,OAAS,EAATA,EAAWtqF,SAAgB,UAAQ,SAIhDpI,cAACooC,KAAc,CAAC5hB,MAAM,6BAA0B4G,KAAMptB,cAAC+yF,KAAkB,IAAI7yF,SAC3EF,cAACg3B,KAAW,CAACp1B,KAAK,QAAO1B,SACvBF,cAAC80B,KAAgB,CACfC,QAAS/0B,cAACg1B,KAAQ,CAACC,QAASc,EAAWpR,QAvCjC,WAClBguE,GAAY58D,MAuCAp0B,MAAO3B,cAACgzF,GAAuB,UAKpCj9D,GACCr1B,eAAC0nC,KAAc,CAAC5hB,MAAM,sCAAsC4G,KAAMptB,cAACizF,KAAI,IAAI/yF,SAAA,CACzEF,cAACW,KAAG,CACFC,GAAI,CACF4L,QAAS,OACT,QAAS,CAAEA,QAAS,QACpB,UAAW,CAAE7I,MAAO,IACpB,YAAa,CAAE6I,QAAS,SACxBtM,SAEFF,cAAC6O,KAAQ,CAAC3O,SAAU0yF,MAEtB5yF,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAC,2IAI9BF,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAC,kWASlCQ,eAACqsB,KAAK,CAACC,SAAS,OAAM9sB,SAAA,CACpBF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,qBAA6B,6IAUlE,IAAM8yF,GAA0B,WACrC,IAAAnpE,EAAwBtrB,oBAAS,GAAMurB,EAAArrB,YAAAorB,EAAA,GAAhC7C,EAAI8C,EAAA,GAAEqI,EAAOrI,EAAA,GAMduM,EAAc,WAClBlE,GAAQ,IAGV,OACEzxB,eAAAT,WAAA,CAAAC,SAAA,CACEQ,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAAC,kEACoC,IAChEF,cAAC+uB,KAAM,CAAChuB,QAAQ,OAAO4jB,QAZV,WACjBwN,GAAQ,IAWuCjyB,SAAC,qDAElC,IAAI,uBAGhBQ,eAACutB,KAAM,CAACjH,KAAMA,EAAK9mB,SAAA,CACjBF,cAACq3B,KAAoB,CACnB/kB,GAAG,MACHkU,MAAM,uCACNS,QAASoP,IAEX31B,eAACytB,KAAa,CAAAjuB,SAAA,CACZF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,4DAGhCQ,eAACI,IAAU,CAACC,QAAQ,QAAQC,cAAY,EAAAd,SAAA,CAAC,sNAIvCF,cAAA,SAAM,oIAGNA,cAAA,SAAM,kIAIRA,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,yDAIhCQ,eAACI,IAAU,CAACC,QAAQ,QAAQC,cAAY,EAAAd,SAAA,CAAC,8LAGvCF,cAAA,SAAM,8HAKRA,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,gDAEhCF,cAACc,IAAU,CAACC,QAAQ,QAAQC,cAAY,EAAAd,SAAC,6dASzCF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,mCAEhCQ,eAACI,IAAU,CAACC,QAAQ,QAAQC,cAAY,EAAAd,SAAA,CAAC,4LAGvCF,cAAA,SAAM,yEAGRA,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,kCAEhCF,cAACc,IAAU,CAACC,QAAQ,QAAQC,cAAY,EAAAd,SAAC,yGAIzCF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,mCAEhCQ,eAACI,IAAU,CAACC,QAAQ,QAAQC,cAAY,EAAAd,SAAA,CAAC,0FACuCF,cAAA,SAAM,6BAC7DA,cAAA,SAAM,WACrBA,cAAA,SAAM,yBACdA,cAAA,SAAM,kGAIRA,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,6BAEhCF,cAACc,IAAU,CAACC,QAAQ,QAAQC,cAAY,EAAAd,SAAC,4GAK3CF,cAAC6uB,KAAa,CAAA3uB,SACZF,cAAC+uB,KAAM,CAACpK,QAAS0R,EAAat1B,QAAQ,OAAMb,SAAC,oBClNxC,SAASgzF,GAAoB1yF,GAAyC,IAAtC8R,EAAE9R,EAAF8R,GAAIogF,EAASlyF,EAATkyF,UACjDp0F,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GAEpB,OACEkC,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAAC+uB,KAAM,CACLntB,KAAK,QACLF,WAAS,EACTd,GAAI,CAAEC,GAAI,EAAG+4B,GAAI,GACjB74B,QAAQ,YACRkL,MAAM,UACN0Y,QAAS,kBAAMwN,GAAQ,IAAMjyB,SAC9B,eAIDQ,eAACutB,KAAM,CAACjH,KAAMA,EAAK9mB,SAAA,CACjBF,cAAC0uB,KAAW,CAAAxuB,SAAC,YACbF,cAACmuB,KAAa,CAAAjuB,SACZF,cAACyyF,GAAmB,CAACngF,GAAIA,EAAIogF,UAAWA,MAE1C1yF,cAAC6uB,KAAa,CAAA3uB,SACZF,cAAC+uB,KAAM,CAACpK,QAAS,kBAAMwN,GAAQ,IAAOjyB,SAAC,mBChBlC,SAASizF,GAAgB3yF,GAAuD,IAApD8R,EAAE9R,EAAF8R,GAAI3P,EAAInC,EAAJmC,KAAMV,EAAQzB,EAARyB,SAC7Cwe,GAD8DjgB,EAAPymB,QAC5CrG,eACT0rB,EAAoBC,eAApBD,gBACRH,EAAqCzrB,aAAY,SAAC7O,GAAgB,OAAKA,EAAMyL,YAArEnM,EAASg7B,EAATh7B,UAAW9S,EAAK8tC,EAAL9tC,MAAO6kE,EAAM/2B,EAAN+2B,OAoB1B,OAnB6BzlB,aAAmB,CAC9CC,kBAAmB,CAACC,KAAW+jB,kBADzBlkB,iBAsBNx9C,cAAAC,WAAA,CAAAC,SACEF,cAAC2xF,GAAqB,CACpBhvF,KAAMA,EACNV,SAAUA,EACVglB,QAAS,kBAAMqS,QAAQC,IAAI,KAC3BjnB,GAAIA,EACJu+B,UAxBc,WAEdpwB,EADJyiD,EAEMoF,aAAuBh2D,EAAvBg2D,EAA2B,WACzBh8B,EAAgB,+CAA6C,CAAEvrC,QAAS,eAI1E4nE,aAAiBr2D,EAAjBq2D,EAAqB,WACnBr8B,EAAgB,2BAAyB,CAAEvrC,QAAS,YACpD0f,EAASynD,qBAeb7pE,MAAOA,EACP8S,UAAWA,EACXqV,MAAM,cAZkBxmB,cAAC89C,KAAmB,ICvBrC,SAASs1C,GAAoB5yF,GAAuD,IAApD8R,EAAE9R,EAAF8R,GAAI3P,EAAInC,EAAJmC,KAAMV,EAAQzB,EAARyB,SACjDwe,GADkEjgB,EAAPymB,QAChDrG,eACT0rB,EAAoBC,eAApBD,gBACRH,EAAuDzrB,aACrD,SAAC7O,GAAgB,OAAKA,EAAMuL,gBADtBjM,EAASg7B,EAATh7B,UAAWgyD,EAAUh3B,EAAVg3B,WAAY9kE,EAAK8tC,EAAL9tC,MAAmB8tC,EAAZ/uB,aAetC,OAZ6BqgC,aAAmB,CAC9CC,kBAAmB,CAACC,KAAWikB,sBADzBpkB,iBAeNx9C,cAAAC,WAAA,CAAAC,SACEF,cAAC2xF,GAAqB,CACpBhvF,KAAMA,EACNV,SAAUA,GAAYkhE,EACtBl8C,QAAS,kBAAMqS,QAAQC,IAAI,KAC3BjnB,GAAIA,EACJu+B,UAjBc,WAClBpwB,EACEskD,aAAqBzyD,EAArByyD,EAAyB,WACvBz4B,EAAgB,2BAAyB,CAAEvrC,QAAS,iBAepD1C,MAAOA,EACP8S,UAAWA,EACXqV,MAAM,uBAZkBxmB,cAAC89C,KAAmB,I,4BCxCpDxe,GAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAwBe,SAAS+vF,KAA2B,IAAD7yF,EAChD09C,EAAgC70B,eAAxB1J,EAAOu+B,EAAPv+B,QAASiY,EAAUsmB,EAAVtmB,WACTq6D,EAAqBC,eAArBD,iBACFxxE,EAAWG,cACTxD,EAAiBsD,aAAY,SAAC7O,GAAgB,OAAKA,EAAMuL,gBAAzDA,aACR9e,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GAoCd63B,EAAc,WAClBlE,GAAQ,GApBS,WACjB,GAAsC,KAAtB,OAAZ/U,QAAY,IAAZA,OAAY,EAAZA,EAAc2mD,oBAAsC,OAAZ3mD,QAAY,IAAZA,OAAY,EAAZA,EAAcm1E,UAAU,CAClE,IAAMrzE,EAAS,CACbw6C,OAAQ,SACRhe,MAAmB,OAAZt+B,QAAY,IAAZA,OAAY,EAAZA,EAAc9K,GAAGymB,WACxBzmB,GAAI,IACJ5H,IAAK,GACL/I,MAAO,GACP24D,QAAS,GACT10D,YAAa,GACbsyB,WAAW,GAGbzX,EAASq5C,aAAU56C,IAEnBuB,EAASm5C,aAAc16C,KAMzBo0E,IAGI5oF,GAAkB,OAAZ0S,QAAY,IAAZA,OAAY,EAAZA,EAAcm9B,OAAOp7C,QAAO,SAAC8zB,GAAU,OAAyB,KAApBA,EAAM3B,aAAkB,GAAG5mB,MAAO,GAE1F,GAAY,KAARA,EAAY,OAAO1K,cAAAC,WAAA,IAOvB,OACES,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAAC+uB,KAAM,CACL9sB,UAAU,EACV0iB,QATc,WAClBwN,GAAQ,GACHyF,GA7CQ,YAAAp3B,KAAA+lC,aAAAjH,KAAAiE,MAAG,SAAAiD,IAAA,OAAAlH,KAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAChBvb,EACEilD,aAAsB,CACpB/3C,UAAiB,OAAPhO,QAAO,IAAPA,OAAO,EAAPA,EAASgO,WAAY,GAC/BD,WAAkB,OAAP/N,QAAO,IAAPA,OAAO,EAAPA,EAAS+N,YAAa,GACjCoxB,OAAc,OAAPn/B,QAAO,IAAPA,OAAO,EAAPA,EAASm/B,QAAS,GACzBqzC,WAAY,GACZE,WAAY,cACZ//E,GAAgB,OAAZ8K,QAAY,IAAZA,OAAY,EAAZA,EAAc9K,IANpBozD,EAOG,SAACh7D,GACFunF,GAA6B,OAAZ70E,QAAY,IAAZA,OAAY,EAAZA,EAAc9K,GAAGymB,aAAc,QAElD,wBAAA2N,EAAAzC,UAAAuC,QACHM,MAAA,KAAAriC,WAgCkB8uF,IAQb3xF,KAAK,QACLb,QAAQ,YACRkL,MAAM,UAAS/L,SAChB,mBAIDQ,eAACutB,KAAM,CAACjH,KAAMA,EAAMkH,SAAU,KAAMxsB,WAAS,EAAAxB,SAAA,CAC3CF,cAACq3B,KAAoB,CACnB/kB,GAAG,QACH2U,QAASoP,EACT7P,MAAM,gCACNvkB,UAAW+kB,IAEbhnB,cAACmuB,KAAa,CAAAjuB,SACZF,cAACW,KAAG,CAAAT,SACFF,cAACyoB,KAAmB,CAAC/d,IAAKA,EAAKge,SAAS,QAG5C1oB,cAAC6uB,KAAa,CAACjuB,GAAI,CAAEqC,UAAW,UAAW/C,SACzCF,cAAC+uB,KAAM,CAACpK,QAAS0R,EAAap0B,UAAW+kB,EAAK9mB,SAAC,mBClE1C,SAASszF,GAAmBhzF,GAcb,IAb5B8a,EAAM9a,EAAN8a,OACA4nD,EAAM1iE,EAAN0iE,OACAmB,EAAW7jE,EAAX6jE,YACAxP,EAAUr0D,EAAVq0D,WACA4+B,EAAQjzF,EAARizF,SACAzB,EAAMxxF,EAANwxF,OACAz3C,EAAM/5C,EAAN+5C,OACAo2C,EAASnwF,EAATmwF,UACAr+E,EAAE9R,EAAF8R,GACAnB,EAAS3Q,EAAT2Q,UACAxO,EAAInC,EAAJmC,KACA+vF,EAASlyF,EAATkyF,UACAzwF,EAAQzB,EAARyB,SAEA,GAAIqZ,IAAWy1E,KAAcG,KAAM,CACjC,GAAIhuB,IACGmB,IAAgBxP,EACnB,OACE70D,cAAAC,WAAA,CAAAC,SACGyC,IAAS+wF,KAAYzP,SACpBjkF,cAACmzF,GAAgB,CACfxwF,KAAM+uF,GAAkBiC,oBACxB1xF,SAAU0uF,GAAa1uF,EACvBglB,QAAS,kBAAMqS,QAAQC,IAAI,KAC3BjnB,GAAIA,IAGNtS,cAACozF,GAAoB,CACnBzwF,KAAM+uF,GAAkBiC,oBACxB1xF,SAAU0uF,GAAa1uF,EACvBglB,QAAS,kBAAMqS,QAAQC,IAAI,KAC3BjnB,GAAIA,MAMhB,GAAIuiD,GAAclyD,IAAS+wF,KAAY7P,aACrC,OAAO7jF,cAAC6xF,GAAmB,CAAC5vF,SAAU0uF,EAAW1pE,QAAS,kBAAMqS,QAAQC,IAAI,OACzE,IAAK8qC,IAAgBxP,EACxB,OAAiB,MAAb69B,GAAkD,KAApB,OAATA,QAAS,IAATA,OAAS,EAATA,EAAWrqF,eAEhCrI,cAAAC,WAAA,CAAAC,SACGyC,IAAS+wF,KAAYzP,SACpBjkF,cAACmzF,GAAgB,CACfxwF,KAAM+uF,GAAkBE,SACxB3vF,SAAU0uF,GAAa1uF,EACvBglB,QAAS,kBAAMqS,QAAQC,IAAI,KAC3BjnB,GAAIA,IAGNtS,cAACozF,GAAoB,CACnBzwF,KAAM+uF,GAAkBE,SACxB3vF,SAAU0uF,GAAa1uF,EACvBglB,QAAS,kBAAMqS,QAAQC,IAAI,KAC3BjnB,GAAIA,MAKFtS,cAACkzF,GAAoB,CAAC5gF,GAAIA,EAAIogF,UAAWA,SAElD,GAAI/vF,IAAS+wF,KAAY7P,cAC1B4P,EACF,OAAc,MAAVzB,GAA4B,MAAVz3C,GAAkBA,EAAOzE,MAAK,SAAC7iB,GAAU,OAAyB,KAApBA,EAAM3B,aACjEtxB,cAACqzF,GAAuB,IAExBrzF,cAAC+xF,GAAkB,CAACC,OAAQA,EAAQ7gF,UAAWA,EAAWmB,GAAIA,IAI3E,OAAOtS,cAAAC,WAAA,IClEM,SAAS2zF,GAAgBpzF,GAMb,IAADqzF,EAAAC,EAAAC,EAAAC,EALxB52E,EAAY5c,EAAZ4c,aAEA/e,GADOmC,EAAPymB,QACKzmB,EAALnC,OACA6kE,EAAM1iE,EAAN0iE,OACA/xD,EAAS3Q,EAAT2Q,UAEA,OACEzQ,eAACC,IAAG,CAAAT,SAAA,CACFQ,eAACynC,KAAI,CAAAjoC,SAAA,CACHF,cAACm3C,KAAmB,CAClB3wB,MAAOxmB,cAACc,IAAU,CAACC,QAAQ,KAAIb,SAAEkd,EAAaoJ,QAC9C4G,KAAMptB,cAACi0F,KAAqB,IAAI/zF,SAEhCF,cAACk0F,KAAoB,CACnBr/B,WAAYz3C,EAAay3C,WACzB4+B,SAAUr2E,EAAaq2E,SACvB/vB,gBAAiBtmD,EAAasmD,gBAC9B7xD,MAAOuL,EAAavL,MACpB4xD,eAAgBrmD,EAAaqmD,eAC7BY,YAAajnD,EAAainD,YAC1B8vB,aAAkC,QAAtBN,EAAEz2E,EAAaV,eAAO,IAAAm3E,OAAA,EAApBA,EAAsBv4E,OACpC84E,UAAWh3E,EAAaq9D,UACxBzK,QAAS5yD,EAAa4yD,aAIL,QAApB8jB,EAAA12E,EAAaV,eAAO,IAAAo3E,OAAA,EAApBA,EAAsBx4E,UAAW2Q,KAAcooE,SAChDj3E,EAAavL,QAAUk/E,KAAcG,KACnCxwF,eAACkwF,KAAsB,CACrBrkE,MAAOnP,EAAaq9D,UACpBnK,IAAKlzD,EAAa4yD,QAClB6gB,SAAS,EAAM3wF,SAAA,CAEd,IACDF,cAACmxF,KAAkB,CAAClvF,UAAU,EAAOqQ,GAAwB,QAAtByhF,EAAE32E,EAAaV,eAAO,IAAAq3E,OAAA,EAApBA,EAAsBzhF,QAGjEtS,cAACuwF,GAAkB,CACjB9V,UAAWr9D,EAAaq9D,UACxBzK,QAAS5yD,EAAa4yD,QACtBnb,WAAYz3C,EAAay3C,WACzBv5C,OAAQ8B,EAAavL,MACrB0zD,aAAkC,QAAtByuB,EAAE52E,EAAaV,eAAO,IAAAs3E,OAAA,EAApBA,EAAsB1hF,GACpCm+E,WAAW,IAIfzwF,cAACs0F,KAAuB,CAAC9mE,QAASpQ,EAAaoQ,UAE/CxtB,cAACooC,KAAc,CAAChb,KAAMptB,cAACu0F,KAAK,IAAK/tE,MAAM,eAAQtmB,SAC7CF,cAAC6O,KAAQ,CAAC3O,SAAUkd,EAAayL,aAAe,OAGlD7oB,cAACooC,KAAc,CAAChb,KAAMptB,cAACojF,KAAY,IAAK58D,MAAM,aAAYtmB,SACxDF,cAAC6O,KAAQ,CAAC3O,SAAUkd,EAAa5U,SAAW,OAGpB,MAAzB4U,EAAaumD,UAAoBvmD,EAAaumD,SAASj/D,OAAS,GAC/DhE,eAAC0nC,KAAc,CACbhb,KAAMptB,cAACw0F,KAAgB,IACvBhuE,MAAM,iDAA0CtmB,SAAA,CAEhDF,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAC,+GAI7Bkd,EAAaumD,SAAS7hE,KAAI,SAACwmC,GAC1B,OACE5nC,eAACU,KAAK,CAAcqB,UAAU,MAAMlB,WAAW,aAAYrB,SAAA,CACzDQ,eAACkzB,KAAK,CAAC7yB,QAAQ,QAAQkL,MAAOq8B,EAAE0qB,OAAS,UAAY,QAAQ9yD,SAAA,CAC1DooC,EAAEjpC,KAAK,MAAIipC,EAAE3mC,SAEf2mC,EAAE0qB,OAAShzD,cAACy0F,KAAI,IAAMz0F,cAAC00F,KAAa,CAAClpF,SAAS,YAJrC88B,EAAEjpC,YAUrB+d,GAAgBpd,cAAC20F,GAAU,CAACv3E,aAAcA,IAC1CA,EAAavL,QAAUk/E,KAAcG,MACpCxwF,eAAAT,WAAA,CAAAC,SAAA,CACGgjE,IAAW9lD,EAAay3C,YACvB70D,cAAC2uB,KAAI,CAAAzuB,SACHQ,eAAC4+C,KAAgB,CACf32C,IAAI,4DACJ42C,aAAc,IAAIr/C,SAAA,EAEhBkd,EAAainD,aACb3jE,eAACI,IAAU,CAACC,QAAQ,YAAYC,cAAY,EAAAd,SAAA,CAAC,uCAE3CF,cAAA,SAAM,0EAIVU,eAACI,IAAU,CAACC,QAAQ,QAAOb,SAAA,CAAC,oEAE1BF,cAAA,SAAM,qHAEuB,YAMpCod,EAAay3C,YACZn0D,eAACsoC,KAAmB,CAACC,WAAW,UAAS/oC,SAAA,CACvCF,cAACc,IAAU,CAACC,QAAQ,YAAYC,cAAY,EAAAd,SAAC,kFAI7CQ,eAACI,IAAU,CAACC,QAAQ,QAAOb,SAAA,CAAC,mLAI1BF,cAAA,SACAA,cAAA,SAAM,oIAOXod,EAAavL,QAAUk/E,KAAcG,MAAQ9zE,EAAainD,aACzDrkE,cAACgpC,KAAmB,CAACC,WAAW,UAAS/oC,SACvCF,cAACc,IAAU,CAACC,QAAQ,YAAYC,cAAY,EAAAd,SAAC,iEAStD7B,GAAS2B,cAACsxF,GAAmB,CAACjzF,MAAOA,EAAOsE,KAAM+wF,KAAY7P,eAC/D7jF,cAAC6uB,KAAa,CAACjuB,GAAI,CAAEkuB,eAAgB,UAAW5uB,SAC9CF,cAACwwF,KAAgB,CACfjkE,MAAOnP,EAAaq9D,UACpBnK,IAAKlzD,EAAa4yD,QAClBygB,WAAW,EAAKvwF,SAEf,SAACyrF,EAAc+E,EAAqBC,EAAoBiE,GAA2B,OAClF50F,cAACwzF,GAAmB,CAClB7C,UAAWA,EACX97B,WAAYz3C,EAAay3C,WACzB4+B,SAAUr2E,EAAaq2E,SACvBvwB,OAAQA,EACRmB,YAAajnD,EAAainD,YAC1B9pB,OAAQn9B,EAAam9B,OACrBjoC,GAAI8K,EAAa9K,GACjBgJ,OAAQ8B,EAAavL,MACrBmgF,OAAQ50E,EAAa40E,OACrB7gF,UAAWA,EACXxO,KAAM+wF,KAAY7P,aAClB6O,UAAW,KACXzwF,UAAU,YASxB,IAAM0yF,GAAa,SAAHxyF,GAA0D,IAApDib,EAAYjb,EAAZib,aACZm9B,EAA6Bn9B,EAA7Bm9B,OAAQk5C,EAAqBr2E,EAArBq2E,SAAUzB,EAAW50E,EAAX40E,OAE1B,GAAe,OAAXz3C,GAAqC,IAAlBA,EAAO71C,OAAc,OAAO1E,cAAAC,WAAA,IAEnD,IAAI40F,EAAgBt6C,EAMpB,OAHIk5C,GAAuB,OAAXzB,IACd6C,EAAgBA,EAAc11F,QAAO,SAAC8zB,GAAU,OAAyB,KAApBA,EAAM3B,cAEtDujE,EAAcnwF,OAAS,EAAI1E,cAAC80F,KAAoB,CAACv6C,OAAQs6C,IAAoB70F,cAAAC,WAAA,KCpMvE,SAAS80F,KACtB,IAAMn3D,EAAWC,cACT2f,EAAqBC,aAAmB,CAC9CC,kBAAmB,CAACC,KAAWgkB,oBADzBnkB,iBAGF/8B,EAAWG,cAEjBurB,EAAgFzrB,aAC9E,SAAC7O,GAAgB,OAAKA,EAAMuL,gBADtBA,EAAY+uB,EAAZ/uB,aAAc8lD,EAAM/2B,EAAN+2B,OAAQ7kE,EAAK8tC,EAAL9tC,MAAO8S,EAASg7B,EAATh7B,UAAWiyD,EAAcj3B,EAAdi3B,eAAgB7J,EAAWptB,EAAXotB,YAIhEt6D,qBAAU,WACe,IAAnBmkE,GAAyB5lB,GAC7B/8B,EAASmkD,aAAgBxB,MACxB,CAAC3iD,EAAU2iD,IAEdnkE,qBAAU,WACHZ,GAGH,CAACqmE,KAAmB7iC,MAAO6iC,KAAmB37B,UAAUxpC,SAASlB,EAAMokB,UACtErF,GACDgmD,EAAiB,IAEjB3iD,EAASu5C,gBACTp8B,EAAS,WAEV,CAACv/B,IAEJ,IAAM22F,EAAY,WAChBv0E,EAASu5C,iBAGX,OACEt5D,eAACqmB,KAAM,CACLC,KAAMuyC,EACNtyC,QAAS+tE,EACT75D,OAAO,QACP/qB,WAAY,CAAExP,GAAI,CAAE+C,MAAO,CAAE0qB,GAAI,EAAGC,GAAI,OAAUpuB,SAAA,CAElDQ,eAACU,KAAK,CAACyM,EAAG,IAAKpL,UAAU,MAAMlB,WAAW,SAAQrB,SAAA,CAChDF,cAACymB,KAAO,CAACD,MAAM,SAAQtmB,SACrBF,cAAC0mB,KAAW,CAAC/B,QAASqwE,EAAWp0F,GAAI,CAAE4vB,GAAI,GAAItwB,SAC7CF,cAACo7B,KAAK,QAGVp7B,cAACc,IAAU,CAACC,QAAQ,KAAKH,GAAI,CAAEyP,GAAI,KAAMnQ,SAAC,qBAG1CF,cAACoB,KAAK,CAACqB,UAAU,MAAM6I,QAAS,EAAGwjB,eAAe,WAAWxK,SAAU,EAAEpkB,SACvEF,cAACymB,KAAO,CAACD,MAAM,6BAA4BtmB,SACzCF,cAAA,QAAAE,SACEF,cAAC8jF,KAAoB,CACnBt9D,MAAmB,OAAZpJ,QAAY,IAAZA,OAAY,EAAZA,EAAcoJ,MACrB7jB,KAAMohF,KAAaF,aACnBG,OAAQ,CAAE77D,SAAU,GAAIgrB,WAAY,EAAG7gC,KAAiB,OAAZ8K,QAAY,IAAZA,OAAY,EAAZA,EAAc9K,IAAKk4D,QAAS,cAMlFxqE,cAACkO,KAAO,IAERlO,cAACW,KAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SACds9C,EAGAx9C,cAAAC,WAAA,CAAAC,SACIkd,EAGApd,cAAC4zF,GAAgB,CACfx2E,aAAcA,EACd6J,QAAS,kBAAMqS,QAAQC,IAAI,KAC3B2pC,OAAQA,EACR7kE,MAAOA,EACP8S,UAAWA,IAPbnR,cAACinC,KAAkB,MAJvBjnC,cAAC89C,KAAmB,S,0DCzEf,SAASm3C,GAAkBz0F,GAIb,IAH3B8c,EAAQ9c,EAAR8c,SACA43E,EAAa10F,EAAb00F,cACAxC,EAASlyF,EAATkyF,UAEM3nF,EAAQgW,cACN+xE,EAAsBzpE,eAAtBypE,kBAER,OACE9yF,cAAC2uB,KAAI,CAAAzuB,SACHQ,eAAC4+C,KAAgB,CAAC32C,IAAI,8CAA8C42C,aAAc,IAAIr/C,SAAA,CACpFF,cAACc,IAAU,CAACC,QAAQ,YAAY03C,WAAS,EAAAv4C,SAAC,+BAI1CQ,eAACC,KAAG,CAACC,GAAI,CAAEqC,UAAW,QAAS/C,SAAA,CAC7BQ,eAACI,IAAU,CAACC,QAAQ,QAAOb,SAAA,CAAC,yBACN,IACpBQ,eAAA,UAAAR,SAAA,CACG4yF,EAAkBx1E,EAAS9F,OAAO,WAAS8F,EAAStV,OAAO,kBAGhEtH,eAACI,IAAU,CAACC,QAAQ,QAAOb,SAAA,CAAC,0CACaQ,eAAA,UAAAR,SAAA,CAASg1F,EAAc,kBAEhEx0F,eAACI,IAAU,CAACC,QAAQ,QAAOb,SAAA,CAAC,oCACOQ,eAAA,UAAAR,SAAA,CAAS6H,aAAWuV,EAAStV,QAAQ,kBAGxEtH,eAACI,IAAU,CAACE,cAAY,EAACD,QAAQ,QAAOb,SAAA,CAAC,gCACbQ,eAAA,UAAAR,SAAA,CAASwyF,EAAUrqF,cAAc,eAAkB,IAACrI,cAAA,eAGlFU,eAACC,KAAG,CAAAT,SAAA,CACDod,EAASmmD,eAAiBnmD,EAASomD,iBAClC1jE,cAAAC,WAAA,CAAAC,SAC+B,IAA5BwyF,EAAUrqF,cACTrI,cAACc,IAAU,CAACE,cAAY,EAACD,QAAQ,QAAQH,GAAI,CAAEqL,MAAOlB,EAAME,QAAQorE,QAAQ/oD,MAAOptB,SACjFF,cAAA,UAAAE,SAAQ,2DAGVF,cAACc,IAAU,CAACE,cAAY,EAACD,QAAQ,QAAQH,GAAI,CAAEqL,MAAOlB,EAAME,QAAQ5M,MAAMivB,MAAOptB,SAC/EQ,eAAA,UAAAR,SAAA,CAAQ,kBACUwyF,EAAUrqF,cAAc,+EAQlDrI,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAC,gI,eCIzB,SAASi1F,GAAY30F,GAMb,IALrB8c,EAAQ9c,EAAR8c,SACAjf,EAAKmC,EAALnC,MACA6kE,EAAM1iE,EAAN0iE,OACA/xD,EAAS3Q,EAAT2Q,UAGA7S,GAFOkC,EAAPymB,QAEgC1oB,oBAAS,IAAMC,EAAAC,YAAAH,EAAA,GAAxCy3B,EAASv3B,EAAA,GAAEm0F,EAAUn0F,EAAA,GAE5B0/C,EAAkD70B,eAA1CD,EAAkB80B,EAAlB90B,mBAAoB0pE,EAAiB50C,EAAjB40C,kBAEtBrT,EAAkBr2D,IAClBspE,EAAYzqF,aAChBw3E,EAAgByV,cAChB53E,EAAStV,OACTsV,EAASnV,WAELitF,GACH93E,EAASu3C,aAAev3C,EAAS+mD,cAAgBnB,GAA+B,IAArBwvB,EAAU1qF,OAClEqtF,EAAallB,aAAY7yD,EAAS82E,UAAW,IAAI9xF,MACjDgzF,EAAanlB,aAAY,IAAI7tE,KAAQgb,EAASm9D,WAEpD,OACE/5E,eAACC,IAAG,CAAAT,SAAA,CACFQ,eAACynC,KAAI,CAAAjoC,SAAA,CACHF,cAACm3C,KAAmB,CAClB3wB,MAAOxmB,cAACc,IAAU,CAACC,QAAQ,KAAIb,SAAEod,EAASkJ,QAC1C4G,KAAMptB,cAACi0F,KAAqB,IAAI/zF,SAEhCF,cAACk0F,KAAoB,CACnBr/B,WAAYv3C,EAASu3C,WACrB4+B,SAAUn2E,EAASm2E,SACnB/vB,gBAAiBpmD,EAASomD,gBAC1B7xD,MAAOyL,EAASzL,MAChB4xD,eAAgBnmD,EAASmmD,eACzBY,YAAa/mD,EAAS+mD,YACtB+vB,UAAW92E,EAAS82E,UACpBpkB,QAAS1yD,EAAS0yD,YAItBhwE,cAACu1F,KAAsB,CAAAr1F,SACrBF,cAAC6O,KAAQ,CAAC3O,SAAUod,EAASk4E,UAG/Bx1F,cAAC4wF,KAAsB,CAACtgB,IAAKhzD,EAAS0yD,QAASzjD,MAAOjP,EAASm9D,UAAWoW,SAAS,EAAM3wF,SACvFQ,eAACI,IAAU,CAACC,QAAQ,UAAUkL,MAAQopF,EAAuB,YAAV,QAAsBn1F,SAAA,CAAC,+BAC3CuwB,aAAMnT,EAAS82E,gBAWhDp0F,cAACy1F,KAAqB,CAACjoE,QAASlQ,EAASkQ,aAG1ClQ,EAASu3C,YAAcv3C,EAAS+mD,aAAe/mD,EAASzL,OAASk/E,KAAcG,KAC9ElxF,cAACmoC,KAAI,CAAAjoC,SACHF,cAAC01F,KAAqB,CACpBlvE,MAAK,0BAAAvlB,OAAyB6xF,EAAkBx1E,EAAS9F,OAAM,YAAAvW,OAC7Dqc,EAAStV,OAAM,WACP9H,SAEVF,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAC,4HAOlCF,cAAAC,WAAA,CAAAC,SACsB,MAAnBu/E,GACCz/E,cAACi1F,GAAkB,CACjBC,cAAezV,EAAgByV,cAC/B53E,SAAUA,EACVo1E,UAAWA,MAKnBhyF,eAACynC,KAAI,CAAAjoC,SAAA,CACFod,EAASuL,aACR7oB,cAACooC,KAAc,CAAC5hB,MAAM,cAAc4G,KAAMptB,cAAC21F,KAAa,IAAIz1F,SAC1DF,cAAC6O,KAAQ,CAAC3O,SAAUod,EAASuL,gBAIhC7oB,cAAC41F,GAAmB,CAACt4E,SAAUA,IAE/BA,EAASzL,QAAUk/E,KAAcG,MAAQhuB,GAAUmyB,GAClDr1F,cAAC2uB,KAAI,CAAAzuB,SACHQ,eAAC4+C,KAAgB,CACf32C,IAAI,4DACJ42C,aAAc,IAAIr/C,SAAA,EAEhBod,EAAS+mD,aACT3jE,eAACI,IAAU,CAACC,QAAQ,YAAYC,cAAY,EAAAd,SAAA,CAAC,yBAE3CF,cAAA,SAAM,0EAIVU,eAACI,IAAU,CAACC,QAAQ,QAAOb,SAAA,CAAC,oEAE1BF,cAAA,SAAM,6HAQbsd,EAASzL,QAAUk/E,KAAcG,MAAQkE,GACxCp1F,cAACooC,KAAc,CAAC5hB,MAAM,6BAA0B4G,KAAMptB,cAAC+yF,KAAkB,IAAI7yF,SAC3EF,cAACg3B,KAAW,CAACp1B,KAAK,QAAO1B,SACvBF,cAAC80B,KAAgB,CACfC,QAAS/0B,cAACg1B,KAAQ,CAACC,QAASc,EAAWpR,QAAS,kBAAMguE,GAAY58D,MAClEp0B,MAAO3B,cAACgzF,GAAuB,UAKtC11E,EAASzL,QAAUk/E,KAAcG,MAAQ5zE,EAASu3C,YACjDn0D,eAACsoC,KAAmB,CAACC,WAAW,UAAS/oC,SAAA,CACvCF,cAACc,IAAU,CAACC,QAAQ,YAAYC,cAAY,EAAAd,SAAC,wEAI7CQ,eAACI,IAAU,CAACC,QAAQ,QAAOb,SAAA,CAAC,sGAEtBm4E,aAAYoH,EAAgB5mC,MAAMgiC,MAAO4E,EAAgB5mC,MAAMvmC,IAAI,wFAM7EtS,cAACoB,KAAK,CAACqB,UAAU,MAAMlB,WAAW,SAASutB,eAAe,SAAQ5uB,SAChEF,cAACi0D,KAAe,CAAC32C,SAAUA,MAG5BA,EAASzL,QAAUk/E,KAAcG,MAAQ5zE,EAAS+mD,aACjDrkE,cAACgpC,KAAmB,CAACC,WAAW,UAAS/oC,SACvCF,cAACc,IAAU,CAACC,QAAQ,YAAYC,cAAY,EAAAd,SAAC,8DAOlD7B,GAAS2B,cAACsxF,GAAmB,CAACjzF,MAAOA,EAAOsE,KAAM+wF,KAAYzP,WAE/DjkF,cAAC6uB,KAAa,CAACjuB,GAAI,CAAEkuB,eAAgB,UAAW5uB,UAC5Co1F,GACAt1F,cAACwzF,GAAmB,CAClB7C,WAAqB0E,EACrBxgC,WAAYv3C,EAASu3C,WACrB4+B,SAAUn2E,EAASm2E,SACnBvwB,OAAQA,EACRmB,YAAa/mD,EAAS+mD,YACtB9pB,OAAQj9B,EAASi9B,OACjBjoC,IAAKgL,EAAShL,GACdgJ,OAAQgC,EAASzL,MACjBmgF,OAAQ,KACR7gF,UAAWA,EACXxO,KAAM+wF,KAAYzP,SAClByO,UAAWA,EACXzwF,WAAUmzF,IAAmBr/D,SAWzC,SAAS6/D,GAAmBzzF,GAA0C,IAAvCmb,EAAQnb,EAARmb,SAC7BmM,EAAwBlrB,oBAAS,GAAMmrB,EAAAjrB,YAAAgrB,EAAA,GAEjC0P,GAFKzP,EAAA,GAASA,EAAA,GAEMpM,EAAS6b,MAAQ,CACzC4I,OAAQ,GACR8zD,OAAQ,GACRC,MAAO,GACPC,QAAS,GACT/4E,UAAW,GACXjS,MAAO,KAGHgrF,EAAU58D,EAAK48D,QAClBttF,QAAQ,mBAAoB,IAC5BA,QAAQ,kBAAmB,IAC3BA,QAAQ,iBAAkB,IAC1BA,QAAQ,sBAAuB,IAC/BA,QAAQ,iBAAkB,IAC1BA,QAAQ,gBAAiB,IACzBA,QAAQ,gBAAiB,IACzBA,QAAQ,sBAAuB,IAC/BA,QAAQ,UAAW,IACtB,OACEzI,cAAAC,WAAA,CAAAC,SACEQ,eAACynC,KAAI,CAAAjoC,SAAA,CACFi5B,EAAKnc,WACJhd,cAACooC,KAAc,CAAChb,KAAMptB,cAACojF,KAAY,IAAK58D,MAAM,4BAAwBtmB,SACpEF,cAAC6O,KAAQ,CAAC3O,SAAUi5B,EAAKnc,cAG5Bmc,EAAK4I,QACJ/hC,cAACooC,KAAc,CAAChb,KAAMptB,cAACg2F,KAAW,IAAKxvE,MAAM,aAAStmB,SACpDF,cAAC6O,KAAQ,CAAC3O,SAAUi5B,EAAK4I,WAG5B5I,EAAK48D,SACJ/1F,cAACooC,KAAc,CAAChb,KAAMptB,cAACi2F,KAAS,IAAKzvE,MAAM,YAAWtmB,SACpDF,cAAC6O,KAAQ,CAAC3O,SAAU61F,MAGvB58D,EAAK28D,OACJ91F,cAACooC,KAAc,CAAChb,KAAMptB,cAACk2F,KAAU,IAAK1vE,MAAM,4BAAqBtmB,SAC/DF,cAAC6O,KAAQ,CAAC3O,SAAUi5B,EAAK28D,UAG5B38D,EAAK08D,QACJ71F,cAACooC,KAAc,CAAChb,KAAMptB,cAACw/D,KAAM,IAAKh5C,MAAM,qBAAiBtmB,SACvDF,cAAC6O,KAAQ,CAAC3O,SAAUi5B,EAAK08D,gBC3QtB,SAASM,KACtB,IAAM11E,EAAWG,cACXgd,EAAWC,cACT2f,EAAqBC,aAAmB,CAC9CC,kBAAmB,CAACC,KAAW+jB,kBADzBlkB,iBAIRrR,EAAwEzrB,aACtE,SAAC7O,GAAgB,OAAKA,EAAMyL,YADtBA,EAAQ6uB,EAAR7uB,SAAU4lD,EAAM/2B,EAAN+2B,OAAQ/xD,EAASg7B,EAATh7B,UAAW9S,EAAK8tC,EAAL9tC,MAAOwpE,EAAU17B,EAAV07B,WAAYtO,EAAWptB,EAAXotB,YAIxDt6D,qBAAU,WACW,IAAf4oE,GAAqBrqB,GACzB/8B,EAAS2nD,aAAYP,MACpB,CAACpnD,EAAUonD,IAEd5oE,qBAAU,WACHZ,GAGH,CAACqmE,KAAmB7iC,MAAO6iC,KAAmB37B,UAAUxpC,SAASlB,EAAMokB,UACtEnF,GACDuqD,EAAa,IAEbpnD,EAASu5C,gBACTp8B,EAAS,WAEV,CAACv/B,IAEJ,IAAMg4B,EAAc,WAClB5V,EAASu5C,iBAGX,OACEt5D,eAACqmB,KAAM,CACLC,KAAMuyC,EACNtyC,QAASoP,EACT8E,OAAO,QACP/qB,WAAY,CAAExP,GAAI,CAAE+C,MAAO,CAAE0qB,GAAI,EAAGC,GAAI,OAAUpuB,SAAA,CAElDQ,eAACU,KAAK,CAACyM,EAAG,IAAKpL,UAAU,MAAMlB,WAAW,SAAQrB,SAAA,CAChDF,cAACymB,KAAO,CAACD,MAAM,SAAQtmB,SACrBF,cAAC0mB,KAAW,CAAC/B,QAAS0R,EAAaz1B,GAAI,CAAE4vB,GAAI,GAAItwB,SAC/CF,cAACo7B,KAAK,QAGVp7B,cAACc,IAAU,CAACC,QAAQ,KAAKH,GAAI,CAAEyP,GAAI,KAAMnQ,SAAC,YAG1CF,cAACoB,KAAK,CAACqB,UAAU,MAAM6I,QAAS,EAAGwjB,eAAe,WAAWxK,SAAU,EAAEpkB,SACvEF,cAACymB,KAAO,CAACD,MAAM,6BAA4BtmB,SACzCF,cAAA,QAAAE,SACGod,GACCtd,cAAC8jF,KAAoB,CACnBt9D,MAAOlJ,EAAUkJ,MACjB7jB,KAAMohF,KAAaE,SACnBD,OAAQ,CAAE77D,SAAU,GAAIgrB,WAAY,EAAG7gC,IAAKgL,EAAUhL,GAAIk4D,QAAS,cAO/ExqE,cAACkO,KAAO,IAENsvC,EAGAx9C,cAACW,KAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SACf7B,EACC2B,cAACsxF,GAAmB,CAACjzF,MAAOA,EAAOsE,KAAM+wF,KAAYzP,WAErDjkF,cAAAC,WAAA,CAAAC,SACIod,EAGAtd,cAACm1F,GAAY,CACX73E,SAAUA,EACV2J,QAASoP,EACT6sC,OAAQA,EACR7kE,MAAOA,EACP8S,UAAWA,IAPbnR,cAACinC,KAAkB,QAR3BjnC,cAAC89C,KAAmB,O,qCClG5Bxe,GAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAQe,SAAS8yF,GAAO51F,GAAmB2M,YAAA3M,GAChD,IAAA09C,EAA2D70B,eAAnDD,EAAkB80B,EAAlB90B,mBAAoBzJ,EAAOu+B,EAAPv+B,QAASmzE,EAAiB50C,EAAjB40C,kBACrCx0F,EAAsBC,mBAAiB,IAAGC,EAAAC,YAAAH,EAAA,GAAnCoM,EAAGlM,EAAA,GAAEonC,EAAMpnC,EAAA,GAEZ63F,EAAY,CAChB,CAAEv3F,MAAO,KAAMw3F,MAAO,kBACtB,CAAEx3F,MAAO,KAAMw3F,MAAO,OACtB,CAAEx3F,MAAO,KAAMw3F,MAAO,iBACtB,CAAEx3F,MAAO,KAAMw3F,MAAO,UACtB,CAAEx3F,MAAO,KAAMw3F,MAAO,kBACtB,CAAEx3F,MAAO,KAAMw3F,MAAO,kBACtB,CAAEx3F,MAAO,KAAMw3F,MAAO,YACtB,CAAEx3F,MAAO,KAAMw3F,MAAO,sBACtB,CAAEx3F,MAAO,KAAMw3F,MAAO,kBACtB,CAAEx3F,MAAO,KAAMw3F,MAAO,eACtB,CAAEx3F,MAAO,KAAMw3F,MAAO,SACtB,CAAEx3F,MAAO,KAAMw3F,MAAO,uBACtB,CAAEx3F,MAAO,KAAMw3F,MAAO,WACtB,CAAEx3F,MAAO,KAAMw3F,MAAO,eACtB,CAAEx3F,MAAO,KAAMw3F,MAAO,WACtB,CAAEx3F,MAAO,KAAMw3F,MAAO,gBA+FxBr3F,qBAAU,WAER,OADAwhB,YAAS81E,KACF,YAfT,WAEE,IAAMC,EAAgB1tF,SAASysC,eAAe,kBAC1CihD,GACFA,EAAcpiD,SAGhB,IAAMqiD,EAAU3tF,SAASysC,eAAe,aACpCkhD,GACFA,EAAQriD,SAQRsiD,MAED,IAEH,IAAMH,EAAc,WAClB,OAAAhwD,aAAAjH,KAAAiE,MAAO,SAAAiD,IAAA,IAAAC,EAAA,OAAAnH,KAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,cAAA0K,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAEoB4N,KAAcC,IAAG,yBAAkC,KAAD,GAAnEpD,EAAQC,EAAAxE,OACA0D,EAAOa,EAAS5e,MAAM6e,EAAA1K,KAAA,eAAA0K,EAAA3C,KAAA,EAAA2C,EAAA6D,GAAA7D,EAAA,iCAAAA,EAAAzC,UAAAuC,EAAA,mBAS1C,OAJAvnC,qBAAU,WA5GPsK,OAAeotF,cAAgB,WAAa,IAADC,EACpCC,EAAc,QAAVD,EAAIrtF,cAAM,IAAAqtF,OAAA,EAAPA,EAAiBC,KAE9B,GAAIA,EAAM,CAAC,IAADC,EAQWC,EAEZC,EAYwCC,EAAAC,EAAAC,EAAAC,EAAAC,EApBzCptE,EAAWb,IACXkuE,EAAmB,OAARrtE,QAAQ,IAARA,GAAe,QAAP6sE,EAAR7sE,EAAU4uB,aAAK,IAAAi+C,OAAP,EAARA,EAAiBxkF,GAC5BilF,EAAgBD,EAAWjB,EAAUzrE,MAAK,SAAC4sE,GAAG,OAAQ,OAAHA,QAAG,IAAHA,OAAG,EAAHA,EAAK14F,SAAUw4F,KAAY,KAC9EhB,EAAQiB,EAAgBA,EAAcjB,MAAQ,GAiBpD,GAdIiB,EACqB,QAAvBR,EAACxtF,OAAestF,KAAKY,UAAE,IAAAV,GAAvBA,EAAyBW,OAAO,GAET,QAAvBV,EAACztF,OAAestF,KAAKY,UAAE,IAAAT,GAAvBA,EAAyBU,OAAO,GAI9BpB,GAAmB,KAAVA,EACV/sF,OAAestF,KAAKP,MAAM7iC,IAAI6iC,GAE9B/sF,OAAestF,KAAKP,MAAM7iC,IAAI,aAI7BojC,EAAK94E,MAAQ84E,EAAK94E,KAAK45E,qBACzBd,EAAK94E,KAAK45E,mBAAmB,iBAA0B,OAAR1tE,QAAQ,IAARA,GAAkB,QAAVgtE,EAARhtE,EAAUo0C,gBAAQ,IAAA44B,OAAV,EAARA,EAAoB3kF,IACnEukF,EAAK94E,KAAK45E,mBAAmB,mBAA4B,OAAR1tE,QAAQ,IAARA,OAAQ,EAARA,EAAU2tE,kBAC3Df,EAAK94E,KAAK45E,mBAAmB,MAAe,OAAR1tE,QAAQ,IAARA,GAAe,QAAPitE,EAARjtE,EAAU4uB,aAAK,IAAAq+C,OAAP,EAARA,EAAiB5kF,IACrDukF,EAAK94E,KAAK45E,mBAAmB,aAAsB,OAAR1tE,QAAQ,IAARA,OAAQ,EAARA,EAAU3X,IACrDukF,EAAK94E,KAAK45E,mBAAmB,eAAwB,OAAR1tE,QAAQ,IAARA,GAAe,QAAPktE,EAARltE,EAAU4uB,aAAK,IAAAs+C,OAAP,EAARA,EAAiBx1F,OAC9Dk1F,EAAK94E,KAAK45E,mBAAmB,MAAc,OAAPh4E,QAAO,IAAPA,OAAO,EAAPA,EAASgO,UAC7CkpE,EAAK94E,KAAK45E,mBAAmB,gBAAyB,OAAR1tE,QAAQ,IAARA,GAAkB,QAAVmtE,EAARntE,EAAUo0C,gBAAQ,IAAA+4B,OAAV,EAARA,EAAoBz1F,OAClEk1F,EAAK94E,KAAK45E,mBAAmB,SAAiB,OAAPh4E,QAAO,IAAPA,OAAO,EAAPA,EAAS+N,WAGhDmpE,EAAK94E,KAAK45E,mBACR,kBAC0B,OAAlB,OAAR1tE,QAAQ,IAARA,OAAQ,EAARA,EAAU0/C,cAAuB,MAAQ,QAI/B,OAAR1/C,QAAQ,IAARA,OAAQ,EAARA,EAAU4tE,aAAc,GAC1BhB,EAAK94E,KAAK45E,mBAAmB,iBAAkB7E,EAAkB7oE,EAAS4tE,eAKhE,OAAR5tE,QAAQ,IAARA,GAAe,QAAPotE,EAARptE,EAAU6tE,aAAK,IAAAT,OAAP,EAARA,EAAiB3yF,QAAS,GAAG,CAAC,IAADqzF,EAAAC,EACzBC,EAAWhuE,EAAS6tE,MAAM34F,QAAO,SAAC+4F,GAAI,MAAgC,QAA3BA,EAAKC,qBAEhDC,GAAkB,OAARH,QAAQ,IAARA,OAAQ,EAARA,EAAUvzF,QAAS,EAAIuzF,EAAS,GAAK,KAEnDG,IACoB,QAApBL,EAAAK,EAAQC,oBAAY,IAAAN,OAAA,EAApBA,EAAsB3vF,QAAS,GACS,QAApB,QAApB4vF,EAAAI,EAAQC,oBAAY,IAAAL,OAAA,EAApBA,EAAsBM,iBAEtBzB,EAAK94E,KAAK45E,mBACR,yBACAjlB,eAAyB,OAAP0lB,QAAO,IAAPA,OAAO,EAAPA,EAASC,aAAapkD,QAE1C4iD,EAAK94E,KAAK45E,mBACR,4BACA7E,EAAyB,OAAPsF,QAAO,IAAPA,OAAO,EAAPA,EAASC,aAAajwF,UAKhD,IAAMmwF,EAASzvF,SAASysC,eAAe,eACnCgjD,IACFA,EAAOv1F,MAAM8+C,OAAS,OACtBy2C,EAAOv1F,MAAMsM,MAAQ,YAuC1B,CAAC8Z,EAAoBzJ,IAGtB3f,cAAC2nE,IAAM,CAAAznE,SACLF,cAAA,UAAQsS,GAAG,iBAAiBkc,IAAK9jB,MCrHrBG,YAAO8jB,KAAP9jB,EAAa,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,MAAQ,CAC7CuF,SAAU,SACVjN,SAAU,WACViM,MAAO,GACP/C,IAAK,IACL8C,OAAQ,GACRkB,UAAWxF,EAAMyF,cAAcm0C,IAC/Bh5C,aAAcZ,EAAMa,MAAMC,eAC1B6E,OAAQ,oBACRwd,SAAU,QAMG,SAASsqE,KACtB,IAAQxQ,EAAe3+C,eAAf2+C,WACA1rB,EAAWjzC,eAAXizC,OACRh+D,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GAEpBS,qBAAU,WAKR,OAJU,OAAV+oF,QAAU,IAAVA,KAAYj+B,GAAG,wBAAwB,SAACjrD,GACtCqzB,GAAQ,MAGH,WACK,OAAV61D,QAAU,IAAVA,KAAY6D,IAAI,2BAEjB,IAUH,OACEnrF,eAACutB,KAAM,CAACjH,KAAMA,EAAMtlB,WAAS,EAACwsB,SAAS,KAAIhuB,SAAA,CACzCF,cAAC0uB,KAAW,CAAAxuB,SAAC,mBAEbF,cAACmuB,KAAa,CAACvtB,GAAI,CAAEiN,EAAG,KAAM3N,SAC5BQ,eAAC4+C,KAAgB,CACf32C,IAAI,mDACJ6d,MAAM,iBACN+4B,aAAc,IAAIr/C,SAAA,CAElBF,cAACc,IAAU,CAACC,QAAQ,QAAQC,cAAY,EAAAd,SAAC,oGAIzCF,cAACW,KAAG,CAAAT,SACFF,cAAC+uB,KAAM,CAAChuB,QAAQ,YAAY4jB,QAnBX,WACzB23C,KAkBgEp8D,SAAC,6B,cCvDtD,SAASu4F,KACtB,IAAAv6C,EAA8C70B,eAAtC87D,EAAYjnC,EAAZinC,aAAcvtD,EAAUsmB,EAAVtmB,WAAYjY,EAAOu+B,EAAPv+B,QAC1B69B,EAAqBC,aAAmB,CAAEC,kBAAmB,CAACC,KAAW+6C,eAAzEl7C,iBACRl/C,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GAEpBirB,EAA0DlrB,oBAAS,GAAMmrB,EAAAjrB,YAAAgrB,EAAA,GAAlEkvE,EAAqBjvE,EAAA,GAAEkvE,EAAwBlvE,EAAA,GACtDG,EAAwCtrB,oBAAS,GAAMurB,EAAArrB,YAAAorB,EAAA,GAAhDgvE,EAAY/uE,EAAA,GAAEgvE,EAAehvE,EAAA,GAE9BuM,EAAc,WAClBlE,GAAQ,GACJwmE,GACFl4E,YAAS0kE,EAAYpmF,wBAAC,GAAY,OAAP4gB,QAAO,IAAPA,OAAO,EAAPA,EAASqhD,QAAM,IAAE23B,uBAAuB,OAiBvE,OAVA15F,qBAAU,WACR,IAAM85F,EAAa3oD,YAAW,WAC5Bje,EAAQqrB,KACP,KAEH,OAAO,WACLk6B,aAAaqhB,MAEd,KAEEv7C,GAAoB5lB,EAAmB53B,cAAAC,WAAA,IAG1CS,eAACutB,KAAM,CAACjH,KAAMA,EAAMkH,SAAU,KAAMxsB,WAAS,EAAAxB,SAAA,CAC3CF,cAACq3B,KAAoB,CACnB/kB,GAAG,QACH2U,QAASoP,EACT7P,MAAM,uCACNvkB,UAAW+kB,IAEbtmB,eAAC47C,KAAQ,CAACC,IAAKs8C,EAAa34F,SAAA,CAC1BQ,eAACytB,KAAa,CAAAjuB,SAAA,CACZF,cAACW,KAAG,CAAAT,SACFF,cAACyoB,KAAmB,CAClB/d,IACEsc,EACI,+EACA,GAEN0B,SAAS,MAGb1oB,cAACW,KAAG,CAAC+C,UAAU,OAAMxD,SACnBF,cAAC80B,KAAgB,CACf72B,SAtCS,SAAC6lB,GACpB80E,EAAyB90E,EAAMvgB,OAAO0xB,UAsC5BF,QAAS/0B,cAACg1B,KAAQ,IAClBrzB,MACE3B,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAC,8HAQpCQ,eAACmuB,KAAa,CAAA3uB,SAAA,CACZF,cAAC+uB,KAAM,CAACpK,QAAS0R,EAAap0B,UAAW+kB,EAAK9mB,SAAC,WAG/CF,cAACW,KAAG,CAAC2jB,SAAU,IACftkB,cAAC+uB,KAAM,CAACpK,QAAS,kBAAMm0E,GAAgB,IAAO/3F,QAAQ,WAAUb,SAAC,6BAKrEF,cAACs8C,KAAQ,CAACC,GAAIs8C,EAAa34F,SACzBF,cAACg5F,KAAW,CACVpoD,SAAU,kBAAMkoD,GAAgB,IAChCv9D,OAAQ,CACNC,UAAW,SACXC,UAAW,MACXC,IAAK,GACLvB,UAAW,GACXkE,SAAU,WCnGP,SAAS46D,KAKtB,OAJ6Bx7C,aAAmB,CAC9CC,kBAAmB,CAACC,KAAWu7C,sBADzB17C,iBAMDx9C,cAACk5F,GAAkB,IAFIl5F,cAAAC,WAAA,IAWhC,SAASi5F,KACP,IAAAC,ECZa,SAA8B34F,GAA+C,IAA5C44F,EAAW54F,EAAX44F,YAC9C96F,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GACZ66F,EAAyBhwD,eAAzBgwD,qBACRn7C,EAA6D70B,eAArD80B,EAAgBD,EAAhBC,iBAAkB/0B,EAAkB80B,EAAlB90B,mBAAoBwO,EAAUsmB,EAAVtmB,WAC9CtD,EAAoDC,YAIjD,qBAAsB,CAAEhI,MAAO,KAAM+jD,IAAK,KAAMgpB,QAAS,OAAO9kE,EAAA/1B,YAAA61B,EAAA,GAJ5DilE,EAAkB/kE,EAAA,GAAEglE,EAAqBhlE,EAAA,GAmFhD,OA7EAv1B,qBAAU,WACR,IAAI24B,EAAJ,CAGA,IAAMuY,EAAW6nC,aAAY,WAC3B,IAAMyhB,GAAoB,IAAIn3F,MAAO0uE,SAC/Be,GAAQ,IAAIzvE,MAAOo3F,WACnBznB,GAAU,IAAI3vE,MAAOq3F,aAG3B,KAAIJ,EAAmBD,SAAW,IAAIh3F,KAAKi3F,EAAmBD,SAAW,IAAIh3F,OAK3E,CAAC,EAAG,EAAG,EAAG,EAAG,GAAG/C,SAASk6F,IACzB,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAIl6F,SAASwyE,IAC5D,CAAC,EAAG,EAAG,EAAG,EAAG,GAAGxyE,SAAS0yE,GACzB,CAEA,IAAI2nB,EAAU,IAAIt3F,KAGlBs3F,EAAQC,SAAQ,IAAIv3F,MAAO+uE,UAA0B,IAAd+nB,GAGvCI,EAAsB,CACpBjtE,OAAO,IAAIjqB,MAAO+uE,UAClBf,IAAKspB,EAAQvoB,UACbioB,QAASM,EAAQvoB,YAGnBl/C,GAAQ,MAET,KAGH,OAAO,WACLke,cAAcF,OAEf,CAACopD,IAKJt6F,qBAAU,WACJ+nB,GACFqyE,EACES,KAAQC,yBACR,wBACA3wE,IAAqB2uD,gBAExB,CAAC/wD,IAEJ/nB,qBAAU,WACJs6F,EAAmBjpB,KAAO,IAAIhuE,KAAKi3F,EAAmBjpB,KAAO,IAAIhuE,MACnE6vB,GAAQ,KAET,IAmBI,CACLnL,OACAC,QANc,WACdkL,GAAQ,IAMRonE,qBACAp7C,mBACA67C,OAnBa,WACbX,EACES,KAAQG,4BACR,wBACA7wE,IAAqB2uD,cAEvByhB,EAAqBz6F,wBAAC,GAAKw6F,GAAkB,IAAEjpB,IAAK,KAAM/jD,MAAO,QACjE4F,GAAQ,KDpE8D+nE,CAAsB,CAC5Fd,YAAa,MADPpyE,EAAImyE,EAAJnyE,KAAMC,EAAOkyE,EAAPlyE,QAASsyE,EAAkBJ,EAAlBI,mBAAoBS,EAAMb,EAANa,OAAQ77C,EAAgBg7C,EAAhBh7C,iBAI7Cg8C,GAAO,IAAI73F,MAAOo3F,WAExB,OACE15F,cAACiuB,KAAM,CAACjH,KAAMA,EAAK9mB,SACjBF,cAACmuB,KAAa,CAAAjuB,SACZF,cAACs/C,KAAgB,CAAC32C,IAAG,sCAAA1H,OAAwCk5F,EAAI,QAAOj6F,SACtEQ,eAACC,KAAG,CAAAT,SAAA,CACFF,cAACW,KAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQsiB,eAAgB,OAAQ5uB,SAClDF,cAACmqF,GAAc,CACb7Y,WAAY,IAAIhvE,KAAKi3F,EAAmBjpB,KACxCa,UAAW,IAAI7uE,KAAKi3F,EAAmBhtE,OACvC89D,cAAe,IACfC,YAAa,GACbG,UAAWxjE,MAIfjnB,cAACc,IAAU,CAACC,QAAQ,YAAY03C,WAAS,EAAAv4C,SAAC,+BAG1CQ,eAACI,IAAU,CAACC,QAAQ,QAAQC,cAAY,EAAAd,SAAA,CAAC,2DACWF,cAAA,UAAAE,SAAQ,cAAkB,4CAG9EQ,eAACI,IAAU,CAACC,QAAQ,QAAQ03C,WAAS,EAAAv4C,SAAA,CAAC,4EAEnCi+C,IAAqB,GAAK,IAAI,UAAQA,IAAqB,GAAK,IAAI,4EAIvEn+C,cAACW,KAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQsiB,eAAgB,UAAW5uB,SACrDQ,eAACquB,KAAM,CAAChuB,QAAQ,YAAY4jB,QAASq1E,EAAO95F,SAAA,CAAC,qBAC3Bi+C,IAAqB,GAAK,kB,yBEzD7Ci8C,GAAkB,WAC7B,IAAAhxD,EAAuCC,eAA/B2+C,EAAU5+C,EAAV4+C,WAAYqS,EAAOjxD,EAAPixD,QAASh8F,EAAK+qC,EAAL/qC,MAC7BC,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAA1B6zB,GAAF3zB,EAAA,GAASA,EAAA,IAWpB,GAJAS,qBAAU,WACJq7F,KAAmBC,cAAcpoE,GAAQ,KAC5C,CAAW,OAAV61D,QAAU,IAAVA,OAAU,EAAVA,EAAYn2E,QAEZxT,IAAmB,OAAV2pF,QAAU,IAAVA,OAAU,EAAVA,EAAYn2E,SAAUyoF,KAAmBC,aACpD,OACEv6F,cAACqxC,KAAQ,CAACrqB,MAAM,EAAMhX,aAAc,CAAEC,SAAU,MAAOC,WAAY,UAAWhQ,SAC5EF,cAAC+sB,KAAK,CAACC,SAAS,QAAQpsB,GAAI,CAAE+C,MAAO,QAASzD,SAAC,6CAOrD,OAAkB,OAAV8nF,QAAU,IAAVA,OAAU,EAAVA,EAAYn2E,OAClB,KAAKyoF,KAAmBC,aACtB,OACEv6F,cAACW,KAAG,CAAAT,SACFQ,eAACqsB,KAAK,CACJC,SAAS,UACTjb,OACE/R,cAAC+uB,KAAM,CACLhuB,QAAQ,WACR4jB,QA5BW,WACnB01E,GAASA,IACbloE,GAAQ,IA2BIlmB,MAAM,UACNrL,GAAI,CAAEqL,MAAO,WAAY/L,SAC1B,mBAGFA,SAAA,CAEDF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,0CAChCF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAC,yFAOpC,KAAKo6F,KAAmBE,aACtB,OACEx6F,cAACqxC,KAAQ,CAACrqB,MAAM,EAAMhX,aAAc,CAAEC,SAAU,MAAOC,WAAY,UAAWhQ,SAC5EF,cAAC+sB,KAAK,CAACC,SAAS,UAAUpsB,GAAI,CAAE+C,MAAO,QAASzD,SAAC,2CAMvD,QACE,OAAOF,cAAAC,WAAA,MC1DE,SAASw6F,KACtB,IAAQC,ECJK,WACb,IAAMC,EAAiBC,SAAS99B,gBAChCx+D,EAA8CC,oBAAkB,GAAMC,EAAAC,YAAAH,EAAA,GAA/Do8F,EAAel8F,EAAA,GAAEq8F,EAAkBr8F,EAAA,GAClCwpF,EAAe3+C,eAAf2+C,WAiBR,OAdA/oF,qBAAU,WAKR,OAJU,OAAV+oF,QAAU,IAAVA,KAAYj+B,GAAG,mBAAmB,SAACriB,GAC7BA,EAAUizD,GAAgBE,GAAmB,MAG5C,WACK,OAAV7S,QAAU,IAAVA,KAAY6D,IAAI,sBAEjB,CAAC7D,IAEJ/oF,qBAAU,WACRq6B,QAAQC,IAAI,8BAADt4B,OAA+B67D,mBACzC,IAEI,CACL49B,mBDjB0BI,GAApBJ,gBAMR,OACE16F,cAAAC,WAAA,CAAAC,SACGw6F,GACC16F,cAAC+uB,KAAM,CAACpK,QAPY,WACxBpb,OAAOie,SAAS4xC,UAMwBx3D,KAAK,QAAO1B,SAC9CQ,eAACqsB,KAAK,CACJC,SAAS,OACTpsB,GAAI,CAAEqC,UAAW,QACjB8O,OACE/R,cAAC+uB,KAAM,CAAChuB,QAAQ,WAAWkL,MAAM,OAAM/L,SAAC,qBAGzCA,SAAA,CAEDF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,8BAChCF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAC,sF,2GEC3B66F,GAAgB,SAAHv6F,GAAqD,IAA/CyqC,EAAOzqC,EAAPyqC,QAAShkB,EAAOzmB,EAAPymB,QAAS/mB,EAAQM,EAARN,SACxCosC,EAAoBC,eAApBD,gBACRhuC,EAAsCC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAA9C08F,EAAWx8F,EAAA,GAAEy8F,EAAcz8F,EAAA,GAClC08F,EAQIC,aAAU,CACZlwD,QAASA,EACTmwD,OAAQ,eATRC,EAAYH,EAAZG,aACAp9F,EAAQi9F,EAARj9F,SACAq9F,EAAcJ,EAAdI,eACAC,EAAqBL,EAArBK,sBACAC,EAAeN,EAAfM,gBACAC,EAAIP,EAAJO,KACAC,EAAiBR,EAAjBQ,kBAMFC,EC7B8B,SAAC1wD,EAAyBowD,GACxD,IAAA/8F,EAAoCC,mBAAS,GAAEC,EAAAC,YAAAH,EAAA,GAAxCoY,EAAUlY,EAAA,GAAEwxD,EAAaxxD,EAAA,GA2BhC,OAzBAS,qBAAU,WACR+wD,EAAc,KACb,CAAC/kB,IAuBG,CACLowD,eACA3kF,aACAklF,aAhBmB,WACnB,OAAOP,EAAavqF,QAClB,SAAC+qF,EAAcC,GAAc,OAAKD,EAAeC,EAAeC,WAAWr3F,SAC3E,IAcFs3F,WArBiB,WACjBhsC,GAAc,SAACisC,GAAc,OAAKA,EAAiB,MAqBnDC,WA1BiB,WACjBlsC,GAAc,SAACisC,GAAc,OAAKA,EAAiB,MA0BnDE,cAZoB,WACpB,IAAI9iC,EAAyB,GAE7B,OADAgiC,EAAav5F,KAAI,SAACkhB,EAAGnP,GAAK,OAAKmP,EAAE+4E,WAAWj6F,KAAI,SAACod,GAAM,OAAKm6C,EAAQn1D,KAAKgb,SAClEm6C,EAAQ3iD,KDI2D0lF,CAC1EnxD,EACAowD,GAFM3kF,EAAUilF,EAAVjlF,WAAYklF,EAAYD,EAAZC,aAAcI,EAAUL,EAAVK,WAAYE,EAAUP,EAAVO,WAAYC,EAAaR,EAAbQ,cAKpDE,EAAUT,IAEhB38F,qBAAU,WACR,IAAMq9F,EAAkBH,SACAx3F,IAApB23F,IACCZ,EAAkBY,IAAoB5lF,EAAa,GACtDwlF,MAED,CAACb,IAkBJ,OACE36F,eAACiuB,KAAI,CAAAzuB,SAAA,CACHF,cAACumB,KAAU,CACTo5B,OACE3/C,cAAAC,WAAA,CAAAC,SACkB,IAAfwW,GACC1W,cAAC0mB,KAAW,CAAC/B,QAASq3E,EAAW97F,SAC/BF,cAACk7B,KAAI,CAAC9N,KAAMmvE,KAAkB54F,MAAO,GAAIiF,OAAQ,SAKzDmJ,OACE/R,cAAC8zB,KAAU,CAACnP,QAASsC,EAAQ/mB,SAC3BF,cAACs6E,KAAS,QAIH,OAAZ+gB,QAAY,IAAZA,OAAY,EAAZA,EAAcv5F,KAAI,SAACoY,EAAGjW,GAAC,OACtBjE,cAACw8F,KAAkB,CAEjBnmF,SAAU6D,EACVtZ,GAAI,CACFqC,UAAW,SACXsN,UAAW,OACXzE,gBAAiB,OACjB,yBAA0B,CAAEuzB,cAAe,QAC3Cn/B,SAED,SAACgf,EAAQu9E,EAAgB5oF,GACxB,OAAIA,IAAU6C,EAAmB1W,cAAAC,WAAA,IAG/BS,eAAAT,WAAA,CAAAC,SAAA,CACGA,EAEDF,cAACc,IAAU,CAACC,QAAQ,QAAQC,cAAY,EAAAd,SACrCgf,EAAOmc,WAGVr7B,cAAC08F,KAAW,CACVx9E,OAAQA,EACR0Y,YAAY,EACZ/jB,MAAOA,EAEP5V,SAAU,SAACa,GAAa,OAAKb,EAASic,EAAE5H,GAAI4M,EAAO5M,GAAIxT,IACvDw8F,eAAgB,SAACx8F,GAAa,OAAKw8F,EAAephF,EAAE5H,GAAI4M,EAAO5M,GAAIxT,IACnE69F,mBAAoB,SAACrqF,EAAYxT,GAAa,OAC5Cy8F,EAAsBrhF,EAAE5H,GAAI4M,EAAO5M,GAAIA,EAAIxT,IAE7C08F,gBAAiB,SAAC18F,EAAem2B,GAAgB,OAC/CumE,EAAgBthF,EAAE5H,GAAI4M,EAAO5M,GAAIxT,EAAOm2B,IAE1C2nE,QAAS,SAACnuC,GAAW,OAAKwsC,EAAexsC,KATpC56C,QAaZ,gBAAA5S,OArCoBiZ,EAAE5H,GAAKrO,OAyChCvD,eAACC,KAAG,CAACC,GAAI,CAAEqC,UAAW,SAAUpC,GAAI,GAAIX,SAAA,CACrCwW,IAAe2lF,EAAU,GACxBr8F,cAAC+uB,KAAM,CAAChuB,QAAQ,YAAYa,KAAK,QAAQ+iB,QA/E9B,WACjBlE,YACEg7E,KAAO,WAELnvD,EAAgB,iDAAuC,CAAEvrC,QAAS,YAC9DkmB,GAASA,MAHfw0E,EAIG,WACDnvD,EACE,wFACA,CAAEvrC,QAAS,UAETkmB,GAASA,SAoEkD/mB,SAAC,cAK7DwW,IAAe2lF,EAAU,IAAMrB,IAChCh7F,cAAC+uB,KAAM,CAACpK,QAASu3E,EAAYn7F,QAAQ,YAAYa,KAAK,QAAO1B,SAAC,iBAMlEF,cAAC68F,KAAa,CACZ97F,QAAQ,WACR0vD,MAAO4rC,EACPh5F,SAAS,SACTqT,WAAYA,EACZ9V,GAAI,CACFkuB,eAAgB,SAChBztB,IAAK,MACLijB,SAAU,EACV,sDAAuD,CAAE3gB,MAAO,QAElEm5F,WAAY98F,cAAAC,WAAA,IACZ88F,WAAY/8F,cAAAC,WAAA,U,UEvHL+8F,GAhCU,SAAHx8F,GAAoD,IAA9C0e,EAAM1e,EAAN0e,OAAQ+H,EAAOzmB,EAAPymB,QAClC,OACEjnB,cAACiuB,KAAM,CACLjH,MAAM,EACNtlB,WAAS,EACTwsB,SAAS,KACT+uE,cAAc,EACdh2E,QAASA,EACTrmB,GAAI,CAAE,yBAA0B,CAAEW,WAAY,QAAUrB,SAExDF,cAACk9F,KAAe,CACdjyD,QAAS,CACPivB,OAAQh7C,EAAO5M,GACf6nD,OAAQj7C,EAAOw6C,OACfU,MAAOl7C,EAAOw8B,OACdx7C,SAED,SAACumC,EAAU02D,GAAS,OACnBz8F,eAACq6F,GAAa,CAAC9vD,QAASxE,EAAUxf,QAASA,EAAQ/mB,SAAA,CACjDF,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAEgf,EAAOvd,QACrCud,EAAOo7C,SACNt6D,cAACc,IAAU,CAACC,QAAQ,UAAU03C,WAAS,EAAAv4C,SACpCuwB,aAAMvR,EAAOo7C,QAAS,2CCOxB8iC,GAlCqB,WAClC,IAAQ/jC,EAAY34C,aAAY,SAAC7O,GAAgB,OAAKA,EAAMqN,UAApDm6C,QACA4J,EAAmBviD,aAAY,SAAC7O,GAAgB,OAAKA,EAAMuL,gBAA3D6lD,eACR3kE,EAA4BC,mBAAwB,MAAKC,EAAAC,YAAAH,EAAA,GAAlD4gB,EAAM1gB,EAAA,GAAE6+F,EAAS7+F,EAAA,GAExBS,qBAAU,WACR,IAAMq+F,EAAkBjkC,EAAQzuC,MAC9B,SAAC5H,GAAC,OAAKA,EAAEu6E,gBAAkB,GAAkB,WAAbv6E,EAAE02C,QAAgC,MAAT12C,EAAE1Q,MAG7D,GAAIgrF,EAAiB,CACnB,IAAME,EAAkBv6B,EAAer4C,MAAK,SAAC6yE,GAAE,OAAKA,EAAGnrF,MAAQgrF,EAAgB5hD,SAE3E8hD,GACFH,EACEpwF,OAAOC,OAAO,GAAIowF,EAAiB,CACjChjC,QAAwB,OAAfkjC,QAAe,IAAfA,OAAe,EAAfA,EAAiB/iB,UAC1B94E,MAAsB,OAAf67F,QAAe,IAAfA,OAAe,EAAfA,EAAiBh3E,YAK/B,CAACy8C,EAAgB5J,IAQpB,OAAe,OAAXn6C,EAAwBlf,cAAAC,WAAA,IAErBD,cAACg9F,GAAgB,CAAC/1E,QART,WACV/H,GACFuB,YAASw5C,aAAW,CAAEE,OAAc,OAANj7C,QAAM,IAANA,OAAM,EAANA,EAAQw6C,OAAQU,MAAa,OAANl7C,QAAM,IAANA,OAAM,EAANA,EAAQw8B,MAAOwe,OAAQh7C,EAAO5M,MACrF+qF,EAAU,OAK+Bn+E,OAAQA,KC/BtC,SAASw+E,KACtB,IAAQx+E,EAAWwB,aAAY,SAAC7O,GAAgB,OAAKA,EAAMqN,UAAnDA,OAMR,OAAe,OAAXA,EAAwBlf,cAAAC,WAAA,IAErBD,cAACg9F,GAAgB,CAAC/1E,QANL,WAClBxG,YAASu5C,iBAKoC96C,OAAQA,I,wBC0G1Cy+E,GApGO,WACpB,IAAAxxD,EAAiDzrB,aAAY,SAAC7O,GAAgB,OAAKA,EAAMqN,UAAjFm6C,EAAOltB,EAAPktB,QAASC,EAAcntB,EAAdmtB,eACjBh7D,GAD4C6tC,EAAXotB,YACLh7D,mBAAwB,OAAKC,EAAAC,YAAAH,EAAA,GAAlD4gB,EAAM1gB,EAAA,GAAE6+F,EAAS7+F,EAAA,GAExBS,qBAAU,WACJigB,GACFuB,YAASw5C,aAAW,CAAEE,OAAQj7C,EAAOw6C,OAAQU,MAAa,OAANl7C,QAAM,IAANA,OAAM,EAANA,EAAQw8B,MAAOwe,OAAc,OAANh7C,QAAM,IAANA,OAAM,EAANA,EAAQ5M,QAEpF,CAAC4M,IAEJ,IAAM+H,EAAU,WACdo2E,EAAU,OAcNO,EAAgBvkC,EAAQ30D,OAAS,EAuBvC,OArBAzF,qBAAU,WAER,IAAM4+F,EAAWxkC,EACdroD,QACA7R,QAAO,SAAC6jB,GAAC,OAAKA,EAAEu6E,gBAAkB,GAAkB,WAAbv6E,EAAE02C,UACzCrtC,MAAK,SAAC7d,EAAG8d,GACR,IAAMwxE,EAAQ,IAAIx7F,KAAKkM,EAAE8rD,SACnByjC,EAAQ,IAAIz7F,KAAKgqB,EAAEguC,SAEzB,OAAIwjC,EAAQC,GACF,EAEND,EAAQC,EACH,EAEF,KAGPF,GAAYA,EAASn5F,OAAS,GAAG24F,EAAUQ,EAAS,MACvD,CAACD,IAEW,OAAX1+E,EAAwBlf,cAAAC,WAAA,IAG1BS,eAACutB,KAAM,CAACjH,MAAM,EAAMC,QAASA,EAAQ/mB,SAAA,CACnCF,cAACq3B,KAAoB,CAAC7Q,MAAM,GAAGS,QAASA,EAAS3U,GAAG,oBAEpDtS,cAACmuB,KAAa,CAAAjuB,SACXo5D,EACCt5D,cAAAC,WAAA,CAAAC,SACEF,cAACk9F,KAAe,CACdjyD,QAAS,CACPmvB,MAAqB,OAAdd,QAAc,IAAdA,OAAc,EAAdA,EAAgB5d,MACvBye,OAAsB,OAAdb,QAAc,IAAdA,OAAc,EAAdA,EAAgBI,OACxBQ,OAAsB,OAAdZ,QAAc,IAAdA,OAAc,EAAdA,EAAgBhnD,IACxBpS,SAED,SAACumC,EAAU02D,GAAS,OACnBA,EACEn9F,cAACg+F,KAAqB,CAACv3D,SAAUA,IAEjCzmC,cAACi+F,KAAc,CAACx3D,SAAUA,SAMlCzmC,cAAAC,WAAA,CAAAC,SACEF,cAACs/C,KAAgB,CAAC32C,IAAG,gEAAkEzI,SACpFgf,GACCxe,eAACC,KAAG,CAAAT,SAAA,CACFF,cAACc,IAAU,CAACC,QAAQ,YAAY03C,WAAS,EAAAv4C,SACtCgf,EAAOvd,QAEV3B,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,qBAChCF,cAACc,IAAU,CAACC,QAAQ,QAAQ03C,WAAS,EAAAv4C,SAAC,2HAItCF,cAACW,KAAG,CAACC,GAAI,CAAE4L,QAAS,QAAStM,SAC3BF,cAAC+uB,KAAM,CAAChuB,QAAQ,YAA4B4jB,QAzEzC,YACT,OAANzF,QAAM,IAANA,OAAM,EAANA,EAAQxU,KACVnB,OAAOyd,KAAK9H,EAAOxU,MAIrB+V,YAASo5C,aAAqB36C,IAC9B+H,MAkEkF/mB,SAAC,aAAlCgf,EAAO5M,mBC/F7C4rF,GATc,WAC3B,IAAQrjF,EAAYihB,eAAZjhB,QAMR,OAJA5b,qBAAU,WACJ4b,GAAStR,OAAO8e,OAAO81E,YAAY,CAAE9+F,KAAMwb,EAAQxb,MAAQ,OAC9D,CAACwb,IAEG7a,cAAAC,WAAA,K,oBCAM,SAASm+F,KACtB,IAAAjyD,EAAsDzrB,aACpD,SAAC7O,GAAgB,OAAKA,EAAM0N,UADtB8+E,EAAWlyD,EAAXkyD,YAAkC9tC,GAAFpkB,EAAnBmyD,oBAA4BnyD,EAAPokB,SAIlCnnC,EAAuBC,eAAvBD,mBACFa,EAAWb,IAEX5B,EAAWpC,cACXwY,EAAWC,cAMjBv/B,EAAwDC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhEigG,EAAoB//F,EAAA,GAAEggG,EAAuBhgG,EAAA,GAEpDirB,EAAkDlrB,oBAAS,GAAMmrB,EAAAjrB,YAAAgrB,EAAA,GAA1Dg1E,EAAiB/0E,EAAA,GAAEg1E,EAAoBh1E,EAAA,GAE9CG,EAAoCtrB,oBAAS,GAAMurB,EAAArrB,YAAAorB,EAAA,GAA5C80E,EAAU70E,EAAA,GAAE80E,EAAa90E,EAAA,GAIhC6L,EAAsDp3B,oBAAS,GAAMq3B,EAAAn3B,YAAAk3B,EAAA,GAA9DkpE,EAAmBjpE,EAAA,GAAEkpE,EAAsBlpE,EAAA,GAMlDmpE,EAAwBxgG,oBAAS,GAAMygG,EAAAvgG,YAAAsgG,EAAA,GAAhC/3E,EAAIg4E,EAAA,GAAE7sE,EAAO6sE,EAAA,GAEpBC,EAAkC1gG,oBAAS,GAAM2gG,EAAAzgG,YAAAwgG,EAAA,GAA1C/mE,EAASgnE,EAAA,GAAEC,EAAYD,EAAA,GAiF9BjgG,qBAAU,YA5EgB,WACxB,GAAIgrB,EAAU2tE,kBAAoB3tE,EAAUm1E,YAAa,CACvD,IAAMlqB,GAAc,IAAI5yE,MAAO+uE,UACzBguB,EAAkB,IAAI/8F,KAAK2nB,EAAS2tE,kBAAmBvmB,UAIvDiuB,EAAsBpqB,GADJmqB,GAFJ,IAAI/8F,KAAK2nB,EAASm1E,aAAc/tB,UAEKguB,GAAmB,GAChB,EAEtDE,EAAU7tB,KAAK8tB,OAAOtqB,EAAcmqB,GAAe,OAErDC,GACFZ,GAAqB,GACrBF,GAAwB,IACfe,GAAW,KACpBb,GAAqB,GACrBF,GAAwB,KA6D5BiB,KACC,CAAS,OAARx1E,QAAQ,IAARA,OAAQ,EAARA,EAAU3X,KAKdrT,qBAAU,YA3DY,WAAO,IAADygG,EAAAC,EAAAC,EAC1B,GAAKvB,GAAgBA,EAAYt4F,0BAE1B,CACL,IAAM85F,EAAyB9gG,wBAAA,GAC1Bs/F,GAAW,IACdt7E,SAAUE,aAAyC,OAAXo7E,QAAW,IAAXA,OAAW,EAAXA,EAAat7E,UACrDI,SAAUD,aAA8B,OAAXm7E,QAAW,IAAXA,OAAW,EAAXA,EAAal7E,YAG5C,OAAQ08E,EAASC,oBACf,KAAKn4F,KAAuBo4F,QAC1BnB,GAA+B,QAAjBc,EAAAG,EAAS98E,gBAAQ,IAAA28E,OAAA,EAAjBA,EAAmBh7F,QAAS,GAC1C,MACF,KAAKiD,KAAuBE,KAC1B+2F,GAA+B,QAAjBe,EAAAE,EAAS18E,gBAAQ,IAAAw8E,OAAA,EAAjBA,EAAmBj7F,QAAS,GAC1C,MACF,KAAKiD,KAAuBG,UAC1B82F,GAA+B,QAAjBgB,EAAAC,EAAS18E,gBAAQ,IAAAy8E,OAAA,EAAjBA,EAAmBl7F,QAAS,SAhB9Ck6F,GAAc,GA0DhBoB,KACC,CAAC3B,IAYJp/F,qBAAU,WAlCD6/F,EACLH,GACEpuC,IACCA,EAAQza,MACP,SAACxyC,GAAC,IAAA28F,EAAA,OAAK38F,EAAEjE,QAAoB,OAAXg/F,QAAW,IAAXA,OAAW,EAAXA,EAAah/F,QAAS,CAAC,MAAO,OAAOE,SAA4B,QAApB0gG,EAAC38F,EAAE2B,yBAAiB,IAAAg7F,OAAA,EAAnBA,EAAqB5gG,YAgC1F,CAACs/F,EAAYpuC,IAKhBtxD,qBAAU,WACRihG,MACC,CACD3B,EACAE,EACAE,EACAE,IAOF5/F,qBAAU,WACJw/F,GAAqBj3E,EAASrC,UAAY4Y,KAAe0zB,MAAM0uC,qBACjED,MAED,CAAC14E,IAKJ,IAAM04E,EAAc,YAEf3B,GAAwBE,IACzBE,GACAE,GAGAM,EAAaV,GACbtsE,GAAQ,KAERgtE,GAAa,GACbhtE,GAAQ,KAmBZ,MAAO,CACL/I,qBACAi1E,cACAnmE,YACAlR,OACAC,QApBc,WACTiR,GACH/F,GAAQ,IAmBVye,SAfe,WACfze,GAAQ,IAeRiuE,WAZiB,WACjBjuE,GAAQ,GACRyL,EAASG,KAAe0zB,MAAM0uC,uBCpLnB,SAASE,GAAsB7/F,GAAmC,IAAD8/F,EAAAnzF,YAAA3M,GAC9E,IAAA+/F,EACEnC,KADMC,EAAWkC,EAAXlC,YAAar3E,EAAIu5E,EAAJv5E,KAAMkR,EAASqoE,EAATroE,UAAWjR,EAAOs5E,EAAPt5E,QAAS2pB,EAAQ2vD,EAAR3vD,SAAUwvD,EAAUG,EAAVH,WAEjDjiD,EAAqB90B,eAArB80B,iBAER,IAAKkgD,EAAa,OAAOr+F,cAAAC,WAAA,IAEzB,IAAMugG,EAAW,GAAAv/F,OAAqD,QAArDq/F,EAAMh/E,aAAyB+8E,EAAY7+F,kBAAU,IAAA8gG,OAAA,EAA/CA,EAAiD1+E,OAAM,KAAA3gB,OAC5Eo9F,EAAYl9F,aAGd,OACET,eAACutB,KAAM,CAACC,SAAS,KAAKlH,KAAMA,EAAMC,QAASA,EAAQ/mB,SAAA,CACjDQ,eAACguB,KAAW,CAAC9tB,GAAI,CAAEwtB,GAAI,GAAIluB,SAAA,CAAC,gBAAcsgG,KAC1C9/F,eAACytB,KAAa,CAACvtB,GAAI,CAAEiN,EAAG,EAAGugB,GAAI,GAAIluB,SAAA,CACjCQ,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAC1Bg4B,GAAal4B,cAAA,KAAAE,SAAG,kFAAsE,mPAG7Ci+C,IAAqB,GAAK,IAAI,wMAGvEA,IAAqB,GAAK,IAAI,iDAEjCn+C,cAACW,IAAG,CACFoN,UAAU,MACVygB,IACE0J,EACI,kEACA,sDAENt3B,GAAI,CAAE6tB,UAAW,IAAK9qB,MAAO,aAIjCjD,eAACmuB,KAAa,CAACjuB,GAAI,CAAEkuB,eAAgB,UAAW5uB,SAAA,EAC5Cg4B,GACAx3B,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAAC+uB,KAAM,CAACpK,QAASisB,EAAU7vC,QAAQ,OAAMb,SAAC,cAG1CF,cAACW,IAAG,OAGRX,cAAC+uB,KAAM,CAACpK,QAASy7E,EAAYr/F,QAAQ,YAAWb,SAAC,qB,wBCzC1CugG,GAnBuB,WAAO,IAADC,EAAAC,EACpCj7E,EAAqBC,eACnBk/B,EAAaC,eAAbD,SAcR,OAZA5lD,qBAAU,WAAO,IAAD2mB,EAAAC,EAAAf,EAAA+W,EAAA+kE,EAAAC,EAAAC,EAAAC,EAAAC,GACkB,QAA5Bp7E,EAACF,EAAmBK,gBAAQ,IAAAH,OAAA,EAA3BA,EAA6B3N,OAClC4sC,EAAS,CACPtqC,QAAoC,QAA7BsL,EAAEH,EAAmBK,gBAAQ,IAAAF,GAAS,QAATf,EAA3Be,EAA6BtL,eAAO,IAAAuK,OAAT,EAA3BA,EAAsCnjB,MAC/CojD,aAAc,YACdonB,aAAc,oBACdL,YAAwC,QAA7BjwC,EAAEnW,EAAmBK,gBAAQ,IAAA8V,GAAY,QAAZ+kE,EAA3B/kE,EAA6BrhB,kBAAU,IAAAomF,OAAZ,EAA3BA,EAAyCj/F,MACtDoqE,cAA0C,QAA7B80B,EAAEn7E,EAAmBK,gBAAQ,IAAA86E,GAAM,QAANC,EAA3BD,EAA6B5oF,YAAI,IAAA6oF,OAAN,EAA3BA,EAAmCn/F,MAClDqqE,cAAe1jD,KAA6C,QAA5By4E,EAACr7E,EAAmBK,gBAAQ,IAAAg7E,GAAM,QAANC,EAA3BD,EAA6B9oF,YAAI,IAAA+oF,OAAN,EAA3BA,EAAmCr+F,MAAMo2B,eAE3E,CAA4B,QAA5B2nE,EAACh7E,EAAmBK,gBAAQ,IAAA26E,GAAM,QAANC,EAA3BD,EAA6BzoF,YAAI,IAAA0oF,OAAN,EAA3BA,EAAmCruF,KAEhCtS,cAAAC,WAAA,KCfM,SAASghG,KACtB,IAAQ7jF,EAAiBsD,aAAY,SAAC7O,GAAgB,OAAKA,EAAMuL,gBAAzDA,aACAynC,EAAaC,eAAbD,SAYR,OAVA5lD,qBAAU,YACS,OAAZme,QAAY,IAAZA,OAAY,EAAZA,EAAc9K,KAEnBuyC,EAAS,CACPG,UAAU,gBAAD/jD,OAAkBmc,EAAa9K,IACxCyyC,aAAc,mBACdonB,aAAc/uD,EAAaoJ,UAE5B,CAAa,OAAZpJ,QAAY,IAAZA,OAAY,EAAZA,EAAc9K,KAEXtS,cAAAC,WAAA,ICdM,SAASihG,KACtB,IAAQ5jF,EAAaoD,aAAY,SAAC7O,GAAgB,OAAKA,EAAMyL,YAArDA,SACAunC,EAAaC,eAAbD,SAYR,OAVA5lD,qBAAU,YACK,OAARqe,QAAQ,IAARA,OAAQ,EAARA,EAAUhL,KAEfuyC,EAAS,CACPG,UAAU,WAAD/jD,OAAaqc,EAAShL,IAC/ByyC,aAAc,WACdonB,aAAc7uD,EAASkJ,UAExB,CAAS,OAARlJ,QAAQ,IAARA,OAAQ,EAARA,EAAUhL,KAEPtS,cAAAC,WAAA,I,mCCdHkhG,GAAQ,CACZ,CACEx/F,MAAO,UACP7C,MAAO,KACPsiG,YAAaC,KACbj0E,KAAM,gCAER,CACEzrB,MAAO,SACP7C,MAAO,KACPsiG,YAAaE,KAEbl0E,KAAM,gCAER,CACEzrB,MAAO,SACP7C,MAAO,KACPsiG,YAAaG,KACbn0E,KAAM,iCAIK,SAASo0E,KACtB,IAAAC,EAA+BC,eAAvBjmB,EAAIgmB,EAAJhmB,KAASkmB,EAASF,EAAZliE,EACRqiE,EAAcn/B,aAAaC,QAAQ,cAOzC,MAAO,CACLm/B,aAL2B,SAACC,GAC5BrmB,EAAKsmB,eAAeD,IAKpBH,YACAK,YATkBb,GAAMv2E,MAAK,SAACq3E,GAAK,OAAKA,EAAMnjG,QAAU8iG,MAAgBT,GAAM,GAU9Ee,QAASf,GACTgB,SAAUxxB,MClCC,SAASyxB,KACtB,IAAQthB,EAAkBpgE,aAAY,SAAC7O,GAAgB,OAAKA,EAAMiL,UAA1DgkE,cACAj8B,EAAaC,eAAbD,SACRw9C,EAAiDb,KAA5BG,GAAFU,EAAXL,YAAsBK,EAATV,WAAuBU,EAAZR,aAehC,OAbA5iG,qBAAU,YACU,OAAb6hF,QAAa,IAAbA,OAAa,EAAbA,EAAexuE,KAEpBuyC,EAAS,CACPG,UAAU,UAAD/jD,OAAY6/E,EAAcxuE,IACnCyyC,aAAc,SACdonB,aAAcw1B,EAAU,eAAD1gG,OACN6qB,KAA6B,OAAbg1D,QAAa,IAAbA,OAAa,EAAbA,EAAej1D,WAAWkN,aAE3DqzC,aAAc0U,EAAct6D,UAE7B,CAAc,OAAbs6D,QAAa,IAAbA,OAAa,EAAbA,EAAexuE,KAEZtS,cAAAC,WAAA,ICpBM,SAASqiG,KACtB,IAAQ5lF,EAAYgE,aAAY,SAAC7O,GAAgB,OAAKA,EAAM6K,WAApDA,QACAmoC,EAAaC,eAAbD,SAWR,OATA5lD,qBAAU,YACI,OAAPyd,QAAO,IAAPA,OAAO,EAAPA,EAASpK,KAEduyC,EAAS,CACPG,UAAU,eAAD/jD,OAAiByb,EAAQwN,SAASvoB,MAAK,KAAAV,OAAIyb,EAAQ8Q,QAAQ+0E,SACpEx9C,aAAc,kBAEf,CAAQ,OAAProC,QAAO,IAAPA,OAAO,EAAPA,EAASpK,KAENtS,cAAAC,WAAA,I,cC4BMuiG,GAzCgB,WAC7B,IAAAlkG,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GACpB81B,EAAwCC,YACtC,yBACA+9C,aAAS,IAAIhwE,MAAS,IACvBkyB,EAAA/1B,YAAA61B,EAAA,GAHMmuE,EAAYjuE,EAAA,GAAEkuE,EAAeluE,EAAA,GAK5B+7B,EAAY7vC,aAAY,SAAC7O,GAAgB,OAAKA,EAAM0N,UAApDgxC,QA4BR,OA1BAtxD,qBAAU,WACR,IAAM0jG,EAAQ,IAAIrgG,KAGdqgG,EAAQ,IAAIrgG,KAAK,KAAM,EAAG,KAGN,KAAb,OAAPiuD,QAAO,IAAPA,OAAO,EAAPA,EAAS7rD,SAGI6rD,EAAQza,MACvB,SAACrQ,GAAE,MACgB,QAAjBA,EAAGjmC,WACH,CAAC,MAAO,OAAOD,SAASkmC,EAAGxgC,kBAAkB5F,OAClB,QAA3BomC,EAAGvgC,eAAe7F,MACK,QAAvBomC,EAAGplC,iBACHolC,EAAG7gC,QAAQqB,2BACX28F,aAAiBD,EAAO,IAAIrgG,KAAKmjC,EAAG7gC,QAAQqB,4BAA8B,QAG9D28F,aAAiBD,EAAO,IAAIrgG,KAAKmgG,IAAiB,IAChEtwE,GAAQ,GACRuwE,EAAgBC,MAEjB,CAACpyC,IAEG,CACLvpC,OACAmL,YCvBW,SAAS0wE,GAAwBriG,GAAoC2M,YAAA3M,GAClF,IAAAsiG,EAA0BN,KAAlBx7E,EAAI87E,EAAJ97E,KAAMmL,EAAO2wE,EAAP3wE,QACRyL,EAAWC,cAOjB,OACEn9B,eAACutB,KAAM,CAACC,SAAS,KAAKlH,KAAMA,EAAMC,QAAS,aAAS/mB,SAAA,CAClDF,cAAC0uB,KAAW,CAAC9tB,GAAI,CAAEwtB,GAAI,GAAIluB,SAAC,qBAC5BQ,eAACytB,KAAa,CAACvtB,GAAI,CAAEiN,EAAG,EAAGugB,GAAI,GAAIluB,SAAA,CACjCF,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAC,0FAG9BF,cAACW,IAAG,CACFoN,UAAU,MACVygB,IAAI,qDACJ5tB,GAAI,CAAE6tB,UAAW,IAAK9qB,MAAO,aAIjCjD,eAACmuB,KAAa,CAACjuB,GAAI,CAAEkuB,eAAgB,UAAW5uB,SAAA,CAC9CF,cAAC+uB,KAAM,CACLpK,QAAS,WACPwN,GAAQ,IAEVpxB,QAAQ,OAAMb,SACf,cAGDF,cAAC+uB,KAAM,CAACpK,QA5Bd,WACEiZ,EAASG,KAAe0zB,MAAMlB,SAC9Bp+B,GAAQ,IA0B0BpxB,QAAQ,YAAWb,SAAC,iBCN1D,IAGM2zB,GAAYhpB,YAAO,MAAPA,CAAc,CAC9B2B,QAAS,OAET8D,SAAU,WAGNyyF,GAAYl4F,YAAO,MAAPA,EAAc,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,OAAA/L,aAAA,CACtCslB,SAAU,EACVhU,SAAU,OAEV1H,OAAQ,QACRkD,gBAAiB,UACjBktD,WAAYgqC,IAEXj4F,EAAMoB,YAAYC,GAAG,MAAQ,CAC5B4sD,WAAYiqC,GACZ53F,YAAaN,EAAMO,QAAQ,GAC3B+Y,aAActZ,EAAMO,QAAQ,QAMjB,SAAS43F,KACtB,IAAMn4F,EAAQgW,cACR6c,EAAWC,cAETm/C,GADa53D,cAAbD,SACkB65D,KAAlBhC,eACR1+E,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GAEZ8tC,GADQlkB,aAAmB,CAAEC,OAAQ9e,SACjBgjC,eAApBD,iBACR4R,EAAgC70B,eAAxB1J,EAAOu+B,EAAPv+B,QAASiY,EAAUsmB,EAAVtmB,WAIXurE,GAHgBC,eAGA,CAACjsE,KAAWyiD,SAASr6E,SAAgB,OAAPogB,QAAO,IAAPA,OAAO,EAAPA,EAASuX,aAU7D,OARAj4B,qBAAU,WACR,IAAIokG,EAAMv6F,SAASysC,eAAe,oBAC9B8tD,IACFA,EAAIrgG,MAAMwJ,QAAU,QAElB22F,GAAevlE,EAASG,KAAe9iB,UAAUgjB,QACpD,IAGDv9B,eAACmzB,GAAS,CAACvhB,GAAG,aAAYpS,SAAA,CACvBijG,GAAiBnjG,cAACk+F,GAAoB,KACrCiF,GACAziG,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACo2F,GAAO,IACRp2F,cAACw4F,GAAoB,IACrBx4F,cAACygG,GAA6B,IAC9BzgG,cAACkhG,GAAqB,IACtBlhG,cAACihG,GAAyB,IAC1BjhG,cAACy4F,GAAgB,IACjBz4F,cAACi5F,GAAuB,IACxBj5F,cAACsjG,GAA4B,IAC7BtjG,cAACsiG,GAAoB,OAGzB5hG,eAAC6iG,KAAoB,CAAArjG,SAAA,EACjBijG,GAAiBnjG,cAAC23E,KAAW,CAACC,SAAU,SAAC94E,GAAa,OAAKwtC,EAAgBxtC,MAE7EkB,cAACwsF,GAAe,CAACC,cAAe,kBAAMt6D,GAAQ,OAC5CgxE,GACAnjG,cAAC+vF,GAAgB,CAAC/qE,cAAegC,EAAM/B,eAAgB,kBAAMkN,GAAQ,MAEvEzxB,eAACqiG,GAAS,CACRniG,GAAE7B,YAAA,CACAm1B,WAAYnpB,EAAM0jF,YAAYluD,OAAO,SAAU,CAC7CmY,SAAU3tC,EAAM0jF,YAAY/1C,SAASo3C,WAEnC9S,GAAiB,CACnB3sE,GAAI,UAENnQ,SAAA,CAEFQ,eAACU,KAAK,CAACqB,UAAU,MAAMpB,IAAI,MAAKnB,SAAA,CAC9BF,cAACy6F,GAAe,IAChBz6F,cAACo6F,GAAe,QAGhB+I,GACAziG,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAAC+0F,GAAmB,IAEpB/0F,cAACm2F,GAAe,QAGlBv+D,GACAl3B,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACo9F,GAA2B,IAC5Bp9F,cAAC09F,GAA6B,IAC9B19F,cAAC29F,GAAa,IACd39F,cAACqgG,GAAsB,OAG3BrgG,cAAC6iG,GAAwB,IACzB7iG,cAAC8+E,IAAM,a,cChIF,SAAS0kB,GAAUhjG,GAAiC,IAA9BN,EAAQM,EAARN,SAC3BujG,EAAoBp6E,eAApBo6E,gBACAvrC,EAAW9yC,cAAX8yC,OAEFsE,EADS,IAAID,gBAAgBrE,GACRruB,IAAI,gBAG/B,OAAI45D,IAAoBjnC,EACfx8D,cAAC0jG,IAAQ,CAAC7zC,GAAI9xB,KAAeE,OAG/Bj+B,cAAAC,WAAA,CAAAC,SAAGA,I,eCZG,SAASyjG,GAASnjG,GAAgC,IAA7BN,EAAQM,EAARN,SAC1BujG,EAAoBp6E,eAApBo6E,gBACAt+E,EAAaC,cAAbD,SACR7mB,EAAkDC,mBAAwB,MAAKC,EAAAC,YAAAH,EAAA,GAAxEslG,EAAiBplG,EAAA,GAAEqlG,EAAoBrlG,EAAA,GAG9C,OADsBsK,SAASysC,eAAe,iBACpBv1C,cAAC0jG,IAAQ,CAAC7zC,GAAIk8B,KAAUC,cAE7CyX,EAODG,GAAqBz+E,IAAay+E,GACpCC,EAAqB,MACd7jG,cAAC0jG,IAAQ,CAAC7zC,GAAI+zC,KAGhB5jG,cAAAC,WAAA,CAAAC,SAAGA,KAXJilB,IAAay+E,GACfC,EAAqB1+E,GAEhBnlB,cAACq8D,WAAK,K,2CCjBV,SAASynC,GAAYtjG,GAA4C,IAAzCujG,EAAOvjG,EAAPujG,QAASpgF,EAAQnjB,EAARmjB,SAC9BmvE,EAAsBzpE,eAAtBypE,kBACR,OACE9yF,cAACoB,KAAK,CACJqB,UAAW,MACXlB,WAAW,SACXutB,eAAgB,eAChBk1E,SAAS,OACT3iG,IAAK,OAAOnB,SAEX6jG,EAAQjiG,KAAI,SAAC49B,GACZ,IAAM/9B,EAAK,GAAAV,OAAMy+B,EAAEukE,eAAc,YAAAhjG,OAAW6xF,EAAkBpzD,EAAEt3B,QAAO,KACvE,OACEpI,cAAC+uB,KAAM,CACLpK,QAAS,kBAAMhB,EAAS+b,IACxBzzB,MAAM,UAENlL,QAAQ,YAAWb,SAElByB,GAHI+9B,EAAEukE,qBCTJ,SAASC,GAAgB1jG,GAAuC,IAApCypB,EAAQzpB,EAARypB,SACzC3rB,EAAgCC,mBAA0B,MAAKC,EAAAC,YAAAH,EAAA,GAAxDynB,EAAQvnB,EAAA,GAAE2lG,EAAW3lG,EAAA,GACpBq6C,EAAU+W,cAAV/W,MAKR,OACEn4C,eAACC,KAAG,CAAAT,SAAA,CACD+pB,EAASm1E,aACR1+F,eAACI,IAAU,CAACC,QAAQ,YAAYC,cAAY,EAAAd,SAAA,CAAC,6BAChBuwB,aAAMxG,EAASm1E,gBAI9Cp/F,cAACc,IAAU,CAACC,QAAQ,QAAQ03C,WAAS,EAAAv4C,SAAC,8aAQtCF,cAACc,IAAU,CAACC,QAAQ,YAAYC,cAAY,EAAAd,SAAC,qCAI7CQ,eAACI,IAAU,CAACC,QAAQ,QAAQ03C,WAAS,EAAAv4C,SAAA,CAAC,saAKG+pB,EAAS4uB,MAAMgiC,MAAM,mBAEnD,OAAVhiC,GACCn4C,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACc,IAAU,CAACC,QAAQ,YAAYC,cAAY,EAAAd,SAAC,qCAI7CF,cAACc,IAAU,CAACC,QAAQ,QAAQ03C,WAAS,EAAAv4C,SAAC,+sCAiB1CF,cAAC8jG,GAAY,CACXC,QAAS95E,EAASm6E,UAAUjlG,QAAO,SAACugC,GAAC,OAAKA,EAAEpkB,SAAW+oF,KAAe7oF,QACtEmI,SAxDe,SAAC7kB,GACpBqlG,EAAYrlG,MA0DTinB,GACC/lB,cAAC2wC,KAAa,CACZC,SAAU,kBAAMuzD,EAAY,OAC5Bn9E,KAAMjB,EAAS3d,OAAS,EACxB+I,WAAW,EACX+lC,cAAc,EAAKh3C,SAEnBF,cAACskG,KAAW,CACVl8F,OAAQ2d,EAAS3d,OACjBzF,KAAM4hG,KAAgBC,SACtBjpE,OAAQxV,EAAS1mB,YCjFXwL,YAAO0b,KAAP1b,EAAmB,SAAArK,GAAQA,EAALuK,MAAK,MAAQ,CACnDW,QAAS,OAMI,SAAS+4F,GAAetiG,GAAUA,EAAPzD,QAExC,OAAOsB,cAAAC,WAAA,ICEM,SAASykG,KACtB,IACMz6E,GAAWb,EADcC,eAAvBD,sBAIF1qB,EAAUurB,EAASm6E,UAAUjlG,QAAO,SAACmpC,GAAC,OAAKA,EAAEhtB,SAAW+oF,KAAeM,WAAS,GAEtF,OACE3kG,cAAC+4D,IAAI,CAACvyC,MAAM,4CAA2CtmB,SACrDQ,eAAC+gD,IAAS,CAACvzB,SAAU,KAAKhuB,SAAA,CACxBF,cAAC4kG,KAAiB,CAAC79C,QAAS,8BAA+B89C,MAAO,KAElE7kG,cAACk9C,KAAa,CAAAh9C,SACZF,cAAC2uB,KAAI,CAAAzuB,SACHF,cAACs/C,KAAgB,CACf32C,IAAI,qDACJ42C,aAAc,IAAIr/C,SAEjBxB,EACCsB,cAACykG,GAAe,CAAC/lG,QAASA,IAE1BsB,cAACkkG,GAAgB,CAACj6E,SAAUA,e,yBCb7B,SAAS66E,KAA0B,IAADj/E,EAAAf,EAAA+W,EAAA+kE,EAAAC,EAC/CkE,EAA4CjpE,eAApCnhB,EAAOoqF,EAAPpqF,QAASP,EAAsB2qF,EAAtB3qF,uBACXsL,EAAqBC,eACrBiY,EAAWC,cAUjB,OARA5+B,qBAAU,WAAO,IAAD2mB,GAEkB,QAA5BA,EAACF,EAAmBK,gBAAQ,IAAAH,OAAA,EAA3BA,EAA6B3N,OAChC2lB,EAASG,KAAe9iB,UAAU+pF,mBAGnC,IAGDhlG,cAAC+4D,IAAI,CACHvyC,MAAM,0DACN4+B,gBAC6B,QAA3Bv/B,EAAAH,EAAmBK,gBAAQ,IAAAF,GAAM,QAANf,EAA3Be,EAA6B5N,YAAI,IAAA6M,OAAN,EAA3BA,EAAmCniB,QAAS2lB,KAAkB4K,SAC1D,gBACA,uBACLhzB,SAEDQ,eAAC+gD,IAAS,CAACvzB,SAAS,KAAIhuB,SAAA,CACtBF,cAAC4kG,KAAiB,CAChB79C,QAAS,4CACT89C,MAAO,CACL,CACEz3E,KAAMptB,cAACowF,KAAY,IACnBvxF,KAAM,2BACN6P,KAAMqvB,KAAe9iB,UAAU+pF,iBAEjC,CACE53E,KAAMptB,cAACowF,KAAY,IACnBvxF,KAAiC,QAA7Bg9B,EAAEnW,EAAmBK,gBAAQ,IAAA8V,GAAS,QAAT+kE,EAA3B/kE,EAA6BthB,eAAO,IAAAqmF,OAAT,EAA3BA,EAAsCj/F,MAC5C+M,KAAMqvB,KAAe9iB,UAAUwf,UAGnC1oB,OAAQ/R,cAACilG,KAAgB,CAAC7qF,uBAAwBA,OAExB,QAA3BymF,EAAAn7E,EAAmBK,gBAAQ,IAAA86E,OAAA,EAA3BA,EAA6B5oF,OAC5BjY,cAACghD,KAAuB,CACtBj7B,SAAUL,EAAmBK,SAC7BuP,aAAc5P,EAAmB4P,aACjCr3B,SAAUynB,EAAmBznB,SAC7B0c,QAASA,IAAW,S,mCClDjB,SAASuqF,KACtB,IAAAC,EAA2D13C,eAAnD56B,EAAQsyE,EAARtyE,SAAUzJ,EAAkB+7E,EAAlB/7E,mBAAoB+0B,EAAgBgnD,EAAhBhnD,iBAChCl0B,EAAWb,IACXwU,EAAWC,cACXjL,EAASC,IAMf,OACE7yB,cAAC+4D,IAAI,CAACvyC,MAAK,GAAAvlB,OAAK2xB,EAAOjR,uBAAsB,kBAAkByjC,eAAe,SAAQllD,SACpFQ,eAAC+gD,IAAS,CAACvzB,SAAU,KAAKhuB,SAAA,CACxBF,cAAC4kG,KAAiB,CAChB79C,QAAO,OAAA9lD,OAAS2xB,EAAOlR,kBACvBmjF,MAAO,GACPO,UACE1kG,eAACI,IAAU,CAACC,QAAQ,QAAOb,SAAA,CAAC,sCACU0yB,EAAOlR,iBAAiB,iCACpDy8B,IAAqB,GAAK,IAAI,qDAG1CpsC,OACE/R,cAACW,KAAG,CAAAT,SACFF,cAACm4E,KAAS,CAACr5E,MAAOmrB,EAAS4uB,MAAMgiC,YAIvC76E,cAACk9C,KAAa,CAAC12B,MAAK,cAAAvlB,OAAgB4xB,IAAWrR,WAAYthB,SACzDF,cAAC8vD,KAAU,CAACx9C,GAAG,GAAGy9C,UAAU,GAAGnf,SAvBlB,WACnBhT,EAASG,KAAe0zB,MAAMlB,mB,aC9BrB80C,GAAeC,cAAW/kE,OAAO,CAC5C/Z,MAAO,CAAEhb,SAAU,GAAIixB,WAAY,KACnC8oE,UAAW,CAAE/5F,SAAU,GAAIixB,WAAY,KACvCipB,UAAW,CAAEl6C,SAAU,GAAIixB,WAAY,KACvCrxB,MAAO,CAAEI,SAAU,GAAIixB,WAAY,KACnC0qB,MAAO,CAAE37C,SAAU,GAAIixB,WAAY,KACnC+oE,UAAW,CAAEv5F,MAAO,WACpBw5F,YAAa,CAAExiG,UAAW,UAC1ByiG,SAAU,CAAE1sC,WAAY,EAAG35B,cAAe,EAAGsmE,kBAAmB,GAChEC,MAAO,CAAEp5F,QAAS,OAAQ7I,MAAO,QACjCkiG,YAAa,CAAE/5F,gBAAiB,UAAWH,aAAc,EAAG/C,OAAQ,IACpEk9F,UAAW,GACXC,SAAU,CACRr6F,QAAS,EACTpK,cAAe,OAEjB0kG,cAAe,CAAE1kG,cAAe,MAAOC,WAAY,WAAYF,IAAK,QACpEgM,GAAI,CAAE7B,SAAU,GAAIixB,WAAY,KAChClvB,GAAI,CAAE/B,SAAU,GAAIixB,WAAY,KAEhCwpE,KAAM,CAAEtiG,MAAO,OACfuiG,KAAM,CAAEviG,MAAO,OACfwiG,KAAM,CAAExiG,MAAO,OACfyiG,KAAM,CAAEziG,MAAO,OACf0iG,IAAK,CAAEh6F,aAAc,GACrBi6F,IAAK,CAAEj6F,aAAc,GACrBk6F,KAAM,CAAEl6F,aAAc,IACtBm6F,KAAM,CAAEn6F,aAAc,IACtBo6F,YAAa,CACXhjG,OAAQ,MACRE,MAAO,OACPiF,OAAQ,OACRrH,WAAY,SACZutB,eAAgB,SAChBnjB,aAAc,GACdG,gBAAiB,UACjBN,SAAU,GAEZk7F,iBAAkB,CAChBjjG,OAAQ,MACRE,MAAO,OACPiF,OAAQ,OACRrH,WAAY,SACZutB,eAAgB,SAChBnjB,aAAc,GACdg6C,YAAa,UACbghD,YAAa,EACb76F,gBAAiB,QACjBN,SAAU,KC5CQ85F,cAAW/kE,OAAO,CACtC+U,UAAW,CAAE9oC,QAAS,OAAQlL,cAAe,SAAUD,IAAK,UAO/C,SAASulG,GAAsBpmG,GAAyC,IAAtCyzC,EAAIzzC,EAAJyzC,KAC/C,OACEvzC,eAACmmG,QAAI,CAACC,OAAK,EAAA5mG,SAAA,CACTF,cAAC6mG,QAAI,CAAC7jG,MAAO,CAACqiG,GAAamB,MAAMtmG,SAC/BF,cAACw5C,SAAK,CAACutD,OAAO,gCAAgC/jG,MAAO,CAAE4F,OAAQ,OAAQjF,MAAO,YAEhFjD,eAACsmG,QAAI,CAAChkG,MAAO,CAACqiG,GAAa7+E,MAAO6+E,GAAamB,KAAMnB,GAAaI,aAAavlG,SAAA,CAAC,0BACzDuwB,aAAMwjB,EAAM,cChBlC,IAAMuO,GAAS8iD,cAAW/kE,OAAO,CACtC0mE,OAAQ,CACN36F,KAAM,EACNgD,MAAO,EACPwyC,OAAQ,EACRp2C,QAAS,GACTjI,OAAQ,OACRJ,SAAU,WACVJ,UAAW,SACXuI,SAAU,KAIC,SAAS07F,KACtB,IAAQruD,EAAU+W,cAAV/W,MACR,OACEn4C,eAACmmG,QAAI,CAAC7jG,MAAOw/C,GAAOykD,OAAQH,OAAK,EAAA5mG,SAAA,CAC/BF,cAAC6mG,QAAI,CAAC7jG,MAAOqiG,GAAaI,YAAYvlG,SACpCF,cAACgnG,QAAI,CAAChkG,MAAOqiG,GAAa3/C,UAAUxlD,SAAC,oBAEvCQ,eAACmmG,QAAI,CAAA3mG,SAAA,CACHF,cAAC6mG,QAAI,CAAA3mG,SACHQ,eAACsmG,QAAI,CAAA9mG,SAAA,CAAC,2DAC4C,IAChDF,cAAC24C,KAAU,CAACC,QAASC,EAAOC,YAAY,wBAG5Cp4C,eAACmmG,QAAI,CAAA3mG,SAAA,CACHF,cAACgnG,QAAI,CAAA9mG,SAAC,6CACNF,cAACgnG,QAAI,CAAA9mG,SAAC,kTC/BT,IAAMsiD,GAAS8iD,cAAW/kE,OAAO,CACtC4sD,SAAU,CACR3hF,SAAU,EACVixB,WAAY,IACZh5B,OAAQ,GAEV6xC,UAAW,CAAE9oC,QAAS,OAAQlL,cAAe,MAAOC,WAAY,SAAUF,IAAK,UAGlE,SAAS8lG,KACtB,OACEzmG,eAACmmG,QAAI,CAAA3mG,SAAA,CACHF,cAAC6mG,QAAI,CAAC7jG,MAAOqiG,GAAaiB,IAAIpmG,SAC5BF,cAACgnG,QAAI,CAAChkG,MAAOqiG,GAAa3/C,UAAUxlD,SAAC,6CAEvCF,cAAC6mG,QAAI,CAAC7jG,MAAOqiG,GAAaiB,IAAIpmG,SAC5BQ,eAACmmG,QAAI,CAAC7jG,MAAOw/C,GAAOlN,UAAUp1C,SAAA,CAC5BQ,eAACmmG,QAAI,CAAC7jG,MAAOw/C,GAAOlN,UAAUp1C,SAAA,CAC5BF,cAAC6mG,QAAI,CAAC7jG,MAAO,CAACqiG,GAAaoB,YAAa,CAAEl1D,YAAa,MACvDvxC,cAACgnG,QAAI,CAAChkG,MAAOqiG,GAAal+C,MAAMjnD,SAAC,uCAEnCQ,eAACmmG,QAAI,CAAC7jG,MAAO,CAACw/C,GAAOlN,UAAW,CAAE5jB,WAAY,KAAMxxB,SAAA,CAClDF,cAAC6mG,QAAI,CAAC7jG,MAAO,CAACqiG,GAAaqB,iBAAkB,CAAEn1D,YAAa,MAC5DvxC,cAACgnG,QAAI,CAAChkG,MAAOqiG,GAAal+C,MAAMjnD,SAAC,uDAIvCQ,eAACmmG,QAAI,CAAC7jG,MAAO,CAACw/C,GAAO2qC,SAAUkY,GAAaG,UAAWH,GAAakB,MAAMrmG,SAAA,CACxEF,cAACgnG,QAAI,CAAA9mG,SAAC,2FACNF,cAACgnG,QAAI,CAAA9mG,SAAC,8LCtBQolG,cAAW/kE,OAAO,CACtC+U,UAAW,CAAE9oC,QAAS,OAAQlL,cAAe,SAAUC,WAAY,SAAUF,IAAK,UAkBrE,SAAS+lG,GAAyB5mG,GAGb,IAAD6mG,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,EAAAC,EAFjCC,EAAM3oG,EAAN2oG,OACAC,EAAI5oG,EAAJ4oG,KAEA,OACE1oG,eAACmmG,QAAI,CAAC7jG,MAAO,CAACqiG,GAAakB,MAAMrmG,SAAA,CAC/BF,cAAC6mG,QAAI,CAAA3mG,SACHQ,eAACsmG,QAAI,CAAChkG,MAAO,CAACqiG,GAAaiB,IAAKjB,GAAaE,WAAWrlG,SAAA,CAAC,mCACjCkpG,EAAO,GAAK,IAAI,UAIzC,CACC,CACEznG,MAAM,YAADV,OAAcmoG,EAAO,GAAK,KAC/BtqG,MAAM,GAADmC,OAAmB,QAAnBomG,EAAK8B,EAAOxpF,eAAO,IAAA0nF,OAAA,EAAdA,EAAgB15E,SAAQ,KAAA1sB,OAAkB,QAAlBqmG,EAAI6B,EAAOxpF,eAAO,IAAA2nF,OAAA,EAAdA,EAAgB55E,YAExD,CAAE/rB,MAAO,uBAAqB7C,MAAM,GAADmC,OAAoB,QAApBsmG,EAAK4B,EAAOl/E,gBAAQ,IAAAs9E,OAAA,EAAfA,EAAiBj1F,KACzD,CACE3Q,MAAO,UACP7C,MACE4B,eAACmmG,QAAI,CAAA3mG,SAAA,CACHQ,eAACsmG,QAAI,CAAChkG,MAAO,CAACqiG,GAAal+C,MAAOk+C,GAAaG,WAAWtlG,SAAA,CACzC,QADyCsnG,EACvD2B,EAAOxpF,eAAO,IAAA6nF,GAAS,QAATC,EAAdD,EAAgB6B,eAAO,IAAA5B,OAAT,EAAdA,EAAyB6B,UAAU,IAAgB,QAAf5B,EAACyB,EAAOxpF,eAAO,IAAA+nF,GAAS,QAATC,EAAdD,EAAgB2B,eAAO,IAAA1B,OAAT,EAAdA,EAAyB4B,WAEjE7oG,eAACsmG,QAAI,CAAChkG,MAAO,CAACqiG,GAAal+C,MAAOk+C,GAAaG,WAAWtlG,SAAA,CACzC,QADyC0nG,EACvDuB,EAAOxpF,eAAO,IAAAioF,GAAS,QAATC,EAAdD,EAAgByB,eAAO,IAAAxB,OAAT,EAAdA,EAAyB2B,WAAW,IAAgB,QAAf1B,EAACqB,EAAOxpF,eAAO,IAAAmoF,GAAS,QAATC,EAAdD,EAAgBuB,eAAO,IAAAtB,OAAT,EAAdA,EAAyB0B,QAElEzpG,cAACgnG,QAAI,CAAChkG,MAAO,CAACqiG,GAAal+C,MAAOk+C,GAAaG,WAAWtlG,SACzC,QADyC8nG,EACvDmB,EAAOxpF,eAAO,IAAAqoF,GAAS,QAATC,EAAdD,EAAgBqB,eAAO,IAAApB,OAAT,EAAdA,EAAyByB,kBAKlC,CACE/nG,MAAO,0BACP7C,OACiB,QAAfopG,EAAAiB,EAAOl/E,gBAAQ,IAAAi+E,OAAA,EAAfA,EAAiBtQ,mBACjBnnE,aAAqB,QAAhB03E,EAACgB,EAAOl/E,gBAAQ,IAAAk+E,OAAA,EAAfA,EAAiBvQ,iBAAkB,iBAE7C,CACEj2F,MAAO,oCACP7C,OAAsB,QAAfspG,EAAAe,EAAOl/E,gBAAQ,IAAAm+E,OAAA,EAAfA,EAAiBhJ,cAAe3uE,aAAqB,QAAhB43E,EAACc,EAAOl/E,gBAAQ,IAAAo+E,OAAA,EAAfA,EAAiBjJ,YAAa,iBAE7E,CACEz9F,MAAO,YACP7C,MAAM,GAADmC,OAAoB,QAApBqnG,EAAKa,EAAOl/E,gBAAQ,IAAAq+E,GAAU,QAAVC,EAAfD,EAAiBjqC,gBAAQ,IAAAkqC,OAAV,EAAfA,EAA2B5mG,MAAK,MAAAV,OAAoB,QAApBunG,EAAKW,EAAOl/E,gBAAQ,IAAAu+E,GAAU,QAAVC,EAAfD,EAAiBnqC,gBAAQ,IAAAoqC,OAAV,EAAfA,EAA2Bn2F,GAAE,MAG9E,CACE3Q,MAAO,UACP7C,MACEkB,cAAC6mG,QAAI,CAAA3mG,UACa,QAAfwoG,EAAAS,EAAOl/E,gBAAQ,IAAAy+E,GAAU,QAAVC,EAAfD,EAAiBrqC,gBAAQ,IAAAsqC,OAAV,EAAfA,EAA2B9mG,WACX,QADkB+mG,EACjCO,EAAOl/E,gBAAQ,IAAA2+E,GAAU,QAAVC,EAAfD,EAAiBvqC,gBAAQ,IAAAwqC,GAAS,QAATC,EAAzBD,EAA2BhnG,eAAO,IAAAinG,OAAnB,EAAfA,EAAoChnG,KAAI,SAACy+E,GACvC,OACEvgF,cAACgnG,QAAI,CAAChkG,MAAO,CAACqiG,GAAal+C,MAAOk+C,GAAaG,WAAWtlG,SACvDqgF,EAAO5+E,OADsD4+E,EAAOjuE,WASnF,CACE3Q,MAAO,YACP7C,MAAM,GAADmC,QAAoB,QAAf8nG,EAAAI,EAAOl/E,gBAAQ,IAAA8+E,OAAA,EAAfA,EAAiBY,WAA0B,QAAnBX,EAAIG,EAAOl/E,gBAAQ,IAAA++E,OAAA,EAAfA,EAAiBW,QAAQhoG,SAEjE,CACEA,MAAO,2BACP7C,MAAM,GAADmC,OAAoB,QAApBgoG,EAAKE,EAAOl/E,gBAAQ,IAAAg/E,GAAU,QAAVC,EAAfD,EAAiB5qC,gBAAQ,IAAA6qC,OAAV,EAAfA,EAA2BxwD,SAAQ,OAE/C52C,KAAI,SAACmW,GACL,OAzFQtW,EAyFMsW,EAAKtW,MAzFI7C,EAyFGmZ,EAAKnZ,MAvFnCkB,cAAC6mG,QAAI,CAAa7jG,MAAO,CAACqiG,GAAagB,KAAKnmG,SAC1CQ,eAACmmG,QAAI,CAAC7jG,MAAOqiG,GAAaW,cAAc9lG,SAAA,CACtCQ,eAACsmG,QAAI,CAAChkG,MAAOqiG,GAAal+C,MAAMjnD,SAAA,CAAEyB,EAAM,SACtB,kBAAV7C,EACNkB,cAACgnG,QAAI,CAAChkG,MAAO,CAACqiG,GAAal+C,MAAOk+C,GAAaG,WAAWtlG,SAAEpB,IAE5DA,MANK6C,GAFA,IAACA,EAAe7C,Q,uCCb/BwgC,GAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAWO,IAAMsmG,GAAc,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,ICN1E,IAAMpnD,GAAS8iD,cAAW/kE,OAAO,CAC/B+U,UAAW,CAAE3pC,aAAc,EAAGD,QAAS,EAAGi6C,YAAa,UAAWghD,YAAa,GAC/EX,cAAe,CAAE1kG,cAAe,MAAOC,WAAY,SAAUutB,eAAgB,iBAC7E+6E,YAAa,CAAElmG,MAAO,OACtBmmG,YAAa,CAAEnmG,MAAO,MAAOpC,WAAY,SAAU0B,UAAW,UAC9D8mG,aAAc,CACZv9F,QAAS,QAEXw9F,kBAAmB,CACjBx9F,QAAS,OACTlL,cAAe,SACfC,WAAY,SACZutB,eAAgB,UAElBm7E,kBAAmB,CACjBtmG,MAAO,MACPmI,gBAAiB,UACjBwY,SAAU,EACV1b,OAAQ,QAEVshG,sBAAuB,CACrB5lF,SAAU,EACV1b,OAAQ,QAEVuhG,IAAK,CAAEzmG,UAAW,SA+CL,SAAS0mG,GAAoB5pG,GAOb,IAN7B6pG,EAAa7pG,EAAb6pG,cACA18E,EAAQntB,EAARmtB,SACAutC,EAAU16D,EAAV06D,WAGAkuC,GAFK5oG,EAALgmB,MACKhmB,EAAL4yE,MACI5yE,EAAJ4oG,MAEMkB,EAAUD,EAAcvmE,MAE9B,OACEpjC,eAACmmG,QAAI,CAACxmE,MAAM,EAAMngC,SAAA,CAChBQ,eAACmmG,QAAI,CAAC7jG,MAAO,CAACw/C,GAAOwjD,cAAeX,GAAaiB,KAAKpmG,SAAA,CACpDF,cAAC6mG,QAAI,CAAA3mG,SACHQ,eAACmmG,QAAI,CAAC7jG,MAAOqiG,GAAaW,cAAc9lG,SAAA,CACtCQ,eAACsmG,QAAI,CAAChkG,MAAO,CAACqiG,GAAaj6F,OAAOlL,SAAA,CAAC,aAAWkpG,EAAO,GAAK,IAAI,SAC9DppG,cAACgnG,QAAI,CAAChkG,MAAO,CAACqiG,GAAal+C,MAAOk+C,GAAaG,WAAWtlG,SAAEytB,SAGhE3tB,cAAC6mG,QAAI,CAAA3mG,SACHQ,eAACmmG,QAAI,CAAC7jG,MAAOqiG,GAAaW,cAAc9lG,SAAA,CACtCF,cAACgnG,QAAI,CAAChkG,MAAO,CAACqiG,GAAaj6F,OAAOlL,SAAC,4BACnCF,cAACgnG,QAAI,CAAChkG,MAAO,CAACqiG,GAAal+C,MAAOk+C,GAAaG,WAAWtlG,SAAEg7D,YAKlEx6D,eAACmmG,QAAI,CAAC7jG,MAAOw/C,GAAOlN,UAAUp1C,SAAA,CAC5BQ,eAACsmG,QAAI,CAAChkG,MAAO,CAACqiG,GAAaE,UAAWF,GAAaI,YAAaJ,GAAaiB,KAAKpmG,SAAA,CAAC,6BACzDuwB,aAAM45E,EAAc,GAAG93B,IAAK,cAAc,MAAI,IACrE+3B,GAAW75E,aAAM65E,EAAQ/3B,IAAK,iBAGjC7xE,eAACmmG,QAAI,CAAC7jG,MAAOqiG,GAAaO,MAAM1lG,SAAA,CAC9BF,cAAC6mG,QAAI,CAAC7jG,MAAOqiG,GAAaQ,YAAY3lG,SACpCQ,eAACmmG,QAAI,CAAC7jG,MAAOqiG,GAAaU,SAAS7lG,SAAA,CACjCF,cAAC6mG,QAAI,CAAC7jG,MAAOw/C,GAAOqnD,YAAY3pG,SAC9BF,cAACgnG,QAAI,CAAChkG,MAAOqiG,GAAa3/C,cAE3B2kD,EAAcvoG,KAAI,SAACmW,GAClB,IA3EMs6D,EA2EqB,IAAIjwE,KAAK2V,EAAKs6D,KAAK1B,WAE9C,OA7EM0B,EA6Ect6D,EAAKs6D,IA3ErC7xE,eAACmmG,QAAI,CAAW7jG,MAAO,CAACw/C,GAAOsnD,YAAazE,GAAaG,WAAWtlG,SAAA,CAClEF,cAACgnG,QAAI,CAAChkG,MAAOqiG,GAAa3/C,UAAUxlD,SAAEuwB,aAAM8hD,EAAK,UACjDvyE,cAACgnG,QAAI,CAAChkG,MAAOqiG,GAAa3/C,UAAUxlD,SAAEuwB,aAAM8hD,EAAK,UAFxCA,WAgFL7xE,eAACmmG,QAAI,CAAC7jG,MAAO,CAACqiG,GAAaS,UAAWT,GAAaG,WAAWtlG,SAAA,CAC5DQ,eAACmmG,QAAI,CAAC7jG,MAAO,CAACqiG,GAAaU,SAAUV,GAAagB,KAAKnmG,SAAA,CACrDF,cAAC6mG,QAAI,CAAC7jG,MAAO,CAACw/C,GAAOqnD,YAAaxE,GAAaI,YAAajjD,GAAO2nD,KAAKjqG,SACtEF,cAACgnG,QAAI,CAAChkG,MAAO,CAACqiG,GAAal+C,MAAOk+C,GAAaG,WAAWtlG,SAAC,wBAE5DmqG,EAAcvoG,KAAI,SAACmW,EAAMpE,GAAK,OA9EtB,SAAC/U,EAAe+U,GACrC,OACEnT,eAACmmG,QAAI,CAAa7jG,MAAO,CAACw/C,GAAOsnD,YAAatnD,GAAO2nD,KAAKjqG,SAAA,CACxDF,cAACgnG,QAAI,CAAChkG,MAAO,CAACqiG,GAAa3/C,UAAW2/C,GAAaG,WAAWtlG,SAAEpB,IAChEkB,cAAC6mG,QAAI,CAAC7jG,MAAOw/C,GAAOynD,sBAFXp2F,GA4EmC02F,CAAetyF,EAAKuyF,gBAAiB32F,SAE1E+1F,GAAY9nG,KAAI,SAACq4F,EAActmF,GAC9B,OACEnT,eAACmmG,QAAI,CAAa7jG,MAAOqiG,GAAaU,SAAS7lG,SAAA,CAC7CF,cAAC6mG,QAAI,CAAC7jG,MAAO,CAACw/C,GAAOqnD,YAAaxE,GAAaI,aAAavlG,SAC1DQ,eAACsmG,QAAI,CAAChkG,MAAOqiG,GAAal+C,MAAMjnD,SAAA,CAAEi6F,EAAKphE,WAAWwyD,SAAS,EAAG,KAAK,WAEpE8e,EAAcvoG,KAAI,SAACmW,EAAMpE,GAAW,IAAD42F,EAClC,OA9EL,SAACC,EAAqB72F,GACnC,OACE7T,cAAC6mG,QAAI,CAAa7jG,MAAO,CAACw/C,GAAOsnD,aAAa5pG,SAC5CF,cAAC6mG,QAAI,CAAC7jG,MAAOw/C,GAAOunD,aAAa7pG,SAC/BQ,eAACmmG,QAAI,CAAC7jG,MAAOw/C,GAAOwnD,kBAAkB9pG,SAAA,CACnCwqG,EACC1qG,cAAC6mG,QAAI,CAAC7jG,MAAOqiG,GAAaoB,cAE1BzmG,cAAC6mG,QAAI,CAAC7jG,MAAOqiG,GAAaqB,mBAE5B1mG,cAAC6mG,QAAI,CAAC7jG,MAAOw/C,GAAOynD,0BARfp2F,GA4EY82F,EACkD,QAAvDF,EAAAxyF,EAAK2yF,YAAYhgF,MAAK,SAACiW,GAAC,OAAK+5D,SAAS/5D,EAAEs5D,QAAUA,YAAK,IAAAsQ,OAAA,EAAvDA,EAAyDC,cAAc,EACvE72F,QAPKA,kBC3H3B6yC,QAAKjU,SAAS,CACZo4D,OAAQ,UACRC,MAAO,CACL,CAAEt8E,IAAK,8BACP,CAAEA,IAAK,2BACP,CAAEA,IAAK,kCAIX,IAAMg0B,GAAS8iD,cAAW/kE,OAAO,CAC/BwqE,KAAM,CACJr/F,QAAS,mBACTF,SAAU,EACVD,WAAY,IACZE,WAAY,UACZK,gBAAiB,UASN,SAASk/F,GAAoBxqG,GAA+C,IAAD8mG,EAA3C6B,EAAM3oG,EAAN2oG,OAAQl1D,EAAIzzC,EAAJyzC,KAC/CkK,EAAmBuiB,uBAAY,WAAO,IAAD2mC,EACzC,MAAuC,QAA1B,OAAN8B,QAAM,IAANA,GAAe,QAAT9B,EAAN8B,EAAQxpF,eAAO,IAAA0nF,OAAT,EAANA,EAAiBnpC,cACvB,CAAe,QAAfopC,EAAC6B,EAAOxpF,eAAO,IAAA2nF,OAAA,EAAdA,EAAgBh1F,KAEpB,OACEtS,cAACirG,YAAQ,CAAA/qG,SACPQ,eAACq4D,QAAI,CAACn3D,KAAK,KAAKoB,MAAOw/C,GAAOuoD,KAAK7qG,SAAA,CACjCF,cAAC4mG,GAAsB,CAAC3yD,KAAMA,IAC9Bj0C,cAAConG,GAAyB,CAAC+B,OAAQA,EAAQC,KAAMjrD,MACjDn+C,cAACmnG,GAA2B,IAC3Bl6F,OAAOiF,KAAKi3F,EAAOt1B,OAAO/xE,KAAI,SAAC+R,GAAW,IAAD0zF,EAAAC,EAAAE,EACxC,OACE1nG,cAACoqG,GAAoB,CAEnBC,cAAelB,EAAOt1B,MAAMhgE,GAC5BqnD,YAA2B,QAAfqsC,EAAA4B,EAAOl/E,gBAAQ,IAAAs9E,OAAA,EAAfA,EAAiBj1F,GAAGymB,aAAc,GAC9CpL,SAAQ,GAAA1sB,OAAmB,QAAnBumG,EAAK2B,EAAOxpF,eAAO,IAAA6nF,OAAA,EAAdA,EAAgB75E,SAAQ,KAAA1sB,OAAkB,QAAlBymG,EAAIyB,EAAOxpF,eAAO,IAAA+nF,OAAA,EAAdA,EAAgBh6E,WACzDlH,MAAM,GACN4sD,MAAOn/B,EAAK48B,WACZu4B,KAAMjrD,KANDtqC,MAWX7T,cAACknG,GAAsB,SC5ChB,SAASgE,GAAoB1qG,GAA8C,IAA3C4yE,EAAK5yE,EAAL4yE,MAAOe,EAAI3zE,EAAJ2zE,KACpDg3B,EHIa,WAAgC,IAAD3qG,EAAA2B,EAC5CgqC,EAAqCzrB,aAAY,SAAC7O,GAAgB,OAAKA,EAAM8N,WAArEA,EAAOwsB,EAAPxsB,QAASsK,EAAQkiB,EAARliB,SAAUiH,EAAKib,EAALjb,MAC3B5yB,EAA0BC,mBAA+D,MAAKC,EAAAC,YAAAH,EAAA,GAAvFu1E,EAAKr1E,EAAA,GAAE4sG,EAAQ5sG,EAAA,GAmDhB6sG,EAAiB,SAAC1f,GACtB,IAAM2f,EAAY3f,EAAKt4D,MAAM,KAE7B,OAAyB,IAArBi4E,EAAU5mG,OAAoB,GAANzD,OAAUqqG,EAAU,GAAE,KAAArqG,OAAIqqG,EAAU,IACzD3f,GASH4f,EACJ,SAACh/E,EAAe+jD,GAAW,OAC3B,SAACtL,GACC,OAAAz+B,aAAAjH,KAAAiE,MAAO,SAAA4G,IAAA,IAAA1D,EAAA+kE,EAAA,OAAAlsE,KAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,cAAAoO,EAAArG,KAAA,EAAAqG,EAAApO,KAAA,EAGoB4N,KAAcC,IAAG,0BAAA5oC,OACZsrB,EAAK,KAAAtrB,OAAIqvE,GACnC,CACExmC,QAAS,CAAE2hE,cAAc,UAADxqG,OAAYiwB,MAEtC,KAAD,EALKuV,EAAQ2D,EAAAlI,KAONzH,EAAYgM,EAAS5e,KAArB4S,QAERuqC,EAAUvqC,GAAS2P,EAAApO,KAAA,gBAAAoO,EAAArG,KAAA,EAAAqG,EAAAG,GAAAH,EAAA,SAEnBghE,EAAS,IAAI,yBAAAhhE,EAAAnG,UAAAkG,EAAA,oBAKrB,MAAO,CACLxqB,UACAsK,WACA4pD,QACA63B,MAxFS,SAAAjhE,EAAAC,GAAA,OAAAlqC,KAAA+lC,aAAAjH,KAAAiE,MAAG,SAAAiD,EAAO2tC,EAAcf,GAAa,IAAAu4B,EAAAC,EAAAj4B,EAAAk4B,EAAA,OAAAvsE,KAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAExC2vE,EAA2Bz3B,aAAgBC,EAAMf,GAEjDw4B,EAAYD,EAAyB,GACrCh4B,EAAUnB,aAAQm5B,EAAyB36F,OAAO,GAAG,GAAI,GAE3D66F,EAA8D,GAGlEprF,YACE8qF,EACE96E,aAAMm7E,EAAW,aACjBn7E,aAAMkjD,EAAS,aAFjB43B,EAGE,SAAC9wE,GAEDkxE,EAAyB7pG,KAAI,SAACgqG,GAE1Br4B,aAAYq4B,GACT3sG,QAAO,SAAC8hC,GAAC,MAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAG1hC,SAAS0hC,EAAE+vC,aAC5Cl7B,MAAK,SAAC7U,GAAC,OAAKA,EAAE4vC,aAAeuC,OAEhCy4B,EAAaE,aAAQD,IAAoBr4B,aAAYq4B,GAElD3sG,QAAO,SAAC8hC,GAAC,MAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAG1hC,SAAS0hC,EAAE+vC,aAC5ClvE,KAAI,SAACm/B,GACJ,IAAM0jD,EAAcl0D,aAAMwQ,EAAG,cACvBonC,EAAS5tC,EAAQ7P,MAAK,SAACqW,GAAC,OAAKA,EAAEsxC,MAAQoS,KAC7C,MAAO,CACLpS,IAAKoS,EACL6lB,gBAAiBniC,EAASgjC,EAAehjC,EAAOmiC,iBAAmB,IACnEI,YAAahB,GAAY9nG,KAAI,SAACq4F,GAC5B,IAAIuQ,GAAsB,EAC1B,GAAU,OAANriC,QAAM,IAANA,OAAM,EAANA,EAAQuiC,YAAa,CACvB,IAAMoB,EAAmB,OAAN3jC,QAAM,IAANA,OAAM,EAANA,EAAQuiC,YAAYhgF,MAAK,SAACiW,GAAC,OAAMA,EAAEs5D,OAASA,KAC/DuQ,KAAuB,OAAVsB,QAAU,IAAVA,OAAU,EAAVA,EAAYtB,cAAuB,OAAVsB,QAAU,IAAVA,OAAU,EAAVA,EAAYtB,YAGpD,MAAO,CAAEA,WAAYA,EAAYvQ,KAAMA,EAAKphE,uBAMxDqyE,EAASS,OAEX,wBAAAnlE,EAAAzC,UAAAuC,QACHM,MAAA,KAAAriC,YA0CCwnG,oBAjCuB,SAAAthE,GAAA,OAAAxoC,KAAAokC,aAAAjH,KAAAiE,MAAG,SAAAwD,EAAOh5B,GAAuB,IAAAm+F,EAAA53C,EAAA,OAAAh1B,KAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,cAAAgL,EAAAhL,KAAA,EACrCmwE,eAAIp+F,GAAWq+F,SAAS,KAAD,EAApCF,EAAIllE,EAAA9E,KACJoyB,EAAU/qD,OAAOke,IAAIktC,gBAAgBu3C,GAC3C3iG,OAAOyd,KAAKstC,GAAS,wBAAAttB,EAAA/C,UAAA8C,QACtBD,MAAA,KAAAriC,aGpE2C4nG,GAApCX,EAAKP,EAALO,MAAO/rF,EAAOwrF,EAAPxrF,QAASsK,EAAQkhF,EAARlhF,SAAU4pD,EAAKs3B,EAALt3B,MAMlC,OAJA50E,qBAAU,WACRysG,EAAMv3B,EAAMf,KACX,IAEU,MAATS,EAAsB7zE,cAACw+E,GAAiB,IAG1Cx+E,cAACW,KAAG,CAACC,GAAI,CAAE0jB,SAAU,EAAG1b,OAAQ,OAAQ0H,SAAU,UAAWpQ,SAC3DF,cAACssG,aAAS,CAAC3oG,MAAM,OAAOiF,OAAO,OAAO5F,MAAO,CAAE0N,OAAQ,QAASxQ,SAC9DF,cAACgrG,GAAoB,CACnB7B,OAAQ,CAAExpF,QAASA,EAASsK,SAAUA,EAAU4pD,MAAOA,GACvD5/B,KAAM,IAAI3xC,KAAK6xE,EAAMf,EAAO,SCrBvB,SAASm5B,GAA4B3uG,GAClD,IAAA4uG,EAAwBC,cAAhBr5B,EAAKo5B,EAALp5B,MAAOe,EAAIq4B,EAAJr4B,KAETv2C,EAAWC,cAEjB,OAAKu1C,GAAUe,EAMbn0E,cAACk6C,IAAa,CAACtI,YAAU,EAAC5qB,MAAM,EAAK9mB,SACnCF,cAACW,KAAG,CAACC,GAAI,CAAEgI,OAAQ,OAAQ4D,QAAS,OAAQlL,cAAe,UAAWpB,SACpEF,cAACkrG,GAAoB,CAAC93B,OAAQA,EAAOe,MAAOA,SAPhDv2C,EAASmuD,KAAU2gB,SACZ1sG,cAAAC,WAAA,K,0BCgBI,SAAS0sG,GAAoBnsG,GAAgC2M,YAAA3M,GAC1E,IACMypB,GAAWb,EADcqkC,eAAvBrkC,sBAEFre,EAAQgW,cACR6c,EAAWC,cAEjBsO,EAA8DzrB,aAC5D,SAAC7O,GAAgB,OAAKA,EAAM0N,UADtBixC,EAAyBrkB,EAAzBqkB,0BAA2Bo8C,EAAsBzgE,EAAtBygE,uBAI7BC,EAAehiG,YAAO8jB,KAAP9jB,CAAa,CAChCa,QAAS,GACTjI,OAAQ,GACRqI,gBAAiBf,EAAME,QAAQ4B,KAAK,KACpC0D,UAAWxF,EAAMyF,cAAcs8F,IAC/BlkG,OAAQ,OACR4jD,SAAU,QACVt+B,SAAU,QACV2J,UAAW,QACXl0B,MAAO,SAWHopG,EAAwB1qF,eACxB2qF,EAAe1qF,aAA8BsqF,GAC7CK,EAAmB3qF,aAA8BkuC,GAEvD,OACExwD,cAAC+4D,IAAI,CACHvyC,MAAK,GAAAvlB,OAA0B,OAArB8rG,QAAqB,IAArBA,OAAqB,EAArBA,EAAuBprF,uBAAsB,kBACvDyjC,eAAe,SAAQllD,SAEvBQ,eAAC+gD,IAAS,CAACvzB,SAAU,KAAKhuB,SAAA,CACxBF,cAAC4kG,KAAiB,CAChB79C,QAA8B,OAArBgmD,QAAqB,IAArBA,OAAqB,EAArBA,EAAuBprF,uBAChCkjF,MAAO,GACPO,UACEplG,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAA,0CAAAe,OACuC,OAArB8rG,QAAqB,IAArBA,OAAqB,EAArBA,EAAuBrrF,iBAAgB,6DAGtF3P,OACE/R,cAACW,IAAG,CAAAT,SACFF,cAACm4E,KAAS,CAACr5E,MAAOmrB,EAAS4uB,MAAMgiC,YAKvCn6E,eAACiuB,KAAI,CAAC/tB,GAAI,CAAEiN,EAAG,EAAGqkD,GAAI,EAAGD,GAAI,GAAI/xD,SAAA,CAC/BF,cAACumB,KAAU,CAACC,MAAM,6BAA6B5lB,GAAI,CAAEqC,UAAW,YAChEvC,eAACujD,KAAW,CACVrjD,GAAI,CACFgI,OAAQ,OACRjF,MAAO,OACP6I,QAAS,OACTlL,cAAe,MACfC,WAAY,SACZutB,eAAgB,eAChBk1E,SAAU,QACV9jG,SAAA,EAEqB,OAAtB0sG,QAAsB,IAAtBA,OAAsB,EAAtBA,EAAwBloG,QAAS,GAChC1E,cAAC6sG,EAAY,CAAA3sG,SACXQ,eAACujD,KAAW,CAAA/jD,SAAA,CACVF,cAACW,IAAG,CACFoN,UAAU,MACVygB,IAAK,oDACL5tB,GAAI,CAAEgI,OAAQ,IAAKjF,MAAO,UAE5B3D,cAACc,IAAU,CAACC,QAAQ,YAAY03C,WAAS,EAAAv4C,SAC1B,OAAZ8sG,QAAY,IAAZA,OAAY,EAAZA,EAAcrrF,yBAEjB3hB,cAACc,IAAU,CAACC,QAAQ,UAAU03C,WAAS,EAAAv4C,SAAA,8CAAAe,OACmB,OAAZ+rG,QAAY,IAAZA,OAAY,EAAZA,EAAcnrF,cAAa,qFAAA5gB,OAA8F,OAArB8rG,QAAqB,IAArBA,OAAqB,EAArBA,EAAuBnrF,OAAM,OAE/K5hB,cAACgyD,KAAW,CACVpxD,GAAI,CACFW,WAAY,WACZutB,eAAgB,UAChB5uB,SAEFF,cAAC+uB,KAAM,CAAChuB,QAAQ,YAAY4jB,QAlEzB,WACnBiZ,EAAS,GAAD38B,OAAI88B,KAAe0zB,MAAM0uC,uBAiEiCjgG,SAAC,uBAQjC,OAAzBswD,QAAyB,IAAzBA,OAAyB,EAAzBA,EAA2B9rD,QAAS,GACnC1E,cAAC6sG,EAAY,CAAA3sG,SACXQ,eAACujD,KAAW,CAAA/jD,SAAA,CACVF,cAACW,IAAG,CACFoN,UAAU,MACVygB,IAAK,uDACL5tB,GAAI,CAAEgI,OAAQ,IAAKjF,MAAO,UAE5B3D,cAACc,IAAU,CAACC,QAAQ,YAAY03C,WAAS,EAAAv4C,SACtB,OAAhB+sG,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBtrF,yBAErB3hB,cAACc,IAAU,CAACC,QAAQ,UAAU03C,WAAS,EAAAv4C,SAAA,8CAAAe,OACuB,OAAhBgsG,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBprF,cAAa,qFAAA5gB,OAA8F,OAArB8rG,QAAqB,IAArBA,OAAqB,EAArBA,EAAuBnrF,OAAM,OAEnL5hB,cAACgyD,KAAW,CACVpxD,GAAI,CACFkhD,OAAQ,GACRvgD,WAAY,WACZutB,eAAgB,UAChB5uB,SAEFF,cAAC+uB,KAAM,CAAChuB,QAAQ,YAAY4jB,QA3FrB,WACvBiZ,EAAS,GAAD38B,OAAI88B,KAAe0zB,MAAMy7C,gBA0FqChtG,SAAC,kDCtI5D,SAASitG,KACtB,IAAQxtF,EAAY0J,eAAZ1J,QACAkT,EAAa46B,eAAb56B,SACRsZ,EAA8EzrB,aAC5E,SAAC7O,GAAgB,OAAKA,EAAM0N,UADtBgxC,EAAOpkB,EAAPokB,QAAS3B,EAAYziB,EAAZyiB,aAAcE,EAAS3iB,EAAT2iB,UAAWD,EAAO1iB,EAAP0iB,QAASwvC,EAAWlyD,EAAXkyD,YAAajuC,EAASjkB,EAATikB,UAI1DyvC,EAAmCxB,EA+DzC,MAAO,CACL+O,UA9DF,WACE,GAAIvN,EAAU,CACZ,IAAMtgF,EAASgxC,EAAQ3lC,MACrB,SAAC8lC,GAAW,IAAA28C,EAAA,OACV38C,EAAIrxD,QAAiB,OAARwgG,QAAQ,IAARA,OAAQ,EAARA,EAAUxgG,QAAS,CAAC,MAAO,OAAOE,SAA8B,QAAtB8tG,EAAC38C,EAAIzrD,yBAAiB,IAAAooG,OAAA,EAArBA,EAAuBhuG,SAGnF,GAAIkgB,EACF,OAAOA,EACD,IAAD+tF,EAEgEC,EAAAC,EADjEjoG,EAAqB,OAAPoa,QAAO,IAAPA,GAAgB,QAAT2tF,EAAP3tF,EAAS0pF,eAAO,IAAAiE,OAAT,EAAPA,EAAkBG,WAIpC,OAHKloG,QAA+BZ,IAAhBY,GAA6C,KAAhBA,IAC/CA,EAAqB,OAAPoa,QAAO,IAAPA,GAAgB,QAAT4tF,EAAP5tF,EAAS0pF,eAAO,IAAAkE,GAAY,QAAZC,EAAhBD,EAAkB/D,kBAAU,IAAAgE,OAArB,EAAPA,EAA8B56B,UAAU,EAAG,IAQjE,SAAgB86B,GACd,IAAMjnE,EA0BR,SAA0BpnC,GACxB,IAAMouG,EAAa7+C,EAAazvD,QAAO,SAAC8hC,GAAc,OAAKA,EAAE5hC,OAASA,KAAM,GACtEoG,EAAWqpD,EAAU3vD,QAAO,SAACqP,GAAW,OAAKA,EAAEnP,QAAmB,OAAVouG,QAAU,IAAVA,OAAU,EAAVA,EAAYrmG,iBAAc,GAClFrC,EAAS8pD,EAAQ1vD,QACrB,SAACkL,GAAuB,OAAKA,EAAEhL,QAAmB,OAAVouG,QAAU,IAAVA,OAAU,EAAVA,EAAYpmG,eACpD,GAEF,MAAO,CACLomG,aACAhoG,WACAV,UApCe4oG,CAAiBD,GAC9BhvG,EAAU,IAAI6F,KAGds7F,IACFnhG,EAAQW,KAAOwgG,EAASxgG,KACxBX,EAAQc,UAAYqgG,EAASrgG,UAC7Bd,EAAQyC,YAAc0+F,EAAS1+F,aAGjCzC,EAAQ2B,gBAAkB,MAEtBomC,IACF/nC,EAAQ6G,YAAckhC,EAASgnE,WAC/B/uG,EAAQqG,OAAS0hC,EAAS1hC,OAC1BrG,EAAQ+G,SAAWghC,EAAShhC,UAQ9B,OANA/G,EAAQuG,kBAAoB,CAAE5F,KAAM,MAAO8B,YAAa,IACxDzC,EAAQwG,eAAiB,CAAE7F,KAAM,MAAO8B,YAAa,IACrDzC,EAAQgB,aAAe,MAEvBhB,EAAQqH,2BAA4B,EAE7BrH,EA9BI6hC,CAAOh7B,GAGlB,OAAO,IAAIhB,MA8CXsuB,WACA09B,UACAsvC,WACAzvC,a,wBCpEW,SAASw9C,GAAiBptG,GAAiD,IAADqtG,EAA7ChO,EAAQr/F,EAARq/F,SAAU54E,EAAOzmB,EAAPymB,QACpDomC,EAA8BC,eAAtBpvD,EAAMmvD,EAANnvD,OAAQqvD,EAASF,EAATE,UAEVugD,EAAcxsF,aAAiC,OAARu+E,QAAQ,IAARA,OAAQ,EAARA,EAAUrgG,WAEjDuuG,EAAmB7qF,aAA2B,OAAR28E,QAAQ,IAARA,OAAQ,EAARA,EAAU18E,UAEhD6qF,GAAoC,OAAhBD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBrpG,QAAS,EAmBrD,OAjBAzF,qBAAU,WAAO,IAADgvG,EAAAC,EAIVC,EAAa,IAAIroG,KAErB,QAA6BnB,IAAnB,OAANzG,QAAM,IAANA,GAAe,QAAT+vG,EAAN/vG,EAAQ2H,eAAO,IAAAooG,OAAT,EAANA,EAAiB5uG,OAA+C,MAApB,OAANnB,QAAM,IAANA,GAAe,QAATgwG,EAANhwG,EAAQ2H,eAAO,IAAAqoG,OAAT,EAANA,EAAiB7uG,MAAa,CACtE,IAAM+uG,EAA+B,OAAhBL,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBnjF,MAAK,SAAC/c,GAAC,OAAKA,EAAExO,OAASnB,EAAO2H,QAAQxG,QAEzE+uG,IACFD,EAAUpvG,YAAA,GAAQqvG,IAItB7gD,EAASxuD,wBAAC,GAAKb,GAAM,IAAE2H,QAASsoG,OAC/B,CAAO,OAANjwG,QAAM,IAANA,GAAe,QAAT2vG,EAAN3vG,EAAQ2H,eAAO,IAAAgoG,OAAT,EAANA,EAAiBxuG,OAEhBwgG,EAGHn/F,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACoB,KAAK,CAACoL,QAAQ,OAAOlL,cAAe,MAAOC,WAAY,SAASrB,SAC/DQ,eAAC02E,KAAI,CAAC9hC,WAAS,EAAChqC,QAAS,EAAEpL,SAAA,CACzBF,cAACo3E,KAAI,CAACn/D,MAAI,EAACoW,GAAI,GAAIE,GAAI,EAAEruB,SACvBF,cAACW,IAAG,CACFoN,UAAU,MACVyqC,IAAI,gBACJhqB,IAAK,wDACL5tB,GAAI,CAAE6tB,UAAW,SAGrBzuB,cAACo3E,KAAI,CAACn/D,MAAI,EAACoW,GAAI,GAAIE,GAAI,EAAEruB,SACvBQ,eAACU,KAAK,CAACC,IAAI,OAAMnB,SAAA,CACfQ,eAACU,KAAK,CAAAlB,SAAA,CACJF,cAACc,IAAU,CAACC,QAAQ,YAAY03C,WAAS,EAAAv4C,SAAC,eAG1CF,cAACc,IAAU,CAACC,QAAQ,UAAUH,GAAI,CAAEwtB,GAAI,GAAIluB,SAAA,+BAAAe,OACC,OAAX6sG,QAAW,IAAXA,OAAW,EAAXA,EAAahsF,UAAS,QAEvDksF,EACChuG,cAAC6tD,KAAW,CACVnsD,WAAS,EACTC,MAAM,aACN9C,KAAM,eACNgpB,KAAsB,OAAhBkmF,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBjsG,KAAI,SAAC+L,GAC3B,MAAO,CAAExO,KAAMwO,EAAExO,KAAMsC,MAAOkM,EAAE1M,kBAIpCT,eAACqsB,KAAK,CAACC,SAAS,OAAM9sB,SAAA,CACpBF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,qBAA6B,oDAAAe,OACT,OAAR4+F,QAAQ,IAARA,OAAQ,EAARA,EAAU1+F,YAAW,iCACjEnB,cAAA,SAAM,sIAMZA,cAACquG,KAAe,CAACxO,SAAUA,cAKnCn/F,eAACsxD,KAAW,CACVpxD,GAAI,CACFW,WAAY,WACZutB,eAAgB,SAChBmjC,GAAI,EACJC,GAAI,EACJC,GAAI,GACJjyD,SAAA,CAEFF,cAAC+uB,KAAM,CAACpK,QAASsC,EAASlmB,QAAQ,OAAMb,SAAC,WAGxC8tG,GACChuG,cAAC+uB,KAAM,CAACpsB,KAAK,SAAS5B,QAAQ,YAAWb,SAAC,qBA5D5BF,cAAAC,WAAA,IC7CjB,IAAMquG,GAA2C,CACtD7hE,OAAa7gC,MAAM,CACjB/F,QAAS4mC,OAAa7gC,MAAM,CAC1BvM,KAAMotC,OAAaC,SAAS,sCAKrB6hE,GAA2C,CACtD9hE,OAAa7gC,MAAM,CACjBhH,QAAS6nC,OAAa7gC,MAAM,CAC1BvM,KAAMotC,OAAaC,SAAS,mC,oBCCnB,SAAS8hE,GAA2BhuG,GAGb,IAADysD,EAQCghD,EAVpChkF,EAAQzpB,EAARypB,SACAhD,EAAOzmB,EAAPymB,QAEQ/oB,EAAWovD,eAAXpvD,OAEAouC,EAAoBC,eAApBD,gBACF1O,EAAWC,cAEb4wE,EAAiC,OAANvwG,QAAM,IAANA,GAAe,QAAT+uD,EAAN/uD,EAAQ0G,eAAO,IAAAqoD,OAAT,EAANA,EAAiB/mD,sBAE3CuoG,GAA2B,KAAdA,IAChBA,EAAoC,KAAV,QAAdR,EAAA/vG,EAAO2H,eAAO,IAAAooG,OAAA,EAAdA,EAAgB5uG,MAAa6zE,aAAUh1E,EAAO2H,QAAQqB,WAAa,IAGjF,IAAMwnG,EAAuB,CAC3BniF,MAAO2mD,aAAU,IAAI5wE,MACrBguE,IAAKm+B,GAmCP,OAAKxkF,GAAawkF,EAGhB/tG,eAACU,KAAK,CAACkK,QAAS,EAAEpL,SAAA,CAChBF,cAACc,IAAU,CAACC,QAAQ,QAAQ03C,WAAS,EAAC73C,GAAI,CAAEqL,MAAO,kBAAmB/L,SAAC,kMAIvEF,cAAC2uG,KAAmB,CAClB3xF,UAAW0xF,EACXzkF,SAAUA,EACV2kF,cA3CoB,WACxB,IAAMC,EAA4BJ,GAA0B,IAAbA,EAAkB,IAAInsG,KAAKmsG,GAAa,KAEnFI,GACFpuF,YACEquF,aAA0B,CACxB5zC,WAAoB,OAARjxC,QAAQ,IAARA,OAAQ,EAARA,EAAU3X,GACtBy8F,YAAqB,OAAR9kF,QAAQ,IAARA,OAAQ,EAARA,EAAU8kF,YACvBC,cAAeH,GAHjBC,EAIG,WAAO,IAAD/9C,EAAAm9C,EACsB,KAAnB,OAANhwG,QAAM,IAANA,GAAe,QAAT6yD,EAAN7yD,EAAQ0G,eAAO,IAAAmsD,OAAT,EAANA,EAAiB1xD,MACnBohB,YACE+wC,aAAYtzD,EAAZszD,EAAoB,WAClBllB,EAAgB,6BAA2B,CAAEvrC,QAAS,YACtD68B,EAASG,KAAe0zB,MAAMlB,aAGA,KAAnB,OAANryD,QAAM,IAANA,GAAe,QAATgwG,EAANhwG,EAAQ2H,eAAO,IAAAqoG,OAAT,EAANA,EAAiB7uG,OAC1BohB,YACEwuF,aAAe/wG,EAAf+wG,EAAuB,WACrB3iE,EAAgB,6BAA2B,CAAEvrC,QAAS,YACtD68B,EAASG,KAAe0zB,MAAMlB,eAhBtCu+C,EAoBG,WACDxiE,EAAgB,+CAA6C,CAAEvrC,QAAS,eAkB1EkmB,QAASA,EACTioF,YAAY,EACZC,sBAAsB,EACtBC,mBAAmB,EACnBC,sBAAsB,OAhBQrvG,cAAAC,WAAA,I,cCrCvB,SAASqvG,GAAwB9uG,GAIb,IAADmxD,EAAAC,EAAAC,EAAAC,EAAAC,EAAAw9C,EAAAC,EAAAC,EAAAC,EAAAC,EAHhC9P,EAAQr/F,EAARq/F,SACAzyC,EAAc5sD,EAAd4sD,eACAnmC,EAAOzmB,EAAPymB,QAEAomC,EAA8BC,eAAtBpvD,EAAMmvD,EAANnvD,OAAQqvD,EAASF,EAATE,UAEVqiD,EAAmB9sF,aAA2B,OAAR+8E,QAAQ,IAARA,OAAQ,EAARA,EAAU98E,UAEhD8sF,GACY,OAAhBD,QAAgB,IAAhBA,OAAgB,EAAhBA,EACIzwG,QAAO,SAAC2uD,GAAkB,OAAMV,EAAe7tD,SAASuuD,EAAIzuD,SAC7DyC,KAAI,SAAC86C,GACJ,IAAMkzD,EAAoBlzD,EAAE51C,gBAAkB41C,EAAE31C,eAC1C8oG,EAAcD,GAAqB,EACnCE,EAAUF,EAAoB,EAAI,IAAM,GAE9C,MAAO,CACLzwG,KAAMu9C,EAAEv9C,KACRsC,MAAM,GAADV,OAAK27C,EAAEz7C,YAAW,MAAAF,OACrB8uG,EAAc,cAAU,GAAA9uG,OAAM6uG,EAAiB,UAAA7uG,OAAS+uG,EAAO,aAAA/uG,OAAY+uG,GAAS,KAEtF/7D,KAAM2I,EAAE12C,sBACRjE,SAAU8tG,MAGb1jF,MAAK,SAAU7d,EAAG8d,GACjB,GAAI9d,EAAEvM,WAAaqqB,EAAErqB,SAAU,CAE7B,GAAIuM,EAAEylC,MAAQ3nB,EAAE2nB,KAAM,CACpB,GAAIzlC,EAAEylC,KAAO3nB,EAAE2nB,KACb,OAAO,EAET,GAAIzlC,EAAEylC,KAAO3nB,EAAE2nB,KACb,OAAQ,MAEL,CACL,GAAIzlC,EAAEylC,OAAS3nB,EAAE2nB,KACf,OAAO,EAET,IAAKzlC,EAAEylC,MAAQ3nB,EAAE2nB,KACf,OAAQ,EAGZ,OAAO,EAGP,OAAOzlC,EAAEvM,SAAW,GAAK,OAEvB,GAEJ+rG,GAAoC,OAAhB4B,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBlrG,QAAS,EAyBrD,OAvBAzF,qBAAU,WAAO,IAADguD,EAAA8D,EAIVnD,EAA4B,IAAI/oD,KAEpC,QAA6BF,IAAnB,OAANzG,QAAM,IAANA,GAAe,QAAT+uD,EAAN/uD,EAAQ0G,eAAO,IAAAqoD,OAAT,EAANA,EAAiB5tD,OAA+C,MAApB,OAANnB,QAAM,IAANA,GAAe,QAAT6yD,EAAN7yD,EAAQ0G,eAAO,IAAAmsD,OAAT,EAANA,EAAiB1xD,MAAa,CACtE,IAEkB4wG,EAFZC,EAA+B,OAAhBN,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBhlF,MAAK,SAAC5H,GAAC,OAAKA,EAAE3jB,OAASnB,EAAO0G,QAAQvF,QAE7E,GAAI6wG,EACFtiD,EAAU7uD,wBAAA,GACLmxG,GAAY,IACfprG,SAAsB,OAAZorG,QAAY,IAAZA,GAAsB,QAAVD,EAAZC,EAAcprG,gBAAQ,IAAAmrG,OAAV,EAAZA,EAAwBnuG,KAAI,SAAClC,GACrC,OAAAb,wBAAA,GAAYa,GAAG,IAAER,OAAQ,MAAOoE,KAAM,EAAGtE,YAAa,WAExD4H,aAA0B,OAAZopG,QAAY,IAAZA,OAAY,EAAZA,EAAcppG,eAKlCymD,EAASxuD,wBAAC,GAAKb,GAAM,IAAE0G,QAASgpD,OAC/B,CAAO,OAAN1vD,QAAM,IAANA,GAAe,QAATyzD,EAANzzD,EAAQ0G,eAAO,IAAA+sD,OAAT,EAANA,EAAiBtyD,OAGnBqB,eAACC,IAAG,CAACC,GAAI,CAAEiN,EAAG,KAAM3N,SAAA,CAClBF,cAACoB,KAAK,CAACE,cAAe,SAASpB,SAC5B8tG,EACCttG,eAACU,KAAK,CAACC,IAAI,OAAMnB,SAAA,CACfQ,eAACU,KAAK,CAACC,IAAI,OAAMnB,SAAA,CACfF,cAAC6tD,KAAW,CAACnsD,WAAS,EAACC,MAAM,UAAU9C,KAAM,eAAgBgpB,KAAMgoF,IACxB,OAApC,OAAN3xG,QAAM,IAANA,GAAe,QAAT0zD,EAAN1zD,EAAQ0G,eAAO,IAAAgtD,OAAT,EAANA,EAAiB1rD,wBAC0B,KAApC,OAANhI,QAAM,IAANA,GAAe,QAAT2zD,EAAN3zD,EAAQ0G,eAAO,IAAAitD,OAAT,EAANA,EAAiB3rD,wBACflG,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAA,0BAAAe,OAAyBwvB,aAClDvyB,EAAO0G,QAAQsB,0BAGrBlG,cAAC+tD,KAAwB,CAACjnD,aAAoB,OAAN5I,QAAM,IAANA,GAAe,QAAT4zD,EAAN5zD,EAAQ0G,eAAO,IAAAktD,OAAT,EAANA,EAAiBhrD,mBAEpD,OAAN5I,QAAM,IAANA,GAAe,QAAT6zD,EAAN7zD,EAAQ0G,eAAO,IAAAmtD,OAAT,EAANA,EAAiB1yD,OAAkC,MAApB,OAANnB,QAAM,IAANA,GAAe,QAATqxG,EAANrxG,EAAQ0G,eAAO,IAAA2qG,OAAT,EAANA,EAAiBlwG,OACzCW,cAACquG,KAAe,CAACxO,SAAUA,EAAUj7F,QAAe,OAAN1G,QAAM,IAANA,OAAM,EAANA,EAAQ0G,aAI1DlE,eAACqsB,KAAK,CAACC,SAAS,OAAM9sB,SAAA,CACpBF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,qBAA6B,yBAAAe,OAC3B,OAAR4+F,QAAQ,IAARA,OAAQ,EAARA,EAAU1+F,YAAW,iCAC/CnB,cAAA,SAAM,qIAMZU,eAACsxD,KAAW,CACVpxD,GAAI,CACFW,WAAY,WACZutB,eAAgB,SAChBmjC,GAAI,EACJC,GAAI,EACJC,GAAI,GACJjyD,SAAA,CAEFF,cAAC+uB,KAAM,CAACpK,QAASsC,EAASlmB,QAAQ,OAAMb,SAAC,WAGxC8tG,GACChuG,cAACymB,KAAO,CACND,OACS,OAANtoB,QAAM,IAANA,OAAM,EAANA,EAAQ0G,UAAoC,MAAnB,OAAN1G,QAAM,IAANA,OAAM,EAANA,EAAQ0G,QAAQvF,OAE1B,OAANnB,QAAM,IAANA,GAAe,QAATsxG,EAANtxG,EAAQ0G,eAAO,IAAA4qG,OAAT,EAANA,EAAiBxoG,mBAAyB,OAAN9I,QAAM,IAANA,GAAe,QAATuxG,EAANvxG,EAAQ0G,eAAO,IAAA6qG,OAAT,EAANA,EAAiBxoG,gBACrD,sBACA,GAHA,uCAIL/G,SAEDF,cAAA,QAAAE,SACEF,cAAC+uB,KAAM,CACLpsB,KAAK,SACL5B,QAAQ,YACRkB,UAAgB,OAAN/D,QAAM,IAANA,GAAe,QAATwxG,EAANxxG,EAAQ0G,eAAO,IAAA8qG,OAAT,EAANA,EAAiB1oG,mBAAyB,OAAN9I,QAAM,IAANA,GAAe,QAATyxG,EAANzxG,EAAQ0G,eAAO,IAAA+qG,OAAT,EAANA,EAAiB1oG,gBAC/DrG,GAAI,CAAE8wB,WAAY,GAAIxxB,SACvB,yBCtIA,SAASiwG,GAAwB3vG,GAA+C,IAA5Cq/F,EAAQr/F,EAARq/F,SAE3CpgB,GAAkBr2D,EADOC,eAAvBD,sBAGRgnF,EAA0CjD,KAAlCC,EAASgD,EAAThD,UAAW78C,EAAO6/C,EAAP7/C,QAASH,EAASggD,EAAThgD,UAEtBxyB,EAAWC,cAEXwyE,EAAgB,WACpBzyE,EAASG,KAAe0zB,MAAMlB,UAW5B+/C,EAAoBtwG,cAAAC,WAAA,IACpB+sC,EAA+B,GAEnC,OAAgB,OAAR6yD,QAAQ,IAARA,OAAQ,EAARA,EAAUC,oBAChB,KAAKn4F,KAAuBo4F,QAC1BuQ,EACEtwG,cAACsvG,GAAwB,CACvBzP,SAAUA,EACVzyC,eAAgBmD,EAAQzuD,KAAI,SAAC4uD,GAAG,OAAKA,EAAI9rD,QAAQvF,QACjD4nB,QAASopF,IAGbrjE,EAAmBuhE,GACnB,MACF,KAAK5mG,KAAuBE,KAI5B,KAAKF,KAAuBG,UAC1BwoG,EAAoBtwG,cAAC4tG,GAAiB,CAAC/N,SAAUA,EAAU54E,QAASopF,IACpErjE,EAAmBshE,GACnB,MACF,QACEgC,EAAoBtwG,cAAAC,WAAA,IACpB+sC,EAAmB,GAIvB,IAAIyjB,EAAQ,CACV,CACEn+C,GAAI,gBACJ3Q,MAAO,aACPoM,UAAWuiG,GAEb,CACEh+F,GAAI,WACJ3Q,MAAO,WACPoM,UAAW/N,cAACwuG,GAA2B,CAACvkF,SAAUw1D,EAAiBx4D,QA7ClD,WACnB+oC,EAAc,QAgDhB1xD,EAAoCC,mBAAS,GAAEC,EAAAC,YAAAH,EAAA,GAAxCoY,EAAUlY,EAAA,GAAEwxD,EAAaxxD,EAAA,GAC1BqyD,EAAan6C,IAAe+5C,EAAM/rD,OAAS,EAC3CksD,EACJ5jB,EAAiBtoC,QAAUgS,EAAa,EAAIs2B,EAAiBt2B,GAAc,KAQ7E,OACEhW,eAACiuB,KAAI,CAAAzuB,SAAA,CACHF,cAACumB,KAAU,CAACC,MAAe,OAARq5E,QAAQ,IAARA,OAAQ,EAARA,EAAU1+F,cAC7BT,eAACujD,KAAW,CAAA/jD,SAAA,CACVF,cAACuxD,KAAM,CACLxkB,cAAeqgE,IACfpgE,iBAAkB4jB,EAClB3jB,SAba,SAAC/uC,EAAgBsV,GAC/Bq9C,GAlDLb,EAAct5C,EAAa,IA8DExW,SAEtB,SAACtC,GAC2BA,EAAnBM,OAAmBN,EAAXyvC,OAEhB,OAAOrtC,cAAC8tC,KAAI,CAAA5tC,SAAEwW,IAAe+5C,EAAM/rD,OAAS1E,cAAAC,WAAA,IAAQwwD,EAAM/5C,GAAY3I,eAGzEqiD,GAAapwD,cAAC+sB,KAAK,CAACC,SAAS,QAAO9sB,SAAEkwD,UCtGhC,SAASmgD,GAA0B/vG,GAAsC2M,YAAA3M,GACtF,IAAA2rC,EAAiCzrB,aAAY,SAAC7O,GAAgB,OAAKA,EAAM0N,UAAjE8+E,EAAWlyD,EAAXkyD,YAAa9tC,EAAOpkB,EAAPokB,QAEfsvC,EAAmCxB,EAGnCmS,EACJ3Q,IACO,OAAPtvC,QAAO,IAAPA,OAAO,EAAPA,EAASza,MACP,SAACxyC,GAAC,IAAA28F,EAAA,OAAK38F,EAAEjE,OAASwgG,EAASxgG,OAAS,CAAC,MAAO,OAAOE,SAA4B,QAApB0gG,EAAC38F,EAAE2B,yBAAiB,IAAAg7F,OAAA,EAAnBA,EAAqB5gG,UAG/EoxG,GAAoB5Q,GAAY2Q,EAEhCE,EAAwB7Q,EAC1Bv+E,aAAiC,OAARu+E,QAAQ,IAARA,OAAQ,EAARA,EAAUrgG,WACnC6iB,eAEJ,OACEriB,cAAC+4D,IAAI,CACHvyC,MAAK,OAAAvlB,OAA8B,OAArByvG,QAAqB,IAArBA,OAAqB,EAArBA,EAAuB/uF,uBAAsB,kBAC3DyjC,eAAe,SAAQllD,SAEvBQ,eAAC+gD,IAAS,CAACvzB,SAAU,KAAKhuB,SAAA,CACxBF,cAAC4kG,KAAiB,CAChB79C,QAA8B,OAArB2pD,QAAqB,IAArBA,OAAqB,EAArBA,EAAuB/uF,uBAChCkjF,MAAO,GACP9yF,OAAQ/R,cAAAC,WAAA,MAETwwG,EACCzwG,cAAC2uB,KAAI,CAAAzuB,SACHF,cAACikD,KAAW,CAAA/jD,SACVF,cAAC4oB,KAAY,CACXpC,MAAK,WAAAvlB,OAAkC,OAArByvG,QAAqB,IAArBA,OAAqB,EAArBA,EAAuB1uF,WACzC6G,YAAa,4BACblgB,IAAK,4DAKX3I,cAACmwG,GAAwB,CAACtQ,SAAUA,SC1B9C,IAAM8Q,GAAW,SAACC,GAA4B,OAAK,SAAChzG,GAElD,IACMizG,EADezrF,cAAbD,SACqB5lB,SAAS,cAEtC,OACES,cAAC8wG,WAAQ,CACPC,SACE/wG,cAACm+E,EAAa,CACZv9E,GAAE7B,YAAA,IACK8xG,GAAe,CAClBtkG,IAAK,EACLD,KAAM,EACN3I,MAAO,EACP0L,OAAQ,KACRhM,SAAU,YAIjBnD,SAEDF,cAAC4wG,EAAS7xG,YAAA,GAAKnB,QAKN,SAASozG,KACtB,OAAOC,YAAU,CACf,CAAErsE,KAAM,IAAKssE,QAASlxG,cAAC0jG,IAAQ,CAAC7zC,GAAG,OACnC,CACEjrB,KAAM,OAEN1kC,SAAU,CACR,CACE0kC,KAAM,QACNssE,QACElxG,cAACwjG,GAAU,CAAAtjG,SACTF,cAACq8D,GAAK,OAIZ,CACEz3B,KAAM,WACNssE,QACElxG,cAACwjG,GAAU,CAAAtjG,SACTF,cAAC4xF,GAAQ,OAIf,CAAEhtD,KAAM,oBAAqBssE,QAASlxG,cAACq8D,GAAK,KAC5C,CAAEz3B,KAAM,uBAAwBssE,QAASlxG,cAAC4xF,GAAQ,KAClD,CAAEhtD,KAAM,iBAAkBssE,QAASlxG,cAACmxG,GAAa,KACjD,CAAEvsE,KAAM,SAAUssE,QAASlxG,cAACoxG,GAAU,KACtC,CAAExsE,KAAM,kBAAmBssE,QAASlxG,cAACqxG,GAAc,KAEnD,CAAEzsE,KAAM,QAASssE,QAASlxG,cAAC0jG,IAAQ,CAAC7zC,GAAG,sBAG3C,CAAEjrB,KAAM,QAASssE,QAASlxG,cAACqxG,GAAc,KAEzC,CACEzsE,KAAM,YACNssE,QACElxG,cAAC2jG,GAAS,CAAAzjG,SACRF,cAACkjG,GAAe,MAGpBhjG,SAAU,CACR,CAAEgxG,QAASlxG,cAAC0jG,IAAQ,CAAC7zC,GAAG,iBAAiBpnD,SAAO,KAEhD,CACEm8B,KAAM,aACNssE,QAASlxG,cAACsxG,GAAgB,KAM5B,CAAE1sE,KAAM,MAAOssE,QAASlxG,cAAC+gE,GAAS,KAClC,CAAEn8B,KAAM,YAAassE,QAASlxG,cAAC+gE,GAAS,KACxC,CAAEn8B,KAAM,kBAAmBssE,QAASlxG,cAACuxG,GAAY,KACjD,CAAE3sE,KAAM,UAAWssE,QAASlxG,cAACwxG,GAAO,KACpC,CAAE5sE,KAAM,QAASssE,QAASlxG,cAAC27D,GAAI,KAC/B,CACE/2B,KAAM,cACN1kC,SAAU,CACR,CACE0kC,KAAM,kBACNssE,QACElxG,cAACwrE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAW6jB,WAAWthE,SACrDF,cAACyxG,GAAgB,OAIvB,CACE7sE,KAAM,GACNssE,QACElxG,cAACwrE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAW6jB,WAAWthE,SACrDF,cAAC0xG,GAAkB,SAM7B,CACE9sE,KAAM,eACNssE,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAWg0D,UAAUzxG,SAAA,CACnD,IACDF,cAAC0kG,GAAS,IAAI,QAKpB,CACE9/D,KAAM,QACN1kC,SAAU,CACR,CAAEgxG,QAASlxG,cAAC0jG,IAAQ,CAAC7zC,GAAG,+BAA+BpnD,SAAO,KAC9D,CACEm8B,KAAM,SACNssE,QACElxG,cAACwrE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAW6jB,WAAWthE,SACrDF,cAAC4xG,GAAe,OAItB,CACEhtE,KAAM,cACNssE,QACElxG,cAACwrE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAW6jB,WAAWthE,SACrDF,cAAC6xG,GAAsB,OAI7B,CACEjtE,KAAM,cACNssE,QACElxG,cAACwrE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAW6jB,WAAWthE,SACrDF,cAAC8xG,GAAQ,OAIf,CACEltE,KAAM,4BACNssE,QACElxG,cAACwrE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAW6jB,WAAWthE,SACrDF,cAAC8xG,GAAQ,OAIf,CACEltE,KAAM,cACNssE,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAWqkB,kBAAkB9hE,SAAA,CAC3D,IACDF,cAAC+xG,GAAW,QAIlB,CACEntE,KAAM,aACNssE,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAWskB,oBAAoB/hE,SAAA,CAC7D,IACDF,cAACgyG,GAAgB,QAIvB,CACEptE,KAAM,UACNssE,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAWp8B,QAAQrhB,SAAA,CACjD,IACDF,cAACskF,GAAO,QAId,CACE1/C,KAAM,aACNssE,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAWs0D,cAAc/xG,SAAA,CACvD,IACDF,cAACklG,GAAY,QAInB,CACEtgE,KAAM,aACNssE,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAWs0D,cAAc/xG,SAAA,CACvD,IACDF,cAAC2sG,GAAoB,QAI3B,CACE/nE,KAAM,wBACNssE,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAWs0D,cAAc/xG,SAAA,CACvD,IACDF,cAACuwG,GAA0B,UAMrC,CACE3rE,KAAM,UACN1kC,SAAU,CACR,CAAEgxG,QAASlxG,cAAC0jG,IAAQ,CAAC7zC,GAAG,0BAA0BpnD,SAAO,KACzD,CACEm8B,KAAM,OACNssE,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAW6jB,WAAWthE,SAAA,CACpD,IACDF,cAACkyG,GAAQ,QAIf,CACEttE,KAAM,MACNssE,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAW6jB,WAAWthE,SAAA,CACrDF,cAACmyG,GAAO,IAAI,UAMtB,CACEvtE,KAAM,MACN1kC,SAAU,CACR,CAAEgxG,QAASlxG,cAAC0jG,IAAQ,CAAC7zC,GAAG,sBAAsBpnD,SAAO,KACrD,CACEm8B,KAAM,OACNssE,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAW2kB,SAASpiE,SAAA,CAClD,IACDF,cAACoyG,GAAI,QAIX,CACExtE,KAAM,MACNssE,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAW2kB,SAASpiE,SAAA,CACnDF,cAACqyG,GAAG,IAAI,UAOlB,CACEztE,KAAM,SACNssE,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAWukB,QAAQhiE,SAAA,CACjD,IACDF,cAACkiE,GAAM,QAKb,CACEt9B,KAAM,UACNssE,QACElxG,cAACwrE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAWojB,WAAW7gE,SACrDF,cAACsyG,GAAY,OAInB,CACE1tE,KAAM,eACN1kC,SAAU,CACR,CAAEgxG,QAASlxG,cAAC0jG,IAAQ,CAAC7zC,GAAG,+BAA+BpnD,SAAO,KAC9D,CACEm8B,KAAM,OACNssE,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAWgkB,kBAAkBzhE,SAAA,CAC5DF,cAACuyG,GAAgB,IAAI,UAM/B,CACE3tE,KAAM,WACN1kC,SAAU,CACR,CAAEgxG,QAASlxG,cAAC0jG,IAAQ,CAAC7zC,GAAG,2BAA2BpnD,SAAO,KAC1D,CACEm8B,KAAM,OACNssE,QACElxG,cAACwrE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAW8jB,cAAcvhE,SACxDF,cAACwyG,GAAY,SAMvB,CACE5tE,KAAM,YACN1kC,SAAU,CACR,CAAEgxG,QAASlxG,cAAC0jG,IAAQ,CAAC7zC,GAAG,4BAA4BpnD,SAAO,KAC3D,CAAEm8B,KAAM,OAAQssE,QAASlxG,cAACwhE,GAAS,KAEnC,CACE58B,KAAM,6BACNssE,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAW6jB,WAAWthE,SAAA,CACpD,IACDF,cAACyxG,GAAgB,IAAI,QAI3B,CACE7sE,KAAM,kBACNssE,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAW6jB,WAAWthE,SAAA,CACpD,IACDF,cAACyxG,GAAgB,IAAI,QAI3B,CACE7sE,KAAM,uCACNssE,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAW6jB,WAAWthE,SAAA,CACpD,IACDF,cAACyxG,GAAgB,IAAI,QAK3B,CACE7sE,KAAM,YACNssE,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAW6jB,WAAWthE,SAAA,CACpD,IACDF,cAACyyG,GAAsB,IAAI,QAIjC,CACE7tE,KAAM,WACNssE,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAW6jB,WAAWthE,SAAA,CACpD,IACDF,cAAC0yG,GAAc,IAAI,QAIzB,CACE9tE,KAAM,SACNssE,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAW6jB,WAAWthE,SAAA,CACpD,IACDF,cAACglG,GAAe,IAAI,QAI1B,CACEpgE,KAAM,gBACNssE,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAW6jB,WAAWthE,SAAA,CACpD,IACDF,cAAC8kG,GAAsB,IAAI,UAMrC,CACElgE,KAAM,OACN1kC,SAAU,CACR,CACEgxG,QACElxG,cAACwrE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAWojB,WAAW7gE,SACrDF,cAAC0jG,IAAQ,CAAC7zC,GAAG,sBAAsBpnD,SAAO,OAIhD,CACEm8B,KAAM,iDACNssE,QACElxG,cAACwrE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAWojB,WAAW7gE,SACrDF,cAACs+D,GAAI,SAMf,CACE15B,KAAM,UACN1kC,SAAU,CACR,CACEgxG,QACExwG,eAAC8qE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAWojB,WAAW7gE,SAAA,CACpD,IACDF,cAAC0jG,IAAQ,CAAC7zC,GAAG,yBAAyBpnD,SAAO,QAInD,CACEm8B,KAAM,eACNssE,QACElxG,cAACwrE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAWojB,WAAW7gE,SACrDF,cAAC2yG,GAAO,OAId,CACE/tE,KAAM,+CACNssE,QACElxG,cAACwrE,KAAW,CAAC9tB,kBAAmB,CAACC,KAAWojB,WAAW7gE,SACrDF,cAAC2yG,GAAO,SAMlB,CACE/tE,KAAM,UACN1kC,SAAU,CACR,CAAEgxG,QAASlxG,cAAC0jG,IAAQ,CAAC7zC,GAAG,6BAA6BpnD,SAAO,KAC5D,CACEm8B,KAAM,sCACNssE,QAASlxG,cAAC4yG,GAAc,OAI9B,CAAEhuE,KAAM,eAAgBssE,QAASlxG,cAAC0jG,IAAQ,CAAC7zC,GAAG,sBAGlD,CAAEjrB,KAAM,IAAKssE,QAASlxG,cAAC0jG,IAAQ,CAAC7zC,GAAG,oBAEnC,CACEjrB,KAAM,IACNssE,QAASlxG,cAAC6yG,KAAc,IACxB3yG,SAAU,CACR,CAAE0kC,KAAM,MAAOssE,QAASlxG,cAACi5D,GAAO,KAChC,CAAEr0B,KAAM,MAAOssE,QAASlxG,cAAC+oC,GAAQ,KACjC,CAAEnE,KAAM,cAAessE,QAASlxG,cAAC8yG,GAAW,OAIhD,CACEluE,KAAM,IACNssE,QAASlxG,cAAC0+E,GAAU,IACpBx+E,SAAU,CACR,CACE0kC,KAAM,yBACNssE,QAASlxG,cAACusG,GAA2B,OAI3C,CACE3nE,KAAM,IACNssE,QAASlxG,cAAC++E,GAAmB,IAC7B7+E,SAAU,CACR,CACE0kC,KAAM,gBACNssE,QAASlxG,cAAC+yG,GAAiB,SAUrC,IAKM12C,GAAQs0C,GAASqC,gBAAK,kBAAM,8CAC5BphB,GAAW+e,GAASqC,gBAAK,kBAAM,oCAC/B7B,GAAgBR,GAASqC,gBAAK,kBAAM,oCACpC3B,GAAiBV,GAASqC,gBAAK,kBAAM,oCACrC5B,GAAaT,GAASqC,gBAAK,kBAAM,oCAGjCjyC,IADa4vC,GAASqC,gBAAK,kBAAM,oCACrBrC,GAASqC,gBAAK,kBAAM,4DAChCd,GAAWvB,GAASqC,gBAAK,kBAAM,oCAC/Bb,GAAUxB,GAASqC,gBAAK,kBAAM,oCAC9BjB,GAAcpB,GAASqC,gBAAK,kBAAM,iEAClChB,GAAmBrB,GAASqC,gBAAK,kBAAM,iEACvC1uB,GAAUqsB,GAASqC,gBAAK,kBAAM,mCAE9BZ,GAAOzB,GAASqC,gBAAK,kBAAM,oCAC3BX,GAAM1B,GAASqC,gBAAK,kBAAM,oCAC1B1B,GAAmBX,GAASqC,gBAAK,kBAAM,oCAEvCJ,GAAiBjC,GAASqC,gBAAK,kBAAM,uEAErC9wC,GAASyuC,GAASqC,gBAAK,kBAAM,+EAC7BV,GAAe3B,GAASqC,gBAAK,kBAAM,oCACnCT,GAAmB5B,GAASqC,gBAAK,kBAAM,oCACvCr3C,GAAOg1C,GAASqC,gBAAK,kBAAM,oCAC3BR,GAAe7B,GAASqC,gBAAK,kBAAM,oCACnCzB,GAAeZ,GAASqC,gBAAK,kBAAM,oCACnCxB,GAAUb,GAASqC,gBAAK,kBAAM,oCAE9BlB,GAAWnB,GAASqC,gBAAK,kBAAM,oCAE/BxxC,GAAYmvC,GAASqC,gBAAK,kBAAM,oCAChCvB,GAAmBd,GAASqC,gBAAK,kBAAM,oCACvCpB,GAAkBjB,GAASqC,gBAAK,kBAAM,oCACtCN,GAAiB/B,GAASqC,gBAAK,kBAAM,oCACrCtB,GAAqBf,GAASqC,gBAAK,kBAAM,oCACzChO,GAAkB2L,GAASqC,gBAAK,kBAAM,oCACtCnB,GAAyBlB,GAC7BqC,gBAAK,kBAAM,oCAEPP,GAAyB9B,GAC7BqC,gBAAK,kBAAM,oCAGP10C,GAAOqyC,GAASqC,gBAAK,kBAAM,mCAC3BL,GAAUhC,GAASqC,gBAAK,kBAAM,oCAE9B/5C,GAAU03C,GAASqC,gBAAK,kBAAM,8CAC9BjqE,GAAW4nE,GAASqC,gBAAK,kBAAM,6CAC/BF,GAAcnC,GAASqC,gBAAK,kBAAM,oCAClCD,GAAoBpC,GAASqC,gBAAK,kBAAM,oC,qDCzhB/BpnG,GAND,CACZD,aAAc,EACdg3C,eAAgB,GAChB92C,eAAgB,I,UCVlB,SAASonG,GAAQn0G,GACf,MAAM,GAANmC,OAAUnC,EAAQ,GAAE,OAGtB,SAASo0G,GAAmB1yG,GAA0D,IAAvD8tB,EAAE9tB,EAAF8tB,GAAIC,EAAE/tB,EAAF+tB,GAAIo+D,EAAEnsF,EAAFmsF,GACrC,MAAO,CACL,2BAA4B,CAC1BnhF,SAAUynG,GAAQ3kF,IAEpB,2BAA4B,CAC1B9iB,SAAUynG,GAAQ1kF,IAEpB,4BAA6B,CAC3B/iB,SAAUynG,GAAQtmB,KAKxB,IAkFexhF,GA/EI,CACjBM,WAJmB,0BAKnB0nG,kBAAmB,IACnBvmD,iBAAkB,IAClBC,eAAgB,IAChB7/C,GAAEjO,YAAA,CACA09B,WAAY,IACZlxB,WAAY,KACZC,SAAUynG,GAAQ,KACfC,GAAoB,CAAE5kF,GAAI,GAAIC,GAAI,GAAIo+D,GAAI,MAE/Cv/E,GAAErO,YAAA,CACA09B,WAAY,IACZlxB,WAAY,GAAK,GACjBC,SAAUynG,GAAQ,KACfC,GAAoB,CAAE5kF,GAAI,GAAIC,GAAI,GAAIo+D,GAAI,MAE/Ct/E,GAAEtO,YAAA,CACA09B,WAAY,IACZlxB,WAAY,IACZC,SAAUynG,GAAQ,KACfC,GAAoB,CAAE5kF,GAAI,GAAIC,GAAI,GAAIo+D,GAAI,MAE/Cp/E,GAAExO,YAAA,CACA09B,WAAY,IACZlxB,WAAY,IACZC,SAAUynG,GAAQ,KACfC,GAAoB,CAAE5kF,GAAI,GAAIC,GAAI,GAAIo+D,GAAI,MAE/Cl/E,GAAE1O,YAAA,CACA09B,WAAY,IACZlxB,WAAY,IACZC,SAAUynG,GAAQ,KACfC,GAAoB,CAAE5kF,GAAI,GAAIC,GAAI,GAAIo+D,GAAI,MAE/Ch/E,GAAE5O,YAAA,CACA09B,WAAY,IACZlxB,WAAY,GAAK,GACjBC,SAAUynG,GAAQ,KACfC,GAAoB,CAAE5kF,GAAI,GAAIC,GAAI,GAAIo+D,GAAI,MAE/C4Y,UAAW,CACT9oE,WAAY,IACZlxB,WAAY,IACZC,SAAUynG,GAAQ,KAEpBvtD,UAAW,CACTjpB,WAAY,IACZlxB,WAAY,GAAK,GACjBC,SAAUynG,GAAQ,KAEpB7nG,MAAO,CACLG,WAAY,IACZC,SAAUynG,GAAQ,KAEpB9rD,MAAO,CACL57C,WAAY,GAAK,GACjBC,SAAUynG,GAAQ,KAEpBG,QAAS,CACP7nG,WAAY,GAAK,GACjBC,SAAUynG,GAAQ,IAClBhnG,MAAO,WAETkhF,SAAU,CACR1wD,WAAY,IACZlxB,WAAY,IACZC,SAAUynG,GAAQ,IAClBI,cAAe,IACfC,cAAe,aAEjBC,OAAQ,CACN92E,WAAY,IACZlxB,WAAY,GAAK,GACjBC,SAAUynG,GAAQ,IAClBK,cAAe,YCtFJnnG,GAVK,CAClBjO,OAAQ,CACNmwB,GAAI,EACJC,GAAI,IACJC,GAAI,IACJo+D,GAAI,KACJ6mB,GAAI,O,gICDFC,GAAa,CAAE9vG,MAAO,GAAIiF,OAAQ,IAClC8qG,GAAa,CAAE/vG,MAAO,GAAIiF,OAAQ,IAElC+qG,GACJ3zG,cAAC4zG,KAAO,CAAA1zG,SACNF,cAACk7B,KAAI,CAAC9N,KAAM84D,S,gGCHV2tB,GAAY,CAAElwG,MAAO,GAAIiF,OAAQ,ICJvC,SAASsyB,GAAKt9B,GACZ,OACEoC,cAAC4zG,KAAO70G,wBAAA,GAAKnB,GAAK,IAAAsC,SAChBF,cAAA,QAAMihC,EAAE,2IAKd,SAAS6yE,GAAYl2G,GACnB,OACEoC,cAAC4zG,KAAO70G,wBAAA,GAAKnB,GAAK,IAAAsC,SAChBF,cAAA,QAAMihC,EAAE,kOAKd,SAAS8yE,GAAkBn2G,GACzB,OACEoC,cAAC4zG,KAAO70G,wBAAA,GAAKnB,GAAK,IAAAsC,SAChBF,cAAA,QAAMihC,EAAE,iLC2BC,SAAS+yE,GAAoBjpG,GAC1C,OAAO2gG,iBChDM,SAAa3gG,GAC1B,MAAO,CACLkpG,OAAQ,CACNC,aAAc,CACZjoG,MAAO,WAGTkoG,eAAgB,CACdl2E,KAAM,CACJ1tB,UAAWxF,EAAMyF,cAAc8wC,GAC/B,UAAW,CACT/wC,UAAW,OACXzE,gBAAiBf,EAAME,QAAQ4B,KAAK,OAGxCqgB,QAAS,CACP3c,UAAWxF,EAAMyF,cAAc0c,QAC/B,UAAW,CACTphB,gBAAiBf,EAAME,QAAQiiB,QAAQ2oD,OAG3C3pE,UAAW,CACTqE,UAAWxF,EAAMyF,cAActE,UAC/B,UAAW,CACTJ,gBAAiBf,EAAME,QAAQiB,UAAU2pE,OAG7Cu+B,SAAU,CACR,QAAS,CACP7iE,YAAaxmC,EAAMO,QAAQ,QDoBnC+oG,CAAItpG,GEjDO,SAAcA,GAC3B,MAAO,CACLupG,OAAQ,CACNH,eAAgB,CACdl2E,KAAM,CACJvyB,QAAS,EACT+wB,WAAY1xB,EAAMI,WAAWyhD,iBAC7BwgC,oBAAqBriF,EAAMa,MAAMD,aACjC4oG,qBAAsBxpG,EAAMa,MAAMD,aAClC,iBAAkB,GAGlB,uBAAwB,CACtB4lC,YAAaxmC,EAAMO,QAAQ,IAE7B,4BAA6B,CAC3BkhD,SAAU,KAGdgoD,UAAW,CACT38E,UAAW,GACXv2B,cAAe,MACf,sBAAuB,CACrB+K,aAAc,EACdklC,YAAaxmC,EAAMO,QAAQ,KAG/BmpG,QAAS,CACPnzG,cAAe,MACfoL,WAAY,UAEdgoG,iBAAkB,CAChBroD,QAAS,EACTpgD,MAAOlB,EAAME,QAAQb,KAAK8B,WAE5B,sBAAuB,CACrBtD,OAAQ,KAId+rG,YAAa,CACXR,eAAgB,CACdl2E,KAAM,CACJvyB,QAAS,KAIfkpG,mBAAoB,CAClBT,eAAgB,CACdl2E,KAAM,CACJt6B,MAAO,GACPgI,aAAc,UFDpBowC,CAAKhxC,GGhDM,SAAcA,GAC3B,MAAO,CACL8pG,QAAS,CACPX,aAAc,CACZY,WAAY90G,cAACk7B,KAAI,CAAC9N,KAAM2nF,QAG1BZ,eAAgB,CACda,aAAc,CACZ,gDAAiD,CAC/C/oG,MAAOlB,EAAME,QAAQb,KAAK8B,YAG9B+oG,SAAU,CACRtvD,YAAa56C,EAAME,QAAQ4B,KAAK,OAChC,yBAA0B,CACxB84C,YAAa56C,EAAME,QAAQiiB,QAAQI,MAErC,2BAA4B,CAC1Bq4B,YAAa56C,EAAME,QAAQiB,UAAUohB,OAIzC4nF,gBAAiB,CACfjpG,MAAOlB,EAAME,QAAQkuB,KAAKq9C,aAC1B1qE,gBAAiBf,EAAME,QAAQkuB,KAAK08C,MAEtCs/B,mBAAoB,CAClBlpG,MAAOlB,EAAME,QAAQorE,QAAQG,aAC7B1qE,gBAAiBf,EAAME,QAAQorE,QAAQR,MAEzCu/B,mBAAoB,CAClBnpG,MAAOlB,EAAME,QAAQ6B,QAAQ0pE,aAC7B1qE,gBAAiBf,EAAME,QAAQ6B,QAAQ+oE,MAEzCw/B,iBAAkB,CAChBppG,MAAOlB,EAAME,QAAQ5M,MAAMm4E,aAC3B1qE,gBAAiBf,EAAME,QAAQ5M,MAAMw3E,SHY3Cz9C,CAAKrtB,GInDM,SAAcA,GAC3B,MAAO,CACLuqG,QAAS,CACPnB,eAAgB,CACdl2E,KAAM,CACJ1tB,UAAWxF,EAAMyF,cAAc2zC,GAC/Bx4C,aAAcZ,EAAMa,MAAMC,eAC1BxI,SAAU,WACVgM,OAAQ,KAIdkmG,cAAe,CACbrB,aAAc,CACZsB,qBAAsB,CAAEz0G,QAAS,MACjC00G,yBAA0B,CAAE10G,QAAS,QAAS2C,UAAWqH,EAAMO,QAAQ,MAEzE6oG,eAAgB,CACdl2E,KAAM,CACJvyB,QAASX,EAAMO,QAAQ,EAAG,EAAG,MAInCoqG,eAAgB,CACdvB,eAAgB,CACdl2E,KAAM,CACJvyB,QAASX,EAAMO,QAAQ,OJ0B7BqjB,CAAK5jB,GKpDM,SAAcA,GAC3B,MAAO,CACL4qG,YAAa,CACXxB,eAAgB,CACdl2E,KAAM,CACJ,iBAAkB,CAChBnyB,gBAAiBf,EAAME,QAAQ8G,OAAOgU,SACtC,UAAW,CACTja,gBAAiBf,EAAME,QAAQ8G,OAAOw6C,YL6ChDqpD,CAAK7qG,GMpDA,CACL8qG,QAAS,CACP1B,eAAgB,KCFb,CACL2B,QAAS,CACP5B,aAAc,CACZ7pD,UAAW,SAGb8pD,eAAgB,CACdl2E,KAAM,MCRC,SAAelzB,GAC5B,MAAO,CACLgrG,aAAc,CACZ5B,eAAgB,CACdl2E,KAAM,CACJ,iBAAkB,CAChB,QAAS,CAAEhyB,MAAOlB,EAAME,QAAQb,KAAKnI,YAGzC0lD,MAAO,CACL,iBAAkB,CAChB0E,QAAS,EACTpgD,MAAOlB,EAAME,QAAQb,KAAKnI,aAKlC+zG,SAAU,CACR7B,eAAgB,CACd9pD,UAAW,CACT,WAAY,CACVqC,kBAAmB3hD,EAAME,QAAQ4B,KAAK,WAK9CopG,eAAgB,CACd9B,eAAgB,CACdl2E,KAAM,CACJnyB,gBAAiBf,EAAME,QAAQ4B,KAAK,OACpC,UAAW,CACTf,gBAAiBf,EAAME,QAAQ4B,KAAK,QAEtC,gBAAiB,CACff,gBAAiBf,EAAME,QAAQ8G,OAAO6zC,OAExC,iBAAkB,CAChB95C,gBAAiBf,EAAME,QAAQ8G,OAAO46C,qBAG1CtC,UAAW,CACT,WAAY,CACVqC,kBAAmB3hD,EAAME,QAAQ4B,KAAK,WAK9CqpG,iBAAkB,CAChB/B,eAAgB,CACdl2E,KAAM,CACJ,qCAAsC,CACpC0nB,YAAa56C,EAAME,QAAQ4B,KAAK,QAElC,iBAAkB,CAChB,qCAAsC,CACpC84C,YAAa56C,EAAME,QAAQ8G,OAAO46C,yBRC5CwpD,CAAMprG,GSxDK,SAAeA,GAC5B,MAAO,CACLqrG,SAAU,CACRjC,eAAgB,CACdl2E,KAAM,CACJvyB,QAASX,EAAMO,QAAQ,GACvB+qG,IAAK,CACH7qG,SAAU,GACV,qBAAsB,CACpBA,SAAU,STgDpB8qG,CAAMvrG,GUxDD,CACLwrG,SAAU,CACRpC,eAAgB,CACdqC,IAAK,CACH7yG,MAAO,GACPiF,OAAQ,GACR+C,aAAc,UCPT,SAAeZ,GAC5B,MAAO,CACL0rG,gBAAiB,CACftC,eAAgB,CACdl2E,KAAM,CACJuuB,SAAU,OACVjb,YAAaxmC,EAAMO,QAAQ,MAIjCorG,kBAAmB,CACjBvC,eAAgB,CACdl2E,KAAM,CACJuuB,SAAU,OACVjb,YAAaxmC,EAAMO,QAAQ,MAIjCqrG,gBAAiB,CACfxC,eAAgB,CACdl2E,KAAM,CACJv6B,UAAW,EACX2I,aAAc,GAEhBi3E,UAAW,CACT5/E,UAAW,EACX2I,aAAc,MXiCpBuqG,CAAM7rG,GYvDK,SAAeA,GAC5B,MAAO,CACL8rG,YAAa,CACX1C,eAAgB,CACdl2E,KAAM,CACJ,iBAAkB,CAChBnyB,gBAAiBf,EAAME,QAAQ8G,OAAOgU,SACtC,UAAW,CACTja,gBAAiBf,EAAME,QAAQ8G,OAAOw6C,WAMhDuqD,aAAc,CACZ3C,eAAgB,CACdl2E,KAAM,CACJtuB,aAAc,QAEhB8/E,KAAM,CACJxjF,MAAOlB,EAAME,QAAQb,KAAK8B,UAC1BJ,gBAAiBf,EAAME,QAAQc,WAAWC,QAC1C,kBAAmB,CACjBX,YAAaN,EAAMO,QAAQ,GAC3B8hF,oBAAqBriF,EAAMa,MAAMD,aACjC0hF,uBAAwBtiF,EAAMa,MAAMD,aACpC4E,UAAU,iBAADtP,OAAmB8J,EAAME,QAAQc,WAAWyD,QAEvD,iBAAkB,CAChB6U,aAActZ,EAAMO,QAAQ,GAC5BipG,qBAAsBxpG,EAAMa,MAAMD,aAClCorG,wBAAyBhsG,EAAMa,MAAMD,aACrC4E,UAAU,kBAADtP,OAAoB8J,EAAME,QAAQc,WAAWyD,SAG1DwnG,aAAc,CACZlrG,gBAAiBf,EAAME,QAAQc,WAAWyD,MAC1C8yC,gBAAgB,8BAADrhD,OAAgC8J,EAAME,QAAQc,WAAWC,QAAO,SAAA/K,OAAQ8J,EAAME,QAAQc,WAAWC,QAAO,WAEzH2G,KAAM,CACJ,kBAAmB,CACjBtH,YAAaN,EAAMO,QAAQ,IAE7B,iBAAkB,CAChB+Y,aAActZ,EAAMO,QAAQ,OAKpC2rG,mBAAoB,CAClB9C,eAAgB,CACdl2E,KAAM,CACJi5E,UAAU,aAADj2G,OAAe8J,EAAME,QAAQmlB,UAExC+4B,QAAS,CACPvgD,OAAQ,IAEV9E,OAAQ,CACN,UAAW,CACT6H,aAAcZ,EAAMa,MAAMD,eAG9BwrG,WAAY,CACVxzG,MAAO,GACPiF,OAAQ,GACRlF,UAAW,MZTjB0zG,CAAMrsG,Ga3DD,CACLssG,SAAU,CACRnD,aAAc,CACZoD,UAAW,GAGbnD,eAAgB,CACdl2E,KAAM,CACJqkB,gBAAiB,WCDZ,SAAev3C,GAC5B,IAAMC,EAAiC,UAAvBD,EAAME,QAAQC,KAExBqsG,EAAgB,SAACtrG,GAAkB,MAAM,CAC7CA,MAAOlB,EAAME,QAAQgB,GAAOjB,EAAU,SAAW,WACjDc,gBAAiBf,EAAME,QAAQgB,GAAOjB,EAAU,UAAY,UAC5D,mBAAoB,CAClBiB,MAAOlB,EAAME,QAAQgB,GAAOjB,EAAU,OAAS,YAI7CwsG,EAAc,SAACvrG,GAAkB,MAAM,CAC3CA,MAAOlB,EAAME,QAAQgB,GAAOuqE,eAGxBihC,EAAgB,SAACxrG,GAAkB,MAAM,CAC7CA,MAAOlB,EAAME,QAAQgB,GAAOjB,EAAU,SAAW,WACjD0F,OAAO,aAADzP,OAAe8J,EAAME,QAAQgB,GAAOjB,EAAU,QAAU,SAC9Dc,gBAAiBf,EAAME,QAAQgB,GAAOjB,EAAU,UAAY,UAC5D,mBAAoB,CAClBiB,MAAOlB,EAAME,QAAQgB,GAAOjB,EAAU,OAAS,YAInD,MAAO,CACL0sG,SAAU,CACRxD,aAAc,CACZyD,YAAa,CACXt5G,MAAO2B,cAACk7B,KAAI,CAAC9N,KAAMwqF,OACnBz+E,KAAMn5B,cAACk7B,KAAI,CAAC9N,KAAMyqF,OAClBxhC,QAASr2E,cAACk7B,KAAI,CAAC9N,KAAM0qF,OACrBhrG,QAAS9M,cAACk7B,KAAI,CAAC9N,KAAM2qF,SAIzB5D,eAAgB,CACdvhG,QAAS,CACP,wBAAyB,CACvBvG,aAActB,EAAMO,QAAQ,MAGhCyG,OAAQ,CACN,+BAAgC,CAC9B2f,WAAY3mB,EAAMO,QAAQ,KAI9B0sG,aAAcT,EAAc,QAC5BU,gBAAiBV,EAAc,WAC/BW,gBAAiBX,EAAc,WAC/BY,cAAeZ,EAAc,SAE7Ba,WAAYZ,EAAY,QACxBa,cAAeb,EAAY,WAC3Bc,cAAed,EAAY,WAC3Be,YAAaf,EAAY,SAEzBgB,aAAcf,EAAc,QAC5BgB,gBAAiBhB,EAAc,WAC/BiB,gBAAiBjB,EAAc,WAC/BkB,cAAelB,EAAc,YdNjC1qF,CAAMhiB,Ge9DK,SAAgBA,GAC7B,IAAMC,EAAiC,UAAvBD,EAAME,QAAQC,KAE9B,MAAO,CACL0tG,UAAW,CACTzE,eAAgB,CACd0E,MAAO,CACLtoG,UAAWxF,EAAMyF,cAAc2zC,IAEjC20D,MAAO,CACLzsD,QAAS,EACTvgD,gBAAiBf,EAAME,QAAQ4B,KAAK,MAEtCksG,WAAY,CACVzsG,KAAM,EACNgD,MAAO,OACP,uBAAwB,CACtBrD,MAAOlB,EAAME,QAAQ4B,KAAK7B,EAAU,IAAM,MAE5C,6CAA8C,CAC5CiB,MAAOlB,EAAME,QAAQ4B,KAAK7B,EAAU,IAAM,MAE5C,kCAAmC,CACjCqhD,QAAS,EACTvgD,gBAAgB,GAAD7K,OAAK8J,EAAME,QAAQ8G,OAAO46C,mBAAkB,oBfuCnE11B,CAAOlsB,GgB7DF,CACLiuG,UAAW,CACT9E,aAAc,CACZ+E,cAAeC,MAGjB/E,eAAgB,CACdl2E,KAAM,MCTC,SAAgBlzB,GAC7B,MAAO,CACLouG,UAAW,CACThF,eAAgB,CACdl2E,KAAM,CACJ,UAAW,CACT1tB,UAAW,SAGf6oG,UAAW,CACTxwG,OAAQ,IAGVywG,iBAAkB,CAChBptG,MAAOlB,EAAME,QAAQ4B,KAAK,KAC1B0D,UAAWxF,EAAMyF,cAAc8wC,GAC/B,UAAW,CACTx1C,gBAAiBf,EAAME,QAAQ4B,KAAK,OAGxCysG,iBAAkB,CAChB/oG,UAAWxF,EAAMyF,cAAc0c,SAEjCqsF,mBAAoB,CAClBhpG,UAAWxF,EAAMyF,cAActE,WAEjCstG,cAAe,CACbjpG,UAAWxF,EAAMyF,cAAc2oB,MAEjCsgF,iBAAkB,CAChBlpG,UAAWxF,EAAMyF,cAAc6lE,SAEjCqjC,iBAAkB,CAChBnpG,UAAWxF,EAAMyF,cAAc1D,SAEjC6sG,eAAgB,CACdppG,UAAWxF,EAAMyF,cAAcnS,OAGjCu7G,gBAAiB,CACflpG,OAAO,aAADzP,OAAe8J,EAAME,QAAQ4B,KAAK,QACxC,UAAW,CACTf,gBAAiBf,EAAME,QAAQ8G,OAAOw6C,QAG1CstD,YAAa,CACX,UAAW,CACT/tG,gBAAiBf,EAAME,QAAQ8G,OAAOw6C,WjBkB9Cx9B,CAAOhkB,GHrDI,SAAgBA,GAC7B,MAAO,CACL+uG,UAAW,CACT5F,aAAc,CACZ6F,UAAWpG,GACXvmF,KAAMumF,IAGRQ,eAAgB,CACdl2E,KAAM,CACJ,iBAAkB,CAChBouB,QAAS,MAGb2tD,UAAW,CAAE/tG,MAAOlB,EAAME,QAAQ4B,KAAK,QACvCotG,UAAW,CAAE,QAAOl7G,YAAA,GAAO00G,KAC3B2F,UAAW,CAAE,QAAOr6G,YAAA,GAAO20G,QGsC/BwG,CAAOnvG,GkBlEI,SAAgBA,GAC7B,MAAO,CACLovG,UAAW,CACThG,eAAgB,CACd3kG,MAAO,CACLe,UAAWxF,EAAMyF,cAAc4pG,IAC/B,qBAAsB,CACpBzuG,aAAcZ,EAAMa,MAAMC,gBAE5B,8BAA+B,CAC7BF,aAAc,GAEhB,2CAA4C,CAC1CD,QAASX,EAAMO,QAAQ,IAEzB,4BAA6B,CAC3B7H,OAAQsH,EAAMO,QAAQ,IAExB,+BAAgC,CAC9B,qDAAsD,CACpD4iB,SAAU,UAIhBmsF,eAAgB,CACd12G,MAAO,UAIb22G,eAAgB,CACdnG,eAAgB,CACdl2E,KAAM,CACJvyB,QAASX,EAAMO,QAAQ,EAAG,EAAG,MAInCivG,iBAAkB,CAChBpG,eAAgB,CACdl2E,KAAM,CACJi5E,UAAW,EACXvnG,aAAc,EACdjE,QAASX,EAAMO,QAAQ,MAI7BkvG,iBAAkB,CAChBrG,eAAgB,CACdl2E,KAAM,CACJ,2BAA4B,CAC1BvM,WAAY3mB,EAAMO,QAAQ,UlBkBlC2iB,CAAOljB,GmBnEI,SAAgBA,GAC7B,MAAO,CACL0vG,UAAW,CACTtG,eAAgB,CACda,aAAc,CACZ/oG,MAAOlB,EAAME,QAAQb,KAAK8B,UAC1BJ,gBAAiBf,EAAME,QAAQ4B,KAAK,QAI1C6tG,eAAgB,CACdvG,eAAgB,CACdx0D,OAAQ,CACNn0C,SAAU,GACVixB,WAAY1xB,EAAMI,WAAWyhD,iBAC7B,kBAAmB,CACjBphD,SAAU,GACVS,MAAOlB,EAAME,QAAQiiB,QAAQI,KAC7BxhB,gBAAiBf,EAAME,QAAQiiB,QAAQC,anBkD/CoD,CAAOxlB,GoBpEI,SAAgBA,GAC7B,IAAMC,EAAiC,UAAvBD,EAAME,QAAQC,KAE9B,MAAO,CACLyvG,UAAW,CACTzG,aAAc,CACZtyG,KAAM,SAGRuyG,eAAgB,CACdl2E,KAAM,CACJ,iBAAkB,CAChBhyB,MAAOlB,EAAME,QAAQ8G,OAAO9P,WAGhC24G,UAAW,CACTpvG,SAAU,GACVS,MAAOlB,EAAME,QAAQb,KAAKnI,UAE5B44G,WAAY,CACVlvG,aAAc,EACdG,gBAAiBf,EAAME,QAAQ4B,KAAK7B,EAAU,IAAM,SpBgD1DqwC,CAAOtwC,GqBrEI,SAAgBA,GAC7B,IAAMC,EAAiC,UAAvBD,EAAME,QAAQC,KAE9B,MAAO,CACL4vG,UAAW,CACT3G,eAAgB,CACd4G,MAAO,CACL,yBAA0B,CACxB,+BAAgC,CAC9BxqG,UAAU,sBAADtP,OAAwByO,YAC/B3E,EAAME,QAAQ4B,KAAK,KACnB7B,EAAU,IAAO,OAGrB,gCAAiC,CAC/Bc,gBAAiB,OACjByE,UAAU,uBAADtP,OAAyByO,YAChC3E,EAAME,QAAQ4B,KAAK,KACnB7B,EAAU,IAAO,YrBoD7B+b,CAAOhc,GsBrEF,GCDM,SAAiBA,GAC9B,MAAO,CACLiwG,iBAAkB,CAChB7G,eAAgB,CACd8G,KAAM,CACJt1D,YAAa56C,EAAME,QAAQmlB,YvBmEjC+gC,CAAQpmD,GwBxEG,SAAiBA,GAC9B,IAAMC,EAAiC,UAAvBD,EAAME,QAAQC,KAE9B,MAAO,CACLgwG,WAAY,CACV/G,eAAgB,CACdgH,QAAS,CACPrvG,gBAAiBf,EAAME,QAAQ4B,KAAK7B,EAAU,IAAM,MAEtDowG,MAAO,CACLnvG,MAAOlB,EAAME,QAAQ4B,KAAK7B,EAAU,IAAM,SxB+DhDyb,CAAQ1b,GyBzEG,SAAiBA,GAC9B,MAAO,CACLswG,WAAY,CACVlH,eAAgB,CACd3kG,MAAO,CACLe,UAAWxF,EAAMyF,cAAcs8F,QzBqErC/8F,CAAQhF,G0BzEH,CACLuwG,WAAY,CACVnH,eAAgB,CACdoH,cAAe,CACb53G,MAAO,GACPiF,OAAQ,GACR4C,SAAU,WAEZgwG,cAAe,CACb73G,MAAO,GACPiF,OAAQ,GACR4C,SAAU,c3BaL,SAAkBT,GAC/B,MAAO,CACL0wG,YAAa,CACXvH,aAAc,CACZ9mF,KAAMptB,cAACk7B,GAAI,IACXwgF,YAAa17G,cAAC8zG,GAAW,IACzB6H,kBAAmB37G,cAAC+zG,GAAiB,KAGvCI,eAAgB,CACdl2E,KAAM,CACJvyB,QAASX,EAAMO,QAAQ,GACvB,6CAA8C,CAC5CW,MAAOlB,EAAME,QAAQ8G,OAAO9P,UAE9B,+BAAgC,CAC9B0B,MAAO,GACPiF,OAAQ,IAEV,8BAA+B,CAC7BjF,MAAO,GACPiF,OAAQ,IAEVytG,IAAK,CACH7qG,SAAU,GACV,qBAAsB,CACpBA,SAAU,SCyBpBwpB,CAASjqB,G2B5EE,SAAkBA,GAC/B,MAAO,CACL6wG,YAAa,CACXzH,eAAgB,CACdl2E,KAAM,CACJtyB,aAAc,EACd+E,OAAO,wBACP,6BAA8B,CAC5BwmG,UAAW,GAEb,kCAAmC,CACjCxrG,QAASX,EAAMO,QAAQ,GACvBQ,gBAAiBf,EAAME,QAAQc,WAAWC,QAC1C,oBAAqB,CACnBulC,YAAaxmC,EAAMO,QAAQ,KAC3BW,MAAOlB,EAAME,QAAQb,KAAK8iB,QAC1B,UAAW,CACTphB,gBAAiBf,EAAME,QAAQ8G,OAAOw6C,SAI5C,qDAAsD,CACpD58C,aAAa,aAAD1O,OAAe8J,EAAME,QAAQmlB,UAE3C,iCAAkC,CAChCnkB,MAAOlB,EAAME,QAAQmlB,SAEvB,sDAAuD,CACrD1kB,QAAS,MAKjBmwG,YAAa,CACX1H,eAAgB,CACdl2E,KAAM,CACJ,8BAA+B,CAC7B1tB,UAAWxF,EAAMyF,cAAcC,IAC/B9E,aAAcZ,EAAMa,MAAMD,cAE5B,sBAAqB5M,YAAA,GAChBgM,EAAMI,WAAWg8C,UAK5B20D,kBAAmB,CACjB3H,eAAgB,CACdl2E,KAAM,CACJvyB,QAASX,EAAMO,QAAQ,IAAK,GAC5B,yBAA0B,CACxB7H,OAAQsH,EAAMO,QAAQ,EAAG,KAE3B,mBAAoB,CAClB5H,UAAWqH,EAAMO,QAAQ,GACzB,sBAAuB,CACrBkB,QAAS,QAEX,6CAA4CzN,wBAAA,GACvCgM,EAAMI,WAAWg8C,OAAK,IACzBz7C,QAASX,EAAMO,QAAQ,IAAM,GAC7BK,aAAcZ,EAAMa,MAAMD,aAC1BG,gBAAiBf,EAAME,QAAQc,WAAWC,UAE5C,qBAAsB,CACpBsD,MAAO,OAMjBysG,mBAAoB,CAClB5H,eAAgB,CACdl2E,KAAM,CACJvyB,QAASX,EAAMO,QAAQ,GACvBwjB,eAAgB,WAChB,oBAAqB,CACnB,kBAAmB,CACjByiB,YAAaxmC,EAAMO,QAAQ,KAC3BW,MAAOlB,EAAME,QAAQb,KAAK8iB,QAC1B,UAAW,CACTphB,gBAAiBf,EAAME,QAAQ8G,OAAOw6C,QAG1C,iBAAkB,CAChBtgD,MAAOlB,EAAME,QAAQ0B,OAAOC,MAC5Bd,gBAAiBf,EAAME,QAAQiiB,QAAQI,KACvC,UAAW,CACTxhB,gBAAiBf,EAAME,QAAQiiB,QAAQ2oD,Y3BXnDmmC,CAASjxG,G4B7EE,SAAkBA,GAC/B,MAAO,CACLkxG,YAAa,CACX/H,aAAc,CACZgI,UAAW,QAGb/H,eAAgB,CACdl2E,KAAM,CACJnyB,gBAAiBf,EAAME,QAAQc,WAAWC,Y5BqEhDqrE,CAAStsE,G6B9EE,SAAkBA,GAC/B,MAAO,CACLoxG,eAAgB,CACdhI,eAAgB,CACdl2E,KAAM,CACJ1tB,UAAW,UAKjB6rG,qBAAsB,CACpBjI,eAAgB,CACdl2E,KAAM,CACJnyB,gBAAiBf,EAAME,QAAQmlB,Y7BkErCisF,CAAStxG,GFxEE,SAAkBA,GAC/B,MAAO,CACLuxG,YAAa,CACXpI,aAAc,CACZqI,oBAAqBv8G,cAACk7B,KAAIn8B,YAAA,CAACquB,KAAMovF,MAAwB3I,KACzD4I,kBAAmBz8G,cAACk7B,KAAIn8B,YAAA,CAACquB,KAAMsvF,MAAuB7I,KACtD8I,eACE38G,cAACW,IAAG5B,wBAAA,CACFgP,UAAWmtB,KACX9N,KAAMwvF,MACF/I,IAAS,IACbjzG,GAAI,CAAEqL,MAAO,uBAKrB4wG,YAAa,CACX1I,eAAgB,CACdxyG,MAAK5C,YAAA,GAAOgM,EAAMI,WAAWg8C,OAC7B21D,cAAe,CAAEn5G,MAAO,WEsD5Bo5G,CAAShyG,G8BhFE,SAAkBA,GAC/B,IAAMiyG,EAASttG,YAAM3E,EAAME,QAAQ4B,KAAK,KAAM,KACxCowG,EAAUvtG,YAAM3E,EAAME,QAAQ4B,KAAK,KAAM,GAE/C,MAAO,CACLqwG,YAAa,CACX/I,eAAgB,CACdl2E,KAAM,CACJlyB,WAAY,CAAC,gBAAD,+BAAA9K,OAEqB+7G,EAAM,SAAA/7G,OAAQg8G,EAAO,4CAAAh8G,OAClB+7G,EAAM,SAAA/7G,OAAQg8G,EAAO,oCAAAh8G,OAC7B+7G,EAAM,SAAA/7G,OAAQg8G,EAAO,WAEjD,0BAA2B,CACzBlxG,WAAY,mB9BkEpBoxG,CAASpyG,G+BhFJ,CACLqyG,mBAAoB,CAClBjJ,eAAgB,CACdl2E,KAAM,MCJC,SAAkBlzB,GAC/B,IAAMC,EAAiC,UAAvBD,EAAME,QAAQC,KAE9B,MAAO,CACLmyG,kBAAmB,CACjBlJ,eAAgB,CACdl2E,KAAM,CACJtyB,aAAc,EACd2E,SAAU,UAEZgtG,IAAK,CACH3xG,aAAc,GAEhB4xG,aAAc,CACZzxG,gBAAiBf,EAAME,QAAQiiB,QAAQliB,EAAU,UAAY,WAE/DwyG,OAAQ,CACN1xG,gBAAiB,kBhCkEvB2xG,CAAS1yG,GiClFJ,CACL2yG,aAAc,CACZvJ,eAAgB,CACdl2E,KAAM,MCJC,SAAmBlzB,GAChC,MAAO,CACL4yG,aAAc,CACZxJ,eAAgB,CACdl2E,KAAM,CACJ,iBAAkB,CAChB1tB,UAAWxF,EAAMyF,cAAc8wC,GAC/B31C,aAAcZ,EAAMa,MAAMD,cAE5B,iBAAkB,CAChBG,gBAAiB,kBAKzB8xG,oBAAqB,CACnBzJ,eAAgB,CACdl2E,KAAM,CACJ5yB,YAAaN,EAAMO,QAAQ,GAC3B+Y,aAActZ,EAAMO,QAAQ,GAC5B,iBAAkB,CAChB+gD,QAAS,EACTpgD,MAAOlB,EAAME,QAAQ8G,OAAO9P,SAC5B,wBAAyB,CACvBgK,MAAO,aAIb4xG,kBAAmB,CACjB5xG,MAAO,clCwDbuX,CAAUzY,GmCpFL,CACL+yG,cAAe,CACb3J,eAAgB,CACdl2E,KAAM,MCJC,SAAoBlzB,GACjC,MAAO,CACLgzG,cAAe,CACb5J,eAAgB,CACd17D,UAAW,CACTpsC,aAActB,EAAMO,QAAQ,IAE9BtK,aAAc,CACZqL,aAActB,EAAMO,QAAQ,OpC+ElCxK,CAAWiK,GqCvFA,SAAoBA,GACjC,MAAO,CACLizG,kBAAmB,CACjB7J,eAAgB,CACdl2E,KAAM,CACJ,iBAAkB,CAChBxB,WAAY1xB,EAAMI,WAAW0hD,iBAGjCoxD,YAAa,CACX,iBAAkB,CAChBhyG,MAAOlB,EAAME,QAAQiiB,QAAQI,KAC7BxhB,gBAAiB4D,YAAM3E,EAAME,QAAQiiB,QAAQI,KAAM,KACnD,8BAA+B,CAC7BxhB,gBAAgB,GAAD7K,OAAKyO,YAAM3E,EAAME,QAAQiiB,QAAQI,KAAM,KAAK,kBAIjE2nF,SAAU,CACRvkG,OAAO,aAADzP,OAAe8J,EAAME,QAAQ4B,KAAK,SAE1CqxG,gBAAiB,CACf,iBAAkB,CAChBpyG,gBAAiB4D,YAAM3E,EAAME,QAAQiiB,QAAQI,KAAM,KACnD5c,OAAO,aAADzP,OAAeyO,YAAM3E,EAAME,QAAQiiB,QAAQI,KAAM,WrCgE/D6wF,CAAWpzG,GsCxFA,SAAqBA,GAClC,IAAMqzG,EAAiB,SACrBnyG,GAAyE,MACrE,CACJrO,MAAO,CAAEmD,QAAS,YAAakL,SAC/BjJ,MAAO,CAAEuN,UAAWxF,EAAMyF,cAAcvE,MAG1C,MAAO,CACLoyG,eAAgB,CACd3nD,SAAU,CACR,CACE94D,MAAO,CAAEmD,QAAS,YAAakL,MAAO,WACtCjJ,MAAO,CAAEuN,UAAWxF,EAAMyF,cAAc8wC,KAE1C88D,EAAe,WACfA,EAAe,aACfA,EAAe,QACfA,EAAe,WACfA,EAAe,WACfA,EAAe,SAEf,CACExgH,MAAO,CAAEqE,UAAU,GACnBe,MAAO,CACLuN,UAAW,OACX,yCAA0C,CACxCtE,MAAOlB,EAAME,QAAQ8G,OAAO9P,SAC5B0jD,YAAY,GAAD1kD,OAAK8J,EAAME,QAAQ8G,OAAO46C,mBAAkB,eACvD,wBAAyB,CACvB7gD,gBAAiBf,EAAME,QAAQ8G,OAAO46C,wBAOhDwnD,eAAgB,CACdl2E,KAAM,CACJ,UAAW,CACT1tB,UAAW,YtCiDnB+tG,CAAYvzG,GuCzFD,SAAqBA,GAClC,MAAO,CACLwzG,eAAgB,CACdpK,eAAgB,CACdxxF,UAAW,CACT+O,WAAY3mB,EAAMO,QAAQ,IAC1BimC,YAAaxmC,EAAMO,QAAQ,QvCoFjCkzG,CAAYzzG,GwC1FD,SAAsBA,GACnC,MAAO,CACL0zG,gBAAiB,CACftK,eAAgB,CACd3kG,MAAO,CACLe,UAAWxF,EAAMyF,cAAcC,QxCsFrCiuG,CAAa3zG,GyC3FF,SAAsBA,GACnC,MAAO,CACL4zG,oBAAqB,CACnBxK,eAAgB,CACdxyG,MAAK5C,YAAA,GACAgM,EAAMI,WAAWg8C,SAI1By3D,kBAAmB,CACjBzK,eAAgB,CACdl2E,KAAM,CACJv6B,UAAWqH,EAAMO,QAAQ,MAI/BuzG,aAAc,CACZ1K,eAAgB,CACdl2E,KAAM,CACJhyB,MAAOlB,EAAME,QAAQb,KAAKnI,azCyEhC68G,CAAa/zG,G0C5FF,SAAsBA,GACnC,IAAMC,EAAiC,UAAvBD,EAAME,QAAQC,KAE9B,MAAO,CACL6zG,gBAAiB,CACf5K,eAAgB,CACdl2E,KAAM,CACJhyB,MAAOlB,EAAME,QAAQ4B,KAAK,KAC1B6D,OAAO,aAADzP,OAAe8J,EAAME,QAAQ4B,KAAK,QACxC,iBAAkB,CAChBZ,MAAOlB,EAAME,QAAQ4B,KAAK7B,EAAU,IAAM,GAC1Cc,gBAAiBf,EAAME,QAAQ8G,OAAOgU,UAExC,iBAAkB,CAChB9Z,MAAOlB,EAAME,QAAQ4B,KAAK,Y1C+ElCmyG,CAAaj0G,G2C5FR,CACLk0G,iBAAkB,CAChB9K,eAAgB,CACdl2E,KAAM,CACJvM,WAAY,GACZ,mBAAoB,CAClB,4CAA6C,CAC3CA,WAAY,GAEd,wCAAyC,CACvC6f,YAAa,SCiB3B,IAAM2tE,GAAaj0G,KAAQ2qE,MAAM/oE,KAAK,KAChCsyG,GAAY,UAEZC,GAAe,SAACnzG,GACpB,IAAMozG,EAAe3vG,YAAMzD,EAAO,IAC5BqzG,EAAe5vG,YAAMzD,EAAO,KAC5BszG,EAAe7vG,YAAMzD,EAAO,KAClC,MAAO,CACL,OAAO,oBAADhL,OACco+G,EAAY,qBAAAp+G,OAAoBq+G,EAAY,qBAAAr+G,OAAoBs+G,GAAY,oBAAAt+G,OAC5Eo+G,EAAY,qBAAAp+G,OAAoBq+G,EAAY,qBAAAr+G,OAAoBs+G,GAAY,oBAAAt+G,OAC5Eo+G,EAAY,qBAAAp+G,OAAoBq+G,EAAY,qBAAAr+G,OAAoBs+G,GAAY,oBAAAt+G,OAC5Eo+G,EAAY,qBAAAp+G,OAAoBq+G,EAAY,sBAAAr+G,OAAqBs+G,GAAY,oBAAAt+G,OAC7Eo+G,EAAY,qBAAAp+G,OAAoBq+G,EAAY,sBAAAr+G,OAAqBs+G,GAAY,oBAAAt+G,OAC7Eo+G,EAAY,sBAAAp+G,OAAqBq+G,EAAY,sBAAAr+G,OAAqBs+G,GAAY,oBAAAt+G,OAC9Eo+G,EAAY,sBAAAp+G,OAAqBq+G,EAAY,sBAAAr+G,OAAqBs+G,GAAY,oBAAAt+G,OAC9Eo+G,EAAY,sBAAAp+G,OAAqBq+G,EAAY,sBAAAr+G,OAAqBs+G,GAAY,oBAAAt+G,OAC9Eo+G,EAAY,sBAAAp+G,OAAqBq+G,EAAY,sBAAAr+G,OAAqBs+G,GAAY,oBAAAt+G,OAC9Eo+G,EAAY,uBAAAp+G,OAAsBq+G,EAAY,sBAAAr+G,OAAqBs+G,GAAY,oBAAAt+G,OAC/Eo+G,EAAY,uBAAAp+G,OAAsBq+G,EAAY,sBAAAr+G,OAAqBs+G,GAAY,oBAAAt+G,OAC/Eo+G,EAAY,uBAAAp+G,OAAsBq+G,EAAY,sBAAAr+G,OAAqBs+G,GAAY,oBAAAt+G,OAC/Eo+G,EAAY,uBAAAp+G,OAAsBq+G,EAAY,sBAAAr+G,OAAqBs+G,GAAY,oBAAAt+G,OAC/Eo+G,EAAY,uBAAAp+G,OAAsBq+G,EAAY,sBAAAr+G,OAAqBs+G,GAAY,oBAAAt+G,OAC/Eo+G,EAAY,uBAAAp+G,OAAsBq+G,EAAY,sBAAAr+G,OAAqBs+G,GAAY,qBAAAt+G,OAC9Eo+G,EAAY,uBAAAp+G,OAAsBq+G,EAAY,sBAAAr+G,OAAqBs+G,GAAY,qBAAAt+G,OAC/Eo+G,EAAY,uBAAAp+G,OAAsBq+G,EAAY,sBAAAr+G,OAAqBs+G,GAAY,qBAAAt+G,OAC/Eo+G,EAAY,uBAAAp+G,OAAsBq+G,EAAY,sBAAAr+G,OAAqBs+G,GAAY,qBAAAt+G,OAC/Eo+G,EAAY,uBAAAp+G,OAAsBq+G,EAAY,sBAAAr+G,OAAqBs+G,GAAY,sBAAAt+G,OAC9Eo+G,EAAY,uBAAAp+G,OAAsBq+G,EAAY,sBAAAr+G,OAAqBs+G,GAAY,sBAAAt+G,OAC/Eo+G,EAAY,uBAAAp+G,OAAsBq+G,EAAY,sBAAAr+G,OAAqBs+G,GAAY,sBAAAt+G,OAC/Eo+G,EAAY,uBAAAp+G,OAAsBq+G,EAAY,sBAAAr+G,OAAqBs+G,GAAY,sBAAAt+G,OAC/Eo+G,EAAY,uBAAAp+G,OAAsBq+G,EAAY,sBAAAr+G,OAAqBs+G,GAAY,sBAAAt+G,OAC/Eo+G,EAAY,uBAAAp+G,OAAsBq+G,EAAY,sBAAAr+G,OAAqBs+G,KAIvFC,GAAqB,SAACvzG,GAC1B,IAAMwzG,EAAc/vG,YAAMzD,EAAO,KACjC,MAAO,CACLk4C,GAAG,eAADljD,OAAiBw+G,GACnBn+D,GAAG,gBAADrgD,OAAkBw+G,GACpB3S,IAAI,aAAD7rG,OAAew+G,EAAW,oBAAAx+G,OAAmBw+G,GAChD96D,IAAI,aAAD1jD,OAAew+G,EAAW,uBAAAx+G,OAAsBw+G,GACnDhvG,IAAI,aAADxP,OAAew+G,EAAW,uBAAAx+G,OAAsBw+G,GACnDrF,IAAI,aAADn5G,OAAew+G,EAAW,oBAAAx+G,OAAmBw+G,GAChDvyF,QAAQ,gBAADjsB,OAAkByO,YAAMzE,KAAQ2qE,MAAM1oD,QAAQI,KAAM,MAC3D6L,KAAK,gBAADl4B,OAAkByO,YAAMzE,KAAQ2qE,MAAMz8C,KAAK7L,KAAM,MACrDphB,UAAU,gBAADjL,OAAkByO,YAAMzE,KAAQ2qE,MAAM1pE,UAAUohB,KAAM,MAC/D+oD,QAAQ,gBAADp1E,OAAkByO,YAAMzE,KAAQ2qE,MAAMS,QAAQ/oD,KAAM,MAC3DxgB,QAAQ,gBAAD7L,OAAkByO,YAAMzE,KAAQ2qE,MAAM9oE,QAAQwgB,KAAM,MAC3DjvB,MAAM,gBAAD4C,OAAkByO,YAAMzE,KAAQ2qE,MAAMv3E,MAAMivB,KAAM,QAI9C9c,GAAgB,CAC3BolE,MAAO4pC,GAAmBN,IAC1BrpC,KAAM2pC,GAAmBL,KAWZO,GALX,CACF9pC,MAAOwpC,GAAaF,IACpBrpC,KAAMupC,GAAaD,KCvEN,SAASQ,GAAWn/G,GAAkC,IAA/BN,EAAQM,EAARN,SACpC0/G,EAAsCC,eAAnBC,GAAFF,EAATG,UAAyBH,EAAdE,gBACb90G,GAAU,EAEVg1G,EAA6B92D,mBACjC,iBAAO,CACLj+C,QAAgBlM,wBAAA,GAAQkM,KAAQ2qE,OAAK,IAAE1qE,KAAM,UAC7CU,SACAT,cACAgB,eACA1J,UAAWq9G,EACXJ,QAAmBA,GAAQ9pC,MAC3BplE,cAAyBA,GAAcolE,SAEzC,CAAC5qE,EAAS80G,IAGN/0G,EAAQk1G,aAAYD,GAG1B,OAFAj1G,EAAMgC,WAAamzG,GAAmBn1G,GAGpC/K,cAACmgH,KAAoB,CAACC,aAAW,EAAAlgH,SAC/BQ,eAAC2/G,KAAa,CAACt1G,MAAOA,EAAM7K,SAAA,CAC1BF,cAACsgH,KAAW,IACXpgH,OC3CM,SAASqiD,KACtB,IAAMx3C,EAAQgW,cAEd,OACE/gB,cAACugH,IAAiB,CAChB/9D,OAAQ,CACN,IAAK,CACH/+C,OAAQ,EACRiI,QAAS,EACT80G,UAAW,cAEbC,KAAM,CACJ98G,MAAO,OACPiF,OAAQ,OACR83G,wBAAyB,SAE3B/tG,KAAM,CACJhP,MAAO,OACPiF,OAAQ,QAEV,QAAS,CACPjF,MAAO,OACPiF,OAAQ,QAEV++C,MAAO,CACL,iBAAkB,CAChBg5D,cAAe,YACf,+BAAgC,CAC9Bl9G,OAAQ,EACRm9G,iBAAkB,QAEpB,+BAAgC,CAC9Bn9G,OAAQ,EACRm9G,iBAAkB,UAIxBC,SAAU,CACR,+BAAgC,CAC9B50G,MAAOlB,EAAME,QAAQb,KAAKnI,UAE5B,sBAAuB,CACrBoqD,QAAS,EACTpgD,MAAOlB,EAAME,QAAQb,KAAKnI,UAE5B,0BAA2B,CACzBgK,MAAOlB,EAAME,QAAQb,KAAKnI,UAE5B,iBAAkB,CAChBgK,MAAOlB,EAAME,QAAQb,KAAKnI,WAI9B0G,IAAK,CAAE6D,QAAS,QAAS0hB,SAAU,QAGnC,WAAY,CACV4yF,aAAc,YACd3hH,OAAQ,YACR+0B,WAAY,sCAEd,uBAAwB,CACtB4sF,aAAc,UACd3hH,OAAQ,c,mCCtDH,SAAS4hH,GAASvgH,GAAgC,IAA7BN,EAAQM,EAARN,SAC5B6K,EAAQgW,cAEd9hB,qBAAU,WACR6J,SAASk4G,IAAMj2G,EAAMtI,YACpB,CAACsI,EAAMtI,YAEV,IAAMw+G,EAAWC,aAAY,CAC3BrwG,IAAyB,QAApB9F,EAAMtI,UAAsB,MAAQ,MAEzC0+G,cAAmC,QAApBp2G,EAAMtI,UAAsB,CAAC2+G,MAAa,KAK3D,OAFAH,EAASI,QAAS,EAEXrhH,cAACshH,KAAa,CAACxiH,MAAOmiH,EAAS/gH,SAAEA,ICzB3B,SAASqhH,KACtB,IAAQp8F,EAAaC,cAAbD,SAMR,OAJAlmB,qBAAU,WACRsK,OAAOi4G,SAAS,EAAG,KAClB,CAACr8F,IAEG,K,mCCLHs8F,GAAoBtkD,KAEX,SAASukD,KACtB,IAAMj2C,EAAiB,CACrBk2C,MAAOF,IAAqB,IAM9B,OAJAxiH,qBAAU,WACR2sE,KAAWlT,WAAW+S,KACrB,IAEIzrE,cAAAC,WAAA,ICDT,SAAS2hH,KACP,IAAM72G,EAAQgW,cACEhW,EAAME,QAAQC,KAE9B,OACElL,cAACuiD,IAAY,CACXC,OAAQ,CACN,QAAS,CACP,0BAA2B,CACzB7+C,MAAO,OACP+H,QAASX,EAAMO,QAAQ,GACvB7H,OAAQsH,EAAMO,QAAQ,IAAM,GAC5BiF,UAAWxF,EAAMyF,cAAc8wC,GAC/B31C,aAAcZ,EAAMa,MAAMD,aAC1BM,MAAOlB,EAAME,QAAQ4B,KAAK,GAC1Bf,gBAAiBf,EAAME,QAAQc,WAAWyD,MAC1C,wHACE,CACEvD,MAAOlB,EAAME,QAAQb,KAAK8iB,QAC1BphB,gBAAiBf,EAAME,QAAQc,WAAWyD,MAC1C9D,QAASX,EAAMO,QAAQ,OAG7B,2BAA4B,CAC1BiB,IAAK,QAEP,0BAA2B,CACzBb,QAAS,eACT+wB,WAAY1xB,EAAMI,WAAWyhD,kBAE/B,yBAA0B,CACxBrb,YAAa,EACb7lC,QAAS,EACTO,MAAOlB,EAAME,QAAQ8G,OAAOolE,OAC5B,QAAS,CAAExzE,MAAO,GAAIiF,OAAQ,SAa1C,SAASi5G,GAAYrhH,GAAsC,IAAnC4sB,EAAI5sB,EAAJ4sB,KAAMnhB,EAAKzL,EAALyL,MAC5B,OACEjM,cAACW,IAAG,CACFoN,UAAU,OACVnN,GAAI,CACF4vB,GAAI,IACJ7sB,MAAO,GACPiF,OAAQ,GACR4D,QAAS,OACTb,aAAc,IACdpK,WAAY,SACZutB,eAAgB,SAChB7iB,MAAM,GAADhL,OAAKgL,EAAK,SACfghB,QAAS,SAACliB,GAAK,OAAK2E,YAAM3E,EAAME,QAAQgB,GAAOqhB,KAAM,OACrDptB,SAEFF,cAACk7B,KAAI,CAAC9N,KAAMA,EAAMzpB,MAAO,GAAIiF,OAAQ,OAS5B,SAASk5G,GAAiB3/G,GAAwC,IAArCjC,EAAQiC,EAARjC,SACpC6hH,EAAsB,SAAH3/G,GAAqB,IAAfkQ,EAAElQ,EAAFkQ,GACrBuoD,EAAkBtuB,eAAlBsuB,cACR,OACE76D,cAAC8zB,KAAU,CACTlyB,KAAK,QACLoB,MAAO,CAAEU,UAAW,QAASguB,WAAY,SACzC/M,QAAS,WACPk2C,EAAcvoD,IACdpS,SAEFF,cAACs6E,KAAS,OAKhB,OACE55E,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAAC4hH,GAAc,IAEf5hH,cAACgiH,KAAgB,CACfthE,OAAK,EACLuhE,SAAU,EACVC,kBAAgB,EAChBC,iBAAkB,IAClBnyG,aAAc,CACZC,SAAU,MACVC,WAAY,SAEdkyG,YAAa,CACX/rC,QAASr2E,cAAC6hH,GAAY,CAACz0F,KAAM0qF,KAAsB7rG,MAAM,YACzD5N,MAAO2B,cAAC6hH,GAAY,CAACz0F,KAAMwqF,KAAU3rG,MAAM,UAC3Ca,QAAS9M,cAAC6hH,GAAY,CAACz0F,KAAM2qF,KAAmB9rG,MAAM,YACtDktB,KAAMn5B,cAAC6hH,GAAY,CAACz0F,KAAMyqF,KAAiB5rG,MAAM,UAEnD8F,OAAQ,SAAClB,GAAG,OAAK7Q,cAAC+hH,EAAmB,CAACzvG,GAAIzB,KAAQ3Q,SAEjDA,OC/GM,SAASmiH,GAAiB7hH,GAAwC,IAArCN,EAAQM,EAARN,SACpCoiH,EAAevhG,cACbwhG,EAAa1C,eAAb0C,SAEFvC,EAAe92D,mBACnB,kBAAAnqD,wBAAC,GACIujH,GAAY,IACfr3G,QAAOlM,wBAAA,GACFujH,EAAar3G,SAAO,IACvBiiB,QAASq1F,IAEX/xG,cAAazR,wBAAA,GACRujH,EAAa9xG,eAAa,IAC7B0c,QAAQ,gBAADjsB,OAAkByO,YAAM6yG,EAASj1F,KAAM,YAGlD,CAACi1F,EAAUD,IAGPv3G,EAAQk1G,aAAYD,GAG1B,OAFAj1G,EAAMgC,WAAamzG,GAAmBn1G,GAE/B/K,cAACqgH,KAAa,CAACt1G,MAAOA,EAAM7K,SAAEA,ICxBxB,SAASsiH,GAAiBhiH,GAAwC,IAArCN,EAAQM,EAARN,SACpCoiH,EAAevhG,cACbihF,EAAgBR,KAAhBQ,YAEFj3F,EAAQk1G,aAAYqC,EAActgB,EAAYZ,aAEpD,OAAOphG,cAACqgH,KAAa,CAACt1G,MAAOA,EAAM7K,SAAEA,ICXhC,SAASuiH,KACd,IAAM13G,EAAQgW,cAERhV,EAAa,CACjB02C,eAAgB,YAChB2pC,qBAAsB,YACtBtgF,gBAAiB4D,YAAM3E,EAAME,QAAQc,WAAWmrE,QAAS,MAG3D,OACEl3E,cAACuiD,IAAY,CACXC,OAAQ,CACN,sBAAuB,CAErB,2BAA0BzjD,wBAAA,GACrBgN,GAAU,IACb2E,OAAQ,EACRH,UAAWxF,EAAMyF,cAAc4pG,IAC/BnuG,MAAOlB,EAAME,QAAQb,KAAK8iB,QAC1BvhB,aAAcZ,EAAMa,MAAM+2C,eAC1B,WAAY,CAAE+J,kBAAmB,eACjC,UAAW,CAAEA,kBAAmBh9C,YAAM3E,EAAME,QAAQc,WAAWmrE,QAAS,QAE1E,6CAA4Cn4E,wBAAA,GACvCgN,GAAU,IACb2E,OAAQ,EACRH,UAAWxF,EAAMyF,cAAc4pG,IAC/BzuG,aAAcZ,EAAMa,MAAM+2C,eAC1B,8BAA+B,CAC7BjyC,OAAQ,EACRzN,UAAW,SACXw5B,WAAY1xB,EAAMI,WAAW0hD,eAC7B/gD,gBAAiBf,EAAME,QAAQ4B,KAAK,OACpCZ,MAAOlB,EAAME,QAAQb,KAA4B,UAAvBW,EAAME,QAAQC,KAAmB,YAAc,cAI7E,qBAAsB,CACpBQ,QAAS,GAEX,4BAA6B,CAC3Bc,QAAS,kBACTjL,WAAY,UAEd,4BAA6B,CAC3BgwC,YAAa,GAEf,0BAA2B,CACzBhmC,WAAY,OACZ+nG,cAAe,kB,0BCtDZ,SAASoP,KACtB,OACE1iH,cAAC2nE,IAAM,CAAAznE,SACLF,cAAAC,WAAA,CAAAC,SACEF,cAAA,UACE2C,KAAK,kBACL6rB,IAAI,oECoBd,IAMMm0F,GAAgB,SAAHniH,GAMZ,IALLnC,EAAKmC,EAALnC,MACAukH,EAAkBpiH,EAAlBoiH,mBAKMp7F,EAAWpC,cACXy9F,EAAgB3wF,iBAAO1K,EAASrC,UAMtC,OALAlmB,qBAAU,WACJuoB,EAASrC,WAAa09F,EAAcnkH,SACtCkkH,MAED,CAACp7F,EAASrC,WACNnlB,cAACi5D,WAAO,CAAC56D,MAAOA,KAGnBykH,GAAgB,CACpB,iBACA,uBACA,gBACA,WACA,kBACA,eACA,sBACA,yBACA,gBAGa,SAASC,KACtB,IAAQC,EAAkB35F,eAAlB25F,cACA15E,EAAYD,eAAZC,QAER,OACEtpC,cAAC2/G,GAAW,CAAAz/G,SACVF,cAACqiH,GAAiB,CAAAniH,SAChBF,cAACwiH,GAAiB,CAAAtiH,SAChBF,cAACijH,iBAAa,CACZC,kBAAmBP,GACnBr5E,QAAS,SAACjrC,EAAc86B,GAClB2pF,GAAchtE,MAAK,SAACxN,GAAC,OAAKjqC,EAAMuU,QAAQrT,SAAS+oC,OACrDgB,EAAQ,oBAAoB,GAADroC,OAAK5C,EAAMuU,QAAO,gBAAA3R,OAAe6H,SAAS0e,SAAS9Y,QAC9ExO,SAEFF,cAAC+gH,GAAS,CAAA7gH,SACRQ,eAACohH,GAAiB,CAAA5hH,SAAA,CAChBF,cAACuiD,GAAY,IACbviD,cAAC69E,EAAgB,IACjB79E,cAACyiH,GAAoB,IACrBziH,cAACuhH,GAAW,IACZvhH,cAAC0hH,GAAe,IAChB1hH,cAAC6uF,GAAQ,IACT7uF,cAAC0iH,GAAO,IACPM,EACChjH,cAAAC,WAAA,CAAAC,SACEF,cAACgxG,GAAM,MAGThxG,cAACm+E,EAAa,iBC9EZv6E,QACW,cAA7B2F,OAAOie,SAAS8+C,UAEe,UAA7B/8D,OAAOie,SAAS8+C,UAEhB/8D,OAAOie,SAAS8+C,SAAS5R,MAAM,2DCjBnC,IAYeyuD,GAZS,SAACC,GACnBA,GAAeA,aAAuBC,UACxC,gCAAqB1hF,MAAK,SAAAnhC,GAAkD,IAA/C8iH,EAAM9iH,EAAN8iH,OAAQC,EAAM/iH,EAAN+iH,OAAQC,EAAMhjH,EAANgjH,OAAQC,EAAMjjH,EAANijH,OAAQC,EAAOljH,EAAPkjH,QAC3DJ,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAOL,GACPM,EAAQN,O,oBCyDdO,IAASltE,OACPz2C,cAAC4jH,IAAc,CAAA1jH,SACbF,cAAC6jH,IAAa,CAAC7jG,MAAOA,IAAM9f,SAC1BF,cAAC44E,KAAiB,CAAA14E,SAChBF,cAAC8jH,cAAW,CAAC90E,QAAShvC,cAACm+E,EAAa,IAAK59D,UAAWA,IAAUrgB,SAC5DF,cAAC+jH,IAAoB,CAACC,YAAaC,IAAgBvzC,OAAQC,KAAGzwE,SAC5DF,cAACkkH,IAAgB,CAAAhkH,SACfF,cAACs9E,EAAsB,CAAAp9E,SACrBF,cAACmkH,KAAkB,CAAAjkH,SACjBF,cAACokH,IAAU,CAAAlkH,SACTF,cAACqkH,IAAY,CAAAnkH,SACXF,cAAC+iH,GAAG,wBAWxBj6G,SAASysC,eAAe,SFkDpB,kBAAmB+uE,WACrBA,UAAUC,cAAcC,MACrB7iF,MAAK,SAAC8iF,GACLA,EAAaC,gBAEdpgF,OAAM,SAACjmC,GACNi7B,QAAQj7B,MAAMA,EAAMuU,YE7C5BuwG,M,2MCvEMwB,EAAU,SAAChiH,EAAoBqhF,EAAqBx9D,GACxD,MAAO,CACLlU,GAAI,EACJ3Q,MAAO6kB,EACP3V,IAAKmzE,EACLrhF,KAAMA,EACNiiH,YAAatxC,gBAIF,SAASwQ,EAAoBtjF,GAKb,IAADqkH,EAAArkH,EAJ5BmC,YAAI,IAAAkiH,EAAG9gC,IAAa+gC,KAAID,EACxB7gC,EAAMxjF,EAANwjF,OAAM9c,EAAA1mE,EACNgmB,aAAK,IAAA0gD,EAAG,GAAEA,EACV69C,EAAavkH,EAAbukH,cAEMtkG,EAAWG,cACjBurB,EAAwCzrB,aACtC,SAAC7O,GAAkC,OAAKA,EAAM+K,YADxCkpE,EAAS35C,EAAT25C,UAIRxnF,GAJwB6tC,EAAL9tC,MAAgB8tC,EAATh7B,UAII5S,mBAAmBomH,EAAQhiH,EAAMqhF,EAAQx9D,KAAOhoB,EAAAC,YAAAH,EAAA,GAAvEI,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAapBs/B,GAZsByO,cAApBD,gBAYY,SAACxoB,GACnBA,EAAMkhG,kBACNlhG,EAAMmhG,iBACNvmH,EAAQ4T,GAAK,EANbmO,EAASykG,YAAexmH,EAAQ4T,KANhCmO,EAAS0kG,YAAYzmH,IAAUijC,MAAK,SAAC9Z,SAqCvC,OAtBA5oB,qBAAU,WACR,IAAM2d,EAAWkpE,EAAU3mF,QAAO,SAACmpC,GACjC,OAAQ3lC,GACN,KAAKohF,IAAaqhC,QAChB,OAAO98E,EAAEz3B,IAAIsX,WAAa67D,EAAO77D,UAAYmgB,EAAEz3B,IAAI25D,UAAYwZ,EAAOxZ,QAExE,KAAKuZ,IAAaG,WAChB,OAAO57C,EAAEz3B,IAAIsX,WAAa67D,EAAO77D,UAAYmgB,EAAEz3B,IAAIsiC,aAAe6wC,EAAO7wC,WAE3E,KAAK4wC,IAAa+gC,KAClB,KAAK/gC,IAAaF,aAClB,KAAKE,IAAaE,SAClB,KAAKF,IAAasuB,IAClB,KAAKtuB,IAAaL,KAChB,OAAOp7C,EAAEz3B,IAAIyB,KAAO0xE,EAAO1xE,OAI7BsK,EAASlY,OAAS,EAAG/F,EAAWie,EAAS,IACxCje,EAAWgmH,EAAQhiH,EAAMqhF,EAAQx9D,MACrC,CAACs/D,EAAW9B,IAEX+gC,EAEA/kH,cAACymB,IAAO,CAACD,MAAM,SAAQtmB,SACrBF,cAAC0mB,IAAW,CAAC/B,QAASmZ,EAAY59B,SAChCF,cAACk7B,IAAI,CAAC9N,KAAM1uB,EAAQ4T,GAAK,EAAI4zE,IAAWm/B,IAAa1hH,MAAO,GAAIiF,OAAQ,SAO9E5I,cAACymB,IAAO,CAACD,MAAM,SAAQtmB,SACrBF,cAAC8zB,IAAU,CAACnP,QAASmZ,EAAa7xB,MAAO,UAAU/L,SACjDF,cAACk7B,IAAI,CAAC9N,KAAM1uB,EAAQ4T,GAAK,EAAI4zE,IAAWm/B,IAAa1hH,MAAO,GAAIiF,OAAQ,W,sTCtGhF02B,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAwBA,IAQM0N,EAAQC,YAAY,CACxBpS,KAAM,UACNqS,aAViC,CACjCC,WAAW,EACX9S,OAAO,EACP4U,SAAU,GACVooB,SAAU,KACVgD,SAAU,MAMV1sB,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,GAGpB4J,WAAU,SAAClJ,GACTA,EAAMV,WAAY,GAIpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAGvBszG,mBAAkB,SAACzzG,EAAOE,GACxBF,EAAMV,WAAY,EAClBU,EAAMoB,SAAWlB,EAAOC,SAE1BuzG,mBAAkB,SAAC1zG,EAAOE,GACxBF,EAAMV,WAAY,EAClBU,EAAMoB,SAAQ,GAAAhS,OAAA2W,YAAO/F,EAAMoB,UAAQ2E,YAAK7F,EAAOC,WAGjDwzG,mBAAkB,SAAC3zG,EAAOE,GACxBF,EAAMV,WAAY,EAClBU,EAAMwpB,SAAWtpB,EAAOC,SAG1ByzG,mBAAkB,SAAC5zG,EAAOE,GACxBF,EAAMwsB,SAAWtsB,EAAOC,SAE1B0zG,WAAU,SAAC7zG,EAAOE,GAChB,IAAAuH,EAAqBvH,EAAOC,QAApBM,EAAEgH,EAAFhH,GAAI8nB,EAAI9gB,EAAJ8gB,KACNnnB,EAAWnR,cAAI+P,EAAMoB,UAAU,SAAC2pC,GAIpC,OAHIA,EAAEtqC,KAAOA,IACXsqC,EAAExiB,KAAOA,GAEJwiB,KAET/qC,EAAMoB,SAAWA,MAMRjC,MAAa,QAGrB,IAAQ00G,EAAe10G,EAAMwC,QAArBkyG,WAGR,SAASC,EAAU1yG,GACxB,MAAO,CACL,CACEX,GAAI,MACJ3P,KAAM,SACN9D,KAAM,oBACNsU,YAAaF,EAAS9T,QAAO,SAACy9C,GAAC,OAAMA,EAAExiB,QAAM11B,QAE/C,CACE4N,GAAI,SACJ3P,KAAM,SACN9D,KAAM,mBACNsU,YAAaF,EAAS9T,QAAO,SAACy9C,GAAC,OAAMA,EAAExiB,QAAM11B,QAE/C,CACE4N,GAAI,SACJ3P,KAAM,SACN9D,KAAM,oCACNsU,YAAaF,EAAS9T,QACpB,SAACy9C,GAAC,OAAM,CAACriB,IAAYG,OAAQH,IAAYC,UAAUj7B,SAASq9C,EAAEj6C,QAAUi6C,EAAExiB,QAC1E11B,QAEJ,CACE4N,GAAI,WACJ3P,KAAM,SACN9D,KAAM,8BACNsU,YAAaF,EAAS9T,QACpB,SAACy9C,GAAC,MAAK,CAACriB,IAAYG,OAAQH,IAAYC,UAAUj7B,SAASq9C,EAAEj6C,QAAUi6C,EAAExiB,QACzE11B,SAKD,SAASkhH,IACd,OAAAr/E,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,IAAAC,EAAA+9B,EAAA/hD,EAAAmoC,EAAA,OAAAtrB,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OACkC,OAAvCvb,YAASzP,EAAMwC,QAAQ5B,gBAAgB80B,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAEdqO,IAAM32B,KAA0B,oBAAqB,CAC1E/Q,KAAM,EACNkR,MAAO,EACPgyG,SAAU,MACT,KAAD,EAJIp/E,EAAQC,EAAAxE,KAAAsiC,EAKW/9B,EAAS5e,KAA1BpF,EAAM+hD,EAAN/hD,OAAQmoC,EAAI4Z,EAAJ5Z,KAAIlkB,EAAA6D,GACZ9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACPu7E,IAAkBn6E,QAAO,kBACqB,OAAjDlrB,YAASzP,EAAMwC,QAAQ8xG,mBAAmB16D,IAAOlkB,EAAArE,OAAA,oBAGZ,OAArC5hB,YAASzP,EAAMwC,QAAQuH,cAAc2rB,EAAArE,OAAA,oBAAAqE,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAIzCjmB,YAASzP,EAAMwC,QAAQ1B,SAAQ40B,EAAAi+B,KAAS,yBAAAj+B,EAAAzC,UAAAuC,EAAA,mBAOvC,IAAMlM,EACX,SAAChoB,EAAY4nB,EAAgBv3B,GAAY,OACzC,SAACqiE,GAAmD,OACpD,SAAC17B,GACC,OAAA/C,YAAAjH,IAAAiE,MAAO,SAAAwD,IAAA,IAAAN,EAAAo+B,EAAApiD,EAAAmB,EAAA,OAAA0b,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,cAAAgL,EAAAjD,KAAA,EAAAiD,EAAAhL,KAAA,EAEoBqO,IAAMR,IAAG,gBAAA5oC,OACdqR,EAAE,KAAArR,OAAIi5B,EAAM,KAAAj5B,OAAI0B,IAChC,KAAD,EAFK8jC,EAAQO,EAAA9E,KAAA2iC,EAGYp+B,EAAS5e,KAA3BpF,EAAMoiD,EAANpiD,OAAQmB,EAAKihD,EAALjhD,MAAKojB,EAAAuD,GACb9nB,EAAMukB,EAAAhL,KAAAgL,EAAAuD,KACPw7E,IAAkBp6E,QAAO,kBAEX,OADjBlrB,YAASilG,EAAW,CAAEpzG,GAAIA,EAAI8nB,MAAM,KACpC4qC,EAAUphD,GAAOojB,EAAA3E,OAAA,oBAIP,OAAViH,IAAUtC,EAAA3E,OAAA,oBAAA2E,EAAAhL,KAAA,iBAAAgL,EAAAjD,KAAA,GAAAiD,EAAA29B,GAAA39B,EAAA,SAId1N,QAAQC,IAAGyN,EAAA29B,IACXr7B,IAAU,yBAAAtC,EAAA/C,UAAA8C,EAAA,sBAKLi/E,EAAc,SAACpzG,GAAiB,OAAK,SAACoyD,GACjD,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAA4G,IAAA,IAAA87E,EAAAx/E,EAAAw+B,EAAAxiD,EAAAyjG,EAAA,OAAA5mF,IAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,OAQ4C,OAP3CiqF,EAAW,IAAIn6D,SACrBrrC,YAASzP,EAAMwC,QAAQ5B,gBACF,MAAjBgB,EAAQ+d,OACV/d,EAAQ+d,MAAMjO,SAAQ,SAACqc,GACrBknF,EAASl6D,OAAO,OAAQhtB,MAG5BknF,EAASl6D,OAAO,OAAQE,KAAK8W,UAAUnwD,IAAUw3B,EAAArG,KAAA,EAAAqG,EAAApO,KAAA,EAE1BqO,IAAM32B,KAAI,4BAAkDuyG,EAAU,CACzFn8E,QAAS,CAAE,eAAgB,sBAAuBC,WAAW,KAC5D,KAAD,EAFEtD,EAAQ2D,EAAAlI,KAAA+iC,EAGiBx+B,EAAS5e,KAA9BpF,EAAMwiD,EAANxiD,OAAQ4Y,EAAQ4pC,EAAR5pC,SAAQ+O,EAAAG,GAChB9nB,EAAM2nB,EAAApO,KAAAoO,EAAAG,KACP47E,IAAiBx6E,QAAO,oBASP,OARhB/4B,EAAQwzG,SACVn5G,OAAOC,OAAOmuB,EAAU,CACtBI,UAAW7oB,EAAQwzG,QACnB/vG,SAAUzD,EAAQwzG,UAItB3lG,YAASzP,EAAMwC,QAAQ+xG,mBAAmB,CAAClqF,KAC3C2pC,EAAU3pC,GAAU+O,EAAA/H,OAAA,oBAGqB,OAAzC5hB,YAASzP,EAAMwC,QAAQ1B,SAAS2Q,IAAS2nB,EAAA/H,OAAA,oBAAA+H,EAAApO,KAAA,iBAAAoO,EAAArG,KAAA,GAAAqG,EAAAu6B,GAAAv6B,EAAA,SAI7C3pB,YAASzP,EAAMwC,QAAQ1B,SAAS,KAAK,yBAAAs4B,EAAAnG,UAAAkG,EAAA,qBAK9Bk8E,EAAoB,SAAC/zG,EAAYxT,GAAc,OAAK,SAACkmE,GAChE,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAA8Q,IAAA,OAAA/U,IAAAe,MAAA,SAAAiU,GAAA,cAAAA,EAAAvQ,KAAAuQ,EAAAtY,MAAA,cAAAsY,EAAAvQ,KAAA,EAAAuQ,EAAAtY,KAAA,EAEoBqO,IAAMR,IAAG,gBAAA5oC,OAA2BnC,EAAmB,OAAX,SAAiB,KAAAmC,OAAIqR,IAAM,KAAD,EAA/EgiC,EAAApS,KACDra,OACXpH,YAASilG,EAAW,CAAEpzG,GAAIA,EAAI8nB,KAAMt7B,KAEpCkmE,KACD1wB,EAAAtY,KAAA,eAAAsY,EAAAvQ,KAAA,EAAAuQ,EAAA/J,GAAA+J,EAAA,iCAAAA,EAAArQ,UAAAoQ,EAAA,oBAKMkiD,EAAc,WACzB,OAAAhwD,YAAAjH,IAAAiE,MAAO,SAAAoiC,IAAA,IAAAl/B,EAAAm/B,EAAAnjD,EAAAmoC,EAAA,OAAAtrB,IAAAe,MAAA,SAAAylC,GAAA,cAAAA,EAAA/hC,KAAA+hC,EAAA9pC,MAAA,cAAA8pC,EAAA/hC,KAAA,EAAA+hC,EAAA9pC,KAAA,EAEoBqO,IAAMR,IAAG,0BAAgD,KAAD,EAAzEpD,EAAQq/B,EAAA5jC,KAAA0jC,EACWn/B,EAAS5e,KAA1BpF,EAAMmjD,EAANnjD,OAAQmoC,EAAIgb,EAAJhb,KAAIkb,EAAAv7B,GACZ9nB,EAAMqjD,EAAA9pC,KAAA8pC,EAAAv7B,KACP+7E,IAAkB36E,QAAO,kBACqB,OAAjDlrB,YAASzP,EAAMwC,QAAQiyG,mBAAmB76D,IAAOkb,EAAAzjC,OAAA,oBAAAyjC,EAAA9pC,KAAA,iBAAA8pC,EAAA/hC,KAAA,GAAA+hC,EAAAnB,GAAAmB,EAAA,kCAAAA,EAAA7hC,UAAA0hC,EAAA,qB,gKCpN5C,SAAS3tC,EAAiBx3B,GAMrC,IAAD+lH,EALDtuG,EAAIzX,EAAJyX,KACAuuG,EAAYhmH,EAAZgmH,aAKIv6G,EAAoBw6G,cAAkBtnH,QACxC,SAACunH,GAAE,OAAKA,EAAGprG,SAAWC,IAAoBtD,EAAKqD,QAAQyd,WAAWzuB,iBAClE,GAAG2B,MAIL,OAFIu6G,IAAcv6G,EAAQ,WAElBgM,EAAKtV,MACX,KAAK2lB,IAAkBC,MACrB,OAAOvoB,cAAC4zB,IAAK,CAAC3nB,MAAOA,EAAM/L,SAAC,UAC9B,KAAKooB,IAAkBE,MACrB,OAAOxoB,cAAC4zB,IAAK,CAAC3nB,MAAOA,EAAM/L,SAAC,aAE9B,KAAKooB,IAAkBgH,UACrB,OAAOtvB,cAAC4zB,IAAK,CAAC3nB,MAAOA,EAAM/L,SAAC,2BAC9B,KAAKooB,IAAkBkL,IACrB,OAAOxzB,cAAC4zB,IAAK,CAAC3nB,MAAOA,EAAM/L,SAAC,SAC9B,KAAKooB,IAAkBkJ,IACvB,KAAKlJ,IAAkB0K,KACrB,OAAOhzB,cAAC4zB,IAAK,CAAC3nB,MAAOA,EAAM/L,SAAC,UAE9B,KAAKooB,IAAkB4K,SACrB,IAAM/J,EAAgBlR,EAA+BkR,aAC/CgD,EAAYlU,EAA+BkR,aAAa4O,WACtC,QAAtBwuF,EAAAp9F,EAAa4O,iBAAS,IAAAwuF,OAAA,EAAtBA,EAAwB7hH,QAAS,GAGnC,OACE1E,cAACkjF,IAAoB,CACnB5nE,OAAgB,OAAR6Q,QAAQ,IAARA,OAAQ,EAARA,EAAU7Q,OAClBrP,MAAOA,EACPtJ,KAAkB,OAAZwmB,QAAY,IAAZA,OAAY,EAAZA,EAAcyD,eAI1B,QACE,OAAO5sB,cAAC4zB,IAAK,CAAC3nB,MAAOA,EAAM/L,SAAC,YAS3B,SAASw9B,EAAyBv7B,GAA8C,IAA3CmZ,EAAMnZ,EAANmZ,OAAQ3Y,EAAIR,EAAJQ,KAAM/B,EAAEuB,EAAFvB,GAClDqL,EAAQ06G,cAAsBxnH,QAClC,SAACunH,GAAE,OAAKA,EAAGprG,SAAWC,IAAoBD,GAAQyd,WAAWzuB,iBAC7D,GAAGs8G,KAEL,OAAO5mH,cAACwvE,IAAe,CAAC5uE,GAAE7B,wBAAA,GAAO6B,GAAE,IAAEqL,MAAOA,IAAStJ,KAAMA,M,gCC5E7D,gHAWMinC,EAAgBS,IAAM9J,OAAO,CACjCsmF,QAASjqD,IAAUC,UAGRiqD,EAA8B,mDAQ9B1jB,EAAkB,WAC7B,IAAAllD,EAAgD70B,cAAxC1J,EAAOu+B,EAAPv+B,QAASyJ,EAAkB80B,EAAlB90B,mBAAoBkzC,EAAMpe,EAANoe,OACrClzB,EAAgCC,cAAxBC,EAAOF,EAAPE,QACAgD,GADmBlD,EAAVI,WACW+C,cAApBD,iBAEFy6E,EAAe79D,mBAAQ,WAC3B,MAAO,CACLje,QAAS,SAAC+1B,GAER,GACEA,EAAOl3B,QAAQC,YACd,CAAC5S,IAAWC,MAAOD,IAAW6vF,QAAQznH,SAAgB,OAAPogB,QAAO,IAAPA,OAAO,EAAPA,EAASuX,YAEzD,MAAM,IAAI2K,MAAMilF,GAGlB,GAAI9lD,EAAOl3B,QAAQm9E,SAA2B,KAAT,OAAPtnG,QAAO,IAAPA,OAAO,EAAPA,EAASrN,IACrC,MAAM,IAAIuvB,MAAM,2DAMlB,OAFAm/B,EAAOl3B,QAAQn9B,OAAO,mBAAqByc,IAAqB2uD,aAChE/W,EAAOl3B,QAAQn9B,OAAO,oBAAsBmwD,eACrCkE,GAETv6B,SAAU,SAACA,GAAuB,OAAKA,GACvCpoC,MAAO,SAACA,GAAgB,IAAD6oH,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAoBgBC,EAnB/B98G,GAAmB,OAALrM,QAAK,IAALA,GAAe,QAAV6oH,EAAL7oH,EAAOooC,gBAAQ,IAAAygF,GAAQ,QAARC,EAAfD,EAAiBlmD,cAAM,IAAAmmD,OAAlB,EAALA,EAAyBz8G,MAAO,GAEpD,IAC+B,OAAvB,OAALrM,QAAK,IAALA,GAAe,QAAV+oH,EAAL/oH,EAAOooC,gBAAQ,IAAA2gF,OAAV,EAALA,EAAiB9rG,SAA8C,OAAvB,OAALjd,QAAK,IAALA,GAAe,QAAVgpH,EAALhpH,EAAOooC,gBAAQ,IAAA4gF,OAAV,EAALA,EAAiB/rG,UACrD,CAAC6b,IAAWC,OAAO73B,SAAgB,OAAPogB,QAAO,IAAPA,OAAO,EAAPA,EAASuX,YAGrC,OADAzW,YAAS67C,KACF/yD,OAAOie,SAAS4xC,SAYzB,QAVwBz0D,KAAf,OAALtG,QAAK,IAALA,OAAK,EAALA,EAAOooC,YAEN,CAAC,0BAA2B,qCAAqCqP,MAAK,SAACxN,GAAC,OACvE59B,EAAInL,SAAS+oC,OAGfgB,EAAQ,yBAADroC,OAA0ByJ,GAAG,GAAAzJ,OAAO5C,EAAM06B,cAIrB,OAAvB,OAAL16B,QAAK,IAALA,GAAe,QAAVipH,EAALjpH,EAAOooC,gBAAQ,IAAA6gF,OAAV,EAALA,EAAiBhsG,QACnB,OAAOsoB,QAAQ8nB,QAAa,OAALrtD,QAAK,IAALA,OAAK,EAALA,EAAOooC,YAAiB,OAALpoC,QAAK,IAALA,GAAe,QAAVmpH,EAALnpH,EAAOooC,gBAAQ,IAAA+gF,OAAV,EAALA,EAAiB3/F,OAASxpB,GAItE,IAAIopH,EACF,yFAgBF,OAdIppH,GAAS,YAAaA,KACf,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOuU,WAAYk0G,EACrBW,EAAWX,EACiB,mBAAd,OAALzoH,QAAK,IAALA,OAAK,EAALA,EAAOuU,SAChB60G,EACE,yFAC0B,yCAAd,OAALppH,QAAK,IAALA,OAAK,EAALA,EAAOuU,WAChB60G,EAAW,gCAIX,CAACtwF,IAAWC,MAAOD,IAAW6vF,QAAQznH,SAAgB,OAAPogB,QAAO,IAAPA,OAAO,EAAPA,EAASuX,aAC1DoV,EAAgBm7E,EAAU,CAAE1mH,QAAS,QAASsnF,SAAS,IAElDzkD,QAAQ8nB,QAAa,OAALrtD,QAAK,IAALA,OAAK,EAALA,EAAOooC,YAAiB,OAALpoC,QAAK,IAALA,GAAe,QAAVkpH,EAALlpH,EAAOooC,gBAAQ,IAAA8gF,OAAV,EAALA,EAAiB1/F,OAASxpB,OAGvE,IAqBH,OAnBAY,qBAAU,WAER,IAAMyoH,EAAiB99E,EAAcm9E,aAAa97E,QAAQywC,IACxDqrC,EAAa97E,QACb87E,EAAa1oH,OAITspH,EAAiB/9E,EAAcm9E,aAAatgF,SAASi1C,IACzDqrC,EAAatgF,SACbsgF,EAAa1oH,OAEf,OAAO,WAELurC,EAAcm9E,aAAa97E,QAAQ28E,MAAMF,GACzC99E,EAAcm9E,aAAatgF,SAASmhF,MAAMD,MAE3C,CAACZ,IAEG,IA8BMn9E,O,4LClIT54B,EAAQC,YAAY,CACxBpS,KAAM,uBACNqS,aAZ8C,CAC9C0jC,QAAS,EACTC,cAAe,GACfC,aAAc,GACdC,aAAc,GACdC,mBAAmB,GAQnBrjC,SAAU,CACRwvC,yBAAwB,SAACtvC,EAAOE,GAC9B,GAAIA,EAAOC,QAAS,CAClB,IAAMma,EAAQptB,YAAA,GAAQgT,EAAOC,SAE7BH,EAAM+iC,QAAUzoB,EAAS7Z,GACzBT,EAAMgjC,cAAgB1oB,EAAShE,SAC/BtW,EAAMijC,aAAe3oB,EAASC,QAC9Bva,EAAMkjC,aAAe5oB,EAAS3jB,aAE9BqJ,EAAM+iC,QAAU,EAChB/iC,EAAMgjC,cAAgB,GACtBhjC,EAAMijC,aAAe,GACrBjjC,EAAMkjC,aAAe,GAGvBljC,EAAMmjC,mBAAoB,GAE5BK,2BAA0B,SAACxjC,EAAOE,GAChC,IAAAuH,EAA8BvH,EAAOC,QAA7Bma,EAAQ7S,EAAR6S,SAAU3jB,EAAO8Q,EAAP9Q,QAElBqJ,EAAM+iC,QAAUzoB,EAAWA,EAAS7Z,GAAK,EACzCT,EAAMgjC,cAAgB1oB,EAAWA,EAAShE,SAAW,GACrDtW,EAAMijC,aAAe3oB,EAAWA,EAASC,QAAU,GAEnDva,EAAMkjC,aAAevsC,GAEvB44C,0BAAyB,SAACvvC,GACxBA,EAAM+iC,QAAU,EAChB/iC,EAAMgjC,cAAgB,GACtBhjC,EAAMijC,aAAe,GACrBjjC,EAAMkjC,aAAe,GACrBljC,EAAMmjC,mBAAoB,GAE5BuM,mBAAkB,SAAC1vC,EAAOE,GACxB,IAAA4H,EAA+B5H,EAAOC,QAA9Bma,EAAQxS,EAARwS,SAAUq1B,EAAQ7nC,EAAR6nC,SAEhBr1B,GACAA,EAAS7Z,KAAOT,EAAM+iC,SACtBzoB,EAAShE,WAAatW,EAAMgjC,eAC5B1oB,EAASC,UAAYva,EAAMijC,eAE3BjjC,EAAMmjC,mBAAoB,GAGxBwM,GACFA,KAGJqmE,wBAAuB,SAACh2G,GACtBA,EAAMmjC,mBAAoB,MAMjBhkC,MAAa,QAErB,IAAAuC,EAMHvC,EAAMwC,QALR2tC,EAAwB5tC,EAAxB4tC,yBACA9L,EAA0B9hC,EAA1B8hC,2BACA+L,EAAyB7tC,EAAzB6tC,0BACAG,EAAkBhuC,EAAlBguC,mBACuBhuC,EAAvBs0G,yB,6MClEUC,EAAe,SAAfA,GAAe,OAAfA,IAAe,uBAAfA,IAAe,qBAAfA,EAAe,KAoCfC,EAAmB,SAAnBA,GAAmB,OAAnBA,IAAmB,uBAAnBA,IAAmB,qBAAnBA,EAAmB,KAWnBC,EAAwB,SAAxBA,GAAwB,OAAxBA,IAAwB,uBAAxBA,IAAwB,qBAAxBA,IAAwB,iBAAxBA,EAAwB,KAgBxBC,EAAgC,SAAhCA,GAAgC,OAAhCA,IAAgC,uBAAhCA,IAAgC,qBAAhCA,IAAgC,iBAAhCA,EAAgC,K,6CC7E5C3oF,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EA2BA,IAOM0N,EAAQC,YAAY,CACxBpS,KAAM,YACNqS,aATmC,CACnCC,WAAW,EACX9S,OAAO,EACP2e,UAAW,KACXkrG,eAAgB,MAMhBv2G,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,GAGpB4J,WAAU,SAAClJ,GACTA,EAAMV,WAAY,GAGpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAElBU,EAAMxT,MAAQ0T,EAAOC,SAIvBm2G,oBAAmB,SAACt2G,EAAOE,GACzBF,EAAMV,WAAY,EAClBU,EAAMmL,UAAYjL,EAAOC,SAI3Bo2G,qBAAoB,SAACv2G,EAAOE,GAC1BF,EAAMq2G,eAAiBn2G,EAAOC,SAGhCq2G,oBAAmB,SAACx2G,EAAOE,GACrBF,EAAMmL,YAAWnL,EAAMmL,UAAUsrG,cAAgBv2G,EAAOC,aAMnDhB,MAAa,QAOrB,SAASmpE,EAAcpiD,GAC5B,OAAAwO,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,IAAA/lB,EAAAgmB,EAAA+9B,EAAA/hD,EAAA8lG,EAAAC,EAAAC,EAAA,OAAAnpF,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OACW,OAARvb,EAAaT,IAAbS,SAAQimB,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAGSqO,IAAMR,IAAG,iCAAqD,KAAD,EAA9EpD,EAAQC,EAAAxE,KAAAsiC,EAEmB/9B,EAAS5e,KAAlCpF,EAAM+hD,EAAN/hD,OAAQ8lG,EAAY/jD,EAAZ+jD,aAAY7hF,EAAA6D,GACpB9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACPu9E,EAAgBn8E,QAAO,EAAAjF,EAAA6D,KA8BvBu9E,EAAgB/+E,SAAQ,mBAFG,OA3B1By/E,EAAoBv8D,KAAKC,MAAMq8D,GAE/BE,EAAYD,EAAkBl/F,OAAOxnB,KAAI,SAACgiB,EAAYjQ,GAAmB,IAAD60G,EACtE5kG,EAAMyI,MAAMhtB,SAAS,QACvBukB,EAAMyI,MAAQo8F,EAAe7kG,EAAMyI,MAAM8G,MAAM,MAAM,GAAIvP,EAAMyI,MAAM8G,MAAM,MAAM,KAE/EvP,EAAMwsD,KAAOxsD,EAAMwsD,IAAI/wE,SAAS,QAClCukB,EAAMwsD,IAAMq4C,EAAe7kG,EAAMwsD,IAAIj9C,MAAM,MAAM,GAAIvP,EAAMwsD,IAAIj9C,MAAM,MAAM,KAG7E,IAAMlH,EAAW4L,EAAU54B,QACzB,SAAC8hC,GAAC,OAAKA,EAAE9Y,WAAarE,EAAM62D,SAASS,KAAOn6C,EAAE3uB,KAAOwR,EAAM62D,SAASQ,OACpE,GAMF,OAJiB,OAAbhvD,IAA6B,OAARA,QAAQ,IAARA,GAAmB,QAAXu8F,EAARv8F,EAAU4L,iBAAS,IAAA2wF,OAAX,EAARA,EAAqBhkH,QAAS,EACrDof,EAAM62D,SAASr/D,OAAS6Q,EAAS4L,UAAU5L,EAAS4L,UAAUrzB,OAAS,GAAG4W,OACrEwI,EAAM62D,SAASr/D,OAASiP,IAAe2wD,KAEvCF,YAA6Bl3D,EAAOjQ,EAAO20G,EAAkBI,SAGtEJ,EAAkBl/F,OAASm/F,EAC3BD,EAAkBK,YAAcL,EAAkBK,aAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACpFL,EAAkBM,YAAcN,EAAkBM,aAAe,GAEjEroG,EAASzP,EAAMwC,QAAQ20G,oBAAoBK,IAE3C/nG,EAASquD,YAAS25C,IAAY/hF,EAAArE,OAAA,2BAAAqE,EAAArE,OAAA,oBAAAqE,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,kCAAAA,EAAAzC,UAAAuC,EAAA,mBAcxC,IAAMmiF,EAAiB,SAAC10E,EAAc03C,GACpC,OAAOzY,YAAU,IAAI5wE,KAAK2xC,EAAO,MAAQ,IAAM03C,GAQpCo9B,EACX,SAAC99E,GAAyB,OAAK,SAAC+5B,GAC9B,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAAwD,IAAA,IAAAtmB,EAAAgmB,EAAAo+B,EAAApiD,EAAAumG,EAAAC,EAAA,OAAA3pF,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgBo1B,EAAAjD,KAAA,EAAAiD,EAAAhL,KAAA,EAEdqO,IAAM32B,KAAI,0CAE/Bu3B,EACA,CACEnB,QAAS,CAAEC,WAAW,KAExB,KAAD,EANKtD,EAAQO,EAAA9E,KAAA2iC,EAOuBp+B,EAAS5e,KAAtCpF,EAAMoiD,EAANpiD,OAAQ0tB,EAAQ00B,EAAR10B,SAAU+4E,EAAMrkD,EAANqkD,OAAMliF,EAAAuD,GACxB9nB,EAAMukB,EAAAhL,KAAAgL,EAAAuD,KACPy9E,EAAyBr8E,QAAO,GAAA3E,EAAAuD,KAIhCy9E,EAAyBnmF,MAAK,oBAFL,OAD5BphB,EAASzP,EAAMwC,QAAQuH,cACvBiqD,EAAU70B,EAAU+4E,GAAQliF,EAAA3E,OAAA,oBAO1B,OAJF5hB,EACEzP,EAAMwC,QAAQ1B,SACZ,+EAEFk1B,EAAA3E,OAAA,oBAAA2E,EAAAhL,KAAA,iBAAAgL,EAAAjD,KAAA,GAAAiD,EAAA29B,GAAA39B,EAAA,SAINvmB,EAASzP,EAAMwC,QAAQ1B,SAAQk1B,EAAA29B,KAAM,yBAAA39B,EAAA/C,UAAA8C,EAAA,qBAKhCoiF,EAAgB,SAACnsG,GAAoB,OAAK,SAACgoD,GACtD,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAA4G,IAAA,IAAA1pB,EAAAgmB,EAAAw+B,EAAAxiD,EAAAgmG,EAAA,OAAAnpF,IAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgBw4B,EAAArG,KAAA,EAAAqG,EAAApO,KAAA,EAEdqO,IAAM32B,KAAI,gCAE/BsJ,EACA,CACE8sB,QAAS,CAAEC,WAAW,KAExB,KAAD,EANKtD,EAAQ2D,EAAAlI,KAAA+iC,EAOuBx+B,EAAS5e,KAAtCpF,EAAMwiD,EAANxiD,OAAwBwiD,EAAhBsD,iBAAgBn+B,EAAAG,GACxB9nB,EAAM2nB,EAAApO,KAAAoO,EAAAG,KACPw9E,EAAoBp8E,QAAO,GAAAvB,EAAAG,KAU3Bw9E,EAAoBh/E,SAAQ,oBAFnB,OAPR0/E,EAAYzrG,EAAUsM,OAAOxnB,KAAI,SAACgiB,EAAYjQ,GAChD,OAAOmnE,YAA6Bl3D,EAAOjQ,EAAOmJ,EAAU4rG,SAG9D5rG,EAAUsM,OAASm/F,EACnBhoG,EAASzP,EAAMwC,QAAQ20G,oBAAoBnrG,IAE3CgoD,IAAY56B,EAAA/H,OAAA,oBAOV,OAJF5hB,EACEzP,EAAMwC,QAAQ1B,SACZ,+EAEFs4B,EAAA/H,OAAA,oBAAA+H,EAAApO,KAAA,iBAAAoO,EAAArG,KAAA,GAAAqG,EAAAu6B,GAAAv6B,EAAA,SAIN3pB,EACEzP,EAAMwC,QAAQ1B,SACZ,+EAEF,yBAAAs4B,EAAAnG,UAAAkG,EAAA,qBAKKi/E,EACX,SAACn+E,GAA0C,OAAK,SAAC+5B,GAC/C,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAA8Q,IAAA,IAAA5zB,EAAAgmB,EAAAm/B,EAAAnjD,EAAA,OAAA6c,IAAAe,MAAA,SAAAiU,GAAA,cAAAA,EAAAvQ,KAAAuQ,EAAAtY,MAAA,OACW,OAARvb,EAAaT,IAAbS,SAAQ6zB,EAAAvQ,KAAA,EAAAuQ,EAAAtY,KAAA,EAESqO,IAAM32B,KAAI,0CAE/Bu3B,EACA,CACEnB,QAAS,CAAEC,WAAW,KAExB,KAAD,EANKtD,EAAQ6N,EAAApS,KAAA0jC,EAQuBn/B,EAAS5e,KAAtCpF,EAAMmjD,EAANnjD,OAAwBmjD,EAAhB2C,iBAAgBj0B,EAAA/J,GAExB9nB,EAAM6xB,EAAAtY,KAAAsY,EAAA/J,KACP09E,EAAiCt8E,QAAO,kBAE/B,OADZlrB,EAASzP,EAAMwC,QAAQ60G,oBAAoB53F,YAAMnuB,KAAK6yE,MAAO,gBAC7DnQ,IAAY1wB,EAAAjS,OAAA,oBAOV,OAJF5hB,EACEzP,EAAMwC,QAAQ1B,SACZ,yEAEFwiC,EAAAjS,OAAA,oBAAAiS,EAAAtY,KAAA,iBAAAsY,EAAAvQ,KAAA,GAAAuQ,EAAAqwB,GAAArwB,EAAA,SAIN7zB,EACEzP,EAAMwC,QAAQ1B,SAAS,yEACvB,yBAAAwiC,EAAArQ,UAAAoQ,EAAA,sB,iMCpOK,SAASuwD,EAAiBpkG,GAQb,IAP1BqkG,EAAKrkG,EAALqkG,MACA9yF,EAAMvR,EAANuR,OACAg1C,EAAOvmD,EAAPumD,QAAOsiE,EAAA7oH,EACP8oH,gBAAQ,IAAAD,EAAS,GAAEA,EACnBjkB,EAAS5kG,EAAT4kG,UACAxkG,EAAEJ,EAAFI,GACGmO,EAAKc,YAAArP,EAAAsP,GAER,OACEpP,eAACC,IAAG,CAACC,GAAE7B,YAAA,CAAI66B,GAAI,GAAMh5B,GAAKV,SAAA,CACxBQ,eAACC,IAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQjL,WAAY,UAAWrB,SAAA,CACjDF,cAACc,IAAU,CAACC,QAAQ,KAAKC,cAAY,EAAAd,SAClC6mD,IAGH/mD,cAACW,IAAG,CAACC,GAAI,CAAE0jB,SAAU,KACpBvS,GAAU/R,cAACW,IAAG,CAACC,GAAI,CAAEujB,WAAY,GAAIjkB,SAAE6R,OAEzCqzF,EACDplG,cAACW,IAAG,CAACC,GAAI,CAAE0jB,SAAU,GAAIpkB,SACvBF,cAACupH,IAAYxqH,YAAA,CAAC8lG,MAAOA,GAAW91F,MAGjCu6G,GACCtpH,cAACW,IAAG,CAACC,GAAI,CAAEC,GAAI,GAAIX,SAChBspH,mBAASF,GACRtpH,cAAC2O,IAAI,CAACD,KAAM46G,EAAU/lH,OAAO,SAASxC,QAAQ,QAAOb,SAClDopH,IAGHA,EAASxnH,KAAI,SAAC4M,GAAI,OAChB1O,cAAC2O,IAAI,CACH+jD,QAAM,EAENhkD,KAAMA,EACN3N,QAAQ,QACRwC,OAAO,SACP3C,GAAI,CAAE4L,QAAS,SAAUtM,SAExBwO,GANIA,a,iCClDrB,sEAQe,SAAS++C,IACtB,IAAAvP,EAA0D70B,cAAlDD,EAAkB80B,EAAlB90B,mBAAoB+0B,EAAgBD,EAAhBC,iBAAkBx+B,EAAOu+B,EAAPv+B,QAC9CwsB,EAAiCzrB,aAAY,SAAC7O,GAAgB,OAAKA,EAAM0N,UAAjE8+E,EAAWlyD,EAAXkyD,YAAa9tC,EAAOpkB,EAAPokB,QAgCrB,MAAO,CACL19B,SA3Be6tC,uBAAY,WAC3B,OAAI/gD,EAAgB2B,YAAyB8H,IAAqBi1C,SAASorD,kBAC/DnoG,YAAyB,MACpC,IAyBD8H,qBACA+0B,mBACAurE,wBArB8B,WAc9B,MAVI,CACFC,eAAgBtrB,EAChBurB,cAAyB,OAAXvrB,QAAW,IAAXA,OAAW,EAAXA,EAAat4F,2BAChB,OAAPwqD,QAAO,IAAPA,OAAO,EAAPA,EAAS3lC,MACP,SAACtnB,GAAC,IAAA28F,EAAA,OACA38F,EAAEjE,QAAoB,OAAXg/F,QAAW,IAAXA,OAAW,EAAXA,EAAah/F,OAAQ,CAAC,MAAO,OAAOE,SAA4B,QAApB0gG,EAAC38F,EAAE2B,yBAAiB,IAAAg7F,OAAA,EAAnBA,EAAqB5gG,SAEjF,U,mOCpCVigC,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAqBA,IA2BM0N,EAAQC,YAAY,CACxBpS,KAAM,SACNqS,aA7BgC,CAChCC,WAAW,EACX9S,MAAO,KACPkyD,QAAS,GACTrD,UAAW,GACX2B,QAAS,GACTD,aAAc,GACdE,UAAW,GACXE,mBAAoB,GACpBsB,gBAAiB,GACjBtyD,eAAgB,GAChB6rH,iBAAkB,GAClBtnG,WAAY,GACZ+7E,oBAAqB,KACrB33F,2BAA4B,EAC5BC,iBAAkB,EAClBC,kBAAmB,EACnB0Y,OAAQ,KACR8wC,eAAe,EACfD,UAAW,KACX05D,qBAAsB,GACtBC,wBAAyB,GACzBnd,uBAAwB,GACxBp8C,0BAA2B,GAC3B6tC,YAAa,MAMb1sF,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,EAClBU,EAAMxT,OAAQ,EACdwT,EAAMu+C,WAAY,GAGpB45D,iBAAgB,SAACn4G,GACfA,EAAMw+C,eAAgB,EACtBx+C,EAAMu+C,WAAY,GAIpBt+C,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAGvBi4G,aAAY,SAACp4G,EAAOE,GAClBF,EAAMw+C,eAAgB,EACtBx+C,EAAMu+C,UAAYr+C,EAAOC,SAI3Bk4G,eAAc,SAACr4G,EAAOE,GAAS,IAADo4G,EAAAC,EAC5Bv4G,EAAMV,WAAY,EAClB,IAAAmI,EAgBIvH,EAAOC,QAfTu+C,EAAOj3C,EAAPi3C,QACArD,EAAS5zC,EAAT4zC,UACA2B,EAAOv1C,EAAPu1C,QACAD,EAAYt1C,EAAZs1C,aACAE,EAASx1C,EAATw1C,UACAE,EAAkB11C,EAAlB01C,mBACAsB,EAAeh3C,EAAfg3C,gBACAtyD,EAAcsb,EAAdtb,eACA6rH,EAAgBvwG,EAAhBuwG,iBACAtnG,EAAUjJ,EAAViJ,WACA+7E,EAAmBhlF,EAAnBglF,oBACA33F,EAA0B2S,EAA1B3S,2BACAC,EAAgB0S,EAAhB1S,iBACAC,EAAiByS,EAAjBzS,kBACAwjH,EAA4B/wG,EAA5B+wG,6BAEFx4G,EAAM0+C,QAAUA,EAChB1+C,EAAMq7C,UAAYA,EAClBr7C,EAAMg9C,QAAUA,EAChBh9C,EAAM+8C,aAAeA,EACrB/8C,EAAMi9C,UAAYA,EAClBj9C,EAAMm9C,mBAAqBA,EAC3Bn9C,EAAMy+C,gBAAkBA,EACxBz+C,EAAM7T,eAAiBA,EACvB6T,EAAMg4G,iBAAmBA,EACzBh4G,EAAM0Q,WAAaA,EACnB1Q,EAAMysF,oBAAsBA,EAC5BzsF,EAAMlL,2BAA6BA,EACnCkL,EAAMjL,iBAAmBA,EACzBiL,EAAMhL,kBAAoBA,EAE1B,IAAMyjH,EAA6B,OAATp9D,QAAS,IAATA,OAAS,EAATA,EAAW/tD,QACnC,SAACugC,GAAkB,OAAKA,EAAE35B,6BAE5B8L,EAAMi4G,qBAAuBQ,EAE7Bz4G,EAAMk4G,wBAAmC,OAAT78D,QAAS,IAATA,OAAS,EAATA,EAAW/tD,QACzC,SAACugC,GAAkB,OAAMA,EAAE35B,6BAE7B8L,EAAM+6F,uBAAyB74C,MAAMw2D,KACnC,IAAIC,IACwB,QADrBL,EACLt4G,EAAMi4G,4BAAoB,IAAAK,OAAA,EAA1BA,EAA4BroH,KAAI,SAAC49B,GAAkB,MAAK,CAACA,EAAElgC,UAAWkgC,EAAElgC,eACxEtB,UAEJ2T,EAAM2+C,0BAA4BuD,MAAMw2D,KACtC,IAAIC,IAC2B,QADxBJ,EACLv4G,EAAMk4G,+BAAuB,IAAAK,OAAA,EAA7BA,EAA+BtoH,KAAI,SAAC49B,GAAkB,MAAK,CAACA,EAAElgC,UAAWkgC,EAAElgC,eAC3EtB,UAIJ2T,EAAMwsF,YAAcgsB,GAEtBn2E,IAAG,SAACriC,EAAOE,GACTF,EAAMV,WAAY,EAClBU,EAAMw+C,eAAgB,EACtBx+C,EAAMxT,OAAQ,EACdwT,EAAMu+C,WAAY,EAClB,IAAM7wC,EAASxN,EAAOC,QAEhBu+C,EAAU1+C,EAAM0+C,QAAQpxD,QAC5B,SAACsmC,GAAE,QAAOA,EAAGpmC,OAASkgB,EAAOlgB,MAAQomC,EAAG7gC,QAAQvF,OAASkgB,EAAO3a,QAAQvF,SAE1EkxD,EAAQrsD,KAAKqb,GAEb1N,EAAM0+C,QAAUA,GAElBk6D,gBAAe,SAAC54G,EAAOE,GACrBF,EAAMysF,oBAAsBvsF,EAAOC,YAUlC,SAAS04G,IACd,OAAAnkF,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,IAAA/lB,EAAAgmB,EAAAhkB,EAAA,OAAA6c,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgB80B,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAEd4N,IAAcC,IAAwB,oBAAoB,KAAD,EAA1EpD,EAAQC,EAAAxE,KACNzf,EAAWgkB,EAAS5e,KAApBpF,OAAMikB,EAAA6D,GAEN9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACPlmC,IAAiBsnC,QAAO,oBAC2B,OAAtDlrB,EAASzP,EAAMwC,QAAQ02G,eAAezjF,EAAS5e,OAAO6e,EAAArE,OAAA,oBAGtD5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,UAAU,QAAA40B,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAG9CjmB,EAASzP,EAAMwC,QAAQ1B,SAAQ40B,EAAAi+B,KAAS,yBAAAj+B,EAAAzC,UAAAuC,EAAA,mBApB/Bx1B,MAAa,QAyBrB,IAAMwgD,EAAc,SAACm5D,GAAY,OAAK,SAAC3lD,GAC5C,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAAwD,IAAA,IAAAtmB,EAAAwlG,EAAAx/E,EAAA+9B,EAAA/hD,EAAAlD,EAAAk7C,EAAA,OAAAn7B,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,OAY2C,OAXxCvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQw2G,oBAAoBhjF,EAAAjD,KAAA,EAEnCkiF,EAAW,IAAIn6D,SAEQ,MAAzB6+D,EAAK/lH,QAAQ4B,UACfmkH,EAAK/lH,QAAQ4B,SAASkc,SAAQ,SAACkoB,GAC7Bq7E,EAASl6D,OAAO,OAAQnhB,EAAQ7L,SAIpCknF,EAASl6D,OAAO,OAAQE,KAAK8W,UAAU4nD,IAAO3jF,EAAAhL,KAAA,EACvB4N,IAAcl2B,KAAyB,mBAAoBuyG,EAAU,CAC1Fn8E,QAAS,CAAE,eAAgB,sBAAuBC,WAAW,KAC5D,KAAD,EAFItD,EAAQO,EAAA9E,KAAAsiC,EAG2B/9B,EAAS5e,KAA1CpF,EAAM+hD,EAAN/hD,OAAQlD,EAAMilD,EAANjlD,OAAQk7C,EAAY+J,EAAZ/J,aAAYzzB,EAAAuD,GAE5B9nB,EAAMukB,EAAAhL,KAAAgL,EAAAuD,KACPjmC,IAAiBqnC,QAAO,oBAEf,OADZlrB,EAASzP,EAAMwC,QAAQ0gC,IAAI30B,IAC3BylD,IAAYh+B,EAAA3E,OAAA,oBAIV5hB,EADEg6C,QAAiC91D,IAAjB81D,GAA+C,KAAjBA,EACvCzpD,EAAMwC,QAAQy2G,aAAaxvD,GAE3BzpD,EAAMwC,QAAQy2G,aAAa,iDACrC,QAAAjjF,EAAAhL,KAAA,iBAAAgL,EAAAjD,KAAA,GAAAiD,EAAA29B,GAAA39B,EAAA,SAGLvmB,EAASzP,EAAMwC,QAAQy2G,aAAa,iDAA8C,yBAAAjjF,EAAA/C,UAAA8C,EAAA,qBAQ3EkoE,EAAiB,SAAC1vF,GAAc,OAAK,SAACylD,GACjD,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAA4G,IAAA,IAAA1pB,EAAA,OAAA6e,IAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,OACGvb,EAAaT,IAAbS,SACJlB,IACFkB,EAASzP,EAAMwC,QAAQ0gC,IAAI30B,IAC3BylD,KACD,wBAAA56B,EAAAnG,UAAAkG,SAIQ2kE,EACX,SAAC7jE,GAAmC,OAAK,SAAC+5B,GAAqB,OAAK,SAAC17B,GACnE,OAAA/C,YAAAjH,IAAAiE,MAAO,SAAA8Q,IAAA,IAAA5zB,EAAAgmB,EAAAo+B,EAAApiD,EAAA,OAAA6c,IAAAe,MAAA,SAAAiU,GAAA,cAAAA,EAAAvQ,KAAAuQ,EAAAtY,MAAA,OACW,OAARvb,EAAaT,IAAbS,SAAQ6zB,EAAAvQ,KAAA,EAAAuQ,EAAAtY,KAAA,EAES4N,IAAcl2B,KACnC,+BACAu3B,EACA,CACEnB,QAAS,CAAEC,WAAW,KAExB,KAAD,EANKtD,EAAQ6N,EAAApS,KAAA2iC,EAQmBp+B,EAAS5e,KAAlCpF,EAAMoiD,EAANpiD,OAAoBoiD,EAAZpK,aAAYnmB,EAAA/J,GAEpB9nB,EAAM6xB,EAAAtY,KAAAsY,EAAA/J,KACP3iC,IAA0B+jC,QAAO,kBAExB,OADZlrB,EAASzP,EAAMwC,QAAQi3G,gBAAgBx/E,EAAQ+jE,gBAC/ChqC,IAAY1wB,EAAAjS,OAAA,oBAGF,OAAViH,IAAUgL,EAAAjS,OAAA,oBAAAiS,EAAAtY,KAAA,iBAAAsY,EAAAvQ,KAAA,GAAAuQ,EAAAqwB,GAAArwB,EAAA,SAIdhL,IAAU,yBAAAgL,EAAArQ,UAAAoQ,EAAA,uB,8GChPH,SAAS1rB,EAAenoB,GAAkD,IAA/CkK,EAAGlK,EAAHkK,IAAckgH,GAAFpqH,EAAPkoB,QAAeloB,EAANoqH,QACtDC,EAAgC/pG,cAAxBE,EAAQ6pG,EAAR7pG,SACR1iB,GAD2BusH,EAATzpG,UACgB7iB,oBAAS,IAAKC,EAAAC,YAAAH,EAAA,GAAzC6S,EAAS3S,EAAA,GAAEssH,EAAYtsH,EAAA,GAExBusH,EAAY74F,iBAA0B,MAC5CzI,EAAgClrB,mBAAS,IAAGmrB,EAAAjrB,YAAAgrB,EAAA,GAArCuhG,EAAQthG,EAAA,GAAEuhG,EAAWvhG,EAAA,GAC5BG,EAAwBtrB,oBAAS,GAAMurB,EAAArrB,YAAAorB,EAAA,GAAhC7C,EAAI8C,EAAA,GAAEqI,EAAOrI,EAAA,GAsBpB,OAXA7qB,qBAAU,WACRkzB,GAAQ,GACR84F,EAAYvgH,KACX,CAACA,IAEJzL,qBAAU,WACS,KAAb+rH,GAEJ74F,GAAQ,KACP,CAAC64F,IAGFtqH,eAAAT,WAAA,CAAAC,SAAA,CACGiR,GACCnR,cAAA,OACEgD,MAAO,CACL4F,OAAQ,OACRjF,MAAO,OACP0L,OAAQ,GACRnP,SAEFF,cAACinC,IAAkB,MAGtBjgB,GACChnB,cAAA,UACEoyB,IAAK24F,EACL/nH,MAAO,CACLshB,SAAU,EACV1b,OAAQoY,EAAW,MAAQ,OAC3Brd,MAAO,OACP2M,SAAU,OACV+7C,QAASl7C,EAAY,EAAI,GAE3B+5G,UAAU,OACV7wE,YAAa,EACb8wE,iBAAe,EACf38F,IAAKw8F,EACLJ,OA/CW,WACjBE,GAAa,GACTF,GAAQA,KA8CNthF,QA3CY,WAClBhQ,QAAQC,IAAI,iB,uPCtBJ6xF,EAAsB,SAAtBA,GAAsB,OAAtBA,IAAsB,qBAAtBA,IAAsB,iBAAtBA,EAAsB,K,aCLlC9rF,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAmBA,IAAM+nH,EAAmB,CAAC,MAAO,OAC3BC,EAAQ,CAAC,MASTt6G,EAAQC,YAAY,CACxBpS,KAAM,WACNqS,aATkC,CAClCq6G,UAAW,GACXjrD,aAAc,GACdC,oBAAqB,GACrBC,cAAe,IAMf7uD,SAAU,CAER65G,aAAY,SAAC35G,EAAOE,GAAS,IAADuH,EAAAK,EAAA8xG,EAC1B55G,EAAM05G,UAAYx5G,EAAOC,QACzBH,EAAMyuD,aAA6B,QAAjBhnD,EAAGvH,EAAOC,eAAO,IAAAsH,OAAA,EAAdA,EAAgBna,QAAO,SAACy9C,GAAY,IAAA8uE,EAAA,OACvDL,EAAiB9rH,SAAa,QAALmsH,EAAC9uE,EAAEtqC,UAAE,IAAAo5G,OAAA,EAAJA,EAAMnhH,WAElCsH,EAAM0uD,oBAAoC,QAAjB5mD,EAAG5H,EAAOC,eAAO,IAAA2H,OAAA,EAAdA,EAAgBxa,QAC1C,SAAC2hC,GAAY,IAAA6qF,EAAAC,EAAA,OACVP,EAAiB9rH,SAAa,QAALosH,EAAC7qF,EAAExuB,UAAE,IAAAq5G,OAAA,EAAJA,EAAMphH,UAAY+gH,EAAM/rH,SAAqB,QAAbqsH,EAAC9qF,EAAEoe,kBAAU,IAAA0sE,OAAA,EAAZA,EAAc9rE,WAE9EjuC,EAAM2uD,cAA8B,QAAjBirD,EAAG15G,EAAOC,eAAO,IAAAy5G,OAAA,EAAdA,EAAgBtsH,QAAO,SAAC2hC,GAAY,IAAA+qF,EAAA,OACxDP,EAAM/rH,SAAqB,QAAbssH,EAAC/qF,EAAEoe,kBAAU,IAAA2sE,OAAA,EAAZA,EAAc/rE,YAIjCgsE,eAAc,SAACj6G,EAAOE,GACpB,IAAMO,EAAKP,EAAOC,QACZ+5G,EAAkBjqH,cAAI+P,EAAM05G,WAAW,SAACS,GAC5C,OAAI15G,IAAO05G,EAAU15G,IACnB05G,EAAUC,WAAax7F,YAAM,IAAInuB,MAC1B0pH,GAEFA,KAGTn6G,EAAM05G,UAAYQ,MASjBx4G,GAHQvC,MAAa,QAGoBA,EAAMwC,SAAvCs4G,EAAcv4G,EAAdu4G,eAAgBN,EAAYj4G,EAAZi4G,aAGlB3rE,EACX,SAACC,EAAgBC,EAAgBZ,GAAgB,OAAK,SAAC6lB,GACrD,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,OAAAlH,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,cAAA0K,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAEoBqO,IAAMR,IAAG,8BAAA5oC,OACA6+C,EAAM,KAAA7+C,OAAI8+C,EAAM,cAAA9+C,OAAak+C,GAC3D,CACErV,QAAS,CAAEC,WAAW,KAExB,KAAD,EALarD,EAAAxE,KAMDra,MACXm9C,IACDt+B,EAAA1K,KAAA,eAAA0K,EAAA3C,KAAA,EAAA2C,EAAA6D,GAAA7D,EAAA,iCAAAA,EAAAzC,UAAAuC,EAAA,oBAKIgY,EACX,SAACvT,EAAsB9iB,GAAgB,OACvC,SAAC68C,GAA8C,OAC/C,SAAC17B,GACC,OAAA/C,YAAAjH,IAAAiE,MAAO,SAAAwD,IAAA,IAAAN,EAAA+9B,EAAA/hD,EAAAkU,EAAAkvC,EAAA,OAAAvmC,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,cAAAgL,EAAAjD,KAAA,EAAAiD,EAAAhL,KAAA,EAEoBqO,IAAM32B,KAAI,8BAAAzS,OACDknB,GAC9B8iB,EACA,CACEnB,QAAS,CAAEC,WAAW,KAExB,KAAD,EANKtD,EAAQO,EAAA9E,KAAAsiC,EAQiB/9B,EAAS5e,KAAhCpF,EAAM+hD,EAAN/hD,OAAQkU,EAAK6tC,EAAL7tC,MAAOjsB,EAAG85D,EAAH95D,IAAGs8B,EAAAuD,GAElB9nB,EAAMukB,EAAAhL,KAAAgL,EAAAuD,KACP6gF,EAAuBz/E,QAAO,kBACX,OAAtBq5B,EAAUruC,EAAOjsB,GAAKs8B,EAAA3E,OAAA,oBAGZ,OAAViH,IAAUtC,EAAA3E,OAAA,oBAAA2E,EAAAhL,KAAA,iBAAAgL,EAAAjD,KAAA,GAAAiD,EAAA29B,GAAA39B,EAAA,SAId1N,QAAQC,IAAGyN,EAAA29B,IACXr7B,IAAU,yBAAAtC,EAAA/C,UAAA8C,EAAA,sBAKL2jC,EACX,SAAC7K,GAAa,OACd,SAACmF,GAAkE,OACnE,SAAC17B,GACC,OAAA/C,YAAAjH,IAAAiE,MAAO,SAAA4G,IAAA,IAAA1D,EAAAo+B,EAAAqnD,EAAAC,EAAA,OAAA7sF,IAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,cAAAoO,EAAArG,KAAA,EAAAqG,EAAApO,KAAA,EAEoBqO,IAAMR,IAAG,qCAAA5oC,OACO4+D,EAAS13C,SAAQ,KAAAlnB,OAAI4+D,EAASvtD,IACnE,CACEw3B,QAAS,CAAEC,WAAW,EAAMqiF,SAAS,KAEvC,KAAD,EALK3lF,EAAQ2D,EAAAlI,KAAA2iC,EAOWp+B,EAAS5e,KAA1BqkG,EAAKrnD,EAALqnD,MAAOC,EAAKtnD,EAALsnD,MAEfnnD,EAAUknD,EAAOC,EAAOtsD,EAASnkB,OAAOtR,EAAApO,KAAA,gBAAAoO,EAAArG,KAAA,EAAAqG,EAAAG,GAAAH,EAAA,SAExC9Q,QAAQC,IAAG6Q,EAAAG,IAAQ,yBAAAH,EAAAnG,UAAAkG,EAAA,sB,mRCjGZ,SAASkiF,EAAe7rH,GAKb,IAADolB,EAAAC,EAJvB5N,EAAIzX,EAAJyX,KACUq0G,GAAA9rH,EAAVga,WAAUha,EACVu8C,aAAI,IAAAuvE,EAAG,WAAUA,EACjBrlG,EAAOzmB,EAAPymB,QAEM2W,EAAWC,cAEXnY,EAAqBC,cAE3B4mG,EAA+BzvF,YAAsB7kB,GAA7CtW,EAAK4qH,EAAL5qH,MAAOiE,EAAW2mH,EAAX3mH,YAET4mH,EAAoB,CAACjxG,IAAoByhB,OAAQzhB,IAAoBwhB,UAAUx9B,SACnF0Y,EAAKqD,QASDmxG,EAAYx0G,EAAKw0G,UACjBC,EAAaz0G,EAAKpH,OAAmC,QAAhC+U,EAAKF,EAAmBK,gBAAQ,IAAAH,GAAM,QAANC,EAA3BD,EAA6B3N,YAAI,IAAA4N,OAAN,EAA3BA,EAAmChV,KAa7D87G,EAAkBz6F,iBAAuB,MAQ/C,OANAjzB,qBAAU,WACJytH,GAAcC,EAAgBjuH,SAChCiuH,EAAgBjuH,QAAQynB,mBAEzB,IAGDnmB,cAACy5B,IAAQ,CACPrH,IAAKs6F,EAAaC,EAAkB,KACpCpZ,QAAM,EACNtxG,SAAUuqH,EACV7nG,QAxBgB,WACdsC,GACFA,IAGW,aAAT81B,EACFr3B,EAAmBsuB,OAAO/7B,GACrB2lB,EAAS,GAAD38B,OAAI88B,IAAe9iB,UAAUwf,QAAO,KAAAx5B,OAAIgX,EAAKkiB,UAAS,KAAAl5B,OAAIgX,EAAKikB,aAkB5Et7B,GAAE7B,YAAA,GAAQ2tH,GAAc,CAAE5gH,gBAAiB,YAAe5L,SAE1DF,cAAC05B,IAAY,CACXxM,QACExsB,eAACU,IAAK,CAACqB,UAAU,SAAQvC,SAAA,CACvBF,cAACc,IAAU,CAACC,QAAQ,UAAUC,cAAY,EAAAd,SACvCyB,IAEFiE,GAA+B,KAAhBA,GAAsBqS,EAAKtV,OAAS2lB,IAAkBmL,QACpEzzB,cAACc,IAAU,CAACC,QAAQ,UAAUC,cAAY,EAAAd,SACvCogF,YAAS16E,EAAa,SAK/Bi0B,yBAA0B,CAAE9rB,UAAW,OACvC7B,UACExL,eAAAT,WAAA,CAAAC,SAAA,CACEQ,eAACC,IAAG,CAAC6L,QAAQ,OAAOjL,WAAW,SAASo/C,aAAa,gBAAezgD,SAAA,CACjEssH,GAAqBxsH,cAACizF,IAAI,CAACjwF,MAAO,CAAEiJ,MAAO,aAC3CwgH,GAAazsH,cAAC4sH,IAAI,CAAC5pH,MAAO,CAAEiJ,MAAO,UAAWrD,OAAQ,MACvD5I,cAACg4B,IAAiB,CAAC/f,KAAMA,IACf,WAAT8kC,GACCr8C,eAAAT,WAAA,CAAAC,SAAA,CACEQ,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAAC,SAAO+X,EAAKuqE,gBAC1CxiF,cAAC6sH,EAAe9tH,YAAA,GAAKkZ,OAIzBjY,cAACW,IAAG,CAACC,GAAI,CAAE0jB,SAAU,KACrBtkB,cAAC8sH,IAAkB,CAAC70G,KAAMA,OAE3ByN,EAAmBkS,YAAc53B,cAAC+sH,EAAahuH,YAAA,GAAKkZ,WAQjE,SAAS40G,EAAgB50G,GACvB,OAAQA,EAAKtV,MACX,KAAK2lB,IAAkB4K,SACrB,IAAM/G,EAAWlU,EACjB,GAA0C,IAAtCkU,EAAShD,aAAagP,aAAqBhM,EAAShD,aAAagP,YAAc,EACjF,OACEn4B,cAACo4B,IAAI,CACHx2B,KAAK,QACLD,MAAK,UAAAV,OAAYkrB,EAAShD,aAAagP,aACvCp3B,QAAQ,aAKlB,OAAOf,cAAAC,WAAA,IAIT,SAAS8sH,EAAc90G,GAAsB,IAAD+0G,EACpCxiD,EAAe,OAAJvyD,QAAI,IAAJA,GAAkC,QAA9B+0G,EAAJ/0G,EAA6Bgb,aAAK,IAAA+5F,OAA9B,EAALA,EAAqC16G,GAErD,OACE5R,eAACI,IAAU,CAACC,QAAQ,UAAUgN,UAAW,MAAM7N,SAAA,CAC5C+X,EAAKkiB,UAAU,IAAEqwC,GAAW9pE,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAAC,cAASsqE,QASnE,SAASyiD,EAAuB9qH,GAA2D,IAADokH,EACvFp9F,EADqDhnB,EAArB+qH,sBAChC/jG,aACFgD,EAAWhD,EAAa4O,WAAgC,QAAtBwuF,EAAAp9F,EAAa4O,iBAAS,IAAAwuF,OAAA,EAAtBA,EAAwB7hH,QAAS,GACzE,OACGykB,EAAa6B,SACbmB,GAAY,CAAC5B,IAAeE,OAAQF,IAAeiF,UAAUjwB,SAAS4sB,EAAS7Q,QAEzEtb,cAAAC,WAAA,IACFD,cAAC4uB,IAAY,CAACzC,SAAUA,EAAUlB,UAAW9B,EAAa8B,c,uMCrIpD,SAAS4C,EAAartB,GAMb,IALtB0pB,EAAQ1pB,EAAR0pB,SACAiC,EAAQ3rB,EAAR2rB,SAAQghG,EAAA3sH,EACRstB,kBAAU,IAAAq/F,EAAG,SAAQA,EACrBp/F,EAAUvtB,EAAVutB,WACA9G,EAAOzmB,EAAPymB,QAEA3oB,EAA0BC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAlC0pC,EAAMxpC,EAAA,GAAE2zB,EAAO3zB,EAAA,GAEhB43B,EAAa,WACjBjE,GAAQ,IAEJkE,EAAc,WAClBlE,GAAQ,GACJlL,GAASA,KAIZtmB,IAQH,OACED,eAAAT,WAAA,CAAAC,SAAA,CACkB,WAAf4tB,GACC9tB,cAAC+uB,IAAM,CAAChuB,QAAQ,YAAYa,KAAM,QAAS+iB,QAASyR,EAAWl2B,SAAC,wBAKlD,eAAf4tB,GAA2C,MAAZ5D,GAC9BlqB,cAACymB,IAAO,CAACD,MAAK,0CAAAvlB,OAAiD,OAARipB,QAAQ,IAARA,OAAQ,EAARA,EAAU4O,eAAgB54B,SAC/EF,cAAC0mB,IAAW,CAAC/B,QAASyR,EAAWl2B,SAC/BF,cAACotH,IAAuB,QAKd,eAAft/F,IAAgC5D,GAC/BlqB,cAACymB,IAAO,CAACD,MAAK,uBAAyBtmB,SACrCQ,eAACgmB,IAAW,CAAC/B,QAASyR,EAAWl2B,SAAA,CAC9B,IACDF,cAACotH,IAAuB,SAK7BplF,GACCtnC,eAACqmB,IAAM,CACLC,KAAMghB,EACN/gB,QAASoP,EACT8E,OAAO,QACPjU,WAAY,CAAEC,aAAa,GAC3B/W,WAAY,CAAExP,GAAI,CAAE+C,MAAO,CAAE0qB,GAAI,EAAGC,GAAI,OAAUpuB,SAAA,CAElDQ,eAACU,IAAK,CAACyM,EAAG,IAAKpL,UAAU,MAAMlB,WAAW,SAAQrB,SAAA,CAChDF,cAACymB,IAAO,CAACD,MAAM,SAAQtmB,SACrBF,cAAC8zB,IAAU,CAACnP,QAAS0R,EAAaz1B,GAAI,CAAE4vB,GAAI,GAAItwB,SAC9CF,cAACo7B,IAAK,QAGV16B,eAACC,IAAG,CAAAT,SAAA,CACFF,cAACc,IAAU,CAACC,QAAQ,KAAKH,GAAI,CAAEyP,GAAI,KAAMnQ,SAAC,wBAGzCisB,GACCzrB,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAC1BisB,EAASxqB,MAAM,KAAGwqB,EAASC,iBAKpCpsB,cAACkO,IAAO,IAERlO,cAACqtH,IAAyB,CACxBnjG,SAAUA,EACVjD,QAASoP,EACTlK,SAAUA,EACV4B,WAAYA,Y,0LCzGlBu/F,EAAcziH,YAAO4sD,IAAP5sD,EAAc,SAACE,GAAK,MAAM,CAC5CY,aAAc,EACdD,QAAS,MAWE8kF,EAAmB,SAAHhwF,GAAoE,IAA9D+rB,EAAK/rB,EAAL+rB,MAAO+jD,EAAG9vE,EAAH8vE,IAAKmgB,EAASjwF,EAATiwF,UAAWvwF,EAAQM,EAARN,SACxD5B,EAA8BC,mBAAS,GAAEC,EAAAC,YAAAH,EAAA,GAAzBivH,GAAF/uH,EAAA,GAAYA,EAAA,IACAw5D,qBAAWw1D,KAA7BC,cAERxuH,qBAAU,WAER,IAAMkxC,EAAW6nC,aAAY,WAC3Bu1C,GAAW,SAACt7C,GAAO,OAAKA,EAAU,OACjC,KACH,OAAO,kBAAM5hC,cAAcF,MAC1B,IAEH,IAAMu9E,EAAyBv7C,YAAQ5lD,GAAQ,IACzCohG,EAAuBl9B,EAAYte,YAAQ5lD,EAAO,IAAM,IAAIjqB,KAAKguE,GACjEs9C,EAAcr5C,cAEdmc,EAAag9B,EAAyBE,GAAeD,EAAuBC,EAC5Ej9B,EAAYxgB,YAAYy9C,EAAarhG,GAErCqoE,EAAqBzkB,YAAYy9C,EAAaD,GAIpD,OAAOztH,EAFMgxE,YAAU3kD,EAAOqhG,GAERl9B,EAAYC,EAAWiE,IAGlC5D,EAA0B,SAAH7uF,GAAsB,IAAbvE,EAAKqP,OAAAC,OAAA,IAAAC,YAAAhL,OACxC8uF,EAAoDrzF,EAApDqzF,QAAStF,EAA2C/tF,EAA3C+tF,KAAMgF,EAAqC/yF,EAArC+yF,UAAWD,EAA0B9yF,EAA1B8yF,WAAYD,EAAc7yF,EAAd6yF,UAE9C,OACEzwF,cAACstH,EAAW,CAAAptH,SACTywF,EACC3wF,cAAAC,WAAA,CAAAC,SACGuwF,IAAcC,EACb1wF,cAAC4zB,IAAK,CAAC7yB,QAAQ,QAAQkL,MAAM,QAAO/L,SAAC,uCAIrCQ,eAACkzB,IAAK,CAAC7yB,QAAQ,QAAQkL,MAAM,OAAM/L,SAAA,CAChC,IAAI,sCAC+B,IACnC+wF,EACCjxF,cAAA,UAAAE,SAAQ,sCAERF,cAAA,UAAAE,SAAQ,yBAMhBQ,eAACkzB,IAAK,CAAC7yB,QAAQ,QAAQkL,MAAM,OAAM/L,SAAA,CAAC,oBAChB,IAClBF,cAACc,IAAU,CAACF,GAAI,CAAEyP,GAAI,GAAInQ,SACxBF,cAAA,UAAAE,SAASyrF,a,4RC9ErBrsD,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAcA,IAWM0N,EAAQC,YAAY,CACxBpS,KAAM,eACNqS,aAbsC,CACtCC,WAAW,EACX9S,OAAO,EACPyW,cAAe,GACflB,SAAS,EACTC,MAAO,EACP9Q,KAAM,GACNoY,MAAO,EACP8sE,YAAa,GAMbt2E,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,GAIpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAIvB+D,wBAAuB,SAAClE,EAAOE,GAC7B,IAAAuH,EAA4BvH,EAAOC,QAA3B6V,EAAIvO,EAAJuO,KAAMgmG,EAASv0G,EAATu0G,UACdh8G,EAAMV,WAAY,EACHU,EAAMiD,cAAjB+4G,EAAiChmG,EAAK+iC,KAClB,GAAA3pD,OAAA2W,YAAO/F,EAAMiD,eAAa8C,YAAKiQ,EAAK+iC,OAC5D/4C,EAAMsJ,MAAQ0M,EAAK1M,MACnBtJ,EAAMo2E,YAAcpgE,EAAKogE,YACzBp2E,EAAM+B,QAAUiU,EAAK1M,MAAQtJ,EAAMiD,cAAcpQ,QAGnD6jF,WAAU,SAAC12E,GACTA,EAAMV,WAAY,EAClB,IAAM2D,EAAgB8C,YAAI/F,EAAMiD,eAAehT,KAAI,SAACgsH,GAElD,OADAA,EAAM1zF,MAAO,EACN0zF,KAETj8G,EAAMiD,cAAgBA,EACtBjD,EAAMo2E,YAAc,GAGtBxB,QAAO,SAAC50E,EAAOE,GACb,IAAMO,EAAKP,EAAOC,QACZ8C,EAAgB8C,YAAI/F,EAAMiD,eAAehT,KAAI,SAACgsH,GAClD,OAAIx7G,IAAOw7G,EAAMx7G,IAAOw7G,EAAM1zF,KAOvB0zF,GANLj8G,EAAMo2E,YAAcp2E,EAAMo2E,YAAc,EACxClpF,wBAAA,GACK+uH,GAAK,IACR1zF,MAAM,QAKZvoB,EAAMiD,cAAgBA,GAGxBqzE,qBAAoB,SAACt2E,GACnB,IAAMoC,EAAWpC,EAAMgC,MAAQ,EAC/BhC,EAAMgC,MAAQI,GAGhBC,UAAS,SAACrC,GACRA,EAAM+B,SAAU,MAMP5C,MAAa,QAGrB,IAAQm3E,EAAyBn3E,EAAMwC,QAA/B20E,qBAIR,SAASC,EAAiBv0E,EAAe9Q,EAAc8qH,GAC5D,OAAAtnF,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,IAAA/lB,EAAAgmB,EAAA,OAAAnH,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgB80B,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAGdqO,IAAM32B,KAA+B,yBAA0B,CACpFG,MAAOA,EACPgyG,SAAU9iH,IACT,KAAD,EAHI0jC,EAAQC,EAAAxE,KAKdzhB,EACEzP,EAAMwC,QAAQuC,wBAAwB,CAAE8R,KAAM4e,EAAS5e,KAAMgmG,UAAWA,KACxEnnF,EAAA1K,KAAA,gBAAA0K,EAAA3C,KAAA,EAAA2C,EAAA6D,GAAA7D,EAAA,SAEFjmB,EAASzP,EAAMwC,QAAQ1B,SAAQ40B,EAAA6D,KAAS,yBAAA7D,EAAAzC,UAAAuC,EAAA,kBAKvC,IAAM+hD,EAAa,WAAH,OAAS,SAACj/C,GAC/B,OAAA/C,YAAAjH,IAAAiE,MAAO,SAAAwD,IAAA,IAAAtmB,EAAA,OAAA6e,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgBo1B,EAAAjD,KAAA,EAAAiD,EAAAhL,KAAA,EAGdqO,IAAMR,IAAa,6BAA6B,KAAD,EAAxD,IAAA7C,EAAA9E,KACDra,KAAK,CAADmf,EAAAhL,KAAA,SAES,OADxBvb,EAASzP,EAAMwC,QAAQ+0E,cACvB9nE,EAASmlG,eAAe5+E,EAAA3E,OAAA,kBAG1BiH,IAAUtC,EAAAhL,KAAA,iBAAAgL,EAAAjD,KAAA,GAAAiD,EAAAuD,GAAAvD,EAAA,SAEVvmB,EAASzP,EAAMwC,QAAQ1B,SAAQk1B,EAAAuD,KAAS,yBAAAvD,EAAA/C,UAAA8C,EAAA,qBAKjC0/C,EAAU,SAACn0E,GAAU,OAAK,SAACg3B,GACtC,OAAA/C,YAAAjH,IAAAiE,MAAO,SAAA4G,IAAA,IAAA1pB,EAAA,OAAA6e,IAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,OACW,OAARvb,EAAaT,IAAbS,SAAQ2pB,EAAArG,KAAA,EAAAqG,EAAApO,KAAA,EAGSqO,IAAMR,IAAG,qBAAA5oC,OAA+BqR,GAAM,CACnEw3B,QAAS,CAAEC,WAAW,KACrB,KAAD,EAFY,IAAAK,EAAAlI,KAGDra,KAAK,CAADuiB,EAAApO,KAAA,QACqB,OAApCvb,EAASzP,EAAMwC,QAAQizE,QAAQn0E,IAAK83B,EAAA/H,OAAA,iBAGtCiH,IAAUc,EAAApO,KAAA,iBAAAoO,EAAArG,KAAA,GAAAqG,EAAAG,GAAAH,EAAA,SAEV3pB,EAASzP,EAAMwC,QAAQ1B,SAAQs4B,EAAAG,KAAS,yBAAAH,EAAAnG,UAAAkG,EAAA,qBAKvC,SAAS0+C,IACd,MAAO,CACL,CACEv2E,GAAIg0E,IAAiBQ,WACrBN,SAAU,eACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,yBAET,CACElU,GAAIg0E,IAAiBC,QACrBC,SAAU,UACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,wBAET,CACElU,GAAIg0E,IAAiBa,MACrBX,SAAU,YACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,IAET,CACElU,GAAIg0E,IAAiBW,eACrBT,SAAU,gBACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,uDAET,CACElU,GAAIg0E,IAAiBY,aACrBV,SAAU,gBACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,+CAET,CACElU,GAAIg0E,IAAiBzC,aACrB2C,SAAU,mBACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,kEAET,CACElU,GAAIg0E,IAAiBM,qCACrBJ,SAAU,mBACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,wCAET,CACElU,GAAIg0E,IAAiBynC,oCACrBvnC,SAAU,mBACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,iEAGT,CACElU,GAAIg0E,IAAiBK,+BACrBH,SAAU,mBACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,uCAET,CACElU,GAAIg0E,IAAiBI,uCACrBF,SAAU,mBACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,qCAGT,CACElU,GAAIg0E,IAAiBqB,gCACrBnB,SAAU,mBACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,4DAGT,CACElU,GAAIg0E,IAAiBO,OACrBL,SAAU,UACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,kBAET,CACElU,GAAIg0E,IAAiBgB,UACrBd,SAAU,WACVv6E,MAAO,UACPghB,QAAS,YACTzG,MAAO,kCAET,CACElU,GAAIg0E,IAAiBiB,iBACrBf,SAAU,UACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,mBAET,CACElU,GAAIg0E,IAAiBkB,cACrBhB,SAAU,UACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,mBAET,CACElU,GAAIg0E,IAAiBmB,cACrBjB,SAAU,UACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,mBAET,CACElU,GAAIg0E,IAAiB0nC,aACrBxnC,SAAU,cACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,IAET,CACElU,GAAIg0E,IAAiB2nC,mBACrBznC,SAAU,cACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,IAET,CACElU,GAAIg0E,IAAiB4nC,gBACrB1nC,SAAU,cACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,IAET,CACElU,GAAIg0E,IAAiB6nC,mBACrB3nC,SAAU,cACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,IAET,CACElU,GAAIg0E,IAAiB8nC,mBACrB5nC,SAAU,cACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,IAGT,CACElU,GAAIg0E,IAAiB+nC,gBACrB7nC,SAAU,cACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,IAET,CACElU,GAAIg0E,IAAiBoB,eACrBlB,SAAU,mBACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,oCAET,CACElU,GAAIg0E,IAAiBv6D,QACrBy6D,SAAU,cACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,IAET,CACElU,GAAIg0E,IAAiBgoC,uBACrB9nC,SAAU,gBACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,qDAET,CACElU,GAAIg0E,IAAiBhC,QACrBkC,SAAU,UACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,IAET,CACElU,GAAIg0E,IAAiBtd,QACrBwd,SAAU,cACVv6E,MAAO,UACPghB,QAAS,UACTzG,MAAO,O,iHC1Vb8Y,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAQA,IAAMirH,EAAa,CACjB,CAAEzvH,MAAO,MAAO6C,MAAO,IAAK8uE,OAAQ,WACpC,CAAE3xE,MAAO,MAAO6C,MAAO,SAAK8uE,OAAQ,iBACpC,CAAE3xE,MAAO,MAAO6C,MAAO,MAAO8uE,OAAQ,cACtC,CAAE3xE,MAAO,MAAO6C,MAAO,OAAK8uE,OAAQ,QAoFvBpnD,IAjFC,WAAO,IAADmlG,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACdl0G,EAAUm9C,qBAAWg3D,KAE3B,IAAKn0G,EAAS,MAAM,IAAIgnB,MAAM,gDAE9B,IAAMsc,EAAmBuiB,uBAAY,WAAO,IAADuuD,EACzC,MAAwC,QAA1B,OAAPp0G,QAAO,IAAPA,GAAgB,QAATo0G,EAAPp0G,EAAS8E,eAAO,IAAAsvG,OAAT,EAAPA,EAAkB/wD,cACxB,CAAgB,QAAhBswD,EAAC3zG,EAAQ8E,eAAO,IAAA6uG,OAAA,EAAfA,EAAiBl8G,KAEf8W,EAAqBs3C,uBAAY,WAAO,IAADwuD,EAAAC,EAC3C,OAAc,OAAPt0G,QAAO,IAAPA,GAAgB,QAATq0G,EAAPr0G,EAAS8E,eAAO,IAAAuvG,GAAW,QAAXC,EAAhBD,EAAkBE,iBAAS,IAAAD,OAApB,EAAPA,EAA6BhwH,QAAO,SAAC+a,GAAW,OAAKA,EAAExb,WAAS,KACtE,CAAgB,QAAhB+vH,EAAC5zG,EAAQ8E,eAAO,IAAA8uG,OAAA,EAAfA,EAAiBn8G,GAAmB,QAAjBo8G,EAAE7zG,EAAQ8E,eAAO,IAAA+uG,OAAA,EAAfA,EAAiBU,YAEpCnmD,EAAoBvI,uBAAY,WAAO,IAADyI,EAAAC,EAAAC,EACpCI,EAAUrgD,IAGhB,OAAIqgD,EAAQ53D,QAAUq4D,IAAcC,UAC3BlM,IAAe9+D,QAAO,SAACmpC,GAAC,MAAe,YAAVA,EAAEz3B,OAAmB,GAAG/R,MAAa,OAAP+b,QAAO,IAAPA,OAAO,EAAPA,EAAS8E,UAGrD,QAAxBwpD,EAAIM,EAAQE,oBAAY,IAAAR,OAAA,EAApBA,EAAsBa,kBACjB/L,IAAe9+D,QAAO,SAACmpC,GAAC,MAAe,mBAAVA,EAAEz3B,OAA0B,GAAG/R,MAAa,OAAP+b,QAAO,IAAPA,OAAO,EAAPA,EAAS8E,UAG5D,QAAxBypD,EAAIK,EAAQE,oBAAY,IAAAP,OAAA,EAApBA,EAAsBS,kBACjB5L,IAAe9+D,QAAO,SAACmpC,GAAC,MAAe,mBAAVA,EAAEz3B,OAA0B,GAAG/R,MAAa,OAAP+b,QAAO,IAAPA,OAAO,EAAPA,EAAS8E,UAG5D,QAAxB0pD,EAAII,EAAQE,oBAAY,IAAAN,OAAA,EAApBA,EAAsBO,oBACjB3L,IACJ9+D,QAAO,SAACmpC,GAAC,MAAe,sBAAVA,EAAEz3B,OAA6B,GAC7C/R,MAAa,OAAP+b,QAAO,IAAPA,OAAO,EAAPA,EAAS8E,SAEb,OACN,CAAgB,QAAhBgvG,EAAC9zG,EAAQ8E,eAAO,IAAAgvG,OAAA,EAAfA,EAAiBr8G,KAEf+8G,EAAoB3uD,uBAAY,WAEpC,OADgBt3C,IACDvX,QAAUq4D,IAAcolD,aACtC,CAAgB,QAAhBV,EAAC/zG,EAAQ8E,eAAO,IAAAivG,OAAA,EAAfA,EAAiBt8G,KAOfi9G,EAAgB,WAAO,IAAD52D,EAAA62D,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC1B,MACsC,QAAhB,QAApBn3D,EAAAvvC,WAAoB,IAAAuvC,GAAO,QAAP62D,EAApB72D,EAAsB9f,aAAK,IAAA22E,OAAP,EAApBA,EAA6Bl9G,MACd,QADyBm9G,EACxC50G,EAAQ8E,eAAO,IAAA8vG,GAAS,QAATC,EAAfD,EAAiBpmB,eAAO,IAAAqmB,OAAT,EAAfA,EAA0BK,iBACmB,MAA9B,QAAfJ,EAAA90G,EAAQ8E,eAAO,IAAAgwG,GAAS,QAATC,EAAfD,EAAiBtmB,eAAO,IAAAumB,OAAT,EAAfA,EAA0BG,iBACmB,YAA9B,QAAfF,EAAAh1G,EAAQ8E,eAAO,IAAAkwG,GAAS,QAATC,EAAfD,EAAiBxmB,eAAO,IAAAymB,OAAT,EAAfA,EAA0BC,iBAIxB9mC,EAAsBvoB,uBAAY,WACtC,OAAO6uD,IAAkB,wEAAoE,KAC5F,CAAgB,QAAhBV,EAACh0G,EAAQ8E,eAAO,IAAAkvG,OAAA,EAAfA,EAAiBv8G,KAEf8tD,EAAmBM,sBAAWn6B,YAAAjH,IAAAiE,MAAC,SAAAiD,IAAA,IAAAC,EAAA,OAAAnH,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,cAAA0K,EAAA1K,KAAA,EACZ4N,IAAcC,IAAI,4BAA4B,KAAD,EAAtD,OAARpD,EAAQC,EAAAxE,KAAAwE,EAAArE,OAAA,SACPoE,EAAS5e,MAAI,wBAAA6e,EAAAzC,UAAAuC,OACnB,CAAgB,QAAhBsoF,EAACj0G,EAAQ8E,eAAO,IAAAmvG,OAAA,EAAfA,EAAiBx8G,KAEfslB,GAA4B,QAAfm3F,EAAAl0G,EAAQ8E,eAAO,IAAAovG,OAAA,EAAfA,EAAiB73F,cAAeC,IAAWC,MAE9D,OAAAr4B,wBAAA,GACK8b,GAAO,IACVuO,qBACA6/C,oBACA6pB,kBA7BwB,WAAwB,IAAvBh0F,EAAa2F,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EACnCurH,EAAWzB,EAAW3jG,MAAK,SAAC0d,GAAC,OAAKA,EAAExpC,QAAUsqB,IAAqB4mG,YACzE,OAAe,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAUv/C,OAAOhoE,QAAQ,SAAU3J,EAAMi6B,aA4BhDolB,mBACA8qC,sBACA7oB,mBACAmvD,gBACAF,oBACAz3F,iB,qPCvFW,SAASq4F,EAAkBzvH,GAA0B,IAApBuO,EAAK9B,OAAAC,OAAA,IAAAC,YAAA3M,OAC7CuK,EAAQgW,cACRmvG,EAAenlH,EAAME,QAAQiiB,QAAQI,KACrC6iG,EAAeplH,EAAME,QAAQiiB,QAAQ2oD,KACrCu6C,EAAiBrlH,EAAME,QAAQiiB,QAAQ4oD,OAE7C,OACE91E,cAACW,IAAG5B,wBAAA,GAAKgQ,GAAK,IAAA7O,SACZQ,eAAA,OAAK2vH,MAAM,6BAA6B1sH,MAAM,OAAOiF,OAAO,OAAO0nH,QAAQ,cAAapwH,SAAA,CACtFQ,eAAA,QAAAR,SAAA,CACEQ,eAAA,kBAAgB4R,GAAG,KAAKi+G,GAAG,UAAUC,GAAG,UAAUC,GAAG,UAAUC,GAAG,SAAQxwH,SAAA,CACxEF,cAAA,QAAM2wH,OAAO,KAAKC,UAAWV,IAC7BlwH,cAAA,QAAM2wH,OAAO,OAAOC,UAAWV,EAAcW,YAAY,SAE3DnwH,eAAA,kBAAgB4R,GAAG,mBAAmBi+G,GAAG,UAAUC,GAAG,UAAUC,GAAG,KAAKC,GAAG,OAAMxwH,SAAA,CAC/EF,cAAA,QAAM2wH,OAAO,KAAKE,YAAY,MAC9B7wH,cAAA,QAAM2wH,OAAO,eAGjBjwH,eAAA,KAAG8kD,KAAK,OAAOsrE,SAAS,UAAUrrE,OAAO,OAAOsrE,YAAY,IAAG7wH,SAAA,CAC7DF,cAAA,QACEwlD,KAAK,WACLvkB,EAAE,8pBACForB,QAAQ,QAEVrsD,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,q6BACForB,QAAQ,SAEVrsD,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,wgBACForB,QAAQ,SAEVrsD,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,8RACForB,QAAQ,SAEVrsD,cAAA,QACEwlD,KAAM4qE,EACNU,SAAS,UACT7vF,EAAE,2VAEJjhC,cAAA,QACEwlD,KAAK,OACLsrE,SAAS,UACT7vF,EAAE,4FACF1xB,UAAU,iCAEZvP,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,4FACF1xB,UAAU,kCAEZvP,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,4FACForB,QAAQ,MACR98C,UAAU,iCAEZvP,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,4FACForB,QAAQ,MACR98C,UAAU,kCAEZvP,cAAA,QACEwlD,KAAK,OACLsrE,SAAS,UACT7vF,EAAE,4FACF1xB,UAAU,kCAEZvP,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,4FACF1xB,UAAU,kCAEZvP,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,4FACForB,QAAQ,MACR98C,UAAU,kCAEZvP,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,4FACForB,QAAQ,MACR98C,UAAU,iCAEZvP,cAAA,QACEwlD,KAAK,OACLsrE,SAAS,UACT7vF,EAAE,4FACF1xB,UAAU,+BAEZvP,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,4FACF1xB,UAAU,+BAEZvP,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,4FACForB,QAAQ,MACR98C,UAAU,gCAEZvP,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,4FACForB,QAAQ,MACR98C,UAAU,+BAEZvP,cAAA,QACEwlD,KAAK,OACLsrE,SAAS,UACT7vF,EAAE,4FACF1xB,UAAU,kCAEZvP,cAAA,QACEwlD,KAAM0qE,EACNY,SAAS,UACT7vF,EAAE,4FACF1xB,UAAU,kCAEZvP,cAAA,QACEwlD,KAAM0qE,EACNY,SAAS,UACT7vF,EAAE,4FACForB,QAAQ,MACR98C,UAAU,kCAEZvP,cAAA,QACEwlD,KAAM0qE,EACNY,SAAS,UACT7vF,EAAE,4FACForB,QAAQ,MACR98C,UAAU,kCAEZvP,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,8MAEJjhC,cAAA,QACEwlD,KAAK,OACLsrE,SAAS,UACT7vF,EAAE,iJACForB,QAAQ,QAEVrsD,cAAA,QACEwlD,KAAM0qE,EACNY,SAAS,UACT7vF,EAAE,mHAEJjhC,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,wMACForB,QAAQ,QAEVrsD,cAAA,QACEwlD,KAAK,OACLsrE,SAAS,UACT7vF,EAAE,0OAEJjhC,cAAA,QACEwlD,KAAM0qE,EACNY,SAAS,UACT7vF,EAAE,kiBACForB,QAAQ,QAEVrsD,cAAA,QACEwlD,KAAM0qE,EACNY,SAAS,UACT7vF,EAAE,u7BAEJjhC,cAAA,WACEgxH,GAAG,UACHC,GAAG,UACHzrE,KAAM0qE,EACNY,SAAS,UACTzkE,QAAQ,MACR6kE,GAAG,QACHC,GAAG,UAELnxH,cAAA,QACEwlD,KAAM0qE,EACNY,SAAS,UACT7vF,EAAE,o4BAEJjhC,cAAA,WACEgxH,GAAG,UACHC,GAAG,UACHzrE,KAAM0qE,EACNY,SAAS,UACTzkE,QAAQ,MACR6kE,GAAG,QACHC,GAAG,MAELnxH,cAAA,QACEwlD,KAAM0qE,EACNY,SAAS,UACT7vF,EAAE,q4BAEJjhC,cAAA,WACEgxH,GAAG,SACHC,GAAG,UACHzrE,KAAM0qE,EACNY,SAAS,UACTzkE,QAAQ,MACR6kE,GAAG,OACHC,GAAG,UAELnxH,cAAA,QACE2D,MAAM,SACNiF,OAAO,SACPg0C,EAAE,UACF9b,EAAE,SACF0kB,KAAK,OACLsrE,SAAS,UACTI,GAAG,QACH3hH,UAAU,kCAEZvP,cAAA,UACEgxH,GAAG,UACHC,GAAG,UACH5mH,EAAE,QACFm7C,KAAM0qE,EACNY,SAAS,UACTzkE,QAAQ,QAEVrsD,cAAA,QACEwlD,KAAM0qE,EACNY,SAAS,UACT7vF,EAAE,4FACForB,QAAQ,MACR98C,UAAU,mCAEZvP,cAAA,QACEwlD,KAAM0qE,EACNY,SAAS,UACT7vF,EAAE,4FACForB,QAAQ,MACR98C,UAAU,mCAEZvP,cAAA,QACEwlD,KAAM0qE,EACNY,SAAS,UACT7vF,EAAE,4FACForB,QAAQ,MACR98C,UAAU,mCAEZvP,cAAA,QACEwlD,KAAM0qE,EACNY,SAAS,UACT7vF,EAAE,4FACForB,QAAQ,MACR98C,UAAU,kCAEZvP,cAAA,QACEwlD,KAAM0qE,EACNY,SAAS,UACT7vF,EAAE,4FACForB,QAAQ,MACR98C,UAAU,iCAEZvP,cAAA,QACE2D,MAAM,OACNiF,OAAO,SACPg0C,EAAE,UACF9b,EAAE,UACF0kB,KAAK,OACLsrE,SAAS,UACTI,GAAG,IACH3hH,UAAU,kCAEZvP,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,wFACF1xB,UAAU,mCAEZvP,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,4FACF1xB,UAAU,mCAEZvP,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,4FACF1xB,UAAU,mCAEZvP,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,4FACF1xB,UAAU,mCAEZvP,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,wFACF1xB,UAAU,mCAEZvP,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,4FACF1xB,UAAU,mCAEZvP,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,4FACF1xB,UAAU,mCAEZvP,cAAA,QACEwlD,KAAK,UACLsrE,SAAS,UACT7vF,EAAE,4FACF1xB,UAAU,mCAEZvP,cAAA,QACEwlD,KAAM0qE,EACNY,SAAS,UACT7vF,EAAE,yVAEJjhC,cAAA,QACEwlD,KAAM2qE,EACNW,SAAS,UACT7vF,EAAE,uVACForB,QAAQ,UAEVrsD,cAAA,QACEwlD,KAAK,yBACLsrE,SAAS,UACT7vF,EAAE,uVACForB,QAAQ,SAEVrsD,cAAA,WACEgxH,GAAG,UACHC,GAAG,UACHzrE,KAAM0qE,EACNY,SAAS,UACTzkE,QAAQ,MACR6kE,GAAG,QACHC,GAAG,MAELnxH,cAAA,WACEgxH,GAAG,SACHC,GAAG,UACHzrE,KAAM0qE,EACNY,SAAS,UACTzkE,QAAQ,MACR6kE,GAAG,QACHC,GAAG,MAELnxH,cAAA,WACEgxH,GAAG,UACHC,GAAG,UACHzrE,KAAM0qE,EACNY,SAAS,UACTzkE,QAAQ,MACR6kE,GAAG,QACHC,GAAG,MAELnxH,cAAA,WACEgxH,GAAG,SACHC,GAAG,UACHzrE,KAAM0qE,EACNY,SAAS,UACTzkE,QAAQ,MACR6kE,GAAG,QACHC,GAAG,MAELnxH,cAAA,QACEwlD,KAAM0qE,EACNY,SAAS,UACT7vF,EAAE,0MAEJjhC,cAAA,QACEylD,OAAQ2qE,EACRgB,cAAc,QACdL,YAAY,MACZ9vF,EAAE,mMAEJjhC,cAAA,QACEwlD,KAAM0qE,EACNY,SAAS,UACT7vF,EAAE,iJAEJjhC,cAAA,QACEylD,OAAQ2qE,EACRgB,cAAc,QACdL,YAAY,MACZ9vF,EAAE,8CAEJjhC,cAAA,QACEylD,OAAQ2qE,EACRgB,cAAc,QACdL,YAAY,MACZ9vF,EAAE,mCAEJjhC,cAAA,QACEylD,OAAQ2qE,EACRgB,cAAc,QACdL,YAAY,MACZ9vF,EAAE,kCAEJjhC,cAAA,QACEylD,OAAQ2qE,EACRgB,cAAc,QACdL,YAAY,MACZ9vF,EAAE,kCAEJjhC,cAAA,QACEylD,OAAQ2qE,EACRgB,cAAc,QACdL,YAAY,MACZ9vF,EAAE,mCAEJjhC,cAAA,QACEwlD,KAAM0qE,EACNY,SAAS,UACT7vF,EAAE,mJAEJjhC,cAAA,QACEylD,OAAQ2qE,EACRgB,cAAc,QACdL,YAAY,MACZ9vF,EAAE,+CAEJjhC,cAAA,QACEylD,OAAQ2qE,EACRgB,cAAc,QACdL,YAAY,MACZ9vF,EAAE,oCAEJjhC,cAAA,QACEylD,OAAQ2qE,EACRgB,cAAc,QACdL,YAAY,MACZ9vF,EAAE,qCAEJjhC,cAAA,QACEylD,OAAQ2qE,EACRgB,cAAc,QACdL,YAAY,MACZ9vF,EAAE,qCAEJjhC,cAAA,QACEylD,OAAQ2qE,EACRgB,cAAc,QACdL,YAAY,MACZ9vF,EAAE,qCAEJjhC,cAAA,QACEwlD,KAAM0qE,EACNY,SAAS,UACT7vF,EAAE,8wCAEJjhC,cAAA,UACEgxH,GAAG,SACHC,GAAG,SACH5mH,EAAE,QACFm7C,KAAM0qE,EACNY,SAAS,UACTzkE,QAAQ,QAEVrsD,cAAA,UACEgxH,GAAG,UACHC,GAAG,UACH5mH,EAAE,QACFm7C,KAAM0qE,EACNY,SAAS,UACTzkE,QAAQ,QAEVrsD,cAAA,UACEgxH,GAAG,UACHC,GAAG,SACH5mH,EAAE,QACFm7C,KAAM0qE,EACNY,SAAS,UACTzkE,QAAQ,QAEVrsD,cAAA,UACEgxH,GAAG,OACHC,GAAG,SACH5mH,EAAE,SACFm7C,KAAM0qE,EACNY,SAAS,UACTzkE,QAAQ,QAEVrsD,cAAA,QACEwlD,KAAM2qE,EACNW,SAAS,UACT7vF,EAAE,+HAEJjhC,cAAA,QACEwlD,KAAM0qE,EACNY,SAAS,UACT7vF,EAAE,gKACForB,QAAQ,SAEVrsD,cAAA,QACEwlD,KAAM2qE,EACNW,SAAS,UACT7vF,EAAE,kUC3gBC,SAASk4B,EAAsB34D,GAA0B,IAApBuO,EAAK9B,OAAAC,OAAA,IAAAC,YAAA3M,OACjDuK,EAAQgW,cACUhW,EAAME,QAAQiiB,QAAQC,QACzBpiB,EAAME,QAAQiiB,QAAQI,KACtBviB,EAAME,QAAQiiB,QAAQ2oD,KACpB9qE,EAAME,QAAQiiB,QAAQ4oD,OAE7C,OAAO91E,cAACW,IAAG5B,wBAAA,GAAKgQ,GAAK,IAAEhB,UAAU,MAAMygB,IAAI,iDCP9B,SAASiwD,EAAwBj+E,GAA0B,IAApBuO,EAAK9B,OAAAC,OAAA,IAAAC,YAAA3M,OACzD,OAAOR,cAACW,IAAG5B,wBAAA,GAAKgQ,GAAK,IAAEhB,UAAU,MAAMygB,IAAI,iDCD9B,SAAS6iG,EAAuB7wH,GAA0B,IAApBuO,EAAK9B,OAAAC,OAAA,IAAAC,YAAA3M,OAC1CugB,cAEd,OAAO/gB,cAACW,IAAG5B,wBAAA,GAAKgQ,GAAK,IAAEhB,UAAU,MAAMygB,IAAI,mDCH9B,SAAS8iG,EAAQ9wH,GAA0B,IAApBuO,EAAK9B,OAAAC,OAAA,IAAAC,YAAA3M,OACnCuK,EAAQgW,cACRmvG,EAAenlH,EAAME,QAAQiiB,QAAQI,KACrC6iG,EAAeplH,EAAME,QAAQiiB,QAAQ2oD,KAE3C,OACE71E,cAACW,IAAG5B,wBAAA,GAAKgQ,GAAK,IAAA7O,SACZQ,eAAA,OAAK2vH,MAAM,6BAA6B1sH,MAAM,OAAOiF,OAAO,OAAO0nH,QAAQ,cAAapwH,SAAA,CACtFF,cAAA,QAAAE,SACEQ,eAAA,kBAAgB4R,GAAG,KAAKi+G,GAAG,UAAUC,GAAG,UAAUC,GAAG,UAAUC,GAAG,UAASxwH,SAAA,CACzEF,cAAA,QAAM2wH,OAAO,KAAKC,UAAWV,IAC7BlwH,cAAA,QAAM2wH,OAAO,OAAOC,UAAWT,SAGnCzvH,eAAA,KAAG8kD,KAAK,OAAOsrE,SAAS,UAAUrrE,OAAO,OAAOsrE,YAAY,IAAG7wH,SAAA,CAC7DF,cAAA,KAAGwlD,KAAM0qE,EAAc7jE,QAAQ,QAAQ98C,UAAU,mBAAkBrP,SACjEF,cAAA,QAAMihC,EAAE,2lFAEVvgC,eAAA,KAAG6O,UAAU,uBAAsBrP,SAAA,CACjCF,cAAA,QACEwlD,KAAK,WACLsrE,SAAS,UACT7vF,EAAE,qhBAEJjhC,cAAA,QACEwlD,KAAM2qE,EACNlvF,EAAE,qhB,2JC/BhB3B,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAiCe,SAASu2C,EAAUr5C,GAAqC,IAAD2B,EAAAC,EAAAkL,EAAAE,EAAjCtN,EAAQM,EAARN,SAAUU,EAAEJ,EAAFI,GACvC2wH,EAAczrF,cACZwG,EAAoBC,cAApBD,gBACA+iF,EAAsBhmG,cAAtBgmG,kBAGRpwH,qBAAU,WACJsyH,EAAYvrF,eACdsG,EAAgB,6CAAwC,CAAEvrC,QAAS,YAEpE,CAACwwH,EAAYvrF,gBA6ChB,OACEhmC,cAACW,IAAG,CAACC,GAAE7B,YAAA,GAAO6B,GAAKV,SAChBA,GA3BS,SAAAsxH,EAAAC,EAAAC,EAAAC,GAAA,OAAArkH,KAAAi5B,YAAAjH,IAAAiE,MAAG,SAAA4G,EACf73B,EACA6e,EACAygG,EACA3gG,GAAiB,OAAAqO,IAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,UAEZqzF,IAAoB,CAADjlF,EAAApO,KAAA,QAC0C,OAAhEsQ,EAAgB6xB,IAAwB,CAAEp9D,QAAS,YAAaqpC,EAAA/H,OAAA,wBAAA+H,EAAApO,KAAA,EAI5Du1F,EAAYz3E,SAASxnC,EAAI6e,EAAUygG,EAAc3gG,GAAU,KAAD,mBAAAmZ,EAAAnG,UAAAkG,QACjErD,MAAA,KAAAriC,aAiBK8sH,EAAYxrF,SAfC,SAAA8rF,EAAAC,GAAA,OAAAtkH,KAAA+4B,YAAAjH,IAAAiE,MAAG,SAAA8Q,EAAOpjB,EAAkB2nB,GAAe,OAAAtZ,IAAAe,MAAA,SAAAiU,GAAA,cAAAA,EAAAvQ,KAAAuQ,EAAAtY,MAAA,UACvDqzF,IAAoB,CAAD/6E,EAAAtY,KAAA,QAC0C,OAAhEsQ,EAAgB6xB,IAAwB,CAAEp9D,QAAS,YAAauzC,EAAAjS,OAAA,wBAAAiS,EAAAtY,KAAA,EAI5Du1F,EAAYx3E,cAAc9oB,EAAU2nB,GAAS,KAAD,mBAAAtE,EAAArQ,UAAAoQ,QACnDvN,MAAA,KAAAriC,aAUK8sH,EAAYpgH,UACZogH,EAAYvrF,eAlDD,SAAAyE,EAAAC,EAAAC,GAAA,OAAAxoC,KAAAokC,YAAAjH,IAAAiE,MAAG,SAAAiD,EAAO97B,EAAaumB,EAAkBQ,GAAc,OAAA6N,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,UACjEqzF,IAAoB,CAAD3oF,EAAA1K,KAAA,QAC0C,OAAhEsQ,EAAgB6xB,IAAwB,CAAEp9D,QAAS,YAAa2lC,EAAArE,OAAA,wBAAAqE,EAAA1K,KAAA,EAI5Du1F,EAAYv3E,YAAYtvC,EAAKumB,GAAU,KAAD,mBAAAyV,EAAAzC,UAAAuC,QAC7CM,MAAA,KAAAriC,cAEe,SAAAglC,EAAAC,EAAAO,EAAAC,GAAA,OAAA9nC,KAAAmkC,YAAAjH,IAAAiE,MAAG,SAAAwD,EAAOr8B,EAAaumB,EAAkBE,EAAoB7e,GAAU,OAAAgtB,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,UAChFqzF,IAAoB,CAADroF,EAAAhL,KAAA,QAC0C,OAAhEsQ,EAAgB6xB,IAAwB,CAAEp9D,QAAS,YAAaimC,EAAA3E,OAAA,wBAAA2E,EAAAhL,KAAA,EAI5Du1F,EAAYt3E,WAAWvvC,EAAKumB,EAAUE,EAAU7e,GAAI,KAAD,mBAAA00B,EAAA/C,UAAA8C,QAC1DD,MAAA,KAAAriC,cAxBqB,SAAC6N,EAAYy/G,EAA0BrnH,W,iCCrC/D,6DAgBakkB,EAAe,SAAHpuB,GAA2D,IAArDyqB,EAASzqB,EAATyqB,UAAWkB,EAAQ3rB,EAAR2rB,SAAUxqB,EAAKnB,EAALmB,MAClD,OACc,MAAZwqB,GACA,CAAC5B,IAAeC,UAAWD,IAAeE,QAAQlrB,SAAiB,OAAR4sB,QAAQ,IAARA,OAAQ,EAARA,EAAU7Q,QAE9Dtb,cAAC0/C,IAAS,CAACz0B,UAAWA,EAAWtpB,MAAOA,EAAOg1B,MAAOxK,EAAS3oB,OAEjExD,cAAAC,WAAA,M,oJCRIy/C,EAAY,SAAHl/C,GAA4D,IAAtDyqB,EAASzqB,EAATyqB,UAAW0L,EAAKn2B,EAALm2B,MAAOh1B,EAAKnB,EAALmB,MAAUf,EAAEiP,YAAArP,EAAAsP,GAChDsZ,EAAuBC,cAAvBD,mBACR,OACE1oB,eAACI,IAAU/B,wBAAA,CAACgC,QAAQ,MAASH,GAAE,IAAAV,SAAA,CAC5ByB,GACC3B,cAACc,IAAU,CAACC,QAAQ,QAAQgN,UAAU,OAAOnN,GAAI,CAAE4vB,GAAI,GAAItwB,SACxDyB,IAGJg1B,EACA1L,IAAcC,IAAUC,OACvBzqB,eAACI,IAAU,CAACC,QAAQ,QAAQgN,UAAU,OAAM7N,SAAA,CAAC,IACzCkpB,IAAqB0B,iB,gCCnBjC,0KAAO,IA6EKu5E,EAAc,SAAdA,GAAc,OAAdA,IAAc,eAAdA,IAAc,qBAAdA,IAAc,yBAAdA,IAAc,mBAAdA,EAAc,KA6Bdn6B,EAAa,SAAbA,GAAa,OAAbA,IAAa,2BAAbA,IAAa,yBAAbA,IAAa,mBAAbA,EAAa,KAyBb8nD,EAAiB,SAAjBA,GAAiB,OAAjBA,IAAiB,uBAAjBA,IAAiB,mBAAjBA,IAAiB,yBAAjBA,IAAiB,qBAAjBA,IAAiB,uBAAjBA,IAAiB,qBAAjBA,EAAiB,KAyDjBC,EAAyB,SAAzBA,GAAyB,OAAzBA,IAAyB,uBAAzBA,IAAyB,qBAAzBA,EAAyB,KAiCzBt0E,EAAU,SAAVA,GAAU,OAAVA,IAAU,iCAAVA,IAAU,mCAAVA,IAAU,mCAAVA,IAAU,2BAAVA,IAAU,uCAAVA,IAAU,2CAAVA,IAAU,6BAAVA,IAAU,iCAAVA,IAAU,uCAAVA,IAAU,2CAAVA,IAAU,kCAAVA,IAAU,gCAAVA,IAAU,oCAAVA,IAAU,wBAAVA,IAAU,sBAAVA,IAAU,oBAAVA,IAAU,0BAAVA,IAAU,0CAAVA,IAAU,sCAAVA,IAAU,oBAAVA,IAAU,gCAAVA,IAAU,0BAAVA,IAAU,wBAAVA,IAAU,8BAAVA,IAAU,4CAAVA,IAAU,sBAAVA,IAAU,gDAAVA,IAAU,0BAAVA,IAAU,gBAAVA,EAAU,M,krCCrOtBre,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAiCO,IAAMwiC,EAAU,WAAO,IAADtlC,EAAA2B,EAAAC,EAAAkL,EAAAE,EAAAE,EAAAE,EAAAE,EAAAG,EAAAI,EAC3B/P,EAAgCC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAxC6S,EAAS3S,EAAA,GAAE60C,EAAU70C,EAAA,GAC5BirB,EAA0ClrB,oBAAS,GAAMmrB,EAAAjrB,YAAAgrB,EAAA,GAAlDuc,EAAatc,EAAA,GAAEwoG,EAAgBxoG,EAAA,GA0GhCyoG,GAzGc9oF,cAAZC,QAyGK,SAAA8oF,GAAA,OAAAnkH,KAAAs4B,YAAAjH,IAAAiE,MAAG,SAAA8uF,EAAO3nH,GAAW,IAAA+7B,EAAA,OAAAnH,IAAAe,MAAA,SAAAiyF,GAAA,cAAAA,EAAAvuF,KAAAuuF,EAAAt2F,MAAA,OAER,OADxBqX,GAAW,GACX6+E,GAAiB,GAAOI,EAAAvuF,KAAA,EAAAuuF,EAAAt2F,KAAA,EAED4N,IAAcC,IAASn/B,EAAK,CAC/C6pD,aAAc,OACdC,QAAS,KACT1qB,QAAS,CACP2qB,OAAQ,8BAET,KAAD,EACgB,OAPdhuB,EAAQ6rF,EAAApwF,KAOZmR,GAAW,GAAOi/E,EAAAjwF,OAAA,SACXoE,GAAQ,QAAA6rF,EAAAvuF,KAAA,GAAAuuF,EAAA/nF,GAAA+nF,EAAA,SAEfj/E,GAAW,GACX6+E,GAAiB,GAEjB,yBAAAI,EAAAruF,UAAAouF,EAAA,oBAEHvrF,MAAA,KAAAriC,aAGK8tH,EAAc,SAAAC,GAAA,OAAAnkH,KAAAk4B,YAAAjH,IAAAiE,MAAG,SAAAkvF,EAAO/nH,GAAW,IAAA+7B,EAAA,OAAAnH,IAAAe,MAAA,SAAAqyF,GAAA,cAAAA,EAAA3uF,KAAA2uF,EAAA12F,MAAA,OAEf,OADxBqX,GAAW,GACX6+E,GAAiB,GAAOQ,EAAA3uF,KAAA,EAAA2uF,EAAA12F,KAAA,EAEDqO,IAAMR,IAASn/B,EAAK,CACvC6pD,aAAc,OACdC,QAAS,OACR,KAAD,EACgB,OAJd/tB,EAAQisF,EAAAxwF,KAIZmR,GAAW,GAAOq/E,EAAArwF,OAAA,SACXoE,GAAQ,QAAAisF,EAAA3uF,KAAA,GAAA2uF,EAAAnoF,GAAAmoF,EAAA,SAEfr/E,GAAW,GACX6+E,GAAiB,GACjB54F,QAAQC,IAAGm5F,EAAAnoF,IACX,yBAAAmoF,EAAAzuF,UAAAwuF,EAAA,oBAEH3rF,MAAA,KAAAriC,YAEK2hC,EAAU,SAAC17B,EAAaumB,GAC5B,IAAMo6B,EAAOviD,SAASC,cAAc,KACpCsiD,EAAK38C,KAAOhE,EACZ2gD,EAAK9nD,OAAS,SACd8nD,EAAKvR,SAAW7oB,EAChBnoB,SAAS6J,KAAKwhD,YAAY9I,GAC1BA,EAAKxD,QACLwD,EAAKjX,UAGP,MAAO,CACL0F,SA5GY,SAAA43E,EAAAC,EAAAE,EAAAC,GAAA,OAAAtkH,KAAA+4B,YAAAjH,IAAAiE,MAAG,SAAAoiC,EACfrzD,EACA6e,EACAygG,EACA3gG,GAAiB,IAAAwV,EAAA2tB,EAAAC,EAAAC,EAAA,OAAAh1B,IAAAe,MAAA,SAAAylC,GAAA,cAAAA,EAAA/hC,KAAA+hC,EAAA9pC,MAAA,cAAA8pC,EAAA9pC,KAAA,EAEMm2F,EAAQ,0BAADlxH,OACFkwB,EAAQ,KAAAlwB,OAAIqR,GAAErR,OACtC2wH,EAAY,SAAA3wH,OAAY2wH,EAAY,WAAY,KAElD,KAAD,EAJa,KAKF,QALNnrF,EAAQq/B,EAAA5jC,YAKF,IAARuE,OAAQ,EAARA,EAAU5e,MAAI,CAAAi+C,EAAA9pC,KAAA,SAQE,OAPZo4B,EAA6B,OAAR3tB,QAAQ,IAARA,OAAQ,EAARA,EAAUqD,QAAQ,uBACzCuqB,EAAoBpjC,GAAY,GAEhCmjC,GAAoC,KAAdC,IACxBA,EAAYD,EAAmBM,MAAKpB,EAAC,qBAA+B,CAAAruB,SAAA,KAAE,IAEpEqvB,EAAU/qD,OAAOke,IAAIktC,gBAAgBluB,EAAS5e,MAClDwrB,GAAW,GAAOyyB,EAAAzjC,OAAA,SACX+D,EAAQkuB,EAASD,IAAU,yBAAAyR,EAAA7hC,UAAA0hC,QAErC7+B,MAAA,KAAAriC,YAuFC0M,YACA40B,QAnFW,SAAA4sF,GAAA,OAAAjlH,KAAA64B,YAAAjH,IAAAiE,MAAG,SAAAqvF,EAAOtgH,GAAU,IAAAm0B,EAAA,OAAAnH,IAAAe,MAAA,SAAAwyF,GAAA,cAAAA,EAAA9uF,KAAA8uF,EAAA72F,MAAA,cAAA62F,EAAA72F,KAAA,EACRm2F,EAAQ,0BAADlxH,OAA2BmwB,IAASO,MAAK,KAAA1wB,OAAIqR,IAAM,KAAD,EAAlE,KACF,QADNm0B,EAAQosF,EAAA3wF,YACF,IAARuE,OAAQ,EAARA,EAAU5e,MAAI,CAAAgrG,EAAA72F,KAAA,eAAA62F,EAAAxwF,OAAA,SAAS94B,OAAOke,IAAIktC,gBAAwB,OAARluB,QAAQ,IAARA,OAAQ,EAARA,EAAU5e,OAAK,wBAAAgrG,EAAA5uF,UAAA2uF,QACtE9rF,MAAA,KAAAriC,YAiFCs1C,cA9DiB,SAAA+4E,EAAAC,GAAA,OAAAjlH,KAAAy4B,YAAAjH,IAAAiE,MAAG,SAAAyvF,EAAO/hG,EAAkB2nB,GAAe,IAAAnS,EAAA,OAAAnH,IAAAe,MAAA,SAAA4yF,GAAA,cAAAA,EAAAlvF,KAAAkvF,EAAAj3F,MAAA,cAAAi3F,EAAAj3F,KAAA,EACrCm2F,EAAQ,oCAADlxH,OACQgwB,EAAQ,aAAAhwB,OAAY23C,IACxD,KAAD,EAFa,KAGF,QAHNnS,EAAQwsF,EAAA/wF,YAGF,IAARuE,OAAQ,EAARA,EAAU5e,MAAI,CAAAorG,EAAAj3F,KAAA,eAAAi3F,EAAA5wF,OAAA,SAAiB,OAARoE,QAAQ,IAARA,OAAQ,EAARA,EAAU5e,MAAI,wBAAAorG,EAAAhvF,UAAA+uF,QAC1ClsF,MAAA,KAAAriC,YA0DCuhC,gBACAktF,UA3Ea,kBAAAtlH,KAAA24B,YAAAjH,IAAAiE,MAAG,SAAA4vF,IAAA,IAAA1sF,EAAA,OAAAnH,IAAAe,MAAA,SAAA+yF,GAAA,cAAAA,EAAArvF,KAAAqvF,EAAAp3F,MAAA,cAAAo3F,EAAAp3F,KAAA,EACO4N,IAAcC,IAAG,0BAAA5oC,OAAgCmwB,IAASb,OAAM,OAAM,KAAD,EAA9E,KACF,QADNkW,EAAQ2sF,EAAAlxF,YACF,IAARuE,OAAQ,EAARA,EAAU5e,MAAI,CAAAurG,EAAAp3F,KAAA,eAAAo3F,EAAA/wF,OAAA,SAAiB,OAARoE,QAAQ,IAARA,OAAQ,EAARA,EAAU5e,MAAI,wBAAAurG,EAAAnvF,UAAAkvF,QAC1CrsF,MAAA,KAAAriC,YAyECu1C,YA3Je,SAAAvP,EAAAC,GAAA,OAAAlqC,KAAA+lC,YAAAjH,IAAAiE,MAAG,SAAAiD,EAAO97B,EAAaumB,GAAgB,IAAAwV,EAAA6tB,EAAA,OAAAh1B,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,cAAA0K,EAAA1K,KAAA,EAC/Bu2F,EAAe7nH,GAAK,KAAD,EAA5B,KAEF,QAFN+7B,EAAQC,EAAAxE,YAEF,IAARuE,OAAQ,EAARA,EAAU5e,MAAI,CAAA6e,EAAA1K,KAAA,QACwC,OAApDs4B,EAAU/qD,OAAOke,IAAIktC,gBAAgBluB,EAAS5e,MAAK6e,EAAArE,OAAA,SAChD+D,EAAQkuB,EAASrjC,IAAS,wBAAAyV,EAAAzC,UAAAuC,QAEpCM,MAAA,KAAAriC,YAqJCw1C,WA1Ic,SAAAxQ,EAAAC,EAAAO,EAAAC,GAAA,OAAA9nC,KAAAmkC,YAAAjH,IAAAiE,MAAG,SAAA4G,EAAOz/B,EAAaumB,EAAkBE,EAAoB7e,GAAU,IAAA+gH,EAAA5sF,EAAA6tB,EAAA,OAAAh1B,IAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,cAAAoO,EAAApO,KAAA,EACjE4N,IAAcC,IAAG,iBAAA5oC,OAAuBkwB,EAAQ,UAAAlwB,OAASyJ,EAAG,QAAAzJ,OAAOqR,IAAM,KAAD,EAAjF,OAAL+gH,EAAKjpF,EAAAlI,KAAAkI,EAAApO,KAAA,EAEYu2F,EAAec,EAAMxrG,MAAM,KAAD,EAAnC,KACF,QADN4e,EAAQ2D,EAAAlI,YACF,IAARuE,OAAQ,EAARA,EAAU5e,MAAI,CAAAuiB,EAAApO,KAAA,QACwC,OAApDs4B,EAAU/qD,OAAOke,IAAIktC,gBAAgBluB,EAAS5e,MAAKuiB,EAAA/H,OAAA,SAChD+D,EAAQkuB,EAASrjC,GAAYvmB,IAAI,wBAAA0/B,EAAAnG,UAAAkG,QAE3CrD,MAAA,KAAAriC,YAmICwhC,SAjIY,SAAAurF,EAAAC,GAAA,OAAAnkH,KAAAi5B,YAAAjH,IAAAiE,MAAG,SAAA8Q,EAAO3pC,EAAaymB,GAAkB,IAAAkiG,EAAA5sF,EAAA,OAAAnH,IAAAe,MAAA,SAAAiU,GAAA,cAAAA,EAAAvQ,KAAAuQ,EAAAtY,MAAA,cAAAsY,EAAAtY,KAAA,EACjC4N,IAAcC,IAAG,iBAAA5oC,OAAuBkwB,EAAQ,UAAAlwB,OAASyJ,IAAO,KAAD,EAAxE,OAAL2oH,EAAK/+E,EAAApS,KAAAoS,EAAAtY,KAAA,EACYu2F,EAAec,EAAMxrG,MAAM,KAAD,EAAnC,OAAR4e,EAAQ6N,EAAApS,KAAAoS,EAAAjS,OAAA,SACC,OAARoE,QAAQ,IAARA,OAAQ,EAARA,EAAU5e,MAAI,wBAAAysB,EAAArQ,UAAAoQ,QACtBvN,MAAA,KAAAriC,YA8HC6uH,OArJU,SAAA3oF,GAAA,OAAAxoC,KAAAokC,YAAAjH,IAAAiE,MAAG,SAAAwD,EAAOr8B,GAAW,IAAA+7B,EAAA,OAAAnH,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,cAAAgL,EAAAjD,KAAA,EAAAiD,EAAAhL,KAAA,EAENqO,IAAMolD,KAAK/kF,GAAK,KAAD,EAAxB,OAAR+7B,EAAQO,EAAA9E,KAAA8E,EAAA3E,OAAA,SACa,MAApBoE,EAASnrB,QAAc,cAAA0rB,EAAAjD,KAAA,EAAAiD,EAAAuD,GAAAvD,EAAA,SAAAA,EAAA3E,OAAA,UAEvB,GAAK,yBAAA2E,EAAA/C,UAAA8C,EAAA,mBAEfD,MAAA,KAAAriC,e,qJCxCGyM,EAAyC,CAC7Ck0C,eAAgB,GAChBmuE,gBAAgB,EAChBC,gBAAiB,aACjB9rD,kBAAmB,SAACp1D,KACpBmhH,aAAc,aACdhG,cAAe,kBAAM,IAAInrH,MACzBoxH,aAAc,SAACC,KACfC,WAAY,IAAItxH,KAChBuyE,WAAY,IAAIvyE,KAChBuxH,WAAW,EACXC,aAAa,GAGTtG,EAAsB70C,wBAAcznE,GAM1C,SAASqyF,EAAoB/iG,GAA2C,IAAxCN,EAAQM,EAARN,SACtByf,EAAY0J,cAAZ1J,QACRrhB,EAA8BC,mBAAS,CACrC6mD,eAAgB,GAChBmuE,gBAAgB,EAChBM,WAAW,EACXD,WAAY,IAAItxH,KAChBuyE,WAAY,IAAIvyE,KAChBwxH,aAAa,IACbt1H,EAAAC,YAAAH,EAAA,GAPKy1H,EAAOv1H,EAAA,GAAEw1H,EAAUx1H,EAAA,GAuC1B,OAJAS,qBAAU,WACR+0H,EAAUj1H,wBAAC,GAAKg1H,GAAO,IAAEH,WAAmB,OAAPj0G,QAAO,IAAPA,OAAO,EAAPA,EAASu4D,eAAgBrD,WAAY,IAAIvyE,UAC7E,IAGDtC,cAACwtH,EAAoBv0C,SAAQ,CAC3Bn6E,MAAKC,wBAAA,GACAg1H,GAAO,IACVrsD,kBAlCoB,SAACp1D,GACrBA,IAAOyhH,EAAQ3uE,gBAAgB4uE,EAAUj1H,wBAAC,GAAKg1H,GAAO,IAAE3uE,eAAgB9yC,MAkCxEkhH,gBA/BkB,WACtBQ,EAAUj1H,wBAAC,GAAKg1H,GAAO,IAAER,gBAAgB,MA+BrCE,aAxBe,WACnBO,EAAUj1H,wBAAC,GAAKg1H,GAAO,IAAEF,WAAW,MAwBhCpG,cArBgB,WACpB,GAAwC,YAA7B,OAAP9tG,QAAO,IAAPA,OAAO,EAAPA,EAAS0pF,QAAQ0mB,gBAA6B,OAAO,IAAIztH,KAE3D,IAAM2xH,EAAWlkD,YAAwBgkD,EAAQl/C,WAAY,IAAIvyE,MAEjE,OAAO6vE,YAAQ4hD,EAAQH,WAAYliD,KAAKC,IAAIsiD,KAiB1CP,aA9Be,SAACC,GACpBK,EAAUj1H,wBAAC,GAAKg1H,GAAO,IAAED,YAAaH,QA8BlCzzH,SAEDA,M,uSCjFQ,SAASg0H,EAAmB1zH,GAAuC,IAApCnC,EAAKmC,EAALnC,MACxCuU,EAAkB,sDACtB,OAAQvU,EAAMokB,QACZ,KAAKosD,IAAyB1J,eAC5BvyD,EAAU,wDACV,MACF,KAAKi8D,IAAyBslD,UAC5BvhH,EAAU,uCACV,MACF,KAAKi8D,IAAyBulD,YAC5BxhH,EAAU,qEACV,MACF,KAAKi8D,IAAyBwlD,cAC5BzhH,EAAO,uEAAA3R,OAAuEuvE,YAC5EnyE,EAAM4Z,KAAKwiE,UACXp8E,EAAM4Z,KAAK+3D,UAEb,MAEF,KAAKnB,IAAyBylD,iBAC5B1hH,EAAU,mDAId,OACE5S,cAACgpC,IAAmB,CAACC,WAAW,QAAO/oC,SACrCF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAE0S,M,4DCpCnC0sB,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EA6DO,IAAMy0C,EAAc,SAAHv3C,GAAkE,IAADurC,EAAAwuC,EAAAg6C,EAAAC,EAA3D5jF,EAAQpwC,EAARowC,SAAU3pB,EAAOzmB,EAAPymB,QAAOwtG,EAAAj0H,EAAE2rB,gBAAQ,IAAAsoG,EAAG,KAAIA,EACtDnoF,EAAoBC,cAApBD,gBACAljB,EAAuBC,cAAvBD,mBACR+iB,EAAsCzrB,aAAY,SAAC7O,GAAgB,OAAKA,EAAM6K,WAAtEA,EAAOyvB,EAAPzvB,QAASvL,EAASg7B,EAATh7B,UAAW9S,EAAK8tC,EAAL9tC,MACpBm/C,EAAqBC,YAAmB,CAC9CC,kBAAmB,CAACC,IAAW+2E,iBADzBl3E,iBAIFxQ,EAAmBP,IAAW,CAClC9pC,KAAM8pC,MACNouC,MAAOpuC,MAAa+hB,KAAK,OAAQ,CAC/BC,GAAI,EACJ9sB,KAAM8K,MAAaC,SAAS,wCAE9B9mC,YAAa6mC,MACVC,SAAS,0CACT7pC,IAAI,GAAI,sFAIP8xH,EAAQ,CAAE9jH,IAAK,EAAGlP,MAAO,kBAAayrB,KAAMptB,cAACo4E,IAAK,KAClDw8C,EAAQ,CAAE/jH,IAAK,EAAGlP,MAAO,QAASyrB,KAAMptB,cAACoxF,IAAQ,KAGjDyjC,GACG,OAAPn4G,QAAO,IAAPA,OAAO,EAAPA,EAASo+D,UAA6C,OAAlC1xD,IAAqByvB,MAAMvmC,GAAcsiH,EAAM/jH,IAAM8jH,EAAM9jH,IAG7EikH,EAAgB,GAEkB,OAAlC1rG,IAAqByvB,MAAMvmC,GAE7BwiH,EAAc5wH,KAAK0wH,KAGR,OAAPl4G,QAAO,IAAPA,OAAO,EAAPA,EAASo+D,UAEXg6C,EAAc5wH,KAAK0wH,GAGrBE,EAAc5wH,KAAKywH,IAGrB,IAAM9nF,EAASC,YAAU,CACvBC,cAAe,CACbpqC,KAAsB,KAAT,OAAP+Z,QAAO,IAAPA,OAAO,EAAPA,EAASpK,IAAWuiH,EAAsB,OAAPn4G,QAAO,IAAPA,OAAO,EAAPA,EAAS/Z,KAClDk4E,OAAc,OAAPn+D,QAAO,IAAPA,OAAO,EAAPA,EAASm+D,QAAS,GACzBj1E,aAAoB,OAAP8W,QAAO,IAAPA,OAAO,EAAPA,EAAS9W,cAAe,IAEvConC,iBAAkBA,EAElBC,SAAS,SAADxC,GAAA,OAAAsB,KAAAxF,YAAAjH,IAAAiE,MAAE,SAAAiD,EAAOtoC,GAAM,OAAAohC,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OACrBvb,YACEmuD,YAAmB,CACjBjsE,KAAMzE,EAAOyE,KACbiD,YAAa1H,EAAO0H,YACpBi1E,MAAO38E,EAAO28E,MACdv/D,OAAQ2Q,IAAcssB,WACtBy3B,QAAStzD,EAASszD,QAClByK,UAAW/9D,EAAS+9D,UACpBtuD,SAAUA,EACV7Z,GAAIoK,EAASpK,GACbyoE,eAAgBr+D,EAASq+D,eACzBD,QAASp+D,EAASo+D,QAClB5wD,SAAUxN,EAASwN,SACnBsD,QAAS9Q,EAAS8Q,SAZpBohD,EAaG,SAAClyD,GACF4vB,EAAgB,6BAA2B,CAAEvrC,QAAS,YACtDkmB,QAEF,wBAAAyf,EAAAzC,UAAAuC,QACHM,MAAA,KAAAriC,cAGK+oC,EAAkBX,EAAlBW,cAEFunF,EAAoB,SAACj2H,GACzB0uC,EAAc,OAAQ1uC,IAGxB,OAAK0+C,EAGHx9C,cAACW,IAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SAChBQ,eAAA,QAAMusC,SAAUJ,EAAOU,aAAartC,SAAA,CAClCQ,eAACynC,IAAI,CAAAjoC,SAAA,EACDisB,GACAnsB,cAACm3C,IAAmB,CAAC/pB,KAAMptB,cAACg1H,IAAmB,IAAKxuG,MAAM,GAAEtmB,SAClD,OAAPwc,QAAO,IAAPA,GAAiB,QAAV69D,EAAP79D,EAASwN,gBAAQ,IAAAqwD,OAAV,EAAPA,EAAmB54E,QAGxB3B,cAAC4wF,IAAsB,CACrBrkE,MAAyB,QAApBgoG,EAAS,OAAP73G,QAAO,IAAPA,OAAO,EAAPA,EAAS+9D,iBAAS,IAAA85C,KAAI,IAAIjyH,MAAOy2B,WACxCu3C,IAAqB,QAAlBkkD,EAAS,OAAP93G,QAAO,IAAPA,OAAO,EAAPA,EAASszD,eAAO,IAAAwkD,KAAI,IAAIlyH,MAAOy2B,WACpC83D,SAAS,IAGX7wF,cAACi1H,IAAO,CACNzuG,MACExmB,cAACoB,IAAK,CACJR,GAAI,CACF4L,QAAS,OACTlL,cAAe,MACfwtB,eAAgB,SAChBvtB,WAAY,UACZrB,SAEY,OAAb40H,QAAa,IAAbA,OAAa,EAAbA,EAAehzH,KAAI,SAACy+E,GAAM,OACzBvgF,cAACk1H,EAAgB,CAEfp2H,MAAOyhF,EAAO1vE,IACdlP,MAAO4+E,EAAO5+E,MACdyrB,KAAMmzD,EAAOnzD,KACbrH,SAAU8mB,EAAO3uC,OAAOyE,MAAQ49E,EAAO1vE,IACvC5S,SAAU82H,GALLx0C,EAAO1vE,UAUpBuc,KAAMptB,cAAAC,WAAA,IACNk1H,SAAS,KAGVtoF,EAAO3uC,OAAOyE,OAASyyH,IAAYh9C,MAClCp4E,cAAAC,WAAA,CAAAC,SACEF,cAACi1H,IAAO,CACNzuG,MAAOxmB,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,mCACvCktB,KAAMptB,cAACo4E,IAAK,IACZ+8C,SACEz0H,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAAC0C,IAAS,CACRrE,MAAOuF,QAAQipC,EAAOS,QAAQutC,OAAShuC,EAAOQ,OAAOwtC,OACrDn5E,WAAS,EACTmC,WAAYgpC,EAAOS,QAAQutC,OAAShuC,EAAOQ,OAAOwtC,MAClDl5E,MAAM,qCACN8B,OAAO,SACP5E,KAAK,QACLZ,SAAU4uC,EAAOjuC,aACjBE,MAAO+tC,EAAO3uC,OAAO28E,MACrB95E,QAAQ,WACR6B,WAAY,CAAE2kD,UAAW,MAE3BvnD,cAACq1H,IAAmB,WAM5Br1H,cAAAC,WAAA,CAAAC,SACEF,cAACi1H,IAAO,CACNzuG,MAAOxmB,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,wBACvCktB,KAAMptB,cAACoxF,IAAQ,IACf+jC,SAAUn1H,cAACs1H,IAAmB,QAKpCt1H,cAACy1F,IAAqB,CAACjoE,QAAgB,OAAP9Q,QAAO,IAAPA,OAAO,EAAPA,EAAS8Q,UAEzCxtB,cAACi1H,IAAO,CACNzuG,MAAOxmB,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,+BACvCktB,KAAMptB,cAACu0F,IAAK,IACZ4gC,SACEn1H,cAAC0C,IAAS,CACRhB,WAAS,EACT4hF,WAAS,EACTpoC,KAAM,EACNqoC,QAAS,EACT5hF,MAAM,mDACN8B,OAAO,SACP5E,KAAK,cACLZ,SAAU4uC,EAAOjuC,aACjBE,MAAO+tC,EAAO3uC,OAAO0H,YACrB7E,QAAQ,WACR1C,MAAOuF,QAAQipC,EAAOS,QAAQ1nC,aAAeinC,EAAOQ,OAAOznC,aAC3D/B,WAAYgpC,EAAOS,QAAQ1nC,aAAeinC,EAAOQ,OAAOznC,oBAK9DumB,GAAYnsB,cAACu1H,IAAuB,CAAC74G,QAASA,IAC/Cre,GAAS2B,cAACk0H,EAAmB,CAAC71H,MAAOA,IACtCqC,eAACmuB,IAAa,CAACjuB,GAAI,CAAEkuB,eAAgB,UAAW5uB,SAAA,CAC9CF,cAAC+uB,IAAM,CAAChuB,QAAQ,OAAO4jB,QAAS,kBAAMisB,GAAS,IAAO1wC,SAAC,YAGvDF,cAACW,IAAG,IACJX,cAAC+uC,IAAa,CACZpsC,KAAK,SACL5B,QAAQ,YACRiuC,QAAS79B,EACTvP,KAAK,QACLqtC,iBAAiB,gBAAe/uC,SAEf,KAAT,OAAPwc,QAAO,IAAPA,OAAO,EAAPA,EAASpK,IAAW,YAAc,wBAlHftS,cAAC89C,IAAmB,KAkI9Co3E,EAAmB,SAAH/yH,GAA2E,IAArErD,EAAKqD,EAALrD,MAAO6C,EAAKQ,EAALR,MAAOyrB,EAAIjrB,EAAJirB,KAAMrH,EAAQ5jB,EAAR4jB,SAAU9nB,EAAQkE,EAARlE,SAClD8M,EAAQgW,cAEd,OACE/gB,cAAC2uB,IAAI,CACH/tB,GAAI,CAAE2wC,YAAa,EAAG7gC,OAAQqV,EAAQ,aAAA9kB,OAAgB8J,EAAME,QAAQiiB,QAAQI,MAAS,IAAKptB,SAE1FQ,eAACquB,IAAM,CACLpK,QAAS,kBAAM1mB,EAASa,IACxB8B,GAAI,CACF4L,QAAS,OACTlL,cAAe,SACfwtB,eAAgB,SAChBvtB,WAAY,SACZoC,MAAO,QACPiF,OAAQ,QACRqD,MAAO8Z,EAAWhb,EAAME,QAAQiiB,QAAQI,KAAOviB,EAAME,QAAQ4B,KAAK,MAClE3M,SAAA,CAEDktB,EACDptB,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAEyB,W,gNCnSrC29B,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAiBA,IAAM4N,EAA8B,CAClCC,WAAW,EACX9S,OAAO,EACPynF,UAAW,GACXE,yBAAqBrhF,GAGjBqM,EAAQC,YAAY,CACxBpS,KAAM,WACNqS,eACAS,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,GAIpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAIvBwjH,oBAAmB,SAAC3jH,EAAOE,GACzBF,EAAMV,WAAY,EAClBU,EAAMi0E,UAAY/zE,EAAOC,SAI3ByjH,mBAAkB,SAAC5jH,EAAOE,GACxBF,EAAMV,WAAY,EAClBU,EAAMi0E,UAAS,GAAA7kF,OAAA2W,YAAO/F,EAAMi0E,WAAS,CAAE/zE,EAAOC,WAGhD0jH,sBAAqB,SAAC7jH,EAAOE,GAC3BF,EAAMV,WAAY,EAElB,IAAM+zG,EAAiB/lH,iBAAO0S,EAAMi0E,WAAW,SAAClpE,GAAQ,OAAKA,EAAStK,KAAOP,EAAOC,WAEpFH,EAAMi0E,UAAYo/B,GAGpByQ,wBAAuB,SAAC9jH,EAAOE,GAC7BF,EAAMm0E,oBAAsBj0E,EAAOC,SAGrC4jH,2BAA0B,SAAC/jH,GACzBA,EAAMm0E,yBAAsBrhF,MAU3B,SAASkxH,IACd,OAAAtvF,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,IAAA/lB,EAAAgmB,EAAA+9B,EAAA/hD,EAAAmoC,EAAA,OAAAtrB,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgB80B,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAEd4N,IAAcC,IAA0B,sBAAsB,KAAD,EAA9EpD,EAAQC,EAAAxE,KAAAsiC,EACW/9B,EAAS5e,KAA1BpF,EAAM+hD,EAAN/hD,OAAQmoC,EAAI4Z,EAAJ5Z,KAAIlkB,EAAA6D,GAEZ9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACPurF,IAAmBnqF,QAAO,oBACqB,OAAlDlrB,EAASzP,EAAMwC,QAAQgiH,oBAAoB5qE,IAAOlkB,EAAArE,OAAA,oBAAAqE,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAItDjmB,EAASzP,EAAMwC,QAAQ1B,SAAQ40B,EAAAi+B,KAAS,yBAAAj+B,EAAAzC,UAAAuC,EAAA,mBAOvC,SAAS2+E,EAAYl6E,GAC1B,OAAA1E,YAAAjH,IAAAiE,MAAO,SAAAwD,IAAA,IAAAtmB,EAAAgmB,EAAAo+B,EAAApiD,EAAAxK,EAAA,OAAAqnB,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgBo1B,EAAAjD,KAAA,EAAAiD,EAAAhL,KAAA,EAEd4N,IAAcl2B,KAA0B,oBAAqBu3B,EAAS,CAC3FnB,QAAS,CAAEC,WAAW,KACrB,KAAD,EAFItD,EAAQO,EAAA9E,KAAA2iC,EAGWp+B,EAAS5e,KAA1BpF,EAAMoiD,EAANpiD,OAAQxK,EAAI4sD,EAAJ5sD,KAAI+uB,EAAAuD,GAEZ9nB,EAAMukB,EAAAhL,KAAAgL,EAAAuD,KACPwrF,IAAkBpqF,QAAO,oBAIK,OAHjClrB,EAASzP,EAAMwC,QAAQiiH,mBAAmBx9G,IAG1CwI,EAASu1G,EAAiB,OAAOhvF,EAAA3E,OAAA,oBAAA2E,EAAAhL,KAAA,iBAAAgL,EAAAjD,KAAA,GAAAiD,EAAA29B,GAAA39B,EAAA,SAIrCvmB,EAASzP,EAAMwC,QAAQ1B,SAAQk1B,EAAA29B,KAAS,yBAAA39B,EAAA/C,UAAA8C,EAAA,mBAOvC,SAASm+E,EAAe5yG,GAC7B,OAAAi0B,YAAAjH,IAAAiE,MAAO,SAAA4G,IAAA,IAAA1pB,EAAA,OAAA6e,IAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgBw4B,EAAArG,KAAA,EAAAqG,EAAApO,KAAA,EAEd4N,IAAcC,IAAG,wBAAA5oC,OAAkCqR,GAAM,CAC9Ew3B,QAAS,CAAEC,WAAW,KACrB,KAAD,EAFYK,EAAAlI,KAGDra,MACXpH,EAASzP,EAAMwC,QAAQkiH,sBAAsBpjH,IAG7CmO,EAASu1G,EAAiB,QAE1Bv1G,EAASzP,EAAMwC,QAAQ1B,UAAS,IACjCs4B,EAAApO,KAAA,gBAAAoO,EAAArG,KAAA,EAAAqG,EAAAG,GAAAH,EAAA,SAED3pB,EAASzP,EAAMwC,QAAQ1B,UAAS,IAAO,yBAAAs4B,EAAAnG,UAAAkG,EAAA,kBAK7C,SAAS6rF,EAAiBC,GACxB,OAAA1vF,YAAAjH,IAAAiE,MAAO,SAAA8Q,IAAA,IAAA5zB,EAAAy1G,EAAA,OAAA52F,IAAAe,MAAA,SAAAiU,GAAA,cAAAA,EAAAvQ,KAAAuQ,EAAAtY,MAAA,QACGvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQmiH,wBAAwBM,IACzCC,EAAe9lF,YAAW,WAC9B3vB,EAASzP,EAAMwC,QAAQoiH,8BACvBvlF,cAAc6lF,KACb,KAAM,KAAD,mBAAA5hF,EAAArQ,UAAAoQ,OAhFGrjC,MAAa,S,iCCvE5B,oCAuBemlH,IAbe,SAAH31H,GAAmD,IAA7CgmB,EAAKhmB,EAALgmB,MAAOtmB,EAAQM,EAARN,SACtC,OACEF,cAAC2uB,IAAI,CAAAzuB,SACHQ,eAAC4+C,IAAgB,CAAC32C,IAAG,gEAAkEzI,SAAA,CACrFF,cAACc,IAAU,CAACC,QAAQ,KAAK03C,WAAS,EAAAv4C,SAC/BsmB,IAEFtmB,S,gCCfT,SAAS0kC,EAAK3G,EAAcm4F,GAC1B,MAAM,GAANn1H,OAAUg9B,GAAIh9B,OAAGm1H,GAHnB,sGAMA,IAAMC,EAAa,QACNC,EAAkB,aAIlBt6D,EAAY,CACvB/9B,KAAMo4F,EACN77D,MAAO51B,EAAKyxF,EAAY,UACxBE,iBAAkB3xF,EAAKyxF,EAAY,sBACnC5jF,SAAU7N,EAAKyxF,EAAY,aAC3BG,oBAAqB5xF,EAAKyxF,EAAY,yBACtCp6D,cAAer3B,EAAKyxF,EAAY,mBAChCI,eAAgB7xF,EAAKyxF,EAAY,oBACjCK,OAAQ9xF,EAAKyxF,EAAY,YAGdtqC,EAAY,CACvB4qC,WAAY,eACZ3qC,YAAa,eACb4qC,QAAS,WACTz3D,QAAS,WACT03D,MAAO,YACP53D,QAAS,cACT63D,KAAM,QACNpqB,QAAS,OACTqqB,QAAS,OACThqH,WAAY,eAGDgxB,EAAiB,CAC5BE,KAAMq4F,EACNrxE,QAAS,CACP0X,IAAK/3B,EAAK0xF,EAAiB,QAC3BzmC,aAAcjrD,EAAK0xF,EAAiB,oBACpCr3D,QAASr6B,EAAK0xF,EAAiB,YAC/BpxE,KAAMtgB,EAAK0xF,EAAiB,UAE5BlyB,UAAWx/D,EAAK0xF,EAAiB,kBAEnCz4G,KAAM,CACJogB,KAAM2G,EAAK0xF,EAAiB,SAC5Bn0D,IAAKv9B,EAAK0xF,EAAiB,cAE7B1jH,QAAS,CACPqrB,KAAM2G,EAAK0xF,EAAiB,YAC5Bn0D,IAAKv9B,EAAK0xF,EAAiB,gBAC3Bl0D,OAAQx9B,EAAK0xF,EAAiB,mBAC9Bj0D,OAAQz9B,EAAK0xF,EAAiB,mBAC9Bj7F,SAAUuJ,EAAK0xF,EAAiB,sBAElCv4G,KAAM,CACJkgB,KAAM2G,EAAK0xF,EAAiB,SAC5BU,IAAKpyF,EAAK0xF,EAAiB,aAC3BjkH,aAAcuyB,EAAK0xF,EAAiB,2BAEtCx5G,OAAQ8nB,EAAK0xF,EAAiB,WAE9B15G,SAAUgoB,EAAK0xF,EAAiB,YAChCr7G,UAAW,CACTgjB,KAAM2G,EAAK0xF,EAAiB,mBAC5B77F,QAASmK,EAAK0xF,EAAiB,sBAE/Bt2D,UAAWp7B,EAAK0xF,EAAiB,wBACjCz2D,SAAUj7B,EAAK0xF,EAAiB,uBAChCtxB,gBAAiBpgE,EAAK0xF,EAAiB,qBACvCxxB,uBAAwBlgE,EAAK0xF,EAAiB,6BAEhD32G,QAAS,CACP4/C,OAAQ36B,EAAK0xF,EAAiB,2BAC9Bt2D,UAAWp7B,EAAK0xF,EAAiB,8BACjCxhH,cAAe8vB,EAAK0xF,EAAiB,kCACrCn3D,QAASv6B,EAAK0xF,EAAiB,4BAC/Bn7D,SAAUv2B,EAAK0xF,EAAiB,6BAChCv2C,aAAcn7C,EAAK0xF,EAAiB,iCACpC72G,cAAemlB,EAAK0xF,EAAiB,mCAGvC7kE,MAAO,CACLxzB,KAAM2G,EAAK0xF,EAAiB,UAC5Bh8G,OAAQsqB,EAAK0xF,EAAiB,iBAC9Bz0D,MAAOj9B,EAAK0xF,EAAiB,sBAC7Bx0D,SAAUl9B,EAAK0xF,EAAiB,sBAChCrxC,YAAargD,EAAK0xF,EAAiB,0BACnCW,gBAAiBryF,EAAK0xF,EAAiB,+BACvCv0D,YAAan9B,EAAK0xF,EAAiB,sBACnCY,iBAAkBtyF,EAAK0xF,EAAiB,qBACxC/lE,QAAS3rB,EAAK0xF,EAAiB,kBAC/BppB,aAActoE,EAAK0xF,EAAiB,qBAEpCa,UAAWvyF,EAAK0xF,EAAiB,qBACjCn2B,oBAAqBv7D,EAAK0xF,EAAiB,iCAI7CphH,KAAM,CACJ+oB,KAAM2G,EAAK0xF,EAAiB,SAC5Bc,QAASxyF,EAAK0xF,EAAiB,iBAC/B3hH,MAAOiwB,EAAK0xF,EAAiB,eAC7B1rE,KAAMhmB,EAAK0xF,EAAiB,cAC5Be,QAASzyF,EAAK0xF,EAAiB,aAC/BgB,SAAU1yF,EAAK0xF,EAAgB,0BAC/B/zB,QAAS39D,EAAK0xF,EAAiB,kBAEjCiB,UAAW,CACTt5F,KAAM2G,EAAK0xF,EAAiB,eAC5BkB,KAAM5yF,EAAK0xF,EAAiB,oBAC5BrgH,QAAS2uB,EAAK0xF,EAAiB,6BAC/BmB,YAAa7yF,EAAK0xF,EAAiB,kDACnC1rE,KAAMhmB,EAAK0xF,EAAiB,oBAC5BoB,WAAY9yF,EAAK0xF,EAAiB,2BAClCgB,SAAU1yF,EAAK0xF,EAAiB,uDAChC7/G,SAAUmuB,EAAK0xF,EAAiB,wBAChCl+B,QAASxzD,EAAK0xF,EAAiB,wBAEjCr4G,KAAM,CACJggB,KAAM2G,EAAK0xF,EAAiB,SAC5B7iH,MAAOmxB,EAAK0xF,EAAiB,eAC7B5iH,KAAMkxB,EAAK0xF,EAAiB,qBAC5BqB,SAAU/yF,EAAK0xF,EAAiB,+DAChCsB,QAAShzF,EAAK0xF,EAAiB,mBAEjC95G,QAAS,CACPyhB,KAAM2G,EAAK0xF,EAAiB,YAC5B1rE,KAAMhmB,EAAK0xF,EAAiB,kBAE9Bx3G,IAAK,CACHmf,KAAM2G,EAAK0xF,EAAiB,QAC5B1rE,KAAMhmB,EAAK0xF,EAAiB,cAG9Bl5G,aAAc,CACZ6gB,KAAM2G,EAAK0xF,EAAiB,iBAC5B1rE,KAAMhmB,EAAK0xF,EAAiB,sBAC5BuB,KAAMjzF,EAAK0xF,EAAiB,sBAE9Bh5G,SAAU,CACR2gB,KAAM2G,EAAK0xF,EAAiB,aAC5B1rE,KAAMhmB,EAAK0xF,EAAiB,kBAC5BuB,KAAMjzF,EAAK0xF,EAAiB,kBAE9Bv+F,UAAW,CACTkG,KAAM2G,EAAK0xF,EAAiB,gBAC5B77F,QAASmK,EAAK0xF,EAAiB,2B,iCCpJnC,2MAeMwB,EAAa,CAAC,MAAO,OAAQ,MAAO,MAAO,OAC3CC,EAAe,CAAC,MAAO,MAAO,MAAO,MAAO,QAC5CC,EAAc,CAAC,MAAO,QACtBC,EAAe,CAAC,MAAO,QACvBC,EAAoB,CAAC,MAAO,QAC5BC,EAAa,CAAC,OACdC,EAAmB,CAAC,OACpBC,EAAqB,CAAC,KAAM,OAE3B,SAASC,IAAmC,IAAvBC,EAAe9zH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAC5C,OAAO8zH,EAAQllG,MAAM,KAAKyQ,OAAS,GAG9B,SAAS00F,EAAYD,GAC1B,OAAOA,EAAQ3lD,UAAU2lD,EAAQE,YAAY,KAAO,GAAGhwH,QAAQ,YAAa,IAOvE,SAASiwH,EAAcH,GAC5B,IAAI9nD,EAEJ,OAAQ8nD,EAAQh5H,SAAS+4H,EAAYC,KACnC,KAAKT,EAAWv4H,SAAS+4H,EAAYC,IACnC9nD,EAAS,QACT,MACF,KAAKsnD,EAAax4H,SAAS+4H,EAAYC,IACrC9nD,EAAS,QACT,MACF,KAAKunD,EAAYz4H,SAAS+4H,EAAYC,IACpC9nD,EAAS,OACT,MACF,KAAKwnD,EAAa14H,SAAS+4H,EAAYC,IACrC9nD,EAAS,QACT,MACF,KAAKynD,EAAkB34H,SAAS+4H,EAAYC,IAC1C9nD,EAAS,aACT,MACF,KAAK0nD,EAAW54H,SAAS+4H,EAAYC,IACnC9nD,EAAS,MACT,MACF,KAAK2nD,EAAiB74H,SAAS+4H,EAAYC,IACzC9nD,EAAS,YACT,MACF,KAAK4nD,EAAmB94H,SAAS+4H,EAAYC,IAC3C9nD,EAAS,cACT,MACF,QACEA,EAAS6nD,EAAYC,GAGzB,OAAO9nD,EAYF,SAASxd,EAAaslE,GAC3B,IAAI1f,EACJ,OAAQ6f,EAAcH,IACpB,IAAK,QACH1f,EAAQ74G,cAAC24H,IAAY,IACrB,MACF,IAAK,QACH9f,EAAQ74G,cAACq5C,IAAmB,IAC5B,MACF,IAAK,OAGL,IAAK,QAGL,IAAK,aACHw/D,EAAQ74G,cAACy5C,IAAc,IACvB,MACF,IAAK,MACHo/D,EAAQ74G,cAAC44H,IAAmB,IAC5B,MACF,IAAK,YAGL,IAAK,cACH/f,EAAQ74G,cAAC24H,IAAY,IACrB,MACF,QACE9f,EAAQ74G,cAACy5C,IAAc,IAE3B,OAAOo/D,EAoCF,SAASggB,EAAenvH,EAAeovH,GAC5C,GAAc,IAAVpvH,EAAa,MAAO,UACxB,IACEqvH,EAAKD,GAAgB,EAErB70H,EAAIytE,KAAKG,MAAMH,KAAKn4C,IAAI7vB,GAASgoE,KAAKn4C,IAHhC,MAIR,OAAOnO,YAAY1hB,EAAQgoE,KAAKsnD,IAJxB,IAI+B/0H,IAAIg1H,QAAQF,IAAO,IAFhD,CAAC,QAAS,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAEQ90H,K,wMCvJxEq7B,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAcA,IAOM0N,EAAQC,YAAY,CACxBpS,KAAM,YACNqS,aATmC,CACnCC,WAAW,EACX9S,OAAO,EACP66H,WAAY,GACZC,KAAM,IAMNxnH,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,GAIpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAIvBonH,cAAa,SAACvnH,EAAOE,GACnBF,EAAMV,WAAY,EAClBU,EAAMqnH,WAAannH,EAAOC,SAG5BqnH,iBAAgB,SAACxnH,EAAOE,GACtB,IAAMy4D,EAAUz4D,EAAOC,QACjBsnH,EAAex3H,cAAI+P,EAAMqnH,YAAY,SAAClM,GAC1C,OAAIA,EAAO16G,KAAOk4D,GAChBwiD,EAAO5yF,MAAO,EACP4yF,GAEFA,KAGTn7G,EAAMqnH,WAAaI,MAMVtoH,MAAa,QAGrB,IAAQqoH,EAAqBroH,EAAMwC,QAA3B6lH,iBAIR,SAASE,EAAiBljH,EAAwB8iH,GACvD,OAAA5yF,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,IAAA/lB,EAAAgmB,EAAA+9B,EAAA5gD,EAAAnB,EAAA,OAAA6c,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgB80B,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAEdqO,IAAMR,IAAG,iBAAA5oC,OACbu4H,IAAanjH,GAAU0iB,WAAWzuB,cAAa,UAAArJ,OAASk4H,IACzE,KAAD,EAFK1yF,EAAQC,EAAAxE,KAAAsiC,EAGY/9B,EAAS5e,KAA3BjE,EAAK4gD,EAAL5gD,MAAOnB,EAAM+hD,EAAN/hD,OAAMikB,EAAA6D,GACb9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACPkvF,IAAoB9tF,QAAO,oBACe,OAA7ClrB,EAASzP,EAAMwC,QAAQ4lH,cAAcx1G,IAAQ8iB,EAAArE,OAAA,oBAGR,OAArC5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,KAAK40B,EAAArE,OAAA,oBAAAqE,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAIzCjmB,EAASzP,EAAMwC,QAAQ1B,SAAQ40B,EAAAi+B,KAAS,yBAAAj+B,EAAAzC,UAAAuC,EAAA,mBAOvC,IAAMkzF,EAAe,SAACpnH,GAAU,OAAK,SAAC0yD,GAC3C,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAAwD,IAAA,OAAAzH,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,cAAAgL,EAAAjD,KAAA,EAAAiD,EAAAhL,KAAA,EAEoBqO,IAAMR,IAAG,qBAAA5oC,OAA+BqR,IAAM,KAAD,EAAtD00B,EAAA9E,KACDra,MACXm9C,EAAU1yD,GACX00B,EAAAhL,KAAA,eAAAgL,EAAAjD,KAAA,EAAAiD,EAAAuD,GAAAvD,EAAA,iCAAAA,EAAA/C,UAAA8C,EAAA,qB,iCCjGP,8DAyBO,SAAS4yF,EAAMC,GACpB,OAAOC,IAAQD,GAAQnpD,OAAO,W,sSCMnB+rB,EAAqB,SAAHh8F,GAMC,IAADs5H,EAL7BzjH,EAAQ7V,EAAR6V,SACAzV,EAAEJ,EAAFI,GACAV,EAAQM,EAARN,SACAy/C,EAAMn/C,EAANm/C,OACG5wC,EAAKc,YAAArP,EAAAsP,GAER,OACE9P,cAACk9C,IAAan+C,wBAAA,CACZ4gD,OAAQA,EACRn5B,MAAOnQ,EAASxX,KAChB+B,GAAE7B,YAAA,GAAO6B,IACLmO,GAAK,IACTswC,UACEr/C,cAACc,IAAU,CAACC,QAAQ,UAASb,SAC3BF,cAAA,OAAK+5H,wBAAyB,CAAEC,OAAQ,QAG5Ct0F,UAAWrvB,EAAS4jH,IAAI/5H,SAExBF,cAAC6mB,IAAS,CAACjmB,GAAI,CAAEg8B,EAAG,GAAI18B,SACwC,QADxC45H,EACrBI,YAAQ7jH,EAAS0lF,YAAY,SAAC7hF,GAAS,OAAKA,EAAEigH,yBAAe,IAAAL,OAAA,EAA7DA,EAA+Dh4H,KAAI,SAACs4H,EAAOvmH,GAC1E,IAAM4oF,EAA+B,KAAd29B,EAAMvpH,IAE7B,OACE7Q,cAACq6H,EAAe,CACd59B,eAAgBA,EAChB29B,MAAOA,EACPvmH,MAAOA,EAAM3T,SAGZk6H,EAAMt7H,MAAMgD,KAAI,SAACod,EAAgBjb,GAChC,OACEjE,cAACs6H,EAAoB,CACnB79B,eAAgBA,EAChBv9E,OAAQA,EAAOhf,SAGdA,EAASgf,EAAQu9E,EAAgBx4F,IAAE,iBAAAhD,OAFdie,EAAO5M,GAAKrO,QAPnC4P,YA6BbwmH,EAAkB,SAAHl4H,GAA0E,IAApEi4H,EAAKj4H,EAALi4H,MAAO39B,EAAct6F,EAAds6F,eAAgB5oF,EAAK1R,EAAL0R,MAAO3T,EAAQiC,EAARjC,SACvD,OAAOu8F,EACL/7F,eAACC,IAAG,CAAAT,SAAA,CACFF,cAACu6H,EAAuB,CACtB/zG,MAAOxmB,cAAA,OAAK+5H,wBAAyB,CAAEC,OAAQI,EAAMt7H,MAAM,GAAG07H,qBAC9Dr3D,YAAY,EACZtvD,MAAOA,IAET7T,cAACy3D,IAAK,CAAC72D,GAAI,CAAE+C,MAAO,OAAQ2M,SAAU,UAAWpQ,SAC/CF,cAACy6H,IAAc,CAAAv6H,SACbQ,eAAC02G,IAAK,CAACx1G,KAAK,QAAO1B,SAAA,CACjBQ,eAACg6H,IAAS,CAAAx6H,SAAA,CACRF,cAAC26H,IAAS,IACTP,EAAMt7H,MAAM,GAAG87H,WAAW94H,KAAI,SAAC+4H,GAAY,OAC1Cn6H,eAACi6H,IAAS,CAAkBG,MAAM,SAAQ56H,SAAA,CACvC,IACA26H,EAAQl5H,QAFKk5H,EAAQvoH,UAM5BtS,cAAC+6H,IAAS,CAAA76H,SAAEA,cAMpBF,cAAAC,WAAA,CAAAC,SAAGA,KAQDo6H,EAAuB,SAAHl4H,GAAyE,IAAnE8c,EAAM9c,EAAN8c,OAAQu9E,EAAcr6F,EAAdq6F,eAAgBv8F,EAAQkC,EAARlC,SACtD,OAAIu8F,EAEA/7F,eAACs6H,IAAQ,CAAA96H,SAAA,CACPF,cAAC26H,IAAS,CAAC/5H,GAAI,CAAE+O,aAAc,qBAAsBzP,SACnDQ,eAACI,IAAU,CAACC,QAAQ,QAAOb,SAAA,CACxBgf,EAAOmc,SAAU,IACjBnc,EAAOikD,YACNnjE,cAACc,IAAU,CAACC,QAAQ,YAAYgN,UAAW,OAAQ9B,MAAM,QAAO/L,SAAC,WAMtEA,KAIAF,cAAAC,WAAA,CAAAC,SAAGA,KASCq6H,EAA0B,SAAHjtH,GAIC,IAHnCkZ,EAAKlZ,EAALkZ,MACA28C,EAAU71D,EAAV61D,WACK71D,EAALuG,MAEA,OACEnT,eAACU,IAAK,CACJqB,UAAW,MACXk+C,aAAa,SACbp/C,WAAY,SACZF,IAAI,MACJT,GAAI,CAAEg5B,GAAI,EAAG/4B,GAAI,GAAIX,SAAA,CAErBF,cAACW,IAAG,CACFC,GAAI,CACFkL,gBAAiB,UACjBnI,MAAO,GACPiF,OAAQ,GACR+C,aAAc,SAGlBjL,eAACI,IAAU,CAACC,QAAQ,YAAWb,SAAA,CAC5BsmB,EACA28C,GACCnjE,cAACc,IAAU,CAACC,QAAQ,YAAYgN,UAAW,OAAQ9B,MAAM,QAAO/L,SAAC,c,gJCpK5D,SAASuB,EAAQjB,GAAyD,IAAtDuB,EAAKvB,EAALuB,MAAOF,EAAOrB,EAAPqB,QAASG,EAAQxB,EAARwB,SAAa+M,EAAKc,YAAArP,EAAAsP,GACnE,OACE9P,cAAC0C,IAAS3D,wBAAA,CAAC+E,QAAM,EAAChF,MAAOiD,EAAO9D,SAAU,SAACqF,GAAC,OAAKtB,EAASsB,EAAEC,OAAOzE,SAAYiQ,GAAK,IAAA7O,SACjF2B,EAAQC,KAAI,SAACy+E,GAAM,OAClBvgF,cAACoE,IAAQ,CAAoBtF,MAAOyhF,EAAOzhF,MAAMoB,SAC9CqgF,EAAO5+E,OADK4+E,EAAOzhF,e,iCCf9B,oBAOeumD,IAFS,WAAH,OAAS2S,qBAAWw1D,O,otBCmCnCyN,EAAepwH,YAAO4uB,IAAP5uB,EAAiB,SAAArK,GAAQA,EAALuK,MAAK,MAAQ,CACpDyB,QAAS,OACTjL,WAAY,aACZ8K,aAAc,EACdX,QAAS,MAUEupH,EAAU,SAAH9yH,GAAqD,IAA/CqkB,EAAKrkB,EAALqkB,MAAO2uG,EAAQhzH,EAARgzH,SAAU/nG,EAAIjrB,EAAJirB,KAAMxsB,EAAEuB,EAAFvB,GAC/C,OACEF,eAACu6H,EAAY,CAACr6H,GAAE7B,YAAA,GAAO6B,GAAKV,SAAA,CACzBktB,GAAQptB,cAACutF,IAAY,CAAC3sF,GAAI,CAAE4rD,SAAU,GAAIjb,YAAa,GAAIrxC,SAAEktB,IAC9DptB,cAAC05B,IAAY,CACXG,yBAA0B,CAAE9rB,UAAW,OACvC4rB,uBAAwB,CAAE5rB,UAAW,OACrCmf,QAAS1G,EACTta,UAAWipH,QAWN1/B,EAAwB,SAAHrzF,GAAoD,IAA9CorB,EAAOprB,EAAPorB,QAASttB,EAAQkC,EAARlC,SAC/C,OACEF,cAACi1H,EAAO,CACNzuG,MACE9lB,eAACI,IAAU,CAACC,QAAQ,YAAWb,SAAA,EACrB,OAAPstB,QAAO,IAAPA,OAAO,EAAPA,EAAS0tG,OAAQ,QAAU,4BAA4B,IAAS,OAAP1tG,QAAO,IAAPA,OAAO,EAAPA,EAASE,UAAW,IACtE,OAAPF,QAAO,IAAPA,OAAO,EAAPA,EAASG,YAGdP,MAAa,OAAPI,QAAO,IAAPA,OAAO,EAAPA,EAAS0tG,OAAQl7H,cAACk/E,IAAO,CAACjzE,MAAM,cAAiBjM,cAACw/D,IAAM,IAC9D21D,SACEn1H,cAACc,IAAU,CAACiN,UAAU,MAAMhN,QAAQ,QAAOb,SACxCA,OAWEo0F,EAA0B,SAAHhnF,GAA0C,IAApCkgB,EAAOlgB,EAAPkgB,QACxC,OACExtB,cAACi1H,EAAO,CACNzuG,MACExmB,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAA,6BAAAe,OACQ,OAAPusB,QAAO,IAAPA,OAAO,EAAPA,EAASE,UAAS,KAAAzsB,OAAW,OAAPusB,QAAO,IAAPA,OAAO,EAAPA,EAASG,YAGjEP,KAAMptB,cAACw/D,IAAM,OAYNp3B,EAAiB,SAAH56B,GAA4D,IAAtDgZ,EAAKhZ,EAALgZ,MAAO4G,EAAI5f,EAAJ4f,KAAMltB,EAAQsN,EAARtN,SAAUU,EAAE4M,EAAF5M,GACtD,OACEZ,cAACi1H,EAAO,CACNzuG,MAAOxmB,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAEsmB,IACxC4G,KAAMA,EACN+nG,SACEn1H,cAACc,IAAU,CAACiN,UAAU,MAAMhN,QAAQ,QAAOb,SACxCA,IAGLU,GAAE7B,YAAA,GAAO6B,MAaFgwF,EAAyB,SAAHljF,GAMC,IALlCxN,EAAQwN,EAARxN,SACAqsB,EAAK7e,EAAL6e,MACA+jD,EAAG5iE,EAAH4iE,IACAugB,EAAOnjF,EAAPmjF,QACAC,EAAepjF,EAAfojF,gBAGMwE,GADcjsE,cAAZ1J,QACWwwD,YAAY,IAAI7tE,KAAQguE,IAC3C,OACE5vE,eAAAT,WAAA,CAAAC,SAAA,EACI4wF,GAAmB9wF,cAACyiF,IAAkB,IACxCziF,cAACi1H,EAAO,CACNzuG,MACExmB,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAC5B4wE,YAAavkD,EAAO+jD,EAAK,kCAG9BljD,KAAMptB,cAACgjF,IAAU,IACjBmyC,SACEn1H,cAAAC,WAAA,CAAAC,UACIo1F,GACA50F,eAAAT,WAAA,CAAAC,SAAA,CACEQ,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAC1B,IACA2wF,GACCnwF,eAAA,QAAAR,SAAA,CAAM,uBACcuwB,YAAM0hD,YAAQ5lD,GAAQ,KAAK,MAAIsmD,YAAMV,YAAQ5lD,EAAO,KAAM,OAE7E,OAEJrsB,aAUJmjF,EAAwB,SAAHz1E,GAAsB,IAAbhQ,EAAKqP,OAAAC,OAAA,IAAAC,YAAAS,OAC9C,OACE5N,cAACi1H,EAAO,CACNzuG,MAAOxmB,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,gBACvCktB,KAAMptB,cAACu0F,IAAK,IACZ4gC,SAAUn1H,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAEtC,EAAMsC,cAKtCq1F,EAAyB,SAAHznF,GAAsB,IAAblQ,EAAKqP,OAAAC,OAAA,IAAAC,YAAAW,OACvC5N,EAAoBtC,EAApBsC,SAAUsmB,EAAU5oB,EAAV4oB,MAClB,OACExmB,cAACi1H,EAAO,CACNzuG,MAAOxmB,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAEsmB,IACxC4G,KAAMptB,cAACm7H,IAAU,IACjBhG,SAAUn1H,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAEA,OAKlCw1F,EAAwB,SAAHznF,GAAsB,IAAbrQ,EAAKqP,OAAAC,OAAA,IAAAC,YAAAc,OACtC/N,EAAoBtC,EAApBsC,SAAUsmB,EAAU5oB,EAAV4oB,MAClB,OACExmB,cAACi1H,EAAO,CACNzuG,MAAOxmB,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAEsmB,IACxC4G,KAAMptB,cAACgpE,IAAO,IACdmsD,SAAUn1H,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAEA,OAkBlCmxF,EAAsB,WACjC,OACE3wF,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAC3BF,cAAA,UAAAE,SAAQ,qBAAsB,yBAC9BF,cAAA,SAAM,wEAMCm3C,EAAsB,SAAH5oC,GAAsB,IAAb3Q,EAAKqP,OAAAC,OAAA,IAAAC,YAAAoB,OACpCiY,EAA0B5oB,EAA1B4oB,MAAatmB,GAAatC,EAAnBwvB,KAAmBxvB,EAAbsC,UACrB,OACEF,cAACi1H,EAAO,CACNzuG,MAAOA,EACP4G,KAAM,KACN+nG,SAAUn1H,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAEA,OAyB1C,SAAS8oC,EAAmBl6B,GAAiD,IAA9Cm6B,EAAUn6B,EAAVm6B,WAAY/oC,EAAQ4O,EAAR5O,SAChD,OACEF,cAACi1H,EAAO,CACNzuG,MACExmB,cAAAC,WAAA,CAAAC,SACkB,UAAf+oC,EACCjpC,cAACo7H,IAAiB,CAACx6H,GAAI,CAAEiN,EAAG,EAAG,mBAAoB,CAAE0jC,YAAa,IAAMrxC,SACrEA,IAGHF,cAAC+sB,IAAK,CAACC,SAAUic,EAAYroC,GAAI,CAAEiN,EAAG,EAAG,mBAAoB,CAAE0jC,YAAa,IAAMrxC,SAC/EA,MAKTktB,KAAM,OASL,IAAMgqB,EAAsB,SAAHikF,GAA6C,IAAvC1qG,EAAK0qG,EAAL1qG,MACpC,OAAa,MAATA,GAAiC,GAAhBA,EAAMjsB,OAAoB1E,cAAAC,WAAA,IAG7CD,cAACi1H,EAAO,CACNzuG,MAAOxmB,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,sBACvCktB,KAAMptB,cAACqoC,IAAU,IACjB8sF,SAAUn1H,cAAC0wB,IAAsB,CAACC,MAAOA,OASlCmkE,EAAuB,SAAHwmC,GAA+C,IAAzC/gF,EAAM+gF,EAAN/gF,OACrC,OAAc,MAAVA,GAAmC,GAAjBA,EAAO71C,OAAoB1E,cAAAC,WAAA,IAG/CD,cAACi1H,EAAO,CACNzuG,MAAOxmB,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,sBACvCktB,KAAMptB,cAACqoC,IAAU,IACjB8sF,SACEn1H,cAACoB,IAAK,CAACC,IAAK,EAAEnB,SACL,OAANq6C,QAAM,IAANA,OAAM,EAANA,EAAQz4C,KAAI,SAAC86B,GAAC,OACb58B,cAAC+xB,IAAa,CAACvU,UAAWof,GAAQA,EAAEtqB,a,iCC7TzC,SAAS+lE,EAAYwC,GAAsC,IAAvBhiC,EAAap0C,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KACzD,GAAIo2E,GAA0B,KAAjBA,EAAMtwE,OAAe,CAEhC,IAAMuuC,EAAmB,OAAL+hC,QAAK,IAALA,OAAK,EAALA,EAAOtwE,OAAO9B,QAAQ,OAAQ,IAClD,MAAc,OAAVowC,GACa,OAAXC,QAAW,IAAXA,OAAW,EAAXA,EAAayiF,WAAW,SACnBziF,EAAYrwC,QAAQ,sCAAuC,kBAE3DqwC,EAAYrwC,QAAQ,+BAAgC,eAInD,OAALoyE,QAAK,IAALA,OAAK,EAALA,EAAOtwE,OAAO9B,QAAQ,OAAQ,KAEvC,MAAO,GAdT,mC,iCCAA,mCA+FespC,IAjFc,WAC3B,IAAMgmB,EAAmBC,qBAAWC,KAKpC,SAASujE,IACP,GAAgC,OAAZ,OAAhBzjE,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB19C,QAAtB,CACA,IAAIuwC,EAA4B,GAOhC,OALgB,OAAhBmN,QAAgB,IAAhBA,KAAkB19C,OAAOvY,KAAI,SAACs6B,GAAqB,OACjDA,EAAM5X,SAAS1iB,KAAI,SAACyY,GAClB+9C,IAAgC/9C,EAASqwC,SAGtCA,GA0DT,MAAO,CACL6wE,YA3BF,SAAqBtzG,EAAkB7V,EAAY8Z,GACjD,IAAM2L,EAAYyjG,IAClB,OAAgB,OAATzjG,QAAS,IAATA,OAAS,EAATA,EAAW54B,QAChB,SAACmpC,GAAC,OAAKA,EAAEngB,WAAaA,IAAamgB,EAAEh2B,KAAOA,GAAMg2B,EAAElc,UAAYA,MAChE,IAwBFovG,eACAE,0BAvDF,WAAoE,IAADrjE,EAC7DzN,EAAqC,GAmBzC,OAjBgB,OAAhBmN,QAAgB,IAAhBA,GAAwB,QAARM,EAAhBN,EAAkB19C,cAAM,IAAAg+C,GAAxBA,EAA0Bv2D,KAAI,SAACs6B,GAC7BA,EAAM5X,SAAS1iB,KAAI,SAACu6B,GAClBA,EAAa7X,SAAS1iB,KAAI,SAACyY,GACzB,GAAyB,OAArBA,EAAQiK,SAOV,OAAOjK,EAAQqJ,MACZzkB,QAAO,SAAC2yB,GAAoB,OAAKA,EAAMnvB,OAAS2lB,IAAkB4K,YAClEpxB,KAAI,SAACgwB,GAAK,OAAK84B,EAAK1mD,KAAK4tB,MAR5BvX,EAAQiK,SAAS1iB,KAAI,SAAC0Y,GAA4B,OAChDA,EAAWoJ,MACRzkB,QAAO,SAAC2yB,GAAoB,OAAKA,EAAMnvB,OAAS2lB,IAAkB4K,YAClEpxB,KAAI,SAACgwB,GAAK,OAAK84B,EAAK1mD,KAAK4tB,kBAU/B84B,GAoCPjV,cApBF,SAAuBxpB,GAErB,IAAIwvG,EAA4C,OAAhB5jE,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB9/C,KAElD0jH,EAA0BxyG,aAAa4O,UAAU7zB,KAAKioB,GAEtDwvG,EAA0BrgH,OAASC,IAAoBya,WAEvC,OAAhB+hC,QAAgB,IAAhBA,KAAkB38C,WAChB28C,EAAiBx9C,QACjBohH,GACA,EACgB,OAAhB5jE,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBv9C,gB,wOCzElB43C,EAAgBvnD,YAAO/J,IAAP+J,EAAmB,SAAArK,GAAQA,EAALuK,MAAK,MAAQ,CACvD2B,WAAY,SACZ4D,SAAU,SACVisB,aAAc,WACdrO,SAAU,QACV1hB,QAAS,YAiBI,SAASovH,EAAez5H,GAUb,IATxBwiB,EAAOxiB,EAAPwiB,QACA6B,EAAKrkB,EAALqkB,MACAlU,EAAEnQ,EAAFmQ,GACA0gD,EAAM7wD,EAAN6wD,OACAyd,EAAMtuE,EAANsuE,OACAt/D,EAAShP,EAATgP,UACAxO,EAAIR,EAAJQ,KACA/B,EAAEuB,EAAFvB,GACGmO,EAAKc,YAAA1N,EAAA2N,GAEA6P,EAAY0J,cAAZ1J,QAER,OACE3f,cAACumB,IAAUxnB,YAAA,CACT4gD,OACE3/C,cAACozD,IAAS,CACRjiD,UAAWA,EACX6hD,OAAQA,EACRruC,QAASA,EACT0uC,SAAUrzD,cAAC+yD,IAAe,CAACpwD,KAAMA,EAAMqwD,QAAQ,MAGnDxsC,MACExmB,cAACymB,IAAO,CAACD,MAAOA,EAAMtmB,SACpBF,cAACoyD,EAAa,CAACrxD,QAAQ,QAAQ2xD,QAAM,EAAAxyD,SAClCsmB,MAIP64B,UACE3+C,eAAAT,WAAA,CAAAC,SAAA,CACGuwE,GAAUzwE,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAEuwE,KAClC,OAAP9wD,QAAO,IAAPA,OAAO,EAAPA,EAASuX,cAAeC,IAAWC,OAClC12B,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAAC,WAASoS,QAI7C1R,GAAE7B,YAAA,CAAI2M,QAAS,OAAU9K,IACrBmO,I,gJCtEVuwB,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EA0Be,SAASu4H,EAAer7H,GAA0C,IAAD2B,EAAtCjC,EAAQM,EAARN,SAAUU,EAAEJ,EAAFI,GAClDilC,EAAmFC,cAAlEgU,GAAFjU,EAAPE,QAAiBF,EAARiU,UAAU3oC,EAAS00B,EAAT10B,UAAW60B,EAAaH,EAAbG,cAA8BiU,GAAFpU,EAAbkU,cAAyBlU,EAAVoU,YACpE37C,EAA0BC,mBAA+B,MAAKC,EAAAC,YAAAH,EAAA,GAAvDw9H,EAAKt9H,EAAA,GAAEu9H,EAAQv9H,EAAA,GACd8tC,EAAoBC,cAApBD,gBACR4R,EAA0C70B,cAAlCuO,EAAUsmB,EAAVtmB,WAAYy3F,EAAiBnxE,EAAjBmxE,kBAyDpB,OANApwH,qBAAU,WACJ+mC,GACFsG,EAAgB,6CAAwC,CAAEvrC,QAAS,YAEpE,CAACilC,IAGFtlC,eAACC,IAAG,CAACC,GAAE7B,YAAA,GAAO6B,GAAKV,SAAA,CAChBA,GAzDc,SAAAuqC,GAAA,OAAAtoC,KAAAokC,YAAAjH,IAAAiE,MAAG,SAAAiD,EAAOvT,GAAoB,OAAAqM,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,UAC1CqzF,IAAoB,CAAD3oF,EAAA1K,KAAA,QAGnB,OAFHsQ,EAAgB6xB,IAAwB,CACtCp9D,QAAS,YACR2lC,EAAArE,OAAA,iBAAAqE,EAAA6D,GAIGtX,EAAM3B,UAASoV,EAAA1K,KAAA0K,EAAA6D,KAChBhZ,IAAchJ,OAAKme,EAAA6D,KACnBhZ,IAAc6nB,OADK,EACC1S,EAAA6D,KAGpBhZ,IAAc+nB,QAAO,kBAFR,OAAhByiF,EAAS9oG,GAAOyT,EAAArE,OAAA,mBAGO,OAAvB94B,OAAOyd,KAAKiM,EAAMvoB,KAAKg8B,EAAArE,OAAA,wBAGnBpP,EAAMxB,KAAK,CAADiV,EAAA1K,KAAA,SAST,OARHie,EACEhnB,EAAM/B,MAAMyV,WACZ1T,EAAMhC,SACNgC,EAAM2T,YAAcxV,IAASyV,iBAAmB5T,EAAM9B,SACtD8B,EAAM3gB,IACNqvB,MAAK,WACD/J,GACJnX,YAAS44G,aAAkBpmG,EAAM3gB,QAChCo0B,EAAArE,OAAA,kBAOF,OAHHyX,EAAS7mB,EAAM3gB,GAAI8e,IAASO,OAAOgQ,MAAK,WAClC/J,GACJnX,YAAS44G,aAAkBpmG,EAAM3gB,QAChCo0B,EAAArE,OAAA,sBAGHzK,EAAW,CAAD8O,EAAA1K,KAAA,gBAAA0K,EAAArE,OAAA,kBAEd5hB,YACEi5G,aAAczmG,EAAM3gB,GAApBonH,EAAwB,SAACpnH,GACvBmO,YAAS44G,YAAiB/mH,QAE5B,yBAAAo0B,EAAAzC,UAAAuC,QACHM,MAAA,KAAAriC,aAc4B0M,EAAW60B,GACpCtlC,eAACw5C,IAAa,CAAChsB,SAAS,KAAKisB,OAAO,QAAQlzB,QAb5B,WAClB80G,EAAS,OAY2D/0G,KAAgB,OAAV80G,EAAe57H,SAAA,CACrFF,cAAC0uB,IAAW,CAAAxuB,SAAO,OAAL47H,QAAK,IAALA,OAAK,EAALA,EAAOt1G,QACrBxmB,cAACmuB,IAAa,CAAAjuB,SACZF,cAAC2oB,IAAe,CACdje,IAAKoxH,EAAa,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOpxH,IAAM,GAC1Bge,SAAc,OAALozG,QAAK,IAALA,OAAK,EAALA,EAAOxqG,aAAcC,IAAc6nB,iBClFzC,SAASrnB,EAAavxB,GAAqC,IAAlCgd,EAAShd,EAATgd,UACtC,OACExd,cAAC67H,EAAe,CAAA37H,SACb,SAAC87H,EAAe7qH,EAAW60B,GAAa,OACvChmC,cAAC47H,EAAe,CACdj3G,QAAS,kBAAMq3G,EAAcx+G,IAC7BgJ,MAAOhJ,EAAUgJ,MACjBwsC,OAAQx1C,EAAU4c,KAClBjpB,UAAWA,EACXxO,KAAM6a,EAAU8T,UAChBm/C,OAAQjzD,EAAU5b,KAClB0Q,GAAIkL,EAAUlL,GAAGymB,kB,obCGrBkjG,EAAgBpxH,YAAO,MAAPA,EAAc,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,OAAA/L,YAAA,CAC1C0jD,QAAS,OACTl2C,QAAS,OACTvJ,UAAW,SACX1B,WAAY,SACZD,cAAe,SACfwtB,eAAgB,SAChBpjB,QAASX,EAAMO,QAAQ,EAAG,GAC1BK,aAAcZ,EAAMa,MAAMD,aAC1BG,gBAAiBf,EAAME,QAAQc,WAAWC,QAC1C0E,OAAO,cAADzP,OAAgB8J,EAAME,QAAQ4B,KAAK,QACzC,UAAW,CAAEw/C,QAAS,IAAM6vE,OAAQ,YACnCnxH,EAAMoB,YAAYC,GAAG,MAAQ,CAAEnJ,UAAW,OAAQ3B,cAAe,WAsCrD,SAAS2sC,EAAe7rC,GAUb,IATxB/D,EAAK+D,EAAL/D,MACmB89H,GADd/5H,EACL8rC,YAAmB9rC,EACnBg6H,0BAAiB,IAAAD,GAAOA,EACxBxrG,EAAKvuB,EAALuuB,MACA8d,EAAQrsC,EAARqsC,SAEA7tC,GADWwB,EAAXi6H,YACEj6H,EAAFxB,IACAguC,EAAWxsC,EAAXwsC,YACG7/B,EAAKc,YAAAzN,EAAA0N,GAEFwsH,EAAU3rG,EAAMjsB,OAAS,EA2B/B63H,EAAoFC,YAAWz9H,wBAAC,GAC3FgQ,GAAK,IACR0tH,UAzBoB,SAAC19F,GAAgB,IAAD29F,EAAAC,EAChCtvF,EAAsB,GAGtB,mBAAmB1iC,KAAS,OAAJo0B,QAAI,IAAJA,OAAI,EAAJA,EAAMlgC,OAChCwuC,EAAOnpC,KAAK,CACV0O,QAAS,sEACTvT,KAAM,iCAKV,IAAMu9H,EAAuC,QAA1BF,EAAG3tH,EAAM8tH,yBAAiB,IAAAH,IAdV,GAsBnC,OANQ,OAAJ39F,QAAI,IAAJA,GAAU,QAAN49F,EAAJ59F,EAAMlgC,YAAI,IAAA89H,OAAN,EAAJA,EAAYj4H,QAASk4H,GACvBvvF,EAAOnpC,KAAK,CACV0O,QAAQ,6CAAD3R,OAA+C27H,EAAa,kBACnEv9H,KAAM,yBAGG,OAANguC,QAAM,IAANA,OAAM,EAANA,EAAQ3oC,QAAS,EAAI2oC,EAAS,SAG/ByvF,EAAYP,EAAZO,aAAcC,EAAaR,EAAbQ,cAAejuF,EAAYytF,EAAZztF,aAAckuF,EAAYT,EAAZS,aAAczuF,EAAcguF,EAAdhuF,eAK3D0uF,EAAqB,WAAH,OACtBj9H,cAACy3D,IAAK,CACJ12D,QAAQ,WACRH,GAAI,CACF0xB,GAAI,EACJC,GAAI,EACJ1xB,GAAI,EACJ8kD,YAAa,cACb14B,QAAS,SAACliB,GAAK,OAAK2E,YAAM3E,EAAME,QAAQ5M,MAAMivB,KAAM,OACpDptB,SAEDquC,EAAezsC,KAAI,SAAAwL,GAAuB,IAApByxB,EAAIzxB,EAAJyxB,KAAMsO,EAAM//B,EAAN+/B,OACnBzI,EAA2B7F,EAA3B6F,KAAMhjC,EAAqBm9B,EAArBn9B,KAEd,OACElB,eAACC,IAAG,CAAYC,GAAI,CAAEuN,GAAI,GAAIjO,SAAA,CAC5BQ,eAACI,IAAU,CAACC,QAAQ,YAAY2xD,QAAM,EAAAxyD,SAAA,CACnC0kC,EAAK,MAAI+0F,YAAM/3H,MAEjByrC,EAAOvrC,KAAI,SAACwB,GACX,OAAQA,EAAEjE,MACR,IAAK,oBACH,OACEqB,eAACI,IAAU,CAAcC,QAAQ,UAAUgN,UAAU,IAAG7N,SAAA,CAAC,sCACtB,IAChC6O,GAASA,EAAMq/B,OAASr/B,EAAMq/B,OAAOrV,WAAa,KAFpCz1B,EAAEjE,MAKvB,IAAK,iBACH,OACEqB,eAACI,IAAU,CAAcC,QAAQ,UAAUgN,UAAU,IAAG7N,SAAA,CAAC,0CAClB,IACpC6O,GAASA,EAAMo/B,QAAU0qF,YAAe9pH,EAAMo/B,QAAS,GAAK,KAF9C7qC,EAAEjE,MAKvB,IAAK,iBACH,OACEqB,eAACI,IAAU,CAAcC,QAAQ,UAAUgN,UAAU,IAAG7N,SAAA,CAAC,gCACzB6O,EAAM8/B,SAAS,sBAD9BvrC,EAAEjE,MAIvB,QACE,OACEqB,eAACI,IAAU,CAAcC,QAAQ,UAAUgN,UAAU,IAAG7N,SAAA,CAAC,KACpDoD,EAAEsP,UADUtP,EAAEjE,YA5BnBulC,SAwClB,OACElkC,eAACC,IAAG,CAACC,GAAE7B,YAAA,CAAI4E,MAAO,QAAW/C,GAAKV,SAAA,CAChCQ,eAACu7H,EAAal9H,wBAAA,GACR+9H,KAAc,IAClBl8H,GAAE7B,wBAAA,GACI+vC,GAAgB,CAAEud,QAAS,OAC1B2wE,GAAgB3+H,IAAU,CAC7B4N,MAAO,aACP05C,YAAa,cACb14B,QAAS,kBAEX/sB,SAAA,CAEFF,cAAA,QAAAjB,YAAA,GAAWg+H,MAEX/8H,cAACW,IAAG,CACFoN,UAAU,MACVygB,IAAI,sDACJ5tB,GAAI,CAAE+C,MAAO,OAEfjD,eAACC,IAAG,CAACC,GAAI,CAAEiN,EAAG,EAAGwC,GAAI,CAAEke,GAAI,IAAMruB,SAAA,CAC/BF,cAACc,IAAU,CAACE,cAAY,EAACD,QAAQ,KAAIb,SAAC,wCAItCQ,eAACI,IAAU,CAACE,cAAY,EAACD,QAAQ,QAAQH,GAAI,CAAEqL,MAAO,kBAAmB/L,SAAA,CAAC,KAExEF,cAACc,IAAU,CACTC,QAAQ,QACRgN,UAAU,OACVnN,GAAI,CAAEqL,MAAO,eAAgB8iF,eAAgB,YAAa1+E,GAAI,GAAInQ,SACnE,iBAID0uC,EAKAluC,eAACI,IAAU,CAACE,cAAY,EAACD,QAAQ,QAAOb,SAAA,CAAC,sBACnB0uC,KALtBluC,eAACI,IAAU,CAACE,cAAY,EAACD,QAAQ,QAAOb,SAAA,CAAC,sBACnB6O,GAASA,EAAMq/B,OAASr/B,EAAMq/B,OAAOrV,WAAa,aAU7EwV,EAAe7pC,OAAS,GAAK1E,cAACi9H,EAAkB,IAEhDb,GACCp8H,cAACmoC,IAAI,CAAC68C,gBAAc,EAACpkF,GAAE7B,YAAA,GAAQu9H,GAAW,CAAEnuH,GAAI,IAAOjO,SACrDF,cAACu3D,IAAe,CAAAr3D,SACbywB,EAAM7uB,KAAI,SAACi9B,EAAMlrB,GAChB,IAAAqpH,EArKM,SAACn+F,GACnB,MAAoB,kBAATA,EACF,CACLluB,IAAKkuB,GAGF,CACLluB,IAAKkuB,EAAKlgC,KACVA,KAAMkgC,EAAKlgC,KACX+C,KAAMm9B,EAAKn9B,KACX4sC,QAASzP,EAAKyP,SA2JmB2uF,CAAYp+F,GAA3BlgC,EAAIq+H,EAAJr+H,KAAM+C,EAAIs7H,EAAJt7H,KAEd,OACElB,eAAC+4B,IAAQ16B,wBAAA,CAEPgP,UAAWopD,IAAOC,KACdnB,KAAc,IAClBr1D,GAAI,CACFuN,GAAI,EACJmkB,GAAI,IACJC,GAAI,EACJ5mB,aAAc,EACd+E,OAAQ,SAAC3F,GAAK,mBAAA9J,OAAkB8J,EAAME,QAAQmlB,UAC9CnD,QAAS,oBACT/sB,SAAA,CAEFF,cAACutF,IAAY,CAAArtF,SACXF,cAACk7B,IAAI,CAAC9N,KAAMgwG,IAAUz5H,MAAO,GAAIiF,OAAQ,OAE3C5I,cAAC05B,IAAY,CACXxM,QAASs8F,mBAASzqF,GAAQA,EAAOlgC,EACjCqN,UAAWs9G,mBAASzqF,GAAQ,GAAK46F,YAAM/3H,GAAQ,GAC/C+3B,uBAAwB,CACtB54B,QAAS,YACTuP,SAAU,SACVihC,YAAa,QAEf1X,yBAA0B,CAAE94B,QAAS,aAEvCf,cAACq9H,IAAuB,CAAAn9H,SACtBF,cAAC0mB,IAAW,CAACg1C,KAAK,MAAM95D,KAAK,QAAQ+iB,QAAS,kBAAM8pB,EAAS1P,IAAM7+B,SACjEF,cAACk7B,IAAI,CAAC9N,KAAMkwG,aA3BXzpH,a,OC3NDhJ,YAAO,MAAPA,EAAc,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,OAAA/L,YAAA,CAC1C0jD,QAAS,OACTl2C,QAAS,OACT8D,SAAU,SACVrN,UAAW,SACXI,SAAU,WACV9B,WAAY,SACZD,cAAe,SACfwtB,eAAgB,SAChBpjB,QAASX,EAAMO,QAAQ,EAAG,GAC1BK,aAAcZ,EAAMa,MAAMD,aAC1BuoB,WAAYnpB,EAAM0jF,YAAYluD,OAAO,WACrCz0B,gBAAiBf,EAAME,QAAQc,WAAWC,QAC1C0E,OAAO,cAADzP,OAAgB8J,EAAME,QAAQ4B,KAAK,QACzC,UAAW,CACTw/C,QAAS,IACT6vE,OAAQ,YAETnxH,EAAMoB,YAAYC,GAAG,MAAQ,CAAEnJ,UAAW,OAAQ3B,cAAe,W,yDClB9DuyB,EAAYhpB,YAAO,MAAPA,EAAc,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,MAAQ,CAC9CpH,MAAO,IACPiF,OAAQ,IACRnF,OAAQ,OACRkI,aAAc,MACdD,QAASX,EAAMO,QAAQ,GACvBoF,OAAO,cAADzP,OAAgB8J,EAAME,QAAQ4B,KAAK,YAGrCovH,EAAgBpxH,YAAO,MAAPA,CAAc,CAClCwE,OAAQ,EACR1L,MAAO,OACPiF,OAAQ,OACR85C,QAAS,OACTl2C,QAAS,OACT8D,SAAU,SACV3E,aAAc,MACdtI,SAAU,WACV9B,WAAY,SACZutB,eAAgB,SAChB,QAAS,CAAEnrB,MAAO,OAAQiF,OAAQ,QAClC,UAAW,CACTszH,OAAQ,UACR,iBAAkB,CAChB7sH,OAAQ,MAKRkuH,EAAmB1yH,YAAO,MAAPA,EAAc,SAAA1I,GAAA,IAAG4I,EAAK5I,EAAL4I,MAAK,MAAQ,CACrDyB,QAAS,OACTnJ,SAAU,WACV9B,WAAY,SACZD,cAAe,SACfwtB,eAAgB,SAChB7iB,MAAOlB,EAAME,QAAQb,KAAK8B,UAC1BJ,gBAAiBf,EAAME,QAAQc,WAAWC,QAC1CkoB,WAAYnpB,EAAM0jF,YAAYluD,OAAO,UAAW,CAC9Ci9F,OAAQzyH,EAAM0jF,YAAY+uC,OAAOC,UACjC/kF,SAAU3tC,EAAM0jF,YAAY/1C,SAASglF,UAEvC,UAAW,CAAErxE,QAAS,SAiBT,SAASsxE,EAAYv7H,GAA6D,IAA1D/D,EAAK+D,EAAL/D,MAAO0gC,EAAI38B,EAAJ28B,KAAMq0E,EAAOhxG,EAAPgxG,QAASxyG,EAAEwB,EAAFxB,GAAOmO,EAAKc,YAAAzN,EAAA0N,GACvEysH,EAAoFC,YAAWz9H,YAAC,CAC9F6+H,UAAU,GACP7uH,IAFG+tH,EAAYP,EAAZO,aAAcC,EAAaR,EAAbQ,cAAejuF,EAAYytF,EAAZztF,aAAckuF,EAAYT,EAAZS,aAAczuF,EAAcguF,EAAdhuF,eAK3D0uF,EAAqB,WAAH,OACtBj9H,cAACy3D,IAAK,CACJ12D,QAAQ,WACRH,GAAI,CACF0xB,GAAI,EACJC,GAAI,EACJpkB,GAAI,EACJw3C,YAAa,cACb14B,QAAS,SAACliB,GAAK,OAAK2E,YAAM3E,EAAME,QAAQ5M,MAAMivB,KAAM,OACpDptB,SAEDquC,EAAezsC,KAAI,SAAAwL,GAAuB,IAApByxB,EAAIzxB,EAAJyxB,KAAMsO,EAAM//B,EAAN+/B,OACnBzI,EAA2B7F,EAA3B6F,KAAMhjC,EAAqBm9B,EAArBn9B,KACd,OACElB,eAACC,IAAG,CAAYC,GAAI,CAAEuN,GAAI,GAAIjO,SAAA,CAC5BQ,eAACI,IAAU,CAACC,QAAQ,YAAY2xD,QAAM,EAAAxyD,SAAA,CACnC0kC,EAAK,MAAI+0F,YAAM/3H,MAEjByrC,EAAOvrC,KAAI,SAACwB,GAAC,OACZ5C,eAACI,IAAU,CAAcC,QAAQ,UAAUgN,UAAU,IAAG7N,SAAA,CAAC,KACpDoD,EAAEsP,UADUtP,EAAEjE,WALbulC,SAelB,OACElkC,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAAC6zB,EAAS,CAACjzB,GAAIA,EAAGV,SAChBQ,eAACu7H,EAAal9H,wBAAA,GACR+9H,KAAc,IAClBl8H,GAAE7B,wBAAA,GACI+vC,GAAgB,CAAEud,QAAS,OAC1B2wE,GAAgB3+H,IAAU,CAC7B4N,MAAO,aACP05C,YAAa,cACb14B,QAAS,kBAEX/sB,SAAA,CAEFF,cAAA,QAAAjB,YAAA,GAAWg+H,MAEVh+F,GACC/+B,cAACW,IAAG,CACFoN,UAAU,MACVyqC,IAAI,SACJhqB,IAAKg7F,mBAASzqF,GAAQA,EAAOA,EAAKyP,QAClC5tC,GAAI,CAAEyO,OAAQ,EAAG+vE,UAAW,aAIhC1+E,eAAC68H,EAAgB,CACf73F,UAAU,cACV9kC,GAAE7B,YAAA,CACAkuB,QAAS,WACL8R,GAAQ,CACVstB,QAAS,EACTpgD,MAAO,eACPghB,QAAS,WACT,UAAW,CAAEo/B,QAAS,OAExBnsD,SAAA,CAEFF,cAACW,IAAG,CAACoN,UAAWmtB,IAAM9N,KAAMywG,IAAgBj9H,GAAI,CAAE+C,MAAO,GAAIiF,OAAQ,GAAIgxB,GAAI,KAC7E55B,cAACc,IAAU,CAACC,QAAQ,UAAUH,GAAI,CAAEqL,MAAO,QAAS/L,SACjD6+B,EAAO,4BAA2B,gCAM1Cq0E,EAEA7kE,EAAe7pC,OAAS,GAAK1E,cAACi9H,EAAkB,S,8GCnJxC,SAASx6C,EAAkBjiF,GAA8B2M,YAAA3M,GACtE,IACMwoF,GAAcC,EADY5/D,cAAxB4/D,uBAGR,OAAOjpF,cAAAC,WAAA,CAAAC,SAAG8oF,GAAe,KAARA,GAAchpF,cAAC+sB,IAAK,CAACC,SAAS,UAAS9sB,SAAE8oF,Q,iCCX5D,+DAIakJ,EAA2B,WACtC,IAAQ5oE,EAAW5I,aAAY,SAAC7O,GAAgB,OAAKA,EAAMiL,UAAnDwM,OACApB,EAAiBE,YAAmB,CAAEC,OAAQ,OAA9CH,aAcR,MAAO,CACL+pE,iBAbF,SAA0B6rC,GACxB,IAAMryG,EAAMnC,EAAOsB,MAAK,SAACa,GAAG,OAAKA,EAAInZ,KAAOwrH,KAE5C,GAAIryG,EAAK,CACP,IAAM3sB,EAAQixE,YAAwBtkD,EAAI6kD,IAAK7kD,EAAIc,OAE9C4W,MAAMrkC,IACTopB,EAAa,KAAMppB,Q,sHCDZ,SAAS2pB,EAAmBjoB,GAAsD,IAAnDkK,EAAGlK,EAAHkK,IAAKge,EAAOloB,EAAPkoB,QAASkiG,EAAMpqH,EAANoqH,OAC1DtsH,EAAkCC,oBAAS,GAAKC,EAAAC,YAAAH,EAAA,GAAzC6S,EAAS3S,EAAA,GAAEssH,EAAYtsH,EAAA,GAWxB0vB,EAVuBpN,cAArBK,iBAU4B,IAAM,IAE1C,OACEzgB,eAAAT,WAAA,CAAAC,SAAA,CACGiR,GACCnR,cAAA,OACEgD,MAAO,CACL4F,OAAQ,OACRjF,MAAO,OACP0L,OAAQ,GACRnP,SAEFF,cAACinC,IAAkB,MAGvBjnC,cAACW,IAAG,CACFC,GAAI,CAAE4L,QAAS,OAAQjL,WAAY,SAAUutB,eAAgB,SAAUlmB,OAAQ,QAC/E0J,GAAG,kBAAiBpS,SAEpBF,cAAA,UACEgD,MAAO,CACLshB,SAAU,EACV4J,SAAUxF,EAAUwF,EAAW,IAC/BtlB,OAAQ8f,EAAqB,MAAXwF,EAAoB,GACtC5d,SAAU,OACV+7C,QAASl7C,EAAY,EAAI,GAE3B+5G,UAAU,KACV7wE,YAAa,EACb8wE,iBAAe,EACf38F,IAAK9jB,EACLkgH,OAxCW,WACjBE,GAAa,GACTF,GAAQA,KAuCNthF,QApCY,WAClBhQ,QAAQC,IAAI,mB,0JCtBhB+F,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAwBO,IAAM63F,EAAY,SAAH36F,GAA6C,IAAvCyqC,EAAOzqC,EAAPyqC,QAC1B3sC,GADyCkC,EAAN46F,OACT78F,mBAAyB0sC,IAAQzsC,EAAAC,YAAAH,EAAA,GAApDuT,EAAKrT,EAAA,GAAEi0B,EAAQj0B,EAAA,GAwQhBu/H,EAAoB,WACxB,IAAIC,EAAiC,CACnC5jE,MAAOnvB,EAAQmvB,MACfD,OAAQlvB,EAAQgzF,OAChB/jE,OAAQjvB,EAAQ34B,GAChB4rH,SAAU,IA2BZ,OAxBArsH,EAAMwpF,aACHv5F,KAAI,SAAC86C,GAAC,OAAKA,EAAEm/C,cACbjrF,QAAO,SAAC8rC,EAAG9b,GAAC,OAAK8b,EAAE37C,OAAO6/B,MAC1Bh/B,KAAI,SAAC86C,GACJ,IAAIi+E,EAAmB,CACrBsD,WAAYvhF,EAAEtqC,GACdxT,MAAO,GACPs/H,UAAWxhF,EAAE99C,OAGf,GACE,CAACu/H,IAAaC,IAAKD,IAAaE,IAAKF,IAAaG,KAAKj/H,SAASq9C,EAAE6hF,eAClD,MAAhB7hF,EAAEg+E,YACFh+E,EAAEg+E,WAAWl2H,OAAS,EACtB,CACA,IAAMkf,EAAQg5B,EAAEg+E,WAAWz7H,QAAO,SAACy9C,GAAC,OAAKA,EAAE3nB,WACtC,OAALrR,QAAK,IAALA,KAAOlB,SAAQ,SAACzK,GACd4iH,EAAQ/7H,MAAQmZ,EAAK3F,GAEjB2F,EAAKymH,SAA4B,KAAjBzmH,EAAKymH,UAAgB7D,EAAQuD,UAAYnmH,EAAKymH,SAClEV,EAAYE,SAASh6H,KAAK22H,WAEvBmD,EAAYE,SAASh6H,KAAK22H,MAE9BmD,GAGT,MAAO,CACL3iC,aAAcxpF,EAAMwpF,aACpB70E,MAAO3U,EAAM8sH,MACbn5E,KAAM3zC,EAAM+sH,KACZC,YAAahtH,EAAMgtH,YACnBj5H,YAAaiM,EAAMjM,YACnB3H,SAzSe,SAAC6gI,EAAoBxsH,EAAYxT,GAChD2zB,EAAQ1zB,wBAAC,GACJ8S,GAAK,IACRwpF,aAAcxpF,EAAMwpF,aAAav5F,KAAI,SAACuU,GAAQ,OAC5CA,EAAS/D,KAAOwsH,EAAU//H,wBAAA,GAEjBsX,GAAQ,IACX0lF,WAAY1lF,EAAS0lF,WAAWj6F,KAAI,SAACod,GAAM,OACzCA,EAAO5M,KAAOA,EAAEvT,wBAAA,GAAQmgB,GAAM,IAAEpgB,MAAOA,IAAKC,YAAA,GAAUmgB,QACvDngB,YAAA,GAEEsX,UA+RbilF,eAjRqB,SAACwjC,EAAoBxsH,EAAYxT,GACtD2zB,EAAQ1zB,wBAAC,GACJ8S,GAAK,IACRwpF,aAAcxpF,EAAMwpF,aAAav5F,KAAI,SAACuU,GAAQ,OAC5CA,EAAS/D,KAAOwsH,EAAU//H,wBAAA,GAEjBsX,GAAQ,IACX0lF,WAAY1lF,EAAS0lF,WAAWj6F,KAAI,SAACod,GAAc,OACjDA,EAAO5M,KAAOA,EAAEvT,wBAAA,GAEPmgB,GAAM,IACT07G,WAAY17G,EAAO07G,WAAW94H,KAAI,SAACu5B,GACjC,OAAAt8B,wBAAA,GAAYs8B,GAAQ,IAAEpG,QAASoG,EAAS/oB,KAAOxT,SAC/CC,YAAA,GAECmgB,QACVngB,YAAA,GAEEsX,UAgQbmlF,gBAlPsB,SAACsjC,EAAoBxsH,EAAYxT,EAAem2B,GACtExC,EAAQ1zB,wBAAC,GACJ8S,GAAK,IACRwpF,aAAcxpF,EAAMwpF,aAAav5F,KAAI,SAACuU,GAAQ,OAC5CA,EAAS/D,KAAOwsH,EAAU//H,wBAAA,GAEjBsX,GAAQ,IACX0lF,WAAY1lF,EAAS0lF,WAAWj6F,KAAI,SAACod,GAAc,OACjDA,EAAO5M,KAAOA,EAAEvT,wBAAA,GAEPmgB,GAAM,IACT07G,WAAY17G,EAAO07G,WAAW94H,KAAI,SAACu5B,GACjC,OAAIA,EAAS/oB,KAAOxT,EAAOC,wBAAA,GAAYs8B,GAAQ,IAAEpG,QAASA,IAC9CoG,OACZt8B,YAAA,GAECmgB,QACVngB,YAAA,GAEEsX,UAgOb0oH,cAtJoB,WACpB,IACmCC,EAD/BC,GAAY,EAAKC,EAAAxzF,YACJ75B,EAAMwpF,cAAY,IAAnC,IAAA6jC,EAAAl8G,MAAAg8G,EAAAE,EAAAr0G,KAAAiX,MAAqC,CAAC,IAA7B7pB,EAAI+mH,EAAAlgI,MAYX,GAXAmgI,GAAY,EAEVhnH,GACa,KAAbA,EAAKgiH,KACLnxH,SAASq2H,uBAAuBlnH,EAAKgiH,KAAKv1H,OAAS,GAEjD,SADF6E,OAAO61H,iBAAiBt2H,SAASq2H,uBAAuBlnH,EAAKgiH,KAAK,GAAI,MAAMztH,UAG5EyyH,GAAY,GAGVA,EAAU,CAAD,IACuBI,EADvBC,EAAA5zF,YACQzzB,EAAK8jF,YAAU,IAAlC,IAAAujC,EAAAt8G,MAAAq8G,EAAAC,EAAAz0G,KAAAiX,MAAoC,CAAC,IAA5B5iB,EAAMmgH,EAAAvgI,MACb,OAAQogB,EAAOu/G,cACb,KAAKJ,IAAakB,IAChB,GAAIrgH,EAAOikD,YAAqC,IAAvBjkD,EAAOpgB,MAAMyL,OAEpC,OAAO,EAET,MACF,KAAK8zH,IAAaG,IAClB,KAAKH,IAAaE,IAClB,KAAKF,IAAaC,IAChB,GACEp/G,EAAOikD,YACPjkD,EAAO07G,YACP17G,EAAO07G,WAAWl2H,OAAS,GAC3Bwa,EAAO07G,WAAW4E,OAAM,SAAC5iF,GAAC,OAAMA,EAAE3nB,WAGlC,OAAO,EAET,MAEF,KAAKopG,IAAaoB,IAChB,GAAIvgH,EAAOikD,YAAqC,IAAvBjkD,EAAOpgB,MAAMyL,OAEpC,OAAO,IAId,MAAAm1H,GAAAJ,EAAAh8H,EAAAo8H,GAAA,QAAAJ,EAAA1uG,OAEL,MAAA8uG,GAAAR,EAAA57H,EAAAo8H,GAAA,QAAAR,EAAAtuG,IACA,OAAO,GAwGP8qE,kBArGwB,SAACx8E,GACzB,OAAQA,EAAOu/G,cACb,KAAKJ,IAAakB,IAChB,OAAOrgH,EAAOikD,YAAsC,KAAxBjkD,EAAOpgB,MAAMyL,OAC3C,KAAK8zH,IAAaC,IAClB,KAAKD,IAAaE,IAClB,KAAKF,IAAaG,IAChB,IAAMmB,EACJzgH,EAAOikD,YACPjkD,EAAO07G,YACP17G,EAAO07G,WAAWl2H,OAAS,GAC3Bwa,EAAO07G,WAAW4E,OAAM,SAAC5iF,GAAC,OAAMA,EAAE3nB,WAE9B2qG,EACJ1gH,EAAOikD,YACPjkD,EAAO07G,YACP17G,EAAO07G,WAAWl2H,OAAS,GAC3Bwa,EAAO07G,WAAW9kF,MAAK,SAAC57B,GAAC,OAAKA,EAAE+a,SAAyB,KAAd/a,EAAE2lH,SAAgC,KAAd3lH,EAAEwkH,WAEnE,OAAOiB,GAAaC,EACtB,QACE,OAAO,IAiFXrkC,sBA3N4B,SAC5BujC,EACAxsH,EACAwtH,EACA11H,GAEAqoB,EAAQ1zB,wBAAC,GACJ8S,GAAK,IACRwpF,aAAcxpF,EAAMwpF,aAAav5F,KAAI,SAACuU,GAAQ,OAC5CA,EAAS/D,KAAOwsH,EAAU//H,wBAAA,GAEjBsX,GAAQ,IACX0lF,WAAY1lF,EAAS0lF,WAAWj6F,KAAI,SAACod,GAAc,OACjDA,EAAO5M,KAAOA,EAAEvT,wBAAA,GAEPmgB,GAAM,IACT07G,WAAY17G,EAAO07G,WAAW94H,KAAI,SAACu5B,GACjC,OAAIA,EAAS/oB,KAAOwtH,EAClB/gI,wBAAA,GAAYs8B,GAAQ,IAAEqjG,QAASt0H,IACnBixB,OACdt8B,YAAA,GAECmgB,QACVngB,YAAA,GAEEsX,UAmMbolF,KA3EW,WAAH,OAAS,SAACz2B,GAAqB,OAAK,SAAC17B,GAC7C,OAAA/C,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,IAAAmkF,EAAAlkF,EAAAhkB,EAAA,OAAA6c,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAC2B,OAA1B2uF,EAAOoT,IAAmBr3F,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAEP4N,IAAcl2B,KAAI,mBAAyCi3G,EAAM,CACtF7gF,QAAS,CAAEC,WAAW,KACrB,KAAD,EAFItD,EAAQC,EAAAxE,KAGNzf,EAAWgkB,EAAS5e,KAApBpF,OAAMikB,EAAA6D,GAEN9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACPw1F,IAAiBp0F,QAAO,EAAAjF,EAAA6D,KAOxBw1F,IAAiBl+F,MAAK,mBAHvB,OAHFmjC,IACAvkD,YACEg5C,YAAa,CAAEnnD,GAAI24B,EAAQ34B,GAAIonD,OAAQzuB,EAAQgzF,OAAQviF,MAAOzQ,EAAQmvB,SACtE1zB,EAAArE,OAAA,oBAIQ,OAAViH,IAAU5C,EAAArE,OAAA,oBAAAqE,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAIdpN,QAAQC,IAAGmN,EAAAi+B,IACXr7B,IAAU,yBAAA5C,EAAAzC,UAAAuC,EAAA,sBAqDdw5F,gBA/LsB,SAAC3pH,GAAuC,IACxBm1B,EADuBD,EAAAG,YAC1Cr1B,EAAS0lF,YAAU,IAAtC,IAAAxwD,EAAAvoB,MAAAwoB,EAAAD,EAAA1gB,KAAAiX,MAAwC,CAAC,IAAhC5iB,EAAMssB,EAAA1sC,MACb,OAAQogB,EAAOu/G,cACb,KAAKJ,IAAakB,IAClB,KAAKlB,IAAaoB,IAChB,GAAIvgH,EAAOikD,YAAqC,IAAvBjkD,EAAOpgB,MAAMyL,OAEpC,OAAO,EAET,MACF,KAAK8zH,IAAaG,IAClB,KAAKH,IAAaE,IAClB,KAAKF,IAAaC,IAChB,GACEp/G,EAAOikD,YACPjkD,EAAO07G,YACP17G,EAAO07G,WAAWl2H,OAAS,GAC3Bwa,EAAO07G,WAAW4E,OAAM,SAAC5iF,GAAC,OAAMA,EAAE3nB,WAGlC,OAAO,EAGT,GACE/V,EAAOikD,YACPjkD,EAAO07G,YACP17G,EAAO07G,WAAWl2H,OAAS,GAC3Bwa,EAAO07G,WAAW9kF,MAAK,SAAC57B,GAAC,OAAKA,EAAE+a,SAAyB,KAAd/a,EAAE2lH,SAAgC,KAAd3lH,EAAEwkH,WAEjE,OAAO,IAGd,MAAAgB,GAAAn0F,EAAAjoC,EAAAo8H,GAAA,QAAAn0F,EAAA3a,IACD,OAAO,M,6IC7JEqvG,EAAmB,SAAHz/H,GAMJ,IALvB0e,EAAM1e,EAAN0e,OACAy9E,EAAkBn8F,EAAlBm8F,mBACAnB,EAAeh7F,EAAfg7F,gBACA5jE,EAAUp3B,EAAVo3B,WACA/jB,EAAKrT,EAALqT,MAEA,OACE7T,cAACkgI,IAAS,CAAAhgI,SACPgf,EAAO07G,WAAW94H,KAAI,SAACy+E,EAAqBt8E,GAE3C,OACEvD,eAACU,IAAK,CAACqB,UAAU,MAAMpB,IAAI,OAAOE,WAAY,SAASrB,SAAA,CACrDF,cAAC80B,IAAgB,CACf7yB,SAAU21B,EACV50B,MAAO,CAAE0uB,WAAY,GACrB5yB,MAAOyhF,EAAOjuE,GAAGymB,WACjBhE,QACE/0B,cAACg1B,IAAQ,CACP0Q,UAAS,GAAAzkC,OAAK,IAAM4S,GACpBvB,GAAE,GAAArR,OAAK,IAAM4S,GAAK5S,OAAGs/E,EAAOjuE,IAC5B2iB,QAASsrD,EAAOtrD,QAChBh3B,SAAU,SAACqF,GACTk4F,EAAgBjb,EAAOjuE,GAAIhP,EAAEC,OAAO0xB,YAI1CtzB,MAAO4+E,EAAO5+E,OACT4+E,EAAOjuE,IAEbiuE,EAAOs/C,SAA8B,KAAnBt/C,EAAOs/C,SAAkBt/C,EAAOtrD,SACjDj1B,cAAC0C,IAAS,CACR4P,GAAI4M,EAAO5M,GAAGymB,WAAa,IAAMwnD,EAAOs/C,QACxCl+H,MAAO4+E,EAAOs/C,QACd/1E,YAAay2B,EAAOs/C,QACpBhhI,KAAM,eAAiBqgB,EAAO5M,GAAGymB,WAAa,IAAOwnD,EAAOs/C,QAC5DxhI,MAA0B,KAAnBkiF,EAAOm+C,QACdp7C,WAAS,EACT1hF,KAAK,QACLs5C,KAAM,EACNqoC,QAAS,EACT1/E,WAAY,GACZjB,WAAY,CACV9D,MAAOyhF,EAAOm+C,QACdzgI,SAAU,SAACqF,GAAM,OAAKq5F,EAAmBpc,EAAOjuE,GAAIhP,EAAEC,OAAOzE,QAC7DmD,SAAU21B,OAjC2C3zB,S,kBCtB1Dk8H,EAAkB,SAAH3/H,GAAoE,IAA9D0e,EAAM1e,EAAN0e,OAAQjhB,EAAQuC,EAARvC,SAAU25B,EAAUp3B,EAAVo3B,WAAYwoG,EAAM5/H,EAAN4/H,OAC9D,OACE1/H,eAACC,IAAG,CAAAT,SAAA,CACFF,cAAC6O,IAAQ,CAAC3O,SAAUgf,EAAOmhH,SAC3BrgI,cAAC0C,IAAS,CACR7D,KAAM,eAAiBqgB,EAAO5M,GAAGymB,WACjCzmB,GAAI4M,EAAO5M,GAAGymB,WACdn2B,WAAY,CACV9D,MAAOogB,EAAOpgB,MACdb,SAAU,SAACqF,GAAM,OAAKrF,EAASqF,EAAEC,OAAOzE,QACxCmD,SAAU21B,GAEZ72B,QAAQ,WACRuiF,UAAW88C,EACXE,QAASF,EAAS,EAAI,EACtB78C,QAAS68C,EAAS,EAAI,EACtB1+H,WAAS,Q,+CCPJ6+H,EAAmB,SAAH//H,GAMJ,IALvB0e,EAAM1e,EAAN0e,OACAo8E,EAAc96F,EAAd86F,eACAqB,EAAkBn8F,EAAlBm8F,mBACA/kE,EAAUp3B,EAAVo3B,WACA/jB,EAAKrT,EAALqT,MAEA,OACEnT,eAACs2B,IAAW,CAAA92B,SAAA,CACVF,cAACwgI,IAAU,CACT5/H,GAAI,CAAEU,cAAe4d,EAAO07G,WAAWl2H,OAAS,EAAI,SAAW,OAC/D,aAAW,UACX7F,KAAI,GAAAoC,OAAK,IAAM4S,GACf/U,MAAOogB,EAAOpgB,MACdb,SAAU,SAACqF,GACTg4F,EAAeh4F,EAAEC,OAAOzE,QACxBoB,SAEDgf,EAAO07G,WAAW94H,KAAI,SAACy+E,EAAqBt8E,GAC3C,IAAMo9D,EAAMp9D,EAAI4P,EAChB,OACEnT,eAACU,IAAK,CAACqB,UAAU,MAAMpB,IAAI,OAAOE,WAAY,SAASrB,SAAA,CACrDF,cAAC80B,IAAgB,CACf7yB,SAAU21B,EACV50B,MAAO,CAAE0uB,WAAY,GACrB5yB,MAAOyhF,EAAOjuE,GAAGymB,WACjBhE,QACE/0B,cAACs2G,IAAK,CACJ5wE,UAAS,GAAAzkC,OAAK,IAAM4S,GACpBhV,KAAI,GAAAoC,OAAK,IAAM4S,GACfvB,GAAE,GAAArR,OAAK,IAAM4S,GAAK5S,OAAGs/E,EAAOjuE,IAC5B2iB,QAASsrD,EAAOtrD,UAGpBtzB,MAAO4+E,EAAO5+E,QAEf4+E,EAAOs/C,SAA8B,KAAnBt/C,EAAOs/C,SAAkBt/C,EAAOtrD,SACjDj1B,cAAC0C,IAAS,CACR4P,GAAI4M,EAAO5M,GAAGymB,WAAa,IAAMwnD,EAAOs/C,QACxCl+H,MAAO4+E,EAAOs/C,QACd/1E,YAAay2B,EAAOs/C,QACpBhhI,KAAM,eAAiBqgB,EAAO5M,GAAGymB,WAAa,IAAOwnD,EAAOs/C,QAC5DxhI,MAA0B,KAAnBkiF,EAAOm+C,QACdh9H,WAAS,EACT4hF,WAAS,EACT1hF,KAAK,QACLs5C,KAAM,EACNqoC,QAAS,EACT1/E,WAAY,GACZjB,WAAY,CACV9D,MAAOyhF,EAAOm+C,QACdzgI,SAAU,SAACqF,GAAM,OAAKq5F,EAAmBpc,EAAOjuE,GAAIhP,EAAEC,OAAOzE,QAC7DmD,SAAU21B,OA/B2CypC,QAuCnErhE,cAAC+2C,IAAc,QAKR0pF,EAA+B,SAAHt+H,GAMhB,IALvB+c,EAAM/c,EAAN+c,OACAo8E,EAAcn5F,EAAdm5F,eAEA1jE,GADkBz1B,EAAlBw6F,mBACUx6F,EAAVy1B,YACA/jB,EAAK1R,EAAL0R,MAEA,OACE7T,cAAAC,WAAA,CAAAC,SACGgf,EAAO07G,WAAW94H,KAAI,SAACy+E,EAAqBt8E,GAC3C,IAAMo9D,EAAMp9D,EAAI4P,EAChB,OACE7T,cAAC26H,IAAS,CAAW/5H,GAAI,CAAEiN,EAAG,EAAG8B,aAAc,qBAAuBmrH,MAAM,SAAQ56H,SAClFF,cAAC80B,IAAgB,CACf7yB,SAAU21B,EACV50B,MAAO,CAAE0uB,WAAY,GACrB5yB,MAAOyhF,EAAOjuE,GAAGymB,WACjBhE,QACE/0B,cAACs2G,IAAK,CACJ5wE,UAAS,GAAAzkC,OAAK,IAAM4S,GACpBhV,KAAI,GAAAoC,OAAK,IAAM4S,GACfvB,GAAE,GAAArR,OAAK,IAAM4S,GAAK5S,OAAGs/E,EAAOjuE,IAC5B2iB,QAASsrD,EAAOtrD,QAChBh3B,SAAU,SAACqF,GACTg4F,EAAeh4F,EAAEC,OAAOzE,UAI9B6C,MAAO,MAhBK0/D,S,6CCxEbq/D,EAAoB,SAAHlgI,GAMC,IAL7B0e,EAAM1e,EAAN0e,OACAo8E,EAAc96F,EAAd86F,eACAqB,EAAkBn8F,EAAlBm8F,mBAKMgkC,GAJIngI,EAAVo3B,WACKp3B,EAALqT,MAGsB5G,OAAO2zH,YAC3BhpH,YAAIsH,EAAO07G,YAAY94H,KAAI,SAACy9B,GAAC,MAAK,CAACA,EAAEshG,KAAMthG,EAAEjtB,GAAIitB,EAAE59B,YAE/Cm/H,EAAiB5hH,EAAO07G,WAAWz7H,QAAO,SAACugC,GAAC,OAAKA,EAAEzK,WAAS,GAElE,OACEv0B,eAACs2B,IAAW,CAAA92B,SAAA,CACVF,cAAC+gI,EAAW,CACV7iI,OAAQyiI,EACR79H,IAAKoc,EAAO07G,WAAWl2H,OACvB5F,MAAOgiI,GAAkBA,EAAexuH,GAAK,EAC7CgpF,eAAgBA,IAEjBwlC,GACC9gI,cAACghI,EAAmB,CAClBr/H,MAAOm/H,EAAen/H,MACtB2Q,GAAI4M,EAAO5M,GACXiuE,OAAQugD,EACR7iI,SAAU0+F,IAId38F,cAAC+2C,IAAc,QAKrB,SAASiqF,EAAmB7+H,GAUxB,IATFmQ,EAAEnQ,EAAFmQ,GACAiuE,EAAMp+E,EAANo+E,OACAtiF,EAAQkE,EAARlE,SACA0D,EAAKQ,EAALR,MAOA,GAAI4+E,EAAOs/C,SAA8B,KAAnBt/C,EAAOs/C,QAC3B,OAAQt/C,EAAOs/C,QAAQtgI,SAAS,MAC9B,KAAK,EACH,IAAMqrD,EAAO21B,EAAOs/C,QAAQxsG,MAAM,KAAKvxB,KAAI,SAAC86C,GAC1C,MAAO,CAAE99C,MAAO89C,EAAGj7C,MAAOi7C,MAG5B,OACEl8C,eAACC,IAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SAAA,CAChBQ,eAACI,IAAU,CAACC,QAAQ,UAAU03C,WAAS,EAAAv4C,SAAA,CACpCyB,EAAM,sCAA2B,OAEpC3B,cAACoB,IAAK,CAACC,IAAI,MAAMoB,UAAW,MAAOuhG,SAAS,OAAOl1E,eAAgB,SAAS5uB,SACzE0qD,EAAK9oD,KAAI,SAACmW,EAAMpE,GACf,IAAMhD,EAAMyB,EAAKuB,EACjB,OACE7T,cAACo4B,IAAI,CAEHr3B,QAASw/E,EAAOm+C,UAAYzmH,EAAKtW,MAAQ,SAAW,WACpDgjB,QAAS,kBAAM1mB,EAASsiF,EAAOjuE,GAAI2F,EAAKnZ,QACxC6C,MAAOsW,EAAKtW,MACZC,KAAK,SAAO,eAAAX,OAJQ4P,YAWlC,QACE,OACE7Q,cAAC0C,IAAS,CACRf,MAAO4+E,EAAOs/C,QACd/1E,YAAay2B,EAAOs/C,QACpBhhI,KAAI,eAAAoC,OAAiBqR,GACrBA,GAAE,eAAArR,OAAiBqR,GACnB1P,WAAY,CACV9D,MAAOyhF,EAAOm+C,QACdzgI,SAAU,SAACqF,GAAM,OAAKg2B,QAAQC,IAAIj2B,EAAEC,OAAOzE,SAE7CiC,QAAQ,aAKlB,OAAOf,cAAAC,WAAA,IAGM,SAAS8gI,EAAW3+H,GAC3BA,EAANlE,OASE,IARF4E,EAAGV,EAAHU,IACAw4F,EAAcl5F,EAAdk5F,eACAx8F,EAAKsD,EAALtD,MAOA,OACEkB,cAACW,IAAG,CACFC,GAAI,CACF4L,QAAS,OACTjL,WAAY,SACZutB,eAAgB,UAChB5uB,SAEFF,cAACk6G,IAAM,CACLp3G,IAAKA,EACLjE,KAAK,iBACLC,MAAOA,EACPgjB,UAAW,EACX7jB,SAAU,SAAC6lB,EAAOo4B,GAEZA,GAAUo/C,EAAep/C,EAASnjB,aAExCghF,UAAW/5G,cAACihI,IAAI,CAACj+H,MAAO,CAAEqpD,QAAS,KAAQ7gD,SAAS,gBChIrD,IAAMkxF,EAAc,SAAHl8F,GAUC,IATvB0e,EAAM1e,EAAN0e,OACA0Y,EAAUp3B,EAAVo3B,WACA/jB,EAAKrT,EAALqT,MAEA5V,EAAQuC,EAARvC,SACAq9F,EAAc96F,EAAd86F,eACAE,EAAeh7F,EAAfg7F,gBACAmB,EAAkBn8F,EAAlBm8F,mBACAC,EAAOp8F,EAAPo8F,QA2BMpvB,EAzBe,WACnB,OAAQtuD,EAAOu/G,cACb,KAAKJ,IAAakB,IAClB,KAAKlB,IAAaoB,IAChB,OAAOvgH,EAAOikD,YAAsC,KAAxBjkD,EAAOpgB,MAAMyL,OAC3C,KAAK8zH,IAAaC,IAClB,KAAKD,IAAaE,IAChB,IAAMoB,EACJzgH,EAAOikD,YACPjkD,EAAO07G,YACP17G,EAAO07G,WAAWl2H,OAAS,GAC3Bwa,EAAO07G,WAAW4E,OAAM,SAAC5iF,GAAC,OAAMA,EAAE3nB,WAE9B2qG,EACJ1gH,EAAOikD,YACPjkD,EAAO07G,YACP17G,EAAO07G,WAAWl2H,OAAS,GAC3Bwa,EAAO07G,WAAW9kF,MAAK,SAAC57B,GAAC,OAAKA,EAAE+a,SAAyB,KAAd/a,EAAE2lH,SAAgC,KAAd3lH,EAAEwkH,WAEnE,OAAOiB,GAAaC,EACtB,QACE,OAAO,GAIGsB,GACVzkC,EAA2C,KAA1Bv9E,EAAOi7G,eAK9B,OAJAl7H,qBAAU,WACR29F,GAASpvB,KACR,CAACA,IAEItuD,EAAOu/G,cACb,KAAKJ,IAAakB,IAChB,OACEv/H,cAACmgI,EAAe,CACdjhH,OAAQA,EACR0Y,WAAYA,EACZwoG,QAAQ,EACRniI,SAAUA,IAGhB,KAAKogI,IAAaE,IAChB,OACEv+H,cAAC0gI,EAAiB,CAChBxhH,OAAQA,EACR0Y,WAAYA,EACZ0jE,eAAgBA,EAChBqB,mBAAoBA,EACpB9oF,MAAOA,IAGb,KAAKwqH,IAAaC,IAChB,OAAO7hC,EACLz8F,cAACygI,EAA4B,CAC3BvhH,OAAQA,EACR0Y,WAAYA,EACZ0jE,eAAgBA,EAChBqB,mBAAoBA,EACpB9oF,MAAOA,IAGT7T,cAACugI,EAAgB,CACfrhH,OAAQA,EACR0Y,WAAYA,EACZ0jE,eAAgBA,EAChBqB,mBAAoBA,EACpB9oF,MAAOA,IAGb,KAAKwqH,IAAaG,IAChB,OACEx+H,cAACigI,EAAgB,CACf/gH,OAAQA,EACR0Y,WAAYA,EACZ4jE,gBAAiBA,EACjBmB,mBAAoBA,EACpB9oF,MAAOA,IAGb,QACE,OACE7T,cAACmgI,EAAe,CACdjhH,OAAQA,EACR0Y,WAAYA,EACZwoG,QAAQ,EACRniI,SAAUA,O,mOCvFLkjI,EAvBQ,WAoBrB,MAAO,CAAEC,QAnBO,SAACliH,GACf,GAAe,OAAXA,EAAJ,CAEA,IAAMmiH,EAAuB,CAC3B3nE,OAAQx6C,EAAOi7C,OACfze,MAAOx8B,EAAOk7C,MACd9nD,GAAI4M,EAAOg7C,OACXxvD,IAAK,GACL/I,MAAO,GACP24D,QAAS,GACT10D,YAAa,GACbsyB,WAAW,EACXqlE,gBAAiB,GAInB98E,YAASm5C,YAAcynE,Q,oBCtB3B/hG,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAoCe,SAAS6tF,EAAkB3wF,GAIb,IAAD2B,EAAAC,EAH1BkQ,EAAE9R,EAAF8R,GACArQ,EAAQzB,EAARyB,SAAQq/H,EAAA9gI,EACRiwF,iBAAS,IAAA6wC,GAAOA,EAERnwH,EAAcuP,aAAY,SAAC7O,GAAgB,OAAKA,EAAM6K,WAAtDvL,UACA8gF,EAAqBC,cAArBD,iBACA3lD,EAAoBC,cAApBD,gBACRhuC,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GAEZ4iI,EAAYD,IAAZC,QAEFG,EAAgB,SAAA92F,EAAAC,GAAA,OAAAvoC,KAAAokC,YAAAjH,IAAAiE,MAAG,SAAAiD,EAAOihF,EAAkBz6F,GAAiC,OAAAsS,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OACjFsQ,EAAgBm7E,EAAU,CAAE1mH,QAASisB,EAAUq7D,SAAS,IAAQ,wBAAA3hD,EAAAzC,UAAAuC,QACjEM,MAAA,KAAAriC,YAKK+8H,EAAW,kBAAAp/H,KAAAmkC,YAAAjH,IAAAiE,MAAG,SAAAwD,IAAA,OAAAzH,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,OAClBvb,YACE4uD,YAAY/8D,EAAZ+8D,EAAgB,SAAC3kE,EAAKwU,GAEpB+yE,EAAiB3/E,EAAGymB,YAEpBxvB,OAAOyd,KAAKtc,GAGZynB,GAAQ,GAERivG,EAAQliH,KATVmwD,EAUG,SAAChxE,GAEF,OADA8zB,GAAQ,GACA9zB,GACN,KAAKkxE,IAAoBgiB,UACvBgwC,EACE,2EACA,QAEF,MACF,KAAKhyD,IAAoBkyD,aACvBF,EACE,+EACA,QAEF,MACF,KAAKhyD,IAAoBmyD,MACvBH,EAAiB,mCAA2B,WAC5C,MACF,KAAKhyD,IAAoBiiB,QACvB+vC,EAAiB,sCAAoC,WACrD,MACF,KAAKhyD,IAAoBoyD,eACvBJ,EACE,+DACA,WAEF,MACF,QACEA,EAAiB,mCAAiC,cAIxD,wBAAAv6F,EAAA/C,UAAA8C,QACHD,MAAA,KAAAriC,YAED,OACE/D,eAAAT,WAAA,CAAAC,SAAA,CACGuwF,EACCzwF,cAAC+uB,IAAM,CACLpK,QAAS,kBAAMwN,GAAQ,IACvBvwB,KAAK,QACLK,SAAUA,EACVlB,QAAQ,YACRkL,MAAM,UAAS/L,SAChB,6BAIDF,cAAC+uB,IAAM,CACLpK,QAAS,kBAAM68G,KACf5/H,KAAK,QACLK,SAAUA,GAAYkP,EACtBpQ,QAAQ,YACRkL,MAAM,UAAS/L,SAChB,6BAKHQ,eAACutB,IAAM,CAACvsB,WAAS,EAACwsB,SAAS,KAAKisB,OAAO,QAAQnzB,KAAMA,EAAK9mB,SAAA,CACxDF,cAAC0uB,IAAW,CAAAxuB,SAAC,gDACbQ,eAACytB,IAAa,CAAAjuB,SAAA,CACZQ,eAAC4+C,IAAgB,CAAC32C,IAAI,2EAA0EzI,SAAA,CAC9FF,cAACc,IAAU,CAACC,QAAQ,QAAQ03C,WAAS,EAAAv4C,SAAC,6FAGtCF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAC,oLAM9BQ,eAACC,IAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SAAA,CAChBF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAC,6BAC5BF,cAACW,IAAG,CAACC,GAAI,CAAEsxD,GAAI,GAAIhyD,SACjBQ,eAACI,IAAU,CAACC,QAAQ,QAAQgN,UAAU,KAAI7N,SAAA,CACxCF,cAAA,MAAAE,SAAI,uCACJF,cAAA,MAAAE,SAAI,6DACJF,cAAA,MAAAE,SAAI,qEACJQ,eAAA,MAAAR,SAAA,CACG,IAAI,yHAIPF,cAAA,MAAAE,SAAI,mFACJF,cAAA,MAAAE,SAAI,qEACJQ,eAAA,MAAAR,SAAA,CACG,IAAI,gIAIPF,cAAA,MAAAE,SAAI,+DAGRF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAC,yFAKhCQ,eAACmuB,IAAa,CAACjuB,GAAI,CAAE0xB,GAAI,EAAGC,GAAI,GAAIryB,SAAA,CAClCF,cAAC+uB,IAAM,CAACpK,QAAS,kBAAMwN,GAAQ,IAAOjyB,SAAC,YACvCF,cAAC+uC,IAAa,CACZpsC,KAAK,SACL5B,QAAQ,YACRiuC,QAAS79B,EACTwT,QAAS68G,EAAYthI,SACtB,yB,wHC5KI,SAASm1H,IACtB,OACEr1H,cAAAC,WAAA,CAAAC,SACEQ,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAAC,sEAE5BF,cAAA,SAAM,0ECLC,SAASs1H,IACtB,OACE50H,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAAC,sEAE5BF,cAAA,SACAA,cAAA,UAAAE,SAAQ,uEACRF,cAAA,SAAM,oEAENA,cAAA,SACAA,cAAA,UAAAE,SAAQ,qBAAsB,8B,4GCS9B2zB,EAAYhpB,YAAO,MAAPA,EAChB,SAAArK,GASO,IARLuK,EAAKvK,EAALuK,MACA62H,EAAUphI,EAAVohI,WAQM52H,EAAiC,UAAvBD,EAAME,QAAQC,KACtBe,EAAmB21H,EAAnB31H,MAAOlL,EAAY6gI,EAAZ7gI,QAkBf,OAAAhC,YAAA,CACEytD,SAAU,GACV5jD,OAAQ,cACR+C,aAAc,EACduwH,OAAQ,UACR36H,WAAY,SACZiL,QAAS,eACTsiB,eAAgB,SAChB6xB,aAAc,SACdj1C,QAASX,EAAMO,QAAQ,EAAG,GAC1BW,MAAOlB,EAAME,QAAQ4B,KAAK,KAC1BrB,SAAUT,EAAMI,WAAW8nG,QAAQ,IACnCxnG,WAAYV,EAAMI,WAAWM,WAC7BK,gBAAiBf,EAAME,QAAQ4B,KAAK,KACpC4vB,WAAY1xB,EAAMI,WAAW0hD,gBAEf,YAAV5gD,EAAmBlN,oCAAA,GAED,WAAZgC,GAAoBhC,YAAA,GAlCZ,SAACkN,GAAkB,MAAM,CAC3CA,MAAOlB,EAAME,QAAQgB,GAAOuqE,aAC5B1qE,gBAAiBf,EAAME,QAAQgB,GAAOqhB,MAgCCu0G,CAAY51H,KAC7B,aAAZlL,GAAsBhC,YAAA,GA9BZ,SAACkN,GAAkB,MAAM,CAC7CA,MAAOlB,EAAME,QAAQgB,GAAOqhB,KAC5BxhB,gBAAiB,cACjB4E,OAAO,aAADzP,OAAe8J,EAAME,QAAQgB,GAAOqhB,OA2BDw0G,CAAc71H,KACjC,UAAZlL,GAAmBhC,YAAA,GAzBZ,SAACkN,GAAkB,MAAM,CAC1CA,MAAOlB,EAAME,QAAQgB,GAAOjB,EAAU,OAAS,SAC/Cc,gBAAiB4D,YAAM3E,EAAME,QAAQgB,GAAOqhB,KAAM,MAuBZy0G,CAAW91H,KAAQlN,wBAAA,GAGnC,aAAZgC,GAA0B,CAC5B+K,gBAAiB,cACjBG,MAAOlB,EAAME,QAAQb,KAAK8iB,QAC1Bxc,OAAO,aAADzP,OAAe8J,EAAME,QAAQ4B,KAAK,UAE1B,UAAZ9L,GAAuB,CACzBkL,MAAOjB,EAAUD,EAAME,QAAQb,KAAK8B,UAAYnB,EAAME,QAAQ0B,OAAOC,MACrEd,gBAAiBf,EAAME,QAAQ4B,KAAK,aAcnC,SAAS+mB,EAAKzxB,GAAsE,IAAD6/H,EAAA7/H,EAAlE8J,aAAK,IAAA+1H,EAAG,UAASA,EAAAC,EAAA9/H,EAAEpB,eAAO,IAAAkhI,EAAG,QAAOA,EAAE/hI,EAAQiC,EAARjC,SAAUU,EAAEuB,EAAFvB,GACxEmK,EAAQgW,cAEd,OACE/gB,cAAC6zB,EAAS,CAAC+tG,WAAY,CAAE31H,QAAOlL,WAAWH,GAAIA,EAAImK,MAAOA,EAAM7K,SAC7DA,M,gCCzDP,sGAAO,IAAKwzF,EAAW,SAAXA,GAAW,OAAXA,IAAW,+BAAXA,IAAW,uBAAXA,EAAW,KAoBX3C,EAAa,SAAbA,GAAa,OAAbA,IAAa,eAAbA,IAAa,eAAbA,IAAa,mBAAbA,IAAa,eAAbA,IAAa,iBAAbA,IAAa,aAAbA,IAAa,qBAAbA,EAAa,KAUbrsB,EAAkB,SAAlBA,GAAkB,OAAlBA,IAAkB,uBAAlBA,IAAkB,iBAAlBA,IAAkB,eAAlBA,IAAkB,mCAAlBA,IAAkB,6BAAlBA,IAAkB,2BAAlBA,IAAkB,yBAAlBA,IAAkB,qBAAlBA,IAAkB,6CAAlBA,IAAkB,qBAAlBA,IAAkB,8BAAlBA,EAAkB,M,iCCvE9B,yGAKaw9D,EAAgC,SAACt3E,GAC5C,OAAOA,EAAK9oD,KAAI,SAACwmC,GACf,IAAM/b,EAAQgnD,YAAoBjrC,EAAEphC,WAC9BopE,EAAMiD,YAAoBjrC,EAAEnhC,SAElC,MAAO,CACLqzE,QAASlyC,EAAE65F,UACX51G,MAAM,GAADtrB,OAAKiyE,YAAU3mD,GAAM,KAAAtrB,OAAIqnC,EAAE85F,WAAU,OAC1C9xD,IAAI,GAADrvE,OAAKiyE,YAAU5C,GAAI,KAAArvE,OAAIqnC,EAAE+5F,SAAQ,OACpC77G,MAAO8hB,EAAEg6F,WACTl1G,KAAM,WACNvB,UAAWC,IAAgBm4D,SAC3Bj4D,UAAW,CACTy3C,eAAgBn7B,EAAEi6F,mBAClB1tE,WAAYvsB,EAAE65F,UACdz+D,gBAAiBp7B,EAAEk6F,kBACnBh1G,QAAS,CAAEG,SAAU2a,EAAEm6F,YACvB5wH,MAAO6wH,EAAsBp6F,EAAEq6F,UAC/Bt+D,YAAa/7B,EAAEs6F,gBACfr2G,MAAM,GAADtrB,OAAKiyE,YAAU3mD,GAAM,KAAAtrB,OAAIqnC,EAAE85F,WAAU,OAC1C9xD,IAAI,GAADrvE,OAAKiyE,YAAU5C,GAAI,KAAArvE,OAAIqnC,EAAE+5F,SAAQ,QAEtCpmF,UAAW3T,EAAE65F,UAAY,UAAY,GACrCl2H,MAAO,UACPqG,GAAIg2B,EAAEh2B,GAAGymB,gBAKF2pG,EAAwB,SAAC7wH,GACpC,OAAQA,GACN,KAAKg1D,IAAeqqB,KAClB,OAAOH,IAAcG,KACvB,KAAKrqB,IAAezB,KAClB,OAAO2rB,IAAc31D,MACvB,KAAKyrC,IAAe89B,QAClB,OAAO5T,IAAc8xC,QACvB,KAAKh8D,IAAezrC,MAClB,OAAO21D,IAAc31D,MACvB,QACE,OAAO21D,IAAc7kE,SAIdi8C,EAA2B,SAACvjE,GACvC,MAAO,CACL61E,UAAU,GAADx5E,OAAKiyE,YAAUtuE,EAAQsC,WAAU,KAAAjG,OAAI2D,EAAQw9H,WAAU,OAChEpyD,QAAQ,GAAD/uE,OAAKiyE,YAAUtuE,EAAQuC,SAAQ,KAAAlG,OAAI2D,EAAQy9H,SAAQ,OAC1D77G,MAAO5hB,EAAQ09H,WACf95H,QAAS5D,EAAQ67G,KACjBh9C,eAAgB7+D,EAAQ29H,mBACxB1tE,WAAYjwD,EAAQu9H,UACpBz+D,gBAAiB9+D,EAAQ49H,kBACzBh1G,QAAS,CAAEG,SAAU/oB,EAAQ69H,WAAYvH,OAAO,EAAO34B,QAAS,GAAIjwF,GAAI,IACxET,MAAO6wH,EAAsB99H,EAAQ+9H,UACrCt+D,YAAaz/D,EAAQg+H,gBACrBtwH,GAAI1N,EAAQ0N,GAAGymB,WACfs5D,WAAY,GACZywC,WAAYl+H,EAAQm+H,cACpBl6G,YAAajkB,EAAQo+H,WACrBvvC,UAAU,EACV/6C,SAAU9zC,EAAQq+H,YAClBjxC,OAAQ,KACRz3C,OAAQ,GACR79B,QAAS,KACTinD,SAAU,GACVywB,UAAWxvF,EAAQs+H,sBACnB1tC,MAAO5wF,EAAQu+H,KACf3rH,MAAO5S,EAAQw+H,YACfp7H,OAAQpD,EAAQy+H,aAChBl7H,UAAWvD,EAAQ0+H,aACnB3gI,KAAM+wF,IAAYzP,SAClB9qD,KAAM,CACJ4I,OAAQn9B,EAAQ2+H,WAChBvmH,UAAWpY,EAAQ4+H,aACnBztC,QAASnxF,EAAQ6+H,aACjB5tC,OAAQjxF,EAAQ8+H,UAChB34H,MAAOnG,EAAQ++H,SACf7tC,MAAOlxF,EAAQg/H,gB,iCCpFrB,sDAIaC,EAA2B,SAAC3mH,GACvC,MAAO,CACLs9D,QAAQ,EACRjuD,MAAOgnD,YAAoBr2D,EAAKu9D,WAChCnK,IAAKiD,YAAoBr2D,EAAK8yD,SAC9BxpD,MAAM,GAADvlB,OAAKic,EAAKvb,OACfkqB,UAAWC,IAAgB43D,KAC3BznC,UAAW,UACXhwC,MAAO,UACPqG,GAAI4K,EAAK5K,GAAGymB,WACZ/M,UAAW9O,EACXkQ,KAAM,M,iCCaV,oEAAO,IAAK02G,EAAc,SAAdA,GAAc,OAAdA,IAAc,qBAAdA,IAAc,6BAAdA,IAAc,iCAAdA,EAAc,KA6DdC,EAAkB,SAAlBA,GAAkB,OAAlBA,IAAkB,qBAAlBA,IAAkB,6BAAlBA,IAAkB,iCAAlBA,EAAkB,M,gLCxF9BzkG,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAsBA,IAOM0N,EAAQC,YAAY,CACxBpS,KAAM,OACNqS,aAT8B,CAC9BC,WAAW,EACX9S,OAAO,EACP2lI,MAAO,GACP9mH,KAAM,MAMNvL,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,EAClBU,EAAMxT,OAAQ,GAGhB0c,WAAU,SAAClJ,GACTA,EAAMV,WAAY,GAIpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAIvBiyH,gBAAe,SAACpyH,EAAOE,GACrBF,EAAMV,WAAY,EAClBU,EAAMmyH,MAAQjyH,EAAOC,SAGvBkyH,aAAY,SAACryH,EAAOE,GAClBF,EAAMV,WAAY,EAClBU,EAAMqL,KAAOnL,EAAOC,YAMXhB,MAAa,QAGIA,EAAMwC,QAAvB0wH,aA2BR,IAAMC,EAAkB,SAACjnH,GAAe,OAAK,SAAC8nD,GACnD,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAAwD,IAAA,IAAAtmB,EAAAgmB,EAAAo+B,EAAApiD,EAAAnQ,EAAA,OAAAgtB,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgBo1B,EAAAjD,KAAA,EAAAiD,EAAAhL,KAAA,EAGdqO,IAAM32B,KAAyB,0BAA2BwJ,EAAM,CACrF4sB,QAAS,CAAEC,WAAW,KACrB,KAAD,EAFItD,EAAQO,EAAA9E,KAAA2iC,EAGSp+B,EAAS5e,KAAxBpF,EAAMoiD,EAANpiD,OAAQnQ,EAAEuyD,EAAFvyD,GAAE00B,EAAAuD,GAEV9nB,EAAMukB,EAAAhL,KAAAgL,EAAAuD,KACP+wC,IAAiB3vC,QAAO,GAAA3E,EAAAuD,KASxB+wC,IAAiB8oD,gBAAe,GAAAp9F,EAAAuD,KAGhC+wC,IAAiB+oD,qBAAmBr9F,EAAAuD,KACpC+wC,IAAiBgpD,kBADmB,GACF,iBANrB,OANhB7jH,EAASzP,EAAMwC,QAAQuH,cACP,IAAZmC,EAAK5K,IACP4K,EAAK5K,GAAKA,EACVmO,EAASquD,YAAS,CAAC+0D,YAAyB3mH,OACvCuD,EAASuuD,YAAY60D,YAAyB3mH,KAErD8nD,EAAU9nD,GAAM8pB,EAAA3E,OAAA,oBAG6C,OAA7D5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,6BAA6Bk1B,EAAA3E,OAAA,oBAIE,OAA/D5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,+BAA+Bk1B,EAAA3E,OAAA,oBAGf,OAAhD5hB,EAASzP,EAAMwC,QAAQ1B,SAAS20B,EAAS5e,OAAOmf,EAAA3E,OAAA,oBAAA2E,EAAAhL,KAAA,iBAAAgL,EAAAjD,KAAA,GAAAiD,EAAA29B,GAAA39B,EAAA,SAIpDvmB,EAASzP,EAAMwC,QAAQ1B,SAAS,mDAAgD,yBAAAk1B,EAAA/C,UAAA8C,EAAA,qBAKzEw9F,EAAa,SAACjyH,GAAU,OAAK,SAAC0yD,GACzC,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAA4G,IAAA,IAAA1pB,EAAAgmB,EAAA,OAAAnH,IAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgBw4B,EAAArG,KAAA,EAAAqG,EAAApO,KAAA,EAEdqO,IAAMR,IAAG,2BAAA5oC,OAAqCqR,GAAM,CACzEw3B,QAAS,CAAEC,WAAW,KACrB,KAAD,EAFItD,EAAQ2D,EAAAlI,KAAAkI,EAAAG,GAIN9D,EAAS5e,KAAIuiB,EAAApO,MACd,IADcoO,EAAAG,GACV,kBAIK,OAHZ9pB,EAASzP,EAAMwC,QAAQuH,cACvB0F,EAAS0uD,YAAY,CAAEC,QAAS98D,KAEhC0yD,IAAY56B,EAAA/H,OAAA,oBAGoC,OAAhD5hB,EAASzP,EAAMwC,QAAQ1B,SAAS20B,EAAS5e,OAAOuiB,EAAA/H,OAAA,oBAAA+H,EAAApO,KAAA,iBAAAoO,EAAArG,KAAA,GAAAqG,EAAAu6B,GAAAv6B,EAAA,SAIpD3pB,EAASzP,EAAMwC,QAAQ1B,SAAS,iDAA8C,yBAAAs4B,EAAAnG,UAAAkG,EAAA,sB,uHClJ9Eq6F,EAAa35H,YAAOipB,IAAPjpB,EAAmB,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,MAAQ,CACpDpH,MAAO,GACPiF,OAAQ,GACR4jD,SAAU,GACVhgD,QAAS,OACT0vH,OAAQ,UACR5rH,SAAU,SACVjN,SAAU,WACV9B,WAAY,SACZutB,eAAgB,SAChBnjB,aAAcZ,EAAMa,MAAM+2C,eAC1B72C,gBAAiBf,EAAME,QAAQc,WAAWyD,MAC1CkB,OAAO,aAADzP,OAAe8J,EAAME,QAAQmlB,SACnCnkB,MAAOlB,EAAME,QAAQiiB,QAAQI,KAC7B,QAAS,CAAE3pB,MAAO,OAAQiF,OAAQ,QAClC,UAAW,CACT05C,gBAAiB,8CACjB,qBAAsB,CAAE91C,QAAS,aAatB,SAAS4mD,EAASjxD,GAA4D,IAAzDgP,EAAShP,EAATgP,UAAW6hD,EAAM7wD,EAAN6wD,OAAQK,EAAQlxD,EAARkxD,SAAU1uC,EAAOxiB,EAAPwiB,QACzD5Z,EAAQgW,cAEd,OACE/gB,cAACwkI,EAAU,CACT7/G,QAASA,EACT/jB,GAAE7B,YAAA,GACIi0D,GAAU,CACZlnD,gBAAiBf,EAAME,QAAQorE,QAAQlpD,QACvClhB,MAAO,UACP,qBAAsB,CAAEA,MAAO,aAEjC/L,SAEDiR,EAAYnR,cAAC2vC,IAAgB,CAAC5uC,QAAQ,gBAAgBa,KAAM,UAAcyxD,M,iCCnDjF,gJAYMx/B,EAAYhpB,YAAOkuD,IAAPluD,EAAa,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,MAAQ,CAC7CyB,QAAS,OACTqrB,UAAW,OACXt2B,WAAY,SACZy3D,WAAYjuD,EAAMO,QAAQ,IAC1B+zB,cAAet0B,EAAMO,QAAQ,QAKhB,SAASszE,EAAOz8E,GAA4D,IAADsiI,EAAAtiI,EAAxD08E,uBAAe,IAAA4lD,GAAOA,EACtD,OACEzkI,cAAC6zB,EAAS,CAACrN,MAAM,mCAAkCtmB,SACjDF,cAACyhD,IAAS,CAAAvhD,SACRF,cAACq3D,IAAe,CAACxB,QAAQ,UAAU7uC,MAAI,EAAA9mB,SACrCQ,eAACC,IAAG,CAACC,GAAI,CAAEstB,SAAU,IAAKzqB,OAAQ,OAAQR,UAAW,UAAW/C,SAAA,CAC9DF,cAACm3D,IAAOC,IAAG,CAACV,SAAUJ,IAAYp2D,SAChCF,cAACc,IAAU,CAACC,QAAQ,KAAK03C,WAAS,EAAAv4C,SAAC,6CAIrCQ,eAACI,IAAU,CAACF,GAAI,CAAEqL,MAAO,kBAAmB/L,SAAA,CAAC,kEAE3CF,cAAA,SAAM,qCAIRA,cAACm3D,IAAOC,IAAG,CAACV,SAAUJ,IAAYp2D,SAChCF,cAACy+E,IAAwB,MAG1BI,GACC7+E,cAAC+uB,IAAM,CAAC8gC,GAAG,iBAAiBjuD,KAAK,QAAQb,QAAQ,YAAYgN,UAAWguD,IAAW77D,SAAC,yC,2FCTrFwkI,EAAwB,SAAC5gH,GACpC,MAAO,CACLxR,GAAIwR,EAAMxR,GACVia,MAAOzI,EAAMyI,MACb+jD,IAAKxsD,EAAMwsD,IACX9pD,MAAO1C,EAAM0C,MACblL,OAAQ,EACRq/D,SAAU,CACRQ,IAAKr3D,EAAMkI,UAAU1Z,GACrB8oE,IAAKt3D,EAAMkI,UAAU7D,SACrBkzD,UAAWv3D,EAAMkI,UAAUI,QAC3Bu4G,OAAQ,EACRrpH,OAAQ,EACRkS,QAAS,MAEX7qB,KAAM,EACNiD,YAAake,EAAMkI,UAAUpmB,YAC7BqG,MAAO,UACP24H,QAAQ,EACRl/F,UAAW,GACX55B,gBAAiB,GACjBshB,KAAM,OACN1iB,IAAK,GACLk+G,MAAM,EACNic,OAAQ,K,yBCmQG9iD,IAnSM,WACnB,IAAA+iD,EAAiE/yF,cAAzDypF,EAAYsJ,EAAZtJ,aAAyCC,GAAFqJ,EAAzBpJ,0BAAsCoJ,EAAXrJ,aAC3Ch7G,EAAWG,cACTwI,EAAuBC,cAAvBD,mBACR+iB,EAAwCzrB,aAAY,SAAC7O,GAAgB,OAAKA,EAAMmL,aAAxEA,EAASmvB,EAATnvB,UAAW7L,EAASg7B,EAATh7B,UAAW9S,EAAK8tC,EAAL9tC,MAC9BC,EAAoCC,mBAAoC,IAAGC,EAAAC,YAAAH,EAAA,GAApEymI,EAAUvmI,EAAA,GAAEwmI,EAAaxmI,EAAA,GAEhCS,qBAAU,WACR,IAAM84B,EAAYyjG,IAEZlyG,EAAkB,OAATtM,QAAS,IAATA,OAAS,EAATA,EAAWsM,OAAOnqB,QAC/B,SAACssB,GAAgB,OACf4kD,YAAa5kD,EAAIc,MAAO,IAAIjqB,QACnB,OAATy1B,QAAS,IAATA,OAAS,EAATA,EAAW+d,MACT,SAAC8G,GAAC,OACAA,EAAEz0B,WAAasD,EAAIO,UAAU7D,UAC7By0B,EAAEtqC,KAAOmZ,EAAIO,UAAU1Z,IACA,IAAvBsqC,EAAE7kB,UAAUrzB,cAIhB4kB,GAAQ07G,EAAc17G,KACzB,CAACtM,IAyBJ,IAAMioH,EAAiB,SACrB/b,EACAgc,GAIA,IAFA,IAAM57G,EAA6B,GAE1BrlB,EAAI,EAAGA,EAAIilH,EAAOxkH,OAAQT,IACjC,GAAIihI,EAAiBxgI,QAAUT,EAAG,CAChC,IAAIkhI,EAAWD,EAAiBjhI,GAEhCqlB,EAAOplB,KAAKkhI,EAAaD,EAAUjc,EAAOjlH,GAAIA,IAGlD,OAAOqlB,GAUH87G,EAAe,SAACD,EAAwBlxF,EAAWpgC,GACvD,OD9F8C,SAACiQ,EAAYjQ,GAC5C,MAAbiQ,EAAMwsD,MACRxsD,EAAMwsD,IAAG,GAAArvE,OAAM6iB,EAAMyI,MAAK,aAC1BzI,EAAMyI,MAAK,GAAAtrB,OAAM6iB,EAAMyI,MAAK,cAG9B,IAAM0uD,EACJ,CAAC1wD,IAAe2wD,KAAM3wD,IAAeiF,UAAUjwB,SAASukB,EAAM62D,SAASr/D,SACvE+0D,YAAa,IAAI/tE,KAAKwhB,EAAMyI,OAAQ,IAAIjqB,MAE1C,MAAO,CACLgQ,GAAIwR,EAAMxR,GACVkoE,QAAQ,EACRjuD,MAAOzI,EAAMyI,MACb+jD,IAAKxsD,EAAMwsD,IACX9pD,MAAO1C,EAAM0C,MACbwF,UAAW,CACT1Z,GAAIwR,EAAM62D,SAASQ,IACnBhzD,SAAUrE,EAAM62D,SAASS,IACzBhvD,QAAStI,EAAM62D,SAASU,UACxBz1E,YAAake,EAAMle,YACnBq1E,OAAQA,EACR3/D,OAAQwI,EAAM62D,SAASr/D,QAEzBuQ,UAAWC,IAAgBoH,SAC3BjnB,MAAOgvE,EAAS,UAAY,UAC5Bh/B,UAAWg/B,EAAS,UAAY,UAChC7tD,KAAM,ICmECi4G,CACL,CACE/yH,GAAIuB,EAAQ,IACZ0Y,MAAO2mD,YAAUj/B,GACjBq8B,IAAK,KACL9pD,MAAO2+G,EAASxjI,MAChBg5E,SAAU,CACRS,IAAK+pD,EAASh9G,SACdgzD,IAAKgqD,EAAS7yH,GACd+oE,UAAW8pD,EAAS/4G,QACpBxmB,YAAa,GACb0V,OAAQ6pH,EAAS7pH,WAkMzB,MAAO,CACLilB,OAtHa,SAAC0K,GAAyB,OAAK,SAAC+5B,GAA2B,IAADsgE,EAAAC,EAEjEL,EAAiC,QAAjBI,EAAG9J,WAAc,IAAA8J,OAAA,EAAdA,EAAgBnmI,QACvC,SAACmpC,GAAe,OACdA,EAAEpQ,YACsB,IAAvBoQ,EAAEvQ,UAAUrzB,QACX4jC,EAAEvQ,UAAU+d,MAAK,SAAC8G,GAAC,MACjB,CAACryB,IAAeE,OAAQF,IAAeiF,UAAUjwB,SAASq9C,EAAEthC,eAK9DkqH,EAA+B,QAAjBD,EAAG/J,WAAc,IAAA+J,OAAA,EAAdA,EAAgBpmI,QACrC,SAACmpC,GAAe,OACdA,EAAEpQ,WACFoQ,EAAEvQ,UAAU+d,MACV,SAAC8G,GAAC,OAAM,CAACryB,IAAeE,OAAQF,IAAeiF,UAAUjwB,SAASq9C,EAAEthC,cAK1E2vB,EAAQw6F,WAAaP,EAAkBxgI,OAGvC+b,EACEsoG,YAAgB99E,EAAhB89E,EAAyB,SAAC54E,EAAkB+4E,GAA2B,IAADwc,EAEhEC,EAAiBV,EAAe/b,EAAQgc,GAG9B,OAAdM,QAAc,IAAdA,KAAgB1jI,KAAI,SAACwmC,EAAGrkC,GAAC,OACvB0hI,EAAezhI,KAAKkhI,EAAa98F,EAAGA,EAAEvQ,UAAU,GAAGtL,eAAgBxoB,OAIrEwc,EACE0oG,YAAc,CACZ58F,MAAO2mD,YAAUjoC,EAAQwvC,WACzBnK,IAAK4C,YAAUjoC,EAAQ+kC,SACvBy1D,WAAYvc,EAAOxkH,OACnBmkH,YACkC,KAAb,QAAnB6c,EAAAz6F,EAAQ49E,mBAAW,IAAA6c,OAAA,EAAnBA,EAAqBhhI,QAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAKumC,EAAQ49E,YACtE14E,SAAUA,EACV24E,YAAa79E,EAAQ69E,YACrB8c,gBAAiBx8G,IAAqByjE,mCACtC+7B,KAAM39E,EAAQ29E,KACdic,OAAQ55F,EAAQ45F,OAAS55F,EAAQ45F,OAAS,GAC1Cj/H,YAAa,GACbgV,YAAa,EACb0O,OAAQq8G,EAAe7jI,KAAI,SAACwmC,GAAC,OAAKo8F,EAAsBp8F,MACxDggF,cAAe,IAdjBa,EAeG,WACD1oG,EAASolH,YAAsBF,IAC/B3gE,cAkER8gE,UA5LA,SAAC76F,GAAyB,OAAK,SAAC+5B,GAAyD,IAAD+gE,EAAAC,EAEhFd,EAAiC,QAAjBa,EAAGvK,WAAc,IAAAuK,OAAA,EAAdA,EAAgB5mI,QACvC,SAACmpC,GAAe,OACdA,EAAEpQ,YACsB,IAAvBoQ,EAAEvQ,UAAUrzB,QACX4jC,EAAEvQ,UAAU+d,MAAK,SAAC8G,GAAC,MACjB,CAACryB,IAAeE,OAAQF,IAAeiF,UAAUjwB,SAASq9C,EAAEthC,eAK9DkqH,EAA+B,QAAjBQ,EAAGxK,WAAc,IAAAwK,OAAA,EAAdA,EAAgB7mI,QACrC,SAACmpC,GAAe,OACdA,EAAEpQ,WACFoQ,EAAEvQ,UAAU+d,MACV,SAAC8G,GAAC,OAAM,CAACryB,IAAeE,OAAQF,IAAeiF,UAAUjwB,SAASq9C,EAAEthC,cAK1E2vB,EAAQw6F,WACNP,QAAyCvgI,IAArBugI,EAAiCA,EAAiBxgI,OAAS,EAGjF+b,EACEsoG,YAAgB99E,EAAhB89E,EAAyB,SAAC54E,EAAkB+4E,GAA2B,IAAD+c,EAEhEN,EAAiBV,EAAe/b,EAAQgc,GAG9B,OAAdM,QAAc,IAAdA,KAAgB1jI,KAAI,SAACwmC,EAAGrkC,GAAC,OACvB0hI,EAAezhI,KAAKkhI,EAAa98F,EAAGA,EAAEvQ,UAAU,GAAGtL,eAAgBxoB,OAGrE,IAAMikH,EAA0C,CAC9ClrG,UAAW,CACTuP,MAAO2mD,YAAUjoC,EAAQwvC,WACzBnK,IAAK4C,YAAUjoC,EAAQ+kC,SACvBy1D,WAAYvc,EAAOxkH,OACnBmkH,YACkC,KAAb,QAAnBod,EAAAh7F,EAAQ49E,mBAAW,IAAAod,OAAA,EAAnBA,EAAqBvhI,QAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAKumC,EAAQ49E,YACtE14E,SAAUA,EACV24E,YAAa79E,EAAQ69E,YACrB8c,gBAAiBx8G,IAAqByjE,mCACtC+7B,KAAM39E,EAAQ29E,KACdic,OAAQ55F,EAAQ45F,OAAS55F,EAAQ45F,OAAS,GAC1Cj/H,YAAa,GACbgV,YAAa,EACb0O,OAAQq8G,EAAe7jI,KAAI,SAACwmC,GAAC,OAAKo8F,EAAsBp8F,MACxDggF,cAAe,IAEjBqd,eAAgBA,GAGlB3gE,EAAUkjD,SAsIhBge,wBAjI8B,SAACj7F,GAAgC,OAAK,SAAC+5B,GACrEvkD,EACE0oG,YAAcl+E,EAAQjuB,UAAtBmsG,EAAiC,WAC/B1oG,EAASolH,YAAsB56F,EAAQ06F,iBACvC3gE,UA8HJ9M,OA7PF,SAAgB/vC,EAAkB7V,GAChC,IAAM6zH,EAAoB,OAATnpH,QAAS,IAATA,OAAS,EAATA,EAAWsM,OAAOnqB,QACjC,SAACssB,GAAG,OAAKA,EAAIO,UAAU7D,WAAaA,GAAY7V,IAAOmZ,EAAIO,UAAU1Z,MAEvE,GAAI6zH,GACEpB,IAAwB,OAAVA,QAAU,IAAVA,OAAU,EAAVA,EAAYrgI,QAAS,EAAG,CACxC,IAAM0hI,EAAsB,OAAVrB,QAAU,IAAVA,OAAU,EAAVA,EAAY5lI,QAC5B,SAACssB,GAAG,OAAKA,EAAIO,UAAU7D,WAAaA,GAAY7V,IAAOmZ,EAAIO,UAAU1Z,MAEvE,GAAI8zH,EAAW,OAAOA,EAE1B,OAAOD,GAmPPnkD,mBAAoBy5C,EACpBx5C,qBArD2B,SAACokD,GAAwB,OAAK,SAACrhE,GAA6B,IAADshE,EAClFC,EAAmB,OAATvpH,QAAS,IAATA,GAAiB,QAARspH,EAATtpH,EAAWsM,cAAM,IAAAg9G,OAAR,EAATA,EAAmBnnI,QAC/B,SAAC2kB,GAAK,QAEFA,EAAMkI,UAAU7D,WAAak+G,EAAYr6G,UAAU7D,UACnDrE,EAAMkI,UAAU1Z,KAAO+zH,EAAYr6G,UAAU1Z,OAI5C,OAAPi0H,QAAO,IAAPA,KAASriI,KAAKmiI,GAGd5lH,EACE0oG,YAAc,CACZ58F,MAAOvP,EAAWuP,MAClB+jD,IAAKtzD,EAAWszD,IAChBm1D,WAAYzoH,EAAWyoH,WACvB5c,YAAa7rG,EAAW6rG,YACxB14E,SAAUnzB,EAAWmzB,SACrB24E,YAAa9rG,EAAW8rG,YACxB8c,gBAAiB,EACjBhd,KAAM5rG,EAAW4rG,KACjBic,OAAQ,GACRj/H,YAAa,GACbgV,YAAa,EACb0O,OAAQi9G,EAASzkI,KAAI,SAACwmC,GAAC,OAAKo8F,EAAsBp8F,MAClDggF,cAAe,IAbjBa,EAcG,WACD1oG,EAASuuD,YAAYq3D,IACrBrhE,UAyBJ7zD,UAAWA,EACX+wE,aAAc6iD,EACd/nH,YACA3e,QACAmoI,gBAxBsB,WAAH,OAAS,SAACxhE,GAC7B,IAAMyhE,EAAkBr9G,IAExB3I,EACE2oG,YAAmB,CACjBluD,WAA2B,OAAfurE,QAAe,IAAfA,OAAe,EAAfA,EAAiBn0H,GAC7By8F,YAA4B,OAAf03B,QAAe,IAAfA,OAAe,EAAfA,EAAiB13B,aAFhCqa,EAGG,WACDpkD,a,iCC1SR,6FAqBM0hE,EAAyB,SAAHlmI,GAC1B,OAD4CA,EAAZ2zF,cAE9B,KAAKloE,IAAc06G,OACjB,OACE3mI,cAAC4zB,IAAK,CAAC3nB,MAAM,QAAQlL,QAAQ,QAAOb,SAAC,WAKzC,KAAK+rB,IAAcooE,QACjB,OACEr0F,cAAC4zB,IAAK,CAAC3nB,MAAM,UAAUlL,QAAQ,QAAOb,SAAC,eAK3C,KAAK+rB,IAAcssB,WACjB,OACEv4C,cAAC4zB,IAAK,CAAC3nB,MAAM,UAAUlL,QAAQ,QAAOb,SAAC,YAI3C,KAAK+rB,IAAco5C,YACjB,OACErlE,cAAC4zB,IAAK,CAAC3nB,MAAM,UAAUlL,QAAQ,QAAOb,SAAC,gCAI3C,QACE,OACEF,cAAC4zB,IAAK,CAAC3nB,MAAM,UAAUlL,QAAQ,QAAOb,SAAC,cAOlCg0F,EAAuB,SAAH/xF,GAUC,IAThC0yD,EAAU1yD,EAAV0yD,WACA4+B,EAAQtxF,EAARsxF,SACA/vB,EAAevhE,EAAfuhE,gBACA7xD,EAAK1P,EAAL0P,MACA4xD,EAActhE,EAAdshE,eACAY,EAAWliE,EAAXkiE,YACA8vB,EAAYhyF,EAAZgyF,aACAC,EAASjyF,EAATiyF,UACApkB,EAAO7tE,EAAP6tE,QAIM4jD,GAAanG,EAFOz1D,qBAAWw1D,KAA7BC,iBAIR,OAAI54D,EAEAn0D,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAAC0mI,EAAsB,CAACvyC,aAAcA,IACrCV,GACCzzF,cAAC4zB,IAAK,CAAC3nB,MAAM,OAAOlL,QAAQ,QAAOb,SAAC,cAOxCmkE,IAAgBovB,EAEhBzzF,cAAC4zB,IAAK,CAAC3nB,MAAM,UAAUlL,QAAQ,QAAOb,SAAC,gCAKvC2R,IAAUk/E,IAAcG,KACtBlhB,GAAWuD,YAAoBvD,GAAY4jD,EAE3C5zH,cAAC4zB,IAAK,CAAC3nB,MAAM,QAAQlL,QAAQ,QAAOb,SAAC,aAKrCk0F,GAAa7gB,YAAoB6gB,GAAcw/B,EAE/C5zH,cAAC4zB,IAAK,CAAC3nB,MAAM,QAAQlL,QAAQ,QAAOb,SAAC,6CAKrCujE,EAAiBC,GAAmB,EAEpC1jE,cAAC4zB,IAAK,CACJ3nB,MAAM,UACNlL,QAAQ,QAAOb,SAAA,iDAKjBF,cAAC4zB,IAAK,CAAC3nB,MAAM,UAAUlL,QAAQ,QAAOb,SAAA,GAAAe,OACpCwiE,EAAiBC,EAAe,6BAKpC7xD,IAAUk/E,IAAc31D,OAASq4D,EAEjCzzF,cAAC4zB,IAAK,CAAC3nB,MAAM,OAAOlL,QAAQ,QAAOb,SAAC,WAMtCF,cAAC4zB,IAAK,CAAC3nB,MAAM,QAAQlL,QAAQ,QAAOb,SAAC,gB,iCClIzC,6CAIe,SAASy6D,IACtB,IAAMisE,EAAY10G,kBAAO,GASzB,OAPAjzB,qBACE,kBAAM,WACJ2nI,EAAUloI,SAAU,KAEtB,IAGKkoI,I,uMCMM,SAAStrG,EAAc96B,GAOb,IANvB+6B,EAAM/6B,EAAN+6B,OACA55B,EAAKnB,EAALmB,MAAKklI,EAAArmI,EACLm7B,aAAK,IAAAkrG,GAAQA,EAAA1Z,EAAA3sH,EACbstB,kBAAU,IAAAq/F,EAAG,SAAQA,EAAA2Z,EAAAtmI,EACrBumI,mBAAW,IAAAD,EAAG,GAAEA,EAChBlc,EAAMpqH,EAANoqH,OAEAtsH,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GAEds/B,EAAc,WAClB3L,GAAQ,IAEJkE,EAAc,WAClBlE,GAAQ,IAOV,OAJAlzB,qBAAU,WACJ+nB,GAAQ4jG,GAAQA,MACnB,CAAC5jG,IAGFtmB,eAAAT,WAAA,CAAAC,SAAA,CACkB,WAAf4tB,GACC9tB,cAAC+uB,IAAM,CAAChuB,QAAQ,YAAYa,KAAM+5B,EAAQ,QAAU,SAAUhX,QAASmZ,EAAY59B,SAChE,KAAhB6mI,EAAqB,qBAAuBA,IAIjC,eAAfj5G,GACC9tB,cAACymB,IAAO,CAACD,MAAM,0DAAsDtmB,SACnEF,cAAC0mB,IAAW,CAAC/B,QAASmZ,EAAY59B,SAChCF,cAACgnI,IAAQ,QAKftmI,eAACqmB,IAAM,CACLC,KAAMA,EACNC,QAASoP,EACT8E,OAAO,QACP/qB,WAAY,CAAExP,GAAI,CAAE+C,MAAO,CAAE0qB,GAAI,EAAGC,GAAI,OAAUpuB,SAAA,CAElDQ,eAACU,IAAK,CAACyM,EAAG,IAAKpL,UAAU,MAAMlB,WAAW,SAAQrB,SAAA,CAChDF,cAACymB,IAAO,CAACD,MAAM,SAAQtmB,SACrBF,cAAC8zB,IAAU,CAACnP,QAAS0R,EAAaz1B,GAAI,CAAE4vB,GAAI,GAAItwB,SAC9CF,cAACo7B,IAAK,QAGV16B,eAACC,IAAG,CAAAT,SAAA,CACFF,cAACc,IAAU,CAACC,QAAQ,KAAIb,SACL,KAAhB6mI,EAAqB,qBAAuBA,IAE/CrmI,eAACI,IAAU,CAACC,QAAQ,QAAQH,GAAI,CAAEqL,MAAO,kBAAmB/L,SAAA,CACzDyB,EACD3B,cAAA,SACO,OAANu7B,QAAM,IAANA,OAAM,EAANA,EAAQpB,mBAKfn6B,cAACkO,IAAO,IAERlO,cAACg5F,IAAW,CAACpoD,SAAUva,EAAakF,OAAQA,Y,iCCnFpD,mKAyBe,SAAS8yE,EAAe7tG,GAIb,IAHxBq/F,EAAQr/F,EAARq/F,SACAj7F,EAAOpE,EAAPoE,QAAO26E,EAAA/+E,EACPg/E,eAAO,IAAAD,GAAQA,EAETx0E,EAAQgW,cACdorB,EAA4EzrB,aAC1E,SAAC7O,GAAgB,OAAKA,EAAM0N,UADtB5Y,EAA0BwlC,EAA1BxlC,2BAA4BC,EAAgBulC,EAAhBvlC,iBAAkBC,EAAiBslC,EAAjBtlC,kBAG9CuiB,EAAuBC,cAAvBD,mBACAjI,EAAqBL,cAArBK,iBAGR,IAAK0+E,QAAyBl7F,IAAbk7F,EACf,OAAO7/F,cAAAC,WAAA,IAGT,IAAMykD,EAAY75C,YAAO8jB,IAAP9jB,CAAa,CAC7Ba,QAAS8zE,GAAWr+D,EAAmB,GAAK,GAC5Czd,UAAW,GACX6M,UAAWxF,EAAMyF,cAAcs8F,MAG7Bm6B,EAAkB,EAClBC,EAAiB,EACjBC,EAAqB,EAIvBviI,IACCA,EAAQ+B,2BAA6B,GACpC/B,EAAQgC,iBAAmB,GAC3BhC,EAAQiC,kBAAoB,IAG9BogI,EAAkBriI,EAAQ+B,2BAC1BugI,EAAiBtiI,EAAQgC,iBACzBugI,EAAqBviI,EAAQiC,mBACpBg5F,IACTonC,EAAkBpnC,EAASl5F,2BAC3BugI,EAAiBrnC,EAASj5F,iBAC1BugI,EAAqBtnC,EAASh5F,mBAGhC,IAAIugI,EACFH,EAAkB,EAAkC,IAA7BtgI,EAAoCsgI,EAAkB,EAC3EI,EAAwBH,EAAiB,EAAwB,IAAnBtgI,EAA0BsgI,EAAiB,EACzFI,EACFH,EAAqB,EAAyB,IAApBtgI,EAA2BsgI,EAAqB,EAGxEC,EAAkC,MAAKA,EAAkC,KACzEC,EAAwB,MAAKA,EAAwB,KACrDC,EAAyB,MAAKA,EAAyB,KAE3D,IAAMC,EAAYjmH,YAAiC,OAARu+E,QAAQ,IAARA,OAAQ,EAARA,EAAUrgG,WAErD,OACEkB,eAACC,IAAG,CAAAT,SAAA,CACFF,cAACc,IAAU,CAACC,QAAQ,YAAY03C,WAAS,EAAAv4C,SAAC,kBAGrB,IAApB+mI,GAA4C,IAAnBC,GAA+C,IAAvBC,EAChDnnI,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAA,sBAAAe,OACE,OAATsmI,QAAS,IAATA,OAAS,EAATA,EAAWzlH,UAAS,uCAG1CphB,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAA,wEAAAe,OAEzB,CAAC,MAAO,OAAO1B,SAAiB,OAARsgG,QAAQ,IAARA,OAAQ,EAARA,EAAUC,oBAAsB,qBAAoB,GAAE,sEAGlF9/F,cAAC0kD,EAAS,CAAAxkD,SACPs/E,GAAWr+D,EACVzgB,eAAAT,WAAA,CAAAC,SAAA,CACG+mI,EAAkB,GACjBjnI,cAACi1H,IAAO,CACNzuG,MACExmB,cAACc,IAAU,CACTC,QAAQ,QACR6H,OAAQ,GACR+3C,aAAa,SAAQzgD,SAAA,eAAAe,OACTgmI,EAAe,uCAE/B75G,KACEptB,cAACwnI,EAAsB,CACrB1oI,MAAOsoI,EACPjuG,KAAI,GAAAl4B,OAAK0F,EAA0B,sCAAA1F,OACjC0F,EAA6B,EAAI,IAAM,QAMhDugI,EAAiB,GAChBlnI,cAACi1H,IAAO,CACNzuG,MACExmB,cAACc,IAAU,CACTC,QAAQ,QACR6H,OAAQ,GACR+3C,aAAa,SAAQzgD,SAAA,aAAAe,OACRimI,EAAc,qBAE/B95G,KACEptB,cAACwnI,EAAsB,CACrB1oI,MAAOuoI,EACPluG,KAAI,GAAAl4B,OAAK2F,EAAgB,SAAA3F,OACvB2F,EAAmB,EAAI,IAAM,GAAE,yBAAA3F,OACZ2F,EAAmB,EAAI,IAAM,QAKzDugI,EAAqB,GACpBnnI,cAACi1H,IAAO,CACNzuG,MACExmB,cAACc,IAAU,CACTC,QAAQ,QACR6H,OAAQ,GACR+3C,aAAa,SAAQzgD,SAAA,uCAAAe,OACYkmI,EAAkB,KAAAlmI,OACnDmoB,IAAqB0B,QAAO,+BAGhCsC,KACEptB,cAACwnI,EAAsB,CACrB1oI,MAAOwoI,EACPnuG,KAAI,WAAAl4B,OAAa4F,EAAiB,KAAA5F,OAChCmoB,IAAqB0B,QAAO,oEASxCpqB,eAAC02E,IAAI,CAAC9hC,WAAS,EAAChqC,QAAS,EAAEpL,SAAA,CACxB+mI,EAAkB,GACjBvmI,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACo3E,IAAI,CAACn/D,MAAI,EAACoW,GAAI,GAAIE,GAAI,EAAEruB,SACvBF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAA,eAAAe,OAAcgmI,EAAe,yCAE1DjnI,cAACo3E,IAAI,CAACn/D,MAAI,EAACoW,GAAI,GAAIE,GAAI,EAAGoyB,aAAa,SAAQzgD,SAC7CF,cAACymB,IAAO,CACND,MAAK,GAAAvlB,OAAK0F,EAA0B,sCAAA1F,OAClC0F,EAA6B,EAAI,IAAM,IACtCzG,SAEHF,cAACi3C,IAAc,CACbl2C,QAAQ,cACRkL,MAAM,UACNnN,MAAOsoI,WAMhBF,EAAiB,GAChBxmI,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACo3E,IAAI,CAACn/D,MAAI,EAACoW,GAAI,GAAIE,GAAI,EAAEruB,SACvBF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAA,aAAAe,OAAeimI,EAAc,uBAE1DlnI,cAACo3E,IAAI,CAACn/D,MAAI,EAACoW,GAAI,GAAIE,GAAI,EAAGoyB,aAAa,SAAQzgD,SAC7CF,cAACymB,IAAO,CACND,MAAK,GAAAvlB,OAAK2F,EAAgB,SAAA3F,OACxB2F,EAAmB,EAAI,IAAM,GAAE,yBAAA3F,OACZ2F,EAAmB,EAAI,IAAM,IAAK1G,SAEvDF,cAACi3C,IAAc,CACbl2C,QAAQ,cACRkL,MAAM,UACNnN,MAAOuoI,WAMhBF,EAAqB,GACpBzmI,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACo3E,IAAI,CAACn/D,MAAI,EAACoW,GAAI,GAAIE,GAAI,EAAEruB,SACvBF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAA,uCAAAe,OAAmCkmI,EAAkB,KAAAlmI,OAC9EmoB,IAAqB0B,QAAO,iCAGhC9qB,cAACo3E,IAAI,CAACn/D,MAAI,EAACoW,GAAI,GAAIE,GAAI,EAAGoyB,aAAa,SAAQzgD,SAC7CF,cAACymB,IAAO,CACND,MAAK,WAAAvlB,OAAa4F,EAAiB,KAAA5F,OACjCmoB,IAAqB0B,QAAO,iEAE1B5qB,SAEJF,cAACi3C,IAAc,CACbl2C,QAAQ,cACRkL,MAAM,UACNnN,MAAOwoI,sBAejC,IAAMr9C,EAAoBp/E,YAAO8kC,IAAP9kC,EAAyB,SAAA1I,GAAQ,MAAQ,CACjE8J,MADyD9J,EAAL4I,MACvCE,QAAQiiB,QAAQC,YAEzB+8D,EAAqBr/E,YAAO8kC,IAAP9kC,EAAyB,SAAAzI,GAAQ,MAAQ,CAClE6J,MAD0D7J,EAAL2I,MACxCE,QAAQiiB,QAAQI,KAC7BjqB,SAAU,WACViJ,KAAM,MAQR,SAASk7H,EAAsBl6H,GAAgD,IAA7CxO,EAAKwO,EAALxO,MAAOq6B,EAAI7rB,EAAJ6rB,KACjCpuB,EAAQgW,cAEd,OACE/gB,cAACymB,IAAO,CAACD,MAAO2S,EAAKj5B,SACnBQ,eAACC,IAAG,CAAC0C,SAAS,WAAWmJ,QAAQ,cAAatM,SAAA,CAC5CF,cAACiqF,EAAiB,CAAClpF,QAAQ,cAAca,KAAM,GAAI0pF,UAAW,EAAGxsF,MAAO,MACxEkB,cAACkqF,EAAkB,CACjBnpF,QAAQ,cACRjC,MAAOA,EACP8B,GAAI,CAAEqL,MAAOlB,EAAME,QAAQiiB,QAAQI,MACnC1rB,KAAM,Y,oRCtJV6lI,EAAqB,SAAHtlI,GAAwE,IAAlER,EAAKQ,EAALR,MAAOgB,EAAIR,EAAJQ,KAAMg0B,EAAKx0B,EAALw0B,MAAO+wG,EAAIvlI,EAAJulI,KAAMt6G,EAAIjrB,EAAJirB,KAAajrB,EAAP6oB,QAC5D,OACEtqB,eAACiuB,IAAI,CAAC/tB,GAAI,CAAEC,GAAI,GAAIX,SAAA,CAClBF,cAACumB,IAAU,CAACC,MAAOxmB,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAEyB,IAAqBoQ,OAAQqb,IACjFptB,cAACikD,IAAW,CAAA/jD,SACVQ,eAACU,IAAK,CAACqB,UAAW,MAAOlB,WAAY,SAAUutB,eAAgB,eAAe5uB,SAAA,CAC5EQ,eAACC,IAAG,CAAAT,SAAA,CACFQ,eAACI,IAAU,CAACC,QAAQ,YAAWb,SAAA,CAAC,kBAAgBy2B,KAC/C+wG,EAAO,GAAKhnI,eAACI,IAAU,CAACC,QAAQ,YAAWb,SAAA,CAAC,iBAAewnI,QAE9D1nI,cAACo4B,IAAI,CACHz2B,MAAO87B,YAAe96B,GAAMhB,MAC5BZ,QAAQ,WACRa,KAAK,QACLhB,GAAI,CAAE67B,WAAY,mBAQxBkrG,EAAiB,SAAHvlI,GAAwE,IAAlET,EAAKS,EAALT,MAAOgB,EAAIP,EAAJO,KAAMg0B,EAAKv0B,EAALu0B,MAAO+wG,EAAItlI,EAAJslI,KAAM18G,EAAO5oB,EAAP4oB,QAC1C5B,GADuDhnB,EAAJgrB,KAC5B/D,cAAvBD,oBAER,OACE1oB,eAACs6H,IAAQ,CAACzuE,OAAK,EAAArsD,SAAA,CACbF,cAAC26H,IAAS,CAAC/4H,KAAK,QAAQk5H,MAAM,OAAOl6H,GAAI,CAAE67B,WAAY,QAASv8B,SAC7DyB,IAEH3B,cAAC26H,IAAS,CAACG,MAAM,OAAM56H,SACrBF,cAACo4B,IAAI,CACHz2B,MAAO87B,YAAe96B,GAAMhB,MAC5BZ,QAAQ,WACRa,KAAK,QACLhB,GAAI,CAAE67B,WAAY,YAItBz8B,cAAC26H,IAAS,CAACG,MAAM,OAAOl6H,GAAI,CAAE67B,WAAY,QAASv8B,SAChD8qB,GAAW2L,GAAmB,KAAVA,EAAY,GAAA11B,OAC1BmqB,WAAWuL,EAAMluB,QAAQ,IAAK,MAAMswB,WAAWtwB,QAAQ,IAAK,KAAI,KAAAxH,OACjEmoB,IAAqB0B,SAEvB,KAEL48G,EAAO,GACN1nI,cAAC26H,IAAS,CAACG,MAAM,OAAOl6H,GAAI,CAAE67B,WAAY,QAASv8B,SAChDwnI,QAMIE,EArIqB,SAAHpnI,GAA2D,IAArDojB,EAAKpjB,EAALojB,MAAOwJ,EAAI5sB,EAAJ4sB,KACpCpM,EAAaF,cAAbE,SAEF6mH,EAAc,SAAC5vH,EAAqBmV,GACxC,IAAIuJ,EAAQ,GACR+wG,EAAO,EACP18G,GAAU,EAEd,OAAQ/S,EAAKtV,MACX,KAAK2lB,IAAkB4K,SACrB,IAAM40G,EAAQ7vH,EAA+BkR,aAC7C6B,EAAU88G,EAAK98G,QACf2L,EAAQmxG,EAAK/vG,UAAU/mB,OAAO,GAAG,GAAGxN,KACpCkkI,EAAOI,EAAK3vG,YACZ,MACF,KAAK7P,IAAkBgH,UAErBtE,EAAoB,MADpB2L,EAAS1e,EAA+BoX,UAAUsH,MAAMoC,YAK5D,MAAO,CACLp3B,MAAOsW,EAAKtW,MACZgB,KAAMsV,EAAKtV,KACXg0B,MAAOA,EACP+wG,KAAMA,EACNt6G,KAAMA,EACNpC,QAASA,IAGb,OAAIhK,EAEAhhB,cAAC6mB,IAAS,CAAA3mB,SACP0jB,EAAM9hB,KAAI,SAACmW,GACV,IAAMkhB,EAAO0uG,EAAY5vH,EAAMmV,GAC/B,OAAO26G,wBAACN,EAAkB1oI,wBAAA,GAAKo6B,GAAI,IAAEtoB,IAAKoH,EAAKkiB,kBAMrDn6B,cAAC6mB,IAAS,CAACjmB,GAAI,CAAEgI,OAAQ,KAAM1I,SAC7BF,cAACy6H,IAAc,CAAC75H,GAAI,CAAE4rD,SAAU,KAAMtsD,SACpCQ,eAAC02G,IAAK,CAACx1G,KAAK,QAAO1B,SAAA,CACjBF,cAAC06H,IAAS,CAAAx6H,SACRQ,eAACs6H,IAAQ,CAAA96H,SAAA,CACPQ,eAACi6H,IAAS,CAACG,MAAM,OAAM56H,SAAA,CACpB,IACDQ,eAACU,IAAK,CAACqB,UAAU,MAAMlB,WAAY,SAAUF,IAAK,GAAInB,SAAA,CACnDktB,EAAK,uBAGVptB,cAAC26H,IAAS,CAACG,MAAM,OAAM56H,SAAC,SACxBF,cAAC26H,IAAS,CAACG,MAAM,OAAM56H,SAAC,iBACxBF,cAAC26H,IAAS,CAACG,MAAM,OAAM56H,SAAC,qBAI5BF,cAAC+6H,IAAS,CAAA76H,SACF,OAAL0jB,QAAK,IAALA,OAAK,EAALA,EAAO9hB,KAAI,SAACmW,GACX,IAAMkhB,EAAO0uG,EAAY5vH,EAAMmV,GAC/B,OAAO26G,wBAACJ,EAAc5oI,wBAAA,GAAKo6B,GAAI,IAAEtoB,IAAKoH,EAAKkiB,0B,0DCxEnD6tG,EAAYn9H,YAAOwxC,IAAPxxC,EAAY,SAAArK,GAAQ,MAAQ,CAC5CyL,MADoCzL,EAALuK,MAClBE,QAAQiiB,QAAQI,KAC7BmP,WAAY,IACZjxB,SAAU,GACV,iBAAkB,CAChBM,gBAAiB,YACjBrI,OAAQ,OACRiI,QAAS,OACTC,aAAc,OA0CZs8H,EAAgB,SAAH7lI,GAA8E,IAAxE8lI,EAAc9lI,EAAd8lI,eAAgBC,EAAc/lI,EAAd+lI,eAAgBC,EAAYhmI,EAAZgmI,aACvD3+G,EAAgClrB,mBAAS,GAAEmrB,EAAAjrB,YAAAgrB,EAAA,GAApCkyB,EAAQjyB,EAAA,GAAEkyB,EAAWlyB,EAAA,GAM5B,OACEhpB,eAACC,IAAG,CAACC,GAAI,CAAEC,GAAI,EAAGoC,UAAW,UAAW/C,SAAA,CACtCQ,eAACq7C,IAAI,CACHj9C,MAAO68C,EACPK,eAAe,UACfC,UAAU,UACVosF,kBAAmB,CAAErlI,MAAO,CAAEwJ,QAAS,SACvCvO,SAXe,SAAC6lB,EAAYo4B,GAChCN,EAAYM,IAWRt7C,GAAI,CAAE,uDAAwD,CAAEg8B,EAAG,IACnEwf,0BAAwB,EAAAl8C,SAAA,CAExBF,cAACgoI,EAAS,CAACrmI,MAAOjB,eAAAT,WAAA,CAAAC,SAAA,CAAE,qBAAmBgoI,EAAexjI,OAAO,SAC5DyjI,EAAezjI,OAAS,GACvB1E,cAACgoI,EAAS,CAACrmI,MAAOjB,eAAAT,WAAA,CAAAC,SAAA,CAAE,yBAAuBioI,EAAezjI,OAAO,YAGrEhE,eAACC,IAAG,CAACC,GAAI,CAAEC,GAAI,GAAIX,SAAA,CACjBF,cAACs8C,IAAQ,CAACC,GAAiB,IAAbZ,EAAgB/6C,GAAI,CAAEqC,UAAW,QAAS/C,SACpDkoI,GAA0C,IAA1BF,EAAexjI,OAM/B1E,cAAC4nI,EAA2B,CAC1BhkH,MAAOskH,EACP96G,KAAMptB,cAACsoI,IAAyB,CAACr8H,MAAM,cAPzCvL,eAACqsB,IAAK,CAACC,SAAS,OAAOpsB,GAAI,CAAEqC,UAAW,QAAS/C,SAAA,CAC/CF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,sBAA8B,0EAUpEF,cAACs8C,IAAQ,CAACC,GAAiB,IAAbZ,EAAgB/6C,GAAI,CAAEqC,UAAW,QAAS/C,SACtDF,cAAC4nI,EAA2B,CAC1BhkH,MAAOukH,EACP/6G,KAAMptB,cAACuoI,IAAmB,CAACt8H,MAAM,qBAQ9Bu8H,EAlF8B,SAAHrmI,GAAwD,IAAlDqiB,EAAQriB,EAARqiB,SAC9ClmB,EAA0BC,mBAA+B,IAAGC,EAAAC,YAAAH,EAAA,GAArDslB,EAAKplB,EAAA,GAAEiqI,EAAQjqI,EAAA,GAChBkqI,EAAUC,cAEhB1pI,qBAAU,WAAO,IAAD2pI,EACRC,EACe,QADJD,EAAGF,EACjBI,SAAStkH,UAAS,IAAAokH,OAAA,EADDA,EAEhBzpI,QAAO,SAAC8E,GAAC,OAAKA,EAAE8kI,cAAgBC,IAAuBxtH,QAE3DitH,EAASI,KACR,CAACrkH,IAEJ,IAAM4jH,EAAoB,OAALxkH,QAAK,IAALA,OAAK,EAALA,EAAOkyB,MAAK,SAAC7xC,GAAC,OAAKA,EAAE8kI,cAAgBC,IAAuBC,WAE3Ef,EAAsB,OAALtkH,QAAK,IAALA,OAAK,EAALA,EAAOzkB,QAAO,SAAC8E,GAAC,OAAKA,EAAE8kI,cAAgBC,IAAuBE,aAC/Ef,EAAsB,OAALvkH,QAAK,IAALA,OAAK,EAALA,EAAOzkB,QAAO,SAAC8E,GAAC,OAAKA,EAAE8kI,cAAgBC,IAAuBG,aAErF,OACEnpI,cAACW,IAAG,CAACC,GAAI,CAAEC,GAAI,KAAMX,SACnBF,cAACioI,EAAa,CACZG,aAAcA,EACdF,eAAgBA,EAChBC,eAAgBA,OCLT5jH,IApCuB,SAAH/jB,GAKQ,IAJzCN,EAAQM,EAARN,SACAskB,EAAQhkB,EAARgkB,SAEAC,GADIjkB,EAAJ3B,KACgB2B,EAAhBikB,kBAEAnmB,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GAUpB,OACEkC,eAACC,IAAG,CAAAT,SAAA,CACDA,GAVc,WACjBiyB,GAAQ,MAUNzxB,eAACutB,IAAM,CAACjH,KAAMA,EAAMkH,SAAS,KAAKxsB,WAAS,EAAAxB,SAAA,CACzCF,cAACq3B,IAAoB,CAAC7Q,MAAO,qBAAmBlU,GAAG,MAAM2U,QAR3C,WAClBkL,GAAQ,IAO0EjyB,SAC5EF,cAACc,IAAU,CAACC,QAAQ,UAAUgN,UAAW,MAAM7N,SAAC,oGAKlDQ,eAACytB,IAAa,CAAAjuB,SAAA,CACXukB,EAEDzkB,cAACwoI,EAAoC,CAAChkH,SAAUA,e,gCC/B1D,sGAAO,IA0BK4kH,EAAqB,SAArBA,GAAqB,OAArBA,IAAqB,uBAArBA,IAAqB,qBAArBA,EAAqB,KA4FrBt9G,EAAe,SAAfA,GAAe,OAAfA,IAAe,qCAAfA,IAAe,+BAAfA,IAAe,uBAAfA,IAAe,uBAAfA,IAAe,aAAfA,IAAe,qBAAfA,IAAe,eAAfA,IAAe,yCAAfA,IAAe,+CAAfA,IAAe,qBAAfA,IAAe,4BAAfA,EAAe,KAcfs1D,EAAY,SAAZA,GAAY,OAAZA,IAAY,uBAAZA,IAAY,iBAAZA,IAAY,eAAZA,EAAY,M,iCCpJxB,4DASe,SAAS8B,EAAoB1iF,GAIb,IAH7B8a,EAAM9a,EAAN8a,OACArP,EAAKzL,EAALyL,MAAK44G,EAAArkH,EACLmC,KAEIhB,EAAQ,GACZ,YAHI,IAAAkjH,EAAGh4F,IAAagD,SAAQg1F,GAI1B,KAAKh4F,IAAaoD,gBAEhB,OADAtuB,EAAQ,WACD,CAAC4oB,IAAeC,WAAWjrB,SAAS+b,GACzC5a,eAACkzB,IAAK,CAAC3nB,MAAM,UAAS/L,SAAA,CAAEyB,EAAM,oBAE9BjB,eAACkzB,IAAK,CAAC3nB,MAAM,UAAS/L,SAAA,CAAEyB,EAAM,wBAIlC,KAAKkrB,IAAamD,YAChBruB,EAAQ,mBACR,MACF,KAAKkrB,IAAaC,UAChBnrB,EAAQ,2BACR,MACF,KAAKkrB,IAAaiD,MAChBnuB,EAAQ,sBACR,MACF,QACEA,EAAQ,gBAIZ,OAAQ2Z,GACN,KAAKiP,IAAeC,UAClB,OAAO9pB,eAACkzB,IAAK,CAAC3nB,MAAM,UAAS/L,SAAA,CAAEyB,EAAM,YACvC,KAAK4oB,IAAegF,OACpB,KAAKhF,IAAe8+G,GAClB,OAAO3oI,eAACkzB,IAAK,CAAC3nB,MAAM,UAAS/L,SAAA,CAAEyB,EAAM,6BACvC,KAAK4oB,IAAe+kG,WAClB,OAAO5uH,eAACkzB,IAAK,CAAC3nB,MAAM,UAAS/L,SAAA,CAAEyB,EAAM,mBACvC,KAAK4oB,IAAeE,OAClB,OAAO/pB,eAACkzB,IAAK,CAAC3nB,MAAM,QAAO/L,SAAA,CAAEyB,EAAM,mBACrC,KAAK4oB,IAAeiF,SAClB,OAAO9uB,eAACkzB,IAAK,CAAC3nB,MAAM,QAAO/L,SAAA,CAAEyB,EAAM,iBACrC,QACE,OAAO3B,cAAC4zB,IAAK,CAAC3nB,MAAOA,GAAgB,UAAU/L,SAAEyB,O,uMCzBxC,SAASs9B,EAASz+B,GAAiE,IAAD8oI,EAAA9oI,EAA7Dw+B,gBAAQ,IAAAsqG,EAAG,GAAEA,EAAAnc,EAAA3sH,EAAEstB,kBAAU,IAAAq/F,EAAG,SAAQA,EAC9D7yG,EAAWwhB,cAAXxhB,OAEFyd,GAAY2jG,EADoB3pF,cAA9B2pF,6BAEF6N,EAAkB,OAANjvH,QAAM,IAANA,OAAM,EAANA,EAAQnb,QAAO,SAAC6jB,GAAC,OAAKgc,EAASz/B,SAASyjB,EAAE1Q,KAA2B,IAApB0sB,EAASt6B,UAG5EpG,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GACds/B,EAAc,WAClB3L,GAAQ,IAMV,OACEzxB,eAAAT,WAAA,CAAAC,SAAA,CACkB,WAAf4tB,IAAoC,OAATy7G,QAAS,IAATA,OAAS,EAATA,EAAW7kI,QAAS,GAC9C1E,cAAC+uB,IAAM,CAAChuB,QAAQ,OAAO4jB,QAASmZ,EAAY59B,SAC1CQ,eAACU,IAAK,CAACE,cAAc,MAAMkL,QAAQ,OAAOjL,WAAW,SAAQrB,SAAA,CAC3DF,cAACwpI,IAAQ,IAAG,IAACxpI,cAAC8mB,IAAO,CAACnjB,MAAM,SAAQzD,SAAC,wBAI3B,eAAf4tB,IAAwC,OAATy7G,QAAS,IAATA,OAAS,EAATA,EAAW7kI,QAAS,GAClD1E,cAACymB,IAAO,CAACD,MAAM,8CAAuCtmB,SACpDF,cAAC0mB,IAAW,CAAC/B,QAASmZ,EAAY59B,SAChCF,cAACg7B,IAAK,CAACC,aAAc+D,EAASt6B,OAAQ3D,QAAQ,WAAWkL,MAAM,UAAS/L,SACtEF,cAACwpI,IAAQ,CAACh+H,SAAS,gBAKX,eAAfsiB,IAAwC,OAATy7G,QAAS,IAATA,OAAS,EAATA,EAAW7kI,QAAS,GAClD1E,cAACo4B,IAAI,CACHnsB,MAAM,UACNrK,KAAK,QACLD,MAAK,GAAAV,OAAKqZ,EAAO5V,OAAM,sCACvB0oB,KAAMptB,cAACwpI,IAAQ,CAACh+H,SAAS,YAIb,YAAfsiB,EACC9tB,cAACypI,IAAW,CAACnvH,OAAQivH,EAAWxxG,UAAWA,EAAWiQ,OAAQhhB,EAAMC,QAhCtD,WAClBkL,GAAQ,MAiCJnyB,cAAC0pI,IAAa,CAACpvH,OAAQivH,EAAWxxG,UAAWA,S,0HCvErDuH,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAgFe45F,IApES,SAAH18F,GAAqD,IAA/CyqC,EAAOzqC,EAAPyqC,QAAS/qC,EAAQM,EAARN,SAClC5B,EAA8BC,oBAAS,GAAKC,EAAAC,YAAAH,EAAA,GAArC0wC,EAAOxwC,EAAA,GAAE60C,EAAU70C,EAAA,GAC1BirB,EAA0BlrB,mBAAyB,CACjDqgI,MAAM,EACNC,aAAa,EACbj5H,YAAa,GACb+4H,MAAO,GACPtjC,aAAc,GACd54E,OAAQknH,IAAaC,WACrBt3H,GAAI24B,EAAQivB,OACZE,MAAOnvB,EAAQmvB,MACf6jE,OAAQhzF,EAAQkvB,SAChBzwC,EAAAjrB,YAAAgrB,EAAA,GAVK5X,EAAK6X,EAAA,GAAE+I,EAAQ/I,EAAA,GAYtBzqB,qBAAU,WAAO,IAAD4qI,GACd,YAAkCA,KAAAtjG,YAAAjH,IAAAiE,MAAjC,SAAAiD,IAAA,IAAAC,EAAAhkB,EAAA,OAAA6c,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAEoB,OAFpB0K,EAAA3C,KAAA,EAEGsP,GAAW,GAAM3M,EAAA1K,KAAA,EACM4N,IAAcl2B,KAAI,mBAAqCu3B,GAAS,KAAD,EAAhFxE,EAAQC,EAAAxE,KACNzf,EAAWgkB,EAAS5e,KAApBpF,OAAMikB,EAAA6D,GAEN9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACPo/F,IAAah+F,QAAO,EAAAjF,EAAA6D,KAIpBo/F,IAAaG,iBAAgB,mBAFd,OADlBr3G,EAASgU,EAAS5e,MAClBwrB,GAAW,GAAO3M,EAAArE,OAAA,oBAGA,OAAlBgR,GAAW,GAAO3M,EAAArE,OAAA,oBAAAqE,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAItB2M,GAAW,GAAO,yBAAA3M,EAAAzC,UAAAuC,EAAA,oBAErBM,MAAA,KAAAriC,WAlBD,KAmBC,CAACwmC,IAEJ,IAAMkyD,EAAYz8B,uBAAY,WAC5B,IAAIjS,GAAK,EAQT,OANA58C,EAAMwpF,aAAav5F,KAAI,SAACoY,GACF,OAAhBA,EAAE6vH,WAAsB7vH,EAAE6vH,UAAUrlI,OAAS,IAC/C+pD,GAAK,MAIFA,IACN,CAACxjB,EAASp5B,EAAMwpF,eAEnB,OAAIrsD,EAEAhvC,cAAAC,WAAA,CAAAC,SACEF,cAACinC,IAAkB,MAIrBp1B,EAAM4Q,SAAWknH,IAAah+F,QAE9B3rC,cAACm2H,IAAqB,CAAC3vG,MAAO,GAAGtmB,SAC/BF,cAAC+sB,IAAK,CAACC,SAAS,QAAO9sB,SAAC,4FAOvBF,cAAAC,WAAA,CAAAC,SAAGA,EAAS2R,EAAOsrF,S,iCC9E5B,+FAYMtpE,EAAYhpB,YAAOlK,IAAPkK,EAAY,SAAArK,GAAQ,MAAQ,CAC5C6L,aAAc,EACdP,gBAFoCtL,EAALuK,MAERE,QAAQ4B,KAAK,SAOhCm9H,GAJan/H,YAAO/J,IAAP+J,EAAmB,SAAA1I,GAAQA,EAAL4I,MAAK,MAAQ,CACpDW,QAAS,MAGOb,YAAOs9B,IAAPt9B,EAAa,SAAAzI,GAAQA,EAAL2I,MAAK,MAAQ,CAC7CW,QAAS,OAeI,SAASkZ,EAAoBtX,GAIb,IAH7BsW,EAAKtW,EAALsW,MACApJ,EAAUlN,EAAVkN,WACAyvH,EAAY38H,EAAZ28H,aAEA,OACEjqI,cAAAC,WAAA,CAAAC,SACEF,cAAC6zB,EAAS,CAAA3zB,SACRF,cAACgqI,EAAS,CAAA9pI,SACP0jB,EAAM9hB,KAAI,SAACmW,GACV,OACEvX,eAACC,IAAG,CAAgC2R,GAAE,SAAArR,OAAWgX,EAAKpH,KAAM3Q,SAAA,CAC1DF,cAACkO,IAAO,CAACnN,QAAQ,YAAYgN,UAAU,OACvC/N,cAACqsH,IAAe,CAACp0G,KAAMA,EAAMuC,WAAYA,EAAYuiC,KAAMktF,MAAgB,cAAAhpI,OAFrDgX,EAAKpH,YAMvB,eAAA5P,OAV2B,OAAVuZ,QAAU,IAAVA,OAAU,EAAVA,EAAYlI,S,iCC5CjD,oBAOeutG,IAFK,WAAH,OAAS7nD,qBAAWkyE,O,oQC4BxBlsC,EAAwB,SAAHx9F,GAA4C,IAAtCimC,EAAQjmC,EAARimC,SAAUxf,EAAOzmB,EAAPymB,QACxCqlB,EAAoBC,cAApBD,gBACRhuC,EAA0BC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAlCiuB,EAAK/tB,EAAA,GAAE2rI,EAAQ3rI,EAAA,GACtBirB,EAA0BlrB,oBAAS,GAAMmrB,EAAAjrB,YAAAgrB,EAAA,GAAlC2gH,EAAK1gH,EAAA,GAAE2gH,EAAQ3gH,EAAA,GAEtBwxE,EAaIC,YAAU,CACZlwD,QAASxE,EACT20D,OAAQ,eAdRC,EAAYH,EAAZG,aACAp9F,EAAQi9F,EAARj9F,SACAq9F,EAAcJ,EAAdI,eACAC,EAAqBL,EAArBK,sBACAC,EAAeN,EAAfM,gBACAC,EAAIP,EAAJO,KAGAj1E,GAFiB00E,EAAjBQ,kBACWR,EAAXt1F,YACKs1F,EAAL10E,OACAg/B,EAAI01C,EAAJ11C,KACAq5E,EAAW3jC,EAAX2jC,YACAmB,EAAe9kC,EAAf8kC,gBAMFsK,ECjDsC,SACtCr/F,EACAowD,GAEA,IAAA/8F,EAAoCC,mBAAS,GAAEC,EAAAC,YAAAH,EAAA,GAAxCoY,EAAUlY,EAAA,GAAEwxD,EAAaxxD,EAAA,GAChCirB,EAA0BlrB,mBAAwB,IAAGmrB,EAAAjrB,YAAAgrB,EAAA,GAA9CgnC,EAAK/mC,EAAA,GAAE6gH,EAAQ7gH,EAAA,GAEtBzqB,qBAAU,WACR+wD,EAAc,KACb,CAAC/kB,IAEJ,IAgBM4lB,EAAa6P,uBAAY,WAC7B,IAAI7P,GAAa,EAMjB,OALIwqC,GACFmvC,GAAa,SAACznI,GACZ8tD,GAAuB,IAAV9tD,KAGV8tD,IACN,CAACwqC,EAAc3kF,IAEZ+zH,EAAc,WAClBD,GAAa,SAACznI,GACZ,IAAM2nI,EAAYrvC,EAAasvC,WAAU,SAACzwH,GAAC,OAAKA,EAAE5H,KAAOvP,KACrD2nI,EAAY,GAAG16E,EAAc06E,OAI/BF,EAAe,SAACI,GACpB,IAAMlsI,EAAU28F,EAAa3kF,GAE7B,IAAIhY,EAAQqrI,UAaL,OAAOa,GAAY,GAZxBlsI,EAAQqrI,UAAUjoI,KAAI,SAAC+oI,GACrB,OAAIA,EAASC,WACJD,EAASC,WAAWhpI,KAAI,SAACoY,GAC9B,IAAMmhB,EAAW38B,EAAQq9F,WAAWnxE,MAAK,SAACmQ,GAAC,OAAKA,EAAEzoB,KAAO4H,EAAE6wH,cAC3D,IAAY,OAAR1vG,QAAQ,IAARA,OAAQ,EAARA,EAAUu/F,WAAW1gH,EAAErG,OAAOohB,WAAY/a,EAAEpb,MAC9C,OAAO8rI,EAAWC,EAAS9nI,SAIxB6nI,EAAWC,EAAS9nI,UAYnC,MAAO,CACLs4F,eACA3kF,aACAm6C,aACA+qC,aArDmB,WACnB,OAAOP,EAAavqF,QAClB,SAAC+qF,EAAcC,GAAc,OAAKD,EAAeC,EAAeC,WAAWr3F,SAC3E,IAmDFs3F,WA1DiB,WACjBhsC,EAAcS,EAAM3sB,OAAS,IA0D7Bo4D,WAhEiB,WACjBquC,GAAS,SAACS,GAAG,SAAA/pI,OAAA2W,YAASozH,GAAG,CAAEt0H,OAC3B+zH,KA+DAtuC,cAboB,WACpB,IAAI9iC,EAAyB,GAE7B,OADAgiC,EAAav5F,KAAI,SAACkhB,EAAGnP,GAAK,OAAKmP,EAAE+4E,WAAWj6F,KAAI,SAACod,GAAM,OAAKm6C,EAAQn1D,KAAKgb,SAClEm6C,EAAQ3iD,KDjBwDu0H,CACvExkG,EACA40D,GAFM3kF,EAAU4zH,EAAV5zH,WAA0BslF,GAAFsuC,EAAZ1uC,aAAwB0uC,EAAVtuC,YAAYE,EAAUouC,EAAVpuC,WAAYrrC,EAAUy5E,EAAVz5E,WAS1D,IAAKguE,IAAgBr5E,GAAQ4kF,GAC3B,OACEpqI,cAACm2H,IAAqB,CAAC3vG,MAAOA,EAAMtmB,SAClCF,cAAC+sB,IAAK,CAACC,SAAS,UAAS9sB,SACtBkqI,EACG,2CACA,oDAKZ,IAAK79G,KAAWsyG,IAAgBr5E,GAC9B,OACE9kD,eAACy1H,IAAqB,CAAC3vG,MAAOA,EAAMtmB,SAAA,CAClCF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAC,sBAC5BF,cAACc,IAAU,CAACC,QAAQ,QAAQ03C,WAAS,EAAAv4C,SAAC,4FAGtCF,cAACW,IAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQsiB,eAAgB,SAAUjuB,GAAI,GAAIX,SAC5DF,cAAC+uB,IAAM,CAACntB,KAAK,QAAQb,QAAQ,YAAY4jB,QAvB7B,WAClBwlH,GAAS,IAsB2DjqI,SAAC,mBAQvE,IAuBMgrI,EAAkBlL,EAAgB3kC,EAAa3kF,IAErD,OACEhW,eAACiuB,IAAI,CAAC/tB,GAAI,CAAEiN,EAAG,GAAI3N,SAAA,CACjBF,cAACqxC,IAAQ,CACPrhC,aAAc,CAAEC,SAAU,MAAOC,WAAY,UAC7C8W,MAAM,EACN/a,MAAM,OACN2G,QAAS4T,IAGE,OAAZ60E,QAAY,IAAZA,OAAY,EAAZA,EAAcv5F,KAAI,SAACoY,EAAGjW,GACrB,OAAIA,IAAMyS,EAAmB1W,cAACW,IAAG,mBAAAM,OAAsBiZ,EAAE5H,GAAKrO,IAE5DjE,cAACw8F,IAAkB,CAEjBnmF,SAAU6D,EACVtZ,GAAI,CACF6C,OAAQ,EACRgrB,UAAW,OACXne,SAAU,OACV,yBAA0B,CAAEzC,EAAG,KAC/B3N,SAED,SAACgf,EAAQu9E,EAAgB5oF,GACxB,OACE7T,cAACmrI,EAAc,CACbjsH,OAAQA,EACRu9E,eAAgBA,EAChB5oF,MAAOA,EACPspF,WAAW,EAAKj9F,SAEhBF,cAAC08F,IAAW,CACVx9E,OAAQA,EACR0Y,YAAY,EACZ/jB,MAAOA,EAEP5V,SAAU,SAACa,GAAa,OAAKb,EAASic,EAAE5H,GAAI4M,EAAO5M,GAAIxT,IACvDw8F,eAAgB,SAACx8F,GAAa,OAAKw8F,EAAephF,EAAE5H,GAAI4M,EAAO5M,GAAIxT,IACnE69F,mBAAoB,SAACrqF,EAAYxT,GAAa,OAC5Cy8F,EAAsBrhF,EAAE5H,GAAI4M,EAAO5M,GAAIA,EAAIxT,IAE7C08F,gBAAiB,SAAC18F,EAAem2B,GAAgB,OAC/CumE,EAAgBthF,EAAE5H,GAAI4M,EAAO5M,GAAIxT,EAAOm2B,IAE1C2nE,QAAS,SAACnuC,MATL56C,OAaZ,gBAAA5S,OAlCoBiZ,EAAE5H,GAAKrO,OAsClCvD,eAACsxD,IAAW,CAACpxD,GAAI,CAAEkuB,eAAgB,iBAAkB5uB,SAAA,CACnDF,cAAC+uB,IAAM,CAACpK,QAASq3E,EAAY/5F,SAAyB,IAAfyU,EAAkB3V,QAAQ,YAAYa,KAAK,QAAO1B,SAAC,oBAIzF2wD,KACC7wD,cAAC+uB,IAAM,CAAChuB,QAAQ,YAAYkB,SAAUipI,EAAiBtpI,KAAK,QAAQ+iB,QAlFzD,WACbk6G,EACFvyF,EAAgB,yDAAuD,CACrEvrC,QAAS,YAKb0f,YACEg7E,KAAO,WAELnvD,EAAgB,4CAA6C,CAAEvrC,QAAS,YACxEspI,GAAS,GACTpjH,GAAWA,MAJbw0E,EAKG,WACDnvD,EACE,wFACA,CAAEvrC,QAAS,eAiE6Eb,SAAC,aAKzF2wD,KACA7wD,cAAC+uB,IAAM,CAACpK,QAASu3E,EAAYj6F,SAAUipI,EAAiBnqI,QAAQ,YAAYa,KAAK,QAAO1B,SAAC,mBAetFirI,EAAiB,SAAHhpI,GAMC,IAL1B+c,EAAM/c,EAAN+c,OACAu9E,EAAct6F,EAAds6F,eACA5oF,EAAK1R,EAAL0R,MACA3T,EAAQiC,EAARjC,SACAi9F,EAASh7F,EAATg7F,UAEA,OAAIV,EAAuBz8F,cAAAC,WAAA,CAAAC,SAAGA,IAG5BQ,eAACU,IAAK,CACJqB,UAAW,SACXlB,WAAY,OACZutB,eAAgB,gBAChBztB,IAAI,MACJT,GAAI,CAAEg5B,GAAI,GAAI15B,SAAA,CAEdF,cAACu6H,IAAuB,CACtB/zG,MAAOtH,EAAOmc,SACd8nC,WAAYjkD,EAAOikD,WACnBtvD,MAAOA,GAASspF,EAAY,EAAI,KAElCn9F,cAACW,IAAG,CAAC2R,GAAE,YAAArR,OAAcie,EAAO5M,IAAKpS,SAAEA,S,iCE7MzC,oEAAO,IAAKkrI,EAAgB,SAAhBA,GAAgB,OAAhBA,IAAgB,+BAAhBA,IAAgB,qBAAhBA,EAAgB,KAiBhBC,EAAkB,SAAlBA,GAAkB,OAAlBA,IAAkB,uBAAlBA,IAAkB,qBAAlBA,EAAkB,M,8JC5B9B/rG,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAWA,IAQM0N,EAAQC,YAAY,CACxBpS,KAAM,UACNqS,aAViC,CACjCC,WAAW,EACX9S,OAAO,EACPshB,QAAS,KACTsK,SAAU,KACViH,MAAO,IAMPvf,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,EAClBU,EAAM8N,QAAU,KAChB9N,EAAMoY,SAAW,KACjBpY,EAAMqf,MAAQ,IAGhBnW,WAAU,SAAClJ,GACTA,EAAMV,WAAY,GAIpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAGvB2sE,WAAU,SAAC9sE,EAAOE,GAAS,IAADu5H,EACxBz5H,EAAMV,WAAY,EAClBU,EAAM8N,QAAU5N,EAAOC,QAAQ2N,QAC/B9N,EAAMoY,SAA2C,QAAnCqhH,EAAGv5H,EAAOC,QAAQ2N,QAAQyvG,iBAAS,IAAAkc,OAAA,EAAhCA,EAAkCnsI,QACjD,SAAC+a,GAAW,OAAKA,EAAExb,WACnB,GACFmT,EAAMqf,MAAQnf,EAAOC,QAAQkf,OAE/Bq6G,UAAS,SAAC15H,EAAOE,GACfF,EAAM8N,QAAU,KAChB9N,EAAMoY,SAAW,SAUhB,SAAS00D,EAAWztD,GACzB,OAAAqV,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,IAAAC,EAAA+9B,EAAA/hD,EAAA9C,EAAA,OAAA2f,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OACkC,OAAvCvb,YAASzP,EAAMwC,QAAQ5B,gBAAgB80B,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAGd4N,IAAcC,IAAqB,4BAA6B,CACrFC,QAAS,CAAE2hE,cAAc,UAADxqG,OAAYiwB,MACnC,KAAD,EAFIuV,EAAQC,EAAAxE,KAAAsiC,EAGc/9B,EAAS5e,KAA7BpF,EAAM+hD,EAAN/hD,OAAQ9C,EAAO6kD,EAAP7kD,QAAO+mB,EAAA6D,GAEf9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACPihG,IAAc7/F,QAAO,kBAC+C,OAAvElrB,YAASzP,EAAMwC,QAAQmrE,WAAW,CAAEh/D,QAASA,EAASuR,MAAOA,KAAUwV,EAAArE,OAAA,oBAGhC,OAAvC5hB,YAASzP,EAAMwC,QAAQ1B,UAAS,IAAO40B,EAAArE,OAAA,oBAAAqE,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAI3CpN,QAAQC,IAAGmN,EAAAi+B,IAEXlkD,YAASzP,EAAMwC,QAAQ1B,UAAS,IAAO,yBAAA40B,EAAAzC,UAAAuC,EAAA,mBAzB9Bx1B,MAAa,QA8BrB,IAAMy6H,EACX,SAAC1sG,GAAS,OAAK,SAACimC,GAAyC,OAAK,SAAC17B,GAC7D,OAAA/C,YAAAjH,IAAAiE,MAAO,SAAAwD,IAAA,IAAAk/E,EAAAx/E,EAAA,OAAAnH,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,OAKH,OALGgL,EAAAjD,KAAA,GAGGkiF,EAAW,IAAIn6D,UACZC,OAAO,OAAQhtB,GACxBiI,EAAAhL,KAAA,EACuB4N,IAAcl2B,KAAK,0BAA2BuyG,EAAU,CAC7En8E,QAAS,CAAE,eAAgB,sBAAuBC,WAAW,KAC5D,KAAD,EAFItD,EAAQO,EAAA9E,KAId8iC,EAAUv+B,EAAS5e,MAAMmf,EAAAhL,KAAA,gBAAAgL,EAAAjD,KAAA,EAAAiD,EAAAuD,GAAAvD,EAAA,SAEzBsC,IAAU,yBAAAtC,EAAA/C,UAAA8C,EAAA,sB,sHC/FH,SAASq0F,EAAiB56H,GAA4C,IAAzCN,EAAQM,EAARN,SAAUU,EAAEJ,EAAFI,GAC5C+e,EAAY0J,cAAZ1J,QAEF6gC,EAAW,CAACrpB,IAAW1b,KAAM0b,IAAWyiD,SAASr6E,SAAgB,OAAPogB,QAAO,IAAPA,OAAO,EAAPA,EAASuX,YAEzE,OACEl3B,cAAC+sB,IAAK,CAACC,SAAS,QAAQpsB,GAAE7B,YAAA,GAAO6B,GAAKV,SACnCsgD,EACCxgD,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAC,qDAE5BA,M,iCCjBR,iFAIe,SAAS+3B,EAAuBz3B,GAAyB,IAADkrI,EAAAlrI,EAArB03B,UAChD,YADyD,IAAAwzG,GAAQA,EAE/D1rI,cAAAC,WAAA,IAEAD,cAAC4zB,IAAK,CAAC7yB,QAAQ,WAAWkL,MAAM,UAAS/L,SACvCF,cAACymB,IAAO,CACN20F,OAAK,EACL50F,MAAO,kFAA+EtmB,SAEtFQ,eAACU,IAAK,CAACqB,UAAU,MAAKvC,SAAA,CAAC,cAErBF,cAAC2rI,IAAY,CAAC/qI,GAAI,CAAEgI,OAAQ,OAAQjF,MAAO,OAAQF,OAAQ,MAAO4M,GAAI,kB,iJCEjE,SAASm/C,EAAmB5xD,GAAa,IAADguI,EAAAt8E,EAAAu8E,EAAAC,EAAAC,EAC7C9tI,EAAoDL,EAApDK,SAAU0yB,EAA0C/yB,EAA1C+yB,MAAOhuB,EAAmC/E,EAAnC+E,KAAsBzC,GAAatC,EAA7BI,eAA6BJ,EAAbsC,UAC/CmtD,EAA+CC,cAAvCpvD,EAAMmvD,EAANnvD,OAAQqvD,EAASF,EAATE,UAAWjgB,EAAO+f,EAAP/f,QAASD,EAAMggB,EAANhgB,OAuC9B2+F,EAAe,SAACjtG,GACpBwuB,EAASxuD,wBAAC,GACLb,GAAM,IACT0G,QAAO7F,wBAAA,GACFb,EAAO0G,SAAO,IACjB4B,SAAQoR,YAAM1Z,EAAO0G,QAAQ4B,SAASrH,QAAO,SAACyxB,GAAC,OAAKA,EAAEte,KAAOysB,YAMnE,OACEr+B,eAACC,IAAG,CAAAT,SAAA,CACDA,EACDQ,eAACC,IAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SAAA,CAChBF,cAACiuC,IAAe,CACdC,aAAW,EACXC,QAAS,UACTC,OAAQ,0BACRzd,MAAOA,EACP0d,OApDW,SAACC,GAClB,IAAM29F,EAAY/tI,EAAO0G,QAAQ4B,SAAS9B,OAAS,EAEnD6oD,EAASxuD,wBAAC,GACLb,GAAM,IACT0G,QAAO7F,wBAAA,GACFb,EAAO0G,SAAO,IACjB4B,SAAS,GAADvF,OAAA2W,YACH1Z,EAAO0G,QAAQ4B,UAAQoR,YACvB02B,EAAcxsC,KAAI,SAACi9B,EAAoBlrB,GACxC,MAAO,CACLq4H,IAAKntG,EAAKlgC,KACVyT,KAAM25H,EAAYp4H,GAClBs4H,OAAQptG,EAAKn9B,KACbe,KAAMA,EACNypI,QAAS,GACTC,SAAUttG,EAAKp8B,KACfo8B,KAAMA,aAOhB9gC,EAAS,GAADgD,OAAA2W,YAAK+Y,GAAK,CAAE2d,EAAcxsC,KAAI,SAACi9B,GAAkB,OAAKA,SA6BxD0P,SAAUu9F,EACV3tI,MAAOuF,SAAuB,QAAfgoI,EAAAt+F,EAAQ1oC,eAAO,IAAAgnI,OAAA,EAAfA,EAAiBplI,YAA0B,QAAlB8oD,EAAIjiB,EAAOzoC,eAAO,IAAA0qD,OAAA,EAAdA,EAAgB9oD,WAC5D41H,mBAAmB,IAGpBx4H,SAAuB,QAAfioI,EAAAv+F,EAAQ1oC,eAAO,IAAAinI,OAAA,EAAfA,EAAiBrlI,YAA0B,QAAlBslI,EAAIz+F,EAAOzoC,eAAO,IAAAknI,OAAA,EAAdA,EAAgBtlI,YACpDxG,cAAC+2C,IAAc,CAAA72C,SAAgB,QAAhB6rI,EAAE1+F,EAAOzoC,eAAO,IAAAmnI,OAAA,EAAdA,EAAgBvlI,WAEnCxG,cAAC0wB,IAAsB,CACrB6X,SAAU,SAACxJ,GAAI,OAAKitG,EAAajtG,IACjCpO,MAAOzyB,EAAO0G,QAAQ4B,SACnBrH,QAAO,SAACyxB,GAAC,OAAKA,EAAEjuB,OAASA,KACzBb,KAAI,SAAC8uB,GACJ,MAAO,CACLte,GAAIse,EAAEte,GACN2e,SAAUL,EAAEs7G,IACZ/6G,SAAU,EACVvvB,KAAM,GACNivB,SAAUC,IAASC,QACnB/E,UAAW,CAAE1Z,GAAIse,EAAEte,GAAI1M,YAAa,GAAI0rB,UAAW,EAAG5mB,IAAK,kB,2TCvF5D,SAAS4hI,EAAe9rI,GAA8B,IAC/DoS,EAAkB,sDACtB,OAF6CpS,EAALnC,OAGtC,KAAK8nH,IAAiBie,gBACpBxxH,EAAU,2BACV,MACF,KAAKuzG,IAAiBomB,sBACpB35H,EAAU,gCACV,MACF,KAAKuzG,IAAiBqmB,kBACpB55H,EAAU,6BACV,MACF,KAAKuzG,IAAiBsmB,gBACpB75H,EAAO,2BACP,MAEF,KAAKuzG,IAAiBx1F,MACpB/d,EAAU,yDAId,OACE5S,cAACgpC,IAAmB,CAACC,WAAW,QAAO/oC,SACrCF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAE0S,M,6DCjCnC0sB,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAgDmBuH,YAAO/J,IAAP+J,EAAmB,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,OAAAhM,wBAAA,GACzCgM,EAAMI,WAAWu6C,WAAS,IAC7Bz5C,MAAOlB,EAAME,QAAQb,KAAK8B,UAC1BG,aAActB,EAAMO,QAAQ,QAmBf,SAAS0tF,EAAW72F,GAGb,IAAD4pC,EAAA2gG,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA7qI,EAFnBo5B,cAAM,IAAAyxG,EAAG,CAAExxG,UAAW,GAAIC,UAAW,GAAIC,IAAK,GAAIvB,UAAW,GAAIsE,SAAU,IAAIuuG,EAC/Ep8F,EAAQzuC,EAARyuC,SAEAq8F,EAAiDxvF,YAAmB,CAClEC,kBAAmB,CAACC,IAAWuvF,eAAgBvvF,IAAWwvF,wBADpD3vF,EAAgByvF,EAAhBzvF,iBAIRrR,GAJ4C8gG,EAAlB7jH,mBAIG1I,aAAY,SAAC7O,GAAgB,OAAKA,EAAMe,YAA7DzB,EAASg7B,EAATh7B,UAAW9S,EAAK8tC,EAAL9tC,MACXiuC,EAAoBC,cAApBD,gBAEA8gG,EAAqBC,cAArBD,iBAEFE,EAAoB7gG,MAAa7gC,MAAM,CAC3C4a,MAAOimB,MAAaliC,OAAOmiC,SAAS,2BACpC7jB,YAAa4jB,MAAaliC,OAAOmiC,SAAS,kCAC1CvS,UAAWsS,MACX/Q,IAAK+Q,MACLhR,UAAWgR,MAAaC,SAAS,8BACjClR,UAAWiR,MAAaC,SAAS,4BACjC/b,MAAO8b,QAGHI,EAASC,YAAoB,CACjCC,cAAe,CACbvmB,MAAO,GACPqC,YAAa,GACbsR,UAAiB,OAANoB,QAAM,IAANA,OAAM,EAANA,EAAQpB,UACnBuB,IAAW,OAANH,QAAM,IAANA,OAAM,EAANA,EAAQG,IACbD,UAAiB,OAANF,QAAM,IAANA,OAAM,EAANA,EAAQE,UACnBD,UAAiB,OAAND,QAAM,IAANA,OAAM,EAANA,EAAQC,UACnB7K,MAAO,IAETqc,iBAAkBsgG,EAClBrgG,SAAS,SAADxC,EAAAC,GAAA,OAAAqB,KAAAxF,YAAAjH,IAAAiE,MAAE,SAAAiD,EAAOtoC,EAAMkE,GAAA,IAAAgrC,EAAAmgG,EAAAC,EAAAC,EAAArnB,EAAA,OAAA9mF,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAAIoR,EAAahrC,EAAbgrC,cAAwBhrC,EAAT8qC,UACxC,IAIM3R,EAAOkD,WAA2B,QAAf8uG,EAAAhyG,EAAOkD,gBAAQ,IAAA8uG,OAAA,EAAfA,EAAiB7oI,QAAS,IACzC+oI,EAAyB,QAAlBD,EAAGjyG,EAAOkD,gBAAQ,IAAA+uG,OAAA,EAAfA,EAAiB5iH,MAAK,SAAC5H,GAAC,OAAKA,EAAEnS,MAAQ3S,EAAOs9B,aACxD4qF,EAAUloH,EAAOu9B,UACnBgyG,GACFxgI,OAAOC,OAAOhP,EAAQ,CACpBu9B,UAAWgyG,EAAQC,WACnBtnB,QAASA,KAKf3lG,YACEulG,YAAY9nH,EAAZ8nH,EAAoB,SAAC3qF,GACnBuV,IACAxD,GAAc,GACdd,EAAgB,4CAAoC,CAAEvrC,QAAS,gBAGnE,MAAO1C,GACPi7B,QAAQj7B,MAAMA,GACd+uC,GAAc,GACf,wBAAA1G,EAAAzC,UAAAuC,QACFM,MAAA,KAAAriC,cAGK4oC,EACNR,EADMQ,OAAQnvC,EACd2uC,EADc3uC,OAAQovC,EACtBT,EADsBS,QAASC,GAC/BV,EAD+BU,aAA4BC,IAC3DX,EAD6CY,aAC7CZ,EAD2DW,eAAeG,GAC1Ed,EAD0Ec,cAGtEggG,GAAajtE,uBACjB,SAACpyB,GACCd,GACE,QACAc,EAAcxsC,KAAI,SAACi9B,GAAU,OAC3B9xB,OAAOC,OAAO6xB,EAAM,CAClByP,QAAS/mB,IAAIktC,gBAAgB51B,WAKrC,CAACyO,KAsBGogG,GAAgC,QAAlBlB,EAAGnxG,EAAOkD,gBAAQ,IAAAiuG,OAAA,EAAfA,EAAiBvtI,QACtC,SAAC0uI,EAAmBxsE,GAAW,OAC7B9lC,EAAOkD,UAAYlD,EAAOkD,SAASksG,WAAU,SAACrnI,GAAC,OAAKA,EAAEuN,MAAQg9H,EAAIh9H,SAASwwD,KAGzEysE,GAAkC,QAAlBnB,EAAGpxG,EAAO8C,gBAAQ,IAAAsuG,GAAyC,QAAzCC,EAAfD,EAAiB/hH,MAAK,SAAC5H,GAAC,OAAKA,EAAEnS,MAAQ3S,EAAOu9B,oBAAU,IAAAmxG,OAAzC,EAAfA,EAA0D/jH,YAE7EklH,GAAoC,QAAlBlB,EAAGtxG,EAAOkD,gBAAQ,IAAAouG,GAAyC,QAAzCC,EAAfD,EAAiBjiH,MAAK,SAAC5H,GAAC,OAAKA,EAAEnS,MAAQ3S,EAAOs9B,oBAAU,IAAAsxG,OAAzC,EAAfA,EAA0DlnI,YAErF,OAAK43C,EAGHx9C,cAAC6tC,IAAc,CAAC/uC,MAAO+tC,EAAO3sC,SAC5BF,cAAC8tC,IAAI,CAACC,YAAU,EAACC,aAAa,MAAMf,SAAUM,GAAartC,SACzDQ,eAACmmB,IAAS,CAAA3mB,SAAA,CACRF,cAACW,IAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SAChBQ,eAACynC,IAAI,CAAAjoC,SAAA,EACc,OAAhBktI,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB1oI,QAAS,GACL,KAArB62B,EAAOE,WACLz7B,cAACi1H,IAAO,CACNzuG,MACExmB,cAAC0C,IAAS,CACRhB,WAAS,EACTC,MAAM,WACNtD,MAAOuF,QAAQ0pC,EAAQ7R,WAAa4R,EAAO5R,WAC3C53B,WAAYypC,EAAQ7R,WAAa4R,EAAO5R,UACxC33B,QAAM,EACN7F,SA9CM,SAACqF,GAAY,IAAD0qI,EAAAC,EAChCC,EAAgC,QAAlBF,EAAGzyG,EAAO8C,gBAAQ,IAAA2vG,OAAA,EAAfA,EAAiB7uI,QAAO,SAAC6jB,GAAC,OAAKA,EAAEnS,MAAQvN,EAAEC,OAAOzE,SAAO,GAChF0uC,GAAc,YAA2B,OAAd0gG,QAAc,IAAdA,OAAc,EAAdA,EAAgBr9H,KAC3C28B,GAAc,YAAa,IAC3BjS,EAAOkD,SAAyB,OAAdyvG,QAAc,IAAdA,OAAc,EAAdA,EAAgBzvG,SACF,KAAb,QAAfwvG,EAAA1yG,EAAOkD,gBAAQ,IAAAwvG,OAAA,EAAfA,EAAiBvpI,SAAc8oC,GAAc,YAAajS,EAAOkD,SAAS,GAAG5tB,MAyC/B3Q,SAE7BktI,EAAiBtrI,KAAI,SAACqsI,GACrB,OACEnuI,cAACoE,IAAQ,CAACs8C,OAAK,EAAmB5hD,MAAOqvI,EAAQt9H,IAAI3Q,SACnDQ,eAACU,IAAK,CAACG,WAAY,SAAUkB,UAAW,MAAOpB,IAAI,MAAKnB,SAAA,CACtDF,cAACuwB,IAAM,CACL/B,IAAG,2BAAAvtB,OAA6BktI,EAAQt9H,IAAG,QAC3CjQ,GAAI,CAAE+C,MAAO,GAAIiF,OAAQ,GAAI4nB,GAAI,KAChC,IACHxwB,cAACc,IAAU,CAACC,QAAQ,YAAYgN,UAAW,OAAO7N,SAC/CiuI,EAAQxsI,YAPMwsI,EAAQt9H,UAerCskH,SACEn1H,cAAAC,WAAA,CAAAC,SAAG4tI,IAAoB9tI,cAACouI,EAAgB,CAACvlH,YAAailH,SAK7DvyG,EAAO8yG,qBACNruI,cAACouI,EAAgB,CAACvlH,YAAa0S,EAAO8yG,uBAGxB,QAAftB,EAAAxxG,EAAOkD,gBAAQ,IAAAsuG,OAAA,EAAfA,EAAiBroI,QAAU,GAC1B1E,cAACi1H,IAAO,CACNzuG,MACExmB,cAAC0C,IAAS3D,wBAAA,CACR2C,WAAS,EACTC,MAAM,wBACFgsC,GAAc,cAAY,IAC9BtvC,MAAOuF,QAAQ0pC,EAAQ9R,WAAa6R,EAAO7R,WAC3C33B,WAAYypC,EAAQ9R,WAAa6R,EAAO7R,UACxC13B,QAAM,EACN7B,cAA4B0C,GAAlBipI,KAA6C,OAAdA,SAAc,IAAdA,QAAc,EAAdA,GAAgBlpI,QAAS,EAAExE,SAErD,OAAd0tI,SAAc,IAAdA,QAAc,EAAdA,GAAgB9rI,KAAI,SAAC2rI,GACpB,OACEztI,cAACoE,IAAQ,CAAmBtF,MAAO2uI,EAAQ58H,IAAI3Q,SAC5CutI,EAAQ9rI,OADI8rI,EAAQ58H,WAO/BskH,SACEn1H,cAAAC,WAAA,CAAAC,SACG6tI,IAAsB/tI,cAACouI,EAAgB,CAACvlH,YAAaklH,SAM9D/tI,cAACi1H,IAAO,CACNzuG,MACExmB,cAAC0C,IAAS3D,wBAAA,CACR2C,WAAS,EACTC,MAAM,SACFgsC,GAAc,UAAQ,IAC1BtvC,MAAOuF,QAAQ0pC,EAAQ9mB,OAAS6mB,EAAO7mB,OACvC3iB,WAAYypC,EAAQ9mB,OAAS6mB,EAAO7mB,WAK1CxmB,cAACi1H,IAAO,CACNzuG,MACExmB,cAAC0C,IAAS3D,wBAAA,CACR2C,WAAS,EACT4hF,WAAS,EACTg9C,QAAS,EACT/8C,QAAS,EACT5hF,MAAM,eACFgsC,GAAc,gBAAc,IAChCtvC,MAAOuF,QAAQ0pC,EAAQzkB,aAAewkB,EAAOxkB,aAC7ChlB,WAAYypC,EAAQzkB,aAAewkB,EAAOxkB,iBAKhDnoB,eAAC0nC,IAAc,CAAChb,KAAMptB,cAACqoC,IAAU,IAAK7hB,MAAM,uBAAsBtmB,SAAA,CAChEF,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAC,iGAI9BF,cAACiuC,IAAe,CACdC,aAAW,EACXC,QAAS,QACTC,OAAO,0BACPzd,MAAOzyB,EAAOyyB,MACdke,SAAU,EACVR,OAAQs/F,GACRl/F,SAnIK,SAAC1P,GACpB,IAAM2P,EAAgBxwC,EAAOyyB,MAAMxxB,QAAO,SAACwvC,GAAK,OAAKA,IAAU5P,KAC/DyO,GAAc,QAASkB,IAkIT2tF,YAxIQ,WACtB7uF,GAAc,SAAU,KAwIVnvC,MAAOuF,QAAQ0pC,EAAQ3c,OAAS0c,EAAO1c,SAExC2c,EAAQ3c,OAAS0c,EAAO1c,OACvB3wB,cAAC+2C,IAAc,CAAC14C,OAAK,EAACuC,GAAI,CAAE2xB,GAAI,GAAIryB,SACjCotC,EAAQ3c,OAAS0c,EAAO1c,WAI9BtyB,GAAS2B,cAACssI,EAAe,CAACjuI,MAAOA,SAGtCqC,eAACmuB,IAAa,CAACjuB,GAAI,CAAEkuB,eAAgB,UAAW5uB,SAAA,CAC9CF,cAAC+uB,IAAM,CAAChuB,QAAQ,OAAO4jB,QAASisB,EAAU3uC,SAAUkP,EAAUjR,SAAC,YAG/DF,cAACW,IAAG,CAAC6L,QAAQ,OAAO8X,SAAS,YAC7BtkB,cAAC+uC,IAAa,CACZpsC,KAAK,SACL5B,QAAQ,YACRiuC,QAAS79B,EACTvP,KAAK,QACLqtC,iBAAiB,gBAAe/uC,SACjC,sBA3ImBF,cAAC89C,IAAmB,IAqJpD,SAASswF,EAAgB9gI,GAAoD,IAAjDub,EAAWvb,EAAXub,YAC1BvqB,EAAwBC,oBAAS,GAAKC,EAAAC,YAAAH,EAAA,GAA/B0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GAMpB,OAJAS,qBAAU,WACRkzB,GAAQ,KACP,CAACtJ,IAECA,GAA+B,KAAhBA,EAGlB7oB,cAACs8C,IAAQ,CAACC,GAAIv1B,EAAK9mB,SACjBF,cAAC+sB,IAAK,CAACC,SAAS,OAAOpsB,GAAI,CAAEC,GAAI,EAAG+4B,GAAI,GAAK3S,QAAS,kBAAMkL,GAAQ,IAAOjyB,SACzEF,cAAC6O,IAAQ,CAAC3O,SAAU2oB,EAAYpgB,QAAQ,QAAS,eALRzI,cAAAC,WAAA,M,gCChVjD,8OA4CO,IAAKk3B,EAAU,SAAVA,GAAU,OAAVA,IAAU,iBAAVA,IAAU,eAAVA,IAAU,qBAAVA,IAAU,mBAAVA,IAAU,2BAAVA,EAAU,KAQVq0G,EAAa,SAAbA,GAAa,OAAbA,IAAa,uBAAbA,IAAa,qBAAbA,IAAa,+BAAbA,IAAa,6BAAbA,EAAa,KA0Eb8C,EAAmB,SAAnBA,GAAmB,OAAnBA,IAAmB,eAAnBA,IAAmB,+BAAnBA,IAAmB,yCAAnBA,IAAmB,uBAAnBA,IAAmB,yCAAnBA,IAAmB,+BAAnBA,EAAmB,KASnBC,EAAmB,SAAnBA,GAAmB,OAAnBA,IAAmB,eAAnBA,IAAmB,qBAAnBA,IAAmB,iBAAnBA,IAAmB,+BAAnBA,IAAmB,iCAAnBA,IAAmB,2CAAnBA,IAAmB,+BAAnBA,IAAmB,qCAAnBA,IAAmB,+CAAnBA,EAAmB,KA6BnBC,EAA2B,SAA3BA,GAA2B,OAA3BA,IAA2B,qBAA3BA,IAA2B,iBAA3BA,IAA2B,2CAA3BA,IAA2B,qCAA3BA,IAA2B,iCAA3BA,IAA2B,qBAA3BA,EAA2B,KAoB3BC,EAAmB,SAAnBA,GAAmB,OAAnBA,IAAmB,uBAAnBA,IAAmB,qBAAnBA,EAAmB,KAYnBC,EAAqB,SAArBA,GAAqB,OAArBA,IAAqB,uBAArBA,IAAqB,qBAArBA,IAAqB,mCAArBA,IAAqB,iBAArBA,EAAqB,M,6HCnMjCpvG,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAaA,IAOM0N,EAAQC,YAAY,CACxBpS,KAAM,eACNqS,aATsC,CACtCC,WAAW,EACX9S,OAAO,EACPswI,UAAW,GACXC,SAAU,MAMVj9H,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,GAGpB4J,WAAU,SAAClJ,GACTA,EAAMV,WAAY,GAIpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAGvB68H,wBAAuB,SAACh9H,EAAOE,GAC7BF,EAAMV,WAAY,EAClBU,EAAM88H,UAAY58H,EAAOC,YAUxB,SAAS88H,EAAiBnsI,GAC/B,OAAA4jC,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,IAAAC,EAAA+9B,EAAA/hD,EAAAsoF,EAAA,OAAAzrE,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OACkC,OAAvCvb,YAASzP,EAAMwC,QAAQ5B,gBAAgB80B,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAEdqO,IAAMR,IAAG,sBAAA5oC,OAA6C0B,IAAQ,KAAD,EAA9E8jC,EAAQC,EAAAxE,KAAAsiC,EACW/9B,EAAS5e,KAA1BpF,EAAM+hD,EAAN/hD,OAAQsoF,EAAIvmC,EAAJumC,KAAIrkE,EAAA6D,GACZ9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACP8gG,IAAmB1/F,QAAO,kBAC2B,OAAxDlrB,YAASzP,EAAMwC,QAAQq7H,wBAAwB,CAAC9jC,KAAQrkE,EAAArE,OAAA,oBAGnB,OAArC5hB,YAASzP,EAAMwC,QAAQuH,cAAc2rB,EAAArE,OAAA,oBAAAqE,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAIzCjmB,YAASzP,EAAMwC,QAAQ1B,SAAQ40B,EAAAi+B,KAAS,yBAAAj+B,EAAAzC,UAAAuC,EAAA,mBAnB/Bx1B,MAAa,S,+LC/C5BsuB,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAoBA,IAAMyrI,EAAap2D,wBAAkC,MAMrD,SAASwrC,EAAkB3jH,GAAyC,IAADwuI,EAArC9uI,EAAQM,EAARN,SAC5B5B,EAAoCC,qBAAgCC,EAAAC,YAAAH,EAAA,GAA7D0pF,EAAUxpF,EAAA,GAAEywI,EAAazwI,EAAA,GAChCirB,EAA8ClrB,qBAA8BmrB,EAAAjrB,YAAAgrB,EAAA,GAApDylH,GAAFxlH,EAAA,GAAoBA,EAAA,IAC1CG,EAAkCtrB,oBAAS,GAAMurB,EAAArrB,YAAAorB,EAAA,GAA1C8mE,EAAS7mE,EAAA,GAAEqlH,EAAYrlH,EAAA,GAC9B6L,EAA0Bp3B,qBAAyBq3B,EAAAn3B,YAAAk3B,EAAA,GAA5Ct3B,EAAKu3B,EAAA,GAAEyoB,EAAQzoB,EAAA,GAEtB32B,qBAAU,WAER,OADA8mF,IACO,WAEDiC,GAAyC,MAA3BA,EAAWonD,cAAsBpnD,EAAW/jD,UAE/D,IAKHhlC,qBAAU,WACW,OAAf+oF,GACJqnD,MACC,CAACrnD,IAEJ,IAAMjC,EAAO,WACX,GAAK/oB,IAAcC,SAAnB,CAEA,IAAM/rC,EAAQuxC,aAAaC,QAAQ,gBAAkB,GAErD,GAAc,KAAVxxC,EAAJ,CAIA,IAAIxmB,EAAW,GAAAzJ,OAAM27D,IAAUC,QAAO,eAEhCh7D,EAAkC,CACtCytI,mBAAoB,kBAAMp+G,GAC1Bq+G,UAAWC,IAAkBC,WAC7BC,iBAAiB,GAEnB,IACE,IAAMC,GAAgB,IAAIC,KACvBC,QAAQnlI,EAAK7I,GACbiuI,yBACAC,iBAAiBC,IAASx0H,MAC1By0H,QAGHN,EAAcO,gBAAe,SAAC7xI,GAC5B6wI,EAAmB50C,IAAmB61C,kBAGxCR,EAAcS,SAAQ,SAAC/xI,GACrB6wI,EAAmB50C,IAAmBC,iBAGxCo1C,EAAcU,eAAc,SAAChyI,GAC3B6wI,EAAmB50C,IAAmBg2C,cAGxCrB,EAAcU,GACd,MAAOlqG,GACPnM,QAAQC,IAAI,yBAIV81G,EAAW,WACVrnD,GAAYjC,IAEZiC,IAAwB,OAAVA,QAAU,IAAVA,OAAU,EAAVA,EAAYn2E,SAAUyoF,IAAmBg2C,WAExDtoD,GAEFA,EACGz7D,QACAoV,MAAK,SAAU7iC,GACdowI,EAAmB50C,IAAmBg2C,WACtCnB,GAAa,MAEd7qG,OAAM,SAAUo7F,GAKf,OAJI/uC,GAEFtyC,EAAS,UAEJ/kB,QAAQj7B,MAAMqhI,EAAI3mG,gBAgCjC,OACE/4B,cAAC+uI,EAAW91D,SAAQ,CAClBn6E,MAAO,CACLyxI,QAnBN,SAMsB9lG,GAAA,OAAAukG,KAAAzoG,YAAAjH,IAAAiE,MAAtB,SAAAiD,EAAuBgqG,GAAkB,IAAAC,EAAAC,EAAAC,EAAAC,EAAAnsI,UAAA,OAAA66B,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,WACnCgsD,GAAcA,EAAWn2E,QAAUyoF,IAAmBg2C,UAAS,CAAA5pG,EAAA1K,KAAA,aAAA0K,EAAA3C,KAAA,EAAA0sG,EAAAG,EAAAlsI,OADvBgsI,EAAI,IAAA38E,MAAA08E,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,EAAA,GAAAC,EAAAD,GAAA,OAAAjqG,EAAA1K,KAAA,EAGrB,OAAVgsD,QAAU,IAAVA,OAAU,EAAVA,EAAYxmD,OAAMsF,MAAlBkhD,EAAU,CAASwoD,GAAUvvI,OAAKyvI,IAAM,KAAD,SAAAhqG,EAAArE,OAAA,SAAAqE,EAAAxE,MAAA,OAAAwE,EAAA3C,KAAA,EAAA2C,EAAA6D,GAAA7D,EAAA,SAEpDpN,QAAQC,IAAGmN,EAAA6D,IAAK,yBAAA7D,EAAAzC,UAAAuC,EAAA,mBAGrBM,MAAA,KAAAriC,YAMKpG,MAAOA,EACPmrC,WA3BY,WACN,OAAVw+C,QAAU,IAAVA,KAAY/jD,OAEZgrG,EAAc,OAyBV50C,QAhCU,WACdg1C,KAgCIrnD,WAAYA,GACZ9nF,SAEDA,M,iCCrJP,kCAyBO,IAAK6oE,EAAgB,SAAhBA,GAAgB,OAAhBA,IAAgB,iBAAhBA,IAAgB,qBAAhBA,EAAgB,M,uJCjBtB8nE,EAAgB,CACpB9xI,YAAA,CAEEF,KAAM,WACHoM,IAAQ2qE,MAAM1oD,SAGnB,CACEruB,KAAM,SACNsuB,QAAS,UACTyoD,MAAO,UACPtoD,KAAM,UACNuoD,KAAM,UACNC,OAAQ,UACRU,aAAc,QAGhB,CACE33E,KAAM,OACNsuB,QAAS,UACTyoD,MAAO,UACPtoD,KAAM,UACNuoD,KAAM,UACNC,OAAQ,UACRU,aAAcvrE,IAAQ2qE,MAAM/oE,KAAK,MAGnC,CACEhO,KAAM,OACNsuB,QAAS,UACTyoD,MAAO,UACPtoD,KAAM,UACNuoD,KAAM,UACNC,OAAQ,UACRU,aAAc,QAGhB,CACE33E,KAAM,SACNsuB,QAAS,UACTyoD,MAAO,UACPtoD,KAAM,UACNuoD,KAAM,UACNC,OAAQ,UACRU,aAAcvrE,IAAQ2qE,MAAM/oE,KAAK,MAGnC,CACEhO,KAAM,MACNsuB,QAAS,UACTyoD,MAAO,UACPtoD,KAAM,UACNuoD,KAAM,UACNC,OAAQ,UACRU,aAAc,SAQlB,IAAMtlE,EAAqC,CACzC6uG,UAAW,QACXD,eAAgB,MAChBgxB,WAAY,UACZC,cAAc,EACdj5F,aAAc,aACdk5F,kBAAmB,aACnBC,cAAe,aACfC,gBAAiB,aACjB3uB,SAAUsuB,EAAc,GACxBM,YAAa,IAGTjH,EAAkBvxD,wBAAcznE,GAMtC,SAASgzG,EAAgB1jH,GAAuC,IAApCN,EAAQM,EAARN,SAC1Bo0B,EAAgCC,YAAgB,WAAY,CAC1DwrF,UAAW7uG,EAAa6uG,UACxBD,eAAgB5uG,EAAa4uG,eAC7BgxB,WAAY5/H,EAAa4/H,WACzBC,aAAc7/H,EAAa6/H,eAC3Bv8G,EAAA/1B,YAAA61B,EAAA,GALKsmB,EAAQpmB,EAAA,GAAE48G,EAAW58G,EAAA,GAmC5B,OACEx0B,cAACkqI,EAAgBjxD,SAAQ,CACvBn6E,MAAKC,wBAAA,GACA67C,GAAQ,IAEX9C,aAjCe,SAACh0B,GACpBstH,EAAWryI,wBAAC,GACP67C,GAAQ,IACXmlE,UAAYj8F,EAAMvgB,OAA4BzE,UAgC5CkyI,kBA5BoB,SAACltH,GACzBstH,EAAWryI,wBAAC,GACP67C,GAAQ,IACXklE,eAAiBh8F,EAAMvgB,OAA4BzE,UA2BjDmyI,cAvBgB,SAACntH,GACrBstH,EAAWryI,wBAAC,GACP67C,GAAQ,IACXk2F,WAAahtH,EAAMvgB,OAA4BzE,UAqB7CyjH,UAAmB3nE,EAASk2F,WApE3BD,EAAc,IAqEfM,YAAaN,EAAc/uI,KAAI,SAACmK,GAAK,MAAM,CACzCpN,KAAMoN,EAAMpN,KACZC,MAAOmN,EAAMqhB,SAGf4jH,gBAvBkB,WACtBE,EAAWryI,wBAAC,GACP67C,GAAQ,IACXm2F,cAAen2F,EAASm2F,mBAqBtB7wI,SAEDA,M,iCClJA,SAASogF,EAASl2E,GAAqC,IAAvB+jC,EAAe1pC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACjD4sI,EAAc,OAAJjnI,QAAI,IAAJA,OAAI,EAAJA,EAAMG,OACtB,OAAc,OAAP8mI,QAAO,IAAPA,OAAO,EAAPA,EAAS3sI,QAASypC,EAAUkjG,EAAQz+D,UAAU,EAAGzkC,GAAW,MAAQkjG,EAF7E,mC,mLCiBalwD,EAAkB,SAAH3gF,GAA4D,IAAD8wI,EAAAC,EAAA/wI,EAArDwrB,iBAAS,IAAAulH,EAAG,GAAEA,EAAErxI,EAAQM,EAARN,SAChD5B,EAA8BC,mBAA8B,QAAtB+yI,EAAUtlH,EAAU,UAAE,IAAAslH,OAAA,EAAZA,EAAc9jH,SAAQhvB,EAAAC,YAAAH,EAAA,GAA/DkvB,EAAOhvB,EAAA,GAAEgzI,EAAUhzI,EAAA,GAEpBizI,EAAgB,SAACjkH,GACrBgkH,EAAWhkH,IAGb,OACE9sB,eAAC02E,IAAI,CAAC9hC,WAAS,EAAChqC,QAAS,EAAEpL,SAAA,CACzBF,cAACo3E,IAAI,CAACn/D,MAAI,EAACoW,GAAI,GAAGnuB,SAChBQ,eAACU,IAAK,CAACqB,UAAU,MAAM6I,QAAS,IAAK/J,WAAW,SAAQrB,SAAA,CACtDF,cAACuwB,IAAM,CAACxvB,QAAQ,WAAUb,SAAC,MAC3BF,cAACc,IAAU,CAAAZ,SAAC,yDAGhBF,cAACo3E,IAAI,CAACn/D,MAAI,EAACoW,GAAI,GAAGnuB,SACf8rB,EAAUlqB,KAAI,SAAC+lB,GACd,OACE7nB,cAAC0xI,EAAe,CAEdlkH,QAAS3F,EAAK2F,QACdzH,SAAU8B,EAAK2F,QAAQlb,KAAOkb,EAAQlb,GACtCqR,SAAU8tH,GAHL5pH,EAAK2F,QAAQlb,SAQ1BtS,cAACo3E,IAAI,CAACn/D,MAAI,EAACoW,GAAI,GAAGnuB,SAChBQ,eAACU,IAAK,CAACqB,UAAU,MAAM6I,QAAS,IAAK/J,WAAW,SAAQrB,SAAA,CACtDF,cAACuwB,IAAM,CAACxvB,QAAQ,WAAUb,SAAC,MAAU,IAACF,cAACc,IAAU,CAAAZ,SAAC,+BAAqC,SAG3FF,cAACo3E,IAAI,CAACn/D,MAAI,EAACoW,GAAI,GAAGnuB,SAChBF,cAACoB,IAAK,CAACkK,QAAS,EAAG7I,UAAU,SAASlB,WAAY,SAASrB,SACxD8rB,EACE7sB,QAAO,SAACmpC,GAAC,OAAKA,EAAE9a,QAAQlb,KAAOkb,EAAQlb,MACvCxQ,KAAI,SAAC+lB,EAAMhU,GACV,OACE7T,cAACslB,IAAMqsH,SAAQ,CAAAzxI,SAAkCA,EAAS2nB,IAAK,kBAAA5mB,OAAxB4S,eAShD,SAAS69H,EAAevvI,GAQ3B,IAPFqrB,EAAOrrB,EAAPqrB,QACAzH,EAAQ5jB,EAAR4jB,SACApC,EAAQxhB,EAARwhB,SAMA,OACE3jB,cAACc,IAAU,CAACiN,UAAW,OAAkCnN,GAAI,CAAE4vB,GAAI,GAAItwB,SACrEQ,eAACquB,IAAM,CACLhuB,QAASglB,EAAW,YAAc,WAClC9Z,MAAM,UACNrK,KAAK,QACL+iB,QAAS,kBAAMhB,EAAS6J,IAASttB,SAAA,CAEhCstB,EAAQC,SAAS,IAAED,EAAQG,aACrB,OAAA1sB,OARgCusB,EAAQlb,O,iCC1EvD,uEAOaovE,EAAmB,SAAC9jF,GAU/B,OACEoC,cAAAC,WAAA,CAAAC,SACGtC,EAAM6jF,UAAU3/E,KAAI,SAAC84E,EAAe/mE,GACnC,OACE7T,cAACymB,IAAO,CAACD,OARCkyB,EAQekiC,EAASliC,SAPlC,YAANz3C,OAAgBy3C,EAAQ,SAO0Bx4C,SAC1CQ,eAACquB,IAAM,CACLpK,QAAS,kBAAM/mB,EAAM+jF,WAAW/G,IAChC75E,QAAQ,YACRa,KAAK,QACLqK,MAAM,UACNrL,GAAI,CAAE0yG,cAAe,YAAa12E,EAAG,IAAM18B,SAAA,CAE1C2yE,YAAM+H,EAASH,WAAW,KAAG78E,EAAM4hF,SAAO,eAAAv+E,OAAgB25E,EAASliC,SAAQ,WACrE,gBAAAz3C,OATuD4S,IARzD,IAAC6kC,S,iCCbpB,+GAsBO,SAASqa,EAAevyD,GAA0C,IAAvCmC,EAAInC,EAAJmC,KAAYnC,EAANwyD,OACtC,OAAQrwD,GACN,KAAK4uB,IAAchJ,MACjB,OAAOvoB,cAACm5C,IAAmB,CAACltC,MAAM,YAEpC,KAAKslB,IAAc6nB,OACjB,OAAOp5C,cAACq5C,IAAmB,CAACptC,MAAM,YACpC,KAAKslB,IAAcqgH,OAEnB,KAAKrgH,IAAcyB,KACjB,OAAOhzB,cAACy5C,IAAc,CAACxtC,MAAM,YAC/B,KAAKslB,IAAcgoB,OACjB,OAAOv5C,cAACw5C,IAAK,CAACvtC,MAAM,YACtB,KAAKslB,IAAc+nB,QACjB,OAAOt5C,cAAC6xI,IAAW,CAAC5lI,MAAM,YAC5B,QACE,OAAOjM,cAAC44H,IAAmB,CAAC3sH,MAAM,e,sHCjC3Bi1E,EAAwB,WACnC,IAAA5iF,EAAwBC,oBAAS,GAAKC,EAAAC,YAAAH,EAAA,GAA/B0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GAMpB,OAAKwoB,EAGHtmB,eAAAT,WAAA,CAAAC,SAAA,CACEQ,eAACqsB,IAAK,CAACC,SAAS,OAAO/F,QARP,WAClBkL,GAAQ,IAOsCjyB,SAAA,CAC1CF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,qBAA6B,gRAK/DF,cAACyiF,IAAkB,OAVLziF,cAAAC,WAAA,M,6SCoDb,SAAS43C,EAAWr3C,GAAgE,IAAD+zH,EAAAC,EAAAj6C,EAAAu3D,EAArCr6F,EAAvBxwB,EAAOzmB,EAAPymB,QAAS6wB,EAAYt3C,EAAZs3C,aAAYN,EAAAh3C,EAAEi3C,QAC3CnL,EAAoBC,cAApBD,gBACRH,EAAsCzrB,aAAY,SAAC7O,GAAgB,OAAKA,EAAM6K,WAAtEA,EAAOyvB,EAAPzvB,QAASvL,EAASg7B,EAATh7B,UAAW9S,EAAK8tC,EAAL9tC,MAC5BC,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GACdo/B,EAAWC,cAEXk0G,EAAc,WAClB5/G,GAASnL,IAmBLyzD,EAA8B,QAArB85C,EAAU,OAAP73G,QAAO,IAAPA,OAAO,EAAPA,EAAS+9D,iBAAS,IAAA85C,KAAI,IAAIjyH,MAAOy2B,WAC7Ci3C,EAA0B,QAAnBwkD,EAAU,OAAP93G,QAAO,IAAPA,OAAO,EAAPA,EAASszD,eAAO,IAAAwkD,KAAI,IAAIlyH,MAAOy2B,WAEzC43D,EAAYxgB,YAAY,IAAI7tE,KAAQm4E,GACpC6a,EAAanlB,YAAY,IAAI7tE,KAAQ0tE,GAI3C,OAFAv4B,EAAgC,QAAf,OAAP/6B,QAAO,IAAPA,OAAO,EAAPA,EAASyP,UAGjBnsB,cAACW,IAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SAChBQ,eAACmmB,IAAS,CAAA3mB,SAAA,CACRQ,eAACynC,IAAI,CAAAjoC,SAAA,EACDu3C,GACAz3C,cAACm3C,IAAmB,CAClB/pB,KAAMptB,cAACg1H,IAAmB,IAC1BxuG,MAAO9lB,eAACI,IAAU,CAACC,QAAQ,KAAIb,SAAA,CAAC,IAAS,OAAPwc,QAAO,IAAPA,GAAiB,QAAV69D,EAAP79D,EAASwN,gBAAQ,IAAAqwD,OAAV,EAAPA,EAAmB54E,SAAoBzB,SAExEF,cAACgyI,IAAoB,CAAC12H,OAAe,OAAPoB,QAAO,IAAPA,OAAO,EAAPA,EAASpB,WAG5Ctb,cAAC4wF,IAAsB,CAACrkE,MAAOkuD,EAAWnK,IAAKN,EAAS6gB,SAAS,EAAM3wF,SACrEF,cAACwwF,IAAgB,CAACjkE,MAAOkuD,EAAWnK,IAAKN,EAASygB,WAAW,EAAMvwF,SAChE,SAACyrF,GAAY,OACZ3rF,cAAAC,WAAA,CAAAC,SACEF,cAACgxF,IAAuB,CACtBL,UAAWA,EACXM,QAA2B,KAAX,OAAPv0E,QAAO,IAAPA,OAAO,EAAPA,EAAS/Z,MAClBgpF,KAAMA,YAOR,OAAPjvE,QAAO,IAAPA,OAAO,EAAPA,EAAS/Z,QAASyyH,IAAYh9C,MAC7Bp4E,cAACi1H,IAAO,CACNzuG,MACExmB,cAACwwF,IAAgB,CAACjkE,MAAOkuD,EAAWnK,IAAKN,EAASygB,WAAW,EAAMvwF,SAChE,SAACyrF,EAAc+E,GACd,OACE1wF,cAACmxF,IAAkB,CAAClvF,UAAU,EAAOqQ,GAAW,OAAPoK,QAAO,IAAPA,OAAO,EAAPA,EAASpK,GAAKm+E,WAAW,OAK1ErjE,KAAMptB,cAACoxF,IAAQ,IACf+jC,SAAUn1H,cAACs1H,IAAmB,MAGhCt1H,cAACi1H,IAAO,CACNzuG,MAAOxmB,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,mCACvCktB,KAAMptB,cAACo4E,IAAK,IACZ+8C,SACEz0H,eAAAT,WAAA,CAAAC,SAAA,CACEQ,eAACI,IAAU,CAACC,QAAQ,QAAOb,SAAA,CAAC,mBAAcwc,EAAQm+D,UAChDya,GAAct1F,cAACq1H,IAAmB,SAK5Cr1H,cAACy1F,IAAqB,CAACjoE,QAAgB,OAAP9Q,QAAO,IAAPA,OAAO,EAAPA,EAAS8Q,WAEjC,OAAP9Q,QAAO,IAAPA,OAAO,EAAPA,EAAS9W,cACRlF,eAAC2iF,IAAqB,CAAAnjF,SAAA,CAAS,OAAPwc,QAAO,IAAPA,OAAO,EAAPA,EAAS9W,YAAY,OAG9C6xC,GACC/2C,eAAC0nC,IAAc,CACbhb,KAAMptB,cAAAC,WAAA,IACNumB,MAAOxmB,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,kBAAwBA,SAAA,CAE/DF,cAACc,IAAU,CAACiN,UAAW,MAAOhN,QAAQ,UAASb,SACrC,OAAPwc,QAAO,IAAPA,GAAiB,QAAVo1H,EAAPp1H,EAASyP,gBAAQ,IAAA2lH,OAAV,EAAPA,EAAmBnwI,QAEtB3B,cAAC+uB,IAAM,CAAChuB,QAAQ,OAAO4jB,QA/EhB,WAAO,IAADstH,EACvBr0G,EAASG,IAAe9iB,UAAUwf,QAAO,IAAAx5B,OAAc,OAAPyb,QAAO,IAAPA,GAAiB,QAAVu1H,EAAPv1H,EAASyP,gBAAQ,IAAA8lH,OAAV,EAAPA,EAAmB7lH,WA8EdlsB,SAAC,qCAMhDywF,IAAc2E,IAAe79C,GAAWz3C,cAACu1H,IAAuB,CAAC74G,QAASA,KAE1E44E,GACA50F,eAACmuB,IAAa,CAACjuB,GAAI,CAAEkuB,eAAgB,SAAUjuB,GAAI,GAAIX,SAAA,CACrDF,cAAC+uB,IAAM,CAACpsB,KAAK,SAAS5B,QAAQ,OAAOkL,MAAM,UAAU0Y,QAASmzB,EAAa53C,SAAC,cAI1EywF,GACA3wF,cAAC+uB,IAAM,CACLpsB,KAAK,SACL5B,QAAQ,WACRa,KAAK,QACLqK,MAAM,UACN0Y,QAASotH,EAAY7xI,SACtB,+BAOPQ,eAACiwC,IAAa,CACZ3pB,KAAMA,EACN4pB,SAAUmhG,EACVlhG,UAzHa,WAEnBpwB,YACEwuD,YAAcvyD,EAAduyD,EAAwB,WACtB3iC,EAAgB,uCAA+B,CAAEvrC,QAAS,YAC1DkmB,SAqHE9V,UAAWA,EAAUjR,SAAA,CAErBF,cAACc,IAAU,CAACC,QAAQ,YAAY03C,WAAS,EAAC73C,GAAI,CAAEuxD,GAAI,GAAIjyD,SAAC,uDAGxD7B,GACC2B,cAAC+sB,IAAK,CAACC,SAAS,QAAO9sB,SAAC,iF,gCC7LpC,kCAAO,IAkBKomF,EAAgB,SAAhBA,GAAgB,OAAhBA,IAAgB,2BAAhBA,IAAgB,mBAAhBA,IAAgB,uBAAhBA,IAAgB,mBAAhBA,IAAgB,mCAAhBA,IAAgB,yBAAhBA,IAAgB,qBAAhBA,IAAgB,gCAAhBA,IAAgB,oCAAhBA,IAAgB,sCAAhBA,IAAgB,iBAAhBA,IAAgB,kCAAhBA,IAAgB,wCAAhBA,IAAgB,sBAAhBA,IAAgB,kCAAhBA,IAAgB,oCAAhBA,IAAgB,gCAAhBA,IAAgB,gCAAhBA,IAAgB,4CAAhBA,IAAgB,sCAAhBA,IAAgB,4CAAhBA,IAAgB,4CAAhBA,IAAgB,sCAAhBA,IAAgB,wCAAhBA,IAAgB,oCAAhBA,IAAgB,sBAAhBA,IAAgB,iCAAhBA,IAAgB,iFAAhBA,IAAgB,qEAAhBA,IAAgB,+EAAhBA,IAAgB,uEAAhBA,IAAgB,qDAAhBA,IAAgB,uBAAhBA,IAAgB,qFAAhBA,IAAgB,uBAAhBA,EAAgB,M,+XC9B5BhnD,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EA4De,SAAS6gF,EAAgB3jF,GAIb,IAADurC,EAAA3pC,EAHxB8a,EAAI1c,EAAJ0c,KACA+J,EAAOzmB,EAAPymB,QAAOirH,EAAA1xI,EACP2xI,sBAAc,IAAAD,GAAOA,EAEfzxH,EAAWG,cACXgd,EAAWC,cACTyO,EAAoBC,cAApBD,gBAERH,GADyBrQ,cACIpb,aAAY,SAAC7O,GAAgB,OAAKA,EAAMqL,SAA7D/L,EAASg7B,EAATh7B,UAAW9S,EAAK8tC,EAAL9tC,MACnBC,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GACpBirB,EAA8BlrB,mBAAqB,IAAZ2e,EAAK5K,IAASoX,EAAAjrB,YAAAgrB,EAAA,GAA9C9O,GAAO+O,EAAA,GAAE04D,GAAU14D,EAAA,GAEpB24D,GAAc51C,MAAa7gC,MAAM,CACrCjK,MAAO8qC,MAAa3pC,IAAI,KAAK4pC,SAAS,4BACtC+tC,UAAWhuC,MAAWC,SAAS,2BAC/BsjC,QAASvjC,MAAWC,SAAS,2BAC7B9mC,YAAa6mC,QAGTI,GAASC,YAAU,CACvBC,cAAe7vB,EACf8vB,iBAAkBq1C,GAClBp1C,SAAS,SAADxC,EAAAC,GAAA,OAAAqB,KAAAxF,YAAAjH,IAAAiE,MAAE,SAAAiD,EAAOtoC,EAAMiE,GAAA,IAAAirC,EAAA,OAAA9N,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAAiB,GAAboR,EAAajrC,EAAbirC,eACrBk1C,GAAY,CAAD57C,EAAA1K,KAAA,eAAA0K,EAAArE,OAAA,iBACf,IACE5hB,EACE0jH,YAAgBjmI,EAAhBimI,EAAwB,WACtB73F,EAAgB,6BAA2B,CAAEvrC,QAAS,YACtDkmB,QAIJmmB,GAAc,GACd,MAAO/uC,GACPi7B,QAAQj7B,MAAMA,GACf,wBAAAqoC,EAAAzC,UAAAuC,QACFM,MAAA,KAAAriC,cAoBG7F,GAAe,SAACC,EAAcC,GAClC,GAAIoxE,YAAYpxE,GAAQ,CACtB,OAAQD,GACN,IAAK,YACHC,GAAS0uC,GAAc,UAAW4kG,YAAS,IAAI9vI,KAAKxD,GAAQ,IAEhE0uC,GAAc3uC,EAAMC,KAIhBZ,GAAwE2uC,GAAxE3uC,OAAQmvC,GAAgER,GAAhEQ,OAAQC,GAAwDT,GAAxDS,QAAuBE,IAAiCX,GAA/CY,aAA+CZ,GAAjCW,eAAeG,GAAkBd,GAAlBc,cACxD0kG,GAAyB,IAAZn1H,EAAK5K,GAClBgwE,GAAcjS,YAAa,IAAI/tE,KAAKpE,GAAO8xE,SAAU,IAAI1tE,KAAKpE,GAAOu8E,YAE3E,OACE/5E,eAACC,IAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SAAA,CAChBQ,eAAA,QAAMstC,aAAa,MAAMD,YAAU,EAACd,SAAUJ,GAAOU,aAAartC,SAAA,CAChEQ,eAACynC,IAAI,CAAAjoC,SAAA,CACHQ,eAAC47C,IAAQ,CAACC,IAAK5hC,GAAQza,SAAA,CACrBF,cAACm3C,IAAmB,CAAC3wB,MAAO9lB,eAACI,IAAU,CAACC,QAAQ,KAAIb,SAAA,CAAC,IAAEhC,GAAOyD,SAAoBzB,SAChFQ,eAACI,IAAU,CAACC,QAAQ,QAAQ03C,WAAS,EAAAv4C,SAAA,CAAC,SAC7BhC,GAAOkuB,QAAUluB,GAAOkuB,QAAUluB,GAAOiqB,cAIpDnoB,cAACooC,IAAc,CACb5hB,MACE0sD,YAAUh2D,EAAKu9D,aAAevH,YAAUh2D,EAAK8yD,SAC3ChwE,cAACc,IAAU,CAAAZ,SAAEswE,YAAatzD,EAAKu9D,UAAWv9D,EAAK8yD,WAE/CtvE,eAACI,IAAU,CAAAZ,SAAA,CAAC,MACNuwB,YAAMvT,EAAKu9D,UAAW,sBAAsB,MAAI,IACnDhqD,YAAMvT,EAAK8yD,QAAS,yBAI3B5iD,KAAMptB,cAACgjF,IAAU,MAGnBhjF,cAACqjF,IAAqB,CAAAnjF,SAAEhC,GAAO0H,iBAEjClF,eAAC47C,IAAQ,CAACC,GAAI5hC,GAAQza,SAAA,CACpBF,cAACi1H,IAAO,CACNzuG,MACExmB,cAAC0C,IAAS3D,wBAAA,CACR4C,MAAK,WAAAV,OAAa/C,GAAOkuB,QAAUluB,GAAOkuB,QAAUluB,GAAOiqB,SAAQ,KACnElmB,SAAU/D,GAAOsiD,SACjB9+C,WAAS,GACLisC,GAAc,UAAQ,IAC1BtvC,MAAOuF,QAAQypC,GAAO1rC,OACtBkC,WAAYypC,GAAQ3rC,OAAS0rC,GAAO1rC,WAI1C3B,cAACooC,IAAc,CACb5hB,MACE9lB,eAACU,IAAK,CAACqB,UAAW,CAAE4rB,GAAI,UAAY/iB,QAAS,EAAEpL,SAAA,CAC7CF,cAACsyI,IAAqB,CACpB3wI,MAAM,gBACNM,SAAU/D,GAAOsiD,SACjB1hD,MAAOZ,GAAOu8E,UACdx8E,SAAU,SAACg2C,GAAI,OAAKr1C,GAAa,YAAaq1C,IAC9C2uC,YAAa,SAACrnD,GAAM,OAClBv7B,cAAC0C,IAAS3D,wBAAA,GACJw8B,GAAM,IACV93B,OAAO,QACP7C,GAAI,CAAEC,GAAI,GACVa,WAAS,EACTrD,MAAOuF,QAAQypC,GAAOotC,WACtB52E,WAAYypC,GAAQmtC,WAAaptC,GAAOotC,gBAK9Cz6E,cAACsyI,IAAqB,CACpBrwI,SAAU/D,GAAOsiD,SACjB7+C,MAAM,WACN7C,MAAOZ,GAAO8xE,QACd2S,QAAS,IAAIrgF,KACbrE,SAAU,SAACg2C,GAAI,OAAKr1C,GAAa,UAAWq1C,IAC5C2uC,YAAa,SAACrnD,GAAM,OAClBv7B,cAAC0C,IAAS3D,wBAAA,GACJw8B,GAAM,IACV93B,OAAO,QACP/B,WAAS,EACTrD,MAAOuF,QAAQ0+E,IACfz+E,WACEy+E,IAAe,sEAEjB1hF,GAAI,CAAEg5B,GAAI,YAMpBxM,KAAMptB,cAAC+iF,IAAU,MAGnB/iF,cAACqjF,IAAqB,CAAAnjF,SACpBF,cAAC0C,IAAS3D,wBAAA,CACRkD,SAAU/D,GAAOsiD,SACjB9+C,WAAS,EACT4hF,WAAS,EACTpoC,KAAM,EACNqoC,QAAS,EACT5hF,MAAM,IACFgsC,GAAc,gBAAc,IAChC/sC,GAAI,CAAEg5B,GAAI,GACVv7B,MAAOuF,QAAQypC,GAAOznC,aACtB/B,WAAYypC,GAAQ1nC,aAAeynC,GAAOznC,oBAI/CsX,EAAKsjC,UACJxgD,cAACgpC,IAAmB,CAACC,WAAW,OAAM/oC,SACpCF,cAACc,IAAU,CAAAZ,SAAC,gEAIjB7B,GAAS2B,cAAC+sB,IAAK,CAACC,SAAS,QAAO9sB,SAAE7B,IACnCqC,eAACmuB,IAAa,CAACjuB,GAAI,CAAEkuB,eAAgB,SAAUjuB,GAAI,IAAKX,SAAA,EACpDmyI,KAAe13H,IACf3a,cAACymB,IAAO,CAACD,MAAM,qBAAoBtmB,SACjCF,cAAA,QAAAE,SACEF,cAAC8zB,IAAU,CAAC7xB,SAAUib,EAAKsjC,SAAU77B,QAAS,kBAAMwN,GAAQ,IAAMjyB,SAChEF,cAACk7B,IAAI,CAAC9N,KAAMmlH,IAAY5uI,MAAO,GAAIiF,OAAQ,WAKnD5I,cAACW,IAAG,CAACC,GAAI,CAAE0jB,SAAU,MACnB+tH,IACAryI,cAAC+uB,IAAM,CACL9sB,SAAUib,EAAKsjC,SACfz/C,QAAQ,OACR4jB,QAAS,kBAAMy9D,IAAYznE,KAC3B1O,MAAM,UAAS/L,SAEdya,GAAU,UAAY,aAI1BA,GACC3a,cAAC+uC,IAAa,CACZntC,KAAK,QACLe,KAAK,SACLsJ,MAAM,UACNlL,QAAQ,YACRiuC,QAAS79B,EACT89B,iBAAiB,aAAY/uC,SAC9B,gBAIDF,cAAAC,WAAA,CAAAC,SACGiyI,GACCnyI,cAAC+uB,IAAM,CACLntB,KAAK,QACLhB,GAAI,CAAEyP,GAAI,GACVpE,MAAM,UACNlL,QAAQ,YACR4jB,QAvKG,WACjBiZ,EACEG,IAAe9iB,UAAUwf,QAAO,IAAAx5B,OAAwB,KAAjBic,EAAKkP,QAAiBlP,EAAKiL,SAAWjL,EAAKkP,WAqKlDlsB,SACrB,uBASTgd,EAAKsjC,UACLxgD,cAAC2wC,IAAa,CACZ3pB,KAAMA,EACN4pB,SAAU,kBAAMze,GAAQ,IACxB0e,UAhMU,kBAAAzuC,KAAAmkC,YAAAjH,IAAAiE,MAAG,SAAAwD,IAAA,OAAAzH,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,UACH,IAAZ9e,EAAK5K,GAAQ,CAAA00B,EAAAhL,KAAA,eAAAgL,EAAA3E,OAAA,iBACjB5hB,EACE8jH,YAAWrnH,EAAK5K,GAAhBiyH,EAAoB,WAClBpyG,GAAQ,GACRlL,IACAqlB,EAAgB,2BAAyB,CAAEvrC,QAAS,gBAEtD,wBAAAimC,EAAA/C,UAAA8C,QACHD,MAAA,KAAAriC,YAwLO0M,UAAWA,EAAUjR,SAErBF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAC,uD,iCCxStC,qDAKe,SAAS6tD,EAAwBvtD,GAAmD,IAAhDsG,EAAYtG,EAAZsG,aACjD,OACE9G,cAAAC,WAAA,CAAAC,SACG4G,GAAwC,IAAxBA,EAAa0rI,SAC5B9xI,eAACI,IAAU,CAACC,QAAQ,QAAOb,SAAA,CAAC,sBAAoB4G,EAAa0rI,e,uGCgCzDC,EAAkB,SAAlBA,GAAkB,OAAlBA,IAAkB,uBAAlBA,IAAkB,qBAAlBA,IAAkB,iBAAlBA,EAAkB,KAiBjBC,EAAoB,U,aCzDjCpzG,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAiBA,IAaM0N,EAAQC,YAAY,CACxBpS,KAAM,eACNqS,aAfsC,CACtCC,WAAW,EACX9S,OAAO,EACPs0I,oBAAqB,GACrBC,YAAa,KACbC,aAAc,KACdC,kBAAmB,KACnBC,YAAa,GACbC,uBAAuB,EACvBC,sBAAsB,EACtBC,sBAAsB,GAMtBvhI,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,EAClBU,EAAMxT,OAAQ,GAGhB0c,WAAU,SAAClJ,GACTA,EAAMV,WAAY,GAIpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAGvBmhI,iBAAgB,SAACthI,EAAOE,GAAS,IAADqhI,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC9Bn6H,EAAoEvH,EAAOC,QAAnE0hI,EAAWp6H,EAAXo6H,YAAanjF,EAAOj3C,EAAPi3C,QAASojF,EAAYr6H,EAAZq6H,aAAcp0H,EAAMjG,EAANiG,OAAQq0H,EAAWt6H,EAAXs6H,YA+BpD,GA5BA/hI,EAAMxT,MAAQ,KAGdwT,EAAM+gI,YAAcc,EACpB7hI,EAAMghI,aAAsB,OAAPtiF,QAAO,IAAPA,OAAO,EAAPA,EAAS3lC,MAAK,SAACtnB,GAAqB,OAAKA,EAAEgqB,QAChEzb,EAAMihI,kBAAgC,OAAZa,QAAY,IAAZA,OAAY,EAAZA,EAAc/oH,MAAK,SAAC/c,GAA0B,OAAKA,EAAEyf,QAG/Ezb,EAAMohI,qBAAuB1iF,EAAQza,MACnC,SAACxyC,GAAqB,IAAAuwI,EAAA,OAAKvwI,EAAEgP,MAAyB,QAAvBuhI,EAAKhiI,EAAMghI,oBAAY,IAAAgB,OAAA,EAAlBA,EAAoBvhI,KAAMhP,EAAE2xB,WAElEpjB,EAAMqhI,qBAAuBS,EAAa79F,MACxC,SAACjoC,GAA0B,IAAAimI,EAAA,OAAKjmI,EAAEyE,MAA8B,QAA5BwhI,EAAKjiI,EAAMihI,yBAAiB,IAAAgB,OAAA,EAAvBA,EAAyBxhI,KAAMzE,EAAEonB,WAKxEpjB,EAAMghI,eAAiBhhI,EAAMghI,aAAa59G,UAC5CpjB,EAAMghI,aAAa59G,QAAU1V,GAE3B1N,EAAMihI,oBAAsBjhI,EAAMihI,kBAAkB79G,UACtDpjB,EAAMihI,kBAAkB79G,QAAU2+G,GAIpC/hI,EAAM8gI,oBC1EmC,SAC7CpiF,EACAojF,GAEA,IAAIlxH,EAAsC,GAwC1C,OArCI8tC,GAAWA,EAAQ7rD,OAAS,GAC9B6rD,EACGpxD,QAAO,SAACmE,GAAqB,OAAMA,EAAEgqB,MAAQhqB,EAAE2xB,WAC/CvS,SAAQ,SAACpf,GAAqB,OAC7Bmf,EAAOve,KAAK,CACVoO,GAAIhP,EAAEgP,GACN3Q,MAAO2B,EAAE3B,MACTszB,QAAS3xB,EAAE2xB,QACX3H,KAAMhqB,EAAEgqB,KACRymH,UAAU,EACVC,eAAe,OAMnBL,GAAgBA,EAAajvI,OAAS,GACxCivI,EACGx0I,QAAO,SAAC0O,GAA0B,OAAMA,EAAEyf,MAAQzf,EAAEonB,WACpDvS,SAAQ,SAAC7U,GACR,IAAIomI,EAAmDxxH,EAAOmI,MAC5D,SAACspH,GAA4B,OAAKA,EAAO5hI,KAAOzE,EAAEyE,MAE9B,MAAlB2hI,EACFA,EAAeD,eAAgB,EAE/BvxH,EAAOve,KAAK,CACVoO,GAAIzE,EAAEyE,GACN3Q,MAAOkM,EAAElM,MACTszB,QAASpnB,EAAEonB,QACX3H,KAAMzf,EAAEyf,KACRymH,UAAU,EACVC,eAAe,OAKlBvxH,EAAO4J,MAAK,SAAC7d,EAAyB8d,GAAuB,OAClE9d,EAAE7M,MAAQ2qB,EAAE3qB,MAAQ,GAAK,KD6BKwyI,CAAgC5jF,EAASojF,IAG/C,QAAlBP,EAAAvhI,EAAMghI,oBAAY,IAAAO,OAAA,EAAlBA,EAAoBn+G,WAAkC,QAA3Bo+G,EAAIxhI,EAAMihI,yBAAiB,IAAAO,OAAA,EAAvBA,EAAyBp+G,SAC1DpjB,EAAMkhI,YAAcL,OACf,GAAqB,QAArBY,EAAIzhI,EAAM+gI,mBAAW,IAAAU,OAAA,EAAjBA,EAAmBr+G,QAAS,CAAC,IAADm/G,EAAAC,EACrCxiI,EAAMkhI,YAAmC,QAAxBqB,EAAoB,QAApBC,EAAGxiI,EAAM+gI,mBAAW,IAAAyB,OAAA,EAAjBA,EAAmB/hI,UAAE,IAAA8hI,IAAI,GAG/CviI,EAAMmhI,wBACe,QAAnBO,EAAC1hI,EAAMghI,oBAAY,IAAAU,OAAA,EAAlBA,EAAoBt+G,YACG,QAAxBu+G,EAAC3hI,EAAMihI,yBAAiB,IAAAU,OAAA,EAAvBA,EAAyBv+G,YACR,QAAlBw+G,EAAC5hI,EAAM+gI,mBAAW,IAAAa,OAAA,EAAjBA,EAAmBx+G,SAEtBpjB,EAAMV,WAAY,GAGpBmjI,kBAAiB,SAACziI,EAAOE,GACvB,IAAQghI,EAAgBhhI,EAAOC,QAAvB+gI,YAEJA,IAAgBL,GAEd7gI,EAAM+gI,cACR/gI,EAAM+gI,YAAY39G,SAAU,GAI1BpjB,EAAMghI,eACRhhI,EAAMghI,aAAa59G,SAAU,GAG3BpjB,EAAMihI,oBACRjhI,EAAMihI,kBAAkB79G,SAAU,IAIhCpjB,EAAM+gI,cACR/gI,EAAM+gI,YAAY39G,SAAU,GAIhCpjB,EAAMkhI,YAAcA,GAGtBwB,iBAAgB,SAAC1iI,EAAOE,GAAS,IAADyiI,EAC9B76H,EAAwB5H,EAAOC,QAAvBijB,EAAOtb,EAAPsb,QAAS3iB,EAAEqH,EAAFrH,GACbT,EAAMihI,oBAA4C,QAAvB0B,EAAA3iI,EAAMihI,yBAAiB,IAAA0B,OAAA,EAAvBA,EAAyBliI,MAAOA,IAEzDT,EAAMkhI,cAAgBL,IACxB7gI,EAAMkhI,YAAcL,EAChB7gI,EAAM+gI,cACR/gI,EAAM+gI,YAAY39G,SAAU,IAKhCpjB,EAAMihI,kBAAkB79G,QAAUA,IAItCw/G,cAAa,SAAC5iI,EAAOE,GAAS,IAAD2iI,EAC3BjpB,EAAwB15G,EAAOC,QAAvBijB,EAAOw2F,EAAPx2F,QAAS3iB,EAAEm5G,EAAFn5G,GACbT,EAAMghI,eAAkC,QAAlB6B,EAAA7iI,EAAMghI,oBAAY,IAAA6B,OAAA,EAAlBA,EAAoBpiI,MAAOA,IAE/CT,EAAMkhI,cAAgBL,IACxB7gI,EAAMkhI,YAAcL,EAChB7gI,EAAM+gI,cACR/gI,EAAM+gI,YAAY39G,SAAU,IAKhCpjB,EAAMghI,aAAa59G,QAAUA,OAU9B1hB,GAHQvC,MAAa,QAG0CA,EAAMwC,SAG/D2/H,GAHe5/H,EAAbkhI,cAA+BlhI,EAAhBghI,iBAAmChhI,EAAjB+gI,kBAGhB,WAC9B,OAAA/tG,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,IAAA/lB,EAAAgmB,EAAAhkB,EAAA,OAAA6c,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgB80B,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAEhBqO,IAAMR,IAAG,iCAAwD,KAAD,EAAjFpD,EAAQC,EAAAxE,KACJzf,EAAWgkB,EAAS5e,KAApBpF,OAAMikB,EAAA6D,GACN9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACPkoG,EAAmB9mG,QAAO,oBAC2B,OAAxDlrB,EAASzP,EAAMwC,QAAQ2/H,iBAAiB1sG,EAAS5e,OAAO6e,EAAArE,OAAA,oBAGP,OAAjD5hB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQ,MAAOikB,EAAArE,OAAA,kBAAAqE,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAIrDjmB,EAASzP,EAAMwC,QAAQ1B,SAAS,CAAE2Q,OAAQ,MAAO,yBAAAikB,EAAAzC,UAAAuC,EAAA,sB,+QE7ExCmuG,EAxEK,WAElB,IAAMjM,EAAU1wE,qBAAWC,KACrBx3C,EAAWG,cACjB0T,EAAwBC,YAA+B,OAAQ81C,IAAcC,cAAa91C,EAAA/1B,YAAA61B,EAAA,GAAnFyoB,EAAIvoB,EAAA,GAASA,EAAA,GA8DpB,MAAO,CACLogH,SA7DF,SAAkBj1H,GAAmB,IAADk1H,EAC5Bp1D,EAAyB,OAAP9/D,QAAO,IAAPA,GAAkB,QAAXk1H,EAAPl1H,EAASyvG,iBAAS,IAAAylB,OAAX,EAAPA,EAAoB11I,QAAO,SAAC+a,GAAW,OAAKA,EAAExb,WAAS,GAE3E,CAACy4B,IAAWC,MAAOD,IAAW1b,MAAMlc,SAAgB,OAAPogB,QAAO,IAAPA,OAAO,EAAPA,EAASuX,cACxDzW,EAASo7D,eAETp7D,EAASq0H,eACTr0H,EAASs0H,eACLt1D,EAAgB5mB,WAAWt5D,SAASo+C,IAAWgkB,mBACjDlhD,EACE8jD,eAAsB,SAACywE,GACrB,IAAM37E,EAAU27E,EACb71I,QAAO,SAAC+a,GAAC,OAAKA,EAAE6pD,gBAAkB,IAAM7pD,EAAEq4E,YAC1CzwF,KAAI,SAACoY,GACJ,MAAO,CACL5H,GAAI,IACJonD,OAAQ,SACRhe,MAAOxhC,EAAE5H,GAAGymB,WACZp3B,MAAOuY,EAAEsM,MACT9b,IAAK,GACL9E,YAAa,GACbsyB,WAAW,EACXoiC,QAAS,OAGf75C,EAAS+4C,YAAWH,QAItBomB,EAAgB5mB,WAAWt5D,SAASo+C,IAAW8jB,eACjDhhD,EAASynD,eAEXznD,EAASw0H,eAELx1D,EAAgB5mB,WAAWt5D,SAASo+C,IAAWp8B,SACjDd,EAASiqG,gBAIN,OAAPge,QAAO,IAAPA,KAAShwE,WAAW3b,EAAMp9B,EAAQuX,WAAYuoD,EAAgB/kE,mBAE1D,CAACyc,IAAWC,MAAOD,IAAW1b,MAAMlc,SAAgB,OAAPogB,QAAO,IAAPA,OAAO,EAAPA,EAASuX,cACxDzW,EAASmlG,eACTnlG,EAAS81E,eACT91E,EAASquH,YAAiB1D,IAAiB75B,eAC3C9wF,EAAS+qG,YAAa/rC,EAAgBy1D,aACtCz0H,EAAS0yH,eAGL1zD,EAAgBpmB,QAAQ30D,OAAS,GAEnC+b,EAAS+4C,YAAWimB,EAAgBpmB,YAWxC87E,eANF,WACS,OAAPzM,QAAO,IAAPA,KAAS1sH,gB,sDC9FbsjB,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EA4CA,IAEKg1E,EAAK,SAALA,GAAK,OAALA,EAAK,cAALA,EAAK,qBAALA,EAAK,cAALA,EAAK,gBAALA,EAAK,oBAALA,EAAK,gBAALA,EAAK,gCAALA,EAAK,8BAALA,EAAK,gBAALA,EAAK,gBAALA,EAAK,CAALA,GAAK,IAwDJpnE,EAA0B,CAC9BuyF,iBAAiB,EACjBuf,eAAe,EACfvoD,aAAc,KACdvlD,KAAM,KACNyK,QAAS,MAGLy1H,EAAa,SAACvjI,EAAkBE,GAAwB,IAADsjI,EAAAC,EAAAC,EAAAC,EAC3D,OAAQzjI,EAAOpP,MACb,IAAK,aACH,MAAO,CACL8gG,gBAAiB1xF,EAAOC,QAAQyxF,gBAChCuf,eAAe,EACf9tG,KAAMnD,EAAOC,QAAQkD,KACrByK,QAAS5N,EAAOC,QAAQ2N,QACxB86C,aAAc,MAGlB,IAAK,QACH,OAAA17D,wBAAA,GACK8S,GAAK,IACR4xF,iBAAiB,EACjBvuF,KAAMnD,EAAOC,QAAQkD,KACrByK,QAAS5N,EAAOC,QAAQ2N,QACxB86C,aAAc,OAElB,IAAK,SACH,OAAA17D,wBAAA,GACK8S,GAAK,IACR4xF,iBAAiB,EACjBvuF,KAAM,KACNyK,QAAS,KACT86C,aAAc,OAGlB,IAAK,WACH,OAAA17D,wBAAA,GACK8S,GAAK,IACR4xF,iBAAiB,EACjBvuF,KAAMnD,EAAOC,QAAQkD,KACrByK,QAAS5N,EAAOC,QAAQ2N,QACxB86C,aAAc,OAElB,IAAK,QACH,OAAA17D,wBAAA,GACK8S,GAAK,IACR4xF,iBAAiB,EACjBvuF,KAAM,KACNyK,QAAS,KACT86C,aAAc1oD,EAAOC,QAAQyoD,eAEjC,IAAK,SACH,OAAA17D,wBAAA,GACK8S,GAAK,IACR8N,QAAO5gB,wBAAA,GACF8S,EAAM8N,SAAO,IAChBw/D,UAAWptE,EAAOC,QAAQmtE,cAGhC,IAAK,iBACH,IAAMY,EAA4B,QAAhBs1D,EAAGxjI,EAAM8N,eAAO,IAAA01H,OAAA,EAAbA,EAAet1D,aACpC,OAAAhhF,wBAAA,GACK8S,GAAK,IACR8N,QAAO5gB,wBAAA,GACF8S,EAAM8N,SAAO,IAChBm/B,MAAO/sC,EAAOC,QAAQ8sC,MACtB22F,OAAQ1jI,EAAOC,QAAQyjI,OACvBC,OAAQ3jI,EAAOC,QAAQ0jI,OACvBrsC,QAASt3F,EAAOC,QAAQq3F,QACxBzqF,aAAc7M,EAAOC,QAAQ8C,cAC7Bs6G,UAAwB,QAAfkmB,EAAEzjI,EAAM8N,eAAO,IAAA21H,OAAA,EAAbA,EAAelmB,UAAUttH,KAAI,SAACoY,GACvC,OAAIA,EAAExb,QACJK,wBAAA,GAAYmb,GAAC,IAAEy7H,iBAAkB5jI,EAAOC,QAAQ2jI,mBAE3Cz7H,KAET6lE,aAAchuE,EAAOC,QAAQ+tE,aACzBhuE,EAAOC,QAAQ+tE,aAAaj+E,KAAI,SAACywE,GAC/B,MAAO,CACLA,IAAKA,EAAIqjE,QACTC,UAAWtjE,EAAIhmD,MACfupH,QAASvjE,EAAIjC,IACbmE,SAAUlC,EAAIkC,aAGlBsL,MAGV,IAAK,gBACH,OAAAhhF,wBAAA,GACK8S,GAAK,IACR8N,QAAO5gB,wBAAA,GACF8S,EAAM8N,SAAO,IAChByvG,UAAwB,QAAfmmB,EAAE1jI,EAAM8N,eAAO,IAAA41H,OAAA,EAAbA,EAAenmB,UAAUttH,KAAI,SAACoY,GACvC,OAAIA,EAAExb,QACJK,wBAAA,GAAYmb,GAAC,IAAE69D,aAAchmE,EAAOC,QAAQM,KAEvC4H,SAIf,IAAK,SACH,OAAAnb,wBAAA,GACK8S,GAAK,IACR8N,QAAO5gB,wBAAA,GACF8S,EAAM8N,SAAO,IAChByvG,UAAwB,QAAfomB,EAAE3jI,EAAM8N,eAAO,IAAA61H,OAAA,EAAbA,EAAepmB,UAAUttH,KAAI,SAACoY,GACvC,OAAIA,EAAExb,QACJK,wBAAA,GACKmb,GAAC,IACJm/C,QAASn/C,EAAEm/C,QACRroD,QACA7R,QACC,SAAC6jB,GAAC,QAEEA,EAAE1Q,KAAOP,EAAOC,QAAQM,IACxB0Q,EAAE02C,SAAW3nD,EAAOC,QAAQ0nD,QAC5B12C,EAAE04B,QAAU3pC,EAAOC,QAAQ+jI,eAKhC77H,SAIf,IAAK,SACH,OAAAnb,wBAAA,GACK8S,GAAK,IACR8N,QAAO5gB,wBAAA,GACF8S,EAAM8N,SAAO,IAChBqhD,OAAQjvD,EAAOC,QAAQgvD,WAG7B,QACE,OAAOnvD,IAIPm9G,EAAcr2C,wBAAqC,MAEzD,SAAS0rC,EAAY7jH,GAAyC,IAAD2B,EAAAqL,EAAAE,EAAAE,EAAAE,EAAAO,EAArCnO,EAAQM,EAARN,SAGd24C,GAFYn4B,aAAY,SAAC7O,GAAgB,OAAKA,EAAM8N,WAApDA,QAEUiwC,cAAV/W,OACRggC,EAA0BC,qBAAWs8D,EAAYlkI,GAAa6nE,EAAAt6E,YAAAo6E,EAAA,GAAvDhnE,EAAKknE,EAAA,GAAEt4D,EAAQs4D,EAAA,GAChBpc,EAAMg4E,IACNqB,EAAgBp1H,cACtBilB,EAA8BC,cAAtBotF,EAASrtF,EAATqtF,UAAWI,EAAMztF,EAANytF,OAEnBlqF,EAAgCC,cAAxBG,EAAUJ,EAAVI,WAAY6wD,EAAOjxD,EAAPixD,QAEpBp7F,qBAAU,WACRy5D,MACC,IAKHz5D,qBAAU,WAAO,IAADg3I,EACVpkI,EAAM4xF,iBAAmBpJ,IAAwB,QAAb47C,EAAApkI,EAAM8N,eAAO,IAAAs2H,OAAA,EAAbA,EAAe/+G,cAAeC,IAAWC,OAC/EijE,MAED,CAACxoF,EAAM4xF,kBAEV,IAAM/qC,EAAU,kBAAAv2D,KAAAokC,YAAAjH,IAAAiE,MAAG,SAAAiD,IAAA,IAAAg2B,EAAA/1B,EAAA+9B,EAAA0xE,EAAAzzH,EAAA0zH,EAAA,OAAA72G,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAEgD,GAFhD0K,EAAA3C,KAAA,IAETy4B,EAAcjzD,OAAOk5D,aAAaC,QAAQ,kBAE7BjG,YAAaD,GAAY,CAAA91B,EAAA1K,KAAA,SAClB,OAAxB0gC,YAAWF,GAAa91B,EAAA1K,KAAA,EAED4N,IAAcC,IAAqB,6BAA6B,KAAD,EAAhFpD,EAAQC,EAAAxE,KAAAsiC,EACyB/9B,EAAS5e,KAAxClI,EAAO6kD,EAAP7kD,QAAS8C,EAAM+hD,EAAN/hD,OAAQ0zH,EAAS3xE,EAAT2xE,UAASzvG,EAAA6D,GAE1B9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACPihG,IAAc7/F,QAAO,GAAAjF,EAAA6D,KAgBrBihG,IAAc4K,aAAY,GAAA1vG,EAAA6D,KAe1BihG,IAAc6K,YAAW,oBAlB3B,OAZD51H,EAAS,CACP9d,KAAM21E,EAAMg+D,QACZtkI,QAAS,CACPyxF,iBAAiB,EACjBvuF,KAAM,KACNyK,QAASA,KAIbg9C,EAAIi4E,SAASj1H,GACT,CAACwX,IAAWC,MAAOD,IAAW1b,MAAMlc,SAAgB,OAAPogB,QAAO,IAAPA,OAAO,EAAPA,EAASuX,aACxDq/G,IACD7vG,EAAArE,OAAA,oBAgBE,OAZHq6B,YAAW,MACXj8C,EAAS,CACP9d,KAAM21E,EAAMg+D,QACZtkI,QAAS,CACPyxF,iBAAiB,EACjBvuF,KAAM,KACNyK,QAAS,QAGbc,EAAS,CACP9d,KAAM21E,EAAMz2C,MACZ7vB,QAAS,CAAEyoD,aAAc07E,EAAUttH,eAClC6d,EAAArE,OAAA,oBAkBc,OAfjB5hB,EAAS,CACP9d,KAAM21E,EAAMg+D,QACZtkI,QAAS,CACPyxF,iBAAiB,EACjBvuF,KAAM,KACNyK,QAAS,QAGbc,EAAS,CACP9d,KAAM21E,EAAMz2C,MACZ7vB,QAAS,CACPyoD,aACE,qGAGNiC,YAAW,MAAMh2B,EAAArE,OAAA,oBAGjBq6B,YAAW,MACXj8C,EAAS,CACP9d,KAAM21E,EAAMg+D,QACZtkI,QAAS,CACPyxF,iBAAiB,EACjBvuF,KAAM,KACNyK,QAAS,QAGbc,EAAS,CACP9d,KAAM21E,EAAMz2C,MACZ7vB,QAAS,CAAEyoD,aAAc,qCACxB,QAAA/zB,EAAA1K,KAAA,iBAGP0gC,YAAW,MACXj8C,EAAS,CACP9d,KAAM21E,EAAMg+D,QACZtkI,QAAS,CACPyxF,iBAAiB,EACjBvuF,KAAM,KACNyK,QAAS,QAEV,QAAA+mB,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAGLjmB,EAAS,CACP9d,KAAM21E,EAAMg+D,QACZtkI,QAAS,CACPyxF,iBAAiB,EACjBvuF,KAAM,KACNyK,QAAS,QAEV,yBAAA+mB,EAAAzC,UAAAuC,EAAA,oBAENM,MAAA,KAAAriC,YAKK8xI,EAAa,WAAO,IAADn0I,EACvB8wH,IAAYvxF,MAAK,SAAD8I,GAAA,OAAAroC,KAAAmkC,YAAAjH,IAAAiE,MAAC,SAAAwD,EAAOjoC,GAAU,OAAAwgC,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,cAAAgL,EAAAhL,KAAA,EAEpBs3F,EAAOx0H,GAAM,UAAAkoC,EAAA9E,KAAC,CAAD8E,EAAAhL,KAAA,eAAAgL,EAAA3E,OAAA,iBAEzB5hB,EAAS,CACP9d,KAAM21E,EAAM/nD,OACZve,QAAS,CACPmtE,UAAWrgF,KAEZ,wBAAAkoC,EAAA/C,UAAA8C,QACJD,MAAA,KAAAriC,eAmOH,OACEzE,cAACgvH,EAAY/1C,SAAQ,CACnBn6E,MAAKC,wBAAA,GACA8S,GAAK,IACRkwB,OAAQ,MACRy4B,MAxMK,SAAA9vB,EAAAC,GAAA,OAAAn9B,KAAA+4B,YAAAjH,IAAAiE,MAAG,SAAA8Q,EAAO6mB,EAAoBC,GAAgB,IAAA10B,EAAAo+B,EAAApiD,EAAAyO,EAAA,OAAAoO,IAAAe,MAAA,SAAAiU,GAAA,cAAAA,EAAAvQ,KAAAuQ,EAAAtY,MAAA,cAAAsY,EAAAtY,KAAA,EAChC4N,IAAcl2B,KAAI,mCAAAzS,OACJ43C,GACnC,CACEqiB,aACAC,aAEF,KAAD,EANK10B,EAAQ6N,EAAApS,KAAA2iC,EAOYp+B,EAAS5e,KAA3BpF,EAAMoiD,EAANpiD,OAAQyO,EAAK2zC,EAAL3zC,MAAKojB,EAAA/J,GAEb9nB,EAAM6xB,EAAAtY,KAAAsY,EAAA/J,KACPkkG,IAAoB9iG,QAAO,EAAA2I,EAAA/J,KAK3BkkG,IAAoB1lG,SAAQ,mBAHlB,OADb2zB,YAAWxrC,GACXwnC,IAAapkB,EAAAjS,OAAA,oBAOV,OAHH5hB,EAAS,CACP9d,KAAM21E,EAAMz2C,MACZ7vB,QAAS,CAAEyoD,aAAc,sCACxBnmB,EAAAjS,OAAA,qCAAAiS,EAAArQ,UAAAoQ,QAGRvN,MAAA,KAAAriC,YAkLK63D,OAzKM,kBAAA1uD,KAAA24B,YAAAjH,IAAAiE,MAAG,SAAAqvF,IAAA,OAAAtzF,IAAAe,MAAA,SAAAwyF,GAAA,cAAAA,EAAA9uF,KAAA8uF,EAAA72F,MAAA,OACb0gC,YAAW,MAEXC,EAAIw4E,iBACJ10H,EAAS,CAAE9d,KAAM21E,EAAMk+D,SACvBR,EAAc38D,eACV7vC,GAAYA,IAAa,wBAAAqpF,EAAA5uF,UAAA2uF,QAC9B9rF,MAAA,KAAAriC,YAmKKguC,SAjLQ,SAAAhJ,EAAAC,EAAAO,EAAAC,GAAA,OAAAx8B,KAAA64B,YAAAjH,IAAAiE,MAAG,SAAAoiC,EACf7mB,EACAqc,EACAztC,EACAC,GAAgB,OAAA2R,IAAAe,MAAA,SAAAylC,GAAA,cAAAA,EAAA/hC,KAAA+hC,EAAA9pC,MAAA,wBAAA8pC,EAAA7hC,UAAA0hC,QACX7+B,MAAA,KAAAriC,YA6KDw3D,cAlKa,SAAAu1D,GAAA,OAAA1jH,KAAAy4B,YAAAjH,IAAAiE,MAAG,SAAA4vF,EAAOr0E,GAAa,IAAA23F,EAAA,OAAAn3G,IAAAe,MAAA,SAAA+yF,GAAA,cAAAA,EAAArvF,KAAAqvF,EAAAp3F,MAAA,cAAAo3F,EAAAp3F,KAAA,EACZ4N,IAAcl2B,KAAI,uCAAAzS,OACL43C,GACvC,CACEiG,UAEF,KAAD,EALK23F,EAAarjB,EAAAlxF,KAAAkxF,EAAA7oF,GAMXksG,EAAc5uH,KAAKpF,OAAM2wG,EAAAp3F,KAAAo3F,EAAA7oF,KAC1BmkG,IAAsB/iG,QAAO,EAAAynF,EAAA7oF,KAE7BmkG,IAAsB3lG,SAAQ,EAAAqqF,EAAA7oF,KAE9BmkG,IAAsBgI,eAAc,EAAAtjB,EAAA7oF,KAEpCmkG,IAAsB7sG,MAAK,8CAAAuxF,EAAA/wF,OAAA,qCAAA+wF,EAAAnvF,UAAAkvF,QAGnCrsF,MAAA,KAAAriC,YAkJKgyH,eAxDJ,SAACv7D,EAAoBy7E,EAAYC,EAAcC,EAAqBC,GAAuB,OAC3F,SAAC9xE,GAAuB,OACxB,SAAC17B,GACC,OAAA/C,YAAAjH,IAAAiE,MAAO,SAAAkvF,IAAA,IAAAhsF,EAAAhkB,EAAA,OAAA6c,IAAAe,MAAA,SAAAqyF,GAAA,cAAAA,EAAA3uF,KAAA2uF,EAAA12F,MAAA,cAAA02F,EAAA3uF,KAAA,EAAA2uF,EAAA12F,KAAA,EAEoB4N,IAAcl2B,KAAI,gCAAAzS,OACPi6D,EAAU,KAAAj6D,OAAI01I,EAAE,KAAA11I,OAAI21I,EAAI,aAAA31I,OAAY43C,GACpE,CACEg+F,YAAaA,EACbC,gBAAiBA,IAEnB,KAAD,EANKrwG,EAAQisF,EAAAxwF,KAONzf,EAAWgkB,EAAS5e,KAApBpF,OAAMiwG,EAAAnoF,GACN9nB,EAAMiwG,EAAA12F,KAAA02F,EAAAnoF,KACPikG,IAA4B7iG,QAAO,wBAAA+mF,EAAArwF,OAAA,SAC/B2iC,KAAW,OAElB17B,EAAQ7mB,GAAQ,QAAAiwG,EAAA12F,KAAA,iBAAA02F,EAAA3uF,KAAA,GAAA2uF,EAAA/tD,GAAA+tD,EAAA,SAGpBppF,EAAQklG,IAA4B3sG,OAAO,yBAAA6wF,EAAAzuF,UAAAwuF,EAAA,sBAqC7CskB,cAhJJ,SAACpsB,GAA0B,OAC3B,SAAC3lD,GAAuB,OACxB,SAAC17B,GACC,OAAA/C,YAAAjH,IAAAiE,MAAO,SAAAyvF,IAAA,IAAAgkB,EAAAvwG,EAAAw+B,EAAAxiD,EAAA,OAAA6c,IAAAe,MAAA,SAAA4yF,GAAA,cAAAA,EAAAlvF,KAAAkvF,EAAAj3F,MAAA,cAAAi3F,EAAAlvF,KAAA,EAAAkvF,EAAAj3F,KAAA,EAEoB4N,IAAcl2B,KACnC,sBACAi3G,EACA,CAAE7gF,QAAS,CAAEC,WAAW,KACxB,KAAD,EAJKtD,EAAQwsF,EAAA/wF,KAAA+iC,EAKcx+B,EAAS5e,KAA7BpF,EAAMwiD,EAANxiD,OAAewiD,EAAPryD,QAAOqgH,EAAA1oF,GAEf9nB,EAAMwwG,EAAAj3F,KAAAi3F,EAAA1oF,KACPgkG,IAAoB0I,cAAYhkB,EAAA1oF,KAChCgkG,IAAoB5iG,QADY,EACL,gBAe3B,GAdHlrB,EAAS,CACP9d,KAAM21E,EAAM4+D,eACZllI,QAAS,CACPq3F,QAASshB,EAAKhrG,QAAQ0pF,QACtBv0F,cAAe61G,EAAKhrG,QAAQf,aAC5B62H,OAAQ9qB,EAAKhrG,QAAQ81H,OACrBC,OAAQ/qB,EAAKhrG,QAAQ+1H,OACrB52F,MAAO6rE,EAAKhrG,QAAQm/B,MACpBihC,aAAoC,KAAtB4qC,EAAK5qC,aAAsB9zB,KAAKC,MAAMy+D,EAAK5qC,cAAgB,KACzE41D,iBACEhrB,EAAK54G,SAAWu8H,IAAoB6I,WAEkB,QAD7CH,EACLrsB,EAAKhrG,QAAQyvG,UAAUjwH,QAAO,SAAC+a,GAAC,OAAKA,EAAExb,WAAS,UAAE,IAAAs4I,OAAA,EAAlDA,EAAoDrB,qBAI1DlzH,IAAW8rH,IAAoB0I,aAAY,CAAAhkB,EAAAj3F,KAAA,SAC7B,OAAhBsN,EAAQ7mB,GAAQwwG,EAAA5wF,OAAA,kBAIN,OAAZ2iC,IAAYiuD,EAAA5wF,OAAA,oBAGI,OAAhBiH,EAAQ7mB,GAAQwwG,EAAA5wF,OAAA,oBAAA4wF,EAAAj3F,KAAA,iBAAAi3F,EAAAlvF,KAAA,GAAAkvF,EAAAtuD,GAAAsuD,EAAA,SAIpB3pF,EAAQilG,IAAoB1sG,OAAO,yBAAAoxF,EAAAhvF,UAAA+uF,EAAA,sBAsGrCE,YACAr7C,OAlGM,SAAA45C,EAAAC,EAAAC,GAAA,OAAAtjH,KAAAk4B,YAAAjH,IAAAiE,MAAG,SAAA8uF,EAAO//G,EAAY6/D,EAAiB74C,GAAgC,IAAA89G,EAAA3wG,EAAAm/B,EAAAmS,EAAAt1D,EAAA,OAAA6c,IAAAe,MAAA,SAAAiyF,GAAA,cAAAA,EAAAvuF,KAAAuuF,EAAAt2F,MAAA,UAC5EnqB,EAAM4xF,kBAAgC,QAAb2zC,EAAAvlI,EAAM8N,eAAO,IAAAy3H,OAAA,EAAbA,EAAelgH,cAAeC,IAAWC,MAAK,CAAAk7F,EAAAt2F,KAAA,eAAAs2F,EAAAjwF,OAAA,wBAAAiwF,EAAAvuF,KAAA,EAAAuuF,EAAAt2F,KAAA,EAGnD4N,IAAcl2B,KACnC,qCACA,CACE2jI,aAAc/kI,EACdglI,eAAgBnlE,IAElB,KAAD,EANK1rC,EAAQ6rF,EAAApwF,KAAA0jC,EAOmBn/B,EAAS5e,KAAlCkwD,EAAYnS,EAAZmS,aAAct1D,EAAMmjD,EAANnjD,OAAM6vG,EAAA/nF,GACpB9nB,EAAM6vG,EAAAt2F,KAAAs2F,EAAA/nF,KACP0nF,IAA0BtmF,QAAO,uBAChCosC,IAAiBzlE,EAAE,CAAAggH,EAAAt2F,KAAA,gBAAAs2F,EAAAjwF,OAAA,kBAOvB,OALA5hB,EAAS,CACP9d,KAAM21E,EAAMi/D,cACZvlI,QAAS,CAAEM,GAAIylE,KAGjBu6C,EAAAjwF,OAAA,oBAAAiwF,EAAAt2F,KAAA,iBAAAs2F,EAAAvuF,KAAA,GAAAuuF,EAAA3tD,GAAA2tD,EAAA,kCAAAA,EAAAruF,UAAAouF,EAAA,oBAIPvrF,MAAA,KAAAriC,YA0EK+yI,WA7Oa,SAACz4G,GAAS,OAAK,SAACimC,GAAuB,OAAK,SAAC17B,GAC9D,OAAA/C,YAAAjH,IAAAiE,MAAO,SAAA4G,IAAA,IAAA87E,EAAA,OAAA3mF,IAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,OAG2B,OAH3BoO,EAAArG,KAAA,GAEGkiF,EAAW,IAAIn6D,UACZC,OAAO,OAAQhtB,GAAMqL,EAAApO,KAAA,EACP4N,IAAcl2B,KAAK,2BAA4BuyG,EAAU,CAC9En8E,QAAS,CAAE,eAAgB,sBAAuBC,WAAW,KAC5D,KAAD,EAFYK,EAAAlI,KAGDra,MACXpH,EAAS,CACP9d,KAAM21E,EAAM/nD,OACZve,QAAS,CACPmtE,UAAW13D,IAAIktC,gBAAgB51B,MAGnCimC,KAEA17B,IACDc,EAAApO,KAAA,gBAAAoO,EAAArG,KAAA,EAAAqG,EAAAG,GAAAH,EAAA,SAEDd,IAAU,yBAAAc,EAAAnG,UAAAkG,EAAA,qBA0NVsvB,aAzEe,SAACnnD,EAAYonD,EAAgBq8E,GAChDt1H,EAAS,CACP9d,KAAM21E,EAAM0uC,OACZh1G,QAAS,CACPM,GAAIA,EACJonD,OAAQA,EACRq8E,SAAUA,MAoEV5wD,aArCe,SAACnkB,GACpB,OAAAz6B,YAAAjH,IAAAiE,MAAO,SAAAk0G,IAAA,OAAAn4G,IAAAe,MAAA,SAAAq3G,GAAA,cAAAA,EAAA3zG,KAAA2zG,EAAA17G,MAAA,cAAA07G,EAAA3zG,KAAA,EAAA2zG,EAAA17G,KAAA,EAEoB4N,IAAcl2B,KACnC,4BACAstD,EACA,CACEl3B,QAAS,CAAEC,WAAW,KAExB,KAAD,EAEuB,MARV2tG,EAAAx1G,KAQD5mB,QAEXmF,EAAS,CACP9d,KAAM21E,EAAMq/D,OACZ3lI,QAAS,CAAEgvD,OAAQA,KAEtB02E,EAAA17G,KAAA,eAAA07G,EAAA3zG,KAAA,EAAA2zG,EAAAntG,GAAAmtG,EAAA,iCAAAA,EAAAzzG,UAAAwzG,EAAA,mBAqBD/+E,eACAx4D,SAEDA,M,gCC1lBP,4MAAO,IAMKk1H,EAAW,SAAXA,GAAW,OAAXA,IAAW,iBAAXA,IAAW,iBAAXA,IAAW,qBAAXA,EAAW,KAMXnpG,EAAa,SAAbA,GAAa,OAAbA,IAAa,eAAbA,IAAa,2BAAbA,IAAa,mBAAbA,IAAa,qBAAbA,IAAa,mBAAbA,IAAa,mBAAbA,IAAa,6BAAbA,EAAa,KAeb4iD,EAAwB,SAAxBA,GAAwB,OAAxBA,IAAwB,eAAxBA,IAAwB,qBAAxBA,IAAwB,mCAAxBA,IAAwB,6BAAxBA,IAAwB,iCAAxBA,IAAwB,uCAAxBA,IAAwB,+BAAxBA,IAAwB,yBAAxBA,IAAwB,+BAAxBA,EAAwB,KAiBxB+oE,EAAiB,SAAjBA,GAAiB,OAAjBA,IAAiB,uBAAjBA,IAAiB,qBAAjBA,EAAiB,KAkBjB1oE,EAAmB,SAAnBA,GAAmB,OAAnBA,IAAmB,uBAAnBA,IAAmB,qBAAnBA,EAAmB,KAWnBK,EAAmB,SAAnBA,GAAmB,OAAnBA,IAAmB,uBAAnBA,IAAmB,qBAAnBA,IAAmB,yBAAnBA,IAAmB,qBAAnBA,IAAmB,iBAAnBA,IAAmB,mCAAnBA,IAAmB,iBAAnBA,IAAmB,+BAAnBA,EAAmB,M,0MCjFhB,SAASsoE,EAAoBr3I,GAAsD,IAAnDmB,EAAKnB,EAALmB,MAAO2Z,EAAM9a,EAAN8a,OAAQ3Y,EAAInC,EAAJmC,KACxDklB,EAAqE,CACvEiwH,UAAW,UACXC,WAAY,UACZp2I,MAAO,qBAGT,OAAQ2Z,GACN,KAAK08H,IAAgBC,SACnBpwH,EAAKiwH,UAAY,UACjBjwH,EAAKkwH,WAAa,UAClBlwH,EAAKlmB,MAAQ,UACb,MACF,KAAKq2I,IAAgBE,gBACnBrwH,EAAKiwH,UAAY,UACjBjwH,EAAKkwH,WAAa,UAClBlwH,EAAKlmB,MAAQ,wBACb,MACF,KAAKq2I,IAAgBG,eACnBtwH,EAAKiwH,UAAY,UACjBjwH,EAAKkwH,WAAa,UAClBlwH,EAAKlmB,MAAQ,2BACb,MACF,KAAKq2I,IAAgBI,YACnBvwH,EAAKiwH,UAAY,UACjBjwH,EAAKkwH,WAAa,QAClBlwH,EAAKlmB,MAAQ,cAIjB,OAAQgB,GACN,IAAK,QACH,OAAO3C,cAACq4I,IAAI,CAAC7sI,SAAS,QAAQ5K,GAAI,CAAEqL,MAAO4b,EAAKiwH,aAClD,IAAK,QACH,OAAO93I,cAAAC,WAAA,CAAAC,SAAG2nB,EAAKlmB,QACjB,QACE,OAAO3B,cAAC4zB,IAAK,CAAC3nB,MAAO4b,EAAKkwH,WAAW73I,SAAEyB,KCzB9B,SAAS+nI,EAAalpI,GAA6C,IAA1C8Z,EAAM9Z,EAAN8Z,OAAQyd,EAASv3B,EAATu3B,UAC9C,OACE/3B,cAACW,IAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SACT,OAANoa,QAAM,IAANA,OAAM,EAANA,EAAQxY,KAAI,SAACkhB,EAAGnP,GACf,OACE7T,cAACs4I,EAAS,CACRC,MAAOv1H,EAEPw1H,wBACW,OAATzgH,QAAS,IAATA,OAAS,EAATA,EAAW54B,QAAO,SAAC0hC,GAAwB,OACzCA,EAAE1X,aAAa6V,SAASz/B,SAASyjB,EAAE1Q,SAChC,IACN,YAAArR,OALgB+hB,EAAE1Q,IAAErR,OAAG4S,SAcpC,IAAMggB,EAAYhpB,YAAO8jB,IAAP9jB,EAAa,SAAA1I,GAAQA,EAAL4I,MAAK,MAAQ,CAC7CW,QAAS,GACTW,aAAc,MAGVkX,EAAa1Y,YAAOkZ,IAAPlZ,EAAyB,SAAAzI,GAAQ,MAAQ,CAC1D0J,gBADkD1J,EAAL2I,MACtBE,QAAQ4B,KAAK,KACpClB,aAAc,OAShB,SAAS2sI,EAAShrI,GAMd,IALFirI,EAAKjrI,EAALirI,MACAC,EAAsBlrI,EAAtBkrI,uBAKA,OACEx4I,cAAC6zB,EAAS,CAAA3zB,SACRQ,eAAC8iB,IAAS,CAAAtjB,SAAA,CACRQ,eAAC6iB,EAAU,CAACS,WAAYhkB,cAACikB,IAAU,IAAI/jB,SAAA,CACrCF,cAAC63I,EAAoB,CAACl1I,KAAK,QAAQhB,MAAM,GAAG2Z,OAAQi9H,EAAMj9H,SAC1D5a,eAACC,IAAG,CAACC,GAAI,CAAE+C,MAAO,MAAOwgB,WAAY,GAAIjkB,SAAA,CACvCF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAEq4I,EAAM52I,QACnCjB,eAACI,IAAU,CAACC,QAAQ,UAASb,SAAA,CAAC,mBACfF,cAAC63I,EAAoB,CAACl1I,KAAK,QAAQhB,MAAM,GAAG2Z,OAAQi9H,EAAMj9H,eAI3E5a,eAACI,IAAU,CAACC,QAAQ,UAAUH,GAAI,CAAEqL,MAAO,kBAAmB/L,SAAA,CAC3Dq4I,EAAME,aAAa/zI,OAAO,0BAG/B1E,cAACokB,IAAgB,CAACxjB,GAAI,CAAEiN,EAAG,GAAI3N,SAC7BF,cAACmoC,IAAI,CAAAjoC,SACFs4I,EAAuB12I,KAAI,SAACgwB,EAAOje,GAClC,IAAM6kI,EAAK,GAAAz3I,OAAM6wB,EAAMjhB,IAAG,KAAA5P,OAAIs3I,EAAMjmI,IAAErR,OAAG4S,GACzC,OACEnT,eAAA,OAAAR,SAAA,CACEF,cAACqsH,IAAe,CAACp0G,KAAM6Z,EAAmBirB,KAAK,UAAZ27F,GACnC14I,cAACkO,IAAO,MAFAwqI,iB,wXCtEX,SAASC,EAAoBn4I,GAIb,IAH7B8oB,EAAM9oB,EAAN8oB,OACAovB,EAAQl4C,EAARk4C,SACA/0B,EAAQnjB,EAARmjB,SAEArlB,EAA8BC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAtCkvE,EAAOhvE,EAAA,GAAEo6I,EAAUp6I,EAAA,GA6B1B,OACEwB,cAAC2uB,IAAI,CAAAzuB,SACHQ,eAACujD,IAAW,CAAA/jD,SAAA,CACTstE,GACC9sE,eAACqsB,IAAK,CAACC,SAAS,QAAO9sB,SAAA,CACrBF,cAAA,UAAAE,SAAQ,4EACRF,cAAA,SAAM,0CAC8BU,eAAA,UAAAR,SAAA,CAASw4C,EAAS,cAAiB,uEACvBA,EAAS,eAI5DA,EAAW,GACVh4C,eAACqsB,IAAK,CAACC,SAAS,OAAM9sB,SAAA,CAAC,+CACqBw4C,EAAS,YACnD14C,cAAA,SACAU,eAAA,UAAAR,SAAA,CAAQ,oCACyBw4C,EAAS,gGACIA,EAAS,eAC9C,4JAEgCA,EAAS,QAClD14C,cAAA,YAIJA,cAAC64I,EAAe,CAAA34I,SACb,SAAC44I,GACA,OACE94I,cAACW,IAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQlL,cAAe,MAAOC,WAAY,YAAarB,SACxE44I,EACE35I,QAAO,SAACmpC,GAAC,OAAoB,IAAfA,EAAE0oC,YAChBlvE,KAAI,SAACmyC,EAAMpgC,GAAW,IAADklI,EACdp0D,EAAczR,YAAUj/B,GACxBjoB,EAA4D,QAAnD+sH,EAAGzvH,EAAOnqB,QAAO,SAACmpC,GAAC,OAAKA,EAAE/b,QAAUo4D,KAAa,UAAE,IAAAo0D,OAAA,EAAhDA,EAAkD/sH,UACpE,OACEtrB,eAACC,IAAG,CACFC,GAAI,CACF4L,QAAS,OACTlL,cAAe,SACfC,WAAY,SACZoC,MAAO,OACPg9C,aAAc,YACdzgD,SAAA,CAGFF,cAACc,IAAU,CAACC,QAAQ,YAAYC,cAAY,EAAAd,SAC1CF,cAAA,UAAAE,SAASuwB,YAAMwjB,EAAM,YAEvBj0C,cAACc,IAAU,CAACC,QAAQ,UAAU2xD,QAAM,EAACn2B,aAAc,WAAWr8B,SAC3DuwB,YAAMwjB,EAAM,YAED,MAAbjoB,EACChsB,cAACW,IAAG,CAAAT,SAAuB,KAAC,QAAAe,OAAV4S,IAElB7T,cAAAC,WAAA,CAAAC,SACG8rB,EAAUlqB,KAAI,SAAC64E,GACd,OACE36E,cAAC0hF,IAAgB,CAEfD,UAAW9G,EAAS8G,UACpBE,WAAY,SAAC/G,GAAkB,OAxF1C,SACnBo+D,EACAr+D,EACAC,GAGA,GAAIliC,EAAW,EAAG,CAChB,IAAMugG,EAAUr+C,SAASnqE,YAAM0hD,YAAQyI,EAASH,UAAW/hC,GAAW,SAChEwgG,EAAYt+C,SAASnqE,YAAMmqD,EAASH,UAAW,SAUrD,GARYu+D,EACT75I,QACC,SAACmpC,GAAC,OACA4wG,GAAat+C,SAASnqE,YAAM6X,EAAEmyC,UAAW,UACzCw+D,EAAUr+C,SAASnqE,YAAM6X,EAAEmyC,UAAW,YAEzC3pE,QAAO,SAACqoI,EAAYt2E,GAAY,OAAKs2E,EAAat2E,EAAanqB,WAAU,GAEhEA,EAEV,YADAkgG,GAAW,GAKfj1H,EAASg3D,EAAUC,GAiEaqL,CAAatL,EAAS8G,UAAW9G,EAAUC,IAE7C4E,SAAS,EACToC,UAAWjH,EAASiH,WAAU,WAAA3gF,OANd05E,EAASntD,QAAQlb,YAW1C,YAAArR,OA1BgB4S,iBAkDzC,SAASglI,EAAe12I,GAAyD,IAAtDjC,EAAQiC,EAARjC,SAAQk5I,EAAAj3I,EAAE8xC,YAAI,IAAAmlG,EAAG,IAAI92I,KAAM82I,EACpD3vH,EAA0BlrB,mBAVA,SAAC01C,GAC3B,OAAOw/B,YAAYx/B,GASgBolG,CAAoBplG,IAAMvqB,EAAAjrB,YAAAgrB,EAAA,GAAtDqvH,EAAKpvH,EAAA,GAAE4vH,EAAQ5vH,EAAA,GAEhB6vH,EAAa,SAACxlE,GAClBulE,EAASxlE,YAAgBglE,EAAM,GAAI/kE,KAGrC,OACErzE,eAACC,IAAG,CAAAT,SAAA,CACFQ,eAACC,IAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQjL,WAAY,UAAWrB,SAAA,CACjDF,cAAC8zB,IAAU,CAACnP,QAAS,kBAAM40H,GAAW,IAAOr5I,SAC3CF,cAACk7B,IAAI,CAAC9N,KAAMmvE,IAAkB54F,MAAO,GAAIiF,OAAQ,OAGnD5I,cAACc,IAAU,CAACC,QAAQ,YAAYH,GAAI,CAAE02E,GAAI,IAAMp3E,SAC7CuwB,YAAMqoH,EAAM,GAAI,UAGnB94I,cAAC8zB,IAAU,CAACnP,QAAS,kBAAM40H,GAAW,IAAMr5I,SAC1CF,cAACk7B,IAAI,CAAC9N,KAAMkhE,IAAqB3qF,MAAO,GAAIiF,OAAQ,UAGvD1I,EAAS44I,M,6BC7HT,SAASxtH,EACdhC,EACAkwH,EACArtH,GAEA,IAAIstH,EAA8B,GAoBlC,OAlBAnwH,EACGnqB,QACC,SAACmpC,GAAc,OACbA,EAAEzc,YAAcC,IAAgBssB,iBAChC9P,EAAEtc,UAAU8pB,MAAK,SAAClZ,GAAM,OAAKA,EAAE1S,SAAS5X,KAAOknI,OACjC,MAAZrtH,GACAA,EAASS,eAAiBC,IAAaiD,OACvCwY,EAAEtc,UAAU8pB,MAAK,SAAC9yB,GAAM,MAAK,CAACo+D,IAAaC,MAAOD,IAAas4D,MAAMn6I,SAASyjB,EAAErgB,UAChF2lC,EAAEtc,UAAU8pB,MAAK,SAAC9yB,GAAM,MACtB,CAACo+D,IAAaC,MAAOD,IAAaE,UAAU/hF,SAASyjB,EAAErgB,aAG9Db,KAAI,SAACwmC,GAAC,OACLA,EAAEtc,UAAUlqB,KAAI,SAAC86C,GACV68F,EAAY3jG,MAAK,SAACxN,GAAM,OAAKA,EAAEh2B,KAAOsqC,EAAEpvB,QAAQlb,OAAKmnI,EAAYv1I,KAAK04C,EAAEpvB,eAI5EisH,EAWF,IAAMpsB,EAA4B,SAAH7sH,GAKA,IAADm5I,EAJnCzvH,EAAQ1pB,EAAR0pB,SAAQuqG,EAAAj0H,EACR2rB,gBAAQ,IAAAsoG,EAAG,KAAIA,EACfxtG,EAAOzmB,EAAPymB,QACA8G,EAAUvtB,EAAVutB,WAEAoe,EAA8BzrB,aAAY,SAAC7O,GAAgB,OAAKA,EAAMiL,UAA9DwM,EAAM6iB,EAAN7iB,OAAQswH,EAASztG,EAATytG,UAEhBt7I,EAAoCC,oBAAiB,OAAR2rB,QAAQ,IAARA,OAAQ,EAARA,EAAUqB,cAA0B,QAAhBouH,EAAIC,EAAU,UAAE,IAAAD,OAAA,EAAZA,EAAcrnI,KAAG9T,EAAAC,YAAAH,EAAA,GAA/Ek7I,EAAUh7I,EAAA,GAAEq7I,EAAar7I,EAAA,GAChCirB,EAA8BlrB,mBAA6D,CACzFqsD,KAAM,GACN7kC,SAAU,OACV2D,EAAAjrB,YAAAgrB,EAAA,GAHK+D,EAAO9D,EAAA,GAAE8nH,EAAU9nH,EAAA,GAK1BG,EAA0CtrB,oBAAS,GAAMurB,EAAArrB,YAAAorB,EAAA,GAAlD62D,EAAa52D,EAAA,GAAE62D,EAAgB72D,EAAA,GAChC4uB,EACS,OAAbvsB,IAA6B,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAUS,gBAAiBC,IAAaiD,MAAgB,OAAR3D,QAAQ,IAARA,OAAQ,EAARA,EAAUusB,SAAW,EAS5Fz5C,qBAAU,YACR,WACE,IAAIw6I,EAA8BnuH,EAAyBhC,EAAQkwH,EAAYrtH,GAE3E2tH,EAAkB,MAEP,OAAXL,QAAW,IAAXA,OAAW,EAAXA,EAAa/0I,QAAS,IACpBqpB,GAA6B,KAAfA,IAChB+rH,EAAkBL,EAAY7uH,MAAK,SAAC2U,GAAC,OAAKA,EAAEjtB,KAAOyb,MAGhD+rH,IACHA,EAAkBL,EAAY,KAIlCjI,EAAW,CAAE5mF,KAAM6uF,EAAa1zH,SAAU+zH,IAf5C,KAiBC,CAACN,IAMJ,IAgBMO,EAAiBr5E,uBAAY,WACjC,IAAMs5E,EAAoC,GAa1C,OAZA1wH,EACGnqB,QAAO,SAACmpC,GAAc,OAAKA,EAAEzc,YAAcC,IAAgBssB,mBAC3Dt2C,KAAI,SAACgiB,GACJ,IAAMm2H,EAAan2H,EAAMkI,UAAU7sB,QACjC,SAAC+6I,GAAc,IAAAC,EAAA,OACbD,EAAUhwH,SAAS5X,KAAOknI,GAAcU,EAAU1sH,QAAQlb,MAAuB,QAArB6nI,EAAK3sH,EAAQzH,gBAAQ,IAAAo0H,OAAA,EAAhBA,EAAkB7nI,OAEnF2nI,EAAWv1I,OAAS,GACtBs1I,EAAc91I,KAAInF,wBAAC,GAAK+kB,GAAK,IAAEkI,UAAWiuH,QAIzCD,IACN,CAACxsH,EAASgsH,IAIPY,EAAc9wH,EAAOwsB,MACzB,SAACxN,GAAc,IAAA+xG,EAAAC,EAAAC,EAAAC,EAAA,OACblyG,EAAEzc,YAAcC,IAAgBC,UACxB,OAARI,QAAQ,IAARA,OAAQ,EAARA,EAAUS,gBAAiBC,IAAaiD,OACxCwY,EAAE/b,MAAQ2mD,YAAU,IAAI5wE,SACH,QAApB+3I,EAAA/xG,EAAEtc,UAAU9B,gBAAQ,IAAAmwH,OAAA,EAApBA,EAAsB/nI,MAAOknI,IACT,QAAnBc,EAAAhyG,EAAEtc,UAAUwB,eAAO,IAAA8sH,OAAA,EAAnBA,EAAqBhoI,OAAuB,QAArBioI,EAAK/sH,EAAQzH,gBAAQ,IAAAw0H,OAAA,EAAhBA,EAAkBjoI,OACrC,QAAXkoI,EAAAlyG,EAAEtc,iBAAS,IAAAwuH,OAAA,EAAXA,EAAal/H,UAAW2Q,IAAcssB,cAG1C,GAA8B,IAA1BwhG,EAAer1I,QAAwC,IAAxB8oB,EAAQo9B,KAAKlmD,OAC9C,OACE1E,cAAC4oB,IAAY,CACXjgB,IAAI,0DACJ6d,MAAM,qGACNqC,YAAY,sIAKlB,IAAM4xH,EAAkB7iI,YAAIgiI,GAAWvtH,MAAK,SAAC7d,EAAG8d,GAAC,OAAM9d,EAAE7M,MAAQ2qB,EAAE3qB,MAAQ,GAAK,KAEhF,OACE3B,cAAC6mB,IAAS,CAAA3mB,SACPwgF,EACC1gF,cAAC+3C,IAAW,CACVnH,SAAU,kBAAM+vC,GAAiB,IACjC15D,QAASA,EACTkF,SACe,OAAbA,IAA6B,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAUS,gBAAiBC,IAAaiD,MAAQ3D,EAAW,OAIpFnsB,cAACW,IAAG,CAACC,GAAI,CAAEiN,EAAG,GAAI3N,SAChBQ,eAACynC,IAAI,CAAAjoC,SAAA,CACHF,cAACkhF,IAAqB,IACtBlhF,cAACooC,IAAc,CACb5hB,MAAM,iCACN4G,KAAMptB,cAACuwB,IAAM,CAAC3vB,GAAI,CAAE+C,MAAO,GAAIiF,OAAQ,IAAK1I,SAAC,MAAWA,SAExDF,cAAC0C,IAAS,CACRoB,QAAM,EACNnC,MAAM,GACN7C,MAAO06I,EACPv7I,SA9GO,SAACqF,GACpBu2I,EAAcv2I,EAAEC,OAAOzE,QA8GXiC,QAAQ,WACRa,KAAK,QACLK,SAAsB,MAAZioB,EAAiBhqB,SAE1Bu6I,EAAgB34I,KAAI,SAACy+E,GAAM,OAC1BvgF,cAACoE,IAAQ,CAAiBtF,MAAOyhF,EAAOjuE,GAAGpS,SACxCqgF,EAAO5+E,OADK4+E,EAAOjuE,WAO5BtS,cAACooC,IAAc,CACb5hB,MAAM,+BACN4G,KAAMptB,cAACuwB,IAAM,CAAC3vB,GAAI,CAAE+C,MAAO,GAAIiF,OAAQ,IAAK1I,SAAC,MAAWA,SAExDF,cAACoB,IAAK,CAACE,cAAe,MAAO0iG,SAAU,OAAQ3iG,IAAK,MAAMnB,SACvDstB,EAAQo9B,KAAK9oD,KAAI,SAACy9B,GAAgB,IAADm7G,EAChC,OACE16I,cAAC0xI,IAAe,CAEdlkH,QAAS+R,EACTxZ,SAAUwZ,EAAEjtB,MAAc,OAAPkb,QAAO,IAAPA,GAAiB,QAAVktH,EAAPltH,EAASzH,gBAAQ,IAAA20H,OAAV,EAAPA,EAAmBpoI,IACtCqR,SAAU,SAAC7kB,GAAK,OAAK0yI,EAAUzyI,wBAAC,GAAKyuB,GAAO,IAAEzH,SAAUjnB,OAAS,OAAAmC,OAHrDs+B,EAAEjtB,YASxBtS,cAACooC,IAAc,CACb5hB,MAAM,6BACN4G,KAAMptB,cAACuwB,IAAM,CAAC3vB,GAAI,CAAE+C,MAAO,GAAIiF,OAAQ,IAAK1I,SAAC,QAE9Ck6I,EACCp6I,cAAC4oB,IAAY,CACXpC,MAAO,4CACPqC,YAAW,6SAEXlgB,IAAK,0CAGP3I,cAAC24I,EAAoB,CACnBrvH,OAAQywH,IACRp2H,SA3HO,SAACg3D,EAAiCC,GACrD,IAAIl+D,EAAUg+D,YAA4BC,EAAUC,GAEpDl+D,EAAQyP,SACO,OAAbA,IAA6B,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAUS,gBAAiBC,IAAaiD,MAAQ3D,EAAW,KAE9EusB,EAAW,IAEbh8B,EAAQszD,QAAUv/C,YAAM0hD,YAAQz1D,EAAQ+9D,UAAW/hC,GAAW,wBAGhEj4B,YAASiuD,YAAqBhyD,IAC9BikE,GAAiB,IAgHLjoC,SAAUA,a,kGCxPX,SAAS68E,EAAuB/0H,GAA6C,IAA1Ckc,EAAOlc,EAAPkc,QAChDi+H,ECVa,WAAsB,IAC9BC,EAAM,SAANA,GAAM,OAANA,IAAM,eAANA,IAAM,mBAANA,IAAM,yBAANA,EAAM,KAkBX,MAAO,CACLC,UAbgB,SAACptH,GACjB,OAAQA,GACN,IAAK,KACH,OAAOmtH,EAAOE,KAChB,IAAK,MACL,IAAK,OACH,OAAOF,EAAOG,OAChB,QACE,OAAOH,EAAOI,YAMlBJ,UDX4BK,GAAtBL,EAAMD,EAANC,OAAQC,EAASF,EAATE,UAehB,OACE76I,cAACgpC,IAAmB,CAACC,WAAW,OAAM/oC,SACpCQ,eAACI,IAAU,CAACC,QAAQ,QAAOb,SAAA,CACzBF,cAAA,UAAAE,SAAQ,cAAmB,qPAG3BF,cAAA,SAAM,qBAnBS,SAAC0c,GAA8B,IAADw+H,EACjBC,EAAhC,GAAW,OAAPz+H,QAAO,IAAPA,GAAgB,QAATw+H,EAAPx+H,EAAS8Q,eAAO,IAAA0tH,OAAT,EAAPA,EAAkBztH,SAEpB,OADaotH,EAAiB,OAAPn+H,QAAO,IAAPA,GAAgB,QAATy+H,EAAPz+H,EAAS8Q,eAAO,IAAA2tH,OAAT,EAAPA,EAAkB1tH,WAEvC,KAAKmtH,EAAOE,KACV,MAAO,kBACT,KAAKF,EAAOG,OACV,MAAO,mBAGb,MAAO,+BASgBK,CAAa1+H,U,kJExBlCmX,EAAYhpB,YAAO,MAAPA,EAAc,SAAArK,GAAQA,EAALuK,MAAK,MAAQ,CAC9CuZ,SAAU,EACV1b,OAAQ,OACR0H,SAAU,aAGN+qI,EAAiBxwI,YAAOywI,IAAPzwI,EAAuB,SAAA1I,GAAA,IAAG4I,EAAK5I,EAAL4I,MAAK,MAAQ,CAC5D0jB,UAAW,OACX,yBAA0B,CACxB,WAAY,CACV3iB,gBAAiB4D,YAAM3E,EAAME,QAAQ4B,KAAK,KAAM,MAElD,6BAA8B,CAC5Bw/C,QAAS,IAGb,wCAAyC,CACvC1oD,MAAO,IAET,+DAAgE,CAC9DiF,OAAQ,GAEV,oBAAqB,CACnByG,OAAQ,eAMG,SAASwX,EAASzkB,GAAgD,IAA7ClC,EAAQkC,EAARlC,SAAUU,EAAEwB,EAAFxB,GAAOmO,EAAKc,YAAAzN,EAAA0N,GAKxD,MAJiB,iEAAiEnF,KAChF25G,UAAUi3B,WAKRv7I,cAACW,IAAG5B,wBAAA,CAAC6B,GAAE7B,YAAA,CAAI0N,UAAW,QAAW7L,IAAUmO,GAAK,IAAA7O,SAC7CA,KAMLF,cAAC6zB,EAAS,CAAA3zB,SACRF,cAACq7I,EAAct8I,wBAAA,CAACy1D,QAAS,IAAKgnF,cAAc,EAAO56I,GAAIA,GAAQmO,GAAK,IAAA7O,SACjEA,S,8GC1CIwkB,EAAmB,SAAHlkB,GAIC,IAH5Boa,EAAWpa,EAAXoa,YAAW6gI,EAAAj7I,EACXkgD,aAAK,IAAA+6F,GAAQA,EACb92H,EAAOnkB,EAAPmkB,QAEQyE,EAAuBC,cAAvBD,mBACA4B,EAA+BpQ,EAA/BoQ,QAAS0wH,EAAsB9gI,EAAtB8gI,WAAY/kH,EAAU/b,EAAV+b,MAC7B,IAAK3L,EAAS,OAAOhrB,cAAAC,WAAA,IAErB,IAIMuI,EACJ9H,eAACI,IAAU,CACTC,QAAS2/C,EAAQ,UAAY,YAC7Bz0C,MAAOy0C,EAAQ,UAAY,UAC3B9/C,GAAE7B,YAAA,GAAQ2hD,GAAS,CAAEjkB,WAAY,MAASv8B,SAAA,CAC3C,UACS,IACPw7I,EAAa,GAAK/kH,EAAK,KAAA11B,OAAQ01B,EAAMsiG,QAAQ,GAAE,KAAAh4H,OAAImoB,IAAqB0B,SAAY,MAIzF,OAAKnG,EAGH3kB,cAAC+uB,IAAM,CAAC9iB,MAAM,UAAUlL,QAAQ,OAAO4jB,QAlBrB,WACdA,GAASA,KAiB+CzkB,SACzDsI,IAJgBA,I,gCCrBvB,wIAAO,IAAKgxH,EAAY,SAAZA,GAAY,OAAZA,IAAY,eAAZA,IAAY,yBAAZA,IAAY,yBAAZA,IAAY,yBAAZA,IAAY,uBAAZA,EAAY,KAQZ3nG,EAAc,SAAdA,GAAc,OAAdA,IAAc,uBAAdA,IAAc,yBAAdA,IAAc,aAAdA,IAAc,eAAdA,IAAc,mBAAdA,IAAc,iBAAdA,IAAc,2BAAdA,EAAc,KAUdN,EAAa,SAAbA,GAAa,OAAbA,IAAa,eAAbA,IAAa,aAAbA,IAAa,+BAAbA,IAAa,qCAAbA,IAAa,eAAbA,IAAa,qBAAbA,IAAa,mBAAbA,IAAa,mBAAbA,IAAa,sBAAbA,IAAa,kBAAbA,IAAa,oBAAbA,IAAa,kBAAbA,EAAa,KAoBbkoG,EAAmB,SAAnBA,GAAmB,OAAnBA,IAAmB,uBAAnBA,IAAmB,qBAAnBA,IAAmB,iBAAnBA,EAAmB,M,iCCnD/B,8CAIMkiB,EAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9CC,EAAY,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChDC,EAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC9CC,EAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnDC,EAAa,CAAC,IAAK,IAAK,IAAK,IAAK,KAExC,SAASC,EAAkBn9I,GACzB,OAAOo9I,qBAAWp9I,GAAQA,EAAKmlC,OAAO,IAGxC,SAASk4G,EAAer9I,GACtB,OAAI88I,EAAap8I,SAASy8I,EAAkBn9I,IAAe,UACvD+8I,EAAUr8I,SAASy8I,EAAkBn9I,IAAe,OACpDg9I,EAAat8I,SAASy8I,EAAkBn9I,IAAe,UACvDi9I,EAAav8I,SAASy8I,EAAkBn9I,IAAe,UACvDk9I,EAAWx8I,SAASy8I,EAAkBn9I,IAAe,QAClD,UAGM,SAASwgF,EAAaxgF,GACnC,MAAO,CACLA,KAAMm9I,EAAkBn9I,GACxBoN,MAAOiwI,EAAer9I,M,yKCpBpBg1B,EAAYhpB,YAAOlK,IAAPkK,EAAY,SAAArK,GAAQ,MAAQ,CAC5CoI,OAAQ,OACR4D,QAAS,OACTvJ,UAAW,SACX1B,WAAY,SACZD,cAAe,SAEfoK,QAPoClL,EAALuK,MAOhBO,QAAQ,EAAG,GAC1BgF,SAAU,WAaG,SAASsY,EAAYzmB,GAOb,IANrBqkB,EAAKrkB,EAALqkB,MACAqC,EAAW1mB,EAAX0mB,YACAlgB,EAAGxG,EAAHwG,IAAGwzI,EAAAh6I,EACH0yB,kBAAU,IAAAsnH,GAAQA,EAClBC,EAAMj6I,EAANi6I,OACGrtI,EAAKc,YAAA1N,EAAA2N,GAER,OACEpP,eAACmzB,EAAS90B,wBAAA,GAAKgQ,GAAK,IAAA7O,SAAA,EAChB20B,GACA70B,cAACW,IAAG,CACFoN,UAAU,MACVyqC,IAAI,gBACJhqB,IAAK7lB,GAAO,uDACZ/H,GAAI,CAAE6tB,UAAW,QAASmL,GAAI,KAIjCwiH,EAEDp8I,cAACc,IAAU,CAACC,QAAQ,YAAYC,cAAY,EAAAd,SACzCsmB,IAGFqC,GACC7oB,cAACc,IAAU,CAACC,QAAQ,UAAUH,GAAI,CAAEqL,MAAO,iBAAkBiiB,SAAU,KAAMhuB,SAC1E2oB,U,sPCXIq2D,EA7BCjY,sBACd,SAAAzmE,EAAgD4xB,GAAS,IAADiqH,EAAA77I,EAArDyL,aAAK,IAAAowI,EAAG,UAASA,EAAEn8I,EAAQM,EAARN,SAAUU,EAAEJ,EAAFI,GAAOmO,EAAKc,YAAArP,EAAAsP,GACpC/E,EAAQgW,cAEd,MAAc,YAAV9U,EAEAjM,cAACuwB,IAAMxxB,wBAAA,CAACqzB,IAAKA,EAAKxxB,GAAIA,GAAQmO,GAAK,IAAA7O,SAChCA,KAMLF,cAACuwB,IAAMxxB,wBAAA,CACLqzB,IAAKA,EACLxxB,GAAE7B,YAAA,CACA09B,WAAY1xB,EAAMI,WAAWyhD,iBAC7B3gD,MAAOlB,EAAME,QAAQgB,GAAOuqE,aAC5B1qE,gBAAiBf,EAAME,QAAQgB,GAAOqhB,MACnC1sB,IAEDmO,GAAK,IAAA7O,SAERA,Q,4EC7BHo8I,EACJt8I,cAACW,IAAG,CACFoN,UAAU,OACVnN,GAAI,CACF+C,MAAO,KAWb,SAAS44I,EAAQ/7I,GAA6B,IAA1B6qD,EAAI7qD,EAAJ6qD,KACV38C,EAAqB28C,EAArB38C,KAAM7P,EAAewsD,EAAfxsD,KAAMuuB,EAASi+B,EAATj+B,KACpB,OACE1sB,eAACiO,IAAI,CAEH5N,QAAQ,QACRgN,UAAWguD,IACXlM,GAAInhD,GAAQ,IACZ9N,GAAI,CACF2K,WAAY,EACZiB,QAAS,OACTjL,WAAY,SACZ0K,MAAO,eACPS,WAAY,SACZ,UAAW,CAAEF,QAAS,YACtBtM,SAAA,CAEDktB,GACCptB,cAACW,IAAG,CACFC,GAAI,CACF4vB,GAAI,EACJ,QAAS,CAAE7sB,MAAO,GAAIiF,OAAQ,KAC9B1I,SAEDktB,IAGJvuB,IAvBIA,GAiCI,SAAS0qH,EAAYpnH,GAA8D,IAADq6I,EAA1D33C,EAAK1iG,EAAL0iG,MAAK43C,EAAAt6I,EAAEu6I,kBAAU,IAAAD,GAAQA,EAAK1tI,EAAKc,YAAA1N,EAAA2N,GAClE6sI,EAAyB,QAAdH,EAAGtzH,eAAK27E,UAAM,IAAA23C,OAAA,EAAXA,EAAa39I,KAE3B+9I,EAAc/3C,EAAM/iG,KAAI,SAACupD,EAAMx3C,GAAK,OAAK7T,cAACu8I,EAAQ,CAAalxF,KAAMA,GAAbx3C,MACxDgpI,EAAiBh4C,EAAM/iG,KAAI,SAACupD,EAAMx3C,GAAK,OAC3C7T,cAAA,OAAAE,SACGmrD,EAAKxsD,OAAS89I,EACb38I,cAACu8I,EAAQ,CAAClxF,KAAMA,IAEhBrrD,cAACc,IAAU,CACTC,QAAQ,QACRH,GAAI,CACFstB,SAAU,IACV5d,SAAU,SACV5D,WAAY,SACZT,MAAO,gBACPswB,aAAc,YACdr8B,SAEDy8I,KAdG9oI,MAoBZ,OACE7T,cAACw+G,IAAWz/G,wBAAA,CAAC4jB,UAAW25H,GAAevtI,GAAK,IAAEnO,GAAI,CAAE,OAAQ,CAAEojG,SAAU,WAAa9jG,SAClFw8I,EAAaE,EAAcC,K,6CCrEnBn2H,EAVKugD,sBAClB,SAAAzmE,EAAyB4xB,GAAG,IAAzBlyB,EAAQM,EAARN,SAAa6O,EAAKc,YAAArP,EAAAsP,GAAA,OACnB9P,cAAC03D,IAAa,CAAAx3D,SACZF,cAAC8zB,IAAU/0B,wBAAA,CAACqzB,IAAKA,GAASrjB,GAAK,IAAA7O,SAC5BA,U,SCSM,SAAS4mB,EAAOtmB,GAAqC,IAAlCmD,EAAKnD,EAALmD,MAAOzD,EAAQM,EAARN,SACjC48I,EAAan5I,EAAMivE,UAAU,EAAG,GAChCmqE,EAAW97H,aAAqB,SAAClW,GAAK,OAAKA,EAAMoB,YAAYC,GAAG0wI,MAChEE,EAAa/7H,aAAqB,SAAClW,GAAK,OAAKA,EAAMoB,YAAY+U,KAAK47H,MAE1E,OAAIn5I,EAAMpE,SAAS,QACVy9I,EAAa,KAAOh9I,cAAAC,WAAA,CAAAC,SAAGA,IAG5ByD,EAAMpE,SAAS,MACVw9I,EAAW,KAAO/8I,cAAAC,WAAA,CAAAC,SAAGA,IAGvB,O,gMCnBH2zB,EAAYhpB,YAAOipB,IAAPjpB,EAAmB,SAAArK,GAAQ,MAAQ,CACnDyL,MAD2CzL,EAALuK,MACzBE,QAAQiiB,QAAQI,KAC7BxhB,gBAAiB,cAYb4a,EAAcugD,sBAClB,SAAA9kE,EAAyBiwB,GAAG,IAAzBlyB,EAAQiC,EAARjC,SAAa6O,EAAKc,YAAA1N,EAAA2N,GAAA,OACnB9P,cAAC6zB,EAAS90B,wBAAA,CAACqzB,IAAKA,GAASrjB,GAAK,IAAEnN,KAAK,QAAO1B,SACzCA,QAsBM4+B,EAAqB,SAAH18B,GAA2C,IAArC28B,EAAI38B,EAAJ28B,KAC3BzsB,EAAwCysB,EAAxCzsB,GAAI6e,EAAoC4N,EAApC5N,SAAUF,EAA0B8N,EAA1B9N,SAAU2V,EAAgB7H,EAAhB6H,YAEhC,OACE5mC,cAAC65C,IAAU,CAAA35C,SACR,SAAC45C,EAAU/T,EAASgU,EAAe5oC,EAAW60B,EAAegU,EAAaC,GAAU,OACnFj6C,cAACymB,IAAO,CAACD,MAAM,+BAAwBtmB,SACrCF,cAAC0mB,EAAW,CACV/B,QAAS,kBACPoa,EAAKtN,KACDwoB,EACElb,EAAK7N,MAAMyV,WACX5H,EAAK7N,MAAMD,SACX2V,EAAcxV,IAASyV,iBAAmB1V,EAC1C7e,GAEFwnC,EAASxnC,EAAI6e,EAAUF,IAC5B/wB,SAEAiR,EACCnR,cAAC2vC,IAAgB,CAAC5uC,QAAQ,gBAAgBa,KAAM,UAEhD5B,cAACk7B,IAAI,CAAC9N,KAAM6vH,IAAct5I,MAAO,GAAIiF,OAAQ,aAS5C8d,O,gsBChFFw2H,G,MAAmC,SAAC9/H,GAA6C,IAADy2E,EAC3F,MAAO,CACLrZ,QAASp9D,EAAay3C,WACtBtoC,MAAOnP,EAAaq9D,UACpBnK,IAAKlzD,EAAa4yD,QAClBxpD,MAAOpJ,EAAaoJ,MACpB4G,KAAM,sBACNvB,UAAWC,IAAgB+3D,aAC3B73D,UAAW,CACTy3C,eAAgBrmD,EAAaqmD,eAC7B5O,WAAYz3C,EAAay3C,WACzB6O,gBAAiBtmD,EAAasmD,gBAC9Bl2C,QAASpQ,EAAaoQ,QACtB3b,MAAOuL,EAAavL,MACpBwyD,YAAajnD,EAAainD,YAC1BovB,SAAUr2E,EAAaq2E,SACvBlnE,MAAOnP,EAAaq9D,UACpBnK,IAAKlzD,EAAa4yD,QAClBzK,aAAkC,QAAtBsuB,EAAEz2E,EAAaV,eAAO,IAAAm3E,OAAA,EAApBA,EAAsBvhF,IAEtCrG,MAAO,UACPgwC,UAAW7+B,EAAay3C,WAAa,UAAY,GACjDviD,GAAI8K,EAAa9K,GAAGymB,c,yDC1BxBuG,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAiCA,IAUM0N,EAAQC,YAAY,CACxBpS,KAAM,SACNqS,aAZgC,CAChCC,WAAW,EACX9S,OAAO,EACPirB,OAAQ,GACRswH,UAAW,GACXrgF,aAAa,EACbunB,cAAe,KACfq8D,cAAe,MAMfxrI,SAAU,CACR0nE,WAAU,SAACxnE,KAEXD,aAAY,SAACC,GACXA,EAAMV,WAAY,GAGpB0qE,KAAI,SAAChqE,GACHA,EAAMyX,OAAS,GACfzX,EAAM+nI,UAAY,IAIpB9nI,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAGvBorI,yBAAwB,SAACvrI,EAAOE,GAC9BF,EAAMV,WAAY,EAClBU,EAAMyX,OAAM,GAAAroB,OAAA2W,YAAO/F,EAAMyX,QAAM1R,YAAK7F,EAAOC,QAAQsX,SACnDzX,EAAM+nI,UAAY7nI,EAAOC,QAAQ4nI,WAGnCyD,sBAAqB,SAACxrI,EAAOE,GAC3BF,EAAMV,WAAY,EAClBU,EAAMyX,OAAM,GAAAroB,OAAA2W,YAAO/F,EAAMyX,QAAM1R,YAAK7F,EAAOC,WAI7C0yE,YAAW,SAAC7yE,EAAOE,GACjBF,EAAM0nD,aAAc,EACpB1nD,EAAMivE,cAAgB/uE,EAAOC,QAC7BH,EAAMxT,MAAQ,MAIhBi/I,iBAAgB,SAACzrI,EAAOE,GACtB,IAAAuH,EAAqBvH,EAAOC,QAApBM,EAAEgH,EAAFhH,GAAI3P,EAAI2W,EAAJ3W,KAEZkP,EAAMivE,cAAgBjvE,EAAMyX,OAAOnqB,QACjC,SAAC2kE,GAAM,OAAKA,EAAOxxD,KAAOA,GAAMwxD,EAAOj4C,YAAclpB,KACrD,GACFkP,EAAM0nD,aAAc,EACpB1nD,EAAMxT,MAAQ,MAIhBimE,UAAS,SAACzyD,GACRA,EAAM0nD,aAAc,GAItBS,WAAU,SAACnoD,GACTA,EAAM0nD,aAAc,EACpB1nD,EAAMivE,cAAgB,KACtBjvE,EAAMsrI,cAAgB,MAGxBruE,SAAQ,SAACj9D,EAAOE,GACdF,EAAMyX,OAAM,GAAAroB,OAAA2W,YAAO/F,EAAMyX,QAAM1R,YAAK7F,EAAOC,UAC3CH,EAAM0nD,aAAc,EACpB1nD,EAAMivE,cAAgB,MAGxB9R,YAAW,SAACn9D,EAAOE,GACjB,IAAM+R,EAAQ/R,EAAOC,QAEfg9D,EAAcltE,cAAI+P,EAAMyX,QAAQ,SAACw6C,GACrC,OAAIA,EAAOxxD,KAAOwR,EAAMxR,GACfwR,EAEFggD,KAGTjyD,EAAMV,WAAY,EAClBU,EAAM0nD,aAAc,EACpB1nD,EAAMyX,OAAS0lD,GAGjB62D,sBAAqB,SAACh0H,EAAOE,GAC3B,IAAMuX,EAASvX,EAAOC,QAChBurI,EAA4Bp+I,iBAChC0S,EAAMyX,QACN,SAACmC,GAAG,OAAKA,EAAII,WAAaC,IAAgBoH,YAG5CrhB,EAAMV,WAAY,EAClBU,EAAM0nD,aAAc,EACpB1nD,EAAMyX,OAASi0H,EAA0Bt8I,OAAOqoB,IAGlD6lD,YAAW,SAACt9D,EAAOE,GACjB,IAAQq9D,EAAYr9D,EAAOC,QAAnBo9D,QACFouE,EAAcr+I,iBAAO0S,EAAMyX,QAAQ,SAACmC,GAAG,OAAKA,EAAInZ,IAAM88D,KAE5Dv9D,EAAMyX,OAASk0H,EACf3rI,EAAM0nD,aAAc,EACpB1nD,EAAMivE,cAAgB,MAGxBxb,cAAa,SAACzzD,EAAOE,GACnB,IAAMq9D,EAAUr9D,EAAOC,QAAQM,GAAGymB,WAC5Bi2C,EAAcltE,cAAI+P,EAAMyX,QAAQ,SAACw6C,GACrC,OAAIA,EAAOxxD,KAAO88D,GAChBtL,EAAO0W,QAAUzoE,EAAOC,QAAQ6iD,WAChCiP,EAAO93C,UAAU6oC,WAAa9iD,EAAOC,QAAQ6iD,WAC7CiP,EAAO93C,UAAUq4C,YAActyD,EAAOC,QAAQqyD,YAC9CP,EAAO93C,UAAUu5C,aAAexzD,EAAOC,QAAQuzD,aAC/CzB,EAAO7nB,UAAYlqC,EAAOC,QAAQ6iD,WAAa,UAAY,GACpDiP,GAEFA,KAGTjyD,EAAMyX,OAAS0lD,EACfn9D,EAAM0nD,aAAc,EACpB1nD,EAAMivE,cAAgB,SASrBvtE,GAHQvC,MAAa,QAexBA,EAAMwC,SAVRwmD,GADSzmD,EAAT+wD,UACU/wD,EAAVymD,YACA0qB,EAAWnxE,EAAXmxE,YAEA5V,GADgBv7D,EAAhB+pI,iBACQ/pI,EAARu7D,UACAK,EAAW57D,EAAX47D,YACAH,EAAWz7D,EAAXy7D,YACA1J,EAAa/xD,EAAb+xD,cACAugE,EAAqBtyH,EAArBsyH,sBACAhqD,EAAItoE,EAAJsoE,KACAxC,EAAU9lE,EAAV8lE,WAKK,SAASy7D,IACd,OAAAvuG,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,IAAA/lB,EAAAgmB,EAAA+9B,EAAA/hD,EAAAmoC,EAAAgvF,EAAAnxB,EAAA,OAAAnpF,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgB80B,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAEdqO,IAAM32B,KAAI,mBAA8C,CAC7E+mE,UAAWvH,YAAU,IAAI5wE,MACzB0tE,QAASkD,YAAUC,YAAqB,IACxCjpD,SAAU,KACT,KAAD,EAJIuc,EAAQC,EAAAxE,KAAAsiC,EAMsB/9B,EAAS5e,KAArCpF,EAAM+hD,EAAN/hD,OAAQmoC,EAAI4Z,EAAJ5Z,KAAMgvF,EAASp1E,EAATo1E,UAASlzG,EAAA6D,GAEvB9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACP6+F,IAAsBz9F,QAAO,GAAAjF,EAAA6D,KAkB7B6+F,IAAsBrgG,SAAQ,oBAH/B,OAdE0/E,EAAY79D,EAEhBnqC,EACEzP,EAAMwC,QAAQ4pI,yBAAyB,CACrC9zH,OAAQm/F,EACRmxB,UAAWA,EAAU93I,KAAI,SAACwmC,GACxB,MAAO,CACLh2B,GAAIg2B,EAAEh2B,GACNmrI,SAAS,EACT97I,MAAO2mC,EAAE3mC,MACTsK,MAAO,iBAIby6B,EAAArE,OAAA,oBAIqC,OAAvC5hB,EAASzP,EAAMwC,QAAQ1B,UAAS,IAAO40B,EAAArE,OAAA,oBAAAqE,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAI3CjmB,EAASzP,EAAMwC,QAAQ1B,SAAQ40B,EAAAi+B,KAAS,yBAAAj+B,EAAAzC,UAAAuC,EAAA,mBAOvC,IAAMy6C,EACX,SAACy8D,EAAiBlE,GAAkB,OAAK,SAAClwG,GACxC,OAAA/C,YAAAjH,IAAAiE,MAAO,SAAAwD,IAAA,IAAAtmB,EAAAgmB,EAAAo+B,EAAApiD,EAAAmoC,EAAA69D,EAAA,OAAAnpF,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,OACW,OAARvb,EAAaT,IAAbS,SAAQumB,EAAAjD,KAAA,EAAAiD,EAAAhL,KAAA,EAGSqO,IAAM32B,KAAI,mBAA8C,CAC7E+mE,UAAWijE,EACX1tE,QAAS0tE,EACTxzH,SAAUsvH,IACT,KAAD,EAJI/yG,EAAQO,EAAA9E,KAAA2iC,EAMWp+B,EAAS5e,KAA1BpF,EAAMoiD,EAANpiD,OAAQmoC,EAAIia,EAAJja,KAAI5jB,EAAAuD,GAEZ9nB,EAAMukB,EAAAhL,KAAAgL,EAAAuD,KACP6+F,IAAsBz9F,QAAO,EAAA3E,EAAAuD,KAM7B6+F,IAAsBrgG,SAAQ,mBAHiB,OAF9C0/E,EAAY79D,EAEhBnqC,EAASzP,EAAMwC,QAAQkxE,YAAY+jC,EAAU,KAAKzhF,EAAA3E,OAAA,oBAIxC,OAAViH,IAAUtC,EAAA3E,OAAA,oBAAA2E,EAAAhL,KAAA,iBAAAgL,EAAAjD,KAAA,GAAAiD,EAAA29B,GAAA39B,EAAA,SAIdsC,IAAU,yBAAAtC,EAAA/C,UAAA8C,EAAA,qBAOX,SAASguG,IACd,OAAAxuG,YAAAjH,IAAAiE,MAAO,SAAA4G,IAAA,IAAA1pB,EAAAgmB,EAAAw+B,EAAAxiD,EAAAmoC,EAAA69D,EAAA,OAAAnpF,IAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,OACW,OAARvb,EAAaT,IAAbS,SAAQ2pB,EAAApO,KAAA,EACKqO,IAAMR,IAAG,qBAA2C,KAAD,EAApEpD,EAAQ2D,EAAAlI,KAAA+iC,EACax+B,EAAS5e,KAA1BpF,EAAMwiD,EAANxiD,OAAQmoC,EAAIqa,EAAJra,KAAIxgB,EAAAG,GACZ9nB,EAAM2nB,EAAApO,KAAAoO,EAAAG,KACPqtG,IAAkBjsG,QAAO,EAAAvB,EAAAG,KAOzBqtG,IAAkB7uG,SAAQ,mBAH4B,OAHrD0/E,EAAY79D,EAAK9oD,KAAI,SAACwmC,GACxB,OAAOq1G,IAAuCr1G,MAEhD7nB,EAASzP,EAAMwC,QAAQ6pI,sBAAsB50B,IAAYr+E,EAAA/H,OAAA,2BAAA+H,EAAA/H,OAAA,qCAAA+H,EAAAnG,UAAAkG,OAS1D,IAAMo6B,EAAsB,WAAH,OAAS,SAACS,GACxC,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAA8Q,IAAA,IAAA5zB,EAAAgmB,EAAAm/B,EAAAhb,EAAAnoC,EAAAm7H,EAAA,OAAAt+G,IAAAe,MAAA,SAAAiU,GAAA,cAAAA,EAAAvQ,KAAAuQ,EAAAtY,MAAA,OACW,OAARvb,EAAaT,IAAbS,SAAQ6zB,EAAAvQ,KAAA,EAAAuQ,EAAAtY,KAAA,EAGSqO,IAAMR,IAA8B,0BAA0B,KAAD,EAA9EpD,EAAQ6N,EAAApS,KAAA0jC,EACWn/B,EAAS5e,KAA1B+iC,EAAIgb,EAAJhb,KAAMnoC,EAAMmjD,EAANnjD,OAAM6xB,EAAA/J,GAEZ9nB,EAAM6xB,EAAAtY,KAAAsY,EAAA/J,KACPk6B,IAAuB94B,QAAO,EAAA2I,EAAA/J,KAM9Bk6B,IAAuB17B,SAAQ,mBAFlB,OAHZ60G,EAAmBhzF,EAAK9oD,KAAI,SAACmW,GAAI,OAAKilI,EAAiCjlI,MAE3EwI,EAASzP,EAAMwC,QAAQ6pI,sBAAsBO,IAC7C54E,EAAUpa,GAAMtW,EAAAjS,OAAA,2BAAAiS,EAAAjS,OAAA,oBAAAiS,EAAAtY,KAAA,iBAAAsY,EAAAvQ,KAAA,GAAAuQ,EAAAqwB,GAAArwB,EAAA,SAMpB7zB,EAASzP,EAAMwC,QAAQ1B,SAAQwiC,EAAAqwB,KAAS,yBAAArwB,EAAArQ,UAAAoQ,EAAA,qBAKvC,SAAS6zB,IACd,OAAA3hC,YAAAjH,IAAAiE,MAAO,SAAAoiC,IAAA,IAAAllD,EAAAgmB,EAAAoiC,EAAAje,EAAAnoC,EAAAgmG,EAAA,OAAAnpF,IAAAe,MAAA,SAAAylC,GAAA,cAAAA,EAAA/hC,KAAA+hC,EAAA9pC,MAAA,OACW,OAARvb,EAAaT,IAAbS,SAAQqlD,EAAA/hC,KAAA,EAAA+hC,EAAA9pC,KAAA,EAGOqO,IAAMR,IAA0B,sBAAsB,KAAD,EAAtEpD,EAAQq/B,EAAA5jC,KAAA2mC,EACapiC,EAAS5e,KAA1B+iC,EAAIie,EAAJje,KAAMnoC,EAAMomD,EAANpmD,OAAMqjD,EAAAv7B,GACZ9nB,EAAMqjD,EAAA9pC,KAAA8pC,EAAAv7B,KACPu8B,IAAmBn7B,QAAO,EAAAm6B,EAAAv7B,KAI1Bu8B,IAAmB/9B,SAAQ,mBAF2B,OADrD0/E,EAAYyZ,YAA8Bt3E,GAC9CnqC,EAASzP,EAAMwC,QAAQ6pI,sBAAsB50B,IAAY3iD,EAAAzjC,OAAA,2BAAAyjC,EAAAzjC,OAAA,oBAAAyjC,EAAA9pC,KAAA,iBAAA8pC,EAAA/hC,KAAA,GAAA+hC,EAAAnB,GAAAmB,EAAA,kCAAAA,EAAA7hC,UAAA0hC,EAAA,mBAS5D,SAASsvE,IACd,OAAA1uG,YAAAjH,IAAAiE,MAAO,SAAAqvF,IAAA,IAAAnyG,EAAAgmB,EAAAo3G,EAAAjzF,EAAAnoC,EAAAgmG,EAAA,OAAAnpF,IAAAe,MAAA,SAAAwyF,GAAA,cAAAA,EAAA9uF,KAAA8uF,EAAA72F,MAAA,OACW,OAARvb,EAAaT,IAAbS,SAAQoyG,EAAA9uF,KAAA,EAAA8uF,EAAA72F,KAAA,EAGOqO,IAAMR,IAAsB,yBAAyB,KAAD,EAArEpD,EAAQosF,EAAA3wF,KAAA27G,EACap3G,EAAS5e,KAA1B+iC,EAAIizF,EAAJjzF,KAAMnoC,EAAMo7H,EAANp7H,OAAMowG,EAAAtoF,GAEZ9nB,EAAMowG,EAAA72F,KAAA62F,EAAAtoF,KACPgxC,IAAe5vC,QAAO,EAAAknF,EAAAtoF,KAMtBgxC,IAAexyC,SAAQ,mBAF+B,OAHrD0/E,EAAY79D,EAAK9oD,KAAI,SAACwmC,GACxB,OAAOu7F,YAAyBv7F,MAElC7nB,EAASzP,EAAMwC,QAAQ6pI,sBAAsB50B,IAAYoK,EAAAxwF,OAAA,2BAAAwwF,EAAAxwF,OAAA,oBAAAwwF,EAAA72F,KAAA,iBAAA62F,EAAA9uF,KAAA,GAAA8uF,EAAAluD,GAAAkuD,EAAA,kCAAAA,EAAA5uF,UAAA2uF,EAAA,mBAU5D,SAAS16E,EAAY5uB,GAC1B,OAAOA,EAAOnqB,QAAO,SAACssB,GAAG,OAAKA,EAAII,YAAcC,IAAgBC,WAG3D,IAAM+xH,EAAuC,CAClD,CACExrI,GAAIwZ,IAAgBC,QAAQgN,WAC5Bp3B,MAAO,yBACP87I,SAAS,EACTxxI,MAAO,UACP8xI,OAAQpgG,IAAW+2E,eAErB,CACEpiH,GAAIwZ,IAAgBssB,gBAAgBrf,WACpCp3B,MAAO,yBACP87I,SAAS,EACTxxI,MAAO,UACP8xI,OAAQpgG,IAAW+2E,eAErB,CACEpiH,GAAIwZ,IAAgB43D,KAAK3qD,WACzBp3B,MAAO,2BACP87I,SAAS,EACTxxI,MAAO,UACP8xI,OAAQpgG,IAAWukB,QAErB,CACE5vD,GAAIwZ,IAAgBoH,SAAS6F,WAC7Bp3B,MAAO,8BACP87I,SAAS,EACTxxI,MAAO,UACP8xI,OAAQpgG,IAAWC,gBAQrB,CACEtrC,GAAIwZ,IAAgBm4D,SAASlrD,WAC7Bp3B,MAAO,WACP87I,SAAS,EACTxxI,MAAO,UACP8xI,OAAQpgG,IAAW8jB,cAErB,CACEnvD,GAAIwZ,IAAgB+3D,aAAa9qD,WACjCp3B,MAAO,qBACP87I,SAAS,EACTxxI,MAAO,UACP8xI,OAAQpgG,IAAWgkB,oB,qKC5YjBq8E,EAAe,CACnB,CAAEl/I,MAAO,aAAc6C,MAAO,oBAC9B,CAAE7C,MAAO,UAAW6C,MAAO,wBAC3B,CAAE7C,MAAO,0BAA2B6C,MAAO,qBAGvCs8I,EAAe,CACnB,CAAEn/I,MAAO,EAAG6C,MAAO,QACnB,CAAE7C,MAAO,EAAG6C,MAAO,SACnB,CAAE7C,MAAO,EAAG6C,MAAO,OACnB,CAAE7C,MAAO,EAAG6C,MAAO,OACnB,CAAE7C,MAAO,EAAG6C,MAAO,cACnB,CAAE7C,MAAO,EAAG6C,MAAO,cACnB,CAAE7C,MAAO,EAAG6C,MAAO,aACnB,CAAE7C,MAAO,EAAG6C,MAAO,kBACnB,CAAE7C,MAAO,EAAG6C,MAAO,kBAITu8I,EAAa,SAAbA,GAAa,OAAbA,IAAa,aAAbA,IAAa,aAAbA,EAAa,KAkBlB,SAASC,EAAS39I,GAQrB,IAPFrB,EAAMqB,EAANrB,OACAi/I,EAAS59I,EAAT49I,UACAC,EAAQ79I,EAAR69I,SAUA,OACE39I,eAACU,IAAK,CAACw4B,GAAI,EAAGn3B,UAAU,MAAMlB,WAAW,SAASutB,eAAe,WAAU5uB,SAAA,CACzEF,cAACyB,IAAQ,CACPI,QAASm8I,EACTj8I,MAAO5C,EAAOktB,KACdrqB,SAAU,SAAClD,GAAa,OAAKs/I,EAASr/I,wBAAC,GAAKI,GAAM,IAAEktB,KAAMvtB,MAC1D6C,MAAM,GACNC,KAAK,QACLhB,GAAI,CAAE4vB,GAAI,KAGZxwB,cAACyB,IAAQ,CACPI,QAASo8I,EACTl8I,MAAO5C,EAAOwD,KACdX,SAAU,SAAClD,GAAa,OAAKs/I,EAASr/I,wBAAC,GAAKI,GAAM,IAAEwD,MAAO7D,MAC3D6C,MAAO,GACPC,KAAK,QACLhB,GAAI,CAAE4vB,GAAI,KAGZxwB,cAAC0C,IAAS,CACRonD,YAAY,gBACZhrD,MAAOK,EAAOm/I,YACdrgJ,SA3Be,SAACqF,GACpB86I,EAASr/I,wBAAC,GAAKI,GAAM,IAAEm/I,YAAah7I,EAAEC,OAAOzE,UA2BzC8C,KAAK,QACLb,QAAQ,WACRH,GAAI,CAAE4vB,GAAI,KAGZ9vB,eAACquB,IAAM,CAACpK,QAAS05H,EAAUt9I,QAAQ,YAAWb,SAAA,CAC5CF,cAACu+I,IAAa,IAAG,sB,8QCrFzBj/G,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAoBO,IAAKihG,EAAe,SAAfA,GAAe,OAAfA,IAAe,+BAAfA,IAAe,uCAAfA,IAAe,uBAAfA,IAAe,uBAAfA,EAAe,KAaZ,SAASD,EAAW9jG,GAA8C,IAA3CmC,EAAInC,EAAJmC,KAAMyF,EAAM5H,EAAN4H,OAAQmzB,EAAM/6B,EAAN+6B,OAClDj9B,EAAsCC,mBAAS,IAAGC,EAAAC,YAAAH,EAAA,GAA3Cs0F,EAAWp0F,EAAA,GAAEq0F,EAAcr0F,EAAA,GAClCirB,EAA8BlrB,oBAAS,GAAMmrB,EAAAjrB,YAAAgrB,EAAA,GAAtC+jD,EAAO9jD,EAAA,GAAEkvH,EAAUlvH,EAAA,GAE1Bw0B,EAAuC70B,cAA/BypE,EAAiB50C,EAAjB40C,kBAEF0rD,GAF4BtgG,EAAPv+B,QAER,WACjB,IAAM8+H,EAAS,aAAAx9I,OAAgB6H,SAAS0e,SAAS9Y,MAEjD,OAAQ/L,GACN,KAAK4hG,EAAgBm6C,aACnB,MAAM,6BAANz9I,OAAoCs6B,EAAM,KAAAt6B,OAAIw9I,GAChD,KAAKl6C,EAAgBo6C,iBACnB,MAAM,iCAAN19I,OAAwCs6B,EAAM,KAAAt6B,OAAIw9I,GACpD,KAAKl6C,EAAgBq6C,SACnB,MAAM,4BAAN39I,OAAmCs6B,EAAM,KAAAt6B,OAAIw9I,GAC/C,KAAKl6C,EAAgBC,SACnB,MAAM,yBAANvjG,OAAgCs6B,EAAM,KAAAt6B,OAAIw9I,MAgChD,OA5BAx/I,qBAAU,WAAO,IAAD4/I,GACd,YAA8BA,KAAAt4G,YAAAjH,IAAAiE,MAA7B,SAAAiD,IAAA,IAAAC,EAAA+9B,EAAA/hD,EAAAja,EAAA,OAAA82B,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,cAAA0K,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAEwB4N,IAAcC,IAAwB20G,IAAc,CACvE10G,QAAS,CAAEC,WAAW,KACrB,KAAD,EAFEtD,EAAQC,EAAAxE,KAAAsiC,EAGgB/9B,EAAS5e,KAA7BpF,EAAM+hD,EAAN/hD,OAAQja,EAAOg8D,EAAPh8D,QAAOk+B,EAAA6D,GACf9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACPw+B,IAAiBp9B,QAAO,qBACX,KAAZnjC,EAAc,CAAAk+B,EAAA1K,KAAA,SACC,OAAjB48G,GAAW,GAAMlyG,EAAArE,OAAA,sBAGf75B,EAAQ+yH,WAAW,YAAY,CAAD70F,EAAA1K,KAAA,SACC,OAAjClzB,SAAS0e,SAAS9Y,KAAOlG,EAAQk+B,EAAArE,OAAA,kBAGQ,OAA3CwwD,EAAetqF,YAAkBC,IAAUk+B,EAAArE,OAAA,oBAG3Cu2G,GAAW,GAAM,QAAAlyG,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAGrBkyG,GAAW,GAAM,yBAAAlyG,EAAAzC,UAAAuC,EAAA,oBAEpBM,MAAA,KAAAriC,WAxBD,KAyBC,IAGDzE,cAACW,IAAG,CAAAT,SACFF,cAACyhD,IAAS,CAACvzB,SAAS,KAAIhuB,SACtBQ,eAACynC,IAAI,CAAAjoC,SAAA,CACHF,cAACm3C,IAAmB,CAClB3wB,MAAOxmB,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,8BAGzCF,cAACooC,IAAc,CACbhb,KAAMptB,cAACgpE,IAAO,IACdxiD,MACE9lB,eAACU,IAAK,CAACqB,UAAU,MAAMlB,WAAY,SAAUF,IAAI,OAAMnB,SAAA,CACrDF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,wBAChCF,cAACc,IAAU,CAACC,QAAQ,YAAYkL,MAAM,QAAO/L,SAC1C4yF,EAAkB1qF,UAM3B1H,eAAC0nC,IAAc,CAAC5hB,MAAM,uCAAuC4G,KAAMptB,cAACizF,IAAI,IAAI/yF,SAAA,CACzEstE,GACCxtE,cAACo7H,IAAiB,CAAAl7H,SAAC,0FAIrBQ,eAACC,IAAG,CACFC,GAAI,CACF4L,QAAS,OACT,QAAS,CAAEA,QAAS,QACpB,UAAW,CAAE7I,MAAO,IACpB,YAAa,CAAE6I,QAAS,QACxB,eAAgB,CAAE7I,MAAO,GAAI+tB,WAAY,SACzCxxB,SAAA,CAEe,KAAhB0yF,IAAuBplB,GACtBxtE,cAACc,IAAU,CAACC,QAAQ,QAAQkL,MAAM,UAAUwsC,WAAS,EAAAv4C,SAAC,gDAIxDF,cAAC6O,IAAQ,CAAC3O,SAAU0yF,OAEtB5yF,cAACc,IAAU,CAACC,QAAQ,UAASb,SAAC,uJ,iKCvHpC2zB,EAAYhpB,YAAOlK,IAAPkK,EAAY,SAAArK,GAAQ,MAAQ,CAC5CoI,OAAQ,OACR4D,QAAS,OACTvJ,UAAW,OACX1B,WAAY,SACZD,cAAe,MACfwtB,eAAgB,OAChBpjB,QAPoClL,EAALuK,MAOhBO,QAAQ,EAAG,OAYb,SAASwzI,EAAiB38I,GAMb,IAL1BqkB,EAAKrkB,EAALqkB,MACAqC,EAAW1mB,EAAX0mB,YACAlgB,EAAGxG,EAAHwG,IAAGwzI,EAAAh6I,EACH0yB,kBAAU,IAAAsnH,GAAQA,EACfptI,EAAKc,YAAA1N,EAAA2N,GAER,OACEpP,eAACmzB,EAAS90B,wBAAA,GAAKgQ,GAAK,IAAA7O,SAAA,EAChB20B,GACA70B,cAACW,IAAG,CACFoN,UAAU,MACVyqC,IAAI,gBACJhqB,IAAK7lB,GAAO,uDACZ/H,GAAI,CAAE6tB,UAAW,QAASmL,GAAI,KAGlCl5B,eAACC,IAAG,CAAAT,SAAA,CACFF,cAACc,IAAU,CAACC,QAAQ,YAAYC,cAAY,EAAAd,SACzCsmB,IAGFqC,GACC7oB,cAACc,IAAU,CAACC,QAAQ,UAAUH,GAAI,CAAEqL,MAAO,iBAAkBiiB,SAAU,KAAMhuB,SAC1E2oB,a,4YClBPk2H,EAAcl0I,YAAOm0I,IAAPn0I,EAAsB,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,OAAA/L,YAAA,CAChD,gBAAiB,CAAEuR,UAAWxF,EAAMyF,cAAc8wC,IAClD,aAAc,CACZqlD,YAAY,iBACZhhD,YAAY,GAAD1kD,OAAK8J,EAAME,QAAQ4B,KAAK,OAAO,iBAE3C9B,EAAMoB,YAAYC,GAAG,MAAQ,CAC5BzI,MAAO,IACPrC,cAAe,WAIb29I,EAAqBp0I,YAAOq0I,IAAPr0I,EAA0B,SAAAzI,GAAA,IAAG2I,EAAK3I,EAAL2I,MAAK,MAAQ,CACnEyB,QAAS,OACTlL,cAAe,MACfC,WAAY,SACZutB,eAAgB,eAChBqwH,YAAa,QACbx5F,YAAa56C,EAAME,QAAQ4B,KAAK,KAChC85F,YAAa,MACbh7F,aAAcZ,EAAMa,MAAMD,aAC1BjI,UAAW,GACXgI,QAAS,EACT/H,MAAO,QAGHy7I,EAAsBv0I,YAAOm0G,IAAPn0G,EAAqB,SAAAyC,GAAA,IAAGvC,EAAKuC,EAALvC,MAAK,MAAQ,CAC/Do0I,YAAa,SACbxzI,aAAa,iBACblI,OAAQ,EACRiI,QAAS,EACT,uCAAwC,CACtCI,gBAAgB,GAAD7K,OAAKyO,YAAM3E,EAAME,QAAQiiB,QAAQI,KAAM,KAAK,oBAMzD+xH,EAA8B,CAAC,GAADp+I,OAC/BqnB,IAAkBkJ,IAAIuH,WAAU,KAAA93B,OAAIqnB,IAAkB0K,KAAK+F,WAAU,KAAA93B,OAAIqnB,IAAkBmL,OAAOsF,YACrGzQ,IAAkBE,MAAMuQ,WACxBzQ,IAAkBC,MAAMwQ,WACxBzQ,IAAkBkL,IAAIuF,WACtBzQ,IAAkBgH,UAAUyJ,WAC5BzQ,IAAkB4K,SAAS6F,YAc7B,SAASumH,EAAsB9xI,GAA6C,IAA1CvP,EAAQuP,EAARvP,SAChCK,EAA4BC,mBAAuB,CAAEghJ,WAAY,GAAIC,YAAa,KAAKhhJ,EAAAC,YAAAH,EAAA,GAAhFa,EAAMX,EAAA,GAAE4/I,EAAS5/I,EAAA,GAClBuM,EAAQgW,cAER0+H,EAAkB,SAACC,GACvB,IAAc,OAAVA,QAAU,IAAVA,OAAU,EAAVA,EAAYh7I,QAAS,EAAG,CAC1B,IAAIi7I,EAAoC,GAOxC,OALAD,EAAW59I,KAAI,SAACy9B,GACd,IAAIqgH,EAAqBrgH,EAAElM,MAAM,KACzB,OAARusH,QAAQ,IAARA,KAAU99I,KAAI,SAAC+oB,GAAS,OAAK80H,EAAaz7I,KAAK02F,SAAS/vE,UAGnD80H,EAET,MAAO,IA0BT,OACEj/I,eAACC,IAAG,CAAAT,SAAA,CACFF,cAACg3B,IAAW,CAACp1B,KAAK,QAAO1B,SACvBF,cAAC++I,EAAW,CACVj1F,YAAY,2BACZ+1F,eACE7/I,cAACoD,IAAc,CAACC,SAAS,QAAOnD,SAC9BF,cAACW,IAAG,CAACoN,UAAWmtB,IAAM9N,KAAM0yH,IAAYl/I,GAAI,CAAEqL,MAAO,qBAGzD8zI,WAnBe,SAACz8I,GACH,KAAfA,EAAE08I,WACJ5B,GAAU,SAAC1/I,GACT,OAAAK,wBAAA,GAAYI,GAAM,IAAEogJ,WAAYj8I,EAAEC,OAAOzE,WAE3Cb,EAASqF,EAAEC,OAAOzE,MAAO2gJ,EAAsB,OAANtgJ,QAAM,IAANA,OAAM,EAANA,EAAQqgJ,gBAe7CS,WAAS,MAIbjgJ,cAACg3B,IAAW,CAACp1B,KAAK,QAAO1B,SACvBF,cAACi/I,EAAkB,CAACngJ,MAAa,OAANK,QAAM,IAANA,OAAM,EAANA,EAAQqgJ,YAAavhJ,SAhC9B,SAAC6lB,EAAsCo8H,GAAyB,IAADC,EACrF/B,EAASr/I,wBAAC,GAAKI,GAAM,IAAEqgJ,YAAaU,KACD,MAAzB,OAAN/gJ,QAAM,IAANA,GAAkB,QAAZghJ,EAANhhJ,EAAQogJ,kBAAU,IAAAY,OAAZ,EAANA,EAAoB51I,SACtBtM,EAAe,OAANkB,QAAM,IAANA,OAAM,EAANA,EAAQogJ,WAAYE,EAAgBS,KA6B+BhgJ,SACvEm/I,EAA4Bv9I,KAAI,SAACy9B,GAChC,IAAM6gH,EAAwB7gH,EAAElM,MAAM,KAChC+kC,GACO,OAAXgoF,QAAW,IAAXA,OAAW,EAAXA,EAAa17I,QAAS,EAAKk2F,SAASwlD,EAAY,IAA4B,KAC9E,GAAgB,MAAZhoF,EAAkB,CAAC,IAADioF,EAAAC,EACpBC,EAAwB9iH,YAAe26B,EAAU,CAC/CnsD,OAAa,OAAN9M,QAAM,IAANA,GAAmB,QAAbkhJ,EAANlhJ,EAAQqgJ,mBAAW,IAAAa,OAAb,EAANA,EAAqB9gJ,SAASggC,IACjCx0B,EAAME,QAAQiiB,QAAQI,KACtBviB,EAAME,QAAQ4B,KAAK,OAHjBugB,EAAImzH,EAAJnzH,KAAMzrB,EAAK4+I,EAAL5+I,MAKd,OACE3B,cAACymB,IAAO,CAASD,MAAO7kB,EAAMzB,SAC5BF,cAACo/I,EAAmB,CAElBtgJ,MAAOygC,EACPxZ,SAAgB,OAAN5mB,QAAM,IAANA,GAAmB,QAAbmhJ,EAANnhJ,EAAQqgJ,mBAAW,IAAAc,OAAb,EAANA,EAAqB/gJ,SAASggC,GAAGr/B,SAE1CktB,GAJImS,IAFKA,cAkBf,SAASihH,IACtB,IAAMvuH,EAAYC,iBAAO,MACzBzI,EAAwBlrB,oBAAS,GAAMmrB,EAAAjrB,YAAAgrB,EAAA,GAAhCzC,EAAI0C,EAAA,GAAEyI,EAAOzI,EAAA,GACpBG,EAA8CtrB,mBAAiC,IAAGurB,EAAArrB,YAAAorB,EAAA,GAA3E42H,EAAe32H,EAAA,GAAE42H,EAAkB52H,EAAA,GAClCouC,EAAWp8B,cAAXo8B,OAMF7hC,EAAc,WAClBqqH,EAAmB,IACnBvuH,GAAQ,IAQV,OACEzxB,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACymB,IAAO,CAACD,MAAM,uCAAmCtmB,SAChDF,cAAC0mB,IAAW,CAAC0L,IAAKH,EAAWrwB,KAAK,QAAQqK,MAAO,UAAW0Y,QAjB/C,WACjBwN,GAAQ,IAgB4EjyB,SAC9EF,cAACk7B,IAAI,CAAC9N,KAAM0yH,IAAYn8I,MAAO,GAAIiF,OAAQ,SAI/ClI,eAACkP,IAAW,CACVoX,KAAMA,EACNC,QAASoP,EACThE,SAAUJ,EAAUvzB,QACpBkC,GAAI,CAAE+C,MAAO,KAAMzD,SAAA,CAEnBF,cAACW,IAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQjL,WAAY,SAAU+wB,GAAI,EAAGC,GAAI,KAAMryB,SACjEF,cAACs/I,EAAsB,CAACrhJ,SApBX,SAACa,EAAes5D,GACnC,IAAMl6D,EAASg6D,EAAOp5D,EAAOs5D,GAC7BsoF,EAAmBxiJ,QAqBf8B,cAACkO,IAAO,IAERlO,cAAC6mB,IAAS,CAACjmB,GAAI,CAAEgI,OAAQ,KAAM1I,SAC7BF,cAACmoC,IAAI,CAAC68C,gBAAc,EAAA9kF,SACjBugJ,EAAgB3+I,KAAI,SAACmW,GACpB,OACEjY,cAACqsH,IAAe,CAEdp0G,KAAMA,EAAKA,KACX8kC,KAAK,SACL91B,QAASoP,GAHJpe,EAAKA,KAAKpH,kB,yCCrLlB,SAAS8vI,EAAuBngJ,GAEb,IAADogJ,EAAApgJ,EAD/B4Z,8BAAsB,IAAAwmI,EAAG,GAAEA,EAErB3uH,EAAYC,iBAAO,MAEzB5zB,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GAUpB,OAAsC,IAAlC4b,EAAuB1V,OAAqB1E,cAAAC,WAAA,IAG9CS,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACymB,IAAO,CAACD,MAAM,sBAAkBtmB,SAC/BF,cAAC0mB,IAAW,CAAC0L,IAAKH,EAAWrwB,KAAK,QAAQqK,MAAO,UAAW0Y,QAb/C,WACjBwN,GAAQ,IAY4EjyB,SAC9EF,cAACg7B,IAAK,CAACC,aAAc7gB,EAAuB1V,OAAQuH,MAAM,QAAO/L,SAC/DF,cAACk7B,IAAI,CAAC9N,KAAMyzH,IAAUl9I,MAAO,GAAIiF,OAAQ,WAI9Coe,GACCtmB,eAACkP,IAAW,CACVoX,KAAMA,EACNC,QAlBY,WAClBkL,GAAQ,IAkBFE,SAAUJ,EAAUvzB,QACpBkC,GAAI,CAAE+C,MAAO,KAAMzD,SAAA,CAEnBF,cAACW,IAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQjL,WAAY,SAAU+wB,GAAI,EAAGC,GAAI,KAAMryB,SACjEQ,eAACC,IAAG,CAACC,GAAI,CAAE0jB,SAAU,GAAIpkB,SAAA,CACvBF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,2CAChCF,cAACc,IAAU,CAACC,QAAQ,QAAQH,GAAI,CAAEqL,MAAO,kBAAmB/L,SAAC,2IAOjEF,cAACkO,IAAO,IAERlO,cAAC6mB,IAAS,CAACjmB,GAAI,CAAEgI,OAAQ,CAAEylB,GAAI,MAAQnuB,SACrCF,cAACmoC,IAAI,CAAC68C,gBAAc,EAAA9kF,SACjBka,EAAuBtY,KAAI,SAAC6Y,GAC3B,OACEja,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACqsH,IAAe,CACdp0G,KAAM0C,EAAQ1C,KAEd8kC,KAAK,UAAQ,UAAA97C,OADE0Z,EAAQ1C,KAAKpH,MAG9B7Q,cAACkO,IAAO,oB,kDCpDjBs7H,IACCzrG,IAAe0zB,MAAMn3C,OAOtBwmI,IACC/iH,IAAe9iB,UAAU+kD,UAM1B+gF,IACChjH,IAAe9iB,UAAU4kD,SAO1BmhF,IACCjjH,IAAe9iB,UAAU+pF,gBAyI9B,SAASC,EAAgB9iG,GAI5B,IAHFiY,EAAsBjY,EAAtBiY,uBAIA8jC,EAAgC70B,cAAxB1J,EAAOu+B,EAAPv+B,QACFwjF,GADqBjlD,EAAVtmB,WACK,CAACT,IAAWyiD,SAASr6E,SAAgB,OAAPogB,QAAO,IAAPA,OAAO,EAAPA,EAASuX,aAE7D,OACEx2B,eAACC,IAAG,CAAC6L,QAAQ,OAAOlL,cAAc,MAAMC,WAAW,SAAQrB,SAAA,CACzDF,cAACwgJ,EAAsB,KAErBr9C,GACAziG,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAAC2gJ,EAAuB,CAACvmI,uBAAwBA,IACjDpa,cAAC6tB,IAAa,CAACC,WAAW,uB,iCC3NpC,qDAEe,SAASmzH,EAAOzgJ,GAA8B,IAA3BmC,EAAInC,EAAJmC,KAChC,OAAQA,GACN,IAAK,eACH,OACE3C,cAAC4zB,IAAK,CAAC7yB,QAAQ,SAASH,GAAI,CAAEkL,gBAAiB,UAAWG,MAAO,WAAY/L,SAAC,qBAIlF,IAAK,aACL,IAAK,WACH,OACEF,cAAC4zB,IAAK,CAAC7yB,QAAQ,SAASH,GAAI,CAAEkL,gBAAiB,UAAWG,MAAO,WAAY/L,SAAC,kBAIlF,IAAK,WACH,OACEF,cAAC4zB,IAAK,CAAC7yB,QAAQ,SAASH,GAAI,CAAEkL,gBAAiB,UAAWG,MAAO,WAAY/L,SAAC,YAKlF,IAAK,UACH,OACEF,cAAC4zB,IAAK,CAAC7yB,QAAQ,SAASH,GAAI,CAAEkL,gBAAiB,UAAWG,MAAO,WAAY/L,SAAC,gBAIlF,IAAK,kBACH,OACEF,cAAC4zB,IAAK,CAAC7yB,QAAQ,SAASH,GAAI,CAAEkL,gBAAiB,UAAWG,MAAO,WAAY/L,SAAC,eAIlF,IAAK,OACH,OACEF,cAAC4zB,IAAK,CAAC7yB,QAAQ,SAASH,GAAI,CAAEkL,gBAAiB,UAAWG,MAAO,WAAY/L,SAAC,iBAIlF,IAAK,OACH,OACEF,cAAC4zB,IAAK,CAAC7yB,QAAQ,SAASH,GAAI,CAAEkL,gBAAiB,UAAWG,MAAO,WAAY/L,SAAC,2BAIlF,IAAK,UACH,OACEF,cAAC4zB,IAAK,CAAC7yB,QAAQ,SAASH,GAAI,CAAEkL,gBAAiB,UAAWG,MAAO,WAAY/L,SAAC,UAIlF,IAAK,MACH,OACEF,cAAC4zB,IAAK,CAAC7yB,QAAQ,SAASH,GAAI,CAAEkL,gBAAiB,UAAWG,MAAO,WAAY/L,SAAC,qBAMpF,OACEF,cAAC4zB,IAAK,CAAC7yB,QAAQ,SAASH,GAAI,CAAEkL,gBAAiB,UAAWG,MAAO,QAAS/L,SACvEyC,M,iCChEP,kCAAO,IAAMu3H,EAAU,SAAUgnB,EAAuBC,GACtD,GAA6B,oBAAlBA,EACT,MAAM,IAAIt/G,MAAM,6CAGlB,IAAIu/G,EAAUF,EAAUpwI,QAAO,SAAC2R,EAAQxK,GACtC,IAAIpH,EAAMswI,EAAclpI,GAGxB,OAFKwK,EAAO5R,KAAM4R,EAAO5R,GAAO,IAChC4R,EAAO5R,GAAK3M,KAAK+T,GACVwK,IACN,IAEC4+H,EAAoB,GAExB,OADAp0I,OAAOq0I,QAAQF,GAASt/I,KAAI,SAACwmC,GAAC,OAAK+4G,EAAMn9I,KAAK,CAAE2M,IAAKy3B,EAAE,GAAIxpC,MAAOwpC,EAAE,QAC7D+4G,I,6XCiCHryH,EAAenkB,YAAO8jB,IAAP9jB,EAAa,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,MAAQ,CAChDwF,UAAW,OACX7E,QAASX,EAAMO,QAAQ,GACvB0tD,WAAYjuD,EAAMO,QAAQ,GAC1Bg3C,gBAAgB,kEAKZi/F,EAAYC,YAAW,CAC3BC,YAAa,CACXj2I,SAAU,UACV,wFAAyF,CACvFM,gBAAiB,cAgBR,SAAS6iG,EAAmBxsG,GASb,IAR5B6a,EAAS7a,EAAT6a,UACAiN,EAAQ9nB,EAAR8nB,SACA2kF,EAAazsG,EAAbysG,cACA3nF,EAAO9kB,EAAP8kB,QAAOy6H,EAAAv/I,EACP+sG,kBAAU,IAAAwyC,GAAQA,EAAAC,EAAAx/I,EAClBgtG,4BAAoB,IAAAwyC,GAAQA,EAAAC,EAAAz/I,EAC5BitG,yBAAiB,IAAAwyC,GAAQA,EAAAC,EAAA1/I,EACzBktG,4BAAoB,IAAAwyC,GAAQA,EAE5BvjJ,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GACpBirB,EAAwClrB,mBAAyC,MAAKmrB,EAAAjrB,YAAAgrB,EAAA,GAA/Eq4H,EAAYp4H,EAAA,GAAEq4H,EAAer4H,EAAA,GAEpCG,EAAgCtrB,mBAA2B,CACzDk8E,WAAoB,OAATz9D,QAAS,IAATA,OAAS,EAATA,EAAWuP,QAAS2mD,YAAU,IAAI5wE,MAC7C0tE,SAAkB,OAAThzD,QAAS,IAATA,OAAS,EAATA,EAAWszD,MAAO4C,YAAUjpD,EAASm1E,aAAe,IAAI98F,MACjEumH,aAAsB,OAAT7rG,QAAS,IAATA,OAAS,EAATA,EAAW6rG,cAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAC1D4c,WAAqB,OAATzoH,QAAS,IAATA,OAAS,EAATA,EAAW4oH,gBACvB9c,aAAsB,OAAT9rG,QAAS,IAATA,OAAS,EAATA,EAAW8rG,cAAe,GACvCF,KAAM1Z,IAAuB,OAATlyF,QAAS,IAATA,OAAS,EAATA,EAAW4rG,MAC/Bic,OACE31B,IAAsB,OAARjlF,QAAQ,IAARA,OAAQ,EAARA,EAAUixG,OACZ,OAARjxG,QAAQ,IAARA,OAAQ,EAARA,EAAUixG,MAAM5oH,IACP,OAAT0K,QAAS,IAATA,OAAS,EAATA,EAAW6nH,QACF,OAAT7nH,QAAS,IAATA,OAAS,EAATA,EAAW6nH,OACX,KACN/6G,EAAArrB,YAAAorB,EAAA,GAbK+wB,GAAQ9wB,EAAA,GAAEsnH,GAAWtnH,EAAA,GActB04B,GAAS++F,IACfz/D,GAAyEC,cAAjExhD,GAAMuhD,GAANvhD,OAAQulG,GAAShkD,GAATgkD,UAAWI,GAAuBpkD,GAAvBokD,wBAAyB/0H,GAAS2wE,GAAT3wE,UAAW9S,GAAKyjF,GAALzjF,MAMzD2jJ,GAA0B,SAACljJ,GAAa,OAAK,WACjD,IAAMmjJ,EAAernG,GAASiuE,YAAYq5B,QAAQpjJ,GAC5CqjJ,EAAUvqI,YAAOgjC,GAASiuE,cAEV,IAAlBo5B,EACFE,EAAWj+I,KAAKpF,GAEhBqjJ,EAAWC,OAAOH,EAAc,GAGlC7Q,GAAWryI,wBAAC,GAAK67C,IAAQ,IAAEiuE,YAAas5B,OAgCpC/rH,GAAa,WACjBjE,GAASnL,IAGLq7H,GAAqB,WACrBr7H,GAAMmL,GAAQ,IAGdmwH,GAAe,WACnBP,EAAgB,MACZ1yC,GAAsBpoF,KA6BtBsmB,GAAe,WACdvwB,EAeH8oH,GAAUlrF,GAAVkrF,EAAoB,SAACyc,IA1CO,SAACA,GAE/BF,KAGAN,EAAgBQ,GAsCZC,CAAwBD,MAd1BhiH,GAAOqa,GAAPra,EAAiB,WACXquE,GACFA,IAIFyzC,KAGAp7H,QAsBN,OAJAhoB,qBAAU,WACJZ,IAAO8zB,GAAQ,KAClB,CAAC9zB,KAGFqC,eAACC,IAAG,CAAAT,SAAA,CACFQ,eAACmmB,IAAS,CAACjmB,GAAI,CAAEgI,OAAQ,GAAI1I,SAAA,CAC3BF,cAAC2uB,IAAI,CAAAzuB,SACHQ,eAACU,IAAK,CAACkK,QAAS,EAAGhK,cAAe,CAAE+sB,GAAI,SAAUE,GAAI,OAAQruB,SAAA,CAC5DQ,eAACsuB,EAAY,CAAA9uB,SAAA,CACXF,cAACc,IAAU,CAACE,cAAY,EAACD,QAAQ,YAAWb,SAAC,0BAG7CF,cAACyiJ,IAAe,CACdC,UAAU,WACVC,QAAQ,MACR7jJ,MAAO,CAAC87C,GAAS6/B,UAAW7/B,GAASo1B,SACrC/xE,SAAU,SAACi+C,IArGA,SAACjI,GACxB,IAAMwmC,EAAYxmC,EAAK,GACjB+7B,EAAU/7B,EAAK,GAEjBi8B,YAAYuK,IAAcvK,YAAYF,IACxCohE,GAAWryI,wBAAC,GAAK67C,IAAQ,IAAE6/B,UAAWvH,YAAUuH,GAAYzK,QAASkD,YAAUlD,MAiGnE4yE,CAAiB1mG,IAEnB0mC,YAAa,SAACigE,EAAYC,GAAQ,OAChCpiJ,eAACU,IAAK,CAACkK,QAAS,EAAGhK,cAAe,CAAE+sB,GAAI,UAAWnuB,SAAA,CACjDF,cAAC0C,IAAS3D,YAAA,CAAC0E,OAAO,QAAQ7B,KAAK,SAAYihJ,IAE3C7iJ,cAAC0C,IAAS3D,YAAA,CAAC0E,OAAO,QAAQ7B,KAAK,SAAYkhJ,QAG/C7gJ,SAAUktG,IAGZnvG,cAACkO,IAAO,CAACtN,GAAI,CAAEg8B,EAAG,KAElB58B,cAACc,IAAU,CAACE,cAAY,EAACD,QAAQ,YAAWb,SAAC,wBAG7CF,cAACg3B,IAAW,CAAA92B,SACTszE,cAA0B1xE,KAAI,SAACywE,GAC9B,OACEvyE,cAAC80B,IAAgB,CACf7oB,MAAM,YACN8oB,QACE/0B,cAACi3B,IAAM,CACLr1B,KAAK,QACL/C,KAAK,cACLo2B,SA/JFn2B,EA+JwByzE,EAAIzzE,MA9JzC87C,GAASiuE,YAAY/yE,MAAK,SAACxN,GAAC,OAAKA,IAAMxpC,MA+JxBb,SAAU+jJ,GAAwBzvE,EAAIzzE,OACtCA,MAAOyzE,EAAIzzE,QAGf6C,MAAO4wE,EAAI5wE,OAAM,MAAAV,OACNsxE,EAAIzzE,QArKd,IAACA,UA4KZ4B,eAACU,IAAK,CAACkK,QAAS,EAAK/J,WAAW,SAAQrB,SAAA,CACtCF,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,6BAChCF,cAAC+iJ,IAAS,CACRC,aAAcpoG,GAASkuE,YAAYhnH,KAAI,SAAC2pB,GAAG,OAAK2lD,IAAO3lD,GAAKipD,YAC5DuuE,WA/JS,SAAC1wE,EAAQnwE,GAAyB,IAArB2jB,EAAQ3jB,EAAR2jB,SAC5Bi9H,EAAepoG,GAASkuE,YAAYhnH,KAAI,SAAC2pB,GAAG,OAAK8nD,YAAoB9nD,MAAMxqB,SAEjF,GAAI8kB,EAAU,CACZ,IAAMm9H,EAAgBF,EAAarY,WAAU,SAAC8W,GAAW,OACvD0B,YAAUC,UAAU3B,EAAalvE,MAEnCywE,EAAaZ,OAAOc,EAAe,QAEnCF,EAAa9+I,KAAKquE,GAEpB6+D,GAAWryI,wBAAC,GAAK67C,IAAQ,IAAEkuE,YAAak6B,EAAalhJ,KAAI,SAACwmC,GAAO,OAAK4qC,YAAU5qC,UAqJpEooC,OAAQ,KACR2yE,YAAaC,IACb59G,UAAW8c,GAAOi/F,iBAItBzhJ,cAACoB,IAAK,CAACkK,QAAS,EAAK/J,WAAW,SAAQrB,SACrC06C,GAASkuE,YAAYhnH,KAAI,SAACwmC,EAAGrkC,GAC5B,OACEjE,cAACo4B,IAAI,CAEHz2B,MAAO8uB,YAAM6X,EAAG,cAChB1mC,KAAK,QACLb,QAAQ,WACRkL,MAAM,UACNs8B,SAAU,kBAzJN0L,EAyJyB3L,OAxJ7C8oG,GAAWryI,wBAAC,GACP67C,IAAQ,IACXkuE,YAAWlxG,YAAMgjC,GAASkuE,YAAY3pH,QAAO,SAACmpC,GAAC,OAAKA,IAAM2L,KAAMnyC,KAAI,SAACwmC,GAAC,OAAK4qC,YAAU5qC,UAHpE,IAAC2L,IAoJChwC,aAajBjE,cAACc,IAAU,CAACC,QAAQ,QAAQ03C,WAAS,EAAC73C,GAAI,CAAEqL,MAAO,iBAAkB4B,EAAG,GAAI3N,SACzE8c,EAAS,6NAKb3e,IAAS2B,cAAC+sB,IAAK,CAACC,SAAS,QAAO9sB,SAAE7B,KACnCqC,eAACmuB,IAAa,CAACjuB,GAAI,CAAEkuB,eAAgB,UAAW5uB,SAAA,CAC9CF,cAAC+uB,IAAM,CAAChuB,QAAQ,OAAOkL,MAAM,UAAU0Y,QAAS,kBAAMsC,KAAU/mB,SAAC,YAGjEF,cAAC+uB,IAAM,CAAChuB,QAAQ,YAAYa,KAAK,QAAQqK,MAAM,UAAU0Y,QAxGhC,WACzByqF,EACF7hE,KAEAnX,MAoG2Fl2B,SAAC,kCAK5FF,cAAC2wC,IAAa,CACZ3pB,KAAMA,EACN4pB,SAAUxa,GACVya,UAAWtD,GACXp8B,UAAWA,GAAUjR,SAErBF,cAACc,IAAU,CAACC,QAAQ,YAAY03C,WAAS,EAAC73C,GAAI,CAAEuxD,GAAI,GAAIjyD,SAAC,yFAK3DF,cAACiuB,IAAM,CAACC,SAAS,KAAKlH,KAAsB,MAAhB86H,EAAsB76H,QAAS,aAAS/mB,SAClEF,cAACmuB,IAAa,CAAAjuB,SACZQ,eAACU,IAAK,CACJR,GAAI,CACF4L,QAAS,OACTsiB,eAAgB,SAChBvtB,WAAY,SACZD,cAAe,OACfpB,SAAA,CAEFF,cAACW,IAAG,CACFoN,UAAU,MACVygB,IAAK,6DACL5tB,GAAI,CAAE6tB,UAAW,OAEnB/tB,eAACU,IAAK,CAAAlB,SAAA,CACH4hJ,GACCphJ,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACc,IAAU,CAACC,QAAQ,YAAYC,cAAY,EAAAd,SAAC,8CAG7CQ,eAACI,IAAU,CAACC,QAAQ,QAAQC,cAAY,EAAAd,SAAA,CAAC,6EACsB,IAC7DQ,eAAA,UAAAR,SAAA,CAAQ,4BAAuB4hJ,EAAa9kI,UAAUmzB,SAAS,YAAgB,IAAI,0BAC5DnwC,cAAA,UAAAE,SAASuwB,YAAMqxH,EAAa9kI,UAAUszD,OAAc,IAC3EtwE,cAAA,SACAA,cAAA,SAAM,4FAKZU,eAACmuB,IAAa,CAAA3uB,SAAA,CACZF,cAAC+uB,IAAM,CAAChuB,QAAQ,OAAO4jB,QAAS29H,GAAapiJ,SAAC,2BAG9CF,cAAC+uB,IAAM,CAAChuB,QAAQ,YAAY4jB,QAAS,kBAnM7B,SAAC49H,GACrB,IAAMgB,EAAchB,EAAKxjJ,YAAA,GAAQwjJ,GAAU,KAG3CD,KAEIiB,GACFrd,GAAwBqd,EAAxBrd,EAAqC,WAC/Bt3B,GACFA,IAIF3nF,OAsLmDkiG,CAAc24B,IAAc5hJ,SAAC,gC,wJCpU5EsjJ,EAAa,SAAbA,GAAa,OAAbA,IAAa,uBAAbA,IAAa,qBAAbA,EAAa,KAKbjpH,EAAW,SAAXA,GAAW,OAAXA,IAAW,aAAXA,IAAW,eAAXA,IAAW,uBAAXA,IAAW,mBAAXA,IAAW,qBAAXA,EAAW,KAQXkpH,EAAc,SAAdA,GAAc,OAAdA,IAAc,uBAAdA,IAAc,qBAAdA,IAAc,qBAAdA,EAAc,K,qBCxD1BnkH,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAkBA,IAWM0N,EAAQC,YAAY,CACxBpS,KAAM,UACNqS,aAbiC,CACjCC,WAAW,EACX9S,OAAO,EACPqlJ,SAAU,GACVlnI,QAAS,KACT5I,SAAS,EACTC,MAAO,EACP9Q,KAAM,GACNs4F,aAAc,IAMd1pF,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,GAIpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,QACrBH,EAAM2K,QAAU,MAIlBmnI,mBAAkB,SAAC9xI,EAAOE,GAAS,IAADuH,EAChCzH,EAAMV,WAAY,EAClBU,EAAM+B,SAAU,EAChB/B,EAAM6xI,SAAW3xI,EAAOC,QAExBH,EAAMwpF,aAAetpF,EAAOC,QACxB+hD,MAAMw2D,KAAK,IAAIq5B,IAAkB,QAAftqI,EAACvH,EAAOC,eAAO,IAAAsH,OAAA,EAAdA,EAAgBxX,KAAI,SAAC0M,GAAU,OAAKA,EAAE6H,cACzD,IAINwtI,mBAAkB,SAAChyI,EAAOE,GACxBF,EAAMV,WAAY,EAClB,IAAM0W,EAAO9V,EAAOC,QAEpBH,EAAM6xI,SAAQ,GAAAziJ,OAAA2W,YAAO/F,EAAM6xI,UAAQ9rI,YAAKiQ,KAG1Ci8H,gBAAe,SAACjyI,GACd,IAAMoC,EAAWpC,EAAMgC,MAAQ,EAC/BhC,EAAMgC,MAAQI,GAGhBC,UAAS,SAACrC,GACRA,EAAM+B,SAAU,GAGlBmwI,kBAAiB,SAAClyI,EAAOE,GACvBF,EAAMV,WAAY,EAClB,IAAI6yI,EAAYjyI,EAAOC,QACjB0xI,EAAW5hJ,cAAI+P,EAAM6xI,UAAU,SAAC5/E,GACpC,OAAIA,EAAOxxD,KAAO0xI,EAAU1xI,IAC1B0xI,EAAU3tI,SAAWytD,EAAOztD,SAC5B2tI,EAAUC,YAAcngF,EAAOmgF,YAC/BllJ,wBAAA,GAAY+kE,GAAM,IAAE1pC,MAAM,KAErB0pC,KAGTjyD,EAAM2K,QAAUwnI,EAChBnyI,EAAM6xI,SAAWA,GAGnBQ,yBAAwB,SAACryI,EAAOE,GAC9BF,EAAMV,WAAY,EAClBU,EAAM6xI,SAAW3xI,EAAOC,YAMfhB,MAAa,QAGOA,EAAMwC,QAA1BswI,gBAIR,SAASK,EAActwI,EAAe9Q,GAC3C,OAAAwjC,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,IAAA/lB,EAAAgmB,EAAA+9B,EAAA/hD,EAAAmoC,EAAA,OAAAtrB,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgB80B,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAEdqO,IAAM32B,KAAK,oBAAqB,CACrD/Q,KAAM43B,EAAYuqF,KAClBjxG,MAAOA,EACPgyG,SAAU9iH,EACVqhJ,SAAU,kBACV3hJ,WAAW,IACV,KAAD,EANIgkC,EAAQC,EAAAxE,KAAAsiC,EAQW/9B,EAAS5e,KAA1BpF,EAAM+hD,EAAN/hD,OAAQmoC,EAAI4Z,EAAJ5Z,KAAIlkB,EAAA6D,GACZ9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACPk5G,EAAe93G,QAAO,oBACwB,OAAjDlrB,EAASzP,EAAMwC,QAAQmwI,mBAAmB/4F,IAAOlkB,EAAArE,OAAA,oBAGF,OAA/C5hB,EAASzP,EAAMwC,QAAQmwI,mBAAmB,KAAKj9G,EAAArE,OAAA,oBAAAqE,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAInDjmB,EAASzP,EAAMwC,QAAQ1B,SAAQ40B,EAAAi+B,KAAS,yBAAAj+B,EAAAzC,UAAAuC,EAAA,mBAuCvC,SAAS69G,EAAW/xI,GACzB,OAAAi0B,YAAAjH,IAAAiE,MAAO,SAAA4G,IAAA,IAAA1pB,EAAAgmB,EAAAw+B,EAAAxiD,EAAAmB,EAAA,OAAA0b,IAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgBw4B,EAAArG,KAAA,EAAAqG,EAAApO,KAAA,EAEdqO,IAAMR,IAAG,kBAAA5oC,OAAoCqR,EAAE,KAAArR,OAAIs5B,EAAYuqF,OAAQ,KAAD,EAAvFr+E,EAAQ2D,EAAAlI,KAAA+iC,EACYx+B,EAAS5e,KAA3BpF,EAAMwiD,EAANxiD,OAAQmB,EAAKqhD,EAALrhD,MAAKwmB,EAAAG,GACb9nB,EAAM2nB,EAAApO,KAAAoO,EAAAG,KACPi5G,EAAc73G,QAAO,oBAC4B,OAApDlrB,EAASzP,EAAMwC,QAAQuwI,kBAAkBngI,EAAM,KAAKwmB,EAAA/H,OAAA,oBAAA+H,EAAApO,KAAA,iBAAAoO,EAAArG,KAAA,GAAAqG,EAAAu6B,GAAAv6B,EAAA,SAIxD3pB,EAASzP,EAAMwC,QAAQ1B,UAAS,IAAO,yBAAAs4B,EAAAnG,UAAAkG,EAAA,qB,sJCnL7C7K,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAyBA,IAOM0N,EAAQC,YAAY,CACxBpS,KAAM,OACNqS,aAT8B,CAC9BC,WAAW,EACX9S,OAAO,EACPimJ,MAAO,CAAEjzI,KAAM,GAAIC,OAAQ,IAC3BshB,OAAQ,IAMRjhB,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,GAIpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAIvBuyI,iBAAgB,SAAC1yI,EAAOE,GACtBF,EAAMV,WAAY,EAClBU,EAAM+gB,OAAS7gB,EAAOC,SAIxBwyI,gBAAe,SAAC3yI,EAAOE,GACrB,IAAMuyI,EAAQvyI,EAAOC,QAErBH,EAAMV,WAAY,EAClBU,EAAMyyI,MAAMjzI,KAlDlB,SAAsBT,GAA2B,IAAbC,EAAGpM,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KACxC,OAAOmM,EAAME,QAAO,SAACC,EAAarS,GAEhC,OADAqS,EAAYrS,EAAQmS,IAAQnS,EACrBqS,IACN,IA8CoBJ,CAAa2zI,GAChCzyI,EAAMyyI,MAAMhzI,OAASrE,OAAOiF,KAAKL,EAAMyyI,MAAMjzI,OAI/CozI,eAAc,SAAC5yI,EAAOE,GACpB,IAAM8L,EAAO9L,EAAOC,QAEpBH,EAAMyyI,MAAMjzI,KAAKwM,EAAKvL,IAAMuL,EACvBhM,EAAMyyI,MAAMhzI,OAAO/R,SAASse,EAAKvL,KACpCT,EAAMyyI,MAAMhzI,OAAOpN,KAAK2Z,EAAKvL,QAW9B,SAASqzG,IACd,MAAO,CACL,CAAErzG,GAAI,MAAO3P,KAAM,SAAU9D,KAAM,eAAgBsU,YAAa,GAChE,CAAEb,GAAI,QAAS3P,KAAM,SAAU9D,KAAM,aAAcsU,YAAa,GAChE,CAAEb,GAAI,OAAQ3P,KAAM,SAAU9D,KAAM,mBAAoBsU,YAAa,GACrE,CAAEb,GAAI,SAAU3P,KAAM,SAAU9D,KAAM,8BAAuBsU,YAAa,GAC1E,CAAEb,GAAI,QAAS3P,KAAM,SAAU9D,KAAM,0BAAwBsU,YAAa,IAwBvE,SAASuxI,EAAQC,GACtB,OAAAp+G,YAAAjH,IAAAiE,MAAO,SAAAwD,IAAA,IAAAN,EAAA,OAAAnH,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,OACkC,OAAvCvb,YAASzP,EAAMwC,QAAQ5B,gBAAgBo1B,EAAAjD,KAAA,EAAAiD,EAAAhL,KAAA,EAEdqO,IAAMR,IAAI,iBAAkB,CACjDtO,OAAQ,CAAEopH,YACT,KAAD,EAFIl+G,EAAQO,EAAA9E,KAGdzhB,YAASzP,EAAMwC,QAAQixI,eAAeh+G,EAAS5e,KAAKhK,OAAOmpB,EAAAhL,KAAA,gBAAAgL,EAAAjD,KAAA,EAAAiD,EAAAuD,GAAAvD,EAAA,SAE3DvmB,YAASzP,EAAMwC,QAAQ1B,SAAQk1B,EAAAuD,KAAS,yBAAAvD,EAAA/C,UAAA8C,EAAA,kBA3C/B/1B,MAAa,S,uKC3E5BsuB,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAeA,IAYM0N,EAAQC,YAAY,CACxBpS,KAAM,MACNqS,aAd6B,CAC7BC,WAAW,EACXyzI,eAAe,EACfvmJ,OAAO,EACPwmJ,KAAM,GACN/lI,IAAK,KACLlL,SAAS,EACTC,MAAO,EACP9Q,KAAM,GACNoY,MAAO,GAMPxJ,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,GAGpB2zI,iBAAgB,SAACjzI,GACfA,EAAM+yI,eAAgB,GAIxB9yI,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAM+yI,eAAgB,EACtB/yI,EAAMxT,MAAQ0T,EAAOC,SAGvB+yI,eAAc,SAAClzI,EAAOE,GAMZ,IAADizI,GALPnzI,EAAMV,WAAY,EAClBU,EAAM+yI,eAAgB,EAClB7yI,EAAOC,QAAQkxB,QACjBrxB,EAAMgC,MAAQ,EACdhC,EAAMgzI,KAAO9yI,EAAOC,QAAQqvI,QAE5BxvI,EAAMgC,MAA8B,QAAzBmxI,EAAGjzI,EAAOC,QAAQi5B,eAAO,IAAA+5G,OAAA,EAAtBA,EAAwBC,UACtCpzI,EAAMgzI,KAAI,GAAA5jJ,OAAA2W,YAAO/F,EAAMgzI,MAAIjtI,YAAK7F,EAAOC,QAAQqvI,SAGjDxvI,EAAMsJ,MAAQpJ,EAAOC,QAAQmJ,MAC7BtJ,EAAM+B,QAAU/B,EAAMgzI,KAAKngJ,OAASqN,EAAOC,QAAQmJ,OAASpJ,EAAOC,QAAQmJ,MAAQ,GAGrF+pI,UAAS,SAACrzI,GACRA,EAAMgC,MAAQ,EACdhC,EAAM+B,SAAU,EAChB/B,EAAM+yI,eAAgB,GAiBxBO,OAAM,SAACtzI,EAAOE,GACZF,EAAMiN,IAAM/M,EAAOC,SAGrBkC,UAAS,SAACrC,GACRA,EAAM+B,SAAU,GAGlBwxI,cAAa,SAACvzI,EAAOE,GACnBF,EAAMV,WAAY,EAClBU,EAAM+yI,eAAgB,EACtB/yI,EAAMiN,IAAM/M,EAAOC,YAMVhB,MAAa,QAICA,EAAMwC,QAApB0xI,UAUR,SAASG,EAAQp6G,EAAwB/H,GAC9C,OAAAqD,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,IAAA/lB,EAAAgmB,EAAA+9B,EAAA/hD,EAAAoF,EAAAy9H,EAAA,OAAAhmH,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAQF,OAPKvb,EAAaT,IAAbS,SAAQimB,EAAA3C,KAAA,EAIZtjB,EADEyiB,EACOlyB,EAAMwC,QAAQ5B,eAEdZ,EAAMwC,QAAQsxI,oBACxBp+G,EAAA1K,KAAA,EAEsBqO,IAAM32B,KAAmB,gBAAiBu3B,GAAS,KAAD,EAAnExE,EAAQC,EAAAxE,KAAAsiC,EAEmC/9B,EAAS5e,KAAlDpF,EAAM+hD,EAAN/hD,OAAQoF,EAAI28C,EAAJ38C,KAAMy9H,EAAU9gF,EAAV8gF,WAAsB9gF,EAAV+gF,WAAU7+G,EAAA6D,GAEpC9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACPu5F,IAAen4F,QAAO,oBAQvB,OAPFlrB,EACEzP,EAAMwC,QAAQuxI,eAAe,CAC3B1D,MAAOx5H,EACP1M,MAAOmqI,EACPpiH,MAAOA,EACP+H,QAASA,KAEXvE,EAAArE,OAAA,oBAKA,OAFF5hB,EACEzP,EAAMwC,QAAQuxI,eAAe,CAAE1D,MAAO,GAAIlmI,MAAO,EAAG+nB,OAAO,EAAM+H,QAASA,KAC1EvE,EAAArE,OAAA,oBAAAqE,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAINjmB,EAASzP,EAAMwC,QAAQ1B,SAAQ40B,EAAAi+B,KAAS,yBAAAj+B,EAAAzC,UAAAuC,EAAA,mBAYvC,SAASg/G,EAAalzI,GAC3B,OAAAi0B,YAAAjH,IAAAiE,MAAO,SAAAwD,IAAA,IAAAtmB,EAAAgmB,EAAAo+B,EAAApiD,EAAA4lD,EAAA,OAAA/oC,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgBo1B,EAAAjD,KAAA,EAAAiD,EAAAhL,KAAA,EAEdqO,IAAMR,IAAG,mBAAA5oC,OAAwCqR,IAAM,KAAD,EAAvEm0B,EAAQO,EAAA9E,KAAA2iC,EAEap+B,EAAS5e,KAA5BpF,EAAMoiD,EAANpiD,OAAQ4lD,EAAMxD,EAANwD,OAAMrhC,EAAAuD,GAEd9nB,EAAMukB,EAAAhL,KAAAgL,EAAAuD,KACPw5F,IAAmBp4F,QAAO,oBACiB,OAA9ClrB,EAASzP,EAAMwC,QAAQ4xI,cAAc/8E,IAASrhC,EAAA3E,OAAA,oBAGF,OAA5C5hB,EAASzP,EAAMwC,QAAQ4xI,cAAc,OAAOp+G,EAAA3E,OAAA,oBAAA2E,EAAAhL,KAAA,iBAAAgL,EAAAjD,KAAA,GAAAiD,EAAA29B,GAAA39B,EAAA,SAIhDvmB,EAASzP,EAAMwC,QAAQ1B,SAAQk1B,EAAA29B,KAAS,yBAAA39B,EAAA/C,UAAA8C,EAAA,qB,iCCjL9C,sEAoBe,SAAS+lF,EAAkBtsH,GAAqC,IAAlCyX,EAAIzX,EAAJyX,KAC3C,OAAQA,EAAKtV,MACX,KAAK2lB,IAAkB4K,SACrB,OAAOlzB,cAACitH,IAAuB,CAACC,sBAAuBj1G,IAEzD,KAAKqQ,IAAkBgH,UAErB,OADerX,EAA+BoX,UAAUsH,MAC5C,EAER32B,cAAC0/C,IAAS,CACRz0B,UAAWC,IAAUC,MACrBwL,MAAQ1e,EAA+BoX,UAAUsH,MAAMoC,aAItD/4B,cAAAC,WAAA,IAEX,OAAOD,cAAAC,WAAA,M,iCCrCT,yGAiBa4lF,EAAc,WACzB,IAAMplE,EAAWG,cAEjBurB,GAD4BI,cAApBD,gBAC8C5rB,aACpD,SAAC7O,GAAgB,OAAKA,EAAM+K,aADtBkpE,EAAS35C,EAAT25C,UAAW30E,EAASg7B,EAATh7B,UAAW60E,EAAmB75C,EAAnB65C,oBAGxBpoD,EAAWC,cAoCjB,MAAO,CACLioD,YACAC,KApCF,WACEtlE,EAASo1G,gBAoCTzhF,OAPa,SAAC9hC,GACdmO,EAASykG,YAAe5yG,KAOxBxO,OAlCa,SAAC+M,EAAkBlO,GAChC,OAAQA,GACN,KAAKohF,IAAaF,aAChBpjE,EAASujD,YAAqBnzD,EAAIyB,KAElC,MACF,KAAKyxE,IAAaE,SAChBxjE,EAASunD,YAAmBn3D,EAAIyB,KAChC,MACF,KAAKyxE,IAAa+gC,KAChBlnF,EAAS,GAAD38B,OAAI88B,IAAevhB,QAAQyhB,KAAI,KAAAh9B,OAAI4P,EAAIyB,KAC/C,MAEF,KAAKyxE,IAAaG,WAChBtmD,EAAS,GAAD38B,OAAI88B,IAAe9iB,UAAUwf,QAAO,KAAAx5B,OAAI4P,EAAIsX,SAAQ,KAAAlnB,OAAI4P,EAAIsiC,aACpE,MACF,KAAK4wC,IAAaqhC,QAChBxnF,EAAS,GAAD38B,OAAI88B,IAAe9iB,UAAUwf,QAAO,KAAAx5B,OAAI4P,EAAIsX,WACpD,MACF,KAAK47D,IAAasuB,IAChBz0E,EAAS,GAAD38B,OAAI88B,IAAejf,IAAImf,KAAI,KAAAh9B,OAAI4P,EAAIyB,OAe/CnB,UAAWA,EACX60E,yB,iCCjEJ,sFAee,SAASoD,IACtB,IAAMxrD,EAAWC,cACjBovG,EAAiDxvF,YAAmB,CAClEC,kBAAmB,CAACC,IAAWg0D,YADzBn0D,EAAgByvF,EAAhBzvF,iBAGFiiC,GAAkBr2D,EAHoB6jH,EAAlB7jH,sBAKpBkgE,EAAmB5oB,uBAAY,WACnC,IAAM+kF,EAAkBhmE,EAAgB2kB,UAAUjlG,QAChD,SAACugC,GAAC,OAAKA,EAAEpkB,SAAW+oF,IAAeM,WACnC,GACF,OAAuB,OAAf8gD,QAAe,IAAfA,OAAe,EAAfA,EAAiBnqI,QACvB,KAAK+oF,IAAeM,QAClB,MAAO,CACLn+E,MAAO,iDACPqC,YAAY,yBAAD5nB,OAA2BwkJ,EAAgBxhD,eAAc,kDACpEt7F,IAAK,uDAET,KAAK07F,IAAeqhD,OAClB,MAAO,CACLl/H,MAAO,mCACPqC,YAAY,yBAAD5nB,OAA2BwkJ,EAAgBxhD,eAAc,+CACpEt7F,IAAK,uDAET,KAAK07F,IAAeshD,UAClB,MAAO,CACLn/H,MAAO,mCACPqC,YAAY,yBAAD5nB,OAA2BwkJ,EAAgBxhD,eAAc,+CACpEt7F,IAAK,uDAET,QACE,MAAO,CACL6d,MAAM,2BAADvlB,QACY,OAAfw+E,QAAe,IAAfA,OAAe,EAAfA,EAAiB2f,cAAe3uE,YAAqB,OAAfgvD,QAAe,IAAfA,OAAe,EAAfA,EAAiB2f,cAEzDv2E,YAAa,6CACblgB,IAAK,sDACLoJ,OAAQ,WACN6rB,EAASG,IAAeknB,QAAQm/C,gBAIvC,IAEH,MAAO,CACL/a,WAAY7rC,GAAoBiiC,EAAgB2f,YAChDgF,UAAW3kB,EAAgB2kB,UAC3B9a,sB,iCC9DJ,+EASe,SAASE,IACtB,IAAM5rD,EAAWC,cACjBovG,EAAiDxvF,YAAmB,CAClEC,kBAAmB,CAACC,IAAWuiC,eADzB1iC,EAAgByvF,EAAhBzvF,iBAIFiiC,GAAkBr2D,EAJoB6jH,EAAlB7jH,sBAKlB0pE,EAAsBzpE,cAAtBypE,kBAgBR,MAAO,CACLrJ,kBAAmBjsC,GAAoBiiC,EAAgBoY,YAAc,EACrEnO,gBAfsB,WACtB,MAAO,CACLljE,MAAO,mBACPqC,YAAY,oDAAD5nB,OAAgD6xF,EACzDrT,EAAgBoY,cAElBlvF,IAAK,6CACLoJ,OAAQ,WACN6rB,EAASG,IAAepe,QAAQw/C,e,iCC1BxC,4BA4EewpE,IAxEa,WAC1B,IAAM5wE,EAAmBC,qBAAWC,KA2CpC,IAAM2tF,EAAe,SAAfA,EAAgBrrI,EAA2BqwC,GAC/C,OAAwB,MAApBrwC,EAAQiK,SAAyBjK,EAAQiK,SAAS1iB,KAAI,SAAC86C,GAAC,OAAKgpG,EAAahpG,EAAGgO,OAE/ErwC,EAAQqJ,MAAM9hB,KAAI,SAACmW,GACjB2yC,EAAK1mD,KAAK+T,MAEP,KAOT,SAAS6wH,EAAStkH,GAChB,IAAIomC,EAA6B,GAIjC,OAFApmC,EAAS1iB,KAAI,SAACyY,GAAO,OAAKqrI,EAAarrI,EAASqwC,MAEzCA,EAGT,MAAO,CACL9mD,OAxDF,SAAgB+hJ,EAAiBC,EAAiBC,GAAoB,IAAD1tF,EAAA2tF,EAAAC,EAI/DC,EAAqB,OAAhBnuF,QAAgB,IAAhBA,GAAwB,QAARM,EAAhBN,EAAkB19C,cAAM,IAAAg+C,OAAR,EAAhBA,EAA0Bl5D,QAAO,SAAC0O,GAAC,OAAKA,EAAEyE,GAAGymB,aAAe8sH,KAAS,GAGzEK,IACHA,EAAqB,OAAhBnuF,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB19C,OAAQ,IAGjC,IAAM8rI,EAAc,QAALH,EAAGE,SAAE,IAAAF,OAAA,EAAFA,EAAIxhI,SAASrlB,QAAO,SAAC4gC,GAAC,OAAKA,EAAEztB,KAAOwzI,KAAS,GACzDvrI,EAAmB,OAAT4rI,QAAS,IAATA,GAAmB,QAAVF,EAATE,EAAW3hI,gBAAQ,IAAAyhI,OAAV,EAATA,EAAqB9mJ,QAAO,SAAC+a,GAAC,OAAKA,EAAE5H,KAAOyzI,KAAW,GAEjEK,GAAyB,OAAP7rI,QAAO,IAAPA,OAAO,EAAPA,EAASiK,UAC7B8zC,IAAmD,OAAP/9C,QAAO,IAAPA,OAAO,EAAPA,EAASiK,UACrDjK,EAEEtC,EAAsB,OAAfmuI,QAAe,IAAfA,OAAe,EAAfA,EAAiBxiI,MAAM,GAC9BpJ,GAAoB,OAAPD,QAAO,IAAPA,OAAO,EAAPA,EAASiK,UAAW4hI,EAAkB,KAEzC,OAAhBruF,QAAgB,IAAhBA,KAAkB38C,WAAWb,EAAUtC,GAAO,EAAOuC,IAoCrDsuH,WACAud,YAlCF,SAAqB9rI,GAAmD,IAAD+rI,EACjE17F,EAA6B,GAMjC,OAJgB,OAAhBmN,QAAgB,IAAhBA,GAAwB,QAARuuF,EAAhBvuF,EAAkB19C,cAAM,IAAAisI,GAAxBA,EAA0BxkJ,KAAI,SAACs6B,GAC7BwuB,EAAOA,EAAK3pD,OAAO6nI,EAAS1sG,EAAM5X,cAG7BomC,M,sMCrBEqzC,EAAiB,SAAHz9F,GAA4C,IAAtCimC,EAAQjmC,EAARimC,SAAUxf,EAAOzmB,EAAPymB,QACzC3oB,EAA0BC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAlCiuB,EAAK/tB,EAAA,GAAE2rI,EAAQ3rI,EAAA,GACtBirB,EAA0BlrB,oBAAS,GAAMmrB,EAAAjrB,YAAAgrB,EAAA,GAAlC2gH,EAAK1gH,EAAA,GAAE2gH,EAAQ3gH,EAAA,GAEtBwxE,EAaIC,YAAU,CAAElwD,QAASxE,EAAU20D,OAAQ,eAZzCC,EAAYH,EAAZG,aACAp9F,EAAQi9F,EAARj9F,SACAq9F,EAAcJ,EAAdI,eACAC,EAAqBL,EAArBK,sBACAC,EAAeN,EAAfM,gBACAC,EAAIP,EAAJO,KACAsjC,EAAa7jC,EAAb6jC,cAGAv4G,GAFiB00E,EAAjBQ,kBAEKR,EAAL10E,OACAg/B,EAAI01C,EAAJ11C,KACAq5E,EAAW3jC,EAAX2jC,YAEMvyF,EAAoBC,cAApBD,gBACRziB,EAAsCtrB,oBAAS,GAAMurB,EAAArrB,YAAAorB,EAAA,GAA9CmxE,EAAWlxE,EAAA,GAAEmxE,EAAcnxE,EAAA,GAyB5By8H,EAAgBvrD,IAAgB+jC,IAEtC,OAAKF,IAAgBr5E,IAAQ4kF,EAWxB79G,GAAWsyG,GAAgBr5E,EAiB9B9kD,eAAA,QAAAR,SAAA,CACEF,cAACqxC,IAAQ,CACPrhC,aAAc,CAAEC,SAAU,MAAOC,WAAY,UAC7C8W,MAAM,EACN/a,MAAM,OACN2G,QAAS4T,IAGE,OAAZ60E,QAAY,IAAZA,OAAY,EAAZA,EAAcv5F,KAAI,SAACoY,EAAmBjW,GAAS,OAC9CjE,cAACw8F,IAAkB,CAACnmF,SAAU6D,EAAoCtZ,GAAI,CAAEg8B,EAAG,GAAI18B,SAC5E,SAACgf,EAAQu9E,EAAgBx4F,GACxB,OACEjE,cAACmrI,IAAc,CACbjsH,OAAQA,EACRu9E,eAAgBA,EAChB5oF,MA/CF,EAgDEspF,WAAW,EAAMj9F,SAEjBF,cAAC08F,IAAW,CACVx9E,OAAQA,EACR0Y,YAAY,EACZ/jB,MArDJ,EAuDI5V,SAAU,SAACa,GAAa,OAAKb,EAASic,EAAE5H,GAAI4M,EAAO5M,GAAIxT,IACvDw8F,eAAgB,SAACx8F,GAAa,OAAKw8F,EAAephF,EAAE5H,GAAI4M,EAAO5M,GAAIxT,IACnE69F,mBAAoB,SAACrqF,EAAYxT,GAAa,OAC5Cy8F,EAAsBrhF,EAAE5H,GAAI4M,EAAO5M,GAAIA,EAAIxT,IAE7C08F,gBAAiB,SAAClpF,EAAY2iB,GAAgB,OAC5CumE,EAAgBthF,EAAE5H,GAAI4M,EAAO5M,GAAIA,EAAGymB,WAAY9D,IAElD2nE,QAAS,SAACnuC,GAAW,OAAKwsC,EAAexsC,KA/D7C,OAmEH,gBAAAxtD,OA1BmDiZ,EAAE5H,GAAKrO,OA6B/DjE,cAACW,IAAG,CAACC,GAAI,CAAEqC,UAAW,SAAUpC,GAAI,EAAGgN,EAAG,GAAI3N,SAC5CF,cAAC+uB,IAAM,CAAChuB,QAAQ,YAAYa,KAAK,QAAQK,UAAWskJ,EAAe5hI,QAxFtD,WACjBlE,YACEg7E,KAAO,WAELnvD,EAAgB,4CAA6C,CAAEvrC,QAAS,YACxEspI,GAAS,GACLpjH,GAASA,MAJfw0E,EAKG,WACDnvD,EACE,wFACA,CAAEvrC,QAAS,UAETkmB,GAASA,SA4E0E/mB,SAAC,iBAtD1FQ,eAACy1H,IAAqB,CAAC3vG,MAAOA,EAAMtmB,SAAA,CAClCF,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAC,sBAC5BF,cAACc,IAAU,CAACC,QAAQ,QAAQ03C,WAAS,EAAAv4C,SAAC,4FAGtCF,cAACW,IAAG,CAACC,GAAI,CAAE4L,QAAS,OAAQsiB,eAAgB,SAAUjuB,GAAI,GAAIX,SAC5DF,cAAC+uB,IAAM,CAACntB,KAAK,QAAQb,QAAQ,YAAY4jB,QA5C7B,WAClBwlH,GAAS,IA2C2DjqI,SAAC,mBAjBnEF,cAACm2H,IAAqB,CAAC3vG,MAAOA,EAAMtmB,SAClCF,cAAC+sB,IAAK,CAACC,SAAS,UAAS9sB,SACtBkqI,EACG,2CACA,sD,oHCnERtwG,EAAcjvB,YAAO,SAAPA,EAAiB,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,OAAA/L,YAAA,CAC3CuN,IAAK,EACLD,KAAM,EACNf,WAAY,EACZ5H,MAAO,OACPN,SAAU,WACVqI,QAASX,EAAMO,QAAQ,EAAG,EAAG,IAC5BP,EAAMoB,YAAYC,GAAG,MAAQ,CAC5BV,QAASX,EAAMO,QAAQ,EAAG,EAAG,QAI3BuoB,EAAYhpB,YAAOlK,IAAPkK,EAAY,SAAAzI,GAAQA,EAAL2I,MAAK,MAAQ,CAC5Ce,gBAAiB,UACjBlD,OAAQ,UAKK,SAASiqG,IAQtB,OAPA5zG,qBAAU,WACR,IAAIokG,EAAMv6F,SAASysC,eAAe,oBAE9B8tD,IACFA,EAAIrgG,MAAMwJ,QAAU,WAErB,IAED9L,eAACmzB,EAAS,CAAA3zB,SAAA,CACRF,cAAC85B,EAAW,IACZ95B,cAAC8+E,IAAM,S,iCCxCb,kFAoBe,SAAS56D,EAAa1jB,GAAmC,IAAhC+Z,EAAO/Z,EAAP+Z,QAC9Bkd,EAAsCld,EAAtCkd,OAAQ7c,EAA8BL,EAA9BK,YAAa4rI,EAAiBjsI,EAAjBisI,aAEvBv6I,EAAQw6I,YAAyB7rI,EAAa6c,GAAQxrB,MAG5D,OAAIwrB,EAAez3B,cAACizF,IAAI,CAACryF,GAAI,CAAEqL,MAAO,WAAaT,SAAS,UAExDg7I,EAAe,EAAUxmJ,cAAC4sH,IAAI,CAAChsH,GAAI,CAAEqL,MAAO,WAAaT,SAAS,UAGpExL,cAAA,OAAKgD,MAAO,CAAEqhB,aAAc,OAAQnkB,SAClCF,cAACq4I,IAAI,CAACz3I,GAAI,CAAEqL,MAAOA,GAAST,SAAS,c,+HCzBrCqoB,EAAYhpB,YAAOlK,IAAPkK,EAAY,SAAArK,GAAQA,EAALuK,MAAK,MAAQ,CAC5CyB,QAAS,OACTk6I,UAAW,OACX53H,eAAgB,SAChB,OAAQ,CACNnrB,MAAO,GACPiF,OAAQ,GACRyjD,QAAS,IACT6vE,OAAQ,UACR,iBAAkB,CAChB7vE,QAAS,EACT,eAAgB,CACd1oD,MAAO,GACPgI,aAAc,SAMhBg7I,EAAW97I,YAAO,OAAPA,EAAe,SAAA1I,GAAA,IAAG4I,EAAK5I,EAAL4I,MAAK,MAAQ,CAC9CpH,MAAO,GACPiF,OAAQ,GACR+C,aAAc,MACduoB,WAAYnpB,EAAM0jF,YAAYluD,OAAO,MAAO,CAC1Ci9F,OAAQzyH,EAAM0jF,YAAY+uC,OAAOC,UACjC/kF,SAAU,UAUC,SAAS0C,EAA+Bh5C,GAGlB,IAFnC6J,EAAK7J,EAAL6J,MACG8C,EAAKc,YAAAzN,EAAA0N,GAER,MAAO,CACL82I,WAAY,SAAC/rG,GAAe,OAC1B76C,cAAAC,WAAA,CAAAC,SACEF,cAAC6zB,EAAS90B,wBAAA,CAACgP,UAAU,MAASgB,GAAK,IAAA7O,SAChC26C,QAIPgsG,aAAc,kBACZ7mJ,cAACW,IAAG,CACFC,GAAI,CACF+C,MAAO,OACPiF,OAAQ,OACR4D,QAAS,OACTjL,WAAY,SACZutB,eAAgB,UAChB5uB,SAEFF,cAAC2mJ,EAAQ,CACPjhH,UAAU,YACV9kC,GAAI,CACFqsB,QAAShhB,GAAS,wB,8GClDf,SAASkkD,EAAa3vD,GAAyC,IAAtC8R,EAAE9R,EAAF8R,GAAIy9C,EAASvvD,EAATuvD,UAC1C7R,EAAwC70B,cAAhC1J,EAAOu+B,EAAPv+B,QAASyJ,EAAkB80B,EAAlB90B,mBACjB9qB,EAA4BC,mBAAiB,IAAIgG,KAAgB/F,EAAAC,YAAAH,EAAA,GAA1DihB,EAAM/gB,EAAA,GAAEsoJ,EAAStoJ,EAAA,GACxB2tC,EAWIzrB,aAAY,SAAC7O,GAAgB,OAAKA,EAAM0N,UAV1CgxC,EAAOpkB,EAAPokB,QACAF,EAAalkB,EAAbkkB,cACAD,EAASjkB,EAATikB,UACAlD,EAAS/gB,EAAT+gB,UACA0B,EAAYziB,EAAZyiB,aACAE,EAAS3iB,EAAT2iB,UACAD,EAAO1iB,EAAP0iB,QACAG,EAAkB7iB,EAAlB6iB,mBACAsB,EAAenkB,EAAfmkB,gBACAtyD,EAAcmuC,EAAdnuC,eAGIisB,EAAWb,IA6CjB,OA3CAnqB,qBAAU,WACR,GAAW,KAAPqT,EAAW,CAAC,IAADg7F,EAEwDC,EAAAC,EADjEjoG,EAAqB,OAAPoa,QAAO,IAAPA,GAAgB,QAAT2tF,EAAP3tF,EAAS0pF,eAAO,IAAAiE,OAAT,EAAPA,EAAkBG,WACpC,IAAKloG,QAA+BZ,IAAhBY,GAA6C,KAAhBA,EAC/CA,EAAqB,OAAPoa,QAAO,IAAPA,GAAgB,QAAT4tF,EAAP5tF,EAAS0pF,eAAO,IAAAkE,GAAY,QAAZC,EAAhBD,EAAkB/D,kBAAU,IAAAgE,OAArB,EAAPA,EAA8B56B,UAAU,EAAG,GAE3D,OAOJ,SAAgB86B,GACd,IAAMjnE,EAeR,SAA0BpnC,GACxB,IAAMouG,EAAa7+C,EAAazvD,QAAO,SAAC8hC,GAAc,OAAKA,EAAE5hC,OAASA,KAAM,GACtEoG,EAAWqpD,EAAU3vD,QAAO,SAACqP,GAAW,OAAKA,EAAEnP,QAAmB,OAAVouG,QAAU,IAAVA,OAAU,EAAVA,EAAYrmG,iBAAc,GAClFrC,EAAS8pD,EAAQ1vD,QACrB,SAACkL,GAAuB,OAAKA,EAAEhL,QAAmB,OAAVouG,QAAU,IAAVA,OAAU,EAAVA,EAAYpmG,eACpD,GAEF,MAAO,CACLomG,aACAhoG,WACAV,UAzBe4oG,CAAiBD,GAC9BhvG,EAAU,IAAI6F,IAClB7F,EAAQ2B,gBAAkB,MAEtBomC,IACF/nC,EAAQ6G,YAAckhC,EAASgnE,WAC/B/uG,EAAQqG,OAAS0hC,EAAS1hC,OAC1BrG,EAAQ+G,SAAWghC,EAAShhC,UAE9B/G,EAAQuG,kBAAoB,CAAE5F,KAAM,MAAO8B,YAAa,IACxDzC,EAAQwG,eAAiB,CAAE7F,KAAM,MAAO8B,YAAa,IACrDzC,EAAQgB,aAAe,MACvBonJ,EAAUpoJ,GApBD6hC,CAAOh7B,GAEduhJ,EACEv2F,EAAQpxD,QAAO,SAACuxD,GAAW,OAAKA,EAAIrxD,OAASiT,GAAMo+C,EAAI9rD,QAAQvF,OAAS0wD,KAAW,MAEtF,CAACQ,IAgCG,CACLhxC,SACAgxC,UACAH,YACAC,gBACAnD,YACA0B,eACAE,YACAD,UACAG,qBACAsB,kBACAtyD,iBACAqY,SAAU4T,EAASo0C,SAASorD,oB,mLCFpBs9B,EAAoB,SAApBA,GAAoB,OAApBA,IAAoB,uBAApBA,IAAoB,qBAApBA,EAAoB,KAUpBC,EAAmB,SAAnBA,GAAmB,OAAnBA,IAAmB,iBAAnBA,IAAmB,qBAAnBA,IAAmB,uCAAnBA,EAAmB,K,aCjG/B1nH,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAiBA,IAQM0N,EAAQC,YAAY,CACxBpS,KAAM,aACNqS,aAVoC,CACpCC,WAAW,EACX9S,OAAO,EACP0jE,YAAa,GACbklF,yBAA0B,GAC1B7nI,WAAY,MAMZzN,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,GAGpB4J,WAAU,SAAClJ,GACTA,EAAMV,WAAY,EAClBU,EAAMuN,WAAa,KACnBvN,EAAMxT,OAAQ,GAIhByT,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAIvBk1I,wBAAuB,SAACr1I,EAAOE,GAC7BF,EAAMV,WAAY,EAClBU,EAAMuN,WAAa,KACnBvN,EAAMkwD,YAAchwD,EAAOC,QAAQ44C,KACnC/4C,EAAMo1I,yBAA2Bl1I,EAAOC,QAAQm1I,gBAIlDC,qBAAoB,SAACv1I,EAAOE,GAC1BF,EAAMV,WAAY,EAClBU,EAAMkwD,YAAW,GAAA9gE,OAAA2W,YAAO/F,EAAMkwD,aAAW,CAAEhwD,EAAOC,WAEpDq1I,iBAAgB,SAACx1I,EAAOE,GACtB,IAIeu1I,EAAAC,EAJfjuI,EAAsBvH,EAAOC,QAArBM,EAAEgH,EAAFhH,GAAIumC,EAAKv/B,EAALu/B,MAEN2uG,EAAY31I,EAAMkwD,YAAYn3C,MAAK,SAAC3mB,GAAC,OAAKA,EAAEqO,KAAOA,KAErDk1I,IACFA,EAAUC,sBACY,QAApBH,EAAAE,EAAUE,kBAAU,IAAAJ,OAAA,EAApBA,EAAsBh1I,MAAOk1I,EAAUG,KAAKC,SAASt1I,GACvDk1I,EAAUK,WAA6B,QAAjBN,EAAAC,EAAUM,eAAO,IAAAP,OAAA,EAAjBA,EAAmBj1I,IAAK,EACpB,OAAtBk1I,EAAUM,UAAkBN,EAAUM,QAAUC,EAAgBlvG,KACvC,OAAzB2uG,EAAUE,YAAuBF,EAAUC,wBAC7CD,EAAUE,WAAa,CACrBp1I,GAAI,EACJmb,SAAU,GACVE,SAAU,GACVD,UAAW,GACXs6H,SAAU,KAI4B,OAAtCR,EAAUG,KAAKt+C,QAAQ4+C,aACzBT,EAAUG,KAAKt+C,QAAQ4+C,WAAaT,EAAUG,KAAKt+C,QAAQ4+C,WAAWx/I,QACpE++I,EAAUG,KAAKhmJ,MAAMumJ,cACrB,KChFL,SAAoC9oI,GACzC,GAAIA,GAAwC,KAA1BA,EAAW+oI,WAAmB,CAC9C,IAAM7+H,EAAS2iC,KAAKC,MAAM9sC,EAAW+oI,YAEjC7+H,GAAUA,EAAOlL,UAAYkL,EAAOlL,SAAS1Z,OAAS,IACxD4kB,EAAOlL,SAAStc,KAAI,SAAC2pB,EAAU41C,GAAW,OAAM51C,EAAInZ,GAAE,GAAArR,OAAMogE,EAAM,MAElEjiD,EAAW+oI,WAAal8F,KAAK8W,UAAUz5C,KD4ErC8+H,CAA2BZ,GAE3B31I,EAAMuN,WAAaooI,OASZH,GAFAr2I,MAAa,QAEQA,EAAMwC,QAA3B6zI,kBAEFU,EAAkB,SAAClvG,GAC9B,MAAO,CACLvmC,GAAI,EACJ3Q,MAAO,GACP8zI,OAAQ,GACRC,OAAQ,GACRhrI,IAAK,GACL2+F,QAAS,CACP4+C,WAAY,GACZx+C,KAAM,GACND,WAAY,GACZ6+C,QAAS,GACTC,YAAuB,QAAVzvG,EAAkB,MAAQ,OAEzC+uG,SAAU,CACRt1I,GAAI,EACJmb,SAAU,GACVE,SAAU,GACVD,UAAW,GACXs6H,SAAU,MAOT,SAASO,IACd,OAAAhiH,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,IAAA/lB,EAAAgmB,EAAA+9B,EAAA/hD,EAAAmoC,EAAAu8F,EAAA,OAAA7nH,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgB80B,EAAA3C,KAAA,EAAA2C,EAAA1K,KAAA,EAEd4N,IAAcC,IAA4B,wBAAwB,KAAD,EAAlFpD,EAAQC,EAAAxE,KAAAsiC,EAC2B/9B,EAAS5e,KAA1CpF,EAAM+hD,EAAN/hD,OAAQmoC,EAAI4Z,EAAJ5Z,KAAMu8F,EAAc3iF,EAAd2iF,eAAczgH,EAAA6D,GAE5B9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACPw8G,EAAqBp7G,QAAO,GAAAjF,EAAA6D,KAK5Bw8G,EAAqBh+G,SAAQ,oBAF9B,OAFFtoB,EACEzP,EAAMwC,QAAQ0zI,wBAAwB,CAAEt8F,KAAMA,EAAMu8F,eAAgBA,KACpEzgH,EAAArE,OAAA,oBAKA,OAFF5hB,EACEzP,EAAMwC,QAAQ0zI,wBAAwB,CAAEt8F,KAAM,GAAIu8F,eAAgBA,KAClEzgH,EAAArE,OAAA,oBAAAqE,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAINjmB,EACEzP,EAAMwC,QAAQ1B,SAAS,uEACvB,yBAAA40B,EAAAzC,UAAAuC,EAAA,mBAWD,IAAMgiH,EAAgB,SAACv9G,GAAmB,OAAK,SAAC+5B,GACrD,OAAAz+B,YAAAjH,IAAAiE,MAAO,SAAAwD,IAAA,IAAAtmB,EAAAgmB,EAAAo+B,EAAApiD,EAAA7P,EAAA,OAAA0sB,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,OAEkC,OAD/Bvb,EAAaT,IAAbS,UACCzP,EAAMwC,QAAQ5B,gBAAgBo1B,EAAAjD,KAAA,EAAAiD,EAAAhL,KAAA,EAEd4N,IAAcl2B,KACnC,sBACAu3B,EACA,CACEnB,QAAS,CAAEC,WAAW,KAExB,KAAD,EANKtD,EAAQO,EAAA9E,KAAA2iC,EAOcp+B,EAAS5e,KAA7BpF,EAAMoiD,EAANpiD,OAAQ7P,EAAOiyD,EAAPjyD,QAAOo0B,EAAAuD,GAEf9nB,EAAMukB,EAAAhL,KAAAgL,EAAAuD,KACPy8G,EAAoBr7G,QAAO,oBAElB,OADZlrB,EAASzP,EAAMwC,QAAQuH,cACvBiqD,IAAYh+B,EAAA3E,OAAA,oBAGZ5hB,EAASzP,EAAMwC,QAAQ1B,SAASc,IAAU,QAAAo0B,EAAAhL,KAAA,iBAAAgL,EAAAjD,KAAA,GAAAiD,EAAA29B,GAAA39B,EAAA,SAG9CvmB,EACEzP,EAAMwC,QAAQ1B,SAAS,uEACvB,yBAAAk1B,EAAA/C,UAAA8C,EAAA,sB,gCEvLR,uIAgBe,SAASykC,EAAWhrE,GAAoD,IAAjDk9C,EAAiBl9C,EAAjBk9C,kBAAmBx9C,EAAQM,EAARN,SAGvD,OAAIuoJ,EAFqBC,cAAjBD,cAES/qG,GAEb19C,cAACyhD,IAAS,CAACvzB,SAAU,KAAKhuB,SACxBQ,eAACiuB,IAAI,CAAAzuB,SAAA,CACHF,cAACumB,IAAU,CACTC,MACExmB,cAACc,IAAU,CAACC,QAAQ,YAAWb,SAAC,+DAMpCF,cAACkO,IAAO,IAERlO,cAACs/C,IAAgB,CAAC32C,IAAK,wCAAyC62C,UAAU,EAAKt/C,SAC7EQ,eAACqsB,IAAK,CAACC,SAAS,QAAO9sB,SAAA,CACrBF,cAAC4tB,IAAU,CAAA1tB,SAAC,uBAAyB,kHAIzCF,cAACkpE,IAAoB,SAMtBlpE,cAAAC,WAAA,CAAAC,SAAGA,M,gCC9CZ,kiBA+DO,SAASyoJ,IACd,MAAO,CAAC,CAAEztI,WAAY,UAAW8L,KAAM,oBAAqB4hI,KAAM,sBAO7D,SAASniC,IACd,MAAO,CACL,CAAEnrG,OAAQ,aAAcrP,MAAO,UAAyB26G,KAAM,WAC9D,CAAEtrG,OAAQ,OAAQrP,MAAO,UAAyB26G,KAAM,WACxD,CAAEtrG,OAAQ,OAAQrP,MAAO,UAAyB26G,KAAM,WACxD,CAAEtrG,OAAQ,WAAYrP,MAAO,UAAyB26G,KAAM,WAC5D,CAAEtrG,OAAQ,SAAUrP,MAAO,UAAyB26G,KAAM,YAQvD,SAASD,IACd,MAAO,CACL,CAAErrG,OAAQ,aAAcrP,MAAO,UAAyB26G,KAAM,WAC9D,CAAEtrG,OAAQ,OAAQrP,MAAO,UAAyB26G,KAAM,WACxD,CAAEtrG,OAAQ,OAAQrP,MAAO,UAAyB26G,KAAM,WACxD,CAAEtrG,OAAQ,WAAYrP,MAAO,UAAyB26G,KAAM,WAC5D,CAAEtrG,OAAQ,SAAUrP,MAAO,UAAyB26G,KAAM,YASvD,SAASluC,EACdr+D,EACAI,EACAC,EACAE,GAGA,OAAOP,EAAOvY,KAAI,SAACs6B,GAEjBA,EAAM5X,SAAS9B,SAAQ,SAACmmI,GACtBC,EAAYD,GACZjuI,EAAYM,YAAc2tI,EAASjuI,YAAYM,WAC/CN,EAAYO,OAAS0tI,EAASjuI,YAAYO,SAG5C,IAAI4tI,GAA6B,EAE7BC,EAA+B,CACjCD,mBAAmB,EACnBzzD,YAAY,EACZ2zD,gBAAiB,IAGnB7sH,EAAM5X,SAAS9B,SAAQ,SAACnI,GAEtByuI,EAAWD,kBACTA,GAAqBC,EAAWC,gBAAgBnzG,MAAK,SAACxN,GAAC,OAAKA,IAAM/tB,EAAQ2uI,eAE5EC,EAAQ5uI,EAASyuI,EAAYvuI,EAAqBC,GAClDquI,GAAoB,QAWnB,SAASI,EACd5uI,EACA6uI,EACAC,EACA3uI,GAEwB,MAApBH,EAAQiK,UACVjK,EAAQiK,SAAS1iB,KAAI,SAAC86C,GAEpBwsG,EAAUL,kBACRK,EAAUL,oBACRxuI,EAAQkd,QAA4B,IAAlBld,EAAQswD,OAC3Bu+E,EAAU9zD,YAAgC,IAAlB/6E,EAAQswD,MAEnCs+E,EAAQvsG,EAAGwsG,EAAWC,EAAW3uI,GAE5BkiC,EAAEnlB,SACLld,EAAQkd,QAAS,GAGnB2xH,EAAU9zD,WACR/6E,EAAQK,YAAYO,QAAUZ,EAAQK,YAAYM,WAAaX,EAAQK,YAAYoM,QAIjE,IAAlBzM,EAAQswD,QAAgBtwD,EAAQkd,QAAUld,EAAQ2uI,YAAc,GAClEE,EAAUH,gBAAgB/kJ,KAAKqW,EAAQ2uI,eAGzC3uI,EAAQqJ,MAAM9hB,KAAI,SAACmW,EAAqBpE,GAEpCoE,EAAKqD,SAAWC,IAAoByhB,QACpCosH,EAAUL,mBACV9wI,EAAKuqE,cAAgB6mE,IAErBpxI,EAAKqD,OAASC,IAAoBC,KAClC4tI,EAAUL,mBAAoB,EAC9BxuI,EAAQkd,QAAS,GAIjB/c,IACCzC,EAAKqD,SAAWC,IAAoBC,MAClCvD,EAAKtV,OAAS2lB,IAAkB4K,WAwBpC,SAAsBjb,GAC3B,OAA2C,IAAvCA,EAAKkR,aAAa4O,UAAUrzB,QAEzBuT,EAAKkR,aAAa4O,UAAU+d,MAAK,SAACjV,GAAC,MACxC,CAACtW,IAAeC,UAAWD,IAAe8+G,GAAI9+G,IAAegF,QAAQhwB,SAASshC,EAAEvlB,WA3BvEguI,CAAarxI,MAElBmxI,EAAUL,mBAAoB,IAI7BruI,GACD,CAACa,IAAoBC,KAAMD,IAAoByhB,QAAQz9B,SAAS0Y,EAAKqD,UAErErD,EAAKqD,OAASC,IAAoBC,KAClC4tI,EAAUL,mBAAoB,EAC9BxuI,EAAQkd,QAAS,MAIrB2xH,EAAU9zD,WACR/6E,EAAQK,YAAYO,QAAUZ,EAAQK,YAAYM,WAAaX,EAAQK,YAAYoM,KACrFzM,EAAQkd,UACLld,EAAQkd,QAAUld,EAAQK,YAAYM,WAAaX,EAAQK,YAAYoM,KAAO,IAcrF,SAASuiI,EAAmBhvI,GAC1BA,EAAQK,YAID,CACLO,MAAO,EACPD,WAAY,EACZ8L,KAAM,EACNwiI,mBAAoB,EACpBC,aAAc,EACdz+H,SAAS,EACT0wH,WAAY,GART,SAAShgI,IACd,MAAO,CACLP,MAAO,EACPD,WAAY,EACZ8L,KAAM,EACNwiI,mBAAoB,EACpBC,aAAc,EACdz+H,SAAS,EACT0wH,WAAY,GAQT,SAASoN,EAAYvuI,GACF,MAApBA,EAAQiK,UACV+kI,EAAmBhvI,GACnBA,EAAQiK,SAAS9B,SAAQ,SAACk6B,GACxBksG,EAAYlsG,GAEZriC,EAAQK,YAAYO,OAASyhC,EAAEhiC,YAAYO,MAC3CZ,EAAQK,YAAYM,YAAc0hC,EAAEhiC,YAAYM,WAChDX,EAAQK,YAAYoM,MAAQ41B,EAAEhiC,YAAYoM,KAC1CzM,EAAQK,YAAY4uI,oBAAsB5sG,EAAEhiC,YAAY4uI,mBACxDjvI,EAAQK,YAAY6uI,cAAgB7sG,EAAEhiC,YAAY6uI,aAClDlvI,EAAQK,YAAY8gI,YAAc9+F,EAAEhiC,YAAY8gI,WAC5C9+F,EAAEhiC,YAAYoQ,UAChBzQ,EAAQK,YAAYoQ,SAAU,EAC1BzQ,EAAQK,YAAY4uI,mBAAqB,IAC3CjvI,EAAQK,YAAY+b,MAClBpc,EAAQK,YAAY6uI,aAAelvI,EAAQK,YAAY4uI,0BAI/DD,EAAmBhvI,GACnBA,EAAQqJ,MAAMlB,SAAQ,SAACzK,GAkBrB,GAPE,CAAC+wH,IAAuBG,UAAWH,IAAuBE,WAAW3pI,SACnE0Y,EAAK8wH,eAGPxuH,EAAQK,YAAYoQ,SAAU,GAG5B/S,EAAK8wH,cAAgBC,IAAuBE,WAC1CjxH,EAAKtV,OAAS2lB,IAAkB4K,SAAU,CAAC,IAADw2H,EACtCC,EAAe1xI,EAErB,IAAuC,QAAnCyxI,EAAAC,EAAaxgI,aAAa4O,iBAAS,IAAA2xH,OAAA,EAAnCA,EAAqChlJ,QAAS,EAAG,CACnD,IAAMklJ,EAAqBD,EAAaxgI,aAAa4O,UAAU54B,QAC7D,SAACgtB,GAAQ,OAAKA,EAAS7Q,SAAWiP,IAAeC,aAE/Co/H,GAAsBA,EAAmBllJ,OAAS,IACpDklJ,EAAmB9nJ,KAAI,SAACoY,GACtBK,EAAQK,YAAY4uI,oBAAsBG,EAAaxgI,aAAagP,YACpE5d,EAAQK,YAAY6uI,cAAgBvvI,EAAEyc,MAAQgzH,EAAaxgI,aAAagP,eAG1E5d,EAAQK,YAAY8gI,YAAc,IAM1C,OADAnhI,EAAQK,YAAYO,OAAS,EACrBlD,EAAKqD,QACX,KAAKC,IAAoBC,KAEzB,KAAKD,IAAoByhB,OACvB,MACF,KAAKzhB,IAAoBya,WACvBzb,EAAQK,YAAYM,YAAc,EAClC,MACF,KAAKK,IAAoBE,KACvBlB,EAAQK,YAAYoM,MAAQ,MAK9BzM,EAAQK,YAAY4uI,mBAAqB,IAC3CjvI,EAAQK,YAAY+b,MAClBpc,EAAQK,YAAY6uI,aAAelvI,EAAQK,YAAY4uI,qBASxD,IAAMtvE,EAAkB,SAAlBA,EACX3/D,EACAqwC,GAEA,OAAwB,MAApBrwC,EAAQiK,SAAyBjK,EAAQiK,SAAS1iB,KAAI,SAAC86C,GAAC,OAAKs9B,EAAgBt9B,EAAGgO,OAElFrwC,EAAQqJ,MAAMlB,SAAQ,SAACk6B,GACrB,GAAIA,EAAEj6C,OAAS2lB,IAAkB4K,SAAU,CACzC,IAAIx0B,EAAUk+C,EAEdgO,EAAK1mD,KAAKxF,EAAQyqB,kBAGjB,KAUI0gI,EAAc,SAAdA,EACXtvI,EACA49C,EACAvN,EACAggB,EACAxS,GAEA,IAAM0xF,EAAoB3/I,YAAcguD,GAExC,OAAwB,MAApB59C,EAAQiK,SACHjK,EAAQiK,SAAS1iB,KAAI,SAAC86C,GAAC,OAAKitG,EAAYjtG,EAAGktG,EAAmBl/F,EAAMrwC,EAAS69C,OAEpF79C,EAAQqJ,MAAMlB,SAAQ,SAACk6B,KAElBzyC,YAAcyyC,EAAEj7C,OAAOpC,SAASuqJ,IAC/B3/I,YAAcyyC,EAAEziB,WAAW56B,SAASuqJ,IACpC3/I,YAAcyyC,EAAE/rC,KAAKtR,SAASuqJ,IAC9B3/I,YAAcme,IAAkBs0B,EAAEj6C,OAAOpD,SAASuqJ,IAClDC,IAA8BntG,EAAEj6C,KAAKmiF,WAAWhvC,MAAK,SAAC9yB,GAAC,OACrDA,EAAEzjB,SAASuqJ,QAEb1xF,QACazzD,IAAbyzD,GACqB,KAAb,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAU1zD,WACF,OAAR0zD,QAAQ,IAARA,OAAQ,EAARA,EAAU74D,SAASq9C,EAAEj6C,QAEvBioD,EAAK1mD,KAAK,CAAE+T,KAAM2kC,EAAGriC,QAASA,EAASqwD,cAAeA,OAGrD,KAGIE,EAAsB,SAAtBA,EACXvwD,EACA4f,EACAywC,EACAhgB,GAEA,OAAwB,MAApBrwC,EAAQiK,SACHjK,EAAQiK,SAAS1iB,KAAI,SAAC86C,GAAC,OAAKkuB,EAAoBluB,EAAGziB,EAAW5f,EAASqwC,OAE9ErwC,EAAQqJ,MAAMlB,SAAQ,SAACk6B,GACjBA,EAAEtqC,KAAO6nB,GACXywB,EAAK1mD,KAAK04C,MAGT,KAiCF,SAASk9B,EAAgBz/D,GAC9B,IAAIuwC,EAAoC,GAoCxC,OAlCAvwC,EAAOqI,SAAQ,SAAC7U,GACdA,EAAE2W,SAAS1iB,KAAI,SAACi4E,GAAoB,OAAKC,EAAqBD,SAGhE1/D,EAAOqI,SAAQ,SAAC7U,GACdA,EAAE2W,SAAS9B,SAAQ,SAACq3D,GAClBA,EAAGv1D,SAAS9B,SAAQ,SAACnI,GACK,MAApBA,EAAQiK,SACVjK,EAAQiK,SAAS9B,SAAQ,SAAClI,GACxBA,EAAWoJ,MAAMlB,SAAQ,SAACzK,GACpBA,EAAKw0G,WACP7hE,EAAK1mD,KAAK,CACRk4B,MAAOvuB,EAAEyE,GACT03I,UAAWjwE,EAAGznE,GACd23I,YAAa1vI,EAAQjI,GACrB43I,eAAgB1vI,EAAWlI,GAC3B2F,KAAMA,UAKdsC,EAAQqJ,MAAMlB,SAAQ,SAACzK,GACjBA,EAAKw0G,WACP7hE,EAAK1mD,KAAK,CACRk4B,MAAOvuB,EAAEyE,GACT03I,UAAWjwE,EAAGznE,GACd23I,YAAa1vI,EAAQjI,GACrB43I,eAAgB,GAChBjyI,KAAMA,gBAMb2yC,EASF,SAASovB,EAAqBz/D,GACX,MAApBA,EAAQiK,UACVjK,EAAQiK,SAAS1iB,KAAI,SAACoY,GACpB,OAAO8/D,EAAqB9/D,MAE9BK,EAAQisI,aAAejsI,EAAQiK,SAAS1T,QACtC,SAACqoI,EAAYt2E,GAAY,OAAKs2E,EAAat2E,EAAa2jF,eACxD,IAGFjsI,EAAQisI,aAAejsI,EAAQqJ,MAAMzkB,QAAO,SAAC8E,GAAC,OAAKA,EAAEwoH,aAAW/nH,OAI7D,SAASylJ,EAA4B5vI,GAC1C,OAAOA,EAAQpb,QAAO,SAAC0uI,GAAG,OAAKA,EAAIjqH,OAASiqH,EAAIjqH,MAAMlf,OAAS,KAAG,GAM7D,SAASsW,EAAaX,EAA+BrI,GAC1D,OAAOlQ,cAAIuY,GAAQ,SAAC0/C,GA0BlB,OAzBIA,EAAEznD,KAAON,EAAQwwE,cACnBzoB,EAAEv1C,SAAS9B,SAAQ,SAACq3D,GAClBA,EAAGv1D,SAAS9B,SAAQ,SAACnI,GACK,MAApBA,EAAQiK,SACVjK,EAAQiK,SAAS9B,SAAQ,SAAClI,GACxBA,EAAWoJ,MAAM9hB,KAAI,SAACgwB,GACpB,OAAIA,EAAMjhB,MAAQmB,EAAQnB,IACjB,CACLmB,WAEU8f,QAIlBvX,EAAQqJ,MAAM9hB,KAAI,SAACgwB,GACjB,OAAIA,EAAMjhB,MAAQmB,EAAQnB,IACjB,CACLmB,WAEU8f,WAMjBioC,KAIJ,SAASqwF,EAAgBnyI,GAC9B,OAAQA,EAAKtV,MACX,KAAK2lB,IAAkB4K,SACrB,IAAIm3H,EAAepyI,EACnB,MAAO,CACLkQ,SAAUkiI,EAAalhI,aAAahB,SACpC7V,GAAI+3I,EAAalhI,aAAa7W,GAC9BzB,IAAKoH,EAAK3F,GACVk4D,QAAS,EACTp+C,QAASi+H,EAAalhI,aAAaiD,SAEvC,KAAK9D,IAAkBgH,UACrB,MAAO,CACLnH,SAAUlQ,EAAK3F,GACfA,GAAI,EACJzB,IAAKoH,EAAK3F,GACVk4D,QAAS,EACTp+C,QAAS,IAEb,QACE,IAAIk+H,EAAYryI,EAChB,MAAO,CACLkQ,SAAUmiI,EAAUh4I,GACpBA,GAAI,EACJzB,IAAKoH,EAAK3F,GACVk4D,QAAS8/E,EAAUr3H,MAAM3gB,GACzB8Z,QAAS,KAKV,SAAStQ,EAAU7D,GACxB,OAAQA,EAAKtV,MACX,KAAK2lB,IAAkB4K,SACrB,IAAIm3H,EAAepyI,EACnB,MAAO,CACLkQ,SAAUkiI,EAAalhI,aAAahB,SACpCy8F,YAAan0F,YAAM,IAAInuB,KAAQ,oBAC/BgQ,GAAI+3I,EAAalhI,aAAa7W,GAC9BzB,IAAKoH,EAAKpH,IACV25D,QAAS,GAEb,KAAKliD,IAAkBgH,UACrB,MAAO,CACLnH,SAAUlQ,EAAK3F,GACfsyG,YAAan0F,YAAM,IAAInuB,KAAQ,oBAC/BgQ,GAAI,EACJzB,IAAKoH,EAAKpH,IACV25D,QAAS,GAEb,QACE,IAAI8/E,EAAYryI,EAChB,MAAO,CACLkQ,SAAUmiI,EAAUh4I,GACpBsyG,YAAan0F,YAAM,IAAInuB,KAAQ,oBAC/BgQ,GAAI,EACJzB,IAAKoH,EAAKpH,IACV25D,QAAS8/E,EAAUr3H,MAAM3gB,KAK1B,SAASm0I,EAAyB7rI,EAA0B6c,GACjE,IAAQvc,EAA4BN,EAA5BM,WAAY8L,EAAgBpM,EAAhBoM,KAAM7L,EAAUP,EAAVO,MAC1B,QAAQ,GACN,KAAKA,IAAUD,GAAcC,EAAQ,EACnC,MAAO,CACLlP,MA3gBC,CAAC,CAAEiP,WAAY,UAAW8L,KAAM,oBAAqB4hI,KAAM,sBA2gB9BzpJ,QAAO,SAACunH,GAAE,OAAKA,EAAGxrG,cAAY,GAAGA,WAC/DvZ,MAAO,eAEX,KAAKqlB,EAAO,EACZ,KAAK9L,EAAa,EAChB,MAAO,CAAEjP,MAhhBN,CAAC,CAAEiP,WAAY,UAAW8L,KAAM,oBAAqB4hI,KAAM,sBAghBvBzpJ,QAAO,SAACunH,GAAE,OAAKA,EAAG1/F,QAAM,GAAGA,KAAMrlB,MAAO,YACjF,QACE,MAAO,CACLsK,MAnhBC,CAAC,CAAEiP,WAAY,UAAW8L,KAAM,oBAAqB4hI,KAAM,sBAmhB9BzpJ,QAAO,SAACunH,GAAE,OAAKA,EAAGkiC,QAAM,GAAGA,KACzDjnJ,MAAO81B,EAAS,gBAAe,kB,gCC3jBvC,sGAAO,IAAKrG,EAAQ,SAARA,GAAQ,OAARA,IAAQ,eAARA,IAAQ,qBAARA,IAAQ,eAARA,IAAQ,iBAARA,IAAQ,uBAARA,IAAQ,2BAARA,IAAQ,uBAARA,IAAQ,2CAARA,IAAQ,uCAARA,IAAQ,oBAARA,IAAQ,8BAARA,IAAQ,oBAARA,IAAQ,oCAARA,IAAQ,wCAARA,EAAQ,KA0DRmoD,EAA2B,SAA3BA,GAA2B,OAA3BA,IAA2B,uBAA3BA,IAA2B,qBAA3BA,EAA2B,KAS3BzoD,EAAQ,SAARA,GAAQ,OAARA,IAAQ,eAARA,IAAQ,yBAARA,IAAQ,qBAARA,EAAQ,M,+BC1DpB,giBAAO,IA6FKk4G,EAAsB,SAAtBA,GAAsB,OAAtBA,IAAsB,eAAtBA,IAAsB,qBAAtBA,IAAsB,qBAAtBA,IAAsB,yBAAtBA,IAAsB,yBAAtBA,EAAsB,KAuEtBztH,EAAmB,SAAnBA,GAAmB,OAAnBA,IAAmB,eAAnBA,IAAmB,eAAnBA,IAAmB,2BAAnBA,IAAmB,mBAAnBA,IAAmB,uBAAnBA,EAAmB,KAQnB+M,EAAiB,SAAjBA,GAAiB,OAAjBA,IAAiB,uBAAjBA,IAAiB,yBAAjBA,IAAiB,iBAAjBA,IAAiB,eAAjBA,IAAiB,aAAjBA,IAAiB,iBAAjBA,IAAiB,iBAAjBA,IAAiB,aAAjBA,IAAiB,mBAAjBA,EAAiB,KAchByhI,EAAgC,CAC3C,CAAC,YAAa,UAAW,eACzB,GACA,CAAC,aAAc,eACf,CAAC,UACD,CAAC,OAAQ,SACT,CAAC,OAAQ,SACT,CAAC,UACD,CAAC,SACD,CAAC,OACD,CAAC,YAaS7+H,EAAS,SAATA,GAAS,OAATA,IAAS,iBAATA,IAAS,2BAATA,EAAS,KA6BT2B,EAAY,SAAZA,GAAY,OAAZA,IAAY,uBAAZA,IAAY,qCAAZA,IAAY,6BAAZA,IAAY,yBAAZA,IAAY,iBAAZA,EAAY,KA6BZmrH,EAAe,SAAfA,GAAe,OAAfA,IAAe,eAAfA,IAAe,+BAAfA,IAAe,mCAAfA,IAAe,6BAAfA,IAAe,qCAAfA,IAAe,uBAAfA,EAAe,KAyBfztH,EAAc,SAAdA,GAAc,OAAdA,IAAc,eAAdA,IAAc,mBAAdA,IAAc,WAAdA,IAAc,yBAAdA,IAAc,2BAAdA,IAAc,mBAAdA,IAAc,uBAAdA,EAAc,KA8CdggI,EAA2B,SAA3BA,GAA2B,OAA3BA,IAA2B,yBAA3BA,IAA2B,yBAA3BA,EAA2B,KAK3BlgF,EAAa,SAAbA,GAAa,OAAbA,IAAa,+BAAbA,IAAa,mBAAbA,IAAa,6BAAbA,EAAa,KAsDbwP,EAAe,SAAfA,GAAe,OAAfA,IAAe,uBAAfA,IAAe,qBAAfA,IAAe,qBAAfA,EAAe,KA6BfzO,EAAwB,SAAxBA,GAAwB,OAAxBA,IAAwB,uBAAxBA,IAAwB,qBAAxBA,EAAwB,KAkBxB1iC,EAAqB,SAArBA,GAAqB,OAArBA,IAAqB,uBAArBA,IAAqB,qBAArBA,IAAqB,6CAArBA,IAAqB,qDAArBA,IAAqB,iDAArBA,IAAqB,qCAArBA,IAAqB,iBAArBA,EAAqB,KAUrByG,EAAkB,SAAlBA,GAAkB,OAAlBA,IAAkB,uBAAlBA,IAAkB,qBAAlBA,IAAkB,mCAAlBA,IAAkB,2CAAlBA,IAAkB,iCAAlBA,IAAkB,iBAAlBA,EAAkB,KAkBlBk8B,EAAyB,SAAzBA,GAAyB,OAAzBA,IAAyB,uBAAzBA,IAAyB,qBAAzBA,IAAyB,iBAAzBA,EAAyB,KAyBzB6N,EAA2B,SAA3BA,GAA2B,OAA3BA,IAA2B,uBAA3BA,IAA2B,qBAA3BA,EAA2B,M,gCCnhBvC,sGAAO,IAAKywD,EAAY,SAAZA,GAAY,OAAZA,IAAY,qBAAZA,IAAY,uCAAZA,IAAY,mFAAZA,IAAY,2BAAZA,IAAY,6DAAZA,IAAY,yCAAZA,EAAY,KASZtL,EAAY,SAAZA,GAAY,OAAZA,IAAY,aAAZA,IAAY,aAAZA,IAAY,aAAZA,IAAY,aAAZA,IAAY,aAAZA,EAAY,KAuFZ0B,EAAgB,SAAhBA,GAAgB,OAAhBA,IAAgB,qBAAhBA,IAAgB,iBAAhBA,EAAgB,M,wMC/F5BzgG,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAUA,IASM0N,EAAQC,YAAY,CACxBpS,KAAM,WACNqS,aAXkC,CAClCC,WAAW,EACX9S,OAAO,EACPirB,OAAQ,GACRiwC,aAAa,EACbixF,gBAAiB,KACjBrN,cAAe,MAMfxrI,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,GAIpBW,SAAQ,SAACD,EAAOE,GACdF,EAAMV,WAAY,EAClBU,EAAMxT,MAAQ0T,EAAOC,SAIvBy4I,iBAAgB,SAAC54I,EAAOE,GACtBF,EAAMV,WAAY,EAClBU,EAAMyX,OAASvX,EAAOC,SAIxB04I,mBAAkB,SAAC74I,EAAOE,GACxB,IAAM44I,EAAW54I,EAAOC,QACxBH,EAAMV,WAAY,EAClBU,EAAMyX,OAAM,GAAAroB,OAAA2W,YAAO/F,EAAMyX,QAAM,CAAEqhI,KAInCC,mBAAkB,SAAC/4I,EAAOE,GACxB,IAAM+R,EAAQ/R,EAAOC,QACfg9D,EAAcltE,cAAI+P,EAAMyX,QAAQ,SAACw6C,GACrC,OAAIA,EAAOxxD,KAAOwR,EAAMxR,GACfwR,EAEFggD,KAGTjyD,EAAMV,WAAY,EAClBU,EAAMyX,OAAS0lD,GAIjB67E,mBAAkB,SAACh5I,EAAOE,GACxB,IAAQq9D,EAAYr9D,EAAOC,QAAnBo9D,QACFouE,EAAcr+I,iBAAO0S,EAAMyX,QAAQ,SAACpU,GAAI,OAAKA,EAAK5C,KAAO88D,KAC/Dv9D,EAAMyX,OAASk0H,GAIjB94D,YAAW,SAAC7yE,EAAOE,GACjB,IAAMq9D,EAAUr9D,EAAOC,QACvBH,EAAM0nD,aAAc,EACpB1nD,EAAM24I,gBAAkBp7E,GAI1B07E,YAAW,SAACj5I,EAAOE,GACjB,IAAAuH,EAAuBvH,EAAOC,QAAtBua,EAAKjT,EAALiT,MAAO+jD,EAAGh3D,EAAHg3D,IACfz+D,EAAM0nD,aAAc,EACpB1nD,EAAMsrI,cAAgB,CAAE5wH,QAAO+jD,QAIjChM,UAAS,SAACzyD,GACRA,EAAM0nD,aAAc,GAItBS,WAAU,SAACnoD,GACTA,EAAM0nD,aAAc,EACpB1nD,EAAM24I,gBAAkB,KACxB34I,EAAMsrI,cAAgB,SAMbnsI,MAAa,QAGrB,IAAAuC,EAA+CvC,EAAMwC,QAApCD,EAAT+wD,UAAqB/wD,EAAVymD,WAAuBzmD,EAAXmxE,YAkB/B,SAASqmE,EAAYJ,GAC1B,OAAApkH,YAAAjH,IAAAiE,MAAO,SAAAwD,IAAA,IAAAN,EAAA,OAAAnH,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,OACkC,OAAvCvb,YAASzP,EAAMwC,QAAQ5B,gBAAgBo1B,EAAAjD,KAAA,EAAAiD,EAAAhL,KAAA,EAEdqO,IAAM32B,KAAK,2BAA4Bi3I,GAAU,KAAD,EAAjElkH,EAAQO,EAAA9E,KACdzhB,YAASzP,EAAMwC,QAAQk3I,mBAAmBjkH,EAAS5e,KAAK/D,QAAQkjB,EAAAhL,KAAA,gBAAAgL,EAAAjD,KAAA,EAAAiD,EAAAuD,GAAAvD,EAAA,SAEhEvmB,YAASzP,EAAMwC,QAAQ1B,SAAQk1B,EAAAuD,KAAS,yBAAAvD,EAAA/C,UAAA8C,EAAA,kBAOvC,SAASioC,EACdI,EACAJ,GAMA,OAAAzoC,YAAAjH,IAAAiE,MAAO,SAAA4G,IAAA,IAAA1D,EAAA,OAAAnH,IAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,OACkC,OAAvCvb,YAASzP,EAAMwC,QAAQ5B,gBAAgBw4B,EAAArG,KAAA,EAAAqG,EAAApO,KAAA,EAEdqO,IAAM32B,KAAK,8BAA+B,CAC/D07D,UACAJ,gBACC,KAAD,EAHIvoC,EAAQ2D,EAAAlI,KAIdzhB,YAASzP,EAAMwC,QAAQo3I,mBAAmBnkH,EAAS5e,KAAK/D,QAAQsmB,EAAApO,KAAA,gBAAAoO,EAAArG,KAAA,EAAAqG,EAAAG,GAAAH,EAAA,SAEhE3pB,YAASzP,EAAMwC,QAAQ1B,SAAQs4B,EAAAG,KAAS,yBAAAH,EAAAnG,UAAAkG,EAAA,kBAOvC,SAASqzG,EAAYpuE,GAC1B,OAAA7oC,YAAAjH,IAAAiE,MAAO,SAAA8Q,IAAA,OAAA/U,IAAAe,MAAA,SAAAiU,GAAA,cAAAA,EAAAvQ,KAAAuQ,EAAAtY,MAAA,OACkC,OAAvCvb,YAASzP,EAAMwC,QAAQ5B,gBAAgB0iC,EAAAvQ,KAAA,EAAAuQ,EAAAtY,KAAA,EAE/BqO,IAAM32B,KAAK,8BAA+B,CAAE07D,YAAW,KAAD,EAC5D3uD,YAASzP,EAAMwC,QAAQq3I,mBAAmB,CAAEz7E,aAAY96B,EAAAtY,KAAA,gBAAAsY,EAAAvQ,KAAA,EAAAuQ,EAAA/J,GAAA+J,EAAA,SAExD7zB,YAASzP,EAAMwC,QAAQ1B,SAAQwiC,EAAA/J,KAAS,yBAAA+J,EAAArQ,UAAAoQ,EAAA,oB,sICnK9C/U,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAOA,IAOM0N,EAAQC,YAAY,CACxBpS,KAAM,eACNqS,aATsC,CACtCC,WAAW,EACX0zI,KAAM,IAQNlzI,SAAU,CAERC,aAAY,SAACC,GACXA,EAAMV,WAAY,GAGpB4zI,eAAc,SAAClzI,EAAOE,GACpBF,EAAMV,WAAY,EAClBU,EAAMgzI,KAAO9yI,EAAOC,QAAQqvI,OAI9BvvI,SAAQ,SAACD,GACPA,EAAMV,WAAY,EAClBU,EAAMgzI,KAAO,OAgBZ,SAASmG,IACd,OAAAzkH,YAAAjH,IAAAiE,MAAO,SAAAiD,IAAA,IAAA/lB,EAAAgmB,EAAA+9B,EAAA/hD,EAAAoF,EAAA,OAAAyX,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OAIoC,OAHjCvb,EAAaT,IAAbS,SAAQimB,EAAA3C,KAAA,EAGdtjB,EAASzP,EAAMwC,QAAQ5B,gBAAgB80B,EAAA1K,KAAA,EAEhBqO,IAAM32B,KAAmB,gBAAiB,CAC/DjR,UAAWy7I,IAAcA,IAAc+M,KAAKlyH,WAC5CksH,UAAW,EACXp/B,SAAU,EACVx5F,KAAM,aACN6+H,KAAM,GACNC,UAAW,IACV,KAAD,EAPI1kH,EAAQC,EAAAxE,KAAAsiC,EASmC/9B,EAAS5e,KAAlDpF,EAAM+hD,EAAN/hD,OAAQoF,EAAI28C,EAAJ38C,KAAgB28C,EAAV8gF,WAAsB9gF,EAAV+gF,WAAU7+G,EAAA6D,GAEpC9nB,EAAMikB,EAAA1K,KAAA0K,EAAA6D,KACPu5F,IAAen4F,QAAO,oBAKvB,OAJFlrB,EACEzP,EAAMwC,QAAQuxI,eAAe,CAC3B1D,MAAOx5H,KAET6e,EAAArE,OAAA,oBAGoD,OAAtD5hB,EAASzP,EAAMwC,QAAQuxI,eAAe,CAAE1D,MAAO,MAAO36G,EAAArE,OAAA,oBAAAqE,EAAA1K,KAAA,iBAAA0K,EAAA3C,KAAA,GAAA2C,EAAAi+B,GAAAj+B,EAAA,SAI1DjmB,EAASzP,EAAMwC,QAAQ1B,YAAY,yBAAA40B,EAAAzC,UAAAuC,EAAA,mBAzC1Bx1B,MAAa,S,6FC9Bb,SAASguD,EAAYx+D,GAAqD,IAAlDguB,EAAGhuB,EAAHguB,IAAG6tH,EAAA77I,EAAEyL,aAAK,IAAAowI,EAAG,UAASA,EAAEz7I,EAAEJ,EAAFI,GAC7D,OACEZ,cAACW,IAAG,CACFoN,UAAU,OACVnN,GAAE7B,4DAAA,CACA4E,MAAO,GACPiF,OAAQ,GACRwiJ,KAAK,OAADnqJ,OAASutB,EAAG,gCAChB68H,WAAW,OAADpqJ,OAASutB,EAAG,gCACtBvB,QAAQ,GAADhsB,OAAKgL,EAAK,UACH,YAAVA,GAAuB,CAAEghB,QAAS,iBACxB,WAAVhhB,GAAsB,CAAEghB,QAAS,kBACvB,aAAVhhB,GAAwB,CAAEghB,QAAS,oBACzB,UAAVhhB,GAAqB,CAAEghB,QAAS,qBACjCrsB,O,gCCRX,sGAAO,IAAKk1H,EAAkB,SAAlBA,GAAkB,OAAlBA,IAAkB,uBAAlBA,IAAkB,qBAAlBA,EAAkB,KAUlBC,EAAiB,SAAjBA,GAAiB,OAAjBA,IAAiB,uBAAjBA,IAAiB,qBAAjBA,IAAiB,qCAAjBA,EAAiB,KAoBjBhyC,EAAY,SAAZA,GAAY,OAAZA,IAAY,eAAZA,IAAY,eAAZA,IAAY,qBAAZA,IAAY,2BAAZA,IAAY,iCAAZA,IAAY,+BAAZA,IAAY,uBAAZA,IAAY,eAAZA,IAAY,aAAZA,EAAY,M,iKCjClBlwD,EAAYhpB,YAAO8jB,IAAP9jB,EAAa,SAAArK,GAAA,IAAGuK,EAAKvK,EAALuK,MAAK,OAAA/L,YAAA,CACrCiE,UAAW,UACV8H,EAAMoB,YAAYC,GAAG,MAAQ,CAC5BxD,OAAQ,OACR4D,QAAS,OACTlL,cAAe,SACfC,WAAY,SACZutB,eAAgB,cAWL,SAAS2/C,EAAmBrsE,GAA+C,IAA5CuG,EAAGvG,EAAHuG,IAAKzI,EAAQkC,EAARlC,SACjD,OACEQ,eAACmzB,EAAS,CAAA3zB,SAAA,CACRF,cAACW,IAAG,CACFoN,UAAU,MACVyqC,IAAI,GACJhqB,IAAK7lB,GAAO,+CACZ/H,GAAI,CAAEiN,EAAG,EAAG4gB,UAAW,IAAKhrB,OAAQ,CAAE4qB,GAAI,OAAQE,GAAI,cAGxDvuB,cAACW,IAAG,CAACoN,UAAU,MAAMnN,GAAI,CAAEiN,EAAG,EAAGqgB,SAAU,IAAKopD,GAAI,QAASp3E,SAC1DA,OAcF,SAASo/C,EAAgBhyC,GAKL,IAJzB3E,EAAG2E,EAAH3E,IACAzI,EAAQoN,EAARpN,SAAQorJ,EAAAh+I,EACRkyC,gBAAQ,IAAA8rG,GAAQA,EAAAC,EAAAj+I,EAChBiyC,oBAAY,IAAAgsG,EAAG,IAAGA,EAEVpqI,EAAqBL,cAArBK,iBAER,OACEzgB,eAACU,IAAK,CACJoL,QAAQ,OACRlL,cAAe6f,GAAoBq+B,EAAW,SAAW,MACzDj+C,WAAY,SACZutB,eAAgB,SAAS5uB,SAAA,EAEvBihB,GACAnhB,cAACW,IAAG,CACFoN,UAAU,MACVyqC,IAAI,gBACJhqB,IAAK7lB,EACL/H,GAAI,CAAE6tB,UAAW8wB,EAAc3lB,GAAI,KAGtC15B,GACCF,cAACW,IAAG,CAACoN,UAAU,MAAMnN,GAAI,CAAEiN,EAAG,EAAGypE,GAAI,QAASp3E,SAC3CA,S,iCC9EX,8CAEe,SAASwoJ,IACtB,IAAQt/H,EAAuBC,cAAvBD,mBAaR,MAAO,CAAEq/H,aAXY,SAAC/qG,GACpB,GAAIA,EAAmB,CAAC,IAADib,EACfC,EAAqC,QAAvBD,EAAGvvC,WAAoB,IAAAuvC,OAAA,EAApBA,EAAsBE,WAE7C,OACEnb,EAAkBh5C,OAAS,IAAMg5C,EAAkB5H,MAAK,SAACgjB,GAAE,OAAKF,EAAer5D,SAASu5D,MAG5F,OAAO,M,iCCdX,kEASak5E,EAAuB,SAAHxxI,GAC/B,OAD2CA,EAAN8a,QAEnC,KAAK2Q,IAAc06G,OACjB,OACE3mI,cAAC4zB,IAAK,CAAC3nB,MAAM,QAAQlL,QAAQ,QAAOb,SAAC,WAIzC,KAAK+rB,IAAcooE,QACjB,OACEr0F,cAAC4zB,IAAK,CAAC3nB,MAAM,UAAUlL,QAAQ,QAAOb,SAAC,eAI3C,KAAK+rB,IAAcssB,WACjB,OACEv4C,cAAC4zB,IAAK,CAAC3nB,MAAM,UAAUlL,QAAQ,QAAOb,SAAC,YAK7C,OAAOF,cAAAC,WAAA,M,iCC9BT,oHAiBe,SAASwpI,EAAWjpI,GAAgE,IAA7D8Z,EAAM9Z,EAAN8Z,OAAQyd,EAASv3B,EAATu3B,UAAWiQ,EAAMxnC,EAANwnC,OAAQ/gB,EAAOzmB,EAAPymB,QAC/D,OACEvmB,eAACqmB,IAAM,CACLC,KAAMghB,EACN/gB,QAASA,EACTkU,OAAO,QACP/qB,WAAY,CAAExP,GAAI,CAAE+C,MAAO,CAAE0qB,GAAI,EAAGC,GAAI,OAAUpuB,SAAA,CAElDQ,eAACU,IAAK,CAACyM,EAAG,IAAKpL,UAAU,MAAMlB,WAAW,SAAQrB,SAAA,CAChDF,cAACymB,IAAO,CAACD,MAAM,SAAQtmB,SACrBF,cAAC8zB,IAAU,CAACnP,QAASsC,EAASrmB,GAAI,CAAE4vB,GAAI,GAAItwB,SAC1CF,cAACo7B,IAAK,QAGVp7B,cAACc,IAAU,CAACC,QAAQ,KAAIb,SAAC,sBAE3BF,cAACkO,IAAO,IACRlO,cAAC0pI,IAAa,CAACpvH,OAAQA,EAAQyd,UAAWA,S,iCClChD,uDAaa0tD,EAAsC,CACjD,CACEnzE,GAAI,UACJk5I,IAAK,GACL7pJ,MAAO,gBACPyrB,KAAMgxC,IAAM5hD,QACZunC,MAAO,CAAC,kBACRS,UAAW,CACT,CACEh+B,MAAO,uCACP9b,IAAK,gFAEP,CACE8b,MAAO,iDACP9b,IAAK,iFAGTqzI,OAAQpgG,IAAWmnE,MAErB,CACExyG,GAAI,SACJk5I,IAAK,GACL7pJ,MAAO,SACPoiD,MAAO,CAAC,cACR32B,KAAMgxC,IAAMhgD,SACZomC,UAAW,CACT,CACEh+B,MAAO,kDACP9b,IAAK,gFAEP,CACE8b,MAAO,sCACP9b,IAAK,gFAEP,CACE8b,MAAO,qCACP9b,IAAK,gFAEP,CACE8b,MAAO,iDACP9b,IAAK,gFAEP,CACE8b,MAAO,sEACP9b,IAAK,iFAGTqzI,OAAQpgG,IAAWukB,QAErB,CACE5vD,GAAI,UACJk5I,IAAK,GACL7pJ,MAAO,WACPoiD,MAAO,CAAC,gBACR32B,KAAMgxC,IAAM9gD,SACZknC,UAAW,CACT,CACEh+B,MAAO,6CACP9b,IAAK,gFAEP,CACE8b,MAAO,mCACP9b,IAAK,gFAEP,CACE8b,MAAO,qDACP9b,IAAK,iFAGTqzI,OAAQpgG,IAAW8jB,cAErB,CACEnvD,GAAI,kBACJk5I,IAAK,GACL7pJ,MAAO,qBACPoiD,MAAO,CAAC,yBACR32B,KAAMgxC,IAAMhhD,aACZonC,UAAW,CACT,CACEh+B,MAAO,uDACP9b,IAAK,gFAEP,CACE8b,MAAO,kDACP9b,IAAK,gFAEP,CACE8b,MAAO,+DACP9b,IAAK,iFAGTqzI,OAAQpgG,IAAWgkB,kBAErB,CACErvD,GAAI,UACJk5I,IAAK,GACL7pJ,MAAO,UACPoiD,MAAO,GACP32B,KAAMgxC,IAAMa,QACZza,UAAW,CACT,CACEh+B,MAAO,gCACP9b,IAAK,gFAEP,CACE8b,MAAO,iDACP9b,IAAK,iFAGTqzI,OAAQpgG,IAAWojB,WAErB,CACEzuD,GAAI,aACJk5I,IAAK,EACL7pJ,MAAO,iBACPoiD,MAAO,CAAC,2BAA4B,4BACpC32B,KAAMgxC,IAAMrmC,UACZysB,UAAW,CACT,CACEh+B,MAAO,yDACP9b,IAAK,gFAEP,CACE8b,MAAO,2CACP9b,IAAK,gFAEP,CACE8b,MAAO,yCACP9b,IAAK,gFAEP,CACE8b,MAAO,uCACP9b,IAAK,gFAEP,CACE8b,MAAO,yEACP9b,IAAK,gFAEP,CACE8b,MAAO,8CACP9b,IAAK,iFAGTqzI,OAAQpgG,IAAWojB,WAErB,CACEzuD,GAAI,aACJk5I,IAAK,EACL7pJ,MAAO,4BACPoiD,MAAO,CAAC,4BACR32B,KAAMgxC,IAAMrmC,UACZysB,UAAW,CACT,CACEh+B,MAAO,6DACP9b,IAAK,gFAEP,CACE8b,MAAO,yDACP9b,IAAK,iFAGTqzI,OAAQpgG,IAAWojB,WAErB,CACEzuD,GAAI,YACJk5I,IAAK,EACL7pJ,MAAO,YACPoiD,MAAO,CAAC,iBACR32B,KAAMgxC,IAAMC,SACZ7Z,UAAW,CACT,CACEh+B,MAAO,sDACP9b,IAAK,gFAEP,CACE8b,MAAO,gCACP9b,IAAK,gFAEP,CACE8b,MAAO,+EACP9b,IAAK,iFAGTqzI,OAAQpgG,IAAWojB,WAErB,CACEzuD,GAAI,aACJk5I,IAAK,GACL7pJ,MAAO,aACPoiD,MAAO,CAAC,6BAA8B,wCACtC32B,KAAMgxC,IAAM3M,MACZjN,UAAW,CACT,CACEh+B,MAAO,4DACP9b,IAAK,gFAEP,CACE8b,MAAO,4DACP9b,IAAK,gFAEP,CACE8b,MAAO,wEACP9b,IAAK,iFAGTqzI,OAAQpgG,IAAWojB,WAErB,CACEzuD,GAAI,SACJk5I,IAAK,GACL7pJ,MAAO,aACPoiD,MAAO,CAAC,kBACR32B,KAAMgxC,IAAM3M,MACZjN,UAAW,CACT,CACEh+B,MAAO,iEACP9b,IAAK,gFAEP,CACE8b,MAAO,wDACP9b,IAAK,gFAEP,CACE8b,MAAO,4EACP9b,IAAK,iFAGTqzI,OAAQpgG,IAAWqkB,kBAErB,CACE1vD,GAAI,WACJk5I,IAAK,GACL7pJ,MAAO,aACPoiD,MAAO,CAAC,kBACR32B,KAAMgxC,IAAMvgD,KACZ2mC,UAAW,CACT,CACEh+B,MAAO,+CACP9b,IAAK,gFAEP,CACE8b,MAAO,sCACP9b,IAAK,iFAGTqzI,OAAQpgG,IAAWojB,WAErB,CACEzuD,GAAI,OACJk5I,IAAK,GACL7pJ,MAAO,4BACPoiD,MAAO,CAAC,6BACR32B,KAAMgxC,IAAMt/C,IACZ0lC,UAAW,CACT,CACEh+B,MAAO,0CACP9b,IAAK,iFAGTqzI,OAAQpgG,IAAW2kB,SAErB,CACEhwD,GAAI,MACJk5I,IAAK,GACL7pJ,MAAO,6BACPoiD,MAAO,CAAC,qBACR32B,KAAM,KACNo3B,UAAW,GACXu5F,OAAQpgG,IAAW2kB,SAErB,CACEhwD,GAAI,UACJk5I,IAAK,EACL7pJ,MAAO,YACPoiD,MAAO,GACP32B,KAAMgxC,IAAMe,QACZ3a,UAAW,CACT,CACEh+B,MAAO,kDACP9b,IAAK,gFAEP,CACE8b,MAAO,+DACP9b,IAAK,gFAEP,CACE8b,MAAO,8EACP9b,IAAK,iFAGTqzI,OAAQpgG,IAAWuiC,aAErB,CACE5tE,GAAI,SACJk5I,IAAK,EACL7pJ,MAAO,SACPoiD,MAAO,GACP32B,KAAMgxC,IAAMmB,OACZ/a,UAAW,CACT,CACEh+B,MAAO,uCACP9b,IAAK,gFAEP,CACE8b,MAAO,mDACP9b,IAAK,iFAGTqzI,OAAQpgG,IAAWojB,WAErB,CACEzuD,GAAI,gBACJk5I,IAAK,EACL7pJ,MAAO,oBACPoiD,MAAO,GACP32B,KAAMgxC,IAAMmB,OACZ/a,UAAW,CACT,CACEh+B,MAAO,wDACP9b,IAAK,iFAGTqzI,OAAQpgG,IAAWojB,WAErB,CACEzuD,GAAI,uBACJk5I,IAAK,EACL7pJ,MAAO,2BACPoiD,MAAO,CAAC,4BACR32B,KAAMgxC,IAAMC,SACZ7Z,UAAW,CACT,CACEh+B,MAAO,kFACP9b,IAAK,gFAEP,CACE8b,MAAO,iFACP9b,IAAK,gFAEP,CACE8b,MAAO,4DACP9b,IAAK,gFAEP,CACE8b,MAAO,iEACP9b,IAAK,gFAEP,CACE8b,MAAO,mEACP9b,IAAK,gFAEP,CACE8b,MAAO,uEACP9b,IAAK,gFAEP,CACE8b,MAAO,yDACP9b,IAAK,gFAEP,CACE8b,MAAO,2EACP9b,IAAK,gFAEP,CACE8b,MAAO,kEACP9b,IAAK,gFAEP,CACE8b,MAAO,yEACP9b,IAAK,gFAEP,CACE8b,MAAO,8CACP9b,IAAK,iFAGTqzI,OAAQpgG,IAAWojB,WAErB,CACEzuD,GAAI,gBACJk5I,IAAK,EACL7pJ,MAAO,kBACPoiD,MAAO,CAAC,oBACR32B,KAAMgxC,IAAMI,UACZha,UAAW,CACT,CACEh+B,MAAO,kCACP9b,IAAK,gFAEP,CACE8b,MAAO,gDACP9b,IAAK,iFAGTqzI,OAAQpgG,IAAWojB,WAErB,CACEzuD,GAAI,cACJk5I,IAAK,GACL7pJ,MAAO,sBACPoiD,MAAO,CAAC,oBACR32B,KAAMgxC,IAAM3M,MACZjN,UAAW,GACXu5F,OAAQpgG,IAAWojB,a,4JC/ZvBzhC,EAAA,kBAAAh8B,GAAA,IAAAi8B,EAAAj8B,EAAA,GAAA+G,EAAA4C,OAAAuyB,UAAA3U,EAAAxgB,EAAAo1B,eAAAC,EAAAzyB,OAAA0yB,gBAAA,SAAAJ,EAAAj8B,EAAA+G,GAAAk1B,EAAAj8B,GAAA+G,EAAAvL,OAAAmF,EAAA,mBAAA27B,cAAA,GAAApxB,EAAAvK,EAAA47B,UAAA,aAAA3lB,EAAAjW,EAAA67B,eAAA,kBAAAC,EAAA97B,EAAA+7B,aAAA,yBAAAC,EAAAV,EAAAj8B,EAAA+G,GAAA,OAAA4C,OAAA0yB,eAAAJ,EAAAj8B,EAAA,CAAAxE,MAAAuL,EAAA61B,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAb,EAAAj8B,GAAA,IAAA28B,EAAA,aAAAV,GAAAU,EAAA,SAAAV,EAAAj8B,EAAA+G,GAAA,OAAAk1B,EAAAj8B,GAAA+G,GAAA,SAAAg2B,EAAAd,EAAAj8B,EAAA+G,EAAAwgB,GAAA,IAAA5mB,EAAAX,KAAAk8B,qBAAAc,EAAAh9B,EAAAg9B,EAAA9xB,EAAAvB,OAAAszB,OAAAt8B,EAAAu7B,WAAAtlB,EAAA,IAAAsmB,EAAA3V,GAAA,WAAA6U,EAAAlxB,EAAA,WAAA1P,MAAA2hC,EAAAlB,EAAAl1B,EAAA6P,KAAA1L,EAAA,SAAAkyB,EAAAnB,EAAAj8B,EAAA+G,GAAA,WAAA1H,KAAA,SAAAg+B,IAAApB,EAAAqB,KAAAt9B,EAAA+G,IAAA,MAAAk1B,GAAA,OAAA58B,KAAA,QAAAg+B,IAAApB,IAAAj8B,EAAA+8B,OAAA,IAAAQ,EAAA,iBAAAjQ,EAAA,YAAA5N,EAAA,YAAA8d,EAAA,YAAAR,KAAA,SAAAS,KAAA,SAAAC,KAAA,IAAAnzB,EAAA,GAAAoyB,EAAApyB,EAAAW,GAAA,8BAAAyyB,EAAAh0B,OAAAi0B,eAAAC,EAAAF,OAAA/iC,EAAA,MAAAijC,OAAA92B,GAAAwgB,EAAA+V,KAAAO,EAAA3yB,KAAAX,EAAAszB,GAAA,IAAAC,EAAAJ,EAAAxB,UAAAc,EAAAd,UAAAvyB,OAAAszB,OAAA1yB,GAAA,SAAAwzB,EAAA9B,GAAA,0BAAA7c,SAAA,SAAApf,GAAA28B,EAAAV,EAAAj8B,GAAA,SAAAi8B,GAAA,YAAA+B,QAAAh+B,EAAAi8B,SAAA,SAAAgC,EAAAhC,EAAAj8B,GAAA,SAAAk+B,EAAAn3B,EAAAq1B,EAAAz7B,EAAAuK,GAAA,IAAA0L,EAAAwmB,EAAAnB,EAAAl1B,GAAAk1B,EAAAG,GAAA,aAAAxlB,EAAAvX,KAAA,KAAAo9B,EAAA7lB,EAAAymB,IAAAE,EAAAd,EAAAjhC,MAAA,OAAA+hC,GAAA,iBAAAA,GAAAhW,EAAA+V,KAAAC,EAAA,WAAAv9B,EAAAm+B,QAAAZ,EAAAa,SAAAC,MAAA,SAAApC,GAAAiC,EAAA,OAAAjC,EAAAt7B,EAAAuK,MAAA,SAAA+wB,GAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,MAAAlL,EAAAm+B,QAAAZ,GAAAc,MAAA,SAAApC,GAAAQ,EAAAjhC,MAAAygC,EAAAt7B,EAAA87B,MAAA,SAAAR,GAAA,OAAAiC,EAAA,QAAAjC,EAAAt7B,EAAAuK,QAAA0L,EAAAymB,KAAA,IAAAt2B,EAAAq1B,EAAA,gBAAA5gC,MAAA,SAAAygC,EAAA1U,GAAA,SAAA+W,IAAA,WAAAt+B,GAAA,SAAAA,EAAA+G,GAAAm3B,EAAAjC,EAAA1U,EAAAvnB,EAAA+G,MAAA,OAAAA,MAAAs3B,KAAAC,YAAA,SAAAnB,EAAAn9B,EAAA+G,EAAAwgB,GAAA,IAAA6U,EAAAmB,EAAA,gBAAA58B,EAAAuK,GAAA,GAAAkxB,IAAA9O,EAAA,UAAAiR,MAAA,mCAAAnC,IAAA1c,EAAA,cAAA/e,EAAA,MAAAuK,EAAA,OAAA1P,MAAAygC,EAAAuC,MAAA,OAAAjX,EAAAkX,OAAA99B,EAAA4mB,EAAA8V,IAAAnyB,IAAA,KAAA0L,EAAA2Q,EAAAmX,SAAA,GAAA9nB,EAAA,KAAA6lB,EAAAkC,EAAA/nB,EAAA2Q,GAAA,GAAAkV,EAAA,IAAAA,IAAAe,EAAA,gBAAAf,GAAA,YAAAlV,EAAAkX,OAAAlX,EAAAqX,KAAArX,EAAAsX,MAAAtX,EAAA8V,SAAA,aAAA9V,EAAAkX,OAAA,IAAArC,IAAAmB,EAAA,MAAAnB,EAAA1c,EAAA6H,EAAA8V,IAAA9V,EAAAuX,kBAAAvX,EAAA8V,SAAA,WAAA9V,EAAAkX,QAAAlX,EAAAwX,OAAA,SAAAxX,EAAA8V,KAAAjB,EAAA9O,EAAA,IAAA/iB,EAAA6yB,EAAAp9B,EAAA+G,EAAAwgB,GAAA,cAAAhd,EAAAlL,KAAA,IAAA+8B,EAAA7U,EAAAiX,KAAA9e,EAAA,iBAAAnV,EAAA8yB,MAAAG,EAAA,gBAAAhiC,MAAA+O,EAAA8yB,IAAAmB,KAAAjX,EAAAiX,MAAA,UAAAj0B,EAAAlL,OAAA+8B,EAAA1c,EAAA6H,EAAAkX,OAAA,QAAAlX,EAAA8V,IAAA9yB,EAAA8yB,OAAA,SAAAsB,EAAA3+B,EAAA+G,GAAA,IAAAwgB,EAAAxgB,EAAA03B,OAAArC,EAAAp8B,EAAAu8B,SAAAhV,GAAA,GAAA6U,IAAAH,EAAA,OAAAl1B,EAAA23B,SAAA,eAAAnX,GAAAvnB,EAAAu8B,SAAAyC,SAAAj4B,EAAA03B,OAAA,SAAA13B,EAAAs2B,IAAApB,EAAA0C,EAAA3+B,EAAA+G,GAAA,UAAAA,EAAA03B,SAAA,WAAAlX,IAAAxgB,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAA1X,EAAA,aAAAiW,EAAA,IAAA78B,EAAAy8B,EAAAhB,EAAAp8B,EAAAu8B,SAAAx1B,EAAAs2B,KAAA,aAAA18B,EAAAtB,KAAA,OAAA0H,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA18B,EAAA08B,IAAAt2B,EAAA23B,SAAA,KAAAlB,EAAA,IAAAtyB,EAAAvK,EAAA08B,IAAA,OAAAnyB,IAAAszB,MAAAz3B,EAAA/G,EAAAk/B,YAAAh0B,EAAA1P,MAAAuL,EAAA2xB,KAAA14B,EAAAm/B,QAAA,WAAAp4B,EAAA03B,SAAA13B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,GAAAl1B,EAAA23B,SAAA,KAAAlB,GAAAtyB,GAAAnE,EAAA03B,OAAA,QAAA13B,EAAAs2B,IAAA,IAAA4B,UAAA,oCAAAl4B,EAAA23B,SAAA,KAAAlB,GAAA,SAAA4B,EAAAnD,GAAA,IAAAj8B,EAAA,CAAAq/B,OAAApD,EAAA,SAAAA,IAAAj8B,EAAAs/B,SAAArD,EAAA,SAAAA,IAAAj8B,EAAAu/B,WAAAtD,EAAA,GAAAj8B,EAAAw/B,SAAAvD,EAAA,SAAAwD,WAAA7+B,KAAAZ,GAAA,SAAA0/B,EAAAzD,GAAA,IAAAj8B,EAAAi8B,EAAA0D,YAAA,GAAA3/B,EAAAX,KAAA,gBAAAW,EAAAq9B,IAAApB,EAAA0D,WAAA3/B,EAAA,SAAAk9B,EAAAjB,GAAA,KAAAwD,WAAA,EAAAJ,OAAA,SAAApD,EAAA7c,QAAAggB,EAAA,WAAAQ,OAAA,YAAAhlC,EAAAoF,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAA+G,EAAA/G,EAAAkL,GAAA,GAAAnE,EAAA,OAAAA,EAAAu2B,KAAAt9B,GAAA,sBAAAA,EAAA04B,KAAA,OAAA14B,EAAA,IAAA6/B,MAAA7/B,EAAAoB,QAAA,KAAAg7B,GAAA,EAAAz7B,EAAA,SAAA+3B,IAAA,OAAA0D,EAAAp8B,EAAAoB,QAAA,GAAAmmB,EAAA+V,KAAAt9B,EAAAo8B,GAAA,OAAA1D,EAAAl9B,MAAAwE,EAAAo8B,GAAA1D,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,GAAA,OAAA/3B,EAAA+3B,KAAA/3B,GAAA,UAAAs+B,iBAAAj/B,EAAA,2BAAAy9B,EAAAvB,UAAAwB,EAAAtB,EAAA0B,EAAA,eAAAtiC,MAAAkiC,EAAAb,cAAA,IAAAT,EAAAsB,EAAA,eAAAliC,MAAAiiC,EAAAZ,cAAA,IAAAY,EAAAqC,YAAAnD,EAAAe,EAAAjB,EAAA,qBAAAz8B,EAAA+/B,oBAAA,SAAA9D,GAAA,IAAAj8B,EAAA,mBAAAi8B,KAAA+D,YAAA,QAAAhgC,QAAAy9B,GAAA,uBAAAz9B,EAAA8/B,aAAA9/B,EAAAzE,QAAAyE,EAAAigC,KAAA,SAAAhE,GAAA,OAAAtyB,OAAAu2B,eAAAv2B,OAAAu2B,eAAAjE,EAAAyB,IAAAzB,EAAAkE,UAAAzC,EAAAf,EAAAV,EAAAQ,EAAA,sBAAAR,EAAAC,UAAAvyB,OAAAszB,OAAAa,GAAA7B,GAAAj8B,EAAAogC,MAAA,SAAAnE,GAAA,OAAAmC,QAAAnC,IAAA8B,EAAAE,EAAA/B,WAAAS,EAAAsB,EAAA/B,UAAAtlB,GAAA,0BAAA5W,EAAAi+B,gBAAAj+B,EAAAqgC,MAAA,SAAApE,EAAAl1B,EAAAwgB,EAAA6U,EAAAz7B,QAAA,IAAAA,MAAA2/B,SAAA,IAAAp1B,EAAA,IAAA+yB,EAAAlB,EAAAd,EAAAl1B,EAAAwgB,EAAA6U,GAAAz7B,GAAA,OAAAX,EAAA+/B,oBAAAh5B,GAAAmE,IAAAwtB,OAAA2F,MAAA,SAAApC,GAAA,OAAAA,EAAAuC,KAAAvC,EAAAzgC,MAAA0P,EAAAwtB,WAAAqF,EAAAD,GAAAnB,EAAAmB,EAAArB,EAAA,aAAAE,EAAAmB,EAAA5yB,GAAA,0BAAAyxB,EAAAmB,EAAA,qDAAA99B,EAAA4O,KAAA,SAAAqtB,GAAA,IAAAj8B,EAAA2J,OAAAsyB,GAAAl1B,EAAA,WAAAwgB,KAAAvnB,EAAA+G,EAAAnG,KAAA2mB,GAAA,OAAAxgB,EAAAw5B,UAAA,SAAA7H,IAAA,KAAA3xB,EAAA3F,QAAA,KAAA66B,EAAAl1B,EAAAy5B,MAAA,GAAAvE,KAAAj8B,EAAA,OAAA04B,EAAAl9B,MAAAygC,EAAAvD,EAAA8F,MAAA,EAAA9F,EAAA,OAAAA,EAAA8F,MAAA,EAAA9F,IAAA14B,EAAApF,SAAAsiC,EAAAhB,UAAA,CAAA8D,YAAA9C,EAAA0C,MAAA,SAAA5/B,GAAA,QAAAygC,KAAA,OAAA/H,KAAA,OAAAkG,KAAA,KAAAC,MAAA5C,EAAA,KAAAuC,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAApB,IAAApB,EAAA,KAAAwD,WAAArgB,QAAAsgB,IAAA1/B,EAAA,QAAA+G,KAAA,WAAAA,EAAA25B,OAAA,IAAAnZ,EAAA+V,KAAA,KAAAv2B,KAAA84B,OAAA94B,EAAA2G,MAAA,WAAA3G,GAAAk1B,IAAA0E,KAAA,gBAAAnC,MAAA,MAAAvC,EAAA,KAAAwD,WAAA,GAAAE,WAAA,aAAA1D,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,YAAAuD,MAAA9B,kBAAA,SAAA9+B,GAAA,QAAAw+B,KAAA,MAAAx+B,EAAA,IAAA+G,EAAA,cAAA85B,EAAAtZ,EAAA6U,GAAA,OAAAlxB,EAAA7L,KAAA,QAAA6L,EAAAmyB,IAAAr9B,EAAA+G,EAAA2xB,KAAAnR,EAAA6U,IAAAr1B,EAAA03B,OAAA,OAAA13B,EAAAs2B,IAAApB,KAAAG,EAAA,QAAAA,EAAA,KAAAqD,WAAAr+B,OAAA,EAAAg7B,GAAA,IAAAA,EAAA,KAAAz7B,EAAA,KAAA8+B,WAAArD,GAAAlxB,EAAAvK,EAAAg/B,WAAA,YAAAh/B,EAAA0+B,OAAA,OAAAwB,EAAA,UAAAlgC,EAAA0+B,QAAA,KAAAoB,KAAA,KAAA7pB,EAAA2Q,EAAA+V,KAAA38B,EAAA,YAAA87B,EAAAlV,EAAA+V,KAAA38B,EAAA,iBAAAiW,GAAA6lB,EAAA,SAAAgE,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,WAAAmB,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,iBAAA,GAAA3oB,GAAA,QAAA6pB,KAAA9/B,EAAA2+B,SAAA,OAAAuB,EAAAlgC,EAAA2+B,UAAA,YAAA7C,EAAA,UAAA8B,MAAA,kDAAAkC,KAAA9/B,EAAA4+B,WAAA,OAAAsB,EAAAlgC,EAAA4+B,gBAAAR,OAAA,SAAA9C,EAAAj8B,GAAA,QAAA+G,EAAA,KAAA04B,WAAAr+B,OAAA,EAAA2F,GAAA,IAAAA,EAAA,KAAAq1B,EAAA,KAAAqD,WAAA14B,GAAA,GAAAq1B,EAAAiD,QAAA,KAAAoB,MAAAlZ,EAAA+V,KAAAlB,EAAA,oBAAAqE,KAAArE,EAAAmD,WAAA,KAAA5+B,EAAAy7B,EAAA,OAAAz7B,IAAA,UAAAs7B,GAAA,aAAAA,IAAAt7B,EAAA0+B,QAAAr/B,MAAAW,EAAA4+B,aAAA5+B,EAAA,UAAAuK,EAAAvK,IAAAg/B,WAAA,UAAAz0B,EAAA7L,KAAA48B,EAAA/wB,EAAAmyB,IAAAr9B,EAAAW,GAAA,KAAA89B,OAAA,YAAA/F,KAAA/3B,EAAA4+B,WAAA/B,GAAA,KAAAsD,SAAA51B,IAAA41B,SAAA,SAAA7E,EAAAj8B,GAAA,aAAAi8B,EAAA58B,KAAA,MAAA48B,EAAAoB,IAAA,gBAAApB,EAAA58B,MAAA,aAAA48B,EAAA58B,KAAA,KAAAq5B,KAAAuD,EAAAoB,IAAA,WAAApB,EAAA58B,MAAA,KAAAuhC,KAAA,KAAAvD,IAAApB,EAAAoB,IAAA,KAAAoB,OAAA,cAAA/F,KAAA,kBAAAuD,EAAA58B,MAAAW,IAAA,KAAA04B,KAAA14B,GAAAw9B,GAAAuD,OAAA,SAAA9E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAw4B,aAAAtD,EAAA,YAAA6E,SAAA/5B,EAAA44B,WAAA54B,EAAAy4B,UAAAE,EAAA34B,GAAAy2B,IAAAwD,MAAA,SAAA/E,GAAA,QAAAj8B,EAAA,KAAAy/B,WAAAr+B,OAAA,EAAApB,GAAA,IAAAA,EAAA,KAAA+G,EAAA,KAAA04B,WAAAz/B,GAAA,GAAA+G,EAAAs4B,SAAApD,EAAA,KAAA1U,EAAAxgB,EAAA44B,WAAA,aAAApY,EAAAloB,KAAA,KAAA+8B,EAAA7U,EAAA8V,IAAAqC,EAAA34B,GAAA,OAAAq1B,GAAA,UAAAmC,MAAA,0BAAA0C,cAAA,SAAAjhC,EAAA+G,EAAAwgB,GAAA,YAAAmX,SAAA,CAAAnC,SAAA3hC,EAAAoF,GAAAk/B,WAAAn4B,EAAAo4B,QAAA5X,GAAA,cAAAkX,SAAA,KAAApB,IAAApB,GAAAuB,IAAAx9B,EAIO,IAAKw2F,EAAO,SAAPA,GAAO,OAAPA,IAAO,eAAPA,IAAO,yBAAPA,IAAO,+BAAPA,IAAO,qBAAPA,IAAO,uDAAPA,IAAO,6DAAPA,IAAO,iBAAPA,EAAO,KAUJ,SAASzwD,IAAoB,IAAD7oC,EAAA2B,EAAAC,EAAAqpJ,EACnCC,EAAQ1zF,qBAAW+2E,KAgCzB,SAMe4c,EAAWn6B,EAAAC,EAAAC,EAAAC,GAAA,OAAA85B,KAAAllH,YAAAjH,IAAAiE,MAA1B,SAAA8Q,EACE1xC,EACAiQ,EACAiW,EACAkvD,GAAoB,OAAAz4C,IAAAe,MAAA,SAAAiU,GAAA,cAAAA,EAAAvQ,KAAAuQ,EAAAtY,MAAA,cAAAsY,EAAAvQ,KAAA,EAAAuQ,EAAAtY,KAAA,EAGZ4N,IAAcl2B,KAAK,uBAADzS,OACC0B,GACvB,CACEiQ,QAASA,EACTiW,YAAaA,EACbkvD,aAAcA,EACd6zE,WAAW,IAAItpJ,MAAO+uE,WAExB,CACEvnC,QAAS,CAAEC,WAAW,EAAMk9E,SAAS,KAEvC,KAAD,EAAA3yE,EAAAtY,KAAA,eAAAsY,EAAAvQ,KAAA,EAAAuQ,EAAA/J,GAAA+J,EAAA,SAEDhb,QAAQC,IAAG+a,EAAA/J,IAAK,wBAAA+J,EAAArQ,UAAAoQ,EAAA,mBAEnBvN,MAAA,KAAAriC,WAED,OAAA1F,wBAAA,GACK2sJ,GAAK,IACRpiH,QA9DW,SAAAmB,EAAAC,GAAA,OAAAlqC,KAAA+lC,YAAAjH,IAAAiE,MAAG,SAAAiD,EAAO5zB,EAAiBiW,GAAmB,OAAAyW,IAAAe,MAAA,SAAAqG,GAAA,cAAAA,EAAA3C,KAAA2C,EAAA1K,MAAA,OACR,MAAjC8gC,eAAiCp2B,EAAA1K,KAAA,EAC3C2vH,EAAY7xD,EAAQj4D,MAAOjvB,EAAQ,IAAD3R,OADxB67D,eACqC,MAAA77D,OAAK4nB,GAAe,GAAG,KAAD,mBAAA6d,EAAAzC,UAAAuC,QAE5EM,MAAA,KAAAriC,YA2DConJ,cAlDiB,SAAAlhH,EAAAlB,GAAA,OAAAtnC,KAAAokC,YAAAjH,IAAAiE,MAAG,SAAAwD,EAAOgkE,EAAchzB,GAAoB,OAAAz4C,IAAAe,MAAA,SAAA2G,GAAA,cAAAA,EAAAjD,KAAAiD,EAAAhL,MAAA,cAAAgL,EAAAhL,KAAA,EACvD2vH,EAAY7xD,EAAQgyD,QAAS/gD,EAAM,GAAIhzB,GAAc,KAAD,mBAAA/wC,EAAA/C,UAAA8C,QAE3DD,MAAA,KAAAriC,YAgDC40F,qBAvCwB,SAAA3vD,EAAAO,EAAAC,GAAA,OAAA9nC,KAAAmkC,YAAAjH,IAAAiE,MAAG,SAAA4G,EAAOxnC,EAAehB,EAAeo2E,GAAoB,OAAAz4C,IAAAe,MAAA,SAAA+J,GAAA,cAAAA,EAAArG,KAAAqG,EAAApO,MAAA,cAAAoO,EAAApO,KAAA,EAC9E2vH,EAAYhpJ,EAAMhB,EAAO,GAAIo2E,GAAc,KAAD,mBAAA3tC,EAAAnG,UAAAkG,QAEjDrD,MAAA,KAAAriC,gB,iCC9CH,sJAgCe,SAAS2hF,EAAgB5lF,GAA2D,IAAxDoc,EAAQpc,EAARoc,SAAU+G,EAAQnjB,EAARmjB,SAAU8qB,EAAQjuC,EAARiuC,SAC7D,OACE/tC,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACy5B,IAAQ,CACPsyH,gBACE/rJ,cAAC8zB,IAAU,CAACnP,QAAS,kBAAM8pB,EAAS7xB,EAAStK,KAAIpS,SAC/CF,cAACo7B,IAAK,MAGV4pD,gBAAc,EAAA9kF,SAEdF,cAAC8gD,IAAc,CACbn8B,QAAS,kBAAMhB,EAAS/G,EAAS/L,IAAK+L,EAASja,OAC/C/B,GAAI,CACF0xB,GAAI,IACJC,GAAI,IACJ1xB,GAAI,OACJX,SAEFF,cAAC05B,IAAY,CACXxM,QAASltB,cAACc,IAAU,CAACC,QAAQ,QAAOb,SAAE0c,EAASjb,QAC/CuK,UACExL,eAACI,IAAU,CACTC,QAAQ,UACRH,GAAI,CACFC,GAAI,GACJ2L,QAAS,OACTjL,WAAY,SACZ0K,MAAO,iBACP/L,SAAA,CAEFF,cAACgjF,IAAU,CAACpiF,GAAI,CAAE4vB,GAAI,GAAK7sB,MAAO,GAAIiF,OAAQ,MAAQ,gBAC3C6nB,YAAM7T,EAASgoG,aAC1B5kH,cAACW,IAAG,CAAC2jB,SAAU,IACftkB,cAACW,IAAG,CAACC,GAAI,CAAE4vB,GAAI,GAAItwB,SACjBF,cAACihJ,IAAO,CAACt+I,KAAMohF,IAAannE,EAASja,MAAMo2B,wBAOvD/4B,cAACkO,IAAO,S,qHC3DC,SAASgiF,EAAI1vF,GAAsC,IAAnCI,EAAEJ,EAAFI,GAAE2+E,EAAA/+E,EAAEg/E,eAAO,IAAAD,GAAQA,EACxCn2D,EAAuBC,cAAvBD,mBAEF1e,EAAM80E,EAAO,WAEnB,OACEx/E,cAAC2O,IAAI,CAACkhD,GAAI9xB,IAAeknB,QAAQ0X,IAAIz8D,SACnCF,cAACW,IAAG,CACFC,GAAE7B,YAAA,GAAO6B,GACTmN,UAAU,MACVygB,IAAG,iBAAAvtB,OAAmByJ,GAAGzJ,OAAGmoB,IAAqByvB,MAAMvmC,GAAE,c,8GCnBlD,SAAS+6H,IACtB,IAAA/uI,EAAgDC,mBAAyB,IAAGC,EAAAC,YAAAH,EAAA,GAArE8uI,EAAgB5uI,EAAA,GAAEwtJ,EAAmBxtJ,EAAA,GACpC6/B,EAAa3d,aAAY,SAAC7O,GAAgB,OAAKA,EAAMe,WAArDyrB,SACAjV,EAAuBC,cAAvBD,mBACUwmC,cAAV/W,MAER55C,qBAAU,WACR+sJ,EAAoBC,KAAyB,MAC5C,CAAC5tH,IAEJ,IAAM4tH,EAAsB,WAC1B,IAAMhjG,EAAU7/B,IAAqByvC,WAErC,OAAe,OAARx6B,QAAQ,IAARA,OAAQ,EAARA,EACHrtB,QACD7R,QAAO,SAAC6jB,GAAC,OAAMA,EAAEimC,SAAWjmC,EAAEimC,QAAQnT,MAAK,SAACgjB,GAAE,OAAK7P,EAAQ1pD,SAASu5D,SACpEzsC,MAAK,SAAC7d,EAAG8d,GAAC,OAAMA,EAAE3qB,MAAQ6M,EAAE7M,OAAS,EAAI,MAG9C,MAAO,CACLyrI,sB,0LCGEv5G,EAAYhpB,YAAO,MAAPA,EAAc,SAAArK,GAAQ,MAAQ,CAC9CgM,QAAS,OACTH,aAFsC7L,EAALuK,MAEbO,QAAQ,OAGxB0jB,EAAenkB,YAAO,MAAPA,EAAc,SAAA1I,GAAA,IAAG4I,EAAK5I,EAAL4I,MAAK,MAAQ,CACjDmjB,SAAU,IACVxiB,QAASX,EAAMO,QAAQ,KACvB5H,UAAWqH,EAAMO,QAAQ,IACzBK,aAAcZ,EAAMa,MAAMD,aAC1BG,gBAAiBf,EAAME,QAAQc,WAAWC,YAGtCkgJ,EAAYrhJ,YAAO/J,IAAP+J,EAAmB,SAAAzI,GAAA,IAAG2I,EAAK3I,EAAL2I,MAAK,MAAQ,CACnDyB,QAAS,OACTH,aAActB,EAAMO,QAAQ,KAC5BW,MAAOlB,EAAME,QAAQb,KAAK8B,cAGtBigJ,EAAkBthJ,YAAO8jB,IAAP9jB,EAAa,SAAAyC,GAAQ,MAAQ,CACnDiD,UAD2CjD,EAALvC,MACrByF,cAAcm0C,IAC/Bz2B,SAAU,YAKNk+H,EACJ1rJ,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACq3E,IAAQ,CAAC1zE,MAAM,MAAM5C,QAAQ,cAAcH,GAAI,CAAE+K,aAAc,KAChEjL,eAACC,IAAG,CAACC,GAAI,CAAEC,GAAI,EAAG2L,QAAS,OAAQjL,WAAY,UAAWrB,SAAA,CACxDF,cAACq3E,IAAQ,CAACt2E,QAAQ,WAAW4C,MAAO,GAAIiF,OAAQ,KAChDlI,eAACC,IAAG,CAACC,GAAI,CAAE0jB,SAAU,EAAGjU,GAAI,GAAInQ,SAAA,CAC9BF,cAACq3E,IAAQ,CAACt2E,QAAQ,OAAO6H,OAAQ,KACjC5I,cAACq3E,IAAQ,CAACt2E,QAAQ,OAAO6H,OAAQ,KACjC5I,cAACq3E,IAAQ,CAACt2E,QAAQ,OAAO6H,OAAQ,cAU1B,SAAS+xB,EAAyBntB,GAEb,IAAD6+I,EAAA7+I,EADjCotB,sBAAc,IAAAyxH,EAAG,GAAEA,EAEbhxH,EAAWT,EAAe,GAC1B0xH,EAAS1xH,EAAel2B,OAAS,EAAIk2B,EAAe,GAAK,KAE/D,OACE56B,cAAC6mB,IAAS,CAACjmB,GAAI,CAAEiN,EAAG,EAAGjF,OAAQ,GAAI1I,SACpB,MAAZm7B,EACC+wH,EAEA1rJ,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACusJ,EAAkB,CAAC35I,QAASyoB,EAAU14B,KAAM43B,IAAYC,WACxD8xH,EACCtsJ,cAACusJ,EAAkB,CAAC35I,QAAS05I,EAAQ3pJ,KAAM43B,IAAYG,SAEvD16B,cAACmsJ,EAAe,CAAAjsJ,SACdF,cAAC8+I,IAAiB,CAChBt4H,MAAM,gDACNqC,YAAY,gKACZlgB,IAAI,gEAeb,SAAS4jJ,EAAkB7+I,GAA8C,IAAD8+I,EAAAC,EAA1C75I,EAAOlF,EAAPkF,QAASjQ,EAAI+K,EAAJ/K,KACxC+pJ,EAAoB,MASxB,MANgC,KAA5B95I,EAAQ+5I,YAAYjxH,MAAsB,OAAP9oB,QAAO,IAAPA,GAAoB,QAAb45I,EAAP55I,EAAS+5I,mBAAW,IAAAH,OAAb,EAAPA,EAAsBtxB,SAC3DwxB,GAAmB,OAAP95I,QAAO,IAAPA,OAAO,EAAPA,EAAS23G,KAAKhrH,SAAS,OAAQ,aAAe,eAG5B,KAA5BqT,EAAQ+5I,YAAYjxH,MAAYgxH,EAAY95I,EAAQ+5I,YAAYC,KAGlE5sJ,cAAC6zB,EAAS,CAAA3zB,SACRQ,eAACC,IAAG,CACFC,GAAE7B,YAAA,CACAyN,QAAS,QACL7J,IAAS43B,IAAYC,UAAY,CACnCnqB,GAAI,SAENnQ,SAAA,CAEDyC,IAAS43B,IAAYG,QACpB16B,cAAAC,WAAA,CAAAC,SACEF,cAACuwB,IAAM,CACL/B,IAAG,2BAAAvtB,OAA6ByrJ,EAAS,QACzC9rJ,GAAI,CAAE+C,MAAO,GAAIiF,OAAQ,GAAI4nB,GAAI,OAKvC9vB,eAAA,OAAAR,SAAA,CACEQ,eAACwrJ,EAAS,CACRnrJ,QAAQ,UACRH,GAAE7B,YAAA,GAAQ4D,IAAS43B,IAAYC,UAAY,CAAE1L,eAAgB,aAAgB5uB,SAAA,CAE9C,MAAvB,OAAP0S,QAAO,IAAPA,GAAoB,QAAb65I,EAAP75I,EAAS+5I,mBAAW,IAAAF,OAAb,EAAPA,EAAsB/wH,MACrB17B,cAACc,IAAU,CAACiN,UAAU,OAAOhN,QAAQ,UAASb,SACpC,OAAP0S,QAAO,IAAPA,OAAO,EAAPA,EAAS23G,OAGdvqH,cAACc,IAAU,CAACiN,UAAU,OAAOhN,QAAQ,UAAUH,GAAI,CAAEyP,GAAI,GAAInQ,SAC1DuwB,YAAa,OAAP7d,QAAO,IAAPA,OAAO,EAAPA,EAASynB,gBAAiB,mCAIrCr6B,cAACgvB,EAAY,CACXpuB,GAAE7B,YAAA,GACI4D,IAAS43B,IAAYG,QAAU,CAAEzuB,MAAO,WAAYghB,QAAS,oBACjE/sB,SAEFF,cAACc,IAAU,CAACC,QAAQ,QAAQgN,UAAW,MAAM7N,SAC3CF,cAAC6O,IAAQ,CAAC3O,UAAiB,OAAP0S,QAAO,IAAPA,OAAO,EAAPA,EAASiW,cAAe,SAGhD7oB,cAAC0wB,IAAsB,CAACC,MAAO/d,EAAQ+d,kB,iRCjIlC,SAASiO,EAA4Bp+B,GAEb,IADrCq+B,EAAar+B,EAAbq+B,cAEQvV,EAAW5I,aAAY,SAAC7O,GAAgB,OAAKA,EAAMiL,UAAnDwM,OACFujI,EAAczC,YAAgBvrH,GAIpC,OACE7+B,cAAC8sJ,EAAyB,CACxBjuH,cAAa9/B,wBAAA,GACR8/B,GAAa,IAChBkuH,SAAUzjI,EAAOnqB,QACf,SAACogC,GAAC,OACAA,EAAE1T,YAAcC,IAAgB43D,MAChCnkD,EAAEvT,UAAU7D,WAAa0kI,EAAY1kI,UACrCoX,EAAEvT,UAAUmnB,aAAe05G,EAAYv6I,IACvCitB,EAAEvT,UAAUw+C,UAAYqiF,EAAYriF,WACtC,OAeH,SAASsiF,EAAyB3qJ,GAAqD,IAAlD08B,EAAa18B,EAAb08B,cAC1CvgC,EAAwBC,oBAAS,GAAMC,EAAAC,YAAAH,EAAA,GAAhC0oB,EAAIxoB,EAAA,GAAE2zB,EAAO3zB,EAAA,GAQd63B,EAAc,WAClBlE,GAAQ,IAGJ06H,EAAczC,YAAgBvrH,GAE9BmuH,EAAenuH,EAAckuH,SAC/BluH,EAAckuH,SAAS/gI,UACtB,CACC1Z,GAAI,EACJ8Z,QAASygI,EAAYzgI,QACrBjE,SAAU0kI,EAAY1kI,SACtBgrB,WAAY05G,EAAYv6I,GACxBk4D,QAASqiF,EAAYriF,QACrBiQ,UAAU,GAADx5E,OAAKiyE,YAAU,IAAI5wE,MAAO,aACnC0tE,QAAQ,GAAD/uE,OAAKiyE,YAAU,IAAI5wE,MAAO,aACjCk+C,UAAU,EACV7+C,MAAOk9B,EAAcl9B,MACrB2Z,OAAQkgE,IAAWyxE,MAGzB,OACEvsJ,eAAAT,WAAA,CAAAC,SAAA,CACEF,cAACymB,IAAO,CAACD,MAAM,iBAAgBtmB,SAC7BF,cAAC0mB,IAAW,CAAC/B,QA9BA,SAACb,GAClBA,EAAMkhG,kBACNlhG,EAAMmhG,iBACN9yF,GAAQ,IA2B6BjyB,SAC/BF,cAACg7B,IAAK,CAACC,aAAc4D,EAAckuH,SAAW,EAAI,EAAG9gJ,MAAM,QAAO/L,SAChEF,cAACu+D,IAAgB,UAKvB79D,eAACqmB,IAAM,CACLC,KAAMA,EACNC,QAASoP,EACT8E,OAAO,QACP/qB,WAAY,CAAExP,GAAI,CAAE+C,MAAO,CAAE0qB,GAAI,EAAGC,GAAI,OAAUpuB,SAAA,CAElDQ,eAACU,IAAK,CAACyM,EAAG,IAAKpL,UAAU,MAAMlB,WAAW,SAAQrB,SAAA,CAChDF,cAACymB,IAAO,CAACD,MAAM,SAAQtmB,SACrBF,cAAC8zB,IAAU,CAACnP,QAAS0R,EAAaz1B,GAAI,CAAE4vB,GAAI,GAAItwB,SAC9CF,cAACo7B,IAAK,QAGVp7B,cAACc,IAAU,CAACC,QAAQ,KAAKH,GAAI,CAAEyP,GAAI,KAAMnQ,SAAC,gCAI5CF,cAACkO,IAAO,IAERlO,cAACmkF,IAAgB,CAACjnE,KAAM8vI,EAAc/lI,QAASoP,EAAa87G,gBAAgB,Y,iCC3HpF,qEAcO,SAASxzG,EAA2Bn+B,GAA8C,IAA3CyX,EAAIzX,EAAJyX,KACtCkR,EACJlR,EAAKtV,OAAS2lB,IAAkB4K,SAAYjb,EAA+BkR,aAAe,KAEtF+jI,EAAU,CACd5kI,IAAkBkJ,IAClBlJ,IAAkB0K,KAClB1K,IAAkBC,MAClBD,IAAkBkL,IAClBlL,IAAkBE,OAClBjpB,SAAS0Y,EAAKtV,MAEhB,OACE3C,cAAC8jF,IAAoB,CACnBnhF,KACEsV,EAAKtV,OAAS2lB,IAAkB4K,SAAW6wD,IAAaG,WAAaH,IAAaqhC,QAEpFphC,OAAQ,CACN1xE,GAAI,EACJ6V,SAAUlQ,EAAK3F,IAAM,GACrB6gC,WAAYl7B,EAAKtV,OAAS2lB,IAAkB4K,SAAuB,OAAZ/J,QAAY,IAAZA,OAAY,EAAZA,EAAc7W,GAAM,EAC3Ek4D,QAAS0iF,EAAe,OAAJj1I,QAAI,IAAJA,OAAI,EAAJA,EAA6Bgb,MAAM3gB,GAAK,GAE9DkU,MAAOvO,EAAKtW,MACZojH,eAAe,M,gCC9BrB,0KAAO,IAAKuB,EAAiB,SAAjBA,GAAiB,OAAjBA,IAAiB,qBAAjBA,IAAiB,uBAAjBA,EAAiB,KAmGjBP,EAAiB,SAAjBA,GAAiB,OAAjBA,IAAiB,uBAAjBA,IAAiB,qBAAjBA,EAAiB,KAKjBxrF,EAAW,SAAXA,GAAW,OAAXA,IAAW,aAAXA,IAAW,eAAXA,IAAW,uBAAXA,IAAW,mBAAXA,IAAW,qBAAXA,IAAW,iBAAXA,IAAW,+BAAXA,EAAW,KAUXurF,EAAiB,SAAjBA,GAAiB,OAAjBA,IAAiB,uBAAjBA,IAAiB,qBAAjBA,EAAiB,KAqBjBK,EAAgB,SAAhBA,GAAgB,OAAhBA,IAAgB,uBAAhBA,IAAgB,qBAAhBA,IAAgB,yCAAhBA,IAAgB,qCAAhBA,IAAgB,qCAAhBA,IAAgB,iDAAhBA,IAAgB,iBAAhBA,EAAgB,O","file":"static/js/main.260f2a0a.chunk.js","sourcesContent":["import {\r\n  Card,\r\n  CardHeader,\r\n  InputAdornment,\r\n  MenuItem,\r\n  Stack,\r\n  TextField,\r\n  Typography\r\n} from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport Selector from 'components/Selector';\r\nimport { useEffect, useState } from 'react';\r\nimport { Epreuve, StatutEpreuve } from '../../../@types/examen';\r\n\r\n/**\r\n * Gestion de l'epreuve.\r\n * La gestion se fait dans le composant et on changement on remonte dans le form général\r\n * @param props :\r\n * @returns\r\n */\r\nexport const ExamenFormEpreuveItem = (props: any) => {\r\n  const { epreuve, statutsEpreuve, onChange, values, isResultat = false, error } = props;\r\n  const [current, setCurrent] = useState<Epreuve>(epreuve);\r\n  //const [error, setError] = useState(false);\r\n\r\n  const handleChange = (name: string, value: string) => {\r\n    if ((name === 'note' && +value > 20) || (name === 'note' && +value < 0)) value = '0';\r\n\r\n    setCurrent({ ...current, [name]: value });\r\n  };\r\n\r\n  useEffect(() => {\r\n    onChange({\r\n      ...current,\r\n      typeFichier: statutsEpreuve.filter(\r\n        (statut: StatutEpreuve) => statut.code === current.statut\r\n      )[0].typeFichier\r\n    });\r\n  }, [current]);\r\n\r\n  // Filtre suivant la catégorie (examen,concours,..) et la forme de passage\r\n  const statutsCurrent = statutsEpreuve.filter(\r\n    (statut: StatutEpreuve) =>\r\n      statut.listeCategoryObjectif.includes(values.categorie) &&\r\n      statut.listeProgression.includes(values.formePassage)\r\n  );\r\n\r\n  const isWriteNote = statutsEpreuve.filter((epr: StatutEpreuve) => epr.code === current.statut)[0]\r\n    ?.saisiNote;\r\n  const isViewNote = statutsEpreuve.filter((epr: StatutEpreuve) => epr.code === current.statut)[0]\r\n    ?.affichageNote;\r\n\r\n  return (\r\n    <>\r\n      {isResultat ? (\r\n        <ViewResultat\r\n          epreuve={current}\r\n          isViewNote={isViewNote}\r\n          isWriteNote={isWriteNote}\r\n          onChange={handleChange}\r\n          statusList={statutsEpreuve}\r\n          etatInscription={values.etaIns}\r\n          error={error}\r\n        />\r\n      ) : (\r\n        <ViewInscription\r\n          epreuve={current}\r\n          isViewNote={isViewNote}\r\n          isWriteNote={isWriteNote}\r\n          onChange={handleChange}\r\n          statusList={statutsEpreuve}\r\n          etatInscription={values.etaIns}\r\n          error={error}\r\n        />\r\n      )}\r\n    </>\r\n  );\r\n};\r\n\r\n/****************************************************************** */\r\n\r\ntype ViewPros = {\r\n  statusList: Array<StatutEpreuve>;\r\n  epreuve: Epreuve;\r\n  isWriteNote: boolean;\r\n  isViewNote: boolean;\r\n  onChange: (name: string, value: string) => void;\r\n  etatInscription: string;\r\n  error: any;\r\n};\r\n\r\nfunction ViewInscription({\r\n  statusList,\r\n  epreuve,\r\n  isWriteNote,\r\n  isViewNote,\r\n  etatInscription,\r\n  error,\r\n  onChange\r\n}: ViewPros) {\r\n  // pas de saissi de note si il selectionne inscrit\r\n  const isWriteNoteOverride = isWriteNote && epreuve.statut !== 'INS';\r\n\r\n  return (\r\n    <Box sx={{ mt: 2 }}>\r\n      <Typography\r\n        variant=\"body2\"\r\n        gutterBottom\r\n      >{`${epreuve.codeReferentiel} - ${epreuve.designation}`}</Typography>\r\n      <Stack gap={'5px'} flexDirection=\"row\" alignItems={'baseline'} justifyItems={'center'}>\r\n        <Selector\r\n          fullWidth={false}\r\n          name=\"statut\"\r\n          label={'Statut'}\r\n          size=\"small\"\r\n          options={statusList.map((epr: StatutEpreuve) => {\r\n            return { value: epr.code, label: epr.designation };\r\n          })}\r\n          query={epreuve.statut}\r\n          onFilter={(value: string) => onChange('statut', value)}\r\n          disabled={etatInscription === 'INS'}\r\n        />\r\n\r\n        {isWriteNoteOverride && (\r\n          <TextFieldNote\r\n            epreuve={epreuve}\r\n            isWriteNote={isWriteNote}\r\n            error={error}\r\n            onChange={onChange}\r\n          />\r\n        )}\r\n      </Stack>\r\n    </Box>\r\n  );\r\n}\r\n\r\n/**************************************************************** */\r\n\r\nfunction ViewResultat({\r\n  statusList,\r\n  epreuve,\r\n  isWriteNote,\r\n  isViewNote,\r\n  etatInscription,\r\n  error,\r\n  onChange\r\n}: ViewPros) {\r\n  const getStatusLabel = () => {\r\n    const status = statusList.find((epr: StatutEpreuve) => epr.code === epreuve.statut);\r\n    return status ? (\r\n      <Typography variant=\"caption\" component={'div'}>\r\n        {status.designation}\r\n      </Typography>\r\n    ) : (\r\n      <></>\r\n    );\r\n  };\r\n\r\n  return (\r\n    <Box sx={{ mt: 2 }}>\r\n      <Box>\r\n        <Typography variant=\"body2\">{`${epreuve.codeReferentiel} - ${epreuve.designation}`}</Typography>\r\n        <Stack gap={'5px'} flexDirection=\"row\" alignItems={'baseline'} justifyItems={'center'}>\r\n          <Selector\r\n            fullWidth={false}\r\n            name=\"statut\"\r\n            label={'Statut'}\r\n            size=\"small\"\r\n            options={statusList.map((epr: StatutEpreuve) => {\r\n              return { value: epr.code, label: epr.designation };\r\n            })}\r\n            query={epreuve.statut}\r\n            onFilter={(value: string) => onChange('statut', value)}\r\n            disabled={etatInscription === 'INS'}\r\n          />\r\n          {isViewNote && (\r\n            <TextFieldNote\r\n              epreuve={epreuve}\r\n              isWriteNote={isWriteNote}\r\n              error={error}\r\n              onChange={onChange}\r\n            />\r\n          )}\r\n        </Stack>\r\n      </Box>\r\n    </Box>\r\n  );\r\n}\r\n\r\n//******************************************************************************************* */\r\ntype TextFieldNotePros = {\r\n  epreuve: Epreuve;\r\n  isWriteNote: boolean;\r\n  onChange: (name: string, value: string) => void;\r\n  error: any;\r\n};\r\n\r\nconst TextFieldNote = ({ epreuve, isWriteNote, error, onChange }: TextFieldNotePros) => {\r\n  const yearMax = new Date().getFullYear();\r\n  const yearMin = yearMax - 5;\r\n\r\n  const getYears = () => {\r\n    let years = [];\r\n    for (var i: number = yearMin; i < yearMax; i++) {\r\n      years.push(i);\r\n    }\r\n    return years;\r\n  };\r\n\r\n  return (\r\n    <Stack gap=\"10px\" direction=\"row\">\r\n      <TextField\r\n        name=\"note\"\r\n        variant=\"outlined\"\r\n        type=\"number\"\r\n        size=\"small\"\r\n        inputProps={{\r\n          min: '0',\r\n          max: '20',\r\n          step: '0.5',\r\n          style: { textAlign: 'right' }\r\n        }}\r\n        InputProps={{ endAdornment: <InputAdornment position=\"end\"></InputAdornment> }}\r\n        disabled={!isWriteNote}\r\n        onChange={(e: any) => onChange('note', e.target.value)}\r\n        value={epreuve.note}\r\n        margin=\"normal\"\r\n        label=\"Note\"\r\n        sx={{ marginTop: '10px', width: '120px' }}\r\n        error={Boolean((error as any)?.note)}\r\n        helperText={(error as any)?.note}\r\n      />\r\n      {epreuve.statut === 'BEN' && (\r\n        <TextField\r\n          name=\"anneeBenefice\"\r\n          variant=\"outlined\"\r\n          type=\"number\"\r\n          size=\"small\"\r\n          select\r\n          inputProps={{\r\n            min: yearMin,\r\n            max: yearMax,\r\n            style: { textAlign: 'right' }\r\n          }}\r\n          onChange={(e: any) => onChange('anneeBenefice', e.target.value)}\r\n          value={epreuve.anneeBenefice === 0 ? '' : epreuve.anneeBenefice}\r\n          margin=\"normal\"\r\n          label=\"année de bénéfice\"\r\n          sx={{ marginTop: '10px', width: '150px' }}\r\n          error={Boolean((error as any)?.anneeBenefice)}\r\n          helperText={(error as any)?.anneeBenefice}\r\n        >\r\n          {getYears().map((value) => {\r\n            return (\r\n              <MenuItem value={value} key={value}>\r\n                {value}\r\n              </MenuItem>\r\n            );\r\n          })}\r\n        </TextField>\r\n      )}\r\n    </Stack>\r\n  );\r\n};\r\n","import internal from 'stream';\r\nimport { boolean } from 'utils/mock-data/boolean';\r\n\r\nexport type ExamenState = {\r\n  examens: Examen[];\r\n  objectifs: ObjectifGeneral[];\r\n  regions: RegionAdministrative[];\r\n  departements: Departement[];\r\n  academies: Academie[];\r\n  statutsInscription: StatutInscription[];\r\n  statutsResultat: StatutResultat[];\r\n  statutsEpreuve: StatutEpreuve[];\r\n  etatsInscription: EtatInscription[];\r\n  categories: CategorieObjectif[];\r\n  dateExamenEnvisagee: Date | null;\r\n  pourcentageDevoirsRealises: number;\r\n  nombreJoursStage: number;\r\n  noteDossierProMin: number;\r\n  examen: Examen | null;\r\n  isLoading: boolean;\r\n  error: any;\r\n  isLoadingForm: boolean;\r\n  errorForm: any;\r\n  objectifsGeresParSAY: ObjectifGeneral[]; // Certifications et Titres pro (ou tout objectif avec GetInsInt à 'O')\r\n  objectifsGeresEnExterne: ObjectifGeneral[]; // Examens et Concours  (ou tout objectif avec GetInsInt à 'N')\r\n  categoriesGereesParSAY: Array<string>; // Certifications et Titres pro (ou toute catégorie des objectifs avec GetInsInt à 'O')\r\n  categoriesGereesEnExterne: Array<string>; // Examens et Concours (ou toute catégorie des objectifs avec GetInsInt à 'N')\r\n  objectifSAY: ObjectifGeneral | null; // Objectif géré par SAY pour lequel l'élève devra choisir une période\r\n};\r\n\r\nexport interface ExamenListResponse {\r\n  examens: Examen[];\r\n  objectifs: ObjectifGeneral[];\r\n  regions: RegionAdministrative[];\r\n  departements: Departement[];\r\n  academies: Academie[];\r\n  statutsInscription: StatutInscription[];\r\n  statutsResultat: StatutResultat[];\r\n  result: ExamenListResult;\r\n  categories: CategorieObjectif[];\r\n  dateExamenEnvisagee: Date | null;\r\n  statutsEpreuve: StatutEpreuve[];\r\n  etatsInscription: EtatInscription[];\r\n  pourcentageDevoirsRealises: number;\r\n  nombreJoursStage: number;\r\n  noteDossierProMin: number;\r\n  objectifInscriptionAnticipee: ObjectifGeneral | null;\r\n  errorMessage: string | null;\r\n}\r\n\r\nexport enum ExamenListResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n\r\nexport interface ExamenSaveResponse {\r\n  examen: Examen;\r\n  result: ExamenSaveResult;\r\n  errorMessage: string;\r\n}\r\n\r\nexport enum ExamenSaveResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  Error = 2,\r\n  ObjectifIsRequired = 3,\r\n  SessionIsRequired = 4,\r\n  DepartementIsRequired = 5,\r\n  EpreuveIsRequired = 6\r\n}\r\n\r\nexport type ControlStep = {\r\n  isValid: boolean;\r\n  errorMessage: string;\r\n  name: string;\r\n};\r\n\r\nexport class defaultExamen implements Examen {\r\n  constructor(\r\n    public code = '',\r\n    public designation = '',\r\n    public categorie = '',\r\n    public etatInscription = '',\r\n    public session = new defaultSession(),\r\n    public epreuves = [],\r\n    public region = new defaultMetadata(),\r\n    public statutInscription = new defaultMetadata(),\r\n    public statutResultat = new defaultMetadata(),\r\n    public dispensee = false,\r\n    public avis = '',\r\n\r\n    public domaineTravaille = new defaultDomaine(),\r\n    public departement = new defaultDepartement(),\r\n    public academie = new defaultMetadata(),\r\n    public positionnement = new defaultPositionnement(),\r\n    public formePassage = 'GLO',\r\n    public observation = '',\r\n    public periode = new defaultPeriode(),\r\n    public gestionInscriptionInterne = false\r\n  ) {}\r\n}\r\n\r\nexport class defaultSession implements SessionExamen {\r\n  constructor(\r\n    public code = '',\r\n    public designation = '',\r\n    public dateEpreuvesAdmissibilite = '',\r\n    public dateEpreuvesAdmission = '',\r\n    public dateDebutInscription = '',\r\n    public dateFinInscription = '',\r\n    public dateEpreuvesPreAdmissibilite = '',\r\n    public dateEpreuvesSportives = '',\r\n    public filtreDepartemental = [],\r\n    public epreuves = [],\r\n    public fichiers = [],\r\n    public filesMandatory = false,\r\n    public isSended = false,\r\n    public pourcentageDevoirsRealises = 0,\r\n    public nombreJoursStage = 0,\r\n    public noteDossierProMin = 0,\r\n    public centreExamen = null,\r\n    public nombrePlacesMin = 0,\r\n    public nombrePlacesMax = 0,\r\n    public nombreInscrits = 0\r\n  ) {}\r\n}\r\n\r\nexport class defaultPeriode implements PeriodeExamen {\r\n  constructor(\r\n    public code = '',\r\n    public designation = '',\r\n    public periode = '',\r\n    public type = '',\r\n    public dateDebut = new Date(),\r\n    public dateFin = new Date()\r\n  ) {}\r\n}\r\n\r\nclass defaultMetadata implements Metadata {\r\n  constructor(public code = '', public designation = '') {}\r\n}\r\n\r\nexport class defaultDepartement implements Departement {\r\n  constructor(\r\n    public code = '',\r\n    public designation = '',\r\n    public academieCode = '',\r\n    public regionCode = ''\r\n  ) {}\r\n}\r\n\r\nclass defaultPositionnement implements Positionnement {\r\n  constructor(public favorable = '', public enCours = '') {}\r\n}\r\n\r\nclass defaultDomaine implements Domaine {\r\n  constructor(\r\n    public actif = false,\r\n    public adresseEntreprise = '',\r\n    public dateDebut = null,\r\n    public dateFin = null\r\n  ) {}\r\n}\r\n\r\nexport enum ExamenFileType {\r\n  DIS = 0,\r\n  INS = 1,\r\n  REL = 2\r\n}\r\n\r\nexport interface ExamenFichier {\r\n  id: number;\r\n  nom: string;\r\n  nomDisk: string;\r\n  type: string;\r\n  taille: number;\r\n  typeMime: string;\r\n  file: any;\r\n}\r\n\r\nexport interface Examen {\r\n  code: string;\r\n  designation: string;\r\n  categorie: string;\r\n  session: SessionExamen;\r\n  region: RegionAdministrative;\r\n  statutInscription: StatutInscription;\r\n  statutResultat: StatutResultat;\r\n  dispensee: boolean;\r\n  avis: string;\r\n  domaineTravaille: Domaine;\r\n  departement: Departement;\r\n  academie: Academie;\r\n  formePassage: string;\r\n  positionnement: Positionnement;\r\n  etatInscription: string;\r\n  observation: string;\r\n  periode: PeriodeExamen;\r\n  gestionInscriptionInterne: boolean;\r\n}\r\n\r\nexport interface Positionnement {\r\n  favorable: string;\r\n  enCours: string;\r\n}\r\n\r\nexport interface Domaine {\r\n  adresseEntreprise: string;\r\n  dateDebut: string | null;\r\n  dateFin: string | null;\r\n}\r\n\r\nexport interface ObjectifGeneral extends Metadata {\r\n  categorie: string;\r\n  sessions: SessionExamen[];\r\n  pourcentageDevoirsRealises: number;\r\n  nombreJoursStage: number;\r\n  noteDossierProMin: number;\r\n  gestionInscriptionInterne: boolean;\r\n  periodeInscription: string;\r\n  periodes: PeriodeExamen[];\r\n}\r\n\r\nexport interface SessionExamen extends Metadata {\r\n  dateEpreuvesAdmissibilite: string | null;\r\n  dateEpreuvesAdmission: string | null;\r\n  dateDebutInscription: string | null;\r\n  dateFinInscription: string | null;\r\n  dateEpreuvesPreAdmissibilite: string | null;\r\n  dateEpreuvesSportives: string | null;\r\n  filtreDepartemental: string[];\r\n  epreuves: Array<Epreuve>;\r\n  fichiers: Array<ExamenFichier>;\r\n  filesMandatory: boolean;\r\n  isSended: boolean;\r\n  pourcentageDevoirsRealises: number;\r\n  nombreJoursStage: number;\r\n  noteDossierProMin: number;\r\n  centreExamen: SessionCentreExamen | null;\r\n  nombrePlacesMin: number;\r\n  nombrePlacesMax: number;\r\n  nombreInscrits: number;\r\n}\r\n\r\nexport interface Epreuve extends Metadata {\r\n  codeReferentiel: string;\r\n  statut: string;\r\n  note: number | null;\r\n  anneeBenefice: number;\r\n  typeFichier: string;\r\n  dateEpreuve: Date | null;\r\n  dateCreated: Date;\r\n  centreExamen: EpreuveCentreExamen | null;\r\n}\r\n\r\nexport interface PeriodeExamen extends Metadata {\r\n  periode: string;\r\n  type: string;\r\n  dateDebut: Date;\r\n  dateFin: Date;\r\n}\r\n\r\nexport interface CentreExamen {\r\n  id: number;\r\n  nom: string;\r\n  adresse: string;\r\n}\r\n\r\nexport interface SessionCentreExamen extends CentreExamen {}\r\nexport interface EpreuveCentreExamen extends CentreExamen {}\r\n\r\nexport interface CategorieObjectif extends Metadata {}\r\n\r\nexport interface EtatInscription extends Metadata {}\r\nexport interface StatutInscription extends Metadata {}\r\n\r\nexport interface StatutResultat extends Metadata {}\r\n\r\nexport interface RegionAdministrative extends Metadata {}\r\n\r\nexport interface Academie extends Metadata {}\r\n\r\nexport interface Departement extends Metadata {\r\n  academieCode: string;\r\n  regionCode: string;\r\n}\r\n\r\nexport interface Metadata {\r\n  code: string;\r\n  designation: string;\r\n}\r\n\r\nexport interface StatutEpreuve extends Metadata {\r\n  typeFichier: string;\r\n  listeCategoryObjectif: string;\r\n  listeProgression: string;\r\n  saisiNote: boolean;\r\n  affichageNote: boolean;\r\n}\r\n\r\nexport enum TypeCategoryObjectif {\r\n  Examen = 'EXA',\r\n  Concours = 'CON',\r\n  TitrePro = 'TP',\r\n  Certification = 'CQP',\r\n  Metiers = ''\r\n}\r\n\r\nexport enum TypePeriodeInscription {\r\n  Mois = 'MOI',\r\n  Trimestre = 'TRI',\r\n  Session = 'SES'\r\n}\r\n\r\nexport const InscriptionsTypesPeriodes: Array<string> = [\r\n  TypePeriodeInscription.Mois,\r\n  TypePeriodeInscription.Trimestre\r\n];\r\n\r\nexport interface IExamenCreateForm {\r\n  loading: boolean;\r\n  error: string;\r\n  onChangeText: void;\r\n  setForm: React.Dispatch<Examen>;\r\n  onSubmit: void;\r\n  form: Examen;\r\n  objectifs: Array<ObjectifGeneral>;\r\n  regions: Array<RegionAdministrative>;\r\n  departements: Array<Departement>;\r\n  academies: Array<Academie>;\r\n  statutsInscription: Array<StatutInscription>;\r\n  statutsResultat: Array<StatutResultat>;\r\n  statutsEpreuve: Array<StatutEpreuve>;\r\n  onFilesSelected: Array<any>;\r\n  onFileDelete(file: any): void;\r\n  onChangeDepartement(value: string): void;\r\n  onChangeSession(value: string): void;\r\n}\r\n\r\nexport interface ExamenUpdateDateEnvRequest {\r\n  contractId: number;\r\n  amendmentId: number;\r\n  dateEnvisagee: Date;\r\n}\r\n\r\nexport enum ExamenUpdateDateEnvResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  Error = 2\r\n}\r\n\r\nexport interface ExamenUpdateDateEnvResponse {\r\n  result: ExamenUpdateDateEnvResult;\r\n  errorMessage: string;\r\n}\r\n","import { SeminarLeftToPay } from '../@types/seminar';\r\n\r\nexport const loadUrl = (url: string) => {\r\n  const link = document.createElement('a');\r\n  link.href = url;\r\n  link.target = '_blanck';\r\n  document.body.appendChild(link);\r\n  link.click();\r\n  link.remove();\r\n};\r\n\r\nexport function getAccount(credit: number) {\r\n  if (credit === 0) return 0;\r\n  return (credit * 30) / 100;\r\n}\r\n\r\nexport function getLeftToPay(\r\n  creditStudent: number,\r\n  credit: number,\r\n  priceUnit: number\r\n): SeminarLeftToPay {\r\n  const value = getAccount(credit) - creditStudent;\r\n\r\n  if (value > 0) {\r\n    return {\r\n      credit: credit - getAccount(credit),\r\n      amount: (credit - getAccount(credit)) * priceUnit,\r\n      accountCredit: value,\r\n      accountAmount: value * priceUnit\r\n    };\r\n  }\r\n\r\n  return {\r\n    credit: 0,\r\n    amount: 0,\r\n    accountAmount: 0,\r\n    accountCredit: 0\r\n  };\r\n}\r\n\r\n///(\\<input.*\\/\\>,)/g\r\n\r\nexport const formatCardPayment = (content: string) => {\r\n  content = content.replace(/(submit)/gim, 'hidden');\r\n\r\n  content = content.replace(/(Choisissez votre carte ci-dessous :)/gim, '');\r\n  content = content.replace(/(<br\\/>)/gim, '');\r\n  content = content.replace(/(<img src=\\\\\"Contents\\/Images\\/INTERVAL.gif\\\\\" alt=\\\\\" \\\\\">)/gim, '');\r\n  content = content.replace(\r\n    /(Contents\\/Images\\/CB.gif)/gim,\r\n    'https://assets.skillandyou.io/assets/620349a9-16a2-456e-b863-506af1a96097'\r\n  );\r\n  content = content.replace(\r\n    /(Contents\\/Images\\/VISA.gif)/gim,\r\n    'https://assets.skillandyou.io/assets/b072d214-d3e0-4213-b838-36d4c251f1f1'\r\n  );\r\n  content = content.replace(\r\n    /(Contents\\/Images\\/MASTERCARD.gif)/gim,\r\n    'https://assets.skillandyou.io/assets/2520310d-2417-4138-be1b-0b4f1db0af3c'\r\n  );\r\n  content = content.replace(\r\n    /(Contents\\/Images\\/PAYPAL.gif)/gim,\r\n    'https://assets.skillandyou.io/assets/b1dc5e16-d74a-4ee2-b549-1c155c053a06'\r\n  );\r\n  content = content.replace(\r\n    /(Contents\\/Images\\/logo_CB.png)/gim,\r\n    'https://assets.skillandyou.io/assets/620349a9-16a2-456e-b863-506af1a96097'\r\n  );\r\n  content = content.replace(\r\n    /(Contents\\/Images\\/logo_VISA.png)/gim,\r\n    'https://assets.skillandyou.io/assets/b072d214-d3e0-4213-b838-36d4c251f1f1'\r\n  );\r\n  content = content.replace(\r\n    /(Contents\\/Images\\/logo_MASTERCARD.png)/gim,\r\n    'https://assets.skillandyou.io/assets/2520310d-2417-4138-be1b-0b4f1db0af3c'\r\n  );\r\n  content = content.replace(\r\n    /(Contents\\/Images\\/logo_PAYPAL.png)/gim,\r\n    'https://assets.skillandyou.io/assets/b1dc5e16-d74a-4ee2-b549-1c155c053a06'\r\n  );\r\n  content = content.replace(\r\n    /(Contents\\/Images\\/IcoSec.gif)/gim,\r\n    'https://assets.skillandyou.io/assets/ad1f222c-34ed-4cc8-bc9a-63e5086a08b8'\r\n  );\r\n  content = content.replace(/(align=)/gim, \"class='cards'\");\r\n  content = content.replace(/(_top)/gim, '_self');\r\n  return content;\r\n};\r\n\r\nexport const resizeImage = (img: any) => {\r\n  var MAX_WIDTH = 300;\r\n  var MAX_HEIGHT = 300;\r\n  var width = img.width;\r\n  var height = img.height;\r\n\r\n  if (width > height) {\r\n    if (width > MAX_WIDTH) {\r\n      height *= MAX_WIDTH / width;\r\n      width = MAX_WIDTH;\r\n    }\r\n  } else {\r\n    if (height > MAX_HEIGHT) {\r\n      width *= MAX_HEIGHT / height;\r\n      height = MAX_HEIGHT;\r\n    }\r\n  }\r\n\r\n  var canvas = document.createElement('canvas');\r\n  if (canvas != null) {\r\n    canvas.width = width;\r\n    canvas.height = height;\r\n    var ctx = canvas.getContext('2d');\r\n    ctx?.drawImage(img, 0, 0, width, height);\r\n\r\n    return canvas.toDataURL('image/png');\r\n  }\r\n};\r\n\r\n//Convertion string en blob : a mettre dans utils\r\nexport function base64ToBlob(base64: string, type: string) {\r\n  const binaryString = window.atob(base64);\r\n  const len = binaryString.length;\r\n  const bytes = new Uint8Array(len);\r\n  for (let i = 0; i < len; ++i) {\r\n    bytes[i] = binaryString.charCodeAt(i);\r\n  }\r\n\r\n  return new Blob([bytes], { type: type });\r\n}\r\n\r\n/**\r\n * urlBase64ToUint8Array\r\n *\r\n * @param {string} base64String a public vavid key\r\n */\r\nexport const urlBase64ToUint8Array = (base64String: string) => {\r\n  var padding = '='.repeat((4 - (base64String.length % 4)) % 4);\r\n  var base64 = (base64String + padding).replace(/\\-/g, '+').replace(/_/g, '/');\r\n\r\n  var rawData = window.atob(base64);\r\n  var outputArray = new Uint8Array(rawData.length);\r\n\r\n  for (var i = 0; i < rawData.length; ++i) {\r\n    outputArray[i] = rawData.charCodeAt(i);\r\n  }\r\n  return outputArray;\r\n};\r\n\r\nexport const removeAccents = (text: string) => {\r\n  var r = text.toLowerCase().trim();\r\n  r = r.replace(new RegExp('[àáâãäå]', 'g'), 'a');\r\n  r = r.replace(new RegExp('æ', 'g'), 'ae');\r\n  r = r.replace(new RegExp('ç', 'g'), 'c');\r\n  r = r.replace(new RegExp('[èéêë]', 'g'), 'e');\r\n  r = r.replace(new RegExp('[ìíîï]', 'g'), 'i');\r\n  r = r.replace(new RegExp('ñ', 'g'), 'n');\r\n  r = r.replace(new RegExp('[òóôõö]', 'g'), 'o');\r\n  r = r.replace(new RegExp('œ', 'g'), 'oe');\r\n  r = r.replace(new RegExp('[ùúûü]', 'g'), 'u');\r\n  r = r.replace(new RegExp('[ýÿ]', 'g'), 'y');\r\n  return r;\r\n};\r\n\r\nexport function isValidHttpUrl(url: string) {\r\n  const pattern = new RegExp(\r\n    '^(https?:\\\\/\\\\/)?' + // protocol\r\n      '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\r\n      '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\r\n      '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\r\n      '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\r\n      '(\\\\#[-a-z\\\\d_]*)?$', // fragment locator\r\n    'i'\r\n  );\r\n  return pattern.test(url);\r\n}\r\n","import ReactMarkdown, { Options } from 'react-markdown';\r\n// markdown plugins\r\nimport rehypeRaw from 'rehype-raw';\r\nimport rehypeHighlight from 'rehype-highlight';\r\n// material\r\nimport { styled } from '@mui/material/styles';\r\nimport { Link, Typography, Divider } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst MarkdownWrapperStyle = styled('div')(({ theme }) => {\r\n  const isLight = theme.palette.mode === 'light';\r\n\r\n  return {\r\n    // List\r\n    '& ul, & ol': {\r\n      ...theme.typography.body1,\r\n      paddingLeft: theme.spacing(5),\r\n      '& li': {\r\n        lineHeight: 2\r\n      }\r\n    },\r\n\r\n    // Blockquote\r\n    '& blockquote': {\r\n      lineHeight: 1.5,\r\n      fontSize: '1.5em',\r\n      margin: '40px auto',\r\n      position: 'relative',\r\n      fontFamily: 'Georgia, serif',\r\n      padding: theme.spacing(3, 3, 3, 8),\r\n      borderRadius: theme.shape.borderRadiusMd,\r\n      backgroundColor: theme.palette.background.neutral,\r\n      color: `${theme.palette.text.secondary} !important`,\r\n      [theme.breakpoints.up('md')]: {\r\n        width: '80%'\r\n      },\r\n      '& p, & span': {\r\n        marginBottom: '0 !important',\r\n        fontSize: 'inherit !important',\r\n        fontFamily: 'Georgia, serif !important',\r\n        color: `${theme.palette.text.secondary} !important`\r\n      },\r\n      '&:before': {\r\n        left: 16,\r\n        top: -8,\r\n        display: 'block',\r\n        fontSize: '3em',\r\n        content: '\"\\\\201C\"',\r\n        position: 'absolute',\r\n        color: theme.palette.text.disabled\r\n      }\r\n    },\r\n    '& pre, & pre > code': {\r\n      fontSize: 16,\r\n      overflowX: 'auto',\r\n      whiteSpace: 'pre',\r\n      padding: theme.spacing(2),\r\n      color: theme.palette.common.white,\r\n      borderRadius: theme.shape.borderRadius,\r\n      backgroundColor: theme.palette.grey[isLight ? 900 : 500_16]\r\n    },\r\n    '& code': {\r\n      fontSize: 14,\r\n      borderRadius: 4,\r\n      whiteSpace: 'pre',\r\n      padding: theme.spacing(0.2, 0.5),\r\n      color: theme.palette.warning[isLight ? 'darker' : 'lighter'],\r\n      backgroundColor: theme.palette.warning[isLight ? 'lighter' : 'darker'],\r\n      '&.hljs': { padding: 0, backgroundColor: 'transparent' }\r\n    }\r\n  };\r\n});\r\n\r\nconst components = {\r\n  h1: ({ ...props }) => <Typography variant=\"h1\" {...props} />,\r\n  h2: ({ ...props }) => <Typography variant=\"h2\" {...props} />,\r\n  h3: ({ ...props }) => <Typography variant=\"h3\" {...props} />,\r\n  h4: ({ ...props }) => <Typography variant=\"h4\" {...props} />,\r\n  h5: ({ ...props }) => <Typography variant=\"h5\" {...props} />,\r\n  h6: ({ ...props }) => <Typography variant=\"h6\" {...props} />,\r\n  p: ({ ...props }) => <Typography variant=\"body2\" component=\"div\" {...props} />,\r\n  hr: ({ ...props }) => <Divider sx={{ my: 3 }} {...props} />,\r\n  ul: ({ ...props }) => <Typography component=\"ul\" variant=\"body2\" {...props} />,\r\n  li: ({ ...props }) => <Typography component=\"li\" variant=\"body2\" {...props} />,\r\n\r\n  a: ({ ...props }) => {\r\n    const { href } = props;\r\n    return !href.includes('http') ? (\r\n      <Link {...props} />\r\n    ) : (\r\n      <Link target=\"_blank\" rel=\"nofollow noreferrer noopener\" {...props} />\r\n    );\r\n  }\r\n};\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Markdown({ ...other }: Options) {\r\n  return (\r\n    <MarkdownWrapperStyle>\r\n      <ReactMarkdown\r\n        rehypePlugins={[rehypeRaw, rehypeHighlight]}\r\n        components={components}\r\n        {...other}\r\n      />\r\n    </MarkdownWrapperStyle>\r\n  );\r\n}\r\n","// material\r\nimport { alpha, styled } from '@mui/material/styles';\r\nimport { Popover, PopoverProps } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst ArrowStyle = styled('span')(({ theme }) => ({\r\n  [theme.breakpoints.up('sm')]: {\r\n    top: -7,\r\n    zIndex: 1,\r\n    width: 12,\r\n    right: 20,\r\n    height: 12,\r\n    content: \"''\",\r\n    position: 'absolute',\r\n    borderRadius: '0 0 4px 0',\r\n    transform: 'rotate(-135deg)',\r\n    background: theme.palette.background.paper,\r\n    borderRight: `solid 1px ${alpha(theme.palette.grey[500], 0.12)}`,\r\n    borderBottom: `solid 1px ${alpha(theme.palette.grey[500], 0.12)}`\r\n  }\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function MenuPopover({ children, sx, ...other }: PopoverProps) {\r\n  return (\r\n    <Popover\r\n      anchorOrigin={{\r\n        vertical: 'bottom',\r\n        horizontal: 'right'\r\n      }}\r\n      transformOrigin={{\r\n        vertical: 'top',\r\n        horizontal: 'right'\r\n      }}\r\n      PaperProps={{\r\n        sx: {\r\n          mt: 1.5,\r\n          ml: 0.5,\r\n          overflow: 'inherit',\r\n          boxShadow: (theme) => theme.customShadows.z20,\r\n          border: (theme) => `solid 1px ${theme.palette.grey[500_8]}`,\r\n          width: 200,\r\n          ...sx\r\n        }\r\n      }}\r\n      {...other}\r\n    >\r\n      <ArrowStyle />\r\n\r\n      {children}\r\n    </Popover>\r\n  );\r\n}\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { dispatch } from '../store';\r\n// utils\r\nimport axios from '../../utils/axios';\r\n// @types\r\nimport { Conversation, Participant } from '../../@types/chat';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nfunction objFromArray(array: any[], key = 'id') {\r\n  return array.reduce((accumulator, current) => {\r\n    accumulator[current[key]] = current;\r\n    return accumulator;\r\n  }, {});\r\n}\r\n\r\ntype ChatState = {\r\n  isLoading: boolean;\r\n  error: boolean;\r\n  contacts: {\r\n    byId: Record<string, Participant>;\r\n    allIds: string[];\r\n  };\r\n  conversations: {\r\n    byId: Record<string, Conversation>;\r\n    allIds: string[];\r\n  };\r\n  activeConversationId: null | string;\r\n  participants: Participant[];\r\n  recipients: any[];\r\n};\r\n\r\nconst initialState: ChatState = {\r\n  isLoading: false,\r\n  error: false,\r\n  contacts: { byId: {}, allIds: [] },\r\n  conversations: { byId: {}, allIds: [] },\r\n  activeConversationId: null,\r\n  participants: [],\r\n  recipients: []\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'chat',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    // GET CONTACT SSUCCESS\r\n    getContactsSuccess(state, action) {\r\n      const contacts = action.payload;\r\n\r\n      state.contacts.byId = objFromArray(contacts);\r\n      state.contacts.allIds = Object.keys(state.contacts.byId);\r\n    },\r\n\r\n    // GET CONVERSATIONS\r\n    getConversationsSuccess(state, action) {\r\n      const conversations = action.payload;\r\n\r\n      state.conversations.byId = objFromArray(conversations);\r\n      state.conversations.allIds = Object.keys(state.conversations.byId);\r\n    },\r\n\r\n    // GET CONVERSATION\r\n    getConversationSuccess(state, action) {\r\n      const conversation = action.payload;\r\n\r\n      if (conversation) {\r\n        state.conversations.byId[conversation.id] = conversation;\r\n        state.activeConversationId = conversation.id;\r\n        if (!state.conversations.allIds.includes(conversation.id)) {\r\n          state.conversations.allIds.push(conversation.id);\r\n        }\r\n      } else {\r\n        state.activeConversationId = null;\r\n      }\r\n    },\r\n\r\n    // ON SEND MESSAGE\r\n    onSendMessage(state, action) {\r\n      const conversation = action.payload;\r\n      const { conversationId, messageId, message, contentType, attachments, createdAt, senderId } =\r\n        conversation;\r\n\r\n      const newMessage = {\r\n        id: messageId,\r\n        body: message,\r\n        contentType,\r\n        attachments,\r\n        createdAt,\r\n        senderId\r\n      };\r\n\r\n      state.conversations.byId[conversationId].messages.push(newMessage);\r\n    },\r\n\r\n    markConversationAsReadSuccess(state, action) {\r\n      const { conversationId } = action.payload;\r\n      const conversation = state.conversations.byId[conversationId];\r\n      if (conversation) {\r\n        conversation.unreadCount = 0;\r\n      }\r\n    },\r\n\r\n    // GET PARTICIPANTS\r\n    getParticipantsSuccess(state, action) {\r\n      const participants = action.payload;\r\n      state.participants = participants;\r\n    },\r\n\r\n    // RESET ACTIVE CONVERSATION\r\n    resetActiveConversation(state) {\r\n      state.activeConversationId = null;\r\n    },\r\n\r\n    addRecipients(state, action) {\r\n      const recipients = action.payload;\r\n      state.recipients = recipients;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nexport const { addRecipients, onSendMessage, resetActiveConversation } = slice.actions;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getContacts() {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/chat/contacts');\r\n      dispatch(slice.actions.getContactsSuccess(response.data.contacts));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getConversations() {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/chat/conversations');\r\n      dispatch(slice.actions.getConversationsSuccess(response.data.conversations));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getConversation(conversationKey: string) {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/chat/conversation', {\r\n        params: { conversationKey }\r\n      });\r\n      dispatch(slice.actions.getConversationSuccess(response.data.conversation));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function markConversationAsRead(conversationId: string) {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      await axios.get('/api/chat/conversation/mark-as-seen', {\r\n        params: { conversationId }\r\n      });\r\n      dispatch(slice.actions.markConversationAsReadSuccess({ conversationId }));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getParticipants(conversationKey: string) {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/chat/participants', {\r\n        params: { conversationKey }\r\n      });\r\n      dispatch(slice.actions.getParticipantsSuccess(response.data.participants));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { store } from '../store';\r\n// utils\r\nimport axios from '../../utils/axios';\r\n// @types\r\nimport { BlogState } from '../../@types/blog';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: BlogState = {\r\n  isLoading: false,\r\n  error: false,\r\n  posts: [],\r\n  post: null,\r\n  recentPosts: [],\r\n  hasMore: true,\r\n  index: 0,\r\n  step: 11\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'blog',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    // GET POSTS\r\n    getPostsSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.posts = action.payload;\r\n    },\r\n\r\n    // GET POST INFINITE\r\n    getPostsInitial(state, action) {\r\n      state.isLoading = false;\r\n      state.posts = action.payload;\r\n    },\r\n\r\n    getMorePosts(state) {\r\n      const setIndex = state.index + state.step;\r\n      state.index = setIndex;\r\n    },\r\n\r\n    noHasMore(state) {\r\n      state.hasMore = false;\r\n    },\r\n\r\n    // GET POST\r\n    getPostSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.post = action.payload;\r\n    },\r\n\r\n    // GET RECENT POST\r\n    getRecentPostsSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.recentPosts = action.payload;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nexport const { getMorePosts } = slice.actions;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getAllPosts() {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/blog/posts/all');\r\n      dispatch(slice.actions.getPostsSuccess(response.data.posts));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getPostsInitial(index: number, step: number) {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/blog/posts', {\r\n        params: { index, step }\r\n      });\r\n      const results = response.data.results.length;\r\n      const { maxLength } = response.data;\r\n\r\n      dispatch(slice.actions.getPostsInitial(response.data.results));\r\n\r\n      if (results >= maxLength) {\r\n        dispatch(slice.actions.noHasMore());\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getPost(title: string) {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/blog/post', {\r\n        params: { title }\r\n      });\r\n      dispatch(slice.actions.getPostSuccess(response.data.post));\r\n    } catch (error) {\r\n      console.error(error);\r\n      dispatch(slice.actions.hasError(true));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getRecentPosts(title: string) {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/blog/posts/recent', {\r\n        params: { title }\r\n      });\r\n\r\n      dispatch(slice.actions.getRecentPostsSuccess(response.data.recentPosts));\r\n    } catch (error) {\r\n      console.error(error);\r\n      dispatch(slice.actions.hasError(true));\r\n    }\r\n  };\r\n}\r\n","import { map, filter } from 'lodash';\r\nimport { createSlice } from '@reduxjs/toolkit';\r\nimport { dispatch } from '../store';\r\n// utils\r\nimport axios from '../../utils/axios';\r\nimport {\r\n  Friend,\r\n  Gallery,\r\n  Profile,\r\n  UserPost,\r\n  Follower,\r\n  UserData,\r\n  CreditCard,\r\n  UserInvoice,\r\n  UserManager,\r\n  UserAddressBook,\r\n  NotificationSettings\r\n} from '../../@types/user';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ntype UserState = {\r\n  isLoading: boolean;\r\n  error: boolean;\r\n  myProfile: null | Profile;\r\n  posts: UserPost[];\r\n  users: UserData[];\r\n  userList: UserManager[];\r\n  followers: Follower[];\r\n  friends: Friend[];\r\n  gallery: Gallery[];\r\n  cards: CreditCard[] | null;\r\n  addressBook: UserAddressBook[];\r\n  invoices: UserInvoice[];\r\n  notifications: NotificationSettings | null;\r\n};\r\n\r\nconst initialState: UserState = {\r\n  isLoading: false,\r\n  error: false,\r\n  myProfile: null,\r\n  posts: [],\r\n  users: [],\r\n  userList: [],\r\n  followers: [],\r\n  friends: [],\r\n  gallery: [],\r\n  cards: null,\r\n  addressBook: [],\r\n  invoices: [],\r\n  notifications: null\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'user',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    // GET PROFILE\r\n    getProfileSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.myProfile = action.payload;\r\n    },\r\n\r\n    // GET POSTS\r\n    getPostsSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.posts = action.payload;\r\n    },\r\n\r\n    // GET USERS\r\n    getUsersSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.users = action.payload;\r\n    },\r\n\r\n    // DELETE USERS\r\n    deleteUser(state, action) {\r\n      const deleteUser = filter(state.userList, (user) => user.id !== action.payload);\r\n      state.userList = deleteUser;\r\n    },\r\n\r\n    // GET FOLLOWERS\r\n    getFollowersSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.followers = action.payload;\r\n    },\r\n\r\n    // ON TOGGLE FOLLOW\r\n    onToggleFollow(state, action) {\r\n      const followerId = action.payload;\r\n\r\n      const handleToggle = map(state.followers, (follower) => {\r\n        if (follower.id === followerId) {\r\n          return {\r\n            ...follower,\r\n            isFollowed: !follower.isFollowed\r\n          };\r\n        }\r\n        return follower;\r\n      });\r\n\r\n      state.followers = handleToggle;\r\n    },\r\n\r\n    // GET FRIENDS\r\n    getFriendsSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.friends = action.payload;\r\n    },\r\n\r\n    // GET GALLERY\r\n    getGallerySuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.gallery = action.payload;\r\n    },\r\n\r\n    // GET MANAGE USERS\r\n    getUserListSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.userList = action.payload;\r\n    },\r\n\r\n    // GET CARDS\r\n    getCardsSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.cards = action.payload;\r\n    },\r\n\r\n    // GET ADDRESS BOOK\r\n    getAddressBookSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.addressBook = action.payload;\r\n    },\r\n\r\n    // GET INVOICES\r\n    getInvoicesSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.invoices = action.payload;\r\n    },\r\n\r\n    // GET NOTIFICATIONS\r\n    getNotificationsSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.notifications = action.payload;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nexport const { onToggleFollow, deleteUser } = slice.actions;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getProfile() {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/user/profile');\r\n      dispatch(slice.actions.getProfileSuccess(response.data.profile));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getPosts() {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/user/posts');\r\n      dispatch(slice.actions.getPostsSuccess(response.data.posts));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getFollowers() {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/user/social/followers');\r\n      dispatch(slice.actions.getFollowersSuccess(response.data.followers));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getFriends() {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/user/social/friends');\r\n      dispatch(slice.actions.getFriendsSuccess(response.data.friends));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getGallery() {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/user/social/gallery');\r\n      dispatch(slice.actions.getGallerySuccess(response.data.gallery));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getUserList() {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/user/manage-users');\r\n      dispatch(slice.actions.getUserListSuccess(response.data.users));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getCards() {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/user/account/cards');\r\n      dispatch(slice.actions.getCardsSuccess(response.data.cards));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getAddressBook() {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/user/account/address-book');\r\n      dispatch(slice.actions.getAddressBookSuccess(response.data.addressBook));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getInvoices() {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/user/account/invoices');\r\n      dispatch(slice.actions.getInvoicesSuccess(response.data.invoices));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getNotifications() {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/user/account/notifications-settings');\r\n      dispatch(slice.actions.getNotificationsSuccess(response.data.notifications));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getUsers() {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/user/all');\r\n      dispatch(slice.actions.getUsersSuccess(response.data.users));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { sum, map, filter, uniqBy } from 'lodash';\r\nimport { store } from '../store';\r\n// utils\r\nimport axios from '../../utils/axios';\r\nimport { CartItem, Product, ProductState } from '../../@types/products';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: ProductState = {\r\n  isLoading: false,\r\n  error: false,\r\n  products: [],\r\n  product: null,\r\n  sortBy: null,\r\n  filters: {\r\n    gender: [],\r\n    category: 'All',\r\n    colors: [],\r\n    priceRange: '',\r\n    rating: ''\r\n  },\r\n  checkout: {\r\n    activeStep: 0,\r\n    cart: [],\r\n    subtotal: 0,\r\n    total: 0,\r\n    discount: 0,\r\n    shipping: 0,\r\n    billing: null\r\n  }\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'product',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    // GET PRODUCTS\r\n    getProductsSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.products = action.payload;\r\n    },\r\n\r\n    // GET PRODUCT\r\n    getProductSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.product = action.payload;\r\n    },\r\n\r\n    //  SORT & FILTER PRODUCTS\r\n    sortByProducts(state, action) {\r\n      state.sortBy = action.payload;\r\n    },\r\n\r\n    filterProducts(state, action) {\r\n      state.filters.gender = action.payload.gender;\r\n      state.filters.category = action.payload.category;\r\n      state.filters.colors = action.payload.colors;\r\n      state.filters.priceRange = action.payload.priceRange;\r\n      state.filters.rating = action.payload.rating;\r\n    },\r\n\r\n    // CHECKOUT\r\n    getCart(state, action) {\r\n      const cart = action.payload;\r\n\r\n      const subtotal = sum(cart.map((cartItem: CartItem) => cartItem.price * cartItem.quantity));\r\n      const discount = cart.length === 0 ? 0 : state.checkout.discount;\r\n      const shipping = cart.length === 0 ? 0 : state.checkout.shipping;\r\n      const billing = cart.length === 0 ? null : state.checkout.billing;\r\n\r\n      state.checkout.cart = cart;\r\n      state.checkout.discount = discount;\r\n      state.checkout.shipping = shipping;\r\n      state.checkout.billing = billing;\r\n      state.checkout.subtotal = subtotal;\r\n      state.checkout.total = subtotal - discount;\r\n    },\r\n\r\n    addCart(state, action) {\r\n      const product = action.payload;\r\n      const isEmptyCart = state.checkout.cart.length === 0;\r\n\r\n      if (isEmptyCart) {\r\n        state.checkout.cart = [...state.checkout.cart, product];\r\n      } else {\r\n        state.checkout.cart = map(state.checkout.cart, (_product) => {\r\n          const isExisted = _product.id === product.id;\r\n          if (isExisted) {\r\n            return {\r\n              ..._product,\r\n              quantity: _product.quantity + 1\r\n            };\r\n          }\r\n          return _product;\r\n        });\r\n      }\r\n      state.checkout.cart = uniqBy([...state.checkout.cart, product], 'id');\r\n    },\r\n\r\n    deleteCart(state, action) {\r\n      const updateCart = filter(state.checkout.cart, (item) => item.id !== action.payload);\r\n\r\n      state.checkout.cart = updateCart;\r\n    },\r\n\r\n    resetCart(state) {\r\n      state.checkout.activeStep = 0;\r\n      state.checkout.cart = [];\r\n      state.checkout.total = 0;\r\n      state.checkout.subtotal = 0;\r\n      state.checkout.discount = 0;\r\n      state.checkout.shipping = 0;\r\n      state.checkout.billing = null;\r\n    },\r\n\r\n    onBackStep(state) {\r\n      state.checkout.activeStep -= 1;\r\n    },\r\n\r\n    onNextStep(state) {\r\n      state.checkout.activeStep += 1;\r\n    },\r\n\r\n    onGotoStep(state, action) {\r\n      const goToStep = action.payload;\r\n      state.checkout.activeStep = goToStep;\r\n    },\r\n\r\n    increaseQuantity(state, action) {\r\n      const productId = action.payload;\r\n      const updateCart = map(state.checkout.cart, (product) => {\r\n        if (product.id === productId) {\r\n          return {\r\n            ...product,\r\n            quantity: product.quantity + 1\r\n          };\r\n        }\r\n        return product;\r\n      });\r\n\r\n      state.checkout.cart = updateCart;\r\n    },\r\n\r\n    decreaseQuantity(state, action) {\r\n      const productId = action.payload;\r\n      const updateCart = map(state.checkout.cart, (product) => {\r\n        if (product.id === productId) {\r\n          return {\r\n            ...product,\r\n            quantity: product.quantity - 1\r\n          };\r\n        }\r\n        return product;\r\n      });\r\n\r\n      state.checkout.cart = updateCart;\r\n    },\r\n\r\n    createBilling(state, action) {\r\n      state.checkout.billing = action.payload;\r\n    },\r\n\r\n    applyDiscount(state, action) {\r\n      const discount = action.payload;\r\n      state.checkout.discount = discount;\r\n      state.checkout.total = state.checkout.subtotal - discount;\r\n    },\r\n\r\n    applyShipping(state, action) {\r\n      const shipping = action.payload;\r\n      state.checkout.shipping = shipping;\r\n      state.checkout.total = state.checkout.subtotal - state.checkout.discount + shipping;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nexport const {\r\n  getCart,\r\n  addCart,\r\n  resetCart,\r\n  onGotoStep,\r\n  onBackStep,\r\n  onNextStep,\r\n  deleteCart,\r\n  createBilling,\r\n  applyShipping,\r\n  applyDiscount,\r\n  increaseQuantity,\r\n  decreaseQuantity,\r\n  sortByProducts,\r\n  filterProducts\r\n} = slice.actions;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getProducts() {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response: { data: { products: Product[] } } = await axios.get('/api/products');\r\n      dispatch(slice.actions.getProductsSuccess(response.data.products));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getProduct(name: string) {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response: { data: { product: Product } } = await axios.get('/api/products/product', {\r\n        params: { name }\r\n      });\r\n      dispatch(slice.actions.getProductSuccess(response.data.product));\r\n    } catch (error) {\r\n      console.error(error);\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { omit } from 'lodash';\r\n// utils\r\nimport axios from '../../utils/axios';\r\nimport { KanbanCard, KanbanColumn } from '../../@types/kanban';\r\nimport { dispatch } from '../store';\r\n// ----------------------------------------------------------------------\r\n\r\nfunction objFromArray<Type extends Record<string, any>>(array: Type[], key: string = 'id') {\r\n  return array.reduce<Record<string, Type>>((accumulator, current) => {\r\n    accumulator[current[key]] = current;\r\n    return accumulator;\r\n  }, {});\r\n}\r\n\r\ntype InitialState = {\r\n  isLoading: boolean;\r\n  error: boolean;\r\n  board: {\r\n    cards: Record<string, KanbanCard>;\r\n    columns: Record<string, KanbanColumn>;\r\n    columnOrder: string[];\r\n  };\r\n};\r\n\r\nconst initialState: InitialState = {\r\n  isLoading: false,\r\n  error: false,\r\n  board: {\r\n    cards: {},\r\n    columns: {},\r\n    columnOrder: []\r\n  }\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'kanban',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    // GET BOARD\r\n    getBoardSuccess(state, action) {\r\n      state.isLoading = false;\r\n      const board = action.payload;\r\n      const cards = objFromArray<KanbanCard>(board.cards);\r\n      const columns = objFromArray<KanbanColumn>(board.columns);\r\n      const { columnOrder } = board;\r\n      state.board = {\r\n        cards,\r\n        columns,\r\n        columnOrder\r\n      };\r\n    },\r\n\r\n    // CREATE NEW COLUMN\r\n    createColumnSuccess(state, action) {\r\n      const newColumn = action.payload;\r\n      state.isLoading = false;\r\n      state.board.columns = {\r\n        ...state.board.columns,\r\n        [newColumn.id]: newColumn\r\n      };\r\n      state.board.columnOrder.push(newColumn.id);\r\n    },\r\n\r\n    persistCard(state, action) {\r\n      const columns = action.payload;\r\n      state.board.columns = columns;\r\n    },\r\n\r\n    persistColumn(state, action) {\r\n      state.board.columnOrder = action.payload;\r\n    },\r\n\r\n    addTask(state, action) {\r\n      const { card, columnId } = action.payload;\r\n\r\n      state.board.cards[card.id] = card;\r\n      state.board.columns[columnId].cardIds.push(card.id);\r\n    },\r\n\r\n    deleteTask(state, action) {\r\n      const { cardId, columnId } = action.payload;\r\n\r\n      state.board.columns[columnId].cardIds = state.board.columns[columnId].cardIds.filter(\r\n        (id) => id !== cardId\r\n      );\r\n      state.board.cards = omit(state.board.cards, [cardId]);\r\n    },\r\n\r\n    // UPDATE COLUMN\r\n    updateColumnSuccess(state, action) {\r\n      const column = action.payload;\r\n\r\n      state.isLoading = false;\r\n      state.board.columns[column.id] = column;\r\n    },\r\n\r\n    // DELETE COLUMN\r\n    deleteColumnSuccess(state, action) {\r\n      const { columnId } = action.payload;\r\n      const deletedColumn = state.board.columns[columnId];\r\n\r\n      state.isLoading = false;\r\n      state.board.columns = omit(state.board.columns, [columnId]);\r\n      state.board.cards = omit(state.board.cards, [...deletedColumn.cardIds]);\r\n      state.board.columnOrder = state.board.columnOrder.filter((c) => c !== columnId);\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\nexport const { actions } = slice;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getBoard() {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/kanban/board');\r\n      dispatch(slice.actions.getBoardSuccess(response.data.board));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function createColumn(newColumn: { name: string }) {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.post('/api/kanban/columns/new', newColumn);\r\n      dispatch(slice.actions.createColumnSuccess(response.data.column));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function updateColumn(columnId: string, updateColumn: KanbanColumn) {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.post('/api/kanban/columns/update', {\r\n        columnId,\r\n        updateColumn\r\n      });\r\n      dispatch(slice.actions.updateColumnSuccess(response.data.column));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function deleteColumn(columnId: string) {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      await axios.post('/api/kanban/columns/delete', { columnId });\r\n      dispatch(slice.actions.deleteColumnSuccess({ columnId }));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function persistColumn(newColumnOrder: string[]) {\r\n  return () => {\r\n    dispatch(slice.actions.persistColumn(newColumnOrder));\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function persistCard(columns: Record<string, KanbanColumn>) {\r\n  return () => {\r\n    dispatch(slice.actions.persistCard(columns));\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function addTask({ card, columnId }: { card: Partial<KanbanCard>; columnId: string }) {\r\n  return () => {\r\n    dispatch(slice.actions.addTask({ card, columnId }));\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function deleteTask({ cardId, columnId }: { cardId: string; columnId: string }) {\r\n  return () => {\r\n    dispatch(slice.actions.deleteTask({ cardId, columnId }));\r\n  };\r\n}\r\n","import { createSlice, current } from '@reduxjs/toolkit';\r\nimport { store } from '../store';\r\nimport axiosInstance from 'utils/axios';\r\n\r\n// @types\r\nimport {\r\n  StudyPlanState,\r\n  StudyPlanItemProgressRequest,\r\n  StudyPlanSaveProgressResponse,\r\n  StudyPlanSaveProgressResult,\r\n  StudyPlanView,\r\n  StudyPlanResponse,\r\n  StudyPlanResult,\r\n  StudyPlanChapter,\r\n  StudyPlanItemStatus,\r\n  Progression,\r\n  StudyPlanItem\r\n} from '../../@types/pedagogy';\r\nimport { ModeAccess } from '../../@types/account';\r\nimport {\r\n  getItemsUpdated,\r\n  getMarker,\r\n  initProgression,\r\n  refreshPhases,\r\n  setStudyPlan,\r\n  updateChapterUpdated\r\n} from 'utils/helperStudyPlan';\r\nimport { map } from 'lodash';\r\nimport produce from 'immer';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: StudyPlanState = {\r\n  isLoading: true,\r\n  error: false,\r\n  marker: null,\r\n  chapterItemUpdatedList: null,\r\n  phases: null,\r\n  skills: null,\r\n  chapter: null,\r\n  item: null,\r\n  subChapter: null,\r\n  currentSendingPhase: 0,\r\n  constrainedCourse: false,\r\n  updated: false,\r\n  progression: 0,\r\n  context: null,\r\n  internshipsOfSupport: null\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'studyPlan',\r\n  initialState,\r\n  reducers: {\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n      state.error = false;\r\n    },\r\n\r\n    endLoading(state) {\r\n      state.isLoading = false;\r\n    },\r\n\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    setStudyPlan(state, action) {\r\n      state.isLoading = false;\r\n      state.marker = action.payload.studyPlan.marker;\r\n      state.phases = action.payload.studyPlan.phases;\r\n      state.skills = action.payload.studyPlan.skills;\r\n      state.internshipsOfSupport = action.payload.studyPlan.internshipsOfSupport;\r\n      state.chapterItemUpdatedList = action.payload.studyPlan.chapterItemUpdatedList;\r\n      state.currentSendingPhase = action.payload.studyPlan.currentSendingPhase;\r\n      state.constrainedCourse = action.payload.constrainedCourse;\r\n      state.context = action.payload.studyPlan.context;\r\n      state.progression =\r\n        (action.payload.progression.assimilate / action.payload.progression.count) * 100;\r\n    },\r\n\r\n    selectItem(state, action) {\r\n      const { chapter, item, updated, subChapter, phases } = action.payload;\r\n\r\n      //marquer comme lu\r\n      let itemTmp = {\r\n        ...item,\r\n        status: item?.status === StudyPlanItemStatus.None ? StudyPlanItemStatus.Read : item?.status,\r\n        updated: item?.status === StudyPlanItemStatus.None ? true : item.updated\r\n      };\r\n\r\n      let progression = initProgression();\r\n\r\n      const phasesTmp = produce(state.phases!, (draft) => {\r\n        return setStudyPlan(draft, itemTmp);\r\n      });\r\n\r\n      //refreshPhases(phasesTemp, state.currentSendingPhase, state.constrainedCourse, progression);\r\n      // console.log(phasesTemp, 'phasesTemp1');\r\n\r\n      state.phases = phasesTmp;\r\n      state.marker = getMarker(itemTmp);\r\n      state.chapter = action.payload.chapter;\r\n      state.item = itemTmp;\r\n      state.subChapter = action.payload.subChapter;\r\n      state.isLoading = false;\r\n      state.error = null;\r\n      state.updated = updated;\r\n      state.progression = (progression.assimilate / progression.count) * 100;\r\n    },\r\n\r\n    resetUpdated(state) {\r\n      state.updated = false;\r\n      state.isLoading = false;\r\n    },\r\n\r\n    resetState(state) {\r\n      state.isLoading = false;\r\n      state.error = false;\r\n      state.marker = null;\r\n      state.chapterItemUpdatedList = null;\r\n      state.phases = null;\r\n      state.skills = null;\r\n      state.chapter = null;\r\n      state.item = null;\r\n      state.subChapter = null;\r\n      state.currentSendingPhase = 0;\r\n      state.constrainedCourse = false;\r\n      state.updated = false;\r\n      state.progression = 0;\r\n      state.context = null;\r\n      state.internshipsOfSupport = null;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nexport const { resetState } = slice.actions;\r\n\r\n// ----------------------------------------------------------------------\r\n/**\r\n * Sauvegarder la progression\r\n * Attention : seulement en mode lecture\r\n * @param request\r\n * @returns\r\n */\r\nexport const saveProgress =\r\n  (request: StudyPlanItemProgressRequest) => (onSuccess: (state: boolean) => void) => {\r\n    return async () => {\r\n      const { dispatch } = store;\r\n      try {\r\n        let response = await axiosInstance.post<StudyPlanSaveProgressResponse>(\r\n          `/api/pedagogy/progression/save`,\r\n          request,\r\n          {\r\n            headers: { writeOnly: true }\r\n          }\r\n        );\r\n        const { result } = response.data;\r\n        switch (result) {\r\n          case StudyPlanSaveProgressResult.Success:\r\n            onSuccess(true);\r\n            break;\r\n        }\r\n      } catch (ex) {\r\n        console.log(ex);\r\n      }\r\n    };\r\n  };\r\n\r\n/**\r\n * Initialisation du plan d'étude\r\n * @param view : Type de vue demandée\r\n * @param modeAccess : Acces mode admin ou eleve\r\n * @returns\r\n */\r\nexport const getStudyPlan = (\r\n  view: StudyPlanView,\r\n  modeAccess: ModeAccess,\r\n  constrainedCourse: boolean\r\n) => {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n\r\n    dispatch(slice.actions.startLoading());\r\n\r\n    //determiner le type de vue\r\n    const urlStudyPlanView = view === StudyPlanView.Global ? `?view=${StudyPlanView.Global}` : '';\r\n\r\n    const urlStudyPlan =\r\n      modeAccess === ModeAccess.Control\r\n        ? `/api/pedagogy/studyplan/control${urlStudyPlanView}`\r\n        : `/api/pedagogy/studyplan${urlStudyPlanView}`;\r\n\r\n    const response = await axiosInstance.get<StudyPlanResponse>(urlStudyPlan);\r\n\r\n    const { result, studyPlan } = response.data;\r\n    switch (result) {\r\n      case StudyPlanResult.Success:\r\n        // liste des supports pedagos que l'élève doit revoir car maj\r\n        studyPlan.chapterItemUpdatedList = getItemsUpdated(studyPlan.phases);\r\n\r\n        // on remonte l'info aux parents\r\n        studyPlan.phases.map((p) => {\r\n          p.chapters.map((uf: StudyPlanChapter) => updateChapterUpdated(uf));\r\n        });\r\n\r\n        // Maj du PE brut avec les verrou suivant le type de parcours libre ou contraint\r\n        let progression = initProgression();\r\n\r\n        //mise à jour du plan d'étude\r\n        refreshPhases(\r\n          studyPlan.phases,\r\n          studyPlan.currentSendingPhase,\r\n          constrainedCourse,\r\n          progression\r\n        );\r\n\r\n        dispatch(\r\n          slice.actions.setStudyPlan({\r\n            studyPlan: studyPlan,\r\n            constrainedCourse: constrainedCourse,\r\n            progression: progression\r\n          })\r\n        );\r\n\r\n        //Extraction des devoirs\r\n        /*\r\n        let homeworks: Array<HomeworkBase> = [];\r\n        studyPlan.phases.map((phase: StudyPlanPhase) =>\r\n          phase.chapters.map((chapter: StudyPlanChapter) => {\r\n            extractHomework(chapter, homeworks);\r\n          })\r\n        );\r\n\r\n        dispatchRedux(getObjectives(homeworks));\r\n*/\r\n        break;\r\n      default:\r\n        dispatch(slice.actions.hasError('Une erreur de traitement'));\r\n    }\r\n  };\r\n};\r\n","import { combineReducers } from 'redux';\r\nimport { persistReducer } from 'redux-persist';\r\nimport storage from 'redux-persist/lib/storage';\r\n// slices\r\nimport mailReducer from './slices/mail';\r\nimport chatReducer from './slices/chat';\r\nimport blogReducer from './slices/blog';\r\nimport userReducer from './slices/user';\r\nimport productReducer from './slices/product';\r\nimport calendarReducer from './slices/calendar';\r\nimport kanbanReducer from './slices/kanban';\r\nimport favoriteReducer from './slices/favorite';\r\nimport articleReducer from './slices/article';\r\nimport agendaReducer from './slices/agenda';\r\nimport meetingReducer from './slices/meeting';\r\nimport virtualClassReducer from './slices/virtualClass';\r\nimport workshopReducer from './slices/workshop';\r\nimport objectiveReducer from './slices/objective';\r\nimport learningReducer from './slices/learning';\r\nimport jobReducer from './slices/job';\r\nimport taskReducer from './slices/task';\r\nimport messageReducer from './slices/message';\r\nimport homeworkInProgressReducer from './slices/homeworkInProgress';\r\nimport mediaFileReducer from './slices/mediaFile';\r\nimport pageTemplateReducer from './slices/pageTemplate';\r\nimport notificationReducer from './slices/notification';\r\nimport internshipReducer from './slices/internship';\r\nimport surveyReducer from './slices/survey';\r\nimport studyPlanReducer from './slices/studyPlan';\r\nimport examenReducer from './slices/examen';\r\nimport specificNeedsReducer from './slices/specificNeeds';\r\nimport studentReducer from './slices/student';\r\nimport dashboardJobReducer from './slices/dashboardJob';\r\nimport homeworkCacheContent from './slices/homeworkCacheContent';\r\n// ----------------------------------------------------------------------\r\n\r\nconst rootPersistConfig = {\r\n  key: 'root',\r\n  storage,\r\n  keyPrefix: 'redux-',\r\n  whitelist: []\r\n};\r\n\r\nconst productPersistConfig = {\r\n  key: 'product',\r\n  storage,\r\n  keyPrefix: 'redux-',\r\n  whitelist: ['sortBy', 'checkout']\r\n};\r\n\r\nconst allReducers = combineReducers({\r\n  article: articleReducer,\r\n  meeting: meetingReducer,\r\n  favorite: favoriteReducer,\r\n  agenda: agendaReducer,\r\n  objective: objectiveReducer,\r\n  task: taskReducer,\r\n  virtualClass: virtualClassReducer,\r\n  workshop: workshopReducer,\r\n  mediaFile: mediaFileReducer,\r\n  message: messageReducer,\r\n  homeworkInProgress: homeworkInProgressReducer,\r\n  mail: mailReducer,\r\n  chat: chatReducer,\r\n  blog: blogReducer,\r\n  user: userReducer,\r\n  calendar: calendarReducer,\r\n  kanban: kanbanReducer,\r\n  learning: learningReducer,\r\n  pageTemplate: pageTemplateReducer,\r\n  notification: notificationReducer,\r\n  job: jobReducer,\r\n  dashboardJob: dashboardJobReducer,\r\n  survey: surveyReducer,\r\n  internship: internshipReducer,\r\n  studyPlan: studyPlanReducer,\r\n  examen: examenReducer,\r\n  specificNeeds: specificNeedsReducer,\r\n  student: studentReducer,\r\n  homeworkCacheContent: homeworkCacheContent,\r\n  product: persistReducer(productPersistConfig, productReducer)\r\n});\r\n\r\nconst rootReducer = (state: any, action: any) => {\r\n  if (action.type === 'agenda/logoutUser') {\r\n    state = undefined;\r\n  }\r\n  return allReducers(state, action);\r\n};\r\n\r\nexport { rootPersistConfig, rootReducer };\r\n","import { configureStore, getDefaultMiddleware } from '@reduxjs/toolkit';\r\nimport { useDispatch as useReduxDispatch, useSelector as useReduxSelector } from 'react-redux';\r\nimport { persistStore, persistReducer } from 'redux-persist';\r\nimport { rootPersistConfig, rootReducer } from './rootReducer';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst store = configureStore({\r\n  reducer: persistReducer(rootPersistConfig, rootReducer),\r\n  middleware: getDefaultMiddleware({\r\n    serializableCheck: false,\r\n    immutableCheck: false\r\n  })\r\n});\r\n\r\nconst persistor = persistStore(store);\r\n\r\nexport type RootState = ReturnType<typeof store.getState>;\r\nexport type AppDispatch = typeof store.dispatch;\r\n\r\nconst { dispatch } = store;\r\n\r\nconst useSelector = useReduxSelector;\r\nconst useDispatch = () => useReduxDispatch<AppDispatch>();\r\n\r\nexport { store, persistor, dispatch, useSelector, useDispatch };\r\n","import { useMediaQuery } from '@mui/material';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nexport default function useScreenConfig() {\r\n  const theme = useTheme();\r\n\r\n  //Taille écran\r\n  //Valeurs possibles des breakpoints : xs, sm, md, lg, xl\r\n\r\n  //Bornes max\r\n  const isDownSM = useMediaQuery(theme.breakpoints.down('sm'));\r\n  const isDownMD = useMediaQuery(theme.breakpoints.down('md'));\r\n\r\n  //Bornes min\r\n  const isUpMD = useMediaQuery(theme.breakpoints.up('md'));\r\n  const isUpLG = useMediaQuery(theme.breakpoints.up('lg'));\r\n\r\n  //Theme\r\n  const isLight = theme.palette.mode === 'light';\r\n\r\n  return {\r\n    isMobile: isDownSM,\r\n    isMediumOrMobile: isDownMD,\r\n    isDesktop: isUpMD,\r\n    isLargeScreen: isUpLG,\r\n    isLight\r\n  };\r\n}\r\n","import { Examen, PeriodeExamen, SessionExamen, TypeCategoryObjectif } from '../@types/examen';\r\n\r\nexport type LabelCategoryObjectif = {\r\n  minuscule: string;\r\n  debuteMajuscule: string;\r\n  minusculePluriel: string;\r\n  debuteMajusculePluriel: string;\r\n  accord: string;\r\n  accordPluriel: string;\r\n  precision: string;\r\n  precisionPluriel: string;\r\n  possessif: string;\r\n  debuteMajusculePossessif: string;\r\n};\r\n\r\nexport const getLabelCategoryObjectif = (category: string): LabelCategoryObjectif => {\r\n  switch (category as TypeCategoryObjectif) {\r\n    case TypeCategoryObjectif.Examen:\r\n      return {\r\n        minuscule: 'examen',\r\n        debuteMajuscule: 'Examen',\r\n        minusculePluriel: 'examens',\r\n        debuteMajusculePluriel: 'Examens',\r\n        accord: \"à l'examen\",\r\n        accordPluriel: 'aux examens',\r\n        precision: 'cet examen',\r\n        precisionPluriel: 'ces examens',\r\n        possessif: 'mon examen',\r\n        debuteMajusculePossessif: 'Mon examen'\r\n      };\r\n    case TypeCategoryObjectif.Concours:\r\n      return {\r\n        minuscule: 'concours',\r\n        debuteMajuscule: 'Concours',\r\n        minusculePluriel: 'concours',\r\n        debuteMajusculePluriel: 'Concours',\r\n        accord: 'au concours',\r\n        accordPluriel: 'aux concours',\r\n        precision: 'cet concours',\r\n        precisionPluriel: 'ces concours',\r\n        possessif: 'mon concours',\r\n        debuteMajusculePossessif: 'Mon concours'\r\n      };\r\n    case TypeCategoryObjectif.TitrePro:\r\n      return {\r\n        minuscule: 'titre professionnel',\r\n        debuteMajuscule: 'Titre professionnel',\r\n        minusculePluriel: 'titres professionnels',\r\n        debuteMajusculePluriel: 'Titres professionnels',\r\n        accord: 'au titre professionnel',\r\n        accordPluriel: 'aux titres professionnels',\r\n        precision: 'ce titre professionnel',\r\n        precisionPluriel: 'ces titres professionnels',\r\n        possessif: 'mon titre professionnel',\r\n        debuteMajusculePossessif: 'Mon titre professionnel'\r\n      };\r\n    case TypeCategoryObjectif.Certification:\r\n      return {\r\n        minuscule: 'certification',\r\n        debuteMajuscule: 'Certification',\r\n        minusculePluriel: 'certifications',\r\n        debuteMajusculePluriel: 'Certifications',\r\n        accord: 'à la certification',\r\n        accordPluriel: 'aux certifications',\r\n        precision: 'cette certification',\r\n        precisionPluriel: 'ces certifications',\r\n        possessif: 'ma certification',\r\n        debuteMajusculePossessif: 'Ma certification'\r\n      };\r\n    default:\r\n      return {\r\n        minuscule: '',\r\n        debuteMajuscule: '',\r\n        minusculePluriel: '',\r\n        debuteMajusculePluriel: '',\r\n        accord: '',\r\n        accordPluriel: '',\r\n        precision: '',\r\n        precisionPluriel: '',\r\n        possessif: '',\r\n        debuteMajusculePossessif: ''\r\n      };\r\n  }\r\n};\r\n\r\n/*\r\n * Méthode retournant les libellés par défaut de la rubrique \"Examens\"\r\n * A modifier pour renommer le menu, les titres de rubriques...\r\n */\r\nexport const getLabelDefaultCategoryObjectif = () => {\r\n  return getLabelCategoryObjectif(TypeCategoryObjectif.Examen);\r\n};\r\n\r\n/*\r\n * Utilisée pour les titres des rubriques, messages globaux...\r\n */\r\nexport const getLabelMultiCategoryObjectif = (categories: Array<string>) => {\r\n  const defaultLabels = getLabelDefaultCategoryObjectif();\r\n\r\n  let result: LabelCategoryObjectif = {\r\n    minuscule: '',\r\n    debuteMajuscule: '',\r\n    minusculePluriel: '',\r\n    debuteMajusculePluriel: '',\r\n    accord: defaultLabels?.accordPluriel,\r\n    accordPluriel: '',\r\n    precision: defaultLabels?.precisionPluriel,\r\n    precisionPluriel: ''\r\n  };\r\n\r\n  categories.forEach((c: string, i: number) => {\r\n    const separator: string = i > 0 ? ' / ' : '';\r\n    const labelsCategorie = getLabelCategoryObjectif(c);\r\n\r\n    result.minuscule = result.minuscule + separator + labelsCategorie?.minuscule;\r\n    result.debuteMajuscule = result.debuteMajuscule + separator + labelsCategorie?.debuteMajuscule;\r\n    result.minusculePluriel =\r\n      result.minusculePluriel + separator + labelsCategorie?.minusculePluriel;\r\n    result.debuteMajusculePluriel =\r\n      result.debuteMajusculePluriel + separator + labelsCategorie?.debuteMajusculePluriel;\r\n  });\r\n\r\n  result.accordPluriel = 'aux ' + result.minusculePluriel;\r\n  result.precisionPluriel = 'ces ' + result.minusculePluriel;\r\n\r\n  return result;\r\n};\r\n\r\nexport const getLabelTypeFile = (type: string) => {\r\n  switch (type) {\r\n    case 'DIS':\r\n      return 'justificatif de dispense';\r\n    case 'INS':\r\n      return 'fiche';\r\n    case 'REL':\r\n      return 'relevé de notes';\r\n\r\n    default:\r\n      return '';\r\n  }\r\n};\r\n\r\nexport const getSessionsFutures = (sessions: SessionExamen[]) => {\r\n  return sessions\r\n    ? sessions.filter(\r\n        (s: SessionExamen) =>\r\n          s.dateEpreuvesAdmission &&\r\n          s.dateEpreuvesAdmission !== '' &&\r\n          new Date(s.dateEpreuvesAdmission) >= new Date()\r\n      )\r\n    : [];\r\n};\r\n\r\nexport const getSessionsFuturesDisponibles = (sessions: SessionExamen[]) => {\r\n  return sessions\r\n    ? sessions.filter(\r\n        (s: SessionExamen) =>\r\n          s.dateEpreuvesAdmission &&\r\n          s.dateEpreuvesAdmission !== '' &&\r\n          new Date(s.dateEpreuvesAdmission) >= new Date() &&\r\n          s.nombreInscrits < s.nombrePlacesMax\r\n      )\r\n    : [];\r\n};\r\n\r\nexport const getPeriodesFutures = (periodes: PeriodeExamen[]) => {\r\n  return periodes ? periodes.filter((p: PeriodeExamen) => new Date(p.dateDebut) >= new Date()) : [];\r\n};\r\n\r\nexport const isAllowedUnregisterExamenInterne = (examen: Examen) => {\r\n  return examen?.session?.code === '' && examen?.periode?.code !== '';\r\n};\r\n","import { styled } from '@mui/material/styles';\r\nimport { Verified, Close, ExpandMore } from '@mui/icons-material';\r\nimport { Accordion, AccordionDetails, AccordionSummary, Typography, Card } from '@mui/material';\r\nimport { Box, useTheme } from '@mui/system';\r\nimport CircularProgressWithLabel from 'components/CircularProgressWithLabel';\r\n\r\n//type\r\nimport { StudyPlanChapter } from '../../../../@types/pedagogy';\r\nimport ChapterScoreAvg from '../List/ChapterScoreAvg';\r\nimport ChapterItemGroupCard from './ChapterItemGroupCard';\r\nimport ChapterStatus from './ChapterStatus';\r\nimport { ScoreAvgProgress } from '../ScoreAvgProgress';\r\nimport StudyPlanChapterAverageDialog from '../Moyenne/StudyPlanChapterAverageDialog';\r\n\r\nconst SkillStyle = styled(Accordion)(({ theme }) => ({\r\n  borderRadius: 0,\r\n  '& .Mui-expanded': {\r\n    backgroundColor: theme.palette.grey[100],\r\n    marginTop: 0\r\n  }\r\n}));\r\n\r\nexport type SubChapterCardProps = {\r\n  chapter: StudyPlanChapter;\r\n  selectedId?: string;\r\n  onSelect: (value: string, expanded: boolean) => void;\r\n};\r\n\r\nexport default function SubChapterCard({ chapter, selectedId, onSelect }: SubChapterCardProps) {\r\n  const { id, progression, label, items } = chapter;\r\n  const theme = useTheme();\r\n  return (\r\n    <SkillStyle\r\n      expanded={id === selectedId}\r\n      onChange={(event: any, expanded: boolean) => onSelect(id, expanded)}\r\n    >\r\n      <AccordionSummary expandIcon={<ExpandMore sx={{ color: '#637381' }} />}>\r\n        <ChapterStatus chapter={chapter} />\r\n        <Typography variant=\"body2\" sx={{ width: '60%', flexShrink: 0 }}>\r\n          {label}\r\n        </Typography>\r\n      </AccordionSummary>\r\n      <AccordionDetails sx={{ p: 0, backgroundColor: theme.palette.grey[100] }}>\r\n        <Box display=\"flex\" flexDirection=\"row\" paddingRight=\"20px\">\r\n          <Box sx={{ flexGrow: 1 }} />\r\n          <StudyPlanChapterAverageDialog\r\n            name={chapter.label}\r\n            chapters={[chapter]}\r\n            averageComponent={<ScoreAvgProgress progression={progression} />}\r\n          >\r\n            {(onClick) => <ScoreAvgProgress onClick={onClick} progression={progression} />}\r\n          </StudyPlanChapterAverageDialog>\r\n        </Box>\r\n        <ChapterItemGroupCard items={items} />\r\n      </AccordionDetails>\r\n    </SkillStyle>\r\n  );\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Icon } from '@iconify/react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport plusFill from '@iconify/icons-eva/plus-fill';\r\n\r\n// material\r\nimport { Box, List, Drawer, Button, Divider, Typography, CardHeader, Tooltip } from '@mui/material';\r\n//type\r\nimport { StudyPlanChapter } from '../../../../@types/pedagogy';\r\n// redux\r\nimport { RootState, useSelector } from 'redux/store';\r\n//components\r\nimport Scrollbar from 'components/Scrollbar';\r\nimport { MHidden } from 'components/@material-extend';\r\nimport SubChapterCard from './SubChapterCard';\r\nimport ChapterItemGroupCard from './ChapterItemGroupCard';\r\nimport MIconButton from 'components/MIconButton';\r\nimport { ImportContacts, MenuBook } from '@mui/icons-material';\r\nimport useStudyPlan from 'hooks/useStudyPlan';\r\nimport useScreenConfig from 'hooks/useScreenConfig';\r\nimport useStudyPlanChapterItem from 'hooks/useStudyPlanChapterItem';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ntype StudyPlanDetailsSidebarProps = {\r\n  isOpenSidebar: boolean;\r\n  onCloseSidebar: VoidFunction;\r\n  chapter?: StudyPlanChapter;\r\n  selectedId?: string;\r\n  isFullScreen: boolean;\r\n};\r\n\r\nexport default function StudyPlanDetailsSidebar({\r\n  isOpenSidebar,\r\n  onCloseSidebar,\r\n  chapter,\r\n  selectedId,\r\n  isFullScreen\r\n}: StudyPlanDetailsSidebarProps) {\r\n  const { pathname } = useLocation();\r\n  const [expanded, setExpanded] = React.useState<any>(selectedId);\r\n  const { isMediumOrMobile } = useScreenConfig();\r\n  const handleChange = (id: string, isExpanded: boolean) => {\r\n    setExpanded(isExpanded ? id : false);\r\n  };\r\n\r\n  const managerChapterItem = useStudyPlanChapterItem();\r\n\r\n  useEffect(() => {\r\n    if (isOpenSidebar) {\r\n      onCloseSidebar();\r\n    }\r\n  }, [pathname]);\r\n\r\n  useEffect(() => {\r\n    if (!selectedId) return;\r\n\r\n    setExpanded(selectedId);\r\n  }, [selectedId]);\r\n\r\n  /**Déplacement vers l'item sélectionné */\r\n  useEffect(() => {\r\n    const selectedKey = managerChapterItem.selected?.item?.key;\r\n    if (selectedKey) {\r\n      const selector = `#SItem-${selectedKey}`;\r\n      const section = document.querySelector(selector);\r\n      section?.scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n      /**\r\n *  if (isMediumOrMobile && onCloseSidebar) {\r\n        onCloseSidebar();\r\n      }\r\n */\r\n    }\r\n  }, [managerChapterItem.selected?.item]);\r\n\r\n  const renderContent = (\r\n    <>\r\n      <CardHeader\r\n        title={\r\n          <Typography variant=\"subtitle1\" gutterBottom>\r\n            {chapter?.chapters ? 'Sous chapitres' : 'Supports pédagogiques'}\r\n          </Typography>\r\n        }\r\n        action={\r\n          <Tooltip title=\"Liste des supports pédagogiques\">\r\n            <MIconButton onClick={() => onCloseSidebar()}>\r\n              {isOpenSidebar && !isMediumOrMobile ? <MenuBook /> : <ImportContacts />}\r\n            </MIconButton>\r\n          </Tooltip>\r\n        }\r\n      />\r\n      <Scrollbar\r\n        sx={{\r\n          display: 'flex',\r\n          flexDirection: 'column',\r\n          height: isFullScreen ? 'calc(100vh - 55px)' : '70vh'\r\n        }}\r\n      >\r\n        <Box height=\"100%\">\r\n          {chapter?.chapters?.map((subChapter) => {\r\n            return (\r\n              <SubChapterCard\r\n                chapter={subChapter}\r\n                key={subChapter.id}\r\n                selectedId={expanded}\r\n                onSelect={handleChange}\r\n              />\r\n            );\r\n          })}\r\n          {chapter?.items && <ChapterItemGroupCard items={chapter?.items} />}\r\n        </Box>\r\n      </Scrollbar>\r\n    </>\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <MHidden width=\"mdUp\">\r\n        <Drawer\r\n          open={isOpenSidebar}\r\n          onClose={onCloseSidebar}\r\n          ModalProps={{ keepMounted: true }}\r\n          PaperProps={{ sx: { width: 280 } }}\r\n        >\r\n          {renderContent}\r\n        </Drawer>\r\n      </MHidden>\r\n      <MHidden width=\"mdDown\">\r\n        <Drawer\r\n          variant=\"persistent\"\r\n          open={!isOpenSidebar}\r\n          PaperProps={{\r\n            sx: {\r\n              width: isOpenSidebar ? 0 : 280,\r\n              position: 'static'\r\n            }\r\n          }}\r\n        >\r\n          {renderContent}\r\n        </Drawer>\r\n      </MHidden>\r\n    </>\r\n  );\r\n}\r\n","import { Record } from 'immutable';\r\nimport { useEffect } from 'react';\r\nimport { useLocation } from 'react-router';\r\nimport { isValidHttpUrl } from 'utils/helper';\r\n\r\nconst keysListenOfUrl: Record<string, Array<string>> = {\r\n  'https://seriousskills.myskillandyou.com': ['scrolltop', 'time', 'note'],\r\n  'https://video.espace-eleves.com': ['time'],\r\n  'https://images.myskillandyou.com': ['currentarticle', 'end'],\r\n  'https://pre-seriousskills.skillandyou.io': ['note']\r\n};\r\n\r\ntype useIframeProps = {\r\n  url: string;\r\n  onEvent: (type: string, value: any) => void;\r\n};\r\n\r\n/**\r\n * permet de s'abonner aux events (postMessage)\r\n * @param param0\r\n * @returns\r\n */\r\nexport const usePostMessage = ({ url = '', onEvent }: useIframeProps) => {\r\n  var location = isValidHttpUrl(url) ? new URL(url) : null;\r\n  const keys = keysListenOfUrl[location?.origin];\r\n\r\n  function listenerMessage(ev: MessageEvent<{ type: string; value: any; score: any }>) {\r\n    if (keys === undefined || keys === null || keys.length === 0) return;\r\n\r\n    if ([location?.origin].includes(ev.origin)) {\r\n      if (keys?.includes(ev.data.type)) {\r\n        onEvent(ev.data.type, ev.data.value);\r\n      }\r\n    }\r\n  }\r\n\r\n  useEffect(() => {\r\n    if (!isValidHttpUrl(url)) return;\r\n\r\n    //ecoute la position du cours html\r\n    window.addEventListener('message', listenerMessage);\r\n    return () => {\r\n      window.removeEventListener('message', listenerMessage);\r\n    };\r\n  }, [url]);\r\n\r\n  return {};\r\n};\r\n","// material\r\nimport { Box } from '@mui/material';\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport useTrackerActivity from 'hooks/useTrackerActivity';\r\nimport EmptyContent from 'components/EmptyContent';\r\nimport CardMediaCustom from 'components/CardMediaCustom';\r\nimport { usePostMessage } from 'hooks/usePostMessage';\r\nimport { isValidHttpUrl } from 'utils/helper';\r\nimport { styled } from '@mui/styles';\r\nimport CardMediaVideoAudio from 'components/CardMediaVideo';\r\nimport { StudyPlanItemType } from '../../../../@types/pedagogy';\r\n\r\n// ----------------------------------------------------------------------\r\nexport type StudyPlanDetailsIframeProps = {\r\n  url: string;\r\n  type: StudyPlanItemType;\r\n  courseId?: string;\r\n};\r\n\r\nconst BoxStyled = styled(Box)({\r\n  display: 'flex',\r\n  flexDirection: 'column',\r\n  flexGrow: 1,\r\n  height: '100%',\r\n  overflow: 'auto'\r\n});\r\n\r\nexport default function StudyPlanDetailsIframe({\r\n  url,\r\n  type,\r\n  courseId\r\n}: StudyPlanDetailsIframeProps) {\r\n  const { eventHandler } = useTrackerActivity({ parent: null });\r\n  const {} = usePostMessage({\r\n    url: url,\r\n    onEvent: () => {\r\n      eventHandler(null);\r\n    }\r\n  });\r\n\r\n  if (!isValidHttpUrl(url))\r\n    return (\r\n      <BoxStyled>\r\n        <EmptyContent title=\"Ce contenu est inaccessible\" description=\"\" />\r\n      </BoxStyled>\r\n    );\r\n\r\n  return (\r\n    <BoxStyled>\r\n      {[StudyPlanItemType.Audio, StudyPlanItemType.Video].includes(type) ? (\r\n        <CardMediaVideoAudio url={url} isVideo={type === StudyPlanItemType.Video} />\r\n      ) : (\r\n        <CardMediaCustom url={url} isVideo={false} />\r\n      )}\r\n    </BoxStyled>\r\n  );\r\n}\r\n","import { useTheme } from '@mui/material/styles';\r\nimport {\r\n  Alert,\r\n  AlertTitle,\r\n  Box,\r\n  Button,\r\n  Card,\r\n  Dialog,\r\n  DialogActions,\r\n  DialogContent,\r\n  DialogTitle,\r\n  Stack,\r\n  Typography\r\n} from '@mui/material';\r\nimport MeetingDrawer from '../meeting/MeetingDrawer';\r\nimport { RootState, useSelector } from 'redux/store';\r\nimport {\r\n  Homework,\r\n  HomeworkBase,\r\n  HomeworkStatus,\r\n  HomeworkType,\r\n  ScoreType\r\n} from '../../../@types/pedagogy';\r\nimport useAuth from 'hooks/useAuth';\r\nimport { homeworkNoteMin } from 'config';\r\nimport { useEffect, useState } from 'react';\r\nimport { Info } from '@mui/icons-material';\r\nimport { getTeacherListForMeeting } from '../scheduleTeacher/ScheduleTeacherEventsForm';\r\nimport useStudyPlanChapterItem from 'hooks/useStudyPlanChapterItem';\r\nimport { HomeworkNote } from './HomeworkNote';\r\nimport { AgendaEvent, AgendaEventType } from '../../../@types/agenda';\r\nimport { MeetingStatus } from '../../../@types/meeting';\r\nimport { fFullDateWithHours } from 'utils/formatTime';\r\n\r\ntype HomeworkCorrectedMeetingProps = {\r\n  last: Homework;\r\n  homeworkBase: HomeworkBase;\r\n};\r\n\r\nexport default function HomeworkCorrectedMeeting({\r\n  last,\r\n  homeworkBase\r\n}: HomeworkCorrectedMeetingProps) {\r\n  const { getContractCurrent } = useAuth();\r\n  const { events } = useSelector((state: RootState) => state.agenda);\r\n  const [openPopup, setOpenPopup] = useState(false);\r\n  const [showMessage, setShowMessage] = useState(false);\r\n  const [lastMeeting, setLastMeeting] = useState<AgendaEvent | null>(null);\r\n\r\n  const theme = useTheme();\r\n\r\n  const contract = getContractCurrent();\r\n  const managerChapterItem = useStudyPlanChapterItem();\r\n\r\n  const material = managerChapterItem.selected?.item?.material;\r\n\r\n  useEffect(() => {\r\n    const homeworkCorrected: boolean =\r\n      last != null && [HomeworkStatus.Corrected, HomeworkStatus.Remade].includes(last?.status);\r\n\r\n    const noteMin = homeworkNoteMin.find((n) => n.key === contract?.scoreOn)?.value;\r\n\r\n    let noteTooLow: boolean = false;\r\n\r\n    // Devoir noté\r\n    // Note au format numérique\r\n    // Note minimale paramétrée\r\n    // Note présente sur le devoir\r\n    if (\r\n      homeworkBase?.isScore &&\r\n      homeworkBase?.scoreType === ScoreType.sur20 &&\r\n      noteMin &&\r\n      last?.note &&\r\n      last?.note !== ''\r\n    ) {\r\n      try {\r\n        noteTooLow = parseFloat(last.note.replace(',', '.')) < noteMin;\r\n      } catch (e) {\r\n        noteTooLow = false;\r\n      }\r\n    }\r\n\r\n    const hasScheduleTeacher =\r\n      getTeacherListForMeeting(events, material?.scheduleId, homeworkBase)?.length > 0;\r\n\r\n    // RDV déjà pris pour le devoir (non annulés)\r\n    const previousMeetings: AgendaEvent[] = events\r\n      ?.filter(\r\n        (evt: AgendaEvent) =>\r\n          evt.eventType === AgendaEventType.Meeting &&\r\n          evt.metadatas?.status !== MeetingStatus.Cancel &&\r\n          evt.metadatas?.homework?.barCode === homeworkBase?.barCode\r\n      )\r\n      ?.sort((a: AgendaEvent, b: AgendaEvent) =>\r\n        new Date(a.start!) < new Date(b.start!) ? 1 : -1\r\n      );\r\n\r\n    const existingMeeting: AgendaEvent | null =\r\n      previousMeetings?.length > 0 ? previousMeetings[0] : null;\r\n\r\n    const lastMeeting: AgendaEvent | null =\r\n      existingMeeting?.start && last?.correctionDate && existingMeeting.start >= last.correctionDate\r\n        ? existingMeeting\r\n        : null;\r\n\r\n    // Devoir corrigé\r\n    // Note trop faible\r\n    // Rdv disponibles\r\n    // Pas de RDV déjà pris pour le devoir\r\n    const askMeeting = homeworkCorrected && noteTooLow && hasScheduleTeacher && !lastMeeting;\r\n\r\n    // Condition sur l'affichage du message et du bouton dans le corps du devoir\r\n    const manageMessage = homeworkBase?.homeworkType !== HomeworkType.eLearning;\r\n\r\n    setLastMeeting(lastMeeting);\r\n    setShowMessage(manageMessage && askMeeting);\r\n    setOpenPopup(askMeeting);\r\n  }, [homeworkBase, events]);\r\n\r\n  const handleClosePopup = () => {\r\n    setOpenPopup(false);\r\n  };\r\n\r\n  return (\r\n    <>\r\n      {lastMeeting && (\r\n        <Alert\r\n          severity=\"info\"\r\n          sx={{ bgcolor: theme.palette.primary.lighter }}\r\n          icon={<Info sx={{ color: theme.palette.primary.main }} />}\r\n        >\r\n          {`Vous avez déjà pris rendez-vous pour ce devoir, le ${fFullDateWithHours(\r\n            lastMeeting.start\r\n          )} ${\r\n            lastMeeting?.metadatas?.teacher\r\n              ? `avec ${lastMeeting?.metadatas.teacher.civility} ${lastMeeting?.metadatas.teacher.firstName} ${lastMeeting?.metadatas.teacher.lastName}`\r\n              : ''\r\n          }.`}\r\n        </Alert>\r\n      )}\r\n\r\n      {showMessage && (\r\n        <Alert\r\n          severity=\"info\"\r\n          sx={{ bgcolor: theme.palette.primary.lighter }}\r\n          icon={<Info sx={{ color: theme.palette.primary.main }} />}\r\n        >\r\n          <AlertTitle>Prenez rendez-vous avec votre formateur</AlertTitle>\r\n          <Stack direction=\"column\">\r\n            Suite au résultat obtenu à cette évaluation, nous vous proposons de prendre un\r\n            rendez-vous avec votre formateur ou votre formatrice pour vous aider à progresser.\r\n            <Box>\r\n              <MeetingDrawer\r\n                buttonType=\"button\"\r\n                material={material}\r\n                homework={homeworkBase}\r\n                defaultPro={last?.teacher?.id}\r\n              />\r\n            </Box>\r\n          </Stack>\r\n        </Alert>\r\n      )}\r\n      <MeetingPopup\r\n        open={openPopup}\r\n        homeworkBase={homeworkBase}\r\n        last={last}\r\n        onClose={handleClosePopup}\r\n        material={material}\r\n        defaultPro={last?.teacher?.id}\r\n      />\r\n    </>\r\n  );\r\n}\r\n\r\nconst MeetingPopup = (props: any) => {\r\n  const { open, onClose, homeworkBase, last, material, defaultPro } = props;\r\n\r\n  // NB : on change le zIndex de la Dialog pour qu'elle puisse se positionner derrière le MeetingDrawer\r\n  return (\r\n    <Dialog maxWidth=\"md\" open={open} onClose={onClose} sx={{ zIndex: 1200 }}>\r\n      <DialogContent sx={{ p: 3, pb: 0 }}>\r\n        <Stack direction={{ xs: 'column', sm: 'column', md: 'row' }}>\r\n          <Box\r\n            component=\"img\"\r\n            src={'../../static/illustrations/agenda/prendre_rdv.svg'}\r\n            sx={{ maxHeight: 320, width: '100%' }}\r\n          />\r\n          <Stack>\r\n            <DialogTitle>Prenez un rendez-vous</DialogTitle>\r\n            <Stack direction=\"column\" spacing={4} sx={{ p: 3, pb: 0 }}>\r\n              <Typography variant=\"body2\">\r\n                Suite au résultat obtenu à l'évaluation \"{homeworkBase?.label}\", nous vous proposons\r\n                de prendre un rendez-vous avec votre formateur ou votre formatrice pour vous aider à\r\n                progresser.\r\n              </Typography>\r\n              <Card sx={{ padding: 2, width: 'max-content' }}>\r\n                <HomeworkNote scoreType={homeworkBase.scoreType} homework={last} label={'Note :'} />\r\n              </Card>\r\n            </Stack>\r\n            <DialogActions sx={{ justifyContent: 'center' }}>\r\n              <Button onClick={onClose} variant=\"text\">\r\n                Plus tard\r\n              </Button>\r\n              <MeetingDrawer\r\n                buttonType=\"button\"\r\n                material={material}\r\n                homework={homeworkBase}\r\n                onClose={onClose}\r\n                defaultPro={defaultPro}\r\n              />\r\n            </DialogActions>\r\n          </Stack>\r\n        </Stack>\r\n      </DialogContent>\r\n    </Dialog>\r\n  );\r\n};\r\n","// material\r\nimport { styled } from '@mui/material/styles';\r\nimport { Box, Card, Typography, Avatar, Stack, Divider } from '@mui/material';\r\n\r\n//type\r\nimport {\r\n  Homework,\r\n  HomeworkBase,\r\n  HomeworkStatus,\r\n  HomeworkType,\r\n  StudyPlanItemType,\r\n  Teacher\r\n} from '../../../@types/pedagogy';\r\n\r\nimport { UserType, FileType } from '../../../@types/common';\r\nimport { MediaFileInfo, MediaFileType, MediaPerimetre } from '../../../@types/media';\r\nimport FileDetailsAttachments from 'components/file/FileDetailsAttachments';\r\nimport { fDate } from 'utils/formatTime';\r\nimport Markdown from 'components/Markdown';\r\nimport { HomeworkNote } from 'components/_dashboard/pedagogy/HomeworkNote';\r\nimport EmptyContent from 'components/EmptyContent';\r\nimport CardContainer from 'components/CardContainer';\r\nimport StudyPlanDetailsIframe from '../studyPlan/details/StudyPlanContentIframe';\r\nimport HomeworkCorrectedMeeting from './HomeworkCorrectedMeeting';\r\nimport MediaFileCard from '../media/MediaFileCard';\r\n\r\nconst ContentStyle = styled('div')(({ theme }) => ({\r\n  padding: theme.spacing(1.5),\r\n  marginTop: theme.spacing(0.5),\r\n  borderRadius: theme.shape.borderRadius,\r\n  backgroundColor: theme.palette.background.neutral\r\n}));\r\n\r\n//---------------------------------------------------------\r\n\r\ntype HomeworkCorrectedProps = {\r\n  last: Homework;\r\n  fileCorrectedType?: MediaFileInfo;\r\n  homeworkBase: HomeworkBase;\r\n  isInPopup?: boolean; // indique si la vue est incluse dans une popup (permer de gérer le cas du bouton \"voir l'évaluation envoyée / corrigée\")\r\n};\r\n\r\n/***\r\n * Details dernier devoir en cours\r\n */\r\nexport const HomeworkCorrected = ({\r\n  last,\r\n  fileCorrectedType,\r\n  homeworkBase,\r\n  isInPopup = false\r\n}: HomeworkCorrectedProps) => {\r\n  //Aucun traitement si c'est un devoir de type eleaning\r\n  if (homeworkBase.homeworkType === HomeworkType.eLearning) {\r\n    return (\r\n      <Stack sx={{ direction: 'column', width: '100%', height: '100%' }}>\r\n        {!isInPopup && <HomeworkCorrectedMeeting homeworkBase={homeworkBase} last={last} />}\r\n        <StudyPlanDetailsIframe\r\n          url={homeworkBase.elearning.url}\r\n          type={StudyPlanItemType.Elearning}\r\n        />\r\n      </Stack>\r\n    );\r\n  }\r\n\r\n  //dernier introuvable\r\n  if (last === undefined) return <></>;\r\n\r\n  //dernier envoyé\r\n  if (last !== null && last.status === HomeworkStatus.Sended)\r\n    return (\r\n      <EmptyContent\r\n        img=\"/static/illustrations/evaluations/Evaluationenvoyee.svg\"\r\n        title={' Félicitations, votre évaluation est bien envoyé !'}\r\n        description={'Nous vous informerons dès que la correction est disponible !'}\r\n      />\r\n    );\r\n\r\n  if (\r\n    [HomeworkStatus.Remade, HomeworkStatus.Corrected, HomeworkStatus.Rejected].includes(last.status)\r\n  ) {\r\n    const dateCorrected =\r\n      last.status === HomeworkStatus.Rejected ? last?.receptionDate! : last?.sendingDate!;\r\n\r\n    const observation =\r\n      last.status === HomeworkStatus.Rejected ? last.observation : last.appreciation;\r\n    switch (homeworkBase.homeworkType) {\r\n      case HomeworkType.Standard:\r\n      case HomeworkType.Voice:\r\n        return (\r\n          <Stack sx={{ direction: 'column', width: '100%', height: '100%' }}>\r\n            {!isInPopup && <HomeworkCorrectedMeeting homeworkBase={homeworkBase} last={last} />}\r\n            <ViewStandard\r\n              homeworkBase={homeworkBase}\r\n              last={last}\r\n              fileCorrectedType={fileCorrectedType}\r\n              observation={observation}\r\n              dateCorrected={dateCorrected}\r\n            />\r\n          </Stack>\r\n        );\r\n\r\n      case HomeworkType.ReportStage:\r\n        return (\r\n          <ViewStandard\r\n            homeworkBase={homeworkBase}\r\n            last={last}\r\n            fileCorrectedType={fileCorrectedType}\r\n            observation={observation}\r\n            dateCorrected={dateCorrected}\r\n          />\r\n        );\r\n\r\n      case HomeworkType.EvaluationStage:\r\n        return (\r\n          <ViewEvaluationStage\r\n            homeworkBase={homeworkBase}\r\n            last={last}\r\n            fileCorrectedType={fileCorrectedType}\r\n            observation={observation}\r\n            dateCorrected={dateCorrected}\r\n          />\r\n        );\r\n      default:\r\n        return (\r\n          <ViewOther\r\n            homeworkBase={homeworkBase}\r\n            last={last}\r\n            fileCorrectedType={fileCorrectedType}\r\n            observation={observation}\r\n            dateCorrected={dateCorrected}\r\n          />\r\n        );\r\n    }\r\n  } else\r\n    return (\r\n      <EmptyContent\r\n        img=\"/static/illustrations/evaluations/Evaluationenvoyee.svg\"\r\n        title={'Nous avons bien réceptionné votre évaluation.'}\r\n        description={'Nous vous informerons dès que la correction est disponible !'}\r\n      />\r\n    );\r\n};\r\n\r\n/*****************************************************************************/\r\ninterface ViewPros extends HomeworkCorrectedProps {\r\n  dateCorrected: string;\r\n  observation: string;\r\n}\r\n\r\n/**\r\n * Affichage standard d'un devoir corrigé\r\n * @param param0\r\n * @returns\r\n */\r\nconst ViewStandard = ({\r\n  last,\r\n  fileCorrectedType,\r\n  homeworkBase,\r\n  dateCorrected,\r\n  observation\r\n}: ViewPros) => {\r\n  return (\r\n    <Stack\r\n      direction={{ xs: 'column', sm: 'row' }}\r\n      divider={\r\n        <Divider\r\n          orientation={last.status === HomeworkStatus.Corrected ? 'vertical' : 'horizontal'}\r\n          flexItem\r\n        />\r\n      }\r\n      spacing={{ xs: 1, sm: 2, md: 4 }}\r\n      width={'100%'}\r\n      height={'100%'}\r\n    >\r\n      <Box>\r\n        {last.teacher != null && (\r\n          <Box display=\"flex\" flexDirection=\"row\" alignItems=\"center\" sx={{ mt: 2 }}>\r\n            <Avatar\r\n              src={`/static/avatarsServices/${\r\n                last.teacher.civility === 'Mme' ? 'correctrice' : 'correcteur'\r\n              }.svg`}\r\n              sx={{ width: 32, height: 32, mr: 2 }}\r\n            />\r\n\r\n            <Typography component=\"span\" variant=\"caption\">\r\n              {`${last.teacher.firstName} ${last.teacher.lastName}`}\r\n            </Typography>\r\n            <Box display=\"flex\" flexGrow={1} />\r\n            <Typography component=\"span\" variant=\"caption\" sx={{ ml: 2 }}>\r\n              {fDate(dateCorrected, 'eeee dd MMMM ')}\r\n            </Typography>\r\n          </Box>\r\n        )}\r\n\r\n        <ContentStyle sx={{ color: 'grey.800', bgcolor: 'primary.lighter' }}>\r\n          <Typography variant=\"body2\">\r\n            <Markdown children={observation} />\r\n          </Typography>\r\n        </ContentStyle>\r\n        <FileDetailsAttachments\r\n          files={last.files.filter(\r\n            (f) =>\r\n              f.userType === UserType.Corrected ||\r\n              ([HomeworkStatus.Remade, HomeworkStatus.Rejected].includes(last.status) &&\r\n                [UserType.Corrected, UserType.Student].includes(f.userType))\r\n          )}\r\n        />\r\n      </Box>\r\n      <Box sx={{ width: '21rem' }}>\r\n        <ViewScore homeworkBase={homeworkBase} last={last} fileCorrectedType={fileCorrectedType} />\r\n      </Box>\r\n    </Stack>\r\n  );\r\n};\r\n\r\n/**\r\n * Vue d'évaluation de stage\r\n * @param param0\r\n */\r\nconst ViewEvaluationStage = ({\r\n  last,\r\n  fileCorrectedType,\r\n  homeworkBase,\r\n  dateCorrected,\r\n  observation\r\n}: ViewPros) => {\r\n  return (\r\n    <Stack gap=\"10px\">\r\n      <Typography variant=\"subtitle2\" sx={{ ml: 2 }}>\r\n        Notation de votre responsable de stage\r\n      </Typography>\r\n      <Box sx={{ ml: 2 }}>\r\n        <ViewScore homeworkBase={homeworkBase} last={last} fileCorrectedType={fileCorrectedType} />\r\n      </Box>\r\n\r\n      <Typography variant=\"caption\" sx={{ ml: 2 }}>\r\n        Envoyé le {fDate(dateCorrected, 'eeee dd MMMM ')}\r\n      </Typography>\r\n    </Stack>\r\n  );\r\n};\r\n\r\n/**\r\n * Vue d'évaluation de stage\r\n * @param param0\r\n */\r\nconst ViewOther = ({\r\n  last,\r\n  fileCorrectedType,\r\n  homeworkBase,\r\n  dateCorrected,\r\n  observation\r\n}: ViewPros) => {\r\n  return (\r\n    <Stack gap=\"10px\">\r\n      <ViewScore homeworkBase={homeworkBase} last={last} fileCorrectedType={fileCorrectedType} />\r\n      <Typography variant=\"caption\" sx={{ ml: 2 }}>\r\n        Corrigé le {fDate(dateCorrected, 'eeee dd MMMM ')}\r\n      </Typography>\r\n    </Stack>\r\n  );\r\n};\r\n\r\n/**\r\n * Affichage de la note  + Fichier corrigé si il est présent\r\n */\r\nconst ViewScore = ({ last, homeworkBase, fileCorrectedType }: HomeworkCorrectedProps) => {\r\n  // eval non corrigé : rien\r\n  if (![HomeworkStatus.Corrected].includes(last.status)) return <></>;\r\n\r\n  return (\r\n    <Box>\r\n      {homeworkBase.isScore && (\r\n        <HomeworkNote scoreType={homeworkBase.scoreType} homework={last} label={'Note :'} />\r\n      )}\r\n\r\n      <Box sx={{ flexGrow: 1 }} />\r\n      {fileCorrectedType && (\r\n        <FileDetailsAttachments\r\n          files={[\r\n            {\r\n              fileName: fileCorrectedType.token.fileName,\r\n              fileType: FileType.CorrectionType,\r\n              id: -10,\r\n              userType: UserType.Corrected,\r\n              size: '',\r\n              metadatas: {\r\n                id: 0,\r\n                observation: '',\r\n                typFicMed: MediaFileType.Pdf,\r\n                url: '',\r\n                isS3: false\r\n              },\r\n              isS3: false\r\n            }\r\n          ]}\r\n        />\r\n      )}\r\n      <Box sx={{ marginLeft: '18px' }}>\r\n        {homeworkBase.files\r\n          .filter((f) => f.fileType === FileType.Media && f.perimetre === MediaPerimetre.Corrected)\r\n          .map((_item) => (\r\n            <MediaFileCard mediaFile={_item} key={_item.id} />\r\n          ))}\r\n      </Box>\r\n    </Box>\r\n  );\r\n};\r\n","import { Button, Divider, Popover, Typography } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport MenuPopover from 'components/MenuPopover';\r\nimport Scrollbar from 'components/Scrollbar';\r\nimport { useRef, useState } from 'react';\r\nimport {\r\n  Homework,\r\n  HomeworkBase,\r\n  HomeworkStatus,\r\n  HomeworkType,\r\n  StudyPlanItemType\r\n} from '../../../@types/pedagogy';\r\nimport { HomeworkCorrected } from './HomeworkCorrected';\r\n\r\nexport type HomeworkRejectedOrToRedoProps = {\r\n  homework?: Homework;\r\n  homeworkBase: HomeworkBase;\r\n};\r\nexport const HomeworkRejectedOrToRedo = ({\r\n  homework,\r\n  homeworkBase\r\n}: HomeworkRejectedOrToRedoProps) => {\r\n  const anchorRef = useRef(null);\r\n  const [open, setOpen] = useState(false);\r\n\r\n  const handleOpen = () => {\r\n    setOpen(true);\r\n  };\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  if (homeworkBase.homeworkType === HomeworkType.eLearning) return <></>;\r\n\r\n  // if (!!homework) return <></>;\r\n\r\n  if (\r\n    homework != undefined &&\r\n    homework != null &&\r\n    [HomeworkStatus.Rejected, HomeworkStatus.Remade].includes(homework.status)\r\n  ) {\r\n    return (\r\n      <>\r\n        <Button ref={anchorRef} variant=\"outlined\" color=\"primary\" onClick={handleOpen}>\r\n          voir l'évaluation envoyée / corrigée\r\n        </Button>\r\n        <MenuPopover\r\n          open={open}\r\n          onClose={handleClose}\r\n          anchorEl={anchorRef.current}\r\n          sx={{ width: 360 }}\r\n        >\r\n          <Scrollbar sx={{ height: 400 }}>\r\n            <Box sx={{ display: 'flex', alignItems: 'center', py: 2, px: 2.5 }}>\r\n              <Box sx={{ flexGrow: 1 }}>\r\n                <Typography variant=\"subtitle1\">\r\n                  {homework.status === HomeworkStatus.Rejected\r\n                    ? 'Évaluation rejetée'\r\n                    : 'Évaluation à refaire'}\r\n                </Typography>\r\n              </Box>\r\n            </Box>\r\n            <Divider />\r\n            <Box sx={{ p: 3 }}>\r\n              <HomeworkCorrected last={homework} homeworkBase={homeworkBase} isInPopup={true} />\r\n            </Box>\r\n          </Scrollbar>\r\n        </MenuPopover>\r\n      </>\r\n    );\r\n  }\r\n  return <></>;\r\n};\r\n","import { MediaFileInfo } from '../@types/media';\r\nimport { useEffect, useState } from 'react';\r\nimport {\r\n  StudyPlanItem,\r\n  StudyPlanItemHomework,\r\n  StudyPlanItemMedia,\r\n  StudyPlanItemType,\r\n  HomeworkBase,\r\n  Material,\r\n  StudyPlanItemHtml\r\n} from '../@types/pedagogy';\r\nimport useAuth from './useAuth';\r\n\r\nexport default function useChapterItem(item: StudyPlanItem) {\r\n  const [state, setState] = useState<{\r\n    material: Material | null;\r\n    homeworkBase: HomeworkBase | null;\r\n    mediaFile: MediaFileInfo | null;\r\n    isDownload: boolean;\r\n    label: string;\r\n    observation: string;\r\n  }>();\r\n\r\n  useEffect(() => {\r\n    if (item === null) return;\r\n\r\n    const material = item.material.scheduleId === '' ? null : item.material;\r\n\r\n    const information = getInformations();\r\n    const labels = getLabel();\r\n\r\n    setState({\r\n      material: material,\r\n      isDownload: information.isDownload,\r\n      homeworkBase: information.homeworkBase,\r\n      mediaFile: information.mediaFile,\r\n      label: labels.label,\r\n      observation: labels.observation\r\n    });\r\n  }, [item]);\r\n\r\n  const getInformations = () => {\r\n    switch (item.type) {\r\n      case StudyPlanItemType.Pdf:\r\n        return {\r\n          homeworkBase: null,\r\n          isDownload: (item as StudyPlanItemMedia).media.id > 0,\r\n          mediaFile: (item as StudyPlanItemMedia).media\r\n        };\r\n\r\n      case StudyPlanItemType.Html:\r\n        return {\r\n          homeworkBase: null,\r\n          isDownload: (item as StudyPlanItemHtml).media.id > 0,\r\n          mediaFile: (item as StudyPlanItemMedia).media\r\n        };\r\n\r\n      case StudyPlanItemType.Homework:\r\n        const homeworkBase = (item as StudyPlanItemHomework).homeworkBase;\r\n        //on cherche le fichier avec le codebarre\r\n        let media = homeworkBase.files?.filter((f) =>\r\n          f.references?.includes(f.fileName.split('.')[0])\r\n        )[0];\r\n        //sinon on prend le 1er\r\n        if (media === undefined) media = homeworkBase && homeworkBase?.files[0];\r\n        return {\r\n          homeworkBase: homeworkBase,\r\n          isDownload: media ? true : false,\r\n          mediaFile: media\r\n        };\r\n    }\r\n    return { homeworkBase: null, isDownload: false, mediaFile: null };\r\n  };\r\n\r\n  const getLabel = () => {\r\n    switch (item.type) {\r\n      case StudyPlanItemType.Audio:\r\n      case StudyPlanItemType.Video:\r\n      case StudyPlanItemType.Url:\r\n      case StudyPlanItemType.Pdf:\r\n      case StudyPlanItemType.Annexe:\r\n        const media = (item as StudyPlanItemMedia).media;\r\n        return {\r\n          label: media.title,\r\n          observation:\r\n            media.observation?.toLowerCase() === media.title?.toLowerCase() ? '' : media.observation\r\n        };\r\n\r\n      default:\r\n        return { label: item.label, observation: '' };\r\n    }\r\n  };\r\n\r\n  return {\r\n    ...state\r\n  };\r\n}\r\n","import { Chip } from '@mui/material';\r\nimport Label from 'components/Label';\r\n\r\nexport default function HomeworkIsScore({ isScore = false }) {\r\n  return isScore ? (\r\n    <></>\r\n  ) : (\r\n    <Label variant=\"outlined\" color=\"default\">\r\n      Non notée\r\n    </Label>\r\n  );\r\n}\r\n","import { IconButtonProps, IconButton } from '@mui/material';\r\nimport { styled } from '@mui/material/styles';\r\nimport { Box } from '@mui/system';\r\n\r\nconst RootStyle = styled(IconButton)(({ theme }) => ({\r\n  animationDuration: '.8s',\r\n  animationName: 'clignoter',\r\n  animationIterationCount: 6,\r\n  transition: 'none',\r\n  height: '40px',\r\n  width: '40px',\r\n  borderRadius: '12px',\r\n  display: 'flex',\r\n  justifyContent: 'center',\r\n  alignItems: 'center'\r\n}));\r\n\r\ninterface IconButtonClignoterProps extends IconButtonProps {}\r\n\r\nconst IconButtonClignoter = ({ children, sx, ...other }: IconButtonClignoterProps) => {\r\n  return <RootStyle {...other}>{children}</RootStyle>;\r\n};\r\nexport default IconButtonClignoter;\r\n","import { Checkbox, Divider, FormControlLabel } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport EmptyContent from 'components/EmptyContent';\r\nimport MenuPopover from 'components/MenuPopover';\r\nimport useLocalStorage from 'hooks/useLocalStorage';\r\nimport { ReactNode, useEffect, useRef, useState } from 'react';\r\n\r\ntype HelpPopoverProps = {\r\n  name: string;\r\n  title: string;\r\n  description: ReactNode;\r\n  img: string;\r\n  anchorEl: any;\r\n  defaultOpen: boolean;\r\n};\r\n\r\nexport default function HelpPopover({\r\n  name,\r\n  title,\r\n  description,\r\n  img,\r\n  anchorEl,\r\n  defaultOpen\r\n}: HelpPopoverProps) {\r\n  const [reminder, setReminder] = useLocalStorage(name, defaultOpen);\r\n  const [openInfo, setOpenInfo] = useState(reminder);\r\n\r\n  const handleCloseInfo = () => {\r\n    setOpenInfo(false);\r\n  };\r\n\r\n  const handleChange = () => {\r\n    setOpenInfo(false);\r\n    setReminder(false);\r\n  };\r\n\r\n  return (\r\n    <MenuPopover\r\n      open={openInfo}\r\n      onClose={handleCloseInfo}\r\n      anchorEl={anchorEl?.current}\r\n      sx={{ width: 300 }}\r\n    >\r\n      <EmptyContent withoutImg={img === ''} title={title} description={description} img={img} />\r\n      <Divider />\r\n      <Box sx={{ display: 'flex', alignItems: 'center', py: 2, px: 2.5 }}>\r\n        <Box sx={{ flexGrow: 1 }}>\r\n          <FormControlLabel\r\n            control={<Checkbox checked={!reminder} onChange={handleChange} />}\r\n            label=\"Ne plus afficher ce message\"\r\n          />\r\n        </Box>\r\n      </Box>\r\n    </MenuPopover>\r\n  );\r\n}\r\n/**\r\n *\r\n */\r\n","// material\r\n\r\nimport { Box } from '@mui/material';\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport useTrackerActivity from 'hooks/useTrackerActivity';\r\nimport useLocalStorage from 'hooks/useLocalStorage';\r\nimport EmptyContent from 'components/EmptyContent';\r\nimport CardMediaCustom from 'components/CardMediaCustom';\r\nimport usePageSettings from 'hooks/usePageSettings';\r\nimport { usePostMessage } from 'hooks/usePostMessage';\r\nimport { isValidHttpUrl } from 'utils/helper';\r\n\r\n// ----------------------------------------------------------------------\r\nexport type StudyPlanDetailsContentQuizProps = {\r\n  url: string;\r\n  courseId: string;\r\n  onScore: (value: number) => void;\r\n};\r\n\r\nexport default function StudyPlanDetailsContentQuiz({\r\n  url,\r\n  courseId,\r\n  onScore\r\n}: StudyPlanDetailsContentQuizProps) {\r\n  const { eventHandler } = useTrackerActivity({ parent: null });\r\n  const {} = usePostMessage({\r\n    url: url,\r\n    onEvent: (type: string, value: any) => {\r\n      eventHandler(null);\r\n      if (type === 'note') onScore(value);\r\n    }\r\n  });\r\n\r\n  if (!isValidHttpUrl(url))\r\n    return <EmptyContent title=\"\" description=\"Ce contenu est inaccessible\" />;\r\n\r\n  return (\r\n    <Box\r\n      sx={{\r\n        display: 'flex',\r\n        flexDirection: 'column',\r\n        flexGrow: 1,\r\n        height: '100%',\r\n        overflow: 'hidden'\r\n      }}\r\n    >\r\n      <CardMediaCustom url={url} isVideo={false} />\r\n    </Box>\r\n  );\r\n}\r\n","import {\r\n  Alert,\r\n  AlertTitle,\r\n  Card,\r\n  CardHeader,\r\n  Dialog,\r\n  DialogActions,\r\n  DialogContent,\r\n  DialogProps,\r\n  DialogTitle,\r\n  FormControl,\r\n  FormControlLabel,\r\n  IconButton,\r\n  Switch,\r\n  Tooltip,\r\n  Typography\r\n} from '@mui/material';\r\nimport {\r\n  StudyPlanItem,\r\n  StudyPlanItemHtml,\r\n  StudyPlanItemStatus,\r\n  StudyPlanItemType\r\n} from '../../../../@types/pedagogy';\r\nimport useScreenConfig from 'hooks/useScreenConfig';\r\nimport useAuth from 'hooks/useAuth';\r\nimport { ModeAccess } from '../../../../@types/account';\r\nimport { Button } from '@mui/material';\r\nimport HelpPopover from 'components/HelpPopover';\r\nimport { Box, Stack } from '@mui/system';\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport EmptyContent from 'components/EmptyContent';\r\nimport { DialogTitleWithClose } from 'components/DialogTitleWithClose';\r\nimport StudyPlanDetailsContentQuiz from './StudyPlanDetailsContentQuiz';\r\nimport Label from 'components/Label';\r\nimport { CheckRounded, QuizRounded } from '@mui/icons-material';\r\nimport MIconButton from 'components/MIconButton';\r\n\r\ntype StudyPlanDetailsAssimilateProps = {\r\n  selectedItem?: StudyPlanItem;\r\n  onAssimilate: (event: any, checked: boolean) => void;\r\n};\r\n\r\nconst StudyPlanDetailsAssimilate = ({\r\n  selectedItem,\r\n  onAssimilate\r\n}: StudyPlanDetailsAssimilateProps) => {\r\n  const { isMediumOrMobile } = useScreenConfig();\r\n  const { student } = useAuth();\r\n  const anchorEl = useRef(null);\r\n  const [open, setOpen] = useState(false);\r\n  const [quizOpen, setQuizOpen] = useState(false);\r\n  const [openSuccess, setOpenSuccess] = useState(false);\r\n  const [openEchec, setOpenEchec] = useState(false);\r\n  const isChecked = selectedItem?.status === StudyPlanItemStatus.Assimilate;\r\n  const isAssimilateControl = selectedItem?.type !== StudyPlanItemType.Homework;\r\n\r\n  const isQuizAssimilate = selectedItem?.quizAssimilate ? true : false;\r\n\r\n  const handleOpen = () => {\r\n    setOpen(true);\r\n  };\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  const handleSuccessClose = () => {\r\n    setOpenSuccess(false);\r\n  };\r\n\r\n  const handleQuizOpen = () => {\r\n    setQuizOpen(true);\r\n    setOpenEchec(false);\r\n  };\r\n\r\n  const onScore = (value: number) => {\r\n    if (value === 20) {\r\n      onAssimilate(null, true);\r\n      setOpenSuccess(true);\r\n    } else {\r\n      setQuizOpen(false);\r\n      setOpenEchec(true);\r\n    }\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (open) {\r\n      setQuizOpen(false);\r\n      setOpenEchec(false);\r\n    }\r\n  }, [open]);\r\n\r\n  if (!isAssimilateControl) return <></>;\r\n\r\n  if (!selectedItem) return <></>;\r\n\r\n  if (!isChecked && isQuizAssimilate) {\r\n    const score = selectedItem.quizAssimilate?.score || 0;\r\n    const buttonName = score > 0 ? 'Poursuivre' : 'Commencer';\r\n    const endOfRead = (selectedItem as StudyPlanItemHtml).endOfRead;\r\n\r\n    return (\r\n      <Box sx={{ padding: 1, height: 40 }}>\r\n        {isMediumOrMobile ? (\r\n          <MIconButton disabled={!endOfRead} onClick={handleOpen}>\r\n            <QuizRounded />\r\n          </MIconButton>\r\n        ) : (\r\n          <Button\r\n            disabled={!endOfRead}\r\n            variant=\"contained\"\r\n            size=\"small\"\r\n            ref={anchorEl}\r\n            onClick={handleOpen}\r\n            sx={{ whiteSpace: 'nowrap' }}\r\n          >\r\n            Tester mes connaissances\r\n          </Button>\r\n        )}\r\n        <HelpPopover\r\n          defaultOpen={!endOfRead}\r\n          title=\"Assimilation du support pédagogique\"\r\n          description=\"Vous pouvez tester vos connaissances concernant ce support pédagogique après la lecture de celui-ci.\"\r\n          img={'/static/illustrations/ma formation/quizInfo.gif'}\r\n          name={`Assimilation_quiz`}\r\n          anchorEl={anchorEl}\r\n        />\r\n        <DialogConnaissance open={open} quizOpen={quizOpen} handleClose={handleClose}>\r\n          {quizOpen && (\r\n            <StudyPlanDetailsContentQuiz\r\n              url={selectedItem.quizAssimilate?.url || ''}\r\n              courseId={selectedItem.id}\r\n              onScore={onScore}\r\n            />\r\n          )}\r\n          {!quizOpen && !openEchec && (\r\n            <>\r\n              <DialogContent>\r\n                <EmptyContent\r\n                  title={'Avez-vous assimilé ce support pédagogique ?'}\r\n                  description={\r\n                    'Testez vos connaissances en répondant à un court questionnaire. Ce dernier, non noté, a pour vocation de vérifier que vous avez bien assimilé le support pédagogique consulté.'\r\n                  }\r\n                  img={'/static/illustrations/ma formation/quizAssimilate.gif'}\r\n                />\r\n              </DialogContent>\r\n              <DialogActions sx={{ justifyContent: 'center' }}>\r\n                <Button variant=\"contained\" onClick={handleQuizOpen}>\r\n                  {buttonName}\r\n                </Button>\r\n              </DialogActions>\r\n            </>\r\n          )}\r\n          {openEchec && (\r\n            <>\r\n              <DialogContent>\r\n                <Card>\r\n                  <Alert severity=\"error\">\r\n                    <AlertTitle>Révisez votre cours et persévérez !</AlertTitle>\r\n                    Ce support pédagogique ne semble pas assimilé. Nous vous encourageons à le\r\n                    relire et à repasser le test ultérieurement.\r\n                  </Alert>\r\n                </Card>\r\n              </DialogContent>\r\n              <DialogActions sx={{ justifyContent: 'center' }}>\r\n                <Button onClick={handleQuizOpen}>Refaire le test</Button>\r\n                <Button variant=\"contained\" onClick={handleClose}>\r\n                  Revoir le support\r\n                </Button>\r\n              </DialogActions>\r\n            </>\r\n          )}\r\n        </DialogConnaissance>\r\n      </Box>\r\n    );\r\n  }\r\n\r\n  if (isQuizAssimilate)\r\n    return (\r\n      <Box>\r\n        <Box sx={{ padding: 1, height: 40 }}>\r\n          <Label variant=\"ghost\" color=\"success\">\r\n            <Stack direction={'row'} alignItems={'center'}>\r\n              <CheckRounded /> <Box>{isMediumOrMobile ? '' : 'Assimilé'}</Box>\r\n            </Stack>\r\n          </Label>\r\n        </Box>\r\n        {openSuccess && (\r\n          <DialogConnaissance open={openSuccess} quizOpen={false} handleClose={handleSuccessClose}>\r\n            <DialogContent>\r\n              <Card>\r\n                <Alert severity=\"success\">\r\n                  <AlertTitle>Support pédagogique assimilé !</AlertTitle>\r\n                  Vous semblez bien connaitre votre support pédagogique.\r\n                </Alert>\r\n              </Card>\r\n            </DialogContent>\r\n            <DialogActions sx={{ justifyContent: 'center' }}>\r\n              <Button variant=\"contained\" onClick={handleSuccessClose}>\r\n                Continuer\r\n              </Button>\r\n            </DialogActions>\r\n          </DialogConnaissance>\r\n        )}\r\n      </Box>\r\n    );\r\n\r\n  return (\r\n    <FormControl size=\"small\">\r\n      <Tooltip title=\"J’ai assimilé le support pédagogique / Je n’ai pas assimilé le support pédagogique\">\r\n        <FormControlLabel\r\n          control={\r\n            <Switch\r\n              checked={isChecked}\r\n              onChange={onAssimilate}\r\n              color={isChecked ? 'success' : 'primary'}\r\n              disabled={student?.modeAccess !== ModeAccess.Write}\r\n            />\r\n          }\r\n          label={isMediumOrMobile ? '' : 'Assimilé'}\r\n        />\r\n      </Tooltip>\r\n    </FormControl>\r\n  );\r\n};\r\n\r\nexport default StudyPlanDetailsAssimilate;\r\n\r\ninterface Props extends DialogProps {\r\n  open: boolean;\r\n  quizOpen: boolean;\r\n  handleClose: () => void;\r\n}\r\n\r\nconst DialogConnaissance = ({ children, open, quizOpen, handleClose }: Props) => {\r\n  return (\r\n    <Dialog\r\n      open={open}\r\n      maxWidth=\"md\"\r\n      fullWidth\r\n      sx={{ ...(quizOpen && { '& .MuiPaper-root.MuiDialog-paper': { height: '90vh' } }) }}\r\n    >\r\n      <DialogTitleWithClose id=\"dqsdsqd\" onClose={handleClose} title={'Testez vos connaissances'} />\r\n      {children}\r\n    </Dialog>\r\n  );\r\n};\r\n","// material\r\nimport {\r\n  Box,\r\n  FormControlLabel,\r\n  FormControl,\r\n  Switch,\r\n  Tooltip,\r\n  Typography,\r\n  Chip,\r\n  Stack\r\n} from '@mui/material';\r\n//type\r\nimport {\r\n  HomeworkType,\r\n  StudyPlanItem,\r\n  StudyPlanItemHomework,\r\n  StudyPlanItemStatus,\r\n  StudyPlanItemType\r\n} from '../../../../@types/pedagogy';\r\nimport { ModeAccess } from '../../../../@types/account';\r\n\r\n//components\r\nimport MIconButton from 'components/MIconButton';\r\nimport HomeworkMandatoryRender from 'components/_dashboard/pedagogy/HomeworkMandatoryRender';\r\nimport {\r\n  ChevronLeftRounded,\r\n  Fullscreen,\r\n  FullscreenExit,\r\n  MenuBookTwoTone\r\n} from '@mui/icons-material';\r\nimport { HomeworkRejectedOrToRedo } from 'components/_dashboard/pedagogy/HomeworkRejected';\r\nimport ChapterItemStatus from './ChapterItemStatus';\r\nimport useScreenConfig from 'hooks/useScreenConfig';\r\nimport useChapterItem from 'hooks/useChapterItem';\r\nimport HomeworkIsScore from 'components/_dashboard/pedagogy/HomeworkIsScore';\r\nimport useAuth from 'hooks/useAuth';\r\nimport { useNavigate } from 'react-router';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport { IconButton } from '@mui/material';\r\nimport IconButtonClignoter from 'components/IconButtonClignoter';\r\nimport StudyPlanDetailsAssimilate from './StudyPlanDetailsAssimilate';\r\n// ----------------------------------------------------------------------\r\n\r\ntype StudyPlanDetailsToolbarProps = {\r\n  selectedItem?: StudyPlanItem;\r\n  locked: boolean;\r\n  isFullScreen: boolean;\r\n  openSidebar: boolean;\r\n  onFullScreen: () => void;\r\n  onAssimilate: (event: any, checked: boolean) => void;\r\n  onToggleSidebar: () => void;\r\n};\r\n\r\n/**\r\n * Actions sur le média, quiz, support\r\n * @param\r\n * @returns\r\n */\r\nexport default function StudyPlanDetailsToolbar({\r\n  selectedItem,\r\n  onFullScreen,\r\n  isFullScreen,\r\n  openSidebar,\r\n  locked,\r\n  onAssimilate,\r\n  onToggleSidebar\r\n}: StudyPlanDetailsToolbarProps) {\r\n  const { isMediumOrMobile } = useScreenConfig();\r\n  const { label, observation, homeworkBase } = useChapterItem(selectedItem!);\r\n  const { isReadOnly } = useAuth();\r\n\r\n  const renderHomeworkStatus = () => {\r\n    const homework = homeworkBase?.homeworks[homeworkBase?.homeworks.length - 1];\r\n\r\n    return (\r\n      <Stack>\r\n        <Box sx={{ display: 'inline-flex', flexDirection: 'row', alignItems: 'baseline', gap: 1 }}>\r\n          {selectedItem && <ChapterItemStatus item={selectedItem} />}\r\n\r\n          <HomeworkMandatoryRender mandatory={homeworkBase?.mandatory} />\r\n          <HomeworkIsScore isScore={homeworkBase?.isScore} />\r\n          {homeworkBase?.coefficient !== 1 && homeworkBase!.coefficient > 0 && (\r\n            <Chip size=\"small\" label={`Coef:${homeworkBase?.coefficient}`} variant=\"outlined\" />\r\n          )}\r\n        </Box>\r\n        <Box sx={{ width: '80%' }}>\r\n          {homeworkBase && (\r\n            <HomeworkRejectedOrToRedo homework={homework} homeworkBase={homeworkBase} />\r\n          )}\r\n        </Box>\r\n      </Stack>\r\n    );\r\n  };\r\n\r\n  return (\r\n    <Box\r\n      sx={{\r\n        display: 'flex',\r\n        alignItems: 'center',\r\n        minHeight: 54,\r\n        padding: '6px',\r\n        backgroundColor: '#FFF'\r\n      }}\r\n      id=\"BoxContentTitle\"\r\n    >\r\n      {(openSidebar || isMediumOrMobile) && (\r\n        <Tooltip title=\"Liste des supports pédagogiques\">\r\n          <Box>\r\n            <MIconButton onClick={onToggleSidebar}>\r\n              <MenuBookTwoTone />\r\n            </MIconButton>\r\n          </Box>\r\n        </Tooltip>\r\n      )}\r\n      <Box sx={{ ml: 1, width: homeworkBase ? '95%' : '70%', flexShrink: 0 }}>\r\n        <Typography variant=\"body2\" component={'div'}>\r\n          {label}\r\n        </Typography>\r\n        {observation !== '' && <Typography variant=\"caption\">{observation}</Typography>}\r\n\r\n        {isReadOnly && (\r\n          <Typography variant=\"caption\" sx={{ color: 'text.secondary', display: 'block' }}>\r\n            {homeworkBase ? homeworkBase.barCode : selectedItem?.id}\r\n          </Typography>\r\n        )}\r\n\r\n        {homeworkBase && renderHomeworkStatus()}\r\n      </Box>\r\n      <Box sx={{ flexGrow: 1 }} />\r\n      <Box display=\"flex\" flexDirection={'row-reverse'} alignItems=\"flex-end\">\r\n        {!isMediumOrMobile && (\r\n          <Tooltip title={isFullScreen ? \"Vue d'ensemble\" : 'Zoom sur le contenu'}>\r\n            <Box>\r\n              <IconButtonClignoter onClick={onFullScreen}>\r\n                {isFullScreen ? <FullscreenExit /> : <Fullscreen />}\r\n              </IconButtonClignoter>\r\n            </Box>\r\n          </Tooltip>\r\n        )}\r\n        {!locked && (\r\n          <StudyPlanDetailsAssimilate selectedItem={selectedItem} onAssimilate={onAssimilate} />\r\n        )}\r\n      </Box>\r\n    </Box>\r\n  );\r\n}\r\n/*\r\n\r\n*/\r\n","import { useRef, useState } from 'react';\r\n\r\nimport {\r\n  Divider,\r\n  IconButton,\r\n  ListItem,\r\n  ListItemButton,\r\n  ListItemText,\r\n  Stack,\r\n  Tooltip,\r\n  Typography\r\n} from '@mui/material';\r\nimport { alpha } from '@mui/material/styles';\r\n\r\nimport {\r\n  StudyPlanItem,\r\n  StudyPlanItemHomework,\r\n  StudyPlanItemMedia,\r\n  StudyPlanItemType,\r\n  StudyPlanSelected\r\n} from '../../../../@types/pedagogy';\r\n\r\nimport MIconButton from 'components/MIconButton';\r\nimport MenuPopover from 'components/MenuPopover';\r\nimport Scrollbar from 'components/Scrollbar';\r\nimport { CopyAll, Info } from '@mui/icons-material';\r\nimport { Box } from '@mui/system';\r\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\r\nimport useStudyPlan from 'hooks/useStudyPlan';\r\n\r\nexport type StudyPlanDetailsItemInfoProps = {\r\n  selected?: StudyPlanSelected;\r\n};\r\n\r\n/**\r\n * Informations sur le support pédagogique sélectionné\r\n * @param support\r\n * @returns\r\n */\r\nexport default function StudyPlanDetailsItemInfo({ selected }: StudyPlanDetailsItemInfoProps) {\r\n  const anchorRef = useRef(null);\r\n  const [open, setOpen] = useState(false);\r\n\r\n  const handleOpen = () => {\r\n    setOpen(true);\r\n  };\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  const homeworkBase =\r\n    selected?.item.type === StudyPlanItemType.Homework\r\n      ? (selected?.item as StudyPlanItemHomework).homeworkBase\r\n      : null;\r\n\r\n  const media = [\r\n    StudyPlanItemType.Pdf,\r\n    StudyPlanItemType.Url,\r\n    StudyPlanItemType.Video,\r\n    StudyPlanItemType.Audio\r\n  ].includes(selected?.item.type!)\r\n    ? (selected?.item as StudyPlanItemMedia).media\r\n    : null;\r\n\r\n  const infoList = [\r\n    { key: 'UF', value: '' },\r\n    { key: 'Chapitre', value: selected?.chapter?.label },\r\n    { key: 'Sous chapitre', value: selected?.subChapter?.label },\r\n    { key: 'Support', value: selected?.item.label },\r\n    { key: 'Référence support', value: homeworkBase ? homeworkBase.barCode : selected?.item.id },\r\n    { key: 'Permanence', value: homeworkBase ? homeworkBase?.material?.scheduleLabel : '' },\r\n    { key: 'Matière', value: homeworkBase ? homeworkBase?.material?.label : '' },\r\n    { key: 'Média', value: media ? media?.title! : '' },\r\n    { key: 'Référence média', value: media ? media?.id.toString() : '' },\r\n    { key: 'Support lié', value: selected?.item.boundCourse ? selected?.item.boundCourse : '' }\r\n  ];\r\n\r\n  const getCopy = () => {\r\n    let info: string = '';\r\n    infoList.map((item) => {\r\n      if (item.value !== '') info += `${item.key} : ${item.value}\\n`;\r\n    });\r\n    return info;\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <Tooltip title=\"Informations\">\r\n        <MIconButton\r\n          ref={anchorRef}\r\n          size=\"large\"\r\n          color={open ? 'primary' : 'default'}\r\n          onClick={handleOpen}\r\n          sx={{\r\n            ...(open && {\r\n              bgcolor: (theme) =>\r\n                alpha(theme.palette.primary.main, theme.palette.action.focusOpacity)\r\n            })\r\n          }}\r\n        >\r\n          <Info fontSize=\"small\" />\r\n        </MIconButton>\r\n      </Tooltip>\r\n      <MenuPopover\r\n        open={open}\r\n        onClose={handleClose}\r\n        anchorEl={anchorRef.current}\r\n        sx={{ width: 360 }}\r\n      >\r\n        <Stack display=\"flex\" flexDirection=\"row\">\r\n          <Typography variant=\"h6\" sx={{ p: 1 }}>\r\n            Informations\r\n          </Typography>\r\n          <CopyToClipboard text={getCopy()} onCopy={() => console.log('')}>\r\n            <Tooltip title=\"copier\">\r\n              <IconButton\r\n                sx={{\r\n                  top: 8,\r\n                  right: 8,\r\n                  position: 'absolute'\r\n                }}\r\n              >\r\n                <CopyAll />\r\n              </IconButton>\r\n            </Tooltip>\r\n          </CopyToClipboard>\r\n        </Stack>\r\n\r\n        <Divider />\r\n        <Scrollbar>\r\n          {infoList\r\n            .filter((i) => i.value !== '' && i.value !== null)\r\n            .map((info) => {\r\n              return (\r\n                <ListItem key={info.key}>\r\n                  <ListItemText\r\n                    primaryTypographyProps={{ typography: 'subtitle2', mb: 0.25 }}\r\n                    secondaryTypographyProps={{ typography: 'caption' }}\r\n                    primary={\r\n                      <Typography variant=\"caption\">\r\n                        <strong>{info.key}</strong> : {info.value}\r\n                      </Typography>\r\n                    }\r\n                  />\r\n                </ListItem>\r\n              );\r\n            })}\r\n        </Scrollbar>\r\n      </MenuPopover>\r\n    </>\r\n  );\r\n}\r\n","import { useEffect, useState } from 'react';\r\n//materials\r\nimport { styled } from '@mui/material/styles';\r\nimport { Verified, Close, ExpandMore } from '@mui/icons-material';\r\n\r\nimport { AccordionDetails, AccordionSummary, Typography, Accordion, Card } from '@mui/material';\r\nimport { Box, width } from '@mui/system';\r\n// @types\r\nimport { Message, MessageDetail, MessageType } from '../../../@types/message';\r\n//utils\r\nimport { fDate } from 'utils/formatTime';\r\n//redux\r\nimport { RootState, useSelector, useDispatch } from 'redux/store';\r\nimport { getMessage } from 'redux/slices/message';\r\n//component\r\nimport Label from 'components/Label';\r\nimport MessageQuestionCardDetail from './MessageQuestionCardDetail';\r\n\r\n//--------------------------------------------------\r\n\r\nconst RootStyle = styled(Card)(({ theme }) => ({\r\n  padding: 10,\r\n  margin: 10\r\n}));\r\n\r\nconst HeaderStyle = styled(AccordionSummary)(({ theme }) => ({\r\n  backgroundColor: theme.palette.grey[100]\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ntype MessageQuestionCardProps = {\r\n  message: Message;\r\n};\r\n\r\n/**\r\n * Affiche l'entete de la question.\r\n * @params : QUestion\r\n */\r\nexport default function MessageQuestionCard({ message }: MessageQuestionCardProps) {\r\n  const dispatch = useDispatch();\r\n  //const [expanded, setExpanded] = useState(false);\r\n  const [questionDetails, setQuestionDetails] = useState<Array<MessageDetail>>([]);\r\n  const { id, idType, reference, title, read, publicationDate, type } = message;\r\n\r\n  const handleChange = (event: any, isExpanded: boolean) => {\r\n    if (isExpanded && questionDetails.length === 0) {\r\n      dispatch(\r\n        getMessage(id, idType, MessageType.Question)((details) => setQuestionDetails(details))(\r\n          () => {}\r\n        )\r\n      );\r\n    }\r\n  };\r\n\r\n  return (\r\n    <RootStyle>\r\n      <Accordion onChange={handleChange}>\r\n        <HeaderStyle expandIcon={<ExpandMore />}>\r\n          <Box sx={{ width: '70%', flexShrink: 0 }}>\r\n            <Typography variant=\"body2\">{title}</Typography>\r\n            <Typography variant=\"caption\">\r\n              {fDate(publicationDate, \"eeee dd MMMM 'à' HH:mm \")}\r\n            </Typography>\r\n          </Box>\r\n          {type === MessageType.Question && <Label variant=\"outlined\">En attente de réponse</Label>}\r\n          {type === MessageType.Answer && (\r\n            <Label variant=\"outlined\">{read ? 'Réponse lue' : 'Réponse reçue'}</Label>\r\n          )}\r\n        </HeaderStyle>\r\n        <AccordionDetails>\r\n          {<MessageQuestionCardDetail questionAnswer={questionDetails} />}\r\n        </AccordionDetails>\r\n      </Accordion>\r\n    </RootStyle>\r\n  );\r\n}\r\n","import { useRef, useState } from 'react';\r\nimport { Icon } from '@iconify/react';\r\nimport questionAnswer from '@iconify/icons-ic/question-answer';\r\nimport clockFill from '@iconify/icons-eva/clock-fill';\r\n\r\nimport {\r\n  Avatar,\r\n  Badge,\r\n  Button,\r\n  Divider,\r\n  Drawer,\r\n  IconButton,\r\n  List,\r\n  ListItemAvatar,\r\n  ListItemButton,\r\n  ListItemText,\r\n  ListSubheader,\r\n  Stack,\r\n  Tooltip,\r\n  Typography\r\n} from '@mui/material';\r\nimport { Box, width } from '@mui/system';\r\n\r\nimport { Close } from '@mui/icons-material';\r\n//type\r\nimport { StudyPlanItem, StudyPlanItemType } from '../../../../@types/pedagogy';\r\nimport { Message, MessageType } from '../../../../@types/message';\r\n//composant\r\nimport MIconButton from 'components/MIconButton';\r\nimport { RootState, useDispatch, useSelector } from 'redux/store';\r\nimport MenuPopover from 'components/MenuPopover';\r\nimport Scrollbar from 'components/Scrollbar';\r\n\r\nimport { fToNow } from 'utils/formatTime';\r\nimport MessageQuestionCard from 'components/_dashboard/message/MessageQuestionCard';\r\nimport MessagePopover from 'components/_dashboard/message/MessagePopover';\r\n\r\nexport type StudyPlanDetailsItemQuestionProps = {\r\n  selected: StudyPlanItem;\r\n};\r\n\r\n/**\r\n * Liste des compétences\r\n */\r\nexport default function StudyPlanDetailsItemQuestion({\r\n  selected\r\n}: StudyPlanDetailsItemQuestionProps) {\r\n  const { messages } = useSelector((state: RootState) => state.message);\r\n  const [open, setOpen] = useState(false);\r\n  const anchorRef = useRef(null);\r\n\r\n  const handleClick = () => {\r\n    setOpen(true);\r\n  };\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  const questions = messages.filter(\r\n    (q) =>\r\n      q.reference === selected?.reference &&\r\n      [MessageType.Question, MessageType.Answer].includes(q.type)\r\n  );\r\n  return (\r\n    <>\r\n      {questions.length > 0 && (\r\n        <Tooltip title=\"Questions posées\">\r\n          <MIconButton onClick={handleClick} ref={anchorRef}>\r\n            <Badge badgeContent={questions.length} color=\"error\" variant=\"standard\">\r\n              <Icon icon={questionAnswer} width={20} height={20} />\r\n            </Badge>\r\n          </MIconButton>\r\n        </Tooltip>\r\n      )}\r\n      <Drawer\r\n        open={open}\r\n        onClose={handleClose}\r\n        anchor=\"right\"\r\n        PaperProps={{ sx: { width: { xs: 1, sm: 630 } } }}\r\n      >\r\n        <Stack p={2.5} direction=\"row\" alignItems=\"center\">\r\n          <Tooltip title=\"Fermer\">\r\n            <IconButton onClick={handleClose} sx={{ mr: 1 }}>\r\n              <Close />\r\n            </IconButton>\r\n          </Tooltip>\r\n          <Box>\r\n            <Typography variant=\"h4\">Historique des questions posées</Typography>\r\n            <Typography variant=\"body2\" sx={{ color: 'text.secondary' }}>\r\n              {selected?.label}\r\n              <br />\r\n              {selected?.reference}\r\n            </Typography>\r\n          </Box>\r\n        </Stack>\r\n\r\n        <Divider />\r\n        <Scrollbar>\r\n          {questions\r\n            .filter((q) => q.read)\r\n            .sort((a, b) => (a.publicationDate > b.publicationDate ? -1 : 1))\r\n            .map((question) => (\r\n              <MessageQuestionCard key={question.id} message={question} />\r\n            ))}\r\n        </Scrollbar>\r\n\r\n        <Divider />\r\n\r\n        <Box sx={{ p: 3, alignItems: 'center', display: 'flex', flexDirection: 'column' }}>\r\n          <MessagePopover\r\n            label={selected?.label}\r\n            params={{\r\n              subjectId: selected?.type === StudyPlanItemType.Homework ? 'DEVOIR' : 'COURS',\r\n              serviceId: 'PED',\r\n              pro: '',\r\n              reference: selected?.reference\r\n            }}\r\n            small={false}\r\n          />\r\n        </Box>\r\n      </Drawer>\r\n    </>\r\n  );\r\n}\r\n\r\nfunction MessageQuestionListItem({ question }: { question: Message }) {\r\n  const { id, reference, title, read, publicationDate } = question;\r\n\r\n  return (\r\n    <ListItemButton\r\n      key={id}\r\n      sx={{\r\n        py: 1.5,\r\n        px: 2.5,\r\n        mt: '1px',\r\n        ...(!read && {\r\n          bgcolor: 'action.selected'\r\n        })\r\n      }}\r\n    >\r\n      <ListItemAvatar>\r\n        <Avatar sx={{ bgcolor: 'background.neutral' }}>\r\n          <img alt={title} src=\"/static/icons/ic_notification_chat.svg\" />\r\n        </Avatar>\r\n      </ListItemAvatar>\r\n      <ListItemText\r\n        primary={title}\r\n        secondary={\r\n          <Typography\r\n            variant=\"caption\"\r\n            sx={{\r\n              mt: 0.5,\r\n              display: 'flex',\r\n              alignItems: 'center',\r\n              color: 'text.disabled'\r\n            }}\r\n          >\r\n            <Box component={Icon} icon={clockFill} sx={{ mr: 0.5, width: 16, height: 16 }} />\r\n            {fToNow(publicationDate)}\r\n          </Typography>\r\n        }\r\n      />\r\n    </ListItemButton>\r\n  );\r\n}\r\n\r\n/***\r\n *\r\n */\r\n","import { StudyPlanContext } from 'contexts/StudyPlanContext';\r\nimport { useContext, useState, useEffect } from 'react';\r\nimport { StudyPlanChapter, StudyPlanItem, StudyPlanPhase } from '../@types/pedagogy';\r\nimport useStudyPlan from 'hooks/useStudyPlan';\r\nimport useStudyPlanChapterItem from './useStudyPlanChapterItem';\r\n\r\nconst useStudyPlanMove = () => {\r\n  const { phases } = useStudyPlan();\r\n  const managerChapterItem = useStudyPlanChapterItem();\r\n\r\n  const [state, setState] = useState<{\r\n    previous: StudyPlanItem | null;\r\n    next: StudyPlanItem | null;\r\n  }>({\r\n    previous: null,\r\n    next: null\r\n  });\r\n\r\n  useEffect(() => {\r\n    if (managerChapterItem.selected?.item === null) return;\r\n\r\n    //console.log('selectedItem?.item.rowNumber', selectedItem?.item.rowNumber);\r\n\r\n    let previous = null;\r\n    let next = null;\r\n    const previousLine = managerChapterItem.selected?.item.rowNumber - 1;\r\n    const nextLine = managerChapterItem.selected?.item.rowNumber + 1;\r\n\r\n    phases?.map((phase: StudyPlanPhase) => {\r\n      phase.chapters.map((unityChapter: StudyPlanChapter) => {\r\n        unityChapter.chapters.map((chapter: StudyPlanChapter) => {\r\n          if (chapter.chapters !== null) {\r\n            chapter.chapters.map((subChapter: StudyPlanChapter) =>\r\n              subChapter.items.map((_item) => {\r\n                if (_item.rowNumber === previousLine) previous = _item;\r\n\r\n                if (_item.rowNumber === nextLine) next = _item;\r\n              })\r\n            );\r\n          } else\r\n            return chapter.items.map((_item) => {\r\n              if (_item.rowNumber === previousLine) previous = _item;\r\n\r\n              if (_item.rowNumber === nextLine) next = _item;\r\n            });\r\n        });\r\n      });\r\n    });\r\n\r\n    setState({ previous: previous, next: next });\r\n  }, [managerChapterItem.selected?.item]);\r\n\r\n  return { previous: state.previous, next: state.next };\r\n};\r\n\r\nexport default useStudyPlanMove;\r\n","import { TypographyProps, Typography } from '@mui/material';\r\nimport { styled, Box } from '@mui/system';\r\n\r\ninterface TextMaxLineProps extends TypographyProps {\r\n  text: string;\r\n  maxWidth: number;\r\n}\r\n\r\nexport default function TextMaxLine({ text, maxWidth, sx, ...other }: TextMaxLineProps) {\r\n  return (\r\n    <Typography\r\n      variant=\"caption\"\r\n      {...other}\r\n      sx={{\r\n        maxWidth: maxWidth,\r\n        overflow: 'hidden',\r\n        whiteSpace: 'nowrap',\r\n        textOverflow: 'ellipsis',\r\n        wordBreak: 'break-word',\r\n        fontSize: 'inherit',\r\n        fontWeight: 'inherit',\r\n        color: 'inherit',\r\n        ...sx\r\n      }}\r\n    >\r\n      {text}\r\n    </Typography>\r\n  );\r\n}\r\n","import { Badge, Button, ButtonProps, Tooltip } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\n\r\nimport useStudyPlanMove from 'hooks/useStudyPlanMove';\r\nimport { ChevronLeftRounded, ChevronRightRounded, GpsFixed } from '@mui/icons-material';\r\nimport useScreenConfig from 'hooks/useScreenConfig';\r\nimport { ContainerButtonStyle } from './StudyPlanDetailsToolbarSide';\r\nimport MIconButton from 'components/MIconButton';\r\nimport { getStudyPlanItemLabel, getTypeSupport } from 'utils/helperSupport';\r\nimport { useNavigate } from 'react-router';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport { ChapterItemIconTypeStatus } from './ChapterItemStatus';\r\nimport TextMaxLine from 'components/TextMaxLine';\r\nimport { StudyPlanItemStatus } from '../../../../@types/pedagogy';\r\n\r\nconst StudyPlanMove = () => {\r\n  const { isMediumOrMobile } = useScreenConfig();\r\n  const navigate = useNavigate();\r\n\r\n  const handleClick = (reference: string, rowNumber: number) => {\r\n    navigate(`${PATH_DASHBOARD.studyPlan.details}/${reference}/${rowNumber}`);\r\n  };\r\n\r\n  return (\r\n    <>\r\n      {isMediumOrMobile ? (\r\n        <ButtonsMobile onClick={handleClick} />\r\n      ) : (\r\n        <ButtonsStandard onClick={handleClick} />\r\n      )}\r\n    </>\r\n  );\r\n};\r\n\r\nconst ButtonsMobile = ({\r\n  onClick\r\n}: {\r\n  onClick: (reference: string, rowNumber: number) => void;\r\n}) => {\r\n  const { previous, next } = useStudyPlanMove();\r\n\r\n  return (\r\n    <Box display={'flex'} justifyContent={'flex-end'} sx={{ m: 0 }}>\r\n      {previous && (\r\n        <ContainerButtonStyle>\r\n          <Tooltip title={getStudyPlanItemLabel(previous).label}>\r\n            <MIconButton\r\n              disabled={[StudyPlanItemStatus.Disabled, StudyPlanItemStatus.Locked].includes(\r\n                previous.status\r\n              )}\r\n              onClick={() => onClick(previous.reference, previous.rowNumber)}\r\n            >\r\n              <ChevronLeftRounded />\r\n            </MIconButton>\r\n          </Tooltip>\r\n        </ContainerButtonStyle>\r\n      )}\r\n\r\n      {next && (\r\n        <ContainerButtonStyle>\r\n          <Tooltip title={getStudyPlanItemLabel(next).label}>\r\n            <MIconButton\r\n              disabled={[StudyPlanItemStatus.Disabled, StudyPlanItemStatus.Locked].includes(\r\n                next.status\r\n              )}\r\n              onClick={() => onClick(next.reference, next.rowNumber)}\r\n            >\r\n              <ChevronRightRounded />\r\n            </MIconButton>\r\n          </Tooltip>\r\n        </ContainerButtonStyle>\r\n      )}\r\n    </Box>\r\n  );\r\n};\r\n\r\nconst ButtonsStandard = ({\r\n  onClick\r\n}: {\r\n  onClick: (reference: string, rowNumber: number) => void;\r\n}) => {\r\n  const { previous, next } = useStudyPlanMove();\r\n\r\n  const previousLabel = (previous && getStudyPlanItemLabel(previous).label) || '';\r\n  const nextLabel = (next && getStudyPlanItemLabel(next).label) || '';\r\n\r\n  return (\r\n    <Box display={'flex'} justifyContent={'space-between'} sx={{ m: 1 }}>\r\n      <StudyPlanButtonReturn mobile={false} />\r\n      <Box gap=\"10px\" display={'flex'}>\r\n        {previous && (\r\n          <Tooltip title={`${getTypeSupport(previous.type).label} - ${previousLabel}`}>\r\n            <Button\r\n              disabled={[StudyPlanItemStatus.Disabled, StudyPlanItemStatus.Locked].includes(\r\n                previous.status\r\n              )}\r\n              variant=\"outlined\"\r\n              onClick={() => onClick(previous.reference, previous.rowNumber)}\r\n            >\r\n              <ChevronLeftRounded />{' '}\r\n              <ChapterItemIconTypeStatus\r\n                status={previous.status}\r\n                type={previous.type}\r\n                sx={{ mr: 0.5 }}\r\n              />\r\n              <TextMaxLine text={previousLabel} maxWidth={150} color=\"#6369FF\" />\r\n            </Button>\r\n          </Tooltip>\r\n        )}\r\n\r\n        {next && (\r\n          <Tooltip title={`${getTypeSupport(next.type).label} - ${nextLabel}`}>\r\n            <Button\r\n              disabled={[StudyPlanItemStatus.Disabled, StudyPlanItemStatus.Locked].includes(\r\n                next.status\r\n              )}\r\n              variant=\"outlined\"\r\n              onClick={() => onClick(next.reference, next.rowNumber)}\r\n            >\r\n              <ChapterItemIconTypeStatus status={next.status} type={next.type} sx={{ mr: 0.5 }} />\r\n              <TextMaxLine text={nextLabel} maxWidth={150} />\r\n              <ChevronRightRounded />\r\n            </Button>\r\n          </Tooltip>\r\n        )}\r\n      </Box>\r\n    </Box>\r\n  );\r\n};\r\n\r\nexport default StudyPlanMove;\r\n/*\r\n \r\n*/\r\nexport const StudyPlanButtonReturn = ({ mobile }: { mobile: boolean }) => {\r\n  const navigate = useNavigate();\r\n\r\n  const handleReturn = () => {\r\n    navigate(PATH_DASHBOARD.studyPlan.root);\r\n  };\r\n\r\n  return (\r\n    <Tooltip title=\"Retour à la formation\">\r\n      {mobile ? (\r\n        <MIconButton onClick={handleReturn}>\r\n          <GpsFixed />\r\n        </MIconButton>\r\n      ) : (\r\n        <Button variant=\"outlined\" onClick={handleReturn}>\r\n          <ChevronLeftRounded /> Ma formation\r\n        </Button>\r\n      )}\r\n    </Tooltip>\r\n  );\r\n};\r\n","// material\r\nimport { Box, Tooltip } from '@mui/material';\r\nimport { alpha, styled } from '@mui/material/styles';\r\n\r\nimport { useFile } from 'hooks/useFile';\r\n\r\n//type\r\nimport {\r\n  StudyPlanItemHomework,\r\n  StudyPlanItemHtml,\r\n  StudyPlanItemMedia,\r\n  StudyPlanItemType,\r\n  StudyPlanSelected\r\n} from '../../../../@types/pedagogy';\r\nimport { FavoriteType } from '../../../../@types/favorite';\r\n\r\n// composant\r\nimport MIconButton, { MIconButtonDowload } from 'components/MIconButton';\r\nimport StudyPlanDetailsItemInfo from './StudyPlanDetailsItemInfo';\r\nimport FavoriteToggleAction from 'components/_dashboard/favorite/FavoriteAction';\r\nimport StudyPlanDetailsItemQuestion from './StudyPlanDetailsItemQuestion';\r\nimport MeetingDrawer from 'components/_dashboard/meeting/MeetingDrawer';\r\nimport MessagePopover from 'components/_dashboard/message/MessagePopover';\r\nimport SkillList from '../skill/SkillList';\r\nimport StudyPlanDetailsEventPopover from './StudyPlanDetailsEventPopover';\r\nimport { StudyPlanItemFavoriteAction } from './StudyPlanItemFavoriteAction';\r\nimport { MenuBook } from '@mui/icons-material';\r\nimport StudyPlanMove, { StudyPlanButtonReturn } from './StudyPlanDetailsMove';\r\nimport StudyPlanDetailsSidebar from './StudyPlanDetailsSidebar';\r\nimport StudyPlanChapterSummary from '../List/StudyPlanChapterSummary';\r\nimport { useState } from 'react';\r\nimport useChapterItem from 'hooks/useChapterItem';\r\nimport useServices from 'hooks/useServices';\r\nimport { useSelector } from 'react-redux';\r\nimport { RootState } from 'redux/store';\r\n//--------------------------------------\r\n\r\nexport const ContainerButtonStyle = styled(Box)({\r\n  margin: '0 5px 0 0'\r\n});\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ntype StudyPlanDetailsToolbarProps = {\r\n  selected?: StudyPlanSelected;\r\n  isMobile: boolean;\r\n};\r\n\r\nexport default function StudyPlanDetailsToolbarSide({\r\n  selected,\r\n  isMobile\r\n}: StudyPlanDetailsToolbarProps) {\r\n  const { material, isDownload, homeworkBase, mediaFile } = useChapterItem(selected?.item!);\r\n  const { services } = useSelector((state: RootState) => state.message);\r\n\r\n  const getQuestionParameters = () => {\r\n    if (material === undefined || material === null || material.id === '')\r\n      return {\r\n        subjectId: '',\r\n        serviceId: '',\r\n        pro: '',\r\n        subjects: [],\r\n        reference: selected?.item?.reference || '',\r\n        services: services!\r\n      };\r\n    return {\r\n      subjectId: selected?.item?.type === StudyPlanItemType.Homework ? 'DEVOIR' : 'COURS',\r\n      serviceId: 'PED',\r\n      pro: '',\r\n      reference: selected?.item?.reference || ''\r\n    };\r\n  };\r\n\r\n  return (\r\n    <Box\r\n      sx={{\r\n        m: 1.2,\r\n        alignItems: 'center',\r\n        display: 'flex',\r\n        flexDirection: isMobile ? 'row' : 'column'\r\n      }}\r\n    >\r\n      {material && material.scheduleLabel && (\r\n        <ContainerButtonStyle>\r\n          <MeetingDrawer buttonType=\"iconButton\" material={material} homework={homeworkBase} />\r\n        </ContainerButtonStyle>\r\n      )}\r\n      <ContainerButtonStyle>\r\n        <MessagePopover\r\n          label={selected?.item?.label}\r\n          params={getQuestionParameters()}\r\n          small={true}\r\n          buttonType=\"iconButton\"\r\n        />\r\n      </ContainerButtonStyle>\r\n\r\n      <StudyPlanDetailsItemQuestion selected={selected?.item!} />\r\n\r\n      <Box sx={{ mb: 4 }} />\r\n      <ContainerButtonStyle>\r\n        <StudyPlanDetailsItemInfo selected={selected!} />\r\n      </ContainerButtonStyle>\r\n      <ContainerButtonStyle>\r\n        {selected?.item && <StudyPlanItemFavoriteAction item={selected.item} />}\r\n      </ContainerButtonStyle>\r\n      <ContainerButtonStyle>\r\n        <StudyPlanDetailsEventPopover studyPlanItem={selected?.item!} />\r\n      </ContainerButtonStyle>\r\n\r\n      <ContainerButtonStyle>\r\n        {isDownload && mediaFile && <MIconButtonDowload file={mediaFile} />}\r\n      </ContainerButtonStyle>\r\n      <ContainerButtonStyle>\r\n        {homeworkBase && homeworkBase.mandatory && homeworkBase?.skillIds.length > 0 && (\r\n          <SkillList skillIds={homeworkBase?.skillIds} buttonType=\"iconButton\" />\r\n        )}\r\n      </ContainerButtonStyle>\r\n    </Box>\r\n  );\r\n}\r\n\r\nconst MobileToolbarSide = () => {\r\n  const [open, setOpen] = useState(false);\r\n\r\n  return (\r\n    <Box>\r\n      <StudyPlanMove />\r\n    </Box>\r\n  );\r\n};\r\n","// material\r\n\r\nimport { Box } from '@mui/material';\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport useTrackerActivity from 'hooks/useTrackerActivity';\r\nimport useLocalStorage from 'hooks/useLocalStorage';\r\nimport EmptyContent from 'components/EmptyContent';\r\nimport CardMediaCustom from 'components/CardMediaCustom';\r\nimport usePageSettings from 'hooks/usePageSettings';\r\nimport { usePostMessage } from 'hooks/usePostMessage';\r\nimport { isValidHttpUrl } from 'utils/helper';\r\n\r\n// ----------------------------------------------------------------------\r\nexport type StudyPlanDetailsContentHtmlProps = {\r\n  url: string;\r\n  isVideo: boolean;\r\n  courseId: string;\r\n  onEndOfRead?: () => void;\r\n};\r\n\r\nexport default function StudyPlanDetailsContentHtml({\r\n  url,\r\n  isVideo,\r\n  courseId,\r\n  onEndOfRead\r\n}: StudyPlanDetailsContentHtmlProps) {\r\n  const { eventHandler } = useTrackerActivity({ parent: null });\r\n  const {} = usePostMessage({\r\n    url: url,\r\n    onEvent: (type: string, value: any) => {\r\n      if (type === 'end' && value === 'ok') {\r\n        onEndOfRead && onEndOfRead();\r\n      }\r\n      eventHandler(null);\r\n    }\r\n  });\r\n\r\n  if (!isValidHttpUrl(url))\r\n    return <EmptyContent title=\"\" description=\"Ce contenu est inaccessible\" />;\r\n\r\n  return (\r\n    <Box\r\n      sx={{\r\n        display: 'flex',\r\n        flexDirection: 'column',\r\n        flexGrow: 1,\r\n        height: '100%',\r\n        overflow: 'hidden'\r\n      }}\r\n    >\r\n      <CardMediaCustom url={`${url}`} isVideo={isVideo} />\r\n    </Box>\r\n  );\r\n}\r\n","import { Card, styled } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport EmptyContent from 'components/EmptyContent';\r\nimport React, { ReactNode } from 'react';\r\n\r\ntype MediaEmptyContentProps = {\r\n  title: string;\r\n  img?: string;\r\n  description?: string;\r\n  action?: ReactNode;\r\n};\r\n\r\nconst RootStyle = styled(Box)(({ theme }) => ({\r\n  textAlign: 'center',\r\n  height: '100%',\r\n  width: '100%',\r\n  display: 'flex',\r\n  flexDirection: 'column',\r\n  alignItems: 'center',\r\n  justifyContent: 'center',\r\n  gap: '10px',\r\n  padding: '10px'\r\n}));\r\n\r\nexport default function MediaEmptyContent({\r\n  title,\r\n  img,\r\n  description,\r\n  action\r\n}: MediaEmptyContentProps) {\r\n  return (\r\n    <RootStyle>\r\n      <Card>\r\n        <EmptyContent img={img} title={title} description={description} sx={{ width: '100%' }} />\r\n        {action && <div style={{ paddingBottom: '20px' }}>{action}</div>}\r\n      </Card>\r\n    </RootStyle>\r\n  );\r\n}\r\n","import { useEffect, useRef, useState } from 'react';\r\n// material\r\nimport { Box, Divider, Typography, Skeleton, CardMedia, Button } from '@mui/material';\r\n//\r\nimport { useFile } from 'hooks/useFile';\r\n\r\n/**\r\n * externe\r\n */\r\n/* eslint-disable  @typescript-eslint/no-unused-vars */\r\n// @ts-ignore\r\nimport WebViewer from '@pdftron/pdfjs-express-viewer';\r\nimport useTrackerActivity from 'hooks/useTrackerActivity';\r\nimport MediaEmptyContent from './MediaEmptyContent';\r\nimport SkeletonLoadSingle from 'components/SkeletonLoadSingle';\r\nimport { MediaFileInfo } from '../../../@types/media';\r\nimport { FileType } from '../../../@types/common';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport type MediaPDFProps = {\r\n  media: MediaFileInfo;\r\n  reference?: string;\r\n};\r\n\r\n/**\r\n * Viewer pdf de secours\r\n * Utiliser par les mobiles ou les navigateurs safari ,...\r\n * @param param0\r\n * @returns\r\n */\r\nconst FallbackViwerPdf = ({ data, reference }: { data: any; reference: string }) => {\r\n  const viewer = useRef(null);\r\n  const { eventHandler } = useTrackerActivity({ parent: null });\r\n\r\n  useEffect(() => {\r\n    WebViewer(\r\n      {\r\n        licenseKey: 'kkfBo72oLGn3H0qaZsn6',\r\n        path: '/webviewer',\r\n        disabledElements: ['downloadButton', 'printButton']\r\n      },\r\n      viewer.current\r\n    )\r\n      .then((instance: any) => {\r\n        instance.UI.loadDocument(data, { filename: `${reference}.pdf` });\r\n        instance.UI.setLanguage('fr');\r\n        instance.UI.setFitMode(instance.FitMode.FitWidth);\r\n\r\n        const { documentViewer } = instance.Core;\r\n\r\n        const hidePage = (pageIndex: number) => {\r\n          //documentViewer.setPageZoom(pageIndex, 0.01);\r\n\r\n          documentViewer\r\n            .getViewerElement()\r\n            .querySelector(`#pageSection${pageIndex}`).style.visibility = 'hidden';\r\n        };\r\n\r\n        documentViewer.addEventListener('pageComplete', (pageNumber: any, canvas: any) => {\r\n          eventHandler(null); //trace sur le changement de page\r\n        });\r\n      })\r\n      .catch((ex: any) => {\r\n        console.log('error', ex.message);\r\n      });\r\n\r\n    return () => {\r\n      //viewer.current?..removeEventListener('mousemove', eventHandler);\r\n    };\r\n  }, []);\r\n\r\n  return (\r\n    <div\r\n      className=\"webviewer\"\r\n      ref={viewer}\r\n      style={{ flexGrow: 1, height: '100%', overflow: 'hidden', width: '100%' }}\r\n    ></div>\r\n  );\r\n};\r\n\r\n/***\r\n * Viewer PDF par defaut\r\n * Si il ne fonctionne pas, on prend celui de secours\r\n */\r\nexport default function MediaPDF({ media, reference }: MediaPDFProps) {\r\n  const { id, isS3, token } = media;\r\n  const [url, setUrl] = useState('');\r\n  const { getFile, isLoading, errorDownload, getUrlS3 } = useFile();\r\n  const [forceRefresh, setForceRefresh] = useState(false);\r\n\r\n  const loadUrl = () => {\r\n    setUrl('');\r\n    isS3\r\n      ? (async function getUrl() {\r\n          var response: any = await getUrlS3(\r\n            token.fileNameS3,\r\n            media.referentiel ? FileType.MediaReferentiel : media.fileType\r\n          );\r\n\r\n          setUrl(response);\r\n        })()\r\n      : (async function getLoadFile() {\r\n          var response: any = await getFile(id);\r\n\r\n          setUrl(response);\r\n        })();\r\n  };\r\n\r\n  /**\r\n   * Chargement du fichier au demarrage\r\n   */\r\n  useEffect(() => {\r\n    if (isLoading) {\r\n      setForceRefresh(true);\r\n    } else {\r\n      loadUrl();\r\n    }\r\n\r\n    return () => {};\r\n  }, [id]);\r\n\r\n  useEffect(() => {\r\n    if (!isLoading && forceRefresh) {\r\n      setForceRefresh(false);\r\n      loadUrl();\r\n    }\r\n  }, [isLoading, forceRefresh]);\r\n\r\n  if (errorDownload)\r\n    return (\r\n      <MediaEmptyContent\r\n        img=\"/static/illustrations/media/Fichier_introuvable.svg\"\r\n        title=\"Nous ne parvenons pas à retrouver ce support pédagogique.\"\r\n        description=\"L'école a été prévenue de cette anomalie\"\r\n      />\r\n    );\r\n\r\n  return (\r\n    <Box sx={{ flexGrow: 1, height: '100%', overflow: 'hidden' }}>\r\n      {isLoading || url === '' ? (\r\n        <SkeletonLoadSingle />\r\n      ) : (\r\n        <FallbackViwerPdf data={url} reference={reference || 'file'} />\r\n      )}\r\n    </Box>\r\n  );\r\n}\r\n","// db.ts\r\nimport Dexie, { Table } from 'dexie';\r\n\r\nexport interface Evaluation {\r\n  /**\r\n   * Represente la clé (support + N°devoir)\r\n   */\r\n  id?: number;\r\n  evaluationKey: string;\r\n  content: string;\r\n  date: Date;\r\n  isDraft: boolean;\r\n}\r\n\r\nexport class SkillAndYouEntDBDexie extends Dexie {\r\n  // We just tell the typing system this is the case\r\n  evaluations!: Table<Evaluation>;\r\n\r\n  constructor() {\r\n    super('SkillAndYouEntDB');\r\n    this.version(1).stores({\r\n      evaluations: '++id, evaluationKey,isDraft' // Primary key and indexed props\r\n    });\r\n  }\r\n}\r\n\r\nexport const db = new SkillAndYouEntDBDexie();\r\n","import { useLiveQuery } from 'dexie-react-hooks';\r\nimport { useEffect, useState } from 'react';\r\nimport { db, Evaluation } from 'redux/db';\r\n\r\n/**\r\n * Gestion sauvegarde evaluation en base de données locale\r\n */\r\nexport const useDBEvaluation = ({\r\n  courseId,\r\n  homeworkId\r\n}: {\r\n  courseId: string;\r\n  homeworkId: number;\r\n}) => {\r\n  const [evaluation, setEvaluation] = useState<Evaluation | null>(null);\r\n  const [loading, setLoading] = useState(true);\r\n  const [isDraft, setIsDraft] = useState(false); // permet de savoir si il un bruillon non sauvegardé\r\n\r\n  useEffect(() => {\r\n    setEvaluation(null);\r\n    setIsDraft(false);\r\n\r\n    (async function getId() {\r\n      const items = await db.evaluations\r\n        .where('evaluationKey')\r\n        .equals(`${courseId}-${homeworkId}`)\r\n        .toArray();\r\n\r\n      if (items.length > 0) {\r\n        setEvaluation(items[0]);\r\n        setIsDraft(items[0].isDraft);\r\n      }\r\n      setLoading(false);\r\n    })();\r\n  }, [courseId, homeworkId]);\r\n\r\n  const addOrUpate = async (content: string) => {\r\n    if (loading) return;\r\n\r\n    if (evaluation && evaluation.evaluationKey !== '') {\r\n      const isUpaded = await db.evaluations.update(evaluation.id!, {\r\n        content: content,\r\n        isDraft: true\r\n      });\r\n\r\n      return 1;\r\n    }\r\n\r\n    const _evaluation: Evaluation = {\r\n      evaluationKey: `${courseId}-${homeworkId}`,\r\n      date: new Date(),\r\n      content: content,\r\n      isDraft: true\r\n    };\r\n\r\n    const newId = await db.evaluations.add(_evaluation);\r\n    _evaluation.id = +newId;\r\n    setEvaluation(_evaluation);\r\n  };\r\n\r\n  const unDraft = async () => {\r\n    if (evaluation == null) return;\r\n    await db.evaluations.update(evaluation?.id!, {\r\n      isDraft: false\r\n    });\r\n  };\r\n\r\n  const remove = async () => {\r\n    if (evaluation == null) return;\r\n    await db.evaluations.delete(evaluation?.id!);\r\n  };\r\n\r\n  return {\r\n    addOrUpate,\r\n    evaluation,\r\n    unDraft,\r\n    isDraft,\r\n    remove\r\n  };\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Icon } from '@iconify/react';\r\nimport attach2Fill from '@iconify/icons-eva/attach-2-fill';\r\nimport arrowIosBackFill from '@iconify/icons-eva/arrow-ios-back-fill';\r\n//materials\r\nimport { styled } from '@mui/material/styles';\r\nimport {\r\n  Button,\r\n  Card,\r\n  Divider,\r\n  FormHelperText,\r\n  IconButton,\r\n  Stack,\r\n  Tooltip,\r\n  Typography,\r\n  Badge,\r\n  Drawer,\r\n  List\r\n} from '@mui/material';\r\nimport { Box } from '@mui/system';\r\n\r\n// redux\r\nimport { useDispatch, useSelector, RootState, dispatch } from '../../../redux/store';\r\nimport {\r\n  deleteFileHomeworkInProgress,\r\n  getHomeworkInProgress,\r\n  saveContentAuto\r\n} from 'redux/slices/homeworkInProgress';\r\n\r\n// type\r\nimport { HomeworkBase, HomeworkInProgress } from '../../../@types/pedagogy';\r\n\r\n//composant\r\nimport { HomeworkTodoPanelProps } from './HomeworkTodo';\r\nimport MIconButton from 'components/MIconButton';\r\nimport { fDate } from 'utils/formatTime';\r\nimport FileDetailsAttachments from 'components/file/FileDetailsAttachments';\r\nimport { RowItemDisplay } from 'components/RowListItem';\r\nimport { Attachment, Close } from '@mui/icons-material';\r\n\r\n//------------------------------------------------\r\n\r\nconst PanelStyle = styled(Card)({\r\n  padding: 10,\r\n  margin: 5\r\n});\r\n\r\nexport type HomeworkTodoFilesProps = {\r\n  files: Array<any>;\r\n  onChange: (files: Array<any>) => void;\r\n  children(handleClose: () => void, files: Array<any>): any;\r\n  fileFormats?: string[];\r\n  onClose: VoidFunction;\r\n};\r\n\r\nexport default function HomeworkTodoFiles({\r\n  files,\r\n  onChange,\r\n  children,\r\n  fileFormats = [],\r\n  onClose\r\n}: HomeworkTodoFilesProps) {\r\n  const [isOpen, setIsOpen] = useState(false);\r\n\r\n  const handleOpen = () => {\r\n    setIsOpen(true);\r\n  };\r\n\r\n  const handleClose = () => {\r\n    onClose();\r\n    setIsOpen(false);\r\n  };\r\n\r\n  const handleDelete = (id: number) => {\r\n    dispatch(\r\n      deleteFileHomeworkInProgress(id)(() => {\r\n        onChange(files.filter((f) => f.id !== id));\r\n      })\r\n    );\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <Tooltip title=\"Fichiers attachés\">\r\n        <Badge badgeContent={files.length} variant=\"standard\" color=\"error\">\r\n          <MIconButton size=\"small\" onClick={handleOpen}>\r\n            <Icon icon={attach2Fill} width={20} height={20} />\r\n          </MIconButton>\r\n        </Badge>\r\n      </Tooltip>\r\n      <Drawer\r\n        open={isOpen}\r\n        onClose={handleClose}\r\n        anchor=\"right\"\r\n        ModalProps={{ keepMounted: true }}\r\n        PaperProps={{ sx: { width: { xs: 1, sm: 480 } } }}\r\n      >\r\n        <Stack p={1.5} direction=\"row\" alignItems=\"center\">\r\n          <Tooltip title=\"Retour\">\r\n            <IconButton onClick={handleClose} sx={{ mr: 1 }}>\r\n              <Close />\r\n            </IconButton>\r\n          </Tooltip>\r\n          <Typography variant=\"h4\" sx={{ ml: 2.4 }}>\r\n            Liste des fichiers rattachés à l'évaluation\r\n          </Typography>\r\n        </Stack>\r\n        <Divider />\r\n        <Box sx={{ p: 3 }}>\r\n          <List>\r\n            <RowItemDisplay icon={<Attachment />} title=\"Joindre des fichiers\">\r\n              <Typography variant=\"caption\">\r\n                Vous pouvez ajouter jusqu'à 5 fichiers maximum (\r\n                {fileFormats?.map((w) => {\r\n                  return (\r\n                    <Typography variant=\"caption\" component={'span'} key={w}>\r\n                      {w},\r\n                    </Typography>\r\n                  );\r\n                })}\r\n                ) pour un total de 200 Mo maximum.\r\n              </Typography>\r\n              <FileDetailsAttachments files={files} onDelete={handleDelete} />\r\n            </RowItemDisplay>\r\n          </List>\r\n        </Box>\r\n\r\n        <Divider />\r\n        {children(handleClose, files)}\r\n      </Drawer>\r\n    </>\r\n  );\r\n}\r\n","import { Typography } from '@mui/material';\r\n//type\r\nimport { HomeworkAddFileResult } from '../../../@types/pedagogy';\r\n\r\n//composants\r\nimport { RowItemDisplayAlert } from 'components/RowListItem';\r\n\r\n//----------------------------------------------------------\r\nexport type HomeworkTodoErrorFileMsgProps = {\r\n  error: HomeworkAddFileResult;\r\n};\r\n/**\r\n * Affiche le message d'erreur sur l'envoi du devoir\r\n * @param param0\r\n * @returns\r\n */\r\nexport default function HomeworkTodoErrorFileMsg({ error }: HomeworkTodoErrorFileMsgProps) {\r\n  let message: string = 'impossible de transmettre les fichiers';\r\n  switch (error) {\r\n    case HomeworkAddFileResult.ErrorFilesSizeReached:\r\n      message = \"L'ensemble de vos fichiers est trop volumineux.\";\r\n      break;\r\n    case HomeworkAddFileResult.ErrorHomeworkSended:\r\n      message = \"L'évaluation a déjà été transmise.\";\r\n      break;\r\n    case HomeworkAddFileResult.ErrorNumberFilesReached:\r\n      message = 'Vous avez atteint le nombre max de fichiers';\r\n      break;\r\n    case HomeworkAddFileResult.ErrorExtensions:\r\n      message = \"L'extension des fichiers n'est pas compatible.\";\r\n      break;\r\n    case HomeworkAddFileResult.NotFound:\r\n    case HomeworkAddFileResult.Error:\r\n      message = 'Nous rencontrons des problèmes.';\r\n      break;\r\n  }\r\n  return (\r\n    <RowItemDisplayAlert alertColor=\"error\">\r\n      <Typography variant=\"body2\">{message}</Typography>\r\n    </RowItemDisplayAlert>\r\n  );\r\n}\r\n","import axios from 'axios';\r\nimport axiosInstance from 'utils/axios';\r\nimport useHubConnection from './useHubConnection';\r\n\r\nexport type Fichier = {\r\n  url: string;\r\n  id: string;\r\n};\r\n\r\nconst useMediatheque = () => {\r\n  const { onError, disConnect } = useHubConnection();\r\n  /**\r\n   *\r\n   * @param context\r\n   * @param urlApi\r\n   */\r\n  const uploadDataToS3 = async (fileName: string, urlApi: string, data: any) => {\r\n    //recuperer l'url signée\r\n    const fichier = await getUrlSigned(fileName, urlApi);\r\n\r\n    const { url, id } = fichier;\r\n    if (url === null) return { ...fichier, statut: false };\r\n\r\n    const isUploaded = await sendFile(data, url);\r\n\r\n    return { ...fichier, statut: isUploaded };\r\n  };\r\n\r\n  /**\r\n   * Appeler la médatique pour une url signed\r\n   * @param context\r\n   */\r\n  const getUrlSigned = async (fileName: string, urlApi: string) => {\r\n    let response = await axiosInstance.get<any>(`${urlApi}?fileName=${fileName}`, {\r\n      headers: { writeOnly: true }\r\n    });\r\n    return response.data;\r\n  };\r\n  /*\r\n  const sendFile = async (file: any, url: string) => {\r\n    const formData = new FormData();\r\n    formData.append('file', file);\r\n\r\n    const response = await axios.put(url, formData, {\r\n      headers: { 'content-type': 'multipart/form-data' }\r\n    });\r\n\r\n    const { status } = response;\r\n\r\n    return status === 200;\r\n  };\r\n*/\r\n\r\n  async function sendFile(data: Blob, url: string): Promise<boolean> {\r\n    try {\r\n      const response = await axios.put(url, data);\r\n      return response.status === 200;\r\n    } catch (error: any) {\r\n      console.error('Error uploading object:', error);\r\n      onError('Erreur upload fichier', error.message);\r\n      return false;\r\n    }\r\n  }\r\n  return { uploadDataToS3, getUrlSigned, sendFile };\r\n};\r\n\r\nexport default useMediatheque;\r\n","import useMediatheque from './useMediatheque';\r\n\r\nimport { FileBase, FileBaseInfo, FileType, UserType } from '../@types/common';\r\nimport {\r\n  HomeworkAddFileResponse,\r\n  HomeworkAddFileResult,\r\n  HomeworkFileRequest,\r\n  HomeworkInProgress\r\n} from '../@types/pedagogy';\r\nimport { dispatch } from 'redux/store';\r\nimport {\r\n  addFileHomeworkInProgress,\r\n  endLoadingFile,\r\n  getHomeworkInProgress,\r\n  hasErrorFile,\r\n  saveContentAuto,\r\n  startLoadingFile\r\n} from 'redux/slices/homeworkInProgress';\r\nimport axiosInstance from 'utils/axios';\r\nimport { formatFileSize } from 'utils/getFileFormat';\r\nimport useAuth from './useAuth';\r\nimport useHubConnection from './useHubConnection';\r\n\r\nconst useHomeworkFile = () => {\r\n  const { uploadDataToS3, getUrlSigned, sendFile } = useMediatheque();\r\n  const { getContractCurrent } = useAuth();\r\n  const { onError, disConnect } = useHubConnection();\r\n\r\n  const addFiles = async (request: HomeworkFileRequest) => {\r\n    dispatch(startLoadingFile());\r\n\r\n    let filesAdd: Array<FileBaseInfo> = [];\r\n\r\n    const files = request.files;\r\n    request.files = [];\r\n\r\n    for (const file of files) {\r\n      const response = await addFileS3(request, file);\r\n\r\n      if (response.result === HomeworkAddFileResult.Success) {\r\n        filesAdd.push(response.files[0]);\r\n      } else {\r\n        dispatch(hasErrorFile(response.result));\r\n        return { files: filesAdd, statut: false };\r\n      }\r\n    }\r\n\r\n    dispatch(endLoadingFile());\r\n\r\n    return { files: filesAdd, statut: true };\r\n  };\r\n\r\n  const addFileS3 = async (request: HomeworkFileRequest, file: any) => {\r\n    try {\r\n      // demander l'url au serveur\r\n      const { fileName, url, erreur } = await getUrlSigned(\r\n        file.name,\r\n        'api/pedagogy/homework/inprogress/file/url'\r\n      );\r\n\r\n      //envoyer le fichier sur le S3\r\n      if (url !== '') {\r\n        const isSended = await sendFile(file, url);\r\n        if (isSended) {\r\n          request.files = [];\r\n          var requestFinal = Object.assign({}, request, {\r\n            fileName: file.name,\r\n            size: file.size,\r\n            contentType: file.type,\r\n            fileNameS3: fileName\r\n          });\r\n          //enregistrer les données en base\r\n          let response = await axiosInstance.post<HomeworkAddFileResponse>(\r\n            `/api/pedagogy/homework/inprogress/file/add`,\r\n            requestFinal\r\n          );\r\n          return response.data;\r\n        }\r\n      }\r\n\r\n      // gestion du fihcier avec la médiatheque\r\n    } catch (ex: any) {\r\n      console.log(ex);\r\n      console.log(ex.message);\r\n      onError('Erreur upload fichier', ex.message);\r\n    }\r\n\r\n    return { result: HomeworkAddFileResult.Error, files: [] };\r\n  };\r\n\r\n  return { addFiles };\r\n};\r\n\r\nexport default useHomeworkFile;\r\n","import * as Yup from 'yup';\r\nimport { useSnackbar } from 'notistack';\r\nimport { useFormik, Form, FormikProvider } from 'formik';\r\n// material\r\nimport { LoadingButton } from '@mui/lab';\r\n\r\nimport { Typography, DialogActions, Alert, Card } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\n// @types\r\nimport { HomeworkAddFileResult, HomeworkBase, HomeworkFileRequest } from '../../../@types/pedagogy';\r\nimport { FileBaseInfo } from '../../../@types/common';\r\n\r\n// redux\r\nimport { dispatch, RootState, useDispatch, useSelector } from 'redux/store';\r\nimport { addFileHomeworkInProgress } from 'redux/slices/homeworkInProgress';\r\n\r\n//composants\r\nimport HomeworkTodoErrorFileMsg from './HomeworkTodoErrorFileMsg';\r\nimport { UploadMultiFile } from 'components/upload';\r\nimport useHubConnection from 'hooks/useHubConnection';\r\nimport { formatFileSize } from 'utils/getFileFormat';\r\nimport { DropEvent, FileRejection } from 'react-dropzone';\r\nimport useHomeworkFile from 'hooks/useHomeworkFile';\r\n\r\n// ----------------------------------------------------------------------\r\nexport type HomeworkFilesAddProps = {\r\n  onAdd: (files: Array<FileBaseInfo>) => void;\r\n  onClose: () => void;\r\n  homeworkBase: HomeworkBase;\r\n  alreadyAttached: number;\r\n  filesAdded: Array<FileBaseInfo>;\r\n};\r\n\r\nexport default function HomeworkFilesAdd({\r\n  onAdd,\r\n  onClose,\r\n  homeworkBase,\r\n  alreadyAttached,\r\n  filesAdded\r\n}: HomeworkFilesAddProps) {\r\n  const { isLoadingFile, errorFile } = useSelector((state: RootState) => state.homeworkInProgress);\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const { onError } = useHubConnection();\r\n  const { addFiles } = useHomeworkFile();\r\n  const FormSchema = Yup.object().shape({\r\n    files: Yup.array()\r\n      .required('Les fichiers sont obligatoire')\r\n      .min(1, 'Vous devez joindre au moins 1 fichier')\r\n      .max(5, 'Vous ne pouvez pas dépasser 5 fichiers')\r\n  });\r\n\r\n  /**\r\n   * Initialisez les informations\r\n   * @returns\r\n   */\r\n  const getInitialValues = () => ({\r\n    files: [],\r\n    barCode: homeworkBase.barCode,\r\n    id: homeworkBase.id,\r\n    courseId: homeworkBase.courseId,\r\n    conDvrFicId: 0\r\n  });\r\n\r\n  const formik = useFormik<HomeworkFileRequest>({\r\n    initialValues: getInitialValues(),\r\n    validationSchema: FormSchema,\r\n    onSubmit: async (values, { setSubmitting, resetForm }) => {\r\n      const { files } = await addFiles(values);\r\n\r\n      if (files.length > 0) {\r\n        onAdd(files);\r\n        enqueueSnackbar('Fichiers ajoutés', { variant: 'success' });\r\n        resetForm({ values: getInitialValues() });\r\n      }\r\n\r\n      return;\r\n      /**\r\n       * enregistrement du ou des fichiers\r\n       */\r\n      try {\r\n        dispatch(\r\n          addFileHomeworkInProgress(values)((files: Array<FileBaseInfo>) => {\r\n            onAdd(files);\r\n            enqueueSnackbar('Fichiers ajoutés', { variant: 'success' });\r\n            resetForm({ values: getInitialValues() });\r\n          })((request: HomeworkFileRequest, message: string) => {\r\n            resetForm({ values: getInitialValues() });\r\n            let filesInfos = '';\r\n            request.files.map((f) => {\r\n              filesInfos += `${formatFileSize(f.size, 1)}-${f.name}`;\r\n            });\r\n            onError(`fichier évaluation ${request.barCode}`, `${filesInfos}- ${message}`);\r\n          })((files: Array<FileBaseInfo>, error: HomeworkAddFileResult) => {\r\n            resetForm({ values: getInitialValues() });\r\n          })\r\n        );\r\n      } catch (error) {\r\n        setSubmitting(false);\r\n      }\r\n    }\r\n  });\r\n\r\n  const { errors, values, touched, handleSubmit, isSubmitting, setFieldValue, getFieldProps } =\r\n    formik;\r\n\r\n  const handleDrop = (acceptedFiles: any, fileRejections: FileRejection[], event: DropEvent) => {\r\n    if (acceptedFiles.length === 0) return;\r\n\r\n    let files = values.files;\r\n\r\n    acceptedFiles.map((file: File | string) =>\r\n      files.push(\r\n        Object.assign(file, {\r\n          preview: ''\r\n        })\r\n      )\r\n    );\r\n\r\n    setFieldValue('files', files);\r\n    handleSubmit();\r\n  };\r\n\r\n  const handleRemove = (file: File | string) => {\r\n    const filteredItems = values.files.filter((_file: File) => _file !== file);\r\n    setFieldValue('files', filteredItems);\r\n  };\r\n\r\n  let extensions = [...homeworkBase.attachmentType.extensions];\r\n  if (!extensions.includes('.pdf')) extensions.push('.pdf');\r\n\r\n  return (\r\n    <FormikProvider value={formik}>\r\n      <Form noValidate autoComplete=\"off\" onSubmit={handleSubmit}>\r\n        {filesAdded?.length > 4 ? (\r\n          <Box sx={{ p: 3 }}>\r\n            <Alert severity=\"warning\">\r\n              Vous avez atteint le nombre maximun de fichiers à joindre.\r\n            </Alert>\r\n          </Box>\r\n        ) : (\r\n          <Box sx={{ p: 3 }}>\r\n            {!isLoadingFile && (\r\n              <UploadMultiFile\r\n                showPreview\r\n                maxSize={203145728}\r\n                accept={extensions || 'application/pdf'} //\"image/*,application/pdf,.doc,.docx,.xls,.xlsx,.csv,.tsv,.ppt,.pptx,.zip,.odt,.rtf\"\r\n                files={values.files}\r\n                onDrop={handleDrop}\r\n                onRemove={handleRemove}\r\n                error={Boolean(touched.files && errors.files)}\r\n                labelFormat={homeworkBase.attachmentType.label}\r\n                maxFiles={5}\r\n                isDragActive={false}\r\n              />\r\n            )}\r\n            {touched.files && errors.files && (\r\n              <Alert severity=\"error\">{touched.files && errors.files}</Alert>\r\n            )}\r\n\r\n            {errorFile && <HomeworkTodoErrorFileMsg error={errorFile} />}\r\n          </Box>\r\n        )}\r\n\r\n        <DialogActions sx={{ justifyContent: 'center' }}>\r\n          <LoadingButton\r\n            variant=\"contained\"\r\n            loading={isLoadingFile}\r\n            size=\"large\"\r\n            loadingIndicator=\"Traitement...\"\r\n            onClick={onClose}\r\n          >\r\n            FERMER\r\n          </LoadingButton>\r\n        </DialogActions>\r\n      </Form>\r\n    </FormikProvider>\r\n  );\r\n}\r\n","import { Typography } from '@mui/material';\r\n//type\r\nimport { HomeworkSendResult } from '../../../@types/pedagogy';\r\n\r\n//composants\r\nimport { RowItemDisplayAlert } from 'components/RowListItem';\r\nimport { fDateMeeting } from 'utils/formatTime';\r\nimport useAuth from 'hooks/useAuth';\r\nimport { ModeAccess } from '../../../@types/account';\r\n\r\n//----------------------------------------------------------\r\nexport type HomeworkTodoErrorSendedMsgProps = {\r\n  error: HomeworkSendResult;\r\n};\r\n/**\r\n * Affiche le message d'erreur sur l'envoi du devoir\r\n * @param param0\r\n * @returns\r\n */\r\nexport default function HomeworkTodoErrorSendedMsg({ error }: HomeworkTodoErrorSendedMsgProps) {\r\n  let message: string = 'Nous ne pouvons pas donner suite à cette demande';\r\n  switch (error) {\r\n    case HomeworkSendResult.IsFileRequired:\r\n      message = \"L'évaluation n'est pas complète(un fichier est requis).\";\r\n      break;\r\n    case HomeworkSendResult.IsOnlineError:\r\n      message =\r\n        \"Impossible d'enregistrer la rédaction en ligne. Veuillez joindre un fichier à la place\";\r\n\r\n      break;\r\n    case HomeworkSendResult.IsTypeFileRequired:\r\n      message = 'Le type de fichier attendu est manquant';\r\n      break;\r\n    case HomeworkSendResult.NotFound:\r\n    case HomeworkSendResult.Error:\r\n      message = 'Nous rencontrons des problèmes.';\r\n      break;\r\n  }\r\n\r\n  return (\r\n    <RowItemDisplayAlert alertColor=\"error\">\r\n      <Typography variant=\"body2\">{message}</Typography>\r\n    </RowItemDisplayAlert>\r\n  );\r\n}\r\n","import React, { useEffect, useLayoutEffect, useRef, useState } from 'react';\r\nimport { Button, CircularProgress, Divider, MenuItem, Tooltip, Typography } from '@mui/material';\r\nimport { Box, typography } from '@mui/system';\r\n\r\n// redux\r\nimport { dispatch, RootState } from 'redux/store';\r\nimport { saveContentAuto } from 'redux/slices/homeworkInProgress';\r\n\r\n// type\r\nimport { Homework, HomeworkBase, HomeworkInProgress } from '../../../@types/pedagogy';\r\n\r\n//composant\r\nimport MIconButton from 'components/MIconButton';\r\nimport { SaveAltRounded, SaveRounded } from '@mui/icons-material';\r\nimport HelpPopover from 'components/HelpPopover';\r\n\r\n//----------------------------------------------------------------------------------\r\n\r\ntype HomeworkTodoSaveProps = {\r\n  content: string;\r\n  homeworkBase: HomeworkBase;\r\n  onSaved: () => void;\r\n};\r\n\r\n/**\r\n * Enregistrement coté serveur du devoir en cours\r\n * @param param0\r\n * @returns\r\n */\r\nexport default function HomeworkTodoSave({\r\n  content,\r\n  homeworkBase,\r\n  onSaved\r\n}: HomeworkTodoSaveProps) {\r\n  const [isLoading, setIsLoading] = useState(false);\r\n  const anchorRef = useRef(null);\r\n\r\n  const handleSave = () => {\r\n    setIsLoading(true);\r\n    if (content === null || content === undefined) content = '';\r\n\r\n    dispatch(\r\n      saveContentAuto({\r\n        courseId: homeworkBase.courseId,\r\n        id: homeworkBase.id,\r\n        barCode: homeworkBase.barCode,\r\n        content: content,\r\n        attachmentType: null\r\n      })(() => {\r\n        setIsLoading(false);\r\n        onSaved();\r\n      })\r\n    ).then(() => setIsLoading(false));\r\n  };\r\n\r\n  return (\r\n    <Box>\r\n      <Tooltip title={'Enregistrer'}>\r\n        <MIconButton ref={anchorRef} onClick={handleSave}>\r\n          {isLoading ? (\r\n            <CircularProgress variant=\"indeterminate\" size={'1.4em'} />\r\n          ) : (\r\n            <SaveRounded />\r\n          )}\r\n        </MIconButton>\r\n      </Tooltip>\r\n    </Box>\r\n  );\r\n}\r\n\r\n/**\r\n * \r\n\r\n */\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useWatch, Control } from 'react-hook-form';\r\n\r\n// type\r\nimport { Homework, HomeworkBase, HomeworkInProgress } from '../../../@types/pedagogy';\r\nimport { fDate } from 'utils/formatTime';\r\n\r\n//----------------------------------------------------------------------------------\r\n\r\ntype HomeworkTodoSaveDraftProps = {\r\n  children: any;\r\n  control: Control<HomeworkInProgress>;\r\n  defaultValue: string;\r\n  homeworkBase: HomeworkBase;\r\n  onSave: (value: string) => void;\r\n};\r\n\r\n/**\r\n * Enregistrement automatique sur changement de la zone de texte\r\n * @param param0\r\n * @returns\r\n */\r\nexport default function HomeworkTodoSaveDraft({\r\n  control,\r\n  children,\r\n  defaultValue,\r\n  homeworkBase,\r\n  onSave\r\n}: HomeworkTodoSaveDraftProps) {\r\n  const [timeSaved, setTimeSaved] = useState('');\r\n\r\n  //detecte les changements\r\n  const valueChanged = useWatch({\r\n    control,\r\n    name: 'content',\r\n    defaultValue: defaultValue\r\n  });\r\n\r\n  useEffect(() => {\r\n    if (valueChanged === '') return;\r\n\r\n    const interval = setTimeout(() => {\r\n      onSave(valueChanged);\r\n    }, 3000);\r\n    return () => clearInterval(interval);\r\n  }, [valueChanged]);\r\n\r\n  return children(timeSaved, valueChanged?.length);\r\n}\r\n","import { Alert, Typography } from '@mui/material';\r\n//type\r\nimport { HomeworkSendResult } from '../../../@types/pedagogy';\r\nimport { useSelector } from 'react-redux';\r\nimport { dispatch, RootState } from 'redux/store';\r\n\r\n//composants\r\nimport { RowItemDisplayAlert } from 'components/RowListItem';\r\nimport { fDateMeeting } from 'utils/formatTime';\r\nimport { useSnackbar } from 'notistack';\r\nimport { useEffect } from 'react';\r\nimport { initError } from 'redux/slices/homeworkInProgress';\r\n\r\n/**\r\n * Affiche le message d'erreur sur l'enregistremnt du contenu du devoir en ligne\r\n */\r\nexport default function HomeworkTodoSaveErrorMsg({ reference }: { reference: string }) {\r\n  const { error } = useSelector((state: RootState) => state.homeworkInProgress);\r\n  const { enqueueSnackbar } = useSnackbar();\r\n\r\n  useEffect(() => {\r\n    initError();\r\n  }, [reference]);\r\n\r\n  useEffect(() => {\r\n    if (!error) return;\r\n    enqueueSnackbar('Nous ne pouvons pas donner suite à cette demande', { variant: 'error' });\r\n  }, [error]);\r\n\r\n  let message: string = 'Nous ne pouvons pas donner suite à cette demande';\r\n  if (!error || error === '') return <></>;\r\n  return (\r\n    <Alert severity=\"error\" onClose={() => dispatch(initError())}>\r\n      <Typography variant=\"body2\">{message}</Typography>\r\n    </Alert>\r\n  );\r\n}\r\n","import React, { useRef, useEffect, useState } from 'react';\r\n\r\n//materials\r\nimport DialogConfirm from 'components/DialogConfirm';\r\nimport { Evaluation } from 'redux/db';\r\nimport { Typography } from '@mui/material';\r\n\r\n//composant\r\n\r\ntype HomeworkTodoRetrieveDraftProps = {\r\n  evaluation?: Evaluation | null;\r\n  onRetrieve: (value: string) => void;\r\n};\r\n\r\n/**\r\n * Recuperer le brouillon suite à une coupure ou une erreur\r\n * @param evaluation : Object contenant les données\r\n * @returns\r\n */\r\n\r\nexport default function HomeworkTodoRetrieveDraft({\r\n  evaluation,\r\n  onRetrieve\r\n}: HomeworkTodoRetrieveDraftProps) {\r\n  const [open, setOpen] = useState(true);\r\n\r\n  const handleOpen = () => {\r\n    setOpen(true);\r\n  };\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  const handleRetrieve = () => {\r\n    if (evaluation) onRetrieve(evaluation.content);\r\n    setOpen(false);\r\n  };\r\n\r\n  return (\r\n    <DialogConfirm open={open} onCancel={handleClose} isLoading={false} onConfirm={handleRetrieve}>\r\n      <Typography variant=\"body2\">\r\n        Souhaitez-vous récupérer les dernières modifications retrouvées sur votre navigateur ?\r\n      </Typography>\r\n    </DialogConfirm>\r\n  );\r\n}\r\n","import { Typography } from '@mui/material';\r\nimport { Alert } from '@mui/material';\r\nimport useStudyPlan from 'hooks/useStudyPlan';\r\nimport { useEffect, useState } from 'react';\r\n\r\nexport default function HomeworkPlagiat({ defaultOpen }: { defaultOpen: boolean }) {\r\n  const [isPlagiat, setIsPlagiat] = useState(defaultOpen);\r\n  const { removePlagiat } = useStudyPlan();\r\n\r\n  const handleClickPlagiat = () => {\r\n    setIsPlagiat(false);\r\n    //declenchement lecture devoir\r\n    removePlagiat();\r\n  };\r\n\r\n  useEffect(() => {\r\n    setIsPlagiat(defaultOpen);\r\n  }, [defaultOpen]);\r\n\r\n  if (!isPlagiat) return <></>;\r\n\r\n  return (\r\n    <Alert severity=\"warning\" onClose={handleClickPlagiat}>\r\n      <Typography>Le plagiat tue l'apprentissage !</Typography>\r\n      <Typography variant=\"caption\">\r\n        Le plagiat tue l'apprentissage ! Pour que votre formation soit réellement bénéfique, les\r\n        évaluations doivent être effectuées par vous-même et ne doivent pas contenir d’informations\r\n        provenant de documents divers (informations de sources externes (plagiat), corrigé-type de\r\n        l’évaluation, etc.) ni être produites par une intelligence artificielle générative.\r\n      </Typography>\r\n    </Alert>\r\n  );\r\n}\r\n","import { SaveRounded } from '@mui/icons-material';\r\nimport { Snackbar, Typography } from '@mui/material';\r\nimport { Alert } from '@mui/material';\r\nimport useStudyPlan from 'hooks/useStudyPlan';\r\nimport { useEffect, useState } from 'react';\r\n\r\nexport default function HomeworkAlertSave({ defaultOpen }: { defaultOpen: boolean }) {\r\n  const [isSavedOnServer, setIsSavedOnServer] = useState(defaultOpen);\r\n\r\n  const handleClick = () => {\r\n    setIsSavedOnServer(false);\r\n  };\r\n\r\n  useEffect(() => {\r\n    setIsSavedOnServer(defaultOpen);\r\n  }, [defaultOpen]);\r\n\r\n  if (!isSavedOnServer) return <></>;\r\n\r\n  return (\r\n    <Snackbar anchorOrigin={{ horizontal: 'center', vertical: 'bottom' }} open={isSavedOnServer}>\r\n      <Alert\r\n        severity=\"info\"\r\n        onClose={handleClick}\r\n        icon={<SaveRounded />}\r\n        style={{ marginBottom: '50px' }}\r\n      >\r\n        <Typography>Sauvegardez régulièrement votre travail ! </Typography>\r\n        <Typography variant=\"body2\">\r\n          Pensez à enregistrer régulièrement votre travail afin de ne pas le perdre. Une sauvegarde\r\n          automatique est effectuée toutes les 30 secondes sur votre navigateur. Pour enregistrer\r\n          sur nos serveurs, pensez à sauvegarder régulièrement et manuellement.\r\n        </Typography>\r\n      </Alert>\r\n    </Snackbar>\r\n  );\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport * as Yup from 'yup';\r\nimport { useForm, Controller, useWatch, Control } from 'react-hook-form';\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\n\r\n//materials\r\nimport { styled } from '@mui/material/styles';\r\nimport {\r\n  Alert,\r\n  Button,\r\n  Card,\r\n  Divider,\r\n  FormHelperText,\r\n  IconButton,\r\n  LinearProgress,\r\n  List,\r\n  Snackbar,\r\n  Stack,\r\n  Tooltip,\r\n  Typography\r\n} from '@mui/material';\r\nimport { Box, typography } from '@mui/system';\r\nimport { Edit, SendRounded } from '@mui/icons-material';\r\n\r\n// redux\r\nimport { useDispatch, useSelector, RootState, dispatch } from '../../../redux/store';\r\nimport { getHomeworkInProgress, sendHomeworkInProgress } from 'redux/slices/homeworkInProgress';\r\n\r\n// type\r\nimport { Homework, HomeworkBase, HomeworkInProgress } from '../../../@types/pedagogy';\r\n\r\nimport { useDBEvaluation } from 'hooks/useDBEvaluation';\r\n\r\n//composant\r\nimport MIconButton from 'components/MIconButton';\r\nimport { HomeworkTodoPanelProps, ToolbarFileAttachments } from './HomeworkTodo';\r\nimport { QuillEditor } from 'components/editor';\r\n\r\nimport HomeworkTodoFiles from './HomeworkTodoFiles';\r\nimport HomeworkFilesAdd from './HomeworkTodoFilesAdd';\r\nimport DialogConfirm from 'components/DialogConfirm';\r\nimport {\r\n  RowItemDisplay,\r\n  RowItemDisplayAlert,\r\n  RowItemDisplayFiles,\r\n  RowItemDisplayTitle\r\n} from 'components/RowListItem';\r\nimport HomeworkTodoErrorSendedMsg from './HomeworkTodoErrorSendedMsg';\r\nimport HomeworkTodoSave from './HomeworkTodoSave';\r\nimport HomeworkTodoHistory from './HomeworkTodoHistory';\r\nimport useStudyPlan from 'hooks/useStudyPlan';\r\nimport { useSnackbar } from 'notistack';\r\nimport HomeworkTodoSaveDraft from './HomeworkTodoSaveDraft';\r\nimport HomeworkTodoSaveErrorMsg from './HomeworkTodoSaveErrorMsg';\r\nimport { fDateTime } from 'utils/formatTime';\r\nimport HomeworkTodoRetrieveDraft from './HomeworkTodoRetrieveDraft';\r\nimport HomeworkPlagiat from './HomeworkPlagiat';\r\nimport HomeworkAlertSave from './HomeworkAlertSave';\r\nimport useScreenConfig from 'hooks/useScreenConfig';\r\nimport useLocalStorage from 'hooks/useLocalStorage';\r\nimport useStudyPlanHomework from 'hooks/useStudyPlanHomework';\r\nimport { updateHomeworkCacheContent } from 'redux/slices/homeworkCacheContent';\r\n\r\n//------------------------------------------------\r\n\r\nconst PanelStyle = styled(Card)({\r\n  padding: 10,\r\n  margin: 5,\r\n  backgroundColor: '#f5f5f5',\r\n  height: 'calc(100vh - 355px)',\r\n  overflow: 'auto'\r\n});\r\n\r\nconst ContainerButtonStyle = styled(Box)({\r\n  marginRight: 5\r\n});\r\n\r\n//------------------------------------------------\r\nconst maxCaraterLength = 300000; //nombre de caracteres max dans l editeur\r\n\r\nconst FormSchema = Yup.object().shape({\r\n  content: Yup.string().max(maxCaraterLength, ''),\r\n  //   .required('la description est obligatoire')\r\n  //   .min(200, 'Vous devez saisir un minimum de 200 caractères'),\r\n  files: Yup.array()\r\n});\r\n\r\nexport default function HomeworkTodoPanelEdit({\r\n  homeworkBase,\r\n  fullScreen,\r\n  opened,\r\n  isVisible\r\n}: HomeworkTodoPanelProps) {\r\n  const dispatch = useDispatch();\r\n  const { removePlagiat } = useStudyPlan();\r\n  const managerStudyPlanHomework = useStudyPlanHomework();\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  // const { speak } = useSpeechSynthesis();\r\n\r\n  const { errorSended, isLoadingSended } = useSelector(\r\n    (state: RootState) => state.homeworkInProgress\r\n  );\r\n  const {\r\n    watch,\r\n    reset,\r\n    control,\r\n    register,\r\n    setValue,\r\n    handleSubmit,\r\n    getValues,\r\n    formState: { errors, isSubmitting, isValid }\r\n  } = useForm<HomeworkInProgress>({\r\n    mode: 'onTouched',\r\n    resolver: yupResolver(FormSchema),\r\n    defaultValues: {\r\n      content: '',\r\n      files: [],\r\n      id: homeworkBase.id,\r\n      barCode: homeworkBase.barCode,\r\n      courseId: homeworkBase.courseId,\r\n      status: 'A',\r\n      isSavedOnServer: false\r\n    }\r\n  });\r\n\r\n  const [openConfirm, setOpenConfirm] = useState(false);\r\n  const [savedTime, setSavedTime] = useState('');\r\n  const { addOrUpate, unDraft, evaluation, isDraft, remove } = useDBEvaluation({\r\n    courseId: homeworkBase.courseId,\r\n    homeworkId: homeworkBase.id\r\n  });\r\n\r\n  const { isMediumOrMobile } = useScreenConfig();\r\n  const [isFullScreen, setIsFullScreen] = useLocalStorage('fullscreenDetailTraining', true);\r\n  const [contentHeight, setContentHeight] = useState(350);\r\n\r\n  const { idCache, courseIdCache, barCodeCache, contentCache, applyContentCache } = useSelector(\r\n    (state: RootState) => state.homeworkCacheContent\r\n  );\r\n\r\n  const [useContentCache, setUseContentCache] = useState(false);\r\n\r\n  useEffect(() => {\r\n    setValue('files', []);\r\n    setValue('status', 'A');\r\n    setValue('content', '');\r\n    setValue('barCode', homeworkBase.barCode);\r\n    setValue('id', homeworkBase.id);\r\n    setValue('courseId', homeworkBase.courseId);\r\n\r\n    //Si le cache est activé pour le devoir en cours\r\n    const hasContentCache =\r\n      applyContentCache &&\r\n      homeworkBase &&\r\n      idCache === homeworkBase.id &&\r\n      courseIdCache === homeworkBase.courseId &&\r\n      barCodeCache === homeworkBase.barCode;\r\n\r\n    setUseContentCache(hasContentCache ?? false);\r\n\r\n    /*Recuperer le contenu commencé*/\r\n    dispatch(\r\n      getHomeworkInProgress(\r\n        homeworkBase.courseId,\r\n        homeworkBase.id\r\n      )((_item) => {\r\n        setValue('files', _item.files);\r\n        setValue('status', _item.status);\r\n\r\n        if (!hasContentCache) {\r\n          setValue('content', _item.content);\r\n          dispatch(updateHomeworkCacheContent({ homework: homeworkBase, content: _item.content }));\r\n        }\r\n\r\n        if (_item.content !== '') setValue('isSavedOnServer', true);\r\n      })\r\n    ).then(() => {\r\n      if (hasContentCache) {\r\n        setValue('content', contentCache);\r\n      }\r\n    });\r\n    //setIsPlagiat(opened);\r\n  }, [homeworkBase]);\r\n\r\n  useEffect(() => {\r\n    const container = document.getElementById('BoxContentTitle');\r\n    let heightTitle = 77;\r\n    if (container) {\r\n      heightTitle = container.clientHeight;\r\n    }\r\n\r\n    if (isMediumOrMobile) {\r\n      setContentHeight(150 + heightTitle);\r\n    } else if (isFullScreen) {\r\n      setContentHeight(140 + heightTitle);\r\n    } else {\r\n      setContentHeight(260 + heightTitle + 100);\r\n    }\r\n  });\r\n\r\n  /**\r\n   * Envoyer le devoir, puis l'ajouter au PE\r\n   * @param data formulaire\r\n   */\r\n  const onSubmit = async (data: HomeworkInProgress) => {\r\n    let value = data.content;\r\n    value = `<h4>Référence de l'évaluation : ${data.barCode} - </h4>${value}`;\r\n    dispatch(\r\n      sendHomeworkInProgress({\r\n        id: data.id,\r\n        courseId: data.courseId,\r\n        content: value,\r\n        barCode: data.barCode,\r\n        attachmentType: homeworkBase.attachmentType\r\n      })((homework: Homework) => {\r\n        /**\r\n         * devoir bien envoyé => on l'ajoute au PE\r\n         */\r\n        managerStudyPlanHomework.updatedSended(homework);\r\n        setOpenConfirm(false);\r\n        remove(); //dblocale\r\n        enqueueSnackbar(\"L'évaluation a bien été transmise\", { variant: 'success' });\r\n      })(() => {\r\n        setOpenConfirm(false);\r\n        enqueueSnackbar(\"Nous avons détecté une erreur lors de l'envoi\", { variant: 'error' });\r\n      })\r\n    );\r\n  };\r\n\r\n  // Declenchement de la popup\r\n  const handleClickSend = () => {\r\n    setOpenConfirm(true);\r\n  };\r\n\r\n  const onUploadImage = (quillObj: any) => {};\r\n\r\n  const onSaveDraft = (value: string) => {\r\n    if (value === '<p><br></p>') return;\r\n    try {\r\n      //sauvegarde sur la base de donnéees du navigateur\r\n      addOrUpate(value).then(() => {\r\n        //setTimeSaved(fDate(new Date(), 'HH:mm'));\r\n      });\r\n    } catch (ex) {\r\n      console.log(ex, 'erreur draft');\r\n    }\r\n  };\r\n\r\n  // Passe le brouillon en mode ok\r\n  const onSaved = () => {\r\n    setSavedTime(fDateTime(new Date()));\r\n    setValue('isSavedOnServer', true);\r\n    unDraft();\r\n  };\r\n\r\n  // Recuperer le mode brouillon\r\n  const onRetrieve = (value: string) => {\r\n    setValue('content', value);\r\n    dispatch(updateHomeworkCacheContent({ homework: homeworkBase, content: value }));\r\n  };\r\n\r\n  // contenu en ligne sauvegardé sur le server\r\n  const isSavedOnServer = watch('isSavedOnServer');\r\n\r\n  // Nombre de fichiers\r\n  const files = watch('files');\r\n  // contenu en ligne\r\n  const contentOnLine = watch('content');\r\n  // validation fichier\r\n  const isValidFiles =\r\n    files.length > 0 &&\r\n    files.some((f) => {\r\n      const [extension, ...fileName] = f.fileName.toLocaleLowerCase().split('.').reverse();\r\n      return homeworkBase.attachmentType.extensions.includes(`.${extension}`);\r\n    });\r\n\r\n  // validation en ligne\r\n  function getIsValidOnline() {\r\n    if (contentOnLine === undefined || contentOnLine === null) return false;\r\n    const is =\r\n      contentOnLine.length > 200 &&\r\n      contentOnLine.length < maxCaraterLength &&\r\n      homeworkBase.attachmentType.extensions.includes('.pdf');\r\n\r\n    return is;\r\n  }\r\n\r\n  const isValidOnline = getIsValidOnline();\r\n\r\n  //validation pour envoi\r\n  const isValidSend = isValidFiles || isValidOnline;\r\n\r\n  return (\r\n    <>\r\n      <form onSubmit={handleSubmit(onSubmit)} id=\"formDevoir\" style={{ height: '100%' }}>\r\n        <PanelStyle sx={{ height: `calc(100vh - ${contentHeight}px)` }}>\r\n          <HomeworkTodoSaveErrorMsg reference={homeworkBase.barCode} />\r\n\r\n          <Stack alignItems=\"center\" display=\"flex\" flexDirection=\"row\">\r\n            <ToolbarFileAttachments files={homeworkBase?.files} barCode={homeworkBase?.barCode} />\r\n            <Box sx={{ flexGrow: 1 }} />\r\n            <ContainerButtonStyle>\r\n              <HomeworkTodoSave\r\n                homeworkBase={homeworkBase}\r\n                content={contentOnLine}\r\n                onSaved={onSaved}\r\n              />\r\n            </ContainerButtonStyle>\r\n            <ContainerButtonStyle>\r\n              <Controller\r\n                name=\"files\"\r\n                control={control}\r\n                render={({ field, fieldState: { error } }) => (\r\n                  <HomeworkTodoFiles\r\n                    files={field.value}\r\n                    onChange={field.onChange}\r\n                    fileFormats={homeworkBase.attachmentType.extensions}\r\n                    onClose={() => console.log('')}\r\n                  >\r\n                    {(handleClose, filesAdded) =>\r\n                      homeworkBase && (\r\n                        <HomeworkFilesAdd\r\n                          homeworkBase={homeworkBase}\r\n                          onAdd={(files: Array<any>) =>\r\n                            setValue('files', [...field.value, ...files])\r\n                          }\r\n                          onClose={handleClose}\r\n                          alreadyAttached={field.value.length}\r\n                          filesAdded={filesAdded}\r\n                        />\r\n                      )\r\n                    }\r\n                  </HomeworkTodoFiles>\r\n                )}\r\n              />\r\n            </ContainerButtonStyle>\r\n            <ContainerButtonStyle>\r\n              <Tooltip title={\"Envoyer l'évaluation à l'école\"}>\r\n                <MIconButton onClick={handleClickSend}>\r\n                  <SendRounded />\r\n                </MIconButton>\r\n              </Tooltip>\r\n            </ContainerButtonStyle>\r\n          </Stack>\r\n\r\n          {errorSended && <HomeworkTodoErrorSendedMsg error={errorSended} />}\r\n\r\n          <HomeworkPlagiat defaultOpen={!opened} />\r\n\r\n          <Controller\r\n            name=\"content\"\r\n            control={control}\r\n            render={({ field, fieldState: { error } }) => (\r\n              <QuillEditor\r\n                simple\r\n                id=\"hook-content\"\r\n                value={field.value}\r\n                onChange={(value) => {\r\n                  field.onChange(value);\r\n                  dispatch(updateHomeworkCacheContent({ homework: homeworkBase, content: value }));\r\n                }}\r\n                error={Boolean(error)}\r\n              />\r\n            )}\r\n          />\r\n\r\n          <HomeworkAlertSave defaultOpen={isValidOnline && !isSavedOnServer} />\r\n\r\n          {Boolean(errors.content) && (\r\n            <FormHelperText error sx={{ px: 2 }}>\r\n              {errors.content?.message}\r\n            </FormHelperText>\r\n          )}\r\n\r\n          {!useContentCache && isDraft && (\r\n            <HomeworkTodoRetrieveDraft evaluation={evaluation} onRetrieve={onRetrieve} />\r\n          )}\r\n\r\n          <HomeworkTodoSaveDraft\r\n            defaultValue={''}\r\n            control={control}\r\n            homeworkBase={homeworkBase}\r\n            onSave={onSaveDraft}\r\n          >\r\n            {(timeSaved: string, numberOfCaracters: number) => {\r\n              let value = (numberOfCaracters / maxCaraterLength) * 100;\r\n              if (value > 100) value = 100;\r\n\r\n              const warning = value > 80 && value < 95 ? true : false;\r\n              const error = value >= 95 ? true : false;\r\n\r\n              return (\r\n                <Box>\r\n                  {!warning && !error && (\r\n                    <Typography variant=\"caption\">\r\n                      Limite de caractères : (<strong>minimum de 200 caractères</strong> )\r\n                    </Typography>\r\n                  )}\r\n\r\n                  {warning && (\r\n                    <Typography variant=\"caption\" color=\"warning\">\r\n                      Vous allez prochainement atteindre le nombre maximum de caractères autorisé\r\n                    </Typography>\r\n                  )}\r\n\r\n                  {error && (\r\n                    <Typography variant=\"caption\" color=\"error\">\r\n                      Vous avez atteint le nombre maximum de caractères autorisé {value}%\r\n                    </Typography>\r\n                  )}\r\n\r\n                  <LinearProgress\r\n                    variant=\"determinate\"\r\n                    value={value}\r\n                    sx={{\r\n                      ...(warning && { '& .MuiLinearProgress-bar': { bgcolor: '#ffc107' } }),\r\n                      ...(error && {\r\n                        '& .MuiLinearProgress-bar': {\r\n                          bgcolor: '#ff4842',\r\n                          backgroundColor: '#ff4842'\r\n                        }\r\n                      })\r\n                    }}\r\n                  />\r\n                  {savedTime !== '' && (\r\n                    <Typography variant=\"caption\">Enregistrement effectué à {savedTime}</Typography>\r\n                  )}\r\n                </Box>\r\n              );\r\n            }}\r\n          </HomeworkTodoSaveDraft>\r\n        </PanelStyle>\r\n\r\n        <DialogConfirm\r\n          open={openConfirm}\r\n          isLoading={isLoadingSended}\r\n          onConfirm={handleSubmit(onSubmit)}\r\n          onCancel={() => setOpenConfirm(false)}\r\n          maxWidth=\"sm\"\r\n          withoutImage={true}\r\n          disabled={!isValidSend}\r\n        >\r\n          <Box sx={{ p: 3 }}>\r\n            <List>\r\n              <RowItemDisplayTitle\r\n                title={<Typography variant=\"h6\">Confirmation de l'envoi</Typography>}\r\n              />\r\n\r\n              <RowItemDisplayFiles files={files} />\r\n              {isValidOnline && (\r\n                <RowItemDisplay title=\"Rédaction en ligne\" icon={<Edit />}>\r\n                  La rédaction de votre évaluation en ligne sera ajoutée automatiquement\r\n                </RowItemDisplay>\r\n              )}\r\n\r\n              {!isValidSend ? (\r\n                <RowItemDisplayAlert alertColor=\"error\">\r\n                  {contentOnLine?.length >= maxCaraterLength && (\r\n                    <Typography variant=\"body2\" gutterBottom>\r\n                      Vous avez dépassé le nombre maximum de caractères autorisé\r\n                    </Typography>\r\n                  )}\r\n                  {!isValidFiles && !homeworkBase.attachmentType.extensions.includes('.pdf') && (\r\n                    <Typography variant=\"body2\" gutterBottom>\r\n                      Vous devez ajouter une pièce de type \"{homeworkBase.attachmentType.label}(\r\n                      {homeworkBase.attachmentType.extensions.join(',')})\" afin de pouvoir envoyer\r\n                      votre évaluation pour correction.\r\n                    </Typography>\r\n                  )}\r\n                  {!isValidOnline && homeworkBase.attachmentType.extensions.includes('.pdf') && (\r\n                    <Typography variant=\"body2\" gutterBottom>\r\n                      Vous devez envoyer une pièce jointe de type \"{' '}\r\n                      {homeworkBase.attachmentType.extensions.join(',')}\" ou rédiger votre\r\n                      évaluation (200 caractères minimum) dans l'emplacement prévu à cet effet afin\r\n                      de pouvoir envoyer votre évaluation pour correction.\r\n                    </Typography>\r\n                  )}\r\n                </RowItemDisplayAlert>\r\n              ) : (\r\n                <>\r\n                  <RowItemDisplayAlert alertColor=\"warning\">\r\n                    <Typography variant=\"caption\">\r\n                      N'hésitez pas à relire votre travail avant de l'envoyer pour supprimer toute\r\n                      faute d'orthographe ou de syntaxe qui pourrait faire baisser votre note\r\n                      finale.\r\n                    </Typography>\r\n                  </RowItemDisplayAlert>\r\n\r\n                  <RowItemDisplay\r\n                    title=\"Confirmez-vous l'envoi de vos fichiers pour correction ?\"\r\n                    icon={null}\r\n                  ></RowItemDisplay>\r\n                </>\r\n              )}\r\n            </List>\r\n          </Box>\r\n        </DialogConfirm>\r\n      </form>\r\n    </>\r\n  );\r\n}\r\n","import { useEffect, useState } from 'react';\r\n\r\n// redux\r\nimport { useDispatch } from 'react-redux';\r\nimport { selectMeeting } from 'redux/slices/meeting';\r\n\r\n//type\r\nimport { Meeting } from '../../../@types/meeting';\r\n\r\n// composant\r\nimport { MeetingForm } from './MeetingForm';\r\nimport { MeetingView } from './MeetingView';\r\n\r\nexport default function MeetingContainer({\r\n  meeting,\r\n  isVoice = false\r\n}: {\r\n  meeting: Meeting;\r\n  isVoice?: boolean;\r\n}) {\r\n  const dispatch = useDispatch();\r\n  const [modeRead, setModeRead] = useState(true);\r\n\r\n  useEffect(() => {\r\n    dispatch(selectMeeting(meeting));\r\n  }, [meeting]);\r\n\r\n  return modeRead ? (\r\n    <MeetingView\r\n      onClose={() => console.log('')}\r\n      onChangeMode={() => setModeRead(false)}\r\n      isVoice={isVoice}\r\n    />\r\n  ) : (\r\n    <MeetingForm\r\n      onCancel={() => setModeRead(true)}\r\n      onClose={() => console.log('')}\r\n      homework={meeting.homework}\r\n    />\r\n  );\r\n}\r\n","//materials\r\nimport { styled } from '@mui/material/styles';\r\nimport { Button, Card, Stack, Typography } from '@mui/material';\r\nimport { Box, useTheme } from '@mui/system';\r\n\r\n//redux\r\nimport { RootState } from 'redux/store';\r\nimport { useSelector } from 'react-redux';\r\nimport { getMeetings } from 'redux/slices/agenda';\r\n\r\n//type\r\nimport { AgendaEventType } from '../../../@types/agenda';\r\nimport { HomeworkBase } from '../../../@types/pedagogy';\r\nimport { MeetingStatus, Meeting } from '../../../@types/meeting';\r\n\r\nimport MeetingDrawer from '../meeting/MeetingDrawer';\r\n\r\nimport MeetingContainer from '../meeting/MeetingContainer';\r\nimport Scrollbar from 'components/Scrollbar';\r\nimport useAuth from 'hooks/useAuth';\r\nimport { ToolbarFileAttachments } from './HomeworkTodo';\r\nimport { PhoneLabel } from 'components/PhoneInfo';\r\n\r\n//composant\r\n\r\nconst RootStyle = styled(Card)({\r\n  padding: 10,\r\n  margin: 5,\r\n  flexGrow: 1,\r\n  height: '100%',\r\n  overflow: 'hidden'\r\n});\r\n\r\nexport function HomeworkTodoVoice({ homeworkBase }: { homeworkBase: HomeworkBase }) {\r\n  const { events } = useSelector((state: RootState) => state.agenda);\r\n  const { getContractCurrent } = useAuth();\r\n  const meetings = getMeetings(events);\r\n\r\n  const isEventMaterial =\r\n    events.filter(\r\n      (event) =>\r\n        event.eventType === AgendaEventType.ScheduleTeacher &&\r\n        event.title === homeworkBase.material.scheduleLabel\r\n    ).length > 0;\r\n\r\n  const meetingCurrent = meetings.filter(\r\n    (event) =>\r\n      event.eventType === AgendaEventType.Meeting &&\r\n      event.metadatas.homework?.barCode === homeworkBase.barCode &&\r\n      event.metadatas.status === MeetingStatus.Registered\r\n  )[0];\r\n\r\n  return (\r\n    <RootStyle>\r\n      <Stack display=\"flex\" flexDirection={'row'} alignItems={'center'}>\r\n        <Box\r\n          component=\"img\"\r\n          alt=\"empty content\"\r\n          src={'/static/illustrations/evaluations/Evaluationorale.svg'}\r\n          sx={{ maxHeight: '240px', mb: 3 }}\r\n        />\r\n        <Box>\r\n          <ToolbarFileAttachments files={homeworkBase?.files} barCode={homeworkBase?.barCode} />\r\n          <Typography paragraph variant=\"subtitle1\">\r\n            Évaluation orale ({homeworkBase.duration} minutes)\r\n          </Typography>\r\n          {isEventMaterial || meetingCurrent ? (\r\n            <>\r\n              <Typography gutterBottom variant=\"body2\">\r\n                Pour réaliser l'évaluation orale, vous devez prendre rendez-vous avec votre\r\n                formateur ou formatrice concernant la matière{' '}\r\n                <strong>{homeworkBase.material?.scheduleLabel}</strong>.\r\n              </Typography>\r\n\r\n              {meetingCurrent ? (\r\n                <Scrollbar>\r\n                  <MeetingContainer meeting={meetingCurrent?.metadatas as Meeting} isVoice={true} />\r\n                </Scrollbar>\r\n              ) : (\r\n                <>\r\n                  <Typography gutterBottom variant=\"body2\">\r\n                    Nous vous invitons{' '}\r\n                    <strong>\r\n                      {' '}\r\n                      à prendre rendez-vous pour votre évaluation orale seulement si vous êtes prêt\r\n                    </strong>\r\n                    .<br />\r\n                    Tout rendez-vous maintenu devra être honoré et aboutira à une note. Toute\r\n                    absence sera notée 0/{getContractCurrent().scoreOn}.\r\n                  </Typography>\r\n\r\n                  <MeetingDrawer\r\n                    buttonType=\"button\"\r\n                    material={homeworkBase.material}\r\n                    homework={homeworkBase}\r\n                  />\r\n                </>\r\n              )}\r\n            </>\r\n          ) : (\r\n            <>\r\n              <Typography gutterBottom variant=\"body2\">\r\n                Pour réaliser l'évaluation orale, veuillez contacter votre tuteur ou tutrice afin de\r\n                prendre rendez-vous. .\r\n              </Typography>\r\n              <Typography gutterBottom variant=\"body2\">\r\n                Vous pouvez le ou la contacter par téléphone au{' '}\r\n                <PhoneLabel brandId={getContractCurrent().brand.id} phoneNumber=\"01.46.00.68.78\" />{' '}\r\n                , en sélectionnant la touche 2, ou via votre messagerie..\r\n              </Typography>\r\n            </>\r\n          )}\r\n        </Box>\r\n      </Stack>\r\n    </RootStyle>\r\n  );\r\n}\r\n","import {\r\n  ArticleRounded,\r\n  Image,\r\n  LibraryMusicRounded,\r\n  PictureAsPdf,\r\n  VideoLibraryRounded\r\n} from '@mui/icons-material';\r\nimport { Link } from '@mui/material';\r\nimport { MediaFileType } from '../../../@types/media';\r\n\r\nexport type MediaIconProps = {\r\n  type: MediaFileType;\r\n};\r\n\r\nexport function MediaIcon({ type }: MediaIconProps) {\r\n  switch (type) {\r\n    case MediaFileType.Pdf:\r\n    case MediaFileType.PdfPersonnalise:\r\n    case MediaFileType.PdfSecurises:\r\n      return <PictureAsPdf />;\r\n    case MediaFileType.Audio:\r\n      return <LibraryMusicRounded />;\r\n    case MediaFileType.Videos:\r\n      return <VideoLibraryRounded />;\r\n    case MediaFileType.UrlText:\r\n      return <Link />;\r\n    case MediaFileType.Images:\r\n      return <Image />;\r\n    default:\r\n      return <ArticleRounded />;\r\n  }\r\n}\r\n","import {\r\n  CardMedia,\r\n  CircularProgress,\r\n  DialogContent,\r\n  DialogTitle,\r\n  MenuItem,\r\n  Typography\r\n} from '@mui/material';\r\nimport { DialogAnimate } from 'components/animate';\r\nimport CardMediaCustom from 'components/CardMediaCustom';\r\nimport FileAction from 'components/file/FileAction';\r\n\r\nimport { useEffect, useState } from 'react';\r\nimport { MediaFileInfo, MediaFileType } from '../../../@types/media';\r\nimport { MediaIcon } from './MediaIcon';\r\n\r\nexport type MediaMenuItemProps = {\r\n  media: MediaFileInfo;\r\n};\r\n\r\nexport default function MediaMenuItem({ media }: MediaMenuItemProps) {\r\n  switch (media.typFicMed) {\r\n    case MediaFileType.UrlText:\r\n      return (\r\n        <MenuItem href={media.url}>\r\n          <MediaIcon type={media.typFicMed} />\r\n          <Typography variant=\"caption\">{media.title}</Typography>\r\n        </MenuItem>\r\n      );\r\n    case MediaFileType.Audio:\r\n    case MediaFileType.Videos:\r\n      return <MediaMenuItemIframe media={media} />;\r\n    default:\r\n      return <MediaMenuItemDownload media={media} />;\r\n  }\r\n}\r\n\r\nfunction MediaMenuItemDownload({ media }: MediaMenuItemProps) {\r\n  const { id, fileType, fileName, isS3, token } = media;\r\n\r\n  return (\r\n    <FileAction>\r\n      {(download, getFile, downloadImage, isLoading, errorDownload, downloadUrl, downloadS3) => (\r\n        <MenuItem\r\n          onClick={() =>\r\n            isS3\r\n              ? downloadS3(token.fileNameS3, fileName, fileType, id)\r\n              : download(id, fileType, fileName)\r\n          }\r\n        >\r\n          {isLoading ? (\r\n            <CircularProgress variant=\"indeterminate\" size={'1.4em'} />\r\n          ) : (\r\n            <MediaIcon type={media.typFicMed} />\r\n          )}\r\n\r\n          <Typography variant=\"caption\">{media.title}</Typography>\r\n        </MenuItem>\r\n      )}\r\n    </FileAction>\r\n  );\r\n}\r\n\r\nfunction MediaMenuItemIframe({ media }: MediaMenuItemProps) {\r\n  const [open, setOpen] = useState(false);\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n  return (\r\n    <>\r\n      <DialogAnimate maxWidth=\"sm\" scroll=\"paper\" onClose={handleClose} open={open}>\r\n        <DialogTitle>{media.title}</DialogTitle>\r\n        <DialogContent>\r\n          <CardMedia\r\n            sx={{ flexGrow: 1, height: '95%', overflow: 'hidden' }}\r\n            component=\"iframe\"\r\n            frameBorder=\"0\"\r\n            src={open ? media.url : ''}\r\n          />\r\n        </DialogContent>\r\n      </DialogAnimate>\r\n    </>\r\n  );\r\n}\r\n","import { ArticleRounded } from '@mui/icons-material';\r\nimport { Divider, Typography } from '@mui/material';\r\nimport { Box, BoxProps } from '@mui/system';\r\nimport MenuPopover from 'components/MenuPopover';\r\nimport MIconButton from 'components/MIconButton';\r\nimport Scrollbar from 'components/Scrollbar';\r\nimport { useRef, useState } from 'react';\r\nimport { MediaFileInfo, MediaFileType } from '../../../@types/media';\r\nimport MediaMenuItem from './MediaMenuItem';\r\n\r\ninterface MediaMenuPopoverProps extends BoxProps {\r\n  medias: Array<MediaFileInfo>;\r\n  title: string;\r\n}\r\n\r\nexport default function MediaMenuPopover({ medias, title }: MediaMenuPopoverProps) {\r\n  const anchorRef = useRef(null);\r\n  const [open, setOpen] = useState(false);\r\n\r\n  const handleOpen = () => {\r\n    setOpen(true);\r\n  };\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  if (medias.length === 0) return <></>;\r\n\r\n  return (\r\n    <Box>\r\n      <MIconButton size=\"small\" ref={anchorRef} onClick={handleOpen}>\r\n        <ArticleRounded />\r\n      </MIconButton>\r\n\r\n      <MenuPopover\r\n        open={open}\r\n        onClose={handleClose}\r\n        anchorEl={anchorRef.current}\r\n        sx={{\r\n          width: 360\r\n        }}\r\n      >\r\n        <Box sx={{ display: 'flex', alignItems: 'center', py: 2, px: 2.5, flexDirection: 'row' }}>\r\n          <Typography variant=\"body2\">{title}</Typography>\r\n        </Box>\r\n        <Divider />\r\n        <Scrollbar sx={{ height: { xs: 340, sm: 'auto' } }}>\r\n          {medias.map((m) => {\r\n            return <MediaMenuItem media={m} key={m.id} />;\r\n          })}\r\n        </Scrollbar>\r\n      </MenuPopover>\r\n    </Box>\r\n  );\r\n}\r\n","import React, { ReactNode, useRef } from 'react';\r\nimport Slider from 'react-slick';\r\nimport CarouselDotsControlsPagingProps from '../main/CarouselDotsControlsPaging';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Box } from '@mui/material';\r\n\r\n// types\r\ntype MediaCarouselProps = {\r\n  children?: ReactNode;\r\n  nbRows?: number;\r\n};\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function MediaCarousel({ children, nbRows = 3 }: MediaCarouselProps) {\r\n  const theme = useTheme();\r\n  const carouselRef = useRef<Slider | null>(null);\r\n\r\n  const settings = {\r\n    dots: true,\r\n    arrows: false,\r\n    autoplay: false,\r\n    slidesToShow: 1,\r\n    slidesToScroll: 1,\r\n    rows: nbRows,\r\n    rtl: Boolean(theme.direction === 'rtl'),\r\n    ...CarouselDotsControlsPagingProps({\r\n      sx: { mt: 3 }\r\n    })\r\n  };\r\n\r\n  return (\r\n    //Le carousel est placé dans une box pour qu'il puisse calculer correctement sa largeur (et par extension sa hauteur)\r\n    //en fonction de son conteneur\r\n    //NB : sinon les items prennent une largeur de 0\r\n    <Box sx={{ width: '100%' }}>\r\n      <Slider ref={carouselRef} {...settings}>\r\n        {children}\r\n      </Slider>\r\n    </Box>\r\n  );\r\n}\r\n","import { useRef, useState } from 'react';\r\n//materials\r\nimport { styled } from '@mui/material/styles';\r\nimport { Collapse, Stack, Tab, Tabs, Typography } from '@mui/material';\r\nimport { Box, useTheme } from '@mui/system';\r\n\r\n//type\r\nimport {\r\n  HomeworkBase,\r\n  HomeworkType,\r\n  StudyPlanItem,\r\n  StudyPlanItemHtml,\r\n  StudyPlanItemMedia,\r\n  StudyPlanItemType,\r\n  StudyPlanView\r\n} from '../../../@types/pedagogy';\r\nimport { MediaFileInfo, MediaFileType, MediaPerimetre } from '../../../@types/media';\r\nimport StudyPlanDetailsContentHtml from '../studyPlan/details/StudyPlanDetailsContentHtml';\r\nimport HomeworkTodoPanelEdit from './HomeworkTodoForm';\r\nimport MediaPDF from '../media/MediaPDF';\r\nimport { HomeworkTodoVoice } from './HomeworkTodoVoice';\r\nimport MIconButton, { MIconButtonDowload } from 'components/MIconButton';\r\nimport MediaMenuPopover from '../media/MediaMenuPopover';\r\nimport MediaCarousel from '../media/MediaCarrousel';\r\nimport CardContainer from 'components/CardContainer';\r\nimport { MediaIcon } from '../media/MediaIcon';\r\nimport EmptyContent from 'components/EmptyContent';\r\nimport StudyPlanDetailsIframe from '../studyPlan/details/StudyPlanContentIframe';\r\nimport StudyPlanDetailsContentQuiz from '../studyPlan/details/StudyPlanDetailsContentQuiz';\r\nimport { useNavigate } from 'react-router';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport LoadingScreen from 'components/LoadingScreen';\r\nimport { Card } from '@mui/material';\r\nimport useStudyPlanChapterItem from 'hooks/useStudyPlanChapterItem';\r\nimport useStudyPlan from 'hooks/useStudyPlan';\r\nimport { useSnackbar } from 'notistack';\r\n\r\n//------------------------------------------------\r\nconst ContainerEvaluation = styled(Box)({\r\n  flexGrow: 1,\r\n  height: '100%'\r\n});\r\n//------------------------------------------------\r\n\r\nexport type HomeworkTodoProps = {\r\n  homeworkBase: HomeworkBase;\r\n  medias: Array<StudyPlanItem>;\r\n  opened: boolean;\r\n  isEnonceOnly?: boolean;\r\n  keyId: string;\r\n};\r\n\r\nexport default function HomeworkTodo({\r\n  homeworkBase,\r\n  medias,\r\n  opened,\r\n  isEnonceOnly = false,\r\n  keyId\r\n}: HomeworkTodoProps) {\r\n  const theme = useTheme();\r\n  const [tabValue, setTabValue] = useState(0);\r\n  const { updateByActivity } = useStudyPlanChapterItem();\r\n  const { enqueueSnackbar } = useSnackbar();\r\n\r\n  const handleChange = (event: any, newValue: number) => {\r\n    setTabValue(newValue);\r\n  };\r\n\r\n  const onScore = () => {\r\n    //enqueueSnackbar('Récupération de la note, patientez...', { variant: 'info' });\r\n    setTimeout(() => {\r\n      updateByActivity({ courseId: homeworkBase.courseId, id: homeworkBase.id, keyId: keyId })(\r\n        () => {\r\n          //enqueueSnackbar(\"Nous n'avons pas pu récupérer la note\", { variant: 'warning' });\r\n          console.log(\"Nous n'avons pas pu récupérer la note\");\r\n        }\r\n      );\r\n    }, 1500);\r\n  };\r\n\r\n  if (homeworkBase.homeworkType === HomeworkType.Voice)\r\n    //detection type de devoir\r\n    return <HomeworkTodoVoice homeworkBase={homeworkBase} />;\r\n\r\n  if (homeworkBase.homeworkType === HomeworkType.eLearning)\r\n    return (\r\n      <>\r\n        <StudyPlanDetailsContentQuiz\r\n          url={homeworkBase.elearning.url}\r\n          courseId={homeworkBase.barCode}\r\n          onScore={onScore}\r\n        />\r\n      </>\r\n    );\r\n\r\n  //Permet d'afficher l'énonce dans l'onglet correction\r\n  if (isEnonceOnly)\r\n    return (\r\n      <HomeworkTodoPanelEnnonce homeworkBase={homeworkBase} medias={medias} fullScreen={false} />\r\n    );\r\n\r\n  const renderContent = (\r\n    <Stack display={'flex'} flexDirection={'column'} height={'100%'}>\r\n      {[HomeworkType.EvaluationStage].includes(homeworkBase.homeworkType) ? (\r\n        <>\r\n          <Box\r\n            display=\"flex\"\r\n            sx={{ justifyContent: 'center', overflow: 'auto', height: '100%' }}\r\n            flexDirection={'row'}\r\n            style={{ paddingLeft: 0 }}\r\n          >\r\n            <EmptyContent\r\n              title=\"Notation de stage non renseignée pour le moment !\"\r\n              description=\"Une fois votre stage effectué, votre responsable renseignera sa notation de stage que vous pourrez consulter ici.\"\r\n              img=\"/static/illustrations/Evaluations/appreciation_stage.svg\"\r\n            />\r\n          </Box>\r\n        </>\r\n      ) : (\r\n        <>\r\n          <Box display=\"flex\" flexDirection={'row'} style={{ paddingLeft: 0 }}>\r\n            <Tabs\r\n              value={tabValue}\r\n              indicatorColor=\"primary\"\r\n              textColor=\"primary\"\r\n              onChange={handleChange}\r\n              scrollButtons\r\n              allowScrollButtonsMobile\r\n            >\r\n              <Tab label=\"Enoncé\" />\r\n              <Tab label=\"Rédaction\" />\r\n            </Tabs>\r\n          </Box>\r\n\r\n          <ContainerEvaluation>\r\n            <Collapse\r\n              in={tabValue === 0}\r\n              sx={{\r\n                ...(tabValue === 0 && {\r\n                  height: '100%!important',\r\n\r\n                  '& .MuiCollapse-wrapper': { height: '100%' }\r\n                })\r\n              }}\r\n            >\r\n              <HomeworkTodoPanelEnnonce\r\n                homeworkBase={homeworkBase}\r\n                medias={medias}\r\n                fullScreen={false}\r\n              />\r\n            </Collapse>\r\n\r\n            <Collapse\r\n              in={tabValue === 1}\r\n              sx={{\r\n                ...(tabValue === 1 && {\r\n                  height: '100%!important',\r\n\r\n                  '& .MuiCollapse-wrapper': { height: '100%' }\r\n                })\r\n              }}\r\n            >\r\n              <HomeworkTodoPanelEdit\r\n                homeworkBase={homeworkBase}\r\n                opened={opened}\r\n                fullScreen={true}\r\n              />\r\n            </Collapse>\r\n          </ContainerEvaluation>\r\n        </>\r\n      )}\r\n    </Stack>\r\n  );\r\n\r\n  return (\r\n    <Box\r\n      height={'100%'}\r\n      overflow=\"hidden\"\r\n      flex=\"auto\"\r\n      padding={'10px'}\r\n      sx={{ backgroundColor: theme.palette.grey[100] }}\r\n    >\r\n      {renderContent}\r\n    </Box>\r\n  );\r\n}\r\n/**\r\n * <Dialog open={fullScreen} fullScreen fullWidth sx={{ zIndex: 1190 }}>\r\n        {renderContent}\r\n      </Dialog>\r\n      {!fullScreen && renderContent}\r\n */\r\n\r\n//-------------------------------------------------------------\r\n\r\nconst RootEnnonceStyle = styled(Box)(({ theme }) => ({\r\n  width: '100%',\r\n  height: '90%' // 'calc(100vh - 370px)',\r\n}));\r\n\r\nexport type HomeworkTodoPanelProps = {\r\n  homeworkBase: HomeworkBase;\r\n  opened?: boolean;\r\n  medias?: Array<StudyPlanItem>;\r\n  fullScreen: boolean;\r\n  isVisible?: boolean;\r\n};\r\n\r\nfunction HomeworkTodoPanelEnnonce({\r\n  homeworkBase,\r\n  fullScreen,\r\n  medias = []\r\n}: HomeworkTodoPanelProps) {\r\n  let mediaView = medias?.find((x) => x.type === StudyPlanItemType.Html);\r\n  if (!!!mediaView) mediaView = medias?.find((x) => x.type === StudyPlanItemType.Pdf);\r\n\r\n  const isFiles = homeworkBase?.files?.length > 1;\r\n\r\n  return (\r\n    <RootEnnonceStyle\r\n      sx={{ height: isFiles ? '90%' : '98%', ...(isFiles && { overflow: 'auto' }) }}\r\n    >\r\n      <ToolbarFileAttachments\r\n        files={homeworkBase?.files.filter(\r\n          (f) => f.fileType !== 13 && f.perimetre !== MediaPerimetre.Corrected\r\n        )}\r\n        barCode={homeworkBase?.barCode}\r\n      />\r\n      {medias?.length > 0 && <RenderContent studyPlanItem={mediaView ? mediaView : medias[0]} />}\r\n    </RootEnnonceStyle>\r\n  );\r\n}\r\n\r\n//-------------------------------------------------------------\r\n\r\nfunction RenderContent({ studyPlanItem }: { studyPlanItem: StudyPlanItem }) {\r\n  switch (studyPlanItem.type) {\r\n    case StudyPlanItemType.Html:\r\n      return (\r\n        <StudyPlanDetailsContentHtml\r\n          url={(studyPlanItem as StudyPlanItemHtml).url}\r\n          courseId={studyPlanItem.id}\r\n          isVideo={false}\r\n        />\r\n      );\r\n\r\n    case StudyPlanItemType.Pdf:\r\n      return (\r\n        <MediaPDF\r\n          media={(studyPlanItem as StudyPlanItemMedia).media}\r\n          reference={studyPlanItem.id}\r\n        />\r\n      );\r\n    case StudyPlanItemType.Video:\r\n    case StudyPlanItemType.Audio:\r\n      return (\r\n        <StudyPlanDetailsIframe\r\n          url={(studyPlanItem as StudyPlanItemMedia).media.url}\r\n          type={studyPlanItem.type}\r\n        />\r\n      );\r\n  }\r\n  return <></>;\r\n}\r\n\r\nexport function ToolbarFileAttachments({\r\n  files,\r\n  barCode\r\n}: {\r\n  files: Array<MediaFileInfo>;\r\n  barCode: string;\r\n}) {\r\n  const [view, setView] = useState<{ open: boolean; type: MediaFileType }>();\r\n\r\n  const handleClick = (type: MediaFileType) => {\r\n    if (view?.type === type) setView({ ...view, open: !view.open });\r\n    else setView({ open: true, type: type });\r\n  };\r\n\r\n  const filesFilterred = files.filter((f) => !f.referentiel);\r\n\r\n  if (filesFilterred?.length === 0) return <></>;\r\n\r\n  return (\r\n    <Box sx={{ position: 'relative' }}>\r\n      <Stack direction={'row'} gap=\"3px\" alignItems={'center'} sx={{ m: 1 }}>\r\n        <Typography variant=\"caption\">Fichiers à consulter pour réaliser l’évaluation :</Typography>\r\n        <MediaMenuPopover\r\n          medias={filesFilterred.filter(\r\n            (f) => ![MediaFileType.Videos, MediaFileType.Audio].includes(f.typFicMed)\r\n          )}\r\n          title=\"Fichiers à télécharger pour réaliser l’évaluation\"\r\n        ></MediaMenuPopover>\r\n        {filesFilterred.some((f) => [MediaFileType.Audio].includes(f.typFicMed)) && (\r\n          <MIconButton onClick={() => handleClick(MediaFileType.Audio)}>\r\n            <MediaIcon type={MediaFileType.Audio} />\r\n          </MIconButton>\r\n        )}\r\n        {filesFilterred.some((f) => [MediaFileType.Videos].includes(f.typFicMed)) && (\r\n          <MIconButton onClick={() => handleClick(MediaFileType.Videos)}>\r\n            <MediaIcon type={MediaFileType.Videos} />\r\n          </MIconButton>\r\n        )}\r\n      </Stack>\r\n      <Box sx={{ textAlign: 'center', margin: '2px' }}>\r\n        {view && view?.open && (\r\n          <CardContainer sx={{ width: 380, '& .MuiCardContent-root': { padding: '10px' } }}>\r\n            <MediaCarousel\r\n              nbRows={1}\r\n              children={filesFilterred\r\n                .filter((f) => [view?.type].includes(f.typFicMed))\r\n                .map((media) => {\r\n                  return (\r\n                    <Box key={media.id}>\r\n                      <Typography variant=\"body2\">{media.title}</Typography>\r\n                      <StudyPlanDetailsIframe\r\n                        url={media.url}\r\n                        type={getMediaType(media.typFicMed)}\r\n                      />\r\n\r\n                      <Typography variant=\"caption\">durée : {media.size}</Typography>\r\n                    </Box>\r\n                  );\r\n                })}\r\n            />\r\n          </CardContainer>\r\n        )}\r\n      </Box>\r\n    </Box>\r\n  );\r\n}\r\n\r\n/*\r\n\r\n*/\r\nconst getMediaType = (typFicMed: MediaFileType) => {\r\n  switch (typFicMed) {\r\n    case MediaFileType.Audio:\r\n      return StudyPlanItemType.Audio;\r\n\r\n    case MediaFileType.Videos:\r\n      return StudyPlanItemType.Video;\r\n    default:\r\n      return StudyPlanItemType.Elearning;\r\n  }\r\n};\r\n/**/\r\n","import { useState } from 'react';\r\n\r\n// material\r\nimport { styled } from '@mui/material/styles';\r\nimport {\r\n  Box,\r\n  Card,\r\n  Tab,\r\n  Tabs,\r\n  CardContent,\r\n  Typography,\r\n  Avatar,\r\n  Stack,\r\n  Divider\r\n} from '@mui/material';\r\n\r\n//type\r\nimport {\r\n  Homework,\r\n  HomeworkBase,\r\n  HomeworkStatus,\r\n  StudyPlanItemHomework,\r\n  StudyPlanItemStatus,\r\n  StudyPlanItemMedia,\r\n  HomeworkType\r\n} from '../../../../@types/pedagogy';\r\nimport { ModuleType } from '../../../../@types/contract';\r\n\r\nimport { UserType, FileBaseInfo, FileType } from '../../../../@types/common';\r\nimport { MediaFileInfo, MediaFileType } from '../../../../@types/media';\r\n\r\nimport EmptyContent from 'components/EmptyContent';\r\n\r\nimport FileDetailsAttachments from 'components/file/FileDetailsAttachments';\r\nimport { fDate } from 'utils/formatTime';\r\nimport Markdown from 'components/Markdown';\r\n\r\nimport HomeworkTodo from 'components/_dashboard/pedagogy/HomeworkTodo';\r\nimport Scrollbar from 'components/Scrollbar';\r\nimport useModuleAuthorize from 'hooks/useModuleAuthorize';\r\nimport ModuleNotAuthorized from 'components/ModuleNotAuthorized';\r\nimport { HomeworkNote } from 'components/_dashboard/pedagogy/HomeworkNote';\r\nimport { HomeworkCorrected } from 'components/_dashboard/pedagogy/HomeworkCorrected';\r\n\r\n//-----------------------------------------------------------------------\r\nconst RootStyle = styled(Card)(({ theme }) => ({\r\n  height: '98%',\r\n  flexGrow: 1,\r\n  overflow: 'hidden',\r\n  backgroundColor: theme.palette.grey[100],\r\n  padding: 5\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\nexport type StudyPlanDetailsHomeworkProps = {\r\n  chapterItem: StudyPlanItemHomework;\r\n};\r\n\r\n/***\r\n * Afficher le devoir fait ou à faire\r\n */\r\nexport default function StudyPlanDetailsHomework({ chapterItem }: StudyPlanDetailsHomeworkProps) {\r\n  const [tabValue, setTabValue] = useState(0);\r\n  const { authorizedModule } = useModuleAuthorize({\r\n    accessibleModules: [ModuleType.HomeworkUpdate]\r\n  });\r\n  const handleChange = (event: any, newValue: number) => {\r\n    setTabValue(newValue);\r\n  };\r\n\r\n  /** Devoir à faire */\r\n  if (chapterItem.status !== StudyPlanItemStatus.Assimilate) {\r\n    //controler le module\r\n    if (!authorizedModule) return <ModuleNotAuthorized />;\r\n    return (\r\n      <HomeworkTodo\r\n        homeworkBase={chapterItem.homeworkBase}\r\n        medias={chapterItem.items}\r\n        opened={chapterItem.dateStatus === null ? false : true}\r\n        keyId={chapterItem.key}\r\n      />\r\n    );\r\n  }\r\n\r\n  /*dernier devoir en cours*/\r\n  const last = chapterItem.homeworkBase.homeworks[\r\n    chapterItem.homeworkBase.homeworks.length - 1\r\n  ] as Homework;\r\n\r\n  return (\r\n    <RootStyle>\r\n      <Box sx={{ display: 'flex', flexDirection: 'column', height: '100%' }}>\r\n        {[HomeworkType.EvaluationStage].includes(chapterItem.homeworkBase.homeworkType) ? (\r\n          <>\r\n            <Box\r\n              sx={{\r\n                p: 2,\r\n                display: 'flex',\r\n                height: '100%',\r\n                overflow: 'auto',\r\n                justifyContent: 'center'\r\n              }}\r\n            >\r\n              <HomeworkCorrected\r\n                homeworkBase={chapterItem.homeworkBase}\r\n                last={last}\r\n                fileCorrectedType={\r\n                  chapterItem.homeworkBase.files?.filter(\r\n                    (f) => f.fileType === FileType.CorrectionType\r\n                  )[0]\r\n                }\r\n              />\r\n            </Box>\r\n          </>\r\n        ) : (\r\n          <>\r\n            <Tabs\r\n              value={tabValue}\r\n              indicatorColor=\"primary\"\r\n              textColor=\"primary\"\r\n              onChange={handleChange}\r\n              scrollButtons\r\n              allowScrollButtonsMobile\r\n              variant=\"scrollable\"\r\n            >\r\n              <Tab label=\"Correction\" />\r\n\r\n              {![HomeworkType.EvaluationStage, HomeworkType.eLearning].includes(\r\n                chapterItem.homeworkBase.homeworkType\r\n              ) && <Tab label=\"Évaluation envoyée\" />}\r\n\r\n              {![HomeworkType.EvaluationStage, HomeworkType.Voice, HomeworkType.eLearning].includes(\r\n                chapterItem.homeworkBase.homeworkType\r\n              ) && <Tab label=\"Enoncé\" />}\r\n            </Tabs>\r\n\r\n            <Box\r\n              sx={{\r\n                p: 2,\r\n                display: 'flex',\r\n                height: '100%',\r\n                overflow: 'auto',\r\n                justifyContent: 'center',\r\n                alignItems: 'center'\r\n              }}\r\n            >\r\n              {tabValue === 0 && (\r\n                <HomeworkCorrected\r\n                  homeworkBase={chapterItem.homeworkBase}\r\n                  last={last}\r\n                  fileCorrectedType={\r\n                    chapterItem.homeworkBase.files?.filter(\r\n                      (f) => f.fileType === FileType.CorrectionType\r\n                    )[0]\r\n                  }\r\n                />\r\n              )}\r\n              {tabValue === 1 && (\r\n                <HomeworkStepFiles\r\n                  files={last.files.filter((w) => w.userType === UserType.Student)}\r\n                />\r\n              )}\r\n              {tabValue === 2 && (\r\n                <HomeworkTodo\r\n                  homeworkBase={chapterItem.homeworkBase}\r\n                  medias={chapterItem.items}\r\n                  isEnonceOnly={true}\r\n                  opened={false}\r\n                  keyId={chapterItem.key}\r\n                />\r\n              )}\r\n            </Box>\r\n          </>\r\n        )}\r\n      </Box>\r\n    </RootStyle>\r\n  );\r\n}\r\n\r\n/**\r\n * Liste des fichiers\r\n * @param param0 L\r\n * @returns\r\n */\r\nconst HomeworkStepFiles = ({ files }: { files: Array<FileBaseInfo> }) => {\r\n  /**\r\n   *  <Box component=\"img\" alt=\"\" src={'/static/illustrations/autres/expedie.svg'} sx={{ p: 1 }} />\r\n   */\r\n  return (\r\n    <Box display=\"flex\" flexDirection=\"column\" sx={{ height: '100%', width: '100%' }}>\r\n      <EmptyContent\r\n        img=\"/static/illustrations/evaluations/correction.svg\"\r\n        title={'Retrouvez ci-dessous les fichiers que vous avez envoyés en correction.'}\r\n        description={<FileDetailsAttachments files={files} />}\r\n      />\r\n    </Box>\r\n  );\r\n};\r\n","// material\r\nimport { Alert, Box } from '@mui/material';\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport useTrackerActivity from 'hooks/useTrackerActivity';\r\nimport useLocalStorage from 'hooks/useLocalStorage';\r\nimport EmptyContent from 'components/EmptyContent';\r\nimport CardMediaCustom from 'components/CardMediaCustom';\r\nimport { Elearning, StudyPlanItemLearning } from '../../../../@types/pedagogy';\r\nimport { useLearningICDL } from 'hooks/useLearningICDL';\r\nimport SkeletonLoadSingle from 'components/SkeletonLoadSingle';\r\nimport IllustrationMessage, { IllustrationInfo } from 'components/IllustrationMessage';\r\nimport { Typography } from '@mui/material';\r\nimport CardContainer from 'components/CardContainer';\r\nimport ChapterItemStatus from './ChapterItemStatus';\r\nimport { LoadingButton } from '@mui/lab';\r\n\r\n// ----------------------------------------------------------------------\r\nexport type StudyPlanDetailsLearningProps = {\r\n  item: StudyPlanItemLearning;\r\n};\r\n\r\nexport default function StudyPlanDetailsLearningICDL({ item }: StudyPlanDetailsLearningProps) {\r\n  const { error, getICDLInformations, isLoading } = useLearningICDL();\r\n\r\n  const handleClickInfo = () => {\r\n    getICDLInformations(item)((url: string) => window.open(url));\r\n  };\r\n\r\n  return (\r\n    <Box\r\n      sx={{\r\n        display: 'flex',\r\n        flexDirection: 'column',\r\n        flexGrow: 1,\r\n        height: '100%',\r\n        overflow: 'hidden',\r\n        padding: 10\r\n      }}\r\n    >\r\n      <CardContainer title=\" \" subheader={<ChapterItemStatus item={item} />} sx={{ minHeight: 0 }}>\r\n        <Typography variant=\"subtitle2\" paragraph>\r\n          {item.label}\r\n        </Typography>\r\n        <Typography variant=\"body2\" paragraph>\r\n          Lorsque vous cliquerez sur “Commencer”, votre activité s’ouvrira dans un nouvel onglet,\r\n          indépendamment de votre Espace Numérique de Travail.\r\n        </Typography>\r\n        <Box sx={{ textAlign: 'center', mt: 3 }}>\r\n          <LoadingButton variant=\"contained\" loading={isLoading} onClick={handleClickInfo}>\r\n            Commencer / Récupérer la note\r\n          </LoadingButton>\r\n        </Box>\r\n      </CardContainer>\r\n\r\n      {error && (\r\n        <IllustrationInfo\r\n          img=\"static/illustrations/general/erreur.svg\"\r\n          maxHeightImg={350}\r\n          isColumn={true}\r\n        >\r\n          <Alert severity=\"error\">\r\n            <Typography variant=\"body1\">Erreur</Typography>\r\n            Nous ne parvenons pas à générer le lien de votre activité e-learning. Veuillez réessayer\r\n            ultérieurement.\r\n          </Alert>\r\n        </IllustrationInfo>\r\n      )}\r\n    </Box>\r\n  );\r\n}\r\n","import { StudyPlanDetailsLearningProps } from 'components/_dashboard/studyPlan/details/StudyPlanDetailsLearningICDL';\r\nimport { useEffect, useState } from 'react';\r\nimport { getTestICDL } from 'redux/slices/learning';\r\nimport useAuth from './useAuth';\r\nimport { dispatch } from 'redux/store';\r\nimport useStudyPlan from './useStudyPlan';\r\nimport { StudyPlanItemLearning } from '../@types/pedagogy';\r\n\r\nexport function useLearningICDL() {\r\n  const { student, getContractCurrent, getGenreMasculin } = useAuth();\r\n  const { setScore } = useStudyPlan();\r\n  const [error, setError] = useState<boolean>(false);\r\n  const [isLoading, setIsLoading] = useState<boolean>(false);\r\n\r\n  const getICDLInformations = (item: StudyPlanItemLearning) => (onUrl: (url: string) => void) => {\r\n    setIsLoading(true);\r\n\r\n    dispatch(\r\n      getTestICDL(\r\n        {\r\n          compte: {\r\n            birth_date: student?.birthDate,\r\n            birth_name: student?.lastName,\r\n            birthPlace: student?.birthPlace,\r\n            email: student?.email,\r\n            first_name: student?.firstName,\r\n            gender: getGenreMasculin() ? 'MALE' : 'FEMALE',\r\n            last_name: student?.lastName\r\n          },\r\n          testId: item.elearning.properties.customId\r\n        },\r\n        item.id\r\n      )((note: number, url: string) => {\r\n        setIsLoading(false);\r\n        if (url && url !== '') {\r\n          onUrl(url);\r\n          return;\r\n        }\r\n        //récupération de la note => maj PE local\r\n        setScore(note);\r\n      })(() => {\r\n        setError(true);\r\n        setIsLoading(false);\r\n      })\r\n    );\r\n  };\r\n\r\n  return { error, isLoading, getICDLInformations };\r\n}\r\n","import { ScoreType, StudyPlanItem, StudyPlanItemLearning } from '../../../../@types/pedagogy';\r\nimport CardContainer from 'components/CardContainer';\r\nimport { Box } from '@mui/system';\r\nimport { ScoreView } from '../ScoreView';\r\nimport { Stack, Typography } from '@mui/material';\r\n\r\ntype StudyPlanDetailsLearningICDLNoteType = { item: StudyPlanItem };\r\n\r\nexport default function StudyPlanDetailsLearningICDLNote({\r\n  item\r\n}: StudyPlanDetailsLearningICDLNoteType) {\r\n  return (\r\n    <Box\r\n      sx={{\r\n        display: 'flex',\r\n        flexDirection: 'column',\r\n        flexGrow: 1,\r\n        height: '100%',\r\n        overflow: 'hidden'\r\n      }}\r\n    >\r\n      <CardContainer\r\n        sx={{\r\n          m: 'auto',\r\n          minHeight: 0,\r\n          '& .MuiCardContent-root': { pb: 1 },\r\n          backgroundColor: '#fff'\r\n        }}\r\n        title={' '}\r\n        subheader={\r\n          <Stack direction={'row'} gap=\"10px\" alignItems={'center'}>\r\n            <Typography variant=\"body2\">Note :</Typography>\r\n            <ScoreView\r\n              scoreType={ScoreType.sur20}\r\n              score={(item as StudyPlanItemLearning).elearning.score.toString()}\r\n            />\r\n          </Stack>\r\n        }\r\n        avatar={\r\n          <Box component=\"img\" alt=\"message\" src=\"static/illustrations/evaluations/success.svg\" />\r\n        }\r\n      ></CardContainer>\r\n    </Box>\r\n  );\r\n}\r\n","import { Button, CardActionArea, Stack, Typography } from '@mui/material';\r\nimport { Box, height } from '@mui/system';\r\n// @types\r\nimport {\r\n  StudyPlanItem,\r\n  StudyPlanItemHomework,\r\n  StudyPlanItemHtml,\r\n  StudyPlanItemLearning,\r\n  StudyPlanItemMedia,\r\n  StudyPlanItemStatus,\r\n  StudyPlanItemType\r\n} from '../../../../@types/pedagogy';\r\nimport { MediaFileType } from '../../../../@types/media';\r\n// components\r\nimport StudyPlanDetailsContentHtml from 'components/_dashboard/studyPlan/details/StudyPlanDetailsContentHtml';\r\nimport MediaPDF from 'components/_dashboard/media/MediaPDF';\r\nimport EmptyContent from 'components/EmptyContent';\r\nimport StudyPlanDetailsHomework from 'components/_dashboard/studyPlan/details/StudyPlanDetailsHomework';\r\nimport CardContainer from 'components/CardContainer';\r\nimport IllustrationMessage, { IllustrationInfo } from 'components/IllustrationMessage';\r\nimport { ReactNode, useEffect } from 'react';\r\nimport { LoadingButton } from '@mui/lab';\r\nimport FileAction from 'components/file/FileAction';\r\nimport StudyPlanDetailsLearning from './StudyPlanDetailsLearningICDL';\r\nimport StudyPlanDetailsIframe from './StudyPlanContentIframe';\r\nimport StudyPlanDetailsLearningICDL from './StudyPlanDetailsLearningICDL';\r\nimport StudyPlanItemScore from './StudyPlanItemScore';\r\nimport StudyPlanDetailsLearningICDLNote from './StudyPlanDetailsLearningICDLNote';\r\nimport { dispatch } from 'redux/store';\r\nimport { addLogLearning } from 'redux/slices/learning';\r\n\r\ntype StudyPlanDetailsContentByType = { item: StudyPlanItem; onEndOfRead?: () => void };\r\n\r\n/**\r\n * Affichage du composant suivant le type d'item\r\n * @param item\r\n * @returns\r\n */\r\nexport default function StudyPlanDetailsContentByType({\r\n  item,\r\n  onEndOfRead\r\n}: StudyPlanDetailsContentByType) {\r\n  useEffect(() => {\r\n    if (item.type === StudyPlanItemType.Elearning) {\r\n      const learning = (item as StudyPlanItemLearning).elearning;\r\n      if (learning?.properties) {\r\n        dispatch(\r\n          addLogLearning(\r\n            learning.properties.fouEfm,\r\n            learning.properties.proEfm,\r\n            learning.properties.customId\r\n          )(() => console.log('trace'))\r\n        );\r\n      }\r\n    }\r\n  }, [item]);\r\n\r\n  const handleEndOfRead = () => {\r\n    if (onEndOfRead) onEndOfRead();\r\n  };\r\n\r\n  switch (item.type) {\r\n    case StudyPlanItemType.Elearning:\r\n      const elearning = (item as StudyPlanItemLearning).elearning;\r\n      if (elearning?.properties) {\r\n        switch (elearning.properties.fouEfm) {\r\n          case 'IC':\r\n            switch (item.status) {\r\n              case StudyPlanItemStatus.Assimilate:\r\n                return <StudyPlanDetailsLearningICDLNote item={item} />;\r\n\r\n              case StudyPlanItemStatus.None:\r\n              case StudyPlanItemStatus.Read:\r\n                return <StudyPlanDetailsLearningICDL item={item as StudyPlanItemLearning} />;\r\n            }\r\n        }\r\n      }\r\n\r\n      return <StudyPlanDetailsIframe url={elearning.url} courseId={item.id} type={item.type} />;\r\n\r\n    case StudyPlanItemType.Pdf:\r\n      return <MediaPDF media={(item as StudyPlanItemMedia).media} reference={item.id} />;\r\n    case StudyPlanItemType.Video:\r\n    case StudyPlanItemType.Audio:\r\n      return (\r\n        <StudyPlanDetailsIframe\r\n          url={(item as StudyPlanItemMedia).media.url}\r\n          courseId={item.id}\r\n          type={item.type}\r\n        />\r\n      );\r\n    case StudyPlanItemType.Html:\r\n      return (\r\n        <StudyPlanDetailsContentHtml\r\n          url={(item as StudyPlanItemMedia).media.url}\r\n          courseId={item.id}\r\n          isVideo={false}\r\n          onEndOfRead={handleEndOfRead}\r\n        />\r\n      );\r\n    case StudyPlanItemType.Annexe:\r\n      return <CardDownload {...(item as StudyPlanItemMedia)} />;\r\n    case StudyPlanItemType.Url:\r\n      const media = (item as StudyPlanItemMedia).media;\r\n      return (\r\n        <CardLinkUrl img=\"/static/illustrations/ma formation/Lien.svg\" title=\"\">\r\n          <Button color=\"primary\" variant=\"contained\" target={'_blank'} href={media.url}>\r\n            Ouvrir le lien\r\n          </Button>\r\n        </CardLinkUrl>\r\n      );\r\n\r\n    case StudyPlanItemType.Homework:\r\n      return <StudyPlanDetailsHomework chapterItem={item as StudyPlanItemHomework} />;\r\n    default:\r\n      return <></>;\r\n  }\r\n}\r\n\r\nconst CardDownload = ({ id, media }: StudyPlanItemMedia) => {\r\n  return (\r\n    <CardLinkUrl\r\n      title=\"Cliquez sur le bouton pour télécharger les documents\"\r\n      img=\"/static/illustrations/ma formation/Lien.svg\"\r\n    >\r\n      <FileAction>\r\n        {(download, getFile, downloadImage, isLoading, errorDownload) => (\r\n          <LoadingButton\r\n            loading={isLoading}\r\n            color=\"primary\"\r\n            variant=\"contained\"\r\n            onClick={() => download(media.id, media.fileType, media.fileName)}\r\n          >\r\n            Télécharger\r\n          </LoadingButton>\r\n        )}\r\n      </FileAction>\r\n    </CardLinkUrl>\r\n  );\r\n};\r\n\r\ntype CardLinkUrlProps = {\r\n  title: string;\r\n  img: string;\r\n  children: ReactNode;\r\n};\r\n\r\nconst CardLinkUrl = ({ title, img, children }: CardLinkUrlProps) => {\r\n  return (\r\n    <Box sx={{ height: '100%', width: '100%' }}>\r\n      <CardContainer sx={{ m: 1, backgroundColor: '#fff', minHeight: 0 }}>\r\n        <IllustrationInfo img={img}>\r\n          <Typography variant=\"subtitle2\" paragraph>\r\n            {title}\r\n          </Typography>\r\n          {children}\r\n        </IllustrationInfo>\r\n      </CardContainer>\r\n    </Box>\r\n  );\r\n};\r\n","import { Box, BoxProps, Stack } from '@mui/system';\r\nimport { StudyPlanItem, StudyPlanItemStatus } from '../../../../@types/pedagogy';\r\nimport {\r\n  Button,\r\n  CardProps,\r\n  List,\r\n  ListItem,\r\n  ListItemButton,\r\n  ListItemText,\r\n  Typography\r\n} from '@mui/material';\r\nimport { styled } from '@mui/material/styles';\r\nimport { Card } from '@mui/material';\r\nimport { useContext, useEffect, useState } from 'react';\r\nimport useStudyPlanChapterItem from 'hooks/useStudyPlanChapterItem';\r\nimport ChapterItemStatus from './ChapterItemStatus';\r\nimport { useNavigate } from 'react-router';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport Scrollbar from 'components/Scrollbar';\r\nimport { CheckBoxOutlined, CheckBoxRounded, CheckOutlined } from '@mui/icons-material';\r\n\r\ninterface StudyPlanDetailsControlProps {\r\n  item: StudyPlanItem | null;\r\n  onChange: (value: StudyPlanItem) => void;\r\n  updated: boolean;\r\n  children(isBlocked: boolean, boundCourses: Array<StudyPlanItem> | null, isLocked: boolean): any;\r\n}\r\n\r\n/***\r\n * Controler le support lié\r\n *\r\n */\r\nconst StudyPlanDetailsControl = ({\r\n  item,\r\n  updated,\r\n  onChange,\r\n  children\r\n}: StudyPlanDetailsControlProps) => {\r\n  const managerChapterItem = useStudyPlanChapterItem();\r\n  const [state, setState] = useState<{\r\n    isLoading: boolean;\r\n    boundCourses: Array<StudyPlanItem> | null;\r\n  }>({ isLoading: item?.boundCourse === null ? false : true, boundCourses: null });\r\n\r\n  useEffect(() => {\r\n    if (item?.boundCourse) {\r\n      const response = managerChapterItem.getStatus(item?.boundCourse);\r\n\r\n      if (response && response.length > 0) {\r\n        const assilimates = response.filter((i) => i.status !== StudyPlanItemStatus.Assimilate);\r\n\r\n        //support\r\n        if (assilimates.length > 0) {\r\n          setState({ isLoading: false, boundCourses: assilimates });\r\n        } else {\r\n          setState({ isLoading: false, boundCourses: null });\r\n        }\r\n      } else setState({ isLoading: false, boundCourses: null });\r\n    }\r\n  }, [item]);\r\n\r\n  /**\r\n   * Enregistrement de la progression si il y a eu un changement\r\n   */\r\n  useEffect(() => {\r\n    if (state.isLoading || state.boundCourses !== null) return;\r\n    (async function save() {\r\n      if (!item || !updated) return;\r\n      let value = item;\r\n      if (value == null || value.status === StudyPlanItemStatus.Disabled) return;\r\n\r\n      onChange(value);\r\n    })();\r\n  }, [updated, state.isLoading]);\r\n\r\n  if (state.isLoading) return <Box>Rechercher</Box>;\r\n\r\n  const isBlocked = item?.boundCourse && (state.isLoading || state.boundCourses) ? true : false;\r\n  const isLocked =\r\n    item && [StudyPlanItemStatus.Locked, StudyPlanItemStatus.Disabled].includes(item.status)\r\n      ? true\r\n      : false;\r\n\r\n  return <Box>{children(isBlocked, state.boundCourses, isLocked)}</Box>;\r\n};\r\n\r\nexport default StudyPlanDetailsControl;\r\n\r\ntype StudyPlanDetailsControlCardProps = {\r\n  items: Array<StudyPlanItem> | null;\r\n  isMediumOrMobile: boolean;\r\n};\r\n\r\nexport const StudyPlanDetailsControlCard = ({\r\n  items,\r\n  isMediumOrMobile\r\n}: StudyPlanDetailsControlCardProps) => {\r\n  const navigate = useNavigate();\r\n  const managerChapterItem = useStudyPlanChapterItem();\r\n  const handleSelect = (item: StudyPlanItem) => {\r\n    managerChapterItem.updateById(item.reference);\r\n    //navigate(`${PATH_DASHBOARD.studyPlan.details}/${item.reference}`);\r\n  };\r\n\r\n  if (!items) return <></>;\r\n\r\n  return (\r\n    <Box sx={{ m: 'auto', p: 2 }}>\r\n      <Card sx={{ p: 1 }}>\r\n        <Stack display=\"flex\" alignItems={'center'}>\r\n          <Box>\r\n            <Typography paragraph variant=\"h6\" textAlign={'center'}>\r\n              Pour accéder à ce contenu, vous devez assimiler{' '}\r\n              {items?.length === 1 ? 'le contenu suivant' : 'les contenus suivants'}.\r\n            </Typography>\r\n            <Scrollbar>\r\n              <List dense>\r\n                <ListItem dense sx={{ backgroundColor: '#F4F6F8' }}>\r\n                  <Stack\r\n                    direction=\"row\"\r\n                    alignContent={'center'}\r\n                    justifyContent={'space-between'}\r\n                    width={'100%'}\r\n                  >\r\n                    <Stack direction=\"row\" alignContent={'center'} spacing={1}>\r\n                      <CheckBoxRounded color=\"success\" />\r\n                      <Typography variant=\"body2\">Contenu à assimiler</Typography>{' '}\r\n                    </Stack>\r\n\r\n                    {!isMediumOrMobile && <Typography variant=\"body2\">Type</Typography>}\r\n                  </Stack>\r\n                </ListItem>\r\n\r\n                {items?.map((course) => (\r\n                  <ListItem dense key={course.key}>\r\n                    <ListItemButton onClick={() => handleSelect(course)}>\r\n                      <Stack\r\n                        direction=\"row\"\r\n                        alignContent={'center'}\r\n                        justifyContent={'space-between'}\r\n                        width={'100%'}\r\n                      >\r\n                        <Typography variant=\"body2\">{course.label}</Typography>{' '}\r\n                        <Box>\r\n                          {!isMediumOrMobile && (\r\n                            <ChapterItemStatus item={course}></ChapterItemStatus>\r\n                          )}\r\n                        </Box>\r\n                      </Stack>\r\n                    </ListItemButton>\r\n                  </ListItem>\r\n                ))}\r\n              </List>\r\n            </Scrollbar>\r\n          </Box>\r\n          <Box\r\n            component=\"img\"\r\n            alt=\"empty content\"\r\n            src={'/static/illustrations/evaluations/Evaluationorale.svg'}\r\n            sx={{ maxHeight: '240px', mb: 3, mt: 3 }}\r\n          />\r\n        </Stack>\r\n      </Card>\r\n    </Box>\r\n  );\r\n};\r\n","import { useEffect, useCallback, useState, useContext, useRef } from 'react';\r\n\r\n// material\r\nimport { styled } from '@mui/material/styles';\r\nimport { Card, Divider, AppBar, Stack, Container, Dialog } from '@mui/material';\r\nimport { Box, useTheme } from '@mui/system';\r\n\r\n// @types\r\nimport {\r\n  StudyPlanItem,\r\n  StudyPlanItemHomework,\r\n  StudyPlanItemHtml,\r\n  StudyPlanItemStatus,\r\n  StudyPlanItemType,\r\n  StudyPlanSelected\r\n} from '../../../../@types/pedagogy';\r\n// components\r\nimport StudyPlanDetailsSidebar from 'components/_dashboard/studyPlan/details/StudyPlanDetailsSidebar';\r\nimport StudyPlanDetailsToolbar from 'components/_dashboard/studyPlan/details/StudyPlanDetailsToolbar';\r\nimport StudyPlanDetailsToolbarSide from 'components/_dashboard/studyPlan/details/StudyPlanDetailsToolbarSide';\r\nimport Scrollbar from 'components/Scrollbar';\r\nimport StudyPlanDetailsContentByType from './StudyPlanDetailsContentByType';\r\nimport SkeletonLoadSingle from 'components/SkeletonLoadSingle';\r\nimport useScreenConfig from 'hooks/useScreenConfig';\r\nimport StudyPlanMove, { StudyPlanButtonReturn } from './StudyPlanDetailsMove';\r\nimport useLocalStorage from 'hooks/useLocalStorage';\r\nimport { isModifier } from 'typescript';\r\nimport { dispatch, RootState, useSelector } from 'redux/store';\r\nimport {\r\n  initHomeworkCacheContent,\r\n  clearHomeworkCacheContent,\r\n  applyHomeworkCache\r\n} from 'redux/slices/homeworkCacheContent';\r\nimport StudyPlanDetailsControl, { StudyPlanDetailsControlCard } from './StudyPlanDetailsControl';\r\nimport EmptyContent from 'components/EmptyContent';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport type StudyPlanDetailsContentProps = {\r\n  selected: StudyPlanSelected;\r\n  onAssimilate: (event: any, checked: boolean) => void;\r\n  onChange: (value: StudyPlanItem) => void;\r\n  updated: boolean;\r\n};\r\n\r\nexport function StudyPlanDetailsContent({\r\n  selected,\r\n  onAssimilate,\r\n  onChange,\r\n  updated\r\n}: StudyPlanDetailsContentProps) {\r\n  const { isMediumOrMobile } = useScreenConfig();\r\n  const [isFullScreen, setIsFullScreen] = useLocalStorage('fullscreenDetailTraining', true);\r\n  const [openSidebar, setOpenSidebar] = useState(false);\r\n  const theme = useTheme();\r\n  const [contentHeight, setContentHeight] = useState(350);\r\n\r\n  useEffect(() => {\r\n    if (isMediumOrMobile && !isFullScreen) setIsFullScreen(true);\r\n  }, [isMediumOrMobile]);\r\n\r\n  useEffect(() => {\r\n    const container = document.getElementById('BoxContentTitle');\r\n    let heightTitle = 54;\r\n    if (container) {\r\n      heightTitle = container.clientHeight;\r\n    }\r\n\r\n    if (isMediumOrMobile) {\r\n      setContentHeight(70 + heightTitle);\r\n    } else if (isFullScreen) {\r\n      setContentHeight(65 + heightTitle);\r\n    } else {\r\n      setContentHeight(260 + heightTitle);\r\n    }\r\n  });\r\n\r\n  useEffect(() => {\r\n    if (selected?.item?.type === StudyPlanItemType.Homework) {\r\n      // init du content du devoir (mise en cache du content)\r\n      dispatch(initHomeworkCacheContent((selected?.item as StudyPlanItemHomework)?.homeworkBase));\r\n    } else {\r\n      dispatch(clearHomeworkCacheContent());\r\n    }\r\n\r\n    return () => {\r\n      dispatch(clearHomeworkCacheContent());\r\n    };\r\n  }, [selected?.item]);\r\n\r\n  const handleEndOfRead = () => {\r\n    let value = selected.item;\r\n    if (value == null || value.status === StudyPlanItemStatus.Disabled) return;\r\n\r\n    if (value.type !== StudyPlanItemType.Html) return;\r\n\r\n    if (!(value as StudyPlanItemHtml).endOfRead) {\r\n      (value as StudyPlanItemHtml).endOfRead = true;\r\n      onChange(value);\r\n    }\r\n  };\r\n\r\n  const render = (\r\n    <Scrollbar>\r\n      <Card\r\n        sx={{\r\n          m: 0,\r\n          p: 0,\r\n          backgroundColor: theme.palette.grey[100],\r\n          boxShadow: (theme) => theme.customShadows.z8,\r\n          margin: '10px'\r\n        }}\r\n      >\r\n        {!selected || selected?.item == null ? (\r\n          <SkeletonLoadSingle />\r\n        ) : (\r\n          <Stack\r\n            direction={'row'}\r\n            alignItems=\"stretch\"\r\n            sx={{ height: !isFullScreen ? `calc(100vh - 205px)` : '99vh' }}\r\n          >\r\n            <StudyPlanDetailsSidebar\r\n              isOpenSidebar={openSidebar}\r\n              onCloseSidebar={() => {\r\n                setOpenSidebar(!openSidebar);\r\n              }}\r\n              chapter={selected?.chapter!}\r\n              selectedId={selected?.subChapter?.id}\r\n              isFullScreen={isFullScreen}\r\n            />\r\n            <Box sx={{ width: '100%' }}>\r\n              <Stack direction={'column'} justifyContent=\"space-around\" alignItems=\"stretch\">\r\n                <StudyPlanDetailsControl onChange={onChange} updated={updated} item={selected.item}>\r\n                  {(isBlocked, boundCourses, isLocked) => (\r\n                    <>\r\n                      <StudyPlanDetailsToolbar\r\n                        selectedItem={selected?.item}\r\n                        openSidebar={openSidebar}\r\n                        onAssimilate={onAssimilate}\r\n                        isFullScreen={isFullScreen}\r\n                        locked={isBlocked || isLocked}\r\n                        onFullScreen={() => {\r\n                          dispatch(\r\n                            applyHomeworkCache({\r\n                              homework: (selected?.item as StudyPlanItemHomework).homeworkBase,\r\n                              callBack: () => setIsFullScreen(!isFullScreen)\r\n                            })\r\n                          );\r\n                        }}\r\n                        onToggleSidebar={() => setOpenSidebar(!openSidebar)}\r\n                      />\r\n\r\n                      <Divider />\r\n                      <Container maxWidth={'lg'} disableGutters>\r\n                        <Box\r\n                          style={{ height: `calc(100vh - ${contentHeight}px)` }}\r\n                          sx={{\r\n                            backgroundColor: theme.palette.grey[100]\r\n                          }}\r\n                          id=\"BoxContent\"\r\n                        >\r\n                          {isBlocked ? (\r\n                            <StudyPlanDetailsControlCard\r\n                              items={boundCourses}\r\n                              isMediumOrMobile={isMediumOrMobile}\r\n                            />\r\n                          ) : isLocked ? (\r\n                            <LockedContent />\r\n                          ) : (\r\n                            <Stack direction={'row'} height=\"99%\">\r\n                              <StudyPlanDetailsContentByType\r\n                                item={selected.item}\r\n                                onEndOfRead={handleEndOfRead}\r\n                              />\r\n                              {!isMediumOrMobile && (\r\n                                <ToolBarSide selected={selected} isMobile={false} />\r\n                              )}\r\n                            </Stack>\r\n                          )}\r\n                        </Box>\r\n                        {isMediumOrMobile ? (\r\n                          <AppBar\r\n                            position=\"fixed\"\r\n                            color=\"primary\"\r\n                            sx={{ top: 'auto', bottom: 0, bgcolor: theme.palette.grey[100] }}\r\n                          >\r\n                            <ToolBarSide selected={selected} isMobile={isMediumOrMobile} />\r\n                          </AppBar>\r\n                        ) : (\r\n                          <StudyPlanMove />\r\n                        )}\r\n                      </Container>\r\n                    </>\r\n                  )}\r\n                </StudyPlanDetailsControl>\r\n              </Stack>\r\n            </Box>\r\n          </Stack>\r\n        )}\r\n      </Card>\r\n    </Scrollbar>\r\n  );\r\n\r\n  return (\r\n    <>\r\n      {isFullScreen ? (\r\n        <Dialog\r\n          open={isFullScreen}\r\n          fullWidth={true}\r\n          fullScreen\r\n          sx={{\r\n            zIndex: 1101,\r\n            '& .MuiPaper-root': { m: 0 }\r\n          }}\r\n        >\r\n          {render}\r\n        </Dialog>\r\n      ) : (\r\n        <Box>{render}</Box>\r\n      )}\r\n    </>\r\n  );\r\n}\r\n\r\ntype ToolBarSideProps = {\r\n  selected?: StudyPlanSelected;\r\n  isMobile: boolean;\r\n};\r\n\r\nconst ToolBarSide = ({ selected, isMobile }: ToolBarSideProps) => {\r\n  return (\r\n    <Stack\r\n      direction={isMobile ? 'row' : 'column'}\r\n      alignItems={'center'}\r\n      alignContent={'space-between'}\r\n    >\r\n      {isMobile && <StudyPlanButtonReturn mobile={isMobile} />}\r\n      <StudyPlanDetailsToolbarSide selected={selected} isMobile={isMobile} />\r\n      {isMobile && <StudyPlanMove />}\r\n    </Stack>\r\n  );\r\n};\r\n\r\nconst LockedContent = () => {\r\n  return (\r\n    <Box sx={{ m: 'auto', p: 2 }}>\r\n      <Card sx={{ p: 1 }}>\r\n        <EmptyContent\r\n          title=\"Vous n'avez pas accès à ce contenu.\"\r\n          description=\"\"\r\n          img=\"static/illustrations/general/erreur.svg\"\r\n        />\r\n      </Card>\r\n    </Box>\r\n  );\r\n};\r\n","import { useEffect } from 'react';\r\nimport Lightbox from 'react-image-lightbox';\r\n// material\r\nimport { alpha, useTheme } from '@mui/material/styles';\r\nimport { Typography, GlobalStyles } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nfunction LightboxModalStyles() {\r\n  const theme = useTheme();\r\n  const isRTL = theme.direction === 'rtl';\r\n\r\n  const backgroundIcon = (iconName: string) => ({\r\n    backgroundSize: '24px 24px',\r\n    backgroundPosition: 'center',\r\n    backgroundRepeat: 'no-repeat',\r\n    backgroundColor: alpha(theme.palette.grey[900], 0.8),\r\n    backgroundImage: `url(\"/static/icons/controls/${iconName}.svg\")`\r\n  });\r\n\r\n  return (\r\n    <GlobalStyles\r\n      styles={{\r\n        '& .ReactModalPortal': {\r\n          '& .ril__outer': {\r\n            backdropFilter: 'blur(8px)',\r\n            backgroundColor: alpha(theme.palette.grey[900], 0.88)\r\n          },\r\n\r\n          // Toolbar\r\n          '& .ril__toolbar': {\r\n            height: 'auto !important',\r\n            padding: theme.spacing(2, 3),\r\n            backgroundColor: 'transparent'\r\n          },\r\n          '& .ril__toolbarLeftSide': { display: 'none' },\r\n          '& .ril__toolbarRightSide': {\r\n            height: 'auto !important',\r\n            padding: 0,\r\n            flexGrow: 1,\r\n            display: 'flex',\r\n            alignItems: 'center',\r\n            '& li': {\r\n              display: 'flex',\r\n              alignItems: 'center'\r\n            },\r\n            '& li:first-of-type': {\r\n              flexGrow: 1\r\n            },\r\n            '& li:not(:first-of-type)': {\r\n              width: theme.spacing(5),\r\n              height: theme.spacing(5),\r\n              justifyContent: 'center',\r\n              marginLeft: theme.spacing(1),\r\n              borderRadius: theme.shape.borderRadius\r\n            }\r\n          },\r\n\r\n          // Button\r\n          '& button:focus': { outline: 'none' },\r\n          '& .ril__toolbarRightSide button': {\r\n            width: '100%',\r\n            height: '100%',\r\n            '&.ril__zoomInButton': backgroundIcon('maximize-outline'),\r\n            '&.ril__zoomOutButton': backgroundIcon('minimize-outline'),\r\n            '&.ril__closeButton': backgroundIcon('close')\r\n          },\r\n          '& .ril__navButtons': {\r\n            padding: theme.spacing(3),\r\n            borderRadius: theme.shape.borderRadiusSm,\r\n            '&.ril__navButtonPrev': {\r\n              left: theme.spacing(2),\r\n              right: 'auto',\r\n              ...backgroundIcon(isRTL ? 'arrow-ios-forward' : 'arrow-ios-back')\r\n            },\r\n            '&.ril__navButtonNext': {\r\n              right: theme.spacing(2),\r\n              left: 'auto',\r\n              ...backgroundIcon(isRTL ? 'arrow-ios-back' : 'arrow-ios-forward')\r\n            }\r\n          }\r\n        }\r\n      }}\r\n    />\r\n  );\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface ModalLighboxProps {\r\n  images: string[];\r\n  photoIndex: number;\r\n  setPhotoIndex: (index: number) => void;\r\n  isOpen: boolean;\r\n  onClose: VoidFunction;\r\n}\r\n\r\nfunction LightboxModal({\r\n  images,\r\n  photoIndex,\r\n  setPhotoIndex,\r\n  isOpen,\r\n  onClose,\r\n  ...other\r\n}: ModalLighboxProps) {\r\n  useEffect(() => {\r\n    if (isOpen) {\r\n      document.body.style.overflow = 'hidden';\r\n    } else {\r\n      document.body.style.overflow = 'unset';\r\n    }\r\n  }, [isOpen]);\r\n\r\n  const showIndex = (\r\n    <Typography variant=\"subtitle2\">{`${photoIndex + 1} / ${images.length}`}</Typography>\r\n  );\r\n\r\n  const toolbarButtons = [showIndex];\r\n  const customStyles = {\r\n    overlay: {\r\n      zIndex: 9999\r\n    }\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <LightboxModalStyles />\r\n\r\n      {isOpen && (\r\n        <Lightbox\r\n          animationDuration={120}\r\n          mainSrc={images[photoIndex]}\r\n          nextSrc={\r\n            images.length === 1 || photoIndex === images.length - 1\r\n              ? undefined\r\n              : images[(photoIndex + 1) % images.length]\r\n          }\r\n          prevSrc={\r\n            images.length === 1 || photoIndex === 0\r\n              ? undefined\r\n              : images[(photoIndex + images.length - 1) % images.length]\r\n          }\r\n          onCloseRequest={onClose}\r\n          onMovePrevRequest={() => setPhotoIndex((photoIndex + images.length - 1) % images.length)}\r\n          onMoveNextRequest={() => setPhotoIndex((photoIndex + 1) % images.length)}\r\n          toolbarButtons={toolbarButtons}\r\n          reactModalStyle={customStyles}\r\n          {...other}\r\n        />\r\n      )}\r\n    </>\r\n  );\r\n}\r\n\r\nexport default LightboxModal;\r\n","import LightboxModal from 'components/LightboxModal';\r\nimport usePageSettings from 'hooks/usePageSettings';\r\nimport { useState } from 'react';\r\n\r\nexport type HelpLightboxModalProps = {\r\n  open: boolean;\r\n  setOpen: React.Dispatch<React.SetStateAction<boolean>>;\r\n  images: Array<string>;\r\n};\r\n\r\nexport function HelpLightboxModal({ open, setOpen, images }: HelpLightboxModalProps) {\r\n  const [selectedImage, setSelectedImage] = useState<number>(0);\r\n\r\n  return (\r\n    <LightboxModal\r\n      images={images}\r\n      photoIndex={selectedImage}\r\n      setPhotoIndex={setSelectedImage}\r\n      isOpen={open}\r\n      onClose={() => setOpen(false)}\r\n    />\r\n  );\r\n}\r\n","import { CardActionArea, CardMedia, Typography } from '@mui/material';\r\nimport { Card, CardContent } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport { useState } from 'react';\r\nimport { HelpLightboxModal } from './HelpLightboxModal';\r\n\r\ntype HelpCardImageProps = {\r\n  images: Array<string>;\r\n};\r\n\r\n/**/\r\n\r\nexport default function HelpCardImage({ images }: HelpCardImageProps) {\r\n  const [open, setOpen] = useState(false);\r\n\r\n  const handleOpen = () => {\r\n    setOpen(true);\r\n  };\r\n\r\n  const getUrl = (image: string) => {\r\n    return `/static/aide/${image}`;\r\n  };\r\n\r\n  return (\r\n    <Card>\r\n      <CardActionArea onClick={handleOpen} sx={{ display: 'flex' }}>\r\n        <Box sx={{ display: 'flex', flexDirection: 'column' }}>\r\n          <CardContent sx={{ flex: '1 0 auto' }}>\r\n            <Typography component=\"div\" variant=\"subtitle2\">\r\n              L’essentiel des fonctionnalités de votre page\r\n            </Typography>\r\n          </CardContent>\r\n        </Box>\r\n        <CardMedia\r\n          component=\"img\"\r\n          sx={{ width: 151, height: 105 }}\r\n          image={getUrl(images[0])}\r\n          alt=\"\"\r\n        />\r\n      </CardActionArea>\r\n      <HelpLightboxModal\r\n        images={images.map((i) => {\r\n          return getUrl(i);\r\n        })}\r\n        setOpen={setOpen}\r\n        open={open}\r\n      />\r\n    </Card>\r\n  );\r\n}\r\n","import { ExpandMore } from '@mui/icons-material';\r\nimport { Accordion, AccordionDetails, AccordionSummary, styled, Typography } from '@mui/material';\r\n\r\nimport { Box } from '@mui/system';\r\nimport CardMediaCustom from 'components/CardMediaCustom';\r\nimport IconStyle from 'components/IconStyle';\r\n\r\nimport { HelpCategoryTutorial } from 'datas/helpCategories';\r\n\r\n/**----------------------------- */\r\nconst AccordionStyle = styled(Accordion)(({ theme }) => ({\r\n  boxShadow: theme.customShadows.z1,\r\n  borderRadius: theme.shape.borderRadius,\r\n  minHeight: '100%',\r\n\r\n  '&.MuiAccordion-root:before': { background: 'none', boxShadow: 'none' }\r\n}));\r\n\r\n/******** */\r\n\r\ntype HelpCardTutorialProps = {\r\n  index: number;\r\n  expanded: string | boolean;\r\n  tutorial: HelpCategoryTutorial;\r\n  onChange: (panel: string) => (event: React.SyntheticEvent, isExpanded: boolean) => void;\r\n};\r\n\r\nexport default function HelpCardTutorial({\r\n  index,\r\n  expanded,\r\n  tutorial,\r\n  onChange\r\n}: HelpCardTutorialProps) {\r\n  return (\r\n    <AccordionStyle\r\n      disableGutters\r\n      expanded={expanded === index.toString()}\r\n      onChange={onChange(index.toString())}\r\n    >\r\n      <AccordionSummary disableRipple expandIcon={<ExpandMore sx={{ color: '#637381' }} />}>\r\n        <Typography>{tutorial.title}</Typography>\r\n      </AccordionSummary>\r\n      <AccordionDetails>\r\n        <Box sx={{ width: '100%', overflow: 'hidden' }}>\r\n          <CardMediaCustom url={tutorial.url} isVideo={true} />\r\n        </Box>\r\n      </AccordionDetails>\r\n    </AccordionStyle>\r\n  );\r\n}\r\n","import { Card, Stack, styled, Typography } from '@mui/material';\r\nimport { HelpCategoryTutorial } from 'datas/helpCategories';\r\nimport { Box } from '@mui/system';\r\nimport { childrenToReact } from 'react-markdown/lib/ast-to-react';\r\nimport { useState } from 'react';\r\nimport HelpCardTutorial from './HelpCardTutorial';\r\n\r\ntype HelpCardTutorialProps = {\r\n  tutorials: Array<HelpCategoryTutorial>;\r\n};\r\n\r\nexport default function HelpCardTutorials({ tutorials }: HelpCardTutorialProps) {\r\n  const [expanded, setExpanded] = useState<string | boolean>(false);\r\n\r\n  const handleChange = (panel: string) => (event: React.SyntheticEvent, isExpanded: boolean) => {\r\n    setExpanded(isExpanded ? panel : false);\r\n  };\r\n  return (\r\n    <Box>\r\n      <Typography variant=\"subtitle2\" paragraph>\r\n        Tutoriels\r\n      </Typography>\r\n      <Stack direction=\"column\" gap={1}>\r\n        {tutorials.map((tutorial, index) => (\r\n          <HelpCardTutorial\r\n            key={index}\r\n            index={index}\r\n            onChange={handleChange}\r\n            tutorial={tutorial}\r\n            expanded={expanded}\r\n          />\r\n        ))}\r\n      </Stack>\r\n    </Box>\r\n  );\r\n}\r\n","import { Card, CardContent, CardHeader, Typography, Stack, styled } from '@mui/material';\r\nimport HelpCardImage from './HelpCardImage';\r\nimport { HelpCategory } from 'datas/helpCategories';\r\nimport HelpCardTutorials from './HelpCardTutorials';\r\n\r\nimport { Box } from '@mui/system';\r\nimport { Button } from '@mui/material';\r\nimport usePageSettings from 'hooks/usePageSettings';\r\nimport { useNavigate } from 'react-router';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport Scrollbar from 'components/Scrollbar';\r\nimport { useEffect } from 'react';\r\nimport useTrackerGoogle from 'hooks/useTrackerGoogle';\r\n\r\nconst CardStyle = styled(Card)(({ theme }) => ({\r\n  backgroundColor: '#F6F7F8',\r\n  boxShadow: theme.customShadows.z16,\r\n  borderRadius: theme.shape.borderRadiusMd,\r\n  display: 'flex',\r\n  flexDirection: 'column',\r\n  height: '100%',\r\n  width: '100%'\r\n}));\r\n\r\ntype HelpCardProps = {\r\n  category: HelpCategory;\r\n};\r\n\r\nexport default function HelpCard({ category }: HelpCardProps) {\r\n  const { pageview } = useTrackerGoogle();\r\n\r\n  useEffect(() => {\r\n    pageview({\r\n      page_level_1: `Aide - ${category.label}`,\r\n      page_path: PATH_DASHBOARD.general.help\r\n    });\r\n  }, [category]);\r\n\r\n  return (\r\n    <CardStyle>\r\n      <CardContent sx={{ height: '100%', width: '100%' }}>\r\n        <Scrollbar sx={{ height: { xs: '100%', sm: 'auto' } }}>\r\n          <Stack spacing={4}>\r\n            {category.image.length > 0 && <HelpCardImage images={category.image} />}\r\n\r\n            {category.tutorials && category.tutorials.length > 0 && (\r\n              <HelpCardTutorials tutorials={category.tutorials} />\r\n            )}\r\n\r\n            <Box sx={{ textAlign: 'left' }}>\r\n              <HelpLinkAllHelps />\r\n            </Box>\r\n\r\n            {category.tutorials && category.tutorials.length > 0 && (\r\n              <Box>\r\n                <Typography variant=\"body2\">Pour information</Typography>\r\n                <Typography variant=\"caption\">\r\n                  L’école sélectionnée pour chaque tutoriel vidéo est un exemple. En fonction de\r\n                  votre formation et de votre profil, vous avez accès ou non à certaines\r\n                  fonctionnalités ou rubriques.{' '}\r\n                </Typography>\r\n              </Box>\r\n            )}\r\n          </Stack>\r\n        </Scrollbar>\r\n      </CardContent>\r\n    </CardStyle>\r\n  );\r\n}\r\n\r\nconst HelpLinkAllHelps = () => {\r\n  const navigate = useNavigate();\r\n  const { helpCategoryId } = usePageSettings();\r\n\r\n  const handleClick = () => {\r\n    navigate(PATH_DASHBOARD.general.help);\r\n  };\r\n\r\n  if (!helpCategoryId || helpCategoryId === '') return <></>;\r\n\r\n  return (\r\n    <Button variant=\"text\" onClick={handleClick}>\r\n      Voir toutes les aides\r\n    </Button>\r\n  );\r\n};\r\n","import { useEffect, useRef, useState } from 'react';\r\nimport { Drawer, Stack, Tooltip } from '@mui/material';\r\nimport { BoxProps } from '@mui/system';\r\nimport HelpCard from './HelpCard';\r\nimport { HelpCategory } from 'datas/helpCategories';\r\nimport MIconButton from 'components/MIconButton';\r\nimport { Close } from '@mui/icons-material';\r\nimport { Typography } from '@mui/material';\r\nimport { CardHeader } from '@mui/material';\r\nimport IconStyle from 'components/IconStyle';\r\nimport { IconButton } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface HelpDrawerProps extends BoxProps {\r\n  open: boolean;\r\n  onClose?: () => void;\r\n  category: HelpCategory;\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function HelpDrawer({ open, onClose, category }: HelpDrawerProps) {\r\n  const handleClose = (e: any) => {\r\n    onClose && onClose();\r\n  };\r\n\r\n  return (\r\n    <Drawer\r\n      open={open}\r\n      onClose={handleClose}\r\n      anchor=\"right\"\r\n      ModalProps={{ keepMounted: true }}\r\n      PaperProps={{\r\n        sx: {\r\n          width: { xs: 1, sm: 480 }\r\n        }\r\n      }}\r\n    >\r\n      <Stack p={1.5} direction=\"row\" alignItems=\"center\" sx={{ background: '#F6F7F8' }}>\r\n        <Tooltip title=\"Retour\">\r\n          <IconButton onClick={handleClose} sx={{ mr: 1 }}>\r\n            <Close />\r\n          </IconButton>\r\n        </Tooltip>\r\n        <Typography variant=\"h5\" sx={{ ml: 2.4 }}>\r\n          Aide - {category.label}\r\n        </Typography>\r\n      </Stack>\r\n\r\n      <HelpCard category={category} />\r\n    </Drawer>\r\n  );\r\n}\r\n","import { styled } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst QuillEditorToolbarStyle = styled('div')(({ theme }) => {\r\n  const isRTL = theme.direction === 'rtl';\r\n\r\n  return {\r\n    '& .ql-snow.ql-toolbar button:hover .ql-fill, .ql-snow .ql-toolbar button:hover .ql-fill, .ql-snow.ql-toolbar button:focus .ql-fill, .ql-snow .ql-toolbar button:focus .ql-fill, .ql-snow.ql-toolbar button.ql-active .ql-fill, .ql-snow .ql-toolbar button.ql-active .ql-fill, .ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill, .ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill, .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill, .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill, .ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill, .ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill, .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill, .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill, .ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill, .ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill, .ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill, .ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill, .ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill, .ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill, .ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill, .ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill, .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill, .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill, .ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill, .ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill, .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill, .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill':\r\n      {\r\n        fill: theme.palette.primary.main\r\n      },\r\n    '& .ql-snow.ql-toolbar button:hover, .ql-snow .ql-toolbar button:hover, .ql-snow.ql-toolbar button:focus, .ql-snow .ql-toolbar button:focus, .ql-snow.ql-toolbar button.ql-active, .ql-snow .ql-toolbar button.ql-active, .ql-snow.ql-toolbar .ql-picker-label:hover, .ql-snow .ql-toolbar .ql-picker-label:hover, .ql-snow.ql-toolbar .ql-picker-label.ql-active, .ql-snow .ql-toolbar .ql-picker-label.ql-active, .ql-snow.ql-toolbar .ql-picker-item:hover, .ql-snow .ql-toolbar .ql-picker-item:hover, .ql-snow.ql-toolbar .ql-picker-item.ql-selected, .ql-snow .ql-toolbar .ql-picker-item.ql-selected':\r\n      {\r\n        color: theme.palette.primary.main\r\n      },\r\n    '& .ql-snow.ql-toolbar button:hover .ql-stroke, .ql-snow .ql-toolbar button:hover .ql-stroke, .ql-snow.ql-toolbar button:focus .ql-stroke, .ql-snow .ql-toolbar button:focus .ql-stroke, .ql-snow.ql-toolbar button.ql-active .ql-stroke, .ql-snow .ql-toolbar button.ql-active .ql-stroke, .ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke, .ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke, .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke, .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke, .ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke, .ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke, .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke, .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke, .ql-snow.ql-toolbar button:hover .ql-stroke-miter, .ql-snow .ql-toolbar button:hover .ql-stroke-miter, .ql-snow.ql-toolbar button:focus .ql-stroke-miter, .ql-snow .ql-toolbar button:focus .ql-stroke-miter, .ql-snow.ql-toolbar button.ql-active .ql-stroke-miter, .ql-snow .ql-toolbar button.ql-active .ql-stroke-miter, .ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter, .ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter, .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter, .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter, .ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter, .ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter, .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter, .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter':\r\n      {\r\n        stroke: theme.palette.primary.main\r\n      },\r\n    '& .ql-stroke': {\r\n      stroke: theme.palette.text.primary\r\n    },\r\n    '& .ql-fill, .ql-stroke.ql-fill': {\r\n      fill: theme.palette.text.primary\r\n    },\r\n    '& .ql-picker, .ql-picker-options, .ql-picker-item, .ql-picker-label, button': {\r\n      '&:focus': { outline: 'none' }\r\n    },\r\n    '& .ql-toolbar.ql-snow': {\r\n      border: 'none',\r\n      borderBottom: `solid 1px ${theme.palette.grey[500_32]}`,\r\n      '& .ql-formats': {\r\n        '&:not(:last-of-type)': {\r\n          marginRight: theme.spacing(2)\r\n        }\r\n      },\r\n\r\n      // Button\r\n      '& button': {\r\n        padding: 0,\r\n        display: 'flex',\r\n        alignItems: 'center',\r\n        justifyContent: 'center',\r\n        borderRadius: 4,\r\n        color: theme.palette.text.primary\r\n      },\r\n\r\n      // Icon svg\r\n      '& button svg, span svg': {\r\n        width: 20,\r\n        height: 20\r\n      },\r\n\r\n      // Select\r\n      '& .ql-picker-label': {\r\n        ...theme.typography.subtitle2,\r\n        color: theme.palette.text.primary,\r\n        '& .ql-stroke': {\r\n          stroke: theme.palette.text.primary\r\n        }\r\n      },\r\n      '& .ql-picker-label svg': {\r\n        ...(isRTL && {\r\n          right: '0 !important',\r\n          left: 'auto !important'\r\n        })\r\n      },\r\n      '& .ql-color,& .ql-background,& .ql-align ': {\r\n        '& .ql-picker-label': {\r\n          padding: 0,\r\n          display: 'flex',\r\n          alignItems: 'center',\r\n          justifyContent: 'center'\r\n        }\r\n      },\r\n      '& .ql-expanded': {\r\n        '& .ql-picker-label': {\r\n          borderRadius: 4,\r\n          color: theme.palette.text.disabled,\r\n          borderColor: 'transparent !important',\r\n          backgroundColor: theme.palette.action.focus,\r\n          '& .ql-stroke': { stroke: theme.palette.text.disabled }\r\n        },\r\n        '& .ql-picker-options': {\r\n          padding: 0,\r\n          marginTop: 4,\r\n          border: 'none',\r\n          maxHeight: 200,\r\n          overflow: 'auto',\r\n          boxShadow: theme.customShadows.z20,\r\n          borderRadius: theme.shape.borderRadius,\r\n          backgroundColor: theme.palette.background.paper\r\n        },\r\n        '& .ql-picker-item': {\r\n          color: theme.palette.text.primary\r\n        },\r\n\r\n        // Align\r\n        '&.ql-align': {\r\n          '& .ql-picker-options': { padding: 0, display: 'flex' },\r\n          '& .ql-picker-item': {\r\n            width: 32,\r\n            height: 32,\r\n            display: 'flex',\r\n            alignItems: 'center',\r\n            justifyContent: 'center'\r\n          }\r\n        },\r\n        // Color & Background\r\n        '&.ql-color, &.ql-background': {\r\n          '& .ql-picker-options': { padding: 8 },\r\n          '& .ql-picker-item': {\r\n            margin: 3,\r\n            borderRadius: 4,\r\n            '&.ql-selected': { border: 'solid 1px black' }\r\n          }\r\n        },\r\n        // Font, Size, Header\r\n        '&.ql-font, &.ql-size, &.ql-header': {\r\n          '& .ql-picker-options': {\r\n            padding: theme.spacing(1, 0)\r\n          },\r\n          '& .ql-picker-item': {\r\n            padding: theme.spacing(0.5, 1.5)\r\n          }\r\n        }\r\n      }\r\n    }\r\n  };\r\n});\r\n\r\nexport default QuillEditorToolbarStyle;\r\n","import { Quill } from 'react-quill';\r\nimport { Icon } from '@iconify/react';\r\nimport roundUndo from '@iconify/icons-ic/round-undo';\r\nimport roundRedo from '@iconify/icons-ic/round-redo';\r\n\r\nimport QuillEditorToolbarStyle from './QuillEditorToolbarStyle';\r\n// //\r\n// import QuillEditorToolbarStyle from './QuillEditorToolbarStyle';\r\n\r\n// // ----------------------------------------------------------------------\r\n\r\nconst FONT_FAMILY = ['Arial', 'Tahoma', 'Georgia', 'Impact', 'Verdana'];\r\n\r\nconst FONT_SIZE = [\r\n  '8px',\r\n  '9px',\r\n  '10px',\r\n  '12px',\r\n  '14px',\r\n  '16px',\r\n  '20px',\r\n  '24px',\r\n  '32px',\r\n  '42px',\r\n  '54px',\r\n  '68px',\r\n  '84px',\r\n  '98px'\r\n];\r\nconst HEADINGS = ['Heading 1', 'Heading 2', 'Heading 3', 'Heading 4', 'Heading 5', 'Heading 6'];\r\n\r\nexport function undoChange() {\r\n  // @ts-ignore\r\n  this.quill.history.undo();\r\n}\r\nexport function redoChange() {\r\n  // @ts-ignore\r\n  this.quill.history.redo();\r\n}\r\n\r\n// const Size = Quill.import('formats/size');\r\nconst Size = Quill.import('attributors/style/size');\r\nSize.whitelist = FONT_SIZE;\r\nQuill.register(Size, true);\r\n\r\n// const Font = Quill.import('formats/font');\r\nconst Font = Quill.import('attributors/style/font');\r\nFont.whitelist = FONT_FAMILY;\r\nQuill.register(Font, true);\r\n\r\nexport const formats = [\r\n  'align',\r\n  'background',\r\n  'blockquote',\r\n  'bold',\r\n  'bullet',\r\n  'code',\r\n  'code-block',\r\n  'color',\r\n  'direction',\r\n  'font',\r\n  'formula',\r\n  'header',\r\n  'image',\r\n  'indent',\r\n  'italic',\r\n  'link',\r\n  'list',\r\n  'script',\r\n  'size',\r\n  'strike',\r\n  'table',\r\n  'underline',\r\n  'video'\r\n];\r\n\r\ntype EditorToolbarProps = {\r\n  id: string;\r\n  isSimple?: boolean;\r\n};\r\n\r\nexport default function QuillEditorToolbar({ id, isSimple, ...other }: EditorToolbarProps) {\r\n  return (\r\n    <QuillEditorToolbarStyle {...other}>\r\n      <div id={id}>\r\n        <div className=\"ql-formats\">\r\n          {!isSimple && (\r\n            <select className=\"ql-font\" defaultValue=\"\">\r\n              <option value=\"\">Font</option>\r\n              {FONT_FAMILY.map((font) => (\r\n                <option key={font} value={font}>\r\n                  {font}\r\n                </option>\r\n              ))}\r\n            </select>\r\n          )}\r\n\r\n          {!isSimple && (\r\n            <select className=\"ql-size\" defaultValue=\"16px\">\r\n              {FONT_SIZE.map((size) => (\r\n                <option key={size} value={size}>\r\n                  {size}\r\n                </option>\r\n              ))}\r\n            </select>\r\n          )}\r\n\r\n          <select className=\"ql-header\" defaultValue=\"\">\r\n            {HEADINGS.map((heading, index) => (\r\n              <option key={heading} value={index + 1}>\r\n                {heading}\r\n              </option>\r\n            ))}\r\n            <option value=\"\">Normal</option>\r\n          </select>\r\n        </div>\r\n\r\n        <div className=\"ql-formats\">\r\n          <button type=\"button\" className=\"ql-bold\" />\r\n          <button type=\"button\" className=\"ql-italic\" />\r\n          <button type=\"button\" className=\"ql-underline\" />\r\n          <button type=\"button\" className=\"ql-strike\" />\r\n        </div>\r\n\r\n        {!isSimple && (\r\n          <div className=\"ql-formats\">\r\n            <select className=\"ql-color\" />\r\n            <select className=\"ql-background\" />\r\n          </div>\r\n        )}\r\n\r\n        <div className=\"ql-formats\">\r\n          <button type=\"button\" className=\"ql-list\" value=\"ordered\" />\r\n          <button type=\"button\" className=\"ql-list\" value=\"bullet\" />\r\n          {!isSimple && <button type=\"button\" className=\"ql-indent\" value=\"-1\" />}\r\n          {!isSimple && <button type=\"button\" className=\"ql-indent\" value=\"+1\" />}\r\n        </div>\r\n\r\n        {!isSimple && (\r\n          <div className=\"ql-formats\">\r\n            <button type=\"button\" className=\"ql-script\" value=\"super\" />\r\n            <button type=\"button\" className=\"ql-script\" value=\"sub\" />\r\n          </div>\r\n        )}\r\n\r\n        {!isSimple && (\r\n          <div className=\"ql-formats\">\r\n            <button type=\"button\" className=\"ql-code-block\" />\r\n            <button type=\"button\" className=\"ql-blockquote\" />\r\n          </div>\r\n        )}\r\n\r\n        <div className=\"ql-formats\">\r\n          <button type=\"button\" className=\"ql-direction\" value=\"rtl\" />\r\n          <select className=\"ql-align\" />\r\n        </div>\r\n\r\n        <div className=\"ql-formats\">\r\n          <button type=\"button\" className=\"ql-link\" />\r\n          <button type=\"button\" className=\"ql-image\" />\r\n          {!isSimple && <button type=\"button\" className=\"ql-video\" />}\r\n        </div>\r\n\r\n        <div className=\"ql-formats\">\r\n          {!isSimple && <button type=\"button\" className=\"ql-formula\" />}\r\n        </div>\r\n\r\n        {!isSimple && (\r\n          <div className=\"ql-formats\">\r\n            <button type=\"button\" className=\"ql-undo\">\r\n              <Icon icon={roundUndo} width={18} height={18} />\r\n            </button>\r\n            <button type=\"button\" className=\"ql-redo\">\r\n              <Icon icon={roundRedo} width={18} height={18} />\r\n            </button>\r\n          </div>\r\n        )}\r\n      </div>\r\n    </QuillEditorToolbarStyle>\r\n  );\r\n}\r\n","import ReactQuill, { ReactQuillProps, Quill } from 'react-quill';\r\n// material\r\nimport { styled } from '@mui/material/styles';\r\nimport { Alert, Box, BoxProps } from '@mui/material';\r\n//\r\nimport EditorToolbar, { formats, redoChange, undoChange } from './QuillEditorToolbar';\r\nimport { ReactNode, useMemo, useRef, useState } from 'react';\r\nimport { resizeImage } from 'utils/helper';\r\nimport { useSnackbar } from 'notistack';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst RootStyle = styled(Box)(({ theme }) => ({\r\n  borderRadius: theme.shape.borderRadius,\r\n  backgroundColor: '#fff',\r\n  border: `solid 1px ${theme.palette.grey[500_32]}`,\r\n  height: '87%',\r\n  '& .ql-container.ql-snow': {\r\n    borderColor: 'transparent',\r\n    ...theme.typography.body1,\r\n    fontFamily: theme.typography.fontFamily,\r\n    overflow: 'auto'\r\n  },\r\n  '& .ql-editor': {\r\n    height: '100%',\r\n    maxHeight: '100%',\r\n    '&.ql-blank::before': {\r\n      fontStyle: 'normal',\r\n      color: theme.palette.text.disabled\r\n    },\r\n    '& pre.ql-syntax': {\r\n      ...theme.typography.body2,\r\n      padding: theme.spacing(2),\r\n      borderRadius: theme.shape.borderRadius,\r\n      backgroundColor: theme.palette.grey[900]\r\n    }\r\n  }\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface QuillEditorProps extends ReactQuillProps {\r\n  id?: string;\r\n  error?: boolean;\r\n  simple?: boolean;\r\n  sx?: BoxProps;\r\n  maxLength?: number;\r\n  alertInContent?: ReactNode;\r\n}\r\n\r\n/**\r\n * Longueur max de l'élditeur\r\n */\r\nQuill.register('modules/maxlength', function (quill: any, options: any) {\r\n  quill.on('text-change', function (e: any) {\r\n    let size = quill.getText();\r\n\r\n    if (size.length > options.value) quill.history.undo();\r\n  });\r\n});\r\n\r\nexport default function QuillEditor({\r\n  id = 'minimal-quill',\r\n  error,\r\n  value,\r\n  onChange,\r\n  simple = false,\r\n  maxLength = 300000,\r\n  sx,\r\n  alertInContent,\r\n  ...other\r\n}: QuillEditorProps) {\r\n  const quillRef = useRef<ReactQuill>(null);\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const maximumImageFileSize = 2048576;\r\n\r\n  function imageHandler() {\r\n    const input = document.createElement('input')!;\r\n\r\n    input.setAttribute('type', 'file');\r\n    input.setAttribute('accept', 'image/*');\r\n    input.click();\r\n\r\n    input.onchange = async () => {\r\n      if (input.files != null && input.files[0] != null) {\r\n        const size = input.files[0]?.size;\r\n        //controle la taille du fichier\r\n        if (maximumImageFileSize < size) {\r\n          enqueueSnackbar('Le fichier est trop volumineux', { variant: 'error' });\r\n          return;\r\n        }\r\n        //position\r\n        const editor = quillRef?.current?.getEditor();\r\n        const range = quillRef?.current?.getEditorSelection();\r\n        const length = quillRef?.current?.makeUnprivilegedEditor(editor!).getLength()!;\r\n\r\n        //récupérer le fichier\r\n        var fileReader = new FileReader();\r\n        fileReader.onload = function (e) {\r\n          //Création d'un image\r\n          var img = document.createElement('img');\r\n          img.onload = function (imgEvent) {\r\n            //Création d'un deuxième image node\r\n            var img2 = document.createElement('img');\r\n            //On donne à cette image node, la base64 de l'image redimensionner\r\n            img2.src = resizeImage(img) || '';\r\n\r\n            //controle la taille due l'éditeur + fichier ajouté\r\n            if (length + img2.src.length > maxLength) {\r\n              enqueueSnackbar('Le fichier est trop volumineux', { variant: 'error' });\r\n              return;\r\n            }\r\n\r\n            editor?.insertEmbed(range?.index!, 'image', img2.src);\r\n          };\r\n          //On lui donne la base64\r\n          img.src = e.target?.result as string;\r\n        };\r\n\r\n        fileReader.readAsDataURL(input?.files[0]);\r\n      }\r\n    };\r\n  }\r\n\r\n  const modules = useMemo(\r\n    () => ({\r\n      toolbar: {\r\n        container: `#${id}`,\r\n        handlers: {\r\n          undo: undoChange,\r\n          redo: redoChange,\r\n          image: imageHandler\r\n        }\r\n      },\r\n      maxlength: { value: maxLength },\r\n      history: {\r\n        delay: 500,\r\n        maxStack: 100,\r\n        userOnly: true\r\n      },\r\n      syntax: true,\r\n      clipboard: {\r\n        matchVisual: false\r\n      }\r\n    }),\r\n    []\r\n  );\r\n\r\n  return (\r\n    <RootStyle\r\n      sx={{\r\n        ...(error && {\r\n          border: (theme) => `solid 1px ${theme.palette.error.main}`\r\n        }),\r\n        ...sx\r\n      }}\r\n    >\r\n      <EditorToolbar id={id} isSimple={simple} />\r\n      {alertInContent}\r\n      <ReactQuill\r\n        ref={quillRef}\r\n        value={value}\r\n        onChange={onChange}\r\n        modules={modules}\r\n        formats={formats}\r\n        placeholder=\"Tapez ici votre évaluation en ligne...\"\r\n        {...other}\r\n        style={{ height: '90%' }}\r\n      />\r\n    </RootStyle>\r\n  );\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nconst ICONS = {\r\n  inline_bold: '/static/icons/editor/inline_bold.svg',\r\n  inline_italic: '/static/icons/editor/inline_italic.svg',\r\n  inline_underline: '/static/icons/editor/inline_underline.svg',\r\n  inline_strikethrough: '/static/icons/editor/inline_strikethrough.svg',\r\n  list_unordered: '/static/icons/editor/list_unordered.svg',\r\n  list_ordered: '/static/icons/editor/list_ordered.svg',\r\n  list_indent: '/static/icons/editor/list_indent.svg',\r\n  list_outdent: '/static/icons/editor/list_outdent.svg',\r\n  align_left: '/static/icons/editor/align_left.svg',\r\n  align_center: '/static/icons/editor/align_center.svg',\r\n  align_right: '/static/icons/editor/align_right.svg',\r\n  align_justify: '/static/icons/editor/align_justify.svg',\r\n  link: '/static/icons/editor/link.svg',\r\n  unlink: '/static/icons/editor/unlink.svg',\r\n  monospace: '/static/icons/editor/monospace.svg',\r\n  superscript: '/static/icons/editor/superscript.svg',\r\n  subscript: '/static/icons/editor/subscript.svg',\r\n  embedded: '/static/icons/editor/embedded.svg',\r\n  colorpicker: '/static/icons/editor/colorpicker.svg',\r\n  emoji: '/static/icons/editor/emoji.svg',\r\n  image: '/static/icons/editor/image.svg',\r\n  remove: '/static/icons/editor/remove.svg',\r\n  history_undo: '/static/icons/editor/history_undo.svg',\r\n  history_redo: '/static/icons/editor/history_redo.svg'\r\n};\r\n\r\nexport const toolbarFull = {\r\n  inline: {\r\n    bold: { icon: ICONS.inline_bold, className: 'toggle' },\r\n    italic: { icon: ICONS.inline_italic, className: 'toggle' },\r\n    underline: { icon: ICONS.inline_underline, className: 'toggle' },\r\n    strikethrough: { icon: ICONS.inline_strikethrough, className: 'toggle' },\r\n    monospace: { icon: ICONS.monospace, className: 'toggle' },\r\n    superscript: { icon: ICONS.superscript, className: 'toggle' },\r\n    subscript: { icon: ICONS.subscript, className: 'toggle' }\r\n  },\r\n  blockType: {\r\n    className: 'dropdown',\r\n    dropdownClassName: 'dropdown__option'\r\n  },\r\n  fontSize: {\r\n    className: 'dropdown',\r\n    dropdownClassName: 'dropdown__option'\r\n  },\r\n  list: {\r\n    unordered: { icon: ICONS.list_unordered, className: 'toggle' },\r\n    ordered: { icon: ICONS.list_ordered, className: 'toggle' },\r\n    indent: { icon: ICONS.list_indent, className: 'toggle' },\r\n    outdent: { icon: ICONS.list_outdent, className: 'toggle' }\r\n  },\r\n  textAlign: {\r\n    left: { icon: ICONS.align_left, className: 'toggle' },\r\n    center: { icon: ICONS.align_center, className: 'toggle' },\r\n    right: { icon: ICONS.align_right, className: 'toggle' },\r\n    justify: { icon: ICONS.align_justify, className: 'toggle' }\r\n  },\r\n  fontFamily: {\r\n    className: 'dropdown',\r\n    dropdownClassName: 'dropdown__option'\r\n  },\r\n  colorPicker: {\r\n    icon: ICONS.colorpicker,\r\n    className: 'toggle',\r\n    popupClassName: 'popup popup__colorpicker'\r\n  },\r\n  link: {\r\n    popupClassName: 'popup popup__link',\r\n    link: { icon: ICONS.link, className: 'toggle' },\r\n    unlink: { icon: ICONS.unlink, className: 'toggle' }\r\n  },\r\n  emoji: {\r\n    icon: ICONS.emoji,\r\n    className: 'toggle',\r\n    popupClassName: 'popup popup__emoji'\r\n  },\r\n  embedded: {\r\n    icon: ICONS.embedded,\r\n    className: 'toggle',\r\n    popupClassName: 'popup popup__embedded'\r\n  },\r\n  image: {\r\n    icon: ICONS.image,\r\n    className: 'toggle',\r\n    popupClassName: 'popup popup__image',\r\n    uploadCallback: uploadImageCallBack,\r\n    alt: { present: true, mandatory: true }\r\n  },\r\n  remove: { icon: ICONS.remove, className: 'toggle' },\r\n  history: {\r\n    undo: { icon: ICONS.history_undo, className: 'toggle' },\r\n    redo: { icon: ICONS.history_redo, className: 'toggle' }\r\n  }\r\n};\r\n\r\nexport const toolbarSimple = {\r\n  ...toolbarFull,\r\n  options: ['inline', 'blockType', 'list', 'textAlign', 'link', 'image', 'remove'],\r\n  inline: {\r\n    ...toolbarFull.inline,\r\n    options: ['bold', 'italic', 'underline']\r\n  },\r\n  blockType: {\r\n    ...toolbarFull.blockType,\r\n    options: ['Normal', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'Blockquote']\r\n  },\r\n  list: {\r\n    ...toolbarFull.list,\r\n    options: ['unordered', 'ordered']\r\n  }\r\n};\r\n\r\nfunction uploadImageCallBack(file: File) {\r\n  return new Promise((resolve, reject) => {\r\n    const xhr = new XMLHttpRequest();\r\n    xhr.open('POST', 'https://api.imgur.com/3/image');\r\n    xhr.setRequestHeader('Authorization', 'Client-ID XXXXX');\r\n    const data = new FormData();\r\n    data.append('image', file);\r\n    xhr.send(data);\r\n    xhr.addEventListener('load', () => {\r\n      const response = JSON.parse(xhr.responseText);\r\n      resolve(response);\r\n    });\r\n    xhr.addEventListener('error', () => {\r\n      const error = JSON.parse(xhr.responseText);\r\n      reject(error);\r\n    });\r\n  });\r\n}\r\n","import { styled } from '@mui/material/styles';\r\nimport { Box } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst DraftEditorStyle = styled(Box)(({ theme }) => {\r\n  const isLight = theme.palette.mode === 'light';\r\n  const isRTL = theme.direction === 'rtl';\r\n\r\n  return {\r\n    borderRadius: theme.shape.borderRadius,\r\n    border: `solid 1px ${theme.palette.grey[500_32]}`,\r\n\r\n    // Toggle\r\n    '& .toggle': {\r\n      border: 'none',\r\n      borderRadius: 6,\r\n      background: 'transparent',\r\n      '&.rdw-option-disabled': {\r\n        opacity: theme.palette.action.disabledOpacity\r\n      },\r\n      '& img': {\r\n        width: 16,\r\n        height: 16,\r\n        filter: isLight ? 'none' : 'invert(100%)'\r\n      },\r\n      '&[aria-selected=\"true\"]': {\r\n        boxShadow: 'none',\r\n        background: theme.palette.action.selected\r\n      },\r\n      '&:hover': {\r\n        boxShadow: 'none',\r\n        background: theme.palette.action.hover\r\n      }\r\n    },\r\n\r\n    // Dropdown\r\n    '& .dropdown': {\r\n      minWidth: 56,\r\n      borderRadius: 6,\r\n      boxShadow: 'none',\r\n      background: 'transparent',\r\n      border: `solid 1px ${theme.palette.grey[500_32]}`,\r\n      '&:hover': {\r\n        boxShadow: 'none',\r\n        background: theme.palette.action.hover\r\n      },\r\n      '& .rdw-dropdown-selectedtext': {\r\n        color: theme.palette.text.primary\r\n      },\r\n      '& .rdw-dropdown-carettoopen': {\r\n        ...(isRTL && {\r\n          right: '10%',\r\n          left: 'auto'\r\n        }),\r\n        borderTopColor: theme.palette.text.primary\r\n      },\r\n      '& .rdw-dropdown-carettoclose': {\r\n        ...(isRTL && {\r\n          right: '10%',\r\n          left: 'auto'\r\n        }),\r\n        borderBottomColor: theme.palette.text.primary\r\n      }\r\n    },\r\n    '& .dropdown__option': {\r\n      width: '100%',\r\n      border: 'none',\r\n      marginTop: theme.spacing(1),\r\n      padding: theme.spacing(1, 0),\r\n      boxShadow: theme.customShadows.z20,\r\n      borderRadius: theme.shape.borderRadius,\r\n      background: theme.palette.background.paper,\r\n      '& .rdw-dropdownoption-default': {\r\n        fontSize: 14,\r\n        minHeight: 'auto',\r\n        padding: theme.spacing(0.5, 2)\r\n      },\r\n      '& .rdw-dropdownoption-active': {\r\n        background: theme.palette.action.selected\r\n      },\r\n      '& .rdw-dropdownoption-highlighted': {\r\n        background: theme.palette.action.hover\r\n      }\r\n    },\r\n    // Popup\r\n    '& .popup': {\r\n      right: 0,\r\n      padding: 0,\r\n      left: 'auto',\r\n      border: 'none',\r\n      overflow: 'hidden',\r\n      boxShadow: theme.customShadows.z20,\r\n      borderRadius: theme.shape.borderRadius,\r\n      background: theme.palette.background.paper,\r\n\r\n      // Action\r\n      '& .rdw-link-modal-buttonsection, .rdw-embedded-modal-btn-section, .rdw-image-modal-btn-section':\r\n        {\r\n          margin: 0,\r\n          display: 'flex',\r\n          marginTop: theme.spacing(2),\r\n          justifyContent: 'space-between',\r\n          '& button': {\r\n            margin: 0,\r\n            fontSize: 13,\r\n            border: 'none',\r\n            fontWeight: 'bold',\r\n            width: 'calc(50% - 4px)',\r\n            color: theme.palette.common.white,\r\n            background: theme.palette.primary.main,\r\n            borderRadius: theme.shape.borderRadius,\r\n            '&:disabled': {\r\n              color: theme.palette.action.disabled,\r\n              background: theme.palette.action.disabledBackground\r\n            },\r\n            '&:last-of-type': {\r\n              background: 'transparent',\r\n              color: theme.palette.text.primary\r\n            },\r\n            '&:hover': { boxShadow: 'none' },\r\n            '&:active': { boxShadow: 'none' }\r\n          }\r\n        },\r\n      // Input\r\n      '& input': {\r\n        height: 26,\r\n        fontSize: 14,\r\n        background: 'transparent',\r\n        padding: theme.spacing(0, 1.5),\r\n        color: theme.palette.text.primary,\r\n        borderRadius: theme.shape.borderRadius,\r\n        border: `solid 1px ${theme.palette.grey[500_32]}`\r\n      }\r\n    },\r\n\r\n    // Popup Color Picker\r\n    '& .popup__colorpicker': {\r\n      padding: 0,\r\n      '& .rdw-colorpicker-modal-header': {\r\n        padding: theme.spacing(1),\r\n        background: theme.palette.grey[500_12],\r\n        '& .rdw-colorpicker-modal-style-label': {\r\n          fontSize: 13,\r\n          padding: theme.spacing(0.75, 0),\r\n          color: theme.palette.text.secondary,\r\n          borderRadius: theme.shape.borderRadius,\r\n          fontWeight: theme.typography.fontWeightMedium\r\n        },\r\n        '& .rdw-colorpicker-modal-style-label-active': {\r\n          borderBottom: 'none',\r\n          boxShadow: theme.customShadows.z8,\r\n          color: theme.palette.text.primary,\r\n          background: theme.palette.common.white\r\n        }\r\n      },\r\n      '& .rdw-colorpicker-modal-options': {\r\n        margin: 0,\r\n        padding: theme.spacing(1.5)\r\n      },\r\n      '& .rdw-colorpicker-option': {\r\n        margin: 4,\r\n        width: 20,\r\n        height: 20,\r\n        minWidth: 20,\r\n        borderRadius: 6,\r\n        overflow: 'hidden',\r\n        position: 'relative',\r\n        '&:hover': { boxShadow: 'none' },\r\n        '&:before': {\r\n          zIndex: 9,\r\n          fontSize: 0,\r\n          width: '100%',\r\n          height: '100%',\r\n          display: 'flex',\r\n          borderRadius: 6,\r\n          content: '\"\\\\2713\"',\r\n          position: 'absolute',\r\n          alignItems: 'center',\r\n          justifyContent: 'center',\r\n          color: theme.palette.common.white,\r\n          fontWeight: theme.typography.fontWeightBold,\r\n          boxShadow: 'inset 0 0 3px 0 rgba(0,0,0,0.12)'\r\n        },\r\n        '&[aria-selected=\"true\"]': {\r\n          boxShadow: 'none',\r\n          borderRadius: '50%',\r\n          '&:before': { fontSize: 12 }\r\n        }\r\n      },\r\n      '& .rdw-colorpicker-cube': { border: 'none' }\r\n    },\r\n\r\n    // Popup Link\r\n    '& .popup__link': {\r\n      height: 'auto',\r\n      padding: theme.spacing(2),\r\n      '& .rdw-link-modal-label': {\r\n        fontSize: 13,\r\n        fontWeight: theme.typography.fontWeightMedium\r\n      },\r\n      '& .rdw-link-modal-input': { marginTop: 4, marginBottom: 12 },\r\n      '& .rdw-link-modal-target-option': {\r\n        display: 'flex',\r\n        marginBottom: 0,\r\n        alignItems: 'center',\r\n        '& > span': {\r\n          fontSize: 14,\r\n          marginLeft: theme.spacing(1)\r\n        }\r\n      }\r\n    },\r\n    // Popup Emoji\r\n    '& .popup__emoji': { overflow: 'auto', padding: theme.spacing(1) },\r\n\r\n    // Popup Embedded\r\n    '& .popup__embedded': {\r\n      height: 'auto',\r\n      '& .rdw-embedded-modal-header': {\r\n        padding: theme.spacing(1),\r\n        background: theme.palette.grey[500_12],\r\n        '& .rdw-embedded-modal-header-label': { display: 'none' },\r\n        '& .rdw-embedded-modal-header-option': {\r\n          fontSize: 13,\r\n          padding: theme.spacing(0.75, 0),\r\n          color: theme.palette.text.secondary,\r\n          borderRadius: theme.shape.borderRadius,\r\n          fontWeight: theme.typography.fontWeightMedium\r\n        }\r\n      },\r\n      '& .rdw-embedded-modal-link-section': {\r\n        padding: theme.spacing(2, 2, 0)\r\n      },\r\n      '& .rdw-embedded-modal-btn-section': { padding: theme.spacing(0, 2, 2) }\r\n    },\r\n\r\n    // Popup Image\r\n    '& .popup__image': {\r\n      padding: 0,\r\n\r\n      '& .rdw-image-modal-header': {\r\n        margin: 0,\r\n        zIndex: 9,\r\n        fontSize: 13,\r\n        padding: theme.spacing(1),\r\n        background: theme.palette.grey[500_12],\r\n        fontWeight: theme.typography.fontWeightMedium,\r\n        '& .rdw-image-modal-header-option': {\r\n          position: 'relative',\r\n          padding: theme.spacing(0.75, 0)\r\n        },\r\n        '& .rdw-image-modal-header-label': {\r\n          margin: 0,\r\n          width: '100%',\r\n          height: '100%',\r\n          border: 'none',\r\n          position: 'absolute',\r\n          background: 'transparent'\r\n        },\r\n        '& .rdw-image-modal-header-label-highlighted': {\r\n          zIndex: -1,\r\n          boxShadow: theme.customShadows.z8,\r\n          background: theme.palette.common.white,\r\n          borderRadius: theme.shape.borderRadius\r\n        }\r\n      },\r\n      '& .rdw-image-modal-upload-option': {\r\n        margin: 0,\r\n        outline: 'none',\r\n        background: 'none',\r\n        padding: theme.spacing(2)\r\n      },\r\n      '& .rdw-image-modal-upload-option-label': {\r\n        fontSize: 13,\r\n        textAlign: 'center',\r\n        color: theme.palette.text.disabled,\r\n        borderRadius: theme.shape.borderRadius,\r\n        border: `dashed 1px ${theme.palette.grey[500_32]}`\r\n      },\r\n      '& .rdw-image-modal-btn-section': { padding: theme.spacing(0, 2, 2) },\r\n      '& .rdw-image-modal-size, .rdw-image-modal-url-section': {\r\n        padding: theme.spacing(0, 2)\r\n      }\r\n    },\r\n\r\n    // Toolbar\r\n    '& .rdw-editor-toolbar': {\r\n      border: 'none',\r\n      marginBottom: 0,\r\n      background: 'transparent',\r\n      borderBottom: `solid 1px ${theme.palette.grey[500_32]}`\r\n    },\r\n\r\n    // Main\r\n    '& .rdw-editor-main': {\r\n      minHeight: 200,\r\n      padding: theme.spacing(0, 2),\r\n      '& .public-DraftEditorPlaceholder-root': {\r\n        color: theme.palette.text.disabled\r\n      }\r\n    }\r\n  };\r\n});\r\n\r\nexport default DraftEditorStyle;\r\n","import { Container, Grid, Stack, Typography } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport {\r\n  Epreuve,\r\n  Examen,\r\n  ObjectifGeneral,\r\n  RegionAdministrative,\r\n  SessionExamen,\r\n  StatutEpreuve,\r\n  StatutInscription\r\n} from '../../../@types/examen';\r\nimport { CheckboxField, InputField, SelectField } from 'components/FormikInput';\r\nimport { useFormikContext } from 'formik';\r\nimport { useEffect } from 'react';\r\nimport EmptyContent from 'components/EmptyContent';\r\nimport useExamen from 'hooks/useExamen';\r\nimport ExamenCentreInfosDisplay from './ExamenCentreInfosDisplay';\r\n\r\n/**\r\n * Objectif session\r\n * @param props Formik component\r\n * @returns\r\n */\r\nexport default function ExamenFormObjectifSession(props: any) {\r\n  const { objectifs, sessionsLocked = [] } = props;\r\n  const { values, setValues } = useFormikContext<Examen>();\r\n  const { getLabel } = useExamen();\r\n  const labelType = getLabel().debuteMajuscule;\r\n\r\n  useEffect(() => {\r\n    /*\r\n    Récupérer les informations liées à la session au changement de celle ci\r\n    */\r\n    if (values.session.code !== '') {\r\n      const objGen = objectifs?.find((o: ObjectifGeneral) => o.code === values.code);\r\n\r\n      const newSession = objGen?.sessions.find(\r\n        (s: SessionExamen) => s.code === values.session.code\r\n      );\r\n\r\n      setValues({\r\n        ...values,\r\n        categorie: objGen?.categorie,\r\n        session: {\r\n          ...values.session,\r\n          epreuves: newSession?.epreuves?.map((epr: Epreuve) => {\r\n            return { ...epr, statut: 'INS', note: 0, typeFichier: 'INS' };\r\n          }),\r\n          centreExamen: newSession?.centreExamen\r\n        }\r\n      });\r\n    }\r\n  }, [values.session.code]);\r\n\r\n  return (\r\n    <Box sx={{ p: 1.5 }}>\r\n      <Typography variant=\"subtitle1\" paragraph>\r\n        {labelType}\r\n      </Typography>\r\n\r\n      <Stack gap=\"10px\" flexDirection={'row'}>\r\n        <Stack width=\"50%\">\r\n          <SelectField\r\n            fullWidth\r\n            label={labelType}\r\n            name={'code'}\r\n            data={objectifs.map((x: Examen) => {\r\n              return { code: x.code, label: x.designation };\r\n            })}\r\n          />\r\n        </Stack>\r\n\r\n        <Stack gap=\"10px\" flexDirection={'column'} width=\"50%\">\r\n          <SelectField\r\n            fullWidth\r\n            label=\"Session\"\r\n            name={'session.code'}\r\n            data={\r\n              objectifs\r\n                ?.filter((w: Examen) => w.code === values.code)[0]\r\n                ?.sessions?.filter((ses: SessionExamen) => !sessionsLocked.includes(ses.code))\r\n                .map((x: SessionExamen) => {\r\n                  return { code: x.code, label: x.designation };\r\n                }) || []\r\n            }\r\n          />\r\n          <ExamenCentreInfosDisplay centreExamen={values?.session?.centreExamen} />\r\n        </Stack>\r\n      </Stack>\r\n      {values.session.code !== '' && values.session.epreuves.length === 0 ? (\r\n        <Box>\r\n          <EmptyContent\r\n            title=\"Nous vous remercions pour ces informations.\"\r\n            img={'/static/illustrations/examens/epreuves.svg'}\r\n            description=\"\r\n            Merci de bien vouloir revenir plus tard pour renseigner les épreuves que vous présentez. \r\nLes épreuves seront disponibles dès l’ouverture des inscriptions académique.\"\r\n          ></EmptyContent>\r\n        </Box>\r\n      ) : (\r\n        <Box>\r\n          <EmptyContent\r\n            title=\"\"\r\n            img={'/static/illustrations/examens/inscription.svg'}\r\n          ></EmptyContent>\r\n        </Box>\r\n      )}\r\n    </Box>\r\n  );\r\n}\r\n","import * as Yup from 'yup';\r\n\r\nconst ensureNumber = (val: number) => (isFinite(val) ? val : undefined);\r\n\r\nYup.addMethod(Yup.array, 'check', function (status, message) {\r\n  // eslint-disable-next-line no-invalid-this\r\n  return this.test('check', message, (value) => value?.includes(status) || true);\r\n});\r\n\r\nexport const ExamenFormValidationSchema = [\r\n  Yup.object().shape({\r\n    code: Yup.string().required(`L'examen est obligatoire`),\r\n    session: Yup.object().shape({\r\n      code: Yup.string().required(`la session est obligatoire`)\r\n    })\r\n  }),\r\n  Yup.object().shape({\r\n    departement: Yup.object().shape({\r\n      code: Yup.string().required(`le département est obligatoire`)\r\n    }),\r\n    region: Yup.object().shape({\r\n      code: Yup.string().required(`la région est obligatoire`)\r\n    }),\r\n    academie: Yup.object().shape({\r\n      code: Yup.string().required(`l'académie' est obligatoire`)\r\n    }),\r\n    statutInscription: Yup.object().shape({\r\n      code: Yup.string().required(`le statut inscription  est obligatoire`)\r\n    })\r\n  }),\r\n\r\n  Yup.object().shape({\r\n    formePassage: Yup.string().required(`la forme de passage est obligatoire`),\r\n    session: Yup.object().shape({\r\n      filesMandatory: Yup.boolean(),\r\n      epreuves: Yup.array()\r\n        .of(\r\n          Yup.object().shape({\r\n            statut: Yup.string().ensure().required('Requis'),\r\n            note: Yup.number().required('Requis').transform(ensureNumber),\r\n            anneeBenefice: Yup.number()\r\n              .nullable()\r\n              .test('anneeBenefice', 'Requis', function (value, ctx) {\r\n                const parent = ctx.parent;\r\n                if (parent.statut === 'BEN')\r\n                  if (\r\n                    !Number.isInteger(value) ||\r\n                    value === 0 ||\r\n                    value! < new Date().getFullYear() - 20 ||\r\n                    value! > new Date().getFullYear()\r\n                  )\r\n                    return false;\r\n                return true;\r\n              })\r\n          })\r\n        )\r\n        .required('Les informations sont requises'),\r\n      fichiers: Yup.array().when('filesMandatory', {\r\n        is: true,\r\n        then: Yup.array().min(1, 'Vous devez joindre les documents demandés').required('')\r\n      })\r\n    })\r\n  }),\r\n  Yup.object().shape({\r\n    isSended: Yup.boolean(),\r\n    session: Yup.object().shape({\r\n      fichiers: Yup.array().when('isSended', {\r\n        is: true,\r\n        then: Yup.array().test(\r\n          'fileInscription',\r\n          \"L'attestation d'inscription est obligatoire\",\r\n          function (items) {\r\n            if (items === null || items?.length === 0 || !items?.some((f) => f.type === 'INS'))\r\n              return false;\r\n            return true;\r\n          }\r\n        )\r\n      })\r\n    })\r\n  })\r\n];\r\n","import { Container, Grid, Stack, Typography } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport {\r\n  Academie,\r\n  Departement,\r\n  Examen,\r\n  RegionAdministrative,\r\n  StatutInscription\r\n} from '../../../@types/examen';\r\nimport { CheckboxField, InputField, SelectField } from 'components/FormikInput';\r\nimport { useFormikContext } from 'formik';\r\nimport { useEffect } from 'react';\r\nimport Label from 'components/Label';\r\nimport { fDate } from 'utils/formatTime';\r\n\r\nexport default function ExamenFormInformations(props: any) {\r\n  const { departements, regions, academies, dateDebutEpreuve, statutsInscription, category } =\r\n    props;\r\n  const { values, setValues } = useFormikContext<Examen>();\r\n\r\n  useEffect(() => {\r\n    /*\r\n    Récupérer les informations liées au departement\r\n    */\r\n    if (values.departement?.code !== '') {\r\n      var departement = departements?.filter(\r\n        (d: Departement) => d.code === values.departement?.code\r\n      )[0];\r\n      setValues({\r\n        ...values,\r\n        departement: departement,\r\n        academie: academies?.filter((a: Academie) => a.code === departement?.academieCode)[0],\r\n        region: regions?.filter((r: RegionAdministrative) => r.code === departement?.regionCode)[0]\r\n      });\r\n    }\r\n  }, [values.departement?.code]);\r\n\r\n  return (\r\n    <Box sx={{ p: 1.5 }}>\r\n      {dateDebutEpreuve && (\r\n        <Stack gap=\"5px\" direction=\"row\" alignItems={'center'}>\r\n          <Typography variant=\"body2\">\r\n            {category === 'EXA' ? \"Date de l'examen\" : 'Date du concours'}\r\n          </Typography>\r\n          <Label variant=\"ghost\" color=\"warning\">\r\n            {fDate(dateDebutEpreuve)}{' '}\r\n          </Label>\r\n        </Stack>\r\n      )}\r\n\r\n      <Typography variant=\"subtitle1\" paragraph>\r\n        Localisation\r\n      </Typography>\r\n\r\n      <Stack gap=\"10px\">\r\n        <Stack gap=\"10px\" flexDirection={'row'}>\r\n          <SelectField\r\n            fullWidth\r\n            label=\"Département\"\r\n            name={'departement.code'}\r\n            data={departements?.map((dep: Departement) => {\r\n              return { code: dep.code, label: `${dep.code} - ${dep.designation}` };\r\n            })}\r\n          />\r\n        </Stack>\r\n        <Stack gap=\"10px\" flexDirection={'row'}>\r\n          <SelectField\r\n            fullWidth\r\n            label=\"Région\"\r\n            name={'region.code'}\r\n            data={regions?.map((x: RegionAdministrative) => {\r\n              return { code: x.code, label: x.designation };\r\n            })}\r\n          />\r\n          <SelectField\r\n            fullWidth\r\n            label=\"Académie\"\r\n            name={'academie.code'}\r\n            data={academies?.map((x: Academie) => {\r\n              return { code: x.code, label: x.designation };\r\n            })}\r\n          />\r\n        </Stack>\r\n        <Box>\r\n          <Typography variant=\"subtitle1\" paragraph>\r\n            Statut d’inscription\r\n          </Typography>\r\n\r\n          <Stack gap=\"10px\" flexDirection={'row'}>\r\n            <SelectField\r\n              fullWidth\r\n              label=\"\"\r\n              disabled={values.etatInscription === 'VAL'}\r\n              name={'statutInscription.code'}\r\n              data={statutsInscription?.map((ins: StatutInscription) => {\r\n                return { code: ins.code, label: ins.designation };\r\n              })}\r\n            />\r\n          </Stack>\r\n        </Box>\r\n      </Stack>\r\n    </Box>\r\n  );\r\n}\r\n","import { Box } from '@mui/system';\r\nimport { Epreuve, Examen, StatutEpreuve } from '../../../@types/examen';\r\nimport { useFormikContext } from 'formik';\r\nimport { ExamenFormEpreuveItem } from './ExamenFormEpreuveItem';\r\nimport { Card, Stack, Typography } from '@mui/material';\r\nimport ExamenFormDocument from './ExamenFormDocument';\r\nimport { ControllerField } from 'components/FormikInput';\r\nimport CardContainer from 'components/CardContainer';\r\nimport { getLabelTypeFile } from 'utils/helperExamen';\r\n\r\n/**\r\n * Liste des épreuves\r\n * @param props\r\n * @returns\r\n */\r\nexport default function ExamenFormEpreuves(props: any) {\r\n  const { statutsEpreuve } = props;\r\n  const { values, setValues, errors } = useFormikContext<Examen>();\r\n\r\n  const handleChange = (epreuve: Epreuve) => {\r\n    setValues({\r\n      ...values,\r\n      session: {\r\n        ...values.session,\r\n        epreuves: [\r\n          ...values.session.epreuves.map((w) => {\r\n            if (w.code === epreuve.code) {\r\n              return epreuve;\r\n            }\r\n            return w;\r\n          })\r\n        ]\r\n      }\r\n    });\r\n  };\r\n\r\n  //Obligatoire\r\n  const filesMandatory = values.session.epreuves.filter((f) =>\r\n    ['DIS', 'REL'].includes(f.typeFichier)\r\n  );\r\n\r\n  return (\r\n    <Box sx={{ p: 1.5 }}>\r\n      <Typography variant=\"subtitle1\">Epreuves</Typography>\r\n\r\n      <Typography variant=\"caption\" gutterBottom>\r\n        Renseignez votre participation / non participation pour chaque épreuve :\r\n      </Typography>\r\n\r\n      <Stack gap=\"10px\">\r\n        {values.session.epreuves.map((epr, index) => {\r\n          const error = errors?.session?.epreuves?.[index];\r\n          return (\r\n            <ExamenFormEpreuveItem\r\n              key={`${epr.code}_${index}`}\r\n              onChange={handleChange}\r\n              epreuve={epr}\r\n              statutsEpreuve={props.statutsEpreuve}\r\n              values={values}\r\n              error={error}\r\n            />\r\n          );\r\n        })}\r\n      </Stack>\r\n\r\n      {filesMandatory.length > 0 && (\r\n        <Box sx={{ mt: 2 }}>\r\n          <Typography variant=\"subtitle1\">Pièces justificatives</Typography>\r\n          <ExamenFormDocument {...props} type=\"DIS\" statutsEpreuve={statutsEpreuve}>\r\n            <Typography variant=\"subtitle2\">\r\n              Veuillez nous joindre vos pièces justificatives pour les épreuves suivantes :\r\n            </Typography>\r\n            <Box sx={{ m: 2 }}>\r\n              {filesMandatory.map((d) => (\r\n                <FileItemMandatory epreuve={d} key={d.code} />\r\n              ))}\r\n            </Box>\r\n            <ControllerField name=\"session.filesMandatory\" value={filesMandatory.length > 0} />\r\n          </ExamenFormDocument>\r\n        </Box>\r\n      )}\r\n    </Box>\r\n  );\r\n}\r\n\r\nfunction FileItemMandatory({ epreuve }: { epreuve: Epreuve }) {\r\n  return (\r\n    <Box>\r\n      <Stack gap=\"10px\" flexDirection={'row'} alignItems={'center'}>\r\n        <Typography variant=\"body2\">\r\n          {epreuve.codeReferentiel}-{epreuve.designation} :\r\n        </Typography>\r\n        <Typography variant=\"subtitle2\">{getLabelTypeFile(epreuve.typeFichier)}</Typography>\r\n      </Stack>\r\n    </Box>\r\n  );\r\n}\r\n","import { Box } from '@mui/system';\r\nimport { Epreuve, Examen, StatutEpreuve } from '../../../@types/examen';\r\nimport { useFormikContext } from 'formik';\r\nimport { ExamenFormEpreuveItem } from './ExamenFormEpreuveItem';\r\nimport { Alert, Card, Stack, Typography } from '@mui/material';\r\nimport ExamenFormDocument from './ExamenFormDocument';\r\nimport { ControllerField } from 'components/FormikInput';\r\nimport { Link } from 'react-router-dom';\r\nimport { PhoneLabel } from 'components/PhoneInfo';\r\nimport useBrand from 'hooks/useBrand';\r\n\r\n/**\r\n * Confirmation enregistrement de la demande\r\n * @param props\r\n * @returns\r\n */\r\nexport default function ExamenFormConfirmation(props: any) {\r\n  const { statutsEpreuve } = props;\r\n  const { values, setValues, errors } = useFormikContext<Examen>();\r\n  const brand = useBrand();\r\n  const isSended = values.session.fichiers.some((f) => f.type === 'INS');\r\n  return (\r\n    <Box sx={{ p: 1.5 }}>\r\n      <Typography variant=\"subtitle1\">Confirmation d’inscription</Typography>\r\n      <Typography variant=\"caption\" gutterBottom>\r\n        Veuillez joindre votre confirmation d’inscription : Fichier (PDF, zip, PNG, JPG) de 200 Mo\r\n        maximum.\r\n      </Typography>\r\n      <Box>\r\n        {' '}\r\n        <Link\r\n          onClick={() => window.open('/static/datas/exemple_confirmation_inscription.pdf')}\r\n          to=\"#\"\r\n        >\r\n          <Typography variant=\"body2\">à quoi ressemble une confirmation d’inscription ?</Typography>\r\n        </Link>\r\n      </Box>\r\n      <ExamenFormDocument {...props} type=\"INS\" statutsEpreuve={statutsEpreuve}>\r\n        <ControllerField name=\"session.isSended\" value={isSended} />\r\n      </ExamenFormDocument>\r\n\r\n      {!values?.session?.isSended && (\r\n        <Alert severity=\"error\">\r\n          <Typography variant=\"subtitle2\">Pièce jointe manquante</Typography>\r\n          <Typography variant=\"body2\">\r\n            Merci de bien vouloir ajouter votre confirmation d’inscription à cette session. Cela\r\n            vous permettra d’envoyer votre dossier à l’école. Contactez l’école au{' '}\r\n            <strong>\r\n              {' '}\r\n              <PhoneLabel phoneNumber={'01.46.00.67.67'} brandId={brand.brand} />\r\n            </strong>{' '}\r\n            si vous n’avez pas ce document.\r\n          </Typography>\r\n        </Alert>\r\n      )}\r\n    </Box>\r\n  );\r\n}\r\n","import { useEffect, useCallback, useState } from 'react';\r\n// material\r\nimport {\r\n  Container,\r\n  Button,\r\n  Stepper,\r\n  Step,\r\n  StepLabel,\r\n  CircularProgress,\r\n  Card,\r\n  Stack,\r\n  CardActions,\r\n  Typography,\r\n  Alert,\r\n  Divider\r\n} from '@mui/material';\r\nimport { Box } from '@mui/system';\r\n\r\nimport { Examen, TypeCategoryObjectif } from '../../../@types/examen';\r\n\r\n// aures\r\nimport { Form, Formik, FormikErrors, useFormik } from 'formik';\r\nimport useExamenForm, { useExamenFormProps } from 'hooks/useExamenForm';\r\nimport ExamenFormObjectifSession from './ExamenFormObjectifSession';\r\nimport { ExamenFormValidationSchema } from './ExamenFormValidationSchema';\r\nimport ExamenFormInformations from './ExamenFormInformations';\r\n\r\nimport ExamenFormEpreuves from './ExamenFormEpreuves';\r\nimport useAuth from 'hooks/useAuth';\r\nimport ExamenFormConfirmation from './ExamenFormConfirmation';\r\nimport { addOrUpdate } from 'redux/slices/examen';\r\nimport { dispatch, RootState, useSelector } from 'redux/store';\r\nimport { ControllerField } from 'components/FormikInput';\r\nimport { useNavigate } from 'react-router';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport { useSnackbar } from 'notistack';\r\n\r\nimport { LoadingButton } from '@mui/lab';\r\n\r\n// @types\r\n\r\n//----------------------------------------------------\r\n\r\nexport type ExamenFormProps = {\r\n  id: string;\r\n  sessionId: string;\r\n  onCancel?: () => void;\r\n};\r\n\r\n/**\r\n * Créer une session d'examen\r\n * La validation se fait par étape.\r\n * Le paramétrage de la validation se trouve dans un tableau qui correspond à une étape\r\n * @returns\r\n */\r\nexport default function ExamenForm({ id, sessionId, onCancel }: ExamenFormProps) {\r\n  const navigate = useNavigate();\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const [activeStep, setActiveStep] = useState(0);\r\n  const [files, setFiles] = useState([]);\r\n  const {\r\n    errorForm,\r\n    isLoadingForm,\r\n    objectifs,\r\n    examen,\r\n    departements,\r\n    academies,\r\n    regions,\r\n    statutsInscription,\r\n    statutsResultat,\r\n    statutsEpreuve,\r\n    category,\r\n    examens\r\n  } = useExamenForm({\r\n    id,\r\n    sessionId\r\n  });\r\n\r\n  const { categoriesGereesEnExterne } = useSelector((state: RootState) => state.examen);\r\n\r\n  let steps = [\r\n    {\r\n      id: 'EXAMEN',\r\n      label: 'Session',\r\n      component: (dateDebutEpreuve: string) => (\r\n        <ExamenFormObjectifSession\r\n          objectifs={objectifs?.filter(\r\n            (o) => categoriesGereesEnExterne?.includes(o.categorie) && !o.gestionInscriptionInterne\r\n          )}\r\n          dateDebutEpreuve={dateDebutEpreuve}\r\n          category={category}\r\n          sessionsLocked={examens.map((exa) => exa.session.code)}\r\n        />\r\n      )\r\n    },\r\n    {\r\n      id: 'INFORMATIONS',\r\n      label: 'Informations',\r\n      component: (dateDebutEpreuve: string) => (\r\n        <ExamenFormInformations\r\n          dateDebutEpreuve={dateDebutEpreuve}\r\n          statutsEpreuve={statutsEpreuve}\r\n          departements={departements}\r\n          academies={academies}\r\n          regions={regions}\r\n          statutsInscription={statutsInscription}\r\n          category={category}\r\n        />\r\n      )\r\n    },\r\n    {\r\n      id: 'EPREUVES',\r\n      label: 'Epreuves',\r\n      component: (dateDebutEpreuve: string) => (\r\n        <ExamenFormEpreuves\r\n          dateDebutEpreuve={dateDebutEpreuve}\r\n          statutsEpreuve={statutsEpreuve}\r\n          onChange={setFiles}\r\n          files={files}\r\n        />\r\n      )\r\n    },\r\n    {\r\n      id: 'CONFIRMATION',\r\n      label: 'Confirmation',\r\n      component: (dateDebutEpreuve: string) => (\r\n        <ExamenFormConfirmation\r\n          dateDebutEpreuve={dateDebutEpreuve}\r\n          onChange={setFiles}\r\n          files={files}\r\n        />\r\n      )\r\n    }\r\n  ];\r\n\r\n  let ExamenFormValidationSchemaArr = ExamenFormValidationSchema;\r\n\r\n  //supprimer la 1ere etape\r\n  if (id !== '') {\r\n    steps = steps.slice(1);\r\n    ExamenFormValidationSchemaArr = ExamenFormValidationSchemaArr.slice(1);\r\n  }\r\n  const currentValidationSchema = ExamenFormValidationSchemaArr[activeStep];\r\n  const isLastStep = activeStep === steps.length - 1;\r\n\r\n  useEffect(() => {\r\n    if (errorForm) enqueueSnackbar(enqueueSnackbar, { variant: 'error' });\r\n  }, [errorForm]);\r\n\r\n  /**\r\n   *  Permettre d'enregistrer les étapes :\r\n   *  si les epreuves n'ont pas été saisies par le suivi\r\n   *  ou Si le statut d'inscription est Reporté ou abandon => Statut examen = ABA\r\n   *  ou Si derniere étape\r\n   * @param values\r\n   * @returns\r\n   */\r\n  const isStopAndSaveStep = (values: Examen): boolean => {\r\n    const isEpreuve =\r\n      (values.session?.epreuves === null || values.session?.epreuves.length === 0) &&\r\n      steps[activeStep].id === 'INFORMATIONS';\r\n\r\n    const isAbandon = ['ABA', 'REP'].includes(values?.statutInscription.code);\r\n\r\n    return isAbandon || isEpreuve || isLastStep;\r\n  };\r\n\r\n  const handleBack = () => {\r\n    setActiveStep(activeStep - 1);\r\n  };\r\n\r\n  const handleSubmit = (values: Examen, actions: any) => {\r\n    if (isStopAndSaveStep(values)) {\r\n      dispatch(\r\n        addOrUpdate(values)(() => {\r\n          enqueueSnackbar('Enregistrement effectué', { variant: 'success' });\r\n          if (onCancel) onCancel();\r\n          //success\r\n          navigate(PATH_DASHBOARD.suivi.examens);\r\n        })\r\n      );\r\n    } else {\r\n      setActiveStep(activeStep + 1);\r\n      actions.setTouched({});\r\n      actions.setSubmitting(false);\r\n    }\r\n  };\r\n\r\n  //Attendre le chargement\r\n  if (examen.etatInscription === '') return <Card></Card>;\r\n\r\n  const isSendAction = isLastStep && ['PRE', 'INC'].includes(examen.etatInscription);\r\n\r\n  return (\r\n    <Card>\r\n      <Box sx={{ p: 4 }}>\r\n        <Stepper activeStep={activeStep} alternativeLabel>\r\n          {steps.map((item) => (\r\n            <Step key={item.label}>\r\n              <StepLabel>{item.label}</StepLabel>\r\n            </Step>\r\n          ))}\r\n        </Stepper>\r\n        {errorForm && <Alert severity=\"error\">{errorForm}</Alert>}\r\n      </Box>\r\n\r\n      {activeStep === steps.length ? (\r\n        <></>\r\n      ) : (\r\n        <Formik\r\n          initialValues={examen}\r\n          validationSchema={currentValidationSchema}\r\n          onSubmit={handleSubmit}\r\n        >\r\n          {(props: any) => {\r\n            const { values, errors } = props;\r\n\r\n            const dateDebutEpreuve =\r\n              values?.session?.dateEpreuvesPreAdmissibilite ||\r\n              values?.session?.dateEpreuvesAdmission ||\r\n              values?.session?.dateEpreuvesSportives ||\r\n              values?.session?.dateEpreuvesAdmissibilite;\r\n\r\n            return (\r\n              <Box sx={{ p: 2 }}>\r\n                <Form>\r\n                  {steps[activeStep].component(dateDebutEpreuve || '')}\r\n\r\n                  <CardActions\r\n                    sx={{\r\n                      alignItems: 'baseline',\r\n                      justifyContent: 'space-between',\r\n                      pr: 3,\r\n                      pl: 3,\r\n                      pt: 6\r\n                    }}\r\n                  >\r\n                    {onCancel && <Button onClick={onCancel}>Annuler</Button>}\r\n                    <Stack direction=\"row\" gap=\"10px\">\r\n                      {activeStep !== 0 && (\r\n                        <Button onClick={handleBack} variant=\"outlined\">\r\n                          Précédent\r\n                        </Button>\r\n                      )}\r\n\r\n                      <LoadingButton\r\n                        loading={isLoadingForm}\r\n                        type=\"submit\"\r\n                        variant=\"contained\"\r\n                        color=\"primary\"\r\n                      >\r\n                        {isStopAndSaveStep(values) ? 'Sauvegarder' : 'Suivant'}\r\n                      </LoadingButton>\r\n                    </Stack>\r\n                    {isSendAction && (\r\n                      <LoadingButton\r\n                        type=\"submit\"\r\n                        disabled={!values?.session?.isSended}\r\n                        variant=\"contained\"\r\n                        color=\"primary\"\r\n                        loading={isLoadingForm}\r\n                      >\r\n                        Transmettre à l'école\r\n                      </LoadingButton>\r\n                    )}\r\n                  </CardActions>\r\n                </Form>\r\n              </Box>\r\n            );\r\n          }}\r\n        </Formik>\r\n      )}\r\n    </Card>\r\n  );\r\n}\r\n\r\n/**\r\n *\r\n */\r\n","import { alpha, styled } from '@mui/material/styles';\r\nimport { Box, Typography, IconButton, CardHeader, Stack, CircularProgress } from '@mui/material';\r\nimport { DeleteOutlined } from '@mui/icons-material';\r\nimport { ReactNode, useState } from 'react';\r\nimport { Tooltip } from '@mui/material';\r\n\r\nconst FileNameStyle = styled(Typography)(({ theme }) => ({\r\n  whiteSpace: 'nowrap',\r\n  overflow: 'hidden',\r\n  textOverflow: 'ellipsis',\r\n  maxWidth: '170px',\r\n  display: 'block'\r\n}));\r\n\r\n/**\r\n Affichage fichier \r\n * @param param0 \r\n * @returns \r\n */\r\nexport default function FileCard({\r\n  id,\r\n  size,\r\n  name,\r\n  actionFile,\r\n  onDelete\r\n}: {\r\n  id: number;\r\n  size: string;\r\n  name: string;\r\n  actionFile: ReactNode;\r\n  onDelete?: (id: number) => void;\r\n}) {\r\n  const [isDeleting, setIsDeleting] = useState(false);\r\n\r\n  // Suppression\r\n  // NB : Rend le bouton de suppression inaccessible quelques secondes\r\n  //      pour éviter que l'élève n'envoie plusieurs demandes de suppression à la suite sur le même fichier.\r\n  const handleDelete = (id: number) => {\r\n    if (onDelete) {\r\n      setIsDeleting(true);\r\n\r\n      onDelete(id);\r\n\r\n      setTimeout(() => {\r\n        setIsDeleting(false);\r\n      }, 10000);\r\n    }\r\n  };\r\n\r\n  return (\r\n    <Box sx={{ m: 1 }}>\r\n      <Stack direction={'row'} gap=\"5px\" justifyContent={'space-between'} alignItems=\"center\">\r\n        <CardHeader\r\n          disableTypography={true}\r\n          avatar={actionFile}\r\n          title={\r\n            <Tooltip title={name}>\r\n              <FileNameStyle variant=\"body2\" noWrap>\r\n                {name}\r\n              </FileNameStyle>\r\n            </Tooltip>\r\n          }\r\n          subheader={<Typography variant=\"caption\">{size}</Typography>}\r\n          sx={{ p: 0, '.MuiCardHeader-avatar': { mr: 2 } }}\r\n        />\r\n\r\n        {onDelete && !isDeleting && (\r\n          <IconButton sx={{ borderRadius: 0 }} aria-label=\"delete\" onClick={() => handleDelete(id)}>\r\n            <DeleteOutlined />\r\n          </IconButton>\r\n        )}\r\n\r\n        {isDeleting && <CircularProgress color=\"primary\" size={24} />}\r\n      </Stack>\r\n    </Box>\r\n  );\r\n}\r\n","import { getFileThumb } from '../../utils/getFileFormat';\r\nimport { FileBaseInfo, FileType } from '../../@types/common';\r\nimport { MediaFileInfo, MediaFileType } from '../../@types/media';\r\nimport FileAction from './FileAction';\r\nimport { MediaFileAvatar } from 'components/_dashboard/media/MediaFileAvatar';\r\nimport FileCard from './FileCard';\r\nimport FileThumb from './FileThumb';\r\nimport MediaFileCard from 'components/_dashboard/media/MediaFileCard';\r\n\r\ntype FileAttachmentProps = {\r\n  file: FileBaseInfo;\r\n  onDelete?: (id: number) => void;\r\n};\r\n\r\n/**\r\n Affichage fichier \r\n * @param param0 \r\n * @returns \r\n */\r\nexport default function FileAttachment({ file, onDelete }: FileAttachmentProps) {\r\n  let fileName =\r\n    file.fileType === FileType.Media ? (file.metadatas as MediaFileInfo).fileName : file.fileName;\r\n\r\n  const getIcon = () => {\r\n    if (file.fileType === FileType.Media)\r\n      return (\r\n        <MediaFileAvatar\r\n          isRead={(file.metadatas as MediaFileInfo).read}\r\n          type={(file.metadatas as MediaFileInfo).typFicMed}\r\n        />\r\n      );\r\n\r\n    return getFileThumb(fileName);\r\n  };\r\n\r\n  const getFileNameDisk = () => {\r\n    if (file.fileType === FileType.CorrectionType) return file.fileName;\r\n    if (file.fileType === FileType.Examen) return file.metadatas.url;\r\n    if (file.fileType === FileType.Homework) return file.metadatas.token.fileNameS3;\r\n    return '';\r\n  };\r\n\r\n  if (\r\n    file.fileType === FileType.Media &&\r\n    [MediaFileType.Audio, MediaFileType.Videos].includes(\r\n      (file.metadatas as MediaFileInfo).typFicMed\r\n    )\r\n  ) {\r\n    let mediaCurrent = {\r\n      category: { label: '' },\r\n      read: false,\r\n      title: file.fileName,\r\n      fileType: FileType.Media,\r\n      fileName: fileName,\r\n      size: file.size,\r\n      url: (file.metadatas as MediaFileInfo).url,\r\n      typFicMed: (file.metadatas as MediaFileInfo).typFicMed,\r\n      id: 0,\r\n      observation: '',\r\n      references: [],\r\n      isS3: file.isS3,\r\n      token: { fileName: '', brandId: '', fileNameS3: '' },\r\n      referentiel: false\r\n    };\r\n\r\n    return <MediaFileCard mediaFile={mediaCurrent as MediaFileInfo} />;\r\n  }\r\n\r\n  return (\r\n    <FileCard\r\n      name={file.fileType === FileType.CorrectionType ? 'Corrigé type' : file.fileName}\r\n      size={file.size}\r\n      id={file.id}\r\n      onDelete={onDelete}\r\n      actionFile={\r\n        <FileAction>\r\n          {(\r\n            download,\r\n            getFile,\r\n            downloadImage,\r\n            isLoading,\r\n            errorDownload,\r\n            downloadUrl,\r\n            downloadS3\r\n          ) => (\r\n            <>\r\n              {file.url !== null && file.url !== undefined && file.url !== '' ? (\r\n                <FileThumb\r\n                  isLoading={isLoading}\r\n                  isRead={false}\r\n                  onClick={() =>\r\n                    file.isS3\r\n                      ? downloadS3(file.url!, fileName, file.fileType, file.id)\r\n                      : downloadUrl(file.url!, fileName, file.isS3)\r\n                  }\r\n                  iconFile={getIcon()}\r\n                />\r\n              ) : (\r\n                <FileThumb\r\n                  isLoading={isLoading}\r\n                  isRead={false}\r\n                  onClick={() =>\r\n                    file.isS3\r\n                      ? downloadS3(getFileNameDisk(), file.fileName, file.fileType, file.id)\r\n                      : download(file.id, file.fileType, getFileNameDisk(), file.fileName)\r\n                  }\r\n                  iconFile={getIcon()}\r\n                />\r\n              )}\r\n            </>\r\n          )}\r\n        </FileAction>\r\n      }\r\n    />\r\n  );\r\n}\r\n","// utils\r\nimport axiosInstance from '../utils/axios';\r\nimport useHubConnection from './useHubConnection';\r\n\r\nexport default function useWorkshop() {\r\n  const { onError } = useHubConnection();\r\n\r\n  const loadUrl = (url: string, fileName: string) => {\r\n    const link = document.createElement('a');\r\n    link.href = url;\r\n    link.target = '_blank';\r\n    link.download = fileName;\r\n    document.body.appendChild(link);\r\n    link.click();\r\n    link.remove();\r\n  };\r\n\r\n  const getWorkshopSummons = async (sessionId: string) => {\r\n    try {\r\n      let response = await axiosInstance.get<any>(`/api/workshop/summons/${sessionId}`, {\r\n        responseType: 'blob',\r\n        timeout: 60000,\r\n        headers: {\r\n          Accept: 'application/octet-stream'\r\n        }\r\n      });\r\n\r\n      if (response?.data) {\r\n        const contentDisposition = response?.headers['content-disposition'];\r\n        let _filename: string = '';\r\n\r\n        if (contentDisposition)\r\n          _filename = contentDisposition.match(/filename=(?<filename>[^,;]+);/)[1];\r\n\r\n        var blobURL = window.URL.createObjectURL(response.data);\r\n        return loadUrl(blobURL, _filename);\r\n      }\r\n    } catch (ex) {\r\n      onError('Convocation introuvable', '');\r\n    }\r\n  };\r\n\r\n  return { getWorkshopSummons };\r\n}\r\n","import { Button } from '@mui/material';\r\nimport useWorkshop from 'hooks/useWorkshop';\r\nimport { Seminar } from '../../../@types/seminar';\r\n\r\ntype WorkshopAgreementProps = {\r\n  workshop: Seminar;\r\n};\r\n\r\nexport default function WorkshopSummons({ workshop }: WorkshopAgreementProps) {\r\n  const { getWorkshopSummons } = useWorkshop();\r\n\r\n  const clickHandler = () => {\r\n    getWorkshopSummons(workshop.id);\r\n  };\r\n\r\n  return (\r\n    <>\r\n      {workshop?.registered && (\r\n        <Button variant=\"contained\" onClick={clickHandler}>\r\n          Convocation\r\n        </Button>\r\n      )}\r\n    </>\r\n  );\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nexport const varWrapEnter = {\r\n  animate: {\r\n    transition: { staggerChildren: 0.1 }\r\n  }\r\n};\r\n\r\nexport const varWrapExit = {\r\n  exit: {\r\n    transition: { staggerChildren: 0.1 }\r\n  }\r\n};\r\n\r\nexport const varWrapBoth = {\r\n  animate: {\r\n    transition: { staggerChildren: 0.07, delayChildren: 0.1 }\r\n  },\r\n  exit: {\r\n    transition: { staggerChildren: 0.05, staggerDirection: -1 }\r\n  }\r\n};\r\n","// ----------------------------------------------------------------------\r\n\r\nexport const varHover = {\r\n  hover: { scale: 1.1 }\r\n};\r\n\r\nexport const varSmallClick = {\r\n  hover: { scale: 1.04 },\r\n  tap: { scale: 0.96 }\r\n};\r\n\r\nexport const varMediumClick = {\r\n  hover: { scale: 1.1 },\r\n  tap: { scale: 0.9 }\r\n};\r\n","// ----------------------------------------------------------------------\r\n\r\nconst TRANSITION = {\r\n  duration: 4,\r\n  ease: 'linear'\r\n};\r\n\r\nconst gradient = (deg: number) => `linear-gradient(${deg}deg, #ee7752, #e73c7e, #23a6d5, #23d5ab)`;\r\n\r\nexport const varPanTop = {\r\n  animate: {\r\n    backgroundImage: [gradient(0), gradient(0)],\r\n    backgroundPosition: ['center 99%', 'center 1%'],\r\n    backgroundSize: ['100% 600%', '100% 600%'],\r\n    transition: TRANSITION\r\n  }\r\n};\r\n\r\nexport const varPanBottom = {\r\n  animate: {\r\n    backgroundImage: [gradient(0), gradient(0)],\r\n    backgroundPosition: ['center 1%', 'center 99%'],\r\n    backgroundSize: ['100% 600%', '100% 600%'],\r\n    transition: TRANSITION\r\n  }\r\n};\r\n\r\nexport const varPanLeft = {\r\n  animate: {\r\n    backgroundPosition: ['99% center', '1% center'],\r\n    backgroundImage: [gradient(270), gradient(270)],\r\n    backgroundSize: ['600% 100%', '600% 100%'],\r\n    transition: TRANSITION\r\n  }\r\n};\r\n\r\nexport const varPanRight = {\r\n  animate: {\r\n    backgroundPosition: ['1% center', '99% center'],\r\n    backgroundImage: [gradient(270), gradient(270)],\r\n    backgroundSize: ['600% 100%', '600% 100%'],\r\n    transition: TRANSITION\r\n  }\r\n};\r\n","// ----------------------------------------------------------------------\r\n\r\nconst DISTANCE = 120;\r\n\r\nconst TRANSITION_ENTER = {\r\n  duration: 0.64,\r\n  ease: [0.43, 0.13, 0.23, 0.96]\r\n};\r\nconst TRANSITION_EXIT = {\r\n  duration: 0.48,\r\n  ease: [0.43, 0.13, 0.23, 0.96]\r\n};\r\n\r\nexport const varFadeIn = {\r\n  initial: { opacity: 0 },\r\n  animate: { opacity: 1, transition: TRANSITION_ENTER },\r\n  exit: { opacity: 0, transition: TRANSITION_EXIT }\r\n};\r\n\r\nexport const varFadeInUp = {\r\n  initial: { y: DISTANCE, opacity: 0 },\r\n  animate: { y: 0, opacity: 1, transition: TRANSITION_ENTER },\r\n  exit: { y: DISTANCE, opacity: 0, transition: TRANSITION_EXIT }\r\n};\r\n\r\nexport const varFadeInLeft = {\r\n  initial: { x: -DISTANCE, opacity: 0 },\r\n  animate: { x: 0, opacity: 1, transition: TRANSITION_ENTER },\r\n  exit: { x: -DISTANCE, opacity: 0, transition: TRANSITION_EXIT }\r\n};\r\n\r\nexport const varFadeInDown = {\r\n  initial: { y: -DISTANCE, opacity: 0 },\r\n  animate: { y: 0, opacity: 1, transition: TRANSITION_ENTER },\r\n  exit: { y: -DISTANCE, opacity: 0, transition: TRANSITION_EXIT }\r\n};\r\n\r\nexport const varFadeInRight = {\r\n  initial: { x: DISTANCE, opacity: 0 },\r\n  animate: { x: 0, opacity: 1, transition: TRANSITION_ENTER },\r\n  exit: { x: DISTANCE, opacity: 0, transition: TRANSITION_EXIT }\r\n};\r\n","// ----------------------------------------------------------------------\r\n\r\nconst DISTANCE = 720;\r\nconst IN = { scale: 1, opacity: 1 };\r\nconst OUT = { scale: 0, opacity: 0 };\r\n\r\nconst TRANSITION_ENTER = {\r\n  duration: 0.64,\r\n  ease: [0.43, 0.13, 0.23, 0.96]\r\n};\r\n\r\nconst TRANSITION_EXIT = {\r\n  duration: 0.48,\r\n  ease: [0.43, 0.13, 0.23, 0.96]\r\n};\r\n\r\nexport const varZoomIn = {\r\n  initial: OUT,\r\n  animate: { ...IN, transition: TRANSITION_ENTER },\r\n  exit: { ...OUT, transition: TRANSITION_EXIT }\r\n};\r\n\r\nexport const varZoomInUp = {\r\n  initial: { ...OUT, translateY: DISTANCE },\r\n  animate: { ...IN, translateY: 0, transition: TRANSITION_ENTER },\r\n  exit: { ...OUT, translateY: DISTANCE, transition: TRANSITION_EXIT }\r\n};\r\n\r\nexport const varZoomInDown = {\r\n  initial: { ...OUT, translateY: -DISTANCE },\r\n  animate: { ...IN, translateY: 0, transition: TRANSITION_ENTER },\r\n  exit: { ...OUT, translateY: -DISTANCE, transition: TRANSITION_EXIT }\r\n};\r\n\r\nexport const varZoomInLeft = {\r\n  initial: { ...OUT, translateX: -DISTANCE },\r\n  animate: { ...IN, translateX: 0, transition: TRANSITION_ENTER },\r\n  exit: { ...OUT, translateX: -DISTANCE, transition: TRANSITION_EXIT }\r\n};\r\n\r\nexport const varZoomInRight = {\r\n  initial: { ...OUT, translateX: DISTANCE },\r\n  animate: { ...IN, translateX: 0, transition: TRANSITION_ENTER },\r\n  exit: { ...OUT, translateX: DISTANCE, transition: TRANSITION_EXIT }\r\n};\r\n","// ----------------------------------------------------------------------\r\n\r\nconst DISTANCE = 720;\r\nconst IN = { scale: 1, opacity: 1 };\r\nconst OUT = { scale: 0, opacity: 0 };\r\n\r\nconst TRANSITION_ENTER = {\r\n  duration: 0.64,\r\n  ease: [0.43, 0.13, 0.23, 0.96]\r\n};\r\n\r\nexport const varZoomOut = {\r\n  initial: { scale: 1 },\r\n  animate: { scale: 0, transition: TRANSITION_ENTER }\r\n};\r\n\r\nexport const varZoomOutUp = {\r\n  initial: IN,\r\n  animate: { ...OUT, translateY: -DISTANCE, transition: TRANSITION_ENTER }\r\n};\r\n\r\nexport const varZoomOutDown = {\r\n  initial: IN,\r\n  animate: { ...OUT, translateY: DISTANCE, transition: TRANSITION_ENTER }\r\n};\r\n\r\nexport const varZoomOutLeft = {\r\n  initial: IN,\r\n  animate: { ...OUT, translateX: -DISTANCE, transition: TRANSITION_ENTER }\r\n};\r\n\r\nexport const varZoomOutRight = {\r\n  initial: IN,\r\n  animate: { ...OUT, translateX: DISTANCE, transition: TRANSITION_ENTER }\r\n};\r\n","import {\r\n  varBounceOut,\r\n  varBounceOutUp,\r\n  varBounceOutDown,\r\n  varBounceOutLeft,\r\n  varBounceOutRight\r\n} from './BounceOut';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst TRANSITION_ENTER = {\r\n  duration: 0.72,\r\n  ease: [0.43, 0.13, 0.23, 0.96]\r\n};\r\n\r\nconst TRANSITION_EXIT = {\r\n  duration: 0.48,\r\n  ease: [0.43, 0.13, 0.23, 0.96]\r\n};\r\n\r\nexport const varBounceIn = {\r\n  animate: {\r\n    scale: [0.3, 1.1, 0.9, 1.03, 0.97, 1],\r\n    opacity: [0, 1, 1, 1, 1, 1],\r\n    transition: TRANSITION_ENTER\r\n  },\r\n  exit: varBounceOut.animate\r\n};\r\n\r\nexport const varBounceInUp = {\r\n  animate: {\r\n    y: [720, -24, 12, -4, 0],\r\n    scaleY: [4, 0.9, 0.95, 0.985, 1],\r\n    opacity: [0, 1, 1, 1, 1],\r\n    transition: { ...TRANSITION_ENTER }\r\n  },\r\n  exit: { ...varBounceOutDown.animate, transition: TRANSITION_EXIT }\r\n};\r\n\r\nexport const varBounceInDown = {\r\n  animate: {\r\n    y: [-720, 24, -12, 4, 0],\r\n    scaleY: [4, 0.9, 0.95, 0.985, 1],\r\n    opacity: [0, 1, 1, 1, 1],\r\n    transition: TRANSITION_ENTER\r\n  },\r\n  exit: { ...varBounceOutUp.animate, transition: TRANSITION_EXIT }\r\n};\r\n\r\nexport const varBounceInLeft = {\r\n  animate: {\r\n    x: [-720, 24, -12, 4, 0],\r\n    scaleX: [3, 1, 0.98, 0.995, 1],\r\n    opacity: [0, 1, 1, 1, 1],\r\n    transition: TRANSITION_ENTER\r\n  },\r\n  exit: { ...varBounceOutLeft.animate, transition: TRANSITION_EXIT }\r\n};\r\n\r\nexport const varBounceInRight = {\r\n  animate: {\r\n    x: [720, -24, 12, -4, 0],\r\n    scaleX: [3, 1, 0.98, 0.995, 1],\r\n    opacity: [0, 1, 1, 1, 1],\r\n    transition: TRANSITION_ENTER\r\n  },\r\n  exit: { ...varBounceOutRight.animate, transition: TRANSITION_EXIT }\r\n};\r\n","// ----------------------------------------------------------------------\r\n\r\nexport const varBounceOut = {\r\n  animate: {\r\n    scale: [0.9, 1.1, 0.3],\r\n    opacity: [1, 1, 0]\r\n  }\r\n};\r\n\r\nexport const varBounceOutUp = {\r\n  animate: {\r\n    y: [-12, 24, -720],\r\n    scaleY: [0.985, 0.9, 3],\r\n    opacity: [1, 1, 0]\r\n  }\r\n};\r\n\r\nexport const varBounceOutDown = {\r\n  animate: {\r\n    y: [12, -24, 720],\r\n    scaleY: [0.985, 0.9, 3],\r\n    opacity: [1, 1, 0]\r\n  }\r\n};\r\n\r\nexport const varBounceOutLeft = {\r\n  animate: {\r\n    x: [0, 24, -720],\r\n    scaleX: [1, 0.9, 2],\r\n    opacity: [1, 1, 0]\r\n  }\r\n};\r\n\r\nexport const varBounceOutRight = {\r\n  animate: {\r\n    x: [0, -24, 720],\r\n    scaleX: [1, 0.9, 2],\r\n    opacity: [1, 1, 0]\r\n  }\r\n};\r\n","import { useEffect } from 'react';\r\nimport { motion, useAnimation, MotionProps } from 'framer-motion';\r\nimport { useInView } from 'react-intersection-observer';\r\n// material\r\nimport { Box, BoxProps } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ntype Props = BoxProps & MotionProps;\r\n\r\ninterface MotionInViewProps extends Props {\r\n  threshold?: number | number[];\r\n}\r\n\r\nexport default function MotionInView({\r\n  children,\r\n  variants,\r\n  transition,\r\n  threshold,\r\n  ...other\r\n}: MotionInViewProps) {\r\n  const controls = useAnimation();\r\n  const [ref, inView] = useInView({\r\n    threshold: threshold || 0,\r\n    triggerOnce: true\r\n  });\r\n\r\n  useEffect(() => {\r\n    if (!variants) return;\r\n    if (inView) {\r\n      controls.start(Object.keys(variants)[1]);\r\n    } else {\r\n      controls.start(Object.keys(variants)[0]);\r\n    }\r\n  }, [controls, inView, variants]);\r\n\r\n  return (\r\n    <Box\r\n      ref={ref}\r\n      component={motion.div}\r\n      initial={variants ? Object.keys(variants)[0] : false}\r\n      animate={controls}\r\n      variants={variants}\r\n      transition={transition}\r\n      {...other}\r\n    >\r\n      {children}\r\n    </Box>\r\n  );\r\n}\r\n","import { motion } from 'framer-motion';\r\n// material\r\nimport { Box, BoxProps } from '@mui/material';\r\n//\r\nimport { varWrapEnter } from './variants';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface MotionContainerProps extends BoxProps {\r\n  initial?: boolean | string;\r\n  open?: boolean;\r\n}\r\n\r\nexport default function MotionContainer({ open, children, ...other }: MotionContainerProps) {\r\n  return (\r\n    <Box\r\n      component={motion.div}\r\n      initial={false}\r\n      animate={open ? 'animate' : 'exit'}\r\n      variants={varWrapEnter}\r\n      {...other}\r\n    >\r\n      {children}\r\n    </Box>\r\n  );\r\n}\r\n","import { motion, AnimatePresence } from 'framer-motion';\r\n// material\r\nimport { Dialog, Box, Paper, DialogProps } from '@mui/material';\r\n//\r\nimport { varFadeInUp } from './variants';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface DialogAnimateProps extends DialogProps {\r\n  animate?: object;\r\n  onClose?: VoidFunction;\r\n}\r\n\r\nexport default function DialogAnimate({\r\n  open = false,\r\n  animate,\r\n  onClose,\r\n  children,\r\n  ...other\r\n}: DialogAnimateProps) {\r\n  return (\r\n    <AnimatePresence>\r\n      {open && (\r\n        <Dialog\r\n          fullWidth\r\n          maxWidth=\"xs\"\r\n          open={open}\r\n          onClose={onClose}\r\n          PaperComponent={(props) => (\r\n            <Box\r\n              component={motion.div}\r\n              {...(animate || varFadeInUp)}\r\n              sx={{\r\n                width: '100%',\r\n                height: '100%',\r\n                display: 'flex',\r\n                alignItems: 'center',\r\n                justifyContent: 'center'\r\n              }}\r\n            >\r\n              <Box onClick={onClose} sx={{ width: '100%', height: '100%', position: 'fixed' }} />\r\n              <Paper {...props}>{props.children}</Paper>\r\n            </Box>\r\n          )}\r\n          {...other}\r\n        >\r\n          {children}\r\n        </Dialog>\r\n      )}\r\n    </AnimatePresence>\r\n  );\r\n}\r\n","import { motion } from 'framer-motion';\r\n// material\r\nimport { Box, BoxProps } from '@mui/material';\r\n//\r\nimport { varSmallClick, varMediumClick } from './variants';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface ButtonAnimateProps extends BoxProps {\r\n  mediumClick?: boolean;\r\n}\r\n\r\nexport default function ButtonAnimate({\r\n  mediumClick = false,\r\n  children,\r\n  sx,\r\n  ...other\r\n}: ButtonAnimateProps) {\r\n  return (\r\n    <Box\r\n      component={motion.div}\r\n      whileTap=\"tap\"\r\n      whileHover=\"hover\"\r\n      variants={mediumClick ? varMediumClick : varSmallClick}\r\n      sx={{ display: 'inline-flex', ...sx }}\r\n      {...other}\r\n    >\r\n      {children}\r\n    </Box>\r\n  );\r\n}\r\n","import { useContext, useEffect, useState } from 'react';\r\n\r\n//Type\r\nimport {\r\n  Homework,\r\n  HomeworkBase,\r\n  StudyPlanChapter,\r\n  StudyPlanItem,\r\n  StudyPlanItemHomework,\r\n  StudyPlanItemLearning,\r\n  StudyPlanItemMedia,\r\n  StudyPlanItemProgressRequest,\r\n  StudyPlanItemStatus,\r\n  StudyPlanItemType,\r\n  StudyPlanMarker,\r\n  StudyPlanMove,\r\n  StudyPlanPhase,\r\n  StudyPlanSearch,\r\n  StudyPlanView\r\n} from '../@types/pedagogy';\r\nimport { ModeAccess } from '../@types/account';\r\n//\r\nimport * as helperStudyPlan from 'utils/helperStudyPlan';\r\n\r\nimport { StudyPlanContext } from 'contexts/StudyPlanContext';\r\nimport { fDate } from 'utils/formatTime';\r\nimport useAuth from './useAuth';\r\nimport useLocalStorage from './useLocalStorage';\r\nimport { RowItem } from 'components/RowListItem';\r\nimport { removeAccents } from 'utils/helper';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport type homeworkState = {\r\n  item: StudyPlanItemHomework;\r\n};\r\n\r\nconst useStudyPlan = () => {\r\n  const studyPlanManager = useContext(StudyPlanContext);\r\n  const { student, getContractCurrent, isReadOnly } = useAuth();\r\n\r\n  /**\r\n   * Rechercher un item via son code ou son nom\r\n   */\r\n  const search = (searchString: string, itemType?: StudyPlanItemType[]): Array<StudyPlanSearch> => {\r\n    let list: Array<StudyPlanSearch> = [];\r\n\r\n    studyPlanManager?.phases?.map((phase: StudyPlanPhase) =>\r\n      phase.chapters.map((chapter: StudyPlanChapter) => {\r\n        helperStudyPlan.extractItem(\r\n          chapter,\r\n          removeAccents(searchString.trim()),\r\n          list,\r\n          null,\r\n          itemType\r\n        );\r\n      })\r\n    );\r\n    return list;\r\n  };\r\n\r\n  function setScore(score: number) {\r\n    let item = studyPlanManager?.item!;\r\n\r\n    switch (item.type) {\r\n      case StudyPlanItemType.Elearning:\r\n        (item! as StudyPlanItemLearning).elearning.score = score;\r\n        break;\r\n    }\r\n    item!.status = StudyPlanItemStatus.Assimilate;\r\n    studyPlanManager?.selectItem(\r\n      studyPlanManager?.chapter!,\r\n      studyPlanManager?.item!,\r\n      true,\r\n      studyPlanManager?.subChapter\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Désactiver le plagiat sur le devoir\r\n   */\r\n  function removePlagiat() {\r\n    let item = studyPlanManager?.item!;\r\n    item.dateStatus = fDate(new Date());\r\n\r\n    studyPlanManager?.selectItem(\r\n      studyPlanManager?.chapter!,\r\n      studyPlanManager?.item!,\r\n      true,\r\n      studyPlanManager?.subChapter\r\n    );\r\n  }\r\n\r\n  const resetState = () => {\r\n    studyPlanManager?.resetState();\r\n  };\r\n\r\n  return {\r\n    phases: studyPlanManager?.phases || [],\r\n    chapterItemUpdatedList: studyPlanManager?.chapterItemUpdatedList || [],\r\n    search,\r\n    skills: studyPlanManager?.skills || [],\r\n    updated: studyPlanManager?.updated,\r\n    removePlagiat,\r\n    resetState,\r\n    isLoading: studyPlanManager?.isLoading,\r\n    error: studyPlanManager?.error,\r\n    currentSendingPhase: studyPlanManager?.currentSendingPhase,\r\n    progressionGeneral: studyPlanManager?.progression,\r\n    getImageOfCourse: studyPlanManager?.getImageOfCourse!,\r\n    context: studyPlanManager?.context,\r\n    refresh: (view: StudyPlanView) =>\r\n      studyPlanManager?.initialize(\r\n        view,\r\n        student?.modeAccess || ModeAccess.Read,\r\n        getContractCurrent().constrainedCourse\r\n      ),\r\n    internshipsOfSupport: studyPlanManager?.internshipsOfSupport || [],\r\n    isReadOnly,\r\n    setScore\r\n  };\r\n};\r\n\r\nexport default useStudyPlan;\r\n","import { Component, ReactNode } from 'react';\r\nimport { Container, Alert, AlertTitle } from '@mui/material';\r\nimport useAuth from './useAuth';\r\n\r\nimport { ModuleType } from '../@types/contract';\r\nimport { useNavigate } from 'react-router';\r\n\r\n// ----------------------------------------------------------------------\r\ntype useModuleAuthorizeProp = {\r\n  accessibleModules: Array<ModuleType>;\r\n};\r\n\r\nexport default function useModuleAuthorize({ accessibleModules }: useModuleAuthorizeProp) {\r\n  const { getContractCurrent, student } = useAuth();\r\n\r\n  const modulesCurrent = getContractCurrent()?.moduleList;\r\n\r\n  return {\r\n    authorizedModule: accessibleModules.some((am) => modulesCurrent.includes(am)),\r\n    student,\r\n    getContractCurrent\r\n  };\r\n}\r\n","import { Link as RouterLink, useNavigate } from 'react-router-dom';\r\nimport { styled } from '@mui/material/styles';\r\n// material\r\nimport { Box, Button, Typography, Container } from '@mui/material';\r\n// components\r\nimport Page from '../components/Page';\r\nimport { SeverErrorIllustration } from '../assets';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst RootStyle = styled(Page)(({ theme }) => ({\r\n  display: 'flex',\r\n  minHeight: '100%',\r\n  alignItems: 'center',\r\n  paddingTop: theme.spacing(15),\r\n  paddingBottom: theme.spacing(10)\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Page500({ error }: { error: any }) {\r\n  const navigation = useNavigate();\r\n\r\n  const handleDashbord = () => {\r\n    navigation(PATH_DASHBOARD.root);\r\n    window.location.reload();\r\n  };\r\n\r\n  return (\r\n    <RootStyle title=\"500 Internal Server Error | SkillAndYou\">\r\n      <Container>\r\n        <Box sx={{ maxWidth: 480, margin: 'auto', textAlign: 'center' }}>\r\n          <Typography variant=\"h3\" paragraph>\r\n            Désolé, ce n'est pas vous, c'est moi.\r\n          </Typography>\r\n          <Typography sx={{ color: 'text.secondary' }}>\r\n            Laissez-moi essayer à nouveau. Je vais tout réparer. Je reviens vite !\r\n          </Typography>\r\n\r\n          <SeverErrorIllustration sx={{ height: 260, my: { xs: 5, sm: 10 } }} />\r\n\r\n          <Button onClick={handleDashbord} size=\"large\" variant=\"contained\">\r\n            Retour au tableau de bord\r\n          </Button>\r\n        </Box>\r\n      </Container>\r\n    </RootStyle>\r\n  );\r\n}\r\n","import { createSlice } from '@reduxjs/toolkit';\r\n\r\n// @types\r\nimport { Survey } from '../../@types/contract';\r\nimport axiosInstance from 'utils/axios';\r\nimport { SurveyRequest } from '../../@types/survey';\r\nimport { dispatch } from 'redux/store';\r\n\r\n// ----------------------------------------------------------------------\r\nexport type SurveyState = {\r\n  surveys: Array<Survey>;\r\n  survey: Survey | null;\r\n  surveyStandard: Survey | null;\r\n  isOpenModal: boolean;\r\n};\r\n\r\nconst initialState: SurveyState = {\r\n  surveys: [],\r\n  survey: null,\r\n  surveyStandard: null,\r\n  isOpenModal: false\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'survey',\r\n  initialState,\r\n  reducers: {\r\n    // GET POSTS\r\n    setSurveys(state, action) {\r\n      state.surveys = [...state.surveys, ...action.payload];\r\n    },\r\n\r\n    removeSurvey(state, action) {\r\n      const { id, keyApp, keyId } = action.payload;\r\n      const tmpSurveys = state.surveys.slice();\r\n\r\n      state.surveys = tmpSurveys.filter(\r\n        (s) => !(s.id === id && s.keyApp === keyApp && s.keyId === keyId)\r\n      );\r\n\r\n      if (\r\n        state.survey &&\r\n        state.survey.id === id &&\r\n        state.survey.keyApp === keyApp &&\r\n        state.survey.keyId === keyId\r\n      ) {\r\n        state.survey = null;\r\n        state.isOpenModal = false;\r\n      }\r\n    },\r\n\r\n    setLastSurvey(state, action) {\r\n      state.survey = action.payload;\r\n    },\r\n    selectSurveyStandard(state, action) {\r\n      state.surveyStandard = action.payload;\r\n      state.isOpenModal = true;\r\n    },\r\n    addSurvey(state, action) {\r\n      const { keyId, keyApp } = action.payload;\r\n      if (!state.surveys.some((k) => k.keyId === keyId && k.keyApp === keyApp)) {\r\n        state.surveys = [...state.surveys, action.payload];\r\n      }\r\n    },\r\n    closeModal(state) {\r\n      state.isOpenModal = false;\r\n      state.surveyStandard = null;\r\n      state.survey = null;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nexport const {\r\n  removeSurvey,\r\n  setSurveys,\r\n  setLastSurvey,\r\n  addSurvey,\r\n  selectSurveyStandard,\r\n  closeModal\r\n} = slice.actions;\r\n\r\n/**\r\n * Masquer\r\n */\r\nexport const maskSurvey = (request: SurveyRequest) => {\r\n  return async () => {\r\n    try {\r\n      const response = await axiosInstance.post<boolean>(`/api/survey/mask`, request);\r\n      if (response.data) {\r\n        dispatch(\r\n          removeSurvey({ id: request.lisQue, keyApp: request.typApp, keyId: request.appId })\r\n        );\r\n      }\r\n    } catch (error) {}\r\n  };\r\n};\r\n\r\nexport const createSurveyVirtuelle = (id: number, mandatory: boolean) => {\r\n  return {\r\n    keyApp: 'ClaVir',\r\n    keyId: id.toString(),\r\n    id: 433,\r\n    url: '',\r\n    label: '',\r\n    created: '',\r\n    observation: '',\r\n    mandatory: mandatory\r\n  } as Survey;\r\n};\r\n","import * as Yup from 'yup';\r\nimport { useState, useEffect } from 'react';\r\nimport { useSnackbar } from 'notistack';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport { useFormik, Form, FormikProvider } from 'formik';\r\nimport { Icon } from '@iconify/react';\r\nimport eyeFill from '@iconify/icons-eva/eye-fill';\r\n\r\nimport eyeOffFill from '@iconify/icons-eva/eye-off-fill';\r\n// material\r\nimport {\r\n  Link,\r\n  Stack,\r\n  Alert,\r\n  Checkbox,\r\n  TextField,\r\n  IconButton,\r\n  InputAdornment,\r\n  FormControlLabel,\r\n  Popover,\r\n  Typography\r\n} from '@mui/material';\r\nimport { LoadingButton } from '@mui/lab';\r\n// routes\r\nimport { PATH_AUTH } from '../../../routes/paths';\r\n// hooks\r\nimport useAuth from '../../../hooks/useAuth';\r\nimport useIsMountedRef from '../../../hooks/useIsMountedRef';\r\n//\r\nimport { MIconButton } from '../../@material-extend';\r\nimport { Help } from '@mui/icons-material';\r\nimport { Box } from '@mui/system';\r\nimport { PhoneLabel } from 'components/PhoneInfo';\r\nimport useBrand from 'hooks/useBrand';\r\n\r\n// ----------------------------------------------------------------------\r\ntype InitialValues = {\r\n  contractId: string;\r\n  password: string;\r\n  remember: boolean;\r\n  afterSubmit?: string;\r\n};\r\n\r\nexport default function LoginForm() {\r\n  const { login, errorMessage } = useAuth();\r\n  const isMountedRef = useIsMountedRef();\r\n  const { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n  const [showPassword, setShowPassword] = useState(false);\r\n  const { brand } = useBrand();\r\n  const [anchorEl, setAnchorEl] = useState<HTMLButtonElement | null>(null);\r\n\r\n  const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\r\n    setAnchorEl(event.currentTarget);\r\n  };\r\n\r\n  const handleClose = () => {\r\n    setAnchorEl(null);\r\n  };\r\n\r\n  const open = Boolean(anchorEl);\r\n\r\n  const LoginSchema = Yup.object().shape({\r\n    contractId: Yup.string().trim().required('Votre N° de contrat est requis'),\r\n    password: Yup.string().trim().required('Le mot de passe est requis')\r\n  });\r\n\r\n  const formik = useFormik<InitialValues>({\r\n    initialValues: {\r\n      contractId: '',\r\n      password: '',\r\n      remember: true\r\n    },\r\n    validationSchema: LoginSchema,\r\n    onSubmit: async (values, { setErrors, setSubmitting, resetForm }) => {\r\n      try {\r\n        await login(values.contractId?.trim(), values.password?.trim());\r\n\r\n        if (isMountedRef.current) {\r\n          setSubmitting(false);\r\n        }\r\n      } catch (error) {\r\n        resetForm();\r\n        if (isMountedRef.current) {\r\n          setSubmitting(false);\r\n          setErrors({ afterSubmit: 'Nous rencontrons un souci, veuillez essayer ultérieurement' });\r\n        }\r\n      }\r\n    }\r\n  });\r\n\r\n  const { errors, touched, values, isSubmitting, handleSubmit, getFieldProps } = formik;\r\n\r\n  const handleShowPassword = () => {\r\n    setShowPassword((show) => !show);\r\n  };\r\n\r\n  const handleShowAide = () => {\r\n    setShowPassword((show) => !show);\r\n  };\r\n\r\n  return (\r\n    <FormikProvider value={formik}>\r\n      <Form autoComplete=\"off\" name=\"loginForm\" noValidate onSubmit={handleSubmit}>\r\n        <Stack spacing={3}>\r\n          {errors.afterSubmit && <Alert severity=\"error\">{errors.afterSubmit}</Alert>}\r\n          {errorMessage && <Alert severity=\"error\">{errorMessage}</Alert>}\r\n\r\n          <TextField\r\n            fullWidth\r\n            autoComplete=\"username\"\r\n            type=\"text\"\r\n            label=\"N° de contrat\"\r\n            {...getFieldProps('contractId')}\r\n            error={Boolean(touched.contractId && errors.contractId)}\r\n            helperText={touched.contractId && errors.contractId}\r\n            InputProps={{\r\n              endAdornment: (\r\n                <InputAdornment position=\"end\">\r\n                  <IconButton onClick={handleClick} edge=\"end\">\r\n                    <Help />\r\n                  </IconButton>\r\n                </InputAdornment>\r\n              )\r\n            }}\r\n          />\r\n\r\n          <TextField\r\n            fullWidth\r\n            autoComplete=\"current-password\"\r\n            type={showPassword ? 'text' : 'password'}\r\n            label=\"Mot de passe\"\r\n            {...getFieldProps('password')}\r\n            InputProps={{\r\n              endAdornment: (\r\n                <InputAdornment position=\"end\">\r\n                  <IconButton onClick={handleShowPassword} edge=\"end\">\r\n                    <Icon icon={showPassword ? eyeFill : eyeOffFill} />\r\n                  </IconButton>\r\n                </InputAdornment>\r\n              )\r\n            }}\r\n            error={Boolean(touched.password && errors.password)}\r\n            helperText={touched.password && errors.password}\r\n          />\r\n        </Stack>\r\n\r\n        <Stack direction=\"row\" alignItems=\"center\" justifyContent=\"space-between\" sx={{ my: 2 }}>\r\n          <FormControlLabel\r\n            control={<Checkbox {...getFieldProps('remember')} checked={values.remember} />}\r\n            label=\"Se souvenir de moi\"\r\n          />\r\n\r\n          <Link component={RouterLink} variant=\"subtitle2\" to={PATH_AUTH.resetPassword}>\r\n            Mot de passe oublié\r\n          </Link>\r\n        </Stack>\r\n\r\n        <LoadingButton\r\n          fullWidth\r\n          size=\"large\"\r\n          type=\"submit\"\r\n          variant=\"contained\"\r\n          loading={isSubmitting}\r\n          name=\"loginFormBtn\"\r\n        >\r\n          SE CONNECTER\r\n        </LoadingButton>\r\n\r\n        <Popover\r\n          open={open}\r\n          anchorEl={anchorEl}\r\n          onClose={handleClose}\r\n          anchorOrigin={{\r\n            vertical: 'bottom',\r\n            horizontal: 'left'\r\n          }}\r\n        >\r\n          <Box sx={{ p: 2 }}>\r\n            <Typography variant=\"caption\">\r\n              <strong>N° de contrat :</strong>\r\n              <br />\r\n              Retrouvez votre numéro de contrat depuis votre boîte e-mail dans le message de\r\n              bienvenue.\r\n              <br /> Ou contactez l'école au{' '}\r\n              <PhoneLabel\r\n                brandId={brand}\r\n                phoneNumber={brand === 'CH' ? '021.531.07.00' : '01.46.00.68.78'}\r\n              />{' '}\r\n              si vous ne parvenez pas à le retrouver.\r\n            </Typography>\r\n          </Box>\r\n        </Popover>\r\n      </Form>\r\n    </FormikProvider>\r\n  );\r\n}\r\n/**\r\n *\r\n */\r\n","import useTrackerGoogle from 'hooks/useTrackerGoogle';\r\nimport { useEffect } from 'react';\r\n\r\nconst LoginTrackerGoogle = () => {\r\n  const { loginPageView } = useTrackerGoogle();\r\n\r\n  useEffect(() => {\r\n    loginPageView();\r\n  }, []);\r\n\r\n  return <></>;\r\n};\r\nexport default LoginTrackerGoogle;\r\n","import { Link as RouterLink, useLocation, useNavigate } from 'react-router-dom';\r\n// material\r\nimport { styled } from '@mui/material/styles';\r\nimport { Box, Card, Stack, Link, Alert, Tooltip, Container, Typography } from '@mui/material';\r\n// routes\r\nimport { PATH_DASHBOARD } from '../../routes/paths';\r\n// hooks\r\nimport useAuth from '../../hooks/useAuth';\r\nimport useBrand from '../../hooks/useBrand';\r\n// components\r\nimport Page from '../../components/Page';\r\nimport { MHidden } from '../../components/@material-extend';\r\nimport { LoginForm } from '../../components/authentication/login';\r\nimport { useEffect } from 'react';\r\nimport { isValidToken, setSession } from 'utils/jwt';\r\nimport LoginTrackerGoogle from './LoginTrackerGoogle';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst RootStyle = styled(Page)(({ theme }) => ({\r\n  [theme.breakpoints.up('md')]: {\r\n    display: 'flex'\r\n  }\r\n}));\r\n\r\nconst SectionStyle = styled(Box)(({ theme }) => ({\r\n  width: '100%',\r\n  maxWidth: 464,\r\n  display: 'flex',\r\n  flexDirection: 'column',\r\n  justifyContent: 'center',\r\n  margin: theme.spacing(2, 0, 2, 2)\r\n}));\r\n\r\nconst ContentStyle = styled('div')(({ theme }) => ({\r\n  maxWidth: 480,\r\n  margin: 'auto',\r\n  display: 'flex',\r\n  minHeight: '100vh',\r\n  flexDirection: 'column',\r\n  justifyContent: 'center',\r\n  padding: theme.spacing(12, 0)\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Login() {\r\n  const { initialize, logout } = useAuth();\r\n  const { search } = useLocation();\r\n  const { brand } = useBrand();\r\n  const params = new URLSearchParams(search);\r\n  const navigate = useNavigate();\r\n  const accessToken = params.get('access_token');\r\n  const path = params.get('path');\r\n\r\n  useEffect(() => {\r\n    //On controle le token\r\n    if (accessToken && isValidToken(accessToken)) {\r\n      setSession(accessToken);\r\n      initialize().then(() => {\r\n        if (path && path === 'formation') navigate(PATH_DASHBOARD.studyPlan.root);\r\n\r\n        if (path && path === 'agenda') navigate(PATH_DASHBOARD.agenda);\r\n\r\n        if (path) navigate(path);\r\n        else navigate(PATH_DASHBOARD.general.app);\r\n      });\r\n    }\r\n  }, [accessToken]);\r\n\r\n  return (\r\n    <RootStyle title=\"Login | SkillAndYou\">\r\n      <LoginTrackerGoogle />\r\n\r\n      <MHidden width=\"mdDown\">\r\n        <SectionStyle>\r\n          <img src=\"/static/illustrations/login/Login.svg\" alt=\"Connexion\" />\r\n        </SectionStyle>\r\n      </MHidden>\r\n\r\n      <Container maxWidth=\"sm\">\r\n        <ContentStyle>\r\n          <Stack direction=\"column\" alignItems=\"flex-start\" sx={{ mb: 2 }}>\r\n            <Box\r\n              sx={{ mb: 4, maxHeight: '60px' }}\r\n              component=\"img\"\r\n              src={`/static/brand/logo_${brand}.svg`}\r\n            />\r\n            <Typography variant=\"h4\" gutterBottom>\r\n              Connectez-vous à votre Espace Numérique de Travail\r\n            </Typography>\r\n          </Stack>\r\n\r\n          <LoginForm />\r\n        </ContentStyle>\r\n      </Container>\r\n    </RootStyle>\r\n  );\r\n}\r\n","import { AuthStudent } from './@types/authentication';\r\n\r\nexport const apiConfig = {\r\n  urlBase: process.env.REACT_APP_API_URL,\r\n  modePlugin: false\r\n};\r\n\r\nexport type signalRConfigProps = {\r\n  activate: boolean;\r\n};\r\n\r\nexport const signalRConfig: signalRConfigProps = {\r\n  activate: true // process.env.REACT_APP_SIGNALR === 'false' ? false : true\r\n};\r\n\r\nexport const brandDefaultConfig = 'LI';\r\n\r\nexport const firebaseConfig = {\r\n  apiKey: process.env.REACT_APP_FIREBASE_API_KEY,\r\n  authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,\r\n  databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL,\r\n  projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,\r\n  storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,\r\n  messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,\r\n  appId: process.env.REACT_APP_FIREBASE_APPID,\r\n  measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID\r\n};\r\n\r\nexport const cognitoConfig = {\r\n  userPoolId: process.env.REACT_APP_AWS_COGNITO_USER_POOL_ID,\r\n  clientId: process.env.REACT_APP_AWS_COGNITO_CLIENT_ID\r\n};\r\n\r\nexport const auth0Config = {\r\n  clientId: process.env.REACT_APP_AUTH0_CLIENT_ID,\r\n  domain: process.env.REACT_APP_AUTH0_DOMAIN\r\n};\r\n\r\nexport const mapConfig = process.env.REACT_APP_MAP_MAPBOX;\r\n\r\nexport const googleAnalyticsConfig = process.env.REACT_APP_GA_MEASUREMENT_ID;\r\n\r\nexport const messagesAccess = [\r\n  {\r\n    key: 'blocagePartiel',\r\n    value: (student: AuthStudent) => {\r\n      return `Nous venons de vous accorder un accès provisoire à votre Espace numérique de travail.\r\n                 Toutefois, votre encours client reste débiteur et nous vous invitons à régulariser rapidement cet incident financier.\r\n                    Si vous venez d'effectuer votre règlement, veuillez ne pas tenir compte de ce message.`;\r\n    }\r\n  },\r\n  {\r\n    key: 'blocagePayment',\r\n    value: (student: AuthStudent) => {\r\n      return `En raison de l''état débiteur de votre encours client, votre accès à l’Espace numérique de travail est momentanément suspendu le temps de régulariser cet incident financier.\r\n        Nous vous prions de bien vouloir entrer en contact avec le service Recouvrement Client afin de solutionner cette situation.`;\r\n    }\r\n  },\r\n  {\r\n    key: 'password',\r\n    value: (student: AuthStudent) => {\r\n      return `Vous venez de vous connecter avec le mot de passe qui vous a été communiqué par l'école.\r\n  Pour des raisons de sécurité, vous ne devez plus utiliser ce dernier.\r\n  Nous vous invitons à le modifier dès à présent.`;\r\n    }\r\n  },\r\n  {\r\n    key: 'limited',\r\n    value: (student: AuthStudent) => {\r\n      return `Vous n’avez pas accès à toutes les fonctionnalités de l’Espace numérique de travail car\r\n      vous n’êtes pas inscrit${student?.civilityId === 'Mme' ? 'e' : ''} à la formation.`;\r\n    }\r\n  },\r\n  {\r\n    key: 'blocageCorrection',\r\n    value: (student: AuthStudent) => {\r\n      return `Votre accès à l’espace élève est momentanément suspendu et sera ouvert à réception de votre 1er règlement.\r\n      Pour toute question, nous vous remercions de bien vouloir contacter votre conseiller d’étude.`;\r\n    }\r\n  }\r\n];\r\n\r\nexport const messageFunctionLimitee =\r\n  \"L'accès à cette fonction est réservé à nos apprenants inscrits\";\r\n\r\nexport const homeworkNoteMin = [\r\n  {\r\n    key: 6,\r\n    value: 3\r\n  },\r\n  {\r\n    key: 20,\r\n    value: 12\r\n  }\r\n];\r\n","import { ReactNode, useCallback, useContext, useEffect, useState } from 'react';\r\nimport { AuthContext } from 'contexts/JWTContext';\r\n// routes\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\n// components\r\n\r\nimport SvgIconStyle from 'components/SvgIconStyle';\r\n\r\nimport { Contract, ModuleType } from '../@types/contract';\r\nimport useAuth from './useAuth';\r\nimport {\r\n  BusinessCenterRounded,\r\n  CreditCard,\r\n  DateRangeRounded,\r\n  Edit,\r\n  EventAvailable,\r\n  FeedRounded,\r\n  Forum,\r\n  GpsFixed,\r\n  Help,\r\n  Home,\r\n  LaptopChromebookRounded,\r\n  LaptopRounded,\r\n  Mail,\r\n  PeopleRounded,\r\n  Person,\r\n  PhoneRounded,\r\n  SelfImprovementRounded,\r\n  ShareLocationRounded\r\n} from '@mui/icons-material';\r\nimport useStudyPlan from './useStudyPlan';\r\nimport { Elearning } from '../@types/pedagogy';\r\nimport { RootState, useSelector } from 'redux/store';\r\nimport useExamen from './useExamen';\r\nimport useBrand from './useBrand';\r\nimport { getLabelDefaultCategoryObjectif } from 'utils/helperExamen';\r\n// ----------------------------------------------------------------------\r\n\r\nexport type IMenu = {\r\n  id: string;\r\n  title: string;\r\n  path: string;\r\n  icon?: ReactNode;\r\n  isVisible: boolean;\r\n  isExternalLink: boolean;\r\n  children?: Array<IMenu> | null;\r\n};\r\n\r\nexport const getIcon = (name: string) => (\r\n  <SvgIconStyle src={`/static/icons/navbar/${name}.svg`} sx={{ width: '100%', height: '100%' }} />\r\n);\r\n\r\nexport const ICONS = {\r\n  training: <GpsFixed />,\r\n  mail: <Mail />,\r\n  calendar: <DateRangeRounded />,\r\n  dashboard: <Home />,\r\n  homeworks: <Edit />,\r\n  virtualClass: <LaptopRounded />,\r\n  workshop: <PeopleRounded />,\r\n  article: <FeedRounded />,\r\n  suivi: <SelfImprovementRounded />,\r\n  job: <BusinessCenterRounded />,\r\n  advanced_tools: getIcon('ic_advanced_tools'),\r\n  contact: <PhoneRounded />,\r\n  help: <Help />,\r\n  payment: <CreditCard />,\r\n  available: <EventAvailable />,\r\n  profil: <Person />,\r\n  parrainage: <ShareLocationRounded />\r\n};\r\n\r\n// Référencement des ids de menus customisables\r\nenum CUSTOM_MENU {\r\n  AdvancedTools = 'ADVANCEDTOOLS'\r\n}\r\n\r\nconst ADDACTIVITIES_MENU = {\r\n  id: 'ADDACTIVITIES',\r\n  title: 'Activités complémentaires',\r\n  path: PATH_DASHBOARD.studyPlan.activity,\r\n  isVisible: true,\r\n  isExternalLink: false\r\n};\r\n\r\nconst EDUTOOLS_MENU = {\r\n  id: 'EDUTOOLS',\r\n  title: 'Outils pédagogiques',\r\n  path: PATH_DASHBOARD.studyPlan.documents,\r\n  isVisible: true,\r\n  isExternalLink: false\r\n};\r\n\r\n/*\r\nconst LIBRARY_MENU = {\r\n  id: 'LIBRARY',\r\n  title: 'Bibliothèque de contenus',\r\n  path: PATH_DASHBOARD.studyPlan.StudyPlanSearch,\r\n  isVisible: false,\r\n  isExternalLink: false\r\n};\r\n*/\r\n\r\n/**\r\n * Gestion du menu\r\n * @returns Retourne le menu suivant les modules de l'élèves\r\n */\r\nconst useSidebarConfig = () => {\r\n  // informations élèves\r\n  const { getContractCurrent, student, getUrlParrainage } = useAuth();\r\n  const { getLabel } = useExamen();\r\n  //liste des modules authorized\r\n  const modules = getContractCurrent()?.moduleList || [];\r\n  // Determiner si la présence de competence\r\n  const { skills } = useStudyPlan();\r\n  const [urlParrainage, setUrlParrainage] = useState<string>('');\r\n  //liste des liens vers la photothèque\r\n  const { photoLibrary, additionalLearnings, forumActivity } = useSelector(\r\n    (state: RootState) => state.learning\r\n  );\r\n\r\n  /*\r\n  useEffect(() => {\r\n    if (student)\r\n      (async () => {\r\n        const url = await getUrlParrainage();\r\n        setUrlParrainage(url);\r\n      })();\r\n  }, []);\r\n*/\r\n  //enseigne\r\n  const { brand } = useBrand();\r\n\r\n  const manageAdvancedTools = (config: any) => {\r\n    //Gestion de la section \"Outils avancés\"\r\n    if (config && config.length > 0) {\r\n      let toolsMenu = config?.find((x: any) => x.id === CUSTOM_MENU.AdvancedTools);\r\n      if (toolsMenu) {\r\n        const tmpToolsChildren: any = [];\r\n\r\n        //Activités complémentaires si le module est actif\r\n        if (modules.includes(ModuleType.Elearning) && additionalLearnings?.length > 0) {\r\n          tmpToolsChildren.push(ADDACTIVITIES_MENU);\r\n        }\r\n\r\n        //Liens supplémentaires (photothèque)\r\n        if (photoLibrary && photoLibrary.length > 0) {\r\n          photoLibrary.map((lib: Elearning, idx: number) =>\r\n            tmpToolsChildren.push({\r\n              id: CUSTOM_MENU.AdvancedTools + idx,\r\n              title: lib.label,\r\n              path: lib.url,\r\n              isVisible: true,\r\n              isExternalLink: true\r\n            })\r\n          );\r\n        }\r\n\r\n        //Affichage menu/sous menu\r\n        if (tmpToolsChildren.length > 0) {\r\n          //Outils pédagogiques\r\n          tmpToolsChildren.unshift(EDUTOOLS_MENU);\r\n          toolsMenu.children = tmpToolsChildren;\r\n        } else {\r\n          //Remplacement de \"Outils avancés\" par \"Outils pédagogiques\"\r\n          toolsMenu = Object.assign(toolsMenu, EDUTOOLS_MENU);\r\n          toolsMenu.children = null;\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n  // retourne le menu => permet d'éviter de rejouer le code\r\n  const getConfig = useCallback(() => {\r\n    //Récupération des éléments à afficher + copie des objets pour ne pas impacter le paramétrage de base\r\n    let newConfig = sidebarConfig\r\n      .filter((m) => m.isVisible)\r\n      .map((item) =>\r\n        Object.assign(\r\n          {},\r\n          { ...item },\r\n          { children: item?.children?.map((child) => Object.assign({}, child)) }\r\n        )\r\n      );\r\n\r\n    if (modules.includes(ModuleType.Dashboard)) manageAdvancedTools(newConfig);\r\n\r\n    return newConfig;\r\n  }, [modules, skills, photoLibrary, additionalLearnings]);\r\n\r\n  const sidebarConfig: Array<IMenu> = [\r\n    {\r\n      id: 'DASHBOARD',\r\n      title: 'Tableau de bord',\r\n      path: PATH_DASHBOARD.general.app,\r\n      icon: ICONS.dashboard,\r\n      isVisible: modules.includes(ModuleType.Dashboard),\r\n      isExternalLink: false\r\n    },\r\n    {\r\n      id: 'TRAINING',\r\n      title: 'Formation',\r\n      path: PATH_DASHBOARD.studyPlan.root,\r\n      icon: ICONS.training,\r\n      isVisible: modules.includes(ModuleType.StudyPlan),\r\n      isExternalLink: false\r\n    },\r\n    {\r\n      id: 'HOMEWORKS',\r\n      title: 'Évaluations',\r\n      path: PATH_DASHBOARD.homeworks.root,\r\n      icon: ICONS.homeworks,\r\n      isVisible: modules.includes(ModuleType.StudyPlan),\r\n      isExternalLink: false\r\n    },\r\n    {\r\n      id: CUSTOM_MENU.AdvancedTools,\r\n      title: 'Outils avancés',\r\n      path: PATH_DASHBOARD.blog.root,\r\n      icon: ICONS.advanced_tools,\r\n      children: [],\r\n      isVisible: modules.includes(ModuleType.Dashboard),\r\n      isExternalLink: false\r\n    },\r\n    {\r\n      id: 'WORKSHOP',\r\n      title: 'Ateliers',\r\n      path: PATH_DASHBOARD.workshop.list,\r\n      icon: ICONS.workshop,\r\n      isVisible:\r\n        modules.includes(ModuleType.WorkshopView) || modules.includes(ModuleType.WorkshopUpdate),\r\n      isExternalLink: false\r\n    },\r\n    {\r\n      id: 'VIRTUALCLASS',\r\n      title: 'Classes virtuelles',\r\n      path: PATH_DASHBOARD.virtualClass.list,\r\n      icon: ICONS.virtualClass,\r\n      isVisible:\r\n        modules.includes(ModuleType.VirtualClassView) ||\r\n        modules.includes(ModuleType.VirtualClassUpdate),\r\n      isExternalLink: false\r\n    },\r\n    {\r\n      id: 'FOLLOW',\r\n      title: 'Mon suivi',\r\n      path: PATH_DASHBOARD.blog.root,\r\n      icon: ICONS.suivi,\r\n      children: [\r\n        {\r\n          id: 'SKILLS',\r\n          title: 'Compétences',\r\n          path: PATH_DASHBOARD.suivi.skills,\r\n          isVisible: skills.length > 0,\r\n          isExternalLink: false\r\n        },\r\n        {\r\n          id: 'MARK',\r\n          title: 'Relevé de notes',\r\n          path: PATH_DASHBOARD.suivi.notes,\r\n          isVisible: true,\r\n          isExternalLink: false\r\n        },\r\n        {\r\n          id: 'HISTORY',\r\n          title: 'Historique',\r\n          path: PATH_DASHBOARD.suivi.historic,\r\n          isVisible: true,\r\n          isExternalLink: false\r\n        },\r\n        {\r\n          id: 'INTERNSHIP',\r\n          title: 'Mes stages',\r\n          path: PATH_DASHBOARD.suivi.internships,\r\n          isVisible:\r\n            modules.includes(ModuleType.InternalShipView) ||\r\n            modules.includes(ModuleType.InternalShipUpdate),\r\n          isExternalLink: false\r\n        },\r\n        {\r\n          id: 'EXAMEN',\r\n          title: getLabelDefaultCategoryObjectif()?.debuteMajusculePluriel,\r\n          path: PATH_DASHBOARD.suivi.examens,\r\n          isVisible: modules.includes(ModuleType.Examen),\r\n          isExternalLink: false\r\n        }\r\n      ],\r\n      isVisible: modules.includes(ModuleType.StudyPlan),\r\n      isExternalLink: false\r\n    },\r\n    {\r\n      id: 'SCHEDULE',\r\n      title: 'Agenda',\r\n      path: PATH_DASHBOARD.agenda,\r\n      icon: ICONS.calendar,\r\n      isVisible: modules.includes(ModuleType.Agenda),\r\n      isExternalLink: false\r\n    },\r\n    {\r\n      id: 'MESSAGES',\r\n      title: 'Messagerie',\r\n      path: PATH_DASHBOARD.message.all,\r\n      icon: ICONS.mail,\r\n      isVisible: modules.includes(ModuleType.Dashboard),\r\n      isExternalLink: false,\r\n      children: [\r\n        {\r\n          id: 'MESSAGES_ALL',\r\n          title: 'Tous mes message',\r\n          path: PATH_DASHBOARD.message.all,\r\n          isVisible: false,\r\n          isExternalLink: false\r\n        },\r\n        {\r\n          id: 'MESSAGES_UNREAD',\r\n          title: 'Messages non lus',\r\n          path: PATH_DASHBOARD.message.unread,\r\n          isVisible: false,\r\n          isExternalLink: false\r\n        },\r\n        {\r\n          id: 'MESSAGES_SCHOOL',\r\n          title: \"Communications de l'école\",\r\n          path: PATH_DASHBOARD.message.school,\r\n          isVisible: false,\r\n          isExternalLink: false\r\n        },\r\n        {\r\n          id: 'MESSAGES_QUESTION',\r\n          title: 'Mes questions / réponses',\r\n          path: PATH_DASHBOARD.message.question,\r\n          isVisible: false,\r\n          isExternalLink: false\r\n        }\r\n      ]\r\n    },\r\n    {\r\n      id: 'JOBS',\r\n      title: 'Offres : stages - emplois',\r\n      path: PATH_DASHBOARD.job.list,\r\n      icon: ICONS.job,\r\n      isVisible:\r\n        modules.includes(ModuleType.JobView) ||\r\n        modules.includes(ModuleType.InternalShipView) ||\r\n        modules.includes(ModuleType.InternalShipUpdate),\r\n      isExternalLink: false\r\n    },\r\n    {\r\n      id: 'ARTICLES',\r\n      title: 'Actualités',\r\n      path: PATH_DASHBOARD.article.list,\r\n      icon: ICONS.article,\r\n      isVisible: modules.includes(ModuleType.Dashboard),\r\n      isExternalLink: false\r\n    },\r\n    {\r\n      id: 'FORUM',\r\n      title: 'Forum',\r\n      path: forumActivity[0]?.url,\r\n      icon: <Forum />,\r\n      isVisible: forumActivity.length > 0 && modules.includes(ModuleType.Dashboard),\r\n      isExternalLink: true\r\n    },\r\n\r\n    {\r\n      id: 'CONTACTS',\r\n      title: 'Contact',\r\n      path: PATH_DASHBOARD.general.contact,\r\n      icon: ICONS.contact,\r\n      isVisible: modules.includes(ModuleType.Dashboard),\r\n      isExternalLink: false\r\n    },\r\n\r\n    {\r\n      id: 'PARRAINAGE',\r\n      title: 'Parrainage',\r\n      path: urlParrainage,\r\n      icon: ICONS.parrainage,\r\n      isVisible: urlParrainage !== '',\r\n      isExternalLink: true\r\n    },\r\n    {\r\n      id: 'AIDES',\r\n      title: 'Aides',\r\n      path: PATH_DASHBOARD.general.help,\r\n      icon: ICONS.help,\r\n      isVisible: modules.includes(ModuleType.Dashboard),\r\n      isExternalLink: false\r\n    }\r\n  ];\r\n  return { getConfig, getContractCurrent, student, sidebarConfig };\r\n};\r\n\r\nexport default useSidebarConfig;\r\n","import { useState, useEffect } from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function useLocalStorage<ValueType>(key: string, defaultValue: ValueType) {\r\n  const [value, setValue] = useState(() => {\r\n    const storedValue = localStorage.getItem(key);\r\n    return storedValue === null ? defaultValue : JSON.parse(storedValue);\r\n  });\r\n\r\n  useEffect(() => {\r\n    const listener = (e: StorageEvent) => {\r\n      if (e.storageArea === localStorage && e.key === key) {\r\n        setValue(e.newValue ? JSON.parse(e.newValue) : e.newValue);\r\n      }\r\n    };\r\n    window.addEventListener('storage', listener);\r\n\r\n    return () => {\r\n      window.removeEventListener('storage', listener);\r\n    };\r\n  }, [key, defaultValue]);\r\n\r\n  const setValueInLocalStorage = (newValue: ValueType) => {\r\n    setValue((currentValue: any) => {\r\n      const result = typeof newValue === 'function' ? newValue(currentValue) : newValue;\r\n      localStorage.setItem(key, JSON.stringify(result));\r\n      return result;\r\n    });\r\n  };\r\n\r\n  return [value, setValueInLocalStorage];\r\n}\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { store } from '../store';\r\n// utils\r\nimport axios from '../../utils/axios';\r\n//Redux\r\nimport { updateSeminar } from 'redux/slices/agenda';\r\n// @types\r\nimport {\r\n  VirtualClassListResult,\r\n  VirtualClassListResponse,\r\n  VirtualClassState,\r\n  VirtualClassItemResponse,\r\n  VirtualClassItemResult,\r\n  VirtualClassRegisteredResponse,\r\n  VirtualClassRegisteredResult,\r\n  VirtualClassSupport,\r\n  ClassilioRequest,\r\n  ClassilioResponse,\r\n  ClassilioResult,\r\n  VirtualClassCancelResponse,\r\n  VirtualClassCancelResult\r\n} from '../../@types/virtualClass';\r\nimport { MeetingStatus } from '../../@types/meeting';\r\nimport { SeminarErrorResult } from '../../@types/seminar';\r\nimport { map } from 'lodash';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: VirtualClassState = {\r\n  isLoading: false,\r\n  isLoadingList: false,\r\n  error: false,\r\n  virtualClasses: [],\r\n  virtualClass: null,\r\n  isFull: false,\r\n  isRequired: false,\r\n  isOpenModal: false,\r\n\r\n  virtualClassId: 0\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'virtualClass',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n    },\r\n    startLoadingList(state) {\r\n      state.isLoadingList = true;\r\n    },\r\n\r\n    endLoading(state) {\r\n      state.isLoading = false;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n      state.isLoadingList = false;\r\n    },\r\n\r\n    // GET POSTS\r\n    getVirtualClassesSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.virtualClasses = action.payload;\r\n      state.error = false;\r\n      state.isOpenModal = false;\r\n      state.isLoadingList = false;\r\n    },\r\n\r\n    getVirtualClassSuccess(state, action) {\r\n      state.isLoading = false;\r\n      let seminar = action.payload;\r\n      state.isFull = seminar.countMaxPlaces <= seminar.countRegistered;\r\n      state.isRequired =\r\n        seminar.supports == null || seminar.supports.length === 0\r\n          ? false\r\n          : !seminar.supports.some((v: VirtualClassSupport) => v.isRead);\r\n      state.virtualClass = seminar;\r\n      state.error = false;\r\n    },\r\n\r\n    setReplay(state, action) {\r\n      const { id } = action.payload;\r\n      const updateList = map(state.virtualClasses, (_event) => {\r\n        if (_event.id === id) {\r\n          return { ..._event, viewReplayCount: _event.viewReplayCount + 1 };\r\n        }\r\n        return _event;\r\n      });\r\n\r\n      state.virtualClasses = updateList;\r\n    },\r\n\r\n    selectVirtualClassId(state, action) {\r\n      state.isOpenModal = true;\r\n      state.virtualClassId = action.payload;\r\n    },\r\n\r\n    selectVirtualClass(state, action) {\r\n      state.isOpenModal = true;\r\n      state.isLoading = false;\r\n      state.error = false;\r\n\r\n      let seminar = action.payload;\r\n\r\n      state.isFull = seminar.countMaxPlaces <= seminar.countRegistered;\r\n      state.isRequired =\r\n        seminar.supports == null || seminar.supports.length === 0\r\n          ? false\r\n          : seminar.supports.some((v: VirtualClassSupport) => v.isRead);\r\n      state.virtualClass = action.payload;\r\n    },\r\n    toAssist(state) {\r\n      state = {\r\n        ...state,\r\n        virtualClass: {\r\n          ...state.virtualClass!,\r\n          meeting: { ...state.virtualClass?.meeting!, status: 3 } //présent\r\n        }\r\n      };\r\n    },\r\n    registerOrCancel(state, action) {\r\n      state.isLoading = false;\r\n      state.isOpenModal = false;\r\n      state.virtualClassId = 0;\r\n      state.virtualClass = null;\r\n      state.error = false;\r\n\r\n      const { id, waitingList, registered } = action.payload;\r\n      const updateList = map(state.virtualClasses, (_event) => {\r\n        if (_event.id === id) {\r\n          return { ..._event, registered: registered, waitingList: waitingList };\r\n        }\r\n        return _event;\r\n      });\r\n\r\n      state.virtualClasses = updateList;\r\n    },\r\n    // OPEN MODAL\r\n    openModal(state) {\r\n      state.isOpenModal = true;\r\n    },\r\n\r\n    // CLOSE MODAL\r\n    closeModal(state) {\r\n      state.isOpenModal = false;\r\n      state.virtualClassId = 0;\r\n      state.virtualClass = null;\r\n      state.error = false;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nexport const {\r\n  selectVirtualClass,\r\n  openModal,\r\n  closeModal,\r\n  selectVirtualClassId,\r\n  toAssist,\r\n  setReplay\r\n} = slice.actions;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getVirtualClassList() {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoadingList());\r\n    try {\r\n      const response = await axios.get<VirtualClassListResponse>('/api/virtualClass/list');\r\n      const { list, result } = response.data;\r\n\r\n      switch (result) {\r\n        case VirtualClassListResult.Success:\r\n          dispatch(slice.actions.getVirtualClassesSuccess(list));\r\n          break;\r\n        case VirtualClassListResult.NotFound:\r\n          dispatch(slice.actions.hasError({ result: SeminarErrorResult.NotFound }));\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError({ result: 99 }));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getVirtualClass(id: number) {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n\r\n    try {\r\n      const response = await axios.get<VirtualClassItemResponse>(`/api/virtualClass/${id}`);\r\n      const { item, result } = response.data;\r\n\r\n      switch (result) {\r\n        case VirtualClassItemResult.Success:\r\n          dispatch(slice.actions.getVirtualClassSuccess(item));\r\n          break;\r\n        case VirtualClassItemResult.NotFound:\r\n          dispatch(slice.actions.hasError({ result: SeminarErrorResult.NotFound }));\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError({ result: SeminarErrorResult.Error }));\r\n    }\r\n  };\r\n}\r\n\r\nexport const registerVirtualClass = (id: number) => (onSuccess: VoidFunction) => {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.post<VirtualClassRegisteredResponse>(\r\n        `/api/virtualClass/${id}/registered`,\r\n        id,\r\n        {\r\n          headers: { writeOnly: true }\r\n        }\r\n      );\r\n      const { meeting, result } = response.data;\r\n\r\n      switch (result) {\r\n        case VirtualClassRegisteredResult.Success:\r\n          dispatch(\r\n            slice.actions.registerOrCancel({\r\n              id: id,\r\n              registered: meeting.status === MeetingStatus.Registered ? true : false,\r\n              waitingList: meeting.status === MeetingStatus.WaitingList ? true : false\r\n            })\r\n          );\r\n          dispatch(\r\n            updateSeminar({\r\n              id: id,\r\n              registered: meeting.status === MeetingStatus.Registered ? true : false,\r\n              waitingList: meeting.status === MeetingStatus.WaitingList ? true : false,\r\n              registeredId: meeting.id\r\n            })\r\n          );\r\n          onSuccess();\r\n          break;\r\n        case VirtualClassRegisteredResult.ClosedContract:\r\n          dispatch(slice.actions.hasError({ result: SeminarErrorResult.ClosedContract }));\r\n          break;\r\n        case VirtualClassRegisteredResult.Full:\r\n          dispatch(slice.actions.hasError({ result: SeminarErrorResult.Full }));\r\n          break;\r\n        default:\r\n          dispatch(slice.actions.hasError({ result: SeminarErrorResult.Error }));\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError({ result: SeminarErrorResult.Error }));\r\n    }\r\n  };\r\n};\r\n\r\nexport const cancelVirtualClass =\r\n  (id: number, registeredId: number) => (onSuccess: VoidFunction) => {\r\n    return async () => {\r\n      const { dispatch } = store;\r\n      dispatch(slice.actions.registerOrCancel(true));\r\n      try {\r\n        const response = await axios.post<VirtualClassCancelResponse>(\r\n          `/api/virtualClass/${registeredId}/cancel`,\r\n          registeredId,\r\n          {\r\n            headers: { writeOnly: true }\r\n          }\r\n        );\r\n        const { result } = response.data;\r\n\r\n        switch (result) {\r\n          case VirtualClassCancelResult.Success:\r\n            dispatch(\r\n              slice.actions.registerOrCancel({\r\n                id: id,\r\n                registered: false,\r\n                waitingList: false\r\n              })\r\n            );\r\n\r\n            dispatch(\r\n              updateSeminar({ id: id, registered: false, waitingList: false, registeredId: 0 })\r\n            );\r\n            onSuccess();\r\n            break;\r\n\r\n          default:\r\n            dispatch(slice.actions.hasError({ result: SeminarErrorResult.Error }));\r\n            break;\r\n        }\r\n      } catch (error) {\r\n        dispatch(slice.actions.hasError({ result: SeminarErrorResult.Error }));\r\n      }\r\n    };\r\n  };\r\n\r\nexport const getReplayVirtualClass =\r\n  (request: ClassilioRequest) => (onSuccess: (url: string) => void) => {\r\n    return async () => {\r\n      const { dispatch } = store;\r\n      dispatch(slice.actions.startLoading());\r\n      try {\r\n        const response = await axios.post<ClassilioResponse>(\r\n          `/api/student/meeting/replay`,\r\n          request\r\n        );\r\n        const { url, result } = response.data;\r\n\r\n        switch (result) {\r\n          case ClassilioResult.Success:\r\n            dispatch(slice.actions.endLoading());\r\n            dispatch(slice.actions.setReplay({ id: request.id }));\r\n            onSuccess(url);\r\n            break;\r\n          default:\r\n            dispatch(slice.actions.hasError({ result: result }));\r\n            break;\r\n        }\r\n      } catch (error) {\r\n        dispatch(slice.actions.hasError({ result: SeminarErrorResult.Error }));\r\n      }\r\n    };\r\n  };\r\n","import { brandDefaultConfig } from 'config';\r\nimport { useEffect, useState } from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst brands: Array<{ id: string; name: string; urlContains: string }> = [\r\n  { id: 'LI', urlContains: 'lignes', name: 'Lignes & formations' },\r\n  { id: 'MI', urlContains: 'coursminerve', name: 'Cours minerve' },\r\n  { id: 'IF', urlContains: 'ifsanimal', name: 'Ifsanimal' },\r\n  { id: 'IF', urlContains: 'ifsa-nature', name: 'Ifsa-nature' },\r\n  { id: 'NA', urlContains: 'naturadis', name: 'Natura-dis' },\r\n  { id: 'KA', urlContains: 'karis', name: 'karis-formations' },\r\n  { id: 'FS', urlContains: 'fashion-skills', name: 'Fashion-skills' },\r\n  { id: 'BE', urlContains: 'beacademie', name: 'Be-académie' },\r\n  { id: 'EP', urlContains: 'ecoledespros', name: 'Ecole des pros' },\r\n  { id: 'ED', urlContains: 'educatel', name: 'Educatel' },\r\n  { id: 'MC', urlContains: 'esecad', name: 'Esecad' },\r\n  { id: 'EC', urlContains: 'ecolechezsoi', name: 'Ecole Chez Soi' },\r\n  { id: 'SE', urlContains: 'cours-servais', name: 'Cours-Servais' },\r\n  { id: 'DC', urlContains: 'deficompta', name: 'Déficompta' },\r\n  { id: 'EK', urlContains: 'erickayser', name: 'Eric-Kayser' },\r\n  { id: 'CH', urlContains: 'ch.', name: 'Suisse' },\r\n  { id: 'XX', urlContains: 'ent.myskillandyou', name: 'Skillandyou' },\r\n  { id: 'SY', urlContains: 'skillandyou', name: 'Skillandyou' }\r\n];\r\n\r\n/***\r\n * Permet de détecter l'enseigne suivant l'url\r\n */\r\nconst useBrand = () => {\r\n  //const search = document.location.search; //récupérer le token via queryString\r\n  //const { search } = useLocation();\r\n  //const params = new URLSearchParams(search);\r\n  let baseUrl = document.location.hostname;\r\n\r\n  const [brand, setBrand] = useState(brandDefaultConfig);\r\n\r\n  useEffect(() => {\r\n    const brandDetect = brands.filter((b) => baseUrl.includes(b.urlContains))[0]?.id;\r\n    if (brandDetect) setBrand(brandDetect);\r\n  }, []);\r\n\r\n  const domaine = document.location.host.replace(\r\n    brands.filter((b) => b.id === brand)[0]?.urlContains,\r\n    ''\r\n  );\r\n\r\n  const name = document.location.host.replace(brands.filter((b) => b.id === brand)[0]?.name, '');\r\n\r\n  const brandName = brands.find((b) => b.id === brand)?.name;\r\n\r\n  return {\r\n    brand,\r\n    domaine,\r\n    name,\r\n    brandName\r\n  };\r\n};\r\n\r\nexport default useBrand;\r\n","import { MediaFileInfo } from './media';\r\nimport { Seminar } from './seminar';\r\n\r\nexport type WorkshopState = {\r\n  isLoading: boolean;\r\n  isLoadingList: boolean;\r\n  error: any;\r\n  workshops: Seminar[];\r\n  workshop: Seminar | null;\r\n  isFull: boolean;\r\n  workshopId: number;\r\n  isOpenModal: boolean;\r\n};\r\n\r\nexport interface SessionAtelier {\r\n  id: number;\r\n  nomAtelier: string;\r\n  idAtelier: number;\r\n  nom: string;\r\n  dateDebut: string;\r\n  heureDebut: string;\r\n  dateFin: string;\r\n  heureFin: string;\r\n  debutFin: string;\r\n  nombreHeure: string;\r\n  relativeDateString: string;\r\n  nombreDePlacesMini: number;\r\n  nombreDePlacesMaxi: number;\r\n  nombreInscription: number;\r\n  nombreDePlaceDisponibles: number;\r\n  lieu: string;\r\n  salle: string;\r\n  statut: string;\r\n  idStatut: WorkshopStatus;\r\n  prixUnitaire: number;\r\n  resteDuEnCredit: number;\r\n  resteDuEnEuros: number;\r\n  coutEnEuros: number;\r\n  coutEnCredit: number;\r\n  descriptif: string;\r\n  html: string;\r\n  professeur: string;\r\n  dateLimiteInscription: string;\r\n  medias: MediaFileInfo[];\r\n  statutInscription: string;\r\n  isInscrit: boolean;\r\n  isInWaitingList: boolean;\r\n  afficherLeFormulaireDePaiement: boolean;\r\n  txtTheme: string;\r\n  txtObjectifs: string;\r\n  txtProgramme: string;\r\n  txtMethode: string;\r\n  txtMateriel: string;\r\n  txtPublic: string;\r\n  containsFiles: boolean;\r\n  statutInscriptionId: number;\r\n}\r\n\r\nexport enum WorkshopStatus {\r\n  None = 1,\r\n  Open = 2,\r\n  Full = 3,\r\n  Current = 4,\r\n  Close = 5,\r\n  Cancel = 6\r\n}\r\n\r\nexport interface MediaAtelier {\r\n  iD: number;\r\n  chaMed: number;\r\n  ficMed: number;\r\n  titre: string;\r\n  fichier: string;\r\n}\r\n\r\nexport interface MemberAtelier {\r\n  conEns: number;\r\n  ave: number;\r\n  ele: number;\r\n  desAdr: string;\r\n  tel1: string;\r\n  tel2: string;\r\n  ema: string;\r\n  ens: string;\r\n}\r\n\r\nexport interface WorkshopListResponse {\r\n  result: WorkshopListResult;\r\n  list: SessionAtelier[];\r\n  errorDescription: string;\r\n}\r\n\r\nexport enum WorkshopListResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  Error = 2\r\n}\r\n\r\nexport interface WorkshopDetailResponse {\r\n  result: WorkshopDetailResult;\r\n  detail: SessionAtelier;\r\n  errorDescription: string;\r\n}\r\n\r\nexport enum WorkshopDetailResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  Error = 2\r\n}\r\nexport interface WorkshopRegisteredResponse {\r\n  result: WorkshopRegisteredResult;\r\n  errorDescription: string;\r\n}\r\n\r\nexport enum WorkshopRegisteredResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  Error = 2,\r\n  ClosingDate = 3,\r\n  ErrorPlacespaceAvailable = 4\r\n}\r\n\r\nexport interface WorkshopIsRegisteredResponse {\r\n  result: WorkshopIsRegisteredResult;\r\n}\r\n\r\nexport enum WorkshopIsRegisteredResult {\r\n  NotCompleted = 0,\r\n  Completed = 1\r\n}\r\n\r\nexport interface WorkshopCreditBalanceResponse {\r\n  result: WorkshopCreditBalanceResult;\r\n  credit: number;\r\n}\r\n\r\nexport enum WorkshopCreditBalanceResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n","import { Helmet } from 'react-helmet-async';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { forwardRef, useEffect, useCallback, ReactNode } from 'react';\r\n// material\r\nimport { Box, BoxProps } from '@mui/material';\r\n// utils\r\n\r\nimport usePageSettings from 'hooks/usePageSettings';\r\nimport useTrackerGoogle from 'hooks/useTrackerGoogle';\r\nimport useSidebarConfig from 'hooks/useSidebarConfig';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface PageProps extends BoxProps {\r\n  children: ReactNode;\r\n  title?: string;\r\n  helpCategoryId?: string;\r\n  fncPageView?: () => void;\r\n}\r\n\r\nconst Page = forwardRef<HTMLDivElement, PageProps>(\r\n  ({ children, helpCategoryId, title = '', fncPageView, ...other }, ref) => {\r\n    const { pathname } = useLocation();\r\n    const pageContext = usePageSettings();\r\n    const { pageview } = useTrackerGoogle();\r\n    const { getConfig } = useSidebarConfig();\r\n\r\n    const sendPageViewEvent = useCallback((data?: any) => {\r\n      var meunItem = getConfig()?.find((c) => c.path.includes(pathname));\r\n\r\n      if (!meunItem)\r\n        getConfig().map((c) =>\r\n          c.children\r\n            ?.filter((x) => pathname.includes(x.path))\r\n            .map((x) => {\r\n              meunItem = {\r\n                id: x.id,\r\n                isExternalLink: false,\r\n                path: x.path,\r\n                isVisible: false,\r\n                title: x.title,\r\n                children: []\r\n              };\r\n            })\r\n        );\r\n\r\n      if (meunItem)\r\n        pageview(\r\n          Object.assign(\r\n            {},\r\n            {\r\n              page_level_1: meunItem?.title\r\n            },\r\n            data\r\n          )\r\n        );\r\n\r\n      // eslint-disable-next-line react-hooks/exhaustive-deps\r\n    }, []);\r\n\r\n    useEffect(() => {\r\n      if (fncPageView) sendPageViewEvent(fncPageView());\r\n      else sendPageViewEvent();\r\n\r\n      pageContext.setHelpCategoryId(helpCategoryId ? helpCategoryId : '');\r\n    }, [sendPageViewEvent, helpCategoryId]);\r\n\r\n    return (\r\n      <Box ref={ref} {...other}>\r\n        <Helmet>\r\n          <title>{title}</title>\r\n        </Helmet>\r\n        {children}\r\n      </Box>\r\n    );\r\n  }\r\n);\r\n\r\nexport default Page;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { store } from '../store';\r\n// utils\r\nimport axios from '../../utils/axios';\r\n//Redux\r\nimport { updateSeminar, removeEvent, updateEvent } from 'redux/slices/agenda';\r\n// @types\r\nimport {\r\n  WorkshopDetailResponse,\r\n  WorkshopDetailResult,\r\n  WorkshopListResponse,\r\n  WorkshopListResult,\r\n  WorkshopRegisteredResponse,\r\n  WorkshopRegisteredResult,\r\n  WorkshopState\r\n} from '../../@types/workshop';\r\nimport { Seminar, SeminarErrorResult } from '../../@types/seminar';\r\nimport { convertWorkshopToSeminar } from 'mapper/workshopMap';\r\nimport { PaymentAddResponse, PaymentAddResult } from '../../@types/payment';\r\nimport { convertVirtualClassToAgendaEvent } from 'mapper/virtualClassMap';\r\nimport { map } from 'lodash';\r\nimport { uriTransformer } from 'react-markdown';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: WorkshopState = {\r\n  isLoading: false,\r\n  error: false,\r\n  workshops: [],\r\n  workshop: null,\r\n  isFull: false,\r\n  workshopId: 0,\r\n  isLoadingList: false,\r\n  isOpenModal: false\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'workshop',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n      state.error = null;\r\n    },\r\n    startLoadingList(state) {\r\n      state.isLoadingList = true;\r\n      state.error = null;\r\n    },\r\n\r\n    endLoading(state) {\r\n      state.isLoading = false;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.isLoadingList = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    // GET POSTS\r\n    getWorkshopsSuccess(state, action) {\r\n      state.isLoadingList = false;\r\n      state.isLoading = false;\r\n      state.workshops = action.payload;\r\n      state.error = null;\r\n    },\r\n\r\n    getWorkshopSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.workshop = action.payload;\r\n      let seminar = action.payload;\r\n      state.isFull = seminar.countMaxPlaces <= seminar.countRegistered ? true : false;\r\n      state.error = null;\r\n    },\r\n\r\n    selectWorkshopById(state, action) {\r\n      state.isOpenModal = true;\r\n      state.workshopId = action.payload;\r\n    },\r\n\r\n    selectWorkshop(state, action) {\r\n      state.isLoading = false;\r\n      let seminar = action.payload;\r\n      state.isFull = seminar.countMaxPlaces <= seminar.countRegistered ? true : false;\r\n      state.workshop = action.payload;\r\n      state.error = null;\r\n    },\r\n    register(state, action) {\r\n      state.isLoading = false;\r\n      state.isOpenModal = false;\r\n      state.workshopId = 0;\r\n      state.workshop = null;\r\n\r\n      state.error = null;\r\n    },\r\n\r\n    registerOrCancel(state, action) {\r\n      state.isLoading = false;\r\n      state.isOpenModal = false;\r\n      state.workshopId = 0;\r\n      state.workshop = null;\r\n      state.error = false;\r\n\r\n      const { id, waitingList, registered } = action.payload;\r\n      const updateList = map(state.workshops, (_event) => {\r\n        if (_event.id === id) {\r\n          return { ..._event, registered: registered, waitingList: waitingList };\r\n        }\r\n        return _event;\r\n      });\r\n\r\n      state.workshops = updateList;\r\n    },\r\n\r\n    // OPEN MODAL\r\n    openModal(state) {\r\n      state.isOpenModal = true;\r\n    },\r\n\r\n    // CLOSE MODAL\r\n    closeModal(state) {\r\n      state.isOpenModal = false;\r\n      state.workshopId = 0;\r\n      state.error = null;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nexport const { selectWorkshop, openModal, closeModal, selectWorkshopById } = slice.actions;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getWorkshopList() {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoadingList());\r\n    try {\r\n      const response = await axios.get<WorkshopListResponse>('/api/workshop/list');\r\n      const { list, result } = response.data;\r\n\r\n      switch (result) {\r\n        case WorkshopListResult.Success:\r\n          dispatch(slice.actions.getWorkshopsSuccess(list.map((a) => convertWorkshopToSeminar(a))));\r\n          break;\r\n        case WorkshopListResult.NotFound:\r\n          dispatch(slice.actions.hasError({ result: SeminarErrorResult.NotFound }));\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      console.log(error);\r\n      dispatch(slice.actions.hasError({ result: 99 }));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getWorkshop(id: number) {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get<WorkshopDetailResponse>(`/api/workshop/detail/${id}`);\r\n      const { detail, result } = response.data;\r\n\r\n      switch (result) {\r\n        case WorkshopDetailResult.Success:\r\n          dispatch(slice.actions.getWorkshopSuccess(convertWorkshopToSeminar(detail)));\r\n          break;\r\n        case WorkshopDetailResult.NotFound:\r\n          dispatch(slice.actions.hasError({ result: SeminarErrorResult.NotFound }));\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError({ result: SeminarErrorResult.Error }));\r\n    }\r\n  };\r\n}\r\n\r\nexport const putWaitingListWorkshop = (id: number) => (onSuccess: VoidFunction) => {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get<WorkshopRegisteredResponse>(\r\n        `/api/workshop/putWaitingList/${id}`,\r\n        {\r\n          headers: { writeOnly: true }\r\n        }\r\n      );\r\n      const { errorDescription, result } = response.data;\r\n\r\n      switch (result) {\r\n        case WorkshopRegisteredResult.Success:\r\n          dispatch(\r\n            slice.actions.registerOrCancel({\r\n              id: id,\r\n              registered: false,\r\n              waitingList: true\r\n            })\r\n          );\r\n\r\n          dispatch(\r\n            updateSeminar({\r\n              id: id,\r\n              registered: false,\r\n              waitingList: true\r\n            })\r\n          );\r\n          onSuccess();\r\n          break;\r\n        case WorkshopRegisteredResult.ClosingDate:\r\n          dispatch(slice.actions.hasError({ result: SeminarErrorResult.ClosedContract }));\r\n          break;\r\n        case WorkshopRegisteredResult.ErrorPlacespaceAvailable:\r\n          dispatch(slice.actions.hasError({ result: SeminarErrorResult.PlaceSpaceAvailable }));\r\n          break;\r\n        default:\r\n          dispatch(slice.actions.hasError({ result: SeminarErrorResult.Error }));\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError({ result: SeminarErrorResult.Error }));\r\n    }\r\n  };\r\n};\r\n\r\nexport const registerWorkshop = (id: number) => (onSuccess: VoidFunction) => {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get<WorkshopRegisteredResponse>(\r\n        `/api/workshop/toregister/${id}`,\r\n        {\r\n          headers: { writeOnly: true }\r\n        }\r\n      );\r\n      const { errorDescription, result } = response.data;\r\n\r\n      switch (result) {\r\n        case WorkshopRegisteredResult.Success:\r\n          dispatch(\r\n            slice.actions.registerOrCancel({\r\n              id: id,\r\n              registered: true,\r\n              waitingList: false\r\n            })\r\n          );\r\n          dispatch(\r\n            updateSeminar({\r\n              id: id,\r\n              registered: true,\r\n              waitingList: false\r\n            })\r\n          );\r\n          onSuccess();\r\n          break;\r\n        case WorkshopRegisteredResult.ClosingDate:\r\n          dispatch(slice.actions.hasError({ result: SeminarErrorResult.ClosedContract }));\r\n          break;\r\n        case WorkshopRegisteredResult.ErrorPlacespaceAvailable:\r\n          dispatch(slice.actions.hasError({ result: SeminarErrorResult.PlaceSpaceAvailable }));\r\n          break;\r\n        default:\r\n          dispatch(slice.actions.hasError({ result: SeminarErrorResult.Error }));\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError({ result: SeminarErrorResult.Error }));\r\n    }\r\n  };\r\n};\r\n\r\nexport const getLinksPayment = (id: number) => (onSuccess: (url: string) => void) => {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n\r\n    try {\r\n      dispatch(slice.actions.startLoading());\r\n      let response = await axios.get<PaymentAddResponse>(\r\n        `/api/workshop/payment/add/${id}?urlreturn=${encodeURIComponent(document.location.href)}`\r\n      );\r\n      const { result, content } = response.data;\r\n      switch (result) {\r\n        case PaymentAddResult.Success:\r\n          onSuccess(content);\r\n          break;\r\n        default:\r\n          dispatch(slice.actions.hasError({ result: SeminarErrorResult.Payment }));\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError({ result: SeminarErrorResult.Error }));\r\n    }\r\n  };\r\n};\r\n","// ----------------------------------------------------------------------\r\n// material\r\n\r\nimport { Card, Typography, Stack } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport { ModeAccess } from '../@types/account';\r\nimport { ContractState } from '../@types/contract';\r\nimport { IllustrationInfo } from 'components/IllustrationMessage';\r\nimport useAuth from 'hooks/useAuth';\r\nimport Markdown from './Markdown';\r\nimport CardContainer from './CardContainer';\r\nimport Label from './Label';\r\n\r\nexport default function ModuleNotAuthorized() {\r\n  const { getMessagesAccess } = useAuth();\r\n\r\n  const message =\r\n    getMessagesAccess() ||\r\n    'Vous n’avez pas accès à toutes les fonctionnalités de l’Espace numérique de travail.';\r\n\r\n  return (\r\n    <Box>\r\n      <IllustrationInfo img={'/static/illustrations/general/ent.svg'} isColumn={false}>\r\n        <Box>\r\n          <Typography variant=\"body2\" color=\"error\">\r\n            <Markdown children={message!} />{' '}\r\n          </Typography>\r\n        </Box>\r\n      </IllustrationInfo>\r\n    </Box>\r\n  );\r\n}\r\n\r\nexport const InformationsContract = () => {\r\n  const { getContractCurrent, student } = useAuth();\r\n  const contrat = getContractCurrent();\r\n\r\n  if (student?.modeAccess !== ModeAccess.Read) return <></>;\r\n\r\n  const informations = [\r\n    { label: 'Recouvrement', value: contrat.debtRecovery },\r\n    { label: 'Blocage correction', value: contrat.debtRecovery?.blockingCorrection },\r\n    { label: 'Blocage plan étude', value: contrat.debtRecovery?.blockingTraining },\r\n    { label: 'Blocage paiement', value: contrat.debtRecovery?.blockingPayment },\r\n    { label: 'Blocage prolongation', value: contrat.debtRecovery?.blockingOvertime },\r\n    { label: 'Blocage temporaire ', value: contrat.debtRecovery?.UnBlockTemporary },\r\n    { label: 'Suspension plan détude ', value: contrat.suspendedTraining },\r\n    { label: 'Contrat inscrit', value: contrat.state === ContractState.Registred }\r\n  ];\r\n\r\n  return (\r\n    <CardContainer title=\"Raison d'un espace limité\" sx={{ m: 2 }}>\r\n      <Card sx={{ p: 3 }}>\r\n        {informations.map((i: any) => {\r\n          return (\r\n            <Stack\r\n              direction={'row'}\r\n              alignItems=\"center\"\r\n              justifyContent={'space-between'}\r\n              key={i.label}\r\n            >\r\n              <Typography variant=\"body2\">{i.label}</Typography>\r\n              {i.value ? (\r\n                <Label variant=\"ghost\" color=\"error\">\r\n                  Oui\r\n                </Label>\r\n              ) : (\r\n                <Label variant=\"ghost\" color=\"success\">\r\n                  Non\r\n                </Label>\r\n              )}\r\n            </Stack>\r\n          );\r\n        })}\r\n      </Card>\r\n    </CardContainer>\r\n  );\r\n};\r\n","import { MediaFile, MediaFileInfo } from './media';\r\n\r\nimport { Meeting } from './meeting';\r\nimport { Teacher } from './pedagogy';\r\nimport { SeminarStatus } from './seminar';\r\n\r\nexport type VirtualClassState = {\r\n  isLoading: boolean;\r\n  isLoadingList: boolean;\r\n  error: any;\r\n  virtualClasses: Array<VirtualClass>;\r\n  virtualClass: VirtualClass | null;\r\n  isFull: boolean;\r\n  isRequired: boolean;\r\n  isOpenModal: boolean;\r\n  virtualClassId: number;\r\n};\r\n\r\nexport interface VirtualClassListResponse {\r\n  list: VirtualClass[];\r\n  result: VirtualClassListResult;\r\n}\r\n\r\nexport enum VirtualClassListResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n\r\nexport interface VirtualClassItemResponse {\r\n  item: VirtualClass;\r\n  result: VirtualClassItemResult;\r\n}\r\n\r\nexport enum VirtualClassItemResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n\r\nexport interface VirtualClass {\r\n  id: number;\r\n  title: string;\r\n  description: string;\r\n  dateStart: string;\r\n  dateEnd: string;\r\n  state: SeminarStatus;\r\n  countMaxPlaces: number;\r\n  teacher: Teacher;\r\n  registered: boolean;\r\n  waitingList: boolean;\r\n  countRegistered: number;\r\n  isReplay: boolean;\r\n  content: string;\r\n  replay: Playback;\r\n  meeting: Meeting;\r\n  activityId: string;\r\n  medias: MediaFileInfo[];\r\n  isDocument: boolean;\r\n  supports: VirtualClassSupport[];\r\n  viewCount: number;\r\n  viewReplayCount: number;\r\n  isSurvey: boolean;\r\n}\r\n\r\nexport interface Playback {\r\n  playbackID: string;\r\n  activityID: string;\r\n  hyperlink: string;\r\n  title: string;\r\n  duration: string;\r\n}\r\n\r\nexport enum VirtualClassStatus {\r\n  None = 0,\r\n  Open = 1,\r\n  Cancel = 2,\r\n  Full = 3,\r\n  Close = 4,\r\n  All = 5,\r\n  Display = 6\r\n}\r\n\r\nexport interface VirtualClassSupport {\r\n  code: string;\r\n  label: string;\r\n  isRead: boolean;\r\n}\r\nexport interface VirtualClassRegisteredResponse {\r\n  result: VirtualClassRegisteredResult;\r\n  meeting: Meeting;\r\n}\r\n\r\nexport enum VirtualClassRegisteredResult {\r\n  Error = 0,\r\n  Success = 1,\r\n  Full = 2,\r\n  ClosedContract = 3,\r\n  OutCoaching = 4,\r\n  OutPartner = 5,\r\n  CloseClass = 6\r\n}\r\n\r\nexport interface VirtualClassAccessResponse {\r\n  link: string;\r\n  result: VirtualClassAccessResult;\r\n}\r\n\r\nexport enum VirtualClassAccessResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  OutOfTime = 2,\r\n  Invalid = 3,\r\n  Error = 4\r\n}\r\n\r\nexport interface ClassilioRequest {\r\n  lastName: string;\r\n  firstName: string;\r\n  email: string;\r\n  activityId: string;\r\n  playbackId: string;\r\n  id: number;\r\n}\r\n\r\nexport interface ClassilioResponse {\r\n  result: ClassilioResult;\r\n  url: string;\r\n  errorDescription: string;\r\n}\r\n\r\nexport enum ClassilioResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  Error = 2\r\n}\r\nexport interface VirtualClassCancelResponse {\r\n  result: VirtualClassCancelResult;\r\n}\r\n\r\nexport enum VirtualClassCancelResult {\r\n  Error = 0,\r\n  Success = 1\r\n}\r\n","import {\r\n  StudyPlanChapter,\r\n  StudyPlanItem,\r\n  StudyPlanItemHomework,\r\n  StudyPlanItemHtml,\r\n  StudyPlanItemMedia,\r\n  StudyPlanItemStatus,\r\n  StudyPlanItemType,\r\n  StudyPlanPhase,\r\n  StudyPlanView\r\n} from '../@types/pedagogy';\r\nimport { StudyPlanContext } from 'contexts/StudyPlanContext';\r\nimport { useContext } from 'react';\r\nimport useStudyPlan from './useStudyPlan';\r\nimport useAuth from './useAuth';\r\nimport useLocalStorage from './useLocalStorage';\r\nimport { getItemsByReference } from 'utils/helperStudyPlan';\r\nimport { getEvaluation } from 'redux/slices/learning';\r\nimport { dispatch } from 'redux/store';\r\n\r\nconst useStudyPlanChapterItem = () => {\r\n  const studyPlanManager = useContext(StudyPlanContext);\r\n  const { search } = useStudyPlan();\r\n  const { student, getContractCurrent, isReadOnly } = useAuth();\r\n  const [view, setView] = useLocalStorage<StudyPlanView>('view', StudyPlanView.SendingPhase);\r\n\r\n  /***\r\n   * Enregistrement de l'item sélectionné média,quiz....)\r\n   * la mise à jour du PE a été réalisé avant ce traitement\r\n   */\r\n  function onChange(value: StudyPlanItem) {\r\n    studyPlanManager?.saveProgress({\r\n      courseId:\r\n        value.type === StudyPlanItemType.Homework\r\n          ? (value as StudyPlanItemHomework)?.homeworkBase.courseId\r\n          : value.id,\r\n      id:\r\n        value.type === StudyPlanItemType.Homework\r\n          ? (value as StudyPlanItemHomework)?.homeworkBase.id.toString()\r\n          : '0',\r\n      type: value.type,\r\n      status: value.status,\r\n      mediaId:\r\n        value.type !== StudyPlanItemType.Homework && value.type !== StudyPlanItemType.Elearning\r\n          ? (value as StudyPlanItemMedia).media.id.toString()\r\n          : '0',\r\n      marked: false,\r\n      score: 0,\r\n      endOfRead:\r\n        value.type === StudyPlanItemType.Html ? (value as StudyPlanItemHtml)?.endOfRead : false\r\n    })((result) => {\r\n      //desactive la demande de mise à jour\r\n      studyPlanManager?.resetUpdated();\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Tag le status assimilate en base\r\n   */\r\n  function onAssimilate(event: any, checked: boolean) {\r\n    let item = studyPlanManager?.item!;\r\n\r\n    item!.status = checked ? StudyPlanItemStatus.Assimilate : StudyPlanItemStatus.Read;\r\n\r\n    studyPlanManager?.selectItem(\r\n      studyPlanManager?.chapter!,\r\n      studyPlanManager?.item!,\r\n      true,\r\n      studyPlanManager?.subChapter\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Selectionne un item à partir du sidebard\r\n   * @param item item\r\n   */\r\n  function update(item: StudyPlanItem | null, subChapter?: StudyPlanChapter | null) {\r\n    studyPlanManager?.selectItem(studyPlanManager.chapter!, item!, false, subChapter);\r\n  }\r\n\r\n  function updateById(id: string, rowNumber: number = 0) {\r\n    const result = search(id);\r\n\r\n    if (result && result.length > 0) {\r\n      let studyPlanSearch = null;\r\n\r\n      if (rowNumber > 0) studyPlanSearch = result.find((x) => x.item.rowNumber === rowNumber);\r\n\r\n      if (studyPlanSearch === null) studyPlanSearch = result[0];\r\n\r\n      if (studyPlanSearch)\r\n        studyPlanManager?.selectItem(\r\n          studyPlanSearch.chapterParent.level === 0\r\n            ? studyPlanSearch.chapter\r\n            : studyPlanSearch.chapterParent,\r\n          studyPlanSearch.item,\r\n          false,\r\n          studyPlanSearch.chapter.level === 2 ? studyPlanSearch.chapter : null\r\n        );\r\n    }\r\n  }\r\n\r\n  /**\r\n   * On reload le PE\r\n   * @param item item\r\n   */\r\n  const updateByActivity = (activity: any) => (onError: () => void) => {\r\n    dispatch(\r\n      getEvaluation(activity)((evaluation, learning, keyId) => {\r\n        const result = search(keyId);\r\n\r\n        if (result && result.length > 0) {\r\n          let studyPlanSearch = result[0];\r\n          (studyPlanSearch.item as StudyPlanItemHomework).homeworkBase.homeworks.push(evaluation);\r\n          (studyPlanSearch.item as StudyPlanItemHomework).homeworkBase.elearning = learning;\r\n\r\n          studyPlanManager?.selectItem(\r\n            studyPlanSearch.chapterParent.level === 0\r\n              ? studyPlanSearch.chapter\r\n              : studyPlanSearch.chapterParent,\r\n            studyPlanSearch.item,\r\n            false,\r\n            studyPlanSearch.chapter.level === 2 ? studyPlanSearch.chapter : null\r\n          );\r\n        }\r\n      })(() => {\r\n        console.log('note introuvable');\r\n      })\r\n    );\r\n  };\r\n\r\n  function getStatus(reference: string) {\r\n    let list: Array<StudyPlanItem> = [];\r\n\r\n    studyPlanManager?.phases?.map((phase: StudyPlanPhase) =>\r\n      phase.chapters.map((chapter: StudyPlanChapter) => {\r\n        getItemsByReference(chapter, reference, null, list);\r\n      })\r\n    );\r\n    return list;\r\n  }\r\n\r\n  return {\r\n    onAssimilate,\r\n    onChange,\r\n    update,\r\n    updateByActivity,\r\n    updateById,\r\n    getStatus,\r\n    selected: {\r\n      item: studyPlanManager?.item!,\r\n      chapter: studyPlanManager?.chapter!,\r\n      subChapter: studyPlanManager?.subChapter!\r\n    },\r\n    isReadOnly\r\n  };\r\n};\r\nexport default useStudyPlanChapterItem;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { dispatch, store } from '../store';\r\n// utils\r\nimport axios from '../../utils/axios';\r\n// @types\r\nimport {\r\n  Homework,\r\n  HomeworkInProgressState,\r\n  HomeworkInProgress,\r\n  HomeworkInProgressResponse,\r\n  HomeworkInProgressResult,\r\n  HomeworkContentRequest,\r\n  HomeworkSaveContentResponse,\r\n  HomeworkSaveContentResult,\r\n  HomeworkFileRequest,\r\n  HomeworkAddFileResponse,\r\n  HomeworkAddFileResult,\r\n  HomeworkSendResponse,\r\n  HomeworkSendResult\r\n} from '../../@types/pedagogy';\r\nimport { FileBaseInfo } from '../../@types/common';\r\nimport { useDBEvaluation } from 'hooks/useDBEvaluation';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: HomeworkInProgressState = {\r\n  isLoading: false,\r\n  isLoadingFile: false,\r\n  isLoadingSended: false,\r\n  errorFile: false,\r\n  errorSended: false,\r\n  error: false,\r\n  homeworkInProgress: null\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'homeworkInProgress',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n      state.error = false;\r\n    },\r\n\r\n    startLoadingFile(state) {\r\n      state.isLoadingFile = true;\r\n      state.errorFile = false;\r\n    },\r\n\r\n    startLoadingSended(state) {\r\n      state.isLoadingSended = true;\r\n      state.errorSended = false;\r\n    },\r\n\r\n    endLoading(state) {\r\n      state.isLoading = false;\r\n      state.error = false;\r\n    },\r\n\r\n    endLoadingFile(state) {\r\n      state.isLoadingFile = false;\r\n      state.errorFile = false;\r\n    },\r\n\r\n    initErrorFile(state) {\r\n      state.isLoadingFile = false;\r\n      state.errorFile = false;\r\n    },\r\n\r\n    initError(state) {\r\n      state.isLoading = false;\r\n      state.error = false;\r\n    },\r\n\r\n    endLoadingSended(state) {\r\n      state.isLoadingSended = false;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasErrorFile(state, action) {\r\n      state.isLoadingFile = false;\r\n      state.errorFile = action.payload;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasErrorSended(state, action) {\r\n      state.isLoadingSended = false;\r\n      state.errorSended = action.payload;\r\n    },\r\n\r\n    // GET POSTS\r\n    getHomeworkInProgressSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.homeworkInProgress = action.payload;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nexport const { initErrorFile, initError, startLoadingFile, endLoadingFile, hasErrorFile } =\r\n  slice.actions;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport const getHomeworkInProgress =\r\n  (courseId: string, id: number) => (onSuccess: (item: HomeworkInProgress) => void) => {\r\n    return async () => {\r\n      const { dispatch } = store;\r\n      dispatch(slice.actions.startLoading());\r\n      try {\r\n        const response = await axios.get<HomeworkInProgressResponse>(\r\n          `/api/pedagogy/homework/inprogress/${courseId}/${id}`\r\n        );\r\n        const { result, item } = response.data;\r\n        switch (result) {\r\n          case HomeworkInProgressResult.Success:\r\n            dispatch(slice.actions.endLoading());\r\n            // dispatch(slice.actions.getHomeworkInProgressSuccess(item));\r\n            onSuccess(item);\r\n            // dispatch(slice.actions.getHomeworkInProgressSuccess(item));\r\n            break;\r\n        }\r\n      } catch (error) {\r\n        dispatch(slice.actions.hasError(error));\r\n      }\r\n    };\r\n  };\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport const saveContentAuto = (request: HomeworkContentRequest) => (onSuccess: () => void) => {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n\r\n    try {\r\n      const response = await axios.post<HomeworkSaveContentResponse>(\r\n        `/api/pedagogy/homework/save/auto`,\r\n        request,\r\n        {\r\n          headers: { writeOnly: true }\r\n        }\r\n      );\r\n      const { result } = response.data;\r\n      switch (result) {\r\n        case HomeworkSaveContentResult.Success:\r\n          onSuccess();\r\n\r\n          break;\r\n        case HomeworkSaveContentResult.NotFound:\r\n        case HomeworkSaveContentResult.Error:\r\n          dispatch(slice.actions.hasError(99));\r\n\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(99));\r\n    }\r\n  };\r\n};\r\n// ----------------------------------------------------------------------\r\n\r\nexport const deleteFileHomeworkInProgress = (id: number) => (onSuccess: () => void) => {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoadingFile());\r\n    try {\r\n      const response = await axios.get<boolean>(`/api/pedagogy/homework/inprogress/delete/${id}`, {\r\n        headers: { writeOnly: true }\r\n      });\r\n      if (response.data) {\r\n        onSuccess();\r\n        dispatch(slice.actions.endLoadingFile());\r\n        return;\r\n      }\r\n\r\n      dispatch(slice.actions.hasError(99));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(99));\r\n    }\r\n    dispatch(slice.actions.endLoadingFile());\r\n  };\r\n};\r\n// ----------------------------------------------------------------------\r\n\r\nexport const addFileHomeworkInProgress =\r\n  (request: HomeworkFileRequest) =>\r\n  (onSuccess: (files: Array<FileBaseInfo>) => void) =>\r\n  (onError: (request: HomeworkFileRequest, message: string) => void) =>\r\n  (onAddFileError: (files: Array<FileBaseInfo>, error: HomeworkAddFileResult) => void) => {\r\n    return async () => {\r\n      const formData = new FormData();\r\n      dispatch(slice.actions.startLoadingFile());\r\n\r\n      if (request.files != null) {\r\n        request.files.forEach((file) => {\r\n          formData.append('file', file);\r\n        });\r\n      }\r\n      formData.append('data', JSON.stringify(request));\r\n      try {\r\n        let response = await axios.post<HomeworkAddFileResponse>(\r\n          `/api/pedagogy/homework/inprogress/files`,\r\n          formData,\r\n          {\r\n            headers: { 'Content-Type': 'multipart/form-data', writeOnly: true }\r\n          }\r\n        );\r\n        const { result, files } = response.data;\r\n\r\n        switch (result) {\r\n          case HomeworkAddFileResult.Success:\r\n            dispatch(slice.actions.endLoadingFile());\r\n            onSuccess(files);\r\n            break;\r\n          case HomeworkAddFileResult.ErrorFilesSizeReached:\r\n            if (files.length > 0) {\r\n              dispatch(slice.actions.endLoadingFile());\r\n              onSuccess(files);\r\n            } else {\r\n              dispatch(slice.actions.hasErrorFile(result));\r\n              onAddFileError(files, result);\r\n            }\r\n\r\n            break;\r\n          case HomeworkAddFileResult.ErrorHomeworkSended:\r\n            if (files.length > 0) {\r\n              onSuccess(files);\r\n              dispatch(slice.actions.endLoadingFile());\r\n            } else {\r\n              dispatch(slice.actions.hasErrorFile(result));\r\n              onAddFileError(files, result);\r\n            }\r\n\r\n            break;\r\n\r\n          default:\r\n            dispatch(slice.actions.hasErrorFile(result));\r\n            onAddFileError(files, result);\r\n            break;\r\n        }\r\n      } catch (e: any) {\r\n        onError(request, e.message);\r\n        dispatch(slice.actions.hasErrorFile(99));\r\n      }\r\n    };\r\n  };\r\n\r\n/**\r\n * envoi le devoir à l'école\r\n * @param request\r\n * @returns\r\n */\r\nexport const sendHomeworkInProgress =\r\n  (request: HomeworkContentRequest) =>\r\n  (onSuccess: (homeworkSended: Homework) => void) =>\r\n  (onError: () => void) => {\r\n    return async () => {\r\n      dispatch(slice.actions.startLoadingSended());\r\n      try {\r\n        let response = await axios.post<HomeworkSendResponse>(\r\n          `/api/pedagogy/homework/send/`,\r\n          request\r\n        );\r\n        const { result, sended } = response.data;\r\n        switch (result) {\r\n          case HomeworkSendResult.Success:\r\n            dispatch(slice.actions.endLoadingSended());\r\n            onSuccess(sended);\r\n            break;\r\n          default:\r\n            dispatch(slice.actions.hasErrorSended(result));\r\n            onError();\r\n            break;\r\n        }\r\n      } catch (e) {\r\n        dispatch(slice.actions.hasErrorSended(99));\r\n        onError();\r\n      }\r\n    };\r\n  };\r\n","import { Card, CardContent, CardHeader, CardProps, styled, useTheme } from '@mui/material';\r\nimport { ModuleType } from '../@types/contract';\r\nimport ModuleGuard from 'guards/ModuleGuard';\r\nimport { ReactNode } from 'react';\r\n\r\nconst CardStyle = styled(Card)(({ theme }) => ({\r\n  backgroundColor: '#F6F7F8',\r\n  boxShadow: theme.customShadows.z16,\r\n  borderRadius: theme.shape.borderRadiusMd,\r\n  minHeight: '100%'\r\n}));\r\n\r\nexport interface CardContainerProps extends CardProps {\r\n  title?: string;\r\n  subheader?: ReactNode;\r\n  linkedModules?: Array<ModuleType>;\r\n  avatar?: ReactNode;\r\n}\r\n\r\nexport default function CardContainer({\r\n  title,\r\n  subheader,\r\n  children,\r\n  linkedModules,\r\n  avatar,\r\n  sx,\r\n  ...other\r\n}: CardContainerProps) {\r\n  return (\r\n    <CardStyle sx={{ ...sx }} {...other}>\r\n      {title && <CardHeader title={title} subheader={subheader} avatar={avatar} />}\r\n      <CardContent sx={{ p: 1 }}>\r\n        {!linkedModules ? (\r\n          children\r\n        ) : (\r\n          <ModuleGuard accessibleModules={linkedModules}>{children}</ModuleGuard>\r\n        )}\r\n      </CardContent>\r\n    </CardStyle>\r\n  );\r\n}\r\n","import useAuth from 'hooks/useAuth';\r\nimport { useEffect } from 'react';\r\nimport TagManager from 'react-gtm-module';\r\nimport { useLocation } from 'react-router';\r\nimport useBrand from './useBrand';\r\n\r\nexport type TagManagerArgs = {\r\n  chapter?: string;\r\n  sub_chapter?: string;\r\n  material_name?: string;\r\n  material_type?: string;\r\n  page_path?: string;\r\n  page_level_1?: string;\r\n  page_level_2?: string;\r\n  page_level_3?: string;\r\n  item_list_num?: string;\r\n};\r\n\r\n/**\r\n * Tracking des pages consultées\r\n * @param param0\r\n * @returns\r\n */\r\nexport default function useTrackerGoogle() {\r\n  const { getContractCurrent, student, isReadOnly } = useAuth();\r\n  const { brandName } = useBrand();\r\n  const { pathname } = useLocation();\r\n\r\n  /**\r\n *  pageview({\r\n      chapitre: managerChapterItem.selected?.chapter?.label,\r\n      page: 'formation-details',\r\n      sous_chapitre: managerChapterItem.selected?.subChapter?.label,\r\n      support_name: managerChapterItem.selected?.item?.label,\r\n      support_type: StudyPlanItemType[managerChapterItem.selected?.item?.type].toString()\r\n    });\r\n */\r\n\r\n  const loginPageView = () => {\r\n    const tagManagerArgs = {\r\n      dataLayer: {\r\n        event: 'pageview',\r\n        brand: brandName,\r\n        page_level_1: '/login',\r\n        page_type: 'ENT'\r\n      }\r\n    };\r\n\r\n    TagManager.dataLayer(tagManagerArgs);\r\n  };\r\n\r\n  const pageview = (tags: TagManagerArgs) => {\r\n    const { training, id, brand } = getContractCurrent();\r\n    if (isReadOnly) return;\r\n\r\n    const tagManagerArgs = {\r\n      dataLayer: {\r\n        event: 'pageview',\r\n        brand: brand.label,\r\n        course: training.id,\r\n        chapter: tags?.chapter,\r\n        sub_chapter: tags?.sub_chapter,\r\n        material_name: tags?.material_name,\r\n        material_type: tags?.material_type,\r\n        user_id: student?.id,\r\n        contract_id: id,\r\n        page_path: tags.page_path || pathname,\r\n        page_level_1: tags.page_level_1,\r\n        page_level_2: tags.page_level_2,\r\n        page_level_3: tags.page_level_3,\r\n        page_type: 'ENT',\r\n        item_list_num: tags.item_list_num\r\n      }\r\n    };\r\n\r\n    TagManager.dataLayer(tagManagerArgs);\r\n  };\r\n\r\n  const event = () => {};\r\n\r\n  return { loginPageView, pageview, event };\r\n}\r\n","import {\r\n  TextField,\r\n  InputLabel,\r\n  FormControl,\r\n  Select,\r\n  MenuItem,\r\n  FormHelperText,\r\n  FormControlLabel,\r\n  Checkbox\r\n} from '@mui/material';\r\nimport { useField } from 'formik';\r\nimport { at } from 'lodash';\r\nimport { useEffect } from 'react';\r\nimport Label from 'components/Label';\r\nimport { Box } from '@mui/system';\r\n/**\r\n * Composants inputText, select et checkBox pour formik\r\n */\r\n\r\nexport function InputField(props: any) {\r\n  const { errorText, ...rest } = props;\r\n  const [field, meta] = useField(props);\r\n\r\n  function renderHelperText() {\r\n    const [touched, error] = at(meta, 'touched', 'error');\r\n\r\n    if (touched && error) {\r\n      return error;\r\n    }\r\n  }\r\n\r\n  return (\r\n    <TextField\r\n      type=\"text\"\r\n      error={meta.touched && meta.error && true}\r\n      helperText={renderHelperText()}\r\n      {...field}\r\n      {...rest}\r\n    />\r\n  );\r\n}\r\n\r\nexport function SelectField(props: any) {\r\n  const { label, data, defaultValue, ...rest } = props;\r\n  const [field, meta, helpers] = useField(props);\r\n  const { value: selectedValue } = field;\r\n  const { setValue } = helpers;\r\n  const [touched, error] = at(meta, 'touched', 'error');\r\n  const isError = error && true;\r\n\r\n  function renderHelperText() {\r\n    if (isError) {\r\n      return <FormHelperText>{error}</FormHelperText>;\r\n    }\r\n  }\r\n\r\n  useEffect(() => {\r\n    if (defaultValue) setValue(defaultValue);\r\n  }, []);\r\n\r\n  return (\r\n    <FormControl {...rest} error={isError}>\r\n      <InputLabel\r\n        style={{\r\n          backgroundColor: 'white',\r\n          paddingLeft: '5px',\r\n          paddingRight: '5px'\r\n        }}\r\n      >\r\n        {label}\r\n      </InputLabel>\r\n      <Select {...field} value={selectedValue ? selectedValue : ''}>\r\n        {data?.map((item: any, index: number) => (\r\n          <MenuItem key={index} value={item.code}>\r\n            {item.label}\r\n          </MenuItem>\r\n        ))}\r\n      </Select>\r\n      {renderHelperText()}\r\n    </FormControl>\r\n  );\r\n}\r\n\r\nexport function CheckboxField(props: any) {\r\n  const { label, ...rest } = props;\r\n  const [field, meta, helper] = useField(props);\r\n  const { setValue } = helper;\r\n\r\n  function renderHelperText() {\r\n    const [touched, error] = at(meta, 'touched', 'error');\r\n    if (touched && error) {\r\n      return <FormHelperText>{error}</FormHelperText>;\r\n    }\r\n  }\r\n\r\n  function handleChange(e: any) {\r\n    setValue(e.target.checked);\r\n  }\r\n\r\n  return (\r\n    <FormControl>\r\n      <FormControlLabel\r\n        value={field.checked || field.value}\r\n        checked={field.checked || field.value}\r\n        control={<Checkbox {...field} onChange={handleChange} />}\r\n        label={label}\r\n        {...rest}\r\n      />\r\n      {renderHelperText()}\r\n    </FormControl>\r\n  );\r\n}\r\n\r\nexport function ControllerField(props: any) {\r\n  const { errorText, value } = props;\r\n  const [field, meta, helpers] = useField(props);\r\n  const { setValue } = helpers;\r\n\r\n  function renderHelperText() {\r\n    const [touched, error] = at(meta, 'touched', 'error');\r\n    if (touched && error) {\r\n      return error;\r\n    }\r\n  }\r\n\r\n  useEffect(() => {\r\n    setValue(value);\r\n  }, [value]);\r\n\r\n  return (\r\n    <Box>\r\n      {meta.touched && meta.error && true && (\r\n        <Label variant=\"ghost\" color=\"error\">\r\n          {renderHelperText()}\r\n        </Label>\r\n      )}\r\n    </Box>\r\n  );\r\n}\r\n","import { LoadingButton } from '@mui/lab';\r\nimport { Dialog, Button, DialogActions, DialogProps } from '@mui/material';\r\nimport { ReactNode } from 'react';\r\nimport IllustrationMessage from './IllustrationMessage';\r\n\r\nexport type DialogConfirmWidthType = 'xs' | 'sm';\r\n\r\nexport interface DialogConfirmProps extends DialogProps {\r\n  isLoading?: boolean;\r\n  onConfirm?: () => void;\r\n  onCancel?: () => void;\r\n  children: ReactNode;\r\n  withoutImage?: boolean;\r\n  disabled?: boolean;\r\n}\r\n\r\nexport default function DialogConfirm({\r\n  open,\r\n  isLoading = false,\r\n  onConfirm,\r\n  onCancel,\r\n  children,\r\n  maxWidth = 'xs',\r\n  withoutImage = false,\r\n  disabled = false,\r\n  ...sx\r\n}: DialogConfirmProps) {\r\n  const content = (\r\n    <>\r\n      {children}\r\n\r\n      <DialogActions>\r\n        {onCancel && (\r\n          <Button onClick={onCancel} disabled={isLoading}>\r\n            Fermer\r\n          </Button>\r\n        )}\r\n        {onConfirm && (\r\n          <LoadingButton\r\n            color=\"primary\"\r\n            variant=\"contained\"\r\n            loading={isLoading || disabled}\r\n            loadingIndicator={disabled ? 'CONFIRMER' : 'Traitement...'}\r\n            onClick={onConfirm}\r\n          >\r\n            Confirmer\r\n          </LoadingButton>\r\n        )}\r\n      </DialogActions>\r\n    </>\r\n  );\r\n\r\n  return (\r\n    <Dialog open={open} maxWidth={maxWidth} {...sx}>\r\n      {withoutImage ? (\r\n        <> {content}</>\r\n      ) : (\r\n        <>\r\n          <IllustrationMessage>{content}</IllustrationMessage>\r\n        </>\r\n      )}\r\n    </Dialog>\r\n  );\r\n}\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { RootState, store } from '../store';\r\n// utils\r\nimport axios from '../../utils/axios';\r\nimport { AxiosResponse } from 'axios';\r\n//Redux\r\nimport { addEvent, removeEvent, updateEvent } from 'redux/slices/agenda';\r\n\r\n// @types\r\nimport {\r\n  Meeting,\r\n  MeetingAccessResponse,\r\n  MeetingAccessResult,\r\n  MeetingAddOrUpdateResponse,\r\n  MeetingAddOrUpdateResult,\r\n  MeetingCancelResponse,\r\n  MeetingCancelResult,\r\n  MeetingState\r\n} from '../../@types/meeting';\r\nimport { convertMeetingToAgendaEvents } from 'mapper/agendaMap';\r\n\r\nimport { SurveyRequest } from '../../@types/survey';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: MeetingState = {\r\n  isLoading: false,\r\n  error: false,\r\n  meeting: null\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'meeting',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n    },\r\n    // end LOADING\r\n    endLoading(state) {\r\n      state.isLoading = false;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    // meeting by event\r\n    selectMeetingByEvent(state, action) {\r\n      state.error = null;\r\n      state.meeting = action.payload;\r\n      state.isLoading = false;\r\n    },\r\n\r\n    // meeting\r\n    selectMeeting(state, action) {\r\n      state.error = null;\r\n      state.meeting = action.payload;\r\n      state.isLoading = false;\r\n    },\r\n\r\n    // Remove\r\n    removeMeeting(state) {\r\n      state.error = null;\r\n      state.meeting = null;\r\n      state.isLoading = false;\r\n    },\r\n\r\n    // CLOSE MODAL\r\n    closeModal(state) {\r\n      state.isLoading = false;\r\n      state.meeting = null;\r\n      state.error = null;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nexport const { selectMeeting, selectMeetingByEvent, closeModal, removeMeeting } = slice.actions;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport const addOrUpdateMeeting = (meeting: Meeting) => (onSuccess: (meeting: Meeting) => void) => {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.post<MeetingAddOrUpdateResponse>(\r\n        '/api/meeting/addOrUpdate',\r\n        meeting\r\n      );\r\n\r\n      const { result, item } = response.data;\r\n\r\n      switch (result) {\r\n        case MeetingAddOrUpdateResult.Success:\r\n          if (meeting.id === 0) dispatch(addEvent([convertMeetingToAgendaEvents(item)]));\r\n          else dispatch(updateEvent(convertMeetingToAgendaEvents(item)));\r\n\r\n          onSuccess(item);\r\n          break;\r\n        default:\r\n          dispatch(slice.actions.hasError(response.data));\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError({ result: 99 }));\r\n    }\r\n  };\r\n};\r\n\r\nexport const cancelMeeting = (meeting: Meeting) => (onSuccess: () => void) => {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get<MeetingCancelResponse>(`/api/meeting/cancel/${meeting.id}`);\r\n      const { result } = response.data;\r\n\r\n      switch (result) {\r\n        case MeetingCancelResult.Success:\r\n          dispatch(slice.actions.removeMeeting());\r\n          dispatch(removeEvent({ eventId: meeting.id }));\r\n          onSuccess();\r\n          break;\r\n        default:\r\n          dispatch(slice.actions.hasError({ result: 99 }));\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError({ result: 99 }));\r\n    }\r\n  };\r\n};\r\n\r\nexport const getUrlVisio =\r\n  (id: number) =>\r\n  (onSuccess: (url: string, survey: SurveyRequest) => void) =>\r\n  (onError: (error: number) => void) => {\r\n    return async () => {\r\n      const { dispatch } = store;\r\n      dispatch(slice.actions.startLoading());\r\n      try {\r\n        var response = await axios.get<MeetingAccessResponse>(`/api/meeting/${id}/access`);\r\n        const { result, link, survey } = response.data;\r\n        switch (result) {\r\n          case MeetingAccessResult.Success:\r\n            dispatch(slice.actions.endLoading());\r\n            onSuccess(link, survey);\r\n            break;\r\n          default:\r\n            dispatch(slice.actions.endLoading());\r\n            onError(result);\r\n\r\n            return;\r\n        }\r\n      } catch (ex) {\r\n        dispatch(slice.actions.endLoading());\r\n        onError(99);\r\n      }\r\n    };\r\n  };\r\n","import {\r\n  ArticleOutlined,\r\n  Edit,\r\n  FolderOpen,\r\n  HelpCenter,\r\n  LinkSharp,\r\n  MusicNote,\r\n  OndemandVideoOutlined,\r\n  SvgIconComponent,\r\n  Videocam\r\n} from '@mui/icons-material';\r\nimport { BoxProps } from '@mui/system';\r\nimport { StudyPlanItem, StudyPlanItemMedia, StudyPlanItemType } from '../@types/pedagogy';\r\n\r\nexport function getTypeSupport(type: StudyPlanItemType, sx?: any) {\r\n  switch (type) {\r\n    //Annexes\r\n    /*\r\n      case StudyPlanItemType.:\r\n          return <FolderOpen />\r\n      */\r\n    case StudyPlanItemType.Audio:\r\n      return {\r\n        icon: <IconTypeSupport type={type} sx={{ ...sx }} />,\r\n        label: 'Audio'\r\n      };\r\n    case StudyPlanItemType.Elearning:\r\n      return {\r\n        icon: <IconTypeSupport type={type} sx={{ ...sx }} />,\r\n        label: 'Activité e-learning'\r\n      };\r\n    case StudyPlanItemType.Homework:\r\n      return { icon: <IconTypeSupport type={type} sx={{ ...sx }} />, label: 'Évaluation' };\r\n    case StudyPlanItemType.Url:\r\n      return { icon: <IconTypeSupport type={type} sx={{ ...sx }} />, label: 'Lien' };\r\n    case StudyPlanItemType.Video:\r\n      return { icon: <IconTypeSupport type={type} sx={{ ...sx }} />, label: 'Vidéo' };\r\n    //return <Videocam />\r\n    default:\r\n      return { icon: <IconTypeSupport type={type} sx={{ ...sx }} />, label: 'Cours' };\r\n  }\r\n}\r\n\r\ninterface IconTypeSupportProps extends BoxProps {\r\n  type: StudyPlanItemType;\r\n}\r\n\r\nexport function IconTypeSupport({ type, sx }: IconTypeSupportProps) {\r\n  switch (type) {\r\n    //Annexes\r\n    /*\r\n      case StudyPlanItemType.:\r\n          return <FolderOpen />\r\n      */\r\n    case StudyPlanItemType.Audio:\r\n      return <MusicNote sx={{ color: '#637381', ...sx }} />;\r\n    case StudyPlanItemType.Elearning:\r\n      return <HelpCenter sx={{ color: '#637381', ...sx }} />;\r\n    case StudyPlanItemType.Homework:\r\n      return <Edit sx={{ color: '#637381', ...sx }} />;\r\n    case StudyPlanItemType.Url:\r\n      return <LinkSharp sx={{ color: '#637381', ...sx }} />;\r\n    case StudyPlanItemType.Video:\r\n      return <OndemandVideoOutlined sx={{ color: '#637381', ...sx }} />;\r\n    //return <Videocam />\r\n    default:\r\n      return <ArticleOutlined sx={{ color: '#637381', ...sx }} />;\r\n  }\r\n}\r\nexport const getStudyPlanItemLabel = (item: StudyPlanItem) => {\r\n  switch (item.type) {\r\n    case StudyPlanItemType.Audio:\r\n    case StudyPlanItemType.Video:\r\n    case StudyPlanItemType.Url:\r\n    case StudyPlanItemType.Pdf:\r\n    case StudyPlanItemType.Annexe:\r\n      const media = (item as StudyPlanItemMedia).media;\r\n      return {\r\n        label: media.title,\r\n        observation:\r\n          media.observation?.toLowerCase() === media.title?.toLowerCase() ? '' : media.observation\r\n      };\r\n\r\n    default:\r\n      return { label: item.label, observation: '' };\r\n  }\r\n};\r\n","import { ContactlessOutlined } from '@mui/icons-material';\r\nimport {\r\n  format,\r\n  getTime,\r\n  formatDistanceToNow,\r\n  addMonths,\r\n  isAfter,\r\n  addMinutes,\r\n  formatDistance,\r\n  isBefore,\r\n  getWeek,\r\n  isValid,\r\n  differenceInMonths,\r\n  startOfDay,\r\n  lastDayOfWeek,\r\n  addDays,\r\n  startOfWeek,\r\n  differenceInHours,\r\n  differenceInMinutes,\r\n  addSeconds,\r\n  endOfMonth,\r\n  eachWeekendOfYear,\r\n  eachWeekOfInterval,\r\n  addMilliseconds\r\n} from 'date-fns';\r\nimport fr from 'date-fns/locale/fr';\r\nimport { formatInTimeZone } from 'date-fns-tz';\r\nimport moment from 'moment';\r\n// ----------------------------------------------------------------------\r\n\r\nexport function differenceBetweenHours(\r\n  date: Date | string | number,\r\n  dateEnd: Date | string | number\r\n) {\r\n  return differenceInHours(new Date(date), new Date(dateEnd));\r\n}\r\n\r\nexport function getDateFromTimeStamp(value: number) {\r\n  return new Date(value * 1000);\r\n}\r\n\r\nexport function differenceBetweenMinute(\r\n  date: Date | string | number,\r\n  dateEnd: Date | string | number\r\n) {\r\n  return differenceInMinutes(new Date(date), new Date(dateEnd));\r\n}\r\n\r\nexport function isDateValid(date: any): boolean {\r\n  return isValid(date);\r\n}\r\n\r\nexport function isAfterDate(date: Date | string | number, dateEnd: Date | string | number) {\r\n  return isAfter(new Date(date), new Date(dateEnd));\r\n}\r\n\r\nexport function isBeforeDate(start: Date | string | number, end: Date | string | number) {\r\n  return isBefore(new Date(start), new Date(end));\r\n}\r\n\r\nexport const fDateMeeting = (start: Date | string, end: Date | string): string => {\r\n  return `${format(new Date(start), 'eeee dd MMMM yyyy', { locale: fr })}, de ${format(\r\n    new Date(start),\r\n    'HH:mm',\r\n    { locale: fr }\r\n  )} à ${format(new Date(end), 'HH:mm', { locale: fr })}`;\r\n};\r\n\r\nexport const fPeriode = (start: Date | string, end: Date | string) => {\r\n  if (new Date(start).getMonth() !== new Date(end).getMonth()) {\r\n    return `${fDate(start)} au ${fDate(end)}`;\r\n  }\r\n  return `${fDate(start, 'dd')} - ${fDate(end, 'dd MMM yyyy')}`;\r\n};\r\n\r\nexport const fDatePeriode = (start: Date | string, end: Date | string, formatDate: string) => {\r\n  if (new Date(start).getDay() !== new Date(end).getDay()) {\r\n    return `${format(new Date(start), 'eeee dd MMMM yyyy à HH:mm', { locale: fr })} au ${format(\r\n      new Date(end),\r\n      'eeee dd MMMM yyyy à HH:mm',\r\n      { locale: fr }\r\n    )}`;\r\n  }\r\n  return `${format(new Date(start), formatDate, { locale: fr })} à ${format(\r\n    new Date(end),\r\n    'HH:mm',\r\n    { locale: fr }\r\n  )}`;\r\n};\r\n\r\nexport const fDashboardDate = (start: Date | string, end: Date | string): string => {\r\n  return `${format(new Date(start), 'eeee dd MMMM yyyy', { locale: fr })}, ${format(\r\n    new Date(start),\r\n    'HH:mm',\r\n    { locale: fr }\r\n  )} à ${format(new Date(end), 'HH:mm', { locale: fr })}`;\r\n};\r\n\r\nexport const fFullDateWithHours = (date: Date | string): string => {\r\n  return `${format(new Date(date), 'eeee dd MMMM yyyy', { locale: fr })}, à ${format(\r\n    new Date(date),\r\n    'HH:mm',\r\n    { locale: fr }\r\n  )}`;\r\n};\r\n\r\nexport function timeCount(start: Date | string, target: Date | string) {\r\n  let result = '';\r\n\r\n  if (start && start !== '' && target && target != '') {\r\n    const startDate = moment(new Date(start).getTime());\r\n    const targetDate = moment(new Date(target).getTime());\r\n    let diffDuration = startDate.diff(targetDate);\r\n\r\n    if (diffDuration !== 0) {\r\n      // RDV dans le futur ou dans le passé\r\n      if (diffDuration > 0) {\r\n        result = 'dans';\r\n      } else {\r\n        result = 'commencé depuis';\r\n      }\r\n      // Passage en valeur absolue pour le calcul\r\n      diffDuration = Math.abs(diffDuration);\r\n\r\n      const totalDays = diffDuration / (24 * 60 * 60 * 1000);\r\n      const days = Math.floor(totalDays);\r\n      const daysms = diffDuration % (24 * 60 * 60 * 1000);\r\n      const hours = Math.floor(daysms / (60 * 60 * 1000));\r\n      const hoursms = diffDuration % (60 * 60 * 1000);\r\n      const minutes = Math.floor(hoursms / (60 * 1000));\r\n      //const minutesms = diffDuration % (60 * 1000);\r\n      //const sec = Math.floor(minutesms / 1000);\r\n\r\n      const durations = [];\r\n\r\n      if (days > 0) {\r\n        durations.push(`${days} jour${days > 1 ? 's' : ''}`);\r\n      }\r\n      if (hours > 0) {\r\n        durations.push(`${hours} heure${hours > 1 ? 's' : ''}`);\r\n      }\r\n      if (minutes > 0) {\r\n        durations.push(`${minutes} minute${minutes > 1 ? 's' : ''}`);\r\n      }\r\n\r\n      if (durations.length > 0) {\r\n        result = `${result} ${durations.join(', ')}`;\r\n      } else {\r\n        result = '';\r\n      }\r\n    }\r\n  }\r\n\r\n  return result;\r\n}\r\n\r\nexport function addTime(date: Date | string | number, minute: number) {\r\n  return addMinutes(new Date(date), minute);\r\n}\r\n\r\nexport function addDayss(date: Date | number, day: number) {\r\n  return addDays(date, day);\r\n}\r\n\r\nexport function fDate(date: Date | string | number, formatType: string = 'dd MMMM yyyy') {\r\n  return format(new Date(date), formatType, { locale: fr }); //\r\n}\r\n\r\nexport function fDateTime(date: Date | string | number) {\r\n  return format(new Date(date), 'dd MMM yyyy p', { locale: fr });\r\n}\r\nexport function fDateFromNovadis(date: number, format: string = 'dd MMMM yyyy') {\r\n  if (date === 0) return '';\r\n\r\n  let datString = `${date.toString().substring(0, 4)}-${date.toString().substring(4, 6)}-${date\r\n    .toString()\r\n    .substring(6, 8)}`;\r\n\r\n  return fDate(datString, format);\r\n}\r\n\r\nexport function fTime(date: Date | string | number) {\r\n  return format(new Date(date), 'HH:mm', { locale: fr });\r\n}\r\n\r\nexport function fTimestamp(date: Date | string | number) {\r\n  return getTime(new Date(date));\r\n}\r\n\r\nexport function fDateTimeSuffix(date: Date | string | number) {\r\n  return format(new Date(date), 'dd/MM/yyyy HH:mm p', { locale: fr });\r\n}\r\n\r\nexport function fToNow(date: Date | string | number) {\r\n  return formatDistanceToNow(new Date(date), {\r\n    addSuffix: true,\r\n    locale: fr\r\n  });\r\n}\r\n\r\nexport const formatAPI = (date: Date | string) => {\r\n  return format(new Date(date), 'yyyy-MM-dd', { locale: fr });\r\n};\r\n\r\nexport const getDateMonthGlissant = (month: number): Date => {\r\n  return addMonths(new Date(), month);\r\n};\r\n\r\nexport const getDateTimeToString = () => {\r\n  return format(new Date(), 'yyyy-MM-dd HH:mm:ss.00', { locale: fr });\r\n};\r\n\r\nexport const getTimeToString = (date: Date | string) => {\r\n  return format(new Date(date), 'HH:mm', { locale: fr });\r\n};\r\n\r\nexport const convertStringToDate = (date: string) => {\r\n  return new Date(date);\r\n};\r\n\r\nexport const setDateTime = (date: string, time: string) => {\r\n  let dateString = fDate(date, 'YYYY-MM-DD');\r\n\r\n  return new Date(`${dateString}T${time}:00`);\r\n};\r\n\r\nexport function getWeekdaysDescriptions(): Array<any> {\r\n  return [\r\n    { label: 'Lundi', value: 1 },\r\n    { label: 'Mardi', value: 2 },\r\n    { label: 'Mercredi', value: 3 },\r\n    { label: 'Jeudi', value: 4 },\r\n    { label: 'Vendredi', value: 5 },\r\n    { label: 'Samedi', value: 6 },\r\n    { label: 'Dimanche', value: 0 }\r\n  ];\r\n}\r\n\r\nexport const getWeekDays = (date: Date): Array<Date> => {\r\n  let startDate = startOfWeek(date);\r\n  let endDate = lastDayOfWeek(date);\r\n  const weeks = [];\r\n\r\n  while (startDate <= endDate) {\r\n    weeks.push(startDate);\r\n    startDate = addDays(startDate, 1);\r\n  }\r\n\r\n  return weeks;\r\n};\r\n\r\nexport const getWeekDaysMove = (date: Date, upOrDown: boolean): Array<Date> => {\r\n  return getWeekDays(addDays(date, upOrDown ? 7 : -1));\r\n};\r\n\r\nexport const convertMinsToHrsMins = (mins: number) => {\r\n  let h = Math.floor(mins / 60);\r\n  let m = mins % 60;\r\n  const hours = h < 10 ? '0' + h : h; // (or alternatively) h = String(h).padStart(2, '0')\r\n  const minutes = m < 10 ? '0' + m : m; // (or alternatively) m = String(m).padStart(2, '0')\r\n  return `${hours}:${minutes}`;\r\n};\r\n\r\nexport const eachWeekOfMonth = (year: number, month: number): Array<Date> => {\r\n  let start = new Date(year, month, 1);\r\n  const end = endOfMonth(new Date(year, month, 1));\r\n\r\n  return eachWeekOfInterval({ start: start, end: end }, { weekStartsOn: 1 });\r\n};\r\n\r\nexport const getCurrentDateFr = () => {\r\n  return moment(\r\n    new Date().toLocaleString('fr-FR', { timeZone: 'Europe/Paris' }),\r\n    'DD/MM/YYYY hh:mm:ss'\r\n  ).toDate();\r\n};\r\n\r\n// dateFr : Date française (on ignorera le GMT)\r\nexport const getDateLocaleFromFr = (dateFr: Date) => {\r\n  if (dateFr) {\r\n    // Récupération de la date locale avec le GMT local\r\n    const dateLocale = new Date();\r\n\r\n    // Transformation de la date locale en date française\r\n    // NB : transforme la date locale en date française en appliquant le décalage horaire d'après les infos du GMT\r\n    const currentDateFr = moment(\r\n      dateLocale.toLocaleString('fr-FR', { timeZone: 'Europe/Paris' }),\r\n      'DD/MM/YYYY hh:mm:ss'\r\n    ).toDate();\r\n\r\n    // Calcul du décalage horaire entre la date locale et la date française\r\n    const diff = dateLocale.getTime() - currentDateFr.getTime();\r\n\r\n    // Calcul de la date locale d'après la date française fournie\r\n    const newDate = addMilliseconds(dateFr, diff);\r\n\r\n    return newDate;\r\n  }\r\n  return dateFr;\r\n};\r\n","import jwtDecode from 'jwt-decode';\r\nimport { verify, sign } from 'jsonwebtoken';\r\n//\r\nimport axiosInstance from './axios';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst isValidToken = (accessToken: string) => {\r\n  if (!accessToken) {\r\n    return false;\r\n  }\r\n  const decoded = jwtDecode<{ exp: number }>(accessToken);\r\n  const currentTime = Date.now() / 1000;\r\n\r\n  return decoded.exp > currentTime;\r\n};\r\n\r\n//  const handleTokenExpired = (exp) => {\r\n//   let expiredTimer;\r\n\r\n//   window.clearTimeout(expiredTimer);\r\n//   const currentTime = Date.now();\r\n//   const timeLeft = exp * 1000 - currentTime;\r\n//   console.log(timeLeft);\r\n//   expiredTimer = window.setTimeout(() => {\r\n//     console.log('expired');\r\n//     // You can do what ever you want here, like show a notification\r\n//   }, timeLeft);\r\n// };\r\n\r\nconst setSession = (accessToken: string | null) => {\r\n  if (accessToken) {\r\n    localStorage.setItem('accessToken', accessToken);\r\n    axiosInstance.defaults.headers.common.Authorization = `Bearer ${accessToken}`;\r\n    // This function below will handle when token is expired\r\n    // const { exp } = jwtDecode(accessToken);\r\n    // handleTokenExpired(exp);\r\n  } else {\r\n    localStorage.removeItem('accessToken');\r\n    delete axiosInstance.defaults.headers.common.Authorization;\r\n  }\r\n};\r\n\r\nexport { isValidToken, setSession, verify, sign };\r\n","import { alpha } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nfunction createGradient(color1: string, color2: string) {\r\n  return `linear-gradient(to bottom, ${color1}, ${color2})`;\r\n}\r\n\r\ninterface GradientsPaletteOptions {\r\n  primary: string;\r\n  info: string;\r\n  success: string;\r\n  warning: string;\r\n  error: string;\r\n}\r\n\r\ninterface ChartPaletteOptions {\r\n  violet: string[];\r\n  blue: string[];\r\n  green: string[];\r\n  yellow: string[];\r\n  red: string[];\r\n}\r\n\r\ndeclare module '@mui/material/styles/createPalette' {\r\n  interface TypeBackground {\r\n    neutral: string;\r\n  }\r\n  interface SimplePaletteColorOptions {\r\n    lighter: string;\r\n    darker: string;\r\n  }\r\n  interface PaletteColor {\r\n    lighter: string;\r\n    darker: string;\r\n  }\r\n  interface Palette {\r\n    gradients: GradientsPaletteOptions;\r\n    chart: ChartPaletteOptions;\r\n    misc: PaletteColor;\r\n  }\r\n  interface PaletteOptions {\r\n    gradients: GradientsPaletteOptions;\r\n    chart: ChartPaletteOptions;\r\n  }\r\n}\r\n\r\ndeclare module '@mui/material' {\r\n  interface Color {\r\n    0: string;\r\n    500_8: string;\r\n    500_12: string;\r\n    500_16: string;\r\n    500_24: string;\r\n    500_32: string;\r\n    500_48: string;\r\n    500_56: string;\r\n    500_80: string;\r\n  }\r\n}\r\n\r\n// SETUP COLORS\r\nconst PRIMARY = {\r\n  lighter: '#6369FF',\r\n  light: '#5BE584',\r\n  main: '#00AB55',\r\n  dark: '#007B55',\r\n  darker: '#005249'\r\n};\r\nconst SECONDARY = {\r\n  lighter: '#D6E4FF',\r\n  light: '#84A9FF',\r\n  main: '#3366FF',\r\n  dark: '#1939B7',\r\n  darker: '#091A7A'\r\n};\r\nconst INFO = {\r\n  lighter: '#D0F2FF',\r\n  light: '#74CAFF',\r\n  main: '#1890FF',\r\n  dark: '#0C53B7',\r\n  darker: '#04297A'\r\n};\r\nconst SUCCESS = {\r\n  lighter: '#D6F5CC',\r\n  light: '#AAF27F',\r\n  main: '#00C040', //'#54D62C',\r\n  dark: '#229A16',\r\n  darker: '#08660D'\r\n};\r\nconst WARNING = {\r\n  lighter: '#FFF7CD',\r\n  light: '#FFE16A',\r\n  main: '#FFC107',\r\n  dark: '#B78103',\r\n  darker: '#7A4F01'\r\n};\r\nconst ERROR = {\r\n  lighter: '#FFE7D9',\r\n  light: '#FFA48D',\r\n  main: '#FF4842',\r\n  dark: '#B72136',\r\n  darker: '#7A0C2E'\r\n};\r\nconst MISC = {\r\n  lighter: '#EC6000',\r\n  light: '#EC6000',\r\n  main: '#EC6000',\r\n  dark: '#EC6000',\r\n  darker: '#EC6000'\r\n};\r\n\r\nconst GREY = {\r\n  0: '#FFFFFF',\r\n  100: '#F9FAFB',\r\n  200: '#F4F6F8',\r\n  300: '#DFE3E8',\r\n  400: '#EDEFF2',\r\n  500: '#919EAB',\r\n  600: '#637381',\r\n  700: '#454F5B',\r\n  800: '#212B36',\r\n  900: '#161C24',\r\n  500_8: alpha('#919EAB', 0.08),\r\n  500_12: alpha('#919EAB', 0.12),\r\n  500_16: alpha('#919EAB', 0.16),\r\n  500_24: alpha('#919EAB', 0.24),\r\n  500_32: alpha('#919EAB', 0.32),\r\n  500_48: alpha('#919EAB', 0.48),\r\n  500_56: alpha('#919EAB', 0.56),\r\n  500_80: alpha('#919EAB', 0.8)\r\n};\r\n\r\nconst GRADIENTS = {\r\n  primary: createGradient(PRIMARY.light, PRIMARY.main),\r\n  info: createGradient(INFO.light, INFO.main),\r\n  success: createGradient(SUCCESS.light, SUCCESS.main),\r\n  warning: createGradient(WARNING.light, WARNING.main),\r\n  error: createGradient(ERROR.light, ERROR.main)\r\n};\r\n\r\nconst CHART_COLORS = {\r\n  violet: ['#826AF9', '#9E86FF', '#D0AEFF', '#F7D2FF'],\r\n  blue: ['#2D99FF', '#83CFFF', '#A5F3FF', '#CCFAFF'],\r\n  green: ['#2CD9C5', '#60F1C8', '#A4F7CC', '#C0F2DC'],\r\n  yellow: ['#FFE700', '#FFEF5A', '#FFF7AE', '#FFF3D6'],\r\n  red: ['#FF6C40', '#FF8F6D', '#FFBD98', '#FFF2D4']\r\n};\r\n\r\nconst COMMON = {\r\n  common: { black: '#000', white: '#fff' },\r\n  primary: { ...PRIMARY, contrastText: '#fff' },\r\n  secondary: { ...SECONDARY, contrastText: '#fff' },\r\n  info: { ...INFO, contrastText: '#fff' },\r\n  success: { ...SUCCESS, contrastText: GREY[800] },\r\n  warning: { ...WARNING, contrastText: GREY[800] },\r\n  error: { ...ERROR, contrastText: '#fff' },\r\n  misc: { ...MISC, contrastText: '#fff' },\r\n  grey: GREY,\r\n  gradients: GRADIENTS,\r\n  chart: CHART_COLORS,\r\n  divider: GREY[500_24],\r\n  action: {\r\n    hover: GREY[500_8],\r\n    selected: GREY[500_16],\r\n    disabled: GREY[500_80],\r\n    disabledBackground: GREY[500_24],\r\n    focus: GREY[500_24],\r\n    hoverOpacity: 0.08,\r\n    disabledOpacity: 0.48\r\n  }\r\n};\r\n\r\nconst palette = {\r\n  light: {\r\n    ...COMMON,\r\n    text: { primary: GREY[800], secondary: GREY[600], disabled: GREY[500] },\r\n    background: { paper: '#fff', default: '#fff', neutral: GREY[100] },\r\n    action: { active: GREY[600], ...COMMON.action }\r\n  },\r\n  dark: {\r\n    ...COMMON,\r\n    text: { primary: '#fff', secondary: GREY[500], disabled: GREY[600] },\r\n    background: { paper: GREY[800], default: GREY[900], neutral: GREY[500_16] },\r\n    action: { active: GREY[500], ...COMMON.action }\r\n  }\r\n};\r\n\r\nexport default palette;\r\n","import { Grid, Skeleton } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\n\r\nexport default function SkeletonLoadSingle() {\r\n  return (\r\n    <Grid container spacing={3} sx={{ height: '100%', width: '100%', p: 1 }}>\r\n      <Grid item xs={12}>\r\n        <Skeleton variant=\"rectangular\" width=\"100%\" sx={{ height: 200, borderRadius: 2 }} />\r\n        <Box sx={{ display: 'flex', mt: 1.5 }}>\r\n          <Skeleton variant=\"circular\" sx={{ width: 40, height: 40 }} />\r\n          <Skeleton variant=\"text\" sx={{ mx: 1, flexGrow: 1 }} />\r\n        </Box>\r\n      </Grid>\r\n    </Grid>\r\n  );\r\n}\r\n","import { Box } from '@mui/material';\r\n// @types\r\nimport { FileBaseInfo } from '../../@types/common';\r\nimport FileAttachment from './FileAttachment';\r\n\r\ntype FileDetailsAttachmentsProps = {\r\n  files: Array<FileBaseInfo>;\r\n  onDelete?: (id: number) => void;\r\n};\r\n\r\nexport default function FileDetailsAttachments({ files, onDelete }: FileDetailsAttachmentsProps) {\r\n  return (\r\n    <Box sx={{ m: 2 }}>\r\n      {files.map((file) => (\r\n        <FileAttachment key={file.id} file={file} onDelete={onDelete} />\r\n      ))}\r\n    </Box>\r\n  );\r\n}\r\n","import { ModeAccess } from '../@types/account';\r\nimport useAuth from 'hooks/useAuth';\r\nimport { ReactNode, useEffect, useRef } from 'react';\r\nimport { addTime, differenceBetweenMinute } from 'utils/formatTime';\r\nimport { nullFormat } from 'numeral';\r\nimport { dispatch } from 'redux/store';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\n/**\r\n * Detection de l'activité sur le site\r\n * @param param0\r\n */\r\nexport default function useTrackerActivity({ parent = null }: { parent?: any | null }) {\r\n  let timeoutTracker: NodeJS.Timeout | null = null;\r\n\r\n  /**\r\n   * Repousse le temps d'inactivité\r\n   * @param inactivityTime temps d'inactivité autorisé en minute\r\n   */\r\n  const eventHandler = (event: any, inactivityTime: number = 30) => {\r\n    //On relance au besoin\r\n    if (timeoutTracker) {\r\n      clearTimeout(timeoutTracker);\r\n    }\r\n\r\n    /**\r\n     * on ne réagi pas de suite aux mouvements.\r\n     *  */\r\n    timeoutTracker = setTimeout(() => {\r\n      localStorage.setItem(\r\n        '_expiredTime',\r\n        addTime(Date.now(), inactivityTime).getTime().toString()\r\n      );\r\n    }, 300);\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (parent == null) return;\r\n    //Abonnement à la souris\r\n    parent.addEventListener('mousemove', eventHandler);\r\n    parent.addEventListener('scroll', eventHandler);\r\n    parent.addEventListener('keydown', eventHandler);\r\n    parent.addEventListener('scroll', eventHandler);\r\n\r\n    //supprimer les abonnements\r\n    return () => {\r\n      if (parent == null) return;\r\n      parent.removeEventListener('mousemove', eventHandler);\r\n      parent.removeEventListener('scroll', eventHandler);\r\n      parent.removeEventListener('keydown', eventHandler);\r\n      parent.removeEventListener('scroll', eventHandler);\r\n    };\r\n  }, [parent]);\r\n\r\n  return {\r\n    eventHandler\r\n  };\r\n}\r\n\r\n/**\r\n * Permet de logger les temps de connexions\r\n * @param param0\r\n * @returns\r\n */\r\nexport function LogActivity({ consoles }: { consoles: (value: string) => void }) {\r\n  const { setLog, getContractCurrent, student, logout } = useAuth();\r\n\r\n  const idConnextion = getContractCurrent().idConnection;\r\n  /**\r\n   * envoi le temps de connexion\r\n   */\r\n  const log = async () => {\r\n    // controler le mode d'accès\r\n    if (![ModeAccess.Write].includes(student?.modeAccess)) return;\r\n\r\n    //stockée en timestamp\r\n    const expiredTimeValue = localStorage.getItem('_expiredTime');\r\n\r\n    if (expiredTimeValue) {\r\n      if (+expiredTimeValue > new Date(student?.dateTimeServer).getTime()) {\r\n        const inactivity = differenceBetweenMinute(new Date(), new Date(+expiredTimeValue));\r\n        //desactiver le site au bout de 60minutes d'inaction\r\n\r\n        if (inactivity > 59) {\r\n          await logout();\r\n          return;\r\n        }\r\n      }\r\n    }\r\n\r\n    if (expiredTimeValue && +expiredTimeValue > new Date().getTime()) {\r\n      setLog(idConnextion, 1, (value: string) => console.log(value));\r\n    }\r\n  };\r\n\r\n  useEffect(() => {\r\n    //déclenchement toutes les minutes\r\n    const interval = setInterval(() => log(), 1000 * 60);\r\n\r\n    //supprimer les abonnements\r\n    return () => {\r\n      clearInterval(interval);\r\n    };\r\n  }, [idConnextion]);\r\n\r\n  return <></>;\r\n}\r\n","import { Phone } from '@mui/icons-material';\r\nimport { Avatar, Button } from '@mui/material';\r\nimport { phoneFormat } from 'utils/formatPhone';\r\n\r\n/**\r\n * Retourne le composant phone\r\n */\r\nexport default function PhoneInfo({ value }: { value: string }) {\r\n  return (\r\n    <Button variant=\"text\" color=\"primary\">\r\n      <Avatar\r\n        variant=\"circular\"\r\n        color=\"primary\"\r\n        sx={{ mr: 1, background: 'none', border: '1px solid #6369FF' }}\r\n      >\r\n        <Phone fontSize=\"small\" color=\"primary\" />{' '}\r\n      </Avatar>{' '}\r\n      {value}\r\n    </Button>\r\n  );\r\n}\r\n\r\nexport function PhoneLabel({ phoneNumber, brandId }: { phoneNumber: string; brandId: string }) {\r\n  return <>{phoneFormat(phoneNumber, brandId)}</>;\r\n}\r\n","import { createContext, ReactNode, useEffect, useReducer } from 'react';\r\n// utils\r\nimport axiosInstance from '../utils/axios';\r\n// @types\r\nimport {\r\n  Homework,\r\n  HomeworkBase,\r\n  Progression,\r\n  StudyPlan,\r\n  StudyPlanChapter,\r\n  StudyPlanContextType,\r\n  StudyPlanItem,\r\n  StudyPlanItemLearning,\r\n  StudyPlanItemProgressRequest,\r\n  StudyPlanItemStatus,\r\n  StudyPlanItemType,\r\n  StudyPlanMarker,\r\n  StudyPlanPhase,\r\n  StudyPlanResponse,\r\n  StudyPlanResult,\r\n  StudyPlanSaveProgressResponse,\r\n  StudyPlanSaveProgressResult,\r\n  StudyPlanState,\r\n  StudyPlanView\r\n} from '../@types/pedagogy';\r\nimport { ActionMap } from '../@types/authentication';\r\nimport { Contract } from '../@types/contract';\r\n\r\nimport {\r\n  FileBaseImageOfCourseResponse,\r\n  FileInfoToken,\r\n  FileBaseImageOfCourseResult\r\n} from '../@types/common';\r\nimport { ModeAccess } from '../@types/account';\r\nimport {\r\n  extractHomework,\r\n  getItemsUpdated,\r\n  getMarker,\r\n  initProgression,\r\n  refreshPhases,\r\n  setStudyPlan,\r\n  updateChapterUpdated\r\n} from 'utils/helperStudyPlan';\r\n\r\n//redux\r\nimport { getObjectives } from 'redux/slices/objective';\r\nimport { useDispatch } from 'redux/store';\r\n\r\n// ----------------------------------------------------------------------\r\nenum Types {\r\n  change_StudyPlan = 'CHANGE_STUDYPLAN',\r\n  change_Chapter_Item = 'CHANGE_CHAPTERITEM',\r\n  reset_Updated = 'RESET_UPDATED',\r\n  logoutUser = 'LOGOUT_USER',\r\n  loading = 'LOADING',\r\n  erreur = 'ERREUR',\r\n  updateActivity = 'UPDATE_ACTIVITY'\r\n}\r\n\r\nexport type StudyPlanPayload = {\r\n  [Types.change_StudyPlan]: {\r\n    studyPlan: StudyPlan;\r\n    constrainedCourse: boolean;\r\n    progression: Progression;\r\n  };\r\n  [Types.change_Chapter_Item]: {\r\n    chapter: StudyPlanChapter | null;\r\n    subChapter: StudyPlanChapter | null;\r\n    item: StudyPlanItem | null;\r\n    updated: boolean;\r\n  };\r\n  [Types.reset_Updated]: {\r\n    updated: boolean;\r\n  };\r\n  [Types.logoutUser]: {\r\n    updated: boolean;\r\n  };\r\n  [Types.loading]: {\r\n    isLoading: boolean;\r\n  };\r\n  [Types.erreur]: {\r\n    error: any;\r\n  };\r\n  [Types.updateActivity]: {\r\n    activity: Activity;\r\n  };\r\n};\r\n\r\nexport type StudyPlanActions = ActionMap<StudyPlanPayload>[keyof ActionMap<StudyPlanPayload>];\r\n\r\n/**\r\n * Initialise le store\r\n */\r\nconst initialState: StudyPlanState = {\r\n  isLoading: true,\r\n  error: false,\r\n  marker: null,\r\n  chapterItemUpdatedList: null,\r\n  phases: null,\r\n  skills: null,\r\n  chapter: null,\r\n  item: null,\r\n  subChapter: null,\r\n  currentSendingPhase: 0,\r\n  constrainedCourse: false,\r\n  updated: false,\r\n  progression: 0,\r\n  context: null,\r\n  internshipsOfSupport: null,\r\n  boundCourses: null\r\n};\r\n\r\n/**\r\n * Store PE : permet de faire des maj du pe.\r\n * il est combiné avec useStudyPlan\r\n * @param state\r\n * @param action\r\n * @returns\r\n */\r\nconst StudyPlanReducer = (state: StudyPlanState, action: StudyPlanActions) => {\r\n  switch (action.type) {\r\n    case 'LOADING':\r\n      return {\r\n        ...state,\r\n        isLoading: action.payload.isLoading,\r\n        error: null\r\n      };\r\n    case 'ERREUR':\r\n      return {\r\n        ...state,\r\n        error: action.payload.error,\r\n        isLoading: false\r\n      };\r\n    case 'CHANGE_STUDYPLAN':\r\n      return {\r\n        ...state,\r\n        isLoading: false,\r\n        marker: action.payload.studyPlan.marker,\r\n        phases: action.payload.studyPlan.phases,\r\n        skills: action.payload.studyPlan.skills,\r\n        internshipsOfSupport: action.payload.studyPlan.internshipsOfSupport,\r\n        boundCourses: action.payload.studyPlan.boundCourses,\r\n        chapterItemUpdatedList: action.payload.studyPlan.chapterItemUpdatedList,\r\n        currentSendingPhase: action.payload.studyPlan.currentSendingPhase,\r\n        constrainedCourse: action.payload.constrainedCourse,\r\n        context: action.payload.studyPlan.context,\r\n        progression:\r\n          (action.payload.progression.assimilate / action.payload.progression.count) * 100\r\n      };\r\n    case 'CHANGE_CHAPTERITEM':\r\n      // Marquer comme lu\r\n      let updated: boolean = action.payload.updated;\r\n\r\n      if (action.payload.item?.status === StudyPlanItemStatus.None) {\r\n        action.payload.item.status = StudyPlanItemStatus.Read;\r\n      }\r\n      //seulement si il  sont lus\r\n      if (action.payload.item?.status === StudyPlanItemStatus.Read) updated = true;\r\n      let phases = state.phases;\r\n      let progression = initProgression();\r\n\r\n      refreshPhases(\r\n        setStudyPlan(phases!, action.payload.item!),\r\n        state.currentSendingPhase,\r\n        state.constrainedCourse,\r\n        progression\r\n      );\r\n\r\n      return {\r\n        ...state,\r\n        phases: phases,\r\n        marker: getMarker(action.payload.item!),\r\n        chapter: action.payload.chapter,\r\n        item: action.payload.item,\r\n        subChapter: action.payload.subChapter,\r\n        isLoading: false,\r\n        error: null,\r\n        updated: updated,\r\n        progression: (progression.assimilate / progression.count) * 100\r\n      };\r\n    case 'RESET_UPDATED':\r\n      return {\r\n        ...state,\r\n        updated: false,\r\n        isLoading: false\r\n      };\r\n    case 'LOGOUT_USER':\r\n      return {\r\n        isLoading: false,\r\n        error: false,\r\n        marker: null,\r\n        chapterItemUpdatedList: null,\r\n        phases: null,\r\n        skills: null,\r\n        chapter: null,\r\n        item: null,\r\n        subChapter: null,\r\n        currentSendingPhase: 0,\r\n        constrainedCourse: false,\r\n        updated: false,\r\n        progression: 0,\r\n        context: null,\r\n        internshipsOfSupport: null,\r\n        boundCourses: null\r\n      };\r\n\r\n    default:\r\n      return state;\r\n  }\r\n};\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst StudyPlanContext = createContext<StudyPlanContextType | null>(null);\r\n\r\ntype Activity = {\r\n  brandId: string;\r\n  contractId: number;\r\n  courseId: string;\r\n  homeworkId: number;\r\n  score: number;\r\n};\r\n\r\n// ----------------------------------------------------------------------\r\n\r\n/**\r\n * Provider plan d\"etude\r\n * Mise à disposition du plan d'étude sur les components enfants.\r\n * Differentes actions pour mettre à jour celui\r\n * Au démarrage on charge les objectifs (devoirs) pour mettre le status des devoirs suivant le PE\r\n */\r\nfunction StudyPlanProvider({ children }: { children: ReactNode }) {\r\n  const [state, dispatch] = useReducer(StudyPlanReducer, initialState);\r\n  const dispatchRedux = useDispatch();\r\n\r\n  const initialize = async (\r\n    _view: StudyPlanView,\r\n    modeAccess: ModeAccess,\r\n    constrainedCourse: boolean\r\n  ) => {\r\n    try {\r\n      dispatch({ type: Types.loading, payload: { isLoading: true } });\r\n\r\n      //determiner le type de vue\r\n      const urlStudyPlanView =\r\n        _view === StudyPlanView.Global ? `?view=${StudyPlanView.Global}` : '';\r\n\r\n      const urlStudyPlan =\r\n        modeAccess === ModeAccess.Control\r\n          ? `/api/pedagogy/studyplan/control`\r\n          : `/api/pedagogy/studyplan${urlStudyPlanView}`;\r\n\r\n      const response = await axiosInstance.get<StudyPlanResponse>(urlStudyPlan);\r\n\r\n      const { result, studyPlan } = response.data;\r\n      switch (result) {\r\n        case StudyPlanResult.Success:\r\n          // liste des supports pedagos que l'élève doit revoir car maj\r\n          studyPlan.chapterItemUpdatedList = getItemsUpdated(studyPlan.phases);\r\n\r\n          // on remonte l'info aux parents\r\n          studyPlan.phases.map((p) => {\r\n            p.chapters.map((uf: StudyPlanChapter) => updateChapterUpdated(uf));\r\n          });\r\n\r\n          // Maj du PE brut avec les verrou suivant le type de parcours libre ou contraint\r\n          let progression = initProgression();\r\n\r\n          refreshPhases(\r\n            studyPlan.phases,\r\n            studyPlan.currentSendingPhase,\r\n            constrainedCourse,\r\n            progression\r\n          );\r\n\r\n          dispatch({\r\n            type: Types.change_StudyPlan,\r\n            payload: {\r\n              studyPlan: studyPlan,\r\n              constrainedCourse: constrainedCourse,\r\n              progression: progression\r\n            }\r\n          });\r\n\r\n          //Extraction des devoirs\r\n          let homeworks: Array<HomeworkBase> = [];\r\n          studyPlan.phases.map((phase: StudyPlanPhase) =>\r\n            phase.chapters.map((chapter: StudyPlanChapter) => {\r\n              extractHomework(chapter, homeworks);\r\n            })\r\n          );\r\n\r\n          if ([ModeAccess.Write, ModeAccess.Read].includes(modeAccess)) {\r\n            dispatchRedux(getObjectives(homeworks));\r\n          }\r\n\r\n          break;\r\n        default:\r\n          dispatch({ type: Types.erreur, payload: { error: 'Impossible de traiter la demande' } });\r\n      }\r\n    } catch (error: any) {\r\n      dispatch({\r\n        type: Types.erreur,\r\n        payload: { error: 'Impossible de traiter la demande :' + error.message }\r\n      });\r\n    }\r\n  };\r\n\r\n  // ----------------------------------------------------------------------\r\n  const saveProgress =\r\n    (request: StudyPlanItemProgressRequest) => async (onSuccess: (state: boolean) => void) => {\r\n      try {\r\n        let response = await axiosInstance.post<StudyPlanSaveProgressResponse>(\r\n          `/api/pedagogy/progression/save`,\r\n          request,\r\n          {\r\n            headers: { writeOnly: true }\r\n          }\r\n        );\r\n        const { result } = response.data;\r\n        switch (result) {\r\n          case StudyPlanSaveProgressResult.Success:\r\n            onSuccess(true);\r\n\r\n            break;\r\n        }\r\n      } catch (ex) {\r\n        console.log(ex);\r\n      }\r\n    };\r\n\r\n  const getImageOfCourse =\r\n    (fileInfo: FileInfoToken) => async (onSuccess: (images: Array<string>) => void) => {\r\n      let response = await axiosInstance.post<FileBaseImageOfCourseResponse>(\r\n        `/api/file/images/course`,\r\n        fileInfo\r\n      );\r\n      const { result, images } = response.data;\r\n      switch (result) {\r\n        case FileBaseImageOfCourseResult.Success:\r\n          onSuccess(images);\r\n\r\n          break;\r\n      }\r\n    };\r\n\r\n  // ----------------------------------------------------------------------\r\n  const selectItem = (\r\n    chapter: StudyPlanChapter | null,\r\n    item: StudyPlanItem | null,\r\n    updated: boolean,\r\n    subChapter?: StudyPlanChapter | null\r\n  ) => {\r\n    dispatch({\r\n      type: Types.change_Chapter_Item,\r\n      payload: {\r\n        chapter: chapter,\r\n        item: item,\r\n        subChapter: subChapter!,\r\n        updated: updated\r\n      }\r\n    });\r\n  };\r\n\r\n  const resetUpdated = () => {\r\n    dispatch({ type: Types.reset_Updated, payload: { updated: false } });\r\n  };\r\n\r\n  const resetState = () => {\r\n    dispatch({\r\n      type: Types.logoutUser,\r\n      payload: { updated: false }\r\n    });\r\n  };\r\n\r\n  return (\r\n    <StudyPlanContext.Provider\r\n      value={{\r\n        ...state,\r\n        saveProgress,\r\n        selectItem,\r\n        resetUpdated,\r\n        resetState,\r\n        getImageOfCourse,\r\n        initialize\r\n      }}\r\n    >\r\n      {children}\r\n    </StudyPlanContext.Provider>\r\n  );\r\n}\r\n\r\nexport { StudyPlanContext, StudyPlanProvider };\r\n","import { DialogTitle, IconButton } from '@mui/material';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport { styled } from '@mui/material/styles';\r\n\r\nexport interface DialogTitleProps {\r\n  id: string;\r\n  title?: any;\r\n  children?: React.ReactNode;\r\n  disabled?: boolean;\r\n  onClose: () => void;\r\n}\r\n\r\nexport const DialogTitleWithClose = (props: DialogTitleProps) => {\r\n  const {\r\n    children,\r\n    title = 'Enquête de satisfaction',\r\n    onClose,\r\n    disabled = false,\r\n    ...other\r\n  } = props;\r\n\r\n  return (\r\n    <DialogTitle sx={{ m: 0, p: 2, minHeight: '40px' }} {...other}>\r\n      {title}\r\n      {onClose ? (\r\n        <IconButton\r\n          aria-label=\"close\"\r\n          onClick={onClose}\r\n          disabled={disabled}\r\n          sx={{\r\n            position: 'absolute',\r\n            right: 8,\r\n            top: 8,\r\n            color: (theme) => theme.palette.grey[500]\r\n          }}\r\n        >\r\n          <CloseIcon />\r\n        </IconButton>\r\n      ) : null}\r\n      {children}\r\n    </DialogTitle>\r\n  );\r\n};\r\n","import { fTime, convertStringToDate, fDate, isBeforeDate } from '../utils/formatTime';\r\n\r\n//type\r\nimport { AgendaEvent, AgendaEventType, AgendaScheduleTeacher, TimeSlot } from '../@types/agenda';\r\nimport { Meeting, MeetingStatus } from '../@types/meeting';\r\nimport { HomeworkStatus } from '../@types/pedagogy';\r\n\r\n//---------------------------------------------------------------------------------------\r\nexport const convertMeetingToAgendaEvents = (meeting: Meeting): AgendaEvent => {\r\n  return {\r\n    allDay: false,\r\n    start: meeting.dateStart,\r\n    end: meeting.dateEnd,\r\n    title: `${meeting.material?.label}`,\r\n    eventType: AgendaEventType.Meeting,\r\n    textColor: '#4A86FD',\r\n    color: '#4A86FD',\r\n    id: meeting.id.toString(),\r\n    metadatas: meeting,\r\n    icon: 'calendar'\r\n  } as AgendaEvent;\r\n};\r\n\r\n//---------------------------------------------------------------------------------------\r\n\r\nexport type convertAgendaEventToMeetingProps = {\r\n  metadata: AgendaScheduleTeacher;\r\n  timeSlot: TimeSlot;\r\n};\r\n\r\n//---------------------------------------------------------------------------------------\r\n\r\nexport function convertAgendaEventToMeeting(\r\n  metadata: AgendaScheduleTeacher,\r\n  timeSlot: TimeSlot\r\n): Meeting {\r\n  return {\r\n    id: 0,\r\n    dateEnd: timeSlot.dateEnd,\r\n    dateStart: timeSlot.dateStart,\r\n    teacher: metadata.teacher,\r\n    material: metadata.material,\r\n    phone: '',\r\n    isVisio: metadata.isVisio,\r\n    observation: '',\r\n    status: MeetingStatus.None,\r\n    type: metadata.type,\r\n    idVirtualClass: null,\r\n    homework: null\r\n  } as Meeting;\r\n}\r\n\r\n//---------------------------------------------------------------------------------------\r\n\r\nexport const convertObjectifToAgendaEvent = (\r\n  event: any,\r\n  index: number,\r\n  locked: boolean\r\n): AgendaEvent => {\r\n  if (event.end == null) {\r\n    event.end = `${event.start}T10:00:00`;\r\n    event.start = `${event.start}T08:00:00`;\r\n  }\r\n\r\n  const isLate =\r\n    [HomeworkStatus.ToDo, HomeworkStatus.Rejected].includes(event.metadata.status) &&\r\n    isBeforeDate(new Date(event.start), new Date());\r\n\r\n  return {\r\n    id: index.toString(),\r\n    allDay: false,\r\n    start: event.start,\r\n    end: event.end,\r\n    title: event.title,\r\n    metadatas: {\r\n      id: event.metadata.dvr,\r\n      courseId: event.metadata.sup,\r\n      barCode: event.metadata.codBarDvr,\r\n      observation: event.observation,\r\n      locked: locked,\r\n      status: event.metadata.status,\r\n      isLate: isLate\r\n    },\r\n    eventType: AgendaEventType.Homework,\r\n    color: isLate ? '#EE0701' : '#45630A',\r\n    textColor: isLate ? '#EE0701' : '#C9E987',\r\n    icon: ''\r\n  };\r\n};\r\n","export type TaskState = {\r\n  isLoading: boolean;\r\n  error: any;\r\n  tasks: Array<TaskModel>;\r\n  task: null | TaskModel;\r\n};\r\n\r\nexport interface TaskListResponse {\r\n  result: TaskListResult;\r\n  list: TaskModel[];\r\n}\r\n\r\nexport interface TaskUpdateResponse {\r\n  result: TaskUpdateResult;\r\n  id: number;\r\n}\r\n\r\nexport enum TaskUpdateResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  TitleIsRequired = 2,\r\n  ObservationIsRequired = 3,\r\n  DateStartIsRequired = 4,\r\n  DateEndIsRequired = 5\r\n}\r\n\r\nexport enum TaskListResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n\r\nexport enum TaskStatus {\r\n  None = 0,\r\n  Todo = 1,\r\n  Done = 2\r\n}\r\n\r\nexport interface TaskModel {\r\n  id: number;\r\n  label: string;\r\n  dateStart: string;\r\n  dateEnd: string;\r\n  status: TaskStatus;\r\n  observation: string;\r\n  isReminder: boolean;\r\n  isLocked: boolean;\r\n  courseId: string;\r\n  homeworkId: number | null;\r\n  mediaId: number | null;\r\n  barCode: string;\r\n  url: string;\r\n}\r\n","import i18n from 'i18next';\r\nimport LanguageDetector from 'i18next-browser-languagedetector';\r\nimport { initReactI18next } from 'react-i18next';\r\n//\r\nimport enLocales from './en.json';\r\nimport deLocales from './de.json';\r\nimport frLocales from './fr.json';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ni18n\r\n  .use(LanguageDetector)\r\n  .use(initReactI18next)\r\n  .init({\r\n    resources: {\r\n      en: { translations: enLocales },\r\n      de: { translations: deLocales },\r\n      fr: { translations: frLocales }\r\n    },\r\n    lng: 'fr', // langue en cours (localStorage.getItem('i18nextLng') || 'en'),\r\n    fallbackLng: 'fr', // langue par défaut\r\n    debug: false,\r\n    ns: ['translations'], // liste des namespaces chargés (ajouter ici les namespaces déclarés dans le init -> resources. LoadNamespaces permet de charger d'autres namespaces)\r\n    defaultNS: 'translations', // namespace par défaut\r\n    fallbackNS: 'translations', // fichier utilisé si la traduction n'est pas trouvée dans le namespace par défaut (permet d'avoir un fichier par défaut en cas de changement via setDefaultNamespace)\r\n    interpolation: {\r\n      escapeValue: false\r\n    }\r\n  });\r\n\r\nexport default i18n;\r\n","import hljs from 'highlight.js';\r\nimport 'highlight.js/styles/atom-one-dark.css';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nhljs.configure({\r\n  languages: ['javascript', 'jsx', 'sh', 'bash', 'html', 'scss', 'css', 'json']\r\n});\r\n\r\n// @ts-ignore\r\nwindow.hljs = hljs;\r\n","import { ReactNode, createContext, useState, useEffect } from 'react';\r\n// material\r\nimport useScreenConfig from 'hooks/useScreenConfig';\r\nimport useLocalStorage from 'hooks/useLocalStorage';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport type CollapseDrawerContextProps = {\r\n  isCollapse?: boolean;\r\n  collapseClick: boolean;\r\n  collapseHover: boolean;\r\n  onToggleCollapse: VoidFunction;\r\n  onHoverEnter: VoidFunction;\r\n  onHoverLeave: VoidFunction;\r\n};\r\n\r\nconst initialState: CollapseDrawerContextProps = {\r\n  collapseClick: false,\r\n  collapseHover: false,\r\n  onToggleCollapse: () => {},\r\n  onHoverEnter: () => {},\r\n  onHoverLeave: () => {}\r\n};\r\n\r\nconst CollapseDrawerContext = createContext(initialState);\r\n\r\ntype CollapseDrawerProviderProps = {\r\n  children: ReactNode;\r\n};\r\n\r\nfunction CollapseDrawerProvider({ children }: CollapseDrawerProviderProps) {\r\n  const { isLargeScreen } = useScreenConfig();\r\n  const [collapse, setCollapse] = useState({\r\n    click: false,\r\n    hover: false\r\n  });\r\n\r\n  //sauvegarde de l'état du menu (réduit ou non)\r\n  const [savedCollapse, setSavedCollapse] = useLocalStorage<boolean>('dbSidebarCollapse', false);\r\n\r\n  const handleToggleCollapse = () => {\r\n    setSavedCollapse(!collapse.click);\r\n    setCollapse({ ...collapse, click: !collapse.click });\r\n  };\r\n\r\n  const handleHoverEnter = () => {\r\n    if (collapse.click) {\r\n      setCollapse({ ...collapse, hover: true });\r\n    }\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (!isLargeScreen) {\r\n      //NB : mode \"mobile\", bouton dans la barre de menu pour déplier le drawer\r\n      //Dans ce mode, le choix de l'élève (menu déplié ou replié) n'a pas de sens et n'est pas pris en compte\r\n      //Le setCollapse permet de conditionner l'affichage correctement dans ce mode\r\n      setCollapse({\r\n        click: false,\r\n        hover: false\r\n      });\r\n    } else {\r\n      //NB : uniquement en mode \"Desktop\" (barre latérale)\r\n      //Si le mode sauvegardé (savedCollapse) est différent du mode actuel (collapseClick),\r\n      //on synchronise le contexte avec la sauvegarde au chargement de la barre\r\n      if (savedCollapse !== collapse.click) {\r\n        handleToggleCollapse();\r\n      }\r\n    }\r\n  }, [isLargeScreen]);\r\n\r\n  const handleHoverLeave = () => {\r\n    setCollapse({ ...collapse, hover: false });\r\n  };\r\n\r\n  return (\r\n    <CollapseDrawerContext.Provider\r\n      value={{\r\n        isCollapse: collapse.click && !collapse.hover,\r\n        collapseClick: collapse.click,\r\n        collapseHover: collapse.hover,\r\n        onToggleCollapse: handleToggleCollapse,\r\n        onHoverEnter: handleHoverEnter,\r\n        onHoverLeave: handleHoverLeave\r\n      }}\r\n    >\r\n      {children}\r\n    </CollapseDrawerContext.Provider>\r\n  );\r\n}\r\n\r\nexport { CollapseDrawerProvider, CollapseDrawerContext };\r\n","import NProgress from 'nprogress';\r\nimport { useEffect, useMemo } from 'react';\r\nimport { motion } from 'framer-motion';\r\n// material\r\nimport { alpha, styled, useTheme } from '@mui/material/styles';\r\nimport { Box, GlobalStyles } from '@mui/material';\r\n//\r\nimport Logo from './Logo';\r\nimport useBrand from 'hooks/useBrand';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst RootStyle = styled('div')(({ theme }) => ({\r\n  height: '100%',\r\n  display: 'flex',\r\n  alignItems: 'center',\r\n  justifyContent: 'center',\r\n  backgroundColor: theme.palette.background.default\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function ProgressBarStyle() {\r\n  const theme = useTheme();\r\n\r\n  return (\r\n    <GlobalStyles\r\n      styles={{\r\n        '#nprogress': {\r\n          pointerEvents: 'none',\r\n          '& .bar': {\r\n            top: 0,\r\n            left: 0,\r\n            height: 2,\r\n            width: '100%',\r\n            position: 'fixed',\r\n            zIndex: theme.zIndex.snackbar,\r\n            backgroundColor: theme.palette.primary.main,\r\n            boxShadow: `0 0 2px ${theme.palette.primary.main}`\r\n          },\r\n          '& .peg': {\r\n            right: 0,\r\n            opacity: 1,\r\n            width: 100,\r\n            height: '100%',\r\n            display: 'block',\r\n            position: 'absolute',\r\n            transform: 'rotate(3deg) translate(0px, -4px)',\r\n            boxShadow: `0 0 10px ${theme.palette.primary.main}, 0 0 5px ${theme.palette.primary.main}`\r\n          }\r\n        }\r\n      }}\r\n    />\r\n  );\r\n}\r\n\r\nfunction ProgressBar() {\r\n  NProgress.configure({\r\n    showSpinner: false\r\n  });\r\n\r\n  useMemo(() => {\r\n    NProgress.start();\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    NProgress.done();\r\n  }, []);\r\n\r\n  return null;\r\n}\r\n\r\nexport default function LoadingScreen({ ...other }) {\r\n  const { brand } = useBrand();\r\n  return (\r\n    <>\r\n      <ProgressBar />\r\n\r\n      <RootStyle {...other}>\r\n        <motion.div\r\n          initial={{ rotateY: 0 }}\r\n          animate={{ rotateY: 360 }}\r\n          transition={{\r\n            duration: 2,\r\n            ease: 'easeInOut',\r\n            repeatDelay: 1,\r\n            repeat: Infinity\r\n          }}\r\n        >\r\n          <Box\r\n            component=\"img\"\r\n            sx={{ width: 40, height: 'auto' }}\r\n            src={`/static/brand/${brand}.svg`}\r\n          />\r\n        </motion.div>\r\n\r\n        <Box\r\n          component={motion.div}\r\n          animate={{\r\n            scale: [1.2, 1, 1, 1.2, 1.2],\r\n            rotate: [270, 0, 0, 270, 270],\r\n            opacity: [0.25, 1, 1, 1, 0.25],\r\n            borderRadius: ['25%', '25%', '50%', '50%', '25%']\r\n          }}\r\n          transition={{ ease: 'linear', duration: 3.2, repeat: Infinity }}\r\n          sx={{\r\n            width: 100,\r\n            height: 100,\r\n            borderRadius: '25%',\r\n            position: 'absolute',\r\n            border: (theme) => `solid 3px ${alpha(theme.palette.primary.dark, 0.24)}`\r\n          }}\r\n        />\r\n\r\n        <Box\r\n          component={motion.div}\r\n          animate={{\r\n            scale: [1, 1.2, 1.2, 1, 1],\r\n            rotate: [0, 270, 270, 0, 0],\r\n            opacity: [1, 0.25, 0.25, 0.25, 1],\r\n            borderRadius: ['25%', '25%', '50%', '50%', '25%']\r\n          }}\r\n          transition={{\r\n            ease: 'linear',\r\n            duration: 3.2,\r\n            repeat: Infinity\r\n          }}\r\n          sx={{\r\n            width: 120,\r\n            height: 120,\r\n            borderRadius: '25%',\r\n            position: 'absolute',\r\n            border: (theme) => `solid 8px ${alpha(theme.palette.primary.dark, 0.24)}`\r\n          }}\r\n        />\r\n      </RootStyle>\r\n    </>\r\n  );\r\n}\r\n\r\n/**\r\n *   <Logo sx={{ width: 127, height: 'auto' }} />\r\n */\r\n","import { motion } from 'framer-motion';\r\n// material\r\nimport { styled } from '@mui/material/styles';\r\nimport { Box, Button, Typography, Container, CircularProgress } from '@mui/material';\r\n// components\r\nimport { MotionContainer, varBounceIn } from '../../components/animate';\r\nimport Page from '../../components/Page';\r\nimport { PageNotFoundIllustration } from '../../assets';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst RootStyle = styled(Page)(({ theme }) => ({\r\n  display: 'flex',\r\n  minHeight: '100%',\r\n  alignItems: 'center',\r\n  paddingTop: theme.spacing(15),\r\n  paddingBottom: theme.spacing(10)\r\n}));\r\n\r\nexport const MainSearchStudent = () => {\r\n  return (\r\n    <RootStyle title={'SkillAndYou'}>\r\n      <Container>\r\n        <MotionContainer initial=\"initial\" open>\r\n          <Box sx={{ maxWidth: 480, margin: 'auto', textAlign: 'center' }}>\r\n            <motion.div variants={varBounceIn}>\r\n              <Typography variant=\"h3\" paragraph>\r\n                Recherche des informations en cours\r\n              </Typography>\r\n            </motion.div>\r\n            <motion.div variants={varBounceIn}>\r\n              <PageNotFoundIllustration />\r\n            </motion.div>\r\n\r\n            <CircularProgress variant=\"indeterminate\" />\r\n          </Box>\r\n        </MotionContainer>\r\n      </Container>\r\n    </RootStyle>\r\n  );\r\n};\r\n","import { Link as ScrollLink } from 'react-scroll';\r\nimport { useNavigate, Outlet, useParams, useMatch, useLocation } from 'react-router-dom';\r\n// material\r\nimport { Box, Link, Container, Typography } from '@mui/material';\r\nimport { isValidToken, setSession } from 'utils/jwt';\r\nimport { useEffect } from 'react';\r\nimport { getStudent } from 'redux/slices/student';\r\nimport { dispatch, RootState, useSelector } from 'redux/store';\r\nimport { MainSearchStudent } from './MainSearchStudent';\r\nimport Page404 from 'pages/Page404';\r\n\r\nimport MainNavbar from './MainNavbar';\r\n\r\n// ----------------------------------------------------------------------\r\nexport default function MainLayout() {\r\n  const { search } = useLocation();\r\n  const params = new URLSearchParams(search);\r\n  const accessToken = params.get('access_token');\r\n  const { isLoading, error, student, contract } = useSelector((state: RootState) => state.student);\r\n\r\n  useEffect(() => {\r\n    if (!accessToken) return;\r\n\r\n    if (accessToken && isValidToken(accessToken)) {\r\n      dispatch(getStudent(accessToken));\r\n    }\r\n  }, [accessToken]);\r\n\r\n  if (isLoading) return <MainSearchStudent />;\r\n\r\n  if (error) return <Page404 isLinkDashboard={false} />;\r\n\r\n  if (!student || !contract) return <Page404 isLinkDashboard={false} />;\r\n\r\n  return (\r\n    <>\r\n      <div>\r\n        <Outlet />\r\n      </div>\r\n    </>\r\n  );\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\nexport function QuestionnaireLayout() {\r\n  const { search } = useLocation();\r\n  const params = new URLSearchParams(search);\r\n  const accessToken = params.get('access_token');\r\n\r\n  if (!accessToken) {\r\n    return <Page404 isLinkDashboard={false} />;\r\n  }\r\n\r\n  if (accessToken && !isValidToken(accessToken)) {\r\n    return <Page404 isLinkDashboard={false} />;\r\n  }\r\n\r\n  return (\r\n    <>\r\n      <div>\r\n        <Outlet />\r\n      </div>\r\n    </>\r\n  );\r\n}\r\n","import { useContext } from 'react';\r\nimport { CollapseDrawerContext } from '../contexts/CollapseDrawerContext';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst useCollapseDrawer = () => useContext(CollapseDrawerContext);\r\n\r\nexport default useCollapseDrawer;\r\n","// hooks\r\nimport useAuth from '../hooks/useAuth';\r\n//\r\nimport { MAvatar } from './@material-extend';\r\nimport { MAvatarProps } from './@material-extend/MAvatar';\r\nimport createAvatar from '../utils/createAvatar';\r\nimport { useEffect, useState, useCallback } from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function MyAvatar({ ...other }: MAvatarProps) {\r\n  const { student } = useAuth();\r\n\r\n  return (\r\n    <MAvatar\r\n      src={student?.avatarUrl}\r\n      sx={{\r\n        '& img': { maxWidth: '100%', objectFit: 'contain' }\r\n      }}\r\n      alt={student?.name}\r\n      color={student?.avatarUrl ? 'default' : createAvatar(student?.name).color}\r\n      {...other}\r\n    >\r\n      {createAvatar(student?.name).name}\r\n    </MAvatar>\r\n  );\r\n}\r\n","import { useSnackbar } from 'notistack';\r\nimport { useRef, useState } from 'react';\r\nimport { Link as RouterLink, useNavigate } from 'react-router-dom';\r\n// material\r\nimport { alpha } from '@mui/material/styles';\r\nimport { Button, Box, Divider, MenuItem, Typography, Avatar } from '@mui/material';\r\nimport { ModuleType } from '../../@types/contract';\r\n\r\n// routes\r\nimport { PATH_DASHBOARD } from '../../routes/paths';\r\n// hooks\r\nimport useAuth from '../../hooks/useAuth';\r\nimport useIsMountedRef from '../../hooks/useIsMountedRef';\r\n// components\r\nimport { MIconButton } from '../../components/@material-extend';\r\nimport MyAvatar from '../../components/MyAvatar';\r\nimport MenuPopover from '../../components/MenuPopover';\r\nimport {\r\n  CalendarTodayRounded,\r\n  CreditCardRounded,\r\n  LibraryBooksRounded,\r\n  PersonRounded,\r\n  VpnKeyRounded\r\n} from '@mui/icons-material';\r\nimport TextMaxLine from 'components/TextMaxLine';\r\nimport { truncate } from 'utils/formatText';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ntype AccountPopoverProps = {\r\n  isSmall?: boolean;\r\n};\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function AccountPopover({ isSmall = false }: AccountPopoverProps) {\r\n  const navigate = useNavigate();\r\n  const anchorRef = useRef(null);\r\n  const { logout, student, getContractCurrent } = useAuth();\r\n  const isMountedRef = useIsMountedRef();\r\n  const { closeSnackbar, enqueueSnackbar } = useSnackbar();\r\n  const [open, setOpen] = useState(false);\r\n\r\n  const DEFAULT_SIZE = 44;\r\n  const SMALL_SIZE = 30;\r\n\r\n  const handleOpen = () => {\r\n    setOpen(true);\r\n  };\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  const handleLogout = async () => {\r\n    try {\r\n      closeSnackbar();\r\n\r\n      await logout?.();\r\n      if (isMountedRef.current) {\r\n        navigate('/');\r\n        handleClose();\r\n      }\r\n    } catch (error) {\r\n      console.error(error);\r\n      enqueueSnackbar('Unable to logout', { variant: 'error' });\r\n    }\r\n  };\r\n\r\n  const contractCurrent = getContractCurrent();\r\n\r\n  const MENU_OPTIONS = [\r\n    {\r\n      label: 'Profil',\r\n      icon: <PersonRounded />,\r\n      linkTo: PATH_DASHBOARD.student.profil,\r\n      visible: true\r\n    },\r\n    {\r\n      label: 'Mes disponibilités',\r\n      icon: <CalendarTodayRounded />,\r\n      linkTo: PATH_DASHBOARD.student.availability,\r\n      visible: true\r\n    },\r\n    {\r\n      label: 'Documents importants',\r\n      icon: <LibraryBooksRounded />,\r\n      linkTo: PATH_DASHBOARD.student.documents,\r\n      visible: true\r\n    },\r\n    {\r\n      label: 'Paiements',\r\n      icon: <CreditCardRounded />,\r\n      linkTo: PATH_DASHBOARD.student.payment,\r\n      visible: [ModuleType.PaymentView, ModuleType.PaymentUpdate].some((m) =>\r\n        contractCurrent?.moduleList.includes(m)\r\n      )\r\n    },\r\n\r\n    {\r\n      label: 'Mot de passe',\r\n      icon: <VpnKeyRounded />,\r\n      linkTo: PATH_DASHBOARD.student.password,\r\n      visible: true\r\n    }\r\n  ];\r\n\r\n  const currentSize = isSmall ? SMALL_SIZE : DEFAULT_SIZE;\r\n\r\n  return (\r\n    <>\r\n      <MIconButton\r\n        ref={anchorRef}\r\n        onClick={handleOpen}\r\n        sx={{\r\n          padding: 0,\r\n          width: currentSize,\r\n          height: currentSize,\r\n          ...(open && {\r\n            '&:before': {\r\n              zIndex: 1,\r\n              content: \"''\",\r\n              width: '100%',\r\n              height: '100%',\r\n              borderRadius: '50%',\r\n              position: 'absolute',\r\n              bgcolor: (theme) => alpha(theme.palette.grey[900], 0.72)\r\n            }\r\n          })\r\n        }}\r\n      >\r\n        <MyAvatar sx={{ width: currentSize, height: currentSize }} />\r\n      </MIconButton>\r\n\r\n      <MenuPopover\r\n        open={open}\r\n        onClose={handleClose}\r\n        anchorEl={anchorRef.current}\r\n        sx={{ width: 220 }}\r\n        style={{ zIndex: 9000 }}\r\n      >\r\n        <Box sx={{ my: 1.5, px: 1.5 }}>\r\n          <Typography variant=\"subtitle1\" noWrap>\r\n            {student?.name}\r\n          </Typography>\r\n          <Typography variant=\"body2\" sx={{ color: 'text.secondary' }}>\r\n            Contrat N° {contractCurrent.id}\r\n          </Typography>\r\n          <Typography variant=\"body2\" sx={{ color: 'text.secondary' }}>\r\n            {truncate(contractCurrent.training.label, 50)}\r\n          </Typography>\r\n        </Box>\r\n        <Divider sx={{ my: 1 }} />\r\n        {MENU_OPTIONS.filter((o) => o.visible).map((option) => (\r\n          <MenuItem\r\n            key={option.label}\r\n            to={option.linkTo}\r\n            component={RouterLink}\r\n            onClick={handleClose}\r\n            sx={{ typography: 'body2', py: 1, px: 2.5 }}\r\n          >\r\n            <Box\r\n              sx={{\r\n                mr: 2,\r\n                width: 24,\r\n                height: 24,\r\n                color: '#637381'\r\n              }}\r\n            >\r\n              {option.icon}\r\n            </Box>\r\n\r\n            {option.label}\r\n          </MenuItem>\r\n        ))}\r\n        <Box sx={{ p: 2, pt: 1.5 }}>\r\n          <Button fullWidth color=\"inherit\" variant=\"outlined\" onClick={handleLogout}>\r\n            DECONNEXION\r\n          </Button>\r\n        </Box>\r\n      </MenuPopover>\r\n    </>\r\n  );\r\n}\r\n/**\r\n *   <Box sx={{ p: 2, pt: 1.5 }}>\r\n          <Button fullWidth color=\"inherit\" variant=\"outlined\" onClick={handleLogout}>\r\n            DECONNEXION\r\n          </Button>\r\n        </Box>\r\n *  <Divider sx={{ my: 1 }} />\r\n * {MENU_OPTIONS.map((option) => (\r\n          <MenuItem\r\n            key={option.label}\r\n            to={option.linkTo}\r\n            component={RouterLink}\r\n            onClick={handleClose}\r\n            sx={{ typography: 'body2', py: 1, px: 2.5 }}\r\n          >\r\n            <Box\r\n              component={Icon}\r\n              icon={option.icon}\r\n              sx={{\r\n                mr: 2,\r\n                width: 24,\r\n                height: 24\r\n              }}\r\n            />\r\n\r\n            {option.label}\r\n          </MenuItem>\r\n        ))}\r\n <Box sx={{ p: 2, pt: 1.5 }}>\r\n          <Button fullWidth color=\"inherit\" variant=\"outlined\" onClick={handleLogout}>\r\n            DECONNEXION\r\n          </Button>\r\n        </Box>\r\n        <Box sx={{ p: 2, pt: 1.5 }}>\r\n          <Button fullWidth color=\"inherit\" variant=\"outlined\" onClick={handleLogout}>\r\n            DECONNEXION\r\n          </Button>\r\n        </Box>\r\n */\r\n","import { Icon } from '@iconify/react';\r\nimport arrowIosBackFill from '@iconify/icons-eva/arrow-ios-back-fill';\r\n// material\r\nimport { Drawer, Typography, Grid, Stack, Divider, Tooltip, Alert } from '@mui/material';\r\n\r\n//mapper\r\nimport { convertAgendaEventToMeeting } from 'mapper/agendaMap';\r\n\r\n// redux\r\nimport { RootState, useDispatch, useSelector } from 'redux/store';\r\nimport { getMeetings, getSchedulesEventByDateAndMaterial } from 'redux/slices/agenda';\r\nimport { selectMeetingByEvent } from 'redux/slices/meeting';\r\n\r\n//Type\r\nimport {\r\n  AgendaEvent,\r\n  AgendaScheduleTeacher,\r\n  TimeSlot,\r\n  AgendaState,\r\n  ScheduleType\r\n} from '../../../@types/agenda';\r\nimport { Meeting } from '../../../@types/meeting';\r\n\r\n//Utils\r\nimport { fDate, fDateMeeting, formatAPI, isAfterDate } from 'utils/formatTime';\r\n\r\n//Composant\r\nimport { TimeSlotsFilter } from './TimeSlotsFilter';\r\nimport { TimeSlotsDisplay } from './TimeSlotsDisplay';\r\nimport EmptyContent from 'components/EmptyContent';\r\nimport Scrollbar from '../../Scrollbar';\r\nimport { useEffect, useState } from 'react';\r\nimport { MeetingForm } from '../meeting/MeetingForm';\r\nimport { SheduleTeacherMessage } from './ScheduleTeacherMessage';\r\n\r\ntype ScheduleTeacherEventFormProps = {\r\n  isOpen: boolean;\r\n  onClose: VoidFunction;\r\n};\r\n\r\nexport const ScheduleTeacherEventForm = ({ isOpen, onClose }: ScheduleTeacherEventFormProps) => {\r\n  const dispatch = useDispatch();\r\n  const [isOpenMeeting, setIsOpenMeeting] = useState(false);\r\n  const [errorRefreshEvent, setErrorRefreshEvent] = useState(false);\r\n  const { selectedEvent, events } = useSelector((state: RootState) => state.agenda);\r\n  const meetings = getMeetings(events);\r\n\r\n  const handleSelect = (meeting: Meeting) => {\r\n    dispatch(selectMeetingByEvent(meeting));\r\n    setIsOpenMeeting(true);\r\n  };\r\n\r\n  /**\r\n   * Actualiser les permanences\r\n   */\r\n  useEffect(() => {\r\n    dispatch(\r\n      getSchedulesEventByDateAndMaterial(\r\n        formatAPI(selectedEvent!.start),\r\n        selectedEvent?.metadatas[0]?.material?.id\r\n      )(() => setErrorRefreshEvent(true))\r\n    );\r\n  }, []);\r\n\r\n  return (\r\n    <Scrollbar>\r\n      <Stack spacing={3} sx={{ px: 2.5, py: 3 }}>\r\n        {isOpenMeeting && (\r\n          <MeetingForm onCancel={() => setIsOpenMeeting(false)} onClose={onClose} />\r\n        )}\r\n\r\n        {!isOpenMeeting && selectedEvent != null && (\r\n          <Grid container spacing={2}>\r\n            <Grid item xs={12}>\r\n              <Typography variant=\"h6\" style={{ textAlign: 'center' }}>\r\n                {fDate(selectedEvent?.start, 'EEEE dd MMMM')}\r\n              </Typography>\r\n            </Grid>\r\n            <Grid item xs={12}>\r\n              <Typography variant=\"h6\" style={{ textAlign: 'center' }}>\r\n                Matière : <span>{selectedEvent?.title}</span>\r\n              </Typography>\r\n\r\n              {errorRefreshEvent && (\r\n                <Alert severity=\"error\">\r\n                  Suite à une erreur, les heures de permanences n'ont pas pu être actualisées.\r\n                </Alert>\r\n              )}\r\n\r\n              <SheduleTeacherMessage />\r\n            </Grid>\r\n\r\n            <Grid item xs={12}>\r\n              <TimeSlotsFilter\r\n                metadatas={selectedEvent?.metadatas?.filter((m: any) =>\r\n                  [ScheduleType.Mixte, ScheduleType.standard].includes(m.type)\r\n                )}\r\n              >\r\n                {(metadata: AgendaScheduleTeacher) => {\r\n                  const duplicate = (meetings || []).filter(\r\n                    (w: any) =>\r\n                      isAfterDate(w.start, new Date()) &&\r\n                      (w.metadatas.teacher.id === metadata.teacher.id ||\r\n                        metadata.material.id === w.metadatas.material.id)\r\n                  );\r\n\r\n                  if (duplicate.length > 0) {\r\n                    const rdv = `Vous avez déjà rendez-vous le ${fDateMeeting(\r\n                      duplicate[0].start,\r\n                      duplicate[0].end\r\n                    )} `;\r\n                    return (\r\n                      <EmptyContent\r\n                        title={'Pas si vite! Un rendez-vous à la fois.'}\r\n                        description={`Vous ne pouvez programmer qu'un seul rendez-vous à la fois avec un formateur ou une formatrice ou pour une même matière.\r\n                              À l'issue de ce rendez-vous, vous pourrez en reprogrammer un nouveau avec ce formateur ou cette formatrice ou pour cette matière.  ${rdv}`}\r\n                        img={'/static/illustrations/autres/stop.svg'}\r\n                      />\r\n                    );\r\n                  } else if (!metadata.timeSlots || metadata.timeSlots.length === 0) {\r\n                    return (\r\n                      <EmptyContent\r\n                        title={'Aucun horaire disponible'}\r\n                        img={'/static/illustrations/Agenda/pas_rdv.svg'}\r\n                      />\r\n                    );\r\n                  } else\r\n                    return (\r\n                      <TimeSlotsDisplay\r\n                        key={`timeSlot${metadata.teacher.id}`}\r\n                        timeSlots={metadata.timeSlots}\r\n                        onSelected={(timeSlot: TimeSlot) =>\r\n                          handleSelect(convertAgendaEventToMeeting(metadata, timeSlot))\r\n                        }\r\n                        isSmall={false}\r\n                        hourLimit={metadata.hourLimit}\r\n                      />\r\n                    );\r\n                }}\r\n              </TimeSlotsFilter>\r\n            </Grid>\r\n          </Grid>\r\n        )}\r\n      </Stack>\r\n    </Scrollbar>\r\n  );\r\n};\r\n","import { useEffect, useState } from 'react';\r\n\r\nimport { useFormik, Form } from 'formik';\r\nimport * as Yup from 'yup';\r\n\r\n//material\r\nimport {\r\n  AccessTime,\r\n  Assignment,\r\n  ConstructionOutlined,\r\n  DataUsage,\r\n  Edit,\r\n  TrainRounded,\r\n  VerifiedUser,\r\n  WatchLater\r\n} from '@mui/icons-material';\r\nimport {\r\n  Alert,\r\n  Button,\r\n  Collapse,\r\n  DialogActions,\r\n  Grid,\r\n  List,\r\n  Stack,\r\n  TextField,\r\n  Typography\r\n} from '@mui/material';\r\nimport { Box } from '@mui/system';\r\n\r\n//model\r\nimport { AgendaEvent } from '../../../@types/agenda';\r\nimport { HomeworkBase, HomeworkStatus } from '../../../@types/pedagogy';\r\n\r\n//composant\r\nimport {\r\n  RowItemDisplay,\r\n  RowItemDisplayComment,\r\n  RowItemDisplayTitle,\r\n  RowItemDisplayDateTime,\r\n  RowItemDisplayError,\r\n  RowItemDisplayAlert\r\n} from 'components/RowListItem';\r\n\r\nimport HomeworkStatusRender from 'components/_dashboard/pedagogy/HomeworkStatusRender';\r\nimport HomeworkMandatoryRender from '../pedagogy/HomeworkMandatoryRender';\r\nimport { HomeworkNote } from '../pedagogy/HomeworkNote';\r\n\r\nimport {\r\n  DateRangePicker,\r\n  DateTimePicker,\r\n  DesktopDatePicker,\r\n  DesktopDateTimePicker,\r\n  LoadingButton,\r\n  MobileDateTimePicker,\r\n  TimePicker\r\n} from '@mui/lab';\r\nimport FileDetailsAttachments from 'components/file/FileDetailsAttachments';\r\nimport {\r\n  fDate,\r\n  fDateMeeting,\r\n  formatAPI,\r\n  fTime,\r\n  isBeforeDate,\r\n  isDateValid,\r\n  setDateTime\r\n} from 'utils/formatTime';\r\nimport useObjective from 'hooks/useObjective';\r\nimport { useSnackbar } from 'notistack';\r\nimport Label from 'components/Label';\r\nimport { useNavigate } from 'react-router';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport SkillList from '../studyPlan/skill/SkillList';\r\nimport StudentHourMessage from '../student/StudentHourMessage';\r\n\r\nexport type AgendaHomeworkFormProps = {\r\n  onClose: VoidFunction;\r\n  event: AgendaEvent;\r\n};\r\n\r\nexport default function AgendaHomeworkForm({ event, onClose }: AgendaHomeworkFormProps) {\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const { getHomeworkByEvent, updateObjectiveEvent, isLoading, error, eventsToLate } =\r\n    useObjective();\r\n  const [homeworkBase, setHomeworkBase] = useState<HomeworkBase>(event.metadatas);\r\n  const [updated, setUpdated] = useState(false);\r\n  const navigate = useNavigate();\r\n\r\n  //Schema de controle des données dans le formulaire\r\n  const EventSchema = Yup.object().shape({\r\n    title: Yup.string().max(255).required('Le titre est obligatoire'),\r\n    start: Yup.date().min(new Date()).required('La date est obligatoire'),\r\n    end: Yup.date().required('La date est obligatoire'),\r\n    description: Yup.string()\r\n  });\r\n\r\n  // lien vers le devoir\r\n  const handleLink = () => {\r\n    navigate(PATH_DASHBOARD.studyPlan.details + `/${homeworkBase.barCode}`);\r\n  };\r\n\r\n  //init formulaire\r\n  const formik = useFormik({\r\n    initialValues: {\r\n      title: event.title,\r\n      start: event.start,\r\n      end: event.end,\r\n      description: event.metadatas.observation\r\n    },\r\n    validationSchema: EventSchema,\r\n    onSubmit: async (values, { setSubmitting }) => {\r\n      if (isDateError || isDateMinError) return;\r\n      try {\r\n        const val = Object.assign({}, event, {\r\n          start: values.start,\r\n          end: values.end,\r\n          color: '#17C588',\r\n          textColor: '#17C588',\r\n          metadatas: Object.assign({}, event.metadatas, {\r\n            observation: values.description,\r\n            isLate: false\r\n          })\r\n        });\r\n\r\n        updateObjectiveEvent(val)(() =>\r\n          enqueueSnackbar('Enregistrement effectué', { variant: 'success' })\r\n        );\r\n        setSubmitting(false);\r\n      } catch (error) {\r\n        console.error(error);\r\n      }\r\n    }\r\n  });\r\n\r\n  const { values, errors, touched, isSubmitting, setFieldValue, getFieldProps } = formik;\r\n\r\n  useEffect(() => {\r\n    setHomeworkBase(getHomeworkByEvent(homeworkBase.courseId, homeworkBase.id));\r\n  }, []);\r\n\r\n  if (!homeworkBase?.homeworks) return <></>;\r\n\r\n  const homework = homeworkBase.homeworks[homeworkBase.homeworks.length - 1];\r\n\r\n  const isDateError = isBeforeDate(new Date(values.end), new Date(values.start));\r\n  const isDateMinError = isBeforeDate(new Date(values.start), new Date());\r\n\r\n  const unLocked = true; // homeworkBase.homeworks.length === 0 ? true : false;\r\n\r\n  return (\r\n    <Box sx={{ p: 3 }}>\r\n      <form autoComplete=\"off\" noValidate onSubmit={formik.handleSubmit}>\r\n        <List>\r\n          <RowItemDisplayTitle\r\n            icon={<Edit />}\r\n            title={<Typography variant=\"h6\"> {homeworkBase.label}</Typography>}\r\n          >\r\n            <Typography variant=\"body2\">\r\n              {' '}\r\n              Réf : {homeworkBase.barCode} - phase {homeworkBase.parent.sendingPhase}{' '}\r\n            </Typography>\r\n            <HomeworkMandatoryRender mandatory={homeworkBase.mandatory} />\r\n            {eventsToLate.some(\r\n              (evt) =>\r\n                evt.metadatas.courseId === homeworkBase.courseId &&\r\n                evt.metadatas.id === homeworkBase.id\r\n            ) && (\r\n              <Label variant=\"ghost\" color=\"error\">\r\n                En retard sur votre planning\r\n              </Label>\r\n            )}\r\n          </RowItemDisplayTitle>\r\n\r\n          <StudentHourMessage />\r\n          <Collapse in={updated}>\r\n            <RowItemDisplay\r\n              title={\r\n                <Stack direction={{ xs: 'row' }} spacing={1}>\r\n                  <DesktopDatePicker\r\n                    label=\"Date\"\r\n                    minDate={new Date()}\r\n                    value={values.start}\r\n                    onChange={(date) => {\r\n                      if (isDateValid(date)) {\r\n                        setFieldValue(\r\n                          'start',\r\n                          new Date(`${fDate(date!, 'yyyy-MM-dd')}T${fTime(values.start!)}:00`)\r\n                        );\r\n                        setFieldValue(\r\n                          'end',\r\n                          new Date(`${fDate(date!, 'yyyy-MM-dd')}T${fTime(values.end!)}:00`)\r\n                        );\r\n                      }\r\n                    }}\r\n                    renderInput={(params) => (\r\n                      <TextField\r\n                        {...params}\r\n                        margin=\"dense\"\r\n                        sx={{ mt: 0 }}\r\n                        fullWidth\r\n                        error={Boolean(errors.start) || isDateMinError}\r\n                      />\r\n                    )}\r\n                  />\r\n                  <TimePicker\r\n                    ampm={false}\r\n                    label=\"de\"\r\n                    value={values.start}\r\n                    onChange={(newValue) => {\r\n                      if (isDateValid(newValue)) {\r\n                        setFieldValue(\r\n                          'start',\r\n                          new Date(`${fDate(values.start, 'yyyy-MM-dd')}T${fTime(newValue!)}:00`)\r\n                        );\r\n                      }\r\n                    }}\r\n                    renderInput={(params) => (\r\n                      <TextField fullWidth {...params} margin=\"dense\" error={isDateMinError} />\r\n                    )}\r\n                  />\r\n                  <TimePicker\r\n                    ampm={false}\r\n                    label=\"à\"\r\n                    value={values.end}\r\n                    onChange={(newValue) => {\r\n                      if (isDateValid(newValue)) {\r\n                        setFieldValue(\r\n                          'end',\r\n                          new Date(`${fDate(values.start, 'yyyy-MM-dd')}T${fTime(newValue!)}:00`)\r\n                        );\r\n                      }\r\n                    }}\r\n                    renderInput={(params) => (\r\n                      <TextField fullWidth {...params} margin=\"dense\" error={isDateError} />\r\n                    )}\r\n                  />\r\n                </Stack>\r\n              }\r\n              icon={<WatchLater />}\r\n            />\r\n            {(isDateError || isDateMinError || Boolean(errors.start)) && (\r\n              <RowItemDisplayAlert alertColor=\"error\">\r\n                {(Boolean(errors.start) || isDateMinError) && (\r\n                  <Typography>La date de debut doit etre postérieure à aujourd'hui</Typography>\r\n                )}\r\n                {isDateError && !Boolean(errors.start) && (\r\n                  <Typography> La date de debut doit etre postérieure à la date de fin</Typography>\r\n                )}\r\n              </RowItemDisplayAlert>\r\n            )}\r\n          </Collapse>\r\n          <Collapse in={!updated}>\r\n            <RowItemDisplay\r\n              title={fDateMeeting(event.start, event.end)}\r\n              icon={<AccessTime />}\r\n            ></RowItemDisplay>\r\n          </Collapse>\r\n\r\n          <RowItemDisplay\r\n            icon={<DataUsage />}\r\n            title={\r\n              <>\r\n                Statut :{' '}\r\n                <HomeworkStatusRender status={homework?.status} type={homeworkBase?.homeworkType} />\r\n              </>\r\n            }\r\n          ></RowItemDisplay>\r\n\r\n          {homeworkBase.isScore && homework && (\r\n            <RowItemDisplay\r\n              title={<HomeworkNote scoreType={homeworkBase.scoreType} homework={homework} />}\r\n              icon={<Assignment />}\r\n            />\r\n          )}\r\n\r\n          {homeworkBase.skillIds.length > 0 && (\r\n            <RowItemDisplay title=\"Compétences associées\" icon={<VerifiedUser />}>\r\n              <SkillList buttonType=\"chipButton\" skillIds={homeworkBase.skillIds} />\r\n            </RowItemDisplay>\r\n          )}\r\n\r\n          <Collapse in={updated}>\r\n            <RowItemDisplayComment>\r\n              <TextField\r\n                disabled={event.metadatas.locked}\r\n                fullWidth\r\n                multiline\r\n                rows={3}\r\n                maxRows={4}\r\n                label=\"\"\r\n                {...getFieldProps('description')}\r\n                error={Boolean(touched.description && errors.description)}\r\n                helperText={touched.description && errors.description}\r\n                sx={{ mb: 3 }}\r\n              />\r\n            </RowItemDisplayComment>\r\n            {error && <RowItemDisplayAlert alertColor=\"error\">{error}</RowItemDisplayAlert>}\r\n          </Collapse>\r\n          <Collapse in={!updated}>\r\n            {values.description && (\r\n              <RowItemDisplayComment>{values.description}</RowItemDisplayComment>\r\n            )}\r\n          </Collapse>\r\n        </List>\r\n        {event.metadatas.locked ? (\r\n          <>\r\n            <Alert severity=\"warning\">Verrouillé par votre coach</Alert>\r\n          </>\r\n        ) : (\r\n          <DialogActions sx={{ justifyContent: 'center' }}>\r\n            {updated ? (\r\n              <>\r\n                <Button\r\n                  type=\"button\"\r\n                  variant=\"text\"\r\n                  color=\"primary\"\r\n                  onClick={() => setUpdated(false)}\r\n                >\r\n                  Annuler\r\n                </Button>\r\n\r\n                <LoadingButton\r\n                  disabled={event.metadatas.locked}\r\n                  type=\"submit\"\r\n                  color=\"primary\"\r\n                  variant=\"contained\"\r\n                  loading={isLoading}\r\n                  loadingIndicator=\"Loading...\"\r\n                >\r\n                  Enregistrer\r\n                </LoadingButton>\r\n              </>\r\n            ) : (\r\n              <>\r\n                <Button\r\n                  type=\"button\"\r\n                  variant=\"text\"\r\n                  color=\"primary\"\r\n                  disabled={!unLocked}\r\n                  onClick={() => setUpdated(true)}\r\n                >\r\n                  Modifier\r\n                </Button>\r\n              </>\r\n            )}\r\n            {!updated && (\r\n              <Button\r\n                type=\"button\"\r\n                variant=\"contained\"\r\n                color=\"primary\"\r\n                disabled={!unLocked}\r\n                onClick={handleLink}\r\n              >\r\n                Voir l'évaluation\r\n              </Button>\r\n            )}\r\n          </DialogActions>\r\n        )}\r\n      </form>\r\n    </Box>\r\n  );\r\n}\r\n","import { useState } from 'react';\r\nimport { Icon } from '@iconify/react';\r\nimport arrowIosBackFill from '@iconify/icons-eva/arrow-ios-back-fill';\r\n// material\r\nimport { Drawer, Typography, Grid, Stack, Divider, Tooltip, Collapse } from '@mui/material';\r\nimport { MHidden, MIconButton } from 'components/@material-extend';\r\n\r\nimport { AgendaEvent, AgendaEventType } from '../../../@types/agenda';\r\nimport { FavoriteType } from '../../../@types/favorite';\r\n// redux\r\nimport { useDispatch } from 'redux/store';\r\nimport { selectMeeting } from 'redux/slices/meeting';\r\n\r\n//composant\r\nimport { ScheduleTeacherEventForm } from 'components/_dashboard/scheduleTeacher/ScheduleTeacherEventForm';\r\nimport { MeetingView } from '../meeting/MeetingView';\r\nimport { MeetingForm } from '../meeting/MeetingForm';\r\n\r\nimport FavoriteToggleAction from '../favorite/FavoriteAction';\r\n\r\nimport AgendaHomeworkForm from './AgendaHomeworkForm';\r\nimport AgendaTaskDetail from './AgendaTaskDetail';\r\nimport { Close } from '@mui/icons-material';\r\n\r\ntype DispatcherEventScreenProps = {\r\n  agendaEvent?: AgendaEvent;\r\n  isOpen: boolean;\r\n  onClose: VoidFunction;\r\n};\r\n\r\n/**\r\n * Retourn l'écran souhaité et dispatche l'object dans le bon reducer\r\n * @param param0\r\n * @returns\r\n */\r\nexport default function DispatcherEventScreen({\r\n  agendaEvent,\r\n  isOpen,\r\n  onClose\r\n}: DispatcherEventScreenProps) {\r\n  let title: string = '';\r\n\r\n  switch (agendaEvent?.eventType) {\r\n    case AgendaEventType.Task:\r\n      title = 'Support pédagogique';\r\n      break;\r\n    case AgendaEventType.ScheduleTeacher:\r\n      title = 'Prise de rendez-vous';\r\n      break;\r\n    case AgendaEventType.Homework:\r\n      title = 'Évaluation';\r\n      break;\r\n    case AgendaEventType.Meeting:\r\n      title = 'Rendez-vous';\r\n      break;\r\n  }\r\n\r\n  return (\r\n    <Drawer\r\n      open={isOpen}\r\n      onClose={onClose}\r\n      anchor=\"right\"\r\n      PaperProps={{ sx: { width: { xs: 1, sm: 630 } } }}\r\n    >\r\n      <Stack p={1.5} direction=\"row\" alignItems=\"center\">\r\n        <Tooltip title=\"Retour\">\r\n          <MIconButton onClick={onClose} sx={{ mr: 1 }}>\r\n            <Close />\r\n          </MIconButton>\r\n        </Tooltip>\r\n        <Typography variant=\"h4\" sx={{ ml: 2.4 }}>\r\n          {' '}\r\n          {title}\r\n        </Typography>\r\n        <Stack direction=\"row\" spacing={1} justifyContent=\"flex-end\" flexGrow={1}>\r\n          <Tooltip title=\"Favori : Ajouter/supprimer\">\r\n            <span>\r\n              <DispatchFavorite agendaEvent={agendaEvent} />\r\n            </span>\r\n          </Tooltip>\r\n        </Stack>\r\n      </Stack>\r\n      <Divider />\r\n\r\n      <DispatchRender agendaEvent={agendaEvent} isOpen={isOpen} onClose={onClose} />\r\n    </Drawer>\r\n  );\r\n}\r\n\r\ntype DispatchFavoriteProps = {\r\n  agendaEvent?: AgendaEvent;\r\n};\r\n\r\nconst DispatchFavorite = ({ agendaEvent }: DispatchFavoriteProps) => {\r\n  switch (agendaEvent?.eventType) {\r\n    case AgendaEventType.VirtualClass:\r\n      return (\r\n        <FavoriteToggleAction\r\n          title={agendaEvent?.title}\r\n          type={FavoriteType.VirtualClass}\r\n          keyFav={{ courseId: '', homeworkId: 0, id: +agendaEvent?.id, mediaId: 0 }}\r\n        />\r\n      );\r\n    case AgendaEventType.Workshop:\r\n      return (\r\n        <FavoriteToggleAction\r\n          title={agendaEvent?.title}\r\n          type={FavoriteType.Workshop}\r\n          keyFav={{ courseId: '', homeworkId: 0, id: +agendaEvent?.id, mediaId: 0 }}\r\n        />\r\n      );\r\n    case AgendaEventType.Task:\r\n      return (\r\n        <FavoriteToggleAction\r\n          title={agendaEvent?.title}\r\n          type={FavoriteType.Task}\r\n          keyFav={{ courseId: '', homeworkId: 0, id: +agendaEvent?.id, mediaId: 0 }}\r\n        />\r\n      );\r\n    case AgendaEventType.Homework:\r\n      return (\r\n        <FavoriteToggleAction\r\n          title={agendaEvent?.title}\r\n          type={FavoriteType.Evaluation}\r\n          keyFav={{\r\n            courseId: agendaEvent.metadatas.courseId,\r\n            homeworkId: agendaEvent.metadatas.id,\r\n            id: 0,\r\n            mediaId: 0\r\n          }}\r\n        />\r\n      );\r\n  }\r\n  return <></>;\r\n};\r\n\r\nconst DispatchRender = ({ agendaEvent, isOpen, onClose }: DispatcherEventScreenProps) => {\r\n  const dispatch = useDispatch();\r\n  const [modeRead, setModeRead] = useState(true);\r\n\r\n  switch (agendaEvent?.eventType) {\r\n    case AgendaEventType.ScheduleTeacher:\r\n      return <ScheduleTeacherEventForm onClose={onClose} isOpen={isOpen} />;\r\n\r\n    case AgendaEventType.Meeting:\r\n      dispatch(selectMeeting(agendaEvent.metadatas));\r\n      return modeRead ? (\r\n        <MeetingView onClose={onClose} onChangeMode={() => setModeRead(false)} />\r\n      ) : (\r\n        <MeetingForm onCancel={() => setModeRead(true)} onClose={onClose} />\r\n      );\r\n    case AgendaEventType.Homework:\r\n      return <AgendaHomeworkForm event={agendaEvent} onClose={onClose} />;\r\n    case AgendaEventType.Task:\r\n      return <AgendaTaskDetail task={agendaEvent.metadatas} onClose={onClose} />;\r\n  }\r\n\r\n  return <></>;\r\n};\r\n","import { noCase } from 'change-case';\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport { Icon } from '@iconify/react';\r\nimport { ConstructionOutlined, Lens, PanoramaFishEye, Phone, Videocam } from '@mui/icons-material';\r\nimport browserFill from '@iconify/icons-eva/browser-fill';\r\n// material\r\nimport {\r\n  Box,\r\n  List,\r\n  Badge,\r\n  Button,\r\n  Avatar,\r\n  Tooltip,\r\n  Divider,\r\n  Typography,\r\n  ListItemText,\r\n  ListSubheader,\r\n  ListItemAvatar,\r\n  ListItemButton\r\n} from '@mui/material';\r\n// utils\r\nimport {\r\n  convertStringToDate,\r\n  fDateMeeting,\r\n  fToNow,\r\n  isAfterDate,\r\n  isBeforeDate\r\n} from '../../utils/formatTime';\r\n\r\n//Type\r\nimport { MeetingStatus } from '../../@types/meeting';\r\nimport { AgendaEvent, AgendaEventType } from '../../@types/agenda';\r\n//redux\r\nimport { RootState, useDispatch, useSelector } from 'redux/store';\r\n\r\n// components\r\nimport Scrollbar from '../../components/Scrollbar';\r\nimport MenuPopover from '../../components/MenuPopover';\r\nimport { MIconButton } from '../../components/@material-extend';\r\nimport EmptyContent from '../../components/EmptyContent';\r\nimport AgendaDispatcherEvent from 'components/_dashboard/agenda/AgendaDispatcherEvent';\r\nimport Label from 'components/Label';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport DispatcherEventScreen from 'components/_dashboard/agenda/AgendaDispatcherEvent';\r\nimport { closeModal, selectEvent } from 'redux/slices/agenda';\r\nimport { selectVirtualClassId } from 'redux/slices/virtualClass';\r\nimport { selectWorkshopById } from 'redux/slices/workshop';\r\n// ----------------------------------------------------------------------\r\n\r\ntype MeetsPopoverProps = {\r\n  isSmall?: boolean;\r\n};\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nfunction getCategoryType(eventType: AgendaEventType) {\r\n  switch (eventType) {\r\n    case AgendaEventType.Meeting:\r\n      return { category: 'Rendez-vous', color: '' };\r\n    case AgendaEventType.Workshop:\r\n      return { category: 'Atelier', color: '' };\r\n    case AgendaEventType.VirtualClass:\r\n      return { category: 'Classe virtuelle', color: '' };\r\n    case AgendaEventType.Task:\r\n      return { category: 'Tache', color: '' };\r\n    case AgendaEventType.Examens:\r\n      return { category: 'Examens', color: '' };\r\n    case AgendaEventType.Homework:\r\n      return { category: 'Évaluation', color: '' };\r\n    default:\r\n      return { category: 'Permanence', color: '' };\r\n  }\r\n}\r\n\r\nfunction MeetItem({\r\n  event,\r\n  onSelect\r\n}: {\r\n  event: AgendaEvent;\r\n  onSelect: (event: AgendaEvent) => void;\r\n}) {\r\n  const { category, color } = getCategoryType(event.eventType);\r\n  return (\r\n    <ListItemButton\r\n      onClick={() => onSelect(event)}\r\n      sx={{\r\n        py: 1.5,\r\n        px: 2.5,\r\n        mt: '1px'\r\n      }}\r\n    >\r\n      <ListItemText\r\n        primary={\r\n          <>\r\n            <Typography variant=\"subtitle2\">{event.title}</Typography>\r\n            <Label variant=\"filled\" sx={{ color: '#fff', backgroundColor: event.textColor }}>\r\n              {category}\r\n            </Label>\r\n          </>\r\n        }\r\n        secondary={\r\n          <Typography\r\n            variant=\"body2\"\r\n            sx={{\r\n              mt: 0.5,\r\n              display: 'flex',\r\n              alignItems: 'center',\r\n              color: 'text.disabled'\r\n            }}\r\n          >\r\n            {fDateMeeting(event.start, event.end)}\r\n          </Typography>\r\n        }\r\n      />\r\n    </ListItemButton>\r\n  );\r\n}\r\n\r\nexport default function MeetsPopover({ isSmall = false }: MeetsPopoverProps) {\r\n  const anchorRef = useRef(null);\r\n  const [open, setOpen] = useState(false);\r\n  const dispatch = useDispatch();\r\n  const { events, isOpenModal, selectedEvent } = useSelector((state: RootState) => state.agenda);\r\n\r\n  const handleOpen = () => {\r\n    setOpen(true);\r\n  };\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  const handleCloseModal = () => {\r\n    dispatch(closeModal());\r\n  };\r\n\r\n  const onSelect = (event: AgendaEvent) => {\r\n    setOpen(false);\r\n\r\n    //suivant le type , on dispatch\r\n    switch (event.eventType) {\r\n      case AgendaEventType.VirtualClass:\r\n        dispatch(selectVirtualClassId(event.id));\r\n        return;\r\n      case AgendaEventType.Workshop:\r\n        dispatch(selectWorkshopById(event.id));\r\n        return;\r\n    }\r\n\r\n    dispatch(selectEvent(event));\r\n  };\r\n\r\n  const dateCurrent = new Date();\r\n\r\n  const eventsMeet = events.filter(\r\n    (evt) =>\r\n      isAfterDate(evt.end, dateCurrent) &&\r\n      ((evt.eventType === AgendaEventType.Meeting &&\r\n        evt.metadatas.status === MeetingStatus.Registered) ||\r\n        (evt.eventType === AgendaEventType.VirtualClass && evt.metadatas.registered) ||\r\n        (evt.eventType === AgendaEventType.Workshop && evt.metadatas.registered))\r\n  );\r\n\r\n  const sortEventsMeet = [...eventsMeet].sort((a, b) => {\r\n    return new Date(a.start).valueOf() - new Date(b.start).valueOf();\r\n  });\r\n\r\n  return (\r\n    <>\r\n      <Tooltip title=\"Rendez-vous\">\r\n        <MIconButton\r\n          ref={anchorRef}\r\n          size={isSmall ? 'medium' : 'large'}\r\n          color={open ? 'primary' : 'default'}\r\n          onClick={handleOpen}\r\n        >\r\n          <Badge badgeContent={eventsMeet.length} color=\"error\">\r\n            <Icon icon={browserFill} width={20} height={20} />\r\n          </Badge>\r\n        </MIconButton>\r\n      </Tooltip>\r\n      <MenuPopover\r\n        open={open}\r\n        onClose={handleClose}\r\n        anchorEl={anchorRef.current}\r\n        sx={{ width: 360 }}\r\n      >\r\n        <Box sx={{ display: 'flex', alignItems: 'center', py: 2, px: 2.5 }}>\r\n          <Box sx={{ flexGrow: 1 }}>\r\n            <Typography variant=\"subtitle1\">Rendez-vous</Typography>\r\n          </Box>\r\n        </Box>\r\n\r\n        <Divider />\r\n\r\n        {sortEventsMeet.length === 0 ? (\r\n          <EmptyContent\r\n            title={\"Vous n'avez pas de rendez-vous à venir.\"}\r\n            description={\"Prise de rendez-vous sur l'agenda.\"}\r\n            img={'/static/illustrations/Agenda/aucun_rdv.svg'}\r\n          />\r\n        ) : (\r\n          <>\r\n            <Scrollbar sx={{ height: { xs: 340, sm: 'auto' } }}>\r\n              <List disablePadding>\r\n                {sortEventsMeet.slice(0, 10).map((event) => (\r\n                  <MeetItem key={event.id} event={event} onSelect={onSelect} />\r\n                ))}\r\n              </List>\r\n            </Scrollbar>\r\n          </>\r\n        )}\r\n\r\n        <Divider />\r\n\r\n        <Box sx={{ p: 1 }}>\r\n          <Button\r\n            fullWidth\r\n            disableRipple\r\n            component={RouterLink}\r\n            to={PATH_DASHBOARD.suivi.historicRdv}\r\n            onClick={handleClose}\r\n          >\r\n            Historique\r\n          </Button>\r\n        </Box>\r\n      </MenuPopover>\r\n\r\n      {selectedEvent && (\r\n        <AgendaDispatcherEvent\r\n          agendaEvent={selectedEvent!}\r\n          onClose={handleCloseModal}\r\n          isOpen={isOpenModal}\r\n        />\r\n      )}\r\n    </>\r\n  );\r\n}\r\n/**\r\n * to={`${PATH_DASHBOARD.virtualClass.root}/${event.id}`}\r\n      component={RouterLink}\r\n */\r\n","import { useEffect, useRef, useState } from 'react';\r\n\r\n// material\r\nimport { alpha } from '@mui/material/styles';\r\n\r\n// components\r\n\r\nimport { CheckBox, HelpRounded } from '@mui/icons-material';\r\nimport usePageSettings from 'hooks/usePageSettings';\r\nimport { Box, Checkbox, Divider, FormControlLabel, Tooltip, Typography } from '@mui/material';\r\nimport useAuth from 'hooks/useAuth';\r\nimport MenuPopover from 'components/MenuPopover';\r\nimport EmptyContent from 'components/EmptyContent';\r\nimport { dispatch } from 'redux/store';\r\n\r\n// ----------------------------------------------------------------------\r\ntype HelpPopoverProps = {\r\n  anchorRef?: any;\r\n  setOpenInfo: React.Dispatch<React.SetStateAction<boolean>>;\r\n  openInfo: boolean;\r\n};\r\n\r\nexport default function HelpPopover({ anchorRef, openInfo, setOpenInfo }: HelpPopoverProps) {\r\n  const { student, updateConfig, isReadOnly } = useAuth();\r\n\r\n  const handleCloseInfo = () => {\r\n    setOpenInfo(false);\r\n  };\r\n\r\n  const handleChange = () => {\r\n    setOpenInfo(false);\r\n    if (openInfo) dispatch(updateConfig({ ...student?.config, notDisplayMessageHelp: true }));\r\n  };\r\n\r\n  if (isReadOnly) return <></>;\r\n\r\n  return (\r\n    <MenuPopover\r\n      open={openInfo}\r\n      onClose={handleCloseInfo}\r\n      anchorEl={anchorRef?.current}\r\n      sx={{ width: 300 }}\r\n    >\r\n      <EmptyContent\r\n        title={'Accédez à cette aide à tout moment !'}\r\n        description={\r\n          'Cliquez sur “Aide” afin d’en savoir plus sur la page sur laquelle vous vous situez.'\r\n        }\r\n        img={'/static/illustrations/aide/aide.svg'}\r\n      />\r\n      <Divider />\r\n      <Box sx={{ display: 'flex', alignItems: 'center', py: 2, px: 2.5 }}>\r\n        <Box sx={{ flexGrow: 1 }}>\r\n          <FormControlLabel\r\n            control={<Checkbox onChange={handleChange} />}\r\n            label=\"Ne plus afficher ce message\"\r\n          />\r\n        </Box>\r\n      </Box>\r\n    </MenuPopover>\r\n  );\r\n}\r\n","import { useEffect, useRef, useState } from 'react';\r\n\r\n// material\r\nimport { alpha } from '@mui/material/styles';\r\n\r\n// components\r\nimport { MIconButton } from '../../components/@material-extend';\r\nimport { CheckBox, HelpRounded } from '@mui/icons-material';\r\nimport usePageSettings from 'hooks/usePageSettings';\r\nimport { Drawer, Tooltip } from '@mui/material';\r\nimport HelpPopover from 'components/_dashboard/help/HelpPopover';\r\nimport { helpCategories } from 'datas/helpCategories';\r\nimport HelpCard from 'components/_dashboard/help/HelpCard';\r\nimport HelpDrawer from 'components/_dashboard/help/HelpDrawer';\r\nimport useAuth from 'hooks/useAuth';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ntype HelpPopoverProps = {\r\n  isSmall?: boolean;\r\n};\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function HelpButton({ isSmall = false }: HelpPopoverProps) {\r\n  const { student } = useAuth();\r\n  const [open, setOpen] = useState(false);\r\n  const anchorRef = useRef(null);\r\n  const pageSettingsContext = usePageSettings();\r\n  const [openInfo, setOpenInfo] = useState(!student?.config?.notDisplayMessageHelp);\r\n\r\n  const handleOpen = (e: any) => {\r\n    setOpen(true);\r\n  };\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  if (pageSettingsContext.helpCategoryId === '') return <></>;\r\n\r\n  const helpCategory = helpCategories.find((c) => c.id === pageSettingsContext.helpCategoryId);\r\n\r\n  if (!helpCategory || helpCategory === null) return <></>;\r\n\r\n  return (\r\n    <>\r\n      <Tooltip title=\"Aide\">\r\n        <MIconButton\r\n          ref={anchorRef}\r\n          size={isSmall ? 'medium' : 'large'}\r\n          color={open || openInfo ? 'primary' : 'default'}\r\n          onClick={handleOpen}\r\n          sx={{\r\n            ...(open && {\r\n              bgcolor: (theme) =>\r\n                alpha(theme.palette.primary.main, theme.palette.action.focusOpacity)\r\n            })\r\n          }}\r\n        >\r\n          <HelpRounded />\r\n        </MIconButton>\r\n      </Tooltip>\r\n      {anchorRef && anchorRef.current && (\r\n        <HelpPopover openInfo={openInfo} setOpenInfo={setOpenInfo} anchorRef={anchorRef} />\r\n      )}\r\n\r\n      {open && <HelpDrawer open={open} onClose={handleClose} category={helpCategory} />}\r\n    </>\r\n  );\r\n}\r\n","import { orderBy, sortBy } from 'lodash';\r\n\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport { Link as RouterLink, useNavigate } from 'react-router-dom';\r\nimport { Icon } from '@iconify/react';\r\nimport starFill from '@iconify/icons-eva/star-fill';\r\n\r\n// material\r\nimport { Box, List, Badge, Button, Avatar, Tooltip, Divider, Typography } from '@mui/material';\r\n\r\n//Type\r\nimport { FavoriteKey, FavoriteState, FavoriteType } from '../../@types/favorite';\r\n\r\n// components\r\nimport Scrollbar from '../../components/Scrollbar';\r\nimport MenuPopover from '../../components/MenuPopover';\r\nimport { MIconButton } from '../../components/@material-extend';\r\nimport EmptyContent from '../../components/EmptyContent';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport FavoriteListItem from 'components/_dashboard/favorite/FavoriteListItem';\r\nimport { useFavorite } from 'hooks/useFavorite';\r\nimport { MotionInView, varFadeIn } from 'components/animate';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ntype FavoritesPopoverProps = {\r\n  isSmall?: boolean;\r\n};\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function FavoritesPopover({ isSmall = false }: FavoritesPopoverProps) {\r\n  const anchorRef = useRef(null);\r\n  const [open, setOpen] = useState(false);\r\n  const { favorites, load, select, remove, notificationContent } = useFavorite();\r\n\r\n  useEffect(() => {\r\n    load();\r\n  }, []);\r\n\r\n  const handleOpen = () => {\r\n    setOpen(true);\r\n  };\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  const handleSelect = (key: FavoriteKey, type: FavoriteType) => {\r\n    handleClose();\r\n    select(key, type);\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <Tooltip title=\"Favoris\">\r\n        <MIconButton\r\n          ref={anchorRef}\r\n          size={isSmall ? 'medium' : 'large'}\r\n          color={open ? 'primary' : 'default'}\r\n          onClick={handleOpen}\r\n        >\r\n          <Badge\r\n            badgeContent={\r\n              notificationContent && (\r\n                <MotionInView variants={varFadeIn}>{notificationContent}</MotionInView>\r\n              )\r\n            }\r\n            color=\"error\"\r\n          >\r\n            <Icon icon={starFill} width={20} height={20} />\r\n          </Badge>\r\n        </MIconButton>\r\n      </Tooltip>\r\n      <MenuPopover\r\n        open={open}\r\n        onClose={handleClose}\r\n        anchorEl={anchorRef.current}\r\n        sx={{ width: 360 }}\r\n      >\r\n        <Box sx={{ display: 'flex', alignItems: 'center', py: 2, px: 2.5 }}>\r\n          <Box sx={{ flexGrow: 1 }}>\r\n            <Typography variant=\"subtitle1\">Favoris</Typography>\r\n          </Box>\r\n        </Box>\r\n\r\n        <Divider />\r\n\r\n        {favorites.length === 0 ? (\r\n          <EmptyContent\r\n            title={\"Vous n'avez pas encore enregistré(e) de documents en favoris.\"}\r\n            description={\r\n              'Rendez-vous directement sur les supports pédagogiques que vous souhaitez sauvegarder afin de les ajouter en favoris.'\r\n            }\r\n            img={'/static/illustrations/favoris/aucun_favori.svg'}\r\n          />\r\n        ) : (\r\n          <>\r\n            <Scrollbar sx={{ height: { xs: 340, sm: 'auto' } }}>\r\n              <List disablePadding>\r\n                {orderBy(\r\n                  favorites,\r\n                  (f) => {\r\n                    return f.id;\r\n                  },\r\n                  'desc'\r\n                )\r\n                  .slice(0, 4)\r\n                  .map((favorite) => (\r\n                    <FavoriteListItem\r\n                      key={favorite.id}\r\n                      favorite={favorite}\r\n                      onSelect={handleSelect}\r\n                      onRemove={remove}\r\n                    />\r\n                  ))}\r\n              </List>\r\n            </Scrollbar>\r\n\r\n            <Divider />\r\n\r\n            <Box sx={{ p: 1 }}>\r\n              <Button\r\n                fullWidth\r\n                disableRipple\r\n                component={RouterLink}\r\n                to={PATH_DASHBOARD.favorite}\r\n                onClick={handleClose}\r\n              >\r\n                Voir tout\r\n              </Button>\r\n            </Box>\r\n          </>\r\n        )}\r\n      </MenuPopover>\r\n    </>\r\n  );\r\n}\r\n","import { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { Icon } from '@iconify/react';\r\nimport bellFill from '@iconify/icons-eva/bell-fill';\r\nimport clockFill from '@iconify/icons-eva/clock-fill';\r\nimport doneAllFill from '@iconify/icons-eva/done-all-fill';\r\n// material\r\nimport {\r\n  Box,\r\n  List,\r\n  Badge,\r\n  Grid,\r\n  Avatar,\r\n  Tooltip,\r\n  Divider,\r\n  Typography,\r\n  ListItemText,\r\n  Skeleton,\r\n  ListItemAvatar,\r\n  ListItemButton,\r\n  Button,\r\n  ListItem,\r\n  FormControlLabel,\r\n  Checkbox,\r\n  Stack\r\n} from '@mui/material';\r\n\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport { selectVirtualClassId } from 'redux/slices/virtualClass';\r\nimport { RootState } from 'redux/store';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {\r\n  getMoreNotifications,\r\n  getNotifications,\r\n  setAllRead,\r\n  getNotificationSettings,\r\n  setRead\r\n} from 'redux/slices/notification';\r\n\r\n// utils\r\nimport { fDate, fToNow } from '../../utils/formatTime';\r\nimport {\r\n  NotificationItem,\r\n  NotificationSettingsProps,\r\n  NotificationType\r\n} from '../../@types/notificationModel';\r\n\r\n// components\r\nimport Scrollbar from '../../components/Scrollbar';\r\nimport MenuPopover from '../../components/MenuPopover';\r\nimport { MIconButton } from '../../components/@material-extend';\r\n\r\nimport InfiniteScroll from 'react-infinite-scroll-component';\r\n\r\nimport { selectWorkshopById } from 'redux/slices/workshop';\r\nimport Markdown from 'components/Markdown';\r\nimport Label from 'components/Label';\r\nimport EmptyContent from 'components/EmptyContent';\r\nimport useHubConnection from 'hooks/useHubConnection';\r\nimport { useSnackbar } from 'notistack';\r\n// ----------------------------------------------------------------------\r\n\r\ntype NotificationPopoverProps = {\r\n  isSmall?: boolean;\r\n};\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nfunction NotificationListItem({\r\n  notification,\r\n  settings,\r\n  onClose\r\n}: {\r\n  notification: NotificationItem;\r\n  settings: NotificationSettingsProps;\r\n  onClose?: VoidFunction;\r\n}) {\r\n  const dispatch = useDispatch();\r\n  const navigate = useNavigate();\r\n\r\n  if (settings == null)\r\n    settings = {\r\n      id: NotificationType.Adresse,\r\n      color: '#7649F0',\r\n      bgcolor: '#F0EAFF',\r\n      title: '',\r\n      tagLabel: 'Information'\r\n    };\r\n\r\n  const handleSelect = (item: NotificationItem) => {\r\n    if (onClose) onClose();\r\n\r\n    // notification non lue, on tague lu\r\n    if (!item.read) dispatch(setRead(item.id)(() => console.log('err')));\r\n\r\n    switch (item.type) {\r\n      case NotificationType.VirtualClassNotificationCancelBySchool:\r\n      case NotificationType.VirtualClassNotificationCancel:\r\n      case NotificationType.VirtualClassNotificationConfirmation:\r\n      case NotificationType.VirtualClass:\r\n        dispatch(selectVirtualClassId(item.idType));\r\n        break;\r\n      case NotificationType.Events:\r\n        dispatch(selectWorkshopById(item.idType));\r\n        break;\r\n      case NotificationType.Actualites:\r\n        navigate(`${PATH_DASHBOARD.article.root}/${item.idType}`);\r\n        break;\r\n      case NotificationType.DevoirsCorriges:\r\n      case NotificationType.Devoirs:\r\n      case NotificationType.DevoirsEnvoyes:\r\n      case NotificationType.DevoirsRecus:\r\n        if (item?.reference && item?.reference != '') {\r\n          navigate(`${PATH_DASHBOARD.studyPlan.details}/${item.reference}`);\r\n        } else {\r\n          navigate(PATH_DASHBOARD.homeworks.root);\r\n        }\r\n        break;\r\n      case NotificationType.Adresse:\r\n        break;\r\n      case NotificationType.Colis:\r\n        navigate(`${PATH_DASHBOARD.studyPlan.root}`);\r\n        break;\r\n      case NotificationType.Medias:\r\n        break;\r\n      case NotificationType.Notification:\r\n        break;\r\n      case NotificationType.Questions:\r\n        navigate(`${PATH_DASHBOARD.message.all}/${item.id}/${item.idType}/4`);\r\n        break;\r\n      case NotificationType.NovadisImportant:\r\n      case NotificationType.NovadisNormal:\r\n        navigate(`${PATH_DASHBOARD.message.all}/${item.id}/${item.idType}/3`);\r\n        break;\r\n      case NotificationType.TachesMessage:\r\n        navigate(`${PATH_DASHBOARD.message.all}/${item.id}/${item.idType}/6`);\r\n        break;\r\n      case NotificationType.MeetingAbsence:\r\n        dispatch(selectVirtualClassId(item.idType));\r\n        break;\r\n      case NotificationType.Examens:\r\n        navigate(`${PATH_DASHBOARD.suivi.examens}`);\r\n        break;\r\n    }\r\n  };\r\n\r\n  const getObservationByType = (notification: NotificationItem) => {\r\n    const type: NotificationType = notification?.type;\r\n\r\n    switch (type) {\r\n      case NotificationType.VirtualClassNotificationConfirmation:\r\n        return (\r\n          <Typography component=\"div\" variant=\"caption\" sx={{ color: '#EE0701' }}>\r\n            Merci de vous rendre disponible ou d’annuler votre présence au plus tard, 4 jours avant\r\n            votre classe virtuelle.\r\n          </Typography>\r\n        );\r\n      case NotificationType.VirtualClassNotificationWaiting:\r\n        return (\r\n          <Typography component=\"div\" variant=\"caption\" sx={{ color: '#EE0701' }}>\r\n            Vous recevrez une notification dès qu'une place se libère. Vous pourrez alors vous\r\n            inscrire.\r\n          </Typography>\r\n        );\r\n      case NotificationType.MeetingAbsence:\r\n        return (\r\n          <Typography component=\"div\" variant=\"caption\" sx={{ color: '#EE0701' }}>\r\n            Lors de la prochaine classe virtuelle, merci de veiller à vous rendre disponible ou\r\n            d'annuler votre présence 4 jours avant au plus tard. Merci pour votre compréhension.\r\n          </Typography>\r\n        );\r\n      case NotificationType.DevoirsEnvoyes:\r\n        if (notification.reference == null || notification.reference.trim() === '') {\r\n          return (\r\n            <Typography component=\"div\" variant=\"caption\" sx={{ color: '#EE0701' }}>\r\n              Référence non fournie, consulter la rubrique évaluations.\r\n            </Typography>\r\n          );\r\n        }\r\n    }\r\n    return <></>;\r\n  };\r\n\r\n  return (\r\n    <ListItemButton\r\n      onClick={() => handleSelect(notification)}\r\n      sx={{\r\n        py: 1.5,\r\n        px: 2.5,\r\n        mt: '1px',\r\n        ...(notification.read && {\r\n          bgcolor: 'action.selected'\r\n        })\r\n      }}\r\n    >\r\n      <ListItemText\r\n        primary={\r\n          <Typography variant=\"subtitle2\">\r\n            {settings.title === '' ? notification.title : settings.title}\r\n            {getObservationByType(notification)}\r\n\r\n            <Typography component=\"div\" variant=\"caption\" sx={{ color: 'text.secondary' }}>\r\n              {settings.title === '' ? (\r\n                <Typography\r\n                  variant=\"caption\"\r\n                  sx={{\r\n                    '& > *': {\r\n                      fontSize: '0.75rem!important'\r\n                    }\r\n                  }}\r\n                >\r\n                  <Markdown children={notification.description} />\r\n                </Typography>\r\n              ) : (\r\n                notification.title\r\n              )}\r\n            </Typography>\r\n          </Typography>\r\n        }\r\n        secondary={\r\n          <Typography\r\n            variant=\"caption\"\r\n            sx={{\r\n              mt: 0.5,\r\n              display: 'flex',\r\n              alignItems: 'center',\r\n              color: 'text.disabled'\r\n            }}\r\n          >\r\n            <Box component={Icon} icon={clockFill} sx={{ mr: 0.5, width: 16, height: 16 }} />\r\n            {fDate(notification.createdDate)}\r\n            <Box flexGrow={1} />\r\n\r\n            <Label variant=\"ghost\" sx={{ color: settings.color, bgcolor: settings.bgcolor }}>\r\n              {settings.tagLabel}\r\n            </Label>\r\n          </Typography>\r\n        }\r\n      />\r\n    </ListItemButton>\r\n  );\r\n}\r\n\r\nexport default function NotificationsPopover({ isSmall = false }: NotificationPopoverProps) {\r\n  const anchorRef = useRef(null);\r\n  const [open, setOpen] = useState(false);\r\n  const { connection } = useHubConnection(); //SignalR;\r\n  const dispatch = useDispatch();\r\n  const { hasMore, notifications, index, step, count, countUnRead } = useSelector(\r\n    (state: RootState) => state.notification\r\n  );\r\n  const { enqueueSnackbar } = useSnackbar();\r\n\r\n  const handleOpen = () => {\r\n    setOpen(true);\r\n  };\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  const handleMarkAllAsRead = () => {\r\n    dispatch(setAllRead()(() => console.log('err')));\r\n  };\r\n\r\n  const onScroll = useCallback(() => dispatch(getMoreNotifications()), [dispatch]);\r\n\r\n  useEffect(() => {\r\n    connection?.on('receiveEvent-notification', (params: any) => {\r\n      dispatch(getNotifications(1, 50, true));\r\n      enqueueSnackbar(params.title, { variant: 'info', persist: true });\r\n    });\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    dispatch(getNotifications(index, step, false));\r\n  }, [index, step]);\r\n\r\n  return (\r\n    <>\r\n      <Tooltip title=\"Notifications\">\r\n        <MIconButton\r\n          ref={anchorRef}\r\n          size={isSmall ? 'medium' : 'large'}\r\n          color={open ? 'primary' : 'default'}\r\n          onClick={handleOpen}\r\n        >\r\n          <Badge badgeContent={countUnRead} color=\"error\">\r\n            <Icon icon={bellFill} width={20} height={20} />\r\n          </Badge>\r\n        </MIconButton>\r\n      </Tooltip>\r\n      <MenuPopover\r\n        open={open}\r\n        onClose={handleClose}\r\n        anchorEl={anchorRef.current}\r\n        sx={{ width: 360, position: 'relative' }}\r\n      >\r\n        <Box sx={{ display: 'flex', alignItems: 'center', py: 1, px: 2.5 }}>\r\n          <Box sx={{ flexGrow: 1 }}>\r\n            <Typography variant=\"subtitle1\">Notifications ({count})</Typography>\r\n            <Typography variant=\"body2\" sx={{ color: 'text.secondary' }}>\r\n              Vous avez {countUnRead} notification(s) non lue(s)\r\n            </Typography>\r\n          </Box>\r\n        </Box>\r\n        {countUnRead > 0 && (\r\n          <Stack flexDirection={'row'} alignItems={'center'} alignContent=\"space-between\">\r\n            <Box sx={{ flexGrow: 1 }} />\r\n            <Button color=\"primary\" variant=\"text\" onClick={handleMarkAllAsRead}>\r\n              <Icon icon={doneAllFill} width={20} height={20} /> Marquer tout comme lu\r\n            </Button>\r\n          </Stack>\r\n        )}\r\n        <Divider />\r\n\r\n        {count === 0 ? (\r\n          <EmptyContent\r\n            title={\"Vous n'avez pas encore de notification.\"}\r\n            description={''}\r\n            img={'/static/illustrations/notifications/aucune_notification.svg'}\r\n          />\r\n        ) : (\r\n          <Scrollbar sx={{ height: 440 }}>\r\n            <InfiniteScroll\r\n              next={onScroll}\r\n              hasMore={hasMore}\r\n              loader={\r\n                <ListItem sx={{ alignItems: 'center', alignContent: 'center' }}>\r\n                  <Button onClick={onScroll} variant=\"text\" size=\"small\">\r\n                    Voir les 50 suivants\r\n                  </Button>\r\n                </ListItem>\r\n              }\r\n              dataLength={count}\r\n            >\r\n              <List disablePadding>\r\n                {notifications.map((notification) => {\r\n                  const settingItem = getNotificationSettings().filter(\r\n                    (s: NotificationSettingsProps) => s.id === notification.type\r\n                  )[0];\r\n                  return (\r\n                    <NotificationListItem\r\n                      key={`${notification.id}${notification.idType}${notification.type}`}\r\n                      notification={notification}\r\n                      settings={settingItem}\r\n                      onClose={handleClose}\r\n                    />\r\n                  );\r\n                })}\r\n              </List>\r\n            </InfiniteScroll>\r\n          </Scrollbar>\r\n        )}\r\n      </MenuPopover>\r\n    </>\r\n  );\r\n}\r\n/**\r\n *  <!-- <Button color=\"primary\" variant=\"text\" onClick={handleMarkAllAsRead}>\r\n              <FilterListRounded /> Filtrer\r\n            </Button>--!>\r\n */\r\n","import { Card, Stack, Typography } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport useAuth from 'hooks/useAuth';\r\n\r\n/**\r\n * Afficher des données élèves breves\r\n */\r\nexport default function AccountShortInfos() {\r\n  const { student, getContractCurrent } = useAuth();\r\n\r\n  const contract = getContractCurrent();\r\n\r\n  return (\r\n    <Card sx={{ p: 0.5 }}>\r\n      <Stack>\r\n        <Typography variant=\"subtitle2\">\r\n          {student?.lastName} {student?.firstName}\r\n        </Typography>\r\n        <Typography variant=\"caption\">\r\n          Formation : {contract.training.id} {contract.training.label}\r\n        </Typography>\r\n        <Typography variant=\"caption\">Contrat N° {contract.id}</Typography>\r\n      </Stack>\r\n    </Card>\r\n  );\r\n}\r\n","import { AccessTime } from '@mui/icons-material';\r\nimport { Tooltip } from '@mui/material';\r\nimport { Address } from '../../../@types/account';\r\nimport Label from 'components/Label';\r\nimport useAuth from 'hooks/useAuth';\r\n\r\ntype StudentHourProps = { isSmall?: boolean };\r\n\r\nexport default function StudentHour({ isSmall = true }: StudentHourProps) {\r\n  const { getHourAlertMessage } = useAuth();\r\n  const msg: string = getHourAlertMessage();\r\n\r\n  const children = () => {\r\n    return isSmall ? (\r\n      <Tooltip title={msg}>\r\n        <AccessTime color=\"warning\" />\r\n      </Tooltip>\r\n    ) : (\r\n      <Label color=\"warning\">{msg}</Label>\r\n    );\r\n  };\r\n\r\n  return <>{msg && msg !== '' && children()}</>;\r\n}\r\n","import { useEffect, useRef, useState } from 'react';\r\n\r\n// material\r\nimport { Box, Tooltip, Divider, Typography, IconButton, Alert, Button } from '@mui/material';\r\n\r\n// components\r\nimport MenuPopover from '../../components/MenuPopover';\r\n\r\nimport { Info, WarningRounded } from '@mui/icons-material';\r\nimport useAuth from 'hooks/useAuth';\r\n\r\nimport { Stack } from '@mui/material';\r\nimport useOvertime from 'hooks/useOvertime';\r\nimport usePayment from 'hooks/usePayment';\r\nimport { AlertBase } from '../../@types/common';\r\nimport { InformationsContract } from 'components/ModuleNotAuthorized';\r\n\r\nexport default function AlertsPopover() {\r\n  const anchorRef = useRef(null);\r\n  const [open, setOpen] = useState(false);\r\n  const { getMessagesAccess, student } = useAuth();\r\n  const { authorized, getOvertimeAlert } = useOvertime();\r\n  const { authorizedPayment, getPaymentAlert } = usePayment();\r\n  const [alertList, setAlertList] = useState<Array<AlertBase>>([]);\r\n\r\n  useEffect(() => {\r\n    let tmpAlertList = Array<AlertBase>();\r\n\r\n    // Paiement requis\r\n    authorizedPayment && tmpAlertList.push(getPaymentAlert());\r\n\r\n    // Expiration contrat\r\n    authorized && tmpAlertList.push(getOvertimeAlert());\r\n\r\n    // limite d'access\r\n    const messageLimited = getMessagesAccess();\r\n    if (messageLimited && messageLimited !== '')\r\n      tmpAlertList.push({\r\n        title: \"Accès à l'Espace numérique de travail limité\",\r\n        description: messageLimited,\r\n        img: ''\r\n      });\r\n\r\n    if (tmpAlertList) setAlertList(tmpAlertList);\r\n  }, [student?.id]);\r\n\r\n  const handleOpen = () => {\r\n    setOpen(true);\r\n  };\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  //aucune alerte\r\n  if (alertList.length === 0) return <></>;\r\n\r\n  return (\r\n    <>\r\n      <Tooltip title=\"Attention\">\r\n        <IconButton\r\n          ref={anchorRef}\r\n          size={'medium'}\r\n          color={open ? 'primary' : 'default'}\r\n          onClick={handleOpen}\r\n        >\r\n          <WarningRounded color=\"error\" />\r\n        </IconButton>\r\n      </Tooltip>\r\n      <MenuPopover\r\n        open={open}\r\n        onClose={handleClose}\r\n        anchorEl={anchorRef.current}\r\n        sx={{ width: 360 }}\r\n      >\r\n        <Box sx={{ display: 'flex', alignItems: 'center', py: 2, px: 2.5 }}>\r\n          <Box sx={{ flexGrow: 1 }}>\r\n            <Typography variant=\"subtitle1\">Alertes</Typography>\r\n          </Box>\r\n        </Box>\r\n\r\n        <Divider />\r\n\r\n        <Stack gap=\"5px\">\r\n          {alertList.map((alert: AlertBase, index: number) => {\r\n            if (alert.action)\r\n              return (\r\n                <Button\r\n                  onClick={() => {\r\n                    alert?.action && alert?.action();\r\n                    handleClose();\r\n                  }}\r\n                  size=\"small\"\r\n                  key={index}\r\n                >\r\n                  <Alert severity=\"error\" sx={{ textAlign: 'left' }}>\r\n                    <Typography variant=\"subtitle2\">{alert.title}</Typography>\r\n                    <Typography variant=\"body2\">{alert.description}</Typography>\r\n                  </Alert>\r\n                </Button>\r\n              );\r\n\r\n            return (\r\n              <Alert severity=\"error\" sx={{ textAlign: 'left', m: 1 }} key={index}>\r\n                <Typography variant=\"subtitle2\">{alert.title}</Typography>\r\n                <Typography variant=\"body2\">{alert.description}</Typography>\r\n              </Alert>\r\n            );\r\n          })}\r\n          <InformationsContract />\r\n        </Stack>\r\n      </MenuPopover>\r\n    </>\r\n  );\r\n}\r\n","import { CircularProgress, Box, Typography } from '@mui/material';\r\nimport { styled } from '@mui/material/styles';\r\nimport useCountdown from 'hooks/useCountdown';\r\nimport { useEffect, useState } from 'react';\r\n\r\n//--------------------------- #4C67FD\r\nconst CircularBaseStyle = styled(CircularProgress)(({ theme }) => ({\r\n  color: '#919eab1f'\r\n}));\r\nconst CircularValueStyle = styled(CircularProgress)(({ theme }) => ({\r\n  color: theme.palette.primary.main,\r\n  position: 'absolute',\r\n  left: 0\r\n}));\r\n\r\ntype CountdownTimerProps = {\r\n  targetDate: Date;\r\n  startDate?: Date;\r\n  warningSecond: number;\r\n  errorSecond: number;\r\n  size?: number;\r\n  fontSize?: string;\r\n  onExpired: () => void;\r\n};\r\n\r\nexport default function CountdownTimer({\r\n  targetDate,\r\n  startDate = new Date(),\r\n  warningSecond,\r\n  errorSecond,\r\n  size = 60,\r\n  fontSize = '1rem',\r\n  onExpired\r\n}: CountdownTimerProps) {\r\n  const [days, hours, minutes, seconds] = useCountdown(targetDate, startDate);\r\n  const [value, setValue] = useState(hours * 3600 + minutes * 60 + seconds);\r\n  const compteur = hours * 3600 + minutes * 60 + seconds;\r\n\r\n  const getColor = () => {\r\n    if (compteur < errorSecond) return { color: '#EE0701', colorBase: '#FFD3D2' };\r\n    if (compteur < warningSecond) return { color: '#FFC107', colorBase: '#FFF7CD' };\r\n\r\n    return { color: '#6369FF', colorBase: '#D4DBFF' };\r\n  };\r\n\r\n  //declenche fin du compte a rebours\r\n  useEffect(() => {\r\n    if (days + hours + minutes + seconds <= 0) onExpired();\r\n  }, [seconds]);\r\n\r\n  return (\r\n    <Box position=\"relative\" display=\"inline-flex\">\r\n      <CircularBaseStyle\r\n        variant=\"determinate\"\r\n        sx={{ color: getColor().colorBase }}\r\n        size={size}\r\n        thickness={4}\r\n        value={100}\r\n      />\r\n      <CircularValueStyle\r\n        variant=\"determinate\"\r\n        value={(compteur / value) * 100}\r\n        sx={{ color: getColor().color }}\r\n        size={size}\r\n      />\r\n      <Box\r\n        top={0}\r\n        left={0}\r\n        bottom={0}\r\n        right={0}\r\n        position=\"absolute\"\r\n        display=\"flex\"\r\n        alignItems=\"center\"\r\n        justifyContent=\"center\"\r\n      >\r\n        <Typography sx={{ fontSize: fontSize }} component=\"div\" color=\"textSecondary\">\r\n          {minutes.toString().padStart(2, '0')}:{seconds.toString().padStart(2, '0')}\r\n        </Typography>\r\n      </Box>\r\n    </Box>\r\n  );\r\n}\r\n","import { useState, useEffect } from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function useCountdown(targetDate: Date, startDate: Date) {\r\n  const countDownDate = new Date(targetDate).getTime();\r\n  const [countDown, setCountDown] = useState(countDownDate - startDate.getTime());\r\n\r\n  useEffect(() => {\r\n    const interval = setInterval(() => {\r\n      setCountDown(countDownDate - new Date().getTime());\r\n    }, 1000);\r\n\r\n    return () => clearInterval(interval);\r\n  }, [countDownDate]);\r\n\r\n  const getReturnValues = (countDown: number, countInit: number) => {\r\n    // calculate time left\r\n    const days = Math.floor(countDown / (1000 * 60 * 60 * 24));\r\n    const hours = Math.floor((countDown % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\r\n    const minutes = Math.floor((countDown % (1000 * 60 * 60)) / (1000 * 60));\r\n    const seconds = Math.floor((countDown % (1000 * 60)) / 1000);\r\n\r\n    return [days, hours, minutes, seconds];\r\n  };\r\n\r\n  return getReturnValues(countDown, startDate.getTime());\r\n}\r\n\r\n// Usage\r\n// const countdown = useCountdown(new Date('07/07/2022 21:30'));\r\n","import {\r\n  Button,\r\n  Card,\r\n  CardHeader,\r\n  ClickAwayListener,\r\n  Dialog,\r\n  DialogContent,\r\n  DialogTitle,\r\n  IconButton,\r\n  Menu,\r\n  Popper,\r\n  Portal,\r\n  Stack,\r\n  Typography\r\n} from '@mui/material';\r\n\r\nimport { Box } from '@mui/system';\r\n\r\nimport useHubConnection from 'hooks/useHubConnection';\r\nimport { useEffect, useState } from 'react';\r\nimport { fDate, addTime } from 'utils/formatTime';\r\nimport { styled } from '@mui/material/styles';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport { dispatch, RootState, useSelector } from 'redux/store';\r\nimport { Survey } from '../../../@types/contract';\r\nimport { IllustrationInfo } from 'components/IllustrationMessage';\r\nimport CountdownTimer from '../tracking/CountdownTimer';\r\nimport useLocalStorage from 'hooks/useLocalStorage';\r\nimport { DateRange } from '@mui/icons-material';\r\nimport useAuth from 'hooks/useAuth';\r\nimport useSettings from 'hooks/useSettings';\r\nimport useScreenConfig from 'hooks/useScreenConfig';\r\nimport { useNavigate } from 'react-router';\r\nimport { PATH_PAGE } from 'routes/paths';\r\n\r\n//******************************** */\r\nconst CardStyle = styled(Card)(({ theme }) => ({\r\n  overflow: 'hidden',\r\n  position: 'absolute',\r\n  right: 10,\r\n  top: 100,\r\n  zIndex: 50,\r\n  boxShadow: theme.customShadows.z16,\r\n  borderRadius: theme.shape.borderRadiusMd,\r\n  border: '5px solid #d7d7d7',\r\n  maxWidth: 400\r\n}));\r\n\r\n/**\r\n * Ecoute\r\n * et affiche une popup de coupure de l'application pour mise à jour\r\n */\r\nexport default function WorkflowUpdated() {\r\n  const { logout } = useAuth();\r\n  const { connection } = useHubConnection(); //SignalR;\r\n  const [updatedDate, setUpdatedDate] = useLocalStorage<{\r\n    start: number | null;\r\n    end: number | null;\r\n  }>('updatedApplication', { start: null, end: null });\r\n  const [open, setOpen] = useState<boolean>(false);\r\n  const { isMobile } = useScreenConfig();\r\n  const navigate = useNavigate();\r\n\r\n  //Abonnement aux events\r\n  useEffect(() => {\r\n    connection?.on('workflowUpdated', (time: number) => {\r\n      //time :=> temps en minute avant la coupure\r\n      const timeOut = addTime(new Date(), time).getTime();\r\n      setUpdatedDate({ start: new Date().getTime(), end: timeOut });\r\n      setOpen(true);\r\n    });\r\n\r\n    return () => {\r\n      connection?.off('workflowUpdated');\r\n    };\r\n  }, []);\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  const handleReset = async () => {\r\n    setOpen(false);\r\n    setUpdatedDate({ start: null, end: null });\r\n    navigate(PATH_PAGE.maintenance);\r\n  };\r\n\r\n  //Verifier que la date est postérieure\r\n  if (!updatedDate.start || updatedDate.end < new Date().getTime()) return <></>;\r\n\r\n  return (\r\n    <Box>\r\n      <Stack direction=\"row\" gap=\"2px\" alignItems={'center'}>\r\n        {!isMobile && (\r\n          <Typography variant=\"body2\" sx={{ color: '#212B36' }}>\r\n            Mise à jour dans{' : '}\r\n          </Typography>\r\n        )}\r\n        <CountdownTimer\r\n          size={40}\r\n          fontSize={'0.7rem'}\r\n          targetDate={new Date(updatedDate.end)}\r\n          startDate={new Date(updatedDate.start)}\r\n          warningSecond={150}\r\n          errorSecond={75}\r\n          onExpired={handleReset}\r\n        />\r\n      </Stack>\r\n      <Dialog open={open} fullWidth maxWidth=\"sm\">\r\n        <DialogContent sx={{ p: 2 }}>\r\n          <IllustrationInfo\r\n            img=\"/static/illustrations/general/mise_a_jour.svg\"\r\n            title=\"Sécurité\"\r\n            maxHeightImg={130}\r\n          >\r\n            <Box sx={{ display: 'flex', justifyContent: 'end' }}>\r\n              <CountdownTimer\r\n                targetDate={new Date(updatedDate.end)}\r\n                startDate={new Date(updatedDate.start)}\r\n                warningSecond={150}\r\n                errorSecond={75}\r\n                onExpired={handleReset}\r\n              />\r\n            </Box>\r\n\r\n            <Typography variant=\"subtitle2\" paragraph>\r\n              Mise à jour de votre Espace Numérique de Travail (ENT).\r\n            </Typography>\r\n\r\n            <Typography variant=\"body2\">\r\n              Votre ENT sera mis à jour à {fDate(new Date(updatedDate.end), 'HH:mm')}.\r\n            </Typography>\r\n            <Typography variant=\"body2\" gutterBottom>\r\n              Pensez à enregistrer votre travail si vous êtes en cours de rédaction d’une\r\n              évaluation.\r\n            </Typography>\r\n\r\n            <Box>\r\n              <Button size=\"small\" variant=\"contained\" onClick={handleClose}>\r\n                J’ai compris\r\n              </Button>\r\n            </Box>\r\n          </IllustrationInfo>\r\n        </DialogContent>\r\n      </Dialog>\r\n    </Box>\r\n  );\r\n}\r\n/**\r\n *\r\n */\r\n","import { StudyPlanChapter, StudyPlanPhase } from '../@types/pedagogy';\r\nimport { useEffect, useState } from 'react';\r\nimport useStudyPlan from './useStudyPlan';\r\n\r\nconst useStudyPlanAverage = () => {\r\n  const [chapters, setChapters] = useState<Array<StudyPlanChapter>>([]);\r\n  const { phases } = useStudyPlan();\r\n\r\n  useEffect(() => {\r\n    if (phases === null || phases.length === 0 || chapters.length > 0) return;\r\n\r\n    let chapterList: Array<StudyPlanChapter> = [];\r\n    phases.map((phase: StudyPlanPhase) => {\r\n      chapterList = chapterList.concat([...phase.chapters]);\r\n    });\r\n\r\n    if (chapterList.length > 0) setChapters(chapterList);\r\n  }, [phases]);\r\n\r\n  return {\r\n    chapters\r\n  };\r\n};\r\n\r\nexport default useStudyPlanAverage;\r\n","import { Icon } from '@iconify/react';\r\nimport menu2Fill from '@iconify/icons-eva/menu-2-fill';\r\n// material\r\nimport { alpha, styled } from '@mui/material/styles';\r\nimport {\r\n  Box,\r\n  Stack,\r\n  AppBar,\r\n  Toolbar,\r\n  IconButton,\r\n  Tooltip,\r\n  Typography,\r\n  Card,\r\n  useMediaQuery\r\n} from '@mui/material';\r\nimport { ModeAccess } from '../../@types/account';\r\nimport { ScoreType } from '../../@types/pedagogy';\r\n// hooks\r\nimport useCollapseDrawer from '../../hooks/useCollapseDrawer';\r\n// components\r\nimport { MHidden } from '../../components/@material-extend';\r\n\r\nimport AccountPopover from './AccountPopover';\r\nimport MeetsPopover from './MeetPopover';\r\nimport HelpButton from './HelpButton';\r\n\r\nimport PermittedAccessMessage from './PermittedAccessMessage';\r\nimport FavoritesPopover from './FavoritesPopover';\r\n\r\nimport useAuth from 'hooks/useAuth';\r\nimport { Info, Visibility } from '@mui/icons-material';\r\nimport NotificationsPopover from './NotificationsPopover';\r\nimport { ScoreView } from 'components/_dashboard/studyPlan/ScoreView';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport AccountShortInfos from 'components/_dashboard/student/account/AccountShortInfos';\r\nimport StudentHour from 'components/_dashboard/student/StudentHour';\r\nimport AlertsPopover from './AlertsPopover';\r\nimport WorkflowUpdated from 'components/_dashboard/workflow/WorkflowUpdated';\r\nimport useModuleAuthorize from 'hooks/useModuleAuthorize';\r\nimport { ModuleType } from '../../@types/contract';\r\nimport StudyPlanChapterAverageDialog from 'components/_dashboard/studyPlan/Moyenne/StudyPlanChapterAverageDialog';\r\nimport { Button } from '@mui/material';\r\nimport useStudyPlanAverage from 'hooks/useStudyPlanAverage';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst DRAWER_WIDTH = 280;\r\nconst COLLAPSE_WIDTH = 102;\r\n\r\nconst APPBAR_MOBILE = 64;\r\nconst APPBAR_DESKTOP = 64;\r\n\r\nconst RootStyle = styled(AppBar)(({ theme }) => ({\r\n  boxShadow: 'none',\r\n  backdropFilter: 'blur(6px)',\r\n  WebkitBackdropFilter: 'blur(6px)', // Fix on Mobile\r\n  backgroundColor: alpha(theme.palette.background.default, 0.72),\r\n  [theme.breakpoints.up('lg')]: {\r\n    width: `calc(100% - ${DRAWER_WIDTH + 1}px)`\r\n  },\r\n  zIndex: 1000\r\n}));\r\n\r\nconst ToolbarStyle = styled(Toolbar)(({ theme }) => ({\r\n  minHeight: APPBAR_MOBILE,\r\n  [theme.breakpoints.up('lg')]: {\r\n    minHeight: APPBAR_DESKTOP,\r\n    padding: theme.spacing(0, 5)\r\n  }\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ntype DashboardNavbarProps = {\r\n  onOpenSidebar: VoidFunction;\r\n};\r\n\r\nexport default function DashboardNavbar({ onOpenSidebar }: DashboardNavbarProps) {\r\n  const { isCollapse } = useCollapseDrawer();\r\n  const { student, getContractCurrent, isReadOnly, logout } = useAuth();\r\n  const { chapters } = useStudyPlanAverage();\r\n  const contract = getContractCurrent();\r\n  const { authorizedModule } = useModuleAuthorize({ accessibleModules: [ModuleType.Dashboard] });\r\n  const theme = useTheme();\r\n  const isSmall = useMediaQuery(theme.breakpoints.down(940));\r\n  const showAccountInfo = useMediaQuery(theme.breakpoints.up(700));\r\n  const isControlOnly = [ModeAccess.Control].includes(student?.modeAccess);\r\n\r\n  const handleLogout = async () => {\r\n    try {\r\n      await logout?.();\r\n\r\n      window.location.reload();\r\n    } catch (error) {}\r\n  };\r\n\r\n  if (isControlOnly)\r\n    return (\r\n      <RootStyle>\r\n        <Box sx={{ p: 0.5, pt: 1.5 }}>\r\n          <Button variant=\"outlined\" color=\"error\" onClick={handleLogout}>\r\n            DECONNEXION\r\n          </Button>\r\n        </Box>\r\n      </RootStyle>\r\n    );\r\n\r\n  return (\r\n    <RootStyle\r\n      sx={{\r\n        ...(isCollapse && {\r\n          width: { lg: `calc(100% - ${COLLAPSE_WIDTH}px)` }\r\n        })\r\n      }}\r\n    >\r\n      <ToolbarStyle>\r\n        <MHidden width=\"lgUp\">\r\n          <IconButton onClick={onOpenSidebar} sx={{ mr: 1, color: 'text.primary' }}>\r\n            <Icon icon={menu2Fill} />\r\n          </IconButton>\r\n        </MHidden>\r\n\r\n        <Box sx={{ flexGrow: 1 }} />\r\n        <WorkflowUpdated />\r\n        <StudentHour isSmall={true} />\r\n\r\n        <Stack direction=\"row\" alignItems=\"center\" spacing={{ xs: 0, sm: 1.5 }}>\r\n          {contract.numberOfMandatoryHomeworkCorrected > 0 && (\r\n            <Tooltip title=\"Seules vos évaluations obligatoires sont comptées dans votre moyenne\">\r\n              <Card sx={{ p: '4px 16px', m: 1, textAlign: 'center' }}>\r\n                <MHidden width=\"mdDown\">\r\n                  <Stack direction=\"row\" justifyContent=\"center\" alignItems=\"center\" spacing=\"5px\">\r\n                    <Typography variant=\"caption\">Moyenne générale</Typography>\r\n                    <Info sx={{ height: '18px', width: '18px', color: theme.palette.grey[500] }} />\r\n                  </Stack>\r\n                </MHidden>\r\n                <StudyPlanChapterAverageDialog chapters={chapters} name=\"Moyenne générale\">\r\n                  {(onClick) => (\r\n                    <Button onClick={onClick}>\r\n                      <ScoreView\r\n                        score={contract.averageScore.toString()}\r\n                        scoreType={ScoreType.sur20}\r\n                      />\r\n                    </Button>\r\n                  )}\r\n                </StudyPlanChapterAverageDialog>\r\n              </Card>\r\n            </Tooltip>\r\n          )}\r\n          {isReadOnly && (\r\n            <>\r\n              {showAccountInfo && <AccountShortInfos />}\r\n              <Tooltip title=\"Utilisateur Skill And You : Accès en mode lecture\">\r\n                <Visibility color=\"warning\" />\r\n              </Tooltip>\r\n            </>\r\n          )}\r\n          {authorizedModule && <AlertsPopover />}\r\n          {/*<PermittedAccessMessage isSmall={isSmall} />*/}\r\n          <MeetsPopover isSmall={isSmall} />\r\n          {authorizedModule && <FavoritesPopover isSmall={isSmall} />}\r\n          {authorizedModule && <NotificationsPopover isSmall={isSmall} />}\r\n          <HelpButton isSmall={isSmall} />\r\n\r\n          <AccountPopover isSmall={isSmall} />\r\n        </Stack>\r\n      </ToolbarStyle>\r\n    </RootStyle>\r\n  );\r\n}\r\n","import { useState, ReactNode } from 'react';\r\nimport { Icon } from '@iconify/react';\r\nimport { NavLink as RouterLink, matchPath, useLocation } from 'react-router-dom';\r\nimport arrowIosForwardFill from '@iconify/icons-eva/arrow-ios-forward-fill';\r\nimport arrowIosDownwardFill from '@iconify/icons-eva/arrow-ios-downward-fill';\r\n// material\r\nimport { alpha, useTheme, styled } from '@mui/material/styles';\r\nimport {\r\n  Box,\r\n  List,\r\n  BoxProps,\r\n  Collapse,\r\n  ListItemText,\r\n  ListItemIcon,\r\n  ListSubheader,\r\n  ListItemButton,\r\n  ListItemButtonProps\r\n} from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst ListSubheaderStyle = styled((props) => (\r\n  <ListSubheader disableSticky disableGutters {...props} />\r\n))(({ theme }) => ({\r\n  ...theme.typography.overline,\r\n  marginTop: theme.spacing(3),\r\n  marginBottom: theme.spacing(2),\r\n  paddingLeft: theme.spacing(5),\r\n  color: theme.palette.text.primary\r\n}));\r\n\r\ninterface ListItemStyleProps extends ListItemButtonProps {\r\n  component?: ReactNode;\r\n  to?: string;\r\n}\r\n\r\nconst ListItemStyle = styled(ListItemButton)<ListItemStyleProps>(({ theme }) => ({\r\n  ...theme.typography.body2,\r\n  height: 48,\r\n  position: 'relative',\r\n\r\n  paddingLeft: theme.spacing(5),\r\n  paddingRight: theme.spacing(2.5),\r\n  color: theme.palette.text.secondary,\r\n  '&:before': {\r\n    top: 0,\r\n    right: 0,\r\n    width: 3,\r\n    bottom: 0,\r\n    content: \"''\",\r\n    display: 'none',\r\n    position: 'absolute',\r\n    borderTopLeftRadius: 4,\r\n    borderBottomLeftRadius: 4,\r\n    backgroundColor: theme.palette.primary.main\r\n  }\r\n}));\r\n\r\nconst ListItemIconStyle = styled(ListItemIcon)(({ theme }) => ({\r\n  width: 22,\r\n  height: 22,\r\n  display: 'flex',\r\n  alignItems: 'center',\r\n  justifyContent: 'center'\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface NavListItemProps extends ListItemStyleProps {\r\n  item: NavItemProps;\r\n}\r\n\r\nfunction NavListItem({ item, children, sx }: NavListItemProps) {\r\n  const handleExternalLink = () => window.open(item.path);\r\n\r\n  return item.isExternalLink ? (\r\n    <ListItemStyle onClick={handleExternalLink} sx={{ ...sx }}>\r\n      {children}\r\n    </ListItemStyle>\r\n  ) : (\r\n    <ListItemStyle component={RouterLink} to={item.path} sx={{ ...sx }}>\r\n      {children}\r\n    </ListItemStyle>\r\n  );\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ntype NavItemProps = {\r\n  title: string;\r\n  path: string;\r\n  icon?: JSX.Element;\r\n  info?: JSX.Element;\r\n  isVisible?: boolean;\r\n  isExternalLink?: boolean;\r\n  children?: {\r\n    title: string;\r\n    path: string;\r\n    isVisible?: boolean;\r\n    isExternalLink?: boolean;\r\n  }[];\r\n};\r\n\r\nfunction NavItem({ item, isShow }: { item: NavItemProps; isShow?: boolean | undefined }) {\r\n  const theme = useTheme();\r\n  const { pathname } = useLocation();\r\n  const { title, path, icon, info, children, isExternalLink } = item;\r\n  const isActiveRoot = path ? !!matchPath({ path, end: false }, pathname) : false;\r\n\r\n  // Sous lien actif ? (uniquement les liens affichés)\r\n  const hasActiveVisibleSub = children?.find(\r\n    (child) =>\r\n      child?.isVisible && child?.path && !!matchPath({ path: child.path, end: false }, pathname)\r\n  );\r\n\r\n  // Sous lien actif ?\r\n  const hasActiveSub = children?.find(\r\n    (child) => child?.path && !!matchPath({ path: child.path, end: false }, pathname)\r\n  );\r\n\r\n  const [open, setOpen] = useState(isActiveRoot);\r\n\r\n  const handleOpen = () => {\r\n    setOpen(!open);\r\n  };\r\n\r\n  const activeRootStyle = {\r\n    color: 'primary.main',\r\n    fontWeight: 'fontWeightMedium',\r\n    bgcolor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity * 2),\r\n    '&:before': { display: 'block' }\r\n  };\r\n\r\n  const activeIconStyle = {\r\n    color: 'primary.main'\r\n  };\r\n\r\n  const activeSubHeader = {\r\n    color: 'primary.main',\r\n    fontWeight: 'fontWeightMedium',\r\n    bgcolor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity * 2)\r\n  };\r\n\r\n  const activeSubStyle = {\r\n    color: 'text.primary',\r\n    fontWeight: 'fontWeightMedium',\r\n    '&:before': { display: 'block' }\r\n  };\r\n\r\n  const activeSubBlock = {\r\n    bgcolor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity)\r\n  };\r\n\r\n  const headerLinkStyle = () => {\r\n    if (isActiveRoot) {\r\n      //lien sélectionné\r\n      return activeRootStyle;\r\n    } else if (hasActiveVisibleSub) {\r\n      //sous menu sélectionné\r\n      if (isShow) {\r\n        //sous menu visible\r\n        return open ? activeSubHeader : activeRootStyle;\r\n      } else {\r\n        //sous menu invisible\r\n        return activeRootStyle;\r\n      }\r\n    }\r\n    return null;\r\n  };\r\n\r\n  const singleLinkStyle = () => {\r\n    if (isActiveRoot || hasActiveSub) {\r\n      //lien sélectionné OU sous menu invisible sélectionné\r\n      return activeRootStyle;\r\n    }\r\n    return null;\r\n  };\r\n\r\n  if (children?.some((child: any) => child.isVisible)) {\r\n    return (\r\n      <>\r\n        <ListItemStyle\r\n          onClick={handleOpen}\r\n          sx={{\r\n            ...headerLinkStyle()\r\n          }}\r\n        >\r\n          <ListItemIconStyle sx={{ ...(hasActiveVisibleSub && activeIconStyle) }}>\r\n            {icon && icon}\r\n          </ListItemIconStyle>\r\n\r\n          {isShow && (\r\n            <>\r\n              {/*Le nowrap permet que le texte reste sur une ligne lors du déploiement du menu*/}\r\n              <ListItemText disableTypography primary={title} sx={{ whiteSpace: 'nowrap' }} />\r\n              {info && info}\r\n              <Box\r\n                component={Icon}\r\n                icon={open ? arrowIosDownwardFill : arrowIosForwardFill}\r\n                sx={{ width: 16, height: 16, ml: 1 }}\r\n              />\r\n            </>\r\n          )}\r\n        </ListItemStyle>\r\n\r\n        {isShow && (\r\n          <Collapse\r\n            in={open}\r\n            timeout=\"auto\"\r\n            unmountOnExit\r\n            sx={{ ...(hasActiveVisibleSub && activeSubBlock) }}\r\n          >\r\n            <List component=\"div\" disablePadding>\r\n              {children\r\n                .filter((item) => item.isVisible)\r\n                .map((item) => {\r\n                  const { title, path } = item;\r\n                  const isActiveSub = path ? !!matchPath({ path, end: false }, pathname) : false;\r\n\r\n                  return (\r\n                    <NavListItem\r\n                      key={title}\r\n                      item={item}\r\n                      sx={{\r\n                        ...(isActiveSub && activeSubStyle)\r\n                      }}\r\n                    >\r\n                      <ListItemIconStyle>\r\n                        <Box\r\n                          component=\"span\"\r\n                          sx={{\r\n                            width: 4,\r\n                            height: 4,\r\n                            display: 'flex',\r\n                            borderRadius: '50%',\r\n                            alignItems: 'center',\r\n                            justifyContent: 'center',\r\n                            bgcolor: 'text.disabled',\r\n                            transition: (theme) => theme.transitions.create('transform'),\r\n                            ...(isActiveSub && {\r\n                              transform: 'scale(2)',\r\n                              bgcolor: 'primary.main'\r\n                            })\r\n                          }}\r\n                        />\r\n                      </ListItemIconStyle>\r\n                      <ListItemText disableTypography primary={title} />\r\n                    </NavListItem>\r\n                  );\r\n                })}\r\n            </List>\r\n          </Collapse>\r\n        )}\r\n      </>\r\n    );\r\n  }\r\n\r\n  return (\r\n    <NavListItem\r\n      item={item}\r\n      sx={{\r\n        ...singleLinkStyle()\r\n      }}\r\n    >\r\n      <ListItemIconStyle sx={{ ...((isActiveRoot || hasActiveSub) && activeIconStyle) }}>\r\n        {icon && icon}\r\n      </ListItemIconStyle>\r\n      {isShow && (\r\n        <>\r\n          {/*Le nowrap permet que le texte reste sur une ligne lors du déploiement du menu*/}\r\n          <ListItemText disableTypography primary={title} sx={{ whiteSpace: 'nowrap' }} />\r\n          {info && info}\r\n        </>\r\n      )}\r\n    </NavListItem>\r\n  );\r\n}\r\n\r\ninterface NavSectionProps extends BoxProps {\r\n  isShow?: boolean | undefined;\r\n  navConfig: NavItemProps[];\r\n}\r\n\r\nexport default function NavSection({ navConfig, isShow = true, ...other }: NavSectionProps) {\r\n  return (\r\n    <Box {...other}>\r\n      <List disablePadding>\r\n        {navConfig\r\n          .filter((x) => x.isVisible)\r\n          .map((item: NavItemProps) => {\r\n            return <NavItem key={item.title} item={item} isShow={isShow} />;\r\n          })}\r\n      </List>\r\n    </Box>\r\n  );\r\n}\r\n/**{isShow && subheader != '' && <ListSubheaderStyle>{subheader}</ListSubheaderStyle>} \r\n *  {navConfig.map((list, i) => {\r\n        const { items } = list;\r\n        return (\r\n          <List key={i} disablePadding>\r\n            {items\r\n              .filter((x) => x.isVisible)\r\n              .map((item: NavItemProps) => {\r\n                return <NavItem key={item.title} item={item} isShow={isShow} />;\r\n              })}\r\n          </List>\r\n        );\r\n      })}\r\n * \r\n*/\r\n","import { Button } from '@mui/material';\r\nimport { useEffect, useState } from 'react';\r\nimport { Helmet } from 'react-helmet-async';\r\n\r\nexport default function OneTrust() {\r\n  useEffect(() => {\r\n    function OptanonWrapper() {}\r\n  }, []);\r\n\r\n  return (\r\n    <Helmet>\r\n      {process.env.REACT_APP_ONE_TRUST === 'PROD' ? (\r\n        <>\r\n          <script\r\n            src=\"https://cdn.cookielaw.org/scripttemplates/otSDKStub.js\"\r\n            data-language=\"fr-FR\"\r\n            type=\"text/javascript\"\r\n            data-charset=\"UTF-8\"\r\n            data-domain-script=\"0190125b-2710-733e-9800-4532f4d71110\"\r\n          ></script>\r\n        </>\r\n      ) : (\r\n        <>\r\n          <script\r\n            src=\"https://cdn.cookielaw.org/scripttemplates/otSDKStub.js\"\r\n            data-language=\"fr-FR\"\r\n            type=\"text/javascript\"\r\n            data-charset=\"UTF-8\"\r\n            data-domain-script=\"0190125b-2710-733e-9800-4532f4d71110\"\r\n          ></script>\r\n        </>\r\n      )}\r\n    </Helmet>\r\n  );\r\n}\r\n\r\nexport function OneTrustFooter() {\r\n  return (\r\n    <button\r\n      id=\"ot-sdk-btn\"\r\n      className=\"ot-sdk-show-settings\"\r\n      style={{\r\n        background: 'none',\r\n        border: 'none',\r\n        color: '#6369FF',\r\n        textDecoration: 'underline',\r\n        fontSize: '12px'\r\n      }}\r\n    >\r\n      Paramétrer les cookies\r\n    </button>\r\n  );\r\n}\r\n\r\n/* <script\r\n        type=\"text/javascript\"\r\n        src=\"https://cdn.cookielaw.org/consent/0190125b-2710-733e-9800-4532f4d71110/OtAutoBlock.js\"\r\n      ></script>\r\n      <script\r\n        src=\"https://cdn.cookielaw.org/scripttemplates/otSDKStub.js\"\r\n        data-language=\"fr-FR\"\r\n        type=\"text/javascript\"\r\n        data-charset=\"UTF-8\"\r\n        data-domain-script=\"0190125b-2710-733e-9800-4532f4d71110\"\r\n      ></script>\r\npre :<script src=\"https://cdn.doyoudreamup.com/dydubox/configurations/preprod/6899e171-2721-494a-9b92-18b94abccacc/ac1f0003-804c-10fb-8180-65e4e601000e/bundle.min.js\"></script>\r\nprod :  <script\r\n        id=\"chatBox_script\"\r\n        src=\"https://cdn.doyoudreamup.com/dydubox/configurations/prod/6899e171-2721-494a-9b92-18b94abccacc/ac1f0003-804c-10fb-8180-65e4e601000e/bundle.min.js\"\r\n      ></script>\r\n*/\r\n","import { VisibilityOff } from '@mui/icons-material';\r\nimport { Button, Tooltip } from '@mui/material';\r\nimport { useEffect } from 'react';\r\n\r\nexport default function Faciliti() {\r\n  useEffect(() => {\r\n    const FACILITI_SRC = 'https://cdn.facil-iti.app/tags/faciliti-tag.min.js';\r\n\r\n    function initFaciliti() {\r\n      var fs = document.createElement('script');\r\n      fs.setAttribute('src', FACILITI_SRC);\r\n      fs.dataset.applicationIdentifier = '21e78d92-41d5-4ebb-ab10-8529ce64e42e';\r\n      document.head.appendChild(fs);\r\n    }\r\n\r\n    let i = 0;\r\n    let scriptAlreadyExists = false;\r\n\r\n    var scriptsList = document.getElementsByTagName('script');\r\n\r\n    while (!scriptAlreadyExists && i < scriptsList?.length) {\r\n      if (scriptsList[i]?.src === FACILITI_SRC) {\r\n        scriptAlreadyExists = true;\r\n      }\r\n\r\n      i = i + 1;\r\n    }\r\n\r\n    if (!scriptAlreadyExists) {\r\n      initFaciliti();\r\n    }\r\n  }, []);\r\n\r\n  return (\r\n    <Tooltip title=\"Gérer les options d’affichage\">\r\n      <Button data-faciliti-popin variant=\"text\">\r\n        <VisibilityOff sx={{ marginRight: '5px' }} />\r\n        <u>Accessibilité</u>\r\n      </Button>\r\n    </Tooltip>\r\n  );\r\n}\r\n","import { Icon } from '@iconify/react';\r\nimport googleFill from '@iconify/icons-eva/google-fill';\r\nimport twitterFill from '@iconify/icons-eva/twitter-fill';\r\nimport facebookFill from '@iconify/icons-eva/facebook-fill';\r\nimport linkedinFill from '@iconify/icons-eva/linkedin-fill';\r\nimport { Link as ScrollLink } from 'react-scroll';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\n// material\r\nimport { styled } from '@mui/material/styles';\r\nimport {\r\n  Grid,\r\n  Link,\r\n  Divider,\r\n  Container,\r\n  Typography,\r\n  IconButton,\r\n  Stack,\r\n  Card,\r\n  CardContent\r\n} from '@mui/material';\r\n// routes\r\nimport { PATH_DASHBOARD, PATH_PAGE } from '../../routes/paths';\r\n\r\n//\r\n\r\nimport useAuth from 'hooks/useAuth';\r\nimport { Box } from '@mui/system';\r\nimport { phoneFormat } from 'utils/formatPhone';\r\nimport { OneTrustFooter } from 'components/OneTrust';\r\nimport Faciliti from 'components/Faciliti';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Footer() {\r\n  const { student, getContractCurrent } = useAuth();\r\n\r\n  const contract = getContractCurrent();\r\n\r\n  return (\r\n    <Box>\r\n      <Typography variant=\"subtitle2\">{contract.brand.label}</Typography>\r\n      <Typography variant=\"caption\" component={'div'}>\r\n        Téléphone : {phoneFormat(contract.brand.phone, contract.brand.id)}\r\n      </Typography>\r\n      <Typography variant=\"caption\" component={'div'}>\r\n        <Link component={RouterLink} underline=\"always\" to={PATH_DASHBOARD.general.mentionLegal}>\r\n          Mentions légales\r\n        </Link>\r\n      </Typography>\r\n      <OneTrustFooter />\r\n      <Typography variant=\"caption\" component={'div'}>\r\n        <Faciliti />\r\n      </Typography>\r\n    </Box>\r\n  );\r\n}\r\n/**\r\n * <Typography variant=\"caption\" component={'div'}>\r\n        <Link underline=\"always\" target={'_blank'} href={'https://storyset.com/'}>\r\n          Illustrations de Storyset\r\n        </Link>\r\n      </Typography>\r\n */\r\n","import { useEffect, useLayoutEffect } from 'react';\r\nimport { Link as RouterLink, useLocation } from 'react-router-dom';\r\n// material\r\nimport { alpha, styled } from '@mui/material/styles';\r\nimport {\r\n  Box,\r\n  Link,\r\n  Stack,\r\n  Button,\r\n  Drawer,\r\n  Tooltip,\r\n  Typography,\r\n  CardActionArea,\r\n  IconButton,\r\n  Divider\r\n} from '@mui/material';\r\n\r\nimport { Contract } from '../../@types/contract';\r\nimport { ModeAccess } from '../../@types/account';\r\n\r\n// hooks\r\nimport useAuth from '../../hooks/useAuth';\r\nimport useCollapseDrawer from '../../hooks/useCollapseDrawer';\r\n\r\n// components\r\nimport Logo from '../../components/Logo';\r\n\r\nimport Scrollbar from '../../components/Scrollbar';\r\nimport NavSection from '../../components/NavSection';\r\nimport { MHidden } from '../../components/@material-extend';\r\n//\r\nimport useSidebarConfig from 'hooks/useSidebarConfig';\r\nimport Footer from './Footer';\r\nimport { ArrowBackIos, ArrowForwardIos } from '@mui/icons-material';\r\nimport { useState } from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst DRAWER_WIDTH = 280;\r\nconst COLLAPSE_WIDTH = 102;\r\n\r\nconst RootStyle = styled('div')(({ theme }) => ({\r\n  [theme.breakpoints.up('lg')]: {\r\n    flexShrink: 0,\r\n    transition: theme.transitions.create('width', {\r\n      duration: theme.transitions.duration.complex\r\n    })\r\n  }\r\n}));\r\n\r\nconst AccountStyle = styled('div')(({ theme }) => ({\r\n  display: 'flex',\r\n  alignItems: 'center',\r\n  padding: theme.spacing(2, 2.5),\r\n  borderRadius: theme.shape.borderRadiusSm,\r\n  backgroundColor: theme.palette.grey[500_12]\r\n}));\r\n\r\ntype DashboardSidebarProps = {\r\n  isOpenSidebar: boolean;\r\n  onCloseSidebar: VoidFunction;\r\n};\r\n\r\nexport default function DashboardSidebar({ isOpenSidebar, onCloseSidebar }: DashboardSidebarProps) {\r\n  const { pathname } = useLocation();\r\n  const { student, getConfig, getContractCurrent } = useSidebarConfig();\r\n  const { isCollapse, collapseClick, collapseHover, onToggleCollapse, onHoverEnter, onHoverLeave } =\r\n    useCollapseDrawer();\r\n\r\n  //Booléen de gestion du chargement de la vue\r\n  const [isLoading, setIsLoading] = useState(true);\r\n\r\n  useEffect(() => {\r\n    //Chargement effectué\r\n    setIsLoading(false);\r\n  }, []);\r\n\r\n  useEffect(() => {\r\n    if (isOpenSidebar) {\r\n      onCloseSidebar();\r\n    }\r\n\r\n    // eslint-disable-next-line react-hooks/exhaustive-deps\r\n  }, [pathname]); // au changement de path le drawer en mode mobile est fermé automatiquement\r\n\r\n  const contract = getContractCurrent(); //contrat par défaut\r\n\r\n  const renderContent = (\r\n    <Scrollbar\r\n      sx={{\r\n        overflowX: 'hidden', //évite la scrollbar horizontale lors du déploiement du menu\r\n        height: 1,\r\n        '& .simplebar-content': {\r\n          height: 1,\r\n          display: 'flex',\r\n          flexDirection: 'column'\r\n        }\r\n      }}\r\n    >\r\n      <Stack\r\n        spacing={3}\r\n        sx={{\r\n          px: 2.5,\r\n          pt: 3,\r\n          pb: 2,\r\n          ...(isCollapse && {\r\n            alignItems: 'center'\r\n          }),\r\n          mb: 1\r\n        }}\r\n      >\r\n        <Stack direction=\"row\" alignItems=\"center\" justifyContent=\"space-between\">\r\n          <Box\r\n            sx={{\r\n              display: 'inline-flex',\r\n              height: '55px',\r\n              justifyContent: 'center',\r\n              alignItems: 'center'\r\n            }}\r\n          >\r\n            <Logo\r\n              isSmall={isCollapse}\r\n              sx={{\r\n                height: 60\r\n              }}\r\n            />\r\n          </Box>\r\n\r\n          <MHidden width=\"lgDown\">\r\n            {!isCollapse && (\r\n              <Tooltip title=\"Réduire le menu\">\r\n                <IconButton onClick={onToggleCollapse}>\r\n                  {collapseClick ? <ArrowForwardIos /> : <ArrowBackIos />}\r\n                </IconButton>\r\n              </Tooltip>\r\n            )}\r\n          </MHidden>\r\n        </Stack>\r\n      </Stack>\r\n\r\n      <NavSection navConfig={getConfig()} isShow={!isCollapse} />\r\n      <Box flexGrow={1} />\r\n      {!isCollapse && (\r\n        <Stack\r\n          spacing={3}\r\n          alignItems=\"center\"\r\n          sx={{ px: 5, pb: 5, mt: 10, width: 1, textAlign: 'center', whiteSpace: 'nowrap' }}\r\n        >\r\n          <Footer />\r\n        </Stack>\r\n      )}\r\n    </Scrollbar>\r\n  );\r\n\r\n  return (\r\n    <RootStyle\r\n      sx={{\r\n        width: {\r\n          lg: isCollapse ? COLLAPSE_WIDTH : DRAWER_WIDTH\r\n        },\r\n        ...(collapseClick && {\r\n          position: 'absolute'\r\n        })\r\n      }}\r\n    >\r\n      {/* MENU mode mobile */}\r\n      <MHidden width=\"lgUp\">\r\n        <Drawer\r\n          open={isOpenSidebar}\r\n          onClose={onCloseSidebar}\r\n          PaperProps={{\r\n            sx: { width: DRAWER_WIDTH, zIndex: 1098 }\r\n          }}\r\n        >\r\n          {renderContent}\r\n        </Drawer>\r\n      </MHidden>\r\n\r\n      {/* MENU mode desktop : déplié ou réduit*/}\r\n      {!isLoading && (\r\n        <MHidden width=\"lgDown\">\r\n          <Drawer\r\n            open\r\n            variant=\"persistent\"\r\n            onMouseEnter={onHoverEnter}\r\n            onMouseLeave={onHoverLeave}\r\n            PaperProps={{\r\n              sx: {\r\n                width: isCollapse ? COLLAPSE_WIDTH : DRAWER_WIDTH, //s'étend si nécessaire\r\n                zIndex: 1098,\r\n                transition: 'width 0.4s', //transition pour éviter l'effet trop brusque entre les modes réduit et déplié\r\n                ...(collapseHover && {\r\n                  borderRight: 0,\r\n                  backdropFilter: 'blur(6px)',\r\n                  WebkitBackdropFilter: 'blur(6px)', // Fix on Mobile\r\n                  boxShadow: (theme) => theme.customShadows.z20,\r\n                  bgcolor: (theme) => alpha(theme.palette.background.default, 0.88)\r\n                })\r\n              }\r\n            }}\r\n          >\r\n            {renderContent}\r\n          </Drawer>\r\n        </MHidden>\r\n      )}\r\n    </RootStyle>\r\n  );\r\n}\r\n//component={RouterLink} to=\"/\"\r\n/**<IconCollapse onToggleCollapse={onToggleCollapse} collapseClick={collapseClick} />\r\n *  <Link underline=\"none\" component={RouterLink} to={PATH_DASHBOARD.user.account}>\r\n *  {isCollapse ? (\r\n          <MyAvatar sx={{ mx: 'auto', mb: 2 }} />\r\n        ) : (\r\n          <AccountStyle>\r\n            <MyAvatar />\r\n            <Box sx={{ ml: 2 }}>\r\n              <Typography variant=\"subtitle2\" sx={{ color: 'text.primary' }}>\r\n                {student?.name}\r\n              </Typography>\r\n              <Typography variant=\"body2\" sx={{ color: 'text.secondary' }}>\r\n                Contrat N° {getContractCurrent().id}\r\n              </Typography>\r\n            </Box>\r\n          </AccountStyle>\r\n        )}\r\n */\r\n","import { Videocam, AccessTime } from '@mui/icons-material';\r\nimport { Chip, Typography } from '@mui/material';\r\n\r\n//type\r\nimport { SeminarStatus } from '../../../@types/seminar';\r\n\r\n//Composant\r\nimport {\r\n  RowItemDisplay,\r\n  RowItemDisplayDateTime,\r\n  VisoRequiredDisplay\r\n} from 'components/RowListItem';\r\nimport { MeetingTimeCount, MeetingTimeCountDisplay } from '../meeting/MeetingTimeCount';\r\nimport MeetingButtonVisio from '../meeting/MeetingButtonVisio';\r\nimport Label from 'components/Label';\r\n\r\nexport type VirtualClassAccessProps = {\r\n  dateStart: string;\r\n  dateEnd: string;\r\n  isVirtual: boolean;\r\n  registered?: boolean;\r\n  status?: SeminarStatus;\r\n  registeredId: number;\r\n};\r\n\r\nexport const VirtualClassAccess = ({\r\n  dateStart,\r\n  dateEnd,\r\n  registered,\r\n  status,\r\n  registeredId\r\n}: VirtualClassAccessProps) => {\r\n  return (\r\n    <MeetingTimeCount start={dateStart} end={dateEnd} isVirtual={true}>\r\n      {(time: string, isActivate: boolean, isStarted: boolean) => (\r\n        <>\r\n          <RowItemDisplayDateTime\r\n            start={dateStart}\r\n            end={dateEnd}\r\n            isLimit={true}\r\n            hideHourMessage={status === SeminarStatus.Close}\r\n          >\r\n            {registered ? (\r\n              <MeetingTimeCountDisplay\r\n                isStarted={false}\r\n                isPhone={false}\r\n                isVirtual={true}\r\n                time={time}\r\n                isActivate={isActivate}\r\n              />\r\n            ) : (\r\n              <>\r\n                {' '}\r\n                {!isStarted && registered && (\r\n                  <Typography>\r\n                    <Label variant=\"ghost\" color=\"info\">\r\n                      Votre rendez-vous {time}\r\n                    </Label>\r\n                  </Typography>\r\n                )}\r\n              </>\r\n            )}\r\n          </RowItemDisplayDateTime>\r\n          {status === SeminarStatus.Open && (\r\n            <>\r\n              {registered ? (\r\n                <RowItemDisplay\r\n                  title={<MeetingButtonVisio disabled={false} id={registeredId} />}\r\n                  icon={<Videocam />}\r\n                >\r\n                  <Typography variant=\"caption\">\r\n                    {' '}\r\n                    <strong>Pré-requis : </strong> casque, micro, webcam\r\n                  </Typography>\r\n                </RowItemDisplay>\r\n              ) : (\r\n                <RowItemDisplay title=\"\" icon={<Videocam />}>\r\n                  <VisoRequiredDisplay />\r\n                </RowItemDisplay>\r\n              )}\r\n            </>\r\n          )}\r\n        </>\r\n      )}\r\n    </MeetingTimeCount>\r\n  );\r\n};\r\n","import { Alert } from '@mui/material';\r\nimport { SeminarError, SeminarErrorResult, SeminarType } from '../../../@types/seminar';\r\n\r\nexport type SeminarErrorMessageProps = {\r\n  error: SeminarError;\r\n  type: SeminarType;\r\n};\r\n\r\nexport default function SeminarErrorMessage({ error, type }: SeminarErrorMessageProps) {\r\n  let message: string = 'Nous ne pouvons pas donner suite à cette demande';\r\n\r\n  switch (error.result) {\r\n    case SeminarErrorResult.OutOfTime:\r\n      message = 'Vous ne pouvez plus accéder à cette classe';\r\n      break;\r\n    case SeminarErrorResult.Invalid:\r\n      message = \"Les données sont invalides.Veuillez prévenir l'école\";\r\n      break;\r\n    case SeminarErrorResult.Unavailable:\r\n      message = \"Le replay est indisponible pour l'instant\";\r\n      break;\r\n    case SeminarErrorResult.ClosedContract:\r\n      message = 'La date de clôture de votre contrat sera passée';\r\n      break;\r\n    case SeminarErrorResult.Full:\r\n    case SeminarErrorResult.PlaceSpaceAvailable:\r\n      message = \"Il n'y a plus de place disponible\";\r\n      break;\r\n  }\r\n\r\n  return <Alert severity=\"error\">{message}</Alert>;\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useSnackbar } from 'notistack';\r\n\r\n// material\r\nimport {\r\n  List,\r\n  Button,\r\n  Typography,\r\n  TextField,\r\n  MenuItem,\r\n  Box,\r\n  DialogActions,\r\n  Alert,\r\n  Dialog,\r\n  DialogTitle,\r\n  DialogContent\r\n} from '@mui/material';\r\n\r\nimport { LoadingButton } from '@mui/lab';\r\n\r\n// redux\r\nimport { dispatch, RootState, useDispatch, useSelector } from 'redux/store';\r\nimport { registerVirtualClass } from 'redux/slices/virtualClass';\r\nimport DialogConfirm from 'components/DialogConfirm';\r\n\r\nexport enum SeminarActionType {\r\n  Cancel = 0,\r\n  Register = 1,\r\n  RegisterWaitingList = 2\r\n}\r\n\r\nexport type SeminarActionProps = {\r\n  disabled: boolean;\r\n  onClose: () => void;\r\n  type: SeminarActionType;\r\n  id: number;\r\n  title: string;\r\n  error: any;\r\n  isLoading: boolean;\r\n  onConfirm: () => void;\r\n};\r\n\r\n/**\r\n *\r\n * @param param0 Enregistrement d'un séminar (atelier et casse virtuelles)\r\n * @returns\r\n */\r\nexport default function SeminarActionRegister({\r\n  id,\r\n  type,\r\n  disabled,\r\n  title,\r\n  error,\r\n  onClose,\r\n  isLoading,\r\n  onConfirm\r\n}: SeminarActionProps) {\r\n  const [open, setOpen] = useState(false);\r\n\r\n  useEffect(() => {\r\n    if (error) setOpen(false);\r\n  }, [error]);\r\n\r\n  return (\r\n    <>\r\n      <Button\r\n        size=\"large\"\r\n        variant=\"contained\"\r\n        color=\"primary\"\r\n        onClick={() => setOpen(true)}\r\n        disabled={disabled}\r\n        sx={{ mt: 5, mb: 3 }}\r\n      >\r\n        {type === SeminarActionType.Register ? \"M'INSCRIRE\" : \"M'INSCRIRE SUR LISTE D'ATTENTE\"}\r\n      </Button>\r\n\r\n      <DialogConfirm\r\n        open={open}\r\n        onCancel={() => setOpen(false)}\r\n        onConfirm={onConfirm}\r\n        isLoading={isLoading}\r\n      >\r\n        {type === SeminarActionType.Register\r\n          ? 'Confirmez-vous votre inscription ?'\r\n          : \"Confirmez-vous votre inscription sur liste d'attente ?\"}\r\n      </DialogConfirm>\r\n    </>\r\n  );\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useSnackbar } from 'notistack';\r\n\r\n// material\r\nimport {\r\n  List,\r\n  Button,\r\n  Typography,\r\n  TextField,\r\n  MenuItem,\r\n  Box,\r\n  DialogActions,\r\n  Alert,\r\n  Dialog,\r\n  DialogTitle,\r\n  DialogContent\r\n} from '@mui/material';\r\n\r\nimport { LoadingButton } from '@mui/lab';\r\n\r\n// redux\r\nimport { dispatch, RootState, useDispatch, useSelector } from 'redux/store';\r\nimport { cancelVirtualClass } from 'redux/slices/virtualClass';\r\n\r\n//type\r\nimport { Meeting, MeetingStatus, MeetingType } from '../../../@types/meeting';\r\nimport { SeminarStatus, Seminar } from '../../../@types/seminar';\r\nimport DialogConfirm from 'components/DialogConfirm';\r\n\r\nexport enum SeminarActionType {\r\n  VirtualClass = 0,\r\n  Workshop = 1\r\n}\r\n\r\nexport enum SeminarType {\r\n  Cancel = 0,\r\n  Register = 1,\r\n  RegisterWaitingList = 2\r\n}\r\n\r\nexport type SeminarActionProps = {\r\n  disabled: boolean;\r\n  onClose: () => void;\r\n};\r\n\r\n/**\r\n *\r\n * @param param0 Enregistrement d'un séminar (atelier et casse virtuelles)\r\n * @returns\r\n */\r\nexport default function SeminarActionCancel({ disabled, onClose }: SeminarActionProps) {\r\n  const dispatch = useDispatch();\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const [open, setOpen] = useState(false);\r\n  const { isLoading, error, virtualClass } = useSelector((state: RootState) => state.virtualClass);\r\n\r\n  const handleClick = () => {\r\n    dispatch(\r\n      cancelVirtualClass(\r\n        virtualClass!.id,\r\n        virtualClass!.meeting?.id\r\n      )(() => {\r\n        enqueueSnackbar('Inscription annulée', { variant: 'success' });\r\n        // setOpen(false);\r\n      })\r\n    );\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (error) setOpen(false);\r\n  }, [error]);\r\n\r\n  return (\r\n    <>\r\n      <Button\r\n        size=\"large\"\r\n        variant=\"outlined\"\r\n        color=\"primary\"\r\n        onClick={() => setOpen(true)}\r\n        disabled={disabled}\r\n      >\r\n        ANNULER MON INSCRIPTION\r\n      </Button>\r\n      <DialogConfirm\r\n        open={open}\r\n        isLoading={isLoading}\r\n        onConfirm={handleClick}\r\n        onCancel={() => setOpen(false)}\r\n      >\r\n        <Typography variant=\"body2\">\r\n          Confirmez-vous l'annulation de votre participation à la classe virtuelle ?\r\n        </Typography>\r\n      </DialogConfirm>\r\n    </>\r\n  );\r\n}\r\n","import { useState } from 'react';\r\n//hool\r\nimport useAuth from 'hooks/useAuth';\r\n//redux\r\nimport { RootState, useDispatch } from 'redux/store';\r\nimport { getReplayVirtualClass } from 'redux/slices/virtualClass';\r\n\r\n//type\r\nimport { Playback } from '../../../@types/virtualClass';\r\nimport { loadUrl } from 'utils/helper';\r\nimport { Button } from '@mui/material';\r\nimport { useSelector } from 'react-redux';\r\nimport { addSurvey, createSurveyVirtuelle, setLastSurvey } from 'redux/slices/survey';\r\nimport { Survey } from '../../../@types/contract';\r\nimport { useTrackerActivityEvents } from 'hooks/useTackerActivityEvents';\r\n\r\nexport type VirtualClassReplayProps = {\r\n  replay: null | Playback;\r\n  isLoading: boolean;\r\n  id: number;\r\n};\r\n\r\n/**\r\n * Acces au replay de la classe\r\n * Maj dans la liste des classes virtuelles (viewReplay)\r\n * Activer le questionnaire\r\n * @param param0\r\n * @returns\r\n */\r\nexport default function VirtualClassReplay({ replay, isLoading, id }: VirtualClassReplayProps) {\r\n  const { student } = useAuth();\r\n  const { moveInactityTime } = useTrackerActivityEvents();\r\n  const dispatch = useDispatch();\r\n  const { virtualClass } = useSelector((state: RootState) => state.virtualClass);\r\n\r\n  const handleReplay = async () => {\r\n    dispatch(\r\n      getReplayVirtualClass({\r\n        lastName: student?.lastName || '',\r\n        firstName: student?.firstName || '',\r\n        email: student?.email || '',\r\n        playbackId: replay?.playbackID || '',\r\n        activityId: replay?.activityID || '',\r\n        id: id\r\n      })((url: string) => {\r\n        //loadUrl(url);\r\n        window.open(url);\r\n        moveInactityTime(virtualClass?.id.toString() || '');\r\n        //Particularité => la méthode a ajouté viewReplayCount dans la liste et non sur l'item\r\n        if (virtualClass?.viewReplayCount === 0 && !virtualClass?.isSurvey) {\r\n          const survey = createSurveyVirtuelle(virtualClass?.id, false);\r\n\r\n          dispatch(addSurvey(survey));\r\n          dispatch(setLastSurvey(survey));\r\n        }\r\n      })\r\n    );\r\n  };\r\n\r\n  if (replay == null) return <></>;\r\n\r\n  return (\r\n    <Button\r\n      disabled={isLoading}\r\n      onClick={() => handleReplay()}\r\n      size=\"large\"\r\n      variant=\"contained\"\r\n      color=\"primary\"\r\n    >\r\n      VOIR LE REPLAY\r\n    </Button>\r\n  );\r\n}\r\n","import { useState, useEffect } from 'react';\r\nimport { Icon } from '@iconify/react';\r\nimport shieldFill from '@iconify/icons-eva/shield-fill';\r\nimport { RootState, useDispatch, useSelector } from 'redux/store';\r\n\r\nimport { Box } from '@mui/system';\r\nimport {\r\n  Alert,\r\n  Checkbox,\r\n  Container,\r\n  Dialog,\r\n  DialogActions,\r\n  DialogContent,\r\n  FormControl,\r\n  FormControlLabel,\r\n  List,\r\n  Stack,\r\n  Typography\r\n} from '@mui/material';\r\nimport { ConfirmationNumber, Lock, Payment } from '@mui/icons-material';\r\nimport { RowItemDisplay, RowItemDisplayInfo, RowItemDisplayTitle } from 'components/RowListItem';\r\nimport Markdown from 'components/Markdown';\r\nimport { formatCardPayment } from 'utils/helper';\r\nimport { getLinksPayment } from 'redux/slices/workshop';\r\nimport { SeminarLeftToPay } from '../../../@types/seminar';\r\nimport WorkshopCreditView from './WorkshopCreditView';\r\nimport { Button } from '@mui/material';\r\nimport { DialogTitleWithClose } from 'components/DialogTitleWithClose';\r\nimport useAuth from 'hooks/useAuth';\r\n\r\nexport type WorkshopPaymentFormProps = {\r\n  id: number;\r\n  leftToPay: null | SeminarLeftToPay;\r\n};\r\n\r\nexport default function WorkshopPaymentForm({ id, leftToPay }: WorkshopPaymentFormProps) {\r\n  const dispatch = useDispatch();\r\n  const [isChecked, setChecked] = useState(false);\r\n  const [formPayment, setFormPayment] = useState('');\r\n  const { getFormatCurrency } = useAuth();\r\n\r\n  useEffect(() => {\r\n    if (isChecked)\r\n      dispatch(\r\n        getLinksPayment(id)((content: string) => {\r\n          setFormPayment(formatCardPayment(content));\r\n        })\r\n      );\r\n  }, [isChecked]);\r\n\r\n  const handleCheck = () => {\r\n    setChecked(!isChecked);\r\n  };\r\n\r\n  return (\r\n    <Box>\r\n      <Container maxWidth=\"md\">\r\n        <List>\r\n          <RowItemDisplayTitle\r\n            title={\r\n              <Typography variant=\"subtitle1\">\r\n                Paiement sécurisé pour l'achat de {leftToPay?.accountCredit} points atelier\r\n              </Typography>\r\n            }\r\n          ></RowItemDisplayTitle>\r\n\r\n          <RowItemDisplay\r\n            icon={<Payment />}\r\n            title={\r\n              <Typography variant=\"subtitle2\">\r\n                Somme à payer :{' '}\r\n                <Typography variant=\"subtitle2\" component=\"span\" color=\"error\">\r\n                  {getFormatCurrency(leftToPay?.accountAmount)}\r\n                </Typography>\r\n              </Typography>\r\n            }\r\n          >\r\n            <Typography variant=\"body2\">\r\n              Si votre paiement est bien effectué, vous serez directement inscrit et vous recevrez\r\n              un e-mail de confirmation de paiement et d'inscription à cet atelier. Il vous restera\r\n              à régler sur place le jour de l'atelier avant votre participation les{' '}\r\n              <strong>{leftToPay?.credit}</strong> points atelier pour un montant de{' '}\r\n              <strong>{leftToPay?.amount}</strong> euros.{' '}\r\n            </Typography>\r\n          </RowItemDisplay>\r\n\r\n          <RowItemDisplay title=\"Inscription à l'atelier\" icon={<ConfirmationNumber />}>\r\n            <FormControl size=\"small\">\r\n              <FormControlLabel\r\n                control={<Checkbox checked={isChecked} onClick={handleCheck} />}\r\n                label={<ConditionsGeneralesCard />}\r\n              />\r\n            </FormControl>\r\n          </RowItemDisplay>\r\n\r\n          {isChecked && (\r\n            <RowItemDisplay title=\"Choisissez votre carte ci-dessous :\" icon={<Lock />}>\r\n              <Box\r\n                sx={{\r\n                  display: 'flex',\r\n                  '& img': { display: 'none' },\r\n                  '& input': { width: 80 },\r\n                  '& .parcen': { display: 'none' }\r\n                }}\r\n              >\r\n                <Markdown children={formPayment} />\r\n              </Box>\r\n              <Typography variant=\"caption\">\r\n                La transaction s'effectue directement entre votre ordinateur et la Société Générale\r\n                via une liaison sécurisée (SSL).\r\n              </Typography>\r\n              <Typography variant=\"caption\">\r\n                *Pour les paiements par chèque, veuillez envoyer votre chèque à l'ordre de l'école\r\n                et l'adresser à : Skill&You-Le Lab, 85 rue Gabriel Péri-92120 MONTROUGE. Attention\r\n                Votre inscription ne sera prise en compte qu'à réception du chèque. Le chèque doit\r\n                nous parvenir impérativement avant la date limite d'inscription.\r\n              </Typography>\r\n            </RowItemDisplay>\r\n          )}\r\n\r\n          <Alert severity=\"info\">\r\n            <Typography variant=\"subtitle2\">Pour information</Typography>\r\n            Une fois votre inscription validée, vous recevrez une notification de confirmation dans\r\n            votre Espace Numérique de Travail.\r\n          </Alert>\r\n        </List>\r\n      </Container>\r\n    </Box>\r\n  );\r\n}\r\n\r\nexport const ConditionsGeneralesCard = () => {\r\n  const [open, setOpen] = useState(false);\r\n\r\n  const handleOpen = () => {\r\n    setOpen(true);\r\n  };\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <Typography variant=\"caption\">\r\n        En cochant cette case, je reconnais avoir pris connaissance des{' '}\r\n        <Button variant=\"text\" onClick={handleOpen}>\r\n          Conditions Générales de vente de Skill&You\r\n        </Button>{' '}\r\n        et je les accepte\r\n      </Typography>\r\n      <Dialog open={open}>\r\n        <DialogTitleWithClose\r\n          id=\"111\"\r\n          title=\"Conditions générales de ventes\"\r\n          onClose={handleClose}\r\n        />\r\n        <DialogContent>\r\n          <Typography variant=\"subtitle2\">\r\n            1/ Notion de \"points ateliers\" et modalités d'achat\r\n          </Typography>\r\n          <Typography variant=\"body2\" gutterBottom>\r\n            Il s'agit du moyen de paiement des ateliers. Les points ateliers sont achetés soit sous\r\n            forme de \"pack (par exemple un pack de 100 points ateliers), soit lors de l'inscription\r\n            à un atelier en particulier.\r\n            <br />\r\n            Les packs peuvent être achetés sur l'Espace Élève ou au moment de l'inscription à une\r\n            formation par l'élève.\r\n            <br />\r\n            Chaque atelier a un coût défini en nombre de points ateliers, l'élève paiera l'atelier\r\n            avec des points ateliers.\r\n          </Typography>\r\n          <Typography variant=\"subtitle2\">\r\n            2/ Conditions d'inscription à une session atelier\r\n          </Typography>\r\n\r\n          <Typography variant=\"body2\" gutterBottom>\r\n            Lors de l'inscription à un atelier, un minimum de 30% du coût total de l'atelier doit\r\n            être versé au LAB SKILL AND YOU. Le reste sera à payer avant le début de l'atelier.\r\n            <br />\r\n            Si l'élève dispose entre 30% et 100% du coût total de l'atelier, ses points ateliers lui\r\n            seront prélevés.\r\n          </Typography>\r\n\r\n          <Typography variant=\"subtitle2\">3/ Conditions d'annulation de l'élève</Typography>\r\n\r\n          <Typography variant=\"body2\" gutterBottom>\r\n            L'élève peut annuler son inscription à un atelier sans frais d'annulation jusqu'à 8\r\n            jours avant la date de l'atelier. Les points ateliers prélevés lui seront alors\r\n            reversés. Si l'élève annule son inscription moins de 8 jours avant la date de l'atelier,\r\n            un justificatif d'annulation devra être transmis au LAB SKILL AND YOU et il reviendra à\r\n            la société, selon le justificatif, de décider de lui reverser ou non les points\r\n            ateliers.\r\n          </Typography>\r\n\r\n          <Typography variant=\"subtitle2\">4/ Report de session d'atelier</Typography>\r\n\r\n          <Typography variant=\"body2\" gutterBottom>\r\n            Une session d'atelier peut être annulée jusqu'à 8 jours avant sa date de déroulement,\r\n            elle sera alors reportée et les points versés par l'élève lui seront remis.\r\n            <br />\r\n            Les frais annexes engagés par l'élève sont à sa charge.\r\n          </Typography>\r\n          <Typography variant=\"subtitle2\">5/ Convocation à l'atelier</Typography>\r\n\r\n          <Typography variant=\"body2\" gutterBottom>\r\n            La convocation à l'atelier sera envoyée par e-mail à l'élève 8 jours avant l'atelier.\r\n          </Typography>\r\n\r\n          <Typography variant=\"subtitle2\">6/ Déroulement des ateliers</Typography>\r\n\r\n          <Typography variant=\"body2\" gutterBottom>\r\n            Les ateliers s'effectuent en général dans les locaux du LAB à cette adresse : <br />\r\n            85-87 rue Gabriel Péri <br />\r\n            CS 9001 <br /> 92541 Montrouge Cedex\r\n            <br />\r\n            Dans le cas contraire, l'adresse sera précisée dans la fiche descriptive de l'atelier.\r\n          </Typography>\r\n\r\n          <Typography variant=\"subtitle2\">7/ Durée de l'atelier</Typography>\r\n\r\n          <Typography variant=\"body2\" gutterBottom>\r\n            La durée des ateliers varie, elle est précisée dans la fiche descriptive de chaque\r\n            atelier.\r\n          </Typography>\r\n        </DialogContent>\r\n        <DialogActions>\r\n          <Button onClick={handleClose} variant=\"text\">\r\n            Fermer\r\n          </Button>\r\n        </DialogActions>\r\n      </Dialog>\r\n    </>\r\n  );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\n\r\n// material\r\nimport { Button, DialogActions, Dialog, DialogTitle, DialogContent } from '@mui/material';\r\nimport { SeminarLeftToPay } from '../../../@types/seminar';\r\nimport WorkshopPaymentForm from '../workshop/WorkshopPaymentForm';\r\n\r\nexport type SeminarActionProps = {\r\n  leftToPay: null | SeminarLeftToPay;\r\n  id: number;\r\n};\r\n\r\n/**\r\n *\r\n * @param param0 Enregistrement d'un séminar (atelier et casse virtuelles)\r\n * @returns\r\n */\r\nexport default function SeminarActionPayment({ id, leftToPay }: SeminarActionProps) {\r\n  const [open, setOpen] = useState(false);\r\n\r\n  return (\r\n    <>\r\n      <Button\r\n        size=\"large\"\r\n        fullWidth\r\n        sx={{ mt: 5, mb: 3 }}\r\n        variant=\"contained\"\r\n        color=\"primary\"\r\n        onClick={() => setOpen(true)}\r\n      >\r\n        M'INSCRIRE\r\n      </Button>\r\n\r\n      <Dialog open={open}>\r\n        <DialogTitle>Atelier</DialogTitle>\r\n        <DialogContent>\r\n          <WorkshopPaymentForm id={id} leftToPay={leftToPay} />\r\n        </DialogContent>\r\n        <DialogActions>\r\n          <Button onClick={() => setOpen(false)}>Fermer</Button>\r\n        </DialogActions>\r\n      </Dialog>\r\n    </>\r\n  );\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useSnackbar } from 'notistack';\r\n\r\n// redux\r\nimport { RootState, useDispatch, useSelector } from 'redux/store';\r\nimport { registerWorkshop, putWaitingListWorkshop, getWorkshopList } from 'redux/slices/workshop';\r\nimport SeminarActionRegister, { SeminarActionType } from '../seminar/SeminarActionRegister';\r\nimport useModuleAuthorize from 'hooks/useModuleAuthorize';\r\nimport { ModuleType } from '../../../@types/contract';\r\nimport ModuleNotAuthorized from 'components/ModuleNotAuthorized';\r\n\r\nexport type SeminarActionProps = {\r\n  disabled: boolean;\r\n  onClose: () => void;\r\n  type: SeminarActionType;\r\n  id: number;\r\n};\r\n\r\n/**\r\n *\r\n * @param param0 Enregistrement d'un atelier\r\n * @returns\r\n */\r\nexport default function WorkshopRegister({ id, type, disabled, onClose }: SeminarActionProps) {\r\n  const dispatch = useDispatch();\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const { isLoading, error, isFull } = useSelector((state: RootState) => state.workshop);\r\n  const { authorizedModule } = useModuleAuthorize({\r\n    accessibleModules: [ModuleType.WorkshopUpdate]\r\n  });\r\n\r\n  const handleClick = () => {\r\n    isFull\r\n      ? dispatch(\r\n          putWaitingListWorkshop(id)(() => {\r\n            enqueueSnackbar(\"Inscription sur liste d'attente effectuée\", { variant: 'success' });\r\n          })\r\n        )\r\n      : dispatch(\r\n          registerWorkshop(id)(() => {\r\n            enqueueSnackbar('Inscription effectuée', { variant: 'success' });\r\n            dispatch(getWorkshopList());\r\n          })\r\n        );\r\n  };\r\n\r\n  if (!authorizedModule) return <ModuleNotAuthorized />;\r\n\r\n  return (\r\n    <>\r\n      <SeminarActionRegister\r\n        type={type}\r\n        disabled={disabled}\r\n        onClose={() => console.log('')}\r\n        id={id}\r\n        onConfirm={handleClick}\r\n        error={error}\r\n        isLoading={isLoading}\r\n        title=\"Atelier\"\r\n      />\r\n    </>\r\n  );\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useSnackbar } from 'notistack';\r\n\r\n// redux\r\nimport { RootState, useDispatch, useSelector } from 'redux/store';\r\nimport { registerVirtualClass } from 'redux/slices/virtualClass';\r\nimport SeminarActionRegister, { SeminarActionType } from '../seminar/SeminarActionRegister';\r\nimport useModuleAuthorize from 'hooks/useModuleAuthorize';\r\nimport { ModuleType } from '../../../@types/contract';\r\nimport ModuleNotAuthorized from 'components/ModuleNotAuthorized';\r\n\r\nexport type SeminarActionProps = {\r\n  disabled: boolean;\r\n  onClose: () => void;\r\n  type: SeminarActionType;\r\n  id: number;\r\n};\r\n\r\n/**\r\n *\r\n * @param param0 Enregistrement d'un séminar (atelier et casse virtuelles)\r\n * @returns\r\n */\r\nexport default function VirtualClassRegister({ id, type, disabled, onClose }: SeminarActionProps) {\r\n  const dispatch = useDispatch();\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const { isLoading, isRequired, error, virtualClass } = useSelector(\r\n    (state: RootState) => state.virtualClass\r\n  );\r\n  const { authorizedModule } = useModuleAuthorize({\r\n    accessibleModules: [ModuleType.VirtualClassUpdate]\r\n  });\r\n\r\n  const handleClick = () => {\r\n    dispatch(\r\n      registerVirtualClass(id)(() => {\r\n        enqueueSnackbar('Inscription effectuée', { variant: 'success' });\r\n      })\r\n    ); //.then(() => setOpen(false));\r\n  };\r\n\r\n  if (!authorizedModule) return <ModuleNotAuthorized />;\r\n\r\n  return (\r\n    <>\r\n      <SeminarActionRegister\r\n        type={type}\r\n        disabled={disabled || isRequired}\r\n        onClose={() => console.log('')}\r\n        id={id}\r\n        onConfirm={handleClick}\r\n        error={error}\r\n        isLoading={isLoading}\r\n        title=\"Classe virtuelle\"\r\n      />\r\n    </>\r\n  );\r\n}\r\n","import { useState } from 'react';\r\n//hool\r\nimport useAuth from 'hooks/useAuth';\r\n//redux\r\nimport { RootState, useDispatch } from 'redux/store';\r\nimport { getReplayVirtualClass } from 'redux/slices/virtualClass';\r\n\r\n//type\r\n\r\nimport { Button, Dialog, DialogActions, DialogContent } from '@mui/material';\r\nimport { useSelector } from 'react-redux';\r\nimport { addSurvey, setLastSurvey } from 'redux/slices/survey';\r\nimport { Survey } from '../../../@types/contract';\r\nimport { useTrackerActivityEvents } from 'hooks/useTackerActivityEvents';\r\nimport { DialogTitleWithClose } from 'components/DialogTitleWithClose';\r\nimport { Box } from '@mui/system';\r\nimport CardMediaVideoAudio from 'components/CardMediaVideo';\r\n\r\n/**\r\n * Acces au replay de la classe\r\n * Maj dans la liste des classes virtuelles (viewReplay)\r\n * Activer le questionnaire\r\n * @param param0\r\n * @returns\r\n */\r\nexport default function VirtualClassReplayVideo() {\r\n  const { student, isReadOnly } = useAuth();\r\n  const { moveInactityTime } = useTrackerActivityEvents();\r\n  const dispatch = useDispatch();\r\n  const { virtualClass } = useSelector((state: RootState) => state.virtualClass);\r\n  const [open, setOpen] = useState(false);\r\n\r\n  const logReplay = async () => {\r\n    dispatch(\r\n      getReplayVirtualClass({\r\n        lastName: student?.lastName || '',\r\n        firstName: student?.firstName || '',\r\n        email: student?.email || '',\r\n        playbackId: '',\r\n        activityId: 'videoMedias',\r\n        id: virtualClass?.id!\r\n      })((url: string) => {\r\n        moveInactityTime(virtualClass?.id.toString() || '');\r\n      })\r\n    );\r\n  };\r\n\r\n  const loadSurvey = () => {\r\n    if (virtualClass?.viewReplayCount === 0 && !virtualClass?.isSurvey) {\r\n      const survey = {\r\n        keyApp: 'ClaVir',\r\n        keyId: virtualClass?.id.toString(),\r\n        id: 433,\r\n        url: '',\r\n        label: '',\r\n        created: '',\r\n        observation: '',\r\n        mandatory: false\r\n      } as Survey;\r\n\r\n      dispatch(addSurvey(survey));\r\n\r\n      dispatch(setLastSurvey(survey));\r\n    }\r\n  };\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n    loadSurvey();\r\n  };\r\n\r\n  const url = virtualClass?.medias.filter((media: any) => media.typFicMed === 30)[0].url || '';\r\n\r\n  if (url === '') return <></>;\r\n\r\n  const handleVideo = () => {\r\n    setOpen(true);\r\n    if (!isReadOnly) logReplay();\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <Button\r\n        disabled={false}\r\n        onClick={handleVideo}\r\n        size=\"large\"\r\n        variant=\"contained\"\r\n        color=\"primary\"\r\n      >\r\n        VOIR LE REPLAY\r\n      </Button>\r\n\r\n      <Dialog open={open} maxWidth={'sm'} fullWidth>\r\n        <DialogTitleWithClose\r\n          id=\"Video\"\r\n          onClose={handleClose}\r\n          title=\"Replay de la classe virtuelle\"\r\n          disabled={!open}\r\n        />\r\n        <DialogContent>\r\n          <Box>\r\n            <CardMediaVideoAudio url={url} isVideo={true} />\r\n          </Box>\r\n        </DialogContent>\r\n        <DialogActions sx={{ textAlign: 'center' }}>\r\n          <Button onClick={handleClose} disabled={!open}>\r\n            Fermer\r\n          </Button>\r\n        </DialogActions>\r\n      </Dialog>\r\n    </>\r\n  );\r\n}\r\n","import { CardMedia } from '@mui/material';\r\n\r\n//type\r\nimport { Playback, VirtualClassRegisteredResult } from '../../../@types/virtualClass';\r\nimport { SeminarLeftToPay, SeminarStatus, SeminarType } from '../../../@types/seminar';\r\nimport { MediaFileInfo } from '../../../@types/media';\r\n//composant\r\nimport SeminarActionRegister, { SeminarActionType } from './SeminarActionRegister';\r\nimport SeminarActionCancel from './SeminarActionCancel';\r\nimport VirtualClassReplay from '../virtualClass/VirtualClassReplay';\r\nimport SeminarActionPayment from './SeminarActionPayment';\r\nimport WorkshopPaymentForm from '../workshop/WorkshopPaymentForm';\r\nimport WorkshopRegister from '../workshop/WorkshopRegister';\r\nimport VirtualClassRegister from '../virtualClass/VirtualClassRegister';\r\nimport CardMediaVideoAudio from 'components/CardMediaVideo';\r\nimport { StudyPlanItemType } from '../../../@types/pedagogy';\r\nimport VirtualClassReplayVideo from '../virtualClass/VirtualClassReplayVideo';\r\n\r\ntype SeminarButtonRenderProps = {\r\n  isFull: boolean;\r\n  status: SeminarStatus;\r\n  registered: boolean;\r\n  isReplay: boolean;\r\n  isLoading: boolean;\r\n  waitingList: boolean;\r\n  replay: null | Playback;\r\n  medias: MediaFileInfo[];\r\n  isStarted: boolean;\r\n  id: number;\r\n  type: SeminarType;\r\n  leftToPay: null | SeminarLeftToPay;\r\n  disabled: boolean;\r\n};\r\n\r\n/**\r\n * Rendu des boutons\r\n * @param param0\r\n * @returns\r\n */\r\nexport default function SeminarButtonRender({\r\n  status,\r\n  isFull,\r\n  waitingList,\r\n  registered,\r\n  isReplay,\r\n  replay,\r\n  medias,\r\n  isStarted,\r\n  id,\r\n  isLoading,\r\n  type,\r\n  leftToPay,\r\n  disabled\r\n}: SeminarButtonRenderProps) {\r\n  if (status === SeminarStatus.Open) {\r\n    if (isFull)\r\n      if (!waitingList && !registered)\r\n        return (\r\n          <>\r\n            {type === SeminarType.Workshop ? (\r\n              <WorkshopRegister\r\n                type={SeminarActionType.RegisterWaitingList}\r\n                disabled={isStarted || disabled}\r\n                onClose={() => console.log('')}\r\n                id={id}\r\n              />\r\n            ) : (\r\n              <VirtualClassRegister\r\n                type={SeminarActionType.RegisterWaitingList}\r\n                disabled={isStarted || disabled}\r\n                onClose={() => console.log('')}\r\n                id={id}\r\n              />\r\n            )}\r\n          </>\r\n        );\r\n\r\n    if (registered && type === SeminarType.VirtualClass)\r\n      return <SeminarActionCancel disabled={isStarted} onClose={() => console.log('')} />;\r\n    else if (!waitingList && !registered) {\r\n      if (leftToPay == null || leftToPay?.accountCredit === 0)\r\n        return (\r\n          <>\r\n            {type === SeminarType.Workshop ? (\r\n              <WorkshopRegister\r\n                type={SeminarActionType.Register}\r\n                disabled={isStarted || disabled}\r\n                onClose={() => console.log('')}\r\n                id={id}\r\n              />\r\n            ) : (\r\n              <VirtualClassRegister\r\n                type={SeminarActionType.Register}\r\n                disabled={isStarted || disabled}\r\n                onClose={() => console.log('')}\r\n                id={id}\r\n              />\r\n            )}\r\n          </>\r\n        );\r\n      else return <SeminarActionPayment id={id} leftToPay={leftToPay}></SeminarActionPayment>;\r\n    }\r\n  } else if (type === SeminarType.VirtualClass) {\r\n    if (isReplay) {\r\n      if (replay == null && medias != null && medias.some((media: any) => media.typFicMed === 30)) {\r\n        return <VirtualClassReplayVideo />;\r\n      } else {\r\n        return <VirtualClassReplay replay={replay} isLoading={isLoading} id={id} />;\r\n      }\r\n    }\r\n  }\r\n  return <></>;\r\n}\r\n","import React, { useEffect } from 'react';\r\n// material\r\nimport { List, Box, DialogActions, Alert, CardMedia, Typography, Stack, Card } from '@mui/material';\r\nimport {\r\n  VerifiedUser,\r\n  Notes,\r\n  PersonalVideoOutlined,\r\n  CheckCircleSharp,\r\n  Done,\r\n  CalendarToday\r\n} from '@mui/icons-material';\r\n\r\n//type\r\nimport { SeminarStatus, SeminarType } from '../../../@types/seminar';\r\nimport { UserType } from '../../../@types/common';\r\nimport { VirtualClass } from '../../../@types/virtualClass';\r\nimport { MeetingStatus } from '../../../@types/meeting';\r\n\r\n//Composants\r\nimport {\r\n  RowItemDisplay,\r\n  RowItemDisplayAlert,\r\n  RowItemDisplayAnimateur,\r\n  RowItemDisplayDateTime,\r\n  RowItemDisplayMedias,\r\n  RowItemDisplayTitle\r\n} from 'components/RowListItem';\r\nimport { MeetingTimeCount } from '../meeting/MeetingTimeCount';\r\nimport { VirtualClassAccess } from './VirtualClassAccess';\r\nimport Markdown from 'components/Markdown';\r\nimport { SeminarStatusDisplay } from '../seminar/SeminarStatusDisplay';\r\nimport SeminarErrorMessage from '../seminar/SeminarErrorMessage';\r\nimport SeminarButtonRender from '../seminar/SeminarButtons';\r\nimport Label from 'components/Label';\r\nimport { IllustrationInfo } from 'components/IllustrationMessage';\r\nimport MeetingButtonVisio from '../meeting/MeetingButtonVisio';\r\n\r\nexport type VirtualClassFormProps = {\r\n  virtualClass: VirtualClass;\r\n  onClose: VoidFunction;\r\n  error: any;\r\n  isFull: boolean;\r\n  isLoading: boolean;\r\n};\r\n\r\nexport default function VirtualClassForm({\r\n  virtualClass,\r\n  onClose,\r\n  error,\r\n  isFull,\r\n  isLoading\r\n}: VirtualClassFormProps) {\r\n  return (\r\n    <Box>\r\n      <List>\r\n        <RowItemDisplayTitle\r\n          title={<Typography variant=\"h6\">{virtualClass.title}</Typography>}\r\n          icon={<PersonalVideoOutlined />}\r\n        >\r\n          <SeminarStatusDisplay\r\n            registered={virtualClass.registered}\r\n            isReplay={virtualClass.isReplay}\r\n            countRegistered={virtualClass.countRegistered}\r\n            state={virtualClass.state}\r\n            countMaxPlaces={virtualClass.countMaxPlaces}\r\n            waitingList={virtualClass.waitingList}\r\n            meetingState={virtualClass.meeting?.status}\r\n            dateLimit={virtualClass.dateStart}\r\n            dateEnd={virtualClass.dateEnd}\r\n          />\r\n        </RowItemDisplayTitle>\r\n\r\n        {virtualClass.meeting?.status === MeetingStatus.Present &&\r\n        virtualClass.state === SeminarStatus.Open ? (\r\n          <RowItemDisplayDateTime\r\n            start={virtualClass.dateStart}\r\n            end={virtualClass.dateEnd}\r\n            isLimit={false}\r\n          >\r\n            {' '}\r\n            <MeetingButtonVisio disabled={false} id={virtualClass.meeting?.id} />\r\n          </RowItemDisplayDateTime>\r\n        ) : (\r\n          <VirtualClassAccess\r\n            dateStart={virtualClass.dateStart}\r\n            dateEnd={virtualClass.dateEnd}\r\n            registered={virtualClass.registered}\r\n            status={virtualClass.state}\r\n            registeredId={virtualClass.meeting?.id}\r\n            isVirtual={true}\r\n          />\r\n        )}\r\n\r\n        <RowItemDisplayAnimateur teacher={virtualClass.teacher} />\r\n\r\n        <RowItemDisplay icon={<Notes />} title=\"Résumé\">\r\n          <Markdown children={virtualClass.description || ''} />\r\n        </RowItemDisplay>\r\n\r\n        <RowItemDisplay icon={<VerifiedUser />} title=\"Descriptif\">\r\n          <Markdown children={virtualClass.content || ''} />\r\n        </RowItemDisplay>\r\n\r\n        {virtualClass.supports != null && virtualClass.supports.length > 0 && (\r\n          <RowItemDisplay\r\n            icon={<CheckCircleSharp />}\r\n            title=\"Prérequis pour participer à la session :\"\r\n          >\r\n            <Typography variant=\"caption\">\r\n              Elève en début ou en cours de formation ayant pris connaissance des supports prérequis\r\n              suivants :\r\n            </Typography>\r\n            {virtualClass.supports.map((w) => {\r\n              return (\r\n                <Stack key={w.code} direction=\"row\" alignItems=\"self-start\">\r\n                  <Label variant=\"ghost\" color={w.isRead ? 'success' : 'error'}>\r\n                    {w.code} - {w.label}\r\n                  </Label>\r\n                  {w.isRead ? <Done /> : <CalendarToday fontSize=\"small\" />}\r\n                </Stack>\r\n              );\r\n            })}\r\n          </RowItemDisplay>\r\n        )}\r\n        {virtualClass && <MediasView virtualClass={virtualClass} />}\r\n        {virtualClass.state === SeminarStatus.Open && (\r\n          <>\r\n            {isFull && !virtualClass.registered && (\r\n              <Card>\r\n                <IllustrationInfo\r\n                  img=\"/static/illustrations/Classesvirtuelles/liste_attente.svg\"\r\n                  maxHeightImg={190}\r\n                >\r\n                  {!virtualClass.waitingList && (\r\n                    <Typography variant=\"subtitle2\" gutterBottom>\r\n                      La classe virtuelle est complète.\r\n                      <br />\r\n                      Vous avez la possibilité de vous inscrire sur la liste d'attente.\r\n                    </Typography>\r\n                  )}\r\n                  <Typography variant=\"body2\">\r\n                    Dès qu'une place se libère, vous serez informé par mail.\r\n                    <br />\r\n                    C'est à ce moment précis que vous pourrez vous inscrire en passant par votre\r\n                    Espace Numérique de Travail.{' '}\r\n                  </Typography>\r\n                </IllustrationInfo>\r\n              </Card>\r\n            )}\r\n\r\n            {virtualClass.registered && (\r\n              <RowItemDisplayAlert alertColor=\"success\">\r\n                <Typography variant=\"subtitle2\" gutterBottom>\r\n                  Félicitations, votre inscription à la classe virtuelle est validée !\r\n                </Typography>\r\n\r\n                <Typography variant=\"body2\">\r\n                  Nous comptons sur votre présence. Si vous avez un empêchement, merci d'annuler\r\n                  votre présence quatre jours avant au plus tard via votre Espace Numérique de\r\n                  Travail.\r\n                  <br />\r\n                  <br />\r\n                  Attention, une classe virtuelle peut être annulée faute de participants, le nombre\r\n                  d'inscrits minimum étant de 10.\r\n                </Typography>\r\n              </RowItemDisplayAlert>\r\n            )}\r\n\r\n            {virtualClass.state === SeminarStatus.Open && virtualClass.waitingList && (\r\n              <RowItemDisplayAlert alertColor=\"warning\">\r\n                <Typography variant=\"subtitle2\" gutterBottom>\r\n                  Félicitations, vous êtes sur liste d'attente !\r\n                </Typography>\r\n              </RowItemDisplayAlert>\r\n            )}\r\n          </>\r\n        )}\r\n      </List>\r\n\r\n      {error && <SeminarErrorMessage error={error} type={SeminarType.VirtualClass} />}\r\n      <DialogActions sx={{ justifyContent: 'center' }}>\r\n        <MeetingTimeCount\r\n          start={virtualClass.dateStart}\r\n          end={virtualClass.dateEnd}\r\n          isVirtual={true}\r\n        >\r\n          {(time: string, isActivate: boolean, isStarted: boolean, isDisabledRegister: boolean) => (\r\n            <SeminarButtonRender\r\n              isStarted={isStarted}\r\n              registered={virtualClass.registered}\r\n              isReplay={virtualClass.isReplay}\r\n              isFull={isFull}\r\n              waitingList={virtualClass.waitingList}\r\n              medias={virtualClass.medias}\r\n              id={virtualClass.id}\r\n              status={virtualClass.state}\r\n              replay={virtualClass.replay}\r\n              isLoading={isLoading}\r\n              type={SeminarType.VirtualClass}\r\n              leftToPay={null}\r\n              disabled={false}\r\n            />\r\n          )}\r\n        </MeetingTimeCount>\r\n      </DialogActions>\r\n    </Box>\r\n  );\r\n}\r\n\r\nconst MediasView = ({ virtualClass }: { virtualClass: VirtualClass }) => {\r\n  const { medias, isReplay, replay } = virtualClass;\r\n\r\n  if (medias === null || medias.length === 0) return <></>;\r\n\r\n  let currentMedias = medias;\r\n\r\n  // ne pas afficher de media video si nous sommes en mode replay\r\n  if (isReplay && replay === null)\r\n    currentMedias = currentMedias.filter((media: any) => media.typFicMed !== 30);\r\n\r\n  return currentMedias.length > 0 ? <RowItemDisplayMedias medias={currentMedias} /> : <></>;\r\n};\r\n","import { useEffect, useState } from 'react';\r\nimport { Close } from '@mui/icons-material';\r\nimport { useNavigate } from 'react-router';\r\n\r\n// material\r\nimport { Stack, Drawer, Tooltip, Divider, Container, Typography } from '@mui/material';\r\nimport { MIconButton } from 'components/@material-extend';\r\n// redux\r\nimport { RootState, useDispatch, useSelector } from 'redux/store';\r\nimport { closeModal, getVirtualClass } from 'redux/slices/virtualClass';\r\n\r\n//type\r\nimport { FavoriteType } from '../../../@types/favorite';\r\nimport { ModuleType } from '../../../@types/contract';\r\nimport { SeminarErrorResult } from '../../../@types/seminar';\r\n\r\n// components\r\nimport SkeletonLoadSingle from 'components/SkeletonLoadSingle';\r\nimport VirtualClassForm from 'components/_dashboard/virtualClass/VirtualClassForm';\r\nimport { Box } from '@mui/system';\r\nimport useModuleAuthorize from 'hooks/useModuleAuthorize';\r\nimport ModuleNotAuthorized from 'components/ModuleNotAuthorized';\r\nimport FavoriteToggleAction from 'components/_dashboard/favorite/FavoriteAction';\r\n\r\nexport default function VirtualClassDetails() {\r\n  const navigate = useNavigate();\r\n  const { authorizedModule } = useModuleAuthorize({\r\n    accessibleModules: [ModuleType.VirtualClassView]\r\n  });\r\n  const dispatch = useDispatch();\r\n\r\n  const { virtualClass, isFull, error, isLoading, virtualClassId, isOpenModal } = useSelector(\r\n    (state: RootState) => state.virtualClass\r\n  );\r\n\r\n  useEffect(() => {\r\n    if (virtualClassId === 0 || !authorizedModule) return;\r\n    dispatch(getVirtualClass(virtualClassId));\r\n  }, [dispatch, virtualClassId]);\r\n\r\n  useEffect(() => {\r\n    if (!error) return;\r\n\r\n    if (\r\n      [SeminarErrorResult.Error, SeminarErrorResult.NotFound].includes(error.result) &&\r\n      !virtualClass &&\r\n      virtualClassId > 0\r\n    ) {\r\n      dispatch(closeModal());\r\n      navigate('/404');\r\n    }\r\n  }, [error]);\r\n\r\n  const handClose = () => {\r\n    dispatch(closeModal());\r\n  };\r\n\r\n  return (\r\n    <Drawer\r\n      open={isOpenModal}\r\n      onClose={handClose}\r\n      anchor=\"right\"\r\n      PaperProps={{ sx: { width: { xs: 1, sm: 630 } } }}\r\n    >\r\n      <Stack p={1.5} direction=\"row\" alignItems=\"center\">\r\n        <Tooltip title=\"Retour\">\r\n          <MIconButton onClick={handClose} sx={{ mr: 1 }}>\r\n            <Close />\r\n          </MIconButton>\r\n        </Tooltip>\r\n        <Typography variant=\"h4\" sx={{ ml: 2.4 }}>\r\n          Classe virtuelle\r\n        </Typography>\r\n        <Stack direction=\"row\" spacing={1} justifyContent=\"flex-end\" flexGrow={1}>\r\n          <Tooltip title=\"Favori : Ajouter/supprimer\">\r\n            <span>\r\n              <FavoriteToggleAction\r\n                title={virtualClass?.title!}\r\n                type={FavoriteType.VirtualClass}\r\n                keyFav={{ courseId: '', homeworkId: 0, id: +virtualClass?.id!, mediaId: 0 }}\r\n              />\r\n            </span>\r\n          </Tooltip>\r\n        </Stack>\r\n      </Stack>\r\n      <Divider />\r\n\r\n      <Box sx={{ p: 3 }}>\r\n        {!authorizedModule ? (\r\n          <ModuleNotAuthorized />\r\n        ) : (\r\n          <>\r\n            {!virtualClass ? (\r\n              <SkeletonLoadSingle />\r\n            ) : (\r\n              <VirtualClassForm\r\n                virtualClass={virtualClass!}\r\n                onClose={() => console.log('')}\r\n                isFull={isFull}\r\n                error={error}\r\n                isLoading={isLoading}\r\n              />\r\n            )}\r\n          </>\r\n        )}\r\n      </Box>\r\n    </Drawer>\r\n  );\r\n}\r\n","import { CardHeader, Card, Typography, CardContent } from '@mui/material';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { styled } from '@mui/styles';\r\nimport { Box } from '@mui/system';\r\nimport { IllustrationInfo } from 'components/IllustrationMessage';\r\nimport useAuth from 'hooks/useAuth';\r\n\r\nimport { getAccount, getLeftToPay } from 'utils/helper';\r\nimport { Seminar, SeminarLeftToPay } from '../../../@types/seminar';\r\n\r\nexport type WorkshopCreditViewProps = {\r\n  workshop: Seminar;\r\n  creditBalance: number;\r\n  leftToPay: SeminarLeftToPay;\r\n};\r\n\r\nexport default function WorkshopCreditView({\r\n  workshop,\r\n  creditBalance,\r\n  leftToPay\r\n}: WorkshopCreditViewProps) {\r\n  const theme = useTheme();\r\n  const { getFormatCurrency } = useAuth();\r\n\r\n  return (\r\n    <Card>\r\n      <IllustrationInfo img=\"/static/illustrations/ateliers/paiement.svg\" maxHeightImg={130}>\r\n        <Typography variant=\"subtitle1\" paragraph>\r\n          Inscription à l'atelier\r\n        </Typography>\r\n\r\n        <Box sx={{ textAlign: 'left' }}>\r\n          <Typography variant=\"body2\">\r\n            Coût de l'atelier :{' '}\r\n            <strong>\r\n              {getFormatCurrency(workshop.price)} - soit {workshop.credit} point(s)\r\n            </strong>\r\n          </Typography>\r\n          <Typography variant=\"body2\">\r\n            Votre solde actuel de points atelier : <strong>{creditBalance} point(s)</strong>\r\n          </Typography>\r\n          <Typography variant=\"body2\">\r\n            Points minimum pour s'inscrire : <strong>{getAccount(workshop.credit)} point(s)</strong>\r\n          </Typography>\r\n\r\n          <Typography gutterBottom variant=\"body2\">\r\n            Points restant à verser : <strong>{leftToPay.accountCredit} point(s)</strong> <br />\r\n          </Typography>\r\n        </Box>\r\n        <Box>\r\n          {workshop.countMaxPlaces > workshop.countRegistered && (\r\n            <>\r\n              {leftToPay.accountCredit === 0 ? (\r\n                <Typography gutterBottom variant=\"body2\" sx={{ color: theme.palette.success.main }}>\r\n                  <strong>Vous avez suffisamment de points pour vous inscrire.</strong>\r\n                </Typography>\r\n              ) : (\r\n                <Typography gutterBottom variant=\"body2\" sx={{ color: theme.palette.error.main }}>\r\n                  <strong>\r\n                    Il vous manque {leftToPay.accountCredit} points pour vous inscrire. Veuillez\r\n                    créditer votre compte points.\r\n                  </strong>\r\n                </Typography>\r\n              )}\r\n            </>\r\n          )}\r\n\r\n          <Typography variant=\"caption\">\r\n            Dans tous les cas, le transport, l’hébergement et le(s) repas restent à la charge de\r\n            l’élève.\r\n          </Typography>\r\n        </Box>\r\n      </IllustrationInfo>\r\n    </Card>\r\n  );\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\n// material\r\nimport {\r\n  List,\r\n  Box,\r\n  DialogActions,\r\n  Alert,\r\n  CardMedia,\r\n  Dialog,\r\n  DialogTitle,\r\n  DialogContent,\r\n  Button,\r\n  Typography,\r\n  FormControl,\r\n  FormControlLabel,\r\n  Checkbox,\r\n  Card,\r\n  Stack\r\n} from '@mui/material';\r\nimport {\r\n  VerifiedUser,\r\n  Notes,\r\n  PersonalVideoOutlined,\r\n  NotesOutlined,\r\n  Person,\r\n  EventNote,\r\n  SquareFoot,\r\n  BubbleChart,\r\n  ConfirmationNumber\r\n} from '@mui/icons-material';\r\n//hook\r\nimport useAuth from 'hooks/useAuth';\r\n// redux\r\nimport { RootState, useDispatch, useSelector } from 'redux/store';\r\n\r\n//type\r\nimport { Seminar, SeminarInfo, SeminarStatus, SeminarType } from '../../../@types/seminar';\r\nimport { Student } from '../../../@types/account';\r\n\r\n//Composants\r\nimport {\r\n  RowItemDisplay,\r\n  RowItemDisplayDateTime,\r\n  RowItemDisplayLocation,\r\n  RowItemDisplayTeacher,\r\n  RowItemDisplayTitle,\r\n  RowItemDisplayPayment,\r\n  RowItemDisplayAlert\r\n} from 'components/RowListItem';\r\nimport { MeetingTimeCount } from '../meeting/MeetingTimeCount';\r\nimport Markdown from 'components/Markdown';\r\nimport { SeminarStatusDisplay } from '../seminar/SeminarStatusDisplay';\r\nimport WorkshopCreditView from './WorkshopCreditView';\r\nimport SeminarErrorMessage from '../seminar/SeminarErrorMessage';\r\nimport { fDate, isAfterDate } from 'utils/formatTime';\r\nimport SeminarButtonRender from '../seminar/SeminarButtons';\r\nimport { getLeftToPay } from 'utils/helper';\r\nimport { phoneFormat } from 'utils/formatPhone';\r\nimport { IllustrationInfo } from 'components/IllustrationMessage';\r\nimport Label from 'components/Label';\r\nimport WorkshopSummons from './WorkshopSummons';\r\nimport { ConditionsGeneralesCard } from './WorkshopPaymentForm';\r\n\r\nexport type WorkShopFormProps = {\r\n  workshop: Seminar;\r\n  onClose: VoidFunction;\r\n  error: any;\r\n  isFull: boolean;\r\n  isLoading: boolean;\r\n};\r\n\r\nexport default function WorkShopForm({\r\n  workshop,\r\n  error,\r\n  isFull,\r\n  isLoading,\r\n  onClose\r\n}: WorkShopFormProps) {\r\n  const [isChecked, setChecked] = useState(false);\r\n\r\n  const { getContractCurrent, getFormatCurrency } = useAuth();\r\n\r\n  const contractCurrent = getContractCurrent();\r\n  const leftToPay = getLeftToPay(\r\n    contractCurrent.creditBalance,\r\n    workshop.credit,\r\n    workshop.priceUnit\r\n  );\r\n  const controlCheckCGV =\r\n    !workshop.registered && !workshop.waitingList && !isFull && leftToPay.credit === 0;\r\n  const isRegister = isAfterDate(workshop.dateLimit, new Date());\r\n  const isFinished = isAfterDate(new Date(), workshop.dateStart);\r\n\r\n  return (\r\n    <Box>\r\n      <List>\r\n        <RowItemDisplayTitle\r\n          title={<Typography variant=\"h6\">{workshop.title}</Typography>}\r\n          icon={<PersonalVideoOutlined />}\r\n        >\r\n          <SeminarStatusDisplay\r\n            registered={workshop.registered}\r\n            isReplay={workshop.isReplay}\r\n            countRegistered={workshop.countRegistered}\r\n            state={workshop.state}\r\n            countMaxPlaces={workshop.countMaxPlaces}\r\n            waitingList={workshop.waitingList}\r\n            dateLimit={workshop.dateLimit}\r\n            dateEnd={workshop.dateEnd}\r\n          />\r\n        </RowItemDisplayTitle>\r\n\r\n        <RowItemDisplayLocation>\r\n          <Markdown children={workshop.place} />\r\n        </RowItemDisplayLocation>\r\n\r\n        <RowItemDisplayDateTime end={workshop.dateEnd} start={workshop.dateStart} isLimit={false}>\r\n          <Typography variant=\"caption\" color={!isRegister ? 'error' : 'inherited'}>\r\n            Date limite d'inscription : {fDate(workshop.dateLimit)}\r\n          </Typography>\r\n          {/*!isRegister && (\r\n            <Typography component={'div'}>\r\n              <Label variant=\"ghost\" color=\"error\">\r\n                Date limite d'inscription dépassée\r\n              </Label>\r\n            </Typography>\r\n          )*/}\r\n        </RowItemDisplayDateTime>\r\n\r\n        <RowItemDisplayTeacher teacher={workshop.teacher} />\r\n      </List>\r\n\r\n      {workshop.registered || workshop.waitingList || workshop.state != SeminarStatus.Open ? (\r\n        <List>\r\n          <RowItemDisplayPayment\r\n            title={`Coût de l'atelier : ${getFormatCurrency(workshop.price)} - soit ${\r\n              workshop.credit\r\n            } points`}\r\n          >\r\n            <Typography variant=\"caption\">\r\n              Dans tous les cas, le transport, l’hébergement et le(s) repas restent à la charge de\r\n              l’élève.\r\n            </Typography>\r\n          </RowItemDisplayPayment>\r\n        </List>\r\n      ) : (\r\n        <>\r\n          {contractCurrent != null && (\r\n            <WorkshopCreditView\r\n              creditBalance={contractCurrent.creditBalance}\r\n              workshop={workshop}\r\n              leftToPay={leftToPay}\r\n            />\r\n          )}\r\n        </>\r\n      )}\r\n      <List>\r\n        {workshop.description && (\r\n          <RowItemDisplay title=\"Description\" icon={<NotesOutlined />}>\r\n            <Markdown children={workshop.description} />\r\n          </RowItemDisplay>\r\n        )}\r\n\r\n        {<WorkShopDetailInfos workshop={workshop} />}\r\n\r\n        {workshop.state === SeminarStatus.Open && isFull && isRegister && (\r\n          <Card>\r\n            <IllustrationInfo\r\n              img=\"/static/illustrations/Classesvirtuelles/liste_attente.svg\"\r\n              maxHeightImg={190}\r\n            >\r\n              {!workshop.waitingList && (\r\n                <Typography variant=\"subtitle2\" gutterBottom>\r\n                  L'atelier est complet.\r\n                  <br />\r\n                  Vous avez la possibilité de vous inscrire sur la liste d'attente.\r\n                </Typography>\r\n              )}\r\n              <Typography variant=\"body2\">\r\n                Dès qu'une place se libère, vous serez informé par mail.\r\n                <br />\r\n                C'est à ce moment précis que vous pourrez vous inscrire en passant par votre Espace\r\n                numérique de travail.\r\n              </Typography>\r\n            </IllustrationInfo>\r\n          </Card>\r\n        )}\r\n\r\n        {workshop.state === SeminarStatus.Open && controlCheckCGV && (\r\n          <RowItemDisplay title=\"Inscription à l'atelier\" icon={<ConfirmationNumber />}>\r\n            <FormControl size=\"small\">\r\n              <FormControlLabel\r\n                control={<Checkbox checked={isChecked} onClick={() => setChecked(!isChecked)} />}\r\n                label={<ConditionsGeneralesCard />}\r\n              />\r\n            </FormControl>\r\n          </RowItemDisplay>\r\n        )}\r\n        {workshop.state === SeminarStatus.Open && workshop.registered && (\r\n          <RowItemDisplayAlert alertColor=\"success\">\r\n            <Typography variant=\"subtitle1\" gutterBottom>\r\n              Félicitations, votre inscription à l'atelier est validée !\r\n            </Typography>\r\n\r\n            <Typography variant=\"body2\">\r\n              Nous comptons sur votre présence. En cas d'empêchement, merci de contacter votre école\r\n              au {phoneFormat(contractCurrent.brand.phone, contractCurrent.brand.id)}, au minimum\r\n              quatre jours avant votre atelier afin d'annuler votre présence.\r\n            </Typography>\r\n          </RowItemDisplayAlert>\r\n        )}\r\n\r\n        <Stack direction=\"row\" alignItems=\"center\" justifyContent=\"center\">\r\n          <WorkshopSummons workshop={workshop} />\r\n        </Stack>\r\n\r\n        {workshop.state === SeminarStatus.Open && workshop.waitingList && (\r\n          <RowItemDisplayAlert alertColor=\"warning\">\r\n            <Typography variant=\"subtitle1\" gutterBottom>\r\n              Félicitations, vous êtes sur liste d'attente !\r\n            </Typography>\r\n          </RowItemDisplayAlert>\r\n        )}\r\n      </List>\r\n\r\n      {error && <SeminarErrorMessage error={error} type={SeminarType.Workshop} />}\r\n\r\n      <DialogActions sx={{ justifyContent: 'center' }}>\r\n        {!isFinished && (\r\n          <SeminarButtonRender\r\n            isStarted={false || !isRegister}\r\n            registered={workshop.registered}\r\n            isReplay={workshop.isReplay}\r\n            isFull={isFull}\r\n            waitingList={workshop.waitingList}\r\n            medias={workshop.medias}\r\n            id={+workshop.id}\r\n            status={workshop.state}\r\n            replay={null}\r\n            isLoading={isLoading}\r\n            type={SeminarType.Workshop}\r\n            leftToPay={leftToPay}\r\n            disabled={controlCheckCGV ? !isChecked : false}\r\n          />\r\n        )}\r\n      </DialogActions>\r\n    </Box>\r\n  );\r\n}\r\n\r\ntype WorkShopDetailInfosProps = {\r\n  workshop: Seminar;\r\n};\r\nfunction WorkShopDetailInfos({ workshop }: WorkShopDetailInfosProps) {\r\n  const [open, setOpen] = useState(false);\r\n\r\n  const info: SeminarInfo = workshop.info || {\r\n    method: '',\r\n    public: '',\r\n    utils: '',\r\n    program: '',\r\n    objective: '',\r\n    theme: ''\r\n  };\r\n\r\n  const program = info.program\r\n    .replace(/(JOUR\\=false)/gim, '')\r\n    .replace(/(JOUR\\=true)/gim, '')\r\n    .replace(/(AM\\=false)/gim, '')\r\n    .replace(/(DESCRIPTIFAM\\=)/gim, '')\r\n    .replace(/(PM\\=false)/gim, '')\r\n    .replace(/(AM\\=true)/gim, '')\r\n    .replace(/(PM\\=true)/gim, '')\r\n    .replace(/(DESCRIPTIFPM\\=)/gim, '')\r\n    .replace(/(\\|)/gim, '');\r\n  return (\r\n    <>\r\n      <List>\r\n        {info.objective && (\r\n          <RowItemDisplay icon={<VerifiedUser />} title=\"Objectifs Pédagogiques\">\r\n            <Markdown children={info.objective} />\r\n          </RowItemDisplay>\r\n        )}\r\n        {info.method && (\r\n          <RowItemDisplay icon={<BubbleChart />} title=\"Méthode\">\r\n            <Markdown children={info.method} />\r\n          </RowItemDisplay>\r\n        )}\r\n        {info.program && (\r\n          <RowItemDisplay icon={<EventNote />} title=\"Programme\">\r\n            <Markdown children={program} />\r\n          </RowItemDisplay>\r\n        )}\r\n        {info.utils && (\r\n          <RowItemDisplay icon={<SquareFoot />} title=\"Matériel nécessaire\">\r\n            <Markdown children={info.utils} />\r\n          </RowItemDisplay>\r\n        )}\r\n        {info.public && (\r\n          <RowItemDisplay icon={<Person />} title=\"Public concerné\">\r\n            <Markdown children={info.public} />\r\n          </RowItemDisplay>\r\n        )}\r\n      </List>\r\n    </>\r\n  );\r\n}\r\n","import { useEffect, useState } from 'react';\r\nimport { Close } from '@mui/icons-material';\r\n\r\n// material\r\nimport { Stack, Drawer, Tooltip, Divider, Container, Typography } from '@mui/material';\r\nimport { MIconButton } from 'components/@material-extend';\r\nimport { Box } from '@mui/system';\r\n\r\n// redux\r\nimport { RootState, useDispatch, useSelector } from 'redux/store';\r\nimport { closeModal, getWorkshop } from 'redux/slices/workshop';\r\n//hook\r\nimport useModuleAuthorize from 'hooks/useModuleAuthorize';\r\n\r\n//type\r\nimport { ModuleType } from '../../../@types/contract';\r\nimport { SeminarErrorResult, SeminarType } from '../../../@types/seminar';\r\nimport { FavoriteType } from '../../../@types/favorite';\r\n\r\n// components\r\nimport SkeletonLoadSingle from 'components/SkeletonLoadSingle';\r\nimport WorkShopForm from 'components/_dashboard/workshop/WorkshopForm';\r\nimport SeminarErrorMessage from 'components/_dashboard/seminar/SeminarErrorMessage';\r\nimport ModuleNotAuthorized from 'components/ModuleNotAuthorized';\r\nimport FavoriteToggleAction from '../favorite/FavoriteAction';\r\nimport { useNavigate } from 'react-router';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\n/**\r\n * Detail de l'atelier\r\n * Autorisation du module ici\r\n */\r\nexport default function WorkshopDetails() {\r\n  const dispatch = useDispatch();\r\n  const navigate = useNavigate();\r\n  const { authorizedModule } = useModuleAuthorize({\r\n    accessibleModules: [ModuleType.WorkshopUpdate]\r\n  });\r\n\r\n  const { workshop, isFull, isLoading, error, workshopId, isOpenModal } = useSelector(\r\n    (state: RootState) => state.workshop\r\n  );\r\n\r\n  useEffect(() => {\r\n    if (workshopId === 0 || !authorizedModule) return;\r\n    dispatch(getWorkshop(workshopId));\r\n  }, [dispatch, workshopId]);\r\n\r\n  useEffect(() => {\r\n    if (!error) return;\r\n    // introuvable\r\n    if (\r\n      [SeminarErrorResult.Error, SeminarErrorResult.NotFound].includes(error.result) &&\r\n      !workshop &&\r\n      workshopId > 0\r\n    ) {\r\n      dispatch(closeModal());\r\n      navigate('/404');\r\n    }\r\n  }, [error]);\r\n\r\n  const handleClose = () => {\r\n    dispatch(closeModal());\r\n  };\r\n\r\n  return (\r\n    <Drawer\r\n      open={isOpenModal}\r\n      onClose={handleClose}\r\n      anchor=\"right\"\r\n      PaperProps={{ sx: { width: { xs: 1, sm: 630 } } }}\r\n    >\r\n      <Stack p={2.5} direction=\"row\" alignItems=\"center\">\r\n        <Tooltip title=\"Retour\">\r\n          <MIconButton onClick={handleClose} sx={{ mr: 1 }}>\r\n            <Close />\r\n          </MIconButton>\r\n        </Tooltip>\r\n        <Typography variant=\"h4\" sx={{ ml: 2.4 }}>\r\n          Atelier\r\n        </Typography>\r\n        <Stack direction=\"row\" spacing={1} justifyContent=\"flex-end\" flexGrow={1}>\r\n          <Tooltip title=\"Favori : Ajouter/supprimer\">\r\n            <span>\r\n              {workshop && (\r\n                <FavoriteToggleAction\r\n                  title={workshop!.title}\r\n                  type={FavoriteType.Workshop}\r\n                  keyFav={{ courseId: '', homeworkId: 0, id: +workshop!.id, mediaId: 0 }}\r\n                />\r\n              )}\r\n            </span>\r\n          </Tooltip>\r\n        </Stack>\r\n      </Stack>\r\n      <Divider />\r\n\r\n      {!authorizedModule ? (\r\n        <ModuleNotAuthorized />\r\n      ) : (\r\n        <Box sx={{ p: 3 }}>\r\n          {error ? (\r\n            <SeminarErrorMessage error={error} type={SeminarType.Workshop} />\r\n          ) : (\r\n            <>\r\n              {!workshop ? (\r\n                <SkeletonLoadSingle />\r\n              ) : (\r\n                <WorkShopForm\r\n                  workshop={workshop!}\r\n                  onClose={handleClose}\r\n                  isFull={isFull}\r\n                  error={error}\r\n                  isLoading={isLoading}\r\n                />\r\n              )}\r\n            </>\r\n          )}\r\n        </Box>\r\n      )}\r\n    </Drawer>\r\n  );\r\n}\r\n","import useAuth from 'hooks/useAuth';\r\nimport { useEffect, useState } from 'react';\r\nimport { Helmet } from 'react-helmet-async';\r\nimport { dispatch } from 'redux/store';\r\nimport axiosInstance from 'utils/axios';\r\nimport { fDateFromNovadis } from 'utils/formatTime';\r\n\r\ntype ChatBotProps = {};\r\n\r\nexport default function ChatBot({}: ChatBotProps) {\r\n  const { getContractCurrent, student, getFormatCurrency } = useAuth();\r\n  const [url, setUrl] = useState<string>('');\r\n\r\n  const enseignes = [\r\n    { value: 'BE', space: 'Be Académie' },\r\n    { value: 'SY', space: 'CFA' },\r\n    { value: 'DC', space: 'Déficompta' },\r\n    { value: 'MC', space: 'ESECAD' },\r\n    { value: 'EC', space: 'Ecole Chez Soi' },\r\n    { value: 'EP', space: 'Ecole des Pros' },\r\n    { value: 'ED', space: 'Educatel' },\r\n    { value: 'EK', space: 'Eric Kayser School' },\r\n    { value: 'FS', space: 'Fashion Skills' },\r\n    { value: 'IF', space: 'Ifsa Nature' },\r\n    { value: 'KA', space: 'Karis' },\r\n    { value: 'LI', space: 'Lignes & formations' },\r\n    { value: 'MI', space: 'Minerve' },\r\n    { value: 'NA', space: 'Ifsa Nature' }, //ancien espace : Natura-Dis\r\n    { value: 'SE', space: 'Servais' },\r\n    { value: 'XX', space: 'SkillAndYou' }\r\n  ];\r\n\r\n  function updateConfig() {\r\n    (window as any).dyduAfterLoad = function () {\r\n      const dydu = (window as any)?.dydu;\r\n\r\n      if (dydu) {\r\n        //Paramétrage\r\n        const contract = getContractCurrent();\r\n        const enseigne = contract?.brand?.id;\r\n        const valueEnseigne = enseigne ? enseignes.find((ens) => ens?.value === enseigne) : null;\r\n        const space = valueEnseigne ? valueEnseigne.space : '';\r\n\r\n        //Affichage/masquage\r\n        if (valueEnseigne) {\r\n          (window as any).dydu.ui?.toggle(1);\r\n        } else {\r\n          (window as any).dydu.ui?.toggle(0);\r\n        }\r\n\r\n        //Enseigne\r\n        if (space && space !== '') {\r\n          (window as any).dydu.space.set(space);\r\n        } else {\r\n          (window as any).dydu.space.set('Défaut');\r\n        }\r\n\r\n        //Elève\r\n        if (dydu.chat && dydu.chat.setRegisterContext) {\r\n          dydu.chat.setRegisterContext('Code_Formation', contract?.training?.id);\r\n          dydu.chat.setRegisterContext('Date_Inscription', contract?.registrationDate);\r\n          dydu.chat.setRegisterContext('Ens', contract?.brand?.id);\r\n          dydu.chat.setRegisterContext('Id_Contrat', contract?.id);\r\n          dydu.chat.setRegisterContext('Nom_Enseigne', contract?.brand?.label);\r\n          dydu.chat.setRegisterContext('Nom', student?.lastName);\r\n          dydu.chat.setRegisterContext('Nom_Formation', contract?.training?.label);\r\n          dydu.chat.setRegisterContext('Prenom', student?.firstName);\r\n\r\n          //Recouvrement\r\n          dydu.chat.setRegisterContext(\r\n            'En_Recouvrement',\r\n            contract?.debtRecovery != null ? 'Oui' : 'Non'\r\n          );\r\n\r\n          //Solde\r\n          if (contract?.debitAmount < 0) {\r\n            dydu.chat.setRegisterContext('Solde_Debiteur', getFormatCurrency(contract.debitAmount));\r\n          }\r\n\r\n          //Prochain paiement\r\n          //Prendre la facture VPC(contrat initial)\r\n          if (contract?.bills?.length > 0) {\r\n            const vpcBills = contract.bills.filter((bill) => bill.accountingJournal === 'VPC');\r\n\r\n            const invoice = vpcBills?.length > 0 ? vpcBills[0] : null;\r\n            if (\r\n              invoice &&\r\n              invoice.scheduleNext?.amount > 0 &&\r\n              invoice.scheduleNext?.paymentChoice !== 'PA'\r\n            ) {\r\n              dydu.chat.setRegisterContext(\r\n                'Date_Prochain_Paiement',\r\n                fDateFromNovadis(+invoice?.scheduleNext.date)\r\n              );\r\n              dydu.chat.setRegisterContext(\r\n                'Montant_Prochain_Paiement',\r\n                getFormatCurrency(invoice?.scheduleNext.amount)\r\n              );\r\n            }\r\n          }\r\n        }\r\n        const teaser = document.getElementById('dydu-teaser');\r\n        if (teaser) {\r\n          teaser.style.bottom = '10px';\r\n          teaser.style.right = '20px';\r\n        }\r\n      }\r\n    };\r\n  }\r\n\r\n  //Blindage : désactive le visuel et le script du ChatBot\r\n  function hideChatBot() {\r\n    //Suppression du script\r\n    const chatBotScript = document.getElementById('chatBox_script');\r\n    if (chatBotScript) {\r\n      chatBotScript.remove();\r\n    }\r\n    //Suppression de Skilly\r\n    const chatBot = document.getElementById('dydu-root');\r\n    if (chatBot) {\r\n      chatBot.remove();\r\n    }\r\n  }\r\n\r\n  useEffect(() => {\r\n    dispatch(getServices());\r\n    return () => {\r\n      //Méthode exécutée à la sortie de la vue\r\n      hideChatBot();\r\n    };\r\n  }, []);\r\n\r\n  const getServices = () => {\r\n    return async () => {\r\n      try {\r\n        const response = await axiosInstance.get<string>(`/api/settings/chatbot`);\r\n        if (response) setUrl(response.data);\r\n      } catch (error) {}\r\n    };\r\n  };\r\n\r\n  useEffect(() => {\r\n    updateConfig();\r\n  }, [getContractCurrent, student]);\r\n\r\n  return (\r\n    <Helmet>\r\n      <script id=\"chatBox_script\" src={url}></script>\r\n    </Helmet>\r\n  );\r\n}\r\n/*\r\npre :<script src=\"https://cdn.doyoudreamup.com/dydubox/configurations/preprod/6899e171-2721-494a-9b92-18b94abccacc/ac1f0003-804c-10fb-8180-65e4e601000e/bundle.min.js\"></script>\r\nprod :  <script\r\n        id=\"chatBox_script\"\r\n        src=\"https://cdn.doyoudreamup.com/dydubox/configurations/prod/6899e171-2721-494a-9b92-18b94abccacc/ac1f0003-804c-10fb-8180-65e4e601000e/bundle.min.js\"\r\n      ></script>\r\n*/\r\n","import {\r\n  Button,\r\n  Card,\r\n  CardHeader,\r\n  ClickAwayListener,\r\n  Dialog,\r\n  DialogContent,\r\n  DialogTitle,\r\n  IconButton,\r\n  Menu,\r\n  Popper,\r\n  Portal,\r\n  Typography\r\n} from '@mui/material';\r\n\r\nimport { Box } from '@mui/system';\r\n\r\nimport useHubConnection from 'hooks/useHubConnection';\r\nimport { useEffect, useState } from 'react';\r\nimport { SurveyStepper } from '../survey/SurveyStepper';\r\nimport { DialogTitleWithClose } from 'components/DialogTitleWithClose';\r\nimport { fDate } from 'utils/formatTime';\r\nimport { styled } from '@mui/material/styles';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport { RootState, useSelector } from 'redux/store';\r\nimport { Survey } from '../../../@types/contract';\r\nimport { IllustrationInfo } from 'components/IllustrationMessage';\r\nimport useAuth from 'hooks/useAuth';\r\n\r\n//******************************** */\r\nconst CardStyle = styled(Card)(({ theme }) => ({\r\n  overflow: 'hidden',\r\n  position: 'absolute',\r\n  right: 10,\r\n  top: 100,\r\n  zIndex: 50,\r\n  boxShadow: theme.customShadows.z16,\r\n  borderRadius: theme.shape.borderRadiusMd,\r\n  border: '5px solid #d7d7d7',\r\n  maxWidth: 400\r\n}));\r\n\r\n/**\r\n * Suite à changment d'avenant ou demande de reconnection\r\n */\r\nexport default function WorkflowReconnecting() {\r\n  const { connection } = useHubConnection(); //SignalR;\r\n  const { logout } = useAuth();\r\n  const [open, setOpen] = useState(false);\r\n\r\n  useEffect(() => {\r\n    connection?.on('workflowReconnecting', (value: string) => {\r\n      setOpen(true);\r\n    });\r\n\r\n    return () => {\r\n      connection?.off('workflowReconnecting');\r\n    };\r\n  }, []);\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  const handleReconnecting = () => {\r\n    logout();\r\n  };\r\n\r\n  return (\r\n    <Dialog open={open} fullWidth maxWidth=\"xs\">\r\n      <DialogTitle>Sécurité</DialogTitle>\r\n\r\n      <DialogContent sx={{ p: 1.5 }}>\r\n        <IllustrationInfo\r\n          img=\"/static/illustrations/tableauBord/deconnecte.svg\"\r\n          title=\"Sécurité\"\r\n          maxHeightImg={100}\r\n        >\r\n          <Typography variant=\"body2\" gutterBottom>\r\n            Pour des raisons de sécurité, nous vous demandons de vous authentifier périodiquement.\r\n          </Typography>\r\n\r\n          <Box>\r\n            <Button variant=\"contained\" onClick={handleReconnecting}>\r\n              Me reconnecter\r\n            </Button>\r\n          </Box>\r\n        </IllustrationInfo>\r\n      </DialogContent>\r\n    </Dialog>\r\n  );\r\n}\r\n","import {\r\n  Button,\r\n  CardActions,\r\n  Checkbox,\r\n  Collapse,\r\n  Dialog,\r\n  DialogActions,\r\n  DialogContent,\r\n  Divider,\r\n  FormControl,\r\n  FormControlLabel,\r\n  Typography\r\n} from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport { ModuleType } from '../../@types/contract';\r\nimport { DialogTitleWithClose } from 'components/DialogTitleWithClose';\r\nimport useAuth from 'hooks/useAuth';\r\nimport useModuleAuthorize from 'hooks/useModuleAuthorize';\r\nimport { useEffect, useState } from 'react';\r\nimport { dispatch } from 'redux/store';\r\nimport MessagePopover from 'components/_dashboard/message/MessagePopover';\r\nimport MessageForm from 'components/_dashboard/message/MessageForm';\r\nimport Scrollbar from 'components/Scrollbar';\r\nimport CardMediaVideoAudio from 'components/CardMediaVideo';\r\n\r\n/**\r\n * Popup de bienvenue\r\n */\r\nexport default function WelcomeCallPopup() {\r\n  const { updateConfig, isReadOnly, student } = useAuth();\r\n  const { authorizedModule } = useModuleAuthorize({ accessibleModules: [ModuleType.WelcomeCall] });\r\n  const [open, setOpen] = useState(false);\r\n\r\n  const [notDisplayWelcomeCall, setNotDisplayWelcomeCall] = useState(false);\r\n  const [openQuestion, setOpenQuestion] = useState(false);\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n    if (notDisplayWelcomeCall)\r\n      dispatch(updateConfig({ ...student?.config, notDisplayWelcomeCall: true }));\r\n  };\r\n\r\n  const handleChange = (event: any) => {\r\n    setNotDisplayWelcomeCall(event.target.checked);\r\n  };\r\n\r\n  useEffect(() => {\r\n    const timeoutOut = setTimeout(function () {\r\n      setOpen(authorizedModule);\r\n    }, 1000);\r\n\r\n    return () => {\r\n      clearTimeout(timeoutOut);\r\n    };\r\n  }, []);\r\n\r\n  if (!authorizedModule || isReadOnly) return <></>;\r\n\r\n  return (\r\n    <Dialog open={open} maxWidth={'sm'} fullWidth>\r\n      <DialogTitleWithClose\r\n        id=\"Video\"\r\n        onClose={handleClose}\r\n        title=\"Vidéo de présentation de l'ENT\"\r\n        disabled={!open}\r\n      />\r\n      <Collapse in={!openQuestion}>\r\n        <DialogContent>\r\n          <Box>\r\n            <CardMediaVideoAudio\r\n              url={\r\n                open\r\n                  ? 'https://video.espace-eleves.com/play.php?id=a2e70a61eee9aad9c8b6d44ca49e54e0'\r\n                  : ''\r\n              }\r\n              isVideo={true}\r\n            />\r\n          </Box>\r\n          <Box marginTop=\"20px\">\r\n            <FormControlLabel\r\n              onChange={handleChange}\r\n              control={<Checkbox />}\r\n              label={\r\n                <Typography variant=\"body2\">\r\n                  J’ai vu la vidéo, je l’ai comprise et je ne souhaite pas la revoir lors de mes\r\n                  prochaines connexions.\r\n                </Typography>\r\n              }\r\n            />\r\n          </Box>\r\n        </DialogContent>\r\n        <DialogActions>\r\n          <Button onClick={handleClose} disabled={!open}>\r\n            Fermer\r\n          </Button>\r\n          <Box flexGrow={1} />\r\n          <Button onClick={() => setOpenQuestion(true)} variant=\"outlined\">\r\n            Poser une question\r\n          </Button>\r\n        </DialogActions>\r\n      </Collapse>\r\n      <Collapse in={openQuestion}>\r\n        <MessageForm\r\n          onCancel={() => setOpenQuestion(false)}\r\n          params={{\r\n            subjectId: 'DIVERS',\r\n            serviceId: 'PED',\r\n            pro: '',\r\n            reference: '',\r\n            services: []\r\n          }}\r\n        />\r\n      </Collapse>\r\n    </Dialog>\r\n  );\r\n}\r\n","import { Button, Typography } from '@mui/material';\r\nimport { Dialog, DialogContent } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport { ModuleType } from '../../../../@types/contract';\r\nimport { IllustrationInfo } from 'components/IllustrationMessage';\r\nimport useAttendanceTracking from 'hooks/useAttendanceTracking';\r\nimport useModuleAuthorize from 'hooks/useModuleAuthorize';\r\n\r\nimport CountdownTimer from '../CountdownTimer';\r\n\r\nexport default function AttendanceTrackingPopup() {\r\n  const { authorizedModule } = useModuleAuthorize({\r\n    accessibleModules: [ModuleType.AttendanceTracking]\r\n  });\r\n\r\n  if (!authorizedModule) return <></>;\r\n\r\n  return <AttendanceTracking />;\r\n}\r\n\r\n/**\r\n * Component de suivi de présence\r\n * du lundi au vendredi de  9h à 17h\r\n * toutes les heures on demande de confirmer sa présence\r\n * laisse une trace ou chargement du composant et à sa fermeture\r\n */\r\nfunction AttendanceTracking() {\r\n  const { open, onClose, attendanceTracking, onHere, getGenreMasculin } = useAttendanceTracking({\r\n    delaySecond: 300\r\n  });\r\n\r\n  const hour = new Date().getHours();\r\n\r\n  return (\r\n    <Dialog open={open}>\r\n      <DialogContent>\r\n        <IllustrationInfo img={`/static/illustrations/general/appel${hour}.svg`}>\r\n          <Box>\r\n            <Box sx={{ display: 'flex', justifyContent: 'end' }}>\r\n              <CountdownTimer\r\n                targetDate={new Date(attendanceTracking.end)}\r\n                startDate={new Date(attendanceTracking.start)}\r\n                warningSecond={150}\r\n                errorSecond={75}\r\n                onExpired={onClose}\r\n              />\r\n            </Box>\r\n\r\n            <Typography variant=\"subtitle2\" paragraph>\r\n              Signalez votre présence\r\n            </Typography>\r\n            <Typography variant=\"body2\" gutterBottom>\r\n              Merci de signaler votre présence dans un délai de <strong>5 minutes</strong> en\r\n              cliquant sur le bouton ci-dessous.\r\n            </Typography>\r\n            <Typography variant=\"body2\" paragraph>\r\n              Attention, une fois le compte à rebours terminé, vous serez noté\r\n              {getGenreMasculin() ? '' : 'e'} absent{getGenreMasculin() ? '' : 'e'} sur cette heure\r\n              si vous n’avez pas signalé votre présence.\r\n            </Typography>\r\n\r\n            <Box sx={{ display: 'flex', justifyContent: 'center' }}>\r\n              <Button variant=\"contained\" onClick={onHere}>\r\n                Je suis présent{getGenreMasculin() ? '' : 'e'}\r\n              </Button>\r\n            </Box>\r\n          </Box>\r\n        </IllustrationInfo>\r\n      </DialogContent>\r\n    </Dialog>\r\n  );\r\n}\r\n","import { useEffect, useState } from 'react';\r\nimport useAuth from './useAuth';\r\nimport useHubConnection, { TypeLog } from './useHubConnection';\r\nimport useLocalStorage from './useLocalStorage';\r\n\r\ntype useAttendanceTrackingProps = {\r\n  delaySecond: number;\r\n};\r\n\r\n/**\r\n * Component de suivi de présence\r\n * du lundi au vendredi de  9h à 17h\r\n * toutes les heures on demande de confirmer sa présence\r\n * laisse une trace ou chargement du composant et à sa fermeture\r\n */\r\nexport default function useAttendanceTracking({ delaySecond }: useAttendanceTrackingProps) {\r\n  const [open, setOpen] = useState(false);\r\n  const { onAttendanceTracking } = useHubConnection();\r\n  const { getGenreMasculin, getContractCurrent, isReadOnly } = useAuth();\r\n  const [attendanceTracking, setAttendanceTracking] = useLocalStorage<{\r\n    start: number | null;\r\n    end: number | null;\r\n    relance: number | null;\r\n  }>('attendanceTracking', { start: null, end: null, relance: null });\r\n\r\n  useEffect(() => {\r\n    if (isReadOnly) return;\r\n\r\n    //déclenchement toutes les minutes\r\n    const interval = setInterval(function () {\r\n      const dayOfWeek: number = new Date().getDay();\r\n      const hours = new Date().getHours();\r\n      const minutes = new Date().getMinutes();\r\n\r\n      // si la date mémorisée est postérieure à la date actuelle on relance le controle\r\n      if (attendanceTracking.relance && new Date(attendanceTracking.relance) > new Date()) {\r\n        return;\r\n      }\r\n\r\n      if (\r\n        [1, 2, 3, 4, 5].includes(dayOfWeek) &&\r\n        [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20].includes(hours) &&\r\n        [0, 1, 2, 3, 4].includes(minutes)\r\n      ) {\r\n        //mémoriser la date\r\n        let dateOff = new Date();\r\n\r\n        // on ajoute le delay souhaité pour ne plus afficher\r\n        dateOff.setTime(new Date().getTime() + delaySecond * 1000);\r\n\r\n        // save en localStorage\r\n        setAttendanceTracking({\r\n          start: new Date().getTime(),\r\n          end: dateOff.getTime(),\r\n          relance: dateOff.getTime()\r\n        });\r\n        //aficher la popup\r\n        setOpen(true);\r\n      }\r\n    }, 1000 * 10);\r\n\r\n    //supprimer les abonnements\r\n    return () => {\r\n      clearInterval(interval);\r\n    };\r\n  }, [attendanceTracking]);\r\n\r\n  /**\r\n   * Tag popup de présence loaded\r\n   */\r\n  useEffect(() => {\r\n    if (open)\r\n      onAttendanceTracking(\r\n        TypeLog.AttendanceTrackingLoaded,\r\n        'Popup présentée',\r\n        getContractCurrent().idConnection\r\n      );\r\n  }, [open]);\r\n\r\n  useEffect(() => {\r\n    if (attendanceTracking.end && new Date(attendanceTracking.end) > new Date()) {\r\n      setOpen(true);\r\n    }\r\n  }, []);\r\n\r\n  /**\r\n   * Présent sur click\r\n   */\r\n  const onHere = () => {\r\n    onAttendanceTracking(\r\n      TypeLog.AttendanceTrackingValidated,\r\n      'Popup présentée',\r\n      getContractCurrent().idConnection\r\n    );\r\n    setAttendanceTracking({ ...attendanceTracking, end: null, start: null });\r\n    setOpen(false);\r\n  };\r\n\r\n  const onClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  return {\r\n    open,\r\n    onClose,\r\n    attendanceTracking,\r\n    getGenreMasculin,\r\n    onHere\r\n  };\r\n}\r\n","import useHubConnection from 'hooks/useHubConnection';\r\nimport { HubConnectionState } from '@microsoft/signalr';\r\nimport { useEffect, useState } from 'react';\r\nimport { Alert, Button, Snackbar, Typography } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\n\r\nexport const HubMessageState = () => {\r\n  const { connection, connect, error } = useHubConnection();\r\n  const [open, setOpen] = useState(false);\r\n\r\n  const handleConnection = () => {\r\n    if (connect) connect();\r\n    setOpen(false);\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (HubConnectionState.Disconnected) setOpen(true);\r\n  }, [connection?.state]);\r\n\r\n  if (error && connection?.state === HubConnectionState.Disconnected) {\r\n    return (\r\n      <Snackbar open={true} anchorOrigin={{ vertical: 'top', horizontal: 'center' }}>\r\n        <Alert severity=\"error\" sx={{ width: '100%' }}>\r\n          Reconnexion avec le serveur impossible\r\n        </Alert>\r\n      </Snackbar>\r\n    );\r\n  }\r\n\r\n  switch (connection?.state) {\r\n    case HubConnectionState.Disconnected:\r\n      return (\r\n        <Box>\r\n          <Alert\r\n            severity=\"warning\"\r\n            action={\r\n              <Button\r\n                variant=\"outlined\"\r\n                onClick={handleConnection}\r\n                color=\"warning\"\r\n                sx={{ color: '#7A4F01' }}\r\n              >\r\n                Se reconnecter\r\n              </Button>\r\n            }\r\n          >\r\n            <Typography variant=\"subtitle2\">Vous avez été déconnecté.</Typography>\r\n            <Typography variant=\"body2\">\r\n              En poursuivant votre navigation, vous données ne seront pas sauvegardées.\r\n            </Typography>\r\n          </Alert>\r\n        </Box>\r\n      );\r\n\r\n    case HubConnectionState.Reconnecting:\r\n      return (\r\n        <Snackbar open={true} anchorOrigin={{ vertical: 'top', horizontal: 'center' }}>\r\n          <Alert severity=\"warning\" sx={{ width: '100%' }}>\r\n            Reconnexion avec le serveur en cours\r\n          </Alert>\r\n        </Snackbar>\r\n      );\r\n\r\n    default:\r\n      return <></>;\r\n  }\r\n};\r\n","import { Alert } from '@mui/material';\r\nimport { Button, Typography } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport { IllustrationInfo } from 'components/IllustrationMessage';\r\nimport useVersion from 'hooks/useWorkflowVersion';\r\n\r\nexport default function WorkflowVersion() {\r\n  const { isChangeVersion } = useVersion();\r\n\r\n  const reloadApplication = () => {\r\n    window.location.reload();\r\n  };\r\n\r\n  return (\r\n    <>\r\n      {isChangeVersion && (\r\n        <Button onClick={reloadApplication} size=\"small\">\r\n          <Alert\r\n            severity=\"info\"\r\n            sx={{ textAlign: 'left' }}\r\n            action={\r\n              <Button variant=\"outlined\" color=\"info\">\r\n                Mettre à jour\r\n              </Button>\r\n            }\r\n          >\r\n            <Typography variant=\"subtitle2\">Mise à jour disponible</Typography>\r\n            <Typography variant=\"body2\">\r\n              Pour profiter de nouvelles fonctionnalités, mettez à jour votre ENT.\r\n            </Typography>\r\n          </Alert>\r\n        </Button>\r\n      )}\r\n    </>\r\n  );\r\n}\r\n/*\r\n <Alert\r\n          severity=\"warning\"\r\n          sx={{ width: '100%' }}\r\n          action={\r\n            <Button variant=\"contained\" onClick={reloadApplication}>\r\n              Mettre à jour\r\n            </Button>\r\n          }\r\n        >\r\n          Une mise à jour de votre Espace Numérique de Travail (ENT) est requise pour poursuivre\r\n          votre navigation.\r\n        </Alert>\r\n\r\n    <Dialog open={callChangeVersion}>\r\n      <DialogContent>\r\n        <IllustrationInfo img={`/static/illustrations/general/appel.svg`}>\r\n          <Box>\r\n            <Typography variant=\"subtitle2\" paragraph>\r\n              Une mise à jour de votre Espace Numérique de Travail (ENT) est requise pour poursuivre\r\n              votre navigation.\r\n            </Typography>\r\n            <Typography variant=\"body2\" gutterBottom>\r\n              Veuillez mettre à jour la nouvelle version de votre ENT.\r\n            </Typography>\r\n\r\n            <Box sx={{ display: 'flex', justifyContent: 'center' }}>\r\n              <Button variant=\"contained\" onClick={reloadApplication}>\r\n                Mettre à jour\r\n              </Button>\r\n            </Box>\r\n          </Box>\r\n        </IllustrationInfo>\r\n      </DialogContent>\r\n    </Dialog>\r\n\r\n*/\r\n","import { useEffect, useState } from 'react';\r\nimport useHubConnection from './useHubConnection';\r\n\r\nexport default function useWorkflowVersion() {\r\n  const currentVersion = parseInt(process.env.REACT_APP_ENT_VERSION || '0');\r\n  const [isChangeVersion, setIsChangeVersion] = useState<boolean>(false);\r\n  const { connection } = useHubConnection();\r\n\r\n  //Abonnement aux events\r\n  useEffect(() => {\r\n    connection?.on('workflowVersion', (version: number) => {\r\n      if (version > currentVersion) setIsChangeVersion(true);\r\n    });\r\n\r\n    return () => {\r\n      connection?.off('workflowVersion');\r\n    };\r\n  }, [connection]);\r\n\r\n  useEffect(() => {\r\n    console.log(`Version de l'application : ${process.env.REACT_APP_ENT_VERSION}`);\r\n  }, []);\r\n\r\n  return {\r\n    isChangeVersion\r\n  };\r\n}\r\n","import { Icon } from '@iconify/react';\r\nimport { Card, Typography, MobileStepper, Button, CardHeader, IconButton } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport MIconButton from 'components/MIconButton';\r\nimport { useSurvey } from 'hooks/useSurvey';\r\nimport { useSurveyStepper } from 'hooks/useSurveyStepper';\r\nimport { useEffect, useState } from 'react';\r\nimport { ReactNode } from 'react-markdown/lib/react-markdown';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport { SurveyCategory, SurveyRequest, Survey, SurveyResponse } from '../../../@types/survey';\r\nimport { SurveyCategoryCard } from './SurveyCategoryCard';\r\nimport { SurveyInput } from './SurveyInput';\r\nimport arrowIosBackFill from '@iconify/icons-eva/arrow-ios-back-fill';\r\nimport { useSnackbar } from 'notistack';\r\nimport { dispatch } from 'redux/store';\r\nimport SkeletonLoadSingle from 'components/SkeletonLoadSingle';\r\n\r\nexport type SurveyProps = {\r\n  request: SurveyResponse;\r\n  onClose?: () => void;\r\n  children?: ReactNode;\r\n};\r\n\r\n/**\r\n * Questionnaire par étape (sondage classe virtuelle)\r\n * @param param0\r\n * @returns\r\n */\r\nexport const SurveyStepper = ({ request, onClose, children }: SurveyProps) => {\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const [isValidItem, setIsValidItem] = useState(false);\r\n  const {\r\n    categoryList,\r\n    onChange,\r\n    onChangeOption,\r\n    onChangeOptionTextRep,\r\n    onChangeChecked,\r\n    save,\r\n    isErrorSurveyItem\r\n  } = useSurvey({\r\n    request: request,\r\n    onMove: () => {}\r\n  });\r\n\r\n  const { activeStep, getCountStep, onStepBack, onStepNext, getSurveyStep } = useSurveyStepper(\r\n    request,\r\n    categoryList\r\n  );\r\n\r\n  const stepMax = getCountStep();\r\n\r\n  useEffect(() => {\r\n    const surveyItemActif = getSurveyStep();\r\n    if (surveyItemActif === undefined) return;\r\n    if (!isErrorSurveyItem(surveyItemActif) && activeStep < 2) {\r\n      onStepNext();\r\n    }\r\n  }, [categoryList]);\r\n\r\n  const handleSave = () => {\r\n    dispatch(\r\n      save()(() => {\r\n        //enregistrement\r\n        enqueueSnackbar('Merci d’avoir répondu à ce sondage.', { variant: 'success' });\r\n        if (onClose) onClose();\r\n      })(() => {\r\n        enqueueSnackbar(\r\n          'Nous rencontrons actuellement un problème, veuillez réessayer ultérieurement',\r\n          { variant: 'error' }\r\n        );\r\n        if (onClose) onClose();\r\n      })\r\n    );\r\n  };\r\n\r\n  return (\r\n    <Card>\r\n      <CardHeader\r\n        avatar={\r\n          <>\r\n            {activeStep !== 0 && (\r\n              <MIconButton onClick={onStepBack}>\r\n                <Icon icon={arrowIosBackFill} width={20} height={20} />\r\n              </MIconButton>\r\n            )}\r\n          </>\r\n        }\r\n        action={\r\n          <IconButton onClick={onClose}>\r\n            <CloseIcon />\r\n          </IconButton>\r\n        }\r\n      />\r\n      {categoryList?.map((c, i) => (\r\n        <SurveyCategoryCard\r\n          key={`categoryCard_${c.id * i}`}\r\n          category={c}\r\n          sx={{\r\n            textAlign: 'center',\r\n            boxShadow: 'none',\r\n            backgroundColor: '#fff',\r\n            '&>.MuiCardContent-root': { paddingBottom: '2px' }\r\n          }}\r\n        >\r\n          {(survey, isRegroupement, index) => {\r\n            if (index !== activeStep) return <></>;\r\n\r\n            return (\r\n              <>\r\n                {children}\r\n\r\n                <Typography variant=\"body2\" gutterBottom>\r\n                  {survey.question}\r\n                </Typography>\r\n\r\n                <SurveyInput\r\n                  survey={survey}\r\n                  isReadOnly={false}\r\n                  index={index}\r\n                  key={index}\r\n                  onChange={(value: string) => onChange(c.id, survey.id, value)}\r\n                  onChangeOption={(value: string) => onChangeOption(c.id, survey.id, value)}\r\n                  onChangeOptionText={(id: string, value: string) =>\r\n                    onChangeOptionTextRep(c.id, survey.id, id, value)\r\n                  }\r\n                  onChangeChecked={(value: string, checked: boolean) =>\r\n                    onChangeChecked(c.id, survey.id, value, checked)\r\n                  }\r\n                  onValid={(is: boolean) => setIsValidItem(is)}\r\n                />\r\n              </>\r\n            );\r\n          }}\r\n        </SurveyCategoryCard>\r\n      ))}\r\n\r\n      <Box sx={{ textAlign: 'center', mt: 2 }}>\r\n        {activeStep === stepMax - 1 && (\r\n          <Button variant=\"contained\" size=\"small\" onClick={handleSave}>\r\n            Envoyer\r\n          </Button>\r\n        )}\r\n\r\n        {!(activeStep === stepMax - 1 || !isValidItem) && (\r\n          <Button onClick={onStepNext} variant=\"contained\" size=\"small\">\r\n            Continuer\r\n          </Button>\r\n        )}\r\n      </Box>\r\n\r\n      <MobileStepper\r\n        variant=\"progress\"\r\n        steps={stepMax}\r\n        position=\"static\"\r\n        activeStep={activeStep}\r\n        sx={{\r\n          justifyContent: 'center',\r\n          gap: '5px',\r\n          flexGrow: 1,\r\n          '& .MuiLinearProgress-root-MuiMobileStepper-progress': { width: '80%' }\r\n        }}\r\n        nextButton={<></>}\r\n        backButton={<></>}\r\n      />\r\n    </Card>\r\n  );\r\n};\r\n","import { useEffect, useState } from 'react';\r\n\r\nimport {\r\n  SurveyCategory,\r\n  SurveyResponse,\r\n  SurveyResult,\r\n  Survey,\r\n  QuestOption,\r\n  QuestionType\r\n} from '../@types/survey';\r\n\r\n/**\r\n * Gestion du questionnaire en mode etape\r\n * @returns\r\n */\r\nexport const useSurveyStepper = (request: SurveyResponse, categoryList: Array<SurveyCategory>) => {\r\n  const [activeStep, setActiveStep] = useState(0);\r\n\r\n  useEffect(() => {\r\n    setActiveStep(0);\r\n  }, [request]);\r\n\r\n  const onStepNext = () => {\r\n    setActiveStep((prevActiveStep) => prevActiveStep + 1);\r\n  };\r\n\r\n  const onStepBack = () => {\r\n    setActiveStep((prevActiveStep) => prevActiveStep - 1);\r\n  };\r\n\r\n  const getCountStep = () => {\r\n    return categoryList.reduce(\r\n      (accumulateur, valeurCourante) => accumulateur + valeurCourante.surveyList.length,\r\n      0\r\n    );\r\n  };\r\n\r\n  const getSurveyStep = () => {\r\n    let surveys: Array<Survey> = [];\r\n    categoryList.map((s, index) => s.surveyList.map((survey) => surveys.push(survey)));\r\n    return surveys[activeStep];\r\n  };\r\n\r\n  return {\r\n    categoryList,\r\n    activeStep,\r\n    getCountStep,\r\n    onStepBack,\r\n    onStepNext,\r\n    getSurveyStep\r\n  };\r\n};\r\n","import { Dialog, Typography } from '@mui/material';\r\nimport { SurveyStepper } from '../survey/SurveyStepper';\r\nimport { Survey } from '../../../@types/contract';\r\nimport { fDate } from 'utils/formatTime';\r\nimport SurveyContainer from './SurveyContainer';\r\n\r\ntype SurveyFormDialogProps = {\r\n  survey: Survey;\r\n  onClose: () => void;\r\n};\r\n\r\nconst SurveyFormDialog = ({ survey, onClose }: SurveyFormDialogProps) => {\r\n  return (\r\n    <Dialog\r\n      open={true}\r\n      fullWidth\r\n      maxWidth=\"xs\"\r\n      hideBackdrop={true}\r\n      onClose={onClose}\r\n      sx={{ '& .MuiDialog-container': { alignItems: 'end' } }}\r\n    >\r\n      <SurveyContainer\r\n        request={{\r\n          lisQue: survey.id,\r\n          typApp: survey.keyApp,\r\n          appId: survey.keyId\r\n        }}\r\n      >\r\n        {(response, isStepper) => (\r\n          <SurveyStepper request={response} onClose={onClose}>\r\n            <Typography variant=\"caption\">{survey.label}</Typography>\r\n            {survey.created && (\r\n              <Typography variant=\"caption\" paragraph>\r\n                {fDate(survey.created, 'eeee dd MMMM yyyy à HH:mm')}\r\n              </Typography>\r\n            )}\r\n          </SurveyStepper>\r\n        )}\r\n      </SurveyContainer>\r\n    </Dialog>\r\n  );\r\n};\r\n\r\nexport default SurveyFormDialog;\r\n","import { useEffect, useState } from 'react';\r\nimport { RootState, dispatch, useSelector } from 'redux/store';\r\nimport SurveyFormDialog from '../survey/SurveyFormDialog';\r\nimport { maskSurvey } from 'redux/slices/survey';\r\nimport { Survey } from '../../../@types/contract';\r\n\r\nconst VirtualClassSurveyAfterLive = () => {\r\n  const { surveys } = useSelector((state: RootState) => state.survey);\r\n  const { virtualClasses } = useSelector((state: RootState) => state.virtualClass);\r\n  const [survey, setSurvey] = useState<Survey | null>(null);\r\n\r\n  useEffect(() => {\r\n    const surveyMandatory = surveys.find(\r\n      (s) => s.relanceOfNumber > 0 && s.keyApp === 'ClaVir' && s.id === 433\r\n    );\r\n\r\n    if (surveyMandatory) {\r\n      const classeVirtuelle = virtualClasses.find((vc) => vc.id === +surveyMandatory.keyId);\r\n\r\n      if (classeVirtuelle) {\r\n        setSurvey(\r\n          Object.assign({}, surveyMandatory, {\r\n            created: classeVirtuelle?.dateStart,\r\n            label: classeVirtuelle?.title\r\n          })\r\n        );\r\n      }\r\n    }\r\n  }, [virtualClasses, surveys]);\r\n\r\n  const onClose = () => {\r\n    if (survey)\r\n      dispatch(maskSurvey({ typApp: survey?.keyApp, appId: survey?.keyId, lisQue: survey.id }));\r\n    setSurvey(null);\r\n  };\r\n\r\n  if (survey === null) return <></>;\r\n\r\n  return <SurveyFormDialog onClose={onClose} survey={survey} />;\r\n};\r\nexport default VirtualClassSurveyAfterLive;\r\n","import { RootState, dispatch, useSelector } from 'redux/store';\r\nimport SurveyFormDialog from '../survey/SurveyFormDialog';\r\nimport { closeModal } from 'redux/slices/survey';\r\n\r\n/**\r\n * Declenche l'affichage d'un questionnaire - sondage\r\n */\r\nexport default function VirtualClassSurveyAfterReplay() {\r\n  const { survey } = useSelector((state: RootState) => state.survey);\r\n\r\n  const handleClose = () => {\r\n    dispatch(closeModal());\r\n  };\r\n\r\n  if (survey === null) return <></>;\r\n\r\n  return <SurveyFormDialog onClose={handleClose} survey={survey} />;\r\n}\r\n","import useAuth from 'hooks/useAuth';\r\nimport { Contract, Survey } from '../../../@types/contract';\r\n\r\nimport { Button, Dialog, DialogContent, Stack, Typography } from '@mui/material';\r\nimport { DialogTitleWithClose } from 'components/DialogTitleWithClose';\r\n// redux\r\nimport { dispatch, RootState, useDispatch, useSelector } from 'redux/store';\r\nimport { selectSurveyStandard, closeModal, maskSurvey, removeSurvey } from 'redux/slices/survey';\r\nimport { SurveyStandard } from '../survey/SurveyStandard';\r\nimport { useCallback, useEffect, useState } from 'react';\r\nimport { IllustrationInfo } from 'components/IllustrationMessage';\r\nimport { Box } from '@mui/system';\r\nimport { SurveyStepperStandard } from './SurveyStepperStandard';\r\nimport SurveyContainer from './SurveyContainer';\r\n\r\n/**\r\n * Relancer les questionnaires en mode popup\r\n * On prend seulement les questionnaires à relancer\r\n * On ne relance qu'une fois par jour.\r\n *\r\n * @returns\r\n */\r\nconst SurveyRelance = () => {\r\n  const { surveys, surveyStandard, isOpenModal } = useSelector((state: RootState) => state.survey);\r\n  const [survey, setSurvey] = useState<Survey | null>(null);\r\n\r\n  useEffect(() => {\r\n    if (survey) {\r\n      dispatch(maskSurvey({ typApp: survey.keyApp, appId: survey?.keyId, lisQue: survey?.id }));\r\n    }\r\n  }, [survey]);\r\n\r\n  const onClose = () => {\r\n    setSurvey(null);\r\n  };\r\n\r\n  const handleSelect = () => {\r\n    if (survey?.url) {\r\n      window.open(survey.url);\r\n      return;\r\n    }\r\n\r\n    dispatch(selectSurveyStandard(survey));\r\n    onClose();\r\n  };\r\n\r\n  /** detection event au chargement simplement de la liste des sondages*/\r\n  const surveysLoaded = surveys.length > 0;\r\n\r\n  useEffect(() => {\r\n    //1 seule fois par rafraichessement(F5)\r\n    const sondages = surveys\r\n      .slice()\r\n      .filter((s) => s.relanceOfNumber > 0 && s.keyApp !== 'ClaVir') //prendre les sondages à relancer sans les classes virtuelles\r\n      .sort((a, b) => {\r\n        const aDate = new Date(a.created);\r\n        const bDate = new Date(b.created);\r\n\r\n        if (aDate > bDate) {\r\n          return -1;\r\n        }\r\n        if (aDate < bDate) {\r\n          return 1;\r\n        }\r\n        return 0;\r\n      });\r\n\r\n    if (sondages && sondages.length > 0) setSurvey(sondages[0]);\r\n  }, [surveysLoaded]);\r\n\r\n  if (survey === null) return <></>;\r\n\r\n  return (\r\n    <Dialog open={true} onClose={onClose}>\r\n      <DialogTitleWithClose title=\"\" onClose={onClose} id=\"SurveyContainer\"></DialogTitleWithClose>\r\n\r\n      <DialogContent>\r\n        {surveyStandard ? (\r\n          <>\r\n            <SurveyContainer\r\n              request={{\r\n                appId: surveyStandard?.keyId!,\r\n                typApp: surveyStandard?.keyApp!,\r\n                lisQue: surveyStandard?.id!\r\n              }}\r\n            >\r\n              {(response, isStepper) =>\r\n                isStepper ? (\r\n                  <SurveyStepperStandard response={response} />\r\n                ) : (\r\n                  <SurveyStandard response={response} />\r\n                )\r\n              }\r\n            </SurveyContainer>\r\n          </>\r\n        ) : (\r\n          <>\r\n            <IllustrationInfo img={`/static/illustrations/sondages/questionnaire_satisfaction.svg`}>\r\n              {survey && (\r\n                <Box>\r\n                  <Typography variant=\"subtitle2\" paragraph>\r\n                    {survey.label}\r\n                  </Typography>\r\n                  <Typography variant=\"subtitle2\">Dites-nous tout!</Typography>\r\n                  <Typography variant=\"body2\" paragraph>\r\n                    Votre avis nous intéresse. Nous vous remercions de prendre quelques minutes pour\r\n                    répondre à ce questionnaire.\r\n                  </Typography>\r\n                  <Box sx={{ display: 'flex' }}>\r\n                    <Button variant=\"contained\" key={survey.id} onClick={handleSelect}>\r\n                      Commencer\r\n                    </Button>\r\n                  </Box>\r\n                </Box>\r\n              )}\r\n            </IllustrationInfo>\r\n          </>\r\n        )}\r\n      </DialogContent>\r\n    </Dialog>\r\n  );\r\n};\r\nexport default SurveyRelance;\r\n\r\n/**\r\n * <SurveyStepperStandard\r\n            request={{\r\n              appId: surveyStandard?.keyId!,\r\n              typApp: surveyStandard?.keyApp!,\r\n              lisQue: surveyStandard?.id!\r\n            }}\r\n          />\r\n */\r\n","import useAuth from 'hooks/useAuth';\r\nimport { usePostMessage } from 'hooks/usePostMessage';\r\nimport useStudyPlan from 'hooks/useStudyPlan';\r\nimport { useEffect } from 'react';\r\n\r\nconst PostMessageStudyPlan = () => {\r\n  const { context } = useStudyPlan();\r\n\r\n  useEffect(() => {\r\n    if (context) window.parent.postMessage({ code: context.code }, '*');\r\n  }, [context]);\r\n\r\n  return <></>;\r\n};\r\nexport default PostMessageStudyPlan;\r\n","import { ObjectifGeneral, TypePeriodeInscription } from '../@types/examen';\r\nimport { useEffect, useState } from 'react';\r\nimport { useLocation, useNavigate } from 'react-router';\r\nimport { RootState, useSelector } from 'redux/store';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport useAuth from './useAuth';\r\nimport {\r\n  getPeriodesFutures,\r\n  getSessionsFutures,\r\n  getSessionsFuturesDisponibles\r\n} from 'utils/helperExamen';\r\n\r\nexport default function useExamenInscriptionPopup() {\r\n  const { objectifSAY, dateExamenEnvisagee, examens } = useSelector(\r\n    (state: RootState) => state.examen\r\n  );\r\n\r\n  const { getContractCurrent } = useAuth();\r\n  const contract = getContractCurrent();\r\n\r\n  const location = useLocation();\r\n  const navigate = useNavigate();\r\n\r\n  /*\r\n   * States des règles de gestion\r\n   */\r\n  // Si true : inscription à effectuer, mais non obligatoire\r\n  const [saisieNonObligatoire, setSaisieNonObligatoire] = useState(false);\r\n  // Si true : inscription à effectuer obligatoirement\r\n  const [saisieObligatoire, setSaisieObligatoire] = useState(false);\r\n  // Si true : l'objectif est paramétré correctement pour l'inscription anticipée\r\n  const [objectifOK, setObjectifOK] = useState(false);\r\n  // Si true : la date d'examen envisagée n'est pas saisie\r\n  //const [datExaEnvMissing, setDatExaEnvMissing] = useState(false);\r\n  // Si true : l'objectif est défini et pas d'inscription\r\n  const [registrationMissing, setRegistrationMissing] = useState(false);\r\n\r\n  /*\r\n   * States de paramétrage de la popup\r\n   */\r\n  // Si true : affiche la popup\r\n  const [open, setOpen] = useState(false);\r\n  // Si true : l'inscription est obligatoire\r\n  const [mandatory, setMandatory] = useState(false);\r\n\r\n  /*\r\n   * Indique si la popup doit être affichée en fonction des dates du contrat\r\n   */\r\n  const checkDatesContrat = () => {\r\n    if (contract!.registrationDate && contract!.closingDate) {\r\n      const currentTime = new Date().getTime();\r\n      const dateInscription = new Date(contract.registrationDate!).getTime();\r\n      const dateCloture = new Date(contract.closingDate!).getTime();\r\n\r\n      const dateMiFormation = dateInscription + (dateCloture - dateInscription) / 2;\r\n      const miFormationDepassee = currentTime - dateMiFormation > 0;\r\n\r\n      const nbJours = Math.round((currentTime - dateInscription) / (1000 * 3600 * 24));\r\n\r\n      if (miFormationDepassee) {\r\n        setSaisieObligatoire(true);\r\n        setSaisieNonObligatoire(false);\r\n      } else if (nbJours >= 15) {\r\n        setSaisieObligatoire(false);\r\n        setSaisieNonObligatoire(true);\r\n      }\r\n    }\r\n  };\r\n\r\n  /*\r\n   * Indique l'objectif (pour l'inscription anticipée) est utilisable\r\n   */\r\n  const checkObjectif = () => {\r\n    if (!objectifSAY || !objectifSAY.gestionInscriptionInterne) {\r\n      setObjectifOK(false);\r\n    } else {\r\n      const objectif: ObjectifGeneral = {\r\n        ...objectifSAY,\r\n        sessions: getSessionsFuturesDisponibles(objectifSAY?.sessions),\r\n        periodes: getPeriodesFutures(objectifSAY?.periodes)\r\n      };\r\n\r\n      switch (objectif.periodeInscription) {\r\n        case TypePeriodeInscription.Session:\r\n          setObjectifOK(objectif.sessions?.length > 0);\r\n          break;\r\n        case TypePeriodeInscription.Mois:\r\n          setObjectifOK(objectif.periodes?.length > 0);\r\n          break;\r\n        case TypePeriodeInscription.Trimestre:\r\n          setObjectifOK(objectif.periodes?.length > 0);\r\n          break;\r\n        default:\r\n          break;\r\n      }\r\n    }\r\n  };\r\n\r\n  /**\r\n   * Indique si la date de passage envisagée est renseignée\r\n   */\r\n  /*\r\n  const checkDateExamen = () => {\r\n    setDatExaEnvMissing(dateExamenEnvisagee === undefined || dateExamenEnvisagee === null);\r\n  };\r\n  */\r\n\r\n  /**\r\n   * Indique si l'inscription est manquante\r\n   */\r\n  const checkRegistration = () => {\r\n    return setRegistrationMissing(\r\n      objectifOK &&\r\n        examens &&\r\n        !examens.some(\r\n          (e) => e.code === objectifSAY?.code && !['ABA', 'REP'].includes(e.statutInscription?.code)\r\n        )\r\n    );\r\n  };\r\n\r\n  /*\r\n   * Au changement de contrat\r\n   * Vérification des dates\r\n   */\r\n  useEffect(() => {\r\n    checkDatesContrat();\r\n  }, [contract?.id]);\r\n\r\n  /**\r\n   * L'objectif utilisé pour l'inscription anticipée est chargé\r\n   */\r\n  useEffect(() => {\r\n    checkObjectif();\r\n  }, [objectifSAY]);\r\n\r\n  /**\r\n   * Changement de date d'examen envisagée\r\n   */\r\n  /*\r\n  useEffect(() => {\r\n    checkDateExamen();\r\n  }, [dateExamenEnvisagee]);\r\n  */\r\n\r\n  /** Examens */\r\n  useEffect(() => {\r\n    checkRegistration();\r\n  }, [objectifOK, examens]);\r\n\r\n  /**\r\n   * Méthode déclenchée pour vérifier toutes les infos pouvant mener à l'affichage de la popup\r\n   */\r\n  useEffect(() => {\r\n    managePopup();\r\n  }, [\r\n    saisieNonObligatoire,\r\n    saisieObligatoire,\r\n    objectifOK,\r\n    registrationMissing\r\n    /* datExaEnvMissing, */\r\n  ]);\r\n\r\n  /**\r\n   * Quand l'élève navigue sur une vue qui n'est pas la vue d'inscription anticipée\r\n   */\r\n  useEffect(() => {\r\n    if (saisieObligatoire && location.pathname != PATH_DASHBOARD.suivi.examenCreateInterne) {\r\n      managePopup();\r\n    }\r\n  }, [location]);\r\n\r\n  /**\r\n   * Affichage / masquage de la popup\r\n   */\r\n  const managePopup = () => {\r\n    if (\r\n      (saisieNonObligatoire || saisieObligatoire) &&\r\n      objectifOK &&\r\n      registrationMissing\r\n      //datExaEnvMissing\r\n    ) {\r\n      setMandatory(saisieObligatoire);\r\n      setOpen(true);\r\n    } else {\r\n      setMandatory(false);\r\n      setOpen(false);\r\n    }\r\n  };\r\n\r\n  const onClose = () => {\r\n    if (!mandatory) {\r\n      setOpen(false);\r\n    }\r\n  };\r\n\r\n  const onCancel = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  const onRegister = () => {\r\n    setOpen(false);\r\n    navigate(PATH_DASHBOARD.suivi.examenCreateInterne);\r\n  };\r\n\r\n  return {\r\n    getContractCurrent,\r\n    objectifSAY,\r\n    mandatory,\r\n    open,\r\n    onClose,\r\n    onCancel,\r\n    onRegister\r\n  };\r\n}\r\n","import {\r\n  Box,\r\n  Button,\r\n  Dialog,\r\n  DialogActions,\r\n  DialogContent,\r\n  DialogTitle,\r\n  Typography\r\n} from '@mui/material';\r\nimport useAuth from 'hooks/useAuth';\r\nimport useExamenInscriptionPopup from 'hooks/useExamenInscriptionPopup';\r\nimport { getLabelCategoryObjectif } from 'utils/helperExamen';\r\n\r\ntype ExamenInscriptionPopupProps = {};\r\n\r\n/**\r\n * Affichage du message d'attente de traitement de l'école\r\n * Visible seulement dans le cas de statut interne à ATT\r\n * @param param0\r\n * @returns\r\n */\r\nexport default function ExamenInscriptionPopup({}: ExamenInscriptionPopupProps) {\r\n  const { objectifSAY, open, mandatory, onClose, onCancel, onRegister } =\r\n    useExamenInscriptionPopup();\r\n  const { getGenreMasculin } = useAuth();\r\n\r\n  if (!objectifSAY) return <></>;\r\n\r\n  const examenLabel = `${getLabelCategoryObjectif(objectifSAY.categorie)?.accord} ${\r\n    objectifSAY.designation\r\n  }`;\r\n\r\n  return (\r\n    <Dialog maxWidth=\"md\" open={open} onClose={onClose}>\r\n      <DialogTitle sx={{ pb: 2 }}>Inscriptions {examenLabel}</DialogTitle>\r\n      <DialogContent sx={{ p: 3, pb: 0 }}>\r\n        <Typography variant=\"caption\">\r\n          {mandatory && <p>Vous êtes à la moitié de votre formation. Dernière ligne droite !</p>}\r\n          Prenez un instant pour estimer votre passage prévisionnel l'examen. Nous allons ensuite\r\n          générer un planning permettant de fixer votre objectif. Cela vous permettra de définir un\r\n          rythme de travail à suivre pour être prêt{getGenreMasculin() ? '' : 'e'}. Une fois les\r\n          conditions d'éligibilité aux épreuves réunies, nous vous invitons à revenir vers l'école\r\n          afin de connaître votre date d'examen. A défaut, vous serez invité\r\n          {getGenreMasculin() ? '' : 'e'} à sélectionner une autre période.\r\n        </Typography>\r\n        <Box\r\n          component=\"img\"\r\n          src={\r\n            mandatory\r\n              ? '/static/illustrations/examens/inscription_popup_obligatoire.svg'\r\n              : '/static/illustrations/examens/inscription_popup.svg'\r\n          }\r\n          sx={{ maxHeight: 320, width: '100%' }}\r\n        />\r\n      </DialogContent>\r\n\r\n      <DialogActions sx={{ justifyContent: 'center' }}>\r\n        {!mandatory && (\r\n          <>\r\n            <Button onClick={onCancel} variant=\"text\">\r\n              Plus tard\r\n            </Button>\r\n            <Box />\r\n          </>\r\n        )}\r\n        <Button onClick={onRegister} variant=\"contained\">\r\n          S'inscrire\r\n        </Button>\r\n      </DialogActions>\r\n    </Dialog>\r\n  );\r\n}\r\n","import { StudyPlanItemType } from '../../../../@types/pedagogy';\r\nimport { useEffect } from 'react';\r\nimport useTrackerGoogle from 'hooks/useTrackerGoogle';\r\nimport useStudyPlanChapterItem from 'hooks/useStudyPlanChapterItem';\r\n\r\nconst StudyPlanDetailsTrackerGoogle = () => {\r\n  const managerChapterItem = useStudyPlanChapterItem();\r\n  const { pageview } = useTrackerGoogle();\r\n\r\n  useEffect(() => {\r\n    if (!managerChapterItem.selected?.item) return;\r\n    pageview({\r\n      chapter: managerChapterItem.selected?.chapter?.label,\r\n      page_level_1: 'Formation',\r\n      page_level_2: 'formation-details',\r\n      sub_chapter: managerChapterItem.selected?.subChapter?.label,\r\n      material_name: managerChapterItem.selected?.item?.label,\r\n      material_type: StudyPlanItemType[managerChapterItem.selected?.item?.type].toString()\r\n    });\r\n  }, [managerChapterItem.selected?.item?.id]);\r\n\r\n  return <></>;\r\n};\r\n\r\nexport default StudyPlanDetailsTrackerGoogle;\r\n","import { useEffect } from 'react';\r\nimport useTrackerGoogle from 'hooks/useTrackerGoogle';\r\n\r\nimport { useSelector } from 'react-redux';\r\nimport { RootState } from 'redux/store';\r\n\r\nexport default function VirtualClassTrackerGoogle() {\r\n  const { virtualClass } = useSelector((state: RootState) => state.virtualClass);\r\n  const { pageview } = useTrackerGoogle();\r\n\r\n  useEffect(() => {\r\n    if (!virtualClass?.id) return;\r\n\r\n    pageview({\r\n      page_path: `virtualclass/${virtualClass.id}`,\r\n      page_level_1: 'Classe virtuelle',\r\n      page_level_2: virtualClass.title\r\n    });\r\n  }, [virtualClass?.id]);\r\n\r\n  return <></>;\r\n}\r\n","import { useEffect } from 'react';\r\nimport useTrackerGoogle from 'hooks/useTrackerGoogle';\r\n\r\nimport { useSelector } from 'react-redux';\r\nimport { RootState } from 'redux/store';\r\n\r\nexport default function WorkshopTrackerGoogle() {\r\n  const { workshop } = useSelector((state: RootState) => state.workshop);\r\n  const { pageview } = useTrackerGoogle();\r\n\r\n  useEffect(() => {\r\n    if (!workshop?.id) return;\r\n\r\n    pageview({\r\n      page_path: `atelier/${workshop.id}`,\r\n      page_level_1: 'Ateliers',\r\n      page_level_2: workshop.title\r\n    });\r\n  }, [workshop?.id]);\r\n\r\n  return <></>;\r\n}\r\n","import { useTranslation } from 'react-i18next';\r\n// material\r\nimport { enUS, deDE, frFR } from '@mui/material/locale';\r\nimport fr from 'date-fns/locale/fr';\r\n// ----------------------------------------------------------------------\r\n\r\nconst LANGS = [\r\n  {\r\n    label: 'English',\r\n    value: 'en',\r\n    systemValue: enUS,\r\n    icon: '/static/icons/ic_flag_en.svg'\r\n  },\r\n  {\r\n    label: 'German',\r\n    value: 'de',\r\n    systemValue: deDE,\r\n\r\n    icon: '/static/icons/ic_flag_de.svg'\r\n  },\r\n  {\r\n    label: 'French',\r\n    value: 'fr',\r\n    systemValue: frFR,\r\n    icon: '/static/icons/ic_flag_fr.svg'\r\n  }\r\n];\r\n\r\nexport default function useLocales() {\r\n  const { i18n, t: translate } = useTranslation();\r\n  const langStorage = localStorage.getItem('i18nextLng');\r\n  const currentLang = LANGS.find((_lang) => _lang.value === langStorage) || LANGS[1];\r\n\r\n  const handleChangeLanguage = (newlang: string) => {\r\n    i18n.changeLanguage(newlang);\r\n  };\r\n\r\n  return {\r\n    onChangeLang: handleChangeLanguage,\r\n    translate,\r\n    currentLang,\r\n    allLang: LANGS,\r\n    language: fr\r\n  };\r\n}\r\n","import { useEffect } from 'react';\r\nimport useTrackerGoogle from 'hooks/useTrackerGoogle';\r\n\r\nimport { useSelector } from 'react-redux';\r\nimport { RootState } from 'redux/store';\r\nimport { AgendaEventType } from '../../../@types/agenda';\r\nimport useLocales from 'hooks/useLocales';\r\n\r\nexport default function AgendaTrackerGoogle() {\r\n  const { selectedEvent } = useSelector((state: RootState) => state.agenda);\r\n  const { pageview } = useTrackerGoogle();\r\n  const { currentLang, translate, onChangeLang } = useLocales();\r\n\r\n  useEffect(() => {\r\n    if (!selectedEvent?.id) return;\r\n\r\n    pageview({\r\n      page_path: `agenda/${selectedEvent.id}`,\r\n      page_level_1: 'Agenda',\r\n      page_level_2: translate(\r\n        `agenda.type.${AgendaEventType[selectedEvent?.eventType].toString()}`\r\n      ),\r\n      page_level_3: selectedEvent.title\r\n    });\r\n  }, [selectedEvent?.id]);\r\n\r\n  return <></>;\r\n}\r\n","import { useEffect } from 'react';\r\nimport useTrackerGoogle from 'hooks/useTrackerGoogle';\r\n\r\nimport { useSelector } from 'react-redux';\r\nimport { RootState } from 'redux/store';\r\n\r\nexport default function MeetingTrackerGoogle() {\r\n  const { meeting } = useSelector((state: RootState) => state.meeting);\r\n  const { pageview } = useTrackerGoogle();\r\n\r\n  useEffect(() => {\r\n    if (!meeting?.id) return;\r\n\r\n    pageview({\r\n      page_path: `rendez-vous/${meeting.material.label}/${meeting.teacher.account}`,\r\n      page_level_1: 'Rendez-vous'\r\n    });\r\n  }, [meeting?.id]);\r\n\r\n  return <></>;\r\n}\r\n","import { useEffect, useState } from 'react';\r\nimport useLocalStorage from './useLocalStorage';\r\nimport { add, differenceInDays } from 'date-fns';\r\nimport { addDayss } from 'utils/formatTime';\r\nimport { RootState, useSelector } from 'redux/store';\r\n\r\nconst useExamenRecupResultat = () => {\r\n  const [open, setOpen] = useState(false);\r\n  const [dateLastView, setDateLastView] = useLocalStorage<Date>(\r\n    'ExamenRecupResultPopup',\r\n    addDayss(new Date(), -1)\r\n  );\r\n\r\n  const { examens } = useSelector((state: RootState) => state.examen);\r\n\r\n  useEffect(() => {\r\n    const today = new Date();\r\n\r\n    //limité au 31 septembre\r\n    if (today > new Date(2024, 9, 31)) return;\r\n\r\n    // si il ya des examens\r\n    if (examens?.length === 0) return;\r\n\r\n    // prendre seulement les examens inscrits et non remplis et si la date d'epreuve est passée mais inférieure à 6mois\r\n    const isToFill = examens.some(\r\n      (ex) =>\r\n        ex.categorie === 'EXA' &&\r\n        ['INS', 'PRE'].includes(ex.statutInscription.code) &&\r\n        ex.statutResultat.code === 'INC' &&\r\n        ex.etatInscription === 'VAL' &&\r\n        ex.session.dateEpreuvesAdmissibilite &&\r\n        differenceInDays(today, new Date(ex.session.dateEpreuvesAdmissibilite)) < 150\r\n    );\r\n\r\n    if (isToFill && differenceInDays(today, new Date(dateLastView)) > 0) {\r\n      setOpen(true);\r\n      setDateLastView(today);\r\n    }\r\n  }, [examens]);\r\n\r\n  return {\r\n    open,\r\n    setOpen\r\n  };\r\n};\r\n\r\nexport default useExamenRecupResultat;\r\n","import {\r\n  Box,\r\n  Button,\r\n  Dialog,\r\n  DialogActions,\r\n  DialogContent,\r\n  DialogTitle,\r\n  Typography\r\n} from '@mui/material';\r\nimport useExamenRecupResultat from 'hooks/useExamenRecupResultat';\r\nimport { useState } from 'react';\r\nimport { useNavigate } from 'react-router';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\n\r\ntype ExamenRecupResultatPopupProps = {};\r\n\r\n/**\r\n * Popup de rappel de saisie des résultats des examens\r\n * @returns\r\n */\r\nexport default function ExamenRecupResultatPopup({}: ExamenRecupResultatPopupProps) {\r\n  const { open, setOpen } = useExamenRecupResultat();\r\n  const navigate = useNavigate();\r\n\r\n  function handleClick() {\r\n    navigate(PATH_DASHBOARD.suivi.examens);\r\n    setOpen(false);\r\n  }\r\n\r\n  return (\r\n    <Dialog maxWidth=\"md\" open={open} onClose={() => {}}>\r\n      <DialogTitle sx={{ pb: 2 }}>Vos résultats</DialogTitle>\r\n      <DialogContent sx={{ p: 3, pb: 0 }}>\r\n        <Typography variant=\"caption\">\r\n          Vous avez passé votre examen, n'oubliez pas de nous communiquer les résultats !\r\n        </Typography>\r\n        <Box\r\n          component=\"img\"\r\n          src=\"/static/illustrations/examens/examens_concours.svg\"\r\n          sx={{ maxHeight: 320, width: '100%' }}\r\n        />\r\n      </DialogContent>\r\n\r\n      <DialogActions sx={{ justifyContent: 'center' }}>\r\n        <Button\r\n          onClick={() => {\r\n            setOpen(false);\r\n          }}\r\n          variant=\"text\"\r\n        >\r\n          Plus tard\r\n        </Button>\r\n        <Button onClick={handleClick} variant=\"contained\">\r\n          Saisir\r\n        </Button>\r\n      </DialogActions>\r\n    </Dialog>\r\n  );\r\n}\r\n","import { useEffect, useRef, useState } from 'react';\r\nimport { Outlet, useNavigate, useLocation } from 'react-router-dom';\r\n// material\r\nimport { styled, useTheme } from '@mui/material/styles';\r\n// hooks\r\nimport useCollapseDrawer from 'hooks/useCollapseDrawer';\r\n\r\nimport { ModeAccess } from '../../@types/account';\r\n\r\n//\r\nimport DashboardNavbar from './DashboardNavbar';\r\nimport DashboardSidebar from './DashboardSidebar';\r\nimport { PageSettingsProvider } from 'contexts/PageSettingsContext';\r\nimport VirtualClassDetails from 'components/_dashboard/virtualClass/VirtualClassDetails';\r\nimport WorkshopDetails from 'components/_dashboard/workshop/WorkshopDetails';\r\nimport useTrackerActivity, { LogActivity } from 'hooks/useTrackerActivity';\r\n\r\nimport { useSnackbar } from 'notistack';\r\nimport useAuth from 'hooks/useAuth';\r\nimport { Box } from '@mui/system';\r\nimport { Button, Stack } from '@mui/material';\r\nimport ChatBot from 'components/_dashboard/chatbot/ChatBot';\r\nimport { useAxiosControl } from 'utils/axios';\r\nimport WorkflowReconnecting from 'components/_dashboard/workflow/WorkflowReconnecting';\r\nimport WorkflowSurvey from 'components/_dashboard/workflow/WorkflowSurvey';\r\nimport WelcomeCallPopup from './WelcomeCallPopup';\r\nimport AttendanceTrackingPopup from 'components/_dashboard/tracking/attendance/AttendanceTracking';\r\nimport TrackerPage from 'components/_dashboard/tracking/TrackerPage';\r\nimport { HubMessageState } from 'components/_dashboard/hub/HubMessageState';\r\nimport WorkflowVersion from 'components/_dashboard/workflow/WorkflowVersion';\r\nimport VirtualClassSurveyAfterLive from 'components/_dashboard/virtualClass/VirtualClassSurveyAfterLive';\r\nimport VirtualClassSurveyAfterReplay from 'components/_dashboard/virtualClass/VirtualClassSurveyAfterReplay';\r\nimport SurveyRelance from 'components/_dashboard/survey/SurveyRelance';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport PostMessageStudyPlan from 'components/_dashboard/studyPlan/PostMessageStudyPlan';\r\nimport ExamenInscriptionPopup from 'components/_dashboard/examen/ExamenInscriptionPopup';\r\n\r\nimport StudyPlanDetailsTrackerGoogle from 'components/_dashboard/studyPlan/details/StudyPlanDetailsTrackerGoogle';\r\nimport VirtualClassTrackerGoogle from 'components/_dashboard/virtualClass/VirtualClassTrackerGoogle';\r\nimport WorkshopTrackerGoogle from 'components/_dashboard/workshop/WorkshopTrackerGoogle';\r\nimport ScheduleTeacherTrackerGoogle from 'components/_dashboard/agenda/AgendaTrackerGoogle';\r\nimport MeetingTrackerGoogle from 'components/_dashboard/meeting/MeetingTrackerGoogle';\r\nimport ExamenRecupResultatPopup from 'components/_dashboard/examen/ExamenRecupResultatPopup';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst APP_BAR_MOBILE = 64;\r\nconst APP_BAR_DESKTOP = 92;\r\n\r\nconst RootStyle = styled('div')({\r\n  display: 'flex',\r\n  //  minHeight: '100%',\r\n  overflow: 'hidden'\r\n});\r\n\r\nconst MainStyle = styled('div')(({ theme }) => ({\r\n  flexGrow: 1,\r\n  overflow: 'auto',\r\n\r\n  height: '100vh',\r\n  backgroundColor: '#F9FAFB',\r\n  paddingTop: APP_BAR_MOBILE + 4,\r\n  // paddingBottom: theme.spacing(10),\r\n  [theme.breakpoints.up('lg')]: {\r\n    paddingTop: APP_BAR_DESKTOP + 4,\r\n    paddingLeft: theme.spacing(2),\r\n    paddingRight: theme.spacing(2)\r\n  }\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function DashboardLayout() {\r\n  const theme = useTheme();\r\n  const navigate = useNavigate();\r\n  const { pathname } = useLocation();\r\n  const { collapseClick } = useCollapseDrawer();\r\n  const [open, setOpen] = useState(false);\r\n  const tracker = useTrackerActivity({ parent: window });\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const { student, isReadOnly } = useAuth();\r\n  const controlAccess = useAxiosControl();\r\n\r\n  //Pas de navbar\r\n  const isControlOnly = [ModeAccess.Control].includes(student?.modeAccess);\r\n\r\n  useEffect(() => {\r\n    let elt = document.getElementById('wrapperEEContent');\r\n    if (elt) {\r\n      elt.style.display = 'none';\r\n    }\r\n    if (isControlOnly) navigate(PATH_DASHBOARD.studyPlan.root);\r\n  }, []);\r\n\r\n  return (\r\n    <RootStyle id=\"ent-layout\">\r\n      {isControlOnly && <PostMessageStudyPlan />}\r\n      {!isControlOnly && (\r\n        <>\r\n          <ChatBot />\r\n          <WorkflowReconnecting />\r\n          <StudyPlanDetailsTrackerGoogle />\r\n          <WorkshopTrackerGoogle />\r\n          <VirtualClassTrackerGoogle />\r\n          <WelcomeCallPopup />\r\n          <AttendanceTrackingPopup />\r\n          <ScheduleTeacherTrackerGoogle />\r\n          <MeetingTrackerGoogle />\r\n        </>\r\n      )}\r\n      <PageSettingsProvider>\r\n        {!isControlOnly && <LogActivity consoles={(value: string) => enqueueSnackbar(value)} />}\r\n\r\n        <DashboardNavbar onOpenSidebar={() => setOpen(true)} />\r\n        {!isControlOnly && (\r\n          <DashboardSidebar isOpenSidebar={open} onCloseSidebar={() => setOpen(false)} />\r\n        )}\r\n        <MainStyle\r\n          sx={{\r\n            transition: theme.transitions.create('margin', {\r\n              duration: theme.transitions.duration.complex\r\n            }),\r\n            ...(collapseClick && {\r\n              ml: '102px'\r\n            })\r\n          }}\r\n        >\r\n          <Stack direction=\"row\" gap=\"5px\">\r\n            <WorkflowVersion />\r\n            <HubMessageState />\r\n          </Stack>\r\n\r\n          {!isControlOnly && (\r\n            <>\r\n              <VirtualClassDetails />\r\n\r\n              <WorkshopDetails />\r\n            </>\r\n          )}\r\n          {!isReadOnly && (\r\n            <>\r\n              <VirtualClassSurveyAfterLive />\r\n              <VirtualClassSurveyAfterReplay />\r\n              <SurveyRelance />\r\n              <ExamenInscriptionPopup />\r\n            </>\r\n          )}\r\n          <ExamenRecupResultatPopup />\r\n          <Outlet />\r\n        </MainStyle>\r\n      </PageSettingsProvider>\r\n    </RootStyle>\r\n  );\r\n}\r\n","import { ReactNode } from 'react';\r\nimport { Navigate, useLocation } from 'react-router-dom';\r\n// hooks\r\nimport useAuth from '../hooks/useAuth';\r\n// routes\r\nimport { PATH_DASHBOARD } from '../routes/paths';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ntype GuestGuardProps = {\r\n  children: ReactNode;\r\n};\r\n\r\n/**\r\n * Controler si l'élève est connecté\r\n * Sinon on affiche la page demandée\r\n * ATTENTION :  Si un token est présent, c'est que l'on demande à changer d'espace élèves. Donc on doit impérativement passer par la page de login\r\n * @param param0\r\n * @returns\r\n */\r\nexport default function GuestGuard({ children }: GuestGuardProps) {\r\n  const { isAuthenticated } = useAuth();\r\n  const { search } = useLocation();\r\n  const params = new URLSearchParams(search);\r\n  const accessToken = params.get('access_token');\r\n\r\n  // check connecté et pas de demande de conection à un autre espace élève\r\n  if (isAuthenticated && !accessToken) {\r\n    return <Navigate to={PATH_DASHBOARD.root} />;\r\n  }\r\n\r\n  return <>{children}</>;\r\n}\r\n","import { useState, ReactNode } from 'react';\r\nimport { Navigate, useLocation } from 'react-router-dom';\r\nimport { PATH_PAGE } from 'routes/paths';\r\n\r\n// hooks\r\nimport useAuth from '../hooks/useAuth';\r\n// pages\r\nimport Login from '../pages/authentication/Login';\r\n\r\n// ----------------------------------------------------------------------\r\ntype AuthGuardProps = {\r\n  children: ReactNode;\r\n};\r\n\r\n/**\r\n * Controler les droits et la page de maintenance\r\n * @param param0\r\n * @returns\r\n */\r\nexport default function AuthGuard({ children }: AuthGuardProps) {\r\n  const { isAuthenticated } = useAuth();\r\n  const { pathname } = useLocation();\r\n  const [requestedLocation, setRequestedLocation] = useState<string | null>(null);\r\n  //détection maintenance\r\n  const isMaintenance = document.getElementById('isMaintenance');\r\n  if (isMaintenance) return <Navigate to={PATH_PAGE.maintenance} />;\r\n\r\n  if (!isAuthenticated) {\r\n    if (pathname !== requestedLocation) {\r\n      setRequestedLocation(pathname);\r\n    }\r\n    return <Login />;\r\n  }\r\n\r\n  if (requestedLocation && pathname !== requestedLocation) {\r\n    setRequestedLocation(null);\r\n    return <Navigate to={requestedLocation} />;\r\n  }\r\n\r\n  return <>{children}</>;\r\n}\r\n","import { Button, Stack } from '@mui/material';\r\nimport useAuth from 'hooks/useAuth';\r\nimport { Overtime } from '../../../@types/contract';\r\n\r\nexport type OvertimeFormProps = {\r\n  choices: Array<Overtime>;\r\n  onSelect: (value: Overtime) => void;\r\n};\r\n\r\n/**\r\n * Choix de la prolongation.\r\n * On envoi au server le choix, il nous retourne le paiement\r\n * Le paiement effectué, on ferme la popup\r\n */\r\nexport function OvertimeForm({ choices, onSelect }: OvertimeFormProps) {\r\n  const { getFormatCurrency } = useAuth();\r\n  return (\r\n    <Stack\r\n      direction={'row'}\r\n      alignItems=\"center\"\r\n      justifyContent={'space-evenly'}\r\n      flexWrap=\"wrap\"\r\n      gap={'10px'}\r\n    >\r\n      {choices.map((o) => {\r\n        const label = `${o.numberOfMonths} mois : ${getFormatCurrency(o.amount)} `;\r\n        return (\r\n          <Button\r\n            onClick={() => onSelect(o)}\r\n            color=\"primary\"\r\n            key={o.numberOfMonths}\r\n            variant=\"contained\"\r\n          >\r\n            {label}\r\n          </Button>\r\n        );\r\n      })}\r\n    </Stack>\r\n  );\r\n}\r\n","// material\r\nimport { Typography } from '@mui/material';\r\nimport { ReactNode, useState } from 'react';\r\nimport { Box } from '@mui/system';\r\n// type\r\nimport { Contract, OvertimeStatus, Overtime } from '../../../@types/contract';\r\nimport PaymentForm, { PaymentFormType } from '../payment/PaymentForm';\r\n// components\r\n\r\nimport { fDate } from 'utils/formatTime';\r\n\r\nimport { OvertimeForm } from './OvertimeForm';\r\nimport DialogConfirm from 'components/DialogConfirm';\r\nimport useAuth from 'hooks/useAuth';\r\nimport useBrand from 'hooks/useBrand';\r\n\r\n// ----------------------------------------------------------------------\r\nexport type OvertimeProposedProps = {\r\n  contract: Contract;\r\n};\r\n\r\nexport default function OvertimeProposed({ contract }: OvertimeProposedProps) {\r\n  const [selected, setSelected] = useState<Overtime | null>(null);\r\n  const { brand } = useBrand();\r\n  const handleChoice = (value: Overtime) => {\r\n    setSelected(value);\r\n  };\r\n\r\n  return (\r\n    <Box>\r\n      {contract.closingDate && (\r\n        <Typography variant=\"subtitle1\" gutterBottom>\r\n          Votre formation expire le {fDate(contract.closingDate)}\r\n        </Typography>\r\n      )}\r\n\r\n      <Typography variant=\"body2\" paragraph>\r\n        Pour vous permettre de valider votre formation dans les meilleures conditions, nous vous\r\n        offrons la possibilité de prolonger votre contrat. Vous pourrez ainsi continuer à bénéficier\r\n        de tous les outils de formation (espace numérique de travail, cours, évaluations corrigées,\r\n        activités complémentaires…), ainsi que de l'accompagnement personnalisé des formateurs et\r\n        formatrices de l'école.\r\n      </Typography>\r\n\r\n      <Typography variant=\"subtitle1\" gutterBottom>\r\n        Comment prolonger ma formation ?\r\n      </Typography>\r\n\r\n      <Typography variant=\"body2\" paragraph>\r\n        Comment prolonger ma formation ? Prolonger votre formation, c'est simple et rapide. En\r\n        cliquant sur la durée de votre choix, vous serez redirigé(e) vers une page de paiement\r\n        sécurisé. La prolongation sera validée par votre école, 24h après avoir reçu le paiement.\r\n        Votre formation sera alors automatiquement prolongée pour la durée choisie. Pour toute\r\n        question, vous pouvez nous joindre au {contract.brand.phone} en tapant 2.\r\n      </Typography>\r\n      {brand !== 'CH' && (\r\n        <>\r\n          <Typography variant=\"subtitle1\" gutterBottom>\r\n            Comment rompre ma prolongation ?\r\n          </Typography>\r\n\r\n          <Typography variant=\"body2\" paragraph>\r\n            Vous disposez d'un droit de rétractation de 14 jours à compter de la date de votre\r\n            souscription à la prolongation. Ce délai vous permet d'interrompre votre prolongation et\r\n            d'obtenir le remboursement des sommes versées. Pour l'exercer, nous vous invitons à nous\r\n            retourner le formulaire de rétractation disponible sur votre ENT, rubrique \"documents\r\n            importants\". Vous disposez du droit de résilier votre prolongation de formation dans les\r\n            mêmes délais et sous le même formalisme que votre contrat initial, délai qui débute à\r\n            compter de la date de souscription de la prolongation. Cette résiliation entraîne le\r\n            paiement au prorata temporis de la durée de prolongation effectivement réalisée (chaque\r\n            mois de prolongation entamé est dû). Au-delà de ce délai, vous ne pourrez obtenir la\r\n            résiliation de votre prolongation que si vous justifiez de la survenance soit d’un cas\r\n            de force majeure, soit d’un cas fortuit, vous empêchant de poursuivre la formation,\r\n            auquel cas seule la durée de prolongation réalisée sera due au prorata temporis. A\r\n            défaut, vous resterez redevable de l’intégralité du montant de la prolongation.\r\n          </Typography>\r\n        </>\r\n      )}\r\n      <OvertimeForm\r\n        choices={contract.overtimes.filter((o) => o.status === OvertimeStatus.None)}\r\n        onSelect={handleChoice}\r\n      />\r\n\r\n      {selected && (\r\n        <DialogConfirm\r\n          onCancel={() => setSelected(null)}\r\n          open={selected.amount > 0}\r\n          isLoading={false}\r\n          withoutImage={true}\r\n        >\r\n          <PaymentForm\r\n            amount={selected.amount}\r\n            type={PaymentFormType.overtime}\r\n            params={selected.code}\r\n          />\r\n        </DialogConfirm>\r\n      )}\r\n    </Box>\r\n  );\r\n}\r\n","import { Box, Card, CardActionArea, CardHeader, styled, Typography } from '@mui/material';\r\nimport CardContainer from 'components/CardContainer';\r\nimport { Overtime, OvertimeStatus } from '../../../@types/contract';\r\n\r\n//------------------------------------------\r\n\r\n//---------------------------------------------------------------------\r\n\r\nexport type OvertimeCurrentProps = {\r\n  current: Overtime;\r\n};\r\n\r\nconst RootStyle = styled(CardHeader)(({ theme }) => ({\r\n  padding: 20\r\n}));\r\n\r\n/**\r\n * Prolongation en cours de traitement par le service.\r\n */\r\nexport default function OvertimeCurrent({ current }: OvertimeCurrentProps) {\r\n  //const message // getOvertimeMessage(current);\r\n  return <></>;\r\n}\r\n\r\n/**\r\n * <CardContainer>\r\n      <Card sx={{ marginBottom: '10px', boxShadow: 'none' }}>\r\n        <RootStyle\r\n          title={<Typography variant=\"subtitle2\">{message.title}</Typography>}\r\n          subheader={message.description}\r\n          avatar={message.img && <Box component=\"img\" alt=\"message\" src={message.img} />}\r\n        />\r\n      </Card>\r\n    </CardContainer>\r\n */\r\n","import { useEffect, useState } from 'react';\r\n// material\r\nimport { Card, Container } from '@mui/material';\r\n\r\n// type\r\nimport { Overtime, OvertimeStatus } from '../../@types/contract';\r\n\r\n// hooks\r\nimport useAuth from 'hooks/useAuth';\r\n\r\n// components\r\nimport Page from 'components/Page';\r\nimport CardContainer from 'components/CardContainer';\r\nimport HeaderBreadcrumbs from 'components/HeaderBreadcrumbs';\r\nimport OvertimeProposed from 'components/_dashboard/overtime/OvertimeProposed';\r\nimport { IllustrationInfo } from 'components/IllustrationMessage';\r\nimport OvertimeCurrent from 'components/_dashboard/overtime/OvertimeCurrent';\r\n// ----------------------------------------------------------------------\r\n/**\r\n * Affichage de la prolongation\r\n * Saisi du nombre de mois puis payement\r\n * @returns\r\n */\r\nexport default function Overtimes() {\r\n  const { getContractCurrent } = useAuth();\r\n  const contract = getContractCurrent();\r\n\r\n  // en cours de traitement par les services de l'école\r\n  const current = contract.overtimes.filter((w) => w.status === OvertimeStatus.Current)[0];\r\n\r\n  return (\r\n    <Page title=\"Prolongation de mon contrat | SkillAndYou\">\r\n      <Container maxWidth={'lg'}>\r\n        <HeaderBreadcrumbs heading={'Prolongation de mon contrat'} links={[]} />\r\n\r\n        <CardContainer>\r\n          <Card>\r\n            <IllustrationInfo\r\n              img=\"/static/illustrations/tableauBord/prolongation.svg\"\r\n              maxHeightImg={330}\r\n            >\r\n              {current ? (\r\n                <OvertimeCurrent current={current} />\r\n              ) : (\r\n                <OvertimeProposed contract={contract} />\r\n              )}\r\n            </IllustrationInfo>\r\n          </Card>\r\n        </CardContainer>\r\n      </Container>\r\n    </Page>\r\n  );\r\n}\r\n","// material\r\nimport { Container } from '@mui/material';\r\nimport { Home, ArrowBackIos, Verified } from '@mui/icons-material';\r\n\r\n// hooks\r\nimport useStudyPlan from 'hooks/useStudyPlan';\r\n\r\n// routes\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\n// @types\r\nimport { StudyPlanItemType } from '../../@types/pedagogy';\r\n\r\n// components\r\nimport Page from 'components/Page';\r\n\r\nimport HeaderBreadcrumbs from 'components/HeaderBreadcrumbs';\r\n\r\nimport { StudyPlanActions } from 'components/_dashboard/studyPlan/toolbar/StudyPlanActionsPopover';\r\n\r\nimport { StudyPlanDetailsContent } from 'components/_dashboard/studyPlan/details/StudyPlanDetailsContent';\r\nimport { useEffect } from 'react';\r\nimport { useNavigate } from 'react-router';\r\nimport useStudyPlanChapterItem from 'hooks/useStudyPlanChapterItem';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\n/**\r\n * Affichage du détails de la liste de révisions filtrées :  supports et médias, devoir, learning\r\n *\r\n * @returns\r\n */\r\nexport default function StudyPlanSearchDetails() {\r\n  const { updated, chapterItemUpdatedList } = useStudyPlan();\r\n  const managerChapterItem = useStudyPlanChapterItem();\r\n  const navigate = useNavigate();\r\n\r\n  useEffect(() => {\r\n    //Pas de phase on retourne à la liste\r\n    if (!managerChapterItem.selected?.item) {\r\n      navigate(PATH_DASHBOARD.studyPlan.StudyPlanSearch);\r\n      return;\r\n    }\r\n  }, []);\r\n\r\n  return (\r\n    <Page\r\n      title=\"Révisions des supports pédagogiques | SkillAndYou\"\r\n      helpCategoryId={\r\n        managerChapterItem.selected?.item?.type === StudyPlanItemType.Homework\r\n          ? 'Évaluation'\r\n          : 'SupportsPedagogiques'\r\n      }\r\n    >\r\n      <Container maxWidth=\"xl\">\r\n        <HeaderBreadcrumbs\r\n          heading={'Révisions des supports pédagogiques'}\r\n          links={[\r\n            {\r\n              icon: <ArrowBackIos />,\r\n              name: 'Révisions filtrées',\r\n              href: PATH_DASHBOARD.studyPlan.StudyPlanSearch\r\n            },\r\n            {\r\n              icon: <ArrowBackIos />,\r\n              name: managerChapterItem.selected?.chapter?.label,\r\n              href: PATH_DASHBOARD.studyPlan.details\r\n            }\r\n          ]}\r\n          action={<StudyPlanActions chapterItemUpdatedList={chapterItemUpdatedList} />}\r\n        />\r\n        {managerChapterItem.selected?.item && (\r\n          <StudyPlanDetailsContent\r\n            selected={managerChapterItem.selected}\r\n            onAssimilate={managerChapterItem.onAssimilate}\r\n            onChange={managerChapterItem.onChange}\r\n            updated={updated || false}\r\n          />\r\n        )}\r\n      </Container>\r\n    </Page>\r\n  );\r\n}\r\n","import { useEffect, useCallback, useState } from 'react';\r\n\r\nimport { Box } from '@mui/system';\r\n\r\n// material\r\nimport { Grid, Container, Stack, Typography, Button, Card } from '@mui/material';\r\n// redux\r\nimport { RootState, useDispatch, useSelector } from '../../redux/store';\r\n\r\n// @types\r\n\r\n// components\r\nimport Page from '../../components/Page';\r\nimport HeaderBreadcrumbs from '../../components/HeaderBreadcrumbs';\r\nimport ExamenForm from 'components/_dashboard/examen/ExamenForm';\r\nimport CardContainer from 'components/CardContainer';\r\nimport PhoneInfo from 'components/PhoneInfo';\r\nimport useExamen from 'hooks/useExamen';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport { useNavigate } from 'react-router';\r\n\r\n/**\r\n * Liste des examens\r\n * @returns\r\n */\r\nexport default function ExamenCreate() {\r\n  const { getLabel, getContractCurrent, getGenreMasculin } = useExamen();\r\n  const contract = getContractCurrent();\r\n  const navigate = useNavigate();\r\n  const labels = getLabel();\r\n\r\n  const handleCancel = () => {\r\n    navigate(PATH_DASHBOARD.suivi.examens);\r\n  };\r\n\r\n  return (\r\n    <Page title={`${labels.debuteMajusculePluriel} | SkillAndYou`} helpCategoryId=\"Examen\">\r\n      <Container maxWidth={'md'}>\r\n        <HeaderBreadcrumbs\r\n          heading={`Mes ${labels.minusculePluriel}`}\r\n          links={[]}\r\n          subHeader={\r\n            <Typography variant=\"body2\">\r\n              Renseignez dans cette rubrique les {labels.minusculePluriel} auxquels vous êtes\r\n              inscrit{getGenreMasculin() ? '' : 'e'} et transmettez-nous les résultats obtenus !\r\n            </Typography>\r\n          }\r\n          action={\r\n            <Box>\r\n              <PhoneInfo value={contract.brand.phone} />\r\n            </Box>\r\n          }\r\n        />\r\n        <CardContainer title={`Ajouter un ${getLabel().minuscule}`}>\r\n          <ExamenForm id=\"\" sessionId=\"\" onCancel={handleCancel} />\r\n        </CardContainer>\r\n      </Container>\r\n    </Page>\r\n  );\r\n}\r\n","import { StyleSheet } from '@react-pdf/renderer';\r\n\r\nexport const communStyles = StyleSheet.create({\r\n  title: { fontSize: 14, fontWeight: 400 },\r\n  subtitle1: { fontSize: 12, fontWeight: 600 },\r\n  subtitle2: { fontSize: 12, fontWeight: 400 },\r\n  body1: { fontSize: 10, fontWeight: 600 },\r\n  body2: { fontSize: 10, fontWeight: 400 },\r\n  colorGray: { color: '#637381' },\r\n  alignCenter: { textAlign: 'center' },\r\n  noBorder: { paddingTop: 8, paddingBottom: 0, borderBottomWidth: 0 },\r\n  table: { display: 'flex', width: 'auto' },\r\n  tableHeader: { backgroundColor: '#F9FAFB', borderRadius: 8, height: 40 },\r\n  tableBody: {},\r\n  tableRow: {\r\n    padding: 0,\r\n    flexDirection: 'row'\r\n  },\r\n  gridContainer: { flexDirection: 'row', alignItems: 'baseline', gap: '20px' },\r\n  h3: { fontSize: 16, fontWeight: 700 },\r\n  h4: { fontSize: 13, fontWeight: 700 },\r\n\r\n  col2: { width: '15%' },\r\n  col4: { width: '25%' },\r\n  col8: { width: '75%' },\r\n  col6: { width: '50%' },\r\n  mb4: { marginBottom: 4 },\r\n  mb8: { marginBottom: 8 },\r\n  mb40: { marginBottom: 40 },\r\n  mb20: { marginBottom: 20 },\r\n  timelineDot: {\r\n    margin: '1px',\r\n    width: '12px',\r\n    height: '12px',\r\n    alignItems: 'center',\r\n    justifyContent: 'center',\r\n    borderRadius: 10,\r\n    backgroundColor: '#6369FF',\r\n    fontSize: 8\r\n  },\r\n  timelineDotEmpty: {\r\n    margin: '1px',\r\n    width: '12px',\r\n    height: '12px',\r\n    alignItems: 'center',\r\n    justifyContent: 'center',\r\n    borderRadius: 10,\r\n    borderColor: '#c7c7c7',\r\n    borderWidth: 1,\r\n    backgroundColor: 'white',\r\n    fontSize: 8\r\n  }\r\n});\r\n","import { style } from '@mui/system';\r\nimport { View, Text, StyleSheet, Image } from '@react-pdf/renderer';\r\nimport { fDate } from 'utils/formatTime';\r\nimport { AttendanceReport } from '../../../../../@types/AttendanceReport';\r\nimport { communStyles } from './communStyles';\r\n\r\nexport const styles = StyleSheet.create({\r\n  container: { display: 'flex', flexDirection: 'column', gap: '10px' }\r\n});\r\n\r\ntype AttendanceReportHeaderProps = {\r\n  date: Date;\r\n};\r\n\r\nexport default function AttendanceReportHeader({ date }: AttendanceReportHeaderProps) {\r\n  return (\r\n    <View fixed>\r\n      <View style={[communStyles.mb20]}>\r\n        <Image source=\"/static/brand/SkillAndYou.jpg\" style={{ height: '27px', width: '97px' }} />\r\n      </View>\r\n      <Text style={[communStyles.title, communStyles.mb20, communStyles.alignCenter]}>\r\n        Rapport de présence {fDate(date, 'MMMM')}\r\n      </Text>\r\n    </View>\r\n  );\r\n}\r\n","import { View, Text, StyleSheet, Image } from '@react-pdf/renderer';\r\nimport { communStyles } from './communStyles';\r\nimport { PhoneLabel } from 'components/PhoneInfo';\r\nimport useBrand from 'hooks/useBrand';\r\n\r\nexport const styles = StyleSheet.create({\r\n  footer: {\r\n    left: 0,\r\n    right: 0,\r\n    bottom: 0,\r\n    padding: 20,\r\n    margin: 'auto',\r\n    position: 'absolute',\r\n    textAlign: 'center',\r\n    fontSize: 8\r\n  }\r\n});\r\n\r\nexport default function AttendanceReportFooter() {\r\n  const { brand } = useBrand();\r\n  return (\r\n    <View style={styles.footer} fixed>\r\n      <View style={communStyles.alignCenter}>\r\n        <Text style={communStyles.subtitle2}>SKILL AND YOU</Text>\r\n      </View>\r\n      <View>\r\n        <View>\r\n          <Text>\r\n            85-87 rue Gabriel Péri - 92120 Montrouge · Tél.{' '}\r\n            <PhoneLabel brandId={brand} phoneNumber=\"01.46.00.68.78\" />\r\n          </Text>\r\n        </View>\r\n        <View>\r\n          <Text>S.A.S au capital de 2 743 815,40 € </Text>\r\n          <Text>\r\n            Immatriculée au RCS de Nanterre sous le n°530.188.986 · Siège social : 85-87 rue Gabriel\r\n            Péri - 92120 Montrouge établissements secondaires : 368 Boulevard Henri Harpignies -\r\n            59300 Valenciennes, 415 Rue Pierre Seghers - 84000 Avignon, - 258 Avenue Roland Moreno -\r\n            59410 Anzin\r\n          </Text>\r\n        </View>\r\n      </View>\r\n    </View>\r\n  );\r\n}\r\n","import { View, Text, StyleSheet } from '@react-pdf/renderer';\r\nimport { communStyles } from './communStyles';\r\n\r\nexport const styles = StyleSheet.create({\r\n  overline: {\r\n    fontSize: 9,\r\n    fontWeight: 400,\r\n    margin: 8\r\n  },\r\n  container: { display: 'flex', flexDirection: 'row', alignItems: 'center', gap: '10px' }\r\n});\r\n\r\nexport default function AttendanceReportInformation() {\r\n  return (\r\n    <View>\r\n      <View style={communStyles.mb8}>\r\n        <Text style={communStyles.subtitle2}>Légende du rapport de présence :</Text>\r\n      </View>\r\n      <View style={communStyles.mb8}>\r\n        <View style={styles.container}>\r\n          <View style={styles.container}>\r\n            <View style={[communStyles.timelineDot, { marginRight: 5 }]} />\r\n            <Text style={communStyles.body2}>L’apprenant a émargé</Text>\r\n          </View>\r\n          <View style={[styles.container, { marginLeft: 20 }]}>\r\n            <View style={[communStyles.timelineDotEmpty, { marginRight: 5 }]} />\r\n            <Text style={communStyles.body2}>L’apprenant n’a pas émargé</Text>\r\n          </View>\r\n        </View>\r\n      </View>\r\n      <View style={[styles.overline, communStyles.colorGray, communStyles.mb40]}>\r\n        <Text>*L’émargement se fait numériquement et à heure fixe de 08:00 à 20:05.</Text>\r\n        <Text>\r\n          L’apprenant est considéré comme absent s’il ne signale pas sa présence sur son Espace\r\n          Numérique de Travail durant les 5 premières minutes de chaque heure.\r\n        </Text>\r\n      </View>\r\n    </View>\r\n  );\r\n}\r\n","import { View, Text, StyleSheet } from '@react-pdf/renderer';\r\nimport { AttendanceReportData } from 'hooks/useAttendanceReport';\r\nimport { fDate } from 'utils/formatTime';\r\nimport { communStyles } from './communStyles';\r\n\r\ntype AttendanceReportPersonnalProps = {\r\n  report: AttendanceReportData;\r\n  male: boolean;\r\n};\r\n\r\nexport const styles = StyleSheet.create({\r\n  container: { display: 'flex', flexDirection: 'column', alignItems: 'center', gap: '10px' }\r\n});\r\n\r\nconst getRow = (label: string, value: any) => {\r\n  return (\r\n    <View key={label} style={[communStyles.mb4]}>\r\n      <View style={communStyles.gridContainer}>\r\n        <Text style={communStyles.body2}>{label} : </Text>\r\n        {typeof value === 'string' ? (\r\n          <Text style={[communStyles.body2, communStyles.colorGray]}>{value}</Text>\r\n        ) : (\r\n          value\r\n        )}\r\n      </View>\r\n    </View>\r\n  );\r\n};\r\n\r\nexport default function AttendanceReportPersonnal({\r\n  report,\r\n  male\r\n}: AttendanceReportPersonnalProps) {\r\n  return (\r\n    <View style={[communStyles.mb40]}>\r\n      <View>\r\n        <Text style={[communStyles.mb8, communStyles.subtitle1]}>\r\n          Résumé de l’apprenant{male ? '' : 'e'} :\r\n        </Text>\r\n      </View>\r\n\r\n      {[\r\n        {\r\n          label: `Apprenant${male ? '' : 'e'}`,\r\n          value: `${report.student?.lastName} ${report.student?.firstName}`\r\n        },\r\n        { label: 'Numéro de contrat', value: `${report.contract?.id}` },\r\n        {\r\n          label: 'Adresse',\r\n          value: (\r\n            <View>\r\n              <Text style={[communStyles.body2, communStyles.colorGray]}>\r\n                {report.student?.address?.wayNumber} {report.student?.address?.wayName}\r\n              </Text>\r\n              <Text style={[communStyles.body2, communStyles.colorGray]}>\r\n                {report.student?.address?.postalCode} {report.student?.address?.city}\r\n              </Text>\r\n              <Text style={[communStyles.body2, communStyles.colorGray]}>\r\n                {report.student?.address?.countryName}\r\n              </Text>\r\n            </View>\r\n          )\r\n        },\r\n        {\r\n          label: 'Date d’inscription',\r\n          value:\r\n            report.contract?.registrationDate &&\r\n            fDate(report.contract?.registrationDate, 'dd MMMM yyyy')\r\n        },\r\n        {\r\n          label: 'Date de clôture pédagogique',\r\n          value: report.contract?.closingDate && fDate(report.contract?.closingDate, 'dd MMMM yyyy')\r\n        },\r\n        {\r\n          label: 'Formation',\r\n          value: `${report.contract?.training?.label} (${report.contract?.training?.id})`\r\n        },\r\n\r\n        {\r\n          label: 'Options',\r\n          value: (\r\n            <View>\r\n              {report.contract?.training?.options &&\r\n                report.contract?.training?.options?.map((option) => {\r\n                  return (\r\n                    <Text style={[communStyles.body2, communStyles.colorGray]} key={option.id}>\r\n                      {option.label}\r\n                    </Text>\r\n                  );\r\n                })}\r\n            </View>\r\n          )\r\n        },\r\n\r\n        {\r\n          label: 'Organisme',\r\n          value: `${report.contract?.partner && report.contract?.partner.label}`\r\n        },\r\n        {\r\n          label: 'Durée de la formation',\r\n          value: `${report.contract?.training?.duration}h`\r\n        }\r\n      ].map((item) => {\r\n        return getRow(item.label, item.value);\r\n      })}\r\n    </View>\r\n  );\r\n}\r\n","import { pdf } from '@react-pdf/renderer';\r\nimport { AttendanceReport, AttendanceReportDetail } from '../@types/AttendanceReport';\r\nimport { ReactElement } from 'react-markdown/lib/react-markdown';\r\nimport { eachWeekOfMonth, fDate, getWeekDays } from 'utils/formatTime';\r\nimport { dispatch, RootState, useSelector } from 'redux/store';\r\nimport { addDays, getWeek } from 'date-fns';\r\nimport { Student } from '../@types/account';\r\nimport { Contract } from '../@types/contract';\r\nimport axiosInstance from 'utils/axios';\r\nimport { useState } from 'react';\r\n\r\n/**Liste des heures  */\r\nexport const hoursReport = [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20];\r\n\r\nexport type AttendanceReportData = {\r\n  weeks: Record<string, Array<AttendanceReportDetail>>;\r\n  student: Student | null;\r\n  contract: Contract | null;\r\n};\r\n\r\nexport default function useAttendanceReport() {\r\n  const { student, contract, token } = useSelector((state: RootState) => state.student);\r\n  const [weeks, setWeeks] = useState<Record<string, Array<AttendanceReportDetail>> | null>(null);\r\n\r\n  const merge = async (year: number, month: number) => {\r\n    //premier jour de chaque semaine du mois\r\n    const firstDateEachWeekOfMonth = eachWeekOfMonth(year, month);\r\n    //période\r\n    const firstDate = firstDateEachWeekOfMonth[0];\r\n    const endDate = addDays(firstDateEachWeekOfMonth.slice(-1)[0], 7);\r\n\r\n    let weeksCurrent: Record<string, Array<AttendanceReportDetail>> = {};\r\n\r\n    //récupérer les informations\r\n    dispatch(\r\n      getAttendance(\r\n        fDate(firstDate, 'yyyy-M-dd'),\r\n        fDate(endDate, 'yyyy-M-dd')\r\n      )((details) => {\r\n        // valorise le tableau de semaine\r\n        firstDateEachWeekOfMonth.map((firstDateOfWeek: Date) => {\r\n          if (\r\n            getWeekDays(firstDateOfWeek)\r\n              .filter((d) => [1, 2, 3, 4, 5, 6].includes(d.getDay()))\r\n              .some((d) => d.getMonth() === month)\r\n          ) {\r\n            weeksCurrent[getWeek(firstDateOfWeek)] = getWeekDays(firstDateOfWeek)\r\n              // on prend seulement les jours du mois et  du lundi au vendredi\r\n              .filter((d) => [1, 2, 3, 4, 5, 6].includes(d.getDay()))\r\n              .map((d: Date) => {\r\n                const dateCurrent = fDate(d, 'yyyy-MM-dd');\r\n                const detail = details.find((d) => d.day === dateCurrent);\r\n                return {\r\n                  day: dateCurrent,\r\n                  firstConnection: detail ? formatTimeHHmm(detail.firstConnection) : '-',\r\n                  detailHours: hoursReport.map((hour: number) => {\r\n                    let attendance: boolean = false;\r\n                    if (detail?.detailHours) {\r\n                      const detailHour = detail?.detailHours.find((h) => +h.hour === hour);\r\n                      attendance = detailHour?.attendance ? detailHour?.attendance : false;\r\n                    }\r\n\r\n                    return { attendance: attendance, hour: hour.toString() };\r\n                  })\r\n                };\r\n              });\r\n          }\r\n        });\r\n        setWeeks(weeksCurrent);\r\n      })\r\n    );\r\n  };\r\n\r\n  const formatTimeHHmm = (time: string) => {\r\n    const timeSplit = time.split(':');\r\n\r\n    if (timeSplit.length === 3) return `${timeSplit[0]}:${timeSplit[1]}`;\r\n    return time;\r\n  };\r\n\r\n  const generatePdfDocument = async (component: ReactElement) => {\r\n    const blob = await pdf(component).toBlob();\r\n    const blobURL = window.URL.createObjectURL(blob);\r\n    window.open(blobURL);\r\n  };\r\n\r\n  const getAttendance =\r\n    (start: string, end: string) =>\r\n    (onSuccess: (details: Array<AttendanceReportDetail>) => void) => {\r\n      return async () => {\r\n        try {\r\n          // le token est passé exclusivement dans l'appel. NE PAS LE METTRE DANS LA SESSION STORAGE\r\n          const response = await axiosInstance.get<AttendanceReport>(\r\n            `/api/report/attendance/${start}/${end}`,\r\n            {\r\n              headers: { authorization: `Bearer ${token}` }\r\n            }\r\n          );\r\n\r\n          const { details } = response.data;\r\n\r\n          onSuccess(details);\r\n        } catch (error) {\r\n          setWeeks({});\r\n        }\r\n      };\r\n    };\r\n\r\n  return {\r\n    student,\r\n    contract,\r\n    weeks,\r\n    merge,\r\n    generatePdfDocument\r\n  };\r\n}\r\n","import { View, Text, StyleSheet } from '@react-pdf/renderer';\r\nimport { hoursReport } from 'hooks/useAttendanceReport';\r\nimport { fDate } from 'utils/formatTime';\r\nimport { communStyles } from './communStyles';\r\nimport { AttendanceReportDetail } from '../../../../../@types/AttendanceReport';\r\n\r\nconst styles = StyleSheet.create({\r\n  container: { borderRadius: 8, padding: 7, borderColor: '#F9FAFB', borderWidth: 1 },\r\n  gridContainer: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between' },\r\n  tableCell_1: { width: '20%' },\r\n  tableCell_3: { width: '15%', alignItems: 'center', textAlign: 'center' },\r\n  timelineItem: {\r\n    display: 'flex'\r\n  },\r\n  timelineSeparator: {\r\n    display: 'flex',\r\n    flexDirection: 'column',\r\n    alignItems: 'center',\r\n    justifyContent: 'center'\r\n  },\r\n  timelineConnector: {\r\n    width: '1px',\r\n    backgroundColor: '#c7c7c7', //'rgba(145, 158, 171, 0.24)',\r\n    flexGrow: 1,\r\n    height: '15px'\r\n  },\r\n  timelineConnectorNone: {\r\n    flexGrow: 1,\r\n    height: '15px'\r\n  },\r\n  mt4: { marginTop: '4px' }\r\n});\r\n\r\ntype AttendanceReportWeekProps = {\r\n  detailsOfWeek: Array<AttendanceReportDetail>;\r\n  lastName: string;\r\n  contractId: string;\r\n  title: string;\r\n  month: number;\r\n  male: boolean;\r\n};\r\n// { ...(disabled && communStyles.colorGray) }\r\nconst getRowHeader = (day: string, disabled: boolean) => {\r\n  return (\r\n    <View key={day} style={[styles.tableCell_3, communStyles.colorGray]}>\r\n      <Text style={communStyles.subtitle2}>{fDate(day, 'eeee')}</Text>\r\n      <Text style={communStyles.subtitle2}>{fDate(day, 'dd')}</Text>\r\n    </View>\r\n  );\r\n};\r\n\r\nconst getFirstRowCol = (value: string, index: number) => {\r\n  return (\r\n    <View key={index} style={[styles.tableCell_3, styles.mt4]}>\r\n      <Text style={[communStyles.subtitle2, communStyles.colorGray]}>{value}</Text>\r\n      <View style={styles.timelineConnector}></View>\r\n    </View>\r\n  );\r\n};\r\n\r\nconst getCol = (attendance: boolean, index: number) => {\r\n  return (\r\n    <View key={index} style={[styles.tableCell_3]}>\r\n      <View style={styles.timelineItem}>\r\n        <View style={styles.timelineSeparator}>\r\n          {attendance ? (\r\n            <View style={communStyles.timelineDot} />\r\n          ) : (\r\n            <View style={communStyles.timelineDotEmpty} />\r\n          )}\r\n          <View style={styles.timelineConnector}></View>\r\n        </View>\r\n      </View>\r\n    </View>\r\n  );\r\n};\r\n\r\nexport default function AttendanceReportWeek({\r\n  detailsOfWeek,\r\n  lastName,\r\n  contractId,\r\n  title,\r\n  month,\r\n  male\r\n}: AttendanceReportWeekProps) {\r\n  const lastDay = detailsOfWeek.pop();\r\n\r\n  return (\r\n    <View wrap={false}>\r\n      <View style={[styles.gridContainer, communStyles.mb8]}>\r\n        <View>\r\n          <View style={communStyles.gridContainer}>\r\n            <Text style={[communStyles.body1]}>Apprenant {male ? '' : 'e'} : </Text>\r\n            <Text style={[communStyles.body2, communStyles.colorGray]}>{lastName}</Text>\r\n          </View>\r\n        </View>\r\n        <View>\r\n          <View style={communStyles.gridContainer}>\r\n            <Text style={[communStyles.body1]}>Numéro de contrat : </Text>\r\n            <Text style={[communStyles.body2, communStyles.colorGray]}>{contractId}</Text>\r\n          </View>\r\n        </View>\r\n      </View>\r\n\r\n      <View style={styles.container}>\r\n        <Text style={[communStyles.subtitle1, communStyles.alignCenter, communStyles.mb8]}>\r\n          Rapport de présence du {fDate(detailsOfWeek[0].day, 'dd/MM/yyyy')} au{' '}\r\n          {lastDay && fDate(lastDay.day, 'dd/MM/yyyy')}\r\n        </Text>\r\n\r\n        <View style={communStyles.table}>\r\n          <View style={communStyles.tableHeader}>\r\n            <View style={communStyles.tableRow}>\r\n              <View style={styles.tableCell_1}>\r\n                <Text style={communStyles.subtitle2}></Text>\r\n              </View>\r\n              {detailsOfWeek.map((item) => {\r\n                const disabled = month !== new Date(item.day).getMonth();\r\n\r\n                return getRowHeader(item.day, disabled);\r\n              })}\r\n            </View>\r\n          </View>\r\n\r\n          <View style={[communStyles.tableBody, communStyles.colorGray]}>\r\n            <View style={[communStyles.tableRow, communStyles.mb4]}>\r\n              <View style={[styles.tableCell_1, communStyles.alignCenter, styles.mt4]}>\r\n                <Text style={[communStyles.body2, communStyles.colorGray]}>1ère connexion</Text>\r\n              </View>\r\n              {detailsOfWeek.map((item, index) => getFirstRowCol(item.firstConnection, index))}\r\n            </View>\r\n            {hoursReport.map((hour: number, index: number) => {\r\n              return (\r\n                <View key={index} style={communStyles.tableRow}>\r\n                  <View style={[styles.tableCell_1, communStyles.alignCenter]}>\r\n                    <Text style={communStyles.body2}>{hour.toString().padStart(1, '0')}:00</Text>\r\n                  </View>\r\n                  {detailsOfWeek.map((item, index) => {\r\n                    return getCol(\r\n                      item.detailHours.find((h) => parseInt(h.hour) === hour)?.attendance || false,\r\n                      index\r\n                    );\r\n                  })}\r\n                </View>\r\n              );\r\n            })}\r\n          </View>\r\n        </View>\r\n      </View>\r\n    </View>\r\n  );\r\n}\r\n/*\r\n const disabled = month !== new Date(item.day).getMonth();\r\n\r\n                    return disabled ? (\r\n                      <View key={index} style={[styles.tableCell_3]}>\r\n                        <Text style={styles.timelineConnectorNone}>-</Text>\r\n                      </View>\r\n                    ) : (\r\n                      getCol(\r\n                        item.detailHours.find((h) => parseInt(h.hour) === hour)?.attendance ||\r\n                          false,\r\n                        index\r\n                      )\r\n                    );\r\n*/\r\n","import { Page, Font, Image, Document, StyleSheet, PDFViewer, Text } from '@react-pdf/renderer';\r\nimport { AttendanceReportData } from 'hooks/useAttendanceReport';\r\nimport { useCallback } from 'react';\r\nimport { AttendanceReport } from '../../../../../@types/AttendanceReport';\r\nimport AttendanceReportHeader from './AtendanceReportHeader';\r\nimport AttendanceReportFooter from './AttendanceReportFooter';\r\nimport AttendanceReportInformation from './AttendanceReportInformations';\r\nimport AttendanceReportPersonnal from './AttendanceReportPersonnal';\r\nimport AttendanceReportWeek from './AttendanceReportWeek';\r\n\r\nFont.register({\r\n  family: 'Poppins',\r\n  fonts: [\r\n    { src: '/fonts/Poppins-Regular.ttf' },\r\n    { src: '/fonts/Poppins-Bold.ttf' },\r\n    { src: '/fonts/Poppins-SemiBold.ttf' }\r\n  ]\r\n});\r\n\r\nconst styles = StyleSheet.create({\r\n  page: {\r\n    padding: '40px 24px 0 24px',\r\n    fontSize: 9,\r\n    lineHeight: 1.6,\r\n    fontFamily: 'Poppins',\r\n    backgroundColor: '#fff'\r\n  }\r\n});\r\n\r\ntype AttendanceReportPageProps = {\r\n  report: AttendanceReportData;\r\n  date: Date;\r\n};\r\n\r\nexport default function AttendanceReportPage({ report, date }: AttendanceReportPageProps) {\r\n  const getGenreMasculin = useCallback(() => {\r\n    return report?.student?.civilityId === 'M.' ? true : false;\r\n  }, [report.student?.id]);\r\n\r\n  return (\r\n    <Document>\r\n      <Page size=\"A4\" style={styles.page}>\r\n        <AttendanceReportHeader date={date} />\r\n        <AttendanceReportPersonnal report={report} male={getGenreMasculin()} />\r\n        <AttendanceReportInformation />\r\n        {Object.keys(report.weeks).map((index) => {\r\n          return (\r\n            <AttendanceReportWeek\r\n              key={index}\r\n              detailsOfWeek={report.weeks[index]}\r\n              contractId={report.contract?.id.toString() || ''}\r\n              lastName={`${report.student?.lastName} ${report.student?.firstName}`}\r\n              title=\"\"\r\n              month={date.getMonth()}\r\n              male={getGenreMasculin()}\r\n            />\r\n          );\r\n        })}\r\n\r\n        <AttendanceReportFooter />\r\n      </Page>\r\n    </Document>\r\n  );\r\n}\r\n/*\r\n <AttendanceReportWeek report={report} {student?.lastName} {student?.firstName}/>\r\n<View style={communStyles.alignCenter}>\r\n        <Text render={({ pageNumber, totalPages }) => `${pageNumber} / ${totalPages}`} />\r\n      </View>\r\n*/\r\n","import { LoadingButton } from '@mui/lab';\r\nimport { Icon } from '@iconify/react';\r\nimport downloadFill from '@iconify/icons-eva/download-fill';\r\nimport AttendanceReportPage from './report/AttendanceReportPage';\r\nimport useAttendanceReport from 'hooks/useAttendanceReport';\r\nimport { useEffect } from 'react';\r\nimport { PDFViewer } from '@react-pdf/renderer';\r\nimport { Box } from '@mui/system';\r\nimport { MainSearchStudent } from 'layouts/main/MainSearchStudent';\r\n\r\ntype AttendanceReportItemProps = {\r\n  year: number;\r\n  month: number;\r\n};\r\n\r\nexport default function AttendanceReportView({ month, year }: AttendanceReportItemProps) {\r\n  const { merge, student, contract, weeks } = useAttendanceReport();\r\n\r\n  useEffect(() => {\r\n    merge(year, month);\r\n  }, []);\r\n\r\n  if (weeks == null) return <MainSearchStudent />;\r\n\r\n  return (\r\n    <Box sx={{ flexGrow: 1, height: '100%', overflow: 'hidden' }}>\r\n      <PDFViewer width=\"100%\" height=\"100%\" style={{ border: 'none' }}>\r\n        <AttendanceReportPage\r\n          report={{ student: student, contract: contract, weeks: weeks }}\r\n          date={new Date(year, month, 1)}\r\n        />\r\n      </PDFViewer>\r\n    </Box>\r\n  );\r\n}\r\n","import { useNavigate, useParams } from 'react-router';\r\nimport { PATH_PAGE } from 'routes/paths';\r\nimport { Box } from '@mui/system';\r\nimport AttendanceReportView from 'components/_dashboard/tracking/attendance/AttendanceReportView';\r\nimport { DialogAnimate } from 'components/animate';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function AttendanceReportLandingPage(props: any) {\r\n  const { month, year } = useParams();\r\n\r\n  const navigate = useNavigate();\r\n\r\n  if (!month || !year) {\r\n    navigate(PATH_PAGE.page404);\r\n    return <></>;\r\n  }\r\n\r\n  return (\r\n    <DialogAnimate fullScreen open={true}>\r\n      <Box sx={{ height: '100%', display: 'flex', flexDirection: 'column' }}>\r\n        <AttendanceReportView month={+month} year={+year} />\r\n      </Box>\r\n    </DialogAnimate>\r\n  );\r\n}\r\n","import {\r\n  Card,\r\n  CardActions,\r\n  CardContent,\r\n  CardHeader,\r\n  Container,\r\n  styled,\r\n  Button,\r\n  Box,\r\n  Typography,\r\n  Grid,\r\n  Stack\r\n} from '@mui/material';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport HeaderBreadcrumbs from 'components/HeaderBreadcrumbs';\r\nimport Page from 'components/Page';\r\nimport PhoneInfo from 'components/PhoneInfo';\r\nimport useExamen from 'hooks/useExamen';\r\nimport { useSelector } from 'react-redux';\r\nimport { useNavigate } from 'react-router';\r\nimport { RootState } from 'redux/store';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport { getLabelDefaultCategoryObjectif, getLabelMultiCategoryObjectif } from 'utils/helperExamen';\r\n\r\ntype ExamenInscriptionAddProps = {};\r\n\r\n/**\r\n * Ajout d'une inscription à un examen (sélection du type d'inscription)\r\n * @param param0\r\n * @returns\r\n */\r\nexport default function ExamenInscriptionAdd({}: ExamenInscriptionAddProps) {\r\n  const { getContractCurrent } = useExamen();\r\n  const contract = getContractCurrent();\r\n  const theme = useTheme();\r\n  const navigate = useNavigate();\r\n\r\n  const { categoriesGereesEnExterne, categoriesGereesParSAY } = useSelector(\r\n    (state: RootState) => state.examen\r\n  );\r\n\r\n  const SubCardStyle = styled(Card)({\r\n    padding: 10,\r\n    margin: 10,\r\n    backgroundColor: theme.palette.grey[100],\r\n    boxShadow: theme.customShadows.z12,\r\n    height: '100%',\r\n    minWidth: '300px',\r\n    maxWidth: '450px',\r\n    minHeight: '550px',\r\n    width: '100%'\r\n  });\r\n\r\n  const addExamenSAY = () => {\r\n    navigate(`${PATH_DASHBOARD.suivi.examenCreateInterne}`);\r\n  };\r\n\r\n  const addExamenExterne = () => {\r\n    navigate(`${PATH_DASHBOARD.suivi.examenCreate}`);\r\n  };\r\n\r\n  const defaultCategoryLabels = getLabelDefaultCategoryObjectif();\r\n  const labelExamSAY = getLabelMultiCategoryObjectif(categoriesGereesParSAY);\r\n  const labelExamExterne = getLabelMultiCategoryObjectif(categoriesGereesEnExterne);\r\n\r\n  return (\r\n    <Page\r\n      title={`${defaultCategoryLabels?.debuteMajusculePluriel} | SkillAndYou`}\r\n      helpCategoryId=\"Examen\"\r\n    >\r\n      <Container maxWidth={'lg'}>\r\n        <HeaderBreadcrumbs\r\n          heading={defaultCategoryLabels?.debuteMajusculePluriel}\r\n          links={[]}\r\n          subHeader={\r\n            <Typography variant=\"body2\">\r\n              {`Retrouvez dans cette rubrique tous les ${defaultCategoryLabels?.minusculePluriel} que vous souhaitez passer au cours de votre formation.`}\r\n            </Typography>\r\n          }\r\n          action={\r\n            <Box>\r\n              <PhoneInfo value={contract.brand.phone} />\r\n            </Box>\r\n          }\r\n        />\r\n\r\n        <Card sx={{ p: 2, pl: 6, pr: 6 }}>\r\n          <CardHeader title=\"Que souhaitez-vous faire ?\" sx={{ textAlign: 'center' }} />\r\n          <CardContent\r\n            sx={{\r\n              height: '100%',\r\n              width: '100%',\r\n              display: 'flex',\r\n              flexDirection: 'row',\r\n              alignItems: 'center',\r\n              justifyContent: 'space-around',\r\n              flexWrap: 'wrap'\r\n            }}\r\n          >\r\n            {categoriesGereesParSAY?.length > 0 && (\r\n              <SubCardStyle>\r\n                <CardContent>\r\n                  <Box\r\n                    component=\"img\"\r\n                    src={'/static/illustrations/examens/inscription_say.svg'}\r\n                    sx={{ height: 320, width: '100%' }}\r\n                  />\r\n                  <Typography variant=\"subtitle2\" paragraph>\r\n                    {labelExamSAY?.debuteMajusculePluriel}\r\n                  </Typography>\r\n                  <Typography variant=\"caption\" paragraph>\r\n                    {`Dans cette rubrique, pré-inscrivez-vous ${labelExamSAY?.accordPluriel} que vous souhaitez passer et générez votre planning de travail jusqu’${defaultCategoryLabels?.accord}.`}\r\n                  </Typography>\r\n                  <CardActions\r\n                    sx={{\r\n                      alignItems: 'baseline',\r\n                      justifyContent: 'center'\r\n                    }}\r\n                  >\r\n                    <Button variant=\"contained\" onClick={addExamenSAY}>\r\n                      S'inscrire\r\n                    </Button>\r\n                  </CardActions>\r\n                </CardContent>\r\n              </SubCardStyle>\r\n            )}\r\n\r\n            {categoriesGereesEnExterne?.length > 0 && (\r\n              <SubCardStyle>\r\n                <CardContent>\r\n                  <Box\r\n                    component=\"img\"\r\n                    src={'/static/illustrations/examens/inscription_examen.svg'}\r\n                    sx={{ height: 320, width: '100%' }}\r\n                  />\r\n                  <Typography variant=\"subtitle2\" paragraph>\r\n                    {labelExamExterne?.debuteMajusculePluriel}\r\n                  </Typography>\r\n                  <Typography variant=\"caption\" paragraph>\r\n                    {`Dans cette rubrique, pré-inscrivez-vous ${labelExamExterne?.accordPluriel} que vous souhaitez passer et générez votre planning de travail jusqu’${defaultCategoryLabels?.accord}.`}\r\n                  </Typography>\r\n                  <CardActions\r\n                    sx={{\r\n                      bottom: 20,\r\n                      alignItems: 'baseline',\r\n                      justifyContent: 'center'\r\n                    }}\r\n                  >\r\n                    <Button variant=\"contained\" onClick={addExamenExterne}>\r\n                      Renseigner mes inscriptions\r\n                    </Button>\r\n                  </CardActions>\r\n                </CardContent>\r\n              </SubCardStyle>\r\n            )}\r\n          </CardContent>\r\n        </Card>\r\n      </Container>\r\n    </Page>\r\n  );\r\n}\r\n","import { useEffect, useState } from 'react';\r\nimport { RootState, useSelector } from 'redux/store';\r\nimport useAuth from './useAuth';\r\nimport {\r\n  Academie,\r\n  defaultDepartement,\r\n  defaultExamen,\r\n  Departement,\r\n  Examen,\r\n  ObjectifGeneral,\r\n  RegionAdministrative\r\n} from '../@types/examen';\r\nimport useExamen from './useExamen';\r\n\r\nexport default function useExamenFormGestionInterne() {\r\n  const { student } = useAuth();\r\n  const { getLabel } = useExamen();\r\n  const { examens, departements, academies, regions, objectifSAY, errorForm } = useSelector(\r\n    (state: RootState) => state.examen\r\n  );\r\n\r\n  const objectif: ObjectifGeneral | null = objectifSAY;\r\n\r\n  function getExamen() {\r\n    if (objectif) {\r\n      const examen = examens.find(\r\n        (exa: Examen) =>\r\n          exa.code === objectif?.code && !['ABA', 'REP'].includes(exa.statutInscription?.code)\r\n      );\r\n\r\n      if (examen) {\r\n        return examen;\r\n      } else {\r\n        let departement = student?.address?.department;\r\n        if (!departement || departement === undefined || departement === '') {\r\n          departement = student?.address?.postalCode?.substring(0, 2);\r\n        }\r\n        return create(departement);\r\n      }\r\n    }\r\n    return new defaultExamen();\r\n  }\r\n\r\n  function create(departmentCode: string) {\r\n    const response = changeDepartment(departmentCode);\r\n    let current = new defaultExamen();\r\n\r\n    //Infos de l'objectif\r\n    if (objectif) {\r\n      current.code = objectif.code;\r\n      current.categorie = objectif.categorie;\r\n      current.designation = objectif.designation;\r\n    }\r\n\r\n    current.etatInscription = 'PRE';\r\n\r\n    if (response) {\r\n      current.departement = response.department;\r\n      current.region = response.region;\r\n      current.academie = response.academie;\r\n    }\r\n    current.statutInscription = { code: 'ENV', designation: '' };\r\n    current.statutResultat = { code: 'INC', designation: '' };\r\n    current.formePassage = 'GLO';\r\n\r\n    current.gestionInscriptionInterne = true;\r\n\r\n    return current;\r\n  }\r\n\r\n  function changeDepartment(code: string) {\r\n    const department = departements.filter((d: Departement) => d.code === code)[0];\r\n    const academie = academies.filter((a: Academie) => a.code === department?.academieCode)[0];\r\n    const region = regions.filter(\r\n      (r: RegionAdministrative) => r.code === department?.regionCode\r\n    )[0];\r\n\r\n    return {\r\n      department,\r\n      academie,\r\n      region\r\n    };\r\n  }\r\n\r\n  return {\r\n    getExamen,\r\n    getLabel,\r\n    examens,\r\n    objectif,\r\n    errorForm\r\n  };\r\n}\r\n","import {\r\n  Alert,\r\n  Box,\r\n  Button,\r\n  Card,\r\n  CardActions,\r\n  CardContent,\r\n  CardHeader,\r\n  Grid,\r\n  Stack,\r\n  Typography\r\n} from '@mui/material';\r\nimport { defaultPeriode, Examen, ObjectifGeneral, PeriodeExamen } from '../../../@types/examen';\r\nimport { getLabelCategoryObjectif, getPeriodesFutures } from 'utils/helperExamen';\r\nimport ExamenPrerequis from './ExamenPrerequis';\r\nimport { SelectField } from 'components/FormikInput';\r\nimport { useEffect } from 'react';\r\nimport { useFormikContext } from 'formik';\r\n\r\ntype ExamenFormPeriodeProps = { objectif: ObjectifGeneral; onClose: () => void };\r\n\r\nexport default function ExamenFormPeriode({ objectif, onClose }: ExamenFormPeriodeProps) {\r\n  const { values, setValues } = useFormikContext<Examen>();\r\n\r\n  const labelExamen = getLabelCategoryObjectif(objectif?.categorie);\r\n\r\n  const filteredPeriodes = getPeriodesFutures(objectif?.periodes);\r\n\r\n  const allowRegistration = filteredPeriodes?.length > 0;\r\n\r\n  useEffect(() => {\r\n    /*\r\n      Informations de la periode au changement de celle-ci\r\n    */\r\n    let newPeriode = new defaultPeriode();\r\n\r\n    if (values?.periode?.code != undefined && values?.periode?.code !== '') {\r\n      const infosPeriode = filteredPeriodes?.find((p) => p.code === values.periode.code);\r\n\r\n      if (infosPeriode) {\r\n        newPeriode = { ...infosPeriode };\r\n      }\r\n    }\r\n\r\n    setValues({ ...values, periode: newPeriode });\r\n  }, [values?.periode?.code]);\r\n\r\n  if (!objectif) return <></>;\r\n\r\n  return (\r\n    <>\r\n      <Stack display=\"flex\" flexDirection={'row'} alignItems={'center'}>\r\n        <Grid container spacing={3}>\r\n          <Grid item xs={12} md={4}>\r\n            <Box\r\n              component=\"img\"\r\n              alt=\"empty content\"\r\n              src={'/static/illustrations/examens/inscription_periode.svg'}\r\n              sx={{ maxHeight: 300 }}\r\n            />\r\n          </Grid>\r\n          <Grid item xs={12} md={8}>\r\n            <Stack gap=\"40px\">\r\n              <Stack>\r\n                <Typography variant=\"subtitle1\" paragraph>\r\n                  Période\r\n                </Typography>\r\n                <Typography variant=\"caption\" sx={{ pb: 2 }}>\r\n                  {`Quand souhaitez-vous passer ${labelExamen?.precision} ?`}\r\n                </Typography>\r\n                {allowRegistration ? (\r\n                  <SelectField\r\n                    fullWidth\r\n                    label=\"Période\"\r\n                    name={'periode.code'}\r\n                    data={filteredPeriodes?.map((p: PeriodeExamen) => {\r\n                      return { code: p.code, label: p.designation };\r\n                    })}\r\n                  />\r\n                ) : (\r\n                  <Alert severity=\"info\">\r\n                    <Typography variant=\"subtitle2\">Pour information</Typography>\r\n                    {`Les périodes de pré-inscription à votre ${objectif?.designation} ne sont pas encore ouvertes.`}\r\n                    <br />\r\n                    Nous vous invitons à revenir ultérieurement et à rester attentif aux\r\n                    communications de votre école à ce sujet.\r\n                  </Alert>\r\n                )}\r\n              </Stack>\r\n              <ExamenPrerequis objectif={objectif} />\r\n            </Stack>\r\n          </Grid>\r\n        </Grid>\r\n      </Stack>\r\n      <CardActions\r\n        sx={{\r\n          alignItems: 'baseline',\r\n          justifyContent: 'center',\r\n          pr: 3,\r\n          pl: 3,\r\n          pt: 6\r\n        }}\r\n      >\r\n        <Button onClick={onClose} variant=\"text\">\r\n          Fermer\r\n        </Button>\r\n        {allowRegistration && (\r\n          <Button type=\"submit\" variant=\"contained\">\r\n            S'inscrire\r\n          </Button>\r\n        )}\r\n      </CardActions>\r\n    </>\r\n  );\r\n}\r\n","import * as Yup from 'yup';\r\n\r\nexport const ExamenFormGestIntPeriodeValidationSchema = [\r\n  Yup.object().shape({\r\n    periode: Yup.object().shape({\r\n      code: Yup.string().required('La période est obligatoire')\r\n    })\r\n  })\r\n];\r\n\r\nexport const ExamenFormGestIntSessionValidationSchema = [\r\n  Yup.object().shape({\r\n    session: Yup.object().shape({\r\n      code: Yup.string().required('La session est obligatoire')\r\n    })\r\n  })\r\n];\r\n","import { Examen } from '../../../@types/examen';\r\nimport { useFormikContext } from 'formik';\r\nimport ObjectiveParamsForm from '../objective/ObjectiveForm';\r\nimport { formatAPI } from 'utils/formatTime';\r\nimport { addOrUpdate, addWithoutSave, updateDateExamenEnvisagee } from 'redux/slices/examen';\r\nimport { useSnackbar } from 'notistack';\r\nimport { dispatch } from 'redux/store';\r\nimport { Contract } from '../../../@types/contract';\r\nimport { useNavigate } from 'react-router';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport { Stack, Typography } from '@mui/material';\r\n\r\nexport type ExamenFormObjectivePlanningProps = { contract: Contract; onClose: () => void };\r\n\r\nexport default function ExamenFormObjectivePlanning({\r\n  contract,\r\n  onClose\r\n}: ExamenFormObjectivePlanningProps) {\r\n  const { values } = useFormikContext<Examen>();\r\n\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const navigate = useNavigate();\r\n\r\n  let datExaEnv: string | null = values?.session?.dateEpreuvesAdmission; // Pour Novadis DatAdmDef\r\n\r\n  if (!datExaEnv || datExaEnv === '') {\r\n    datExaEnv = values.periode?.code != '' ? formatAPI(values.periode.dateDebut) : '';\r\n  }\r\n\r\n  const examenObjective: any = {\r\n    start: formatAPI(new Date()),\r\n    end: datExaEnv\r\n  };\r\n\r\n  const handleSaveSuccess = () => {\r\n    const newDatExaEnv: Date | null = datExaEnv && datExaEnv != '' ? new Date(datExaEnv) : null;\r\n\r\n    if (newDatExaEnv) {\r\n      dispatch(\r\n        updateDateExamenEnvisagee({\r\n          contractId: contract?.id,\r\n          amendmentId: contract?.amendmentId,\r\n          dateEnvisagee: newDatExaEnv\r\n        })(() => {\r\n          if (values?.session?.code != '') {\r\n            dispatch(\r\n              addOrUpdate(values)(() => {\r\n                enqueueSnackbar('Enregistrement effectué', { variant: 'success' });\r\n                navigate(PATH_DASHBOARD.suivi.examens);\r\n              })\r\n            );\r\n          } else if (values?.periode?.code != '') {\r\n            dispatch(\r\n              addWithoutSave(values)(() => {\r\n                enqueueSnackbar('Enregistrement effectué', { variant: 'success' });\r\n                navigate(PATH_DASHBOARD.suivi.examens);\r\n              })\r\n            );\r\n          }\r\n        })(() => {\r\n          enqueueSnackbar('Nous rencontrons actuellement un problème', { variant: 'error' });\r\n        })\r\n      );\r\n    }\r\n  };\r\n\r\n  if (!contract || !datExaEnv) return <></>;\r\n\r\n  return (\r\n    <Stack spacing={2}>\r\n      <Typography variant=\"body2\" paragraph sx={{ color: 'text.secondary' }}>\r\n        Veuillez nous indiquer vos périodes d'études et de congés afin que nous puissions mieux\r\n        planifier votre charge de travail et vous proposer un rythme adapté à vos contraintes.\r\n      </Typography>\r\n      <ObjectiveParamsForm\r\n        objective={examenObjective!}\r\n        contract={contract}\r\n        onSaveSuccess={handleSaveSuccess}\r\n        onClose={onClose}\r\n        lockOnSave={true}\r\n        disableStartEndDates={true}\r\n        skipPopupGenerate={true}\r\n        closeOnModifyPeriode={true}\r\n      />\r\n    </Stack>\r\n  );\r\n}\r\n","import { Alert, Box, Button, CardActions, Stack, Tooltip, Typography } from '@mui/material';\r\nimport { SelectField } from 'components/FormikInput';\r\nimport { useFormikContext } from 'formik';\r\nimport useExamenFormGestionInterne from 'hooks/useExamenFormGestionInterne';\r\nimport { useEffect } from 'react';\r\nimport { fDate } from 'utils/formatTime';\r\nimport { getSessionsFutures } from 'utils/helperExamen';\r\nimport {\r\n  defaultSession,\r\n  Epreuve,\r\n  Examen,\r\n  ObjectifGeneral,\r\n  SessionExamen\r\n} from '../../../@types/examen';\r\nimport ExamenCentreInfosDisplay from './ExamenCentreInfosDisplay';\r\nimport ExamenPrerequis from './ExamenPrerequis';\r\n\r\nexport type ExamenFormSessionInterneProps = {\r\n  objectif: ObjectifGeneral;\r\n  sessionsLocked: Array<string>;\r\n  onClose: () => void;\r\n};\r\n\r\n/**\r\n * Créer une session d'examen\r\n * La validation se fait par étape.\r\n * Le paramétrage de la validation se trouve dans un tableau qui correspond à une étape\r\n * @returns\r\n */\r\nexport default function ExamenFormSessionInterne({\r\n  objectif,\r\n  sessionsLocked,\r\n  onClose\r\n}: ExamenFormSessionInterneProps) {\r\n  const { values, setValues } = useFormikContext<Examen>();\r\n\r\n  const filteredSessions = getSessionsFutures(objectif?.sessions);\r\n\r\n  const listeSessions =\r\n    filteredSessions\r\n      ?.filter((ses: SessionExamen) => !sessionsLocked.includes(ses.code))\r\n      .map((x: SessionExamen) => {\r\n        const nbPlacesRestantes = x.nombrePlacesMax - x.nombreInscrits;\r\n        const estComplete = nbPlacesRestantes <= 0;\r\n        const pluriel = nbPlacesRestantes > 1 ? 's' : '';\r\n\r\n        return {\r\n          code: x.code,\r\n          label: `${x.designation} (${\r\n            estComplete ? 'complète' : `${nbPlacesRestantes} place${pluriel} restante${pluriel}`\r\n          })`,\r\n          date: x.dateEpreuvesAdmission,\r\n          disabled: estComplete\r\n        };\r\n      })\r\n      .sort(function (a, b) {\r\n        if (a.disabled === b.disabled) {\r\n          // Deux sessions dans le même état (complète ou pas) : tri par ordre croissant de dates\r\n          if (a.date && b.date) {\r\n            if (a.date > b.date) {\r\n              return 1;\r\n            }\r\n            if (a.date < b.date) {\r\n              return -1;\r\n            }\r\n          } else {\r\n            if (a.date && !b.date) {\r\n              return 1;\r\n            }\r\n            if (!a.date && b.date) {\r\n              return -1;\r\n            }\r\n          }\r\n          return 0;\r\n        } else {\r\n          // Les sessions désactivées en fin de liste\r\n          return a.disabled ? 1 : -1;\r\n        }\r\n      }) || [];\r\n\r\n  const allowRegistration = filteredSessions?.length > 0;\r\n\r\n  useEffect(() => {\r\n    /*\r\n    Récupérer les informations liées à la session au changement de celle ci\r\n    */\r\n    let newSession: SessionExamen = new defaultSession();\r\n\r\n    if (values?.session?.code != undefined && values?.session?.code !== '') {\r\n      const infosSession = filteredSessions?.find((s) => s.code === values.session.code);\r\n\r\n      if (infosSession) {\r\n        newSession = {\r\n          ...infosSession,\r\n          epreuves: infosSession?.epreuves?.map((epr: Epreuve) => {\r\n            return { ...epr, statut: 'INS', note: 0, typeFichier: 'INS' };\r\n          }),\r\n          centreExamen: infosSession?.centreExamen\r\n        };\r\n      }\r\n    }\r\n\r\n    setValues({ ...values, session: newSession });\r\n  }, [values?.session?.code]);\r\n\r\n  return (\r\n    <Box sx={{ p: 1.5 }}>\r\n      <Stack flexDirection={'column'}>\r\n        {allowRegistration ? (\r\n          <Stack gap=\"40px\">\r\n            <Stack gap=\"10px\">\r\n              <SelectField fullWidth label=\"Session\" name={'session.code'} data={listeSessions} />\r\n              {values?.session?.dateEpreuvesAdmission != null &&\r\n                values?.session?.dateEpreuvesAdmission != '' && (\r\n                  <Typography variant=\"body2\">{`Date des épreuves : ${fDate(\r\n                    values.session.dateEpreuvesAdmission\r\n                  )}`}</Typography>\r\n                )}\r\n              <ExamenCentreInfosDisplay centreExamen={values?.session?.centreExamen} />\r\n            </Stack>\r\n            {values?.session?.code && values?.session?.code !== '' && (\r\n              <ExamenPrerequis objectif={objectif} session={values?.session} />\r\n            )}\r\n          </Stack>\r\n        ) : (\r\n          <Alert severity=\"info\">\r\n            <Typography variant=\"subtitle2\">Pour information</Typography>\r\n            {`Les sessions de votre ${objectif?.designation} ne sont pas encore ouvertes.`}\r\n            <br />\r\n            Nous vous invitons à revenir ultérieurement et à rester attentif aux communications de\r\n            votre école à ce sujet.\r\n          </Alert>\r\n        )}\r\n      </Stack>\r\n      <CardActions\r\n        sx={{\r\n          alignItems: 'baseline',\r\n          justifyContent: 'center',\r\n          pr: 3,\r\n          pl: 3,\r\n          pt: 6\r\n        }}\r\n      >\r\n        <Button onClick={onClose} variant=\"text\">\r\n          Fermer\r\n        </Button>\r\n        {allowRegistration && (\r\n          <Tooltip\r\n            title={\r\n              !values?.session || values?.session.code === ''\r\n                ? 'Veuillez sélectionner une session'\r\n                : values?.session?.nombrePlacesMax <= values?.session?.nombreInscrits\r\n                ? 'Session complète'\r\n                : ''\r\n            }\r\n          >\r\n            <span>\r\n              <Button\r\n                type=\"submit\"\r\n                variant=\"contained\"\r\n                disabled={values?.session?.nombrePlacesMax <= values?.session?.nombreInscrits}\r\n                sx={{ marginLeft: 1 }}\r\n              >\r\n                S'inscrire\r\n              </Button>\r\n            </span>\r\n          </Tooltip>\r\n        )}\r\n      </CardActions>\r\n    </Box>\r\n  );\r\n}\r\n","import { Alert, Button, Card, CardActions, CardContent, CardHeader } from '@mui/material';\r\nimport { useNavigate } from 'react-router';\r\nimport { updateDateExamenEnvisagee } from 'redux/slices/examen';\r\nimport { dispatch } from 'redux/store';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport { Examen, ObjectifGeneral, TypePeriodeInscription } from '../../../@types/examen';\r\nimport { Form, Formik, FormikErrors, useFormik } from 'formik';\r\nimport { useState } from 'react';\r\nimport useAuth from 'hooks/useAuth';\r\nimport useExamenFormGestionInterne from 'hooks/useExamenFormGestionInterne';\r\nimport ExamenFormPeriode from './ExamenFormPeriode';\r\nimport {\r\n  ExamenFormGestIntPeriodeValidationSchema,\r\n  ExamenFormGestIntSessionValidationSchema\r\n} from './ExamenFormGestionInterneValidationSchema';\r\nimport ExamenFormObjectivePlanning from './ExamenFormObjectivePlanning';\r\nimport ExamenFormSessionInterne from './ExamenFormSessionInterne';\r\n\r\nexport type ExamenFormGestionInterneProps = {\r\n  objectif: ObjectifGeneral;\r\n};\r\n\r\n/**\r\n * Créer une session d'examen\r\n * La validation se fait par étape.\r\n * Le paramétrage de la validation se trouve dans un tableau qui correspond à une étape\r\n * @returns\r\n */\r\nexport default function ExamenFormGestionInterne({ objectif }: ExamenFormGestionInterneProps) {\r\n  const { getContractCurrent } = useAuth();\r\n  const contractCurrent = getContractCurrent();\r\n\r\n  const { getExamen, examens, errorForm } = useExamenFormGestionInterne();\r\n\r\n  const navigate = useNavigate();\r\n\r\n  const backToExamens = () => {\r\n    navigate(PATH_DASHBOARD.suivi.examens);\r\n  };\r\n\r\n  const backToPeriod = () => {\r\n    setActiveStep(0);\r\n  };\r\n\r\n  const handleNext = () => {\r\n    setActiveStep(activeStep + 1);\r\n  };\r\n\r\n  let formDateEnvisagee = <></>;\r\n  let validationSchema: Array<any> = [];\r\n\r\n  switch (objectif?.periodeInscription) {\r\n    case TypePeriodeInscription.Session:\r\n      formDateEnvisagee = (\r\n        <ExamenFormSessionInterne\r\n          objectif={objectif}\r\n          sessionsLocked={examens.map((exa) => exa.session.code)}\r\n          onClose={backToExamens}\r\n        />\r\n      );\r\n      validationSchema = ExamenFormGestIntSessionValidationSchema;\r\n      break;\r\n    case TypePeriodeInscription.Mois:\r\n      formDateEnvisagee = <ExamenFormPeriode objectif={objectif} onClose={backToExamens} />;\r\n      validationSchema = ExamenFormGestIntPeriodeValidationSchema;\r\n      break;\r\n    case TypePeriodeInscription.Trimestre:\r\n      formDateEnvisagee = <ExamenFormPeriode objectif={objectif} onClose={backToExamens} />;\r\n      validationSchema = ExamenFormGestIntPeriodeValidationSchema;\r\n      break;\r\n    default:\r\n      formDateEnvisagee = <></>;\r\n      validationSchema = [];\r\n      break;\r\n  }\r\n\r\n  let steps = [\r\n    {\r\n      id: 'DATEENVISAGEE',\r\n      label: 'Période',\r\n      component: formDateEnvisagee\r\n    },\r\n    {\r\n      id: 'OBJECTIF',\r\n      label: 'Objectif',\r\n      component: <ExamenFormObjectivePlanning contract={contractCurrent} onClose={backToPeriod} />\r\n    }\r\n  ];\r\n\r\n  const [activeStep, setActiveStep] = useState(0);\r\n  const isLastStep = activeStep === steps.length - 1;\r\n  const currentValidationSchema =\r\n    validationSchema.length >= activeStep + 1 ? validationSchema[activeStep] : null;\r\n\r\n  const handleSubmit = (values: Examen, actions: any) => {\r\n    if (!isLastStep) {\r\n      handleNext();\r\n    }\r\n  };\r\n\r\n  return (\r\n    <Card>\r\n      <CardHeader title={objectif?.designation} />\r\n      <CardContent>\r\n        <Formik\r\n          initialValues={getExamen()}\r\n          validationSchema={currentValidationSchema}\r\n          onSubmit={handleSubmit}\r\n        >\r\n          {(props: any) => {\r\n            const { values, errors } = props;\r\n\r\n            return <Form>{activeStep === steps.length ? <></> : steps[activeStep].component}</Form>;\r\n          }}\r\n        </Formik>\r\n        {errorForm && <Alert severity=\"error\">{errorForm}</Alert>}\r\n      </CardContent>\r\n    </Card>\r\n  );\r\n}\r\n","import { Box, Button, Card, CardContent, Container } from '@mui/material';\r\nimport { RootState, useSelector } from 'redux/store';\r\nimport { getLabelCategoryObjectif, getLabelDefaultCategoryObjectif } from 'utils/helperExamen';\r\nimport Page from 'components/Page';\r\nimport HeaderBreadcrumbs from 'components/HeaderBreadcrumbs';\r\nimport ExamenFormPeriode from 'components/_dashboard/examen/ExamenFormPeriode';\r\nimport { ObjectifGeneral } from '../../@types/examen';\r\nimport CardContainer from 'components/CardContainer';\r\nimport ExamenFormGestionInterne from 'components/_dashboard/examen/ExamenFormGestionInterne';\r\nimport EmptyContent from 'components/EmptyContent';\r\n\r\ntype ExamenCreateGestionInterneProps = {};\r\n\r\nexport default function ExamenCreateGestionInterne({}: ExamenCreateGestionInterneProps) {\r\n  const { objectifSAY, examens } = useSelector((state: RootState) => state.examen);\r\n\r\n  const objectif: ObjectifGeneral | null = objectifSAY;\r\n\r\n  // Blindage si navigation par URL\r\n  const examAlreadyExists =\r\n    objectif &&\r\n    examens?.some(\r\n      (e) => e.code === objectif.code && !['ABA', 'REP'].includes(e.statutInscription?.code)\r\n    );\r\n\r\n  const disableAddExamen = !objectif || examAlreadyExists;\r\n\r\n  const labelCategoryObjectif = objectif\r\n    ? getLabelCategoryObjectif(objectif?.categorie)\r\n    : getLabelDefaultCategoryObjectif();\r\n\r\n  return (\r\n    <Page\r\n      title={`Mes ${labelCategoryObjectif?.debuteMajusculePluriel} | SkillAndYou`}\r\n      helpCategoryId=\"Examen\"\r\n    >\r\n      <Container maxWidth={'lg'}>\r\n        <HeaderBreadcrumbs\r\n          heading={labelCategoryObjectif?.debuteMajusculePluriel}\r\n          links={[]}\r\n          action={<></>}\r\n        />\r\n        {disableAddExamen ? (\r\n          <Card>\r\n            <CardContent>\r\n              <EmptyContent\r\n                title={`Ajouter ${labelCategoryObjectif?.possessif}`}\r\n                description={\"L'ajout est indisponible.\"}\r\n                img={'/static/illustrations/examens/inscription_popup.svg'}\r\n              />\r\n            </CardContent>\r\n          </Card>\r\n        ) : (\r\n          <ExamenFormGestionInterne objectif={objectif} />\r\n        )}\r\n      </Container>\r\n    </Page>\r\n  );\r\n}\r\n","import { Suspense, lazy, useEffect } from 'react';\r\nimport { Navigate, useRoutes, useLocation } from 'react-router-dom';\r\n// layouts\r\nimport MainLayout, { QuestionnaireLayout } from '../layouts/main';\r\nimport DashboardLayout from '../layouts/dashboard';\r\nimport LogoOnlyLayout from '../layouts/LogoOnlyLayout';\r\n\r\n//type\r\nimport { ModuleType } from '../@types/contract';\r\n\r\n// guards\r\nimport GuestGuard from '../guards/GuestGuard';\r\nimport AuthGuard from '../guards/AuthGuard';\r\n// import RoleBasedGuard from '../guards/RoleBasedGuard';\r\n// components\r\nimport LoadingScreen from '../components/LoadingScreen';\r\n\r\nimport ModuleGuard from 'guards/ModuleGuard';\r\nimport Overtimes from 'pages/dashboard/Overtimes';\r\nimport StudyPlanSearchDetails from 'pages/dashboard/StudyPlanSearchDetails';\r\nimport ExamenCreate from 'pages/dashboard/ExamenCreate';\r\nimport AttendanceReportLandingPage from 'pages/AttendanceReportLandingPage';\r\nimport ExamenInscriptionAdd from 'components/_dashboard/examen/ExamenInscriptionAdd';\r\nimport ExamenCreateGestionInterne from 'pages/dashboard/ExamenCreateGestionInterne';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst Loadable = (Component: React.ElementType) => (props: any) => {\r\n  // eslint-disable-next-line react-hooks/rules-of-hooks\r\n  const { pathname } = useLocation();\r\n  const isDashboard = pathname.includes('/dashboard');\r\n\r\n  return (\r\n    <Suspense\r\n      fallback={\r\n        <LoadingScreen\r\n          sx={{\r\n            ...(!isDashboard && {\r\n              top: 0,\r\n              left: 0,\r\n              width: 1,\r\n              zIndex: 9999,\r\n              position: 'fixed'\r\n            })\r\n          }}\r\n        />\r\n      }\r\n    >\r\n      <Component {...props} />\r\n    </Suspense>\r\n  );\r\n};\r\n\r\nexport default function Router() {\r\n  return useRoutes([\r\n    { path: '*', element: <Navigate to=\"/\" /> },\r\n    {\r\n      path: 'auth',\r\n\r\n      children: [\r\n        {\r\n          path: 'login',\r\n          element: (\r\n            <GuestGuard>\r\n              <Login />\r\n            </GuestGuard>\r\n          )\r\n        },\r\n        {\r\n          path: 'register',\r\n          element: (\r\n            <GuestGuard>\r\n              <Register />\r\n            </GuestGuard>\r\n          )\r\n        },\r\n        { path: 'login-unprotected', element: <Login /> },\r\n        { path: 'register-unprotected', element: <Register /> },\r\n        { path: 'reset-password', element: <ResetPassword /> },\r\n        { path: 'verify', element: <VerifyCode /> },\r\n        { path: 'change-password', element: <ChangePassword /> },\r\n\r\n        { path: 'auth/', element: <Navigate to=\"/dashboard/app\" /> }\r\n      ]\r\n    },\r\n    { path: 'reset', element: <ChangePassword /> }, //provisoire le temps de supprimer l'ancien espace élèves\r\n    // Dashboard Routes\r\n    {\r\n      path: 'dashboard',\r\n      element: (\r\n        <AuthGuard>\r\n          <DashboardLayout />\r\n        </AuthGuard>\r\n      ),\r\n      children: [\r\n        { element: <Navigate to=\"/dashboard/app\" replace /> },\r\n\r\n        {\r\n          path: 'landing-pe',\r\n          element: <LandingStudyPlan />\r\n        },\r\n        /*\r\n        { path: 'app', element: <GeneralApp /> },\r\n        { path: 'app/:mode', element: <GeneralApp /> },\r\n        */\r\n        { path: 'app', element: <Dashboard /> },\r\n        { path: 'app/:mode', element: <Dashboard /> },\r\n        { path: 'mentionslegales', element: <MentionLegal /> },\r\n        { path: 'contact', element: <Contact /> },\r\n        { path: 'aides', element: <Help /> },\r\n        {\r\n          path: 'evaluations',\r\n          children: [\r\n            {\r\n              path: 'details/:itemId',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.StudyPlan]}>\r\n                  <StudyPlanDetails />\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n            {\r\n              path: '',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.StudyPlan]}>\r\n                  <StudyPlanHomeworks />\r\n                </ModuleGuard>\r\n              )\r\n            }\r\n          ]\r\n        },\r\n        {\r\n          path: 'prolongation',\r\n          element: (\r\n            <ModuleGuard accessibleModules={[ModuleType.Overtime]}>\r\n              {' '}\r\n              <Overtimes />{' '}\r\n            </ModuleGuard>\r\n          )\r\n        },\r\n\r\n        {\r\n          path: 'suivi',\r\n          children: [\r\n            { element: <Navigate to=\"/dashboard/suivi/historiques\" replace /> },\r\n            {\r\n              path: 'skills',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.StudyPlan]}>\r\n                  <StudyPlanSkills />\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n            {\r\n              path: 'relevenotes',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.StudyPlan]}>\r\n                  <TranscriptOfStudyNotes />\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n            {\r\n              path: 'historiques',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.StudyPlan]}>\r\n                  <Historic />\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n            {\r\n              path: 'historiques/:historicType',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.StudyPlan]}>\r\n                  <Historic />\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n            {\r\n              path: 'internships',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.InternalShipView]}>\r\n                  {' '}\r\n                  <Internships />\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n            {\r\n              path: 'internship',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.InternalShipUpdate]}>\r\n                  {' '}\r\n                  <InternshipCreate />\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n            {\r\n              path: 'examens',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.Examen]}>\r\n                  {' '}\r\n                  <Examens />\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n            {\r\n              path: 'examen-new',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.ExamenUpdate]}>\r\n                  {' '}\r\n                  <ExamenCreate />\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n            {\r\n              path: 'examen-add',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.ExamenUpdate]}>\r\n                  {' '}\r\n                  <ExamenInscriptionAdd />\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n            {\r\n              path: 'examen-preinscription',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.ExamenUpdate]}>\r\n                  {' '}\r\n                  <ExamenCreateGestionInterne />\r\n                </ModuleGuard>\r\n              )\r\n            }\r\n          ]\r\n        },\r\n        {\r\n          path: 'article',\r\n          children: [\r\n            { element: <Navigate to=\"/dashboard/article/list\" replace /> },\r\n            {\r\n              path: 'list',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.StudyPlan]}>\r\n                  {' '}\r\n                  <Articles />\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n            {\r\n              path: ':id',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.StudyPlan]}>\r\n                  <Article />{' '}\r\n                </ModuleGuard>\r\n              )\r\n            }\r\n          ]\r\n        },\r\n        {\r\n          path: 'job',\r\n          children: [\r\n            { element: <Navigate to=\"/dashboard/job/list\" replace /> },\r\n            {\r\n              path: 'list',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.JobView]}>\r\n                  {' '}\r\n                  <Jobs />\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n            {\r\n              path: ':id',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.JobView]}>\r\n                  <Job />{' '}\r\n                </ModuleGuard>\r\n              )\r\n            }\r\n          ]\r\n        },\r\n\r\n        {\r\n          path: 'agenda',\r\n          element: (\r\n            <ModuleGuard accessibleModules={[ModuleType.Agenda]}>\r\n              {' '}\r\n              <Agenda />\r\n            </ModuleGuard>\r\n          )\r\n        },\r\n\r\n        {\r\n          path: 'favoris',\r\n          element: (\r\n            <ModuleGuard accessibleModules={[ModuleType.Dashboard]}>\r\n              <FavoriteList />\r\n            </ModuleGuard>\r\n          )\r\n        },\r\n        {\r\n          path: 'virtualclass',\r\n          children: [\r\n            { element: <Navigate to=\"/dashboard/virtualclass/list\" replace /> },\r\n            {\r\n              path: 'list',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.VirtualClassView]}>\r\n                  <VirtualClassList />{' '}\r\n                </ModuleGuard>\r\n              )\r\n            }\r\n          ]\r\n        },\r\n        {\r\n          path: 'workshop',\r\n          children: [\r\n            { element: <Navigate to=\"/dashboard/workshop/list\" replace /> },\r\n            {\r\n              path: 'list',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.WorkshopView]}>\r\n                  <WorkshopList />\r\n                </ModuleGuard>\r\n              )\r\n            }\r\n          ]\r\n        },\r\n        {\r\n          path: 'studyPlan',\r\n          children: [\r\n            { element: <Navigate to=\"/dashboard/studyPlan/list\" replace /> },\r\n            { path: 'list', element: <StudyPlan /> },\r\n\r\n            {\r\n              path: 'details/:itemId/:rowNumber',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.StudyPlan]}>\r\n                  {' '}\r\n                  <StudyPlanDetails />{' '}\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n            {\r\n              path: 'details/:itemId',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.StudyPlan]}>\r\n                  {' '}\r\n                  <StudyPlanDetails />{' '}\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n            {\r\n              path: 'details/:phaseId/:unityId/:chapterId',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.StudyPlan]}>\r\n                  {' '}\r\n                  <StudyPlanDetails />{' '}\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n\r\n            {\r\n              path: 'documents',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.StudyPlan]}>\r\n                  {' '}\r\n                  <StudyPlanPlanDocuments />{' '}\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n            {\r\n              path: 'activity',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.StudyPlan]}>\r\n                  {' '}\r\n                  <StudyPlanTools />{' '}\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n            {\r\n              path: 'search',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.StudyPlan]}>\r\n                  {' '}\r\n                  <StudyPlanSearch />{' '}\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n            {\r\n              path: 'searchdetails',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.StudyPlan]}>\r\n                  {' '}\r\n                  <StudyPlanSearchDetails />{' '}\r\n                </ModuleGuard>\r\n              )\r\n            }\r\n          ]\r\n        },\r\n        {\r\n          path: 'mail',\r\n          children: [\r\n            {\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.Dashboard]}>\r\n                  <Navigate to=\"/dashboard/mail/all\" replace />\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n            {\r\n              path: ':systemLabel/:messageId/:typeId/:messageTypeId',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.Dashboard]}>\r\n                  <Mail />\r\n                </ModuleGuard>\r\n              )\r\n            }\r\n          ]\r\n        },\r\n        {\r\n          path: 'message',\r\n          children: [\r\n            {\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.Dashboard]}>\r\n                  {' '}\r\n                  <Navigate to=\"/dashboard/message/all\" replace />\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n            {\r\n              path: ':systemLabel',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.Dashboard]}>\r\n                  <Message />\r\n                </ModuleGuard>\r\n              )\r\n            },\r\n            {\r\n              path: ':systemLabel/:messageId/:typeId/:messageType',\r\n              element: (\r\n                <ModuleGuard accessibleModules={[ModuleType.Dashboard]}>\r\n                  <Message />\r\n                </ModuleGuard>\r\n              )\r\n            }\r\n          ]\r\n        },\r\n        {\r\n          path: 'student',\r\n          children: [\r\n            { element: <Navigate to=\"/dashboard/student/account\" replace /> },\r\n            {\r\n              path: '/dashboard/student/account/:tabName',\r\n              element: <StudentAccount />\r\n            }\r\n          ]\r\n        },\r\n        { path: '/dashboard/*', element: <Navigate to=\"/dashboard/app\" /> }\r\n      ]\r\n    },\r\n    { path: '/', element: <Navigate to=\"/dashboard/app\" /> },\r\n    // Main Routes\r\n    {\r\n      path: '*',\r\n      element: <LogoOnlyLayout />,\r\n      children: [\r\n        { path: '500', element: <Page500 /> },\r\n        { path: '404', element: <NotFound /> },\r\n        { path: 'Maintenance', element: <Maintenance /> }\r\n      ]\r\n    },\r\n\r\n    {\r\n      path: '/',\r\n      element: <MainLayout />,\r\n      children: [\r\n        {\r\n          path: 'assiduite/:year/:month',\r\n          element: <AttendanceReportLandingPage />\r\n        }\r\n      ]\r\n    },\r\n    {\r\n      path: '/',\r\n      element: <QuestionnaireLayout />,\r\n      children: [\r\n        {\r\n          path: 'questionnaire',\r\n          element: <LandingSurveyPage />\r\n        }\r\n      ]\r\n    }\r\n  ]);\r\n}\r\n\r\n// IMPORT COMPONENTS\r\n\r\n//close //mode ancien EE\r\nconst PageClose = () => {\r\n  return <></>;\r\n};\r\n\r\n// Authentication\r\nconst Login = Loadable(lazy(() => import('../pages/authentication/Login')));\r\nconst Register = Loadable(lazy(() => import('../pages/authentication/Register')));\r\nconst ResetPassword = Loadable(lazy(() => import('../pages/authentication/ResetPassword')));\r\nconst ChangePassword = Loadable(lazy(() => import('../pages/authentication/ChangePassword')));\r\nconst VerifyCode = Loadable(lazy(() => import('../pages/authentication/VerifyCode')));\r\n// Dashboard\r\nconst GeneralApp = Loadable(lazy(() => import('../pages/dashboard/GeneralApp')));\r\nconst Dashboard = Loadable(lazy(() => import('../pages/dashboard/Dashboard')));\r\nconst Articles = Loadable(lazy(() => import('../pages/dashboard/Articles')));\r\nconst Article = Loadable(lazy(() => import('../pages/dashboard/Article')));\r\nconst Internships = Loadable(lazy(() => import('../pages/dashboard/Internships')));\r\nconst InternshipCreate = Loadable(lazy(() => import('../pages/dashboard/InternshipCreate')));\r\nconst Examens = Loadable(lazy(() => import('../pages/dashboard/Examens')));\r\n\r\nconst Jobs = Loadable(lazy(() => import('../pages/dashboard/Jobs')));\r\nconst Job = Loadable(lazy(() => import('../pages/dashboard/Job')));\r\nconst LandingStudyPlan = Loadable(lazy(() => import('../pages/LandingStudyPlan')));\r\n\r\nconst StudentAccount = Loadable(lazy(() => import('../pages/dashboard/StudentAccount')));\r\n\r\nconst Agenda = Loadable(lazy(() => import('../pages/dashboard/Agenda')));\r\nconst FavoriteList = Loadable(lazy(() => import('../pages/dashboard/FavoriteList')));\r\nconst VirtualClassList = Loadable(lazy(() => import('../pages/dashboard/VirtualClassList')));\r\nconst Help = Loadable(lazy(() => import('../pages/dashboard/Help')));\r\nconst WorkshopList = Loadable(lazy(() => import('../pages/dashboard/WorkshopList')));\r\nconst MentionLegal = Loadable(lazy(() => import('../pages/dashboard/MentionLegal')));\r\nconst Contact = Loadable(lazy(() => import('../pages/dashboard/Contact')));\r\n\r\nconst Historic = Loadable(lazy(() => import('../pages/dashboard/Historic')));\r\n\r\nconst StudyPlan = Loadable(lazy(() => import('../pages/dashboard/StudyPlan')));\r\nconst StudyPlanDetails = Loadable(lazy(() => import('../pages/dashboard/StudyPlanDetails')));\r\nconst StudyPlanSkills = Loadable(lazy(() => import('../pages/dashboard/StudyPlanSkills')));\r\nconst StudyPlanTools = Loadable(lazy(() => import('../pages/dashboard/StudyPlanTools')));\r\nconst StudyPlanHomeworks = Loadable(lazy(() => import('../pages/dashboard/StudyPlanHomeworks')));\r\nconst StudyPlanSearch = Loadable(lazy(() => import('../pages/dashboard/StudyPlanSearch')));\r\nconst TranscriptOfStudyNotes = Loadable(\r\n  lazy(() => import('../pages/dashboard/TranscriptOfStudyNotes'))\r\n);\r\nconst StudyPlanPlanDocuments = Loadable(\r\n  lazy(() => import('../pages/dashboard/StudyPlanPlanDocuments'))\r\n);\r\n\r\nconst Mail = Loadable(lazy(() => import('../pages/dashboard/Mail')));\r\nconst Message = Loadable(lazy(() => import('../pages/dashboard/Message')));\r\n\r\nconst Page500 = Loadable(lazy(() => import('../pages/Page500')));\r\nconst NotFound = Loadable(lazy(() => import('../pages/Page404')));\r\nconst Maintenance = Loadable(lazy(() => import('../pages/Maintenance')));\r\nconst LandingSurveyPage = Loadable(lazy(() => import('../pages/LandingSurveyPage')));\r\n","// ----------------------------------------------------------------------\r\n\r\ndeclare module '@mui/system' {\r\n  interface Shape {\r\n    borderRadiusSm: number | string;\r\n    borderRadiusMd: number | string;\r\n  }\r\n}\r\n\r\nconst shape = {\r\n  borderRadius: 8,\r\n  borderRadiusSm: 12,\r\n  borderRadiusMd: 16\r\n};\r\n\r\nexport default shape;\r\n","// ----------------------------------------------------------------------\r\n\r\nfunction pxToRem(value: number) {\r\n  return `${value / 16}rem`;\r\n}\r\n\r\nfunction responsiveFontSizes({ sm, md, lg }: { sm: number; md: number; lg: number }) {\r\n  return {\r\n    '@media (min-width:600px)': {\r\n      fontSize: pxToRem(sm)\r\n    },\r\n    '@media (min-width:900px)': {\r\n      fontSize: pxToRem(md)\r\n    },\r\n    '@media (min-width:1200px)': {\r\n      fontSize: pxToRem(lg)\r\n    }\r\n  };\r\n}\r\n\r\nconst FONT_PRIMARY = 'Public Sans, sans-serif'; // Google Font\r\n// const FONT_SECONDARY = 'CircularStd, sans-serif'; // Local Font\r\n\r\nconst typography = {\r\n  fontFamily: FONT_PRIMARY,\r\n  fontWeightRegular: 400,\r\n  fontWeightMedium: 600,\r\n  fontWeightBold: 700,\r\n  h1: {\r\n    fontWeight: 700,\r\n    lineHeight: 80 / 64,\r\n    fontSize: pxToRem(40),\r\n    ...responsiveFontSizes({ sm: 52, md: 58, lg: 64 })\r\n  },\r\n  h2: {\r\n    fontWeight: 700,\r\n    lineHeight: 64 / 48,\r\n    fontSize: pxToRem(32),\r\n    ...responsiveFontSizes({ sm: 40, md: 44, lg: 48 })\r\n  },\r\n  h3: {\r\n    fontWeight: 700,\r\n    lineHeight: 1.5,\r\n    fontSize: pxToRem(24),\r\n    ...responsiveFontSizes({ sm: 26, md: 30, lg: 32 })\r\n  },\r\n  h4: {\r\n    fontWeight: 700,\r\n    lineHeight: 1.5,\r\n    fontSize: pxToRem(20),\r\n    ...responsiveFontSizes({ sm: 20, md: 24, lg: 24 })\r\n  },\r\n  h5: {\r\n    fontWeight: 700,\r\n    lineHeight: 1.5,\r\n    fontSize: pxToRem(18),\r\n    ...responsiveFontSizes({ sm: 19, md: 20, lg: 20 })\r\n  },\r\n  h6: {\r\n    fontWeight: 700,\r\n    lineHeight: 28 / 18,\r\n    fontSize: pxToRem(17),\r\n    ...responsiveFontSizes({ sm: 18, md: 18, lg: 18 })\r\n  },\r\n  subtitle1: {\r\n    fontWeight: 600,\r\n    lineHeight: 1.5,\r\n    fontSize: pxToRem(16)\r\n  },\r\n  subtitle2: {\r\n    fontWeight: 700,\r\n    lineHeight: 22 / 14,\r\n    fontSize: pxToRem(14)\r\n  },\r\n  body1: {\r\n    lineHeight: 1.5,\r\n    fontSize: pxToRem(16)\r\n  },\r\n  body2: {\r\n    lineHeight: 22 / 14,\r\n    fontSize: pxToRem(14)\r\n  },\r\n  caption: {\r\n    lineHeight: 22 / 14,\r\n    fontSize: pxToRem(12),\r\n    color: '#637381'\r\n  },\r\n  overline: {\r\n    fontWeight: 700,\r\n    lineHeight: 1.5,\r\n    fontSize: pxToRem(12),\r\n    letterSpacing: 1.1,\r\n    textTransform: 'uppercase'\r\n  },\r\n  button: {\r\n    fontWeight: 700,\r\n    lineHeight: 24 / 14,\r\n    fontSize: pxToRem(12),\r\n    textTransform: 'initial'\r\n  }\r\n} as const;\r\n\r\nexport default typography;\r\n","// ----------------------------------------------------------------------\r\n\r\nconst breakpoints = {\r\n  values: {\r\n    xs: 0,\r\n    sm: 600,\r\n    md: 900,\r\n    lg: 1200,\r\n    xl: 1536\r\n  }\r\n};\r\n\r\nexport default breakpoints;\r\n","import { Icon } from '@iconify/react';\r\nimport starFill from '@iconify/icons-eva/star-fill';\r\nimport { Theme } from '@mui/material/styles';\r\nimport { SvgIcon } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst ICON_SMALL = { width: 20, height: 20 };\r\nconst ICON_LARGE = { width: 28, height: 28 };\r\n\r\nconst ICON = (\r\n  <SvgIcon>\r\n    <Icon icon={starFill} />\r\n  </SvgIcon>\r\n);\r\n\r\nexport default function Rating(theme: Theme) {\r\n  return {\r\n    MuiRating: {\r\n      defaultProps: {\r\n        emptyIcon: ICON,\r\n        icon: ICON\r\n      },\r\n\r\n      styleOverrides: {\r\n        root: {\r\n          '&.Mui-disabled': {\r\n            opacity: 0.48\r\n          }\r\n        },\r\n        iconEmpty: { color: theme.palette.grey[500_48] },\r\n        sizeSmall: { '& svg': { ...ICON_SMALL } },\r\n        sizeLarge: { '& svg': { ...ICON_LARGE } }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Icon } from '@iconify/react';\r\nimport plusSquareOutline from '@iconify/icons-eva/plus-square-outline';\r\nimport minusSquareOutline from '@iconify/icons-eva/minus-square-outline';\r\nimport closeSquareOutline from '@iconify/icons-eva/close-square-outline';\r\nimport { Theme } from '@mui/material/styles';\r\nimport { Box } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst ICON_SIZE = { width: 20, height: 20 };\r\n\r\nexport default function TreeView(theme: Theme) {\r\n  return {\r\n    MuiTreeView: {\r\n      defaultProps: {\r\n        defaultCollapseIcon: <Icon icon={minusSquareOutline} {...ICON_SIZE} />,\r\n        defaultExpandIcon: <Icon icon={plusSquareOutline} {...ICON_SIZE} />,\r\n        defaultEndIcon: (\r\n          <Box\r\n            component={Icon}\r\n            icon={closeSquareOutline}\r\n            {...ICON_SIZE}\r\n            sx={{ color: 'text.secondary' }}\r\n          />\r\n        )\r\n      }\r\n    },\r\n    MuiTreeItem: {\r\n      styleOverrides: {\r\n        label: { ...theme.typography.body2 },\r\n        iconContainer: { width: 'auto' }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\nimport { SvgIcon, SvgIconProps } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nfunction Icon(props: SvgIconProps) {\r\n  return (\r\n    <SvgIcon {...props}>\r\n      <path d=\"M17 3a4 4 0 014 4v10a4 4 0 01-4 4H7a4 4 0 01-4-4V7a4 4 0 014-4h10zm0 2H7a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2z\" />\r\n    </SvgIcon>\r\n  );\r\n}\r\n\r\nfunction CheckedIcon(props: SvgIconProps) {\r\n  return (\r\n    <SvgIcon {...props}>\r\n      <path d=\"M17 3a4 4 0 014 4v10a4 4 0 01-4 4H7a4 4 0 01-4-4V7a4 4 0 014-4h10zm-1.372 4.972a1.006 1.006 0 00-.928.388l-3.78 5-1.63-2.08a1.001 1.001 0 00-1.58 1.23l2.44 3.11a1 1 0 001.58-.01l4.57-6v-.03a1.006 1.006 0 00-.672-1.608z\" />\r\n    </SvgIcon>\r\n  );\r\n}\r\n\r\nfunction IndeterminateIcon(props: SvgIconProps) {\r\n  return (\r\n    <SvgIcon {...props}>\r\n      <path d=\"M17 3a4 4 0 014 4v10a4 4 0 01-4 4H7a4 4 0 01-4-4V7a4 4 0 014-4h10zm-1.75 8h-6.5a.75.75 0 00-.75.75v.5c0 .414.336.75.75.75h6.5a.75.75 0 00.75-.75v-.5a.75.75 0 00-.75-.75z\" />\r\n    </SvgIcon>\r\n  );\r\n}\r\n\r\nexport default function Checkbox(theme: Theme) {\r\n  return {\r\n    MuiCheckbox: {\r\n      defaultProps: {\r\n        icon: <Icon />,\r\n        checkedIcon: <CheckedIcon />,\r\n        indeterminateIcon: <IndeterminateIcon />\r\n      },\r\n\r\n      styleOverrides: {\r\n        root: {\r\n          padding: theme.spacing(1),\r\n          '&.Mui-checked.Mui-disabled, &.Mui-disabled': {\r\n            color: theme.palette.action.disabled\r\n          },\r\n          '& .MuiSvgIcon-fontSizeMedium': {\r\n            width: 24,\r\n            height: 24\r\n          },\r\n          '& .MuiSvgIcon-fontSizeSmall': {\r\n            width: 20,\r\n            height: 20\r\n          },\r\n          svg: {\r\n            fontSize: 24,\r\n            '&[font-size=small]': {\r\n              fontSize: 20\r\n            }\r\n          }\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { merge } from 'lodash';\r\nimport { Theme } from '@mui/material/styles';\r\nimport Fab from './Fab';\r\nimport Card from './Card';\r\nimport Chip from './Chip';\r\nimport Tabs from './Tabs';\r\nimport Menu from './Menu';\r\nimport Grid from './Grid';\r\nimport Link from './Link';\r\nimport Lists from './Lists';\r\nimport Table from './Table';\r\nimport Alert from './Alert';\r\nimport Badge from './Badge';\r\nimport Paper from './Paper';\r\nimport Input from './Input';\r\nimport Radio from './Radio';\r\nimport Drawer from './Drawer';\r\nimport Dialog from './Dialog';\r\nimport Avatar from './Avatar';\r\nimport Rating from './Rating';\r\nimport Slider from './Slider';\r\nimport Button from './Button';\r\nimport Switch from './Switch';\r\nimport Select from './Select';\r\nimport SvgIcon from './SvgIcon';\r\nimport Tooltip from './Tooltip';\r\nimport Popover from './Popover';\r\nimport Stepper from './Stepper';\r\nimport Pickers from './Pickers';\r\nimport DataGrid from './DataGrid';\r\nimport Skeleton from './Skeleton';\r\nimport Backdrop from './Backdrop';\r\nimport Snackbar from './Snackbar';\r\nimport Progress from './Progress';\r\nimport Timeline from './Timeline';\r\nimport TreeView from './TreeView';\r\nimport Checkbox from './Checkbox';\r\nimport Container from './Container';\r\nimport Accordion from './Accordion';\r\nimport Typography from './Typography';\r\nimport Pagination from './Pagination';\r\nimport IconButton from './IconButton';\r\nimport Breadcrumbs from './Breadcrumbs';\r\nimport ButtonGroup from './ButtonGroup';\r\nimport Autocomplete from './Autocomplete';\r\nimport ToggleButton from './ToggleButton';\r\nimport ControlLabel from './ControlLabel';\r\nimport LoadingButton from './LoadingButton';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function ComponentsOverrides(theme: Theme) {\r\n  return merge(\r\n    Fab(theme),\r\n    Tabs(theme),\r\n    Chip(theme),\r\n    Card(theme),\r\n    Menu(theme),\r\n    Grid(theme),\r\n    Link(theme),\r\n    Input(theme),\r\n    Radio(theme),\r\n    Badge(theme),\r\n    Lists(theme),\r\n    Table(theme),\r\n    Paper(theme),\r\n    Alert(theme),\r\n    Switch(theme),\r\n    Select(theme),\r\n    Button(theme),\r\n    Rating(theme),\r\n    Dialog(theme),\r\n    Avatar(theme),\r\n    Slider(theme),\r\n    Drawer(theme),\r\n    Pickers(theme),\r\n    Stepper(theme),\r\n    Tooltip(theme),\r\n    Popover(theme),\r\n    SvgIcon(theme),\r\n    Checkbox(theme),\r\n    DataGrid(theme),\r\n    Skeleton(theme),\r\n    Timeline(theme),\r\n    TreeView(theme),\r\n    Backdrop(theme),\r\n    Snackbar(theme),\r\n    Progress(theme),\r\n    Container(theme),\r\n    Accordion(theme),\r\n    IconButton(theme),\r\n    Typography(theme),\r\n    Pagination(theme),\r\n    ButtonGroup(theme),\r\n    Breadcrumbs(theme),\r\n    Autocomplete(theme),\r\n    ControlLabel(theme),\r\n    ToggleButton(theme),\r\n    LoadingButton(theme)\r\n  );\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Fab(theme: Theme) {\r\n  return {\r\n    MuiFab: {\r\n      defaultProps: {\r\n        color: 'primary'\r\n      },\r\n\r\n      styleOverrides: {\r\n        root: {\r\n          boxShadow: theme.customShadows.z8,\r\n          '&:hover': {\r\n            boxShadow: 'none',\r\n            backgroundColor: theme.palette.grey[400]\r\n          }\r\n        },\r\n        primary: {\r\n          boxShadow: theme.customShadows.primary,\r\n          '&:hover': {\r\n            backgroundColor: theme.palette.primary.dark\r\n          }\r\n        },\r\n        secondary: {\r\n          boxShadow: theme.customShadows.secondary,\r\n          '&:hover': {\r\n            backgroundColor: theme.palette.secondary.dark\r\n          }\r\n        },\r\n        extended: {\r\n          '& svg': {\r\n            marginRight: theme.spacing(1)\r\n          }\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Tabs(theme: Theme) {\r\n  return {\r\n    MuiTab: {\r\n      styleOverrides: {\r\n        root: {\r\n          padding: 0,\r\n          fontWeight: theme.typography.fontWeightMedium,\r\n          borderTopLeftRadius: theme.shape.borderRadius,\r\n          borderTopRightRadius: theme.shape.borderRadius,\r\n          '&.Mui-selected': {\r\n            //color: theme.palette.text.primary\r\n          },\r\n          '&:not(:last-of-type)': {\r\n            marginRight: theme.spacing(5)\r\n          },\r\n          '@media (min-width: 600px)': {\r\n            minWidth: 48\r\n          }\r\n        },\r\n        labelIcon: {\r\n          minHeight: 48,\r\n          flexDirection: 'row',\r\n          '& > *:first-of-type': {\r\n            marginBottom: 0,\r\n            marginRight: theme.spacing(1)\r\n          }\r\n        },\r\n        wrapper: {\r\n          flexDirection: 'row',\r\n          whiteSpace: 'nowrap'\r\n        },\r\n        textColorInherit: {\r\n          opacity: 1,\r\n          color: theme.palette.text.secondary\r\n        },\r\n        '&.MuiTabs-indicator': {\r\n          height: 5\r\n        }\r\n      }\r\n    },\r\n    MuiTabPanel: {\r\n      styleOverrides: {\r\n        root: {\r\n          padding: 0\r\n        }\r\n      }\r\n    },\r\n    MuiTabScrollButton: {\r\n      styleOverrides: {\r\n        root: {\r\n          width: 48,\r\n          borderRadius: '50%'\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Icon } from '@iconify/react';\r\nimport closeCircleFill from '@iconify/icons-eva/close-circle-fill';\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Chip(theme: Theme) {\r\n  return {\r\n    MuiChip: {\r\n      defaultProps: {\r\n        deleteIcon: <Icon icon={closeCircleFill} />\r\n      },\r\n\r\n      styleOverrides: {\r\n        colorDefault: {\r\n          '& .MuiChip-avatarMedium, .MuiChip-avatarSmall': {\r\n            color: theme.palette.text.secondary\r\n          }\r\n        },\r\n        outlined: {\r\n          borderColor: theme.palette.grey[500_32],\r\n          '&.MuiChip-colorPrimary': {\r\n            borderColor: theme.palette.primary.main\r\n          },\r\n          '&.MuiChip-colorSecondary': {\r\n            borderColor: theme.palette.secondary.main\r\n          }\r\n        },\r\n        //\r\n        avatarColorInfo: {\r\n          color: theme.palette.info.contrastText,\r\n          backgroundColor: theme.palette.info.dark\r\n        },\r\n        avatarColorSuccess: {\r\n          color: theme.palette.success.contrastText,\r\n          backgroundColor: theme.palette.success.dark\r\n        },\r\n        avatarColorWarning: {\r\n          color: theme.palette.warning.contrastText,\r\n          backgroundColor: theme.palette.warning.dark\r\n        },\r\n        avatarColorError: {\r\n          color: theme.palette.error.contrastText,\r\n          backgroundColor: theme.palette.error.dark\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Card(theme: Theme) {\r\n  return {\r\n    MuiCard: {\r\n      styleOverrides: {\r\n        root: {\r\n          boxShadow: theme.customShadows.z1,\r\n          borderRadius: theme.shape.borderRadiusMd,\r\n          position: 'relative',\r\n          zIndex: 0 // Fix Safari overflow: hidden with border radius\r\n        }\r\n      }\r\n    },\r\n    MuiCardHeader: {\r\n      defaultProps: {\r\n        titleTypographyProps: { variant: 'h6' },\r\n        subheaderTypographyProps: { variant: 'body2', marginTop: theme.spacing(0.5) }\r\n      },\r\n      styleOverrides: {\r\n        root: {\r\n          padding: theme.spacing(3, 3, 0)\r\n        }\r\n      }\r\n    },\r\n    MuiCardContent: {\r\n      styleOverrides: {\r\n        root: {\r\n          padding: theme.spacing(3)\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Menu(theme: Theme) {\r\n  return {\r\n    MuiMenuItem: {\r\n      styleOverrides: {\r\n        root: {\r\n          '&.Mui-selected': {\r\n            backgroundColor: theme.palette.action.selected,\r\n            '&:hover': {\r\n              backgroundColor: theme.palette.action.hover\r\n            }\r\n          }\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Grid(theme: Theme) {\r\n  return {\r\n    MuiGrid: {\r\n      styleOverrides: {}\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Link(theme: Theme) {\r\n  return {\r\n    MuiLink: {\r\n      defaultProps: {\r\n        underline: 'hover'\r\n      },\r\n\r\n      styleOverrides: {\r\n        root: {}\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Input(theme: Theme) {\r\n  return {\r\n    MuiInputBase: {\r\n      styleOverrides: {\r\n        root: {\r\n          '&.Mui-disabled': {\r\n            '& svg': { color: theme.palette.text.disabled }\r\n          }\r\n        },\r\n        input: {\r\n          '&::placeholder': {\r\n            opacity: 1,\r\n            color: theme.palette.text.disabled\r\n          }\r\n        }\r\n      }\r\n    },\r\n    MuiInput: {\r\n      styleOverrides: {\r\n        underline: {\r\n          '&:before': {\r\n            borderBottomColor: theme.palette.grey[500_56]\r\n          }\r\n        }\r\n      }\r\n    },\r\n    MuiFilledInput: {\r\n      styleOverrides: {\r\n        root: {\r\n          backgroundColor: theme.palette.grey[500_12],\r\n          '&:hover': {\r\n            backgroundColor: theme.palette.grey[500_16]\r\n          },\r\n          '&.Mui-focused': {\r\n            backgroundColor: theme.palette.action.focus\r\n          },\r\n          '&.Mui-disabled': {\r\n            backgroundColor: theme.palette.action.disabledBackground\r\n          }\r\n        },\r\n        underline: {\r\n          '&:before': {\r\n            borderBottomColor: theme.palette.grey[500_56]\r\n          }\r\n        }\r\n      }\r\n    },\r\n    MuiOutlinedInput: {\r\n      styleOverrides: {\r\n        root: {\r\n          '& .MuiOutlinedInput-notchedOutline': {\r\n            borderColor: theme.palette.grey[500_32]\r\n          },\r\n          '&.Mui-disabled': {\r\n            '& .MuiOutlinedInput-notchedOutline': {\r\n              borderColor: theme.palette.action.disabledBackground\r\n            }\r\n          }\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Radio(theme: Theme) {\r\n  return {\r\n    MuiRadio: {\r\n      styleOverrides: {\r\n        root: {\r\n          padding: theme.spacing(1),\r\n          svg: {\r\n            fontSize: 24,\r\n            '&[font-size=small]': {\r\n              fontSize: 20\r\n            }\r\n          }\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Badge(theme: Theme) {\r\n  return {\r\n    MuiBadge: {\r\n      styleOverrides: {\r\n        dot: {\r\n          width: 10,\r\n          height: 10,\r\n          borderRadius: '50%'\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Lists(theme: Theme) {\r\n  return {\r\n    MuiListItemIcon: {\r\n      styleOverrides: {\r\n        root: {\r\n          minWidth: 'auto', // color: '#637381', //!important\r\n          marginRight: theme.spacing(2)\r\n        }\r\n      }\r\n    },\r\n    MuiListItemAvatar: {\r\n      styleOverrides: {\r\n        root: {\r\n          minWidth: 'auto',\r\n          marginRight: theme.spacing(2)\r\n        }\r\n      }\r\n    },\r\n    MuiListItemText: {\r\n      styleOverrides: {\r\n        root: {\r\n          marginTop: 0,\r\n          marginBottom: 0\r\n        },\r\n        multiline: {\r\n          marginTop: 0,\r\n          marginBottom: 0\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n/**\r\n *\r\n *\r\n *\r\n */\r\nexport default function Table(theme: Theme) {\r\n  return {\r\n    MuiTableRow: {\r\n      styleOverrides: {\r\n        root: {\r\n          '&.Mui-selected': {\r\n            backgroundColor: theme.palette.action.selected,\r\n            '&:hover': {\r\n              backgroundColor: theme.palette.action.hover\r\n            }\r\n          }\r\n        }\r\n      }\r\n    },\r\n    MuiTableCell: {\r\n      styleOverrides: {\r\n        root: {\r\n          borderBottom: 'none'\r\n        },\r\n        head: {\r\n          color: theme.palette.text.secondary,\r\n          backgroundColor: theme.palette.background.neutral,\r\n          '&:first-of-type': {\r\n            paddingLeft: theme.spacing(3),\r\n            borderTopLeftRadius: theme.shape.borderRadius,\r\n            borderBottomLeftRadius: theme.shape.borderRadius,\r\n            boxShadow: `inset 8px 0 0 ${theme.palette.background.paper}`\r\n          },\r\n          '&:last-of-type': {\r\n            paddingRight: theme.spacing(3),\r\n            borderTopRightRadius: theme.shape.borderRadius,\r\n            borderBottomRightRadius: theme.shape.borderRadius,\r\n            boxShadow: `inset -8px 0 0 ${theme.palette.background.paper}`\r\n          }\r\n        },\r\n        stickyHeader: {\r\n          backgroundColor: theme.palette.background.paper,\r\n          backgroundImage: `linear-gradient(to bottom, ${theme.palette.background.neutral} 0%, ${theme.palette.background.neutral} 100%)`\r\n        },\r\n        body: {\r\n          '&:first-of-type': {\r\n            paddingLeft: theme.spacing(3)\r\n          },\r\n          '&:last-of-type': {\r\n            paddingRight: theme.spacing(3)\r\n          }\r\n        }\r\n      }\r\n    },\r\n    MuiTablePagination: {\r\n      styleOverrides: {\r\n        root: {\r\n          borderTop: `solid 1px ${theme.palette.divider}`\r\n        },\r\n        toolbar: {\r\n          height: 64\r\n        },\r\n        select: {\r\n          '&:focus': {\r\n            borderRadius: theme.shape.borderRadius\r\n          }\r\n        },\r\n        selectIcon: {\r\n          width: 20,\r\n          height: 20,\r\n          marginTop: 2\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Paper(theme: Theme) {\r\n  return {\r\n    MuiPaper: {\r\n      defaultProps: {\r\n        elevation: 0\r\n      },\r\n\r\n      styleOverrides: {\r\n        root: {\r\n          backgroundImage: 'none'\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Icon } from '@iconify/react';\r\nimport infoFill from '@iconify/icons-eva/info-fill';\r\nimport alertCircleFill from '@iconify/icons-eva/alert-circle-fill';\r\nimport alertTriangleFill from '@iconify/icons-eva/alert-triangle-fill';\r\nimport checkmarkCircle2Fill from '@iconify/icons-eva/checkmark-circle-2-fill';\r\n// material\r\nimport { Theme } from '@mui/material/styles';\r\n// @types\r\nimport { ColorSchema } from '../../@types/theme';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Alert(theme: Theme) {\r\n  const isLight = theme.palette.mode === 'light';\r\n\r\n  const standardStyle = (color: ColorSchema) => ({\r\n    color: theme.palette[color][isLight ? 'darker' : 'lighter'],\r\n    backgroundColor: theme.palette[color][isLight ? 'lighter' : 'darker'],\r\n    '& .MuiAlert-icon': {\r\n      color: theme.palette[color][isLight ? 'main' : 'light']\r\n    }\r\n  });\r\n\r\n  const filledStyle = (color: ColorSchema) => ({\r\n    color: theme.palette[color].contrastText\r\n  });\r\n\r\n  const outlinedStyle = (color: ColorSchema) => ({\r\n    color: theme.palette[color][isLight ? 'darker' : 'lighter'],\r\n    border: `solid 1px ${theme.palette[color][isLight ? 'light' : 'dark']}`,\r\n    backgroundColor: theme.palette[color][isLight ? 'lighter' : 'darker'],\r\n    '& .MuiAlert-icon': {\r\n      color: theme.palette[color][isLight ? 'main' : 'light']\r\n    }\r\n  });\r\n\r\n  return {\r\n    MuiAlert: {\r\n      defaultProps: {\r\n        iconMapping: {\r\n          error: <Icon icon={infoFill} />,\r\n          info: <Icon icon={alertCircleFill} />,\r\n          success: <Icon icon={checkmarkCircle2Fill} />,\r\n          warning: <Icon icon={alertTriangleFill} />\r\n        }\r\n      },\r\n\r\n      styleOverrides: {\r\n        message: {\r\n          '& .MuiAlertTitle-root': {\r\n            marginBottom: theme.spacing(0.5)\r\n          }\r\n        },\r\n        action: {\r\n          '& button:not(:first-of-type)': {\r\n            marginLeft: theme.spacing(1)\r\n          }\r\n        },\r\n\r\n        standardInfo: standardStyle('info'),\r\n        standardSuccess: standardStyle('success'),\r\n        standardWarning: standardStyle('warning'),\r\n        standardError: standardStyle('error'),\r\n\r\n        filledInfo: filledStyle('info'),\r\n        filledSuccess: filledStyle('success'),\r\n        filledWarning: filledStyle('warning'),\r\n        filledError: filledStyle('error'),\r\n\r\n        outlinedInfo: outlinedStyle('info'),\r\n        outlinedSuccess: outlinedStyle('success'),\r\n        outlinedWarning: outlinedStyle('warning'),\r\n        outlinedError: outlinedStyle('error')\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Switch(theme: Theme) {\r\n  const isLight = theme.palette.mode === 'light';\r\n\r\n  return {\r\n    MuiSwitch: {\r\n      styleOverrides: {\r\n        thumb: {\r\n          boxShadow: theme.customShadows.z1\r\n        },\r\n        track: {\r\n          opacity: 1,\r\n          backgroundColor: theme.palette.grey[500]\r\n        },\r\n        switchBase: {\r\n          left: 0,\r\n          right: 'auto',\r\n          '&:not(:.Mui-checked)': {\r\n            color: theme.palette.grey[isLight ? 100 : 300]\r\n          },\r\n          '&.Mui-checked.Mui-disabled, &.Mui-disabled': {\r\n            color: theme.palette.grey[isLight ? 400 : 600]\r\n          },\r\n          '&.Mui-disabled+.MuiSwitch-track': {\r\n            opacity: 1,\r\n            backgroundColor: `${theme.palette.action.disabledBackground} !important`\r\n          }\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import ExpandMoreRoundedIcon from '@mui/icons-material/ExpandMoreRounded';\r\nimport { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Select(theme: Theme) {\r\n  return {\r\n    MuiSelect: {\r\n      defaultProps: {\r\n        IconComponent: ExpandMoreRoundedIcon\r\n      },\r\n\r\n      styleOverrides: {\r\n        root: {}\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Button(theme: Theme) {\r\n  return {\r\n    MuiButton: {\r\n      styleOverrides: {\r\n        root: {\r\n          '&:hover': {\r\n            boxShadow: 'none'\r\n          }\r\n        },\r\n        sizeLarge: {\r\n          height: 48\r\n        },\r\n        // contained\r\n        containedInherit: {\r\n          color: theme.palette.grey[800],\r\n          boxShadow: theme.customShadows.z8,\r\n          '&:hover': {\r\n            backgroundColor: theme.palette.grey[400]\r\n          }\r\n        },\r\n        containedPrimary: {\r\n          boxShadow: theme.customShadows.primary\r\n        },\r\n        containedSecondary: {\r\n          boxShadow: theme.customShadows.secondary\r\n        },\r\n        containedInfo: {\r\n          boxShadow: theme.customShadows.info\r\n        },\r\n        containedSuccess: {\r\n          boxShadow: theme.customShadows.success\r\n        },\r\n        containedWarning: {\r\n          boxShadow: theme.customShadows.warning\r\n        },\r\n        containedError: {\r\n          boxShadow: theme.customShadows.error\r\n        },\r\n        // outlined\r\n        outlinedInherit: {\r\n          border: `1px solid ${theme.palette.grey[500_32]}`,\r\n          '&:hover': {\r\n            backgroundColor: theme.palette.action.hover\r\n          }\r\n        },\r\n        textInherit: {\r\n          '&:hover': {\r\n            backgroundColor: theme.palette.action.hover\r\n          }\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Dialog(theme: Theme) {\r\n  return {\r\n    MuiDialog: {\r\n      styleOverrides: {\r\n        paper: {\r\n          boxShadow: theme.customShadows.z24,\r\n          '&.MuiPaper-rounded': {\r\n            borderRadius: theme.shape.borderRadiusMd\r\n          },\r\n          '&.MuiDialog-paperFullScreen': {\r\n            borderRadius: 0\r\n          },\r\n          '&.MuiDialog-paper .MuiDialogActions-root': {\r\n            padding: theme.spacing(3)\r\n          },\r\n          '@media (max-width: 600px)': {\r\n            margin: theme.spacing(2)\r\n          },\r\n          '@media (max-width: 663.95px)': {\r\n            '&.MuiDialog-paperWidthSm.MuiDialog-paperScrollBody': {\r\n              maxWidth: '100%'\r\n            }\r\n          }\r\n        },\r\n        paperFullWidth: {\r\n          width: '100%'\r\n        }\r\n      }\r\n    },\r\n    MuiDialogTitle: {\r\n      styleOverrides: {\r\n        root: {\r\n          padding: theme.spacing(3, 3, 0)\r\n        }\r\n      }\r\n    },\r\n    MuiDialogContent: {\r\n      styleOverrides: {\r\n        root: {\r\n          borderTop: 0,\r\n          borderBottom: 0,\r\n          padding: theme.spacing(3)\r\n        }\r\n      }\r\n    },\r\n    MuiDialogActions: {\r\n      styleOverrides: {\r\n        root: {\r\n          '& > :not(:first-of-type)': {\r\n            marginLeft: theme.spacing(1.5)\r\n          }\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Avatar(theme: Theme) {\r\n  return {\r\n    MuiAvatar: {\r\n      styleOverrides: {\r\n        colorDefault: {\r\n          color: theme.palette.text.secondary,\r\n          backgroundColor: theme.palette.grey[400]\r\n        }\r\n      }\r\n    },\r\n    MuiAvatarGroup: {\r\n      styleOverrides: {\r\n        avatar: {\r\n          fontSize: 16,\r\n          fontWeight: theme.typography.fontWeightMedium,\r\n          '&:first-of-type': {\r\n            fontSize: 14,\r\n            color: theme.palette.primary.main,\r\n            backgroundColor: theme.palette.primary.lighter\r\n          }\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Slider(theme: Theme) {\r\n  const isLight = theme.palette.mode === 'light';\r\n\r\n  return {\r\n    MuiSlider: {\r\n      defaultProps: {\r\n        size: 'small'\r\n      },\r\n\r\n      styleOverrides: {\r\n        root: {\r\n          '&.Mui-disabled': {\r\n            color: theme.palette.action.disabled\r\n          }\r\n        },\r\n        markLabel: {\r\n          fontSize: 13,\r\n          color: theme.palette.text.disabled\r\n        },\r\n        valueLabel: {\r\n          borderRadius: 8,\r\n          backgroundColor: theme.palette.grey[isLight ? 800 : 700]\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { alpha, Theme } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Drawer(theme: Theme) {\r\n  const isLight = theme.palette.mode === 'light';\r\n\r\n  return {\r\n    MuiDrawer: {\r\n      styleOverrides: {\r\n        modal: {\r\n          '&[role=\"presentation\"]': {\r\n            '& .MuiDrawer-paperAnchorLeft': {\r\n              boxShadow: `8px 24px 24px 12px ${alpha(\r\n                theme.palette.grey[900],\r\n                isLight ? 0.16 : 0.48\r\n              )}`\r\n            },\r\n            '& .MuiDrawer-paperAnchorRight': {\r\n              backgroundColor: '#FFF',\r\n              boxShadow: `-8px 24px 24px 12px ${alpha(\r\n                theme.palette.grey[900],\r\n                isLight ? 0.16 : 0.48\r\n              )}`\r\n            }\r\n          }\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Pickers(theme: Theme) {\r\n  return {};\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Stepper(theme: Theme) {\r\n  return {\r\n    MuiStepConnector: {\r\n      styleOverrides: {\r\n        line: {\r\n          borderColor: theme.palette.divider\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Tooltip(theme: Theme) {\r\n  const isLight = theme.palette.mode === 'light';\r\n\r\n  return {\r\n    MuiTooltip: {\r\n      styleOverrides: {\r\n        tooltip: {\r\n          backgroundColor: theme.palette.grey[isLight ? 600 : 500]\r\n        },\r\n        arrow: {\r\n          color: theme.palette.grey[isLight ? 600 : 500]\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Popover(theme: Theme) {\r\n  return {\r\n    MuiPopover: {\r\n      styleOverrides: {\r\n        paper: {\r\n          boxShadow: theme.customShadows.z12\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function SvgIcon(theme: Theme) {\r\n  return {\r\n    MuiSvgIcon: {\r\n      styleOverrides: {\r\n        fontSizeSmall: {\r\n          width: 20,\r\n          height: 20,\r\n          fontSize: 'inherit'\r\n        },\r\n        fontSizeLarge: {\r\n          width: 32,\r\n          height: 32,\r\n          fontSize: 'inherit'\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function DataGrid(theme: Theme) {\r\n  return {\r\n    MuiDataGrid: {\r\n      styleOverrides: {\r\n        root: {\r\n          borderRadius: 0,\r\n          border: `1px solid transparent`,\r\n          '& .MuiTablePagination-root': {\r\n            borderTop: 0\r\n          },\r\n          '& .MuiDataGrid-toolbarContainer': {\r\n            padding: theme.spacing(2),\r\n            backgroundColor: theme.palette.background.neutral,\r\n            '& .MuiButton-root': {\r\n              marginRight: theme.spacing(1.5),\r\n              color: theme.palette.text.primary,\r\n              '&:hover': {\r\n                backgroundColor: theme.palette.action.hover\r\n              }\r\n            }\r\n          },\r\n          '& .MuiDataGrid-cell, .MuiDataGrid-columnsContainer': {\r\n            borderBottom: `1px solid ${theme.palette.divider}`\r\n          },\r\n          '& .MuiDataGrid-columnSeparator': {\r\n            color: theme.palette.divider\r\n          },\r\n          '& .MuiDataGrid-columnHeader[data-field=\"__check__\"]': {\r\n            padding: 0\r\n          }\r\n        }\r\n      }\r\n    },\r\n    MuiGridMenu: {\r\n      styleOverrides: {\r\n        root: {\r\n          '& .MuiDataGrid-gridMenuList': {\r\n            boxShadow: theme.customShadows.z20,\r\n            borderRadius: theme.shape.borderRadius\r\n          },\r\n          '& .MuiMenuItem-root': {\r\n            ...theme.typography.body2\r\n          }\r\n        }\r\n      }\r\n    },\r\n    MuiGridFilterForm: {\r\n      styleOverrides: {\r\n        root: {\r\n          padding: theme.spacing(1.5, 0),\r\n          '& .MuiFormControl-root': {\r\n            margin: theme.spacing(0, 0.5)\r\n          },\r\n          '& .MuiInput-root': {\r\n            marginTop: theme.spacing(3),\r\n            '&::before, &::after': {\r\n              display: 'none'\r\n            },\r\n            '& .MuiNativeSelect-select, .MuiInput-input': {\r\n              ...theme.typography.body2,\r\n              padding: theme.spacing(0.75, 1),\r\n              borderRadius: theme.shape.borderRadius,\r\n              backgroundColor: theme.palette.background.neutral\r\n            },\r\n            '& .MuiSvgIcon-root': {\r\n              right: 4\r\n            }\r\n          }\r\n        }\r\n      }\r\n    },\r\n    MuiGridPanelFooter: {\r\n      styleOverrides: {\r\n        root: {\r\n          padding: theme.spacing(2),\r\n          justifyContent: 'flex-end',\r\n          '& .MuiButton-root': {\r\n            '&:first-of-type': {\r\n              marginRight: theme.spacing(1.5),\r\n              color: theme.palette.text.primary,\r\n              '&:hover': {\r\n                backgroundColor: theme.palette.action.hover\r\n              }\r\n            },\r\n            '&:last-of-type': {\r\n              color: theme.palette.common.white,\r\n              backgroundColor: theme.palette.primary.main,\r\n              '&:hover': {\r\n                backgroundColor: theme.palette.primary.dark\r\n              }\r\n            }\r\n          }\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Skeleton(theme: Theme) {\r\n  return {\r\n    MuiSkeleton: {\r\n      defaultProps: {\r\n        animation: 'wave'\r\n      },\r\n\r\n      styleOverrides: {\r\n        root: {\r\n          backgroundColor: theme.palette.background.neutral\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Timeline(theme: Theme) {\r\n  return {\r\n    MuiTimelineDot: {\r\n      styleOverrides: {\r\n        root: {\r\n          boxShadow: 'none'\r\n        }\r\n      }\r\n    },\r\n\r\n    MuiTimelineConnector: {\r\n      styleOverrides: {\r\n        root: {\r\n          backgroundColor: theme.palette.divider\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { alpha, Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Backdrop(theme: Theme) {\r\n  const varLow = alpha(theme.palette.grey[900], 0.48);\r\n  const varHigh = alpha(theme.palette.grey[900], 1);\r\n\r\n  return {\r\n    MuiBackdrop: {\r\n      styleOverrides: {\r\n        root: {\r\n          background: [\r\n            `rgb(22,28,36)`,\r\n            `-moz-linear-gradient(75deg, ${varLow} 0%, ${varHigh} 100%)`,\r\n            `-webkit-linear-gradient(75deg, ${varLow} 0%, ${varHigh} 100%)`,\r\n            `linear-gradient(75deg, ${varLow} 0%, ${varHigh} 100%)`\r\n          ],\r\n          '&.MuiBackdrop-invisible': {\r\n            background: 'transparent'\r\n          }\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Snackbar(theme: Theme) {\r\n  return {\r\n    MuiSnackbarContent: {\r\n      styleOverrides: {\r\n        root: {}\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Progress(theme: Theme) {\r\n  const isLight = theme.palette.mode === 'light';\r\n\r\n  return {\r\n    MuiLinearProgress: {\r\n      styleOverrides: {\r\n        root: {\r\n          borderRadius: 4,\r\n          overflow: 'hidden'\r\n        },\r\n        bar: {\r\n          borderRadius: 4\r\n        },\r\n        colorPrimary: {\r\n          backgroundColor: theme.palette.primary[isLight ? 'lighter' : 'darker']\r\n        },\r\n        buffer: {\r\n          backgroundColor: 'transparent'\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Container(theme: Theme) {\r\n  return {\r\n    MuiContainer: {\r\n      styleOverrides: {\r\n        root: {}\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Accordion(theme: Theme) {\r\n  return {\r\n    MuiAccordion: {\r\n      styleOverrides: {\r\n        root: {\r\n          '&.Mui-expanded': {\r\n            boxShadow: theme.customShadows.z8,\r\n            borderRadius: theme.shape.borderRadius\r\n          },\r\n          '&.Mui-disabled': {\r\n            backgroundColor: 'transparent'\r\n          }\r\n        }\r\n      }\r\n    },\r\n    MuiAccordionSummary: {\r\n      styleOverrides: {\r\n        root: {\r\n          paddingLeft: theme.spacing(2),\r\n          paddingRight: theme.spacing(1),\r\n          '&.Mui-disabled': {\r\n            opacity: 1,\r\n            color: theme.palette.action.disabled,\r\n            '& .MuiTypography-root': {\r\n              color: 'inherit'\r\n            }\r\n          }\r\n        },\r\n        expandIconWrapper: {\r\n          color: 'inherit'\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function IconButton(theme: Theme) {\r\n  return {\r\n    MuiIconButton: {\r\n      styleOverrides: {\r\n        root: {}\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Typography(theme: Theme) {\r\n  return {\r\n    MuiTypography: {\r\n      styleOverrides: {\r\n        paragraph: {\r\n          marginBottom: theme.spacing(2)\r\n        },\r\n        gutterBottom: {\r\n          marginBottom: theme.spacing(1)\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { alpha, Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Pagination(theme: Theme) {\r\n  return {\r\n    MuiPaginationItem: {\r\n      styleOverrides: {\r\n        root: {\r\n          '&.Mui-selected': {\r\n            fontWeight: theme.typography.fontWeightBold\r\n          }\r\n        },\r\n        textPrimary: {\r\n          '&.Mui-selected': {\r\n            color: theme.palette.primary.main,\r\n            backgroundColor: alpha(theme.palette.primary.main, 0.08),\r\n            '&:hover, &.Mui-focusVisible': {\r\n              backgroundColor: `${alpha(theme.palette.primary.main, 0.24)} !important`\r\n            }\r\n          }\r\n        },\r\n        outlined: {\r\n          border: `1px solid ${theme.palette.grey[500_32]}`\r\n        },\r\n        outlinedPrimary: {\r\n          '&.Mui-selected': {\r\n            backgroundColor: alpha(theme.palette.primary.main, 0.08),\r\n            border: `1px solid ${alpha(theme.palette.primary.main, 0.24)}`\r\n          }\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function ButtonGroup(theme: Theme) {\r\n  const styleContained = (\r\n    color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'\r\n  ) => ({\r\n    props: { variant: 'contained', color },\r\n    style: { boxShadow: theme.customShadows[color] }\r\n  });\r\n\r\n  return {\r\n    MuiButtonGroup: {\r\n      variants: [\r\n        {\r\n          props: { variant: 'contained', color: 'inherit' },\r\n          style: { boxShadow: theme.customShadows.z8 }\r\n        },\r\n        styleContained('primary'),\r\n        styleContained('secondary'),\r\n        styleContained('info'),\r\n        styleContained('success'),\r\n        styleContained('warning'),\r\n        styleContained('error'),\r\n\r\n        {\r\n          props: { disabled: true },\r\n          style: {\r\n            boxShadow: 'none',\r\n            '& .MuiButtonGroup-grouped.Mui-disabled': {\r\n              color: theme.palette.action.disabled,\r\n              borderColor: `${theme.palette.action.disabledBackground} !important`,\r\n              '&.MuiButton-contained': {\r\n                backgroundColor: theme.palette.action.disabledBackground\r\n              }\r\n            }\r\n          }\r\n        }\r\n      ],\r\n\r\n      styleOverrides: {\r\n        root: {\r\n          '&:hover': {\r\n            boxShadow: 'none'\r\n          }\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Breadcrumbs(theme: Theme) {\r\n  return {\r\n    MuiBreadcrumbs: {\r\n      styleOverrides: {\r\n        separator: {\r\n          marginLeft: theme.spacing(0.5),\r\n          marginRight: theme.spacing(0.5)\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Autocomplete(theme: Theme) {\r\n  return {\r\n    MuiAutocomplete: {\r\n      styleOverrides: {\r\n        paper: {\r\n          boxShadow: theme.customShadows.z20\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function ControlLabel(theme: Theme) {\r\n  return {\r\n    MuiFormControlLabel: {\r\n      styleOverrides: {\r\n        label: {\r\n          ...theme.typography.body2\r\n        }\r\n      }\r\n    },\r\n    MuiFormHelperText: {\r\n      styleOverrides: {\r\n        root: {\r\n          marginTop: theme.spacing(1)\r\n        }\r\n      }\r\n    },\r\n    MuiFormLabel: {\r\n      styleOverrides: {\r\n        root: {\r\n          color: theme.palette.text.disabled\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function ToggleButton(theme: Theme) {\r\n  const isLight = theme.palette.mode === 'light';\r\n\r\n  return {\r\n    MuiToggleButton: {\r\n      styleOverrides: {\r\n        root: {\r\n          color: theme.palette.grey[500],\r\n          border: `solid 1px ${theme.palette.grey[500_32]}`,\r\n          '&.Mui-selected': {\r\n            color: theme.palette.grey[isLight ? 600 : 0],\r\n            backgroundColor: theme.palette.action.selected\r\n          },\r\n          '&.Mui-disabled': {\r\n            color: theme.palette.grey[500_48]\r\n          }\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","import { Theme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function LoadingButton(theme: Theme) {\r\n  return {\r\n    MuiLoadingButton: {\r\n      styleOverrides: {\r\n        root: {\r\n          marginLeft: 10,\r\n          '&.MuiButton-text': {\r\n            '& .MuiLoadingButton-startIconPendingStart': {\r\n              marginLeft: 0\r\n            },\r\n            '& .MuiLoadingButton-endIconPendingEnd': {\r\n              marginRight: 0\r\n            }\r\n          }\r\n        }\r\n      }\r\n    }\r\n  };\r\n}\r\n","// material\r\nimport { alpha } from '@mui/material/styles';\r\nimport { Shadows } from '@mui/material/styles/shadows';\r\n//\r\nimport palette from './palette';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface CustomShadowOptions {\r\n  z1: string;\r\n  z8: string;\r\n  z12: string;\r\n  z16: string;\r\n  z20: string;\r\n  z24: string;\r\n  primary: string;\r\n  secondary: string;\r\n  info: string;\r\n  success: string;\r\n  warning: string;\r\n  error: string;\r\n}\r\n\r\ndeclare module '@mui/material/styles' {\r\n  interface Theme {\r\n    customShadows: CustomShadowOptions;\r\n  }\r\n  interface ThemeOptions {\r\n    customShadows?: CustomShadowOptions;\r\n  }\r\n}\r\n\r\nconst LIGHT_MODE = palette.light.grey[500];\r\nconst DARK_MODE = '#000000';\r\n\r\nconst createShadow = (color: string): Shadows => {\r\n  const transparent1 = alpha(color, 0.2);\r\n  const transparent2 = alpha(color, 0.14);\r\n  const transparent3 = alpha(color, 0.12);\r\n  return [\r\n    'none',\r\n    `0px 2px 1px -1px ${transparent1},0px 1px 1px 0px ${transparent2},0px 1px 3px 0px ${transparent3}`,\r\n    `0px 3px 1px -2px ${transparent1},0px 2px 2px 0px ${transparent2},0px 1px 5px 0px ${transparent3}`,\r\n    `0px 3px 3px -2px ${transparent1},0px 3px 4px 0px ${transparent2},0px 1px 8px 0px ${transparent3}`,\r\n    `0px 2px 4px -1px ${transparent1},0px 4px 5px 0px ${transparent2},0px 1px 10px 0px ${transparent3}`,\r\n    `0px 3px 5px -1px ${transparent1},0px 5px 8px 0px ${transparent2},0px 1px 14px 0px ${transparent3}`,\r\n    `0px 3px 5px -1px ${transparent1},0px 6px 10px 0px ${transparent2},0px 1px 18px 0px ${transparent3}`,\r\n    `0px 4px 5px -2px ${transparent1},0px 7px 10px 1px ${transparent2},0px 2px 16px 1px ${transparent3}`,\r\n    `0px 5px 5px -3px ${transparent1},0px 8px 10px 1px ${transparent2},0px 3px 14px 2px ${transparent3}`,\r\n    `0px 5px 6px -3px ${transparent1},0px 9px 12px 1px ${transparent2},0px 3px 16px 2px ${transparent3}`,\r\n    `0px 6px 6px -3px ${transparent1},0px 10px 14px 1px ${transparent2},0px 4px 18px 3px ${transparent3}`,\r\n    `0px 6px 7px -4px ${transparent1},0px 11px 15px 1px ${transparent2},0px 4px 20px 3px ${transparent3}`,\r\n    `0px 7px 8px -4px ${transparent1},0px 12px 17px 2px ${transparent2},0px 5px 22px 4px ${transparent3}`,\r\n    `0px 7px 8px -4px ${transparent1},0px 13px 19px 2px ${transparent2},0px 5px 24px 4px ${transparent3}`,\r\n    `0px 7px 9px -4px ${transparent1},0px 14px 21px 2px ${transparent2},0px 5px 26px 4px ${transparent3}`,\r\n    `0px 8px 9px -5px ${transparent1},0px 15px 22px 2px ${transparent2},0px 6px 28px 5px ${transparent3}`,\r\n    `0px 8px 10px -5px ${transparent1},0px 16px 24px 2px ${transparent2},0px 6px 30px 5px ${transparent3}`,\r\n    `0px 8px 11px -5px ${transparent1},0px 17px 26px 2px ${transparent2},0px 6px 32px 5px ${transparent3}`,\r\n    `0px 9px 11px -5px ${transparent1},0px 18px 28px 2px ${transparent2},0px 7px 34px 6px ${transparent3}`,\r\n    `0px 9px 12px -6px ${transparent1},0px 19px 29px 2px ${transparent2},0px 7px 36px 6px ${transparent3}`,\r\n    `0px 10px 13px -6px ${transparent1},0px 20px 31px 3px ${transparent2},0px 8px 38px 7px ${transparent3}`,\r\n    `0px 10px 13px -6px ${transparent1},0px 21px 33px 3px ${transparent2},0px 8px 40px 7px ${transparent3}`,\r\n    `0px 10px 14px -6px ${transparent1},0px 22px 35px 3px ${transparent2},0px 8px 42px 7px ${transparent3}`,\r\n    `0px 11px 14px -7px ${transparent1},0px 23px 36px 3px ${transparent2},0px 9px 44px 8px ${transparent3}`,\r\n    `0px 11px 15px -7px ${transparent1},0px 24px 38px 3px ${transparent2},0px 9px 46px 8px ${transparent3}`\r\n  ];\r\n};\r\n\r\nconst createCustomShadow = (color: string) => {\r\n  const transparent = alpha(color, 0.24);\r\n  return {\r\n    z1: `0 1px 2px 0 ${transparent}`,\r\n    z8: `0 8px 16px 0 ${transparent}`,\r\n    z12: `0 0 2px 0 ${transparent}, 0 12px 24px 0 ${transparent}`,\r\n    z16: `0 0 2px 0 ${transparent}, 0 16px 32px -4px ${transparent}`,\r\n    z20: `0 0 2px 0 ${transparent}, 0 20px 40px -4px ${transparent}`,\r\n    z24: `0 0 4px 0 ${transparent}, 0 24px 48px 0 ${transparent}`,\r\n    primary: `0 8px 16px 0 ${alpha(palette.light.primary.main, 0.24)}`,\r\n    info: `0 8px 16px 0 ${alpha(palette.light.info.main, 0.24)}`,\r\n    secondary: `0 8px 16px 0 ${alpha(palette.light.secondary.main, 0.24)}`,\r\n    success: `0 8px 16px 0 ${alpha(palette.light.success.main, 0.24)}`,\r\n    warning: `0 8px 16px 0 ${alpha(palette.light.warning.main, 0.24)}`,\r\n    error: `0 8px 16px 0 ${alpha(palette.light.error.main, 0.24)}`\r\n  };\r\n};\r\n\r\nexport const customShadows = {\r\n  light: createCustomShadow(LIGHT_MODE),\r\n  dark: createCustomShadow(DARK_MODE)\r\n};\r\n\r\nconst shadows: {\r\n  light: Shadows;\r\n  dark: Shadows;\r\n} = {\r\n  light: createShadow(LIGHT_MODE),\r\n  dark: createShadow(DARK_MODE)\r\n};\r\n\r\nexport default shadows;\r\n","import { useMemo, ReactNode } from 'react';\r\n// material\r\nimport { CssBaseline } from '@mui/material';\r\nimport {\r\n  createTheme,\r\n  ThemeOptions,\r\n  ThemeProvider,\r\n  StyledEngineProvider\r\n} from '@mui/material/styles';\r\n// hooks\r\nimport useSettings from '../hooks/useSettings';\r\n//\r\nimport shape from './shape';\r\nimport palette from './palette';\r\nimport typography from './typography';\r\nimport breakpoints from './breakpoints';\r\nimport componentsOverride from './overrides';\r\nimport shadows, { customShadows } from './shadows';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ntype ThemeConfigProps = {\r\n  children: ReactNode;\r\n};\r\n\r\nexport default function ThemeConfig({ children }: ThemeConfigProps) {\r\n  const { themeMode, themeDirection } = useSettings();\r\n  const isLight = true; //themeMode === 'light';\r\n\r\n  const themeOptions: ThemeOptions = useMemo(\r\n    () => ({\r\n      palette: isLight ? { ...palette.light, mode: 'light' } : { ...palette.dark, mode: 'dark' },\r\n      shape,\r\n      typography,\r\n      breakpoints,\r\n      direction: themeDirection,\r\n      shadows: isLight ? shadows.light : shadows.dark,\r\n      customShadows: isLight ? customShadows.light : customShadows.dark\r\n    }),\r\n    [isLight, themeDirection]\r\n  );\r\n\r\n  const theme = createTheme(themeOptions);\r\n  theme.components = componentsOverride(theme);\r\n\r\n  return (\r\n    <StyledEngineProvider injectFirst>\r\n      <ThemeProvider theme={theme}>\r\n        <CssBaseline />\r\n        {children}\r\n      </ThemeProvider>\r\n    </StyledEngineProvider>\r\n  );\r\n}\r\n","// material\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { GlobalStyles as GlobalThemeStyles } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function GlobalStyles() {\r\n  const theme = useTheme();\r\n\r\n  return (\r\n    <GlobalThemeStyles\r\n      styles={{\r\n        '*': {\r\n          margin: 0,\r\n          padding: 0,\r\n          boxSizing: 'border-box'\r\n        },\r\n        html: {\r\n          width: '100%',\r\n          height: '100%',\r\n          WebkitOverflowScrolling: 'touch'\r\n        },\r\n        body: {\r\n          width: '100%',\r\n          height: '100%'\r\n        },\r\n        '#root': {\r\n          width: '100%',\r\n          height: '100%'\r\n        },\r\n        input: {\r\n          '&[type=number]': {\r\n            MozAppearance: 'textfield',\r\n            '&::-webkit-outer-spin-button': {\r\n              margin: 0,\r\n              WebkitAppearance: 'none'\r\n            },\r\n            '&::-webkit-inner-spin-button': {\r\n              margin: 0,\r\n              WebkitAppearance: 'none'\r\n            }\r\n          }\r\n        },\r\n        textarea: {\r\n          '&::-webkit-input-placeholder': {\r\n            color: theme.palette.text.disabled\r\n          },\r\n          '&::-moz-placeholder': {\r\n            opacity: 1,\r\n            color: theme.palette.text.disabled\r\n          },\r\n          '&:-ms-input-placeholder': {\r\n            color: theme.palette.text.disabled\r\n          },\r\n          '&::placeholder': {\r\n            color: theme.palette.text.disabled\r\n          }\r\n        },\r\n\r\n        img: { display: 'block', maxWidth: '100%' },\r\n\r\n        // Lazy Load Img\r\n        '.blur-up': {\r\n          WebkitFilter: 'blur(5px)',\r\n          filter: 'blur(5px)',\r\n          transition: 'filter 400ms, -webkit-filter 400ms'\r\n        },\r\n        '.blur-up.lazyloaded ': {\r\n          WebkitFilter: 'blur(0)',\r\n          filter: 'blur(0)'\r\n        }\r\n      }}\r\n    />\r\n  );\r\n}\r\n","import { useEffect, ReactNode } from 'react';\r\n// rtl\r\nimport rtlPlugin from 'stylis-plugin-rtl';\r\n// emotion\r\nimport createCache from '@emotion/cache';\r\nimport { CacheProvider } from '@emotion/react';\r\n// material\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ntype RtlLayoutProps = {\r\n  children?: ReactNode;\r\n};\r\n\r\nexport default function RtlLayout({ children }: RtlLayoutProps) {\r\n  const theme = useTheme();\r\n\r\n  useEffect(() => {\r\n    document.dir = theme.direction;\r\n  }, [theme.direction]);\r\n\r\n  const cacheRtl = createCache({\r\n    key: theme.direction === 'rtl' ? 'rtl' : 'css',\r\n    // @ts-ignore\r\n    stylisPlugins: theme.direction === 'rtl' ? [rtlPlugin] : []\r\n  });\r\n\r\n  cacheRtl.compat = true;\r\n\r\n  return <CacheProvider value={cacheRtl}>{children}</CacheProvider>;\r\n}\r\n","import { useEffect } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function ScrollToTop() {\r\n  const { pathname } = useLocation();\r\n\r\n  useEffect(() => {\r\n    window.scrollTo(0, 0);\r\n  }, [pathname]);\r\n\r\n  return null;\r\n}\r\n","import { Helmet } from 'react-helmet-async';\r\nimport { googleAnalyticsConfig } from '../config';\r\nimport TagManager from 'react-gtm-module';\r\nimport { useEffect } from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst GA_MEASUREMENT_ID = googleAnalyticsConfig;\r\n\r\nexport default function GoogleAnalytics() {\r\n  const tagManagerArgs = {\r\n    gtmId: GA_MEASUREMENT_ID || ''\r\n  };\r\n  useEffect(() => {\r\n    TagManager.initialize(tagManagerArgs);\r\n  }, []);\r\n\r\n  return <></>;\r\n}\r\n","import { ReactNode } from 'react';\r\nimport { Icon, IconifyIcon } from '@iconify/react';\r\nimport { SnackbarProvider, useSnackbar } from 'notistack';\r\nimport infoFill from '@iconify/icons-eva/info-fill';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport alertCircleFill from '@iconify/icons-eva/alert-circle-fill';\r\nimport alertTriangleFill from '@iconify/icons-eva/alert-triangle-fill';\r\nimport checkmarkCircle2Fill from '@iconify/icons-eva/checkmark-circle-2-fill';\r\n// material\r\nimport { alpha, useTheme } from '@mui/material/styles';\r\nimport { Box, GlobalStyles, IconButton } from '@mui/material';\r\n// @types\r\nimport { ColorSchema } from '../@types/theme';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nfunction SnackbarStyles() {\r\n  const theme = useTheme();\r\n  const isLight = theme.palette.mode === 'light';\r\n\r\n  return (\r\n    <GlobalStyles\r\n      styles={{\r\n        '#root': {\r\n          '& .SnackbarContent-root': {\r\n            width: '100%',\r\n            padding: theme.spacing(0),\r\n            margin: theme.spacing(0.25, 0),\r\n            boxShadow: theme.customShadows.z8,\r\n            borderRadius: theme.shape.borderRadius,\r\n            color: theme.palette.grey[0],\r\n            backgroundColor: theme.palette.background.paper,\r\n            '&.SnackbarItem-variantSuccess, &.SnackbarItem-variantError, &.SnackbarItem-variantWarning, &.SnackbarItem-variantInfo':\r\n              {\r\n                color: theme.palette.text.primary,\r\n                backgroundColor: theme.palette.background.paper,\r\n                padding: theme.spacing(1.5)\r\n              }\r\n          },\r\n          '& .SnackbarContainer-top': {\r\n            top: '60px' // positionne les snackbars sous la barre de menu\r\n          },\r\n          '& .SnackbarItem-message': {\r\n            padding: '0 !important',\r\n            fontWeight: theme.typography.fontWeightMedium\r\n          },\r\n          '& .SnackbarItem-action': {\r\n            marginRight: 0,\r\n            padding: 0,\r\n            color: theme.palette.action.active,\r\n            '& svg': { width: 20, height: 20 }\r\n          }\r\n        }\r\n      }}\r\n    />\r\n  );\r\n}\r\n\r\ntype SnackbarIconProps = {\r\n  icon: IconifyIcon;\r\n  color: ColorSchema;\r\n};\r\n\r\nfunction SnackbarIcon({ icon, color }: SnackbarIconProps) {\r\n  return (\r\n    <Box\r\n      component=\"span\"\r\n      sx={{\r\n        mr: 1.5,\r\n        width: 40,\r\n        height: 40,\r\n        display: 'flex',\r\n        borderRadius: 1.5,\r\n        alignItems: 'center',\r\n        justifyContent: 'center',\r\n        color: `${color}.main`,\r\n        bgcolor: (theme) => alpha(theme.palette[color].main, 0.16)\r\n      }}\r\n    >\r\n      <Icon icon={icon} width={24} height={24} />\r\n    </Box>\r\n  );\r\n}\r\n\r\ntype NotistackProviderProps = {\r\n  children: ReactNode;\r\n};\r\n\r\nexport default function NotistackProvider({ children }: NotistackProviderProps) {\r\n  const CloseSnackbarAction = ({ id }: any) => {\r\n    const { closeSnackbar } = useSnackbar();\r\n    return (\r\n      <IconButton\r\n        size=\"small\"\r\n        style={{ marginTop: '0.1em', marginLeft: '0.5em' }}\r\n        onClick={() => {\r\n          closeSnackbar(id);\r\n        }}\r\n      >\r\n        <CloseIcon />\r\n      </IconButton>\r\n    );\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <SnackbarStyles />\r\n\r\n      <SnackbarProvider\r\n        dense\r\n        maxSnack={5}\r\n        preventDuplicate\r\n        autoHideDuration={3000}\r\n        anchorOrigin={{\r\n          vertical: 'top',\r\n          horizontal: 'right'\r\n        }}\r\n        iconVariant={{\r\n          success: <SnackbarIcon icon={checkmarkCircle2Fill} color=\"success\" />,\r\n          error: <SnackbarIcon icon={infoFill} color=\"error\" />,\r\n          warning: <SnackbarIcon icon={alertTriangleFill} color=\"warning\" />,\r\n          info: <SnackbarIcon icon={alertCircleFill} color=\"info\" />\r\n        }}\r\n        action={(key) => <CloseSnackbarAction id={key} />}\r\n      >\r\n        {children}\r\n      </SnackbarProvider>\r\n    </>\r\n  );\r\n}\r\n","import { ReactNode, useMemo } from 'react';\r\n// material\r\nimport { alpha, ThemeProvider, createTheme, useTheme } from '@mui/material/styles';\r\n// hooks\r\nimport useSettings from '../hooks/useSettings';\r\n//\r\nimport componentsOverride from '../theme/overrides';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ntype ThemePrimaryColorProps = {\r\n  children: ReactNode;\r\n};\r\n\r\nexport default function ThemePrimaryColor({ children }: ThemePrimaryColorProps) {\r\n  const defaultTheme = useTheme();\r\n  const { setColor } = useSettings();\r\n\r\n  const themeOptions = useMemo(\r\n    () => ({\r\n      ...defaultTheme,\r\n      palette: {\r\n        ...defaultTheme.palette,\r\n        primary: setColor\r\n      },\r\n      customShadows: {\r\n        ...defaultTheme.customShadows,\r\n        primary: `0 8px 16px 0 ${alpha(setColor.main, 0.24)}`\r\n      }\r\n    }),\r\n    [setColor, defaultTheme]\r\n  );\r\n\r\n  const theme = createTheme(themeOptions);\r\n  theme.components = componentsOverride(theme);\r\n\r\n  return <ThemeProvider theme={theme}>{children}</ThemeProvider>;\r\n}\r\n","import { ReactNode } from 'react';\r\n// material\r\nimport { ThemeProvider, createTheme, useTheme } from '@mui/material/styles';\r\n// hooks\r\nimport useLocales from '../hooks/useLocales';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ntype ThemeLocalizationProps = {\r\n  children: ReactNode;\r\n};\r\n\r\nexport default function ThemeLocalization({ children }: ThemeLocalizationProps) {\r\n  const defaultTheme = useTheme();\r\n  const { currentLang } = useLocales();\r\n\r\n  const theme = createTheme(defaultTheme, currentLang.systemValue);\r\n\r\n  return <ThemeProvider theme={theme}>{children}</ThemeProvider>;\r\n}\r\n","import { ApexOptions } from 'apexcharts';\r\n// material\r\nimport { alpha, useTheme } from '@mui/material/styles';\r\nimport { GlobalStyles } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function BaseOptionChartStyle() {\r\n  const theme = useTheme();\r\n\r\n  const background = {\r\n    backdropFilter: 'blur(6px)',\r\n    WebkitBackdropFilter: 'blur(6px)', // Fix on Mobile\r\n    backgroundColor: alpha(theme.palette.background.default, 0.72)\r\n  };\r\n\r\n  return (\r\n    <GlobalStyles\r\n      styles={{\r\n        '&.apexcharts-canvas': {\r\n          // Tooltip\r\n          '.apexcharts-xaxistooltip': {\r\n            ...background,\r\n            border: 0,\r\n            boxShadow: theme.customShadows.z24,\r\n            color: theme.palette.text.primary,\r\n            borderRadius: theme.shape.borderRadiusSm,\r\n            '&:before': { borderBottomColor: 'transparent' },\r\n            '&:after': { borderBottomColor: alpha(theme.palette.background.default, 0.72) }\r\n          },\r\n          '.apexcharts-tooltip.apexcharts-theme-light': {\r\n            ...background,\r\n            border: 0,\r\n            boxShadow: theme.customShadows.z24,\r\n            borderRadius: theme.shape.borderRadiusSm,\r\n            '& .apexcharts-tooltip-title': {\r\n              border: 0,\r\n              textAlign: 'center',\r\n              fontWeight: theme.typography.fontWeightBold,\r\n              backgroundColor: theme.palette.grey[500_16],\r\n              color: theme.palette.text[theme.palette.mode === 'light' ? 'secondary' : 'primary']\r\n            }\r\n          },\r\n          // Legend\r\n          '.apexcharts-legend': {\r\n            padding: 0\r\n          },\r\n          '.apexcharts-legend-series': {\r\n            display: 'flex !important',\r\n            alignItems: 'center'\r\n          },\r\n          '.apexcharts-legend-marker': {\r\n            marginRight: 8\r\n          },\r\n          '.apexcharts-legend-text': {\r\n            lineHeight: '18px',\r\n            textTransform: 'capitalize'\r\n          }\r\n        }\r\n      }}\r\n    />\r\n  );\r\n}\r\n\r\nexport default function BaseOptionChart(): ApexOptions {\r\n  const theme = useTheme();\r\n\r\n  const LABEL_TOTAL = {\r\n    show: true,\r\n    label: 'Total',\r\n    color: theme.palette.text.secondary,\r\n    fontSize: theme.typography.subtitle2.fontSize as string,\r\n    fontWeight: theme.typography.subtitle2.fontWeight,\r\n    lineHeight: theme.typography.subtitle2.lineHeight\r\n  };\r\n\r\n  const LABEL_VALUE = {\r\n    offsetY: 8,\r\n    color: theme.palette.text.primary,\r\n    fontSize: theme.typography.h3.fontSize as string,\r\n    fontWeight: theme.typography.h3.fontWeight,\r\n    lineHeight: theme.typography.h3.lineHeight\r\n  };\r\n\r\n  return {\r\n    // Colors\r\n    colors: [\r\n      theme.palette.primary.main,\r\n      theme.palette.chart.yellow[0],\r\n      theme.palette.chart.blue[0],\r\n      theme.palette.chart.violet[0],\r\n      theme.palette.chart.green[0],\r\n      theme.palette.chart.red[0]\r\n    ],\r\n\r\n    // Chart\r\n    chart: {\r\n      toolbar: { show: false },\r\n      zoom: { enabled: false },\r\n      // animations: { enabled: false },\r\n      foreColor: theme.palette.text.disabled,\r\n      fontFamily: theme.typography.fontFamily\r\n    },\r\n\r\n    // States\r\n    states: {\r\n      hover: {\r\n        filter: {\r\n          type: 'lighten',\r\n          value: 0.04\r\n        }\r\n      },\r\n      active: {\r\n        filter: {\r\n          type: 'darken',\r\n          value: 0.88\r\n        }\r\n      }\r\n    },\r\n\r\n    // Fill\r\n    fill: {\r\n      opacity: 1,\r\n      gradient: {\r\n        type: 'vertical',\r\n        shadeIntensity: 0,\r\n        opacityFrom: 0.4,\r\n        opacityTo: 0,\r\n        stops: [0, 100]\r\n      }\r\n    },\r\n\r\n    // Datalabels\r\n    dataLabels: { enabled: false },\r\n\r\n    // Stroke\r\n    stroke: {\r\n      width: 3,\r\n      curve: 'smooth',\r\n      lineCap: 'round'\r\n    },\r\n\r\n    // Grid\r\n    grid: {\r\n      strokeDashArray: 3,\r\n      borderColor: theme.palette.divider\r\n    },\r\n\r\n    // Xaxis\r\n    xaxis: {\r\n      axisBorder: { show: false },\r\n      axisTicks: { show: false }\r\n    },\r\n\r\n    // Markers\r\n    markers: {\r\n      size: 0,\r\n      strokeColors: theme.palette.background.paper\r\n    },\r\n\r\n    // Tooltip\r\n    tooltip: {\r\n      x: {\r\n        show: false\r\n      }\r\n    },\r\n\r\n    // Legend\r\n    legend: {\r\n      show: true,\r\n      fontSize: String(13),\r\n      position: 'top',\r\n      horizontalAlign: 'right',\r\n      markers: {\r\n        radius: 12\r\n      },\r\n      fontWeight: 500,\r\n      itemMargin: { horizontal: 12 },\r\n      labels: {\r\n        colors: theme.palette.text.primary\r\n      }\r\n    },\r\n\r\n    // plotOptions\r\n    plotOptions: {\r\n      // Bar\r\n      bar: {\r\n        columnWidth: '28%',\r\n        borderRadius: 4\r\n      },\r\n      // Pie + Donut\r\n      pie: {\r\n        donut: {\r\n          labels: {\r\n            show: true,\r\n            value: LABEL_VALUE,\r\n            total: LABEL_TOTAL\r\n          }\r\n        }\r\n      },\r\n      // Radialbar\r\n      radialBar: {\r\n        track: {\r\n          strokeWidth: '100%',\r\n          background: theme.palette.grey[500_16]\r\n        },\r\n        dataLabels: {\r\n          value: LABEL_VALUE,\r\n          total: LABEL_TOTAL\r\n        }\r\n      },\r\n      // Radar\r\n      radar: {\r\n        polygons: {\r\n          fill: { colors: ['transparent'] },\r\n          strokeColors: theme.palette.divider,\r\n          connectorColors: theme.palette.divider\r\n        }\r\n      },\r\n      // polarArea\r\n      polarArea: {\r\n        rings: {\r\n          strokeColor: theme.palette.divider\r\n        },\r\n        spokes: {\r\n          connectorColors: theme.palette.divider\r\n        }\r\n      }\r\n    },\r\n\r\n    // Responsive\r\n    responsive: [\r\n      {\r\n        // sm\r\n        breakpoint: theme.breakpoints.values.sm,\r\n        options: {\r\n          plotOptions: { bar: { columnWidth: '40%' } }\r\n        }\r\n      },\r\n      {\r\n        // md\r\n        breakpoint: theme.breakpoints.values.md,\r\n        options: {\r\n          plotOptions: { bar: { columnWidth: '32%' } }\r\n        }\r\n      }\r\n    ]\r\n  };\r\n}\r\n","import { Helmet } from 'react-helmet-async';\r\n\r\nexport default function ABTasty() {\r\n  return (\r\n    <Helmet>\r\n      <>\r\n        <script\r\n          type=\"text/javascript\"\r\n          src=\"https://try.abtasty.com/a0229dedf369e4de7852cdc426b77fd5.js\"\r\n        ></script>\r\n      </>\r\n    </Helmet>\r\n  );\r\n}\r\n","// routes\r\nimport Router from './routes';\r\n// theme\r\nimport ThemeConfig from './theme';\r\nimport GlobalStyles from './theme/globalStyles';\r\n// hooks\r\nimport useAuth from './hooks/useAuth';\r\n// components\r\n\r\nimport RtlLayout from './components/RtlLayout';\r\nimport ScrollToTop from './components/ScrollToTop';\r\nimport GoogleAnalytics from './components/GoogleAnalytics';\r\nimport NotistackProvider from './components/NotistackProvider';\r\nimport ThemePrimaryColor from './components/ThemePrimaryColor';\r\nimport ThemeLocalization from './components/ThemeLocalization';\r\nimport { BaseOptionChartStyle } from './components/charts/BaseOptionChart';\r\nimport LoadingScreen, { ProgressBarStyle } from './components/LoadingScreen';\r\nimport { ErrorBoundary } from 'react-error-boundary';\r\nimport Page500 from 'pages/Page500';\r\nimport useHubConnection from 'hooks/useHubConnection';\r\nimport { useLocation, useNavigate } from 'react-router';\r\nimport { useEffect, useRef } from 'react';\r\nimport { HubContextProvider } from 'contexts/HubContext';\r\nimport OneTrust, { OneTrustFooter } from 'components/OneTrust';\r\nimport ABTasty from 'components/ABTasty';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst myErrorHandler = (error: Error, info: { componentStack: string }) => {\r\n  // Do something with the error\r\n  // E.g. log to an error logging client here\r\n  console.log(error, info.componentStack, 'error');\r\n};\r\n\r\nconst ErrorFallback = ({\r\n  error,\r\n  resetErrorBoundary\r\n}: {\r\n  error: Error;\r\n  resetErrorBoundary: any;\r\n}) => {\r\n  const location = useLocation();\r\n  const errorLocation = useRef(location.pathname);\r\n  useEffect(() => {\r\n    if (location.pathname !== errorLocation.current) {\r\n      resetErrorBoundary();\r\n    }\r\n  }, [location.pathname]);\r\n  return <Page500 error={error} />;\r\n};\r\n\r\nconst excludeErrors = [\r\n  'ResizeObserver',\r\n  'IntersectionObserver',\r\n  'Loading chunk',\r\n  'Minified',\r\n  'Request aborted',\r\n  'insertBefore',\r\n  'u is not a function',\r\n  'Cannot read properties',\r\n  'Invalid time'\r\n];\r\n\r\nexport default function App() {\r\n  const { isInitialized } = useAuth();\r\n  const { onError } = useHubConnection();\r\n\r\n  return (\r\n    <ThemeConfig>\r\n      <ThemePrimaryColor>\r\n        <ThemeLocalization>\r\n          <ErrorBoundary\r\n            FallbackComponent={ErrorFallback}\r\n            onError={(error: Error, info: { componentStack: string }) => {\r\n              if (excludeErrors.some((w) => error.message.includes(w))) return;\r\n              onError('Erreur javascript', `${error.message} :  path => ${document.location.href}`);\r\n            }}\r\n          >\r\n            <RtlLayout>\r\n              <NotistackProvider>\r\n                <GlobalStyles />\r\n                <ProgressBarStyle />\r\n                <BaseOptionChartStyle />\r\n                <ScrollToTop />\r\n                <GoogleAnalytics />\r\n                <OneTrust />\r\n                <ABTasty />\r\n                {isInitialized ? (\r\n                  <>\r\n                    <Router />\r\n                  </>\r\n                ) : (\r\n                  <LoadingScreen />\r\n                )}\r\n              </NotistackProvider>\r\n            </RtlLayout>\r\n          </ErrorBoundary>\r\n        </ThemeLocalization>\r\n      </ThemePrimaryColor>\r\n    </ThemeConfig>\r\n  );\r\n}\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\nimport { urlBase64ToUint8Array } from \"utils/helper\";\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://cra.link/PWA\r\n\r\nconst isLocalhost = Boolean(\r\n  window.location.hostname === 'localhost' ||\r\n    // [::1] is the IPv6 localhost address.\r\n    window.location.hostname === '[::1]' ||\r\n    // 127.0.0.0/8 are considered localhost for IPv4.\r\n    window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\r\n);\r\n\r\ntype Config = {\r\n  onSuccess?: (registration: ServiceWorkerRegistration) => void;\r\n  onUpdate?: (registration: ServiceWorkerRegistration) => void;\r\n};\r\n\r\nexport function register(config?: Config) {\r\n  \r\n  \r\n  \r\n  if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n    // The URL constructor is available in all browsers that support SW.\r\n    const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n    if (publicUrl.origin !== window.location.origin) {\r\n      // Our service worker won't work if PUBLIC_URL is on a different origin\r\n      // from what our page is served on. This might happen if a CDN is used to\r\n      // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n      return;\r\n    }\r\n\r\n    window.addEventListener('load', () => {\r\n      const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n      if (isLocalhost) {\r\n        // This is running on localhost. Let's check if a service worker still exists or not.\r\n        checkValidServiceWorker(swUrl, config);\r\n\r\n        // Add some additional logging to localhost, pointing developers to the\r\n        // service worker/PWA documentation.\r\n        navigator.serviceWorker.ready.then(() => {\r\n          console.log(\r\n            'This web app is being served cache-first by a service ' +\r\n              'worker. To learn more, visit https://cra.link/PWA'\r\n          );\r\n        });\r\n      } else {\r\n        // Is not localhost. Just register service worker\r\n        registerValidSW(swUrl, config);\r\n      }\r\n    });\r\n  }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string, config?: Config) {\r\n  navigator.serviceWorker\r\n    .register(swUrl)\r\n    .then((registration) => {    \r\n\r\n      registration.onupdatefound = () => {\r\n        const installingWorker = registration.installing;\r\n        if (installingWorker == null) {\r\n          return;\r\n        }\r\n        installingWorker.onstatechange = () => {\r\n          if (installingWorker.state === 'installed') {\r\n            if (navigator.serviceWorker.controller) {\r\n              // At this point, the updated precached content has been fetched,\r\n              // but the previous service worker will still serve the older\r\n              // content until all client tabs are closed.\r\n              console.log(\r\n                'New content is available and will be used when all ' +\r\n                  'tabs for this page are closed. See https://cra.link/PWA.'\r\n              );\r\n\r\n              // Execute callback\r\n              if (config && config.onUpdate) {\r\n                config.onUpdate(registration);\r\n              }\r\n            } else {\r\n              // At this point, everything has been precached.\r\n              // It's the perfect time to display a\r\n              // \"Content is cached for offline use.\" message.\r\n              console.log('Content is cached for offline use.');\r\n\r\n              // Execute callback\r\n              if (config && config.onSuccess) {\r\n                config.onSuccess(registration);\r\n              }\r\n            }\r\n          }\r\n        };\r\n      };\r\n    })\r\n    .catch((error) => {\r\n      console.error('Error during service worker registration:', error);\r\n    });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\r\n  // Check if the service worker can be found. If it can't reload the page.\r\n  fetch(swUrl, {\r\n    headers: { 'Service-Worker': 'script' }\r\n  })\r\n    .then((response) => {\r\n      // Ensure service worker exists, and that we really are getting a JS file.\r\n      const contentType = response.headers.get('content-type');\r\n      if (\r\n        response.status === 404 ||\r\n        (contentType != null && contentType.indexOf('javascript') === -1)\r\n      ) {\r\n        // No service worker found. Probably a different app. Reload the page.\r\n        navigator.serviceWorker.ready.then((registration) => {\r\n          registration.unregister().then(() => {\r\n            window.location.reload();\r\n          });\r\n        });\r\n      } else {\r\n        // Service worker found. Proceed as normal.\r\n        registerValidSW(swUrl, config);\r\n      }\r\n    })\r\n    .catch(() => {\r\n      console.log('No internet connection found. App is running in offline mode.');\r\n    });\r\n}\r\n\r\nexport function unregister() {\r\n  if ('serviceWorker' in navigator) {\r\n    navigator.serviceWorker.ready\r\n      .then((registration) => {\r\n        registration.unregister();\r\n      })\r\n      .catch((error) => {\r\n        console.error(error.message);\r\n      });\r\n  }\r\n}\r\n","import { ReportHandler } from 'web-vitals';\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n  if (onPerfEntry && onPerfEntry instanceof Function) {\r\n    import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n      getCLS(onPerfEntry);\r\n      getFID(onPerfEntry);\r\n      getFCP(onPerfEntry);\r\n      getLCP(onPerfEntry);\r\n      getTTFB(onPerfEntry);\r\n    });\r\n  }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","// mock api\r\n//import './_apis_';\r\n\r\n// i18n\r\nimport './locales/i18n';\r\n\r\n// highlight\r\nimport './utils/highlight';\r\n\r\n// scroll bar\r\nimport 'simplebar/src/simplebar.css';\r\n\r\n// map\r\nimport 'mapbox-gl/dist/mapbox-gl.css';\r\n\r\n// lightbox\r\nimport 'react-image-lightbox/style.css';\r\n\r\n// editor\r\nimport 'react-quill/dist/quill.snow.css';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\n\r\n// slick-carousel\r\nimport 'slick-carousel/slick/slick.css';\r\nimport 'slick-carousel/slick/slick-theme.css';\r\n\r\n// lazy image\r\nimport 'lazysizes';\r\nimport 'lazysizes/plugins/attrchange/ls.attrchange';\r\nimport 'lazysizes/plugins/object-fit/ls.object-fit';\r\nimport 'lazysizes/plugins/parent-fit/ls.parent-fit';\r\n\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter, HashRouter } from 'react-router-dom';\r\nimport { HelmetProvider } from 'react-helmet-async';\r\nimport { Provider as ReduxProvider } from 'react-redux';\r\nimport { PersistGate } from 'redux-persist/lib/integration/react';\r\n// material\r\nimport AdapterDateFns from '@mui/lab/AdapterDateFns';\r\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\r\n// redux\r\nimport { store, persistor } from './redux/store';\r\n// contexts\r\nimport { SettingsProvider } from './contexts/SettingsContext';\r\nimport { CollapseDrawerProvider } from './contexts/CollapseDrawerContext';\r\n// components\r\nimport LoadingScreen from './components/LoadingScreen';\r\n\r\n// Check our docs\r\n// https://docs-minimals.vercel.app/authentication/ts-version\r\n\r\nimport { AuthProvider } from './contexts/JWTContext';\r\n// import { AuthProvider } from './contexts/AwsCognitoContext';\r\n// import { AuthProvider } from './contexts/Auth0Context';\r\n// import { AuthProvider } from './contexts/FirebaseContext';\r\n\r\n//\r\nimport App from './App';\r\nimport * as serviceWorkerRegistration from './serviceWorkerRegistration';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport { fr } from 'date-fns/locale';\r\nimport { HubContextProvider } from 'contexts/HubContext';\r\nimport { StudyPlanProvider } from 'contexts/StudyPlanContext';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nReactDOM.render(\r\n  <HelmetProvider>\r\n    <ReduxProvider store={store}>\r\n      <StudyPlanProvider>\r\n        <PersistGate loading={<LoadingScreen />} persistor={persistor}>\r\n          <LocalizationProvider dateAdapter={AdapterDateFns} locale={fr}>\r\n            <SettingsProvider>\r\n              <CollapseDrawerProvider>\r\n                <HubContextProvider>\r\n                  <HashRouter>\r\n                    <AuthProvider>\r\n                      <App />\r\n                    </AuthProvider>\r\n                  </HashRouter>\r\n                </HubContextProvider>\r\n              </CollapseDrawerProvider>\r\n            </SettingsProvider>\r\n          </LocalizationProvider>\r\n        </PersistGate>\r\n      </StudyPlanProvider>\r\n    </ReduxProvider>\r\n  </HelmetProvider>,\r\n  document.getElementById('root')\r\n);\r\n// document.getElementById('root')\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://cra.link/PWA\r\nserviceWorkerRegistration.unregister();\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n","import { Icon } from '@iconify/react';\r\nimport starOutline from '@iconify/icons-eva/star-outline';\r\nimport starFill from '@iconify/icons-eva/star-fill';\r\n\r\n// material\r\nimport { alpha, styled } from '@mui/material/styles';\r\nimport { Box, Stack, AppBar, Toolbar, IconButton, Tooltip } from '@mui/material';\r\n\r\n//Type\r\nimport { FavoriteKey, FavoriteType, FavoriteState, Favorite } from '../../../@types/favorite';\r\n\r\n//redux\r\nimport { useDispatch, useSelector } from 'redux/store';\r\nimport { addFavorite, removeFavorite } from 'redux/slices/favorite';\r\nimport { useEffect, useState } from 'react';\r\nimport { getDateTimeToString } from '../../../utils/formatTime';\r\nimport { useSnackbar } from 'notistack';\r\nimport MIconButton from 'components/MIconButton';\r\n\r\n//----------------------------------------------------------\r\n\r\ntype FavoriteToggleActionProps = {\r\n  type: FavoriteType;\r\n  keyFav: FavoriteKey;\r\n  title: string;\r\n  isToolbarSide?: boolean;\r\n};\r\n\r\nconst getInit = (type: FavoriteType, keyFav: FavoriteKey, title: string) => {\r\n  return {\r\n    id: 0,\r\n    label: title,\r\n    key: keyFav,\r\n    type: type,\r\n    dateCreated: getDateTimeToString()\r\n  } as Favorite;\r\n};\r\n\r\nexport default function FavoriteToggleAction({\r\n  type = FavoriteType.News,\r\n  keyFav,\r\n  title = '',\r\n  isToolbarSide\r\n}: FavoriteToggleActionProps) {\r\n  const dispatch = useDispatch();\r\n  const { favorites, error, isLoading } = useSelector(\r\n    (state: { favorite: FavoriteState }) => state.favorite\r\n  );\r\n\r\n  const [current, setCurrent] = useState<Favorite>(getInit(type, keyFav, title));\r\n  const { enqueueSnackbar } = useSnackbar();\r\n\r\n  const handleAdd = () => {\r\n    dispatch(addFavorite(current)).then((data) => {\r\n      // enqueueSnackbar('Favori ajouté', { variant: 'success' });\r\n    });\r\n  };\r\n\r\n  const handleRemove = () => {\r\n    dispatch(removeFavorite(current.id));\r\n  };\r\n\r\n  const handleClick = (event: any) => {\r\n    event.stopPropagation();\r\n    event.preventDefault();\r\n    current.id > 0 ? handleRemove() : handleAdd();\r\n  };\r\n\r\n  useEffect(() => {\r\n    const favorite = favorites.filter((w: Favorite) => {\r\n      switch (type) {\r\n        case FavoriteType.Courses:\r\n          return w.key.courseId === keyFav.courseId && w.key.mediaId === keyFav.mediaId;\r\n\r\n        case FavoriteType.Evaluation:\r\n          return w.key.courseId === keyFav.courseId && w.key.homeworkId === keyFav.homeworkId;\r\n\r\n        case FavoriteType.News:\r\n        case FavoriteType.VirtualClass:\r\n        case FavoriteType.Workshop:\r\n        case FavoriteType.Job:\r\n        case FavoriteType.Task:\r\n          return w.key.id === keyFav.id;\r\n      }\r\n    });\r\n\r\n    if (favorite.length > 0) setCurrent(favorite[0]);\r\n    else setCurrent(getInit(type, keyFav, title));\r\n  }, [favorites, keyFav]);\r\n\r\n  if (isToolbarSide) {\r\n    return (\r\n      <Tooltip title=\"Favori\">\r\n        <MIconButton onClick={handleClick}>\r\n          <Icon icon={current.id > 0 ? starFill : starOutline} width={20} height={20} />\r\n        </MIconButton>\r\n      </Tooltip>\r\n    );\r\n  }\r\n\r\n  return (\r\n    <Tooltip title=\"Favori\">\r\n      <IconButton onClick={handleClick} color={'primary'}>\r\n        <Icon icon={current.id > 0 ? starFill : starOutline} width={20} height={20} />\r\n      </IconButton>\r\n    </Tooltip>\r\n  );\r\n}\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { dispatch } from '../store';\r\n// utils\r\nimport axios from '../../utils/axios';\r\n// @types\r\nimport {\r\n  Message,\r\n  MessageAddResponse,\r\n  MessageAddResult,\r\n  MessageDetail,\r\n  MessageItemResponse,\r\n  MessageItemResult,\r\n  MessageLabel,\r\n  MessageListResponse,\r\n  MessageListResult,\r\n  MessageState,\r\n  MessageType,\r\n  Question,\r\n  ServiceListResponse,\r\n  ServiceListResult\r\n} from '../../@types/message';\r\nimport { map } from 'lodash';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: MessageState = {\r\n  isLoading: false,\r\n  error: false,\r\n  messages: [],\r\n  question: null,\r\n  services: null\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'message',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n    },\r\n\r\n    endLoading(state) {\r\n      state.isLoading = false;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    getMessagesSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.messages = action.payload;\r\n    },\r\n    addQuestionSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.messages = [...state.messages, ...action.payload];\r\n    },\r\n\r\n    getQuestionSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.question = action.payload;\r\n    },\r\n\r\n    getServicesSuccess(state, action) {\r\n      state.services = action.payload;\r\n    },\r\n    updateRead(state, action) {\r\n      const { id, read } = action.payload;\r\n      const messages = map(state.messages, (x) => {\r\n        if (x.id === id) {\r\n          x.read = read;\r\n        }\r\n        return x;\r\n      });\r\n      state.messages = messages;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nexport const { updateRead } = slice.actions;\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getLabels(messages: Array<Message>): MessageLabel[] {\r\n  return [\r\n    {\r\n      id: 'all',\r\n      type: 'system',\r\n      name: 'Tous mes messages',\r\n      unreadCount: messages.filter((x) => !x.read).length\r\n    },\r\n    {\r\n      id: 'unread',\r\n      type: 'system',\r\n      name: 'Messages non lus',\r\n      unreadCount: messages.filter((x) => !x.read).length\r\n    },\r\n    {\r\n      id: 'school',\r\n      type: 'system',\r\n      name: 'Communications de l’école',\r\n      unreadCount: messages.filter(\r\n        (x) => ![MessageType.Answer, MessageType.Question].includes(x.type) && !x.read\r\n      ).length\r\n    },\r\n    {\r\n      id: 'question',\r\n      type: 'system',\r\n      name: 'Mes questions / réponses',\r\n      unreadCount: messages.filter(\r\n        (x) => [MessageType.Answer, MessageType.Question].includes(x.type) && !x.read\r\n      ).length\r\n    }\r\n  ];\r\n}\r\n\r\nexport function getMessages() {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.post<MessageListResponse>('/api/message/list', {\r\n        type: 5,\r\n        index: 1,\r\n        pageSize: 1000\r\n      });\r\n      const { result, list } = response.data;\r\n      switch (result) {\r\n        case MessageListResult.Success:\r\n          dispatch(slice.actions.getMessagesSuccess(list));\r\n          break;\r\n        default:\r\n          dispatch(slice.actions.endLoading());\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport const getMessage =\r\n  (id: number, idType: number, type: number) =>\r\n  (onSuccess: (question: Array<MessageDetail>) => void) =>\r\n  (onError: () => void) => {\r\n    return async () => {\r\n      try {\r\n        const response = await axios.get<MessageItemResponse>(\r\n          `/api/message/${id}/${idType}/${type}`\r\n        );\r\n        const { result, items } = response.data;\r\n        switch (result) {\r\n          case MessageItemResult.Success:\r\n            dispatch(updateRead({ id: id, read: true }));\r\n            onSuccess(items);\r\n\r\n            break;\r\n          default:\r\n            onError();\r\n            break;\r\n        }\r\n      } catch (error) {\r\n        console.log(error);\r\n        onError();\r\n      }\r\n    };\r\n  };\r\n\r\nexport const addQuestion = (message: Question) => (onSuccess: (question: Question) => void) => {\r\n  return async () => {\r\n    const formData = new FormData();\r\n    dispatch(slice.actions.startLoading());\r\n    if (message.files != null) {\r\n      message.files.forEach((file) => {\r\n        formData.append('file', file);\r\n      });\r\n    }\r\n    formData.append('data', JSON.stringify(message));\r\n    try {\r\n      let response = await axios.post<MessageAddResponse>(`/api/message/add/question`, formData, {\r\n        headers: { 'Content-Type': 'multipart/form-data', writeOnly: true }\r\n      });\r\n      const { result, question } = response.data;\r\n      switch (result) {\r\n        case MessageAddResult.Success:\r\n          if (message.themeId) {\r\n            Object.assign(question, {\r\n              serviceId: message.themeId,\r\n              category: message.themeId\r\n            });\r\n          }\r\n\r\n          dispatch(slice.actions.addQuestionSuccess([question]));\r\n          onSuccess(question);\r\n          break;\r\n        default:\r\n          dispatch(slice.actions.hasError(result));\r\n          break;\r\n      }\r\n    } catch (e) {\r\n      dispatch(slice.actions.hasError(99));\r\n    }\r\n  };\r\n};\r\n\r\nexport const toggleReadMessage = (id: number, value: boolean) => (onSuccess: () => void) => {\r\n  return async () => {\r\n    try {\r\n      const response = await axios.get<boolean>(`/api/message/${!value ? 'unread' : 'read'}/${id}`);\r\n      if (response.data) {\r\n        dispatch(updateRead({ id: id, read: value }));\r\n\r\n        onSuccess();\r\n      }\r\n    } catch (error) {}\r\n  };\r\n};\r\n\r\nexport const getServices = () => {\r\n  return async () => {\r\n    try {\r\n      const response = await axios.get<ServiceListResponse>(`/api/settings/services`);\r\n      const { result, list } = response.data;\r\n      switch (result) {\r\n        case ServiceListResult.Success:\r\n          dispatch(slice.actions.getServicesSuccess(list));\r\n\r\n          break;\r\n      }\r\n    } catch (error) {}\r\n  };\r\n};\r\n","//materials\r\nimport Label, { LabelColor } from 'components/Label';\r\nimport HomeworkStatusRender from 'components/_dashboard/pedagogy/HomeworkStatusRender';\r\nimport { getColorsIconStatus, getColorsStatus } from 'utils/helperStudyPlan';\r\nimport { IconTypeSupport } from 'utils/helperSupport';\r\nimport { BoxProps } from '@mui/system';\r\n//type\r\nimport {\r\n  HomeworkStatus,\r\n  StudyPlanItem,\r\n  StudyPlanItemHomework,\r\n  StudyPlanItemStatus,\r\n  StudyPlanItemType\r\n} from '../../../../@types/pedagogy';\r\n\r\n//--------------------------------------------------\r\n\r\n/**\r\n * Affciher le statut de l'item du chapitre (média, devoir,quiz)\r\n */\r\nexport default function ChapterItemStatus({\r\n  item,\r\n  withoutColor\r\n}: {\r\n  item: StudyPlanItem;\r\n  withoutColor?: boolean;\r\n}) {\r\n  let color: LabelColor = getColorsStatus().filter(\r\n    (cp) => cp.status === StudyPlanItemStatus[item.status].toString().toLowerCase()\r\n  )[0].color;\r\n\r\n  if (withoutColor) color = 'default';\r\n\r\n  switch (item.type) {\r\n    case StudyPlanItemType.Audio:\r\n      return <Label color={color}>Audio</Label>;\r\n    case StudyPlanItemType.Video:\r\n      return <Label color={color}>Vidéo</Label>;\r\n\r\n    case StudyPlanItemType.Elearning:\r\n      return <Label color={color}>Activité e-learning</Label>;\r\n    case StudyPlanItemType.Url:\r\n      return <Label color={color}>Lien</Label>;\r\n    case StudyPlanItemType.Pdf:\r\n    case StudyPlanItemType.Html:\r\n      return <Label color={color}>Cours</Label>;\r\n\r\n    case StudyPlanItemType.Homework:\r\n      const homeworkBase = (item as StudyPlanItemHomework).homeworkBase;\r\n      const homework = (item as StudyPlanItemHomework).homeworkBase.homeworks[\r\n        homeworkBase.homeworks?.length - 1\r\n      ];\r\n\r\n      return (\r\n        <HomeworkStatusRender\r\n          status={homework?.status}\r\n          color={color}\r\n          type={homeworkBase?.homeworkType}\r\n        />\r\n      );\r\n\r\n    default:\r\n      return <Label color={color}>Annexe</Label>;\r\n  }\r\n}\r\n\r\ninterface IconTypeSupportProps extends BoxProps {\r\n  status: StudyPlanItemStatus;\r\n  type: StudyPlanItemType;\r\n}\r\n\r\nexport function ChapterItemIconTypeStatus({ status, type, sx }: IconTypeSupportProps) {\r\n  const color = getColorsIconStatus().filter(\r\n    (cp) => cp.status === StudyPlanItemStatus[status].toString().toLowerCase()\r\n  )[0].hexa;\r\n\r\n  return <IconTypeSupport sx={{ ...sx, color: color }} type={type} />;\r\n}\r\n","import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';\r\nimport { useEffect, useMemo } from 'react';\r\nimport { apiConfig } from '../config';\r\nimport { ModeAccess } from '../@types/account';\r\nimport useAuth from 'hooks/useAuth';\r\nimport useHubConnection from 'hooks/useHubConnection';\r\nimport { dispatch } from 'redux/store';\r\nimport { useSnackbar } from 'notistack';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst axiosInstance = axios.create({\r\n  baseURL: apiConfig.urlBase\r\n});\r\n\r\nexport const AXIOS_FULL_READONLY_MESSAGE = 'Fonctionnalité non accessible en mode lecture';\r\n\r\n/**\r\n * Exclure l'envoi de requete permettant de tracer l'activity de l'élève\r\n * Pour chaque requete de trace, il faut ajouter un header writeOnly.\r\n * A partir de l'authenfication , on verifie que l'utilisateur est bien en mode ecriture\r\n * @returns\r\n */\r\nexport const useAxiosControl = () => {\r\n  const { student, getContractCurrent, logout } = useAuth();\r\n  const { onError, disConnect } = useHubConnection();\r\n  const { enqueueSnackbar } = useSnackbar();\r\n\r\n  const interceptors = useMemo(() => {\r\n    return {\r\n      request: (config: AxiosRequestConfig) => {\r\n        //aucun traitement si on est en mode lecture\r\n        if (\r\n          config.headers.writeOnly &&\r\n          ![ModeAccess.Write, ModeAccess.Survey].includes(student?.modeAccess)\r\n        ) {\r\n          throw new Error(AXIOS_FULL_READONLY_MESSAGE); //'Fonctionnalité non accessible en mode lecture'\r\n        }\r\n\r\n        if (config.headers.tracker && student?.id === 1) {\r\n          throw new Error('aucune erreur envoyé au serveur pour eleve de test 1'); //'Fonctionnalité non accessible en mode lecture'\r\n        }\r\n\r\n        //envoyer l'id de connection\r\n        config.headers.common['x-api-userIdLog'] = getContractCurrent().idConnection;\r\n        config.headers.common['x-api-entversion'] = process.env.REACT_APP_ENT_VERSION;\r\n        return config;\r\n      },\r\n      response: (response: AxiosResponse) => response,\r\n      error: (error: any) => {\r\n        const url: string = error?.response?.config?.url || '';\r\n\r\n        if (\r\n          (error?.response?.status === 401 || error?.response?.status === 403) &&\r\n          [ModeAccess.Write].includes(student?.modeAccess) // si l'élève n'est pas en mode lecture\r\n        ) {\r\n          dispatch(logout());\r\n          return window.location.reload();\r\n        }\r\n        if (error?.response !== undefined) {\r\n          if (\r\n            !['/api/file/images/resize', '/api/pedagogy/learning/evaluation'].some((w) =>\r\n              url.includes(w)\r\n            )\r\n          )\r\n            onError(`Appel Api en erreur : ${url}`, `${error.toString()}`);\r\n        }\r\n\r\n        //badrequest code api\r\n        if (error?.response?.status === 400) {\r\n          return Promise.reject((error?.response && error?.response?.data) || error);\r\n        }\r\n\r\n        // Ajout de l'alerte\r\n        let errorMsg =\r\n          'Nous rencontrons actuellement un problème avec votre Espace Numérique de Travail';\r\n\r\n        if (error && 'message' in error) {\r\n          if (error?.message === AXIOS_FULL_READONLY_MESSAGE) {\r\n            errorMsg = AXIOS_FULL_READONLY_MESSAGE;\r\n          } else if (error?.message === 'Network Error') {\r\n            errorMsg =\r\n              'Nous rencontrons un problème de connexion avec votre Espace Numérique de Travail';\r\n          } else if (error?.message === 'Request failed with status code 404') {\r\n            errorMsg = 'Le contenu est inaccessible';\r\n          }\r\n        }\r\n        //afficher le message seulement en ecriture\r\n        if ([ModeAccess.Write, ModeAccess.Survey].includes(student?.modeAccess))\r\n          enqueueSnackbar(errorMsg, { variant: 'error', persist: false });\r\n\r\n        return Promise.reject((error?.response && error?.response?.data) || error);\r\n      }\r\n    };\r\n  }, []); // create the interceptors}\r\n\r\n  useEffect(() => {\r\n    // add request interceptors\r\n    const reqInterceptor = axiosInstance.interceptors.request.use(\r\n      interceptors.request,\r\n      interceptors.error\r\n    );\r\n\r\n    // add response interceptors\r\n    const resInterceptor = axiosInstance.interceptors.response.use(\r\n      interceptors.response,\r\n      interceptors.error\r\n    );\r\n    return () => {\r\n      // remove all intercepts when done\r\n      axiosInstance.interceptors.request.eject(reqInterceptor);\r\n      axiosInstance.interceptors.response.eject(resInterceptor);\r\n    };\r\n  }, [interceptors]);\r\n\r\n  return {};\r\n};\r\n\r\n/*\r\naxiosInstance.interceptors.request.use((config) => {\r\n  console.log(config);\r\n\r\n  //axios.interceptors.request.eject(myInterceptor);\r\n  return config;\r\n});\r\n\r\naxiosInstance.interceptors.response.use(\r\n  (response) => {\r\n    if (response.status === 403) {\r\n      console.log('You are not authorized');\r\n    }\r\n    return response;\r\n  },\r\n  (error) => {\r\n    if (error.response.status === 403) {\r\n    }\r\n    return Promise.reject((error.response && error.response.data) || error);\r\n  }\r\n\r\n   if (error.response.status === 403 || error.response.status === 401) {\r\n          window.location.reload();\r\n        }\r\n);\r\n*/\r\n\r\nexport default axiosInstance;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { HomeworkCacheContentState } from '../../@types/homeworkCacheContent';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: HomeworkCacheContentState = {\r\n  idCache: 0,\r\n  courseIdCache: '',\r\n  barCodeCache: '',\r\n  contentCache: '',\r\n  applyContentCache: false\r\n};\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst slice = createSlice({\r\n  name: 'homeworkCacheContent',\r\n  initialState,\r\n  reducers: {\r\n    initHomeworkCacheContent(state, action) {\r\n      if (action.payload) {\r\n        const homework = { ...action.payload };\r\n\r\n        state.idCache = homework.id;\r\n        state.courseIdCache = homework.courseId;\r\n        state.barCodeCache = homework.barCode;\r\n        state.contentCache = homework.content;\r\n      } else {\r\n        state.idCache = 0;\r\n        state.courseIdCache = '';\r\n        state.barCodeCache = '';\r\n        state.contentCache = '';\r\n      }\r\n\r\n      state.applyContentCache = false;\r\n    },\r\n    updateHomeworkCacheContent(state, action) {\r\n      const { homework, content } = action.payload;\r\n\r\n      state.idCache = homework ? homework.id : 0;\r\n      state.courseIdCache = homework ? homework.courseId : '';\r\n      state.barCodeCache = homework ? homework.barCode : '';\r\n\r\n      state.contentCache = content;\r\n    },\r\n    clearHomeworkCacheContent(state) {\r\n      state.idCache = 0;\r\n      state.courseIdCache = '';\r\n      state.barCodeCache = '';\r\n      state.contentCache = '';\r\n      state.applyContentCache = false;\r\n    },\r\n    applyHomeworkCache(state, action) {\r\n      const { homework, callBack } = action.payload;\r\n      if (\r\n        homework &&\r\n        homework.id === state.idCache &&\r\n        homework.courseId === state.courseIdCache &&\r\n        homework.barCode === state.barCodeCache\r\n      ) {\r\n        state.applyContentCache = true;\r\n      }\r\n\r\n      if (callBack) {\r\n        callBack();\r\n      }\r\n    },\r\n    deactivateHomeworkCache(state) {\r\n      state.applyContentCache = false;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\nexport const {\r\n  initHomeworkCacheContent,\r\n  updateHomeworkCacheContent,\r\n  clearHomeworkCacheContent,\r\n  applyHomeworkCache,\r\n  deactivateHomeworkCache\r\n} = slice.actions;\r\n","import { AgendaEvent } from './agenda';\r\nimport { HomeworkBase } from './pedagogy';\r\n\r\nexport interface ObjectiveState {\r\n  isLoading: boolean;\r\n  error: any;\r\n  objective: Objective | null;\r\n  calculateInfos: ObjectiveCalculateInfos | null;\r\n}\r\n\r\nexport interface ObjectiveResponse {\r\n  planningJson: string;\r\n  result: ObjectiveResult;\r\n}\r\n\r\nexport enum ObjectiveResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n\r\nexport interface ObjectiveRequest {\r\n  dateStart: string;\r\n  dateEnd: string;\r\n  daysWorking: Array<number>;\r\n  periodesOff: string[];\r\n  jalonCount: number;\r\n  lock: boolean;\r\n  lockBy: string;\r\n}\r\n\r\nexport interface Objective {\r\n  events: AgendaEvent[];\r\n  start: string;\r\n  end: string;\r\n  periodesOff: string[];\r\n  jalonCount: number;\r\n  homeworkDoCount: number;\r\n  interval: number;\r\n  daysWorking: Array<number>;\r\n  progression: number;\r\n  lock: boolean;\r\n  lockBy: string;\r\n  observation: string;\r\n  dateAskUnlock: string;\r\n}\r\n\r\nexport interface ObjectiveSaveResponse {\r\n  errorDescription: string;\r\n  result: ObjectiveSaveResult;\r\n}\r\n\r\nexport enum ObjectiveSaveResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n\r\nexport interface ObjectiveCalculateResponse {\r\n  jalons: string[];\r\n  interval: number;\r\n  result: ObjectiveCalculateResult;\r\n}\r\n\r\nexport enum ObjectiveCalculateResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  Error = 2\r\n}\r\n\r\nexport interface ObjectiveCalculateInfos {\r\n  objective: Objective;\r\n  eventsInAgenda: Array<AgendaEvent>;\r\n}\r\n\r\nexport interface ObjectivePlanningAskUnlockRequest {\r\n  contractId: number;\r\n  amendmentId: number;\r\n}\r\n\r\nexport enum ObjectivePlanningAskUnlockResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  Error = 2\r\n}\r\n\r\nexport interface ObjectivePlanningAskUnlockResponse {\r\n  result: ObjectivePlanningAskUnlockResult;\r\n  errorDescription: string;\r\n}\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { dispatch, store } from '../store';\r\n// utils\r\nimport axios from '../../utils/axios';\r\n// @types\r\nimport {\r\n  ObjectiveResponse,\r\n  ObjectiveState,\r\n  ObjectiveResult,\r\n  ObjectiveRequest,\r\n  ObjectiveCalculateResponse,\r\n  ObjectiveCalculateResult,\r\n  ObjectiveSaveResponse,\r\n  Objective,\r\n  ObjectiveSaveResult,\r\n  ObjectiveCalculateInfos,\r\n  ObjectivePlanningAskUnlockRequest,\r\n  ObjectivePlanningAskUnlockResponse,\r\n  ObjectivePlanningAskUnlockResult\r\n} from '../../@types/objectiveType';\r\nimport { Homework, HomeworkBase, HomeworkStatus } from '../../@types/pedagogy';\r\n\r\nimport { convertObjectifToAgendaEvent } from 'mapper/agendaMap';\r\nimport { addEvent } from './agenda';\r\nimport { fDate, formatAPI } from 'utils/formatTime';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: ObjectiveState = {\r\n  isLoading: false,\r\n  error: false,\r\n  objective: null,\r\n  calculateInfos: null\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'objective',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n    },\r\n    // START LOADING\r\n    endLoading(state) {\r\n      state.isLoading = false;\r\n    },\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n\r\n      state.error = action.payload;\r\n    },\r\n\r\n    // GET POSTS\r\n    getObjectiveSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.objective = action.payload;\r\n    },\r\n\r\n    // MAJ des infos du calcul (au retour de l'API)\r\n    updateCalculateInfos(state, action) {\r\n      state.calculateInfos = action.payload;\r\n    },\r\n\r\n    updateDateAskUnlock(state, action) {\r\n      if (state.objective) state.objective.dateAskUnlock = action.payload;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\n//export const { getMoreArticles } = slice.actions;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getObjectives(homeworks: Array<HomeworkBase>) {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n\r\n    try {\r\n      const response = await axios.get<ObjectiveResponse>(`/api/agenda/objectivePlanning`);\r\n\r\n      const { result, planningJson } = response.data;\r\n      switch (result) {\r\n        case ObjectiveResult.Success:\r\n          let objectivePlanning = JSON.parse(planningJson);\r\n\r\n          let eventList = objectivePlanning.events.map((event: any, index: number) => {\r\n            if (event.start.includes(')T')) {\r\n              event.start = extractDateBad(event.start.split(')T')[0], event.start.split(')T')[1]);\r\n            }\r\n            if (event.end && event.end.includes(')T')) {\r\n              event.end = extractDateBad(event.end.split(')T')[0], event.end.split(')T')[1]);\r\n            }\r\n\r\n            const homework = homeworks.filter(\r\n              (d) => d.courseId === event.metadata.sup && d.id === event.metadata.dvr\r\n            )[0];\r\n\r\n            if (homework !== null && homework?.homeworks?.length > 0) {\r\n              event.metadata.status = homework.homeworks[homework.homeworks.length - 1].status;\r\n            } else event.metadata.status = HomeworkStatus.ToDo;\r\n\r\n            return convertObjectifToAgendaEvent(event, index, objectivePlanning.lock);\r\n          });\r\n\r\n          objectivePlanning.events = eventList;\r\n          objectivePlanning.daysWorking = objectivePlanning.daysWorking || [0, 1, 2, 3, 4, 5, 6];\r\n          objectivePlanning.periodesOff = objectivePlanning.periodesOff || [];\r\n\r\n          dispatch(slice.actions.getObjectiveSuccess(objectivePlanning));\r\n\r\n          dispatch(addEvent(eventList));\r\n          break;\r\n        case ObjectiveResult.NotFound:\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      //dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n/*\r\nformat en erreur :Tue Nov 29 2022 00:00:00 GMT+0100 (heure normale d’Europe centrale)T08:00:00\r\n*/\r\nconst extractDateBad = (date: string, time: string) => {\r\n  return formatAPI(new Date(date + ')')) + 'T' + time;\r\n};\r\n\r\n/**\r\n *\r\n * @param request Générer le planning\r\n * @returns\r\n */\r\nexport const createObjective =\r\n  (request: ObjectiveRequest) => (onSuccess: (interval: number, jalons: Array<string>) => void) => {\r\n    return async () => {\r\n      const { dispatch } = store;\r\n      dispatch(slice.actions.startLoading());\r\n      try {\r\n        const response = await axios.post<ObjectiveCalculateResponse>(\r\n          `/api/agenda/objectivePlanning/calculate`,\r\n          request,\r\n          {\r\n            headers: { writeOnly: true }\r\n          }\r\n        );\r\n        const { result, interval, jalons } = response.data;\r\n        switch (result) {\r\n          case ObjectiveCalculateResult.Success:\r\n            dispatch(slice.actions.endLoading());\r\n            onSuccess(interval, jalons);\r\n            break;\r\n          case ObjectiveCalculateResult.Error:\r\n            dispatch(\r\n              slice.actions.hasError(\r\n                'Désolé, Nous ne sommes pas en mesure de générer votre planning'\r\n              )\r\n            );\r\n            break;\r\n        }\r\n      } catch (ex) {\r\n        dispatch(slice.actions.hasError(ex));\r\n      }\r\n    };\r\n  };\r\n\r\nexport const saveObjective = (objective: Objective) => (onSuccess: () => void) => {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.post<ObjectiveSaveResponse>(\r\n        `/api/agenda/objectivePlanning`,\r\n        objective,\r\n        {\r\n          headers: { writeOnly: true }\r\n        }\r\n      );\r\n      const { result, errorDescription } = response.data;\r\n      switch (result) {\r\n        case ObjectiveSaveResult.Success:\r\n          let eventList = objective.events.map((event: any, index: number) => {\r\n            return convertObjectifToAgendaEvent(event, index, objective.lock);\r\n          });\r\n\r\n          objective.events = eventList;\r\n          dispatch(slice.actions.getObjectiveSuccess(objective));\r\n\r\n          onSuccess();\r\n          break;\r\n        case ObjectiveSaveResult.NotFound:\r\n          dispatch(\r\n            slice.actions.hasError(\r\n              \"Désolé, Nous ne sommes pas en mesure d'enregistrer vos modifications\"\r\n            )\r\n          );\r\n          break;\r\n      }\r\n    } catch (ex) {\r\n      dispatch(\r\n        slice.actions.hasError(\r\n          \"Désolé, Nous ne sommes pas en mesure d'enregistrer vos modifications\"\r\n        )\r\n      );\r\n    }\r\n  };\r\n};\r\n\r\nexport const askUnlockObjective =\r\n  (request: ObjectivePlanningAskUnlockRequest) => (onSuccess: () => void) => {\r\n    return async () => {\r\n      const { dispatch } = store;\r\n      try {\r\n        const response = await axios.post<ObjectivePlanningAskUnlockResponse>(\r\n          `/api/agenda/objectivePlanning/askUnlock`,\r\n          request,\r\n          {\r\n            headers: { writeOnly: true }\r\n          }\r\n        );\r\n\r\n        const { result, errorDescription } = response.data;\r\n\r\n        switch (result) {\r\n          case ObjectivePlanningAskUnlockResult.Success:\r\n            dispatch(slice.actions.updateDateAskUnlock(fDate(Date.now(), 'yyyy-MM-dd')));\r\n            onSuccess();\r\n            break;\r\n          default:\r\n            dispatch(\r\n              slice.actions.hasError(\r\n                'Désolé, Nous ne sommes pas en mesure de traitrer votre demande'\r\n              )\r\n            );\r\n            break;\r\n        }\r\n      } catch (ex) {\r\n        dispatch(\r\n          slice.actions.hasError('Désolé, Nous ne sommes pas en mesure de traitrer votre demande')\r\n        );\r\n      }\r\n    };\r\n  };\r\n","import { ReactNode } from 'react';\r\nimport { isString } from 'lodash';\r\n// material\r\nimport { Box, Typography, Link, Divider } from '@mui/material';\r\n//\r\nimport { MBreadcrumbs, MHidden } from './@material-extend';\r\nimport { MBreadcrumbsProps } from './@material-extend/MBreadcrumbs';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface HeaderBreadcrumbsProps extends MBreadcrumbsProps {\r\n  action?: ReactNode;\r\n  heading: string;\r\n  moreLink?: string | string[];\r\n  subHeader?: ReactNode;\r\n}\r\n\r\nexport default function HeaderBreadcrumbs({\r\n  links,\r\n  action,\r\n  heading,\r\n  moreLink = '' || [],\r\n  subHeader,\r\n  sx,\r\n  ...other\r\n}: HeaderBreadcrumbsProps) {\r\n  return (\r\n    <Box sx={{ mb: 1, ...sx }}>\r\n      <Box sx={{ display: 'flex', alignItems: 'center' }}>\r\n        <Typography variant=\"h4\" gutterBottom>\r\n          {heading}\r\n        </Typography>\r\n\r\n        <Box sx={{ flexGrow: 1 }} />\r\n        {action && <Box sx={{ flexShrink: 0 }}>{action}</Box>}\r\n      </Box>\r\n      {subHeader}\r\n      <Box sx={{ flexGrow: 1 }}>\r\n        <MBreadcrumbs links={links} {...other} />\r\n      </Box>\r\n\r\n      {moreLink && (\r\n        <Box sx={{ mt: 2 }}>\r\n          {isString(moreLink) ? (\r\n            <Link href={moreLink} target=\"_blank\" variant=\"body2\">\r\n              {moreLink}\r\n            </Link>\r\n          ) : (\r\n            moreLink.map((href) => (\r\n              <Link\r\n                noWrap\r\n                key={href}\r\n                href={href}\r\n                variant=\"body2\"\r\n                target=\"_blank\"\r\n                sx={{ display: 'table' }}\r\n              >\r\n                {href}\r\n              </Link>\r\n            ))\r\n          )}\r\n        </Box>\r\n      )}\r\n    </Box>\r\n  );\r\n}\r\n","import { Examen, ObjectifGeneral } from '../@types/examen';\r\nimport { useCallback } from 'react';\r\nimport { RootState, useSelector } from 'redux/store';\r\nimport { getLabelCategoryObjectif } from 'utils/helperExamen';\r\nimport useAuth from './useAuth';\r\n\r\n/**\r\n * Gestion des libelles ou autres des examens\r\n */\r\nexport default function useExamen() {\r\n  const { getContractCurrent, getGenreMasculin, student } = useAuth();\r\n  const { objectifSAY, examens } = useSelector((state: RootState) => state.examen);\r\n\r\n  /**\r\n   * Retourne l'ensemble des labels (examen,concours....)\r\n   * possible lié à la catégorie objectif sur la formation\r\n   */\r\n  const getLabel = useCallback(() => {\r\n    if (student) return getLabelCategoryObjectif(getContractCurrent().training.categoryObjectif);\r\n    else return getLabelCategoryObjectif('');\r\n  }, []);\r\n\r\n  /**\r\n   * Retourne l'inscription à l'examen SAY\r\n   * @returns\r\n   */\r\n  const getInscriptionExamenSAY = () => {\r\n    let inscription: {\r\n      insObjectifSAY: ObjectifGeneral | null;\r\n      insExamenSAY: Examen | null | undefined;\r\n    } = {\r\n      insObjectifSAY: objectifSAY,\r\n      insExamenSAY: objectifSAY?.gestionInscriptionInterne\r\n        ? examens?.find(\r\n            (e) =>\r\n              e.code === objectifSAY?.code && ['ENV', 'INS'].includes(e.statutInscription?.code)\r\n          )\r\n        : null\r\n    };\r\n\r\n    return inscription;\r\n  };\r\n\r\n  return {\r\n    getLabel,\r\n    getContractCurrent,\r\n    getGenreMasculin,\r\n    getInscriptionExamenSAY\r\n  };\r\n}\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { store } from '../store';\r\n// utils\r\nimport axiosInstance from '../../utils/axios';\r\n// @types\r\nimport {\r\n  CategorieObjectif,\r\n  Examen,\r\n  ExamenListResponse,\r\n  ExamenListResult,\r\n  ExamenSaveResponse,\r\n  ExamenSaveResult,\r\n  ExamenState,\r\n  ExamenUpdateDateEnvRequest,\r\n  ExamenUpdateDateEnvResponse,\r\n  ExamenUpdateDateEnvResult,\r\n  ObjectifGeneral\r\n} from '../../@types/examen';\r\nimport { DateTimePicker } from '@mui/lab';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: ExamenState = {\r\n  isLoading: false,\r\n  error: null,\r\n  examens: [],\r\n  objectifs: [],\r\n  regions: [],\r\n  departements: [],\r\n  academies: [],\r\n  statutsInscription: [],\r\n  statutsResultat: [],\r\n  statutsEpreuve: [],\r\n  etatsInscription: [],\r\n  categories: [],\r\n  dateExamenEnvisagee: null,\r\n  pourcentageDevoirsRealises: 0,\r\n  nombreJoursStage: 0,\r\n  noteDossierProMin: 0,\r\n  examen: null,\r\n  isLoadingForm: false,\r\n  errorForm: null,\r\n  objectifsGeresParSAY: [],\r\n  objectifsGeresEnExterne: [],\r\n  categoriesGereesParSAY: [],\r\n  categoriesGereesEnExterne: [],\r\n  objectifSAY: null\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'examen',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n      state.error = false;\r\n      state.errorForm = false;\r\n    },\r\n    // START LOADING\r\n    startLoadingForm(state) {\r\n      state.isLoadingForm = true;\r\n      state.errorForm = false;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n    // HAS ERROR\r\n    hasErrorForm(state, action) {\r\n      state.isLoadingForm = false;\r\n      state.errorForm = action.payload;\r\n    },\r\n\r\n    // Liste\r\n    getLoadSuccess(state, action) {\r\n      state.isLoading = false;\r\n      const {\r\n        examens,\r\n        objectifs,\r\n        regions,\r\n        departements,\r\n        academies,\r\n        statutsInscription,\r\n        statutsResultat,\r\n        statutsEpreuve,\r\n        etatsInscription,\r\n        categories,\r\n        dateExamenEnvisagee,\r\n        pourcentageDevoirsRealises,\r\n        nombreJoursStage,\r\n        noteDossierProMin,\r\n        objectifInscriptionAnticipee\r\n      } = action.payload;\r\n      state.examens = examens;\r\n      state.objectifs = objectifs;\r\n      state.regions = regions;\r\n      state.departements = departements;\r\n      state.academies = academies;\r\n      state.statutsInscription = statutsInscription;\r\n      state.statutsResultat = statutsResultat;\r\n      state.statutsEpreuve = statutsEpreuve;\r\n      state.etatsInscription = etatsInscription;\r\n      state.categories = categories;\r\n      state.dateExamenEnvisagee = dateExamenEnvisagee;\r\n      state.pourcentageDevoirsRealises = pourcentageDevoirsRealises;\r\n      state.nombreJoursStage = nombreJoursStage;\r\n      state.noteDossierProMin = noteDossierProMin;\r\n\r\n      const listeObjectifsSAY = objectifs?.filter(\r\n        (o: ObjectifGeneral) => o.gestionInscriptionInterne\r\n      );\r\n      state.objectifsGeresParSAY = listeObjectifsSAY;\r\n\r\n      state.objectifsGeresEnExterne = objectifs?.filter(\r\n        (o: ObjectifGeneral) => !o.gestionInscriptionInterne\r\n      );\r\n      state.categoriesGereesParSAY = Array.from(\r\n        new Map(\r\n          state.objectifsGeresParSAY?.map((o: ObjectifGeneral) => [o.categorie, o.categorie])\r\n        ).values()\r\n      ) as Array<string>;\r\n      state.categoriesGereesEnExterne = Array.from(\r\n        new Map(\r\n          state.objectifsGeresEnExterne?.map((o: ObjectifGeneral) => [o.categorie, o.categorie])\r\n        ).values()\r\n      ) as Array<string>;\r\n\r\n      // L'API retourne l'objectif interne utilisé pour l'inscription anticipée (premier objectif interne qui se présente)\r\n      state.objectifSAY = objectifInscriptionAnticipee;\r\n    },\r\n    add(state, action) {\r\n      state.isLoading = false;\r\n      state.isLoadingForm = false;\r\n      state.error = false;\r\n      state.errorForm = false;\r\n      const examen = action.payload;\r\n\r\n      const examens = state.examens.filter(\r\n        (ex) => !(ex.code === examen.code && ex.session.code === examen.session.code)\r\n      );\r\n      examens.push(examen);\r\n\r\n      state.examens = examens;\r\n    },\r\n    updateDatExaEnv(state, action) {\r\n      state.dateExamenEnvisagee = action.payload;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getExamens() {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axiosInstance.get<ExamenListResponse>('/api/examen/list');\r\n      const { result } = response.data;\r\n\r\n      switch (result) {\r\n        case ExamenListResult.Success:\r\n          dispatch(slice.actions.getLoadSuccess(response.data));\r\n          break;\r\n        default:\r\n          dispatch(slice.actions.hasError('error'));\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\nexport const addOrUpdate = (form: Examen) => (onSuccess: () => void) => {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoadingForm());\r\n    try {\r\n      const formData = new FormData();\r\n\r\n      if (form.session.fichiers != null) {\r\n        form.session.fichiers.forEach((fichier) => {\r\n          formData.append('file', fichier.file);\r\n        });\r\n      }\r\n\r\n      formData.append('data', JSON.stringify(form));\r\n      const response = await axiosInstance.post<ExamenSaveResponse>('/api/examen/edit', formData, {\r\n        headers: { 'Content-Type': 'multipart/form-data', writeOnly: true }\r\n      });\r\n      const { result, examen, errorMessage } = response.data;\r\n\r\n      switch (result) {\r\n        case ExamenSaveResult.Success:\r\n          dispatch(slice.actions.add(examen));\r\n          onSuccess();\r\n          break;\r\n        default:\r\n          if (errorMessage && errorMessage !== undefined && errorMessage !== '') {\r\n            dispatch(slice.actions.hasErrorForm(errorMessage));\r\n          } else {\r\n            dispatch(slice.actions.hasErrorForm('Nous rencontrons actuellement un problème'));\r\n          }\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasErrorForm('Nous rencontrons actuellement un problème'));\r\n    }\r\n  };\r\n};\r\n\r\n/*\r\n * Ajoute un examen dans la liste sans le sauvegarder en BDD\r\n */\r\nexport const addWithoutSave = (examen: Examen) => (onSuccess: () => void) => {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    if (examen) {\r\n      dispatch(slice.actions.add(examen));\r\n      onSuccess();\r\n    }\r\n  };\r\n};\r\n\r\nexport const updateDateExamenEnvisagee =\r\n  (request: ExamenUpdateDateEnvRequest) => (onSuccess: () => void) => (onError: () => void) => {\r\n    return async () => {\r\n      const { dispatch } = store;\r\n      try {\r\n        const response = await axiosInstance.post<ExamenUpdateDateEnvResponse>(\r\n          '/api/examen/updateDateExaEnv',\r\n          request,\r\n          {\r\n            headers: { writeOnly: true }\r\n          }\r\n        );\r\n\r\n        const { result, errorMessage } = response.data;\r\n\r\n        switch (result) {\r\n          case ExamenUpdateDateEnvResult.Success:\r\n            dispatch(slice.actions.updateDatExaEnv(request.dateEnvisagee));\r\n            onSuccess();\r\n            break;\r\n          default:\r\n            onError();\r\n            break;\r\n        }\r\n      } catch (error) {\r\n        onError();\r\n      }\r\n    };\r\n  };\r\n","import { Box, CardMediaProps, Stack, StackProps, styled } from '@mui/material';\r\nimport { borderColor } from '@mui/system';\r\nimport useScreenConfig from 'hooks/useScreenConfig';\r\nimport { useCallback, useEffect, useRef, useState } from 'react';\r\nimport axiosInstance from 'utils/axios';\r\nimport SkeletonLoadSingle from './SkeletonLoadSingle';\r\n\r\n//type\r\ninterface CardMediaCustomProps {\r\n  url: string;\r\n  isVideo: boolean; //Attention : obligation de le mettre à true si une vidéo est chargée (permet de calculer la hauteur en fonction du ratio)\r\n  onLoad?: () => void;\r\n}\r\n\r\nexport default function CardMediaCustom({ url, isVideo, onLoad }: CardMediaCustomProps) {\r\n  const { isMobile, isDesktop } = useScreenConfig();\r\n  const [isLoading, setIsloading] = useState(true);\r\n\r\n  const iframeRef = useRef<HTMLIFrameElement>(null);\r\n  const [mediaUrl, setMediaUrl] = useState('');\r\n  const [open, setOpen] = useState(false);\r\n\r\n  const handleLoad = () => {\r\n    setIsloading(false);\r\n    if (onLoad) onLoad();\r\n  };\r\n\r\n  const handleError = () => {\r\n    console.log('error');\r\n  };\r\n\r\n  useEffect(() => {\r\n    setOpen(false);\r\n    setMediaUrl(url);\r\n  }, [url]);\r\n\r\n  useEffect(() => {\r\n    if (mediaUrl === '') return;\r\n\r\n    setOpen(true);\r\n  }, [mediaUrl]);\r\n\r\n  return (\r\n    <>\r\n      {isLoading && (\r\n        <div\r\n          style={{\r\n            height: '100%',\r\n            width: '100%',\r\n            zIndex: 2\r\n          }}\r\n        >\r\n          <SkeletonLoadSingle />\r\n        </div>\r\n      )}\r\n      {open && (\r\n        <iframe\r\n          ref={iframeRef}\r\n          style={{\r\n            flexGrow: 1,\r\n            height: isMobile ? '92%' : '100%',\r\n            width: '100%',\r\n            overflow: 'auto',\r\n            opacity: isLoading ? 0 : 1\r\n          }}\r\n          scrolling=\"auto\"\r\n          frameBorder={0}\r\n          allowFullScreen\r\n          src={mediaUrl}\r\n          onLoad={handleLoad}\r\n          onError={handleError}\r\n        />\r\n      )}\r\n    </>\r\n  );\r\n}\r\n","export interface LearningResponse {\r\n  url: string;\r\n  score: number;\r\n  result: LearningResultResponse;\r\n}\r\n\r\nexport enum LearningResultResponse {\r\n  Success = 0,\r\n  Error = 1\r\n}\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { store } from '../store';\r\n// utils\r\n// utils\r\nimport axios from '../../utils/axios';\r\n// @types\r\nimport { Elearning, Homework, HomeworkStatus } from '../../@types/pedagogy';\r\nimport { map } from 'lodash';\r\nimport { fDate, fDateTime } from 'utils/formatTime';\r\nimport { ICDLRequest } from '../../@types/learningICDL';\r\nimport { LearningResponse, LearningResultResponse } from '../../@types/learning';\r\n\r\n// ----------------------------------------------------------------------\r\nexport type LearningState = {\r\n  learnings: Array<Elearning>; // ensemble des activités\r\n  photoLibrary: Array<Elearning>; // liens vers la photothèque\r\n  additionalLearnings: Array<Elearning>; // activités complémentaires\r\n  forumActivity: Array<Elearning>; // liens vers le forum\r\n};\r\n\r\nconst PHOTO_LIBRARY_ID = ['IG2', 'IG3'];\r\nconst FORUM = ['HH'];\r\n\r\nconst initialState: LearningState = {\r\n  learnings: [],\r\n  photoLibrary: [],\r\n  additionalLearnings: [],\r\n  forumActivity: []\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'learning',\r\n  initialState,\r\n  reducers: {\r\n    // GET POSTS\r\n    getLearnings(state, action) {\r\n      state.learnings = action.payload;\r\n      state.photoLibrary = action.payload?.filter((x: Elearning) =>\r\n        PHOTO_LIBRARY_ID.includes(x.id?.trim())\r\n      );\r\n      state.additionalLearnings = action.payload?.filter(\r\n        (y: Elearning) =>\r\n          !PHOTO_LIBRARY_ID.includes(y.id?.trim()) && !FORUM.includes(y.properties?.fouEfm)\r\n      );\r\n      state.forumActivity = action.payload?.filter((y: Elearning) =>\r\n        FORUM.includes(y.properties?.fouEfm)\r\n      );\r\n    },\r\n\r\n    updateLearning(state, action) {\r\n      const id = action.payload;\r\n      const updateLearnings = map(state.learnings, (_learning) => {\r\n        if (id === _learning.id) {\r\n          _learning.lastAccess = fDate(new Date());\r\n          return _learning;\r\n        }\r\n        return _learning;\r\n      });\r\n\r\n      state.learnings = updateLearnings;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nexport const { updateLearning, getLearnings } = slice.actions;\r\n\r\n// ----------------------------------------------------------------------\r\nexport const addLogLearning =\r\n  (fouEfm: string, proEfm: string, customId: string) => (onSuccess: () => void) => {\r\n    return async () => {\r\n      try {\r\n        const response = await axios.get<boolean>(\r\n          `/api/contract/log/learning/${fouEfm}/${proEfm}?customId=${customId}`,\r\n          {\r\n            headers: { writeOnly: true }\r\n          }\r\n        );\r\n        if (response.data) {\r\n          onSuccess();\r\n        }\r\n      } catch (error) {}\r\n    };\r\n  };\r\n\r\nexport const getTestICDL =\r\n  (request: ICDLRequest, courseId: string) =>\r\n  (onSuccess: (note: number, url: string) => void) =>\r\n  (onError: () => void) => {\r\n    return async () => {\r\n      try {\r\n        const response = await axios.post<LearningResponse>(\r\n          `/api/pedagogy/learning/url/${courseId}`,\r\n          request,\r\n          {\r\n            headers: { writeOnly: true }\r\n          }\r\n        );\r\n\r\n        const { result, score, url } = response.data;\r\n\r\n        switch (result) {\r\n          case LearningResultResponse.Success:\r\n            onSuccess(score, url);\r\n            break;\r\n          default:\r\n            onError();\r\n            break;\r\n        }\r\n      } catch (error) {\r\n        console.log(error);\r\n        onError();\r\n      }\r\n    };\r\n  };\r\n\r\nexport const getEvaluation =\r\n  (activity: any) =>\r\n  (onSuccess: (evaluation: any, learning: any, keyId: string) => void) =>\r\n  (onError: () => void) => {\r\n    return async () => {\r\n      try {\r\n        const response = await axios.get<any>(\r\n          `/api/pedagogy/learning/evaluation/${activity.courseId}/${activity.id}`,\r\n          {\r\n            headers: { writeOnly: true, silence: true }\r\n          }\r\n        );\r\n\r\n        const { item1, item2 } = response.data;\r\n\r\n        onSuccess(item1, item2, activity.keyId);\r\n      } catch (error) {\r\n        console.log(error);\r\n      }\r\n    };\r\n  };\r\n","//materials\r\nimport { Lock, Sync } from '@mui/icons-material';\r\nimport { Chip, ListItem, ListItemText, Stack, Typography } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport Label from 'components/Label';\r\nimport { HomeworkNote } from 'components/_dashboard/pedagogy/HomeworkNote';\r\nimport useChapterItem from 'hooks/useChapterItem';\r\nimport useStudyPlan from 'hooks/useStudyPlan';\r\nimport { useEffect, useRef } from 'react';\r\nimport { useNavigate } from 'react-router';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport { truncate } from 'utils/formatText';\r\nimport { getStudyPlanItemLabel } from 'utils/helperSupport';\r\n\r\n//type\r\nimport {\r\n  HomeworkStatus,\r\n  StudyPlanChapter,\r\n  StudyPlanItem,\r\n  StudyPlanItemHomework,\r\n  StudyPlanItemMedia,\r\n  StudyPlanItemStatus,\r\n  StudyPlanItemType\r\n} from '../../../../@types/pedagogy';\r\n\r\n//Composant\r\nimport ChapterItemStatus from './ChapterItemStatus';\r\nimport StudyPlanItemScore from './StudyPlanItemScore';\r\nimport useStudyPlanChapterItem from 'hooks/useStudyPlanChapterItem';\r\n\r\nexport type ChapterItemCardView = 'search' | 'standard';\r\n\r\nexport type ChapterItemCardProps = {\r\n  item: StudyPlanItem;\r\n  subChapter?: StudyPlanChapter | null;\r\n  view?: ChapterItemCardView;\r\n  onClose?: () => void;\r\n};\r\n\r\nexport default function ChapterItemCard({\r\n  item,\r\n  subChapter,\r\n  view = 'standard',\r\n  onClose\r\n}: ChapterItemCardProps) {\r\n  const navigate = useNavigate();\r\n\r\n  const managerChapterItem = useStudyPlanChapterItem();\r\n\r\n  const { label, observation } = getStudyPlanItemLabel(item);\r\n\r\n  const isIndicatorLocked = [StudyPlanItemStatus.Locked, StudyPlanItemStatus.Disabled].includes(\r\n    item.status\r\n  );\r\n\r\n  /**\r\n     * \r\n    const isUpdated = selectedItem?.item?.isUpdated;\r\n    const isSelected = item.key === selectedItem?.item?.key;\r\n     */\r\n\r\n  const isUpdated = item.isUpdated;\r\n  const isSelected = item.key === managerChapterItem.selected?.item?.key;\r\n\r\n  const handleClick = () => {\r\n    if (onClose) {\r\n      onClose();\r\n    }\r\n\r\n    if (view === 'standard') {\r\n      managerChapterItem.update(item);\r\n    } else navigate(`${PATH_DASHBOARD.studyPlan.details}/${item.reference}/${item.rowNumber}`);\r\n  };\r\n\r\n  //Gestion du scroll\r\n  const selectedItemRef = useRef<HTMLDivElement>(null);\r\n\r\n  useEffect(() => {\r\n    if (isSelected && selectedItemRef.current) {\r\n      selectedItemRef.current.scrollIntoView();\r\n    }\r\n  }, []);\r\n\r\n  return (\r\n    <ListItem\r\n      ref={isSelected ? selectedItemRef : null}\r\n      button\r\n      disabled={isIndicatorLocked}\r\n      onClick={handleClick}\r\n      sx={{ ...(isSelected && { backgroundColor: '#D4DBFF' }) }}\r\n    >\r\n      <ListItemText\r\n        primary={\r\n          <Stack direction=\"column\">\r\n            <Typography variant=\"caption\" gutterBottom>\r\n              {label}\r\n            </Typography>\r\n            {observation && observation !== '' && item.type === StudyPlanItemType.Annexe && (\r\n              <Typography variant=\"caption\" gutterBottom>\r\n                {truncate(observation, 50)}\r\n              </Typography>\r\n            )}\r\n          </Stack>\r\n        }\r\n        secondaryTypographyProps={{ component: 'div' }}\r\n        secondary={\r\n          <>\r\n            <Box display=\"flex\" alignItems=\"center\" alignContent=\"space-between\">\r\n              {isIndicatorLocked && <Lock style={{ color: '#C4C4C4' }} />}\r\n              {isUpdated && <Sync style={{ color: '#EE0701', height: 18 }} />}\r\n              <ChapterItemStatus item={item} />\r\n              {view === 'search' && (\r\n                <>\r\n                  <Typography variant=\"caption\">Phase {item.sendingPhase}</Typography>\r\n                  <CoefficientChip {...item} />\r\n                </>\r\n              )}\r\n\r\n              <Box sx={{ flexGrow: 1 }} />\r\n              <StudyPlanItemScore item={item} />\r\n            </Box>\r\n            {managerChapterItem.isReadOnly && <CardReference {...item} />}\r\n          </>\r\n        }\r\n      />\r\n    </ListItem>\r\n  );\r\n}\r\n\r\nfunction CoefficientChip(item: StudyPlanItem) {\r\n  switch (item.type) {\r\n    case StudyPlanItemType.Homework:\r\n      const homework = item as StudyPlanItemHomework;\r\n      if (homework.homeworkBase.coefficient !== 1 && homework.homeworkBase.coefficient > 0)\r\n        return (\r\n          <Chip\r\n            size=\"small\"\r\n            label={`Coef : ${homework.homeworkBase.coefficient}`}\r\n            variant=\"outlined\"\r\n          />\r\n        );\r\n      break;\r\n  }\r\n  return <></>;\r\n}\r\n\r\n//---------------------------------------------------------------------------------------\r\nfunction CardReference(item: StudyPlanItem) {\r\n  const mediaId = (item as StudyPlanItemMedia)?.media?.id;\r\n\r\n  return (\r\n    <Typography variant=\"caption\" component={'div'}>\r\n      {item.reference} {mediaId && <Typography variant=\"caption\">- Média {mediaId}</Typography>}\r\n    </Typography>\r\n  );\r\n}\r\n\r\n//---------------------------------------------------------------------------------------\r\nexport type ChapterItemHomeworkNoteProps = {\r\n  studyPlanItemHomework: StudyPlanItemHomework;\r\n};\r\nexport function ChapterItemHomeworkNote({ studyPlanItemHomework }: ChapterItemHomeworkNoteProps) {\r\n  const { homeworkBase } = studyPlanItemHomework;\r\n  const homework = homeworkBase.homeworks[homeworkBase.homeworks?.length - 1];\r\n  if (\r\n    !homeworkBase.isScore ||\r\n    (homework && [HomeworkStatus.Remade, HomeworkStatus.Rejected].includes(homework.status))\r\n  )\r\n    return <></>;\r\n  return <HomeworkNote homework={homework} scoreType={homeworkBase.scoreType} />;\r\n}\r\n","import { useState } from 'react';\r\nimport { Icon } from '@iconify/react';\r\nimport arrowIosBackFill from '@iconify/icons-eva/arrow-ios-back-fill';\r\nimport calendarFill from '@iconify/icons-eva/calendar-outline';\r\n\r\n//material\r\nimport { Button, Divider, Drawer, Stack, Tooltip, Typography, IconButton } from '@mui/material';\r\nimport { CalendarToday, Close, InsertInvitationRounded, MeetingRoom } from '@mui/icons-material';\r\n\r\n//type\r\nimport { ButtonType } from '../../../@types/common';\r\nimport { HomeworkBase, Material } from '../../../@types/pedagogy';\r\n\r\n//composants\r\nimport { ScheduleTeacherEventsForm } from '../scheduleTeacher/ScheduleTeacherEventsForm';\r\nimport MIconButton from 'components/MIconButton';\r\nimport { Box } from '@mui/system';\r\n\r\n//--------------------------------------------------------------\r\n\r\nexport type MeetingDrawerProps = {\r\n  material?: Material | null;\r\n  buttonType?: ButtonType;\r\n  homework?: HomeworkBase | null;\r\n  defaultPro?: string | null; // Code Pro du professeur par défaut\r\n  onClose?: VoidFunction; // Callback appelée quand le drawer se ferme\r\n};\r\n\r\n/**\r\n * Ecran permettant d'jouter un rendez vous de type permanence prof ou devoir oral\r\n *\r\n * @param material : matiere de permanence\r\n *@param homework : Devoir\r\n *  @param buttonType : Type de bouton\r\n * @returns\r\n */\r\nexport default function MeetingDrawer({\r\n  material,\r\n  homework,\r\n  buttonType = 'button',\r\n  defaultPro,\r\n  onClose\r\n}: MeetingDrawerProps) {\r\n  const [isOpen, setOpen] = useState(false);\r\n\r\n  const handleOpen = () => {\r\n    setOpen(true);\r\n  };\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n    if (onClose) onClose();\r\n  };\r\n\r\n  const getIconEdit = (\r\n    <Box\r\n      component=\"img\"\r\n      src={`/static/icons/edit_calendar.svg`}\r\n      alt={'edit_calendar'}\r\n      sx={{ width: 24, height: 24, color: '#637381' }}\r\n    />\r\n  );\r\n\r\n  return (\r\n    <>\r\n      {buttonType === 'button' && (\r\n        <Button variant=\"contained\" size={'small'} onClick={handleOpen}>\r\n          Prendre rendez-vous\r\n        </Button>\r\n      )}\r\n\r\n      {buttonType === 'iconButton' && material != null && (\r\n        <Tooltip title={`Prendre rendez-vous pour la matière ${material?.scheduleLabel}`}>\r\n          <MIconButton onClick={handleOpen}>\r\n            <InsertInvitationRounded />\r\n          </MIconButton>\r\n        </Tooltip>\r\n      )}\r\n\r\n      {buttonType === 'iconButton' && !material && (\r\n        <Tooltip title={`Prendre rendez-vous `}>\r\n          <MIconButton onClick={handleOpen}>\r\n            {' '}\r\n            <InsertInvitationRounded />\r\n          </MIconButton>\r\n        </Tooltip>\r\n      )}\r\n\r\n      {isOpen && (\r\n        <Drawer\r\n          open={isOpen}\r\n          onClose={handleClose}\r\n          anchor=\"right\"\r\n          ModalProps={{ keepMounted: true }}\r\n          PaperProps={{ sx: { width: { xs: 1, sm: 480 } } }}\r\n        >\r\n          <Stack p={1.5} direction=\"row\" alignItems=\"center\">\r\n            <Tooltip title=\"Retour\">\r\n              <IconButton onClick={handleClose} sx={{ mr: 1 }}>\r\n                <Close />\r\n              </IconButton>\r\n            </Tooltip>\r\n            <Box>\r\n              <Typography variant=\"h4\" sx={{ ml: 2.4 }}>\r\n                Prendre rendez-vous\r\n              </Typography>\r\n              {homework && (\r\n                <Typography variant=\"caption\">\r\n                  {homework.label} -{homework.barCode}\r\n                </Typography>\r\n              )}\r\n            </Box>\r\n          </Stack>\r\n          <Divider />\r\n\r\n          <ScheduleTeacherEventsForm\r\n            material={material}\r\n            onClose={handleClose}\r\n            homework={homework}\r\n            defaultPro={defaultPro}\r\n          />\r\n        </Drawer>\r\n      )}\r\n    </>\r\n  );\r\n}\r\n","import React, { ReactNode, useContext, useEffect, useState } from 'react';\r\n\r\n// material\r\nimport { Paper, Typography } from '@mui/material';\r\n\r\n//Composants\r\nimport { styled } from '@mui/styles';\r\nimport { addTime, getCurrentDateFr, isAfterDate, timeCount } from 'utils/formatTime';\r\nimport Label from 'components/Label';\r\nimport { Box } from '@mui/system';\r\nimport { PageSettingsContext } from 'contexts/PageSettingsContext';\r\nimport { formatInTimeZone } from 'date-fns-tz';\r\n\r\nconst PaperStyled = styled(Paper)((theme) => ({\r\n  borderRadius: 9,\r\n  padding: 5\r\n}));\r\n\r\nexport type MeetingTimeCountProps = {\r\n  start: string;\r\n  end: string;\r\n  isVirtual: boolean;\r\n  children: any;\r\n};\r\n\r\n//Décompte du temps\r\nexport const MeetingTimeCount = ({ start, end, isVirtual, children }: MeetingTimeCountProps) => {\r\n  const [minutes, setMinutes] = useState(0);\r\n  const { getDateServer } = useContext(PageSettingsContext);\r\n\r\n  useEffect(() => {\r\n    //Relance toutes les nminutes\r\n    const interval = setInterval(() => {\r\n      setMinutes((minutes) => minutes + 1);\r\n    }, 60000);\r\n    return () => clearInterval(interval);\r\n  }, []);\r\n\r\n  const dateStartActivateVisio = addTime(start, -11);\r\n  const dateEndActivateVisio = isVirtual ? addTime(start, 11) : new Date(end);\r\n  const currentDate = getCurrentDateFr();\r\n\r\n  const isActivate = dateStartActivateVisio < currentDate && dateEndActivateVisio > currentDate;\r\n  const isStarted = isAfterDate(currentDate, start);\r\n\r\n  const isDisabledRegister = isAfterDate(currentDate, dateEndActivateVisio);\r\n\r\n  const time = timeCount(start, currentDate);\r\n\r\n  return children(time, isActivate, isStarted, isDisabledRegister);\r\n};\r\n\r\nexport const MeetingTimeCountDisplay = ({ ...props }) => {\r\n  const { isPhone, time, isStarted, isActivate, isVirtual } = props;\r\n\r\n  return (\r\n    <PaperStyled>\r\n      {isStarted ? (\r\n        <>\r\n          {isVirtual && !isActivate ? (\r\n            <Label variant=\"ghost\" color=\"error\">\r\n              Vous ne pouvez plus vous connecter\r\n            </Label>\r\n          ) : (\r\n            <Label variant=\"ghost\" color=\"info\">\r\n              {' '}\r\n              C'est l'heure de votre rendez-vous.{' '}\r\n              {isPhone ? (\r\n                <strong>Votre professeur va vous appeler.</strong>\r\n              ) : (\r\n                <strong>Connectez-vous.</strong>\r\n              )}\r\n            </Label>\r\n          )}\r\n        </>\r\n      ) : (\r\n        <Label variant=\"ghost\" color=\"info\">\r\n          Votre rendez-vous{' '}\r\n          <Typography sx={{ ml: 1 }}>\r\n            <strong>{time}</strong>\r\n          </Typography>\r\n        </Label>\r\n      )}\r\n    </PaperStyled>\r\n  );\r\n};\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { store } from '../store';\r\n// utils\r\nimport axios from '../../utils/axios';\r\n// @types\r\nimport {\r\n  NotificationListResponse,\r\n  NotificationSettingsProps,\r\n  NotificationState,\r\n  NotificationType\r\n} from '../../@types/notificationModel';\r\nimport { getMessages } from './message';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: NotificationState = {\r\n  isLoading: false,\r\n  error: false,\r\n  notifications: [],\r\n  hasMore: true,\r\n  index: 1,\r\n  step: 50,\r\n  count: 0,\r\n  countUnRead: 0\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'notification',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    // GET POSTS\r\n    getNotificationsSuccess(state, action) {\r\n      const { data, isRefresh } = action.payload;\r\n      state.isLoading = false;\r\n      if (isRefresh) state.notifications = data.list;\r\n      else state.notifications = [...state.notifications, ...data.list];\r\n      state.count = data.count;\r\n      state.countUnRead = data.countUnRead;\r\n      state.hasMore = data.count > state.notifications.length;\r\n    },\r\n\r\n    setAllRead(state) {\r\n      state.isLoading = false;\r\n      const notifications = [...state.notifications].map((notif) => {\r\n        notif.read = true;\r\n        return notif;\r\n      });\r\n      state.notifications = notifications;\r\n      state.countUnRead = 0;\r\n    },\r\n\r\n    setRead(state, action) {\r\n      const id = action.payload;\r\n      const notifications = [...state.notifications].map((notif) => {\r\n        if (id === notif.id && !notif.read) {\r\n          state.countUnRead = state.countUnRead - 1;\r\n          return {\r\n            ...notif,\r\n            read: true\r\n          };\r\n        }\r\n        return notif;\r\n      });\r\n      state.notifications = notifications;\r\n    },\r\n\r\n    getMoreNotifications(state) {\r\n      const setIndex = state.index + 1;\r\n      state.index = setIndex;\r\n    },\r\n\r\n    noHasMore(state) {\r\n      state.hasMore = false;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nexport const { getMoreNotifications } = slice.actions;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getNotifications(index: number, step: number, isRefresh: boolean) {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n\r\n    try {\r\n      const response = await axios.post<NotificationListResponse>('/api/notification/list', {\r\n        index: index,\r\n        pageSize: step\r\n      });\r\n\r\n      dispatch(\r\n        slice.actions.getNotificationsSuccess({ data: response.data, isRefresh: isRefresh })\r\n      );\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\nexport const setAllRead = () => (onError: () => void) => {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n\r\n    try {\r\n      const response = await axios.get<boolean>('/api/notification/allread');\r\n      if (response.data) {\r\n        dispatch(slice.actions.setAllRead());\r\n        dispatch(getMessages());\r\n        return;\r\n      }\r\n      onError();\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n};\r\n\r\nexport const setRead = (id: number) => (onError: () => void) => {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n\r\n    try {\r\n      const response = await axios.get<boolean>(`/api/message/read/${id}`, {\r\n        headers: { writeOnly: true }\r\n      });\r\n      if (response.data) {\r\n        dispatch(slice.actions.setRead(id));\r\n        return;\r\n      }\r\n      onError();\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n};\r\n\r\nexport function getNotificationSettings(): Array<NotificationSettingsProps> {\r\n  return [\r\n    {\r\n      id: NotificationType.Actualites,\r\n      tagLabel: 'Actualité',\r\n      color: '#85370E',\r\n      bgcolor: '#FFAD73',\r\n      title: 'Nouvelle actualité'\r\n    },\r\n    {\r\n      id: NotificationType.Adresse,\r\n      tagLabel: 'Adresse',\r\n      color: '#85370E',\r\n      bgcolor: '#FFAD73',\r\n      title: \"Changement d'adresse\"\r\n    },\r\n    {\r\n      id: NotificationType.Colis,\r\n      tagLabel: 'Formation',\r\n      color: '#835A03',\r\n      bgcolor: '#FEDA65',\r\n      title: ''\r\n    },\r\n    {\r\n      id: NotificationType.DevoirsEnvoyes,\r\n      tagLabel: 'Évaluation',\r\n      color: '#45630A',\r\n      bgcolor: '#C9E987',\r\n      title: 'La correction de votre évaluation est disponible'\r\n    },\r\n    {\r\n      id: NotificationType.DevoirsRecus,\r\n      tagLabel: 'Évaluation',\r\n      color: '#45630A',\r\n      bgcolor: '#C9E987',\r\n      title: 'Nous avons bien reçu votre évaluation'\r\n    },\r\n    {\r\n      id: NotificationType.VirtualClass,\r\n      tagLabel: 'Classe virtuelle',\r\n      color: '#2D6A53',\r\n      bgcolor: '#97E9CC',\r\n      title: 'Cette classe virtuelle est susceptible de vous intéresser !'\r\n    },\r\n    {\r\n      id: NotificationType.VirtualClassNotificationConfirmation,\r\n      tagLabel: 'Classe virtuelle',\r\n      color: '#2D6A53',\r\n      bgcolor: '#97E9CC',\r\n      title: 'Votre inscription est confirmée !'\r\n    },\r\n    {\r\n      id: NotificationType.VirtualClassNotificationPlaceOfFree,\r\n      tagLabel: 'Classe virtuelle',\r\n      color: '#2D6A53',\r\n      bgcolor: '#97E9CC',\r\n      title: 'Des places se sont libérées - Réservez la vôtre !'\r\n    },\r\n\r\n    {\r\n      id: NotificationType.VirtualClassNotificationCancel,\r\n      tagLabel: 'Classe virtuelle',\r\n      color: '#2D6A53',\r\n      bgcolor: '#97E9CC',\r\n      title: 'Votre annulation est confirmée !'\r\n    },\r\n    {\r\n      id: NotificationType.VirtualClassNotificationCancelBySchool,\r\n      tagLabel: 'Classe virtuelle',\r\n      color: '#2D6A53',\r\n      bgcolor: '#97E9CC',\r\n      title: 'Annulation de la classe virtuelle'\r\n    },\r\n\r\n    {\r\n      id: NotificationType.VirtualClassNotificationWaiting,\r\n      tagLabel: 'Classe virtuelle',\r\n      color: '#2D6A53',\r\n      bgcolor: '#97E9CC',\r\n      title: \"Votre inscription sur liste d'attente est confirmée !\"\r\n    },\r\n\r\n    {\r\n      id: NotificationType.Events,\r\n      tagLabel: 'Atelier',\r\n      color: '#BB0E93',\r\n      bgcolor: '#FED6F8',\r\n      title: 'Nouvel atelier'\r\n    },\r\n    {\r\n      id: NotificationType.Questions,\r\n      tagLabel: 'Question',\r\n      color: '#B78103',\r\n      bgcolor: '#ffc10729',\r\n      title: 'Réponse à votre question'\r\n    },\r\n    {\r\n      id: NotificationType.NovadisImportant,\r\n      tagLabel: 'Message',\r\n      color: '#1F57B5',\r\n      bgcolor: '#BCD3FF',\r\n      title: 'Nouveau message'\r\n    },\r\n    {\r\n      id: NotificationType.NovadisNormal,\r\n      tagLabel: 'Message',\r\n      color: '#1F57B5',\r\n      bgcolor: '#BCD3FF',\r\n      title: 'Nouveau message'\r\n    },\r\n    {\r\n      id: NotificationType.TachesMessage,\r\n      tagLabel: 'Message',\r\n      color: '#1F57B5',\r\n      bgcolor: '#BCD3FF',\r\n      title: 'Nouveau message'\r\n    },\r\n    {\r\n      id: NotificationType.CamCoaAbouti,\r\n      tagLabel: 'Information',\r\n      color: '#7649F0',\r\n      bgcolor: '#F0EAFF',\r\n      title: ''\r\n    },\r\n    {\r\n      id: NotificationType.CamCoaPriseContact,\r\n      tagLabel: 'Information',\r\n      color: '#7649F0',\r\n      bgcolor: '#F0EAFF',\r\n      title: ''\r\n    },\r\n    {\r\n      id: NotificationType.CamCoaRepondeur,\r\n      tagLabel: 'Information',\r\n      color: '#1F57B5',\r\n      bgcolor: '#BCD3FF',\r\n      title: ''\r\n    },\r\n    {\r\n      id: NotificationType.CamCoaNeRepondsPas,\r\n      tagLabel: 'Information',\r\n      color: '#7649F0',\r\n      bgcolor: '#F0EAFF',\r\n      title: ''\r\n    },\r\n    {\r\n      id: NotificationType.CamCoaNumeroErrone,\r\n      tagLabel: 'Information',\r\n      color: '#7649F0',\r\n      bgcolor: '#F0EAFF',\r\n      title: ''\r\n    },\r\n\r\n    {\r\n      id: NotificationType.CamCoaAbandonne,\r\n      tagLabel: 'Information',\r\n      color: '#7649F0',\r\n      bgcolor: '#F0EAFF',\r\n      title: ''\r\n    },\r\n    {\r\n      id: NotificationType.MeetingAbsence,\r\n      tagLabel: 'Classe virtuelle',\r\n      color: '#2D6A53',\r\n      bgcolor: '#97E9CC',\r\n      title: 'Absence à la classe virtuelle'\r\n    },\r\n    {\r\n      id: NotificationType.Meeting,\r\n      tagLabel: 'Rendez-vous',\r\n      color: '#BB0E93',\r\n      bgcolor: '#FED6F8',\r\n      title: ''\r\n    },\r\n    {\r\n      id: NotificationType.EvaluationEnonceUnlock,\r\n      tagLabel: 'Évaluation',\r\n      color: '#45630A',\r\n      bgcolor: '#C9E987',\r\n      title: \"Déblocage de l'énoncé de l'évaluation\"\r\n    },\r\n    {\r\n      id: NotificationType.Examens,\r\n      tagLabel: 'Examens',\r\n      color: '#B60502',\r\n      bgcolor: '#FFC0C0',\r\n      title: ''\r\n    },\r\n    {\r\n      id: NotificationType.Payment,\r\n      tagLabel: 'Information',\r\n      color: '#6369FF',\r\n      bgcolor: '#D4DBFF',\r\n      title: ''\r\n    }\r\n  ];\r\n}\r\n","import { useCallback, useContext } from 'react';\r\nimport { AuthContext } from '../contexts/JWTContext';\r\nimport { Contract, ContractState } from '../@types/contract';\r\nimport { Address, ModeAccess, StudentConfig } from '../@types/account';\r\nimport { messagesAccess } from 'config';\r\nimport axiosInstance from 'utils/axios';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst CURRENCIES = [\r\n  { value: 'USD', label: '$', format: '$@value' },\r\n  { value: 'EUR', label: '€', format: '@value €' },\r\n  { value: 'CHF', label: 'CHF', format: 'CHF @value' },\r\n  { value: 'JPY', label: '¥', format: '0,0' }\r\n];\r\n\r\nconst useAuth = () => {\r\n  const context = useContext(AuthContext);\r\n\r\n  if (!context) throw new Error('Auth context must be use inside AuthProvider');\r\n\r\n  const getGenreMasculin = useCallback(() => {\r\n    return context?.student?.civilityId === 'M.' ? true : false;\r\n  }, [context.student?.id]);\r\n\r\n  const getContractCurrent = useCallback(() => {\r\n    return context?.student?.contracts?.filter((c: Contract) => c.current)[0] as Contract;\r\n  }, [context.student?.id, context.student?.contracts]);\r\n\r\n  const getMessagesAccess = useCallback(() => {\r\n    const contrat = getContractCurrent();\r\n\r\n    //Aucun accès limité pour les inscrits => pour l'instant\r\n    if (contrat.state !== ContractState.Registred)\r\n      return messagesAccess.filter((w) => w.key === 'limited')[0].value(context?.student!);\r\n\r\n    //deblocage partiel\r\n    if (contrat.debtRecovery?.UnBlockTemporary)\r\n      return messagesAccess.filter((w) => w.key === 'blocagePartiel')[0].value(context?.student!);\r\n\r\n    //blocage pédagogique\r\n    if (contrat.debtRecovery?.blockingTraining)\r\n      return messagesAccess.filter((w) => w.key === 'blocagePayment')[0].value(context?.student!);\r\n\r\n    //blocage prise de rendez-vous, classes virtuelles,ateliers, questions\r\n    if (contrat.debtRecovery?.blockingCorrection)\r\n      return messagesAccess\r\n        .filter((w) => w.key === 'blocageCorrection')[0]\r\n        .value(context?.student!);\r\n\r\n    return null;\r\n  }, [context.student?.id]);\r\n\r\n  const authorizeDownload = useCallback(() => {\r\n    const contrat = getContractCurrent();\r\n    return contrat.state !== ContractState.InProgress;\r\n  }, [context.student?.id]);\r\n\r\n  const getFormatCurrency = (value: number = 0) => {\r\n    const currency = CURRENCIES.find((w) => w.value === getContractCurrent().currency);\r\n    return currency?.format.replace('@value', value.toString());\r\n  };\r\n\r\n  const showHourAlert = () => {\r\n    return (\r\n      getContractCurrent()?.brand?.id !== 'CH' &&\r\n      context.student?.address?.zoneGeographic &&\r\n      context.student?.address?.zoneGeographic !== '' &&\r\n      context.student?.address?.zoneGeographic !== 'FRANCE'\r\n    );\r\n  };\r\n\r\n  const getHourAlertMessage = useCallback(() => {\r\n    return showHourAlert() ? 'Attention, les horaires indiqués sont en France métropolitaine.' : '';\r\n  }, [context.student?.id]);\r\n\r\n  const getUrlParrainage = useCallback(async () => {\r\n    const response = await axiosInstance.get('/api/contract/parrainage');\r\n    return response.data;\r\n  }, [context.student?.id]);\r\n\r\n  const isReadOnly = context.student?.modeAccess !== ModeAccess.Write;\r\n\r\n  return {\r\n    ...context,\r\n    getContractCurrent,\r\n    getMessagesAccess,\r\n    getFormatCurrency,\r\n    getGenreMasculin,\r\n    getHourAlertMessage,\r\n    getUrlParrainage,\r\n    showHourAlert,\r\n    authorizeDownload,\r\n    isReadOnly\r\n  };\r\n};\r\n\r\nexport default useAuth;\r\n","// material\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Box, BoxProps } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function UploadIllustration({ ...other }: BoxProps) {\r\n  const theme = useTheme();\r\n  const PRIMARY_MAIN = theme.palette.primary.main;\r\n  const PRIMARY_DARK = theme.palette.primary.dark;\r\n  const PRIMARY_DARKER = theme.palette.primary.darker;\r\n\r\n  return (\r\n    <Box {...other}>\r\n      <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 480 360\">\r\n        <defs>\r\n          <linearGradient id=\"BG\" x1=\"19.496%\" x2=\"77.479%\" y1=\"71.822%\" y2=\"16.69%\">\r\n            <stop offset=\"0%\" stopColor={PRIMARY_MAIN} />\r\n            <stop offset=\"100%\" stopColor={PRIMARY_MAIN} stopOpacity=\"0\" />\r\n          </linearGradient>\r\n          <linearGradient id=\"linearGradient-2\" x1=\"30.113%\" x2=\"30.113%\" y1=\"0%\" y2=\"100%\">\r\n            <stop offset=\"0%\" stopOpacity=\"0\" />\r\n            <stop offset=\"100%\" />\r\n          </linearGradient>\r\n        </defs>\r\n        <g fill=\"none\" fillRule=\"evenodd\" stroke=\"none\" strokeWidth=\"1\">\r\n          <path\r\n            fill=\"url(#BG)\"\r\n            d=\"M0 198.78c0 41.458 14.945 79.236 39.539 107.786 28.214 32.765 69.128 53.365 114.734 53.434 19.931.03 38.99-3.887 56.495-11.036 9.051-3.699 19.182-3.274 27.948 1.107a75.779 75.779 0 0033.957 8.01c5.023 0 9.942-.494 14.7-1.433 13.58-2.67 25.94-8.99 36.09-17.94 6.378-5.627 14.547-8.456 22.897-8.446h.142c27.589 0 53.215-8.732 74.492-23.696 19.021-13.36 34.554-31.696 44.904-53.224C474.92 234.58 480 213.388 480 190.958c0-76.93-59.774-139.305-133.498-139.305-7.516 0-14.88.663-22.063 1.899C305.418 21.42 271.355 0 232.499 0a103.651 103.651 0 00-45.88 10.661c-13.24 6.487-25.011 15.705-34.64 26.939-32.698.544-62.931 11.69-87.676 30.291C25.351 97.155 0 144.882 0 198.781z\"\r\n            opacity=\"0.2\"\r\n          />\r\n          <path\r\n            fill=\"#FF4842\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M293.006 206.192c-2.248 2.672-4.676 2.628-6.123 2.251l.054-1.384s5.979-2.733 5.827-2.159c-.057.215.057.733.242 1.292zM309.393 209.217c-3.818 2.206-6.058-.38-6.578-1.112.32-.84.801-2.204.703-2.592-.144-.577 5.827 2.155 5.827 2.155l.048 1.549zM305.303 187.204s3.632-2.093 4.425-1.151c.792.942-4.425 1.151-4.425 1.151zM307.497 188.355s-.598.299.721.681c1.318.383-.721-.681-.721-.681zM285.532 182.599c-.123.036 3.022 2.123 5.862.395-.012 0-5.154-.61-5.862-.395zM291.239 186.591s-.861 1.692-2.625 1.943c-1.764.251 2.625-1.943 2.625-1.943zM302.785 190.262s4.138 6.578 3.346 8.129c-.793 1.552-3.346-8.129-3.346-8.129zM294.62 216.416c0 .368 0 .712-.036.996-.107 1.33-3.381.828-3.381.828-2.99.416-4.066-1.019-4.422-2.392a5.444 5.444 0 01-.164-1.363 5.606 5.606 0 01.054-.819v-.272a1.998 1.998 0 011.859.379c1.331 1.08 3.095.252 3.095.252s1.294.107 1.793.538c.281.242.745-.341 1.098-.897.021.359.054 1.007.074 1.701.024.356.03.714.03 1.049z\"\r\n            opacity=\"0.05\"\r\n          />\r\n          <path\r\n            fill=\"#FF4842\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M289.37 216.339s-.897.879-2.589-.479a5.444 5.444 0 01-.164-1.363c.864.658 2.466 1.842 2.753 1.842zM294.62 216.416a.67.67 0 01-.519.132.672.672 0 01-.452-.287c.348-.266.669-.566.956-.897.009.359.015.717.015 1.052zM301.637 217.032c0 .371 0 .715.033.996.108 1.333 3.382.828 3.382.828 2.989.419 4.066-1.017 4.421-2.392a5.728 5.728 0 00.111-2.182v-.272a2.024 2.024 0 00-1.862.379c-1.331 1.08-3.092.251-3.092.251s-1.294.111-1.794.542c-.281.242-.744-.341-1.094-.897a61.426 61.426 0 00-.078 1.701c-.024.35-.03.708-.027 1.046z\"\r\n            opacity=\"0.05\"\r\n          />\r\n          <path\r\n            fill=\"#FF4842\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M306.887 216.949s.897.879 2.587-.479c.112-.444.169-.901.167-1.36-.867.655-2.47 1.839-2.754 1.839zM301.637 217.032a.67.67 0 00.969-.155 6.35 6.35 0 01-.957-.897c-.009.356-.014.714-.012 1.052zM319.614 106.269c.063-.138.123-.275.18-.41.057-.134.077-.209.11-.317-.11.237-.206.48-.29.727z\"\r\n            opacity=\"0.05\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_DARKER}\r\n            fillRule=\"nonzero\"\r\n            d=\"M157.592 279.461a4.114 4.114 0 01-.917-3.131l13.196-107.979 1.094-8.97a4.142 4.142 0 014.078-3.635l38.654-.257a4.135 4.135 0 004.108-4.249l-.015-.409a4.14 4.14 0 014.135-4.279h40.619a4.134 4.134 0 014.098 4.682 4.137 4.137 0 003.995 4.682l39.01.996a4.13 4.13 0 013.97 4.831l-19.502 113.909-.368 2.152a4.042 4.042 0 01-.598 1.543l-135.557.114z\"\r\n          />\r\n          <path\r\n            fill=\"#FFF\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M251.256817 123.296578L274.098317 123.296578 274.098317 200.823078 251.256817 200.823078z\"\r\n            transform=\"rotate(34.64 262.678 162.06)\"\r\n          />\r\n          <path\r\n            fill=\"#FFC107\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M270.624591 129.857671L286.750291 129.857671 286.750291 145.983371 270.624591 145.983371z\"\r\n            transform=\"rotate(34.804 278.687 137.92)\"\r\n          />\r\n          <path\r\n            fill=\"#FFC107\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M260.275579 145.813111L276.423079 145.813111 276.423079 161.960611 260.275579 161.960611z\"\r\n            opacity=\"0.5\"\r\n            transform=\"rotate(34.64 268.35 153.887)\"\r\n          />\r\n          <path\r\n            fill=\"#FFC107\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M249.191579 161.852111L265.339079 161.852111 265.339079 177.999611 249.191579 177.999611z\"\r\n            opacity=\"0.3\"\r\n            transform=\"rotate(34.64 257.265 169.926)\"\r\n          />\r\n          <path\r\n            fill=\"#FFF\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M237.472537 121.334214L260.314037 121.334214 260.314037 198.567714 237.472537 198.567714z\"\r\n            transform=\"rotate(16.29 248.893 159.951)\"\r\n          />\r\n          <path\r\n            fill=\"#FF4842\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M249.053192 123.761554L265.200692 123.761554 265.200692 139.909054 249.053192 139.909054z\"\r\n            transform=\"rotate(16.29 257.127 131.835)\"\r\n          />\r\n          <path\r\n            fill=\"#FF4842\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M243.584192 142.473554L259.731692 142.473554 259.731692 158.621053 243.584192 158.621053z\"\r\n            opacity=\"0.5\"\r\n            transform=\"rotate(16.29 251.658 150.547)\"\r\n          />\r\n          <path\r\n            fill=\"#FF4842\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M238.116192 161.182554L254.263692 161.182554 254.263692 177.330054 238.116192 177.330054z\"\r\n            opacity=\"0.3\"\r\n            transform=\"rotate(16.29 246.19 169.256)\"\r\n          />\r\n          <path\r\n            fill=\"#FFF\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M230.099192 121.641542L252.940692 121.641542 252.940692 198.875042 230.099192 198.875042z\"\r\n            transform=\"rotate(4.6 241.52 160.258)\"\r\n          />\r\n          <path\r\n            fill=\"#1890FF\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M235.800489 122.985499L251.947989 122.985499 251.947989 139.132999 235.800489 139.132999z\"\r\n            transform=\"rotate(4.6 243.874 131.06)\"\r\n          />\r\n          <path\r\n            fill=\"#1890FF\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M234.234488 142.413498L250.381988 142.413498 250.381988 158.560998 234.234488 158.560998z\"\r\n            opacity=\"0.5\"\r\n            transform=\"rotate(4.6 242.308 150.487)\"\r\n          />\r\n          <path\r\n            fill=\"#1890FF\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M232.672488 161.846499L248.819988 161.846499 248.819988 177.993999 232.672488 177.993999z\"\r\n            opacity=\"0.3\"\r\n            transform=\"rotate(4.6 240.746 169.92)\"\r\n          />\r\n          <path\r\n            fill=\"#FFF\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M224.736657 123.384871L247.578157 123.384871 247.578157 200.618371 224.736657 200.618371z\"\r\n            transform=\"rotate(-2.61 236.157 162.002)\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            d=\"M226.751283 124.659968L242.898783 124.659968 242.898783 140.807468 226.751283 140.807468z\"\r\n            transform=\"rotate(-2.61 234.825 132.734)\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            d=\"M228.305601 143.479224L244.473301 143.479224 244.473301 159.646924 228.305601 159.646924z\"\r\n            opacity=\"0.5\"\r\n            transform=\"rotate(-2.862 236.39 151.563)\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            d=\"M228.525282 163.608968L244.672782 163.608968 244.672782 179.756468 228.525282 179.756468z\"\r\n            opacity=\"0.3\"\r\n            transform=\"rotate(-2.61 236.599 171.683)\"\r\n          />\r\n          <path\r\n            fill=\"#F4F6F8\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M232.679 225.726l-20.294 7.851-29.661 11.466c-1.121-2.093-2.771-4.921-4.813-8.297-7.026-11.642-18.65-29.75-29.001-45.665-11.66-17.938-21.696-33.075-21.696-33.075l7.265-2.093 59.346-17.23 38.854 87.043z\"\r\n          />\r\n          <path\r\n            fill=\"#000\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M232.679 225.726l-20.294 7.851a152.535 152.535 0 01-34.484 3.169c-7.026-11.642-18.65-29.75-29-45.665l-14.42-35.18 59.343-17.218 38.855 87.043z\"\r\n            opacity=\"0.1\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            d=\"M247.777 220.841s-31.526 18.65-78.596 14.432l-37.525-91.486 17.984-3.091 62.168-10.677 35.279 89.043.69 1.779z\"\r\n          />\r\n          <path\r\n            fill=\"#FF4842\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M247.075 219.074c-7.424.365-16.013.329-24.654-.702-9.351-1.101-18.757-3.367-26.82-7.523-6.742-3.471-12.506-7.247-17.532-11.776-13.074-11.759-21.164-28.579-28.429-58.365l62.168-10.677 35.267 89.043z\"\r\n            opacity=\"0.1\"\r\n          />\r\n          <path\r\n            fill=\"#FFF\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M270.203 213.959s-23.239 4.55-46.894 1.749c-9.351-1.1-18.757-3.367-26.82-7.522-6.742-3.471-12.503-7.247-17.532-11.777-16.181-14.557-24.725-36.866-33.536-81.918 0 0 38.633 9.325 76.836-11.101-.012.015 12.865 80.373 47.946 110.569z\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            d=\"M165.405 131.03s31.416-1.776 40.187-8.548l1.331 4.276s-20.758 9.157-41.518 9.268v-4.996zM165.405 152.137s30.417-1.665 53.399-12.766l.777 1.776s-18.237 10.647-54.176 13.433v-2.443zM167.853 160.362s30.418-1.665 53.397-12.766l.777 1.776s-18.237 10.643-54.174 13.433v-2.443zM170.299 168.599s30.417-1.666 53.399-12.766l.774 1.775s-18.237 10.647-54.173 13.433v-2.442zM172.748 176.835s30.417-1.665 53.396-12.766l.777 1.776s-18.237 10.647-54.173 13.433v-2.443zM175.193 185.075s30.417-1.665 53.399-12.766l.774 1.776s-18.237 10.643-54.173 13.433v-2.443z\"\r\n            opacity=\"0.3\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            d=\"M389.069 287.344s-12.641-.762-11.152 8.097c0 0-.299 1.563 1.124 2.275 0 0 .021-.658 1.295-.434.454.077.916.099 1.375.066a2.832 2.832 0 001.677-.694c.468-.409 3.555-1.468 4.936-7.274 0 0 1.023-1.267.981-1.593l-2.132.897s.73 1.54.156 2.816c0 0-.069-2.759-.479-2.691-.083 0-1.109.533-1.109.533s1.253 2.69.299 4.628c0 0 .359-3.304-.699-4.434l-1.495.876s1.465 2.768.472 5.029c0 0 .254-3.465-.789-4.817l-1.361 1.062s1.379 2.729.539 4.604c0 0-.111-4.036-.835-4.341 0 0-1.195 1.049-1.369 1.494 0 0 .942 1.98.356 3.026 0 0-.359-2.691-.652-2.691 0 0-1.196 1.794-1.309 2.99 0 0 .051-1.818 1.022-3.172a3.593 3.593 0 00-1.818.942s.186-1.262 2.111-1.37c0 0 .981-1.351 1.241-1.435 0 0-1.914-.158-3.074.356 0 0 1.023-1.196 3.427-.649l1.342-1.094s-2.52-.347-3.588.036c0 0 1.229-1.052 3.95-.299l1.462-.873s-2.147-.463-3.426-.299c0 0 1.348-.729 3.856.06l1.044-.47s-1.573-.299-2.033-.358c-.461-.06-.488-.174-.488-.174a5.426 5.426 0 012.957.329s2.222-.813 2.186-.954z\"\r\n          />\r\n          <ellipse\r\n            cx=\"380.363\"\r\n            cy=\"298.487\"\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            opacity=\"0.1\"\r\n            rx=\"8.945\"\r\n            ry=\"1.513\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            d=\"M394.956 258.102s-7.125-.43-6.279 4.565a1.218 1.218 0 00.631 1.283s.015-.371.733-.245c.255.042.515.054.774.036.349-.023.681-.159.945-.389.264-.23 2.003-.828 2.783-4.102 0 0 .577-.714.553-.897l-1.196.511s.41.87.087 1.591c0 0-.039-1.558-.269-1.522-.048 0-.625.299-.625.299s.706 1.495.173 2.61c0 0 .204-1.862-.394-2.502l-.846.496s.825 1.561.266 2.834c0 0 .143-1.955-.446-2.714l-.765.598s.774 1.539.299 2.595c0 0-.063-2.275-.469-2.446a4.75 4.75 0 00-.775.834s.532 1.118.204 1.707c0 0-.204-1.515-.368-1.521 0 0-.67 1.001-.739 1.689a3.671 3.671 0 01.577-1.794 2.007 2.007 0 00-1.025.532s.104-.711 1.196-.771c0 0 .553-.763.699-.81 0 0-1.079-.09-1.734.2 0 0 .577-.67 1.932-.365l.759-.619s-1.423-.194-2.024.021c0 0 .694-.598 2.227-.161l.826-.494a7.445 7.445 0 00-1.935-.164s.763-.413 2.174.033l.598-.263s-.897-.177-1.148-.203c-.252-.027-.275-.099-.275-.099a3.078 3.078 0 011.668.185s1.232-.46 1.208-.538z\"\r\n          />\r\n          <ellipse\r\n            cx=\"390.052\"\r\n            cy=\"264.383\"\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            opacity=\"0.1\"\r\n            rx=\"5.044\"\r\n            ry=\"1\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            d=\"M352.896 262.437s-8.604-.52-7.588 5.51a1.47 1.47 0 00.763 1.549s0-.449.897-.299c.309.052.623.067.935.045a1.923 1.923 0 001.142-.473c.318-.279 2.419-.998 3.361-4.951 0 0 .697-.861.667-1.085l-1.468.622s.496 1.046.104 1.916c0 0-.048-1.877-.326-1.835-.056 0-.753.364-.753.364s.852 1.824.209 3.152c0 0 .245-2.249-.475-3.02l-1.023.598s.996 1.886.32 3.423c0 0 .174-2.359-.535-3.289l-.927.724s.939 1.857.365 3.133c0 0-.072-2.747-.565-2.954 0 0-.81.715-.933 1.008 0 0 .64 1.348.242 2.06 0 0-.245-1.83-.445-1.839 0 0-.804 1.214-.897 2.042.04-.768.28-1.512.697-2.159a2.427 2.427 0 00-1.235.643s.125-.858 1.435-.933c0 0 .667-.92.846-.974 0 0-1.303-.111-2.093.239 0 0 .694-.807 2.329-.44l.915-.747s-1.713-.233-2.442.024c0 0 .837-.715 2.69-.191l.996-.598s-1.462-.314-2.335-.201c0 0 .921-.496 2.625.042l.711-.32s-1.07-.209-1.384-.242c-.314-.033-.329-.119-.329-.119a3.69 3.69 0 012.012.221s1.519-.553 1.492-.646z\"\r\n          />\r\n          <ellipse\r\n            cx=\"346.97\"\r\n            cy=\"270.022\"\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            opacity=\"0.1\"\r\n            rx=\"6.09\"\r\n            ry=\"1.028\"\r\n          />\r\n          <rect\r\n            width=\"51.026\"\r\n            height=\"91.312\"\r\n            x=\"303.926\"\r\n            y=\"69.211\"\r\n            fill=\"#FFF\"\r\n            fillRule=\"nonzero\"\r\n            rx=\"4.737\"\r\n            transform=\"rotate(-71.99 329.44 114.867)\"\r\n          />\r\n          <circle\r\n            cx=\"303.613\"\r\n            cy=\"103.507\"\r\n            r=\"9.376\"\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            opacity=\"0.2\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            d=\"M344.582495 86.4883769L347.150665 86.4883769 347.150665 127.336977 344.582495 127.336977z\"\r\n            opacity=\"0.2\"\r\n            transform=\"rotate(-71.99 345.867 106.913)\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            d=\"M333.028401 99.6373982L335.596571 99.6373982 335.596571 120.445898 333.028401 120.445898z\"\r\n            opacity=\"0.2\"\r\n            transform=\"rotate(-71.99 334.312 110.042)\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            d=\"M337.109071 101.431004L339.677241 101.431004 339.677241 135.086304 337.109071 135.086304z\"\r\n            opacity=\"0.2\"\r\n            transform=\"rotate(-71.99 338.393 118.259)\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            d=\"M338.505494 105.174377L341.073664 105.174377 341.073664 146.022978 338.505494 146.022978z\"\r\n            opacity=\"0.2\"\r\n            transform=\"rotate(-71.99 339.79 125.599)\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            d=\"M348.060839 134.648161L353.026769 134.648161 353.026769 145.952261 348.060839 145.952261z\"\r\n            opacity=\"0.5\"\r\n            transform=\"rotate(-71.99 350.544 140.3)\"\r\n          />\r\n          <rect\r\n            width=\"50.3\"\r\n            height=\"78.305\"\r\n            x=\"291.549\"\r\n            y=\"174.486\"\r\n            fill=\"#FFF\"\r\n            fillRule=\"nonzero\"\r\n            rx=\"4\"\r\n            transform=\"rotate(-57.265 316.7 213.638)\"\r\n          />\r\n          <path\r\n            fill=\"#DFE3E8\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M278.038439 203.88874L292.269539 203.88874 292.269539 207.23723 278.038439 207.23723z\"\r\n            transform=\"rotate(-57.57 285.154 205.563)\"\r\n          />\r\n          <path\r\n            fill=\"#DFE3E8\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M283.007935 199.201889L314.262535 199.201889 314.262535 202.272339 283.007935 202.272339z\"\r\n            transform=\"rotate(-57.57 298.635 200.737)\"\r\n          />\r\n          <path\r\n            fill=\"#DFE3E8\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M288.543935 202.715889L319.798535 202.715889 319.798535 205.786339 288.543935 205.786339z\"\r\n            transform=\"rotate(-57.57 304.171 204.251)\"\r\n          />\r\n          <path\r\n            fill=\"#DFE3E8\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M294.078936 206.235889L325.333536 206.235889 325.333536 209.306339 294.078936 209.306339z\"\r\n            transform=\"rotate(-57.57 309.706 207.771)\"\r\n          />\r\n          <path\r\n            fill=\"#DFE3E8\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M299.879919 211.40702L331.090719 211.40702 331.090719 214.47316 299.879919 214.47316z\"\r\n            transform=\"rotate(-57.265 315.485 212.94)\"\r\n          />\r\n          <path\r\n            fill=\"#F4F6F8\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M305.149936 213.268889L336.404536 213.268889 336.404536 216.339339 305.149936 216.339339z\"\r\n            transform=\"rotate(-57.57 320.777 214.804)\"\r\n          />\r\n          <path\r\n            fill=\"#F4F6F8\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M310.685935 216.782889L341.940535 216.782889 341.940535 219.853339 310.685935 219.853339z\"\r\n            transform=\"rotate(-57.57 326.313 218.318)\"\r\n          />\r\n          <path\r\n            fill=\"#DFE3E8\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M341.417983 210.406958L349.511163 210.406958 349.511163 218.500138 341.417983 218.500138z\"\r\n            transform=\"rotate(-57.57 345.465 214.454)\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            d=\"M269.277 168.76l-45.767.493a3.127 3.127 0 00-3.094 3.125v3.782a3.127 3.127 0 01-3.05 3.124l-33.024.792a3.124 3.124 0 01-3.095-2.308l-1.551-5.701a3.124 3.124 0 00-3.053-2.308l-44.113.475a3.125 3.125 0 00-3.05 3.648l17.747 104.449a3.129 3.129 0 003.071 2.604l139.363.598a3.129 3.129 0 003.082-3.714l-20.366-106.521a3.125 3.125 0 00-3.1-2.538z\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_DARK}\r\n            fillRule=\"nonzero\"\r\n            d=\"M269.277 168.76l-45.767.493a3.127 3.127 0 00-3.094 3.125v3.782a3.127 3.127 0 01-3.05 3.124l-33.024.792a3.124 3.124 0 01-3.095-2.308l-1.551-5.701a3.124 3.124 0 00-3.053-2.308l-44.113.475a3.125 3.125 0 00-3.05 3.648l17.747 104.449a3.129 3.129 0 003.071 2.604l139.363.598a3.129 3.129 0 003.082-3.714l-20.366-106.521a3.125 3.125 0 00-3.1-2.538z\"\r\n            opacity=\"0.243\"\r\n          />\r\n          <path\r\n            fill=\"url(#linearGradient-2)\"\r\n            fillRule=\"nonzero\"\r\n            d=\"M269.277 168.76l-45.767.493a3.127 3.127 0 00-3.094 3.125v3.782a3.127 3.127 0 01-3.05 3.124l-33.024.792a3.124 3.124 0 01-3.095-2.308l-1.551-5.701a3.124 3.124 0 00-3.053-2.308l-44.113.475a3.125 3.125 0 00-3.05 3.648l17.747 104.449a3.129 3.129 0 003.071 2.604l139.363.598a3.129 3.129 0 003.082-3.714l-20.366-106.521a3.125 3.125 0 00-3.1-2.538z\"\r\n            opacity=\"0.32\"\r\n          />\r\n          <ellipse\r\n            cx=\"119.593\"\r\n            cy=\"258.664\"\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            opacity=\"0.1\"\r\n            rx=\"4.846\"\r\n            ry=\"1\"\r\n          />\r\n          <ellipse\r\n            cx=\"101.03\"\r\n            cy=\"260.545\"\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            opacity=\"0.1\"\r\n            rx=\"4.846\"\r\n            ry=\"1\"\r\n          />\r\n          <ellipse\r\n            cx=\"108.459\"\r\n            cy=\"265.905\"\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            opacity=\"0.1\"\r\n            rx=\"3.444\"\r\n            ry=\"1\"\r\n          />\r\n          <ellipse\r\n            cx=\"89.193\"\r\n            cy=\"265.433\"\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            opacity=\"0.1\"\r\n            rx=\"3.444\"\r\n            ry=\"1\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            d=\"M100.925 260.398s6.796-22.279-1.064-31.204c-5.881-6.676-12.557-5.877-15.547-5.052a5.528 5.528 0 00-3.564 2.963c-1.046 2.254-.858 5.913 6.521 10.186 12.35 7.151 13.119 16.96 13.119 16.96l.535 6.147z\"\r\n          />\r\n          <path\r\n            stroke={PRIMARY_DARKER}\r\n            strokeLinecap=\"round\"\r\n            strokeWidth=\"0.5\"\r\n            d=\"M85.382 227.302s20.031 6.278 15.546 33.096M97.083 229.547s-2.76 1.86-1.88 4.655M87.39 231.203s1.687-1.716 3.741-.768M95.31 239.832s2.963-1.495 3.728.379M102.638 242.962s-2.224-.176-2.263.897\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            d=\"M101.2 260.575s-7.961-16.193-10.147-15.846c-1.037.17-1.516 1.196-1.734 2.218a6.516 6.516 0 00.434 3.941c1.13 2.601 4.165 7.519 11.447 9.687z\"\r\n          />\r\n          <path\r\n            stroke={PRIMARY_DARKER}\r\n            strokeLinecap=\"round\"\r\n            strokeWidth=\"0.5\"\r\n            d=\"M91.113 247.808s8.353 12.115 9.968 12.647\"\r\n          />\r\n          <path\r\n            stroke={PRIMARY_DARKER}\r\n            strokeLinecap=\"round\"\r\n            strokeWidth=\"0.5\"\r\n            d=\"M90.344 249.701L92.293 249.701\"\r\n          />\r\n          <path\r\n            stroke={PRIMARY_DARKER}\r\n            strokeLinecap=\"round\"\r\n            strokeWidth=\"0.5\"\r\n            d=\"M92.68 254.132L95.738 254.263\"\r\n          />\r\n          <path\r\n            stroke={PRIMARY_DARKER}\r\n            strokeLinecap=\"round\"\r\n            strokeWidth=\"0.5\"\r\n            d=\"M94.542 250.586L94.21 252.179\"\r\n          />\r\n          <path\r\n            stroke={PRIMARY_DARKER}\r\n            strokeLinecap=\"round\"\r\n            strokeWidth=\"0.5\"\r\n            d=\"M97.792 255.432L97.732 256.879\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            d=\"M100.964 260.575s7.959-16.193 10.144-15.846c1.041.17 1.519 1.196 1.734 2.218a6.514 6.514 0 01-.433 3.941c-1.13 2.601-4.168 7.519-11.445 9.687z\"\r\n          />\r\n          <path\r\n            stroke={PRIMARY_DARKER}\r\n            strokeLinecap=\"round\"\r\n            strokeWidth=\"0.5\"\r\n            d=\"M111.051 247.808s-8.371 12.115-9.97 12.647\"\r\n          />\r\n          <path\r\n            stroke={PRIMARY_DARKER}\r\n            strokeLinecap=\"round\"\r\n            strokeWidth=\"0.5\"\r\n            d=\"M111.82 249.701L109.871 249.701\"\r\n          />\r\n          <path\r\n            stroke={PRIMARY_DARKER}\r\n            strokeLinecap=\"round\"\r\n            strokeWidth=\"0.5\"\r\n            d=\"M109.485 254.132L106.426 254.263\"\r\n          />\r\n          <path\r\n            stroke={PRIMARY_DARKER}\r\n            strokeLinecap=\"round\"\r\n            strokeWidth=\"0.5\"\r\n            d=\"M107.622 250.586L107.954 252.179\"\r\n          />\r\n          <path\r\n            stroke={PRIMARY_DARKER}\r\n            strokeLinecap=\"round\"\r\n            strokeWidth=\"0.5\"\r\n            d=\"M104.372 255.432L104.432 256.879\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            d=\"M87.295 264.357a1.375 1.375 0 01-.452-.685.599.599 0 01.317-.697c.3-.11.598.09.837.299.24.21.512.431.81.38a1.237 1.237 0 01-.382-1.16.47.47 0 01.105-.236c.161-.174.454-.099.648.039.598.43.787 1.264.79 2.018.03-.277.03-.555 0-.831a.853.853 0 01.334-.727.938.938 0 01.476-.114.988.988 0 01.774.222.767.767 0 01-.03.947c-.229.257-.5.474-.801.64a1.805 1.805 0 00-.571.547.399.399 0 00-.042.096h-1.74a4.826 4.826 0 01-1.073-.738zM117.626 257.833a1.355 1.355 0 01-.452-.682.599.599 0 01.314-.696c.299-.111.598.089.837.299.239.209.509.436.817.391a1.236 1.236 0 01-.386-1.157.472.472 0 01.107-.236c.162-.173.455-.099.649.036.613.433.787 1.268.79 2.021a4.008 4.008 0 000-.834.852.852 0 01.299-.736.955.955 0 01.475-.11.998.998 0 01.774.218.768.768 0 01-.033.951 2.996 2.996 0 01-.798.64 1.767 1.767 0 00-.571.544.499.499 0 00-.042.098h-1.701a4.78 4.78 0 01-1.079-.747zM107.518 264.357a1.406 1.406 0 01-.455-.685.6.6 0 01.317-.697c.299-.11.598.09.837.299.239.21.505.437.816.395a1.247 1.247 0 01-.385-1.16.472.472 0 01.107-.236c.162-.174.455-.099.649.039.613.43.783 1.264.789 2.018.03-.277.03-.555 0-.832a.855.855 0 01.314-.735.93.93 0 01.476-.114.988.988 0 01.774.222.764.764 0 01-.033.947 3.028 3.028 0 01-.798.64 1.798 1.798 0 00-.571.547.411.411 0 00-.042.096h-1.734c-.385-.2-.742-.45-1.061-.744z\"\r\n          />\r\n          <circle\r\n            cx=\"84.467\"\r\n            cy=\"87.003\"\r\n            r=\"6.467\"\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            opacity=\"0.1\"\r\n          />\r\n          <circle\r\n            cx=\"395.425\"\r\n            cy=\"138.681\"\r\n            r=\"6.467\"\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            opacity=\"0.1\"\r\n          />\r\n          <circle\r\n            cx=\"279.178\"\r\n            cy=\"66.467\"\r\n            r=\"6.467\"\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            opacity=\"0.1\"\r\n          />\r\n          <circle\r\n            cx=\"97.4\"\r\n            cy=\"122.68\"\r\n            r=\"10.838\"\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            opacity=\"0.1\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_DARK}\r\n            fillRule=\"nonzero\"\r\n            d=\"M206.029 209.911c-7.975 0-14.44 6.465-14.44 14.44s6.465 14.44 14.44 14.44 14.44-6.465 14.44-14.44-6.465-14.44-14.44-14.44z\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_MAIN}\r\n            fillRule=\"nonzero\"\r\n            d=\"M206.029 211.59c7.047 0 12.761 5.714 12.761 12.761 0 7.048-5.714 12.761-12.761 12.761-7.048 0-12.761-5.713-12.761-12.761.006-7.045 5.716-12.754 12.761-12.761\"\r\n            opacity=\"0.72\"\r\n          />\r\n          <path\r\n            fill={PRIMARY_DARK}\r\n            fillRule=\"nonzero\"\r\n            d=\"M200.058 225.406l-.699-.681a.721.721 0 010-1.065l6.127-5.984a.753.753 0 01.546-.231c.206 0 .404.083.545.231l6.127 5.978a.733.733 0 010 1.065l-.699.682a.768.768 0 01-1.091 0l-3.622-3.727v8.843a.725.725 0 01-.219.523.76.76 0 01-.534.217h-1.009a.75.75 0 01-.759-.74v-8.832l-3.622 3.726a.768.768 0 01-1.091-.005z\"\r\n          />\r\n        </g>\r\n      </svg>\r\n    </Box>\r\n  );\r\n}\r\n","// material\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Box, BoxProps } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function SeverErrorIllustration({ ...other }: BoxProps) {\r\n  const theme = useTheme();\r\n  const PRIMARY_LIGHTER = theme.palette.primary.lighter;\r\n  const PRIMARY_MAIN = theme.palette.primary.main;\r\n  const PRIMARY_DARK = theme.palette.primary.dark;\r\n  const PRIMARY_DARKER = theme.palette.primary.darker;\r\n\r\n  return <Box {...other} component=\"img\" src=\"/static/illustrations/pages_erreurs/500.svg\"></Box>;\r\n}\r\n","// material\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Box, BoxProps } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function PageNotFoundIllustration({ ...other }: BoxProps) {\r\n  return <Box {...other} component=\"img\" src=\"/static/illustrations/pages_erreurs/404.svg\"></Box>;\r\n}\r\n","// material\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Box, BoxProps } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function MaintenanceIllustration({ ...other }: BoxProps) {\r\n  const theme = useTheme();\r\n\r\n  return <Box {...other} component=\"img\" src=\"/static/illustrations/general/mise_a_jour.svg\" />;\r\n}\r\n","// material\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Box, BoxProps } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function SentIcon({ ...other }: BoxProps) {\r\n  const theme = useTheme();\r\n  const PRIMARY_MAIN = theme.palette.primary.main;\r\n  const PRIMARY_DARK = theme.palette.primary.dark;\r\n\r\n  return (\r\n    <Box {...other}>\r\n      <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 120 140\">\r\n        <defs>\r\n          <linearGradient id=\"BG\" x1=\"49.662%\" x2=\"52.228%\" y1=\"37.111%\" y2=\"76.847%\">\r\n            <stop offset=\"0%\" stopColor={PRIMARY_MAIN} />\r\n            <stop offset=\"100%\" stopColor={PRIMARY_DARK} />\r\n          </linearGradient>\r\n        </defs>\r\n        <g fill=\"none\" fillRule=\"evenodd\" stroke=\"none\" strokeWidth=\"1\">\r\n          <g fill={PRIMARY_MAIN} opacity=\"0.481\" transform=\"translate(27 74)\">\r\n            <path d=\"M39.259 65.387a.75.75 0 11-.39-1.449l1.93-.519a.75.75 0 01.39 1.449l-1.93.519zm7.726-2.079a.75.75 0 01-.392-1.448c.674-.182 1.312-.355 1.929-.524a.75.75 0 11.394 1.448l-1.93.524zm7.72-2.13a.75.75 0 01-.408-1.442c.653-.185 1.292-.367 1.92-.548a.75.75 0 11.415 1.442c-.63.18-1.272.364-1.926.549zm7.693-2.259a.75.75 0 01-.44-1.434c.643-.197 1.277-.394 1.904-.591a.75.75 0 01.45 1.43c-.63.2-1.268.397-1.914.595zm7.64-2.47a.75.75 0 01-.487-1.42 205.24 205.24 0 001.882-.654.75.75 0 01.5 1.414c-.626.221-1.257.44-1.896.66zm7.543-2.757a.75.75 0 01-.546-1.397c.532-.208 1.059-.417 1.579-.627l.267-.11a.75.75 0 11.572 1.387l-.275.113c-.529.213-1.06.424-1.597.634zm7.38-3.343a.75.75 0 11-.731-1.31c.584-.326 1.141-.66 1.673-1.004a.75.75 0 01.814 1.26 31.41 31.41 0 01-1.757 1.054zm6.488-5.142a.75.75 0 01-1.195-.908c.384-.505.7-1.033.933-1.565a.75.75 0 011.375.6 9.208 9.208 0 01-1.113 1.873zm.387-8.357a.75.75 0 11-1.257.818 9.492 9.492 0 00-1.165-1.443.75.75 0 011.075-1.046c.516.53.966 1.085 1.347 1.671zm-6.48-5.278a.75.75 0 11-.697 1.328 51.745 51.745 0 00-.312-.162c-.477-.232-.958-.45-1.449-.659a.75.75 0 11.584-1.381c.516.218 1.02.447 1.537.698l.338.176zm-7.708-2.764a.75.75 0 11-.348 1.46 44.518 44.518 0 00-1.923-.414.75.75 0 01.283-1.473c.676.13 1.339.272 1.988.427zm-8.01-1.253a.75.75 0 11-.137 1.494 90.41 90.41 0 00-1.977-.159.75.75 0 11.104-1.496c.691.048 1.36.101 2.01.16zm-8.058-.452a.75.75 0 11-.052 1.499l-.988-.034c-.317-.005-.637-.009-.96-.012a.75.75 0 11.015-1.5l.981.013 1.004.034zm-8.004-.025a.75.75 0 01.022 1.5c-.64.009-1.3.02-1.996.034a.75.75 0 01-.029-1.5c.698-.013 1.361-.025 2.003-.034zm-8.006.174a.75.75 0 11.037 1.5l-2 .047a.75.75 0 11-.035-1.5c.597-.013 1.216-.028 1.998-.047zm-7.986.15a.75.75 0 01.013 1.5c-.419.003-.83.006-1.234.007l-.762.008a.75.75 0 11-.02-1.5l.774-.008c.403-.001.813-.004 1.23-.008zm-8.01.17a.75.75 0 11.036 1.5 128.4 128.4 0 01-2.011.036.75.75 0 01-.014-1.5c.617-.006 1.261-.018 1.988-.035zm-7.922-.16a.75.75 0 11-.125 1.495 54.016 54.016 0 01-2.018-.208.75.75 0 01.182-1.489c.657.08 1.31.147 1.961.202zm-7.788-1.23a.75.75 0 01-.334 1.463c-.611-.14-1.233-.29-1.865-.452l-.106-.028a.75.75 0 11.384-1.45l.095.025c.62.159 1.227.306 1.826.443zm-6.988-3.058a.75.75 0 11-.94 1.169 15.781 15.781 0 01-1.545-1.422.75.75 0 111.087-1.033c.435.457.903.888 1.398 1.286zm-4.36-6.177a.75.75 0 11-1.427.461 12.529 12.529 0 01-.481-2.072.75.75 0 011.485-.213c.088.614.23 1.223.424 1.824zm.197-7.336a.75.75 0 11-1.414-.5c.23-.65.507-1.292.83-1.927a.75.75 0 111.337.68 14.554 14.554 0 00-.753 1.747zm4.15-6.461a.75.75 0 01-1.098-1.022c.451-.485.93-.968 1.437-1.453a.75.75 0 111.036 1.084 33.35 33.35 0 00-1.375 1.39z\" />\r\n          </g>\r\n          <g transform=\"translate(.072 .206)\">\r\n            <path\r\n              fill=\"url(#BG)\"\r\n              fillRule=\"nonzero\"\r\n              d=\"M118.861.08c.76.19.938 1.11.744 1.772-.437 1.942-1.194 3.796-1.79 5.693L92.91 85.285c-.184 1.023-1.258 1.783-2.27 1.561-10.558-8.63-21.143-17.238-31.722-25.845-4.793 5.019-9.514 10.127-14.717 14.727-1.33 1.09-2.652 2.242-4.23 2.95-.423.13-1.18.379-1.374-.194-.058-1.036.204-2.054.31-3.077a3636.75 3636.75 0 013.914-29.736 42158.62 42158.62 0 00-40.855-6.024c-.726-.123-1.69-.256-1.953-1.07-.144-1.03.866-1.656 1.711-1.922 5.567-1.591 11.049-3.459 16.578-5.176C50.928 21.117 83.557 10.762 116.182.4c.862-.249 1.776-.545 2.68-.32z\"\r\n            />\r\n            <path\r\n              fill={PRIMARY_DARK}\r\n              d=\"M51.552 55.01c2.12 1.735 4.224 3.493 6.382 5.18-4.974 5.704-10.285 11.163-16.03 16.103 3.577-6.924 6.669-14.086 9.648-21.282zm60.086-49.233c-8.523 6.856-17.21 13.517-25.797 20.298-10.817 8.481-21.63 16.965-32.451 25.443-.948.76-2.012 1.39-2.847 2.283-.883.968-1.19 2.276-1.667 3.462-1.292 3.298-2.73 6.542-4.084 9.82-1.302 3.131-2.683 6.25-4.497 9.129.48-3.968.991-7.931 1.512-11.893l1.574-11.883.774-5.944c.085-.463.037-1.056.542-1.295C55.405 39.037 66 32.661 76.66 26.412c11.66-6.876 23.318-13.755 34.978-20.635z\"\r\n            />\r\n          </g>\r\n        </g>\r\n      </svg>\r\n    </Box>\r\n  );\r\n}\r\n","import { Typography, Paper, Box, BoxProps } from '@mui/material';\r\nimport { FileBaseInfo, FileType } from '../../@types/common';\r\nimport { useFile, useFileType } from 'hooks/useFile';\r\nimport { useSnackbar } from 'notistack';\r\nimport { ReactNode, useEffect } from 'react';\r\nimport { MediaFileType } from '../../@types/media';\r\nimport useAuth from 'hooks/useAuth';\r\nimport { messageFunctionLimitee } from 'config';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface FileActionProps extends BoxProps {\r\n  children(\r\n    download: (\r\n      id: number,\r\n      fileType: FileType,\r\n      fileNameDisk?: string,\r\n      fileName?: string\r\n    ) => Promise<void>,\r\n    getFile: (id: number) => Promise<void>,\r\n    downloadImage: (fileName: string, brandId: string) => Promise<void>,\r\n\r\n    isLoading: boolean,\r\n    errorDownload: boolean,\r\n    downloadUrl: (url: string, fileName: string, isS3?: boolean) => Promise<void>,\r\n    downloadS3: (url: string, fileName: string, fileType: FileType, id: number) => Promise<void>,\r\n    downloadMedia?: (id: number, mediaType: MediaFileType, url: string) => void\r\n  ): any;\r\n}\r\n\r\n/**\r\n * Gestion de l'appel au serveur pour télécharger un fichier.\r\n * Gestion de l'erreur avec message\r\n */\r\nexport default function FileAction({ children, sx }: FileActionProps) {\r\n  const managerFile = useFile();\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const { authorizeDownload } = useAuth();\r\n  const downloadMedia = (id: number, mediaType: MediaFileType, url: string) => {};\r\n\r\n  useEffect(() => {\r\n    if (managerFile.errorDownload) {\r\n      enqueueSnackbar('Impossible de télécharger le fichier', { variant: 'error' });\r\n    }\r\n  }, [managerFile.errorDownload]);\r\n\r\n  const downloadUrl = async (url: string, fileName: string, isS3?: boolean) => {\r\n    if (!authorizeDownload()) {\r\n      enqueueSnackbar(messageFunctionLimitee, { variant: 'warning' });\r\n      return;\r\n    }\r\n\r\n    await managerFile.downloadUrl(url, fileName);\r\n  };\r\n\r\n  const downloadS3 = async (url: string, fileName: string, fileType: FileType, id: number) => {\r\n    if (!authorizeDownload()) {\r\n      enqueueSnackbar(messageFunctionLimitee, { variant: 'warning' });\r\n      return;\r\n    }\r\n\r\n    await managerFile.downloadS3(url, fileName, fileType, id);\r\n  };\r\n\r\n  const download = async (\r\n    id: number,\r\n    fileType: FileType,\r\n    fileNameDisk?: string,\r\n    fileName?: string\r\n  ) => {\r\n    if (!authorizeDownload()) {\r\n      enqueueSnackbar(messageFunctionLimitee, { variant: 'warning' });\r\n      return;\r\n    }\r\n\r\n    await managerFile.download(id, fileType, fileNameDisk, fileName);\r\n  };\r\n\r\n  const downloadImage = async (fileName: string, brandId: string) => {\r\n    if (!authorizeDownload()) {\r\n      enqueueSnackbar(messageFunctionLimitee, { variant: 'warning' });\r\n      return;\r\n    }\r\n\r\n    await managerFile.downloadImage(fileName, brandId);\r\n  };\r\n\r\n  //  getFile, download, isLoading, errorDownload, downloadImage, downloadUrl, downloadS3;\r\n\r\n  return (\r\n    <Box sx={{ ...sx }}>\r\n      {children(\r\n        download,\r\n        managerFile.getFile,\r\n        downloadImage,\r\n        managerFile.isLoading,\r\n        managerFile.errorDownload,\r\n        downloadUrl,\r\n        downloadS3,\r\n        downloadMedia\r\n      )}\r\n    </Box>\r\n  );\r\n}\r\n","import { Typography } from '@mui/material';\r\nimport { Homework, HomeworkStatus, ScoreType } from '../../../@types/pedagogy';\r\nimport { ScoreView } from '../studyPlan/ScoreView';\r\n\r\nexport type HomeworkNoteProps = {\r\n  scoreType: ScoreType;\r\n  homework?: Homework;\r\n  label?: string;\r\n};\r\n\r\n/**\r\n * Afficher la note de l'élève du devoir\r\n * @param param0\r\n * @returns\r\n * Null si aucun devoir n'est passé\r\n * la note si le devoir n'est pas en cours de correction\r\n */\r\nexport const HomeworkNote = ({ scoreType, homework, label }: HomeworkNoteProps) => {\r\n  if (\r\n    homework != null &&\r\n    [HomeworkStatus.Corrected, HomeworkStatus.Remade].includes(homework?.status)\r\n  ) {\r\n    return <ScoreView scoreType={scoreType} label={label} score={homework.note} />;\r\n  }\r\n  return <></>;\r\n};\r\n","import { Typography } from '@mui/material';\r\nimport { TypographyProps } from '@mui/system';\r\nimport useAuth from 'hooks/useAuth';\r\nimport { ScoreType } from '../../../@types/pedagogy';\r\n\r\nexport interface ScoreViewProps extends TypographyProps {\r\n  scoreType: ScoreType;\r\n  score: string; //evaluation ou note sur 20\r\n  label?: string;\r\n}\r\n\r\n/**\r\n * Afficher la note suivant le type\r\n * @param param0\r\n * @returns\r\n */\r\nexport const ScoreView = ({ scoreType, score, label, ...sx }: ScoreViewProps) => {\r\n  const { getContractCurrent } = useAuth();\r\n  return (\r\n    <Typography variant=\"h5\" {...sx}>\r\n      {label && (\r\n        <Typography variant=\"body2\" component=\"span\" sx={{ mr: 2 }}>\r\n          {label}\r\n        </Typography>\r\n      )}\r\n      {score}\r\n      {scoreType === ScoreType.sur20 && (\r\n        <Typography variant=\"body2\" component=\"span\">\r\n          /{getContractCurrent().scoreOn}\r\n        </Typography>\r\n      )}\r\n    </Typography>\r\n  );\r\n};\r\n","import { Address } from './account';\r\nimport { PaymentStatus } from './payment';\r\nimport { Training, Teacher, Elearning } from './pedagogy';\r\n\r\nexport interface ContractSelectResponse {\r\n  contract: Contract;\r\n  result: ContractSelectResult;\r\n}\r\n\r\nexport enum ContractSelectResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n\r\nexport interface ModuleExtends {\r\n  module: ModuleType;\r\n}\r\n\r\nexport interface Contract {\r\n  id: number;\r\n  amendmentId: number;\r\n  brand: Brand;\r\n  training: Training;\r\n  averageScore: number;\r\n  averageScoreClass: number;\r\n  maxScore: number;\r\n  lastScore: number;\r\n  pEC: boolean;\r\n  registrationDate: string | null;\r\n  distributionDate: string | null;\r\n  marketingTest: string;\r\n  unblockDate: string | null;\r\n  closingDate: string | null;\r\n  state: ContractState;\r\n  sendingPhase: number;\r\n  suspendedTraining: boolean;\r\n  authorize: ContractAuthorize;\r\n  numberOfMandatoryHomeworkReceived: number;\r\n  numberOfMandatoryHomeworkCorrected: number;\r\n  numberOfTotHomeworkCorrected: number;\r\n  numberOfMandatoryHomework: number;\r\n  numberOfTotalHomework: number;\r\n  idConnection: number;\r\n  progressRate: number;\r\n  partner: Partner;\r\n  debtRecovery: DebtRecovery;\r\n  current: boolean;\r\n  moduleList: ModuleType[];\r\n  logConnections: LogConnection[];\r\n  creditBalance: number;\r\n  coach: Teacher;\r\n  debitAmount: number;\r\n  bills: Bill[];\r\n  constrainedCourse: boolean;\r\n  elearnings: Elearning[];\r\n  surveys: Survey[];\r\n  overtimes: Overtime[];\r\n  isChangePassword: boolean;\r\n  isLinkOldEE: boolean;\r\n  paramsOldEE: string;\r\n  currency: string;\r\n  scoreOn: number;\r\n  isSupported: boolean;\r\n  isWorkStudy: boolean;\r\n}\r\n\r\nexport interface Survey {\r\n  label: string;\r\n  observation: string;\r\n  url: string;\r\n  id: number;\r\n  keyApp: string;\r\n  keyId: string;\r\n  created: string;\r\n  mandatory: boolean;\r\n  relanceOfNumber: number;\r\n}\r\n\r\nexport interface Overtime {\r\n  amount: number;\r\n  code: string;\r\n  numberOfMonths: number;\r\n  status: OvertimeStatus;\r\n  statusPayment: PaymentStatus;\r\n}\r\n\r\nexport enum OvertimeStatus {\r\n  None = 0,\r\n  Current = 1,\r\n  Validated = 2,\r\n  Reject = 3\r\n}\r\n\r\nexport interface Partner {\r\n  id: string;\r\n  label: string;\r\n  blockingPayment: boolean;\r\n}\r\n\r\nexport interface ContractAuthorize {\r\n  description: string;\r\n  type: ContractAuthorizeType;\r\n}\r\n\r\nexport enum ContractAuthorizeType {\r\n  Error = 0,\r\n  Warning = 1,\r\n  OutOfTime = 2,\r\n  Info = 3,\r\n  Suspended = 4,\r\n  PasswordToChange = 5,\r\n  Success = 6,\r\n  Unkown = 7\r\n}\r\n\r\nexport enum ContractState {\r\n  InProgress = 0,\r\n  Registred = 1,\r\n  Closed = 2\r\n}\r\n\r\nexport interface Brand {\r\n  id: string;\r\n  label: string;\r\n  url: string;\r\n  address: Address;\r\n  phone: string;\r\n  email: string;\r\n  addressSociety: Address;\r\n  labelSociety: string;\r\n  info: string;\r\n  rCS: string;\r\n  socialNetworks: Array<SocialNetwork>;\r\n}\r\n\r\nexport interface SocialNetwork {\r\n  type: SocialNetworkType;\r\n  url: string;\r\n}\r\n\r\nexport enum SocialNetworkType {\r\n  Facebook = 0,\r\n  Google = 1,\r\n  Instagram = 2,\r\n  Twitter = 3,\r\n  Linkedin = 4,\r\n  YouTube = 5\r\n}\r\n\r\nexport interface DebtRecovery {\r\n  blockingPayment: boolean;\r\n  blockingOvertime: boolean;\r\n  blockingTraining: boolean;\r\n  blockingStudent: boolean;\r\n  blockingCorrection: boolean;\r\n  blockingMail: boolean;\r\n  UnBlockTemporary: boolean;\r\n}\r\n\r\nexport interface Bill {\r\n  accountingJournal: string;\r\n  accountingDocument: number;\r\n  accountingLine: number;\r\n  effectDate: string;\r\n  designation: string;\r\n  scheduleId: number;\r\n  scheduleNumber: number;\r\n  scheduleAmount: number;\r\n  balanceAmount: number;\r\n  scheduleNext: BillSchedule;\r\n  paymentPending: number;\r\n  amountLate: number;\r\n  cANet: number;\r\n  id: number;\r\n}\r\n\r\nexport interface BillSchedule {\r\n  date: string;\r\n  amount: number;\r\n  paymentChoice: string;\r\n}\r\n\r\nexport interface LogConnectionUpdateResponse {\r\n  idConnection: number;\r\n  result: LogConnectionUpdateResult;\r\n}\r\n\r\nexport interface LogConnectionUpdateRequest {\r\n  idConnection: number;\r\n  pastTimeMinute: number;\r\n}\r\n/*\r\nconstructor(id: number, pastTimeMinute: number) {\r\n    this.idConnection = id;\r\n    this.pastTimeMinute = pastTimeMinute;\r\n  } */\r\n\r\nexport enum LogConnectionUpdateResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n\r\nexport interface LogConnectionListResponse {\r\n  list: LogConnection[];\r\n  result: LogConnectionListResult;\r\n}\r\n\r\nexport enum LogConnectionListResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\nexport interface LogConnectionListRequest {\r\n  type: LogConnectionType;\r\n  dateStart: string;\r\n  dateEnd: string;\r\n}\r\n\r\nexport enum LogConnectionType {\r\n  Date = 0,\r\n  Day = 1,\r\n  Week = 2,\r\n  Month = 3,\r\n  Year = 4\r\n}\r\n\r\nexport interface LogConnection {\r\n  date: string;\r\n  pastTimeMinute: number;\r\n}\r\n\r\nexport enum ModuleType {\r\n  ProfileUpdate = 0,\r\n  QuestionUpdate = 1,\r\n\r\n  HomeworkUpdate = 2,\r\n  LessonView = 3,\r\n  InternalShipView = 4,\r\n  InternalShipUpdate = 5,\r\n  PaymentView = 6,\r\n  PaymentUpdate = 7,\r\n  VirtualClassView = 8,\r\n  VirtualClassUpdate = 9,\r\n  MeetingUpdate = 10,\r\n  WorkshopView = 11,\r\n  WorkshopUpdate = 12,\r\n  Overtime = 13,\r\n  JobView = 14,\r\n  Agenda = 15,\r\n  StudyPlan = 16,\r\n  StudyPlanValidate = 17,\r\n  ContactHandicap = 18,\r\n  Examen = 19,\r\n  ExamenUpdate = 22,\r\n  Elearning = 20,\r\n  Coaching = 21,\r\n  WelcomeCall = 23,\r\n  AttendanceTracking = 24,\r\n  Tracker = 25,\r\n  QuestionUpdateFilter = 26,\r\n  Dashboard = 27,\r\n  News = 28\r\n}\r\n","import { useEffect, useState } from 'react';\r\n\r\n// utils\r\nimport axiosInstance from '../utils/axios';\r\n\r\n// @types\r\nimport { FileType } from '../@types/common';\r\nimport useHubConnection from './useHubConnection';\r\nimport { ca } from 'date-fns/locale';\r\nimport axios from 'axios';\r\n\r\nexport type useFileType = {\r\n  download: (\r\n    id: number,\r\n    fileType: FileType,\r\n    fileNameDisk?: string,\r\n    fileName?: string\r\n  ) => Promise<void>;\r\n  getFile: (id: number) => Promise<void>;\r\n  downloadImage: (fileName: string, brandId: string) => Promise<void>;\r\n  downloadUrl: (url: string, fileName: string) => Promise<void>;\r\n  downloadS3: (url: string, fileName: string, fileType: FileType, id: number) => Promise<void>;\r\n  getUrlS3: (url: string, fileType: FileType) => Promise<void>;\r\n  isLoading: boolean;\r\n  errorDownload: boolean;\r\n  getAvatar: () => Promise<void>;\r\n  exists: (url: string) => Promise<boolean>;\r\n};\r\n\r\n/**\r\n * Hook de téléchargement fichier\r\n * @param param0\r\n * @returns\r\n */\r\nexport const useFile = () => {\r\n  const [isLoading, setLoading] = useState(false);\r\n  const [errorDownload, setErrorDownload] = useState(false);\r\n  const { onError } = useHubConnection();\r\n\r\n  /**\r\n   * Prevoir mettre un lien direct si fichier volumineux\r\n   * @param url\r\n   * @returns\r\n   */\r\n  const downloadUrl = async (url: string, fileName: string) => {\r\n    const response = await getCallExterne(url);\r\n\r\n    if (response?.data) {\r\n      var blobURL = window.URL.createObjectURL(response.data);\r\n      return loadUrl(blobURL, fileName);\r\n    }\r\n  };\r\n\r\n  const exists = async (url: string) => {\r\n    try {\r\n      const response = await axios.head(url);\r\n      return response.status === 200;\r\n    } catch (ex) {\r\n      return false;\r\n    }\r\n  };\r\n\r\n  const downloadS3 = async (url: string, fileName: string, fileType: FileType, id: number) => {\r\n    const urlS3 = await axiosInstance.get<any>(`/api/file/url/${fileType}?name=${url}&id=${id}`);\r\n\r\n    const response = await getCallExterne(urlS3.data);\r\n    if (response?.data) {\r\n      var blobURL = window.URL.createObjectURL(response.data);\r\n      return loadUrl(blobURL, fileName || url);\r\n    }\r\n  };\r\n\r\n  const getUrlS3 = async (url: string, fileType: FileType) => {\r\n    const urlS3 = await axiosInstance.get<any>(`/api/file/url/${fileType}?name=${url}`);\r\n    const response = await getCallExterne(urlS3.data);\r\n    return response?.data;\r\n  };\r\n\r\n  /**\r\n   * Prevoir mettre un lien direct si fichier volumineux\r\n   * @param id\r\n   * @param fileType\r\n   * @param fileName\r\n   * @returns\r\n   */\r\n  const download = async (\r\n    id: number,\r\n    fileType: FileType,\r\n    fileNameDisk?: string,\r\n    fileName?: string\r\n  ) => {\r\n    const response = await getCall(\r\n      `/api/file/downloadfile/${fileType}/${id}${\r\n        fileNameDisk ? `?name=${fileNameDisk}&token=` : ''\r\n      }`\r\n    );\r\n    if (response?.data) {\r\n      const contentDisposition = response?.headers['content-disposition'];\r\n      let _filename: string = fileName || '';\r\n\r\n      if (contentDisposition && _filename === '')\r\n        _filename = contentDisposition.match(/filename=(?<filename>[^,;]+);/)[1];\r\n\r\n      var blobURL = window.URL.createObjectURL(response.data);\r\n      setLoading(false);\r\n      return loadUrl(blobURL, _filename);\r\n    }\r\n  };\r\n\r\n  /**\r\n   * Téléchargement fichier\r\n   */\r\n  const getFile = async (id: number) => {\r\n    const response = await getCall(`/api/file/downloadfile/${FileType.Media}/${id}`);\r\n    if (response?.data) return window.URL.createObjectURL(response?.data);\r\n  };\r\n\r\n  /**\r\n   * Téléchargement avatar()\r\n   * @param fileName\r\n   * @param brandId\r\n   * @returns\r\n   */\r\n  const getAvatar = async () => {\r\n    const response = await axiosInstance.get<any>(`/api/file/downloadfile/${FileType.Avatar}/0`);\r\n    if (response?.data) return response?.data;\r\n  };\r\n\r\n  /**\r\n   * Téléchargement image()\r\n   * @param fileName\r\n   * @param brandId\r\n   * @returns\r\n   */\r\n  const downloadImage = async (fileName: string, brandId: string) => {\r\n    const response = await getCall(\r\n      `/api/file/downloadimage?fileName=${fileName}&brandId=${brandId}`\r\n    );\r\n    if (response?.data) return response?.data;\r\n  };\r\n\r\n  //Appel serveur\r\n  const getCall = async (url: string) => {\r\n    setLoading(true);\r\n    setErrorDownload(false);\r\n    try {\r\n      let response = await axiosInstance.get<any>(url, {\r\n        responseType: 'blob',\r\n        timeout: 120000,\r\n        headers: {\r\n          Accept: 'application/octet-stream'\r\n        }\r\n      });\r\n      setLoading(false);\r\n      return response;\r\n    } catch (ex: any) {\r\n      setLoading(false);\r\n      setErrorDownload(true);\r\n\r\n      //onError(`Erreur fichier ${url}`, `${url} - ${document.location.toString()} ${ex.toString()}`);\r\n    }\r\n  };\r\n\r\n  //Appel serveur\r\n  const getCallExterne = async (url: string) => {\r\n    setLoading(true);\r\n    setErrorDownload(false);\r\n    try {\r\n      let response = await axios.get<any>(url, {\r\n        responseType: 'blob',\r\n        timeout: 120000\r\n      });\r\n      setLoading(false);\r\n      return response;\r\n    } catch (ex: any) {\r\n      setLoading(false);\r\n      setErrorDownload(true);\r\n      console.log(ex);\r\n      //onError(`Erreur fichier ${url}`, `${url} - ${document.location.toString()} ${ex.toString()}`);\r\n    }\r\n  };\r\n\r\n  const loadUrl = (url: string, fileName: string) => {\r\n    const link = document.createElement('a');\r\n    link.href = url;\r\n    link.target = '_blank';\r\n    link.download = fileName;\r\n    document.body.appendChild(link);\r\n    link.click();\r\n    link.remove();\r\n  };\r\n\r\n  return {\r\n    download,\r\n    isLoading,\r\n    getFile,\r\n    downloadImage,\r\n    errorDownload,\r\n    getAvatar,\r\n    downloadUrl,\r\n    downloadS3,\r\n    getUrlS3,\r\n    exists\r\n  } as useFileType;\r\n};\r\n","import useAuth from 'hooks/useAuth';\r\nimport { ReactNode, createContext, useState, useEffect } from 'react';\r\nimport { addTime, differenceBetweenMinute } from 'utils/formatTime';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport type PageSettingsContextProps = {\r\n  helpCategoryId: string;\r\n  isCloseSidebar: boolean;\r\n  setHelpCategoryId: (category: string) => void;\r\n  setCloseSidebar: () => void;\r\n  setDebugMode: () => void;\r\n  setVideoPlay: (play: boolean) => void;\r\n  getDateServer: () => Date;\r\n  debugMode: boolean;\r\n  dateServer: Date;\r\n  dateLocale: Date;\r\n  isVideoPlay: boolean;\r\n};\r\n\r\nconst initialState: PageSettingsContextProps = {\r\n  helpCategoryId: '',\r\n  isCloseSidebar: false,\r\n  setCloseSidebar: () => {},\r\n  setHelpCategoryId: (id: string) => {},\r\n  setDebugMode: () => {},\r\n  getDateServer: () => new Date(),\r\n  setVideoPlay: (play: boolean) => {},\r\n  dateServer: new Date(),\r\n  dateLocale: new Date(),\r\n  debugMode: false,\r\n  isVideoPlay: false\r\n};\r\n\r\nconst PageSettingsContext = createContext(initialState);\r\n\r\ntype PageSettingsProviderProps = {\r\n  children: ReactNode;\r\n};\r\n\r\nfunction PageSettingsProvider({ children }: PageSettingsProviderProps) {\r\n  const { student } = useAuth();\r\n  const [setting, setSetting] = useState({\r\n    helpCategoryId: '',\r\n    isCloseSidebar: false,\r\n    debugMode: false,\r\n    dateServer: new Date(),\r\n    dateLocale: new Date(),\r\n    isVideoPlay: false\r\n  });\r\n\r\n  const setHelpCategoryId = (id: string) => {\r\n    if (id !== setting.helpCategoryId) setSetting({ ...setting, helpCategoryId: id });\r\n  };\r\n\r\n  const setCloseSidebar = () => {\r\n    setSetting({ ...setting, isCloseSidebar: true });\r\n  };\r\n\r\n  const setVideoPlay = (play: boolean) => {\r\n    setSetting({ ...setting, isVideoPlay: play });\r\n  };\r\n\r\n  const setDebugMode = () => {\r\n    setSetting({ ...setting, debugMode: true });\r\n  };\r\n\r\n  const getDateServer = () => {\r\n    if (student?.address.zoneGeographic === 'FRANCE') return new Date();\r\n    else {\r\n      const diffTime = differenceBetweenMinute(setting.dateLocale, new Date());\r\n\r\n      return addTime(setting.dateServer, Math.abs(diffTime));\r\n    }\r\n  };\r\n\r\n  /**Synchro date server */\r\n  useEffect(() => {\r\n    setSetting({ ...setting, dateServer: student?.dateTimeServer, dateLocale: new Date() });\r\n  }, []);\r\n\r\n  return (\r\n    <PageSettingsContext.Provider\r\n      value={{\r\n        ...setting,\r\n        setHelpCategoryId,\r\n        setCloseSidebar,\r\n        setDebugMode,\r\n        getDateServer,\r\n        setVideoPlay\r\n      }}\r\n    >\r\n      {children}\r\n    </PageSettingsContext.Provider>\r\n  );\r\n}\r\n\r\nexport { PageSettingsProvider, PageSettingsContext };\r\n","import { Typography } from '@mui/material';\r\nimport { ModeAccess } from '../../../@types/account';\r\nimport { RowItemDisplayAlert } from 'components/RowListItem';\r\nimport useAuth from 'hooks/useAuth';\r\nimport { fDateMeeting } from 'utils/formatTime';\r\nimport { MeetingAddOrUpdateResponse, MeetingAddOrUpdateResult } from '../../../@types/meeting';\r\n\r\nexport type MeetingErrorMessageProps = {\r\n  error: MeetingAddOrUpdateResponse;\r\n};\r\n\r\nexport default function MeetingErrorMessage({ error }: MeetingErrorMessageProps) {\r\n  let message: string = 'Nous ne pouvons pas donner suite à cette demande';\r\n  switch (error.result) {\r\n    case MeetingAddOrUpdateResult.ClosedContract:\r\n      message = 'La date de clôture de votre contrat sera passée';\r\n      break;\r\n    case MeetingAddOrUpdateResult.ErrorDate:\r\n      message = 'La date du rendez vous est passée';\r\n      break;\r\n    case MeetingAddOrUpdateResult.ErrorDouble:\r\n      message = 'Vous avez déja un rendez vous de programmer à cette heure ci';\r\n      break;\r\n    case MeetingAddOrUpdateResult.ErrorMaterial:\r\n      message = `Vous ne pouvez prendre qu'un seul rendez vous à la fois - Rdv le ${fDateMeeting(\r\n        error.item.dateStart,\r\n        error.item.dateEnd\r\n      )}`;\r\n      break;\r\n\r\n    case MeetingAddOrUpdateResult.ErrorTeacherBusy:\r\n      message = \"Désolé le professeur n'est plus disponible\";\r\n      break;\r\n  }\r\n\r\n  return (\r\n    <RowItemDisplayAlert alertColor=\"error\">\r\n      <Typography variant=\"body2\">{message}</Typography>\r\n    </RowItemDisplayAlert>\r\n  );\r\n}\r\n","import React, { useEffect } from 'react';\r\nimport { useSnackbar } from 'notistack';\r\nimport * as Yup from 'yup';\r\nimport { useFormik, Form, FormikProvider } from 'formik';\r\n// material\r\nimport {\r\n  List,\r\n  Button,\r\n  Typography,\r\n  TextField,\r\n  MenuItem,\r\n  Box,\r\n  DialogActions,\r\n  Alert,\r\n  RadioGroup,\r\n  FormControlLabel,\r\n  Radio,\r\n  Card,\r\n  Stack\r\n} from '@mui/material';\r\nimport {\r\n  PermContactCalendar,\r\n  CheckOutlined,\r\n  Phone,\r\n  Videocam,\r\n  Notes,\r\n  PhoneRounded\r\n} from '@mui/icons-material';\r\nimport { LoadingButton } from '@mui/lab';\r\n// redux\r\nimport { dispatch, RootState, useDispatch, useSelector } from 'redux/store';\r\nimport { addOrUpdateMeeting } from 'redux/slices/meeting';\r\n\r\n//type\r\nimport { Meeting, MeetingStatus, MeetingType } from '../../../@types/meeting';\r\nimport { HomeworkBase } from '../../../@types/pedagogy';\r\nimport { ModuleType } from '../../../@types/contract';\r\n\r\n//Composants\r\nimport {\r\n  RowItem,\r\n  RowItemDisplay,\r\n  RowItemDisplayDateTime,\r\n  RowItemDisplayTeacher,\r\n  RowItemDisplayTitle\r\n} from 'components/RowListItem';\r\n\r\nimport { MeetingVisioMessage, MeetingPhoneMessage } from 'components/_dashboard/meeting';\r\n\r\nimport MeetingErrorMessage from './MeetingErrorMessage';\r\nimport MeetingAlertMessageOral from './MeetingAlertMessageOral';\r\nimport useModuleAuthorize from 'hooks/useModuleAuthorize';\r\nimport ModuleNotAuthorized from 'components/ModuleNotAuthorized';\r\nimport useAuth from 'hooks/useAuth';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nexport type MeetingFormProps = {\r\n  onCancel(is: boolean): void;\r\n  onClose: VoidFunction;\r\n  homework?: HomeworkBase | null;\r\n};\r\n\r\nexport const MeetingForm = ({ onCancel, onClose, homework = null }: MeetingFormProps) => {\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const { getContractCurrent } = useAuth();\r\n  const { meeting, isLoading, error } = useSelector((state: RootState) => state.meeting);\r\n  const { authorizedModule } = useModuleAuthorize({\r\n    accessibleModules: [ModuleType.MeetingUpdate]\r\n  });\r\n\r\n  const validationSchema = Yup.object({\r\n    type: Yup.number(),\r\n    phone: Yup.string().when('type', {\r\n      is: 0,\r\n      then: Yup.string().required('Le téléphone est obligatoire')\r\n    }),\r\n    observation: Yup.string()\r\n      .required(\"L'objet du rendez-vous est obligatoire\")\r\n      .min(30, \"Veuillez compléter l'objet de votre rendez-vous (au minimum 30 caractères)\")\r\n  });\r\n\r\n  //Types de RDV\r\n  const PHONE = { key: 0, label: 'Téléphone', icon: <Phone /> };\r\n  const VISIO = { key: 1, label: 'Visio', icon: <Videocam /> };\r\n\r\n  //valeur par defaut du type\r\n  const typeDefault =\r\n    meeting?.isVisio || getContractCurrent().brand.id === 'CH' ? VISIO.key : PHONE.key;\r\n\r\n  //Types de RDV à afficher\r\n  let filteredTypes = [];\r\n\r\n  if (getContractCurrent().brand.id === 'CH') {\r\n    // Cas particulier de la Suisse, uniquement la Visio\r\n    filteredTypes.push(VISIO);\r\n  } else {\r\n    // Autres écoles\r\n    if (meeting?.isVisio) {\r\n      // Si la Visio est gérée\r\n      filteredTypes.push(VISIO);\r\n    }\r\n    // Dans tous les cas, le téléphone est autorisé\r\n    filteredTypes.push(PHONE);\r\n  }\r\n\r\n  const formik = useFormik({\r\n    initialValues: {\r\n      type: meeting?.id === 0 ? typeDefault : (meeting?.type as number),\r\n      phone: meeting?.phone || '',\r\n      observation: meeting?.observation || ''\r\n    },\r\n    validationSchema: validationSchema,\r\n\r\n    onSubmit: async (values) => {\r\n      dispatch(\r\n        addOrUpdateMeeting({\r\n          type: values.type,\r\n          observation: values.observation,\r\n          phone: values.phone,\r\n          status: MeetingStatus.Registered,\r\n          dateEnd: meeting!.dateEnd,\r\n          dateStart: meeting!.dateStart,\r\n          homework: homework,\r\n          id: meeting!.id,\r\n          idVirtualClass: meeting!.idVirtualClass,\r\n          isVisio: meeting!.isVisio,\r\n          material: meeting!.material,\r\n          teacher: meeting!.teacher\r\n        })((meeting: Meeting) => {\r\n          enqueueSnackbar('Enregistrement effectué', { variant: 'success' });\r\n          onClose();\r\n        })\r\n      );\r\n    }\r\n  });\r\n\r\n  const { setFieldValue } = formik;\r\n\r\n  const updateMeetingType = (value: number) => {\r\n    setFieldValue('type', value);\r\n  };\r\n\r\n  if (!authorizedModule) return <ModuleNotAuthorized />;\r\n\r\n  return (\r\n    <Box sx={{ p: 3 }}>\r\n      <form onSubmit={formik.handleSubmit}>\r\n        <List>\r\n          {!homework && (\r\n            <RowItemDisplayTitle icon={<PermContactCalendar />} title=\"\">\r\n              {meeting?.material?.label}\r\n            </RowItemDisplayTitle>\r\n          )}\r\n          <RowItemDisplayDateTime\r\n            start={meeting?.dateStart ?? new Date().toString()}\r\n            end={meeting?.dateEnd ?? new Date().toString()}\r\n            isLimit={false}\r\n          />\r\n\r\n          <RowItem\r\n            title={\r\n              <Stack\r\n                sx={{\r\n                  display: 'flex',\r\n                  flexDirection: 'row',\r\n                  justifyContent: 'center',\r\n                  alignItems: 'center'\r\n                }}\r\n              >\r\n                {filteredTypes?.map((option) => (\r\n                  <MeetingTypeRadio\r\n                    key={option.key}\r\n                    value={option.key}\r\n                    label={option.label}\r\n                    icon={option.icon}\r\n                    selected={formik.values.type == option.key}\r\n                    onChange={updateMeetingType}\r\n                  />\r\n                ))}\r\n              </Stack>\r\n            }\r\n            icon={<></>}\r\n            subTitle=\"\"\r\n          />\r\n\r\n          {formik.values.type === MeetingType.Phone ? (\r\n            <>\r\n              <RowItem\r\n                title={<Typography variant=\"subtitle2\">Participer par téléphone</Typography>}\r\n                icon={<Phone />}\r\n                subTitle={\r\n                  <>\r\n                    <TextField\r\n                      error={Boolean(formik.touched.phone && formik.errors.phone)}\r\n                      fullWidth\r\n                      helperText={formik.touched.phone && formik.errors.phone}\r\n                      label=\"Votre numéro de téléphone\"\r\n                      margin=\"normal\"\r\n                      name=\"phone\"\r\n                      onChange={formik.handleChange}\r\n                      value={formik.values.phone}\r\n                      variant=\"outlined\"\r\n                      inputProps={{ maxLength: 20 }}\r\n                    />\r\n                    <MeetingPhoneMessage />\r\n                  </>\r\n                }\r\n              />\r\n            </>\r\n          ) : (\r\n            <>\r\n              <RowItem\r\n                title={<Typography variant=\"subtitle2\">Participer en visio</Typography>}\r\n                icon={<Videocam />}\r\n                subTitle={<MeetingVisioMessage />}\r\n              />\r\n            </>\r\n          )}\r\n\r\n          <RowItemDisplayTeacher teacher={meeting?.teacher} />\r\n\r\n          <RowItem\r\n            title={<Typography variant=\"subtitle2\">Objet de mon rendez-vous :</Typography>}\r\n            icon={<Notes />}\r\n            subTitle={\r\n              <TextField\r\n                fullWidth\r\n                multiline\r\n                rows={4}\r\n                maxRows={4}\r\n                label=\"Veuillez indiquer l'objet de votre rendez-vous :\"\r\n                margin=\"normal\"\r\n                name=\"observation\"\r\n                onChange={formik.handleChange}\r\n                value={formik.values.observation}\r\n                variant=\"outlined\"\r\n                error={Boolean(formik.touched.observation && formik.errors.observation)}\r\n                helperText={formik.touched.observation && formik.errors.observation}\r\n              />\r\n            }\r\n          />\r\n        </List>\r\n        {!homework && <MeetingAlertMessageOral meeting={meeting} />}\r\n        {error && <MeetingErrorMessage error={error} />}\r\n        <DialogActions sx={{ justifyContent: 'center' }}>\r\n          <Button variant=\"text\" onClick={() => onCancel(false)}>\r\n            ANNULER\r\n          </Button>\r\n          <Box />\r\n          <LoadingButton\r\n            type=\"submit\"\r\n            variant=\"contained\"\r\n            loading={isLoading}\r\n            size=\"large\"\r\n            loadingIndicator=\"Traitement...\"\r\n          >\r\n            {meeting?.id === 0 ? 'CONFIRMER' : 'ENREGISTRER'}\r\n          </LoadingButton>\r\n        </DialogActions>\r\n      </form>\r\n    </Box>\r\n  );\r\n};\r\n\r\nexport type MeetingTypeRadioProps = {\r\n  value: number;\r\n  label: string;\r\n  icon: JSX.Element | null;\r\n  selected?: boolean;\r\n  onChange(value: number): void;\r\n};\r\n\r\nconst MeetingTypeRadio = ({ value, label, icon, selected, onChange }: MeetingTypeRadioProps) => {\r\n  const theme = useTheme();\r\n\r\n  return (\r\n    <Card\r\n      sx={{ marginRight: 4, border: selected ? `2px solid ${theme.palette.primary.main}` : '' }}\r\n    >\r\n      <Button\r\n        onClick={() => onChange(value)}\r\n        sx={{\r\n          display: 'flex',\r\n          flexDirection: 'column',\r\n          justifyContent: 'center',\r\n          alignItems: 'center',\r\n          width: '100px',\r\n          height: '100px',\r\n          color: selected ? theme.palette.primary.main : theme.palette.grey[500]\r\n        }}\r\n      >\r\n        {icon}\r\n        <Typography variant=\"body1\">{label}</Typography>\r\n      </Button>\r\n    </Card>\r\n  );\r\n};\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { store } from '../store';\r\n// utils\r\nimport axiosInstance from '../../utils/axios';\r\n// @types\r\nimport {\r\n  Favorite,\r\n  FavoriteActionResult,\r\n  FavoriteAddResponse,\r\n  FavoriteAddResult,\r\n  FavoriteListResponse,\r\n  FavoriteListResult,\r\n  FavoriteState\r\n} from '../../@types/favorite';\r\nimport { filter } from 'lodash';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: FavoriteState = {\r\n  isLoading: false,\r\n  error: false,\r\n  favorites: [],\r\n  notificationContent: undefined\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'favorite',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    // Liste\r\n    getFavoritesSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.favorites = action.payload;\r\n    },\r\n\r\n    // ajouter\r\n    addFavoriteSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.favorites = [...state.favorites, action.payload];\r\n    },\r\n    // Supprimer\r\n    removeFavoriteSuccess(state, action) {\r\n      state.isLoading = false;\r\n\r\n      const removeFavorite = filter(state.favorites, (favorite) => favorite.id !== action.payload);\r\n\r\n      state.favorites = removeFavorite;\r\n    },\r\n    //Ajout notification\r\n    addFavoriteNotification(state, action) {\r\n      state.notificationContent = action.payload;\r\n    },\r\n    //Suppression notification\r\n    removeFavoriteNotification(state) {\r\n      state.notificationContent = undefined;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getFavorites() {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axiosInstance.get<FavoriteListResponse>('/api/favorite/list');\r\n      const { result, list } = response.data;\r\n\r\n      switch (result) {\r\n        case FavoriteListResult.Success:\r\n          dispatch(slice.actions.getFavoritesSuccess(list));\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function addFavorite(request: Favorite) {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axiosInstance.post<FavoriteAddResponse>('/api/favorite/add', request, {\r\n        headers: { writeOnly: true }\r\n      });\r\n      const { result, item } = response.data;\r\n\r\n      switch (result) {\r\n        case FavoriteAddResult.Success:\r\n          dispatch(slice.actions.addFavoriteSuccess(item));\r\n\r\n          //Notification\r\n          dispatch(showNotification('+1'));\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function removeFavorite(id: number) {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axiosInstance.get<boolean>(`/api/favorite/remove/${id}`, {\r\n        headers: { writeOnly: true }\r\n      });\r\n      if (response.data) {\r\n        dispatch(slice.actions.removeFavoriteSuccess(id));\r\n\r\n        //Notification\r\n        dispatch(showNotification('-1'));\r\n      } else {\r\n        dispatch(slice.actions.hasError(true));\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(true));\r\n    }\r\n  };\r\n}\r\n\r\nfunction showNotification(notifTxt: string) {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.addFavoriteNotification(notifTxt));\r\n    const notifTimeout = setTimeout(() => {\r\n      dispatch(slice.actions.removeFavoriteNotification());\r\n      clearInterval(notifTimeout);\r\n    }, 2000);\r\n  };\r\n}\r\n","import { Alert, Typography } from '@mui/material';\r\nimport { Card } from '@mui/material';\r\nimport { IllustrationInfo } from 'components/IllustrationMessage';\r\nimport { ReactNode } from 'react';\r\n\r\ntype SurveyCardErrorProps = {\r\n  title: string;\r\n  children: ReactNode;\r\n};\r\n\r\nconst SurveyCardInformation = ({ title, children }: SurveyCardErrorProps) => {\r\n  return (\r\n    <Card>\r\n      <IllustrationInfo img={`/static/illustrations/sondages/questionnaire_satisfaction.svg`}>\r\n        <Typography variant=\"h4\" paragraph>\r\n          {title}\r\n        </Typography>\r\n        {children}\r\n      </IllustrationInfo>\r\n    </Card>\r\n  );\r\n};\r\n\r\nexport default SurveyCardInformation;\r\n","// ----------------------------------------------------------------------\r\n\r\nfunction path(root: string, sublink: string) {\r\n  return `${root}${sublink}`;\r\n}\r\n\r\nconst ROOTS_AUTH = '/auth';\r\nexport const ROOTS_DASHBOARD = '/dashboard';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport const PATH_AUTH = {\r\n  root: ROOTS_AUTH,\r\n  login: path(ROOTS_AUTH, '/login'),\r\n  loginUnprotected: path(ROOTS_AUTH, '/login-unprotected'),\r\n  register: path(ROOTS_AUTH, '/register'),\r\n  registerUnprotected: path(ROOTS_AUTH, '/register-unprotected'),\r\n  resetPassword: path(ROOTS_AUTH, '/reset-password'),\r\n  changePassword: path(ROOTS_AUTH, '/change-password'),\r\n  verify: path(ROOTS_AUTH, '/verify')\r\n};\r\n\r\nexport const PATH_PAGE = {\r\n  comingSoon: '/coming-soon',\r\n  maintenance: '/maintenance',\r\n  pricing: '/pricing',\r\n  payment: '/payment',\r\n  about: '/about-us',\r\n  contact: '/contact-us',\r\n  faqs: '/faqs',\r\n  page404: '/404',\r\n  page500: '/500',\r\n  components: '/components'\r\n};\r\n\r\nexport const PATH_DASHBOARD = {\r\n  root: ROOTS_DASHBOARD,\r\n  general: {\r\n    app: path(ROOTS_DASHBOARD, '/app'),\r\n    mentionLegal: path(ROOTS_DASHBOARD, '/mentionslegales'),\r\n    contact: path(ROOTS_DASHBOARD, '/contact'),\r\n    help: path(ROOTS_DASHBOARD, '/aides'),\r\n    //homeworks: path(ROOTS_DASHBOARD, '/evaluations'),\r\n    overtimes: path(ROOTS_DASHBOARD, '/prolongation')\r\n  },\r\n  mail: {\r\n    root: path(ROOTS_DASHBOARD, '/mail'),\r\n    all: path(ROOTS_DASHBOARD, '/mail/all')\r\n  },\r\n  message: {\r\n    root: path(ROOTS_DASHBOARD, '/message'),\r\n    all: path(ROOTS_DASHBOARD, '/message/all'),\r\n    unread: path(ROOTS_DASHBOARD, '/message/unread'),\r\n    school: path(ROOTS_DASHBOARD, '/message/school'),\r\n    question: path(ROOTS_DASHBOARD, '/message/question')\r\n  },\r\n  chat: {\r\n    root: path(ROOTS_DASHBOARD, '/chat'),\r\n    new: path(ROOTS_DASHBOARD, '/chat/new'),\r\n    conversation: path(ROOTS_DASHBOARD, '/chat/:conversationKey')\r\n  },\r\n  agenda: path(ROOTS_DASHBOARD, '/agenda'),\r\n\r\n  favorite: path(ROOTS_DASHBOARD, '/favoris'),\r\n  studyPlan: {\r\n    root: path(ROOTS_DASHBOARD, '/studyPlan/list'),\r\n    details: path(ROOTS_DASHBOARD, '/studyPlan/details'),\r\n    // skills: path(ROOTS_DASHBOARD, '/studyPlan/skills'),\r\n    documents: path(ROOTS_DASHBOARD, '/studyPlan/documents'),\r\n    activity: path(ROOTS_DASHBOARD, '/studyPlan/activity'),\r\n    StudyPlanSearch: path(ROOTS_DASHBOARD, '/studyPlan/search'),\r\n    StudyPlanSearchDetails: path(ROOTS_DASHBOARD, '/studyPlan/searchdetails')\r\n  },\r\n  student: {\r\n    profil: path(ROOTS_DASHBOARD, '/student/account/profil'),\r\n    documents: path(ROOTS_DASHBOARD, '/student/account/documents'),\r\n    notifications: path(ROOTS_DASHBOARD, '/student/account/notifications'),\r\n    payment: path(ROOTS_DASHBOARD, '/student/account/payment'),\r\n    password: path(ROOTS_DASHBOARD, '/student/account/password'),\r\n    availability: path(ROOTS_DASHBOARD, '/student/account/availability'),\r\n    specificNeeds: path(ROOTS_DASHBOARD, '/student/account/specificneeds')\r\n  },\r\n\r\n  suivi: {\r\n    root: path(ROOTS_DASHBOARD, '/suivi'),\r\n    skills: path(ROOTS_DASHBOARD, '/suivi/skills'),\r\n    notes: path(ROOTS_DASHBOARD, '/suivi/relevenotes'),\r\n    historic: path(ROOTS_DASHBOARD, '/suivi/historiques'),\r\n    historicRdv: path(ROOTS_DASHBOARD, '/suivi/historiques/rdv'),\r\n    historicSupport: path(ROOTS_DASHBOARD, '/suivi/historiques/supports'),\r\n    internships: path(ROOTS_DASHBOARD, '/suivi/internships'),\r\n    internshipCreate: path(ROOTS_DASHBOARD, '/suivi/internship'),\r\n    examens: path(ROOTS_DASHBOARD, '/suivi/examens'),\r\n    examenCreate: path(ROOTS_DASHBOARD, '/suivi/examen-new'),\r\n    //examenPeriode: path(ROOTS_DASHBOARD, '/suivi/examen-periode'),\r\n    examenAdd: path(ROOTS_DASHBOARD, '/suivi/examen-add'),\r\n    examenCreateInterne: path(ROOTS_DASHBOARD, '/suivi/examen-preinscription')\r\n    //assiduite: path(ROOTS_DASHBOARD, '/suivi/assiduite')\r\n  },\r\n\r\n  user: {\r\n    root: path(ROOTS_DASHBOARD, '/user'),\r\n    profile: path(ROOTS_DASHBOARD, '/user/profile'),\r\n    cards: path(ROOTS_DASHBOARD, '/user/cards'),\r\n    list: path(ROOTS_DASHBOARD, '/user/list'),\r\n    newUser: path(ROOTS_DASHBOARD, '/user/new'),\r\n    editById: path(ROOTS_DASHBOARD, `/user/reece-chung/edit`),\r\n    account: path(ROOTS_DASHBOARD, '/user/account')\r\n  },\r\n  eCommerce: {\r\n    root: path(ROOTS_DASHBOARD, '/e-commerce'),\r\n    shop: path(ROOTS_DASHBOARD, '/e-commerce/shop'),\r\n    product: path(ROOTS_DASHBOARD, '/e-commerce/product/:name'),\r\n    productById: path(ROOTS_DASHBOARD, '/e-commerce/product/nike-air-force-1-ndestrukt'),\r\n    list: path(ROOTS_DASHBOARD, '/e-commerce/list'),\r\n    newProduct: path(ROOTS_DASHBOARD, '/e-commerce/product/new'),\r\n    editById: path(ROOTS_DASHBOARD, '/e-commerce/product/nike-blazer-low-77-vintage/edit'),\r\n    checkout: path(ROOTS_DASHBOARD, '/e-commerce/checkout'),\r\n    invoice: path(ROOTS_DASHBOARD, '/e-commerce/invoice')\r\n  },\r\n  blog: {\r\n    root: path(ROOTS_DASHBOARD, '/blog'),\r\n    posts: path(ROOTS_DASHBOARD, '/blog/posts'),\r\n    post: path(ROOTS_DASHBOARD, '/blog/post/:title'),\r\n    postById: path(ROOTS_DASHBOARD, '/blog/post/apply-these-7-secret-techniques-to-improve-event'),\r\n    newPost: path(ROOTS_DASHBOARD, '/blog/new-post')\r\n  },\r\n  article: {\r\n    root: path(ROOTS_DASHBOARD, '/article'),\r\n    list: path(ROOTS_DASHBOARD, '/article/list')\r\n  },\r\n  job: {\r\n    root: path(ROOTS_DASHBOARD, '/job'),\r\n    list: path(ROOTS_DASHBOARD, '/job/list')\r\n  },\r\n\r\n  virtualClass: {\r\n    root: path(ROOTS_DASHBOARD, '/virtualclass'),\r\n    list: path(ROOTS_DASHBOARD, '/virtualclass/list'),\r\n    edit: path(ROOTS_DASHBOARD, '/virtualclass/:id')\r\n  },\r\n  workshop: {\r\n    root: path(ROOTS_DASHBOARD, '/workshop'),\r\n    list: path(ROOTS_DASHBOARD, '/workshop/list'),\r\n    edit: path(ROOTS_DASHBOARD, '/workshop/:id')\r\n  },\r\n  homeworks: {\r\n    root: path(ROOTS_DASHBOARD, '/evaluations'),\r\n    details: path(ROOTS_DASHBOARD, '/evaluations/details')\r\n  }\r\n};\r\n\r\nexport const PATH_DOCS = '';\r\n","// material\r\nimport { Box } from '@mui/material';\r\n//\r\nimport { Icon } from '@iconify/react';\r\nimport fileFill from '@iconify/icons-eva/file-fill';\r\nimport {\r\n  ArticleRounded,\r\n  ImageRounded,\r\n  PictureAsPdfRounded,\r\n  VideoCallRounded,\r\n  VideoLibraryRounded\r\n} from '@mui/icons-material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst FORMAT_IMG = ['jpg', 'jpeg', 'gif', 'bmp', 'png'];\r\nconst FORMAT_VIDEO = ['m4v', 'avi', 'mpg', 'mp4', 'webm'];\r\nconst FORMAT_WORD = ['doc', 'docx'];\r\nconst FORMAT_EXCEL = ['xls', 'xlsx'];\r\nconst FORMAT_POWERPOINT = ['ppt', 'pptx'];\r\nconst FORMAT_PDF = ['pdf'];\r\nconst FORMAT_PHOTOSHOP = ['psd'];\r\nconst FORMAT_ILLUSTRATOR = ['ai', 'esp'];\r\n\r\nexport function getFileType(fileUrl: string = '') {\r\n  return fileUrl.split('.').pop() || '';\r\n}\r\n\r\nexport function getFileName(fileUrl: string) {\r\n  return fileUrl.substring(fileUrl.lastIndexOf('/') + 1).replace(/\\.[^/.]+$/, '');\r\n}\r\n\r\nexport function getFileFullName(fileUrl: string) {\r\n  return fileUrl.split('/').pop();\r\n}\r\n\r\nexport function getFileFormat(fileUrl: string) {\r\n  let format;\r\n\r\n  switch (fileUrl.includes(getFileType(fileUrl))) {\r\n    case FORMAT_IMG.includes(getFileType(fileUrl)):\r\n      format = 'image';\r\n      break;\r\n    case FORMAT_VIDEO.includes(getFileType(fileUrl)):\r\n      format = 'video';\r\n      break;\r\n    case FORMAT_WORD.includes(getFileType(fileUrl)):\r\n      format = 'word';\r\n      break;\r\n    case FORMAT_EXCEL.includes(getFileType(fileUrl)):\r\n      format = 'excel';\r\n      break;\r\n    case FORMAT_POWERPOINT.includes(getFileType(fileUrl)):\r\n      format = 'powerpoint';\r\n      break;\r\n    case FORMAT_PDF.includes(getFileType(fileUrl)):\r\n      format = 'pdf';\r\n      break;\r\n    case FORMAT_PHOTOSHOP.includes(getFileType(fileUrl)):\r\n      format = 'photoshop';\r\n      break;\r\n    case FORMAT_ILLUSTRATOR.includes(getFileType(fileUrl)):\r\n      format = 'illustrator';\r\n      break;\r\n    default:\r\n      format = getFileType(fileUrl);\r\n  }\r\n\r\n  return format;\r\n}\r\n\r\nconst getIcon = (name: string) => (\r\n  <Box\r\n    component=\"img\"\r\n    src={`/static/icons/file/${name}.svg`}\r\n    alt={name}\r\n    sx={{ width: 24, height: 24 }}\r\n  />\r\n);\r\n\r\nexport function getFileThumb(fileUrl: string) {\r\n  let thumb;\r\n  switch (getFileFormat(fileUrl)) {\r\n    case 'image':\r\n      thumb = <ImageRounded />;\r\n      break;\r\n    case 'video':\r\n      thumb = <VideoLibraryRounded />;\r\n      break;\r\n    case 'word':\r\n      thumb = <ArticleRounded />;\r\n      break;\r\n    case 'excel':\r\n      thumb = <ArticleRounded />;\r\n      break;\r\n    case 'powerpoint':\r\n      thumb = <ArticleRounded />;\r\n      break;\r\n    case 'pdf':\r\n      thumb = <PictureAsPdfRounded />;\r\n      break;\r\n    case 'photoshop':\r\n      thumb = <ImageRounded />;\r\n      break;\r\n    case 'illustrator':\r\n      thumb = <ImageRounded />;\r\n      break;\r\n    default:\r\n      thumb = <ArticleRounded />;\r\n  }\r\n  return thumb;\r\n}\r\n\r\nexport function getFileExtensionThumb(fileUrl: string) {\r\n  let thumb;\r\n  switch (getFileFormat(fileUrl)) {\r\n    case 'image':\r\n      thumb = <ImageRounded />;\r\n      break;\r\n    case 'video':\r\n      thumb = getIcon('file_type_video');\r\n      break;\r\n    case 'word':\r\n      thumb = getIcon('file_type_word');\r\n      break;\r\n    case 'excel':\r\n      thumb = getIcon('file_type_excel');\r\n      break;\r\n    case 'powerpoint':\r\n      thumb = getIcon('file_type_powerpoint');\r\n      break;\r\n    case 'pdf':\r\n      thumb = <PictureAsPdfRounded />;\r\n      break;\r\n    case 'photoshop':\r\n      thumb = getIcon('file_type_photoshop');\r\n      break;\r\n    case 'illustrator':\r\n      thumb = getIcon('file_type_ai');\r\n      break;\r\n    default:\r\n      thumb = <Box component={Icon} icon={fileFill} sx={{ width: 28, height: 28 }} />;\r\n  }\r\n  return thumb;\r\n}\r\n\r\nexport function formatFileSize(bytes: number, decimalPoint: number) {\r\n  if (bytes === 0) return '0 Bytes';\r\n  var k = 1000,\r\n    dm = decimalPoint || 2,\r\n    sizes = ['Bytes', 'KB', 'Mo', 'Go', 'To', 'PB', 'EB', 'ZB', 'YB'],\r\n    i = Math.floor(Math.log(bytes) / Math.log(k));\r\n  return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n}\r\n\r\n//<PictureAsPdfRounded color={isRead ? 'success' : 'disabled'} />;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { store } from '../store';\r\n// utils\r\nimport axios from '../../utils/axios';\r\n// @types\r\nimport {\r\n  CategoryType,\r\n  MediaFileListResponse,\r\n  MediaFileListResult,\r\n  MediaFileState\r\n} from '../../@types/media';\r\nimport { map } from 'lodash';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: MediaFileState = {\r\n  isLoading: false,\r\n  error: false,\r\n  mediaFiles: [],\r\n  hash: ''\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'mediaFile',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    // GET POST INFINITE\r\n    getMediaFiles(state, action) {\r\n      state.isLoading = false;\r\n      state.mediaFiles = action.payload;\r\n    },\r\n\r\n    updateMediaFiles(state, action) {\r\n      const mediaId = action.payload;\r\n      const updateMedias = map(state.mediaFiles, (_media) => {\r\n        if (_media.id === mediaId) {\r\n          _media.read = true;\r\n          return _media;\r\n        }\r\n        return _media;\r\n      });\r\n\r\n      state.mediaFiles = updateMedias;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nexport const { updateMediaFiles } = slice.actions;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getAllMediaFiles(category: CategoryType, hash: string) {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get<MediaFileListResponse>(\r\n        `/api/document/${CategoryType[category].toString().toLowerCase()}?hash=${hash}`\r\n      );\r\n      const { items, result } = response.data;\r\n      switch (result) {\r\n        case MediaFileListResult.Success:\r\n          dispatch(slice.actions.getMediaFiles(items));\r\n          break;\r\n        default:\r\n          dispatch(slice.actions.hasError(''));\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport const logMediaFile = (id: number) => (onSuccess: (id: number) => void) => {\r\n  return async () => {\r\n    try {\r\n      const response = await axios.get<boolean>(`/api/document/log/${id}`);\r\n      if (response.data) {\r\n        onSuccess(id);\r\n      }\r\n    } catch (error) {}\r\n  };\r\n};\r\n","import { replace } from 'lodash';\r\nimport numeral from 'numeral';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function fCurrency(number: string | number) {\r\n  return numeral(number).format(Number.isInteger(number) ? '$0,0' : '$0,0.00');\r\n}\r\n\r\nexport function fCurrencyWithFormat(number: string | number, format: string) {\r\n  return numeral(number).format(format);\r\n}\r\n\r\nexport function fPercent(number: number) {\r\n  return numeral(number / 100).format('0.0%');\r\n}\r\n\r\nexport function fNumber(number: string | number) {\r\n  return numeral(number).format();\r\n}\r\n\r\nexport function fShortenNumber(number: string | number) {\r\n  return replace(numeral(number).format('0.00a'), '.00', '');\r\n}\r\n\r\nexport function fData(number: string | number) {\r\n  return numeral(number).format('0.0 b');\r\n}\r\n","import {\r\n  Card,\r\n  Typography,\r\n  Stack,\r\n  BoxProps,\r\n  CardProps,\r\n  Table,\r\n  responsiveFontSizes,\r\n  TableHead,\r\n  TableCell,\r\n  TableBody,\r\n  TableRow,\r\n  Avatar,\r\n  TableContainer,\r\n  Paper\r\n} from '@mui/material';\r\nimport { Box } from '@mui/system';\r\n\r\nimport CardContainer, { CardContainerProps } from 'components/CardContainer';\r\nimport React, { ReactNode, useEffect, useRef } from 'react';\r\nimport { Helmet } from 'react-helmet-async';\r\n\r\nimport { SurveyCategory, SurveyRequest, Survey } from '../../../@types/survey';\r\nimport ScrollView from 'pages/components-overview/extra/animate/scroll';\r\nimport Scrollbar from 'components/Scrollbar';\r\nimport { groupBy } from 'utils/collection';\r\n\r\nexport interface SurveyCategoryCardProps extends CardContainerProps {\r\n  category: SurveyCategory;\r\n  children(survey: Survey, isRegroupement: boolean, index: number): any;\r\n}\r\n// category.html\r\nexport const SurveyCategoryCard = ({\r\n  category,\r\n  sx,\r\n  children,\r\n  avatar,\r\n  ...other\r\n}: SurveyCategoryCardProps) => {\r\n  return (\r\n    <CardContainer\r\n      avatar={avatar}\r\n      title={category.name}\r\n      sx={{ ...sx }}\r\n      {...other}\r\n      subheader={\r\n        <Typography variant=\"caption\">\r\n          <div dangerouslySetInnerHTML={{ __html: '' }} />\r\n        </Typography>\r\n      }\r\n      className={category.css}\r\n    >\r\n      <Scrollbar sx={{ m: 1 }}>\r\n        {groupBy(category.surveyList, (c: Survey) => c.regroupementId)?.map((group, index) => {\r\n          const isRegroupement = group.key !== '';\r\n\r\n          return (\r\n            <SurveyGroupCard\r\n              isRegroupement={isRegroupement}\r\n              group={group}\r\n              index={index}\r\n              key={index}\r\n            >\r\n              {group.value.map((survey: Survey, i: number) => {\r\n                return (\r\n                  <SurveyContainerInput\r\n                    isRegroupement={isRegroupement}\r\n                    survey={survey}\r\n                    key={`categoryChild_${survey.id * i}`}\r\n                  >\r\n                    {children(survey, isRegroupement, i)}\r\n                  </SurveyContainerInput>\r\n                );\r\n              })}\r\n            </SurveyGroupCard>\r\n          );\r\n        })}\r\n      </Scrollbar>\r\n    </CardContainer>\r\n  );\r\n};\r\n\r\ntype SurveyGroupCardProps = {\r\n  // items: Array<Survey>;\r\n  group: any;\r\n  isRegroupement: boolean;\r\n  children: ReactNode;\r\n  index: number;\r\n};\r\n\r\nconst SurveyGroupCard = ({ group, isRegroupement, index, children }: SurveyGroupCardProps) => {\r\n  return isRegroupement ? (\r\n    <Box>\r\n      <SurveyCategoryCardTitle\r\n        title={<div dangerouslySetInnerHTML={{ __html: group.value[0].regroupementTitre }} />}\r\n        isRequired={false}\r\n        index={index}\r\n      />\r\n      <Paper sx={{ width: '100%', overflow: 'hidden' }}>\r\n        <TableContainer>\r\n          <Table size=\"small\">\r\n            <TableHead>\r\n              <TableCell></TableCell>\r\n              {group.value[0].optionList.map((reponse: any) => (\r\n                <TableCell key={reponse.id} align=\"center\">\r\n                  {' '}\r\n                  {reponse.label}\r\n                </TableCell>\r\n              ))}\r\n            </TableHead>\r\n            <TableBody>{children}</TableBody>\r\n          </Table>\r\n        </TableContainer>\r\n      </Paper>\r\n    </Box>\r\n  ) : (\r\n    <>{children}</>\r\n  );\r\n};\r\n\r\ninterface SurveyContainerInputProps extends BoxProps {\r\n  survey: Survey;\r\n  isRegroupement: boolean;\r\n}\r\nconst SurveyContainerInput = ({ survey, isRegroupement, children }: SurveyContainerInputProps) => {\r\n  if (isRegroupement)\r\n    return (\r\n      <TableRow>\r\n        <TableCell sx={{ borderBottom: '1px solid #f1f3f4' }}>\r\n          <Typography variant=\"body2\">\r\n            {survey.question}{' '}\r\n            {survey.isRequired && (\r\n              <Typography variant=\"subtitle1\" component={'span'} color=\"error\">\r\n                *\r\n              </Typography>\r\n            )}\r\n          </Typography>\r\n        </TableCell>\r\n        {children}\r\n      </TableRow>\r\n    );\r\n\r\n  return <>{children}</>;\r\n};\r\n\r\ntype SurveyCategoryCardTitleProps = {\r\n  title: ReactNode;\r\n  isRequired: boolean;\r\n  index: number;\r\n};\r\n\r\nexport const SurveyCategoryCardTitle = ({\r\n  title,\r\n  isRequired,\r\n  index\r\n}: SurveyCategoryCardTitleProps) => {\r\n  return (\r\n    <Stack\r\n      direction={'row'}\r\n      alignContent=\"center\"\r\n      alignItems={'center'}\r\n      gap=\"5px\"\r\n      sx={{ mb: 1, mt: 2 }}\r\n    >\r\n      <Box\r\n        sx={{\r\n          backgroundColor: '#455aa4',\r\n          width: 10,\r\n          height: 10,\r\n          borderRadius: '50%'\r\n        }}\r\n      />\r\n      <Typography variant=\"subtitle2\">\r\n        {title}\r\n        {isRequired && (\r\n          <Typography variant=\"subtitle1\" component={'span'} color=\"error\">\r\n            *\r\n          </Typography>\r\n        )}\r\n      </Typography>\r\n    </Stack>\r\n  );\r\n};\r\n","// material\r\nimport { MenuItem, TextField, BaseTextFieldProps } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface SelectorProps extends BaseTextFieldProps {\r\n  query: any;\r\n  options: { value: any; label: string }[];\r\n  onFilter: (value?: any) => void;\r\n}\r\n\r\nexport default function Selector({ query, options, onFilter, ...other }: SelectorProps) {\r\n  return (\r\n    <TextField select value={query} onChange={(e) => onFilter(e.target.value)} {...other}>\r\n      {options.map((option) => (\r\n        <MenuItem key={option.value} value={option.value}>\r\n          {option.label}\r\n        </MenuItem>\r\n      ))}\r\n    </TextField>\r\n  );\r\n}\r\n","import { useContext } from 'react';\r\nimport { PageSettingsContext } from '../contexts/PageSettingsContext';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst usePageSettings = () => useContext(PageSettingsContext);\r\n\r\nexport default usePageSettings;\r\n","import React, { ReactNode } from 'react';\r\nimport {\r\n  Alert,\r\n  AlertColor,\r\n  Chip,\r\n  ListItem,\r\n  ListItemIcon,\r\n  ListItemText,\r\n  Stack,\r\n  Typography\r\n} from '@mui/material';\r\nimport { styled } from '@mui/styles';\r\n\r\nimport {\r\n  AccessTime,\r\n  Attachment,\r\n  Info,\r\n  InfoRounded,\r\n  LocationOn,\r\n  Notes,\r\n  Payment,\r\n  Person\r\n} from '@mui/icons-material';\r\n\r\nimport { Teacher } from '../@types/pedagogy';\r\nimport { FileBaseInfo } from '../@types/common';\r\n\r\nimport { MAvatar } from './@material-extend';\r\nimport { addTime, fDate, fDateMeeting, fDatePeriode, fTime, isAfterDate } from 'utils/formatTime';\r\n\r\nimport FileDetailsAttachments from './file/FileDetailsAttachments';\r\n\r\nimport { SxProps, Theme } from '@mui/system';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport AlertErrorMessage from './AlertErrorMessage';\r\nimport { MediaFileInfo } from '../@types/media';\r\nimport MediaFileCard from './_dashboard/media/MediaFileCard';\r\nimport StudentHourMessage from './_dashboard/student/StudentHourMessage';\r\nimport useAuth from 'hooks/useAuth';\r\n\r\nconst RootListItem = styled(ListItem)(({ theme }) => ({\r\n  display: 'flex',\r\n  alignItems: 'flex-start',\r\n  marginBottom: 5,\r\n  padding: 5\r\n}));\r\n\r\nexport type RowItemProps = {\r\n  title?: ReactNode;\r\n  subTitle?: ReactNode;\r\n  icon?: ReactNode;\r\n  sx?: SxProps<Theme>;\r\n};\r\n\r\nexport const RowItem = ({ title, subTitle, icon, sx }: RowItemProps) => {\r\n  return (\r\n    <RootListItem sx={{ ...sx }}>\r\n      {icon && <ListItemIcon sx={{ minWidth: 40, marginRight: 2 }}>{icon}</ListItemIcon>}\r\n      <ListItemText\r\n        secondaryTypographyProps={{ component: 'div' }}\r\n        primaryTypographyProps={{ component: 'div' }}\r\n        primary={title}\r\n        secondary={subTitle}\r\n      />\r\n    </RootListItem>\r\n  );\r\n};\r\n\r\nexport type RowItemTeacherProps = {\r\n  teacher?: Teacher;\r\n  children?: ReactNode;\r\n};\r\n\r\nexport const RowItemDisplayTeacher = ({ teacher, children }: RowItemTeacherProps) => {\r\n  return (\r\n    <RowItem\r\n      title={\r\n        <Typography variant=\"subtitle2\">\r\n          {teacher?.coach ? 'Coach' : 'Formateur ou formatrice :'} {teacher?.firstName}{' '}\r\n          {teacher?.lastName}\r\n        </Typography>\r\n      }\r\n      icon={teacher?.coach ? <MAvatar color=\"secondary\" /> : <Person />}\r\n      subTitle={\r\n        <Typography component=\"div\" variant=\"body1\">\r\n          {children}\r\n        </Typography>\r\n      }\r\n    />\r\n  );\r\n};\r\n\r\nexport type RowItemAnimateurProps = {\r\n  teacher?: Teacher;\r\n};\r\n\r\nexport const RowItemDisplayAnimateur = ({ teacher }: RowItemTeacherProps) => {\r\n  return (\r\n    <RowItem\r\n      title={\r\n        <Typography variant=\"subtitle2\">\r\n          {`Animateur ou animatrice : ${teacher?.firstName} ${teacher?.lastName}`}\r\n        </Typography>\r\n      }\r\n      icon={<Person />}\r\n    />\r\n  );\r\n};\r\n\r\nexport type RowItemDisplayProps = {\r\n  title: ReactNode;\r\n  icon?: ReactNode;\r\n  children?: ReactNode;\r\n  sx?: SxProps<Theme>;\r\n};\r\n\r\nexport const RowItemDisplay = ({ title, icon, children, sx }: RowItemDisplayProps) => {\r\n  return (\r\n    <RowItem\r\n      title={<Typography variant=\"subtitle2\">{title}</Typography>}\r\n      icon={icon}\r\n      subTitle={\r\n        <Typography component=\"div\" variant=\"body2\">\r\n          {children}\r\n        </Typography>\r\n      }\r\n      sx={{ ...sx }}\r\n    />\r\n  );\r\n};\r\n\r\nexport type RowItemDisplayDateTimeProps = {\r\n  children?: ReactNode;\r\n  start: string;\r\n  end: string;\r\n  isLimit: boolean;\r\n  hideHourMessage?: boolean;\r\n};\r\n\r\nexport const RowItemDisplayDateTime = ({\r\n  children,\r\n  start,\r\n  end,\r\n  isLimit,\r\n  hideHourMessage\r\n}: RowItemDisplayDateTimeProps) => {\r\n  const { student } = useAuth();\r\n  const isFinished = isAfterDate(new Date(), end);\r\n  return (\r\n    <>\r\n      {!hideHourMessage && <StudentHourMessage />}\r\n      <RowItem\r\n        title={\r\n          <Typography variant=\"subtitle2\">\r\n            {fDatePeriode(start, end, \"eeee dd MMMM yyyy 'de' HH:mm\")}\r\n          </Typography>\r\n        }\r\n        icon={<AccessTime />}\r\n        subTitle={\r\n          <>\r\n            {!isFinished && (\r\n              <>\r\n                <Typography variant=\"caption\">\r\n                  {' '}\r\n                  {isLimit && (\r\n                    <span>\r\n                      Limite d'accès : {fDate(addTime(start, -10))} - {fTime(addTime(start, 10))}{' '}\r\n                    </span>\r\n                  )}{' '}\r\n                </Typography>\r\n                {children}\r\n              </>\r\n            )}\r\n          </>\r\n        }\r\n      />\r\n    </>\r\n  );\r\n};\r\n\r\nexport const RowItemDisplayComment = ({ ...props }) => {\r\n  return (\r\n    <RowItem\r\n      title={<Typography variant=\"subtitle2\">Commentaire</Typography>}\r\n      icon={<Notes />}\r\n      subTitle={<Typography variant=\"body2\">{props.children}</Typography>}\r\n    />\r\n  );\r\n};\r\n\r\nexport const RowItemDisplayLocation = ({ ...props }) => {\r\n  const { children, title } = props;\r\n  return (\r\n    <RowItem\r\n      title={<Typography variant=\"subtitle2\">{title}</Typography>}\r\n      icon={<LocationOn />}\r\n      subTitle={<Typography variant=\"caption\">{children}</Typography>}\r\n    />\r\n  );\r\n};\r\n\r\nexport const RowItemDisplayPayment = ({ ...props }) => {\r\n  const { children, title } = props;\r\n  return (\r\n    <RowItem\r\n      title={<Typography variant=\"subtitle2\">{title}</Typography>}\r\n      icon={<Payment />}\r\n      subTitle={<Typography variant=\"caption\">{children}</Typography>}\r\n    />\r\n  );\r\n};\r\n\r\nexport const RowItemDisplayInfo = ({ ...props }) => {\r\n  const { text } = props;\r\n  const theme = useTheme();\r\n  return (\r\n    <RowItem\r\n      sx={{ borderRadius: 1, backgroundColor: theme.palette.info.lighter }}\r\n      title={<Typography variant=\"caption\">{text}</Typography>}\r\n      icon={<Info />}\r\n      subTitle={<Typography variant=\"caption\">{props.children}</Typography>}\r\n    />\r\n  );\r\n};\r\n\r\nexport const VisoRequiredDisplay = () => {\r\n  return (\r\n    <Typography variant=\"caption\">\r\n      <strong>Pré-requis : </strong> casque, micro, webcam\r\n      <br />\r\n      Vous recevrez un SMS de rappel de rendez-vous 24h avant celui-ci.\r\n    </Typography>\r\n  );\r\n};\r\n\r\nexport const RowItemDisplayTitle = ({ ...props }) => {\r\n  const { title, icon, children } = props;\r\n  return (\r\n    <RowItem\r\n      title={title}\r\n      icon={null}\r\n      subTitle={<Typography variant=\"subtitle1\">{children}</Typography>}\r\n    />\r\n  );\r\n};\r\n\r\nexport const RowItemDisplayError = ({ ...props }) => {\r\n  const { title, icon, children } = props;\r\n  return (\r\n    <RowItem\r\n      title={<Chip label={title} variant=\"outlined\" />}\r\n      icon={<InfoRounded />}\r\n      subTitle={\r\n        <Typography component=\"div\" variant=\"body2\">\r\n          {children}\r\n        </Typography>\r\n      }\r\n    />\r\n  );\r\n};\r\n\r\nexport type RowItemDisplayAlert = {\r\n  alertColor: AlertColor;\r\n  children: ReactNode;\r\n};\r\n\r\nexport function RowItemDisplayAlert({ alertColor, children }: RowItemDisplayAlert) {\r\n  return (\r\n    <RowItem\r\n      title={\r\n        <>\r\n          {alertColor === 'error' ? (\r\n            <AlertErrorMessage sx={{ p: 1, '& .MuiAlert-icon': { marginRight: 4 } }}>\r\n              {children}\r\n            </AlertErrorMessage>\r\n          ) : (\r\n            <Alert severity={alertColor} sx={{ p: 1, '& .MuiAlert-icon': { marginRight: 4 } }}>\r\n              {children}\r\n            </Alert>\r\n          )}\r\n        </>\r\n      }\r\n      icon={null}\r\n    />\r\n  );\r\n}\r\n\r\nexport type RowItemDisplayFilesProps = {\r\n  files: Array<FileBaseInfo>;\r\n};\r\n\r\nexport const RowItemDisplayFiles = ({ files }: RowItemDisplayFilesProps) => {\r\n  if (files == null || files.length == 0) return <></>;\r\n\r\n  return (\r\n    <RowItem\r\n      title={<Typography variant=\"subtitle2\">Pièces jointes</Typography>}\r\n      icon={<Attachment />}\r\n      subTitle={<FileDetailsAttachments files={files} />}\r\n    />\r\n  );\r\n};\r\n\r\nexport type RowItemDisplayMediasProps = {\r\n  medias: Array<MediaFileInfo>;\r\n};\r\n\r\nexport const RowItemDisplayMedias = ({ medias }: RowItemDisplayMediasProps) => {\r\n  if (medias == null || medias.length == 0) return <></>;\r\n\r\n  return (\r\n    <RowItem\r\n      title={<Typography variant=\"subtitle2\">Pièces jointes</Typography>}\r\n      icon={<Attachment />}\r\n      subTitle={\r\n        <Stack gap={1}>\r\n          {medias?.map((m) => (\r\n            <MediaFileCard mediaFile={m} key={m.id} />\r\n          ))}\r\n        </Stack>\r\n      }\r\n    />\r\n  );\r\n};\r\n\r\n/*\r\nexport const RowItemDisplaySuccess = ({ ...props }) => {\r\n  const classes = useStyles();\r\n  const { title, icon, children } = props;\r\n  return (\r\n    <RowItem\r\n      title={null}\r\n      icon={<AllIcons.Check className={classes.colorSuccess} />}\r\n      subTitle={\r\n        <Paper className={classes.cardSuccess}>\r\n          <Typography variant=\"subtitle2\">{title}</SubTitleDisplay>\r\n          <BodyDisplay>{children}</BodyDisplay>\r\n        </Paper>\r\n      }\r\n    />\r\n  );\r\n};*/\r\n/*\r\nexport const RowItemDisplayMedias = ({ ...props }) => {\r\n  const { files } = props;\r\n\r\n  if (files == null || files.length == 0) return <></>;\r\n\r\n  return (\r\n    <RowItem\r\n      title={'Pièces jointes'}\r\n      icon={<AllIcons.Attachment />}\r\n      subTitle={<MediaAttachmentsView list={files} />}\r\n    />\r\n  );\r\n};\r\n\r\nexport const RowItemDisplayFiles = ({ ...props }) => {\r\n  const { files } = props;\r\n\r\n  if (files == null || files.length == 0) return <></>;\r\n\r\n  return (\r\n    <RowItem\r\n      title={'Pièces jointes'}\r\n      icon={<AllIcons.Attachment />}\r\n      subTitle={<AttachmentsView list={files} />}\r\n    />\r\n  );\r\n};\r\n*/\r\n","export function phoneFormat(phone: string, brand: string = 'IF') {\r\n  if (phone && phone.trim() !== '') {\r\n    //Cas particulier de la Suisse\r\n    const phoneNumber = phone?.trim().replace(/[.]/g, '');\r\n    if (brand === 'CH') {\r\n      if (phoneNumber?.startsWith('0041')) {\r\n        return phoneNumber.replace(/(\\d{4})(\\d{2})(\\d{3})(\\d{2})(\\d{2})/, '$1.$2.$3.$4.$5');\r\n      } else {\r\n        return phoneNumber.replace(/(\\d{3})(\\d{3})(\\d{2})(\\d{2})/, '$1.$2.$3.$4');\r\n      }\r\n    }\r\n    //Remplace les points par des espaces par défaut\r\n    return phone?.trim().replace(/[.]/g, ' ');\r\n  }\r\n  return '';\r\n}\r\n","import {\r\n  Homework,\r\n  HomeworkBase,\r\n  StudyPlanChapter,\r\n  StudyPlanItem,\r\n  StudyPlanItemHomework,\r\n  StudyPlanItemStatus,\r\n  StudyPlanItemType,\r\n  StudyPlanPhase\r\n} from '../@types/pedagogy';\r\nimport { StudyPlanContext } from 'contexts/StudyPlanContext';\r\nimport { useContext } from 'react';\r\nimport * as helperStudyPlan from 'utils/helperStudyPlan';\r\n\r\nconst useStudyPlanHomework = () => {\r\n  const studyPlanManager = useContext(StudyPlanContext);\r\n  /**\r\n   * Extraction des devoirs\r\n   * @returns Liste des devoirs\r\n   */\r\n  function getHomeworks() {\r\n    if (studyPlanManager?.phases == null) return;\r\n    let list: Array<HomeworkBase> = [];\r\n\r\n    studyPlanManager?.phases.map((phase: StudyPlanPhase) =>\r\n      phase.chapters.map((chapter: StudyPlanChapter) => {\r\n        helperStudyPlan.extractHomework(chapter, list);\r\n      })\r\n    );\r\n    return list;\r\n  }\r\n\r\n  /**\r\n   * Retourne les items de type devoir\r\n   */\r\n  function getStudyPlanItemHomeworks(): Array<StudyPlanItemHomework> {\r\n    let list: Array<StudyPlanItemHomework> = [];\r\n\r\n    studyPlanManager?.phases?.map((phase: StudyPlanPhase) => {\r\n      phase.chapters.map((unityChapter: StudyPlanChapter) => {\r\n        unityChapter.chapters.map((chapter: StudyPlanChapter) => {\r\n          if (chapter.chapters !== null) {\r\n            chapter.chapters.map((subChapter: StudyPlanChapter) =>\r\n              subChapter.items\r\n                .filter((_item: StudyPlanItem) => _item.type === StudyPlanItemType.Homework)\r\n                .map((_item) => list.push(_item as StudyPlanItemHomework))\r\n            );\r\n          } else\r\n            return chapter.items\r\n              .filter((_item: StudyPlanItem) => _item.type === StudyPlanItemType.Homework)\r\n              .map((_item) => list.push(_item as StudyPlanItemHomework));\r\n        });\r\n      });\r\n    });\r\n\r\n    return list;\r\n  }\r\n\r\n  /**\r\n   * Rechercher un devoir par reférence\r\n   */\r\n  function getHomework(courseId: string, id: number, barCode?: string) {\r\n    const homeworks = getHomeworks();\r\n    return homeworks?.filter(\r\n      (w) => w.courseId === courseId && (w.id === id || w.barCode === barCode)\r\n    )[0]!;\r\n  }\r\n\r\n  /**\r\n   * Mise à jour du pe suite à l'envoi d'un devoir\r\n   */\r\n  function updatedSended(homework: Homework) {\r\n    //On mets à jour l'item en cours du context qui est de type homeworkBase et ensuite l'ensemble du PE (se fera dans le context)\r\n    let studyPlanItemHomeworkBase = studyPlanManager?.item as StudyPlanItemHomework;\r\n    //on ajoute le devoir\r\n    studyPlanItemHomeworkBase.homeworkBase.homeworks.push(homework);\r\n    //on modife le status de l'item\r\n    studyPlanItemHomeworkBase.status = StudyPlanItemStatus.Assimilate;\r\n    // demande maj pe\r\n    studyPlanManager?.selectItem(\r\n      studyPlanManager.chapter!,\r\n      studyPlanItemHomeworkBase,\r\n      false,\r\n      studyPlanManager?.subChapter\r\n    );\r\n  }\r\n\r\n  return {\r\n    getHomework,\r\n    getHomeworks,\r\n    getStudyPlanItemHomeworks,\r\n    updatedSended\r\n  };\r\n};\r\n\r\nexport default useStudyPlanHomework;\r\n","import { Typography, CardHeader, CardHeaderProps, Tooltip } from '@mui/material';\r\n\r\n//type\r\nimport { MediaFileType } from '../../../@types/media';\r\nimport { ModeAccess } from '../../../@types/account';\r\nimport useAuth from 'hooks/useAuth';\r\nimport { styled } from '@mui/system';\r\nimport FileThumb from 'components/file/FileThumb';\r\nimport { MediaFileAvatar } from './MediaFileAvatar';\r\n\r\nconst FileNameStyle = styled(Typography)(({ theme }) => ({\r\n  whiteSpace: 'nowrap',\r\n  overflow: 'hidden',\r\n  textOverflow: 'ellipsis',\r\n  maxWidth: '190px',\r\n  display: 'block'\r\n}));\r\n\r\nexport interface MediaFileHeaderProps extends CardHeaderProps {\r\n  title: string;\r\n  format?: string;\r\n  isRead: boolean;\r\n  type: MediaFileType;\r\n  isLoading: boolean;\r\n  onClick?: () => void;\r\n}\r\n\r\n/**\r\n * Header du média\r\n * @param param0\r\n * @returns\r\n */\r\nexport default function MediaFileHeader({\r\n  onClick,\r\n  title,\r\n  id,\r\n  isRead,\r\n  format,\r\n  isLoading,\r\n  type,\r\n  sx,\r\n  ...other\r\n}: MediaFileHeaderProps) {\r\n  const { student } = useAuth();\r\n\r\n  return (\r\n    <CardHeader\r\n      avatar={\r\n        <FileThumb\r\n          isLoading={isLoading}\r\n          isRead={isRead}\r\n          onClick={onClick}\r\n          iconFile={<MediaFileAvatar type={type} isRead={false} />}\r\n        />\r\n      }\r\n      title={\r\n        <Tooltip title={title}>\r\n          <FileNameStyle variant=\"body2\" noWrap>\r\n            {title}\r\n          </FileNameStyle>\r\n        </Tooltip>\r\n      }\r\n      subheader={\r\n        <>\r\n          {format && <Typography variant=\"caption\">{format}</Typography>}\r\n          {student?.modeAccess !== ModeAccess.Write && (\r\n            <Typography variant=\"caption\">- media {id}</Typography>\r\n          )}\r\n        </>\r\n      }\r\n      sx={{ padding: '5px', ...sx }}\r\n      {...other}\r\n    />\r\n  );\r\n}\r\n","import { DialogTitle, DialogContent, Box, BoxProps, Typography } from '@mui/material';\r\nimport { useFile } from 'hooks/useFile';\r\nimport { useSnackbar } from 'notistack';\r\nimport { useEffect, useState } from 'react';\r\nimport { MediaFileInfo, MediaFileType } from '../../../@types/media';\r\nimport { dispatch } from 'redux/store';\r\nimport { logMediaFile, updateMediaFiles } from 'redux/slices/mediaFile';\r\nimport useAuth from 'hooks/useAuth';\r\nimport { DialogAnimate } from 'components/animate';\r\nimport { FileType } from '../../../@types/common';\r\nimport CardMediaCustom from 'components/CardMediaCustom';\r\nimport { median } from 'd3-array';\r\nimport { messageFunctionLimitee } from 'config';\r\n// ----------------------------------------------------------------------\r\n\r\ninterface MediaFileActionProps extends BoxProps {\r\n  children(\r\n    downloadMedia: (media: MediaFileInfo) => Promise<void>,\r\n    isLoading: boolean,\r\n    errorDownload: boolean\r\n  ): any;\r\n}\r\n\r\n/**\r\n * Gestion de l'appel au serveur pour télécharger un fichier.\r\n * Gestion de l'erreur avec message\r\n */\r\nexport default function MediaFileAction({ children, sx }: MediaFileActionProps) {\r\n  const { getFile, download, isLoading, errorDownload, downloadImage, downloadS3 } = useFile();\r\n  const [video, setVideo] = useState<MediaFileInfo | null>(null);\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const { isReadOnly, authorizeDownload } = useAuth();\r\n\r\n  const downloadMedia = async (media: MediaFileInfo) => {\r\n    if (!authorizeDownload()) {\r\n      enqueueSnackbar(messageFunctionLimitee, {\r\n        variant: 'warning'\r\n      });\r\n      return;\r\n    }\r\n\r\n    switch (media.typFicMed) {\r\n      case MediaFileType.Audio:\r\n      case MediaFileType.Videos:\r\n        setVideo(media);\r\n        break;\r\n      case MediaFileType.UrlText:\r\n        window.open(media.url);\r\n        break;\r\n      default:\r\n        if (media.isS3) {\r\n          downloadS3(\r\n            media.token.fileNameS3,\r\n            media.fileName,\r\n            media.referentiel ? FileType.MediaReferentiel : media.fileType,\r\n            media.id\r\n          ).then(() => {\r\n            if (isReadOnly) return;\r\n            dispatch(updateMediaFiles(+media.id));\r\n          });\r\n          return;\r\n        }\r\n\r\n        download(media.id, FileType.Media).then(() => {\r\n          if (isReadOnly) return;\r\n          dispatch(updateMediaFiles(+media.id));\r\n        });\r\n        return;\r\n    }\r\n    if (isReadOnly) return;\r\n\r\n    dispatch(\r\n      logMediaFile(+media.id)((id: number) => {\r\n        dispatch(updateMediaFiles(id));\r\n      })\r\n    );\r\n  };\r\n\r\n  const handleClose = () => {\r\n    setVideo(null);\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (errorDownload) {\r\n      enqueueSnackbar('Impossible de télécharger le fichier', { variant: 'error' });\r\n    }\r\n  }, [errorDownload]);\r\n\r\n  return (\r\n    <Box sx={{ ...sx }}>\r\n      {children(downloadMedia, isLoading, errorDownload)}\r\n      <DialogAnimate maxWidth=\"sm\" scroll=\"paper\" onClose={handleClose} open={video !== null}>\r\n        <DialogTitle>{video?.title}</DialogTitle>\r\n        <DialogContent>\r\n          <CardMediaCustom\r\n            url={video ? video?.url : ''}\r\n            isVideo={video?.typFicMed === MediaFileType.Videos}\r\n          />\r\n          {/*video?.observation && (\r\n            <Typography variant=\"caption\" paragraph>\r\n              {video.observation}\r\n            </Typography>\r\n          )*/}\r\n        </DialogContent>\r\n      </DialogAnimate>\r\n    </Box>\r\n  );\r\n}\r\n","//type\r\nimport { MediaFileInfo } from '../../../@types/media';\r\nimport MediaFileHeader from './MediaFileHeader';\r\nimport MediaFileAction from './MediaFileAction';\r\n\r\nexport type MediaFileCardProps = {\r\n  mediaFile: MediaFileInfo;\r\n};\r\n\r\n/**\r\n * Détail du média\r\n * @param param0\r\n * @returns\r\n */\r\nexport default function MediaFileCard({ mediaFile }: MediaFileCardProps) {\r\n  return (\r\n    <MediaFileAction>\r\n      {(downloadMedia, isLoading, errorDownload) => (\r\n        <MediaFileHeader\r\n          onClick={() => downloadMedia(mediaFile)}\r\n          title={mediaFile.title}\r\n          isRead={mediaFile.read}\r\n          isLoading={isLoading}\r\n          type={mediaFile.typFicMed}\r\n          format={mediaFile.size}\r\n          id={mediaFile.id.toString()}\r\n        />\r\n      )}\r\n    </MediaFileAction>\r\n  );\r\n}\r\n","import { isString } from 'lodash';\r\nimport { Icon } from '@iconify/react';\r\nimport { useDropzone, DropzoneOptions, FileError } from 'react-dropzone';\r\nimport fileFill from '@iconify/icons-eva/file-fill';\r\nimport closeFill from '@iconify/icons-eva/close-fill';\r\nimport { motion, AnimatePresence } from 'framer-motion';\r\n// material\r\nimport { alpha, Theme, styled } from '@mui/material/styles';\r\nimport {\r\n  Box,\r\n  List,\r\n  Paper,\r\n  ListItem,\r\n  Typography,\r\n  ListItemIcon,\r\n  ListItemText,\r\n  ListItemSecondaryAction\r\n} from '@mui/material';\r\nimport { SxProps } from '@mui/system';\r\n// utils\r\nimport { fData } from '../../utils/formatNumber';\r\n//\r\nimport { MIconButton } from '../@material-extend';\r\nimport { varFadeInRight } from '../animate';\r\nimport { formatFileSize } from 'utils/getFileFormat';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst DropZoneStyle = styled('div')(({ theme }) => ({\r\n  outline: 'none',\r\n  display: 'flex',\r\n  textAlign: 'center',\r\n  alignItems: 'center',\r\n  flexDirection: 'column',\r\n  justifyContent: 'center',\r\n  padding: theme.spacing(2, 1),\r\n  borderRadius: theme.shape.borderRadius,\r\n  backgroundColor: theme.palette.background.neutral,\r\n  border: `1px dashed ${theme.palette.grey[500_32]}`,\r\n  '&:hover': { opacity: 0.72, cursor: 'pointer' },\r\n  [theme.breakpoints.up('md')]: { textAlign: 'left', flexDirection: 'row' }\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface CustomFile extends File {\r\n  path?: string;\r\n  preview?: string;\r\n}\r\n\r\ninterface UploadMultiFileProps extends DropzoneOptions {\r\n  error?: boolean;\r\n  files: (File | string)[];\r\n  showPreview: boolean;\r\n  onRemove: (file: File | string) => void;\r\n  onRemoveAll?: VoidFunction;\r\n  sx?: SxProps<Theme>;\r\n  showFilesSelected?: boolean;\r\n  labelFormat?: string;\r\n  maxFileNameLength?: number;\r\n  maxFiles?: number;\r\n  isDragActive?: boolean;\r\n}\r\n\r\nconst getFileData = (file: CustomFile | string) => {\r\n  if (typeof file === 'string') {\r\n    return {\r\n      key: file\r\n    };\r\n  }\r\n  return {\r\n    key: file.name,\r\n    name: file.name,\r\n    size: file.size,\r\n    preview: file.preview\r\n  };\r\n};\r\n\r\nexport default function UploadMultiFile({\r\n  error,\r\n  showPreview = false,\r\n  showFilesSelected = true,\r\n  files,\r\n  onRemove,\r\n  onRemoveAll,\r\n  sx,\r\n  labelFormat,\r\n  ...other\r\n}: UploadMultiFileProps) {\r\n  const hasFile = files.length > 0;\r\n\r\n  const DEFAULT_MAX_FILE_NAME_LENGTH = 70;\r\n\r\n  const fileValidator = (file: File) => {\r\n    var errors: FileError[] = [];\r\n\r\n    //Caractères spéciaux non acceptés\r\n    if (/[@#$%^&*+=:<>|]/g.test(file?.name)) {\r\n      errors.push({\r\n        message: 'Le nom du fichier ne peut pas contenir de caractères spéciaux',\r\n        code: 'file-name-special-characters'\r\n      });\r\n    }\r\n\r\n    //Taille max du nom de fichiers\r\n    const maxFileNameLg = other.maxFileNameLength ?? DEFAULT_MAX_FILE_NAME_LENGTH;\r\n\r\n    if (file?.name?.length > maxFileNameLg) {\r\n      errors.push({\r\n        message: `La taille max des noms de fichiers est de ${maxFileNameLg} caractères`,\r\n        code: 'file-name-too-large'\r\n      });\r\n    }\r\n    return errors?.length > 0 ? errors : null;\r\n  };\r\n\r\n  const { getRootProps, getInputProps, isDragActive, isDragReject, fileRejections } = useDropzone({\r\n    ...other,\r\n    validator: fileValidator\r\n  });\r\n\r\n  const ShowRejectionItems = () => (\r\n    <Paper\r\n      variant=\"outlined\"\r\n      sx={{\r\n        py: 1,\r\n        px: 2,\r\n        mt: 3,\r\n        borderColor: 'error.light',\r\n        bgcolor: (theme) => alpha(theme.palette.error.main, 0.08)\r\n      }}\r\n    >\r\n      {fileRejections.map(({ file, errors }) => {\r\n        const { path, size }: CustomFile = file;\r\n\r\n        return (\r\n          <Box key={path} sx={{ my: 1 }}>\r\n            <Typography variant=\"subtitle2\" noWrap>\r\n              {path} - {fData(size)}\r\n            </Typography>\r\n            {errors.map((e) => {\r\n              switch (e.code) {\r\n                case 'file-invalid-type':\r\n                  return (\r\n                    <Typography key={e.code} variant=\"caption\" component=\"p\">\r\n                      - Le type de fichier doit être :{' '}\r\n                      {other && other.accept ? other.accept.toString() : ''}\r\n                    </Typography>\r\n                  );\r\n                case 'file-too-large':\r\n                  return (\r\n                    <Typography key={e.code} variant=\"caption\" component=\"p\">\r\n                      - La taille max du fichier doit être{' '}\r\n                      {other && other.maxSize ? formatFileSize(other.maxSize, 1) : ''}\r\n                    </Typography>\r\n                  );\r\n                case 'too-many-files':\r\n                  return (\r\n                    <Typography key={e.code} variant=\"caption\" component=\"p\">\r\n                      - Vous ne pouvez joindre que {other.maxFiles} fichiers maximun\r\n                    </Typography>\r\n                  );\r\n                default:\r\n                  return (\r\n                    <Typography key={e.code} variant=\"caption\" component=\"p\">\r\n                      - {e.message}\r\n                    </Typography>\r\n                  );\r\n              }\r\n            })}\r\n          </Box>\r\n        );\r\n      })}\r\n    </Paper>\r\n  );\r\n\r\n  return (\r\n    <Box sx={{ width: '100%', ...sx }}>\r\n      <DropZoneStyle\r\n        {...getRootProps()}\r\n        sx={{\r\n          ...(isDragActive && { opacity: 0.72 }),\r\n          ...((isDragReject || error) && {\r\n            color: 'error.main',\r\n            borderColor: 'error.light',\r\n            bgcolor: 'error.lighter'\r\n          })\r\n        }}\r\n      >\r\n        <input {...getInputProps()} />\r\n\r\n        <Box\r\n          component=\"img\"\r\n          src=\"/static/illustrations/evaluations/piecesjointes.svg\"\r\n          sx={{ width: 220 }}\r\n        />\r\n        <Box sx={{ p: 3, ml: { md: 2 } }}>\r\n          <Typography gutterBottom variant=\"h5\">\r\n            Glisser-déposer vos fichiers ici\r\n          </Typography>\r\n\r\n          <Typography gutterBottom variant=\"body2\" sx={{ color: 'text.secondary' }}>\r\n            ou\r\n            <Typography\r\n              variant=\"body2\"\r\n              component=\"span\"\r\n              sx={{ color: 'primary.main', textDecoration: 'underline', ml: 2 }}\r\n            >\r\n              Parcourir\r\n            </Typography>\r\n          </Typography>\r\n          {!labelFormat ? (\r\n            <Typography gutterBottom variant=\"body2\">\r\n              Fichiers de type : {other && other.accept ? other.accept.toString() : ''}\r\n            </Typography>\r\n          ) : (\r\n            <Typography gutterBottom variant=\"body2\">\r\n              Fichiers de type : {labelFormat}\r\n            </Typography>\r\n          )}\r\n        </Box>\r\n      </DropZoneStyle>\r\n\r\n      {fileRejections.length > 0 && <ShowRejectionItems />}\r\n\r\n      {showFilesSelected && (\r\n        <List disablePadding sx={{ ...(hasFile && { my: 3 }) }}>\r\n          <AnimatePresence>\r\n            {files.map((file, index) => {\r\n              const { name, size } = getFileData(file as CustomFile);\r\n\r\n              return (\r\n                <ListItem\r\n                  key={index}\r\n                  component={motion.div}\r\n                  {...varFadeInRight}\r\n                  sx={{\r\n                    my: 1,\r\n                    py: 0.75,\r\n                    px: 2,\r\n                    borderRadius: 1,\r\n                    border: (theme) => `solid 1px ${theme.palette.divider}`,\r\n                    bgcolor: 'background.paper'\r\n                  }}\r\n                >\r\n                  <ListItemIcon>\r\n                    <Icon icon={fileFill} width={28} height={28} />\r\n                  </ListItemIcon>\r\n                  <ListItemText\r\n                    primary={isString(file) ? file : name}\r\n                    secondary={isString(file) ? '' : fData(size || 0)}\r\n                    primaryTypographyProps={{\r\n                      variant: 'subtitle2',\r\n                      overflow: 'hidden',\r\n                      marginRight: '30px'\r\n                    }}\r\n                    secondaryTypographyProps={{ variant: 'caption' }}\r\n                  />\r\n                  <ListItemSecondaryAction>\r\n                    <MIconButton edge=\"end\" size=\"small\" onClick={() => onRemove(file)}>\r\n                      <Icon icon={closeFill} />\r\n                    </MIconButton>\r\n                  </ListItemSecondaryAction>\r\n                </ListItem>\r\n              );\r\n            })}\r\n          </AnimatePresence>\r\n        </List>\r\n      )}\r\n    </Box>\r\n  );\r\n}\r\n","import { isString } from 'lodash';\r\nimport { useDropzone, DropzoneOptions } from 'react-dropzone';\r\n// material\r\nimport { alpha, styled } from '@mui/material/styles';\r\nimport { Box, Theme, Typography, Paper } from '@mui/material';\r\nimport { SxProps } from '@mui/system';\r\n// utils\r\nimport { fData } from '../../utils/formatNumber';\r\n//\r\nimport { UploadIllustration } from '../../assets';\r\nimport { formatFileSize } from 'utils/getFileFormat';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst DropZoneStyle = styled('div')(({ theme }) => ({\r\n  outline: 'none',\r\n  display: 'flex',\r\n  overflow: 'hidden',\r\n  textAlign: 'center',\r\n  position: 'relative',\r\n  alignItems: 'center',\r\n  flexDirection: 'column',\r\n  justifyContent: 'center',\r\n  padding: theme.spacing(5, 0),\r\n  borderRadius: theme.shape.borderRadius,\r\n  transition: theme.transitions.create('padding'),\r\n  backgroundColor: theme.palette.background.neutral,\r\n  border: `1px dashed ${theme.palette.grey[500_32]}`,\r\n  '&:hover': {\r\n    opacity: 0.72,\r\n    cursor: 'pointer'\r\n  },\r\n  [theme.breakpoints.up('md')]: { textAlign: 'left', flexDirection: 'row' }\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface CustomFile extends File {\r\n  path?: string;\r\n  preview?: string;\r\n}\r\n\r\ninterface UploadSingleFileProps extends DropzoneOptions {\r\n  error?: boolean;\r\n  file: CustomFile | string | null;\r\n  sx?: SxProps<Theme>;\r\n}\r\n\r\nexport default function UploadSingleFile({\r\n  error = false,\r\n  file,\r\n  sx,\r\n  ...other\r\n}: UploadSingleFileProps) {\r\n  const { getRootProps, getInputProps, isDragActive, isDragReject, fileRejections } = useDropzone({\r\n    multiple: false,\r\n    ...other\r\n  });\r\n\r\n  const ShowRejectionItems = () => (\r\n    <Paper\r\n      variant=\"outlined\"\r\n      sx={{\r\n        py: 1,\r\n        px: 2,\r\n        mt: 3,\r\n        borderColor: 'error.light',\r\n        bgcolor: (theme) => alpha(theme.palette.error.main, 0.08)\r\n      }}\r\n    >\r\n      {fileRejections.map(({ file, errors }) => {\r\n        const { path, size }: CustomFile = file;\r\n        return (\r\n          <Box key={path} sx={{ my: 1 }}>\r\n            <Typography variant=\"subtitle2\" noWrap>\r\n              {path} - {fData(size)}\r\n            </Typography>\r\n            {errors.map((e) => {\r\n              switch (e.code) {\r\n                case 'file-invalid-type':\r\n                  return (\r\n                    <Typography key={e.code} variant=\"caption\" component=\"p\">\r\n                      - Le type de fichier doit être :{' '}\r\n                      {other && other.accept ? other.accept.toString() : ''}\r\n                    </Typography>\r\n                  );\r\n                case 'file-too-large':\r\n                  return (\r\n                    <Typography key={e.code} variant=\"caption\" component=\"p\">\r\n                      - La taille max du fichier doit être{' '}\r\n                      {other && other.maxSize ? formatFileSize(other.maxSize, 1) : ''}\r\n                    </Typography>\r\n                  );\r\n\r\n                default:\r\n                  return (\r\n                    <Typography key={e.code} variant=\"caption\" component=\"p\">\r\n                      - {e.message}\r\n                    </Typography>\r\n                  );\r\n              }\r\n            })}\r\n          </Box>\r\n        );\r\n      })}\r\n    </Paper>\r\n  );\r\n\r\n  return (\r\n    <Box sx={{ width: '100%', ...sx }}>\r\n      <DropZoneStyle\r\n        {...getRootProps()}\r\n        sx={{\r\n          ...(isDragActive && { opacity: 0.72 }),\r\n          ...((isDragReject || error) && {\r\n            color: 'error.main',\r\n            borderColor: 'error.light',\r\n            bgcolor: 'error.lighter'\r\n          }),\r\n          ...(file && { padding: '12% 0' })\r\n        }}\r\n      >\r\n        <input {...getInputProps()} />\r\n\r\n        <UploadIllustration sx={{ width: 220 }} />\r\n\r\n        <Box sx={{ p: 3, ml: { md: 2 } }}>\r\n          <Typography gutterBottom variant=\"h5\">\r\n            Drop or Select file\r\n          </Typography>\r\n\r\n          <Typography variant=\"body2\" sx={{ color: 'text.secondary' }}>\r\n            Drop files here or click&nbsp;\r\n            <Typography\r\n              variant=\"body2\"\r\n              component=\"span\"\r\n              sx={{ color: 'primary.main', textDecoration: 'underline' }}\r\n            >\r\n              browse\r\n            </Typography>\r\n            &nbsp;thorough your machine\r\n          </Typography>\r\n        </Box>\r\n\r\n        {file && (\r\n          <Box\r\n            component=\"img\"\r\n            alt=\"file preview\"\r\n            src={isString(file) ? file : file.preview}\r\n            sx={{\r\n              top: 8,\r\n              borderRadius: 1,\r\n              objectFit: 'cover',\r\n              position: 'absolute',\r\n              width: 'calc(100% - 16px)',\r\n              height: 'calc(100% - 16px)'\r\n            }}\r\n          />\r\n        )}\r\n      </DropZoneStyle>\r\n\r\n      {fileRejections.length > 0 && <ShowRejectionItems />}\r\n    </Box>\r\n  );\r\n}\r\n","import { isString } from 'lodash';\r\nimport { ReactNode } from 'react';\r\nimport { Icon } from '@iconify/react';\r\nimport { useDropzone, DropzoneOptions } from 'react-dropzone';\r\nimport roundAddAPhoto from '@iconify/icons-ic/round-add-a-photo';\r\n// material\r\nimport { alpha, Theme, styled } from '@mui/material/styles';\r\nimport { Box, Typography, Paper } from '@mui/material';\r\nimport { SxProps } from '@mui/system';\r\n// utils\r\nimport { fData } from '../../utils/formatNumber';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst RootStyle = styled('div')(({ theme }) => ({\r\n  width: 144,\r\n  height: 144,\r\n  margin: 'auto',\r\n  borderRadius: '50%',\r\n  padding: theme.spacing(1),\r\n  border: `1px dashed ${theme.palette.grey[500_32]}`\r\n}));\r\n\r\nconst DropZoneStyle = styled('div')({\r\n  zIndex: 0,\r\n  width: '100%',\r\n  height: '100%',\r\n  outline: 'none',\r\n  display: 'flex',\r\n  overflow: 'hidden',\r\n  borderRadius: '50%',\r\n  position: 'relative',\r\n  alignItems: 'center',\r\n  justifyContent: 'center',\r\n  '& > *': { width: '100%', height: '100%' },\r\n  '&:hover': {\r\n    cursor: 'pointer',\r\n    '& .placeholder': {\r\n      zIndex: 9\r\n    }\r\n  }\r\n});\r\n\r\nconst PlaceholderStyle = styled('div')(({ theme }) => ({\r\n  display: 'flex',\r\n  position: 'absolute',\r\n  alignItems: 'center',\r\n  flexDirection: 'column',\r\n  justifyContent: 'center',\r\n  color: theme.palette.text.secondary,\r\n  backgroundColor: theme.palette.background.neutral,\r\n  transition: theme.transitions.create('opacity', {\r\n    easing: theme.transitions.easing.easeInOut,\r\n    duration: theme.transitions.duration.shorter\r\n  }),\r\n  '&:hover': { opacity: 0.72 }\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface CustomFile extends File {\r\n  path?: string;\r\n  preview?: string;\r\n}\r\n\r\ninterface UploadAvatarProps extends DropzoneOptions {\r\n  error?: boolean;\r\n  file: CustomFile | string | null;\r\n  caption?: ReactNode;\r\n  sx?: SxProps<Theme>;\r\n}\r\n\r\nexport default function UploadAvatar({ error, file, caption, sx, ...other }: UploadAvatarProps) {\r\n  const { getRootProps, getInputProps, isDragActive, isDragReject, fileRejections } = useDropzone({\r\n    multiple: false,\r\n    ...other\r\n  });\r\n\r\n  const ShowRejectionItems = () => (\r\n    <Paper\r\n      variant=\"outlined\"\r\n      sx={{\r\n        py: 1,\r\n        px: 2,\r\n        my: 2,\r\n        borderColor: 'error.light',\r\n        bgcolor: (theme) => alpha(theme.palette.error.main, 0.08)\r\n      }}\r\n    >\r\n      {fileRejections.map(({ file, errors }) => {\r\n        const { path, size }: CustomFile = file;\r\n        return (\r\n          <Box key={path} sx={{ my: 1 }}>\r\n            <Typography variant=\"subtitle2\" noWrap>\r\n              {path} - {fData(size)}\r\n            </Typography>\r\n            {errors.map((e) => (\r\n              <Typography key={e.code} variant=\"caption\" component=\"p\">\r\n                - {e.message}\r\n              </Typography>\r\n            ))}\r\n          </Box>\r\n        );\r\n      })}\r\n    </Paper>\r\n  );\r\n\r\n  return (\r\n    <>\r\n      <RootStyle sx={sx}>\r\n        <DropZoneStyle\r\n          {...getRootProps()}\r\n          sx={{\r\n            ...(isDragActive && { opacity: 0.72 }),\r\n            ...((isDragReject || error) && {\r\n              color: 'error.main',\r\n              borderColor: 'error.light',\r\n              bgcolor: 'error.lighter'\r\n            })\r\n          }}\r\n        >\r\n          <input {...getInputProps()} />\r\n\r\n          {file && (\r\n            <Box\r\n              component=\"img\"\r\n              alt=\"avatar\"\r\n              src={isString(file) ? file : file.preview}\r\n              sx={{ zIndex: 8, objectFit: 'contain' }}\r\n            />\r\n          )}\r\n\r\n          <PlaceholderStyle\r\n            className=\"placeholder\"\r\n            sx={{\r\n              bgcolor: '#212b36',\r\n              ...(file && {\r\n                opacity: 0,\r\n                color: 'common.white',\r\n                bgcolor: 'grey.900',\r\n                '&:hover': { opacity: 0.72 }\r\n              })\r\n            }}\r\n          >\r\n            <Box component={Icon} icon={roundAddAPhoto} sx={{ width: 24, height: 24, mb: 1 }} />\r\n            <Typography variant=\"caption\" sx={{ color: '#fff' }}>\r\n              {file ? 'Mettre à jour la photo' : 'Importer une photo'}\r\n            </Typography>\r\n          </PlaceholderStyle>\r\n        </DropZoneStyle>\r\n      </RootStyle>\r\n\r\n      {caption}\r\n\r\n      {fileRejections.length > 0 && <ShowRejectionItems />}\r\n    </>\r\n  );\r\n}\r\n","import { Alert } from '@mui/material';\r\nimport { Address } from '../../../@types/account';\r\nimport React from 'react';\r\nimport useAuth from 'hooks/useAuth';\r\n\r\ntype StudentHourMessageProps = {};\r\n\r\nexport default function StudentHourMessage({}: StudentHourMessageProps) {\r\n  const { getHourAlertMessage } = useAuth();\r\n  const msg: string = getHourAlertMessage();\r\n\r\n  return <>{msg && msg !== '' && <Alert severity=\"warning\">{msg}</Alert>}</>;\r\n}\r\n","import { RootState, useSelector } from 'redux/store';\r\nimport { differenceBetweenMinute } from 'utils/formatTime';\r\nimport useTrackerActivity from './useTrackerActivity';\r\n\r\nexport const useTrackerActivityEvents = () => {\r\n  const { events } = useSelector((state: RootState) => state.agenda);\r\n  const { eventHandler } = useTrackerActivity({ parent: null });\r\n\r\n  function moveInactityTime(idEvent: string) {\r\n    const evt = events.find((evt) => evt.id === idEvent);\r\n\r\n    if (evt) {\r\n      const value = differenceBetweenMinute(evt.end, evt.start);\r\n\r\n      if (!isNaN(value)) {\r\n        eventHandler(null, value);\r\n      }\r\n    }\r\n  }\r\n\r\n  return {\r\n    moveInactityTime\r\n  };\r\n};\r\n","import { Box, CardMediaProps, Stack, StackProps, styled } from '@mui/material';\r\nimport { borderColor } from '@mui/system';\r\nimport useScreenConfig from 'hooks/useScreenConfig';\r\nimport { useCallback, useEffect, useRef, useState } from 'react';\r\nimport axiosInstance from 'utils/axios';\r\nimport SkeletonLoadSingle from './SkeletonLoadSingle';\r\n\r\n//type\r\ninterface CardMediaVideoAudioProps {\r\n  url: string;\r\n  isVideo: boolean;\r\n  onLoad?: () => void;\r\n}\r\n\r\nexport default function CardMediaVideoAudio({ url, isVideo, onLoad }: CardMediaVideoAudioProps) {\r\n  const [isLoading, setIsloading] = useState(true);\r\n  const { isMediumOrMobile } = useScreenConfig();\r\n  const handleLoad = () => {\r\n    setIsloading(false);\r\n    if (onLoad) onLoad();\r\n  };\r\n\r\n  const handleError = () => {\r\n    console.log('error');\r\n  };\r\n\r\n  const maxWidth = isMediumOrMobile ? 300 : 600;\r\n\r\n  return (\r\n    <>\r\n      {isLoading && (\r\n        <div\r\n          style={{\r\n            height: '100%',\r\n            width: '100%',\r\n            zIndex: 2\r\n          }}\r\n        >\r\n          <SkeletonLoadSingle />\r\n        </div>\r\n      )}\r\n      <Box\r\n        sx={{ display: 'flex', alignItems: 'center', justifyContent: 'center', height: '100%' }}\r\n        id=\"containerIframe\"\r\n      >\r\n        <iframe\r\n          style={{\r\n            flexGrow: 1,\r\n            maxWidth: isVideo ? maxWidth : 500,\r\n            height: isVideo ? maxWidth * 0.5625 : 56,\r\n            overflow: 'auto',\r\n            opacity: isLoading ? 0 : 1\r\n          }}\r\n          scrolling=\"no\"\r\n          frameBorder={0}\r\n          allowFullScreen\r\n          src={url}\r\n          onLoad={handleLoad}\r\n          onError={handleError}\r\n        />\r\n      </Box>\r\n    </>\r\n  );\r\n}\r\n","import { useEffect, useState } from 'react';\r\nimport { dispatch } from 'redux/store';\r\nimport axiosInstance from 'utils/axios';\r\nimport {\r\n  SurveyCategory,\r\n  SurveyResponse,\r\n  Survey,\r\n  QuestionType,\r\n  Reponse,\r\n  SurveySaveRequest,\r\n  SurveySaveResponse,\r\n  SurveySaveResult\r\n} from '../@types/survey';\r\n\r\nimport { removeSurvey } from 'redux/slices/survey';\r\n\r\ntype useSurveyProps = {\r\n  request: SurveyResponse;\r\n  onMove: () => void;\r\n};\r\n\r\n/**\r\n * Gestion du questionnaire\r\n * @returns\r\n */\r\nexport const useSurvey = ({ request, onMove }: useSurveyProps) => {\r\n  const [state, setState] = useState<SurveyResponse>(request);\r\n  /**\r\n   * Changement de value dans un Mémo\r\n   * @param categoryId\r\n   * @param id\r\n   * @param value\r\n   * @returns\r\n   */\r\n  const onChange = (categoryId: number, id: number, value: string) => {\r\n    setState({\r\n      ...state,\r\n      categoryList: state.categoryList.map((category) =>\r\n        category.id === categoryId\r\n          ? {\r\n              ...category,\r\n              surveyList: category.surveyList.map((survey) =>\r\n                survey.id === id ? { ...survey, value: value } : { ...survey }\r\n              )\r\n            }\r\n          : { ...category }\r\n      )\r\n    });\r\n\r\n    return;\r\n  };\r\n\r\n  /**\r\n   * Changement de valeur dans une liste d'option\r\n   * @param categoryId\r\n   * @param id\r\n   * @param value\r\n   * @returns\r\n   */\r\n  const onChangeOption = (categoryId: number, id: number, value: string) => {\r\n    setState({\r\n      ...state,\r\n      categoryList: state.categoryList.map((category) =>\r\n        category.id === categoryId\r\n          ? {\r\n              ...category,\r\n              surveyList: category.surveyList.map((survey: Survey) =>\r\n                survey.id === id\r\n                  ? {\r\n                      ...survey,\r\n                      optionList: survey.optionList.map((question) => {\r\n                        return { ...question, checked: question.id === value };\r\n                      })\r\n                    }\r\n                  : { ...survey }\r\n              )\r\n            }\r\n          : { ...category }\r\n      )\r\n    });\r\n\r\n    return;\r\n  };\r\n\r\n  /**\r\n   * Changement de valeur dans une liste de checkbox\r\n   * @param categoryId\r\n   * @param id\r\n   * @param value\r\n   * @returns\r\n   */\r\n  const onChangeChecked = (categoryId: number, id: number, value: string, checked: boolean) => {\r\n    setState({\r\n      ...state,\r\n      categoryList: state.categoryList.map((category) =>\r\n        category.id === categoryId\r\n          ? {\r\n              ...category,\r\n              surveyList: category.surveyList.map((survey: Survey) =>\r\n                survey.id === id\r\n                  ? {\r\n                      ...survey,\r\n                      optionList: survey.optionList.map((question) => {\r\n                        if (question.id === value) return { ...question, checked: checked };\r\n                        else return question;\r\n                      })\r\n                    }\r\n                  : { ...survey }\r\n              )\r\n            }\r\n          : { ...category }\r\n      )\r\n    });\r\n\r\n    return;\r\n  };\r\n\r\n  const onChangeOptionTextRep = (\r\n    categoryId: number,\r\n    id: number,\r\n    optionId: string,\r\n    text: string\r\n  ) => {\r\n    setState({\r\n      ...state,\r\n      categoryList: state.categoryList.map((category) =>\r\n        category.id === categoryId\r\n          ? {\r\n              ...category,\r\n              surveyList: category.surveyList.map((survey: Survey) =>\r\n                survey.id === id\r\n                  ? {\r\n                      ...survey,\r\n                      optionList: survey.optionList.map((question) => {\r\n                        if (question.id === optionId) {\r\n                          return { ...question, textRep: text };\r\n                        } else return question;\r\n                      })\r\n                    }\r\n                  : { ...survey }\r\n              )\r\n            }\r\n          : { ...category }\r\n      )\r\n    });\r\n  };\r\n\r\n  const isCategoryError = (category: SurveyCategory): boolean => {\r\n    for (let survey of category.surveyList) {\r\n      switch (survey.questionType) {\r\n        case QuestionType.Mem:\r\n        case QuestionType.Txt:\r\n          if (survey.isRequired && survey.value.trim() == '') {\r\n            //props.setErrorSurvey(true);\r\n            return true;\r\n          }\r\n          break;\r\n        case QuestionType.Chk:\r\n        case QuestionType.Rat:\r\n        case QuestionType.Rad:\r\n          if (\r\n            survey.isRequired &&\r\n            survey.optionList &&\r\n            survey.optionList.length > 0 &&\r\n            survey.optionList.every((x) => !x.checked)\r\n          ) {\r\n            //props.setErrorSurvey(true);\r\n            return true;\r\n          }\r\n\r\n          if (\r\n            survey.isRequired &&\r\n            survey.optionList &&\r\n            survey.optionList.length > 0 &&\r\n            survey.optionList.some((c) => c.checked && c.textPre !== '' && c.textRep === '')\r\n          )\r\n            return true;\r\n          break;\r\n      }\r\n    }\r\n    return false;\r\n  };\r\n\r\n  //&&window.getComputedStyle(document.getElementsByClassName(item.css)[0], null).display ==='none'\r\n  const isErrorSurvey = (): boolean => {\r\n    let isControl = true;\r\n    for (let item of state.categoryList) {\r\n      isControl = true;\r\n      if (\r\n        item &&\r\n        item.css !== '' &&\r\n        document.getElementsByClassName(item.css).length > 0 &&\r\n        window.getComputedStyle(document.getElementsByClassName(item.css)[0], null).display ===\r\n          'none'\r\n      ) {\r\n        isControl = false;\r\n      }\r\n\r\n      if (isControl)\r\n        for (let survey of item.surveyList) {\r\n          switch (survey.questionType) {\r\n            case QuestionType.Mem:\r\n              if (survey.isRequired && survey.value.trim() == '') {\r\n                //props.setErrorSurvey(true);\r\n                return true;\r\n              }\r\n              break;\r\n            case QuestionType.Chk:\r\n            case QuestionType.Rat:\r\n            case QuestionType.Rad:\r\n              if (\r\n                survey.isRequired &&\r\n                survey.optionList &&\r\n                survey.optionList.length > 0 &&\r\n                survey.optionList.every((x) => !x.checked)\r\n              ) {\r\n                //props.setErrorSurvey(true);\r\n                return true;\r\n              }\r\n              break;\r\n\r\n            case QuestionType.Txt:\r\n              if (survey.isRequired && survey.value.trim() == '') {\r\n                //props.setErrorSurvey(true);\r\n                return true;\r\n              }\r\n              break;\r\n          }\r\n        }\r\n    }\r\n    //props.setErrorSurvey(false);\r\n    return false;\r\n  };\r\n\r\n  const isErrorSurveyItem = (survey: Survey): boolean => {\r\n    switch (survey.questionType) {\r\n      case QuestionType.Mem:\r\n        return survey.isRequired && survey.value.trim() === '';\r\n      case QuestionType.Rad:\r\n      case QuestionType.Rat:\r\n      case QuestionType.Chk:\r\n        const unChecked =\r\n          survey.isRequired &&\r\n          survey.optionList &&\r\n          survey.optionList.length > 0 &&\r\n          survey.optionList.every((x) => !x.checked);\r\n\r\n        const notValue =\r\n          survey.isRequired &&\r\n          survey.optionList &&\r\n          survey.optionList.length > 0 &&\r\n          survey.optionList.some((c) => c.checked && c.textPre !== '' && c.textRep === '');\r\n\r\n        return unChecked || notValue;\r\n      default:\r\n        return false;\r\n    }\r\n  };\r\n\r\n  /**\r\n   * ENregistrement\r\n   */\r\n  const save = () => (onSuccess: () => void) => (onError: () => void) => {\r\n    return async () => {\r\n      const form = createSaveRequest();\r\n      try {\r\n        const response = await axiosInstance.post<SurveySaveResponse>(`/api/survey/save`, form, {\r\n          headers: { writeOnly: true }\r\n        });\r\n        const { result } = response.data;\r\n\r\n        switch (result) {\r\n          case SurveySaveResult.Success:\r\n            onSuccess();\r\n            dispatch(\r\n              removeSurvey({ id: request.id, keyApp: request.appTyp, keyId: request.appId })\r\n            );\r\n\r\n            break;\r\n          case SurveySaveResult.Error:\r\n            onError();\r\n            break;\r\n        }\r\n      } catch (error) {\r\n        console.log(error);\r\n        onError();\r\n      }\r\n    };\r\n  };\r\n\r\n  const createSaveRequest = () => {\r\n    let requestSave: SurveySaveRequest = {\r\n      appId: request.appId,\r\n      typApp: request.appTyp,\r\n      lisQue: request.id,\r\n      reponses: []\r\n    };\r\n\r\n    state.categoryList\r\n      .map((x) => x.surveyList)\r\n      .reduce((x, y) => x.concat(y))\r\n      .map((x) => {\r\n        let reponse: Reponse = {\r\n          questionId: x.id,\r\n          value: '',\r\n          valueText: x.value\r\n        };\r\n\r\n        if (\r\n          [QuestionType.Rad, QuestionType.Rat, QuestionType.Chk].includes(x.questionType) &&\r\n          x.optionList != null &&\r\n          x.optionList.length > 0\r\n        ) {\r\n          const items = x.optionList.filter((x) => x.checked);\r\n          items?.forEach((item) => {\r\n            reponse.value = item.id;\r\n\r\n            if (item.textRep && item.textRep !== '') reponse.valueText = item.textRep;\r\n            requestSave.reponses.push(reponse);\r\n          });\r\n        } else requestSave.reponses.push(reponse);\r\n      });\r\n    return requestSave;\r\n  };\r\n\r\n  return {\r\n    categoryList: state.categoryList,\r\n    title: state.titre,\r\n    fill: state.fait,\r\n    modeLecture: state.modeLecture,\r\n    observation: state.observation,\r\n    onChange,\r\n    onChangeOption,\r\n    onChangeChecked,\r\n    isErrorSurvey,\r\n    isErrorSurveyItem,\r\n    onChangeOptionTextRep,\r\n    save,\r\n    isCategoryError\r\n  };\r\n};\r\n","import { CheckBox, Star } from '@mui/icons-material';\r\nimport {\r\n  Checkbox,\r\n  FormControl,\r\n  FormControlLabel,\r\n  FormGroup,\r\n  FormHelperText,\r\n  Radio,\r\n  RadioGroup,\r\n  Stack,\r\n  TextField,\r\n  Typography\r\n} from '@mui/material';\r\nimport { Survey, QuestOption } from '../../../@types/survey';\r\n\r\ntype SurveyInputProps = {\r\n  survey: Survey;\r\n  isReadOnly: boolean;\r\n  onChangeOptionText: (optionId: string, value: string) => void;\r\n  onChangeChecked: (value: string, checked: boolean) => void;\r\n  index: number;\r\n};\r\n\r\nexport const SurveyInputCheck = ({\r\n  survey,\r\n  onChangeOptionText,\r\n  onChangeChecked,\r\n  isReadOnly,\r\n  index\r\n}: SurveyInputProps) => {\r\n  return (\r\n    <FormGroup>\r\n      {survey.optionList.map((option: QuestOption, i: number) => {\r\n        // console.log(option);\r\n        return (\r\n          <Stack direction=\"row\" gap=\"10px\" alignItems={'center'} key={i}>\r\n            <FormControlLabel\r\n              disabled={isReadOnly}\r\n              style={{ marginLeft: 8 }}\r\n              value={option.id.toString()}\r\n              control={\r\n                <Checkbox\r\n                  className={`${100 + index}`}\r\n                  id={`${100 + index}${option.id}`}\r\n                  checked={option.checked}\r\n                  onChange={(e: any) => {\r\n                    onChangeChecked(option.id, e.target.checked);\r\n                  }}\r\n                />\r\n              }\r\n              label={option.label}\r\n              key={option.id}\r\n            />\r\n            {option.textPre && option.textPre !== '' && option.checked && (\r\n              <TextField\r\n                id={survey.id.toString() + '_' + option.textPre}\r\n                label={option.textPre}\r\n                placeholder={option.textPre}\r\n                name={'CustomInput_' + survey.id.toString() + +'_' + option.textPre}\r\n                error={option.textRep === ''}\r\n                multiline\r\n                size=\"small\"\r\n                rows={1}\r\n                maxRows={3}\r\n                helperText={''}\r\n                inputProps={{\r\n                  value: option.textRep,\r\n                  onChange: (e: any) => onChangeOptionText(option.id, e.target.value),\r\n                  disabled: isReadOnly\r\n                }}\r\n              />\r\n            )}\r\n          </Stack>\r\n        );\r\n      })}\r\n    </FormGroup>\r\n  );\r\n};\r\n","import { TextField, Typography } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport Markdown from 'components/Markdown';\r\n\r\nimport { Survey } from '../../../@types/survey';\r\n\r\ntype SurveyInputProps = {\r\n  survey: Survey;\r\n  isReadOnly: boolean;\r\n  onChange: (value: string) => void;\r\n  isMemo: boolean;\r\n};\r\n\r\nexport const SurveyInputMemo = ({ survey, onChange, isReadOnly, isMemo }: SurveyInputProps) => {\r\n  return (\r\n    <Box>\r\n      <Markdown children={survey.htmAdd} />\r\n      <TextField\r\n        name={'CustomInput_' + survey.id.toString()}\r\n        id={survey.id.toString()}\r\n        inputProps={{\r\n          value: survey.value,\r\n          onChange: (e: any) => onChange(e.target.value),\r\n          disabled: isReadOnly\r\n        }}\r\n        variant=\"outlined\"\r\n        multiline={isMemo}\r\n        minRows={isMemo ? 3 : 1}\r\n        maxRows={isMemo ? 5 : 1}\r\n        fullWidth\r\n      />\r\n    </Box>\r\n  );\r\n};\r\n","import { Star } from '@mui/icons-material';\r\nimport {\r\n  FormControl,\r\n  FormControlLabel,\r\n  FormHelperText,\r\n  Radio,\r\n  RadioGroup,\r\n  Stack,\r\n  TableCell,\r\n  TextField,\r\n  Typography\r\n} from '@mui/material';\r\nimport { Survey, QuestOption } from '../../../@types/survey';\r\n\r\ntype SurveyInputProps = {\r\n  survey: Survey;\r\n  isReadOnly: boolean;\r\n  onChangeOption: (value: string) => void;\r\n  onChangeOptionText: (optionId: string, value: string) => void;\r\n  index: number;\r\n};\r\n\r\nexport const SurveyInputRadio = ({\r\n  survey,\r\n  onChangeOption,\r\n  onChangeOptionText,\r\n  isReadOnly,\r\n  index\r\n}: SurveyInputProps) => {\r\n  return (\r\n    <FormControl>\r\n      <RadioGroup\r\n        sx={{ flexDirection: survey.optionList.length > 2 ? 'column' : 'row' }}\r\n        aria-label=\"options\"\r\n        name={`${100 + index}`}\r\n        value={survey.value}\r\n        onChange={(e: any) => {\r\n          onChangeOption(e.target.value);\r\n        }}\r\n      >\r\n        {survey.optionList.map((option: QuestOption, i: number) => {\r\n          const idx = i + index;\r\n          return (\r\n            <Stack direction=\"row\" gap=\"10px\" alignItems={'center'} key={idx}>\r\n              <FormControlLabel\r\n                disabled={isReadOnly}\r\n                style={{ marginLeft: 8 }}\r\n                value={option.id.toString()}\r\n                control={\r\n                  <Radio\r\n                    className={`${100 + index}`}\r\n                    name={`${100 + index}`}\r\n                    id={`${100 + index}${option.id}`}\r\n                    checked={option.checked}\r\n                  />\r\n                }\r\n                label={option.label}\r\n              />\r\n              {option.textPre && option.textPre !== '' && option.checked && (\r\n                <TextField\r\n                  id={survey.id.toString() + '_' + option.textPre}\r\n                  label={option.textPre}\r\n                  placeholder={option.textPre}\r\n                  name={'CustomInput_' + survey.id.toString() + +'_' + option.textPre}\r\n                  error={option.textRep === ''}\r\n                  fullWidth\r\n                  multiline\r\n                  size=\"small\"\r\n                  rows={1}\r\n                  maxRows={3}\r\n                  helperText={''}\r\n                  inputProps={{\r\n                    value: option.textRep,\r\n                    onChange: (e: any) => onChangeOptionText(option.id, e.target.value),\r\n                    disabled: isReadOnly\r\n                  }}\r\n                />\r\n              )}\r\n            </Stack>\r\n          );\r\n        })}\r\n      </RadioGroup>\r\n      <FormHelperText></FormHelperText>\r\n    </FormControl>\r\n  );\r\n};\r\n\r\nexport const SurveyInputRadioRegroupement = ({\r\n  survey,\r\n  onChangeOption,\r\n  onChangeOptionText,\r\n  isReadOnly,\r\n  index\r\n}: SurveyInputProps) => {\r\n  return (\r\n    <>\r\n      {survey.optionList.map((option: QuestOption, i: number) => {\r\n        const idx = i + index;\r\n        return (\r\n          <TableCell key={idx} sx={{ p: 0, borderBottom: '1px solid #f1f3f4' }} align=\"center\">\r\n            <FormControlLabel\r\n              disabled={isReadOnly}\r\n              style={{ marginLeft: 8 }}\r\n              value={option.id.toString()}\r\n              control={\r\n                <Radio\r\n                  className={`${100 + index}`}\r\n                  name={`${100 + index}`}\r\n                  id={`${100 + index}${option.id}`}\r\n                  checked={option.checked}\r\n                  onChange={(e: any) => {\r\n                    onChangeOption(e.target.value);\r\n                  }}\r\n                />\r\n              }\r\n              label={''}\r\n            />\r\n          </TableCell>\r\n        );\r\n      })}\r\n    </>\r\n  );\r\n};\r\n","import { Star } from '@mui/icons-material';\r\nimport {\r\n  Chip,\r\n  FormControl,\r\n  FormControlLabel,\r\n  FormHelperText,\r\n  Radio,\r\n  RadioGroup,\r\n  Rating,\r\n  Stack,\r\n  TextField,\r\n  Typography\r\n} from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport Label from 'components/Label';\r\nimport Selector from 'components/Selector';\r\nimport { useState } from 'react';\r\nimport { Survey, QuestOption } from '../../../@types/survey';\r\n\r\nexport type SurveyInputRatingProps = {\r\n  survey: Survey;\r\n  isReadOnly: boolean;\r\n  onChangeOption: (value: string) => void;\r\n  onChangeOptionText: (optionId: string, value: string) => void;\r\n  index: number;\r\n};\r\n\r\nexport const SurveyInputRating = ({\r\n  survey,\r\n  onChangeOption,\r\n  onChangeOptionText,\r\n  isReadOnly,\r\n  index\r\n}: SurveyInputRatingProps) => {\r\n  //Options en object\r\n  const objectOptions = Object.fromEntries(\r\n    [...survey.optionList].map((t) => [t.rate, t.id, t.label])\r\n  );\r\n  const optionSelected = survey.optionList.filter((o) => o.checked)[0];\r\n\r\n  return (\r\n    <FormControl>\r\n      <HoverRating\r\n        values={objectOptions}\r\n        max={survey.optionList.length}\r\n        value={optionSelected ? +optionSelected.id : 0}\r\n        onChangeOption={onChangeOption}\r\n      />\r\n      {optionSelected && (\r\n        <OptionTextPrecision\r\n          label={optionSelected.label}\r\n          id={survey.id}\r\n          option={optionSelected}\r\n          onChange={onChangeOptionText}\r\n        />\r\n      )}\r\n\r\n      <FormHelperText></FormHelperText>\r\n    </FormControl>\r\n  );\r\n};\r\n\r\nfunction OptionTextPrecision({\r\n  id,\r\n  option,\r\n  onChange,\r\n  label\r\n}: {\r\n  id: number;\r\n  option: QuestOption;\r\n  onChange(optionId: string, value: string): void;\r\n  label: string;\r\n}) {\r\n  if (option.textPre && option.textPre !== '')\r\n    switch (option.textPre.includes('|')) {\r\n      case true:\r\n        const list = option.textPre.split('|').map((x) => {\r\n          return { value: x, label: x };\r\n        });\r\n\r\n        return (\r\n          <Box sx={{ p: 1 }}>\r\n            <Typography variant=\"caption\" paragraph>\r\n              {label}. Quel a été le problème ?{' '}\r\n            </Typography>\r\n            <Stack gap=\"5px\" direction={'row'} flexWrap=\"wrap\" justifyContent={'center'}>\r\n              {list.map((item, index) => {\r\n                const key = id * index;\r\n                return (\r\n                  <Chip\r\n                    key={`CustomInput_${key}`}\r\n                    variant={option.textRep === item.label ? 'filled' : 'outlined'}\r\n                    onClick={() => onChange(option.id, item.value)}\r\n                    label={item.label}\r\n                    size=\"small\"\r\n                  />\r\n                );\r\n              })}\r\n            </Stack>\r\n          </Box>\r\n        );\r\n      default:\r\n        return (\r\n          <TextField\r\n            label={option.textPre}\r\n            placeholder={option.textPre}\r\n            name={`CustomInput_${id}`}\r\n            id={`CustomInput_${id}`}\r\n            inputProps={{\r\n              value: option.textRep,\r\n              onChange: (e: any) => console.log(e.target.value)\r\n            }}\r\n            variant=\"outlined\"\r\n          />\r\n        );\r\n    }\r\n\r\n  return <></>;\r\n}\r\n\r\nexport default function HoverRating({\r\n  values,\r\n  max,\r\n  onChangeOption,\r\n  value\r\n}: {\r\n  values: { [index: string]: string };\r\n  max: number;\r\n  onChangeOption: (value: string) => void;\r\n  value: number;\r\n}) {\r\n  return (\r\n    <Box\r\n      sx={{\r\n        display: 'flex',\r\n        alignItems: 'center',\r\n        justifyContent: 'center'\r\n      }}\r\n    >\r\n      <Rating\r\n        max={max}\r\n        name=\"hover-feedback\"\r\n        value={value}\r\n        precision={1}\r\n        onChange={(event, newValue) => {\r\n          //attention on match avec le rate\r\n          if (newValue) onChangeOption(newValue.toString());\r\n        }}\r\n        emptyIcon={<Star style={{ opacity: 0.55 }} fontSize=\"inherit\" />}\r\n      />\r\n    </Box>\r\n  );\r\n}\r\n","import { useEffect } from 'react';\r\nimport { QuestionType, Survey, SurveyCategory } from '../../../@types/survey';\r\nimport { SurveyInputCheck } from './SurveyInputCheck';\r\nimport { SurveyInputMemo } from './SurveyInputMemo';\r\nimport { SurveyInputRadio, SurveyInputRadioRegroupement } from './SurveyInputRadio';\r\nimport { SurveyInputRating } from './SurveyInputRating';\r\nimport { TableRow } from '@mui/material';\r\nimport { BoxProps } from '@mui/system';\r\n\r\ntype SurveyInputProps = {\r\n  survey: Survey;\r\n  isReadOnly: boolean;\r\n  onChange: (value: string) => void;\r\n  onChangeOption: (value: string) => void;\r\n  onChangeOptionText: (optionId: string, value: string) => void;\r\n  onValid: (is: boolean) => void;\r\n  onChangeChecked: (id: string, checked: boolean) => void;\r\n  index: number;\r\n};\r\n\r\nexport const SurveyInput = ({\r\n  survey,\r\n  isReadOnly,\r\n  index,\r\n\r\n  onChange,\r\n  onChangeOption,\r\n  onChangeChecked,\r\n  onChangeOptionText,\r\n  onValid\r\n}: SurveyInputProps) => {\r\n  const controlError = (): boolean => {\r\n    switch (survey.questionType) {\r\n      case QuestionType.Mem:\r\n      case QuestionType.Txt:\r\n        return survey.isRequired && survey.value.trim() === '';\r\n      case QuestionType.Rad:\r\n      case QuestionType.Rat:\r\n        const unChecked =\r\n          survey.isRequired &&\r\n          survey.optionList &&\r\n          survey.optionList.length > 0 &&\r\n          survey.optionList.every((x) => !x.checked);\r\n\r\n        const notValue =\r\n          survey.isRequired &&\r\n          survey.optionList &&\r\n          survey.optionList.length > 0 &&\r\n          survey.optionList.some((c) => c.checked && c.textPre !== '' && c.textRep === '');\r\n\r\n        return unChecked || notValue;\r\n      default:\r\n        return false;\r\n    }\r\n  };\r\n\r\n  const isError = controlError();\r\n  const isRegroupement = survey.regroupementId !== '';\r\n  useEffect(() => {\r\n    onValid(!isError);\r\n  }, [isError]);\r\n\r\n  switch (survey.questionType) {\r\n    case QuestionType.Mem:\r\n      return (\r\n        <SurveyInputMemo\r\n          survey={survey}\r\n          isReadOnly={isReadOnly}\r\n          isMemo={true}\r\n          onChange={onChange}\r\n        />\r\n      );\r\n    case QuestionType.Rat:\r\n      return (\r\n        <SurveyInputRating\r\n          survey={survey}\r\n          isReadOnly={isReadOnly}\r\n          onChangeOption={onChangeOption}\r\n          onChangeOptionText={onChangeOptionText}\r\n          index={index}\r\n        />\r\n      );\r\n    case QuestionType.Rad:\r\n      return isRegroupement ? (\r\n        <SurveyInputRadioRegroupement\r\n          survey={survey}\r\n          isReadOnly={isReadOnly}\r\n          onChangeOption={onChangeOption}\r\n          onChangeOptionText={onChangeOptionText}\r\n          index={index}\r\n        />\r\n      ) : (\r\n        <SurveyInputRadio\r\n          survey={survey}\r\n          isReadOnly={isReadOnly}\r\n          onChangeOption={onChangeOption}\r\n          onChangeOptionText={onChangeOptionText}\r\n          index={index}\r\n        />\r\n      );\r\n    case QuestionType.Chk:\r\n      return (\r\n        <SurveyInputCheck\r\n          survey={survey}\r\n          isReadOnly={isReadOnly}\r\n          onChangeChecked={onChangeChecked}\r\n          onChangeOptionText={onChangeOptionText}\r\n          index={index}\r\n        />\r\n      );\r\n    default:\r\n      return (\r\n        <SurveyInputMemo\r\n          survey={survey}\r\n          isReadOnly={isReadOnly}\r\n          isMemo={false}\r\n          onChange={onChange}\r\n        />\r\n      );\r\n  }\r\n};\r\n","import { Survey } from '../@types/contract';\r\nimport { SurveyRequest } from '../@types/survey';\r\n\r\nimport { addSurvey, createSurveyVirtuelle, setLastSurvey } from 'redux/slices/survey';\r\nimport { RootState, dispatch, useSelector } from 'redux/store';\r\n\r\nconst useVisioSurvey = () => {\r\n  const onVisio = (survey: SurveyRequest) => {\r\n    if (survey === null) return;\r\n\r\n    const surveyClaVir: Survey = {\r\n      keyApp: survey.typApp,\r\n      keyId: survey.appId,\r\n      id: survey.lisQue,\r\n      url: '',\r\n      label: '',\r\n      created: '',\r\n      observation: '',\r\n      mandatory: true,\r\n      relanceOfNumber: 0\r\n    };\r\n\r\n    //dispatch(addSurvey(surveyClaVir));\r\n    dispatch(setLastSurvey(surveyClaVir));\r\n  };\r\n\r\n  return { onVisio };\r\n};\r\n\r\nexport default useVisioSurvey;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport {\r\n  Button,\r\n  Container,\r\n  Dialog,\r\n  DialogActions,\r\n  DialogContent,\r\n  DialogTitle,\r\n  Typography,\r\n  Card\r\n} from '@mui/material';\r\nimport { styled } from '@mui/material/styles';\r\n\r\n//redux\r\nimport { dispatch, RootState, useDispatch, useSelector } from 'redux/store';\r\nimport { getUrlVisio } from 'redux/slices/meeting';\r\nimport { DialogAnimate } from 'components/animate';\r\nimport { LoadingButton } from '@mui/lab';\r\n\r\nimport { Box } from '@mui/system';\r\n\r\nimport { loadUrl } from 'utils/helper';\r\nimport { IllustrationInfo } from 'components/IllustrationMessage';\r\nimport { toAssist } from 'redux/slices/virtualClass';\r\nimport { useSnackbar, VariantType } from 'notistack';\r\nimport { useTrackerActivityEvents } from 'hooks/useTackerActivityEvents';\r\nimport { MeetingAccessResult } from '../../../@types/meeting';\r\nimport { addSurvey, createSurveyVirtuelle, setLastSurvey } from 'redux/slices/survey';\r\nimport useVisioSurvey from 'hooks/useVisioSurvey';\r\n\r\nexport type MeetingButtonVisioProps = {\r\n  id: number;\r\n  disabled: boolean;\r\n  isVirtual?: boolean;\r\n};\r\n\r\nexport default function MeetingButtonVisio({\r\n  id,\r\n  disabled,\r\n  isVirtual = true\r\n}: MeetingButtonVisioProps) {\r\n  const { isLoading } = useSelector((state: RootState) => state.meeting);\r\n  const { moveInactityTime } = useTrackerActivityEvents();\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const [open, setOpen] = useState(false);\r\n\r\n  const { onVisio } = useVisioSurvey();\r\n\r\n  const showMeetingAlert = async (errorMsg: string, severity: VariantType | undefined) => {\r\n    enqueueSnackbar(errorMsg, { variant: severity, persist: true });\r\n  };\r\n\r\n  /**\r\n   * Lancer la visio\r\n   */\r\n  const handleVisio = async () => {\r\n    dispatch(\r\n      getUrlVisio(id)((url, survey) => {\r\n        //repousser le temps d'inactivité\r\n        moveInactityTime(id.toString());\r\n        //Tag présent\r\n        window.open(url);\r\n        //loadUrl(url);\r\n        // fermer la fenetre\r\n        setOpen(false);\r\n\r\n        onVisio(survey);\r\n      })((error: number) => {\r\n        setOpen(false);\r\n        switch (error as MeetingAccessResult) {\r\n          case MeetingAccessResult.OutOfTime:\r\n            showMeetingAlert(\r\n              \"Vous pouvez vous connecter seulement 10 minutes avant l'évènement.\",\r\n              'info'\r\n            );\r\n            break;\r\n          case MeetingAccessResult.OutOfTimeEnd:\r\n            showMeetingAlert(\r\n              \"Vous avez dépassé la date limite de connection à l'évènement.\",\r\n              'info'\r\n            );\r\n            break;\r\n          case MeetingAccessResult.Ended:\r\n            showMeetingAlert(\"L'évènement est terminé\", 'warning');\r\n            break;\r\n          case MeetingAccessResult.Invalid:\r\n            showMeetingAlert(\"L'èvenement n'est pas accessible\", 'warning');\r\n            break;\r\n          case MeetingAccessResult.WaitingTeacher:\r\n            showMeetingAlert(\r\n              'Veuillez patienter, le professeur va bientôt se connecter',\r\n              'warning'\r\n            );\r\n            break;\r\n          default:\r\n            showMeetingAlert('Nous rencontrons un problème.', 'error');\r\n            break;\r\n        }\r\n      })\r\n    );\r\n  };\r\n\r\n  return (\r\n    <>\r\n      {isVirtual ? (\r\n        <Button\r\n          onClick={() => setOpen(true)}\r\n          size=\"large\"\r\n          disabled={disabled}\r\n          variant=\"contained\"\r\n          color=\"primary\"\r\n        >\r\n          PARTICIPER À LA VISIO\r\n        </Button>\r\n      ) : (\r\n        <Button\r\n          onClick={() => handleVisio()}\r\n          size=\"large\"\r\n          disabled={disabled || isLoading}\r\n          variant=\"contained\"\r\n          color=\"primary\"\r\n        >\r\n          PARTICIPER À LA VISIO\r\n        </Button>\r\n      )}\r\n\r\n      <Dialog fullWidth maxWidth=\"sm\" scroll=\"paper\" open={open}>\r\n        <DialogTitle>Vous allez entrer dans la classe virtuelle.</DialogTitle>\r\n        <DialogContent>\r\n          <IllustrationInfo img=\"/static/illustrations/classesvirtuelles/entree_classe_virtuelle-bleu.svg\">\r\n            <Typography variant=\"body2\" paragraph>\r\n              Les classes pourront être utilisées à des fins pédagogiques et commerciales.\r\n            </Typography>\r\n            <Typography variant=\"body2\">\r\n              Vous devez respecter le droit à l'image et la vie privée, il est interdit de capturer\r\n              l'image des participants et formateurs quel qu’en soit l'usage envisagé.\r\n            </Typography>\r\n          </IllustrationInfo>\r\n\r\n          <Box sx={{ p: 5 }}>\r\n            <Typography variant=\"body1\">Vous vous engagez à :</Typography>\r\n            <Box sx={{ pl: 4 }}>\r\n              <Typography variant=\"body2\" component=\"ul\">\r\n                <li> respecter le droit des personnes.</li>\r\n                <li> communiquer en respectant les règles de civilité.</li>\r\n                <li> ne pas perturber volontairement le fonctionnement de la classe.</li>\r\n                <li>\r\n                  {' '}\r\n                  ne pas diffuser des documents ou des propos choquants, par exemple à caractère\r\n                  raciste, violent ou injurieux.\r\n                </li>\r\n                <li> ne pas diffuser des documents ou des propos contraires à la neutralité.</li>\r\n                <li> ne communiquer aucun renseignement à caractère personnel.</li>\r\n                <li>\r\n                  {' '}\r\n                  respecter les règles relatives au droit d’auteur et au droit à l’image pour la\r\n                  diffusion de tout document.\r\n                </li>\r\n                <li> ne pas diffuser vos identifiants et code d'accès.</li>\r\n              </Typography>\r\n            </Box>\r\n            <Typography variant=\"body2\">\r\n              J'ai bien pris connaissance des conditions d'accès à la classe virtuelle\r\n            </Typography>\r\n          </Box>\r\n        </DialogContent>\r\n        <DialogActions sx={{ py: 2, px: 3 }}>\r\n          <Button onClick={() => setOpen(false)}>Annuler</Button>\r\n          <LoadingButton\r\n            type=\"submit\"\r\n            variant=\"contained\"\r\n            loading={isLoading}\r\n            onClick={handleVisio}\r\n          >\r\n            J'accepte\r\n          </LoadingButton>\r\n        </DialogActions>\r\n      </Dialog>\r\n    </>\r\n  );\r\n}\r\n","import { Typography } from '@mui/material';\r\n\r\nexport default function MeetingPhoneMessage() {\r\n  return (\r\n    <>\r\n      <Typography variant=\"caption\">\r\n        Votre formateur ou formatrice vous contactera au moment indiqué.\r\n        <br />\r\n        Vous recevrez un SMS de rappel de rendez-vous 24 h avant celui-ci.\r\n      </Typography>\r\n    </>\r\n  );\r\n}\r\n","import { Typography } from '@mui/material';\r\n\r\nexport default function MeetingVisioMessage() {\r\n  return (\r\n    <Typography variant=\"caption\">\r\n      La visio est disponible seulement 10 min avant l'heure indiquée.\r\n      <br />\r\n      <strong> Merci de vous connecter quelques minutes avant votre rendez-vous.</strong>\r\n      <br />\r\n      Vous recevrez un SMS de rappel de rendez-vous 24h avant celui-ci.\r\n      <br />\r\n      <strong>Pré-requis : </strong> casque, micro, webcam\r\n    </Typography>\r\n  );\r\n}\r\n","// material\r\nimport { alpha, Theme, useTheme, styled } from '@mui/material/styles';\r\nimport { BoxProps } from '@mui/material';\r\n// @types\r\nimport { ColorSchema } from '../@types/theme';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport type LabelColor =\r\n  | 'default'\r\n  | 'primary'\r\n  | 'secondary'\r\n  | 'info'\r\n  | 'success'\r\n  | 'warning'\r\n  | 'error'\r\n  | 'misc';\r\n\r\ntype LabelVariant = 'filled' | 'outlined' | 'ghost';\r\n\r\nconst RootStyle = styled('div')(\r\n  ({\r\n    theme,\r\n    ownerState\r\n  }: {\r\n    theme: Theme;\r\n    ownerState: {\r\n      color: LabelColor;\r\n      variant: LabelVariant;\r\n    };\r\n  }) => {\r\n    const isLight = theme.palette.mode === 'light';\r\n    const { color, variant } = ownerState;\r\n\r\n    const styleFilled = (color: ColorSchema) => ({\r\n      color: theme.palette[color].contrastText,\r\n      backgroundColor: theme.palette[color].main\r\n    });\r\n\r\n    const styleOutlined = (color: ColorSchema) => ({\r\n      color: theme.palette[color].main,\r\n      backgroundColor: 'transparent',\r\n      border: `1px solid ${theme.palette[color].main}`\r\n    });\r\n\r\n    const styleGhost = (color: ColorSchema) => ({\r\n      color: theme.palette[color][isLight ? 'dark' : 'light'],\r\n      backgroundColor: alpha(theme.palette[color].main, 0.16)\r\n    });\r\n\r\n    return {\r\n      minWidth: 22,\r\n      height: 'max-content',\r\n      borderRadius: 8,\r\n      cursor: 'default',\r\n      alignItems: 'center',\r\n      display: 'inline-block',\r\n      justifyContent: 'center',\r\n      alignContent: 'center',\r\n      padding: theme.spacing(0, 1),\r\n      color: theme.palette.grey[800],\r\n      fontSize: theme.typography.pxToRem(12),\r\n      fontFamily: theme.typography.fontFamily,\r\n      backgroundColor: theme.palette.grey[300],\r\n      fontWeight: theme.typography.fontWeightBold,\r\n\r\n      ...(color !== 'default'\r\n        ? {\r\n            ...(variant === 'filled' && { ...styleFilled(color) }),\r\n            ...(variant === 'outlined' && { ...styleOutlined(color) }),\r\n            ...(variant === 'ghost' && { ...styleGhost(color) })\r\n          }\r\n        : {\r\n            ...(variant === 'outlined' && {\r\n              backgroundColor: 'transparent',\r\n              color: theme.palette.text.primary,\r\n              border: `1px solid ${theme.palette.grey[500_32]}`\r\n            }),\r\n            ...(variant === 'ghost' && {\r\n              color: isLight ? theme.palette.text.secondary : theme.palette.common.white,\r\n              backgroundColor: theme.palette.grey[500_16]\r\n            })\r\n          })\r\n    };\r\n  }\r\n);\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface LabelProps extends BoxProps {\r\n  color?: LabelColor;\r\n  variant?: LabelVariant;\r\n}\r\n\r\nexport default function Label({ color = 'default', variant = 'ghost', children, sx }: LabelProps) {\r\n  const theme = useTheme();\r\n\r\n  return (\r\n    <RootStyle ownerState={{ color, variant }} sx={sx} theme={theme}>\r\n      {children}\r\n    </RootStyle>\r\n  );\r\n}\r\n","import { MediaFileInfo } from './media';\r\nimport { Meeting } from './meeting';\r\nimport { Teacher } from './pedagogy';\r\nimport { Playback } from './virtualClass';\r\n\r\nexport interface Seminar {\r\n  id: string;\r\n  title: string;\r\n  description: string;\r\n  dateStart: string;\r\n  dateEnd: string;\r\n  dateLimit: string;\r\n  state: SeminarStatus;\r\n  countMaxPlaces: number;\r\n  teacher: Teacher;\r\n  registered: boolean;\r\n  waitingList: boolean;\r\n  isDocument: boolean;\r\n  countRegistered: number;\r\n  isReplay: boolean;\r\n  content: string;\r\n  replay: null | Playback;\r\n  meeting: null | Meeting;\r\n  activityId: string;\r\n  medias: MediaFileInfo[];\r\n  supports: SeminarSupport[];\r\n  place: string;\r\n  credit: number;\r\n  price: number;\r\n  info: SeminarInfo;\r\n  duration: string;\r\n  type: SeminarType;\r\n  priceUnit: number;\r\n}\r\n\r\nexport interface SeminarLeftToPay {\r\n  credit: number;\r\n  amount: number;\r\n  accountCredit: number;\r\n  accountAmount: number;\r\n}\r\n\r\nexport enum SeminarType {\r\n  VirtualClass = 0,\r\n  Workshop = 1\r\n}\r\n\r\nexport interface SeminarInfo {\r\n  program: string;\r\n  objective: string;\r\n  utils: string;\r\n  method: string;\r\n  public: string;\r\n  theme: string;\r\n}\r\n\r\nexport interface SeminarSupport {\r\n  code: string;\r\n  label: string;\r\n  isRead: boolean;\r\n}\r\n\r\nexport enum SeminarStatus {\r\n  None = 0,\r\n  Open = 1,\r\n  Cancel = 2,\r\n  Full = 3,\r\n  Close = 4,\r\n  All = 5,\r\n  Display = 6\r\n}\r\n\r\nexport enum SeminarErrorResult {\r\n  NotFound = 0,\r\n  Error = 1,\r\n  Full = 2,\r\n  ClosedContract = 3,\r\n  OutCoaching = 4,\r\n  OutPartner = 5,\r\n  OutOfTime = 6,\r\n  Invalid = 7,\r\n  PlaceSpaceAvailable = 8,\r\n  Payment = 9,\r\n  Unavailable = 10\r\n}\r\n\r\nexport type SeminarError = {\r\n  result: SeminarErrorResult;\r\n  data: string;\r\n};\r\n","import { Teacher } from '../@types/pedagogy';\r\nimport { convertStringToDate, formatAPI } from 'utils/formatTime';\r\nimport { AgendaEvent, AgendaEventType, AgendaSeminar } from '../@types/agenda';\r\nimport { SessionAtelier, WorkshopStatus } from '../@types/workshop';\r\nimport { Seminar, SeminarStatus, SeminarType } from '../@types/seminar';\r\n\r\nexport const convertWorkshopToAgendaEvents = (list: Array<SessionAtelier>): Array<AgendaEvent> => {\r\n  return list.map((w: SessionAtelier) => {\r\n    const start = convertStringToDate(w.dateDebut);\r\n    const end = convertStringToDate(w.dateFin);\r\n\r\n    return {\r\n      allDay: !w.isInscrit,\r\n      start: `${formatAPI(start)}T${w.heureDebut}:00`,\r\n      end: `${formatAPI(end)}T${w.heureFin}:00`,\r\n      title: w.nomAtelier,\r\n      icon: 'asterisk',\r\n      eventType: AgendaEventType.Workshop,\r\n      metadatas: {\r\n        countMaxPlaces: w.nombreDePlacesMaxi,\r\n        registered: w.isInscrit,\r\n        countRegistered: w.nombreInscription,\r\n        teacher: { lastName: w.professeur } as Teacher,\r\n        state: convertWorkshopStatus(w.idStatut),\r\n        waitingList: w.isInWaitingList,\r\n        start: `${formatAPI(start)}T${w.heureDebut}:00`,\r\n        end: `${formatAPI(end)}T${w.heureFin}:00`\r\n      } as AgendaSeminar,\r\n      textColor: w.isInscrit ? '#F49BCA' : '',\r\n      color: '#F49BCA',\r\n      id: w.id.toString()\r\n    } as AgendaEvent;\r\n  });\r\n};\r\n\r\nexport const convertWorkshopStatus = (state: WorkshopStatus): SeminarStatus => {\r\n  switch (state) {\r\n    case WorkshopStatus.Open:\r\n      return SeminarStatus.Open;\r\n    case WorkshopStatus.Full:\r\n      return SeminarStatus.Close;\r\n    case WorkshopStatus.Current:\r\n      return SeminarStatus.Display;\r\n    case WorkshopStatus.Close:\r\n      return SeminarStatus.Close;\r\n    default:\r\n      return SeminarStatus.Cancel;\r\n  }\r\n};\r\n\r\nexport const convertWorkshopToSeminar = (session: SessionAtelier): Seminar => {\r\n  return {\r\n    dateStart: `${formatAPI(session.dateDebut)}T${session.heureDebut}:00`,\r\n    dateEnd: `${formatAPI(session.dateFin)}T${session.heureFin}:00`,\r\n    title: session.nomAtelier,\r\n    content: session.html,\r\n    countMaxPlaces: session.nombreDePlacesMaxi,\r\n    registered: session.isInscrit,\r\n    countRegistered: session.nombreInscription,\r\n    teacher: { lastName: session.professeur, coach: false, account: '', id: '' } as Teacher,\r\n    state: convertWorkshopStatus(session.idStatut),\r\n    waitingList: session.isInWaitingList,\r\n    id: session.id.toString(),\r\n    activityId: '',\r\n    isDocument: session.containsFiles,\r\n    description: session.descriptif,\r\n    isReplay: false,\r\n    duration: session.nombreHeure,\r\n    replay: null,\r\n    medias: [],\r\n    meeting: null,\r\n    supports: [],\r\n    dateLimit: session.dateLimiteInscription,\r\n    place: session.lieu,\r\n    price: session.coutEnEuros,\r\n    credit: session.coutEnCredit,\r\n    priceUnit: session.prixUnitaire,\r\n    type: SeminarType.Workshop,\r\n    info: {\r\n      method: session.txtMethode,\r\n      objective: session.txtObjectifs,\r\n      program: session.txtProgramme,\r\n      public: session.txtPublic,\r\n      theme: session.txtTheme,\r\n      utils: session.txtMateriel\r\n    }\r\n  };\r\n};\r\n","import { convertStringToDate, fTime } from 'utils/formatTime';\r\nimport { AgendaEvent, AgendaEventType } from '../@types/agenda';\r\nimport { TaskModel } from '../@types/task';\r\n\r\nexport const convertTaskToAgendaEvent = (task: TaskModel): AgendaEvent => {\r\n  return {\r\n    allDay: false,\r\n    start: convertStringToDate(task.dateStart),\r\n    end: convertStringToDate(task.dateEnd),\r\n    title: `${task.label}`,\r\n    eventType: AgendaEventType.Task,\r\n    textColor: '#F0C163',\r\n    color: '#F0C163',\r\n    id: task.id.toString(),\r\n    metadatas: task,\r\n    icon: ''\r\n  };\r\n};\r\n","import { Student } from './account';\r\n\r\nexport type JobState = {\r\n  isLoading: boolean;\r\n  error: boolean;\r\n  jobs: AnnoncesDTO[];\r\n  job: AnnoncesDTO | null;\r\n  hasMore: boolean;\r\n  index: number;\r\n  step: number;\r\n  count: number;\r\n  isLoadingMore: boolean;\r\n};\r\n\r\nexport interface JobsResponse {\r\n  result: ResultResponse;\r\n  data: AnnoncesDTO[];\r\n  totalCount: number;\r\n  pageIndex: number;\r\n  pageCount: number;\r\n  startRow: number;\r\n  totalPages: number;\r\n  term: string;\r\n  codeTheme: string;\r\n  sort: string;\r\n  direct: string;\r\n}\r\n\r\nexport enum ResultResponse {\r\n  Success = 1,\r\n  NoDataFound = 2,\r\n  Notauthorized = 3\r\n}\r\n\r\nexport interface AnnoncesDTOList {\r\n  list: AnnoncesDTO[];\r\n}\r\n\r\nexport interface AnnoncesDTO {\r\n  id: number;\r\n  jobName: string;\r\n  jobTypeId: number;\r\n  jobTypeName: string;\r\n  contactName: string;\r\n  phoneContactNumber: string;\r\n  duree: string;\r\n  remuneration: string;\r\n  description: string;\r\n  enseigne: string;\r\n  contactEmail: string;\r\n  url: string;\r\n  state: number;\r\n  idCompany: number;\r\n  companyName: string;\r\n  codeLanguage: number;\r\n  active: boolean;\r\n  createDate: string;\r\n  beginDate: string;\r\n  logoContent: string;\r\n  logoContentType: string;\r\n  logoUrl: string;\r\n  themes: Theme[];\r\n  currentAddress: Address;\r\n}\r\n\r\nexport interface Theme {\r\n  code: string;\r\n  label: string;\r\n}\r\n\r\nexport interface Address {\r\n  id: number;\r\n  addressStr: string;\r\n  cityName: string;\r\n  codePostal: string;\r\n  regionName: string;\r\n  countryName: string;\r\n  complement: string;\r\n  longitude: number | null;\r\n  latitude: number | null;\r\n  distance: number | null;\r\n  street: string;\r\n}\r\n\r\nexport interface JobsDetailResponse {\r\n  result: ResultDetailResult;\r\n  detail: AnnoncesDTO;\r\n}\r\n\r\nexport enum ResultDetailResult {\r\n  Success = 1,\r\n  NoDataFound = 2,\r\n  Notauthorized = 3\r\n}\r\n\r\nexport interface JobRequestDTO {\r\n  term: string;\r\n  sort: string;\r\n  direction: string;\r\n  pageIndex: number;\r\n  pageSize: number;\r\n  jobTypeId: number;\r\n}\r\n\r\nexport type DashboardJobState = {\r\n  isLoading: boolean;\r\n  jobs: AnnoncesDTO[];\r\n};\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { store } from '../store';\r\n\r\n//Redux\r\nimport { addEvent, removeEvent, updateEvent } from 'redux/slices/agenda';\r\n\r\n// utils\r\nimport axios from '../../utils/axios';\r\n\r\n// @types\r\nimport {\r\n  TaskListResponse,\r\n  TaskModel,\r\n  TaskUpdateResponse,\r\n  TaskUpdateResult,\r\n  TaskStatus,\r\n  TaskState,\r\n  TaskListResult\r\n} from '../../@types/task';\r\nimport { convertTaskToAgendaEvent } from 'mapper/taskMap';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: TaskState = {\r\n  isLoading: false,\r\n  error: false,\r\n  tasks: [],\r\n  task: null\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'task',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n      state.error = false;\r\n    },\r\n\r\n    endLoading(state) {\r\n      state.isLoading = false;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    // GET POSTS\r\n    getTasksSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.tasks = action.payload;\r\n    },\r\n\r\n    selectedTask(state, action) {\r\n      state.isLoading = false;\r\n      state.task = action.payload;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nexport const { selectedTask } = slice.actions;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getTaskList() {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get<TaskListResponse>('/api/agenda/task/list');\r\n      const { list, result } = response.data;\r\n\r\n      switch (result) {\r\n        case TaskListResult.Success:\r\n          dispatch(slice.actions.getTasksSuccess(list));\r\n          break;\r\n        case TaskListResult.NotFound:\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport const addOrUpdateTask = (task: TaskModel) => (onSuccess: (task: TaskModel) => void) => {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n\r\n    try {\r\n      const response = await axios.post<TaskUpdateResponse>('/api/agenda/task/update', task, {\r\n        headers: { writeOnly: true }\r\n      });\r\n      const { result, id } = response.data;\r\n\r\n      switch (result) {\r\n        case TaskUpdateResult.Success:\r\n          dispatch(slice.actions.endLoading());\r\n          if (task.id === 0) {\r\n            task.id = id;\r\n            dispatch(addEvent([convertTaskToAgendaEvent(task)]));\r\n          } else dispatch(updateEvent(convertTaskToAgendaEvent(task)));\r\n\r\n          onSuccess(task);\r\n          break;\r\n        case TaskUpdateResult.TitleIsRequired:\r\n          dispatch(slice.actions.hasError('Le titre est obligatoire'));\r\n          break;\r\n        case TaskUpdateResult.DateStartIsRequired:\r\n        case TaskUpdateResult.DateEndIsRequired:\r\n          dispatch(slice.actions.hasError('Les dates sont obligatoire'));\r\n          break;\r\n        default:\r\n          dispatch(slice.actions.hasError(response.data));\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError('Nous ne pouvons pas enregistrer vos données'));\r\n    }\r\n  };\r\n};\r\n\r\nexport const removeTask = (id: number) => (onSuccess: () => void) => {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get<boolean>(`/api/agenda/task/remove/${id}`, {\r\n        headers: { writeOnly: true }\r\n      });\r\n\r\n      switch (response.data) {\r\n        case true:\r\n          dispatch(slice.actions.endLoading());\r\n          dispatch(removeEvent({ eventId: id }));\r\n\r\n          onSuccess();\r\n          break;\r\n        default:\r\n          dispatch(slice.actions.hasError(response.data));\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError('Nous ne pouvons pas supprimer vos données'));\r\n    }\r\n  };\r\n};\r\n","import { styled } from '@mui/material/styles';\r\nimport { CircularProgress, IconButton } from '@mui/material';\r\nimport { Box, useTheme } from '@mui/system';\r\nimport { ReactNode } from 'react';\r\n\r\n//---------------------------------------------------------------------\r\n\r\nconst ThumbStyle = styled(IconButton)(({ theme }) => ({\r\n  width: 40,\r\n  height: 40,\r\n  minWidth: 40,\r\n  display: 'flex',\r\n  cursor: 'pointer',\r\n  overflow: 'hidden',\r\n  position: 'relative',\r\n  alignItems: 'center',\r\n  justifyContent: 'center',\r\n  borderRadius: theme.shape.borderRadiusSm,\r\n  backgroundColor: theme.palette.background.paper,\r\n  border: `solid 1px ${theme.palette.divider}`,\r\n  color: theme.palette.primary.main,\r\n  '& img': { width: '100%', height: '100%' },\r\n  '&:hover': {\r\n    backgroundImage: 'url(\"static/icons/file/file_download.svg\");',\r\n    '> .MuiSvgIcon-root': { display: 'none' }\r\n  }\r\n}));\r\n\r\n//---------------------------------------------------------------------\r\n\r\ninterface FileThumbProps {\r\n  isRead: boolean;\r\n  isLoading: boolean;\r\n  iconFile: ReactNode;\r\n  onClick?: () => void;\r\n}\r\n\r\nexport default function FileThumb({ isLoading, isRead, iconFile, onClick }: FileThumbProps) {\r\n  const theme = useTheme();\r\n\r\n  return (\r\n    <ThumbStyle\r\n      onClick={onClick}\r\n      sx={{\r\n        ...(isRead && {\r\n          backgroundColor: theme.palette.success.lighter,\r\n          color: '#00C040',\r\n          '> .MuiSvgIcon-root': { color: '#00C040' }\r\n        })\r\n      }}\r\n    >\r\n      {isLoading ? <CircularProgress variant=\"indeterminate\" size={'1.4em'} /> : iconFile}\r\n    </ThumbStyle>\r\n  );\r\n}\r\n","import { motion } from 'framer-motion';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\n// material\r\nimport { styled } from '@mui/material/styles';\r\nimport { Box, Button, Typography, Container } from '@mui/material';\r\n// components\r\nimport { MotionContainer, varBounceIn } from '../components/animate';\r\nimport Page from '../components/Page';\r\nimport { PageNotFoundIllustration } from '../assets';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst RootStyle = styled(Page)(({ theme }) => ({\r\n  display: 'flex',\r\n  minHeight: '100%',\r\n  alignItems: 'center',\r\n  paddingTop: theme.spacing(15),\r\n  paddingBottom: theme.spacing(10)\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Page404({ isLinkDashboard = true }: { isLinkDashboard: boolean }) {\r\n  return (\r\n    <RootStyle title=\"404 Page Not Found | SkillAndYou\">\r\n      <Container>\r\n        <MotionContainer initial=\"initial\" open>\r\n          <Box sx={{ maxWidth: 480, margin: 'auto', textAlign: 'center' }}>\r\n            <motion.div variants={varBounceIn}>\r\n              <Typography variant=\"h3\" paragraph>\r\n                Désolé, la page est introuvable!\r\n              </Typography>\r\n            </motion.div>\r\n            <Typography sx={{ color: 'text.secondary' }}>\r\n              Désolé, nous ne trouvons pas la page que vous recherchez.\r\n              <br />\r\n              Avez vous vérifié l'url ?\r\n            </Typography>\r\n\r\n            <motion.div variants={varBounceIn}>\r\n              <PageNotFoundIllustration />\r\n            </motion.div>\r\n\r\n            {isLinkDashboard && (\r\n              <Button to=\"/dashboard/app\" size=\"large\" variant=\"contained\" component={RouterLink}>\r\n                Retour au tableau de bord\r\n              </Button>\r\n            )}\r\n          </Box>\r\n        </MotionContainer>\r\n      </Container>\r\n    </RootStyle>\r\n  );\r\n}\r\n","import { HomeworkStatus } from '../@types/pedagogy';\r\nimport { AgendaEvent, AgendaEventType } from '../@types/agenda';\r\nimport { isBeforeDate } from 'utils/formatTime';\r\n\r\nexport const convertObjectiveEventToAgendaEvent = (event: any, index: number): AgendaEvent => {\r\n  if (event.end == null) {\r\n    event.end = `${event.start}T10:00:00`;\r\n    event.start = `${event.start}T08:00:00`;\r\n  }\r\n\r\n  const isLate =\r\n    [HomeworkStatus.ToDo, HomeworkStatus.Rejected].includes(event.metadata.status) &&\r\n    isBeforeDate(new Date(event.start), new Date());\r\n\r\n  return {\r\n    id: event.id,\r\n    allDay: false,\r\n    start: event.start,\r\n    end: event.end,\r\n    title: event.title,\r\n    metadatas: {\r\n      id: event.metadata.dvr,\r\n      courseId: event.metadata.sup,\r\n      barCode: event.metadata.codBarDvr,\r\n      observation: event.observation,\r\n      isLate: isLate,\r\n      status: event.metadata.status\r\n    },\r\n    eventType: AgendaEventType.Homework,\r\n    color: isLate ? '#EE0701' : '#17C588',\r\n    textColor: isLate ? '#EE0701' : '#17C588',\r\n    icon: ''\r\n  };\r\n};\r\n\r\nexport const convertObjectiveEvent = (event: any): any => {\r\n  return {\r\n    id: event.id,\r\n    start: event.start,\r\n    end: event.end,\r\n    title: event.title,\r\n    status: 0,\r\n    metadata: {\r\n      dvr: event.metadatas.id,\r\n      sup: event.metadatas.courseId,\r\n      codBarDvr: event.metadatas.barCode,\r\n      notDvr: 0,\r\n      status: 0,\r\n      teacher: null\r\n    },\r\n    type: 0,\r\n    observation: event.metadatas.observation,\r\n    color: '#17C588',\r\n    enable: false,\r\n    className: '',\r\n    backgroundColor: '',\r\n    icon: 'edit',\r\n    url: '',\r\n    lock: false,\r\n    lockBy: ''\r\n  };\r\n};\r\n","import { useEffect, useState } from 'react';\r\n\r\n//Type\r\nimport {\r\n  HomeworkBase,\r\n  HomeworkStatus,\r\n  StudyPlan,\r\n  StudyPlanChapter,\r\n  StudyPlanPhase\r\n} from '../@types/pedagogy';\r\nimport { AgendaEvent } from '../@types/agenda';\r\nimport { ObjectiveRequest, Objective, ObjectiveCalculateInfos } from '../@types/objectiveType';\r\n\r\n//redux\r\nimport { RootState, useDispatch, useSelector } from 'redux/store';\r\nimport { askUnlockObjective, createObjective, saveObjective } from 'redux/slices/objective';\r\n\r\n//hook\r\nimport useStudyPlan from './useStudyPlan';\r\nimport { formatAPI, isBeforeDate } from 'utils/formatTime';\r\nimport { convertObjectiveEvent, convertObjectiveEventToAgendaEvent } from 'mapper/objectiveMap';\r\nimport { updateEvent, updateEventsObjective } from 'redux/slices/agenda';\r\nimport useAuth from './useAuth';\r\nimport useStudyPlanHomework from './useStudyPlanHomework';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst useObjective = () => {\r\n  const { getHomeworks, getStudyPlanItemHomeworks, getHomework } = useStudyPlanHomework();\r\n  const dispatch = useDispatch();\r\n  const { getContractCurrent } = useAuth();\r\n  const { objective, isLoading, error } = useSelector((state: RootState) => state.objective);\r\n  const [eventsLate, setEventsLate] = useState<Array<AgendaEvent> | null>([]);\r\n\r\n  useEffect(() => {\r\n    const homeworks = getHomeworks();\r\n\r\n    const events = objective?.events.filter(\r\n      (evt: AgendaEvent) =>\r\n        isBeforeDate(evt.start, new Date()) &&\r\n        homeworks?.some(\r\n          (x) =>\r\n            x.courseId === evt.metadatas.courseId &&\r\n            x.id === evt.metadatas.id &&\r\n            x.homeworks.length === 0\r\n        )\r\n    );\r\n\r\n    if (events) setEventsLate(events!);\r\n  }, [objective]);\r\n\r\n  /**\r\n   * search\r\n   */\r\n  function search(courseId: string, id: number) {\r\n    const eventTmp = objective?.events.filter(\r\n      (evt) => evt.metadatas.courseId === courseId && id === evt.metadatas.id\r\n    );\r\n    if (eventTmp)\r\n      if (eventsLate && eventsLate?.length > 0) {\r\n        const eventLate = eventsLate?.filter(\r\n          (evt) => evt.metadatas.courseId === courseId && id === evt.metadatas.id\r\n        );\r\n        if (eventLate) return eventLate;\r\n      }\r\n    return eventTmp;\r\n  }\r\n\r\n  /**\r\n   * Ajouter les events (devoirs) dans l'agenda suite à une reprogrammation\r\n   * @param jalons Ajou\r\n   * @param homeWorkToDoList\r\n   * @returns\r\n   */\r\n  const addAgendaEvent = (\r\n    jalons: Array<string>,\r\n    homeWorkToDoList: Array<HomeworkBase>\r\n  ): Array<AgendaEvent> => {\r\n    const events: Array<AgendaEvent> = [];\r\n\r\n    for (var i = 0; i < jalons.length; i++) {\r\n      if (homeWorkToDoList.length >= i) {\r\n        let homeWork = homeWorkToDoList[i];\r\n\r\n        events.push(convertEvent(homeWork, jalons[i], i));\r\n      }\r\n    }\r\n    return events;\r\n  };\r\n\r\n  /**\r\n   * Convertir le devoir en event agenda\r\n   * @param homeWork\r\n   * @param date\r\n   * @param index\r\n   * @returns\r\n   */\r\n  const convertEvent = (homeWork: HomeworkBase, date: any, index: number) => {\r\n    return convertObjectiveEventToAgendaEvent(\r\n      {\r\n        id: index + 1000,\r\n        start: formatAPI(date),\r\n        end: null,\r\n        title: homeWork.label,\r\n        metadata: {\r\n          sup: homeWork.courseId,\r\n          dvr: homeWork.id,\r\n          codBarDvr: homeWork.barCode,\r\n          observation: '',\r\n          status: homeWork.status\r\n        }\r\n      },\r\n      index\r\n    );\r\n  };\r\n\r\n  const calculate =\r\n    (request: ObjectiveRequest) => (onSuccess: (infos: ObjectiveCalculateInfos) => void) => {\r\n      //devoirs à faire\r\n      const homeWorkToDoList = getHomeworks()?.filter(\r\n        (w: HomeworkBase) =>\r\n          w.mandatory &&\r\n          (w.homeworks.length === 0 ||\r\n            w.homeworks.some((x) =>\r\n              [HomeworkStatus.Remade, HomeworkStatus.Rejected].includes(x.status)\r\n            ))\r\n      );\r\n\r\n      // devoirs fait\r\n      const homeworkDoList = getHomeworks()?.filter(\r\n        (w: HomeworkBase) =>\r\n          w.mandatory &&\r\n          w.homeworks.some(\r\n            (x) => ![HomeworkStatus.Remade, HomeworkStatus.Rejected].includes(x.status)\r\n          )\r\n      );\r\n\r\n      //nombre de jalons\r\n      request.jalonCount =\r\n        homeWorkToDoList && homeWorkToDoList !== undefined ? homeWorkToDoList.length : 0;\r\n\r\n      //génération des jalons par le serveur\r\n      dispatch(\r\n        createObjective(request)((interval: number, jalons: Array<string>) => {\r\n          // ajout d'évents dans devoir à faire\r\n          let eventsInAgenda = addAgendaEvent(jalons, homeWorkToDoList!);\r\n\r\n          //ajout des devoirs faits\r\n          homeworkDoList?.map((w, i) =>\r\n            eventsInAgenda.push(convertEvent(w, w.homeworks[0].correctionDate, i))\r\n          );\r\n\r\n          const calculateInfos: ObjectiveCalculateInfos = {\r\n            objective: {\r\n              start: formatAPI(request.dateStart),\r\n              end: formatAPI(request.dateEnd),\r\n              jalonCount: jalons.length,\r\n              daysWorking:\r\n                request.daysWorking?.length === 0 ? [0, 1, 2, 3, 4, 5, 6] : request.daysWorking,\r\n              interval: interval,\r\n              periodesOff: request.periodesOff,\r\n              homeworkDoCount: getContractCurrent().numberOfMandatoryHomeworkCorrected,\r\n              lock: request.lock,\r\n              lockBy: request.lockBy ? request.lockBy : '',\r\n              observation: '',\r\n              progression: 0,\r\n              events: eventsInAgenda.map((w) => convertObjectiveEvent(w)),\r\n              dateAskUnlock: ''\r\n            },\r\n            eventsInAgenda: eventsInAgenda\r\n          };\r\n\r\n          onSuccess(calculateInfos);\r\n        })\r\n      );\r\n    };\r\n\r\n  const saveCalculatedObjective = (request: ObjectiveCalculateInfos) => (onSuccess: () => void) => {\r\n    dispatch(\r\n      saveObjective(request.objective)(() => {\r\n        dispatch(updateEventsObjective(request.eventsInAgenda));\r\n        onSuccess();\r\n      })\r\n    );\r\n  };\r\n\r\n  const create = (request: ObjectiveRequest) => (onSuccess: () => void) => {\r\n    //devoirs à faire\r\n    const homeWorkToDoList = getHomeworks()?.filter(\r\n      (w: HomeworkBase) =>\r\n        w.mandatory &&\r\n        (w.homeworks.length === 0 ||\r\n          w.homeworks.some((x) =>\r\n            [HomeworkStatus.Remade, HomeworkStatus.Rejected].includes(x.status)\r\n          ))\r\n    );\r\n\r\n    // devoirs fait\r\n    const homeworkDoList = getHomeworks()?.filter(\r\n      (w: HomeworkBase) =>\r\n        w.mandatory &&\r\n        w.homeworks.some(\r\n          (x) => ![HomeworkStatus.Remade, HomeworkStatus.Rejected].includes(x.status)\r\n        )\r\n    );\r\n\r\n    //nombre de jalons\r\n    request.jalonCount = homeWorkToDoList!.length;\r\n\r\n    //génération des jalons par le serveur\r\n    dispatch(\r\n      createObjective(request)((interval: number, jalons: Array<string>) => {\r\n        // ajout d'évents dans devoir à faire\r\n        let eventsInAgenda = addAgendaEvent(jalons, homeWorkToDoList!);\r\n\r\n        //ajout des devoirs faits\r\n        homeworkDoList?.map((w, i) =>\r\n          eventsInAgenda.push(convertEvent(w, w.homeworks[0].correctionDate, i))\r\n        );\r\n\r\n        //sauvegarde sur le serveur\r\n        dispatch(\r\n          saveObjective({\r\n            start: formatAPI(request.dateStart),\r\n            end: formatAPI(request.dateEnd),\r\n            jalonCount: jalons.length,\r\n            daysWorking:\r\n              request.daysWorking?.length === 0 ? [0, 1, 2, 3, 4, 5, 6] : request.daysWorking,\r\n            interval: interval,\r\n            periodesOff: request.periodesOff,\r\n            homeworkDoCount: getContractCurrent().numberOfMandatoryHomeworkCorrected,\r\n            lock: request.lock,\r\n            lockBy: request.lockBy ? request.lockBy : '',\r\n            observation: '',\r\n            progression: 0,\r\n            events: eventsInAgenda.map((w) => convertObjectiveEvent(w)),\r\n            dateAskUnlock: ''\r\n          })(() => {\r\n            dispatch(updateEventsObjective(eventsInAgenda));\r\n            onSuccess();\r\n          })\r\n        );\r\n      })\r\n    );\r\n  };\r\n  /**\r\n * \r\n * @param courseId \r\n * @param id \r\n * @returns \r\n \r\n  function getHomeworkByEvent(courseId: string, id: number) {\r\n    const homeworks = studyPlanManager.getHomeworks();\r\n    return homeworks?.filter((w) => w.courseId === courseId && w.id === id)[0]!;\r\n  }\r\n*/\r\n  const updateObjectiveEvent = (eventAgenda: AgendaEvent) => (onSuccess: VoidFunction) => {\r\n    let newList = objective?.events?.filter(\r\n      (event) =>\r\n        !(\r\n          event.metadatas.courseId === eventAgenda.metadatas.courseId &&\r\n          event.metadatas.id === eventAgenda.metadatas.id\r\n        )\r\n    );\r\n\r\n    newList?.push(eventAgenda);\r\n\r\n    //sauvegarde sur le serveur\r\n    dispatch(\r\n      saveObjective({\r\n        start: objective!.start,\r\n        end: objective!.end,\r\n        jalonCount: objective!.jalonCount,\r\n        daysWorking: objective!.daysWorking,\r\n        interval: objective!.interval,\r\n        periodesOff: objective!.periodesOff,\r\n        homeworkDoCount: 0,\r\n        lock: objective!.lock,\r\n        lockBy: '',\r\n        observation: '',\r\n        progression: 0,\r\n        events: newList!.map((w) => convertObjectiveEvent(w)),\r\n        dateAskUnlock: ''\r\n      })(() => {\r\n        dispatch(updateEvent(eventAgenda));\r\n        onSuccess();\r\n      })\r\n    );\r\n  };\r\n\r\n  const unlockObjective = () => (onSuccess: VoidFunction) => {\r\n    const currentContract = getContractCurrent();\r\n\r\n    dispatch(\r\n      askUnlockObjective({\r\n        contractId: currentContract?.id,\r\n        amendmentId: currentContract?.amendmentId\r\n      })(() => {\r\n        onSuccess();\r\n      })\r\n    );\r\n  };\r\n\r\n  return {\r\n    create,\r\n    calculate,\r\n    saveCalculatedObjective,\r\n    search,\r\n    getHomeworkByEvent: getHomework,\r\n    updateObjectiveEvent,\r\n    isLoading: isLoading,\r\n    eventsToLate: eventsLate!,\r\n    objective,\r\n    error,\r\n    unlockObjective\r\n  };\r\n};\r\n\r\nexport default useObjective;\r\n","import React, { useContext } from 'react';\r\nimport { Chip } from '@mui/material';\r\nimport { Seminar, SeminarStatus } from '../../../@types/seminar';\r\nimport { MeetingStatus } from '../../../@types/meeting';\r\n\r\nimport Label from 'components/Label';\r\nimport { convertStringToDate } from 'utils/formatTime';\r\nimport { PageSettingsContext } from 'contexts/PageSettingsContext';\r\n\r\nexport type SeminarStatusDisplayProps = {\r\n  registered: boolean;\r\n  isReplay: boolean;\r\n  countRegistered: number;\r\n  state: SeminarStatus;\r\n  countMaxPlaces: number;\r\n  waitingList: boolean;\r\n  meetingState?: MeetingStatus;\r\n  dateLimit?: string;\r\n  dateEnd?: string;\r\n};\r\n\r\nconst RenderRegisteredStatus = ({ meetingState }: { meetingState: MeetingStatus }) => {\r\n  switch (meetingState) {\r\n    case MeetingStatus.Absent:\r\n      return (\r\n        <Label color=\"error\" variant=\"ghost\">\r\n          Absent\r\n        </Label>\r\n      );\r\n\r\n    case MeetingStatus.Present:\r\n      return (\r\n        <Label color=\"success\" variant=\"ghost\">\r\n          Présent\r\n        </Label>\r\n      );\r\n\r\n    case MeetingStatus.Registered:\r\n      return (\r\n        <Label color=\"success\" variant=\"ghost\">\r\n          Inscrit\r\n        </Label>\r\n      );\r\n    case MeetingStatus.WaitingList:\r\n      return (\r\n        <Label color=\"warning\" variant=\"ghost\">\r\n          Inscrit sur liste d'attente\r\n        </Label>\r\n      );\r\n    default:\r\n      return (\r\n        <Label color=\"success\" variant=\"ghost\">\r\n          Inscrit\r\n        </Label>\r\n      );\r\n  }\r\n};\r\n\r\nexport const SeminarStatusDisplay = ({\r\n  registered,\r\n  isReplay,\r\n  countRegistered,\r\n  state,\r\n  countMaxPlaces,\r\n  waitingList,\r\n  meetingState,\r\n  dateLimit,\r\n  dateEnd\r\n}: SeminarStatusDisplayProps) => {\r\n  const { getDateServer } = useContext(PageSettingsContext);\r\n\r\n  const dateServer = getDateServer();\r\n\r\n  if (registered)\r\n    return (\r\n      <>\r\n        <RenderRegisteredStatus meetingState={meetingState!} />\r\n        {isReplay && (\r\n          <Label color=\"info\" variant=\"ghost\">\r\n            Replay\r\n          </Label>\r\n        )}\r\n      </>\r\n    );\r\n\r\n  if (waitingList && !isReplay)\r\n    return (\r\n      <Label color=\"warning\" variant=\"ghost\">\r\n        Inscrit sur liste d'attente\r\n      </Label>\r\n    );\r\n\r\n  if (state === SeminarStatus.Open) {\r\n    if (dateEnd && convertStringToDate(dateEnd!) < dateServer)\r\n      return (\r\n        <Label color=\"error\" variant=\"ghost\">\r\n          Fermé\r\n        </Label>\r\n      );\r\n\r\n    if (dateLimit && convertStringToDate(dateLimit!) < dateServer)\r\n      return (\r\n        <Label color=\"error\" variant=\"ghost\">\r\n          Date limite d'inscription dépassée\r\n        </Label>\r\n      );\r\n\r\n    if (countMaxPlaces - countRegistered <= 0)\r\n      return (\r\n        <Label\r\n          color=\"warning\"\r\n          variant=\"ghost\"\r\n        >{`Complet - Inscrivez-vous sur liste d'attente`}</Label>\r\n      );\r\n    else\r\n      return (\r\n        <Label color=\"success\" variant=\"ghost\">{`${\r\n          countMaxPlaces - countRegistered\r\n        } place(s) disponible(s)`}</Label>\r\n      );\r\n  }\r\n\r\n  if (state === SeminarStatus.Close && isReplay)\r\n    return (\r\n      <Label color=\"info\" variant=\"ghost\">\r\n        Replay\r\n      </Label>\r\n    );\r\n\r\n  return (\r\n    <Label color=\"error\" variant=\"ghost\">\r\n      Fermée\r\n    </Label>\r\n  );\r\n};\r\n","import { useRef, useEffect } from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function useIsMountedRef() {\r\n  const isMounted = useRef(true);\r\n\r\n  useEffect(\r\n    () => () => {\r\n      isMounted.current = false;\r\n    },\r\n    []\r\n  );\r\n\r\n  return isMounted;\r\n}\r\n","import { useEffect, useState } from 'react';\r\nimport { Close, LiveHelp } from '@mui/icons-material';\r\nimport { Button, Divider, Drawer, IconButton, Stack, Tooltip, Typography } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport { ButtonType } from '../../../@types/common';\r\nimport MessageForm, { MessageFormParams } from './MessageForm';\r\nimport MIconButton from 'components/MIconButton';\r\n\r\nexport type MessagePopoverProps = {\r\n  params?: MessageFormParams;\r\n  label?: string;\r\n  small: boolean;\r\n  buttonType?: ButtonType;\r\n  labelButton?: string;\r\n  onLoad?: () => void;\r\n};\r\n\r\n/**\r\n * Ajouter un message de type question\r\n */\r\nexport default function MessagePopover({\r\n  params,\r\n  label,\r\n  small = false,\r\n  buttonType = 'button',\r\n  labelButton = '',\r\n  onLoad\r\n}: MessagePopoverProps) {\r\n  const [open, setOpen] = useState(false);\r\n\r\n  const handleClick = () => {\r\n    setOpen(true);\r\n  };\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (open && onLoad) onLoad();\r\n  }, [open]);\r\n\r\n  return (\r\n    <>\r\n      {buttonType === 'button' && (\r\n        <Button variant=\"contained\" size={small ? 'small' : 'medium'} onClick={handleClick}>\r\n          {labelButton === '' ? 'POSER UNE QUESTION' : labelButton}\r\n        </Button>\r\n      )}\r\n\r\n      {buttonType === 'iconButton' && (\r\n        <Tooltip title=\"Poser une question concernant ce support pédagogique\">\r\n          <MIconButton onClick={handleClick}>\r\n            <LiveHelp />\r\n          </MIconButton>\r\n        </Tooltip>\r\n      )}\r\n\r\n      <Drawer\r\n        open={open}\r\n        onClose={handleClose}\r\n        anchor=\"right\"\r\n        PaperProps={{ sx: { width: { xs: 1, sm: 630 } } }}\r\n      >\r\n        <Stack p={2.5} direction=\"row\" alignItems=\"center\">\r\n          <Tooltip title=\"Fermer\">\r\n            <IconButton onClick={handleClose} sx={{ mr: 1 }}>\r\n              <Close />\r\n            </IconButton>\r\n          </Tooltip>\r\n          <Box>\r\n            <Typography variant=\"h4\">\r\n              {labelButton === '' ? 'Poser une question' : labelButton}\r\n            </Typography>\r\n            <Typography variant=\"body2\" sx={{ color: 'text.secondary' }}>\r\n              {label}\r\n              <br />\r\n              {params?.reference}\r\n            </Typography>\r\n          </Box>\r\n        </Stack>\r\n\r\n        <Divider />\r\n\r\n        <MessageForm onCancel={handleClose} params={params} />\r\n      </Drawer>\r\n    </>\r\n  );\r\n}\r\n","import {\r\n  Box,\r\n  Card,\r\n  CircularProgress,\r\n  Grid,\r\n  LinearProgress,\r\n  Tooltip,\r\n  Typography\r\n} from '@mui/material';\r\nimport { styled } from '@mui/material/styles';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { RowItem, RowItemDisplay } from 'components/RowListItem';\r\nimport useAuth from 'hooks/useAuth';\r\nimport useExamen from 'hooks/useExamen';\r\nimport useScreenConfig from 'hooks/useScreenConfig';\r\nimport { RootState, useSelector } from 'redux/store';\r\nimport { getLabelCategoryObjectif } from 'utils/helperExamen';\r\nimport { ObjectifGeneral, SessionExamen } from '../../../@types/examen';\r\n\r\ntype ExamenPrerequisProps = {\r\n  objectif: ObjectifGeneral | null;\r\n  session?: SessionExamen | null;\r\n  isSmall?: boolean;\r\n};\r\n\r\nexport default function ExamenPrerequis({\r\n  objectif,\r\n  session,\r\n  isSmall = false\r\n}: ExamenPrerequisProps) {\r\n  const theme = useTheme();\r\n  const { pourcentageDevoirsRealises, nombreJoursStage, noteDossierProMin } = useSelector(\r\n    (state: RootState) => state.examen\r\n  );\r\n  const { getContractCurrent } = useAuth();\r\n  const { isMediumOrMobile } = useScreenConfig();\r\n\r\n  // Blindage\r\n  if (!objectif || objectif === undefined) {\r\n    return <></>;\r\n  }\r\n\r\n  const CardStyle = styled(Card)({\r\n    padding: isSmall || isMediumOrMobile ? 10 : 30,\r\n    marginTop: 10,\r\n    boxShadow: theme.customShadows.z12\r\n  });\r\n\r\n  let preReqPouDvrRea = 0;\r\n  let preReqNbJouSta = 0;\r\n  let preReqNotDosProMin = 0;\r\n\r\n  // Les prérequis de la session sont prioritaires\r\n  const sessionHasPreReq =\r\n    session &&\r\n    (session.pourcentageDevoirsRealises > 0 ||\r\n      session.nombreJoursStage > 0 ||\r\n      session.noteDossierProMin > 0);\r\n\r\n  if (sessionHasPreReq) {\r\n    preReqPouDvrRea = session.pourcentageDevoirsRealises;\r\n    preReqNbJouSta = session.nombreJoursStage;\r\n    preReqNotDosProMin = session.noteDossierProMin;\r\n  } else if (objectif) {\r\n    preReqPouDvrRea = objectif.pourcentageDevoirsRealises;\r\n    preReqNbJouSta = objectif.nombreJoursStage;\r\n    preReqNotDosProMin = objectif.noteDossierProMin;\r\n  }\r\n\r\n  let valuePourcentageDevoirsRealises =\r\n    preReqPouDvrRea > 0 ? (pourcentageDevoirsRealises * 100) / preReqPouDvrRea : 0;\r\n  let valueNombreJoursStage = preReqNbJouSta > 0 ? (nombreJoursStage * 100) / preReqNbJouSta : 0;\r\n  let valueNoteDossierProMin =\r\n    preReqNotDosProMin > 0 ? (noteDossierProMin * 100) / preReqNotDosProMin : 0;\r\n\r\n  //Blindage (pas plus de 100% pour afficher la complétion)\r\n  if (valuePourcentageDevoirsRealises > 100) valuePourcentageDevoirsRealises = 100;\r\n  if (valueNombreJoursStage > 100) valueNombreJoursStage = 100;\r\n  if (valueNoteDossierProMin > 100) valueNoteDossierProMin = 100;\r\n\r\n  const examLabel = getLabelCategoryObjectif(objectif?.categorie);\r\n\r\n  return (\r\n    <Box>\r\n      <Typography variant=\"subtitle1\" paragraph>\r\n        Pré-requis\r\n      </Typography>\r\n      {preReqPouDvrRea === 0 && preReqNbJouSta === 0 && preReqNotDosProMin === 0 ? (\r\n        <Typography variant=\"caption\">\r\n          {`L'inscription à ${examLabel?.precision} ne requiert pas de prérequis.`}\r\n        </Typography>\r\n      ) : (\r\n        <>\r\n          <Typography variant=\"caption\">\r\n            {`Afin que l’école vous inscrive à la session d’examen ${\r\n              ['TRI', 'MOI'].includes(objectif?.periodeInscription) ? 'pour la période' : ''\r\n            } sélectionnée, vous devez remplir les conditions suivantes`}\r\n          </Typography>\r\n          <CardStyle>\r\n            {isSmall || isMediumOrMobile ? (\r\n              <>\r\n                {preReqPouDvrRea > 0 && (\r\n                  <RowItem\r\n                    title={\r\n                      <Typography\r\n                        variant=\"body2\"\r\n                        height={40}\r\n                        alignContent=\"center\"\r\n                      >{`Réaliser ${preReqPouDvrRea}% des évaluations obligatoires`}</Typography>\r\n                    }\r\n                    icon={\r\n                      <CustomCircularProgress\r\n                        value={valuePourcentageDevoirsRealises}\r\n                        info={`${pourcentageDevoirsRealises}% des évaluations réalisé${\r\n                          pourcentageDevoirsRealises > 1 ? 's' : ''\r\n                        }`}\r\n                      />\r\n                    }\r\n                  />\r\n                )}\r\n                {preReqNbJouSta > 0 && (\r\n                  <RowItem\r\n                    title={\r\n                      <Typography\r\n                        variant=\"body2\"\r\n                        height={40}\r\n                        alignContent=\"center\"\r\n                      >{`Effectuer ${preReqNbJouSta} jours de stage`}</Typography>\r\n                    }\r\n                    icon={\r\n                      <CustomCircularProgress\r\n                        value={valueNombreJoursStage}\r\n                        info={`${nombreJoursStage} jour${\r\n                          nombreJoursStage > 1 ? 's' : ''\r\n                        } de stage effectué${nombreJoursStage > 1 ? 's' : ''}`}\r\n                      />\r\n                    }\r\n                  />\r\n                )}\r\n                {preReqNotDosProMin > 0 && (\r\n                  <RowItem\r\n                    title={\r\n                      <Typography\r\n                        variant=\"body2\"\r\n                        height={40}\r\n                        alignContent=\"center\"\r\n                      >{`Obtenir une note supérieure à ${preReqNotDosProMin}/${\r\n                        getContractCurrent().scoreOn\r\n                      } au dossier professionnel`}</Typography>\r\n                    }\r\n                    icon={\r\n                      <CustomCircularProgress\r\n                        value={valueNoteDossierProMin}\r\n                        info={`Note de ${noteDossierProMin}/${\r\n                          getContractCurrent().scoreOn\r\n                        } obtenue au dossier professionnel\r\n                      `}\r\n                      />\r\n                    }\r\n                  />\r\n                )}\r\n              </>\r\n            ) : (\r\n              <Grid container spacing={2}>\r\n                {preReqPouDvrRea > 0 && (\r\n                  <>\r\n                    <Grid item xs={12} md={6}>\r\n                      <Typography variant=\"body2\">{`Réaliser ${preReqPouDvrRea}% des évaluations obligatoires`}</Typography>\r\n                    </Grid>\r\n                    <Grid item xs={12} md={6} alignContent=\"center\">\r\n                      <Tooltip\r\n                        title={`${pourcentageDevoirsRealises}% des évaluations réalisé${\r\n                          pourcentageDevoirsRealises > 1 ? 's' : ''\r\n                        }`}\r\n                      >\r\n                        <LinearProgress\r\n                          variant=\"determinate\"\r\n                          color=\"primary\"\r\n                          value={valuePourcentageDevoirsRealises}\r\n                        />\r\n                      </Tooltip>\r\n                    </Grid>\r\n                  </>\r\n                )}\r\n                {preReqNbJouSta > 0 && (\r\n                  <>\r\n                    <Grid item xs={12} md={6}>\r\n                      <Typography variant=\"body2\">{`Effectuer ${preReqNbJouSta} jours de stage`}</Typography>\r\n                    </Grid>\r\n                    <Grid item xs={12} md={6} alignContent=\"center\">\r\n                      <Tooltip\r\n                        title={`${nombreJoursStage} jour${\r\n                          nombreJoursStage > 1 ? 's' : ''\r\n                        } de stage effectué${nombreJoursStage > 1 ? 's' : ''}`}\r\n                      >\r\n                        <LinearProgress\r\n                          variant=\"determinate\"\r\n                          color=\"primary\"\r\n                          value={valueNombreJoursStage}\r\n                        />\r\n                      </Tooltip>\r\n                    </Grid>\r\n                  </>\r\n                )}\r\n                {preReqNotDosProMin > 0 && (\r\n                  <>\r\n                    <Grid item xs={12} md={6}>\r\n                      <Typography variant=\"body2\">{`Obtenir une note supérieure à ${preReqNotDosProMin}/${\r\n                        getContractCurrent().scoreOn\r\n                      } au dossier professionnel`}</Typography>\r\n                    </Grid>\r\n                    <Grid item xs={12} md={6} alignContent=\"center\">\r\n                      <Tooltip\r\n                        title={`Note de ${noteDossierProMin}/${\r\n                          getContractCurrent().scoreOn\r\n                        } obtenue au dossier professionnel\r\n                          `}\r\n                      >\r\n                        <LinearProgress\r\n                          variant=\"determinate\"\r\n                          color=\"primary\"\r\n                          value={valueNoteDossierProMin}\r\n                        />\r\n                      </Tooltip>\r\n                    </Grid>\r\n                  </>\r\n                )}\r\n              </Grid>\r\n            )}\r\n          </CardStyle>\r\n        </>\r\n      )}\r\n    </Box>\r\n  );\r\n}\r\n\r\nconst CircularBaseStyle = styled(CircularProgress)(({ theme }) => ({\r\n  color: theme.palette.primary.lighter\r\n}));\r\nconst CircularValueStyle = styled(CircularProgress)(({ theme }) => ({\r\n  color: theme.palette.primary.main,\r\n  position: 'absolute',\r\n  left: 0\r\n}));\r\n\r\ntype CustomCircularProgressProps = {\r\n  value: number;\r\n  info?: string;\r\n};\r\n\r\nfunction CustomCircularProgress({ value, info }: CustomCircularProgressProps) {\r\n  const theme = useTheme();\r\n\r\n  return (\r\n    <Tooltip title={info}>\r\n      <Box position=\"relative\" display=\"inline-flex\">\r\n        <CircularBaseStyle variant=\"determinate\" size={40} thickness={4} value={100} />\r\n        <CircularValueStyle\r\n          variant=\"determinate\"\r\n          value={value}\r\n          sx={{ color: theme.palette.primary.main }}\r\n          size={40}\r\n        />\r\n      </Box>\r\n    </Tooltip>\r\n  );\r\n}\r\n","import useScreenConfig from 'hooks/useScreenConfig';\r\nimport Scrollbar from 'components/Scrollbar';\r\nimport {\r\n  Card,\r\n  CardContent,\r\n  CardHeader,\r\n  Chip,\r\n  Stack,\r\n  Table,\r\n  TableBody,\r\n  TableContainer,\r\n  Typography\r\n} from '@mui/material';\r\nimport { TableCell } from '@mui/material';\r\nimport { TableHead, TableRow } from '@mui/material';\r\nimport { ReactNode } from 'react';\r\nimport {\r\n  StudyPlanItem,\r\n  StudyPlanItemHomework,\r\n  StudyPlanItemLearning,\r\n  StudyPlanItemType\r\n} from '../../../../@types/pedagogy';\r\nimport { getTypeSupport } from 'utils/helperSupport';\r\nimport CardContainer from 'components/CardContainer';\r\nimport { Box } from '@mui/system';\r\nimport useAuth from 'hooks/useAuth';\r\n\r\nexport type StudyPlanChapterAverageListProps = {\r\n  items: Array<StudyPlanItem>;\r\n  icon: any;\r\n};\r\n\r\nconst StudyPlanChapterAverageList = ({ items, icon }: StudyPlanChapterAverageListProps) => {\r\n  const { isMobile } = useScreenConfig();\r\n\r\n  const extractInfo = (item: StudyPlanItem, icon: any) => {\r\n    let score = '';\r\n    let coef = 0;\r\n    let isScore = true;\r\n\r\n    switch (item.type) {\r\n      case StudyPlanItemType.Homework:\r\n        const base = (item as StudyPlanItemHomework).homeworkBase;\r\n        isScore = base.isScore;\r\n        score = base.homeworks.slice(-1)[0].note;\r\n        coef = base.coefficient;\r\n        break;\r\n      case StudyPlanItemType.Elearning:\r\n        score = (item as StudyPlanItemLearning).elearning.score.toString();\r\n        isScore = score !== '' ? true : false;\r\n        break;\r\n    }\r\n\r\n    return {\r\n      label: item.label,\r\n      type: item.type,\r\n      score: score,\r\n      coef: coef,\r\n      icon: icon,\r\n      isScore: isScore\r\n    };\r\n  };\r\n  if (isMobile)\r\n    return (\r\n      <Scrollbar>\r\n        {items.map((item) => {\r\n          const info = extractInfo(item, icon);\r\n          return <ListItemCardMobile {...info} key={item.reference} />;\r\n        })}\r\n      </Scrollbar>\r\n    );\r\n\r\n  return (\r\n    <Scrollbar sx={{ height: 200 }}>\r\n      <TableContainer sx={{ minWidth: 720 }}>\r\n        <Table size=\"small\">\r\n          <TableHead>\r\n            <TableRow>\r\n              <TableCell align=\"left\">\r\n                {' '}\r\n                <Stack direction=\"row\" alignItems={'center'} gap={0.5}>\r\n                  {icon} Évaluation\r\n                </Stack>\r\n              </TableCell>\r\n              <TableCell align=\"left\">Type</TableCell>\r\n              <TableCell align=\"left\">Note obtenue</TableCell>\r\n              <TableCell align=\"left\">Coefficient</TableCell>\r\n            </TableRow>\r\n          </TableHead>\r\n\r\n          <TableBody>\r\n            {items?.map((item) => {\r\n              const info = extractInfo(item, icon);\r\n              return <ListItemCardPC {...info} key={item.reference} />;\r\n            })}\r\n          </TableBody>\r\n        </Table>\r\n      </TableContainer>\r\n    </Scrollbar>\r\n  );\r\n};\r\n\r\ntype ListItemCardProps = {\r\n  label: string;\r\n  type: StudyPlanItemType;\r\n  score: string;\r\n  coef: number;\r\n  icon: ReactNode;\r\n  isScore: boolean;\r\n};\r\n\r\nconst ListItemCardMobile = ({ label, type, score, coef, icon, isScore }: ListItemCardProps) => {\r\n  return (\r\n    <Card sx={{ mt: 1 }}>\r\n      <CardHeader title={<Typography variant=\"subtitle2\">{label}</Typography>} action={icon} />\r\n      <CardContent>\r\n        <Stack direction={'row'} alignItems={'center'} justifyContent={'space-evenly'}>\r\n          <Box>\r\n            <Typography variant=\"subtitle2\">Note obtenue : {score}</Typography>\r\n            {coef > 0 && <Typography variant=\"subtitle2\">Coefficient : {coef}</Typography>}\r\n          </Box>\r\n          <Chip\r\n            label={getTypeSupport(type).label}\r\n            variant=\"outlined\"\r\n            size=\"small\"\r\n            sx={{ fontWeight: 'bold' }}\r\n          />\r\n        </Stack>\r\n      </CardContent>\r\n    </Card>\r\n  );\r\n};\r\n\r\nconst ListItemCardPC = ({ label, type, score, coef, isScore, icon }: ListItemCardProps) => {\r\n  const { getContractCurrent } = useAuth();\r\n\r\n  return (\r\n    <TableRow hover>\r\n      <TableCell size=\"small\" align=\"left\" sx={{ fontWeight: 'bold' }}>\r\n        {label}\r\n      </TableCell>\r\n      <TableCell align=\"left\">\r\n        <Chip\r\n          label={getTypeSupport(type).label}\r\n          variant=\"outlined\"\r\n          size=\"small\"\r\n          sx={{ fontWeight: 'bold' }}\r\n        />\r\n      </TableCell>\r\n\r\n      <TableCell align=\"left\" sx={{ fontWeight: 'bold' }}>\r\n        {isScore && score && score !== ''\r\n          ? `${parseFloat(score.replace(',', '.')).toString().replace('.', ',')}/${\r\n              getContractCurrent().scoreOn\r\n            }`\r\n          : ''}\r\n      </TableCell>\r\n      {coef > 0 && (\r\n        <TableCell align=\"left\" sx={{ fontWeight: 'bold' }}>\r\n          {coef}\r\n        </TableCell>\r\n      )}\r\n    </TableRow>\r\n  );\r\n};\r\nexport default StudyPlanChapterAverageList;\r\n","import { Box, styled } from '@mui/system';\r\nimport {\r\n  StudyPlanChapter,\r\n  StudyPlanItem,\r\n  StudyPlanItemHomework,\r\n  StudyPlanItemLearning,\r\n  StudyPlanItemScoreType,\r\n  StudyPlanItemStatus,\r\n  StudyPlanItemType\r\n} from '../../../../@types/pedagogy';\r\nimport Scrollbar from 'components/Scrollbar';\r\nimport useStudyPlanChapter from 'hooks/useStudyPlanChapter';\r\nimport { useEffect, useState } from 'react';\r\nimport StudyPlanChapterAverageList from './StudyPlanChapterAverageList';\r\nimport { Alert, Button, Collapse, Stack, Tab, Tabs, Typography } from '@mui/material';\r\nimport {\r\n  CheckCircleOutlineRounded,\r\n  CheckCircleRounded,\r\n  HighlightOffRounded\r\n} from '@mui/icons-material';\r\n\r\nconst StyledTab = styled(Tab)(({ theme }) => ({\r\n  color: theme.palette.primary.main,\r\n  fontWeight: 700,\r\n  fontSize: 13,\r\n  '&.Mui-selected': {\r\n    backgroundColor: '#6369FF14',\r\n    margin: '10px',\r\n    padding: '10px',\r\n    borderRadius: 8\r\n  }\r\n}));\r\n\r\ntype StudyPlanChapterAverageListProps = {\r\n  chapters: Array<StudyPlanChapter>;\r\n};\r\n\r\nconst StudyPlanChapterAverageListContainer = ({ chapters }: StudyPlanChapterAverageListProps) => {\r\n  const [items, setItems] = useState<Array<StudyPlanItem>>([]);\r\n  const manager = useStudyPlanChapter();\r\n\r\n  useEffect(() => {\r\n    const itemsFilter = manager\r\n      .getItems(chapters)\r\n      ?.filter((i) => i.averageType !== StudyPlanItemScoreType.None);\r\n\r\n    setItems(itemsFilter);\r\n  }, [chapters]);\r\n\r\n  const existInclude = items?.some((i) => i.averageType === StudyPlanItemScoreType.Include);\r\n\r\n  const itemsIncludeDo = items?.filter((i) => i.averageType === StudyPlanItemScoreType.IncludeDo);\r\n  const itemsExcludeDo = items?.filter((i) => i.averageType === StudyPlanItemScoreType.ExcludeDo);\r\n\r\n  return (\r\n    <Box sx={{ mt: 1.2 }}>\r\n      <TabsContainer\r\n        existInclude={existInclude}\r\n        itemsIncludeDo={itemsIncludeDo}\r\n        itemsExcludeDo={itemsExcludeDo}\r\n      />\r\n    </Box>\r\n  );\r\n};\r\n\r\ntype TabsContainerProps = {\r\n  itemsIncludeDo: Array<StudyPlanItem>;\r\n  itemsExcludeDo: Array<StudyPlanItem>;\r\n  existInclude: boolean;\r\n};\r\n\r\nconst TabsContainer = ({ itemsIncludeDo, itemsExcludeDo, existInclude }: TabsContainerProps) => {\r\n  const [tabValue, setTabValue] = useState(0);\r\n\r\n  const handleChange = (event: any, newValue: number) => {\r\n    setTabValue(newValue);\r\n  };\r\n\r\n  return (\r\n    <Box sx={{ mt: 3, textAlign: 'center' }}>\r\n      <Tabs\r\n        value={tabValue}\r\n        indicatorColor=\"primary\"\r\n        textColor=\"primary\"\r\n        TabIndicatorProps={{ style: { display: 'none' } }}\r\n        onChange={handleChange}\r\n        sx={{ '& .MuiButtonBase-root.MuiTab-root:not(:last-of-type)': { m: 1 } }}\r\n        allowScrollButtonsMobile\r\n      >\r\n        <StyledTab label={<>Prises en compte ({itemsIncludeDo.length})</>} />\r\n        {itemsExcludeDo.length > 0 && (\r\n          <StyledTab label={<>Non prises en compte ({itemsExcludeDo.length})</>} />\r\n        )}\r\n      </Tabs>\r\n      <Box sx={{ mt: 2 }}>\r\n        <Collapse in={tabValue === 0} sx={{ textAlign: 'left' }}>\r\n          {!existInclude && itemsIncludeDo.length === 0 ? (\r\n            <Alert severity=\"info\" sx={{ textAlign: 'left' }}>\r\n              <Typography variant=\"subtitle2\">Pour information </Typography>\r\n              Il n’y a pas d’évaluation obligatoire dans ce module.\r\n            </Alert>\r\n          ) : (\r\n            <StudyPlanChapterAverageList\r\n              items={itemsIncludeDo}\r\n              icon={<CheckCircleOutlineRounded color=\"success\" />}\r\n            />\r\n          )}\r\n        </Collapse>\r\n        <Collapse in={tabValue === 1} sx={{ textAlign: 'left' }}>\r\n          <StudyPlanChapterAverageList\r\n            items={itemsExcludeDo}\r\n            icon={<HighlightOffRounded color=\"error\" />}\r\n          />\r\n        </Collapse>\r\n      </Box>\r\n    </Box>\r\n  );\r\n};\r\n\r\nexport default StudyPlanChapterAverageListContainer;\r\n","import { Card, DialogProps, Typography } from '@mui/material';\r\nimport { Dialog, DialogContent } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport { DialogTitleWithClose } from 'components/DialogTitleWithClose';\r\nimport { ReactNode, useState } from 'react';\r\n\r\nimport { ScoreView } from '../ScoreView';\r\nimport { ScoreType, StudyPlanChapter } from '../../../../@types/pedagogy';\r\n\r\nimport StudyPlanChapterAverageListContainer from './StudyPlanChapterAverageListContainer';\r\n\r\ninterface StudyPlanChapterAverageDialogProps {\r\n  children(handleOpen: () => void): any;\r\n  name: string;\r\n  chapters: Array<StudyPlanChapter>;\r\n  averageComponent?: ReactNode;\r\n}\r\n\r\nconst StudyPlanChapterAverageDialog = ({\r\n  children,\r\n  chapters,\r\n  name,\r\n  averageComponent\r\n}: StudyPlanChapterAverageDialogProps) => {\r\n  const [open, setOpen] = useState(false);\r\n\r\n  const handleOpen = () => {\r\n    setOpen(true);\r\n  };\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  return (\r\n    <Box>\r\n      {children(handleOpen)}\r\n      <Dialog open={open} maxWidth=\"md\" fullWidth>\r\n        <DialogTitleWithClose title={'Détails moyenne'} id=\"moy\" onClose={handleClose}>\r\n          <Typography variant=\"caption\" component={'div'}>\r\n            Seules les évaluations et évaluations e-learning obligatoires comptent dans la moyenne.\r\n          </Typography>\r\n        </DialogTitleWithClose>\r\n\r\n        <DialogContent>\r\n          {averageComponent}\r\n\r\n          <StudyPlanChapterAverageListContainer chapters={chapters} />\r\n        </DialogContent>\r\n      </Dialog>\r\n    </Box>\r\n  );\r\n};\r\n\r\nexport default StudyPlanChapterAverageDialog;\r\n","import { EventInput } from '@fullcalendar/common';\r\nimport { ListItemType } from './common';\r\nimport { MeetingType } from './meeting';\r\nimport { Material, Teacher } from './pedagogy';\r\nimport { SeminarStatus } from './seminar';\r\n\r\nexport type AgendaState = {\r\n  isLoading: boolean;\r\n  error: any;\r\n  events: Array<AgendaEvent>;\r\n  materials: Array<ListItemType>;\r\n  isOpenModal: boolean;\r\n  selectedEvent: null | AgendaEvent;\r\n  selectedRange: null | { start: Date; end: Date };\r\n};\r\n\r\nexport enum SAYCalendarTypeView {\r\n  Day = 0,\r\n  Week = 1,\r\n  Month = 2,\r\n  List = 3\r\n}\r\n\r\nexport interface AgendaFilter {\r\n  dateCurrent: Date;\r\n  dateMax: Date;\r\n  dateMin: Date;\r\n  view: SAYCalendarTypeView;\r\n}\r\n\r\nexport interface AgendaEventListResponse {\r\n  list: AgendaEvent[];\r\n  materials: Array<Material>;\r\n  result: AgendaEventListResult;\r\n}\r\n\r\nexport interface AgendaEventListRequest {\r\n  dateStart: string;\r\n  dateEnd: string;\r\n  material: string;\r\n}\r\n\r\nexport enum AgendaEventListResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n\r\nexport interface AgendaEventBase extends EventInput {\r\n  id: string;\r\n  title: string;\r\n  start: Date | string;\r\n  end: Date | string;\r\n  color: string;\r\n  allDay: boolean;\r\n}\r\n\r\nexport interface AgendaEvent extends AgendaEventBase {\r\n  eventType: AgendaEventType;\r\n  icon: string;\r\n  metadatas: any;\r\n}\r\n\r\nexport interface AgendaScheduleTeacher {\r\n  teacher: Teacher;\r\n  timeSlots: Array<TimeSlot>;\r\n  isVisio: boolean;\r\n  isMeeting: boolean;\r\n  material: Material;\r\n  type: MeetingType;\r\n  hourLimit: number;\r\n}\r\n\r\nexport interface AgendaHomework {\r\n  id: number;\r\n  courseId: string;\r\n  barCode: string;\r\n  observation: string;\r\n}\r\n\r\nexport interface AgendaTask {\r\n  id: number;\r\n  courseId: string;\r\n  barCode: string;\r\n  observation: string;\r\n  isLocked: boolean;\r\n  mediaId: number;\r\n  url: string;\r\n  label: string;\r\n}\r\n\r\nexport interface AgendaWorkshop {\r\n  id: number;\r\n  nomAtelier: string;\r\n  idAtelier: number;\r\n  nom: string;\r\n  dateDebut: string;\r\n  heureDebut: string;\r\n  dateFin: string;\r\n  heureFin: string;\r\n  debutFin: string;\r\n  nombreHeure: string;\r\n  relativeDateString: string;\r\n  nombreDePlacesMini: number;\r\n  nombreDePlacesMaxi: number;\r\n  nombreInscription: number;\r\n  nombreDePlaceDisponibles: number;\r\n  lieu: string;\r\n  salle: string;\r\n  statut: string;\r\n  idStatut: number;\r\n  co: number;\r\n}\r\n\r\nexport interface AgendaSeminar {\r\n  state: SeminarStatus;\r\n  countMaxPlaces: number;\r\n  teacher: Teacher;\r\n  registered: boolean;\r\n  waitingList: boolean;\r\n  countRegistered: number;\r\n  isReplay: boolean;\r\n  start: string;\r\n  end: string;\r\n  registeredId: number;\r\n}\r\n\r\nexport interface TimeSlot {\r\n  id: number;\r\n  dateStart: string;\r\n  dateEnd: string;\r\n  duration: number;\r\n  visible: boolean;\r\n}\r\n\r\nexport enum AgendaEventType {\r\n  ScheduleTeacher = 0,\r\n  VirtualClass = 1,\r\n  Workshop = 2,\r\n  Homework = 3,\r\n  Job = 4,\r\n  Meeting = 5,\r\n  Task = 6,\r\n  HomeworkMandatory = 7,\r\n  HomeworkNotMandatory = 8,\r\n  Examens = 9,\r\n  Internship = 10\r\n}\r\n\r\nexport enum ScheduleType {\r\n  standard = 0,\r\n  Mixte = 1,\r\n  Oral = 2\r\n}\r\n","import Label from 'components/Label';\r\nimport { HomeworkStatus, HomeworkType } from '../../../@types/pedagogy';\r\n\r\nexport type HomeworkStatusRenderProps = {\r\n  status?: HomeworkStatus;\r\n  color?: any;\r\n  type?: HomeworkType;\r\n};\r\n\r\nexport default function HomeworkStatusRender({\r\n  status,\r\n  color,\r\n  type = HomeworkType.Standard\r\n}: HomeworkStatusRenderProps) {\r\n  let label = '';\r\n  switch (type) {\r\n    case HomeworkType.EvaluationStage:\r\n      label = 'Notation';\r\n      return [HomeworkStatus.Corrected].includes(status!) ? (\r\n        <Label color=\"success\">{label} renseignée</Label>\r\n      ) : (\r\n        <Label color=\"default\">{label} non renseignée</Label>\r\n      );\r\n\r\n      break;\r\n    case HomeworkType.ReportStage:\r\n      label = 'Rapport de stage';\r\n      break;\r\n    case HomeworkType.eLearning:\r\n      label = 'Évaluation e-learning';\r\n      break;\r\n    case HomeworkType.Voice:\r\n      label = 'Évaluation orale';\r\n      break;\r\n    default:\r\n      label = 'Évaluation';\r\n      break;\r\n  }\r\n\r\n  switch (status) {\r\n    case HomeworkStatus.Corrected:\r\n      return <Label color=\"success\">{label} faite</Label>;\r\n    case HomeworkStatus.Sended:\r\n    case HomeworkStatus.Do:\r\n      return <Label color=\"success\">{label} en cours de correction</Label>;\r\n    case HomeworkStatus.InProgress:\r\n      return <Label color=\"warning\">{label} commencée</Label>;\r\n    case HomeworkStatus.Remade:\r\n      return <Label color=\"error\">{label} à refaire</Label>;\r\n    case HomeworkStatus.Rejected:\r\n      return <Label color=\"error\">{label} rejetée</Label>;\r\n    default:\r\n      return <Label color={color ? color : 'default'}>{label}</Label>;\r\n  }\r\n}\r\n\r\n/**\r\n *   if (status === HomeworkStatus.Corrected)\r\n    return <Label color=\"success\">Évaluation faite</Label>;\r\n\r\n  if (status === HomeworkStatus.Sended || homework.status === HomeworkStatus.Do)\r\n    return <Label color=\"success\">En cours de correction</Label>;\r\n\r\n  if (status === HomeworkStatus.InProgress) return <Label color=\"info\">En cours</Label>;\r\n\r\n  if (status === HomeworkStatus.Remade)\r\n    return <Label color=\"error\">Évaluation à refaire</Label>;\r\n\r\n  if (status === HomeworkStatus.Rejected) {\r\n    return <Label color=\"error\">Évaluation rejetée</Label>;\r\n  }\r\n\r\n  return <Label color=\"default\">Évaluation à faire</Label>;\r\n */\r\n","import { useState } from 'react';\r\n\r\nimport { Verified } from '@mui/icons-material';\r\nimport { Button, Stack, Tooltip, Badge, Chip } from '@mui/material';\r\n\r\n//type\r\nimport { ButtonType } from '../../../../@types/common';\r\n//hook\r\nimport useStudyPlan from 'hooks/useStudyPlan';\r\n\r\n//compsant\r\nimport MIconButton from 'components/MIconButton';\r\nimport { MHidden } from 'components/@material-extend';\r\nimport SkillCardList from './SkillCardList';\r\nimport SkillDrawer from './SkillDrawer';\r\nimport useStudyPlanHomework from 'hooks/useStudyPlanHomework';\r\n\r\n//-----------------------------------------------------------\r\n\r\nexport type ChapterSummaryProps = {\r\n  skillIds?: Array<string>;\r\n  buttonType?: ButtonType;\r\n};\r\n\r\n/**\r\n * Liste des compétences\r\n */\r\nexport default function SkillList({ skillIds = [], buttonType = 'button' }: ChapterSummaryProps) {\r\n  const { skills } = useStudyPlan();\r\n  const { getStudyPlanItemHomeworks } = useStudyPlanHomework();\r\n  const homeworks = getStudyPlanItemHomeworks();\r\n  const skillList = skills?.filter((s) => skillIds.includes(s.id) || skillIds.length === 0);\r\n\r\n  //Gestion de l'ouverture du drawer\r\n  const [open, setOpen] = useState(false);\r\n  const handleClick = () => {\r\n    setOpen(true);\r\n  };\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  return (\r\n    <>\r\n      {buttonType === 'button' && skillList?.length > 0 && (\r\n        <Button variant=\"text\" onClick={handleClick}>\r\n          <Stack flexDirection=\"row\" display=\"flex\" alignItems=\"center\">\r\n            <Verified /> <MHidden width=\"smDown\">Compétences</MHidden>\r\n          </Stack>\r\n        </Button>\r\n      )}\r\n      {buttonType === 'iconButton' && skillList?.length > 0 && (\r\n        <Tooltip title=\"Liste des compétences de l'évaluation\">\r\n          <MIconButton onClick={handleClick}>\r\n            <Badge badgeContent={skillIds.length} variant=\"standard\" color=\"primary\">\r\n              <Verified fontSize=\"small\" />\r\n            </Badge>\r\n          </MIconButton>\r\n        </Tooltip>\r\n      )}\r\n      {buttonType === 'chipButton' && skillList?.length > 0 && (\r\n        <Chip\r\n          color=\"default\"\r\n          size=\"small\"\r\n          label={`${skills.length} compétence(s) évaluée(s)`}\r\n          icon={<Verified fontSize=\"small\" />}\r\n        />\r\n      )}\r\n\r\n      {buttonType !== 'without' ? (\r\n        <SkillDrawer skills={skillList} homeworks={homeworks} isOpen={open} onClose={handleClose} />\r\n      ) : (\r\n        <SkillCardList skills={skillList} homeworks={homeworks} />\r\n      )}\r\n    </>\r\n  );\r\n}\r\n","import { SurveyRequest, SurveyResponse, SurveyResult } from '../../../@types/survey';\r\nimport { ReactNode, useCallback, useEffect, useState } from 'react';\r\nimport axiosInstance from 'utils/axios';\r\nimport SurveyCardInformation from './SurveyCardInformation';\r\nimport { Alert } from '@mui/material';\r\nimport SkeletonLoadSingle from 'components/SkeletonLoadSingle';\r\nimport { ConstructionOutlined } from '@mui/icons-material';\r\n\r\ninterface SurveyContainerProps {\r\n  request: SurveyRequest;\r\n  children: (state: SurveyResponse, isStepper: boolean) => ReactNode;\r\n}\r\n\r\nconst SurveyContainer = ({ request, children }: SurveyContainerProps) => {\r\n  const [loading, setLoading] = useState(true);\r\n  const [state, setState] = useState<SurveyResponse>({\r\n    fait: false,\r\n    modeLecture: false,\r\n    observation: '',\r\n    titre: '',\r\n    categoryList: [],\r\n    result: SurveyResult.BadRequest,\r\n    id: request.lisQue,\r\n    appId: request.appId,\r\n    appTyp: request.typApp\r\n  });\r\n\r\n  useEffect(() => {\r\n    (async function getSurveyItemAsync() {\r\n      try {\r\n        setLoading(true);\r\n        const response = await axiosInstance.post<SurveyResponse>(`/api/survey/list`, request);\r\n        const { result } = response.data;\r\n\r\n        switch (result) {\r\n          case SurveyResult.Success:\r\n            setState(response.data);\r\n            setLoading(false);\r\n            break;\r\n          case SurveyResult.CannotFindSurvey:\r\n            setLoading(false);\r\n            break;\r\n        }\r\n      } catch (error) {\r\n        setLoading(false);\r\n      }\r\n    })();\r\n  }, [request]);\r\n\r\n  const isStepper = useCallback(() => {\r\n    let is = false;\r\n\r\n    state.categoryList.map((c) => {\r\n      if (c.nextSteps !== null && c.nextSteps.length > 0) {\r\n        is = true;\r\n      }\r\n    });\r\n\r\n    return is;\r\n  }, [request, state.categoryList]);\r\n\r\n  if (loading)\r\n    return (\r\n      <>\r\n        <SkeletonLoadSingle />\r\n      </>\r\n    );\r\n\r\n  if (state.result !== SurveyResult.Success) {\r\n    return (\r\n      <SurveyCardInformation title={''}>\r\n        <Alert severity=\"error\">\r\n          Nous rencontrons actuellement un problème, veuillez réessayer ultérieurement\r\n        </Alert>\r\n      </SurveyCardInformation>\r\n    );\r\n  }\r\n\r\n  return <>{children(state, isStepper())}</>;\r\n};\r\n\r\nexport default SurveyContainer;\r\n","//materials\r\nimport { Card, Box, Typography, List, Divider, ListSubheader } from '@mui/material';\r\nimport { styled } from '@mui/material/styles';\r\n\r\n//type\r\nimport { StudyPlanItem, StudyPlanChapter } from '../../../../@types/pedagogy';\r\nimport ChapterItemCard, { ChapterItemCardView } from './ChapterItemCard';\r\n\r\nimport { groupBy } from 'utils/collection';\r\nimport { ConstructionOutlined } from '@mui/icons-material';\r\n\r\n//-------------------------------------------------\r\nconst RootStyle = styled(Box)(({ theme }) => ({\r\n  marginBottom: 0,\r\n  backgroundColor: theme.palette.grey[100]\r\n}));\r\n\r\nconst TitleStyle = styled(Typography)(({ theme }) => ({\r\n  padding: 5\r\n}));\r\n\r\nconst ListStyle = styled(List)(({ theme }) => ({\r\n  padding: 0\r\n}));\r\n\r\n//-------------------------------------------------\r\n\r\nexport type ChapterItemGroupCardProps = {\r\n  items: Array<StudyPlanItem>;\r\n  subChapter?: StudyPlanChapter | null;\r\n  viewItemCard?: ChapterItemCardView;\r\n};\r\n/**\r\n * Regroupement des items(médias,quiz,...) par label support\r\n * @param liste des (médias,quiz...)\r\n * @returns\r\n */\r\nexport default function ChapterItemGroupCard({\r\n  items,\r\n  subChapter,\r\n  viewItemCard\r\n}: ChapterItemGroupCardProps) {\r\n  return (\r\n    <>\r\n      <RootStyle key={`media-group-${subChapter?.id}`}>\r\n        <ListStyle>\r\n          {items.map((item: StudyPlanItem) => {\r\n            return (\r\n              <Box key={`media-item-${item.key}`} id={`SItem-${item.key}`}>\r\n                <Divider variant=\"fullWidth\" component=\"li\" />\r\n                <ChapterItemCard item={item} subChapter={subChapter} view={viewItemCard} />\r\n              </Box>\r\n            );\r\n          })}\r\n        </ListStyle>\r\n      </RootStyle>\r\n    </>\r\n  );\r\n}\r\n\r\n/**\r\n *    {groupCourse.map((group: any) => {\r\n        return (\r\n          <RootStyle key={`media-group-${group.key}`}>\r\n            <ListStyle>\r\n              {items\r\n                .filter((item) => item.reference === group.key)\r\n                .map((item: StudyPlanItem) => {\r\n                  return (\r\n                    <Box key={`media-item-${item.key}`} id={`SItem-${item.key}`}>\r\n                      <Divider variant=\"fullWidth\" component=\"li\" />\r\n                      <ChapterItemCard item={item} subChapter={subChapter} view={viewItemCard} />\r\n                    </Box>\r\n                  );\r\n                })}\r\n            </ListStyle>\r\n          </RootStyle>\r\n        );\r\n      })}\r\n * \r\n * <RootStyle key={`media-group-${group.key}`}>\r\n            <TitleStyle variant=\"body2\">{group.key}</TitleStyle>\r\n\r\n            <ListStyle>\r\n              {group.value.map((item: StudyPlanItem, index: number) => {\r\n                return (\r\n                  <Box key={`media-item-${item.key}`}>\r\n                    <Divider variant=\"middle\" component=\"li\" />\r\n                    <ChapterItemCard item={item} onSelect={() => console.log('')} />\r\n                  </Box>\r\n                );\r\n              })}\r\n            </ListStyle>\r\n          </RootStyle>\r\n */\r\n","import { useContext } from 'react';\r\nimport { SettingsContext } from '../contexts/SettingsContext';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst useSettings = () => useContext(SettingsContext);\r\n\r\nexport default useSettings;\r\n","import {\r\n  Card,\r\n  Typography,\r\n  Button,\r\n  Avatar,\r\n  CardActions,\r\n  Alert,\r\n  TableCell,\r\n  Snackbar\r\n} from '@mui/material';\r\nimport { Box, BoxProps, Stack } from '@mui/system';\r\nimport { useSurvey } from 'hooks/useSurvey';\r\nimport { useEffect, useState } from 'react';\r\nimport { ReactNode } from 'react-markdown/lib/react-markdown';\r\nimport { SurveyCategory, SurveyRequest, Survey, SurveyResponse } from '../../../@types/survey';\r\nimport { SurveyCategoryCard, SurveyCategoryCardTitle } from './SurveyCategoryCard';\r\nimport { SurveyInput } from './SurveyInput';\r\nimport { useSnackbar } from 'notistack';\r\nimport { dispatch } from 'redux/store';\r\nimport SkeletonLoadSingle from 'components/SkeletonLoadSingle';\r\nimport { useSurveyStepperStandard } from 'hooks/useSurveyStepperStandard';\r\nimport SurveyCardInformation from './SurveyCardInformation';\r\n\r\nexport type SurveyProps = {\r\n  response: SurveyResponse;\r\n  onClose?: () => void;\r\n};\r\n\r\n/**\r\n * Questionnaire par étape (sondage classe virtuelle)\r\n * @param param0\r\n * @returns\r\n */\r\nexport const SurveyStepperStandard = ({ response, onClose }: SurveyProps) => {\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const [start, setStart] = useState(false);\r\n  const [saved, setSaved] = useState(false);\r\n\r\n  const {\r\n    categoryList,\r\n    onChange,\r\n    onChangeOption,\r\n    onChangeOptionTextRep,\r\n    onChangeChecked,\r\n    save,\r\n    isErrorSurveyItem,\r\n    observation,\r\n    title,\r\n    fill,\r\n    modeLecture,\r\n    isCategoryError\r\n  } = useSurvey({\r\n    request: response,\r\n    onMove: () => {}\r\n  });\r\n\r\n  const { activeStep, getCountStep, onStepBack, onStepNext, isLastStep } = useSurveyStepperStandard(\r\n    response,\r\n    categoryList\r\n  );\r\n\r\n  const handleStart = () => {\r\n    setStart(true);\r\n  };\r\n\r\n  if (!modeLecture && (fill || saved))\r\n    return (\r\n      <SurveyCardInformation title={title}>\r\n        <Alert severity=\"success\">\r\n          {saved\r\n            ? \"Merci d'avoir répondu au questionaire\"\r\n            : 'Vous avez déja répondu au questionnaire'}\r\n        </Alert>\r\n      </SurveyCardInformation>\r\n    );\r\n\r\n  if (!start && (!modeLecture || !fill)) {\r\n    return (\r\n      <SurveyCardInformation title={title}>\r\n        <Typography variant=\"body2\">Dites-nous tout !</Typography>\r\n        <Typography variant=\"body2\" paragraph>\r\n          Nous vous remercions de prendre quelques minutes pour nous transmettre vos réponses.\r\n        </Typography>\r\n        <Box sx={{ display: 'flex', justifyContent: 'center', mt: 4 }}>\r\n          <Button size=\"large\" variant=\"contained\" onClick={handleStart}>\r\n            Commencer\r\n          </Button>\r\n        </Box>\r\n      </SurveyCardInformation>\r\n    );\r\n  }\r\n\r\n  const handleSave = () => {\r\n    if (modeLecture) {\r\n      enqueueSnackbar('Mode lecture activé. Vous ne pouvez pas enregistrer', {\r\n        variant: 'warning'\r\n      });\r\n      return;\r\n    }\r\n\r\n    dispatch(\r\n      save()(() => {\r\n        //enregistrement\r\n        enqueueSnackbar(\"Merci d'avoir renseigner le questionnaire\", { variant: 'success' });\r\n        setSaved(true);\r\n        onClose && onClose();\r\n      })(() => {\r\n        enqueueSnackbar(\r\n          'Nous rencontrons actuellement un problème, veuillez réessayer ultérieurement',\r\n          { variant: 'error' }\r\n        );\r\n      })\r\n    );\r\n  };\r\n\r\n  const isErrorCategory = isCategoryError(categoryList[activeStep]);\r\n\r\n  return (\r\n    <Card sx={{ p: 1 }}>\r\n      <Snackbar\r\n        anchorOrigin={{ vertical: 'top', horizontal: 'center' }}\r\n        open={true}\r\n        color=\"info\"\r\n        message={title}\r\n      />\r\n\r\n      {categoryList?.map((c, i) => {\r\n        if (i !== activeStep) return <Box key={`categoryCard_${c.id * i}`}></Box>;\r\n        return (\r\n          <SurveyCategoryCard\r\n            key={`categoryCard_${c.id * i}`}\r\n            category={c}\r\n            sx={{\r\n              margin: 1,\r\n              maxHeight: '60vh',\r\n              overflow: 'auto',\r\n              '& .MuiCardContent-root': { p: 0.5 }\r\n            }}\r\n          >\r\n            {(survey, isRegroupement, index) => {\r\n              return (\r\n                <ContainerInput\r\n                  survey={survey}\r\n                  isRegroupement={isRegroupement}\r\n                  index={index}\r\n                  isStepper={true}\r\n                >\r\n                  <SurveyInput\r\n                    survey={survey}\r\n                    isReadOnly={false}\r\n                    index={index}\r\n                    key={index}\r\n                    onChange={(value: string) => onChange(c.id, survey.id, value)}\r\n                    onChangeOption={(value: string) => onChangeOption(c.id, survey.id, value)}\r\n                    onChangeOptionText={(id: string, value: string) =>\r\n                      onChangeOptionTextRep(c.id, survey.id, id, value)\r\n                    }\r\n                    onChangeChecked={(value: string, checked: boolean) =>\r\n                      onChangeChecked(c.id, survey.id, value, checked)\r\n                    }\r\n                    onValid={(is: boolean) => {}}\r\n                  />\r\n                </ContainerInput>\r\n              );\r\n            }}\r\n          </SurveyCategoryCard>\r\n        );\r\n      })}\r\n      <CardActions sx={{ justifyContent: 'space-between' }}>\r\n        <Button onClick={onStepBack} disabled={activeStep === 0} variant=\"contained\" size=\"small\">\r\n          Précédent\r\n        </Button>\r\n\r\n        {isLastStep() && (\r\n          <Button variant=\"contained\" disabled={isErrorCategory} size=\"small\" onClick={handleSave}>\r\n            Envoyer\r\n          </Button>\r\n        )}\r\n\r\n        {!isLastStep() && (\r\n          <Button onClick={onStepNext} disabled={isErrorCategory} variant=\"contained\" size=\"small\">\r\n            Suivant\r\n          </Button>\r\n        )}\r\n      </CardActions>\r\n    </Card>\r\n  );\r\n};\r\n\r\ninterface ContainerInputProps extends BoxProps {\r\n  survey: Survey;\r\n  isRegroupement: boolean;\r\n  index: number;\r\n  isStepper: boolean;\r\n}\r\nexport const ContainerInput = ({\r\n  survey,\r\n  isRegroupement,\r\n  index,\r\n  children,\r\n  isStepper\r\n}: ContainerInputProps) => {\r\n  if (isRegroupement) return <>{children}</>;\r\n\r\n  return (\r\n    <Stack\r\n      direction={'column'}\r\n      alignItems={'left'}\r\n      justifyContent={'space-between'}\r\n      gap=\"5px\"\r\n      sx={{ mb: 2 }}\r\n    >\r\n      <SurveyCategoryCardTitle\r\n        title={survey.question}\r\n        isRequired={survey.isRequired}\r\n        index={index + (isStepper ? 1 : 0)}\r\n      />\r\n      <Box id={`Question_${survey.id}`}>{children}</Box>\r\n    </Stack>\r\n  );\r\n};\r\n","import { useCallback, useEffect, useState } from 'react';\r\nimport { SurveyResponse, SurveyCategory, Survey, ISurveyCategoryNext } from '../@types/survey';\r\n\r\n/**\r\n * Gestion du questionnaire en mode etape\r\n * @returns\r\n */\r\nexport const useSurveyStepperStandard = (\r\n  request: SurveyResponse,\r\n  categoryList: Array<SurveyCategory>\r\n) => {\r\n  const [activeStep, setActiveStep] = useState(0);\r\n  const [steps, setSteps] = useState<Array<number>>([]);\r\n\r\n  useEffect(() => {\r\n    setActiveStep(0);\r\n  }, [request]);\r\n\r\n  const onStepNext = () => {\r\n    setSteps((arr) => [...arr, activeStep]);\r\n    getNextStep();\r\n  };\r\n\r\n  const onStepBack = () => {\r\n    setActiveStep(steps.pop() || 0);\r\n  };\r\n\r\n  const getCountStep = () => {\r\n    return categoryList.reduce(\r\n      (accumulateur, valeurCourante) => accumulateur + valeurCourante.surveyList.length,\r\n      0\r\n    );\r\n  };\r\n\r\n  const isLastStep = useCallback(() => {\r\n    let isLastStep = false;\r\n    if (categoryList) {\r\n      findNextStep((step: number) => {\r\n        isLastStep = step === -1 ? true : false;\r\n      });\r\n    }\r\n    return isLastStep;\r\n  }, [categoryList, activeStep]);\r\n\r\n  const getNextStep = () => {\r\n    findNextStep((step: number) => {\r\n      const stepIndex = categoryList.findIndex((c) => c.id === step);\r\n      if (stepIndex > 0) setActiveStep(stepIndex);\r\n    });\r\n  };\r\n\r\n  const findNextStep = (fnCallback: (categoryId: number) => void) => {\r\n    const current = categoryList[activeStep];\r\n\r\n    if (current.nextSteps) {\r\n      current.nextSteps.map((stepNext: ISurveyCategoryNext) => {\r\n        if (stepNext.conditions) {\r\n          return stepNext.conditions.map((c) => {\r\n            const question = current.surveyList.find((q) => q.id === c.idQuestion);\r\n            if (question?.optionList[c.index].checked === c.value) {\r\n              return fnCallback(stepNext.step);\r\n            }\r\n          });\r\n        } else {\r\n          return fnCallback(stepNext.step);\r\n        }\r\n      });\r\n    } else return fnCallback(-1);\r\n  };\r\n\r\n  const getSurveyStep = () => {\r\n    let surveys: Array<Survey> = [];\r\n    categoryList.map((s, index) => s.surveyList.map((survey) => surveys.push(survey)));\r\n    return surveys[activeStep];\r\n  };\r\n\r\n  return {\r\n    categoryList,\r\n    activeStep,\r\n    isLastStep,\r\n    getCountStep,\r\n    onStepBack,\r\n    onStepNext,\r\n    getSurveyStep\r\n  };\r\n};\r\n","export interface PageTemplateResponse {\r\n  page: PageTemplate;\r\n  result: PageTemplateResult;\r\n}\r\n\r\nexport type PageTemplateState = {\r\n  isLoading: boolean;\r\n  error: any;\r\n  templates: Array<PageTemplate>;\r\n  template: PageTemplate | null;\r\n};\r\n\r\nexport enum PageTemplateType {\r\n  MentionLegal = 1,\r\n  Contact = 2\r\n}\r\n\r\nexport interface PageTemplate {\r\n  id: number;\r\n  name: string;\r\n  details: PageTemplateDetail[];\r\n}\r\n\r\nexport interface PageTemplateDetail {\r\n  row: number;\r\n  title: string;\r\n  content: string;\r\n}\r\n\r\nexport enum PageTemplateResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { dispatch } from '../store';\r\nimport { Contract } from '../../@types/contract';\r\nimport { StudentResponse, StudentResult, StudentState } from '../../@types/account';\r\nimport axios from 'axios';\r\nimport axiosInstance from 'utils/axios';\r\n\r\n/*\r\nCAS PARTICULIER DES LANDING PAGE\r\nPOUR ISOLER LES TRAITEMENTS\r\n*/\r\n\r\nconst initialState: StudentState = {\r\n  isLoading: false,\r\n  error: false,\r\n  student: null,\r\n  contract: null,\r\n  token: ''\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'student',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n      state.student = null;\r\n      state.contract = null;\r\n      state.token = '';\r\n    },\r\n\r\n    endLoading(state) {\r\n      state.isLoading = false;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    getStudent(state, action) {\r\n      state.isLoading = false;\r\n      state.student = action.payload.student;\r\n      state.contract = action.payload.student.contracts?.filter(\r\n        (c: Contract) => c.current\r\n      )[0] as Contract;\r\n      state.token = action.payload.token;\r\n    },\r\n    clearData(state, action) {\r\n      state.student = null;\r\n      state.contract = null;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getStudent(token: string) {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      // le token est passé exclusivement dans l'appel. NE PAS LE METTRE DANS LA SESSION STORAGE\r\n      const response = await axiosInstance.get<StudentResponse>('/api/student/informations', {\r\n        headers: { authorization: `Bearer ${token}` }\r\n      });\r\n      const { result, student } = response.data;\r\n\r\n      switch (result) {\r\n        case StudentResult.Success:\r\n          dispatch(slice.actions.getStudent({ student: student, token: token }));\r\n          break;\r\n        default:\r\n          dispatch(slice.actions.hasError(true));\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      console.log(error);\r\n\r\n      dispatch(slice.actions.hasError(true));\r\n    }\r\n  };\r\n}\r\n\r\nexport const resizeAvatar =\r\n  (file: any) => (onSuccess: (files: Array<string>) => void) => (onError: () => void) => {\r\n    return async () => {\r\n      try {\r\n        //preparation au file\r\n        const formData = new FormData();\r\n        formData.append('file', file);\r\n        //post direct\r\n        const response = await axiosInstance.post('/api/file/images/resize', formData, {\r\n          headers: { 'Content-Type': 'multipart/form-data', writeOnly: true }\r\n        });\r\n\r\n        onSuccess(response.data);\r\n      } catch (error) {\r\n        onError();\r\n      }\r\n    };\r\n  };\r\n","import { Alert, AlertProps, Typography } from '@mui/material';\r\nimport { ModeAccess } from '../@types/account';\r\nimport useAuth from 'hooks/useAuth';\r\nimport { ReactNode } from 'react';\r\n\r\ninterface AlertErrorMessageProps extends AlertProps {}\r\n\r\nexport default function AlertErrorMessage({ children, sx }: AlertErrorMessageProps) {\r\n  const { student } = useAuth();\r\n\r\n  const isLocked = [ModeAccess.Read, ModeAccess.Control].includes(student?.modeAccess);\r\n\r\n  return (\r\n    <Alert severity=\"error\" sx={{ ...sx }}>\r\n      {isLocked ? (\r\n        <Typography variant=\"body2\">Fonctionnalité non accessible en mode lecture</Typography>\r\n      ) : (\r\n        children\r\n      )}\r\n    </Alert>\r\n  );\r\n}\r\n","import { InfoOutlined } from '@mui/icons-material';\r\nimport { Stack, Tooltip } from '@mui/material';\r\nimport Label from 'components/Label';\r\n\r\nexport default function HomeworkMandatoryRender({ mandatory = false }) {\r\n  return mandatory ? (\r\n    <></>\r\n  ) : (\r\n    <Label variant=\"outlined\" color=\"default\">\r\n      <Tooltip\r\n        arrow\r\n        title={'Les évaluations facultatives ne sont pas prises en compte dans votre moyenne'}\r\n      >\r\n        <Stack direction=\"row\">\r\n          Facultative\r\n          <InfoOutlined sx={{ height: '18px', width: '18px', margin: '0px', ml: '5px' }} />\r\n        </Stack>\r\n      </Tooltip>\r\n    </Label>\r\n  );\r\n}\r\n","import { Box } from '@mui/system';\r\nimport { Epreuve, Examen, ExamenFichier, StatutEpreuve } from '../../../@types/examen';\r\nimport { UserType } from '../../../@types/common';\r\nimport { useFormikContext } from 'formik';\r\n\r\nimport { UploadMultiFile } from 'components/upload';\r\n\r\nimport { Button, Divider, FormHelperText, Typography } from '@mui/material';\r\n\r\nimport FileDetailsAttachments from 'components/file/FileDetailsAttachments';\r\nimport { ControllerField } from 'components/FormikInput';\r\n\r\n/**\r\n * Gestion des fichiers joints\r\n * @param props\r\n * @returns\r\n */\r\nexport default function ExamenFormDocument(props: any) {\r\n  const { onChange, files, type, statutsEpreuve, children } = props;\r\n  const { values, setValues, touched, errors } = useFormikContext<Examen>();\r\n\r\n  /**\r\n   * Ajouter un fichier\r\n   * @param type\r\n   * @param acceptedFiles\r\n   */\r\n  const handleDrop = (acceptedFiles: any) => {\r\n    const idCurrent = values.session.fichiers.length + 1;\r\n\r\n    setValues({\r\n      ...values,\r\n      session: {\r\n        ...values.session,\r\n        fichiers: [\r\n          ...values.session.fichiers,\r\n          ...acceptedFiles.map((file: any | string, index: number) => {\r\n            return {\r\n              nom: file.name,\r\n              id: -(idCurrent + index),\r\n              taille: file.size,\r\n              type: type,\r\n              nomDisk: '',\r\n              typeMime: file.type,\r\n              file: file\r\n            };\r\n          })\r\n        ]\r\n      }\r\n    });\r\n    //Recupérer le fichier physique\r\n    onChange([...files, acceptedFiles.map((file: any | string) => file)]);\r\n  };\r\n\r\n  /**\r\n   * Supprimer le fichier\r\n   * @param type\r\n   * @param file\r\n   */\r\n  const handleRemove = (file: any) => {\r\n    setValues({\r\n      ...values,\r\n      session: {\r\n        ...values.session,\r\n        fichiers: [...values.session.fichiers.filter((f) => f.id !== file)]\r\n      }\r\n    });\r\n    //supprimer le fichier physique\r\n  };\r\n\r\n  return (\r\n    <Box>\r\n      {children}\r\n      <Box sx={{ p: 3 }}>\r\n        <UploadMultiFile\r\n          showPreview\r\n          maxSize={203145728}\r\n          accept={'image/*,application/pdf'} //\"image/*,application/pdf,.doc,.docx,.xls,.xlsx,.csv,.tsv,.ppt,.pptx,.zip,.odt,.rtf\"\r\n          files={files}\r\n          onDrop={handleDrop}\r\n          onRemove={handleRemove}\r\n          error={Boolean(touched.session?.fichiers && errors.session?.fichiers)}\r\n          showFilesSelected={false}\r\n        />\r\n\r\n        {Boolean(touched.session?.fichiers && errors.session?.fichiers) && (\r\n          <FormHelperText>{errors.session?.fichiers}</FormHelperText>\r\n        )}\r\n        <FileDetailsAttachments\r\n          onDelete={(file) => handleRemove(file)}\r\n          files={values.session.fichiers\r\n            .filter((f) => f.type === type)\r\n            .map((f: ExamenFichier) => {\r\n              return {\r\n                id: f.id,\r\n                fileName: f.nom,\r\n                fileType: 1,\r\n                size: '',\r\n                userType: UserType.Student,\r\n                metadatas: { id: f.id, observation: '', typFicMed: 1, url: '' }\r\n              };\r\n            })}\r\n        />\r\n      </Box>\r\n    </Box>\r\n  );\r\n}\r\n","import { Typography } from '@mui/material';\r\nimport { MessageAddResult } from '../../../@types/message';\r\nimport { RowItemDisplayAlert } from 'components/RowListItem';\r\nimport { fDateMeeting } from 'utils/formatTime';\r\nimport { ModeAccess } from '../../../@types/account';\r\nimport useAuth from 'hooks/useAuth';\r\n\r\nexport type MessageErrorMsg = {\r\n  error: MessageAddResult;\r\n};\r\n\r\nexport default function MessageErrorMsg({ error }: MessageErrorMsg) {\r\n  let message: string = 'Nous ne pouvons pas donner suite à cette demande';\r\n  switch (error) {\r\n    case MessageAddResult.TitleIsRequired:\r\n      message = 'Le titre est obligatoire';\r\n      break;\r\n    case MessageAddResult.ObservationIsRequired:\r\n      message = \"L'observation est obligatoire\";\r\n      break;\r\n    case MessageAddResult.ServiceIsRequired:\r\n      message = 'Le service est obligatoire';\r\n      break;\r\n    case MessageAddResult.SubjectIsRequed:\r\n      message = `le sujet est obligatoire`;\r\n      break;\r\n\r\n    case MessageAddResult.files:\r\n      message = 'Les fichiers ne respectent pas les extensions requises';\r\n      break;\r\n  }\r\n\r\n  return (\r\n    <RowItemDisplayAlert alertColor=\"error\">\r\n      <Typography variant=\"body2\">{message}</Typography>\r\n    </RowItemDisplayAlert>\r\n  );\r\n}\r\n","import * as Yup from 'yup';\r\nimport { useCallback, useEffect, useState } from 'react';\r\nimport { useSnackbar } from 'notistack';\r\nimport { useFormik, Form, FormikProvider } from 'formik';\r\n// material\r\nimport { LoadingButton } from '@mui/lab';\r\nimport { styled } from '@mui/material/styles';\r\nimport {\r\n  Button,\r\n  TextField,\r\n  Typography,\r\n  FormHelperText,\r\n  List,\r\n  DialogActions,\r\n  MenuItem,\r\n  ListItem,\r\n  Avatar,\r\n  Stack,\r\n  Divider,\r\n  InputAdornment,\r\n  Alert,\r\n  Collapse\r\n} from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport { Attachment } from '@mui/icons-material';\r\n// utils\r\n\r\n// @types\r\nimport { MessageAddResult, Question, Service, SubjectModel } from '../../../@types/message';\r\nimport { ModuleType } from '../../../@types/contract';\r\n// redux\r\nimport { dispatch, RootState, useDispatch, useSelector } from 'redux/store';\r\nimport { addQuestion } from 'redux/slices/message';\r\n\r\n//composants\r\nimport { RowItem, RowItemDisplay, RowItemDisplayTitle } from 'components/RowListItem';\r\n\r\nimport { UploadMultiFile } from 'components/upload';\r\n\r\nimport MessageErrorMsg from 'components/_dashboard/message/MessageErrorMsg';\r\nimport Scrollbar from 'components/Scrollbar';\r\nimport useAuth from 'hooks/useAuth';\r\nimport Markdown from 'components/Markdown';\r\nimport useModuleAuthorize from 'hooks/useModuleAuthorize';\r\nimport ModuleNotAuthorized from 'components/ModuleNotAuthorized';\r\nimport useServices from 'hooks/useServices';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst LabelStyle = styled(Typography)(({ theme }) => ({\r\n  ...theme.typography.subtitle2,\r\n  color: theme.palette.text.secondary,\r\n  marginBottom: theme.spacing(1)\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\nexport type MessageFormParams = {\r\n  reference: string;\r\n  serviceId: string;\r\n  subjectId: string;\r\n  pro: string;\r\n  subjects?: Array<SubjectModel>;\r\n  services?: Array<Service>;\r\n  descriptionServices?: string;\r\n};\r\n\r\nexport type MessageFormProps = {\r\n  params?: MessageFormParams;\r\n  onCancel: () => void;\r\n};\r\n\r\nexport default function MessageForm({\r\n  params = { subjectId: '', serviceId: '', pro: '', reference: '', subjects: [] },\r\n  onCancel\r\n}: MessageFormProps) {\r\n  const { authorizedModule, getContractCurrent } = useModuleAuthorize({\r\n    accessibleModules: [ModuleType.QuestionUpdate, ModuleType.QuestionUpdateFilter]\r\n  });\r\n\r\n  const { isLoading, error } = useSelector((state: RootState) => state.message);\r\n  const { enqueueSnackbar } = useSnackbar();\r\n\r\n  const { servicesFiltered } = useServices();\r\n\r\n  const MessageFormSchema = Yup.object().shape({\r\n    title: Yup.string().trim().required(\"L'objet est obligatoire\"),\r\n    description: Yup.string().trim().required('La description est obligatoire'),\r\n    reference: Yup.string(),\r\n    pro: Yup.string(),\r\n    serviceId: Yup.string().required('Le service est obligatoire'),\r\n    subjectId: Yup.string().required('Le sujet est obligatoire'),\r\n    files: Yup.array()\r\n  });\r\n\r\n  const formik = useFormik<Question>({\r\n    initialValues: {\r\n      title: '',\r\n      description: '',\r\n      reference: params?.reference,\r\n      pro: params?.pro,\r\n      serviceId: params?.serviceId,\r\n      subjectId: params?.subjectId,\r\n      files: []\r\n    },\r\n    validationSchema: MessageFormSchema,\r\n    onSubmit: async (values, { setSubmitting, resetForm }) => {\r\n      try {\r\n        /**Particularite => le service est le theme quand on a le choix du sujet\r\n         * Il faut retrouver le service sur le sujet\r\n         */\r\n        if (params.subjects && params.subjects?.length > 0) {\r\n          const subject = params.subjects?.find((s) => s.key === values.subjectId);\r\n          const themeId = values.serviceId;\r\n          if (subject) {\r\n            Object.assign(values, {\r\n              serviceId: subject.keyService,\r\n              themeId: themeId\r\n            });\r\n          }\r\n        }\r\n\r\n        dispatch(\r\n          addQuestion(values)((question: Question) => {\r\n            onCancel();\r\n            setSubmitting(false);\r\n            enqueueSnackbar('Votre question a été enregistrée', { variant: 'success' });\r\n          })\r\n        );\r\n      } catch (error) {\r\n        console.error(error);\r\n        setSubmitting(false);\r\n      }\r\n    }\r\n  });\r\n\r\n  const { errors, values, touched, handleSubmit, isSubmitting, setFieldValue, getFieldProps } =\r\n    formik;\r\n\r\n  const handleDrop = useCallback(\r\n    (acceptedFiles) => {\r\n      setFieldValue(\r\n        'files',\r\n        acceptedFiles.map((file: File) =>\r\n          Object.assign(file, {\r\n            preview: URL.createObjectURL(file)\r\n          })\r\n        )\r\n      );\r\n    },\r\n    [setFieldValue]\r\n  );\r\n\r\n  const handleChangeService = (e: any) => {\r\n    const serviceCurrent = params.services?.filter((s) => s.key === e.target.value)[0];\r\n    setFieldValue('serviceId', serviceCurrent?.key);\r\n    setFieldValue('subjectId', '');\r\n    params.subjects = serviceCurrent?.subjects;\r\n    if (params.subjects?.length === 1) setFieldValue('subjectId', params.subjects[0].key);\r\n  };\r\n\r\n  const handleRemoveAll = () => {\r\n    setFieldValue('images', []);\r\n  };\r\n\r\n  const handleRemove = (file: File | string) => {\r\n    const filteredItems = values.files.filter((_file) => _file !== file);\r\n    setFieldValue('files', filteredItems);\r\n  };\r\n\r\n  //trier les sujets\r\n  //Fix : filtre pour éviter que deux sujets soit liés au même theme (key identique : on conserve le premier sujet)\r\n  const sortedSubjects = params.subjects?.filter(\r\n    (sub: SubjectModel, idx: number) =>\r\n      params.subjects && params.subjects.findIndex((e) => e.key === sub.key) === idx\r\n  ); //?.slice().sort((a, b) => (b.label > a.label ? -1 : 1));\r\n\r\n  const observationTheme = params.services?.find((s) => s.key === values.serviceId)?.description;\r\n\r\n  const observationSubject = params.subjects?.find((s) => s.key === values.subjectId)?.observation;\r\n\r\n  if (!authorizedModule) return <ModuleNotAuthorized />;\r\n\r\n  return (\r\n    <FormikProvider value={formik}>\r\n      <Form noValidate autoComplete=\"off\" onSubmit={handleSubmit}>\r\n        <Scrollbar>\r\n          <Box sx={{ p: 1 }}>\r\n            <List>\r\n              {servicesFiltered?.length > 0 && // Hotfix pour la Suisse\r\n                params.serviceId === '' && (\r\n                  <RowItem\r\n                    title={\r\n                      <TextField\r\n                        fullWidth\r\n                        label=\"Thème\"\r\n                        error={Boolean(touched.serviceId && errors.serviceId)}\r\n                        helperText={touched.serviceId && errors.serviceId}\r\n                        select\r\n                        onChange={handleChangeService}\r\n                      >\r\n                        {servicesFiltered.map((service: Service) => {\r\n                          return (\r\n                            <MenuItem dense key={service.key} value={service.key}>\r\n                              <Stack alignItems={'center'} direction={'row'} gap=\"5px\">\r\n                                <Avatar\r\n                                  src={`/static/avatarsServices/${service.key}.svg`}\r\n                                  sx={{ width: 32, height: 32, mr: 2 }}\r\n                                />{' '}\r\n                                <Typography variant=\"subtitle2\" component={'span'}>\r\n                                  {service.label}\r\n                                </Typography>\r\n                              </Stack>\r\n                            </MenuItem>\r\n                          );\r\n                        })}\r\n                      </TextField>\r\n                    }\r\n                    subTitle={\r\n                      <>{observationTheme && <AlertDescription description={observationTheme} />}</>\r\n                    }\r\n                  ></RowItem>\r\n                )}\r\n\r\n              {params.descriptionServices && (\r\n                <AlertDescription description={params.descriptionServices} />\r\n              )}\r\n\r\n              {params.subjects?.length! > 0 && (\r\n                <RowItem\r\n                  title={\r\n                    <TextField\r\n                      fullWidth\r\n                      label=\"Sujet de la question\"\r\n                      {...getFieldProps('subjectId')}\r\n                      error={Boolean(touched.subjectId && errors.subjectId)}\r\n                      helperText={touched.subjectId && errors.subjectId}\r\n                      select\r\n                      disabled={sortedSubjects == undefined || sortedSubjects?.length < 2}\r\n                    >\r\n                      {sortedSubjects?.map((subject) => {\r\n                        return (\r\n                          <MenuItem key={subject.key} value={subject.key}>\r\n                            {subject.label}\r\n                          </MenuItem>\r\n                        );\r\n                      })}\r\n                    </TextField>\r\n                  }\r\n                  subTitle={\r\n                    <>\r\n                      {observationSubject && <AlertDescription description={observationSubject} />}\r\n                    </>\r\n                  }\r\n                ></RowItem>\r\n              )}\r\n\r\n              <RowItem\r\n                title={\r\n                  <TextField\r\n                    fullWidth\r\n                    label=\"Objet\"\r\n                    {...getFieldProps('title')}\r\n                    error={Boolean(touched.title && errors.title)}\r\n                    helperText={touched.title && errors.title}\r\n                  />\r\n                }\r\n              ></RowItem>\r\n\r\n              <RowItem\r\n                title={\r\n                  <TextField\r\n                    fullWidth\r\n                    multiline\r\n                    minRows={5}\r\n                    maxRows={8}\r\n                    label=\"Description\"\r\n                    {...getFieldProps('description')}\r\n                    error={Boolean(touched.description && errors.description)}\r\n                    helperText={touched.description && errors.description}\r\n                  />\r\n                }\r\n              ></RowItem>\r\n\r\n              <RowItemDisplay icon={<Attachment />} title=\"Joindre des fichiers\">\r\n                <Typography variant=\"caption\">\r\n                  Vous pouvez ajouter jusqu'à 5 fichiers maximum (pdf, image) pour un total de 5Mo\r\n                  maximum.\r\n                </Typography>\r\n                <UploadMultiFile\r\n                  showPreview\r\n                  maxSize={5145728}\r\n                  accept=\"image/*,application/pdf\"\r\n                  files={values.files}\r\n                  maxFiles={5}\r\n                  onDrop={handleDrop}\r\n                  onRemove={handleRemove}\r\n                  onRemoveAll={handleRemoveAll}\r\n                  error={Boolean(touched.files && errors.files)}\r\n                />\r\n                {touched.files && errors.files && (\r\n                  <FormHelperText error sx={{ px: 2 }}>\r\n                    {touched.files && errors.files}\r\n                  </FormHelperText>\r\n                )}\r\n              </RowItemDisplay>\r\n              {error && <MessageErrorMsg error={error} />}\r\n            </List>\r\n          </Box>\r\n          <DialogActions sx={{ justifyContent: 'center' }}>\r\n            <Button variant=\"text\" onClick={onCancel} disabled={isLoading}>\r\n              Annuler\r\n            </Button>\r\n            <Box display=\"flex\" flexGrow=\"initial\" />\r\n            <LoadingButton\r\n              type=\"submit\"\r\n              variant=\"contained\"\r\n              loading={isLoading}\r\n              size=\"large\"\r\n              loadingIndicator=\"Traitement...\"\r\n            >\r\n              Envoyer\r\n            </LoadingButton>\r\n          </DialogActions>\r\n        </Scrollbar>\r\n      </Form>\r\n    </FormikProvider>\r\n  );\r\n}\r\n\r\nfunction AlertDescription({ description }: { description?: string | null }) {\r\n  const [open, setOpen] = useState(true);\r\n\r\n  useEffect(() => {\r\n    setOpen(true);\r\n  }, [description]);\r\n\r\n  if (!description || description === '') return <></>;\r\n\r\n  return (\r\n    <Collapse in={open}>\r\n      <Alert severity=\"info\" sx={{ mt: 1, mb: 1 }} onClose={() => setOpen(false)}>\r\n        <Markdown children={description.replace(/\\r\\n/g, '<br/>')} />\r\n      </Alert>\r\n    </Collapse>\r\n  );\r\n}\r\n","// ----------------------------------------------------------------------\r\n\r\nimport { Contract, ContractAuthorize } from './contract';\r\n\r\nexport type User = {\r\n  id: string;\r\n  displayName: string;\r\n  email: string;\r\n  password: string;\r\n  photoURL: File | any;\r\n  phoneNumber: string | null;\r\n  country: string | null;\r\n  city: string | null;\r\n  state: string | null;\r\n  zipCode: string | null;\r\n  isPublic: boolean;\r\n  address: string | null;\r\n  about: string | null;\r\n  role: string | null;\r\n};\r\n\r\nexport type StudentForm = {\r\n  email: string;\r\n  photoURL: File | any;\r\n  phoneNumber: string | null;\r\n  phoneNumber2: string | null;\r\n  country: string | null;\r\n  wayName: string | null;\r\n  wayNumber: string | null;\r\n  complement: string | null;\r\n  pointOfDelivery: string | null;\r\n  placeSaid: string | null;\r\n  recipient: string | null;\r\n  city: string | null;\r\n  zipCode: string | null;\r\n  isPublic: boolean;\r\n};\r\n\r\nexport interface StudentResponse {\r\n  result: StudentResult;\r\n  student: Student;\r\n  authorize: ContractAuthorize;\r\n}\r\n\r\nexport enum ModeAccess {\r\n  Write = 0,\r\n  Read = 1,\r\n  Control = 2,\r\n  Survey = 5,\r\n  SurveyRead = 6\r\n}\r\n\r\nexport enum StudentResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  unAuthorized = 2,\r\n  Reconnected = 3\r\n}\r\n\r\nexport type Student = {\r\n  civilityId: string;\r\n  id: number;\r\n  name: string;\r\n  lastName: string;\r\n  firstName: string;\r\n  birthDate?: Date;\r\n  birthPlace: string;\r\n  email: string;\r\n  phone1: string;\r\n  phone2: string;\r\n  addressPrincipalId: number;\r\n  addressId: number;\r\n  notification: Notification;\r\n  address: Address;\r\n  contracts: Contract[];\r\n  avatarUrl: string;\r\n  modeAccess: ModeAccess;\r\n  dateTimeServer: Date;\r\n  config: StudentConfig;\r\n  availability: Array<any>;\r\n};\r\n\r\nexport interface StudentConfig {\r\n  notDisplayWelcomeCall: boolean;\r\n  NotDisplayMessageHelp: boolean;\r\n  settings: string;\r\n}\r\n\r\nexport type Notification = {\r\n  lesson: boolean;\r\n  question: boolean;\r\n  virtualClass: boolean;\r\n  homework: boolean;\r\n  actuality: boolean;\r\n  workshop: boolean;\r\n  job: boolean;\r\n};\r\nexport type Address = {\r\n  complement: string;\r\n  pointOfDelivery: string;\r\n  placeSaid: string;\r\n  recipient: string;\r\n  nativeCountry: string;\r\n  wayName: string;\r\n  wayNumber: string;\r\n  postalCode: string;\r\n  city: string;\r\n  countryCode: string;\r\n  countryName: string;\r\n  department: string;\r\n  zoneGeographic: string;\r\n};\r\n\r\nexport type StudentUpdateResponse = {\r\n  result: StudentUpdateResult;\r\n  message: string;\r\n};\r\n\r\nexport type StudentUpdateRequest = {\r\n  action: StudentUpdateAction;\r\n  student: Student;\r\n  passwordCurrent: string;\r\n  passwordNew: string;\r\n  availability: string;\r\n};\r\n\r\nexport enum StudentUpdateAction {\r\n  None = 0,\r\n  AddressPhone = 1,\r\n  NotificationEmail = 2,\r\n  Password = 3,\r\n  AddressPhoneEmail = 4,\r\n  Availability = 5\r\n}\r\n\r\nexport enum StudentUpdateResult {\r\n  None = 0,\r\n  Success = 1,\r\n  Error = 3,\r\n  EmailInvalid = 4,\r\n  PasswordError = 5,\r\n  PasswordIsRequired = 6,\r\n  AddressError = 7,\r\n  PasswordInvalid = 8,\r\n  PasswordOldIncorrect = 9\r\n}\r\n\r\nexport type StudentContext = {\r\n  id: number;\r\n  contractId: number;\r\n  amendmentId: number;\r\n  brandId: string;\r\n};\r\n\r\nexport interface StudentChangePasswordRequest {\r\n  passwordNew: string;\r\n  passwordConfirm: string;\r\n}\r\n\r\nexport interface StudentChangePasswordResponse {\r\n  result: StudentChangePasswordResult;\r\n  message: string;\r\n}\r\n\r\nexport enum StudentChangePasswordResult {\r\n  Success = 1,\r\n  Error = 2,\r\n  PasswordIsRequired = 3,\r\n  PasswordInvalid = 6,\r\n  PasswordError = 4,\r\n  TimeOut = 5\r\n}\r\n\r\nexport interface StudentSignInResponse {\r\n  result: StudentSignInResult;\r\n  student: StudentContext;\r\n  token: string;\r\n}\r\n\r\nexport interface StudentSignInRequest {\r\n  contractId: number;\r\n  password: string;\r\n}\r\n\r\nexport enum StudentSignInResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\nexport interface StudentPasswordResponse {\r\n  result: StudentPasswordResult;\r\n}\r\n\r\nexport interface StudentPasswordRequest {\r\n  email: string;\r\n}\r\n\r\nexport enum StudentPasswordResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  EmailIncorrect = 2,\r\n  Error = 4\r\n}\r\n\r\nexport interface StudentState {\r\n  isLoading: boolean;\r\n  error: boolean;\r\n  student: Student | null;\r\n  contract: Contract | null;\r\n  token: string;\r\n}\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { dispatch } from '../store';\r\n// utils\r\nimport axios from '../../utils/axios';\r\nimport {\r\n  PageTemplateResponse,\r\n  PageTemplateResult,\r\n  PageTemplateState,\r\n  PageTemplateType\r\n} from '../../@types/pageTemplateModel';\r\n// @types\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: PageTemplateState = {\r\n  isLoading: false,\r\n  error: false,\r\n  templates: [],\r\n  template: null\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'pageTemplate',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n    },\r\n\r\n    endLoading(state) {\r\n      state.isLoading = false;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    getPageTemplatesSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.templates = action.payload;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getPageTemplates(type: PageTemplateType) {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get<PageTemplateResponse>(`/api/settings/page/${type}`);\r\n      const { result, page } = response.data;\r\n      switch (result) {\r\n        case PageTemplateResult.Success:\r\n          dispatch(slice.actions.getPageTemplatesSuccess([page]));\r\n          break;\r\n        default:\r\n          dispatch(slice.actions.endLoading());\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n","import { ReactNode, createContext, useState, useEffect } from 'react';\r\nimport {\r\n  HubConnection,\r\n  HubConnectionBuilder,\r\n  IHttpConnectionOptions,\r\n  LogLevel,\r\n  HttpTransportType,\r\n  HubConnectionState\r\n} from '@microsoft/signalr';\r\nimport { apiConfig, signalRConfig } from 'config';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface IHubContext {\r\n  methode<T = any>(methodName: string, ...args: any[]): Promise<T>;\r\n  error: any;\r\n  connect: () => void;\r\n  disConnect: () => void;\r\n  connection?: HubConnection | null;\r\n}\r\n\r\nconst HubContext = createContext<IHubContext | null>(null);\r\n\r\ntype HubContextProviderProps = {\r\n  children: ReactNode;\r\n};\r\n\r\nfunction HubContextProvider({ children }: HubContextProviderProps) {\r\n  const [connection, setConnection] = useState<HubConnection | null>();\r\n  const [connectionState, setConnectionState] = useState<HubConnectionState>();\r\n  const [isStarted, setIsStarted] = useState(false);\r\n  const [error, setError] = useState<string | null>();\r\n\r\n  useEffect(() => {\r\n    load();\r\n    return () => {\r\n      //deconnection\r\n      if (connection && connection.connectionId != null) connection.stop();\r\n    };\r\n  }, []);\r\n\r\n  /**\r\n   * permet de se reconnecter automatiquement sur F5\r\n   */\r\n  useEffect(() => {\r\n    if (connection === null) return;\r\n    _connect();\r\n  }, [connection]);\r\n\r\n  const load = () => {\r\n    if (!signalRConfig.activate) return;\r\n\r\n    const token = localStorage.getItem('accessToken') || '';\r\n\r\n    if (token === '') return;\r\n\r\n    // connexion au studentHub : centre d'events liés à l'élève\r\n    // les informations sont capturées coté serveur\r\n    var url: string = `${apiConfig.urlBase}/studenthub`;\r\n\r\n    const options: IHttpConnectionOptions = {\r\n      accessTokenFactory: () => token,\r\n      transport: HttpTransportType.WebSockets,\r\n      skipNegotiation: true\r\n    };\r\n    try {\r\n      const newConnection = new HubConnectionBuilder()\r\n        .withUrl(url, options) //transport signalR : websocket ou pooling\r\n        .withAutomaticReconnect() // .configureLogging(LogLevel.Trace)\r\n        .configureLogging(LogLevel.None)\r\n        .build(); //\r\n\r\n      //ecoutes les events suivants\r\n      newConnection.onreconnecting((error) => {\r\n        setConnectionState(HubConnectionState.Disconnecting);\r\n      });\r\n\r\n      newConnection.onclose((error) => {\r\n        setConnectionState(HubConnectionState.Disconnected);\r\n      });\r\n\r\n      newConnection.onreconnected((error) => {\r\n        setConnectionState(HubConnectionState.Connected);\r\n      });\r\n\r\n      setConnection(newConnection);\r\n    } catch (ex) {\r\n      console.log('errorConnectedHub');\r\n    }\r\n  };\r\n\r\n  const _connect = () => {\r\n    if (!connection) load();\r\n\r\n    if (!connection || connection?.state === HubConnectionState.Connected) return;\r\n\r\n    if (connection) {\r\n      //console.log('connection', connection.connectionId, connection);\r\n      connection\r\n        .start()\r\n        .then(function (value: any) {\r\n          setConnectionState(HubConnectionState.Connected);\r\n          setIsStarted(true);\r\n        })\r\n        .catch(function (err: any) {\r\n          if (isStarted) {\r\n            // la connection a deja eu lieu : il faut faire un refresh général pour avoir la page de login\r\n            setError('reload');\r\n          }\r\n          return console.error(err.toString());\r\n        });\r\n    }\r\n  };\r\n\r\n  //Connection standard\r\n  const connect = () => {\r\n    _connect();\r\n  };\r\n\r\n  const deconnect = () => {\r\n    connection?.stop();\r\n\r\n    setConnection(null);\r\n  };\r\n\r\n  /**\r\n   * Envoyer au serveur les données\r\n   * @param methodName : Nom de la méthode\r\n   * @param args : parameters\r\n   * @returns\r\n   */\r\n  async function methode(methodName: string, ...args: any[]) {\r\n    if (connection && connection.state === HubConnectionState.Connected) {\r\n      try {\r\n        return await connection?.invoke(methodName, ...args);\r\n      } catch (ex) {\r\n        console.log(ex);\r\n      }\r\n    }\r\n  }\r\n\r\n  return (\r\n    <HubContext.Provider\r\n      value={{\r\n        methode,\r\n        error: error,\r\n        disConnect: deconnect,\r\n        connect: connect,\r\n        connection: connection\r\n      }}\r\n    >\r\n      {children}\r\n    </HubContext.Provider>\r\n  );\r\n}\r\n\r\nexport { HubContextProvider, HubContext };\r\n","import { FormikProps } from 'formik';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport type InitialValues = {\r\n  name: string;\r\n  phone: string;\r\n  email: string;\r\n  address: string;\r\n  subscription?: string;\r\n  isMonthly?: boolean;\r\n  method?: string;\r\n  card?: string;\r\n  newCardName?: string;\r\n  newCardNumber?: string;\r\n  newCardExpired?: string;\r\n  newCardCvv?: string;\r\n};\r\n\r\nexport type PaymentFormikProps = FormikProps<InitialValues>;\r\n\r\nexport interface PaymentAddResponse {\r\n  result: PaymentAddResult;\r\n  content: string;\r\n  errorDescription: string;\r\n}\r\n\r\nexport enum PaymentAddResult {\r\n  Error = 0,\r\n  Success = 1\r\n}\r\n\r\nexport enum PaymentStatus {\r\n  Current = 0,\r\n  Accepted = 1,\r\n  Rejected = 2\r\n}\r\n","import { ReactNode, createContext, useEffect } from 'react';\r\n// hooks\r\nimport useLocalStorage from '../hooks/useLocalStorage';\r\n// theme\r\nimport palette from '../theme/palette';\r\n// @type\r\nimport { ThemeMode, ThemeDirection, ThemeColor, SettingsContextProps } from '../@types/settings';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst PRIMARY_COLOR = [\r\n  // DEFAULT\r\n  {\r\n    name: 'default',\r\n    ...palette.light.primary\r\n  },\r\n  // PURPLE\r\n  {\r\n    name: 'purple',\r\n    lighter: '#EBD6FD',\r\n    light: '#B985F4',\r\n    main: '#7635dc',\r\n    dark: '#431A9E',\r\n    darker: '#200A69',\r\n    contrastText: '#fff'\r\n  },\r\n  // CYAN\r\n  {\r\n    name: 'cyan',\r\n    lighter: '#D1FFFC',\r\n    light: '#76F2FF',\r\n    main: '#1CCAFF',\r\n    dark: '#0E77B7',\r\n    darker: '#053D7A',\r\n    contrastText: palette.light.grey[800]\r\n  },\r\n  // BLUE\r\n  {\r\n    name: 'blue',\r\n    lighter: '#CCDFFF',\r\n    light: '#6697FF',\r\n    main: '#6369FF',\r\n    dark: '#0027B7',\r\n    darker: '#00137A',\r\n    contrastText: '#fff'\r\n  },\r\n  // ORANGE\r\n  {\r\n    name: 'orange',\r\n    lighter: '#FEF4D4',\r\n    light: '#FED680',\r\n    main: '#fda92d',\r\n    dark: '#B66816',\r\n    darker: '#793908',\r\n    contrastText: palette.light.grey[800]\r\n  },\r\n  // RED\r\n  {\r\n    name: 'red',\r\n    lighter: '#FFE3D5',\r\n    light: '#FFC1AC',\r\n    main: '#FF3030',\r\n    dark: '#B71833',\r\n    darker: '#7A0930',\r\n    contrastText: '#fff'\r\n  }\r\n];\r\n\r\nfunction SetColor(themeColor: ThemeColor) {\r\n  return PRIMARY_COLOR[3];\r\n}\r\n\r\nconst initialState: SettingsContextProps = {\r\n  themeMode: 'light',\r\n  themeDirection: 'ltr',\r\n  themeColor: 'default',\r\n  themeStretch: false,\r\n  onChangeMode: () => {},\r\n  onChangeDirection: () => {},\r\n  onChangeColor: () => {},\r\n  onToggleStretch: () => {},\r\n  setColor: PRIMARY_COLOR[0],\r\n  colorOption: []\r\n};\r\n\r\nconst SettingsContext = createContext(initialState);\r\n\r\ntype SettingsProviderProps = {\r\n  children: ReactNode;\r\n};\r\n\r\nfunction SettingsProvider({ children }: SettingsProviderProps) {\r\n  const [settings, setSettings] = useLocalStorage('settings', {\r\n    themeMode: initialState.themeMode,\r\n    themeDirection: initialState.themeDirection,\r\n    themeColor: initialState.themeColor,\r\n    themeStretch: initialState.themeStretch\r\n  });\r\n\r\n  const onChangeMode = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n    setSettings({\r\n      ...settings,\r\n      themeMode: (event.target as HTMLInputElement).value as ThemeMode\r\n    });\r\n  };\r\n\r\n  const onChangeDirection = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n    setSettings({\r\n      ...settings,\r\n      themeDirection: (event.target as HTMLInputElement).value as ThemeDirection\r\n    });\r\n  };\r\n\r\n  const onChangeColor = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n    setSettings({\r\n      ...settings,\r\n      themeColor: (event.target as HTMLInputElement).value as ThemeColor\r\n    });\r\n  };\r\n\r\n  const onToggleStretch = () => {\r\n    setSettings({\r\n      ...settings,\r\n      themeStretch: !settings.themeStretch\r\n    });\r\n  };\r\n\r\n  return (\r\n    <SettingsContext.Provider\r\n      value={{\r\n        ...settings,\r\n        // Mode\r\n        onChangeMode,\r\n        // Direction\r\n        onChangeDirection,\r\n        // Color\r\n        onChangeColor,\r\n        setColor: SetColor(settings.themeColor),\r\n        colorOption: PRIMARY_COLOR.map((color) => ({\r\n          name: color.name,\r\n          value: color.main\r\n        })),\r\n        // Stretch\r\n        onToggleStretch\r\n      }}\r\n    >\r\n      {children}\r\n    </SettingsContext.Provider>\r\n  );\r\n}\r\n\r\nexport { SettingsProvider, SettingsContext };\r\n","export function truncate(text: string, maxSize: number = 50) {\r\n  const tmpText = text?.trim();\r\n  return tmpText?.length > maxSize ? tmpText.substring(0, maxSize) + '...' : tmpText;\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\n\r\n//material\r\nimport { Button, Grid, Typography, Avatar, Stack, Alert } from '@mui/material';\r\n\r\n//utils\r\nimport { fTime } from 'utils/formatTime';\r\n\r\n//Type\r\nimport { AgendaScheduleTeacher, TimeSlot } from '../../../@types/agenda';\r\nimport { Teacher } from '../../../@types/pedagogy';\r\n\r\ntype TimeSlotsFilterProps = {\r\n  metadatas: Array<AgendaScheduleTeacher>;\r\n  children: (slot: AgendaScheduleTeacher) => React.ReactNode;\r\n};\r\n\r\nexport const TimeSlotsFilter = ({ metadatas = [], children }: TimeSlotsFilterProps) => {\r\n  const [teacher, setTeacher] = useState<Teacher>(metadatas[0]?.teacher);\r\n\r\n  const handleTeacher = (teacher: Teacher) => {\r\n    setTeacher(teacher);\r\n  };\r\n\r\n  return (\r\n    <Grid container spacing={2}>\r\n      <Grid item xs={12}>\r\n        <Stack direction=\"row\" spacing={1.5} alignItems=\"center\">\r\n          <Avatar variant=\"circular\">1</Avatar>\r\n          <Typography> Sélectionnez un formateur ou une formatrice</Typography>\r\n        </Stack>\r\n      </Grid>\r\n      <Grid item xs={12}>\r\n        {metadatas.map((data) => {\r\n          return (\r\n            <TimeSlotTeacher\r\n              key={data.teacher.id}\r\n              teacher={data.teacher}\r\n              selected={data.teacher.id === teacher.id}\r\n              onSelect={handleTeacher}\r\n            />\r\n          );\r\n        })}\r\n      </Grid>\r\n      <Grid item xs={12}>\r\n        <Stack direction=\"row\" spacing={1.5} alignItems=\"center\">\r\n          <Avatar variant=\"circular\">2</Avatar> <Typography>Sélectionnez un horaire</Typography>{' '}\r\n        </Stack>\r\n      </Grid>\r\n      <Grid item xs={12}>\r\n        <Stack spacing={2} direction=\"column\" alignItems={'center'}>\r\n          {metadatas\r\n            .filter((w) => w.teacher.id === teacher.id)\r\n            .map((data, index) => {\r\n              return (\r\n                <React.Fragment key={`timeSlotButon--${index}`}>{children(data)}</React.Fragment>\r\n              );\r\n            })}\r\n        </Stack>\r\n      </Grid>\r\n    </Grid>\r\n  );\r\n};\r\n\r\nexport function TimeSlotTeacher({\r\n  teacher,\r\n  selected,\r\n  onSelect\r\n}: {\r\n  teacher: Teacher;\r\n  selected: boolean;\r\n  onSelect(teacher: Teacher): void;\r\n}) {\r\n  return (\r\n    <Typography component={'span'} key={`idx_${teacher.id}`} sx={{ mr: 2 }}>\r\n      <Button\r\n        variant={selected ? 'contained' : 'outlined'}\r\n        color=\"primary\"\r\n        size=\"small\"\r\n        onClick={() => onSelect(teacher)}\r\n      >\r\n        {teacher.civility} {teacher.lastName}\r\n      </Button>\r\n    </Typography>\r\n  );\r\n}\r\n","//material\r\nimport { Button, Tooltip, Typography } from '@mui/material';\r\nimport { fTime } from 'utils/formatTime';\r\n\r\n//Type\r\nimport { TimeSlot } from '../../../@types/agenda';\r\n\r\nexport const TimeSlotsDisplay = (props: {\r\n  timeSlots: Array<TimeSlot>;\r\n  onSelected(timeSlot: TimeSlot): void;\r\n  isSmall: boolean;\r\n  hourLimit: number;\r\n}) => {\r\n  const getLabel = (duration: number) => {\r\n    return `durée ${duration} min`;\r\n  };\r\n\r\n  return (\r\n    <>\r\n      {props.timeSlots.map((timeSlot: any, index: number) => {\r\n        return (\r\n          <Tooltip title={getLabel(timeSlot.duration)} key={`timeSlotButon${index}`}>\r\n            <Button\r\n              onClick={() => props.onSelected(timeSlot)}\r\n              variant=\"contained\"\r\n              size=\"small\"\r\n              color=\"primary\"\r\n              sx={{ textTransform: 'lowercase', m: 0.3 }}\r\n            >\r\n              {fTime(timeSlot.dateStart)} {!props.isSmall && ` - durée ${timeSlot.duration}min`}\r\n            </Button>\r\n          </Tooltip>\r\n        );\r\n      })}\r\n    </>\r\n  );\r\n};\r\n","import { MediaFileType } from '../../../@types/media';\r\nimport {\r\n  ArticleRounded,\r\n  ExpandMore,\r\n  Image,\r\n  LibraryMusicRounded,\r\n  LinkRounded,\r\n  PictureAsPdfRounded,\r\n  VideoLibraryRounded\r\n} from '@mui/icons-material';\r\n\r\ntype MediaFileAvatarProps = {\r\n  type: MediaFileType;\r\n  isRead: boolean;\r\n};\r\n\r\n/**\r\n * Avatar par type de media\r\n * @param type\r\n * @param isRead\r\n * @returns\r\n */\r\nexport function MediaFileAvatar({ type, isRead }: MediaFileAvatarProps) {\r\n  switch (type) {\r\n    case MediaFileType.Audio:\r\n      return <LibraryMusicRounded color=\"primary\" />;\r\n\r\n    case MediaFileType.Videos:\r\n      return <VideoLibraryRounded color=\"primary\" />;\r\n    case MediaFileType.Autres:\r\n      return <ArticleRounded color=\"primary\" />;\r\n    case MediaFileType.Html:\r\n      return <ArticleRounded color=\"primary\" />;\r\n    case MediaFileType.Images:\r\n      return <Image color=\"primary\" />;\r\n    case MediaFileType.UrlText:\r\n      return <LinkRounded color=\"primary\" />;\r\n    default:\r\n      return <PictureAsPdfRounded color=\"primary\" />;\r\n  }\r\n}\r\n","import { Typography } from '@mui/material';\r\nimport { Alert } from '@mui/material';\r\nimport { useState } from 'react';\r\nimport StudentHourMessage from '../student/StudentHourMessage';\r\n\r\nexport const SheduleTeacherMessage = () => {\r\n  const [open, setOpen] = useState(true);\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  if (!open) return <></>;\r\n\r\n  return (\r\n    <>\r\n      <Alert severity=\"info\" onClose={handleClose}>\r\n        <Typography variant=\"subtitle2\">Pour information</Typography>\r\n        Vous êtes sur le point de prendre rendez-vous avec un formateur. Nous tenons à vous rappeler\r\n        que ce n’est pas un cours, mais un rendez-vous vous permettant de discuter avec vos\r\n        formateurs sur vos difficultés liées à un cours ou une évaluation.\r\n      </Alert>\r\n      <StudentHourMessage />\r\n    </>\r\n  );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useSnackbar } from 'notistack';\r\n\r\n// material\r\nimport {\r\n  List,\r\n  Button,\r\n  Typography,\r\n  Box,\r\n  DialogActions,\r\n  Dialog,\r\n  DialogTitle,\r\n  DialogContent,\r\n  Alert\r\n} from '@mui/material';\r\nimport {\r\n  PermContactCalendar,\r\n  CheckOutlined,\r\n  Phone,\r\n  Videocam,\r\n  Notes,\r\n  AccessTime\r\n} from '@mui/icons-material';\r\nimport { LoadingButton } from '@mui/lab';\r\n\r\n// redux\r\nimport { dispatch, RootState, useDispatch, useSelector } from 'redux/store';\r\nimport { cancelMeeting } from 'redux/slices/meeting';\r\n\r\n//type\r\nimport { Meeting, MeetingStatus, MeetingType } from '../../../@types/meeting';\r\n\r\n//Composants\r\nimport {\r\n  RowItem,\r\n  RowItemDisplay,\r\n  RowItemDisplayComment,\r\n  RowItemDisplayDateTime,\r\n  RowItemDisplayTeacher,\r\n  RowItemDisplayTitle\r\n} from 'components/RowListItem';\r\n\r\nimport { MeetingVisioMessage, MeetingPhoneMessage } from 'components/_dashboard/meeting';\r\n\r\nimport MeetingErrorMessage from './MeetingErrorMessage';\r\nimport { MeetingTimeCount, MeetingTimeCountDisplay } from './MeetingTimeCount';\r\nimport { isAfterDate } from 'utils/formatTime';\r\nimport Scrollbar from 'components/Scrollbar';\r\nimport { MeetingStatusDisplay } from 'components/_dashboard/meeting/MeetingStatusDisplay';\r\nimport MeetingAlertMessageOral from './MeetingAlertMessageOral';\r\nimport DialogConfirm from 'components/DialogConfirm';\r\nimport MeetingButtonVisio from './MeetingButtonVisio';\r\nimport { useNavigate } from 'react-router';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\n\r\ntype MeetingViewProps = {\r\n  onClose: VoidFunction;\r\n  onChangeMode: VoidFunction;\r\n  isVoice?: boolean;\r\n};\r\n\r\n/**\r\n * Vue des rendezvous : affichage et annulation\r\n */\r\nexport function MeetingView({ onClose, onChangeMode, isVoice = false }: MeetingViewProps) {\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const { meeting, isLoading, error } = useSelector((state: RootState) => state.meeting);\r\n  const [open, setOpen] = useState(false);\r\n  const navigate = useNavigate();\r\n\r\n  const handleModal = () => {\r\n    setOpen(!open);\r\n  };\r\n\r\n  const handleCancel = () => {\r\n    //annulation envoyé\r\n    dispatch(\r\n      cancelMeeting(meeting!)(() => {\r\n        enqueueSnackbar('Le rendez-vous a été annulé', { variant: 'success' });\r\n        onClose();\r\n      })\r\n    );\r\n  };\r\n\r\n  // lien vers le devoir\r\n  const handleLink = () => {\r\n    navigate(PATH_DASHBOARD.studyPlan.details + `/${meeting?.homework?.barCode}`);\r\n  };\r\n\r\n  //Gestion des constante de date\r\n  const dateStart = meeting?.dateStart ?? new Date().toString();\r\n  const dateEnd = meeting?.dateEnd ?? new Date().toString();\r\n  // Bloque la modification eventuelle\r\n  const isStarted = isAfterDate(new Date(), dateStart);\r\n  const isFinished = isAfterDate(new Date(), dateEnd);\r\n\r\n  isVoice = meeting?.homework !== null;\r\n\r\n  return (\r\n    <Box sx={{ p: 3 }}>\r\n      <Scrollbar>\r\n        <List>\r\n          {!isVoice && (\r\n            <RowItemDisplayTitle\r\n              icon={<PermContactCalendar />}\r\n              title={<Typography variant=\"h6\"> {meeting?.material?.label}</Typography>}\r\n            >\r\n              {<MeetingStatusDisplay status={meeting?.status} />}\r\n            </RowItemDisplayTitle>\r\n          )}\r\n          <RowItemDisplayDateTime start={dateStart} end={dateEnd} isLimit={false}>\r\n            <MeetingTimeCount start={dateStart} end={dateEnd} isVirtual={false}>\r\n              {(time: string) => (\r\n                <>\r\n                  <MeetingTimeCountDisplay\r\n                    isStarted={isStarted}\r\n                    isPhone={meeting?.type === 0}\r\n                    time={time}\r\n                  />\r\n                </>\r\n              )}\r\n            </MeetingTimeCount>\r\n          </RowItemDisplayDateTime>\r\n\r\n          {meeting?.type !== MeetingType.Phone ? (\r\n            <RowItem\r\n              title={\r\n                <MeetingTimeCount start={dateStart} end={dateEnd} isVirtual={false}>\r\n                  {(time: string, isActivate: boolean) => {\r\n                    return (\r\n                      <MeetingButtonVisio disabled={false} id={meeting?.id!} isVirtual={false} />\r\n                    );\r\n                  }}\r\n                </MeetingTimeCount>\r\n              }\r\n              icon={<Videocam />}\r\n              subTitle={<MeetingVisioMessage />}\r\n            />\r\n          ) : (\r\n            <RowItem\r\n              title={<Typography variant=\"subtitle2\">Participer par téléphone</Typography>}\r\n              icon={<Phone />}\r\n              subTitle={\r\n                <>\r\n                  <Typography variant=\"body2\">Mon numéro : {meeting.phone}</Typography>\r\n                  {!isFinished && <MeetingPhoneMessage />}\r\n                </>\r\n              }\r\n            />\r\n          )}\r\n          <RowItemDisplayTeacher teacher={meeting?.teacher} />\r\n\r\n          {meeting?.observation && (\r\n            <RowItemDisplayComment>{meeting?.observation} </RowItemDisplayComment>\r\n          )}\r\n\r\n          {isVoice && (\r\n            <RowItemDisplay\r\n              icon={<></>}\r\n              title={<Typography variant=\"subtitle2\">Évaluation</Typography>}\r\n            >\r\n              <Typography component={'div'} variant=\"caption\">\r\n                {meeting?.homework?.label}\r\n              </Typography>\r\n              <Button variant=\"text\" onClick={handleLink}>\r\n                Consulter l'évaluation\r\n              </Button>\r\n            </RowItemDisplay>\r\n          )}\r\n        </List>\r\n        {!isStarted && !isFinished && !isVoice && <MeetingAlertMessageOral meeting={meeting} />}\r\n\r\n        {!isFinished && (\r\n          <DialogActions sx={{ justifyContent: 'center', mt: 5 }}>\r\n            <Button type=\"button\" variant=\"text\" color=\"primary\" onClick={onChangeMode}>\r\n              MODIFIER\r\n            </Button>\r\n\r\n            {!isStarted && (\r\n              <Button\r\n                type=\"button\"\r\n                variant=\"outlined\"\r\n                size=\"large\"\r\n                color=\"primary\"\r\n                onClick={handleModal}\r\n              >\r\n                ANNULER MON RENDEZ-VOUS\r\n              </Button>\r\n            )}\r\n          </DialogActions>\r\n        )}\r\n\r\n        <DialogConfirm\r\n          open={open}\r\n          onCancel={handleModal}\r\n          onConfirm={handleCancel}\r\n          isLoading={isLoading}\r\n        >\r\n          <Typography variant=\"subtitle2\" paragraph sx={{ pt: 2 }}>\r\n            Confirmez-vous l'annulation de votre rendez-vous ?\r\n          </Typography>\r\n          {error && (\r\n            <Alert severity=\"error\">\r\n              Désolé, Nous ne pouvons pas donner suite à cette demande.\r\n            </Alert>\r\n          )}\r\n        </DialogConfirm>\r\n      </Scrollbar>\r\n    </Box>\r\n  );\r\n}\r\n","import { SummaryRequest } from './common';\r\n\r\nexport type NotificationState = {\r\n  isLoading: boolean;\r\n  error: any;\r\n  notifications: Array<NotificationItem>;\r\n  hasMore: boolean;\r\n  index: number;\r\n  step: number;\r\n  count: number;\r\n  countUnRead: number;\r\n};\r\n\r\nexport enum NotificationStatus {\r\n  New = 1,\r\n  Treated = 2\r\n}\r\n\r\nexport interface NotificationItem {\r\n  type: NotificationType;\r\n  title: string;\r\n  createdDate: string;\r\n  reference: string;\r\n  id: number;\r\n  read: boolean;\r\n  idType: number;\r\n  description: string;\r\n}\r\n\r\nexport interface NotificationListRequest extends SummaryRequest {}\r\n\r\nexport enum NotificationType {\r\n  Actualites = 0,\r\n  Events = 1,\r\n  Annonces = 2,\r\n  Medias = 3,\r\n  Preinscription = 4,\r\n  Questions = 5,\r\n  Devoirs = 6,\r\n  DevoirsRecus = 10,\r\n  DevoirsEnvoyes = 11,\r\n  DevoirsCorriges = 12,\r\n  Colis = 7,\r\n  NovadisNormal = 20,\r\n  NovadisImportant = 21,\r\n  Adresse = 22,\r\n  TachesMessage = 23,\r\n  NoteEvenements = 24,\r\n  Notification = 25,\r\n  CamCoaAbouti = 30,\r\n  CamCoaPriseContact = 31,\r\n  CamCoaRepondeur = 32,\r\n  CamCoaNumeroErrone = 33,\r\n  CamCoaNeRepondsPas = 34,\r\n  CamCoaAbandonne = 35,\r\n  TravauxPratiques = 36,\r\n  MeetingAbsence = 37,\r\n  Meeting = 38,\r\n  VirtualClass = 100,\r\n  VirtualClassNotificationConfirmation = 101,\r\n  VirtualClassNotificationCancel = 102,\r\n  VirtualClassNotificationPlaceOfFree = 103,\r\n  VirtualClassNotificationWaiting = 104,\r\n  EvaluationEnonceUnlock = 105,\r\n  Examens = 106,\r\n  VirtualClassNotificationCancelBySchool = 107,\r\n  Payment = 110\r\n}\r\n\r\nexport interface NotificationListResponse {\r\n  result: NotificationListResult;\r\n  list: NotificationItem[];\r\n  count: number;\r\n  countUnRead: number;\r\n}\r\n\r\nexport enum NotificationListResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n\r\nexport type NotificationSettingsProps = {\r\n  id: NotificationType;\r\n  tagLabel: string;\r\n  color: string;\r\n  bgcolor: string;\r\n  title: string;\r\n};\r\n","import { useState } from 'react';\r\nimport { useFormik, Form } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport { useSnackbar } from 'notistack';\r\nimport trash2Fill from '@iconify/icons-eva/trash-2-fill';\r\nimport { Icon } from '@iconify/react';\r\n//material\r\nimport {\r\n  AccessTime,\r\n  DataUsage,\r\n  Edit,\r\n  SettingsInputComponent,\r\n  WatchLater\r\n} from '@mui/icons-material';\r\nimport {\r\n  Link,\r\n  DialogActions,\r\n  IconButton,\r\n  List,\r\n  Stack,\r\n  TextField,\r\n  Tooltip,\r\n  Typography,\r\n  Button,\r\n  Collapse,\r\n  Alert\r\n} from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport { DesktopDateTimePicker, LoadingButton } from '@mui/lab';\r\n\r\n//model\r\nimport { TaskModel } from '../../../@types/task';\r\n\r\n//redux\r\nimport { RootState, useDispatch, useSelector } from 'redux/store';\r\nimport { addOrUpdateTask, removeTask } from 'redux/slices/task';\r\n\r\n//hook\r\nimport useStudyPlan from 'hooks/useStudyPlan';\r\n\r\nimport { fDate, fDateMeeting, formatAPI, isBeforeDate, isDateValid } from 'utils/formatTime';\r\n\r\n//composant\r\nimport {\r\n  RowItem,\r\n  RowItemDisplay,\r\n  RowItemDisplayAlert,\r\n  RowItemDisplayComment,\r\n  RowItemDisplayTitle\r\n} from 'components/RowListItem';\r\nimport DialogConfirm from 'components/DialogConfirm';\r\nimport { useNavigate } from 'react-router';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport { addDays, addHours } from 'date-fns';\r\n\r\nexport type AgendaTaskDetailProps = {\r\n  onClose: VoidFunction;\r\n  task: TaskModel;\r\n  isLinkToCourse?: boolean;\r\n};\r\n\r\nexport default function AgendaTaskDetail({\r\n  task,\r\n  onClose,\r\n  isLinkToCourse = true\r\n}: AgendaTaskDetailProps) {\r\n  const dispatch = useDispatch();\r\n  const navigate = useNavigate();\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const studyPlanManager = useStudyPlan();\r\n  const { isLoading, error } = useSelector((state: RootState) => state.task);\r\n  const [open, setOpen] = useState(false);\r\n  const [updated, setUpdated] = useState(task.id === 0);\r\n\r\n  const EventSchema = Yup.object().shape({\r\n    label: Yup.string().max(255).required('Le titre est obligatoire'),\r\n    dateStart: Yup.date().required('La date est obligatoire'),\r\n    dateEnd: Yup.date().required('La date est obligatoire'),\r\n    observation: Yup.string()\r\n  });\r\n\r\n  const formik = useFormik({\r\n    initialValues: task,\r\n    validationSchema: EventSchema,\r\n    onSubmit: async (values, { setSubmitting }) => {\r\n      if (isDateError) return;\r\n      try {\r\n        dispatch(\r\n          addOrUpdateTask(values)(() => {\r\n            enqueueSnackbar('Enregistrement effectué', { variant: 'success' });\r\n            onClose();\r\n          })\r\n        );\r\n\r\n        setSubmitting(false);\r\n      } catch (error) {\r\n        console.error(error);\r\n      }\r\n    }\r\n  });\r\n\r\n  const handleDelete = async () => {\r\n    if (task.id === 0) return;\r\n    dispatch(\r\n      removeTask(task.id)(() => {\r\n        setOpen(false);\r\n        onClose();\r\n        enqueueSnackbar('Suppression effectuée', { variant: 'success' });\r\n      })\r\n    );\r\n  };\r\n\r\n  const handleMove = () => {\r\n    navigate(\r\n      PATH_DASHBOARD.studyPlan.details + `/${task.barCode === '' ? task.courseId : task.barCode}`\r\n    );\r\n  };\r\n\r\n  const handleChange = (name: string, value: Date | string | null) => {\r\n    if (isDateValid(value)) {\r\n      switch (name) {\r\n        case 'dateStart':\r\n          value && setFieldValue('dateEnd', addHours(new Date(value), 2));\r\n      }\r\n      setFieldValue(name, value);\r\n    }\r\n  };\r\n\r\n  const { values, errors, touched, isSubmitting, setFieldValue, getFieldProps } = formik;\r\n  const isCreating = task.id === 0;\r\n  const isDateError = isBeforeDate(new Date(values.dateEnd), new Date(values.dateStart));\r\n\r\n  return (\r\n    <Box sx={{ p: 3 }}>\r\n      <form autoComplete=\"off\" noValidate onSubmit={formik.handleSubmit}>\r\n        <List>\r\n          <Collapse in={!updated}>\r\n            <RowItemDisplayTitle title={<Typography variant=\"h6\"> {values.label}</Typography>}>\r\n              <Typography variant=\"body2\" paragraph>\r\n                Ref - {values.barCode ? values.barCode : values.courseId}\r\n              </Typography>\r\n            </RowItemDisplayTitle>\r\n\r\n            <RowItemDisplay\r\n              title={\r\n                formatAPI(task.dateStart) === formatAPI(task.dateEnd) ? (\r\n                  <Typography>{fDateMeeting(task.dateStart, task.dateEnd)}</Typography>\r\n                ) : (\r\n                  <Typography>\r\n                    Du {fDate(task.dateStart, 'eeee dd MMMM HH:mm')} au{' '}\r\n                    {fDate(task.dateEnd, 'eeee dd MMMM HH:mm')}\r\n                  </Typography>\r\n                )\r\n              }\r\n              icon={<AccessTime />}\r\n            ></RowItemDisplay>\r\n\r\n            <RowItemDisplayComment>{values.observation}</RowItemDisplayComment>\r\n          </Collapse>\r\n          <Collapse in={updated}>\r\n            <RowItem\r\n              title={\r\n                <TextField\r\n                  label={`Titre - ${values.barCode ? values.barCode : values.courseId} `}\r\n                  disabled={values.isLocked}\r\n                  fullWidth\r\n                  {...getFieldProps('label')}\r\n                  error={Boolean(errors.label)}\r\n                  helperText={touched.label && errors.label}\r\n                />\r\n              }\r\n            />\r\n            <RowItemDisplay\r\n              title={\r\n                <Stack direction={{ xs: 'column' }} spacing={1}>\r\n                  <DesktopDateTimePicker\r\n                    label=\"Débute le \"\r\n                    disabled={values.isLocked}\r\n                    value={values.dateStart}\r\n                    onChange={(date) => handleChange('dateStart', date)}\r\n                    renderInput={(params) => (\r\n                      <TextField\r\n                        {...params}\r\n                        margin=\"dense\"\r\n                        sx={{ mt: 0 }}\r\n                        fullWidth\r\n                        error={Boolean(errors.dateStart)}\r\n                        helperText={touched.dateStart && errors.dateStart}\r\n                      />\r\n                    )}\r\n                  />\r\n\r\n                  <DesktopDateTimePicker\r\n                    disabled={values.isLocked}\r\n                    label=\"jusqu'au\"\r\n                    value={values.dateEnd}\r\n                    minDate={new Date()}\r\n                    onChange={(date) => handleChange('dateEnd', date)}\r\n                    renderInput={(params) => (\r\n                      <TextField\r\n                        {...params}\r\n                        margin=\"dense\"\r\n                        fullWidth\r\n                        error={Boolean(isDateError)}\r\n                        helperText={\r\n                          isDateError && 'La date de fin doit être postérieure à la date de début'\r\n                        }\r\n                        sx={{ mb: 3 }}\r\n                      />\r\n                    )}\r\n                  />\r\n                </Stack>\r\n              }\r\n              icon={<WatchLater />}\r\n            />\r\n\r\n            <RowItemDisplayComment>\r\n              <TextField\r\n                disabled={values.isLocked}\r\n                fullWidth\r\n                multiline\r\n                rows={3}\r\n                maxRows={4}\r\n                label=\"\"\r\n                {...getFieldProps('observation')}\r\n                sx={{ mb: 3 }}\r\n                error={Boolean(errors.observation)}\r\n                helperText={touched.observation && errors.observation}\r\n              />\r\n            </RowItemDisplayComment>\r\n          </Collapse>\r\n          {task.isLocked && (\r\n            <RowItemDisplayAlert alertColor=\"info\">\r\n              <Typography>Cette planification est verrouillée par votre coach</Typography>\r\n            </RowItemDisplayAlert>\r\n          )}\r\n        </List>\r\n        {error && <Alert severity=\"error\">{error}</Alert>}\r\n        <DialogActions sx={{ justifyContent: 'center', mt: 10 }}>\r\n          {!isCreating && !updated && (\r\n            <Tooltip title=\"Supprimer la tache\">\r\n              <span>\r\n                <IconButton disabled={task.isLocked} onClick={() => setOpen(true)}>\r\n                  <Icon icon={trash2Fill} width={20} height={20} />\r\n                </IconButton>\r\n              </span>\r\n            </Tooltip>\r\n          )}\r\n          <Box sx={{ flexGrow: 1 }} />\r\n          {!isCreating && (\r\n            <Button\r\n              disabled={task.isLocked}\r\n              variant=\"text\"\r\n              onClick={() => setUpdated(!updated)}\r\n              color=\"primary\"\r\n            >\r\n              {updated ? 'Annuler' : 'Modifier'}\r\n            </Button>\r\n          )}\r\n\r\n          {updated ? (\r\n            <LoadingButton\r\n              size=\"large\"\r\n              type=\"submit\"\r\n              color=\"primary\"\r\n              variant=\"contained\"\r\n              loading={isLoading}\r\n              loadingIndicator=\"Loading...\"\r\n            >\r\n              ENREGISTRER\r\n            </LoadingButton>\r\n          ) : (\r\n            <>\r\n              {isLinkToCourse && (\r\n                <Button\r\n                  size=\"large\"\r\n                  sx={{ ml: 4 }}\r\n                  color=\"primary\"\r\n                  variant=\"contained\"\r\n                  onClick={handleMove}\r\n                >\r\n                  CONSULTER\r\n                </Button>\r\n              )}\r\n            </>\r\n          )}\r\n        </DialogActions>\r\n      </form>\r\n\r\n      {!task.isLocked && (\r\n        <DialogConfirm\r\n          open={open}\r\n          onCancel={() => setOpen(false)}\r\n          onConfirm={handleDelete}\r\n          isLoading={isLoading}\r\n        >\r\n          <Typography variant=\"body2\">Confirmez-vous la suppression de la tache ?</Typography>\r\n        </DialogConfirm>\r\n      )}\r\n    </Box>\r\n  );\r\n}\r\n/*\r\n<List>\r\n            <RowItemDisplayTitle\r\n              icon={<Edit />}\r\n              title={`Support pédagogique`}\r\n            >\r\n              {taskManager.current?.label}<br/>\r\n              Réf : {taskManager.current?.barCode || taskManager.current?.courseId} \r\n             \r\n            </RowItemDisplayTitle>\r\n\r\n            <DateUpdatedView start={taskManager.current?.dateStart} end ={taskManager.current?.dateEnd} updated={updated}  onChange={taskManager.onChange} isLocked={taskManager.current?.isLocked}/>\r\n            \r\n            <RowItemDisplay\r\n              icon={<DataUsage />}\r\n              title={\r\n                <Grid container direction=\"row\" alignItems=\"center\"  >\r\n                 <div>Statut :</div> <StatutColorView status={taskManager.current?.status} withLabel={true}/>\r\n                </Grid>\r\n              }\r\n            />\r\n\r\n            <ObservationUpdatedView observation={taskManager.current?.observation} updated={updated} isLocked={taskManager.current?.isLocked} onChange={taskManager.onChange}/>\r\n\r\n              {taskManager.current?.id>0 &&\r\n            <RowItemDisplay title={<ColoredButton\r\n              variant=\"text\"\r\n              size=\"small\"\r\n              onClick={handleDelete}\r\n              color=\"error\"\r\n            >\r\n              Annuler la programmation du support pédagogique  \r\n            </ColoredButton>}>\r\n              \r\n              </RowItemDisplay> }\r\n\r\n           \r\n          </List>\r\n          <DialogActions>\r\n          {!task.isLocked && (\r\n            <Button\r\n              variant=\"text\"\r\n              size=\"small\"\r\n              onClick={handleClick}\r\n              color=\"primary\"\r\n            >\r\n            {updated?<span>Annuler</span>:<span>Modifier</span>}  \r\n            </Button>\r\n          )}\r\n\r\n         \r\n            <Button\r\n              type=\"submit\"\r\n              size=\"medium\"\r\n              variant=\"contained\"\r\n              color=\"primary\"\r\n              onClick={()=>updated?taskManager.save():null}\r\n            >\r\n              {updated?<span>Enregistrer</span>:<span>Consulter</span>}\r\n            </Button>\r\n         \r\n        </DialogActions>\r\n*/\r\n","import { Typography } from '@mui/material';\r\nimport { SessionCentreExamen } from '../../../@types/examen';\r\n\r\ntype ExamenCentreInfosDisplayProps = { centreExamen: SessionCentreExamen | null };\r\n\r\nexport default function ExamenCentreInfosDisplay({ centreExamen }: ExamenCentreInfosDisplayProps) {\r\n  return (\r\n    <>\r\n      {centreExamen && centreExamen.adresse != '' && (\r\n        <Typography variant=\"body2\">Centre d'examen de {centreExamen.adresse}</Typography>\r\n      )}\r\n    </>\r\n  );\r\n}\r\n","export interface SpecificNeed {\r\n  id: string;\r\n  label: string;\r\n  checked: boolean;\r\n  main: boolean;\r\n}\r\n\r\nexport interface SpecificNeedState {\r\n  isLoading: boolean;\r\n  error: any;\r\n  listeBesSpeDeclares: Array<SpecificNeedListItem>;\r\n  aucunBesSpe: SpecificNeedAucun | null;\r\n  examenBesSpe: SpecificNeedExamen | null;\r\n  pedagogiqueBesSpe: SpecificNeedPedagogique | null;\r\n  radioButton: string;\r\n  aucunBesSpeSauvegarde: boolean;\r\n  alerteSuppressionBSE: boolean;\r\n  alerteSuppressionBSP: boolean;\r\n}\r\n\r\nexport interface SpecificNeedAucun extends SpecificNeed {}\r\n\r\nexport interface SpecificNeedExamen extends SpecificNeed {}\r\n\r\nexport interface SpecificNeedPedagogique extends SpecificNeed {}\r\n\r\nexport interface SpecificNeedListItem extends SpecificNeed {\r\n  isExamen: boolean;\r\n  isPedagogique: boolean;\r\n}\r\n\r\nexport interface SpecificNeedResponse {\r\n  aucunBesoin: SpecificNeedAucun;\r\n  examen: boolean;\r\n  pedagogique: boolean;\r\n  examens: SpecificNeedExamen[];\r\n  pedagogiques: SpecificNeedPedagogique[];\r\n  result: SpecificNeedResult;\r\n  errorMessage: string;\r\n}\r\n\r\nexport enum SpecificNeedResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  Error = 2\r\n}\r\n\r\nexport interface SpecificNeedUpdateResponse {\r\n  result: SpecificNeedUpdateResult;\r\n  errorMessage: string;\r\n}\r\n\r\nexport enum SpecificNeedUpdateResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  Error = 2\r\n}\r\n\r\nexport const BSE_BSP_RADIO_BTN = 'BSE_BSP';\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { store } from '../store';\r\n// utils\r\nimport axios from '../../utils/axios';\r\nimport {\r\n  BSE_BSP_RADIO_BTN,\r\n  SpecificNeedExamen,\r\n  SpecificNeedPedagogique,\r\n  SpecificNeedResponse,\r\n  SpecificNeedResult,\r\n  SpecificNeedState,\r\n  SpecificNeedUpdateResponse,\r\n  SpecificNeedUpdateResult\r\n} from '../../@types/SpecificNeed';\r\nimport { getStudentDeclaredSpecificNeeds } from 'mapper/specificNeedsMap';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: SpecificNeedState = {\r\n  isLoading: false,\r\n  error: false,\r\n  listeBesSpeDeclares: [],\r\n  aucunBesSpe: null,\r\n  examenBesSpe: null,\r\n  pedagogiqueBesSpe: null,\r\n  radioButton: '',\r\n  aucunBesSpeSauvegarde: false, //on considère que le référent handicap a effectué une saisie en amont\r\n  alerteSuppressionBSE: false,\r\n  alerteSuppressionBSP: false\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'specificNeed',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n      state.error = false;\r\n    },\r\n    // end LOADING\r\n    endLoading(state) {\r\n      state.isLoading = false;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    getSpecificNeeds(state, action) {\r\n      const { aucunBesoin, examens, pedagogiques, examen, pedagogique } = action.payload;\r\n\r\n      //Reset de l'erreur\r\n      state.error = null;\r\n\r\n      //Traitements avec les données de la BDD (avant modificatons automatiques)\r\n      state.aucunBesSpe = aucunBesoin;\r\n      state.examenBesSpe = examens?.find((e: SpecificNeedExamen) => e.main);\r\n      state.pedagogiqueBesSpe = pedagogiques?.find((p: SpecificNeedPedagogique) => p.main);\r\n\r\n      //Indique si une alerte de suppression doit apparaître\r\n      state.alerteSuppressionBSE = examens.some(\r\n        (e: SpecificNeedExamen) => e.id !== state.examenBesSpe?.id && e.checked\r\n      );\r\n      state.alerteSuppressionBSP = pedagogiques.some(\r\n        (p: SpecificNeedPedagogique) => p.id !== state.pedagogiqueBesSpe?.id && p.checked\r\n      );\r\n\r\n      //Début des traitements de coche/décoches automatiques\r\n      //Coche automatique de BSE ou BSP\r\n      if (state.examenBesSpe && !state.examenBesSpe.checked) {\r\n        state.examenBesSpe.checked = examen;\r\n      }\r\n      if (state.pedagogiqueBesSpe && !state.pedagogiqueBesSpe.checked) {\r\n        state.pedagogiqueBesSpe.checked = pedagogique;\r\n      }\r\n\r\n      //Listes de besoins déclarés par l'élève\r\n      state.listeBesSpeDeclares = getStudentDeclaredSpecificNeeds(examens, pedagogiques);\r\n\r\n      //Init du formulaire\r\n      if (state.examenBesSpe?.checked || state.pedagogiqueBesSpe?.checked) {\r\n        state.radioButton = BSE_BSP_RADIO_BTN;\r\n      } else if (state.aucunBesSpe?.checked) {\r\n        state.radioButton = state.aucunBesSpe?.id ?? '';\r\n      }\r\n\r\n      state.aucunBesSpeSauvegarde =\r\n        !state.examenBesSpe?.checked &&\r\n        !state.pedagogiqueBesSpe?.checked &&\r\n        !state.aucunBesSpe?.checked;\r\n\r\n      state.isLoading = false;\r\n    },\r\n\r\n    changeRadioButton(state, action) {\r\n      const { radioButton } = action.payload;\r\n\r\n      if (radioButton !== BSE_BSP_RADIO_BTN) {\r\n        //\"aucun besoin\"\r\n        if (state.aucunBesSpe) {\r\n          state.aucunBesSpe.checked = true;\r\n        }\r\n\r\n        //Désactivation de BSE/BSP\r\n        if (state.examenBesSpe) {\r\n          state.examenBesSpe.checked = false;\r\n        }\r\n\r\n        if (state.pedagogiqueBesSpe) {\r\n          state.pedagogiqueBesSpe.checked = false;\r\n        }\r\n      } else {\r\n        //Cas des BSE BSP\r\n        if (state.aucunBesSpe) {\r\n          state.aucunBesSpe.checked = false;\r\n        }\r\n      }\r\n\r\n      state.radioButton = radioButton;\r\n    },\r\n\r\n    updatePedagogies(state, action) {\r\n      const { checked, id } = action.payload;\r\n      if (state.pedagogiqueBesSpe && state.pedagogiqueBesSpe?.id === id) {\r\n        //Coche automatique du bouton radio\r\n        if (state.radioButton !== BSE_BSP_RADIO_BTN) {\r\n          state.radioButton = BSE_BSP_RADIO_BTN;\r\n          if (state.aucunBesSpe) {\r\n            state.aucunBesSpe.checked = false;\r\n          }\r\n        }\r\n\r\n        //Mise à jour de la checkbox\r\n        state.pedagogiqueBesSpe.checked = checked;\r\n      }\r\n    },\r\n\r\n    updateExamens(state, action) {\r\n      const { checked, id } = action.payload;\r\n      if (state.examenBesSpe && state.examenBesSpe?.id === id) {\r\n        //Coche automatique du bouton radio\r\n        if (state.radioButton !== BSE_BSP_RADIO_BTN) {\r\n          state.radioButton = BSE_BSP_RADIO_BTN;\r\n          if (state.aucunBesSpe) {\r\n            state.aucunBesSpe.checked = false;\r\n          }\r\n        }\r\n\r\n        //Mise à jour de la checkbox\r\n        state.examenBesSpe.checked = checked;\r\n      }\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nexport const { updateExamens, updatePedagogies, changeRadioButton } = slice.actions;\r\n\r\n/**/\r\nexport const getSpecificNeeds = () => {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      var response = await axios.get<SpecificNeedResponse>(`/api/student/besoinspecifique`);\r\n      const { result } = response.data;\r\n      switch (result) {\r\n        case SpecificNeedResult.Success:\r\n          dispatch(slice.actions.getSpecificNeeds(response.data));\r\n          break;\r\n        default:\r\n          dispatch(slice.actions.hasError({ result: 99 }));\r\n          return;\r\n      }\r\n    } catch (ex) {\r\n      dispatch(slice.actions.hasError({ result: 99 }));\r\n    }\r\n  };\r\n};\r\n\r\n/**/\r\nexport const updateSpecificNeeds = (ids: Array<string>) => (onSuccess: () => void) => {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      var response = await axios.post<SpecificNeedUpdateResponse>(\r\n        `/api/student/besoinspecifique`,\r\n        ids\r\n      );\r\n      const { result } = response.data;\r\n      switch (result) {\r\n        case SpecificNeedUpdateResult.Success:\r\n          dispatch(slice.actions.endLoading());\r\n          //Rechargement pour obtenir les données MAJ\r\n          //Permet de récupérer le résultat des suppressions des valeurs saisies par le référent handicap\r\n          dispatch(getSpecificNeeds());\r\n          onSuccess();\r\n          break;\r\n        default:\r\n          dispatch(slice.actions.hasError({ result: 99 }));\r\n          return;\r\n      }\r\n    } catch (ex) {\r\n      dispatch(slice.actions.hasError({ result: 99 }));\r\n    }\r\n  };\r\n};\r\n","import {\r\n  SpecificNeedExamen,\r\n  SpecificNeedListItem,\r\n  SpecificNeedPedagogique\r\n} from '../@types/SpecificNeed';\r\n\r\nexport const getStudentDeclaredSpecificNeeds = (\r\n  examens: Array<SpecificNeedExamen>,\r\n  pedagogiques: Array<SpecificNeedPedagogique>\r\n): Array<SpecificNeedListItem> => {\r\n  var result: Array<SpecificNeedListItem> = [];\r\n\r\n  // Ajout des besoins de type \"examen\"\r\n  if (examens && examens.length > 0) {\r\n    examens\r\n      .filter((e: SpecificNeedExamen) => !e.main && e.checked)\r\n      .forEach((e: SpecificNeedExamen) =>\r\n        result.push({\r\n          id: e.id,\r\n          label: e.label,\r\n          checked: e.checked,\r\n          main: e.main,\r\n          isExamen: true,\r\n          isPedagogique: false\r\n        })\r\n      );\r\n  }\r\n\r\n  // Merge avec les besoins de type \"pédagogique\"\r\n  if (pedagogiques && pedagogiques.length > 0) {\r\n    pedagogiques\r\n      .filter((p: SpecificNeedPedagogique) => !p.main && p.checked)\r\n      .forEach((p: SpecificNeedPedagogique) => {\r\n        var existingBesSpe: SpecificNeedListItem | undefined = result.find(\r\n          (besSpe: SpecificNeedListItem) => besSpe.id === p.id\r\n        );\r\n        if (existingBesSpe != null) {\r\n          existingBesSpe.isPedagogique = true;\r\n        } else {\r\n          result.push({\r\n            id: p.id,\r\n            label: p.label,\r\n            checked: p.checked,\r\n            main: p.main,\r\n            isExamen: false,\r\n            isPedagogique: true\r\n          });\r\n        }\r\n      });\r\n  }\r\n  return result.sort((a: SpecificNeedListItem, b: SpecificNeedListItem) =>\r\n    a.label > b.label ? 1 : -1\r\n  );\r\n};\r\n","import { useContext, useEffect, useState } from 'react';\r\n\r\n// redux\r\nimport { useDispatch } from 'redux/store';\r\nimport {\r\n  getSchedulesEvent,\r\n  getMeetingsEvent,\r\n  getVirtualClassList,\r\n  getWorkshopList,\r\n  getTaskList,\r\n  init\r\n} from '../redux/slices/agenda';\r\n\r\n//type\r\nimport { ModeAccess, Student } from '../@types/account';\r\nimport { PageTemplateType } from '../@types/pageTemplateModel';\r\nimport { getMessages, getServices } from 'redux/slices/message';\r\nimport { getPageTemplates } from 'redux/slices/pageTemplate';\r\nimport { StudyPlanView } from '../@types/pedagogy';\r\nimport { Contract, ModuleType, Survey } from '../@types/contract';\r\n\r\nimport { StudyPlanContext } from 'contexts/StudyPlanContext';\r\nimport { getLearnings } from 'redux/slices/learning';\r\nimport { reset } from 'numeral';\r\nimport { getExamens } from 'redux/slices/examen';\r\nimport { setSurveys } from 'redux/slices/survey';\r\nimport { VirtualClass } from '../@types/virtualClass';\r\nimport { getSpecificNeeds } from 'redux/slices/specificNeeds';\r\nimport useLocalStorage from './useLocalStorage';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst useAppStart = () => {\r\n  // Chargement du store\r\n  const manager = useContext(StudyPlanContext);\r\n  const dispatch = useDispatch();\r\n  const [view, setView] = useLocalStorage<StudyPlanView>('view', StudyPlanView.SendingPhase);\r\n\r\n  function loadData(student: Student) {\r\n    const contractCurrent = student?.contracts?.filter((c: Contract) => c.current)[0];\r\n\r\n    if ([ModeAccess.Write, ModeAccess.Read].includes(student?.modeAccess)) {\r\n      dispatch(init());\r\n\r\n      dispatch(getSchedulesEvent());\r\n      dispatch(getMeetingsEvent());\r\n      if (contractCurrent.moduleList.includes(ModuleType.VirtualClassView)) {\r\n        dispatch(\r\n          getVirtualClassList()((classes: VirtualClass[]) => {\r\n            const surveys = classes\r\n              .filter((c) => c.viewReplayCount > 0 && !c.isSurvey)\r\n              .map((c) => {\r\n                return {\r\n                  id: 433,\r\n                  keyApp: 'ClaVir',\r\n                  keyId: c.id.toString(),\r\n                  label: c.title,\r\n                  url: '',\r\n                  observation: '',\r\n                  mandatory: false,\r\n                  created: '' //c.dateStart\r\n                } as Survey;\r\n              });\r\n            dispatch(setSurveys(surveys));\r\n          })\r\n        );\r\n      }\r\n      if (contractCurrent.moduleList.includes(ModuleType.WorkshopView)) {\r\n        dispatch(getWorkshopList());\r\n      }\r\n      dispatch(getTaskList());\r\n\r\n      if (contractCurrent.moduleList.includes(ModuleType.Examen)) {\r\n        dispatch(getExamens());\r\n      }\r\n    }\r\n\r\n    manager?.initialize(view, student.modeAccess, contractCurrent.constrainedCourse);\r\n\r\n    if ([ModeAccess.Write, ModeAccess.Read].includes(student?.modeAccess)) {\r\n      dispatch(getMessages());\r\n      dispatch(getServices());\r\n      dispatch(getPageTemplates(PageTemplateType.MentionLegal));\r\n      dispatch(getLearnings(contractCurrent.elearnings));\r\n      dispatch(getSpecificNeeds());\r\n\r\n      // Questionnaires en attente à remplir\r\n      if (contractCurrent.surveys.length > 0) {\r\n        // mise en place dans redux pour une gestionnaire plus simple\r\n        dispatch(setSurveys(contractCurrent.surveys));\r\n      }\r\n    }\r\n  }\r\n\r\n  function reset() {\r\n    manager?.resetState();\r\n  }\r\n\r\n  return {\r\n    loadData,\r\n    resetStudyPlan: reset\r\n  };\r\n};\r\n\r\nexport default useAppStart;\r\n","import { createContext, ReactNode, useEffect, useReducer } from 'react';\r\n// utils\r\nimport axiosInstance from '../utils/axios';\r\nimport { isValidToken, setSession } from '../utils/jwt';\r\n// @types\r\nimport {\r\n  ActionMap,\r\n  AuthState,\r\n  AuthUser,\r\n  JWTContextType,\r\n  AuthStudent\r\n} from '../@types/authentication';\r\nimport {\r\n  StudentSignInResponse,\r\n  StudentResponse,\r\n  StudentSignInResult,\r\n  StudentPasswordResponse,\r\n  StudentPasswordResult,\r\n  StudentUpdateRequest,\r\n  StudentUpdateResponse,\r\n  StudentUpdateResult,\r\n  StudentResult,\r\n  Student,\r\n  Address,\r\n  Notification,\r\n  StudentUpdateAction,\r\n  StudentChangePasswordResponse,\r\n  StudentChangePasswordResult,\r\n  StudentConfig,\r\n  ModeAccess\r\n} from '../@types/account';\r\n\r\nimport {\r\n  Contract,\r\n  LogConnectionUpdateResponse,\r\n  LogConnectionUpdateResult\r\n} from '../@types/contract';\r\nimport useAppStart from 'hooks/useAppStart';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { logoutUser } from 'redux/slices/agenda';\r\nimport useBrand from 'hooks/useBrand';\r\nimport useHubConnection from 'hooks/useHubConnection';\r\nimport { useFile } from 'hooks/useFile';\r\nimport { RootState } from 'redux/store';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nenum Types {\r\n  Error = 'ERROR',\r\n  Initial = 'INITIALIZE',\r\n  Login = 'LOGIN',\r\n  Logout = 'LOGOUT',\r\n  Register = 'REGISTER',\r\n  Avatar = 'AVATAR',\r\n  PersonnalDatas = 'PERSONNALDATAS',\r\n  Connection_Id = 'CONNECTION_ID',\r\n  Survey = 'SURVEY',\r\n  Config = 'CONFIG'\r\n}\r\n\r\ntype JWTAuthPayload = {\r\n  [Types.Initial]: {\r\n    isAuthenticated: boolean;\r\n    user: AuthUser;\r\n    student: Student | null;\r\n  };\r\n  [Types.Login]: {\r\n    user: AuthUser;\r\n    student: Student;\r\n  };\r\n  [Types.Logout]: undefined;\r\n  [Types.Register]: {\r\n    user: AuthUser;\r\n    student: Student;\r\n  };\r\n  [Types.Error]: { errorMessage: any };\r\n  [Types.Avatar]: {\r\n    avatarUrl: string;\r\n  };\r\n  [Types.PersonnalDatas]: {\r\n    email: string;\r\n    phone1: string;\r\n    phone2: string;\r\n    notifications: Notification;\r\n    address: Address;\r\n    isChangePassword: boolean;\r\n    availability: Array<any>;\r\n  };\r\n  [Types.Connection_Id]: {\r\n    id: number;\r\n  };\r\n  [Types.Survey]: {\r\n    id: number;\r\n    keyApp: string;\r\n    keyAppId: string;\r\n  };\r\n  [Types.Config]: {\r\n    config: StudentConfig;\r\n  };\r\n};\r\n\r\nexport type JWTActions = ActionMap<JWTAuthPayload>[keyof ActionMap<JWTAuthPayload>];\r\n\r\nconst initialState: AuthState = {\r\n  isAuthenticated: false,\r\n  isInitialized: false,\r\n  errorMessage: null,\r\n  user: null,\r\n  student: null\r\n};\r\n\r\nconst JWTReducer = (state: AuthState, action: JWTActions) => {\r\n  switch (action.type) {\r\n    case 'INITIALIZE':\r\n      return {\r\n        isAuthenticated: action.payload.isAuthenticated,\r\n        isInitialized: true,\r\n        user: action.payload.user,\r\n        student: action.payload.student,\r\n        errorMessage: null\r\n      };\r\n\r\n    case 'LOGIN':\r\n      return {\r\n        ...state,\r\n        isAuthenticated: true,\r\n        user: action.payload.user,\r\n        student: action.payload.student,\r\n        errorMessage: null\r\n      };\r\n    case 'LOGOUT':\r\n      return {\r\n        ...state,\r\n        isAuthenticated: false,\r\n        user: null,\r\n        student: null,\r\n        errorMessage: null\r\n      };\r\n\r\n    case 'REGISTER':\r\n      return {\r\n        ...state,\r\n        isAuthenticated: true,\r\n        user: action.payload.user,\r\n        student: action.payload.student,\r\n        errorMessage: null\r\n      };\r\n    case 'ERROR':\r\n      return {\r\n        ...state,\r\n        isAuthenticated: false,\r\n        user: null,\r\n        student: null,\r\n        errorMessage: action.payload.errorMessage\r\n      };\r\n    case 'AVATAR':\r\n      return {\r\n        ...state,\r\n        student: {\r\n          ...state.student,\r\n          avatarUrl: action.payload.avatarUrl\r\n        }\r\n      };\r\n    case 'PERSONNALDATAS':\r\n      const availability = state.student?.availability;\r\n      return {\r\n        ...state,\r\n        student: {\r\n          ...state.student,\r\n          email: action.payload.email,\r\n          phone1: action.payload.phone1,\r\n          phone2: action.payload.phone2,\r\n          address: action.payload.address,\r\n          notification: action.payload.notifications,\r\n          contracts: state.student?.contracts.map((c: Contract) => {\r\n            if (c.current) {\r\n              return { ...c, isChangePassword: action.payload.isChangePassword };\r\n            }\r\n            return c;\r\n          }),\r\n          availability: action.payload.availability\r\n            ? action.payload.availability.map((day) => {\r\n                return {\r\n                  day: day.dayWeek,\r\n                  timeStart: day.start,\r\n                  timeEnd: day.end,\r\n                  timeZone: day.timeZone\r\n                };\r\n              })\r\n            : availability\r\n        }\r\n      };\r\n    case 'CONNECTION_ID':\r\n      return {\r\n        ...state,\r\n        student: {\r\n          ...state.student,\r\n          contracts: state.student?.contracts.map((c: Contract) => {\r\n            if (c.current) {\r\n              return { ...c, idConnection: action.payload.id };\r\n            }\r\n            return c;\r\n          })\r\n        }\r\n      };\r\n    case 'SURVEY':\r\n      return {\r\n        ...state,\r\n        student: {\r\n          ...state.student,\r\n          contracts: state.student?.contracts.map((c: Contract) => {\r\n            if (c.current) {\r\n              return {\r\n                ...c,\r\n                surveys: c.surveys\r\n                  .slice()\r\n                  .filter(\r\n                    (s) =>\r\n                      !(\r\n                        s.id === action.payload.id &&\r\n                        s.keyApp === action.payload.keyApp &&\r\n                        s.keyId === action.payload.keyAppId\r\n                      )\r\n                  )\r\n              };\r\n            }\r\n            return c;\r\n          })\r\n        }\r\n      };\r\n    case 'CONFIG':\r\n      return {\r\n        ...state,\r\n        student: {\r\n          ...state.student,\r\n          config: action.payload.config\r\n        }\r\n      };\r\n    default:\r\n      return state;\r\n  }\r\n};\r\n\r\nconst AuthContext = createContext<JWTContextType | null>(null);\r\n\r\nfunction AuthProvider({ children }: { children: ReactNode }) {\r\n  const { student } = useSelector((state: RootState) => state.student);\r\n\r\n  const { brand } = useBrand();\r\n  const [state, dispatch] = useReducer(JWTReducer, initialState);\r\n  const app = useAppStart();\r\n  const dispatchSlice = useDispatch();\r\n  const { getAvatar, exists } = useFile();\r\n\r\n  const { disConnect, connect } = useHubConnection(); //SignalR;\r\n\r\n  useEffect(() => {\r\n    initialize();\r\n  }, []);\r\n\r\n  /**\r\n   * Connection à SignalR\r\n   */\r\n  useEffect(() => {\r\n    if (state.isAuthenticated && connect && state.student?.modeAccess === ModeAccess.Write) {\r\n      connect();\r\n    }\r\n  }, [state.isAuthenticated]);\r\n\r\n  const initialize = async () => {\r\n    try {\r\n      const accessToken = window.localStorage.getItem('accessToken');\r\n\r\n      if (accessToken && isValidToken(accessToken)) {\r\n        setSession(accessToken);\r\n\r\n        const response = await axiosInstance.get<StudentResponse>('/api/student/informations');\r\n        const { student, result, authorize } = response.data;\r\n\r\n        switch (result) {\r\n          case StudentResult.Success:\r\n            dispatch({\r\n              type: Types.Initial,\r\n              payload: {\r\n                isAuthenticated: true,\r\n                user: null,\r\n                student: student\r\n              }\r\n            });\r\n\r\n            app.loadData(student);\r\n            if ([ModeAccess.Write, ModeAccess.Read].includes(student?.modeAccess)) {\r\n              loadAvatar();\r\n            }\r\n\r\n            break;\r\n          case StudentResult.unAuthorized:\r\n            setSession(null);\r\n            dispatch({\r\n              type: Types.Initial,\r\n              payload: {\r\n                isAuthenticated: false,\r\n                user: null,\r\n                student: null\r\n              }\r\n            });\r\n            dispatch({\r\n              type: Types.Error,\r\n              payload: { errorMessage: authorize.description }\r\n            });\r\n            break;\r\n          case StudentResult.Reconnected:\r\n            dispatch({\r\n              type: Types.Initial,\r\n              payload: {\r\n                isAuthenticated: false,\r\n                user: null,\r\n                student: null\r\n              }\r\n            });\r\n            dispatch({\r\n              type: Types.Error,\r\n              payload: {\r\n                errorMessage:\r\n                  'Pour des raisons de sécurité, nous vous demandons de vous authentifier périodiquement.'\r\n              }\r\n            });\r\n            setSession(null);\r\n            break;\r\n          default:\r\n            setSession(null);\r\n            dispatch({\r\n              type: Types.Initial,\r\n              payload: {\r\n                isAuthenticated: false,\r\n                user: null,\r\n                student: null\r\n              }\r\n            });\r\n            dispatch({\r\n              type: Types.Error,\r\n              payload: { errorMessage: \"Vous n'êtes pas autorisé \" }\r\n            });\r\n        }\r\n      } else {\r\n        setSession(null);\r\n        dispatch({\r\n          type: Types.Initial,\r\n          payload: {\r\n            isAuthenticated: false,\r\n            user: null,\r\n            student: null\r\n          }\r\n        });\r\n      }\r\n    } catch (err) {\r\n      dispatch({\r\n        type: Types.Initial,\r\n        payload: {\r\n          isAuthenticated: false,\r\n          user: null,\r\n          student: null\r\n        }\r\n      });\r\n    }\r\n  };\r\n\r\n  /**\r\n   * Chargement de l'avatar au démarrage du site\r\n   */\r\n  const loadAvatar = () => {\r\n    getAvatar().then(async (value: any) => {\r\n      //if (value == null || value.size === 0) return;\r\n      if (!(await exists(value))) return;\r\n\r\n      dispatch({\r\n        type: Types.Avatar,\r\n        payload: {\r\n          avatarUrl: value\r\n        }\r\n      });\r\n    });\r\n  };\r\n\r\n  const saveAvatar = (file: any) => (onSuccess: VoidFunction) => (onError: VoidFunction) => {\r\n    return async () => {\r\n      try {\r\n        const formData = new FormData();\r\n        formData.append('file', file);\r\n        const response = await axiosInstance.post('/api/account/avatar/save', formData, {\r\n          headers: { 'Content-Type': 'multipart/form-data', writeOnly: true }\r\n        });\r\n        if (response.data) {\r\n          dispatch({\r\n            type: Types.Avatar,\r\n            payload: {\r\n              avatarUrl: URL.createObjectURL(file)\r\n            }\r\n          });\r\n          onSuccess();\r\n        } else {\r\n          onError();\r\n        }\r\n      } catch (error) {\r\n        onError();\r\n      }\r\n    };\r\n  };\r\n\r\n  /**\r\n   * Demande de connection à l'api\r\n   * Retourne seulement Token si valid\r\n   */\r\n  const login = async (contractId: string, password: string) => {\r\n    const response = await axiosInstance.post<StudentSignInResponse>(\r\n      `/api/account/signin/web?brandId=${brand}`,\r\n      {\r\n        contractId,\r\n        password\r\n      }\r\n    );\r\n    const { result, token } = response.data;\r\n\r\n    switch (result) {\r\n      case StudentSignInResult.Success:\r\n        setSession(token);\r\n        initialize();\r\n\r\n        break;\r\n      case StudentSignInResult.NotFound:\r\n        dispatch({\r\n          type: Types.Error,\r\n          payload: { errorMessage: 'Vos identifiants sont incorrects' }\r\n        });\r\n        break;\r\n    }\r\n  };\r\n\r\n  const register = async (\r\n    email: string,\r\n    password: string,\r\n    firstName: string,\r\n    lastName: string\r\n  ) => {};\r\n\r\n  const logout = async () => {\r\n    setSession(null);\r\n\r\n    app.resetStudyPlan();\r\n    dispatch({ type: Types.Logout });\r\n    dispatchSlice(logoutUser());\r\n    if (disConnect) disConnect();\r\n  };\r\n\r\n  const resetPassword = async (email: string) => {\r\n    const responseReset = await axiosInstance.post<StudentPasswordResponse>(\r\n      `/api/account/forgetpassword?brandId=${brand}`,\r\n      {\r\n        email\r\n      }\r\n    );\r\n    switch (responseReset.data.result) {\r\n      case StudentPasswordResult.Success:\r\n        break;\r\n      case StudentPasswordResult.NotFound:\r\n        break;\r\n      case StudentPasswordResult.EmailIncorrect:\r\n        break;\r\n      case StudentPasswordResult.Error:\r\n        break;\r\n    }\r\n  };\r\n\r\n  const updateProfile =\r\n    (form: StudentUpdateRequest) =>\r\n    (onSuccess: VoidFunction) =>\r\n    (onError: (value: StudentUpdateResult) => void) => {\r\n      return async () => {\r\n        try {\r\n          const response = await axiosInstance.post<StudentUpdateResponse>(\r\n            '/api/student/update',\r\n            form,\r\n            { headers: { writeOnly: true } }\r\n          );\r\n          const { result, message } = response.data;\r\n\r\n          switch (result) {\r\n            case StudentUpdateResult.AddressError:\r\n            case StudentUpdateResult.Success:\r\n              dispatch({\r\n                type: Types.PersonnalDatas,\r\n                payload: {\r\n                  address: form.student.address,\r\n                  notifications: form.student.notification,\r\n                  phone1: form.student.phone1,\r\n                  phone2: form.student.phone2,\r\n                  email: form.student.email,\r\n                  availability: form.availability !== '' ? JSON.parse(form.availability) : null,\r\n                  isChangePassword:\r\n                    form.action === StudentUpdateAction.Password\r\n                      ? false\r\n                      : form.student.contracts.filter((c) => c.current)[0]?.isChangePassword\r\n                }\r\n              });\r\n\r\n              if (result === StudentUpdateResult.AddressError) {\r\n                onError(result);\r\n                return;\r\n              }\r\n\r\n              onSuccess();\r\n              break;\r\n            default:\r\n              onError(result);\r\n              break;\r\n          }\r\n        } catch (ex: any) {\r\n          onError(StudentUpdateResult.Error);\r\n        }\r\n      };\r\n    };\r\n\r\n  const setLog = async (id: number, addTime: number, console: (value: string) => void) => {\r\n    if (!state.isAuthenticated && state.student?.modeAccess !== ModeAccess.Write) return;\r\n\r\n    try {\r\n      const response = await axiosInstance.post<LogConnectionUpdateResponse>(\r\n        '/api/contract/logconnection/update',\r\n        {\r\n          IdConnection: id,\r\n          pastTimeMinute: addTime\r\n        }\r\n      );\r\n      const { idConnection, result } = response.data;\r\n      switch (result) {\r\n        case LogConnectionUpdateResult.Success:\r\n          if (idConnection === id) return;\r\n\r\n          dispatch({\r\n            type: Types.Connection_Id,\r\n            payload: { id: idConnection }\r\n          });\r\n\r\n          //onSuccess(idConnection);\r\n          break;\r\n      }\r\n    } catch (ex) {}\r\n  };\r\n\r\n  const removeSurvey = (id: number, keyApp: string, keyAppId: string) => {\r\n    dispatch({\r\n      type: Types.Survey,\r\n      payload: {\r\n        id: id,\r\n        keyApp: keyApp,\r\n        keyAppId: keyAppId\r\n      }\r\n    });\r\n  };\r\n\r\n  const changePassword =\r\n    (contractId: number, ts: number, sign: string, passwordNew: string, passwordConfirm: string) =>\r\n    (onSuccess: VoidFunction) =>\r\n    (onError: (value: StudentChangePasswordResult) => void) => {\r\n      return async () => {\r\n        try {\r\n          const response = await axiosInstance.post<StudentChangePasswordResponse>(\r\n            `/api/account/password/change/${contractId}/${ts}/${sign}?brandId=${brand}`,\r\n            {\r\n              passwordNew: passwordNew,\r\n              passwordConfirm: passwordConfirm\r\n            }\r\n          );\r\n          const { result } = response.data;\r\n          switch (result) {\r\n            case StudentChangePasswordResult.Success:\r\n              return onSuccess();\r\n            default:\r\n              onError(result);\r\n          }\r\n        } catch (ex) {\r\n          onError(StudentChangePasswordResult.Error);\r\n        }\r\n      };\r\n    };\r\n\r\n  const updateConfig = (config: StudentConfig) => {\r\n    return async () => {\r\n      try {\r\n        const response = await axiosInstance.post<StudentConfig>(\r\n          '/api/student/updateconfig',\r\n          config,\r\n          {\r\n            headers: { writeOnly: true }\r\n          }\r\n        );\r\n\r\n        if (response.status === 200) {\r\n          // Mise à jour du contexte\r\n          dispatch({\r\n            type: Types.Config,\r\n            payload: { config: config }\r\n          });\r\n        }\r\n      } catch (ex) {}\r\n    };\r\n  };\r\n\r\n  return (\r\n    <AuthContext.Provider\r\n      value={{\r\n        ...state,\r\n        method: 'jwt',\r\n        login,\r\n        logout,\r\n        register,\r\n        resetPassword,\r\n        changePassword,\r\n        updateProfile,\r\n        getAvatar,\r\n        setLog,\r\n        saveAvatar,\r\n        removeSurvey,\r\n        updateConfig,\r\n        initialize\r\n      }}\r\n    >\r\n      {children}\r\n    </AuthContext.Provider>\r\n  );\r\n}\r\n\r\nexport { AuthContext, AuthProvider };\r\n","import { Survey } from './contract';\r\nimport { HomeworkBase, Material, Teacher } from './pedagogy';\r\nimport { SurveyRequest } from './survey';\r\n\r\nexport type MeetingState = {\r\n  isLoading: boolean;\r\n  error: any;\r\n  meeting: null | Meeting;\r\n};\r\n\r\nexport interface Meeting {\r\n  id: number;\r\n  teacher: Teacher;\r\n  dateStart: string;\r\n  dateEnd: string;\r\n  idVirtualClass: number | null;\r\n  status: MeetingStatus;\r\n  phone: string;\r\n  observation: string;\r\n  type: MeetingType;\r\n  isVisio: boolean;\r\n  material: Material;\r\n  homework: null | HomeworkBase;\r\n}\r\n\r\nexport enum ProviderType {\r\n  None = 0,\r\n  Classilio = 1,\r\n  BigBlueButton = 2\r\n}\r\n\r\nexport enum MeetingType {\r\n  Phone = 0,\r\n  Visio = 1,\r\n  Virtual = 2\r\n}\r\n\r\nexport enum MeetingStatus {\r\n  None = 0,\r\n  Registered = 1,\r\n  Cancel = 2,\r\n  Present = 3,\r\n  Absent = 4,\r\n  Locked = 5,\r\n  WaitingList = 6\r\n}\r\n\r\nexport interface MeetingAddOrUpdateResponse {\r\n  result: MeetingAddOrUpdateResult;\r\n  item: Meeting;\r\n}\r\n\r\nexport enum MeetingAddOrUpdateResult {\r\n  None = 0,\r\n  Success = 1,\r\n  ClosedContract = 2,\r\n  ErrorDouble = 3,\r\n  ErrorMaterial = 4,\r\n  ErrorTeacherBusy = 5,\r\n  ErrorSupport = 6,\r\n  ErrorDate = 7,\r\n  ErrorService = 8\r\n}\r\n\r\nexport interface MeetingListResponse {\r\n  result: MeetingListResult;\r\n  list: Meeting[];\r\n}\r\n\r\nexport enum MeetingListResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n\r\nexport interface MeetingItemResponse {\r\n  result: MeetingItemResult;\r\n  item: Meeting;\r\n}\r\n\r\nexport enum MeetingItemResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\nexport interface MeetingCancelResponse {\r\n  result: MeetingCancelResult;\r\n}\r\n\r\nexport enum MeetingCancelResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n\r\nexport interface MeetingAccessResponse {\r\n  link: string;\r\n  result: MeetingAccessResult;\r\n  survey: SurveyRequest;\r\n}\r\n\r\nexport enum MeetingAccessResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  OutOfTime = 2,\r\n  Invalid = 3,\r\n  Error = 4,\r\n  WaitingTeacher = 5,\r\n  Ended = 6,\r\n  OutOfTimeEnd = 7\r\n}\r\n","import { Lens } from '@mui/icons-material';\r\nimport { SvgIconPropsColorOverrides } from '@mui/material';\r\nimport Label, { LabelColor } from 'components/Label';\r\nimport { SkillStatusType } from '../../../../@types/pedagogy';\r\n\r\nexport type IndicatorType = 'color' | 'label' | 'tag';\r\n\r\nexport type SkillStatusIndicatorProps = {\r\n  type: IndicatorType;\r\n  status: SkillStatusType;\r\n  label: string;\r\n};\r\n\r\n/**\r\n * Indique le statut\r\n * @param param0\r\n */\r\nexport default function SkillStatusIndicator({ label, status, type }: SkillStatusIndicatorProps) {\r\n  let data: { iconColor: string; labelColor: LabelColor; label: string } = {\r\n    iconColor: '#637381',\r\n    labelColor: 'default',\r\n    label: 'Non évaluée'\r\n  };\r\n\r\n  switch (status) {\r\n    case SkillStatusType.Acquired:\r\n      data.iconColor = '#00C040';\r\n      data.labelColor = 'success';\r\n      data.label = 'acquise';\r\n      break;\r\n    case SkillStatusType.PartialAcquired:\r\n      data.iconColor = '#FFC107';\r\n      data.labelColor = 'warning';\r\n      data.label = 'Partiellement acquise';\r\n      break;\r\n    case SkillStatusType.BeingEvaluated:\r\n      data.iconColor = '#FFC107';\r\n      data.labelColor = 'warning';\r\n      data.label = \"En cours d'évaluation\";\r\n      break;\r\n    case SkillStatusType.NotAcquired:\r\n      data.iconColor = '#C4C4C4';\r\n      data.labelColor = 'error';\r\n      data.label = 'Non acquise';\r\n      break;\r\n  }\r\n\r\n  switch (type) {\r\n    case 'color':\r\n      return <Lens fontSize=\"small\" sx={{ color: data.iconColor }} />;\r\n    case 'label':\r\n      return <>{data.label}</>;\r\n    default:\r\n      return <Label color={data.labelColor}>{label}</Label>;\r\n  }\r\n}\r\n","//type\r\nimport { ExpandMore } from '@mui/icons-material';\r\nimport {\r\n  Accordion,\r\n  AccordionDetails,\r\n  AccordionSummary,\r\n  Box,\r\n  Card,\r\n  Divider,\r\n  List,\r\n  styled,\r\n  Typography\r\n} from '@mui/material';\r\nimport { Skill, StudyPlanItemHomework } from '../../../../@types/pedagogy';\r\nimport ChapterItemCard from '../details/ChapterItemCard';\r\nimport SkillStatusIndicator from './SkillStatusIndicator';\r\n\r\n//--------------------------------------------------\r\n\r\n//type\r\ntype SkillCardListProps = {\r\n  skills?: Skill[];\r\n  homeworks?: Array<StudyPlanItemHomework>;\r\n};\r\n\r\n//--------------------------------------------------\r\n\r\n//Composant de génération de la box d'affichage des compétences\r\nexport default function SkillCardList({ skills, homeworks }: SkillCardListProps) {\r\n  return (\r\n    <Box sx={{ p: 3 }}>\r\n      {skills?.map((s, index) => {\r\n        return (\r\n          <SkillCard\r\n            skill={s}\r\n            key={`skillCard${s.id}${index}`}\r\n            studyPlanItemHomeworks={\r\n              homeworks?.filter((h: StudyPlanItemHomework) =>\r\n                h.homeworkBase.skillIds.includes(s.id)\r\n              ) || []\r\n            }\r\n          />\r\n        );\r\n      })}\r\n    </Box>\r\n  );\r\n}\r\n\r\n//-----------------------------------------------------------\r\nconst RootStyle = styled(Card)(({ theme }) => ({\r\n  padding: 10,\r\n  marginBottom: 5\r\n}));\r\n\r\nconst SkillStyle = styled(AccordionSummary)(({ theme }) => ({\r\n  backgroundColor: theme.palette.grey[100],\r\n  borderRadius: 10\r\n}));\r\n\r\n//-----------------------------------------------------------\r\n/**\r\n * Dé&tails de la compétence\r\n * @param studyPlanItemHomeworks : Liste des supprts de type devoirs\r\n * @returns\r\n */\r\nfunction SkillCard({\r\n  skill,\r\n  studyPlanItemHomeworks\r\n}: {\r\n  skill: Skill;\r\n  studyPlanItemHomeworks: Array<StudyPlanItemHomework>;\r\n}) {\r\n  return (\r\n    <RootStyle>\r\n      <Accordion>\r\n        <SkillStyle expandIcon={<ExpandMore />}>\r\n          <SkillStatusIndicator type=\"color\" label=\"\" status={skill.status} />\r\n          <Box sx={{ width: '70%', flexShrink: 0 }}>\r\n            <Typography variant=\"body2\">{skill.label}</Typography>\r\n            <Typography variant=\"caption\">\r\n              Compétence : <SkillStatusIndicator type=\"label\" label=\"\" status={skill.status} />\r\n            </Typography>\r\n          </Box>\r\n\r\n          <Typography variant=\"caption\" sx={{ color: 'text.secondary' }}>\r\n            {skill.homeworkKeys.length} évaluation(s)\r\n          </Typography>\r\n        </SkillStyle>\r\n        <AccordionDetails sx={{ p: 0 }}>\r\n          <List>\r\n            {studyPlanItemHomeworks.map((_item, index) => {\r\n              const myKey = `${_item.key}_${skill.id}${index}`;\r\n              return (\r\n                <div key={myKey}>\r\n                  <ChapterItemCard item={_item} key={myKey} view=\"search\" />\r\n                  <Divider />\r\n                </div>\r\n              );\r\n            })}\r\n          </List>\r\n        </AccordionDetails>\r\n      </Accordion>\r\n    </RootStyle>\r\n  );\r\n}\r\n","import { ReactNode, useState } from 'react';\r\nimport { Icon } from '@iconify/react';\r\nimport arrowIosBackFill from '@iconify/icons-eva/arrow-ios-back-fill';\r\nimport arrowIosForwardFill from '@iconify/icons-eva/arrow-ios-forward-fill';\r\n\r\n//material\r\nimport { Alert, Button, Card, CardContent, Grid, IconButton, Typography } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\n\r\n// utils\r\nimport { addTime, fDate, formatAPI, getWeekDays, getWeekDaysMove } from 'utils/formatTime';\r\n\r\n//type\r\nimport { AgendaEvent, AgendaScheduleTeacher, TimeSlot } from '../../../@types/agenda';\r\nimport { TimeSlotsDisplay } from './TimeSlotsDisplay';\r\n\r\n//------------------------------------------------------\r\nexport type TimeSlotsWeekDisplayProps = {\r\n  events: Array<AgendaEvent>;\r\n  onSelect(metadata: AgendaScheduleTeacher, timeSlot: TimeSlot): void;\r\n  duration: number;\r\n};\r\n\r\nexport default function TimeSlotsWeekDisplay({\r\n  events,\r\n  duration,\r\n  onSelect\r\n}: TimeSlotsWeekDisplayProps) {\r\n  const [isError, setIsError] = useState(false);\r\n\r\n  const handleSelect = (\r\n    slots: Array<TimeSlot>,\r\n    metadata: AgendaScheduleTeacher,\r\n    timeSlot: TimeSlot\r\n  ) => {\r\n    /*controler la durée*/\r\n    if (duration > 0) {\r\n      const endTime = parseInt(fDate(addTime(timeSlot.dateStart, duration), 'HHmm'));\r\n      const startTime = parseInt(fDate(timeSlot.dateStart, 'HHmm'));\r\n\r\n      let value = slots\r\n        .filter(\r\n          (w) =>\r\n            startTime <= parseInt(fDate(w.dateStart, 'HHmm')) &&\r\n            endTime > parseInt(fDate(w.dateStart, 'HHmm'))\r\n        )\r\n        .reduce((accumaleur, currentValue) => accumaleur + currentValue.duration, 0);\r\n\r\n      if (value < duration) {\r\n        setIsError(true);\r\n        return;\r\n      }\r\n    }\r\n\r\n    onSelect(metadata, timeSlot);\r\n  };\r\n\r\n  return (\r\n    <Card>\r\n      <CardContent>\r\n        {isError && (\r\n          <Alert severity=\"error\">\r\n            <strong>Erreur : le créneau que vous avez sélectionné est insuffisant.</strong>\r\n            <br />\r\n            Veuillez selectionner un créneau de <strong>{duration} minutes</strong> ou rechercher\r\n            plusieurs créneaux à la suite pour un total de {duration} minutes.\r\n          </Alert>\r\n        )}\r\n\r\n        {duration > 0 && (\r\n          <Alert severity=\"info\">\r\n            Attention la durée du rendez vous est de {duration} minutes.\r\n            <br />\r\n            <strong>\r\n              S'il n'y a pas de créneaux de {duration} minutes disponibles, vous devez rechercher\r\n              plusieurs créneaux à la suite pour cumuler {duration} minutes.\r\n            </strong>\r\n            Sélectionnez le premier horaire du groupe de créneaux repéré, notre système vous réserve\r\n            les créneaux suivants pour une durée de {duration} min.\r\n            <br />\r\n          </Alert>\r\n        )}\r\n\r\n        <WeekDaysControl>\r\n          {(dates: Array<Date>) => {\r\n            return (\r\n              <Box sx={{ display: 'flex', flexDirection: 'row', alignItems: 'baseline' }}>\r\n                {dates\r\n                  .filter((w) => w.getDay() !== 0) //sauf dimanche\r\n                  .map((date, index) => {\r\n                    const dateCurrent = formatAPI(date);\r\n                    const metadatas = events.filter((w) => w.start === dateCurrent)[0]?.metadatas;\r\n                    return (\r\n                      <Box\r\n                        sx={{\r\n                          display: 'flex',\r\n                          flexDirection: 'column',\r\n                          alignItems: 'center',\r\n                          width: '79px',\r\n                          alignContent: 'baseline'\r\n                        }}\r\n                        key={`dateWeek-${index}`}\r\n                      >\r\n                        <Typography variant=\"subtitle2\" gutterBottom>\r\n                          <strong>{fDate(date, 'eeee')}</strong>\r\n                        </Typography>\r\n                        <Typography variant=\"caption\" noWrap textOverflow={'ellipsis'}>\r\n                          {fDate(date, 'dd MMM')}\r\n                        </Typography>\r\n                        {metadatas == null ? (\r\n                          <Box key={`date-${index}`}>-</Box>\r\n                        ) : (\r\n                          <>\r\n                            {metadatas.map((metadata: any) => {\r\n                              return (\r\n                                <TimeSlotsDisplay\r\n                                  key={`timeSlot${metadata.teacher.id}`}\r\n                                  timeSlots={metadata.timeSlots}\r\n                                  onSelected={(timeSlot: TimeSlot) =>\r\n                                    handleSelect(metadata.timeSlots, metadata, timeSlot)\r\n                                  }\r\n                                  isSmall={true}\r\n                                  hourLimit={metadata.hourLimit}\r\n                                />\r\n                              );\r\n                            })}\r\n                          </>\r\n                        )}\r\n                      </Box>\r\n                    );\r\n                  })}\r\n              </Box>\r\n            );\r\n          }}\r\n        </WeekDaysControl>\r\n      </CardContent>\r\n    </Card>\r\n  );\r\n}\r\n\r\n//-------------------------------------------------------\r\n\r\nconst initWeekDaysControl = (date: Date) => {\r\n  return getWeekDays(date);\r\n};\r\n\r\ntype WeekDaysControlProps = {\r\n  date?: Date;\r\n  children: any;\r\n};\r\n\r\nfunction WeekDaysControl({ children, date = new Date() }: WeekDaysControlProps) {\r\n  const [dates, setDates] = useState(initWeekDaysControl(date));\r\n\r\n  const handleMove = (upOrDown: boolean) => {\r\n    setDates(getWeekDaysMove(dates[0], upOrDown));\r\n  };\r\n\r\n  return (\r\n    <Box>\r\n      <Box sx={{ display: 'flex', alignItems: 'center' }}>\r\n        <IconButton onClick={() => handleMove(false)}>\r\n          <Icon icon={arrowIosBackFill} width={18} height={18} />\r\n        </IconButton>\r\n\r\n        <Typography variant=\"subtitle1\" sx={{ mx: 0.5 }}>\r\n          {fDate(dates[0], 'MMMM')}\r\n        </Typography>\r\n\r\n        <IconButton onClick={() => handleMove(true)}>\r\n          <Icon icon={arrowIosForwardFill} width={18} height={18} />\r\n        </IconButton>\r\n      </Box>\r\n      {children(dates)}\r\n    </Box>\r\n  );\r\n}\r\n","import { Icon } from '@iconify/react';\r\nimport arrowIosBackFill from '@iconify/icons-eva/arrow-ios-back-fill';\r\n// material\r\nimport { Stack, List, TextField, MenuItem, Avatar } from '@mui/material';\r\nimport { Box } from '@mui/system';\r\n\r\n//mapper\r\nimport { convertAgendaEventToMeeting } from 'mapper/agendaMap';\r\n\r\n// redux\r\nimport { dispatch, RootState, useDispatch, useSelector } from 'redux/store';\r\nimport { getMeetings, getSchedulesEventByDateAndMaterial } from 'redux/slices/agenda';\r\nimport { selectMeetingByEvent } from 'redux/slices/meeting';\r\n\r\n//Type\r\nimport {\r\n  AgendaEvent,\r\n  AgendaScheduleTeacher,\r\n  TimeSlot,\r\n  AgendaState,\r\n  AgendaEventType,\r\n  ScheduleType\r\n} from '../../../@types/agenda';\r\n\r\nimport { HomeworkBase, HomeworkType, Material, Teacher } from '../../../@types/pedagogy';\r\n\r\n//Utils\r\nimport { addTime, fDate, formatAPI } from 'utils/formatTime';\r\n\r\n//Composant\r\nimport { TimeSlotsFilter, TimeSlotTeacher } from './TimeSlotsFilter';\r\nimport Scrollbar from '../../Scrollbar';\r\nimport { useCallback, useEffect, useState } from 'react';\r\nimport { MeetingForm } from '../meeting/MeetingForm';\r\nimport { RowItemDisplay } from 'components/RowListItem';\r\nimport TimeSlotsWeekDisplay from './TimeSlotsWeekDisplay';\r\nimport MeetingAlertMessageOral from '../meeting/MeetingAlertMessageOral';\r\nimport { MeetingStatus } from '../../../@types/meeting';\r\nimport EmptyContent from 'components/EmptyContent';\r\nimport { SheduleTeacherMessage } from './ScheduleTeacherMessage';\r\n\r\ntype ScheduleTeacherEventFormProps = {\r\n  homework?: HomeworkBase | null;\r\n  material?: Material | null;\r\n  onClose: VoidFunction;\r\n  defaultPro?: string | null; // Code Pro du professeur par défaut\r\n};\r\n\r\nexport function getTeacherListForMeeting(\r\n  events: Array<AgendaEvent>,\r\n  materialId: string,\r\n  homework: HomeworkBase | null\r\n): Array<Teacher> {\r\n  let teacherList: Array<Teacher> = [];\r\n\r\n  events\r\n    .filter(\r\n      (w: AgendaEvent) =>\r\n        w.eventType === AgendaEventType.ScheduleTeacher &&\r\n        w.metadatas.some((m: any) => m.material.id === materialId) &&\r\n        ((homework != null &&\r\n          homework.homeworkType === HomeworkType.Voice &&\r\n          w.metadatas.some((s: any) => [ScheduleType.Mixte, ScheduleType.Oral].includes(s.type))) ||\r\n          w.metadatas.some((s: any) =>\r\n            [ScheduleType.Mixte, ScheduleType.standard].includes(s.type)\r\n          ))\r\n    )\r\n    .map((w) =>\r\n      w.metadatas.map((x: any) => {\r\n        if (!teacherList.some((w: any) => w.id === x.teacher.id)) teacherList.push(x.teacher);\r\n      })\r\n    );\r\n\r\n  return teacherList;\r\n}\r\n\r\n/**\r\n * Liste des permanences professeurs\r\n * Filtre matiere de permanence et devoir\r\n * Extraction des matières et des professeurs des permanences\r\n *\r\n * @param param0\r\n * @returns\r\n */\r\nexport const ScheduleTeacherEventsForm = ({\r\n  material,\r\n  homework = null,\r\n  onClose,\r\n  defaultPro\r\n}: ScheduleTeacherEventFormProps) => {\r\n  const { events, materials } = useSelector((state: RootState) => state.agenda);\r\n\r\n  const [materialId, setMaterialId] = useState(material?.scheduleId || materials[0]?.id);\r\n  const [teacher, setTeacher] = useState<{ list: Array<Teacher>; selected: Teacher | null }>({\r\n    list: [],\r\n    selected: null\r\n  });\r\n\r\n  const [isOpenMeeting, setIsOpenMeeting] = useState(false);\r\n  const duration =\r\n    homework !== null && homework?.homeworkType === HomeworkType.Voice ? homework?.duration : 0;\r\n\r\n  const handleChange = (e: any) => {\r\n    setMaterialId(e.target.value);\r\n  };\r\n\r\n  /**\r\n   * Liste des profs suivants la matiere\r\n   */\r\n  useEffect(() => {\r\n    (function getTeacherByMaterial() {\r\n      let teacherList: Array<Teacher> = getTeacherListForMeeting(events, materialId, homework);\r\n\r\n      let selectedTeacher = null;\r\n\r\n      if (teacherList?.length > 0) {\r\n        if (defaultPro && defaultPro !== '') {\r\n          selectedTeacher = teacherList.find((t) => t.id === defaultPro);\r\n        }\r\n\r\n        if (!selectedTeacher) {\r\n          selectedTeacher = teacherList[0];\r\n        }\r\n      }\r\n\r\n      setTeacher({ list: teacherList, selected: selectedTeacher });\r\n    })();\r\n  }, [materialId]);\r\n\r\n  /**\r\n   * Choix de l'élève\r\n   *\r\n   */\r\n  const handleSelect = (metadata: AgendaScheduleTeacher, timeSlot: TimeSlot) => {\r\n    let meeting = convertAgendaEventToMeeting(metadata, timeSlot);\r\n\r\n    meeting.homework =\r\n      homework !== null && homework?.homeworkType === HomeworkType.Voice ? homework : null; //récupérer le devoir si il est présent\r\n\r\n    if (duration > 0) {\r\n      // definir la date de fin\r\n      meeting.dateEnd = fDate(addTime(meeting.dateStart, duration), 'yyyy-MM-dd HH:mm:00');\r\n    }\r\n\r\n    dispatch(selectMeetingByEvent(meeting));\r\n    setIsOpenMeeting(true);\r\n  };\r\n\r\n  /* Filtre des permanences suivant la matiere et le prof   */\r\n  const eventsFiltered = useCallback(() => {\r\n    const eventsCurrent: Array<AgendaEvent> = [];\r\n    events\r\n      .filter((w: AgendaEvent) => w.eventType === AgendaEventType.ScheduleTeacher)\r\n      .map((event) => {\r\n        const eventsFind = event.metadatas.filter(\r\n          (metaEvent: any) =>\r\n            metaEvent.material.id === materialId && metaEvent.teacher.id === teacher.selected?.id\r\n        );\r\n        if (eventsFind.length > 0) {\r\n          eventsCurrent.push({ ...event, metadatas: eventsFind });\r\n        }\r\n      });\r\n\r\n    return eventsCurrent;\r\n  }, [teacher, materialId]);\r\n\r\n  /** Controler que l'élève n'a pas deja pris un rendez vous pour cette matiere ou prf */\r\n  /** NB : ne s'applique pas pour les devoirs oraux (dans ce cas les doublons sont autorisés) */\r\n  const isDuplicate = events.some(\r\n    (w: AgendaEvent) =>\r\n      w.eventType === AgendaEventType.Meeting &&\r\n      homework?.homeworkType !== HomeworkType.Voice &&\r\n      w.start > formatAPI(new Date()) &&\r\n      (w.metadatas.material?.id === materialId ||\r\n        w.metadatas.teacher?.id === teacher.selected?.id) &&\r\n      w.metadatas?.status === MeetingStatus.Registered\r\n  );\r\n\r\n  if (eventsFiltered.length === 0 && teacher.list.length === 0) {\r\n    return (\r\n      <EmptyContent\r\n        img=\"/static/illustrations/ma formation/pasdepermanences.svg\"\r\n        title=\"Il n’y a pas de permanences rattachées à cette matière de prévues pour le moment.\"\r\n        description=\"Vous recevrez une notification sur votre Espace numérique de travail pour vous informer des nouvelles permanences disponibles.\"\r\n      />\r\n    );\r\n  }\r\n\r\n  const materialsSorted = [...materials].sort((a, b) => (a.label > b.label ? 1 : -1));\r\n\r\n  return (\r\n    <Scrollbar>\r\n      {isOpenMeeting ? (\r\n        <MeetingForm\r\n          onCancel={() => setIsOpenMeeting(false)}\r\n          onClose={onClose}\r\n          homework={\r\n            homework !== null && homework?.homeworkType === HomeworkType.Voice ? homework : null\r\n          }\r\n        />\r\n      ) : (\r\n        <Box sx={{ p: 3 }}>\r\n          <List>\r\n            <SheduleTeacherMessage />\r\n            <RowItemDisplay\r\n              title=\"Sélectionnez une matière\"\r\n              icon={<Avatar sx={{ width: 30, height: 30 }}>1</Avatar>}\r\n            >\r\n              <TextField\r\n                select\r\n                label=\"\"\r\n                value={materialId}\r\n                onChange={handleChange}\r\n                variant=\"outlined\"\r\n                size=\"small\"\r\n                disabled={material != null}\r\n              >\r\n                {materialsSorted.map((option) => (\r\n                  <MenuItem key={option.id} value={option.id}>\r\n                    {option.label}\r\n                  </MenuItem>\r\n                ))}\r\n              </TextField>\r\n            </RowItemDisplay>\r\n\r\n            <RowItemDisplay\r\n              title=\"Sélectionnez un formateur\"\r\n              icon={<Avatar sx={{ width: 30, height: 30 }}>2</Avatar>}\r\n            >\r\n              <Stack flexDirection={'row'} flexWrap={'wrap'} gap={'6px'}>\r\n                {teacher.list.map((t: Teacher) => {\r\n                  return (\r\n                    <TimeSlotTeacher\r\n                      key={`slot${t.id}`}\r\n                      teacher={t}\r\n                      selected={t.id === teacher?.selected?.id}\r\n                      onSelect={(value) => setTeacher({ ...teacher, selected: value })}\r\n                    />\r\n                  );\r\n                })}\r\n              </Stack>\r\n            </RowItemDisplay>\r\n            <RowItemDisplay\r\n              title=\"Sélectionnez un horaire\"\r\n              icon={<Avatar sx={{ width: 30, height: 30 }}>3</Avatar>}\r\n            />\r\n            {isDuplicate ? (\r\n              <EmptyContent\r\n                title={'Pas si vite! Un rendez-vous à la fois.'}\r\n                description={`Vous ne pouvez programmer qu'un seul rendez-vous à la fois avec un formateur ou une formatrice ou pour une même matière.\r\n                              À l'issue de ce rendez-vous, vous pourrez en reprogrammer un nouveau avec ce formateur ou cette formatrice ou pour cette matière.  `}\r\n                img={'/static/illustrations/autres/stop.svg'}\r\n              />\r\n            ) : (\r\n              <TimeSlotsWeekDisplay\r\n                events={eventsFiltered()}\r\n                onSelect={handleSelect}\r\n                duration={duration}\r\n              />\r\n            )}\r\n          </List>\r\n        </Box>\r\n      )}\r\n    </Scrollbar>\r\n  );\r\n};\r\n","import { Typography } from '@mui/material';\r\nimport { Meeting } from '../../../@types/meeting';\r\nimport { RowItemDisplayAlert } from 'components/RowListItem';\r\nimport usePerson from 'hooks/usePerson';\r\n\r\ntype MeetingAlertMessageOralProps = {\r\n  meeting?: Meeting | null;\r\n};\r\n\r\nexport default function MeetingAlertMessageOral({ meeting }: MeetingAlertMessageOralProps) {\r\n  const { Gender, getGender } = usePerson();\r\n\r\n  const teacherLabel = (meeting?: Meeting | null) => {\r\n    if (meeting?.teacher?.civility) {\r\n      let gender = getGender(meeting?.teacher?.civility);\r\n      switch (gender) {\r\n        case Gender.MALE:\r\n          return 'Votre formateur';\r\n        case Gender.FEMALE:\r\n          return 'Votre formatrice';\r\n      }\r\n    }\r\n    return 'Votre formateur / formatrice';\r\n  };\r\n\r\n  return (\r\n    <RowItemDisplayAlert alertColor=\"info\">\r\n      <Typography variant=\"body2\">\r\n        <strong>Attention</strong>, si votre demande concerne le passage d’une évaluation orale, il\r\n        faut prendre le rendez-vous via la page de l'évaluation orale. Si cela n’est pas fait, votre\r\n        passage d'évaluation vous sera refusé le jour du rendez-vous.\r\n        <br />À bientôt ! {teacherLabel(meeting)}\r\n      </Typography>\r\n    </RowItemDisplayAlert>\r\n  );\r\n}\r\n","export default function usePerson() {\r\n  enum Gender {\r\n    MALE,\r\n    FEMALE,\r\n    UNDEFINED\r\n  }\r\n\r\n  const getGender = (civility: String) => {\r\n    switch (civility) {\r\n      case 'M.':\r\n        return Gender.MALE;\r\n      case 'Mme':\r\n      case 'Mlle':\r\n        return Gender.FEMALE;\r\n      default:\r\n        return Gender.UNDEFINED;\r\n    }\r\n  };\r\n\r\n  return {\r\n    getGender,\r\n    Gender\r\n  };\r\n}\r\n","import SimpleBarReact, { Props } from 'simplebar-react';\r\n// material\r\nimport { alpha, styled } from '@mui/material/styles';\r\nimport { Box, BoxProps } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst RootStyle = styled('div')(({ theme }) => ({\r\n  flexGrow: 1,\r\n  height: '100%',\r\n  overflow: 'hidden'\r\n}));\r\n\r\nconst SimpleBarStyle = styled(SimpleBarReact)(({ theme }) => ({\r\n  maxHeight: '100%',\r\n  '& .simplebar-scrollbar': {\r\n    '&:before': {\r\n      backgroundColor: alpha(theme.palette.grey[600], 0.48)\r\n    },\r\n    '&.simplebar-visible:before': {\r\n      opacity: 1\r\n    }\r\n  },\r\n  '& .simplebar-track.simplebar-vertical': {\r\n    width: 10\r\n  },\r\n  '& .simplebar-track.simplebar-horizontal .simplebar-scrollbar': {\r\n    height: 6\r\n  },\r\n  '& .simplebar-mask': {\r\n    zIndex: 'inherit'\r\n  }\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function Scrollbar({ children, sx, ...other }: BoxProps & Props) {\r\n  const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\r\n    navigator.userAgent\r\n  );\r\n\r\n  if (isMobile) {\r\n    return (\r\n      <Box sx={{ overflowX: 'auto', ...sx }} {...other}>\r\n        {children}\r\n      </Box>\r\n    );\r\n  }\r\n\r\n  return (\r\n    <RootStyle>\r\n      <SimpleBarStyle timeout={500} clickOnTrack={false} sx={sx} {...other}>\r\n        {children}\r\n      </SimpleBarStyle>\r\n    </RootStyle>\r\n  );\r\n}\r\n","import { Button, Typography } from '@mui/material';\r\nimport { Progression } from '../../../@types/pedagogy';\r\nimport useAuth from 'hooks/useAuth';\r\n\r\ntype ScoreAvgProgressProps = {\r\n  progression: Progression;\r\n  dense?: boolean;\r\n  onClick?: () => void;\r\n};\r\n\r\nexport const ScoreAvgProgress = ({\r\n  progression,\r\n  dense = false,\r\n  onClick\r\n}: ScoreAvgProgressProps) => {\r\n  const { getContractCurrent } = useAuth();\r\n  const { isScore, scoreCount, score } = progression;\r\n  if (!isScore) return <></>;\r\n\r\n  const handleClick = () => {\r\n    if (onClick) onClick();\r\n  };\r\n\r\n  const content = (\r\n    <Typography\r\n      variant={dense ? 'caption' : 'subtitle2'}\r\n      color={dense ? 'primary' : 'default'}\r\n      sx={{ ...(dense && { fontWeight: 700 }) }}\r\n    >\r\n      Moyenne{' '}\r\n      {scoreCount > 0 && score ? `: ${score.toFixed(2)}/${getContractCurrent().scoreOn}` : ''}\r\n    </Typography>\r\n  );\r\n\r\n  if (!onClick) return content;\r\n\r\n  return (\r\n    <Button color=\"primary\" variant=\"text\" onClick={handleClick}>\r\n      {content}\r\n    </Button>\r\n  );\r\n};\r\n","import { FileType } from './common';\r\n\r\nexport type MediaFileState = {\r\n  isLoading: boolean;\r\n  error: any;\r\n  mediaFiles: Array<MediaFileInfo>;\r\n  hash: string;\r\n};\r\n\r\nexport interface MediaFileCategory {\r\n  label: string;\r\n}\r\n\r\nexport enum CategoryType {\r\n  None = 0,\r\n  Magazines = 1,\r\n  Important = 3,\r\n  StudyPlan = 4,\r\n  Pedagogy = 5\r\n}\r\n\r\nexport enum MediaPerimetre {\r\n  Standard = 0,\r\n  Corrected = 1,\r\n  Pre = 2,\r\n  Pre2 = 3,\r\n  Examen = 4,\r\n  stage = 5,\r\n  Regsitered = 6\r\n}\r\n\r\nexport enum MediaFileType {\r\n  None = 0,\r\n  Pdf = 1,\r\n  PdfSecurises = 2,\r\n  PdfPersonnalise = 3,\r\n  Html = 4,\r\n  UrlText = 5,\r\n  Images = 8,\r\n  Autres = 9,\r\n  Interne = 10,\r\n  Audio = 23,\r\n  Videos = 30,\r\n  Merge = 31\r\n}\r\n\r\nexport interface MediaFileListResponse {\r\n  result: MediaFileListResult;\r\n  items: MediaFileInfo[];\r\n}\r\n\r\nexport enum MediaFileListResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  Error = 2\r\n}\r\n\r\nexport interface MediaFileListRequest {\r\n  listId: number[];\r\n  contractId: number;\r\n  amendmentId: number;\r\n  categoryType: CategoryType;\r\n}\r\n\r\nexport interface MediaFile {\r\n  id: number;\r\n  observation: string;\r\n  url: string;\r\n  typFicMed: MediaFileType;\r\n  isS3: boolean;\r\n  referentiel: boolean;\r\n  token: FileInfoToken;\r\n}\r\n\r\nexport interface MediaFileInfo extends MediaFile {\r\n  fileName: string;\r\n  title: string;\r\n  size: string;\r\n  category: MediaFileCategory;\r\n  read: boolean;\r\n  fileType: FileType;\r\n  perimetre: MediaPerimetre;\r\n  references: Array<string>;\r\n}\r\n\r\nexport interface FileInfoToken {\r\n  fileName: string;\r\n  fileNameS3: string;\r\n  brandId: string;\r\n}\r\n","import { capitalize } from 'lodash';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst PRIMARY_NAME = ['A', 'N', 'H', 'L', 'Q', '9', '8'];\r\nconst INFO_NAME = ['F', 'G', 'T', 'I', 'J', '1', '2', '3'];\r\nconst SUCCESS_NAME = ['K', 'D', 'Y', 'B', 'O', '4', '5'];\r\nconst WARNING_NAME = ['P', 'E', 'R', 'S', 'C', 'U', '6', '7'];\r\nconst ERROR_NAME = ['V', 'W', 'X', 'M', 'Z'];\r\n\r\nfunction getFirstCharacter(name: string) {\r\n  return capitalize(name && name.charAt(0));\r\n}\r\n\r\nfunction getAvatarColor(name: string) {\r\n  if (PRIMARY_NAME.includes(getFirstCharacter(name))) return 'primary';\r\n  if (INFO_NAME.includes(getFirstCharacter(name))) return 'info';\r\n  if (SUCCESS_NAME.includes(getFirstCharacter(name))) return 'success';\r\n  if (WARNING_NAME.includes(getFirstCharacter(name))) return 'warning';\r\n  if (ERROR_NAME.includes(getFirstCharacter(name))) return 'error';\r\n  return 'default';\r\n}\r\n\r\nexport default function createAvatar(name: string) {\r\n  return {\r\n    name: getFirstCharacter(name),\r\n    color: getAvatarColor(name)\r\n  } as const;\r\n}\r\n","import { styled } from '@mui/material/styles';\r\nimport { Typography, Box, BoxProps } from '@mui/material';\r\nimport { ReactNode } from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst RootStyle = styled(Box)(({ theme }) => ({\r\n  height: '100%',\r\n  display: 'flex',\r\n  textAlign: 'center',\r\n  alignItems: 'center',\r\n  flexDirection: 'column',\r\n  // justifyContent: 'center',\r\n  padding: theme.spacing(1, 2),\r\n  overflow: 'auto'\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface EmptyContentProps extends BoxProps {\r\n  title: string;\r\n  img?: string;\r\n  description?: ReactNode;\r\n  withoutImg?: boolean;\r\n  header?: ReactNode;\r\n}\r\n\r\nexport default function EmptyContent({\r\n  title,\r\n  description,\r\n  img,\r\n  withoutImg = false,\r\n  header,\r\n  ...other\r\n}: EmptyContentProps) {\r\n  return (\r\n    <RootStyle {...other}>\r\n      {!withoutImg && (\r\n        <Box\r\n          component=\"img\"\r\n          alt=\"empty content\"\r\n          src={img || '/static/illustrations/illustration_empty_content.svg'}\r\n          sx={{ maxHeight: '240px', mb: 3 }}\r\n        />\r\n      )}\r\n\r\n      {header}\r\n\r\n      <Typography variant=\"subtitle2\" gutterBottom>\r\n        {title}\r\n      </Typography>\r\n\r\n      {description && (\r\n        <Typography variant=\"caption\" sx={{ color: 'text.secondary', maxWidth: 400 }}>\r\n          {description}\r\n        </Typography>\r\n      )}\r\n    </RootStyle>\r\n  );\r\n}\r\n","import { forwardRef } from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Avatar, AvatarProps } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ntype AvatarColor = 'default' | 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport interface MAvatarProps extends AvatarProps {\r\n  color?: AvatarColor;\r\n}\r\n\r\nconst MAvatar = forwardRef<HTMLDivElement, MAvatarProps>(\r\n  ({ color = 'default', children, sx, ...other }, ref) => {\r\n    const theme = useTheme();\r\n\r\n    if (color === 'default') {\r\n      return (\r\n        <Avatar ref={ref} sx={sx} {...other}>\r\n          {children}\r\n        </Avatar>\r\n      );\r\n    }\r\n\r\n    return (\r\n      <Avatar\r\n        ref={ref}\r\n        sx={{\r\n          fontWeight: theme.typography.fontWeightMedium,\r\n          color: theme.palette[color].contrastText,\r\n          backgroundColor: theme.palette[color].main,\r\n          ...sx\r\n        }}\r\n        {...other}\r\n      >\r\n        {children}\r\n      </Avatar>\r\n    );\r\n  }\r\n);\r\n\r\nexport default MAvatar;\r\n","import { last } from 'lodash';\r\nimport { ReactElement } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport { Box, Link, Typography, Breadcrumbs, BreadcrumbsProps } from '@mui/material';\r\nimport { styled } from '@mui/system';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst Separator = (\r\n  <Box\r\n    component=\"span\"\r\n    sx={{\r\n      width: 1\r\n    }}\r\n  />\r\n);\r\n\r\ntype TLink = {\r\n  href?: string;\r\n  name: string;\r\n  icon?: ReactElement;\r\n};\r\n\r\nfunction LinkItem({ link }: { link: TLink }) {\r\n  const { href, name, icon } = link;\r\n  return (\r\n    <Link\r\n      key={name}\r\n      variant=\"body2\"\r\n      component={RouterLink}\r\n      to={href || '#'}\r\n      sx={{\r\n        lineHeight: 2,\r\n        display: 'flex',\r\n        alignItems: 'center',\r\n        color: 'text.primary',\r\n        whiteSpace: 'nowrap',\r\n        '& > div': { display: 'inherit' }\r\n      }}\r\n    >\r\n      {icon && (\r\n        <Box\r\n          sx={{\r\n            mr: 1,\r\n            '& svg': { width: 20, height: 20 }\r\n          }}\r\n        >\r\n          {icon}\r\n        </Box>\r\n      )}\r\n      {name}\r\n    </Link>\r\n  );\r\n}\r\n\r\nexport interface MBreadcrumbsProps extends BreadcrumbsProps {\r\n  links: TLink[];\r\n  activeLast?: boolean;\r\n}\r\n\r\nexport default function MBreadcrumbs({ links, activeLast = false, ...other }: MBreadcrumbsProps) {\r\n  const currentLink = last(links)?.name;\r\n\r\n  const listDefault = links.map((link, index) => <LinkItem key={index} link={link} />);\r\n  const listActiveLast = links.map((link, index) => (\r\n    <div key={index}>\r\n      {link.name !== currentLink ? (\r\n        <LinkItem link={link} />\r\n      ) : (\r\n        <Typography\r\n          variant=\"body2\"\r\n          sx={{\r\n            maxWidth: 195,\r\n            overflow: 'hidden',\r\n            whiteSpace: 'nowrap',\r\n            color: 'text.disabled',\r\n            textOverflow: 'ellipsis'\r\n          }}\r\n        >\r\n          {currentLink}\r\n        </Typography>\r\n      )}\r\n    </div>\r\n  ));\r\n\r\n  return (\r\n    <Breadcrumbs separator={Separator} {...other} sx={{ '& ol': { flexWrap: 'nowrap' } }}>\r\n      {activeLast ? listDefault : listActiveLast}\r\n    </Breadcrumbs>\r\n  );\r\n}\r\n","import { forwardRef } from 'react';\r\n// material\r\nimport { IconButton, IconButtonProps } from '@mui/material';\r\n//\r\nimport { ButtonAnimate } from '../animate';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst MIconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\r\n  ({ children, ...other }, ref) => (\r\n    <ButtonAnimate>\r\n      <IconButton ref={ref} {...other}>\r\n        {children}\r\n      </IconButton>\r\n    </ButtonAnimate>\r\n  )\r\n);\r\n\r\nexport default MIconButton;\r\n","import { ReactNode } from 'react';\r\n// material\r\nimport { Breakpoint, Theme, useMediaQuery } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ntype MHiddenProps = {\r\n  children: ReactNode;\r\n  width:\r\n    | 'xsDown'\r\n    | 'smDown'\r\n    | 'mdDown'\r\n    | 'lgDown'\r\n    | 'xlDown'\r\n    | 'xsUp'\r\n    | 'smUp'\r\n    | 'mdUp'\r\n    | 'lgUp'\r\n    | 'xlUp';\r\n};\r\n\r\nexport default function MHidden({ width, children }: MHiddenProps) {\r\n  const breakpoint = width.substring(0, 2) as Breakpoint;\r\n  const hiddenUp = useMediaQuery<Theme>((theme) => theme.breakpoints.up(breakpoint));\r\n  const hiddenDown = useMediaQuery<Theme>((theme) => theme.breakpoints.down(breakpoint));\r\n\r\n  if (width.includes('Down')) {\r\n    return hiddenDown ? null : <>{children}</>;\r\n  }\r\n\r\n  if (width.includes('Up')) {\r\n    return hiddenUp ? null : <>{children}</>;\r\n  }\r\n\r\n  return null;\r\n}\r\n","import { forwardRef } from 'react';\r\n// material\r\nimport { CircularProgress, IconButton, IconButtonProps, Tooltip } from '@mui/material';\r\n\r\nimport { styled } from '@mui/material/styles';\r\nimport { ReactNode } from 'react';\r\nimport { FileType } from '../@types/common';\r\nimport { Icon } from '@iconify/react';\r\nimport fileDownload from '@iconify/icons-ic/file-download';\r\nimport FileAction from './file/FileAction';\r\nimport { FileInfoToken } from '../@types/media';\r\nimport useAuth from 'hooks/useAuth';\r\nimport { useSnackbar } from 'notistack';\r\n// ----------------------------------------------------------------------\r\n\r\nconst RootStyle = styled(IconButton)(({ theme }) => ({\r\n  color: theme.palette.primary.main,\r\n  backgroundColor: '#F3F3F3'\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport interface MIconButtonProps extends IconButtonProps {\r\n  toggle?: boolean;\r\n  children: ReactNode;\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst MIconButton = forwardRef<HTMLButtonElement, MIconButtonProps>(\r\n  ({ children, ...other }, ref) => (\r\n    <RootStyle ref={ref} {...other} size=\"small\">\r\n      {children}\r\n    </RootStyle>\r\n  )\r\n);\r\n\r\n// ----------------------------------------------------------------------\r\nexport type MIconButtonDowloadFile = {\r\n  id: number;\r\n  fileType: FileType;\r\n  fileName?: string;\r\n  isS3: boolean;\r\n  token: FileInfoToken;\r\n  referentiel: boolean;\r\n};\r\n\r\nexport type MIconButtonDowloadProps = {\r\n  file: MIconButtonDowloadFile;\r\n};\r\n\r\n/**\r\n * Téléchargement des fichiers\r\n */\r\nexport const MIconButtonDowload = ({ file }: MIconButtonDowloadProps) => {\r\n  const { id, fileType, fileName, referentiel } = file;\r\n\r\n  return (\r\n    <FileAction>\r\n      {(download, getFile, downloadImage, isLoading, errorDownload, downloadUrl, downloadS3) => (\r\n        <Tooltip title=\"Télécharger le fichier\">\r\n          <MIconButton\r\n            onClick={() =>\r\n              file.isS3\r\n                ? downloadS3(\r\n                    file.token.fileNameS3,\r\n                    file.token.fileName,\r\n                    referentiel ? FileType.MediaReferentiel : fileType,\r\n                    id\r\n                  )\r\n                : download(id, fileType, fileName)\r\n            }\r\n          >\r\n            {isLoading ? (\r\n              <CircularProgress variant=\"indeterminate\" size={'1.4em'} />\r\n            ) : (\r\n              <Icon icon={fileDownload} width={20} height={20} />\r\n            )}\r\n          </MIconButton>\r\n        </Tooltip>\r\n      )}\r\n    </FileAction>\r\n  );\r\n};\r\n\r\nexport default MIconButton;\r\n","import { AgendaEvent, AgendaSeminar, AgendaEventType } from '../@types/agenda';\r\nimport { VirtualClass, VirtualClassStatus } from '../@types/virtualClass';\r\nimport { Seminar, SeminarStatus } from '../@types/seminar';\r\nimport { convertStringToDate } from 'utils/formatTime';\r\n\r\nexport const convertVirtualClassToAgendaEvent = (virtualClass: VirtualClass): AgendaEvent => {\r\n  return {\r\n    allDay: !virtualClass.registered,\r\n    start: virtualClass.dateStart,\r\n    end: virtualClass.dateEnd,\r\n    title: virtualClass.title,\r\n    icon: 'PermContactCalendar',\r\n    eventType: AgendaEventType.VirtualClass,\r\n    metadatas: {\r\n      countMaxPlaces: virtualClass.countMaxPlaces,\r\n      registered: virtualClass.registered,\r\n      countRegistered: virtualClass.countRegistered,\r\n      teacher: virtualClass.teacher,\r\n      state: virtualClass.state,\r\n      waitingList: virtualClass.waitingList,\r\n      isReplay: virtualClass.isReplay,\r\n      start: virtualClass.dateStart,\r\n      end: virtualClass.dateEnd,\r\n      registeredId: virtualClass.meeting?.id\r\n    } as AgendaSeminar,\r\n    color: '#34CECD',\r\n    textColor: virtualClass.registered ? '#34CECD' : '',\r\n    id: virtualClass.id.toString()\r\n  };\r\n};\r\n\r\nexport const convertVirtualClassStatus = (state: VirtualClassStatus): SeminarStatus => {\r\n  switch (state) {\r\n    case VirtualClassStatus.Open:\r\n      return SeminarStatus.Open;\r\n    case VirtualClassStatus.Full:\r\n      return SeminarStatus.Full;\r\n    case VirtualClassStatus.Display:\r\n      return SeminarStatus.Display;\r\n    case VirtualClassStatus.Close:\r\n      return SeminarStatus.Close;\r\n    default:\r\n      return SeminarStatus.Cancel;\r\n  }\r\n};\r\n\r\nexport const convertAgendaEventToSeminar = (event: AgendaEvent): Seminar => {\r\n  let metadata = event.metadatas as AgendaSeminar;\r\n  return {\r\n    id: event.id,\r\n    title: event.title,\r\n    dateStart: metadata.start,\r\n    dateEnd: metadata.end,\r\n    registered: metadata.registered,\r\n    teacher: metadata.teacher,\r\n    state: metadata.state,\r\n    waitingList: metadata.waitingList,\r\n    countMaxPlaces: metadata.countMaxPlaces,\r\n    isReplay: metadata.isReplay,\r\n    countRegistered: metadata.countRegistered\r\n  } as Seminar;\r\n};\r\n","import { map, filter } from 'lodash';\r\nimport { createSlice } from '@reduxjs/toolkit';\r\nimport { store } from '../store';\r\n// utils\r\nimport axios from '../../utils/axios';\r\nimport { formatAPI, getDateMonthGlissant } from '../../utils/formatTime';\r\n\r\n// @types\r\nimport {\r\n  AgendaEvent,\r\n  AgendaEventListResponse,\r\n  AgendaEventListResult,\r\n  AgendaEventType,\r\n  AgendaState\r\n} from '../../@types/agenda';\r\nimport { ListItemType } from '../../@types/common';\r\nimport { MeetingListResponse, MeetingListResult } from '../../@types/meeting';\r\n\r\n//mapper\r\nimport * as agendaMap from '../../mapper/agendaMap';\r\nimport {\r\n  VirtualClass,\r\n  VirtualClassListResponse,\r\n  VirtualClassListResult\r\n} from '../../@types/virtualClass';\r\nimport { convertVirtualClassToAgendaEvent } from 'mapper/virtualClassMap';\r\nimport { WorkshopListResponse, WorkshopListResult } from '../../@types/workshop';\r\nimport { convertWorkshopToAgendaEvents } from 'mapper/workshopMap';\r\nimport { convertTaskToAgendaEvent } from 'mapper/taskMap';\r\nimport { TaskListResult, TaskListResponse } from '../../@types/task';\r\nimport { ModuleType } from '../../@types/contract';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: AgendaState = {\r\n  isLoading: false,\r\n  error: false,\r\n  events: [],\r\n  materials: [],\r\n  isOpenModal: false,\r\n  selectedEvent: null,\r\n  selectedRange: null\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'agenda',\r\n  initialState,\r\n  reducers: {\r\n    logoutUser(state) {},\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n    },\r\n\r\n    init(state) {\r\n      state.events = [];\r\n      state.materials = [];\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    getSchedulesEventSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.events = [...state.events, ...action.payload.events];\r\n      state.materials = action.payload.materials;\r\n    },\r\n\r\n    getOtherEventsSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.events = [...state.events, ...action.payload];\r\n    },\r\n\r\n    // SELECT EVENT\r\n    selectEvent(state, action) {\r\n      state.isOpenModal = true;\r\n      state.selectedEvent = action.payload;\r\n      state.error = null;\r\n    },\r\n\r\n    // SELECT EVENT by key(id, eventType)\r\n    selectEventByKey(state, action) {\r\n      const { id, type } = action.payload;\r\n\r\n      state.selectedEvent = state.events.filter(\r\n        (_event) => _event.id === id && _event.eventType === type\r\n      )[0];\r\n      state.isOpenModal = true;\r\n      state.error = null;\r\n    },\r\n\r\n    // OPEN MODAL\r\n    openModal(state) {\r\n      state.isOpenModal = true;\r\n    },\r\n\r\n    // CLOSE MODAL\r\n    closeModal(state) {\r\n      state.isOpenModal = false;\r\n      state.selectedEvent = null;\r\n      state.selectedRange = null;\r\n    },\r\n\r\n    addEvent(state, action) {\r\n      state.events = [...state.events, ...action.payload];\r\n      state.isOpenModal = false;\r\n      state.selectedEvent = null;\r\n    },\r\n\r\n    updateEvent(state, action) {\r\n      const event = action.payload;\r\n\r\n      const updateEvent = map(state.events, (_event) => {\r\n        if (_event.id === event.id) {\r\n          return event;\r\n        }\r\n        return _event;\r\n      });\r\n\r\n      state.isLoading = false;\r\n      state.isOpenModal = false;\r\n      state.events = updateEvent;\r\n    },\r\n\r\n    updateEventsObjective(state, action) {\r\n      const events = action.payload;\r\n      const allEventsWithoutObjective = filter(\r\n        state.events,\r\n        (evt) => evt.eventType != AgendaEventType.Homework\r\n      );\r\n\r\n      state.isLoading = false;\r\n      state.isOpenModal = false;\r\n      state.events = allEventsWithoutObjective.concat(events);\r\n    },\r\n\r\n    removeEvent(state, action) {\r\n      const { eventId } = action.payload;\r\n      const deleteEvent = filter(state.events, (evt) => evt.id != eventId);\r\n\r\n      state.events = deleteEvent;\r\n      state.isOpenModal = false;\r\n      state.selectedEvent = null;\r\n    },\r\n\r\n    updateSeminar(state, action) {\r\n      const eventId = action.payload.id.toString();\r\n      const updateEvent = map(state.events, (_event) => {\r\n        if (_event.id === eventId) {\r\n          _event.allDay = !action.payload.registered;\r\n          _event.metadatas.registered = action.payload.registered;\r\n          _event.metadatas.waitingList = action.payload.waitingList;\r\n          _event.metadatas.registeredId = action.payload.registeredId;\r\n          _event.textColor = action.payload.registered ? '#34CECD' : '';\r\n          return _event;\r\n        }\r\n        return _event;\r\n      });\r\n\r\n      state.events = updateEvent;\r\n      state.isOpenModal = false;\r\n      state.selectedEvent = null;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nexport const {\r\n  openModal,\r\n  closeModal,\r\n  selectEvent,\r\n  selectEventByKey,\r\n  addEvent,\r\n  removeEvent,\r\n  updateEvent,\r\n  updateSeminar,\r\n  updateEventsObjective,\r\n  init,\r\n  logoutUser\r\n} = slice.actions;\r\n\r\n// ----------------------------------------------------------------------\r\n//Liste des permanences professeurs\r\nexport function getSchedulesEvent() {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.post<AgendaEventListResponse>(`/api/agenda/list`, {\r\n        dateStart: formatAPI(new Date()),\r\n        dateEnd: formatAPI(getDateMonthGlissant(6)),\r\n        material: ''\r\n      });\r\n\r\n      const { result, list, materials } = response.data;\r\n\r\n      switch (result) {\r\n        case AgendaEventListResult.Success:\r\n          let eventList = list;\r\n\r\n          dispatch(\r\n            slice.actions.getSchedulesEventSuccess({\r\n              events: eventList,\r\n              materials: materials.map((w) => {\r\n                return {\r\n                  id: w.id,\r\n                  enabled: true,\r\n                  label: w.label,\r\n                  color: '#4a86fd'\r\n                } as ListItemType;\r\n              })\r\n            })\r\n          );\r\n\r\n          break;\r\n        case AgendaEventListResult.NotFound:\r\n          dispatch(slice.actions.hasError(true));\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n//Liste des permanences professeurs\r\nexport const getSchedulesEventByDateAndMaterial =\r\n  (dateAPI: string, materialId: string) => (onError: () => void) => {\r\n    return async () => {\r\n      const { dispatch } = store;\r\n\r\n      try {\r\n        const response = await axios.post<AgendaEventListResponse>(`/api/agenda/list`, {\r\n          dateStart: dateAPI,\r\n          dateEnd: dateAPI,\r\n          material: materialId\r\n        });\r\n\r\n        const { result, list } = response.data;\r\n\r\n        switch (result) {\r\n          case AgendaEventListResult.Success:\r\n            let eventList = list;\r\n\r\n            dispatch(slice.actions.selectEvent(eventList[0]));\r\n\r\n            break;\r\n          case AgendaEventListResult.NotFound:\r\n            onError();\r\n            break;\r\n        }\r\n      } catch (error) {\r\n        onError();\r\n      }\r\n    };\r\n  };\r\n\r\n// ----------------------------------------------------------------------\r\n//Liste des rendez-vous\r\nexport function getMeetingsEvent() {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    let response = await axios.get<MeetingListResponse>(`/api/meeting/list`);\r\n    const { result, list } = response.data;\r\n    switch (result) {\r\n      case MeetingListResult.Success:\r\n        let eventList = list.map((w: any) => {\r\n          return agendaMap.convertMeetingToAgendaEvents(w);\r\n        });\r\n        dispatch(slice.actions.getOtherEventsSuccess(eventList));\r\n\r\n        break;\r\n      case MeetingListResult.NotFound:\r\n        break;\r\n    }\r\n  };\r\n}\r\n\r\nexport const getVirtualClassList = () => (onSuccess: (items: VirtualClass[]) => void) => {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n\r\n    try {\r\n      const response = await axios.get<VirtualClassListResponse>('/api/virtualClass/list');\r\n      const { list, result } = response.data;\r\n\r\n      switch (result) {\r\n        case VirtualClassListResult.Success:\r\n          let virtualClassList = list.map((item) => convertVirtualClassToAgendaEvent(item));\r\n\r\n          dispatch(slice.actions.getOtherEventsSuccess(virtualClassList));\r\n          onSuccess(list);\r\n          break;\r\n        case VirtualClassListResult.NotFound:\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n};\r\n\r\nexport function getWorkshopList() {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n\r\n    try {\r\n      let response = await axios.get<WorkshopListResponse>('/api/workshop/list');\r\n      const { list, result } = response.data;\r\n      switch (result) {\r\n        case WorkshopListResult.Success:\r\n          let eventList = convertWorkshopToAgendaEvents(list);\r\n          dispatch(slice.actions.getOtherEventsSuccess(eventList));\r\n          break;\r\n        case WorkshopListResult.NotFound:\r\n          break;\r\n      }\r\n    } catch (ex) {}\r\n  };\r\n}\r\n\r\nexport function getTaskList() {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n\r\n    try {\r\n      let response = await axios.get<TaskListResponse>('/api/agenda/task/list');\r\n      const { list, result } = response.data;\r\n\r\n      switch (result) {\r\n        case TaskListResult.Success:\r\n          let eventList = list.map((w: any) => {\r\n            return convertTaskToAgendaEvent(w);\r\n          });\r\n          dispatch(slice.actions.getOtherEventsSuccess(eventList));\r\n          break;\r\n        case TaskListResult.NotFound:\r\n          break;\r\n      }\r\n    } catch (ex) {}\r\n  };\r\n}\r\n\r\n//Liste des redv\r\nexport function getMeetings(events: Array<AgendaEvent>): Array<AgendaEvent> {\r\n  return events.filter((evt) => evt.eventType === AgendaEventType.Meeting);\r\n}\r\n\r\nexport const AgendaListItems: Array<ListItemType> = [\r\n  {\r\n    id: AgendaEventType.Meeting.toString(),\r\n    label: 'Rendez-vous formateurs',\r\n    enabled: true,\r\n    color: '#4A86FD',\r\n    module: ModuleType.MeetingUpdate\r\n  },\r\n  {\r\n    id: AgendaEventType.ScheduleTeacher.toString(),\r\n    label: 'Permanences formateurs',\r\n    enabled: true,\r\n    color: '#4A86FD',\r\n    module: ModuleType.MeetingUpdate\r\n  },\r\n  {\r\n    id: AgendaEventType.Task.toString(),\r\n    label: 'Supports pédagogiques',\r\n    enabled: true,\r\n    color: '#F0C163',\r\n    module: ModuleType.Agenda\r\n  },\r\n  {\r\n    id: AgendaEventType.Homework.toString(),\r\n    label: 'Évaluations obligatoires',\r\n    enabled: true,\r\n    color: '#17C588',\r\n    module: ModuleType.HomeworkUpdate\r\n  },\r\n  /* {\r\n        id: AgendaEventType.Examens.toString(),\r\n        label: 'Examens',\r\n        enabled: true,\r\n        color: '#A20025',\r\n      },*/\r\n  {\r\n    id: AgendaEventType.Workshop.toString(),\r\n    label: 'Ateliers',\r\n    enabled: true,\r\n    color: '#F49BCA',\r\n    module: ModuleType.WorkshopView\r\n  },\r\n  {\r\n    id: AgendaEventType.VirtualClass.toString(),\r\n    label: 'Classes virtuelles',\r\n    enabled: true,\r\n    color: '#34CECD',\r\n    module: ModuleType.VirtualClassView\r\n  }\r\n  /* {\r\n        id:AgendaEventType.Internship.toString(),      \r\n        label: 'Stages',\r\n        enabled: true,\r\n        color: '#B935FB',\r\n      },*/\r\n];\r\n","import { LoupeRounded, SearchRounded } from '@mui/icons-material';\r\nimport { IconButton } from '@mui/material';\r\nimport { Button, Stack, TextField } from '@mui/material';\r\nimport Selector from 'components/Selector';\r\nimport { Dispatch, useState } from 'react';\r\n\r\nconst SORT_OPTIONS = [\r\n  { value: 'CreateDate', label: 'Les dernières' },\r\n  { value: 'JobName', label: 'Intitulé du poste' },\r\n  { value: 'CurrentAddress.Distance', label: 'Les plus proches' }\r\n];\r\n\r\nconst TYPE_OPTIONS = [\r\n  { value: 0, label: 'Tous' },\r\n  { value: 1, label: 'Stage' },\r\n  { value: 2, label: 'CDI' },\r\n  { value: 3, label: 'CDD' },\r\n  { value: 4, label: 'Intérim' },\r\n  { value: 5, label: 'Alternance' },\r\n  { value: 6, label: 'Franchise' },\r\n  { value: 7, label: 'Indépendant' },\r\n  { value: 8, label: 'Associé(e)' }\r\n];\r\n// ----------------------------------------------------------------------\r\n\r\nexport enum DirectionType {\r\n  ASC = 0,\r\n  DSC = 1\r\n}\r\n\r\nexport interface JobFilterProps {\r\n  sort: string;\r\n  sortDirection: DirectionType;\r\n  type: number;\r\n  searchQuery: string;\r\n}\r\n\r\n/**\r\n * Filters des jobs\r\n * @param filter => objet filtre envoyé par le parent\r\n * @param setFilter => permet de modifier l'objet directement dans le parent\r\n * @returns\r\n */\r\nexport function JobFilter({\r\n  filter,\r\n  setFilter,\r\n  onSearch\r\n}: {\r\n  filter: JobFilterProps;\r\n  setFilter: Dispatch<JobFilterProps>;\r\n  onSearch: () => void;\r\n}) {\r\n  const handleChange = (e: any) => {\r\n    setFilter({ ...filter, searchQuery: e.target.value });\r\n  };\r\n\r\n  return (\r\n    <Stack mb={1} direction=\"row\" alignItems=\"center\" justifyContent=\"flex-end\">\r\n      <Selector\r\n        options={SORT_OPTIONS}\r\n        query={filter.sort}\r\n        onFilter={(value: string) => setFilter({ ...filter, sort: value })}\r\n        label=\"\"\r\n        size=\"small\"\r\n        sx={{ mr: 2 }}\r\n      />\r\n\r\n      <Selector\r\n        options={TYPE_OPTIONS}\r\n        query={filter.type}\r\n        onFilter={(value: string) => setFilter({ ...filter, type: +value })}\r\n        label={''}\r\n        size=\"small\"\r\n        sx={{ mr: 2 }}\r\n      />\r\n\r\n      <TextField\r\n        placeholder=\"rechercher...\"\r\n        value={filter.searchQuery}\r\n        onChange={handleChange}\r\n        size=\"small\"\r\n        variant=\"outlined\"\r\n        sx={{ mr: 2 }}\r\n      />\r\n\r\n      <Button onClick={onSearch} variant=\"contained\">\r\n        <SearchRounded /> Rechercher\r\n      </Button>\r\n    </Stack>\r\n  );\r\n}\r\n","import { useState, useEffect } from 'react';\r\nimport { useDispatch } from 'redux/store';\r\nimport { Box } from '@mui/system';\r\nimport { Alert, Container, List, Stack, Typography } from '@mui/material';\r\nimport { ConfirmationNumber, Lock, Payment } from '@mui/icons-material';\r\n\r\n//utils\r\nimport axiosInstance from 'utils/axios';\r\n\r\n// type\r\nimport { PaymentAddResult, PaymentAddResponse } from '../../../@types/payment';\r\nimport { ModeAccess } from '../../../@types/account';\r\n\r\n//cmposant\r\nimport { RowItemDisplay, RowItemDisplayTitle } from 'components/RowListItem';\r\nimport Markdown from 'components/Markdown';\r\nimport { formatCardPayment } from 'utils/helper';\r\nimport useAuth from 'hooks/useAuth';\r\nimport AlertErrorMessage from 'components/AlertErrorMessage';\r\n\r\n//-----------------------------------------------------\r\nexport enum PaymentFormType {\r\n  contractLate = 0,\r\n  contractSchedule = 1,\r\n  workShop = 2,\r\n  overtime = 3\r\n}\r\n\r\nexport type PaymentFormProps = {\r\n  type: PaymentFormType;\r\n  params: string;\r\n  amount: number;\r\n};\r\n\r\nexport default function PaymentForm({ type, amount, params }: PaymentFormProps) {\r\n  const [formPayment, setFormPayment] = useState('');\r\n  const [isError, setIsError] = useState(false);\r\n\r\n  const { getFormatCurrency, student } = useAuth();\r\n\r\n  const getUrlType = () => {\r\n    const urlReturn = `urlreturn=${document.location.href}`;\r\n\r\n    switch (type) {\r\n      case PaymentFormType.contractLate:\r\n        return `api/contract/payment/late/${params}?${urlReturn}`;\r\n      case PaymentFormType.contractSchedule:\r\n        return `api/contract/payment/schedule/${params}?${urlReturn}`;\r\n      case PaymentFormType.workShop:\r\n        return `api/workshop/payment/add/${params}?${urlReturn}`;\r\n      case PaymentFormType.overtime:\r\n        return `api/contract/overtime/${params}?${urlReturn}`;\r\n    }\r\n  };\r\n\r\n  useEffect(() => {\r\n    (async function getLinkPayment() {\r\n      try {\r\n        let response = await axiosInstance.get<PaymentAddResponse>(getUrlType(), {\r\n          headers: { writeOnly: true }\r\n        });\r\n        const { result, content } = response.data;\r\n        switch (result) {\r\n          case PaymentAddResult.Success:\r\n            if (content === '') {\r\n              setIsError(true);\r\n              return;\r\n            }\r\n            if (content.startsWith('https://')) {\r\n              document.location.href = content;\r\n              return;\r\n            }\r\n            setFormPayment(formatCardPayment(content));\r\n            break;\r\n          default:\r\n            setIsError(true);\r\n        }\r\n      } catch (error) {\r\n        setIsError(true);\r\n      }\r\n    })();\r\n  }, []);\r\n\r\n  return (\r\n    <Box>\r\n      <Container maxWidth=\"md\">\r\n        <List>\r\n          <RowItemDisplayTitle\r\n            title={<Typography variant=\"subtitle1\">Paiement sécurisé</Typography>}\r\n          ></RowItemDisplayTitle>\r\n\r\n          <RowItemDisplay\r\n            icon={<Payment />}\r\n            title={\r\n              <Stack direction=\"row\" alignItems={'center'} gap=\"10px\">\r\n                <Typography variant=\"subtitle2\">Somme à payer : </Typography>\r\n                <Typography variant=\"subtitle2\" color=\"error\">\r\n                  {getFormatCurrency(amount)}\r\n                </Typography>\r\n              </Stack>\r\n            }\r\n          ></RowItemDisplay>\r\n\r\n          <RowItemDisplay title=\"Choisissez votre moyen de paiement :\" icon={<Lock />}>\r\n            {isError && (\r\n              <AlertErrorMessage>\r\n                Nous rencontrons un problème actuellement, veuillez réessayer ultérieurement\r\n              </AlertErrorMessage>\r\n            )}\r\n            <Box\r\n              sx={{\r\n                display: 'flex',\r\n                '& img': { display: 'none' },\r\n                '& input': { width: 80 },\r\n                '& .parcen': { display: 'none' },\r\n                '& .qrfacture': { width: 50, marginLeft: '50px' }\r\n              }}\r\n            >\r\n              {formPayment === '' && !isError && (\r\n                <Typography variant=\"body2\" color=\"primary\" paragraph>\r\n                  Recherche des modes de paiement en cours...\r\n                </Typography>\r\n              )}\r\n              <Markdown children={formPayment} />\r\n            </Box>\r\n            <Typography variant=\"caption\">\r\n              La transaction s'effectue directement entre votre ordinateur et la Société Générale\r\n              via une liaison sécurisée (SSL).\r\n            </Typography>\r\n          </RowItemDisplay>\r\n        </List>\r\n      </Container>\r\n    </Box>\r\n  );\r\n}\r\n","import { styled } from '@mui/material/styles';\r\nimport { Typography, Box, BoxProps } from '@mui/material';\r\nimport { ReactNode } from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst RootStyle = styled(Box)(({ theme }) => ({\r\n  height: '100%',\r\n  display: 'flex',\r\n  textAlign: 'left',\r\n  alignItems: 'center',\r\n  flexDirection: 'row',\r\n  justifyContent: 'left',\r\n  padding: theme.spacing(1, 2)\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface EmptyContentLargeProps extends BoxProps {\r\n  title: string;\r\n  img?: string;\r\n  description?: ReactNode;\r\n  withoutImg?: boolean;\r\n}\r\n\r\nexport default function EmptyContentLarge({\r\n  title,\r\n  description,\r\n  img,\r\n  withoutImg = false,\r\n  ...other\r\n}: EmptyContentLargeProps) {\r\n  return (\r\n    <RootStyle {...other}>\r\n      {!withoutImg && (\r\n        <Box\r\n          component=\"img\"\r\n          alt=\"empty content\"\r\n          src={img || '/static/illustrations/illustration_empty_content.svg'}\r\n          sx={{ maxHeight: '240px', mb: 3 }}\r\n        />\r\n      )}\r\n      <Box>\r\n        <Typography variant=\"subtitle2\" gutterBottom>\r\n          {title}\r\n        </Typography>\r\n\r\n        {description && (\r\n          <Typography variant=\"caption\" sx={{ color: 'text.secondary', maxWidth: 400 }}>\r\n            {description}\r\n          </Typography>\r\n        )}\r\n      </Box>\r\n    </RootStyle>\r\n  );\r\n}\r\n","import { useRef, useState } from 'react';\r\nimport { Icon } from '@iconify/react';\r\nimport searchFill from '@iconify/icons-eva/search-fill';\r\n\r\n// material\r\nimport {\r\n  Box,\r\n  List,\r\n  Tooltip,\r\n  Divider,\r\n  FormControl,\r\n  InputAdornment,\r\n  OutlinedInput\r\n} from '@mui/material';\r\n\r\nimport { alpha, styled, useTheme } from '@mui/material/styles';\r\n\r\n// search\r\nimport { StudyPlanItemType, StudyPlanSearch } from '../../../../@types/pedagogy';\r\n\r\n// components\r\nimport { MIconButton } from 'components/@material-extend';\r\nimport Scrollbar from 'components/Scrollbar';\r\nimport MenuPopover from 'components/MenuPopover';\r\nimport ChapterItemCard from '../details/ChapterItemCard';\r\nimport useStudyPlan from 'hooks/useStudyPlan';\r\nimport { getTypeSupport } from 'utils/helperSupport';\r\nimport { ToggleButton, ToggleButtonGroup } from '@mui/material';\r\n\r\n//---------------------------------------------------------------------\r\n\r\nconst SearchStyle = styled(OutlinedInput)(({ theme }) => ({\r\n  '&.Mui-focused': { boxShadow: theme.customShadows.z8 },\r\n  '& fieldset': {\r\n    borderWidth: `1px !important`,\r\n    borderColor: `${theme.palette.grey[500_32]} !important`\r\n  },\r\n  [theme.breakpoints.up('md')]: {\r\n    width: 320,\r\n    flexDirection: 'row'\r\n  }\r\n}));\r\n\r\nconst SupportToggleGroup = styled(ToggleButtonGroup)(({ theme }) => ({\r\n  display: 'flex',\r\n  flexDirection: 'row',\r\n  alignItems: 'center',\r\n  justifyContent: 'space-around',\r\n  borderStyle: 'solid',\r\n  borderColor: theme.palette.grey[300],\r\n  borderWidth: '1px',\r\n  borderRadius: theme.shape.borderRadius,\r\n  marginTop: 10,\r\n  padding: 0,\r\n  width: 320\r\n}));\r\n\r\nconst SupportToggleButton = styled(ToggleButton)(({ theme }) => ({\r\n  borderStyle: 'hidden',\r\n  borderRadius: `8px !important`,\r\n  margin: 4,\r\n  padding: 4,\r\n  '&.Mui-selected, &.Mui-selected:hover': {\r\n    backgroundColor: `${alpha(theme.palette.primary.main, 0.08)} !important`\r\n  }\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst STUDY_PLAN_ITEM_TYPE_FILTER = [\r\n  `${StudyPlanItemType.Pdf.toString()}|${StudyPlanItemType.Html.toString()}|${StudyPlanItemType.Annexe.toString()}`,\r\n  StudyPlanItemType.Video.toString(),\r\n  StudyPlanItemType.Audio.toString(),\r\n  StudyPlanItemType.Url.toString(),\r\n  StudyPlanItemType.Elearning.toString(),\r\n  StudyPlanItemType.Homework.toString()\r\n];\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ntype SearchFilter = {\r\n  searchText: string;\r\n  supportType: string[];\r\n};\r\n\r\ntype StudyPlanSearchControlProps = {\r\n  onChange: (value: string, types: StudyPlanItemType[]) => void;\r\n};\r\n\r\nfunction StudyPlanSearchControl({ onChange }: StudyPlanSearchControlProps) {\r\n  const [filter, setFilter] = useState<SearchFilter>({ searchText: '', supportType: [] });\r\n  const theme = useTheme();\r\n\r\n  const getSupportTypes = (typeString: string[]) => {\r\n    if (typeString?.length > 0) {\r\n      let supportTypes: StudyPlanItemType[] = [];\r\n\r\n      typeString.map((t) => {\r\n        let newTypes: string[] = t.split('|');\r\n        newTypes?.map((n: string) => supportTypes.push(parseInt(n) as StudyPlanItemType));\r\n      });\r\n\r\n      return supportTypes;\r\n    }\r\n    return [];\r\n  };\r\n\r\n  const handleChange = (e: any) => {\r\n    setFilter((current) => {\r\n      return { ...filter, searchText: e.target.value };\r\n    });\r\n    onChange(e.target.value, getSupportTypes(filter?.supportType));\r\n  };\r\n\r\n  const handleTypeClick = (event: React.MouseEvent<HTMLElement>, newSupportTypes: []) => {\r\n    setFilter({ ...filter, supportType: newSupportTypes });\r\n    if (filter?.searchText?.trim() !== '') {\r\n      onChange(filter?.searchText, getSupportTypes(newSupportTypes));\r\n    }\r\n  };\r\n\r\n  const handleKeyPress = (e: any) => {\r\n    if (e.charCode === 13) {\r\n      setFilter((current) => {\r\n        return { ...filter, searchText: e.target.value };\r\n      });\r\n      onChange(e.target.value, getSupportTypes(filter?.supportType));\r\n    }\r\n  };\r\n\r\n  return (\r\n    <Box>\r\n      <FormControl size=\"small\">\r\n        <SearchStyle\r\n          placeholder=\"Rechercher un support...\"\r\n          startAdornment={\r\n            <InputAdornment position=\"start\">\r\n              <Box component={Icon} icon={searchFill} sx={{ color: 'text.disabled' }} />\r\n            </InputAdornment>\r\n          }\r\n          onKeyPress={handleKeyPress}\r\n          autoFocus\r\n        />\r\n      </FormControl>\r\n\r\n      <FormControl size=\"small\">\r\n        <SupportToggleGroup value={filter?.supportType} onChange={handleTypeClick}>\r\n          {STUDY_PLAN_ITEM_TYPE_FILTER.map((t: string) => {\r\n            const itemTypeTab: string[] = t.split('|');\r\n            const itemType =\r\n              itemTypeTab?.length > 0 ? (parseInt(itemTypeTab[0]) as StudyPlanItemType) : null;\r\n            if (itemType != null) {\r\n              const { icon, label } = getTypeSupport(itemType, {\r\n                color: filter?.supportType?.includes(t)\r\n                  ? theme.palette.primary.main\r\n                  : theme.palette.grey[600]\r\n              });\r\n              return (\r\n                <Tooltip key={t} title={label}>\r\n                  <SupportToggleButton\r\n                    key={t}\r\n                    value={t}\r\n                    selected={filter?.supportType?.includes(t)}\r\n                  >\r\n                    {icon}\r\n                  </SupportToggleButton>\r\n                </Tooltip>\r\n              );\r\n            }\r\n          })}\r\n        </SupportToggleGroup>\r\n      </FormControl>\r\n    </Box>\r\n  );\r\n}\r\n\r\nexport default function StudyPlanSearchPopover() {\r\n  const anchorRef = useRef(null);\r\n  const [open, setOpen] = useState(false);\r\n  const [chapterItemList, setChapterItemList] = useState<Array<StudyPlanSearch>>([]);\r\n  const { search } = useStudyPlan();\r\n\r\n  const handleOpen = () => {\r\n    setOpen(true);\r\n  };\r\n\r\n  const handleClose = () => {\r\n    setChapterItemList([]);\r\n    setOpen(false);\r\n  };\r\n\r\n  const handleChange = (value: string, itemType?: StudyPlanItemType[]) => {\r\n    const values = search(value, itemType);\r\n    setChapterItemList(values);\r\n  };\r\n\r\n  return (\r\n    <>\r\n      <Tooltip title=\"Rechercher un support pédagogique\">\r\n        <MIconButton ref={anchorRef} size=\"large\" color={'primary'} onClick={handleOpen}>\r\n          <Icon icon={searchFill} width={20} height={20} />\r\n        </MIconButton>\r\n      </Tooltip>\r\n\r\n      <MenuPopover\r\n        open={open}\r\n        onClose={handleClose}\r\n        anchorEl={anchorRef.current}\r\n        sx={{ width: 360 }}\r\n      >\r\n        <Box sx={{ display: 'flex', alignItems: 'center', py: 2, px: 2.5 }}>\r\n          <StudyPlanSearchControl onChange={handleChange} />\r\n        </Box>\r\n\r\n        <Divider />\r\n\r\n        <Scrollbar sx={{ height: 340 }}>\r\n          <List disablePadding>\r\n            {chapterItemList.map((item) => {\r\n              return (\r\n                <ChapterItemCard\r\n                  key={item.item.key}\r\n                  item={item.item}\r\n                  view=\"search\"\r\n                  onClose={handleClose}\r\n                />\r\n              );\r\n            })}\r\n          </List>\r\n        </Scrollbar>\r\n      </MenuPopover>\r\n    </>\r\n  );\r\n}\r\n","import { noCase } from 'change-case';\r\nimport { useRef, useState } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport { Icon } from '@iconify/react';\r\nimport syncFill from '@iconify/icons-eva/sync-fill';\r\nimport clockFill from '@iconify/icons-eva/clock-fill';\r\nimport doneAllFill from '@iconify/icons-eva/done-all-fill';\r\n// material\r\nimport {\r\n  Box,\r\n  List,\r\n  Badge,\r\n  Button,\r\n  Avatar,\r\n  Tooltip,\r\n  Divider,\r\n  Typography,\r\n  ListItemText,\r\n  ListSubheader,\r\n  ListItemAvatar,\r\n  ListItemButton,\r\n  Alert\r\n} from '@mui/material';\r\n\r\nimport { StudyPlanItemUpdated } from '../../../../@types/pedagogy';\r\n\r\n// components\r\nimport { MIconButton } from 'components/@material-extend';\r\nimport Scrollbar from 'components/Scrollbar';\r\nimport MenuPopover from 'components/MenuPopover';\r\nimport EmptyContent from 'components/EmptyContent';\r\nimport useStudyPlan from 'hooks/useStudyPlan';\r\nimport ChapterItemCard from '../details/ChapterItemCard';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport type StudyPlanUpdatedPopoverProps = {\r\n  chapterItemUpdatedList?: Array<StudyPlanItemUpdated>;\r\n};\r\n\r\nexport default function StudyPlanUpdatedPopover({\r\n  chapterItemUpdatedList = []\r\n}: StudyPlanUpdatedPopoverProps) {\r\n  const anchorRef = useRef(null);\r\n\r\n  const [open, setOpen] = useState(false);\r\n\r\n  const handleOpen = () => {\r\n    setOpen(true);\r\n  };\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  if (chapterItemUpdatedList.length === 0) return <></>;\r\n\r\n  return (\r\n    <>\r\n      <Tooltip title=\"Cours mis à jour\">\r\n        <MIconButton ref={anchorRef} size=\"large\" color={'primary'} onClick={handleOpen}>\r\n          <Badge badgeContent={chapterItemUpdatedList.length} color=\"error\">\r\n            <Icon icon={syncFill} width={20} height={20} />\r\n          </Badge>\r\n        </MIconButton>\r\n      </Tooltip>\r\n      {open && (\r\n        <MenuPopover\r\n          open={open}\r\n          onClose={handleClose}\r\n          anchorEl={anchorRef.current}\r\n          sx={{ width: 360 }}\r\n        >\r\n          <Box sx={{ display: 'flex', alignItems: 'center', py: 2, px: 2.5 }}>\r\n            <Box sx={{ flexGrow: 1 }}>\r\n              <Typography variant=\"subtitle1\">Supports pédagogiques mis à jour</Typography>\r\n              <Typography variant=\"body2\" sx={{ color: 'text.secondary' }}>\r\n                Retrouvez ici la liste des supports que vous avez déjà consultés/assimilés et qui\r\n                ont été mis à jour depuis.\r\n              </Typography>\r\n            </Box>\r\n          </Box>\r\n\r\n          <Divider />\r\n\r\n          <Scrollbar sx={{ height: { xs: 340 } }}>\r\n            <List disablePadding>\r\n              {chapterItemUpdatedList.map((updated) => {\r\n                return (\r\n                  <>\r\n                    <ChapterItemCard\r\n                      item={updated.item}\r\n                      key={`updated${updated.item.key}`}\r\n                      view=\"search\"\r\n                    />\r\n                    <Divider />\r\n                  </>\r\n                );\r\n              })}\r\n            </List>\r\n          </Scrollbar>\r\n        </MenuPopover>\r\n      )}\r\n    </>\r\n  );\r\n}\r\n","import { useRef, useState } from 'react';\r\n\r\nimport { Verified, Star, Settings, Filter, LocalActivity, Menu } from '@mui/icons-material';\r\nimport { Link as RouterLink, useNavigate } from 'react-router-dom';\r\n\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\n\r\nimport { StudyPlanItemUpdated } from '../../../../@types/pedagogy';\r\n\r\n// material\r\n\r\nimport {\r\n  Button,\r\n  Box,\r\n  Divider,\r\n  MenuItem,\r\n  Tooltip,\r\n  IconButton,\r\n  FormControlLabel,\r\n  Checkbox\r\n} from '@mui/material';\r\nimport { MIconButton } from 'components/@material-extend';\r\nimport MenuPopover from 'components/MenuPopover';\r\n\r\nimport StudyPlanSearchPopover from './StudyPlanSearchPopover';\r\nimport StudyPlanUpdatedPopover from './StudyPlanUpatedPopover';\r\nimport MeetingDrawer from 'components/_dashboard/meeting/MeetingDrawer';\r\nimport useStudyPlan from 'hooks/useStudyPlan';\r\nimport { useSelector } from 'react-redux';\r\nimport { RootState } from 'redux/store';\r\nimport useLocalStorage from 'hooks/useLocalStorage';\r\nimport EmptyContent from 'components/EmptyContent';\r\nimport useAuth from 'hooks/useAuth';\r\nimport { ModeAccess } from '../../../../@types/account';\r\n\r\n// components\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst MENU_OPTIONS = [\r\n  {\r\n    id: 'skills',\r\n    label: 'Compétences',\r\n    icon: <Verified />,\r\n    linkTo: PATH_DASHBOARD.suivi.skills,\r\n    doControl: 'skillControl',\r\n    visible: true\r\n  },\r\n  {\r\n    id: 'pedagogie',\r\n    label: 'Outils pédagogiques',\r\n    icon: <Settings />,\r\n    linkTo: PATH_DASHBOARD.studyPlan.documents,\r\n    visible: true\r\n  },\r\n  {\r\n    id: 'activites',\r\n    label: 'Activités complémentaires',\r\n    icon: <LocalActivity />,\r\n    linkTo: PATH_DASHBOARD.studyPlan.activity,\r\n    doControl: 'learningControl',\r\n    visible: true\r\n  },\r\n  {\r\n    id: 'bibliotheque',\r\n    label: 'Bibliothèque de contenus',\r\n    icon: <Filter />,\r\n    linkTo: PATH_DASHBOARD.studyPlan.StudyPlanSearch,\r\n    visible: false\r\n  }\r\n];\r\n/**\r\n * \r\n * @returns ,\r\n  {\r\n    label: 'Recherche par support pédagogique',\r\n    icon: <Filter />,\r\n    linkTo: '/'\r\n  },\r\n   {\r\n    label: 'Favoris / Marques pages',\r\n    icon: <Star />,\r\n    linkTo: '/'\r\n  },\r\n */\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function StudyPlanActionsPopover({ isSkill }: { isSkill: boolean }) {\r\n  const navigate = useNavigate();\r\n  const [reminder, setReminder] = useLocalStorage('AideTools', false); // désactivé pour l'instant\r\n  const anchorRef = useRef(null);\r\n  const { additionalLearnings } = useSelector((state: RootState) => state.learning);\r\n  const [openInfo, setOpenInfo] = useState(reminder);\r\n\r\n  const [open, setOpen] = useState(false);\r\n\r\n  const handleChange = () => {\r\n    setOpenInfo(false);\r\n    setReminder(false);\r\n  };\r\n\r\n  const handleOpen = () => {\r\n    setOpen(true);\r\n  };\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  const handleCloseInfo = () => {\r\n    setOpenInfo(false);\r\n  };\r\n\r\n  const handleNavigate = (url: string) => {\r\n    navigate(url);\r\n  };\r\n\r\n  if (!isSkill && additionalLearnings?.length === 0) {\r\n    const item = MENU_OPTIONS.filter((item) => item.id === 'pedagogie')[0];\r\n\r\n    return (\r\n      <Button\r\n        key={item.id}\r\n        variant=\"outlined\"\r\n        color={'primary'}\r\n        onClick={() => handleNavigate(item.linkTo)}\r\n      >\r\n        {item.label}\r\n      </Button>\r\n    );\r\n  }\r\n\r\n  return (\r\n    <>\r\n      <Button ref={anchorRef} variant=\"outlined\" color={'primary'} onClick={handleOpen}>\r\n        Outils avancés\r\n      </Button>\r\n\r\n      <MenuPopover\r\n        open={open}\r\n        onClose={handleClose}\r\n        anchorEl={anchorRef.current}\r\n        sx={{ width: 220 }}\r\n      >\r\n        {MENU_OPTIONS.filter((item) => item.visible).map((option, index) => {\r\n          if (option.doControl && option.doControl === 'skillControl' && !isSkill) {\r\n            return <Box key={`d_${index}`}></Box>;\r\n          }\r\n          if (\r\n            option.doControl &&\r\n            option.doControl === 'learningControl' &&\r\n            additionalLearnings?.length === 0\r\n          )\r\n            return <Box key={`d_${index}`}></Box>;\r\n\r\n          return (\r\n            <MenuItem\r\n              key={`d_${index}`}\r\n              to={option.linkTo}\r\n              component={RouterLink}\r\n              onClick={handleClose}\r\n              sx={{ typography: 'body2', py: 1, px: 2.5 }}\r\n            >\r\n              {option.label}\r\n            </MenuItem>\r\n          );\r\n        })}\r\n      </MenuPopover>\r\n\r\n      <MenuPopover\r\n        open={openInfo}\r\n        onClose={handleCloseInfo}\r\n        anchorEl={anchorRef.current}\r\n        anchorOrigin={{\r\n          vertical: 'top',\r\n          horizontal: 'left'\r\n        }}\r\n        transformOrigin={{\r\n          vertical: 'top',\r\n          horizontal: 'left'\r\n        }}\r\n        sx={{ width: 300 }}\r\n      >\r\n        <EmptyContent\r\n          title={'Ne passez pas à côté de ces pages !'}\r\n          description={\r\n            'Retrouvez dans “Outils avancés” vos compétences, outils pédagogiques et activités complémentaires si vous avez accès à ces pages, en fonction de votre formation.'\r\n          }\r\n          img={'/static/illustrations/aide/outils_avances.svg'}\r\n        />\r\n        <Divider />\r\n        <Box sx={{ display: 'flex', alignItems: 'center', py: 2, px: 2.5 }}>\r\n          <Box sx={{ flexGrow: 1 }}>\r\n            <FormControlLabel\r\n              control={<Checkbox checked={!reminder} onChange={handleChange} />}\r\n              label=\"Ne plus afficher ce message\"\r\n            />\r\n          </Box>\r\n        </Box>\r\n      </MenuPopover>\r\n    </>\r\n  );\r\n}\r\n\r\nexport function StudyPlanActions({\r\n  chapterItemUpdatedList\r\n}: {\r\n  chapterItemUpdatedList: StudyPlanItemUpdated[];\r\n}) {\r\n  const { student, isReadOnly } = useAuth();\r\n  const isControlOnly = [ModeAccess.Control].includes(student?.modeAccess);\r\n\r\n  return (\r\n    <Box display=\"flex\" flexDirection=\"row\" alignItems=\"center\">\r\n      <StudyPlanSearchPopover />\r\n\r\n      {!isControlOnly && (\r\n        <>\r\n          <StudyPlanUpdatedPopover chapterItemUpdatedList={chapterItemUpdatedList} />\r\n          <MeetingDrawer buttonType=\"iconButton\" />\r\n        </>\r\n      )}\r\n    </Box>\r\n  );\r\n}\r\n","import Label from 'components/Label';\r\n\r\nexport default function TagType({ type }: { type: string }) {\r\n  switch (type) {\r\n    case 'VirtualClass': //34cecd\r\n      return (\r\n        <Label variant=\"filled\" sx={{ backgroundColor: '#97E9CC', color: '#2D6A53' }}>\r\n          Classe virtuelle\r\n        </Label>\r\n      );\r\n    case 'Evaluation':\r\n    case 'Homework':\r\n      return (\r\n        <Label variant=\"filled\" sx={{ backgroundColor: '#C9E987', color: '#45630A' }}>\r\n          Évaluation\r\n        </Label>\r\n      );\r\n    case 'Workshop': //FED6F8//\r\n      return (\r\n        <Label variant=\"filled\" sx={{ backgroundColor: '#FED6F8', color: '#BB0E93' }}>\r\n          Atelier\r\n        </Label>\r\n      );\r\n\r\n    case 'Meeting':\r\n      return (\r\n        <Label variant=\"filled\" sx={{ backgroundColor: '#BCD3FF', color: '#1F57B5' }}>\r\n          Rendez-vous\r\n        </Label>\r\n      );\r\n    case 'ScheduleTeacher':\r\n      return (\r\n        <Label variant=\"filled\" sx={{ backgroundColor: '#BCD3FF', color: '#1F57B5' }}>\r\n          Permanence\r\n        </Label>\r\n      );\r\n    case 'News':\r\n      return (\r\n        <Label variant=\"filled\" sx={{ backgroundColor: '#FFAD73', color: '#85370E' }}>\r\n          Actualité\r\n        </Label>\r\n      );\r\n    case 'Task':\r\n      return (\r\n        <Label variant=\"filled\" sx={{ backgroundColor: '#FFE8AE', color: '#856512' }}>\r\n          Support pédagogique\r\n        </Label>\r\n      );\r\n    case 'Courses':\r\n      return (\r\n        <Label variant=\"filled\" sx={{ backgroundColor: '#FEDA65', color: '#835A03' }}>\r\n          Cours\r\n        </Label>\r\n      );\r\n    case 'Job':\r\n      return (\r\n        <Label variant=\"filled\" sx={{ backgroundColor: '#DACBFF', color: '#6C2BE4' }}>\r\n          Stages / Emplois\r\n        </Label>\r\n      );\r\n  }\r\n\r\n  return (\r\n    <Label variant=\"filled\" sx={{ backgroundColor: '#B935FB', color: '#fff' }}>\r\n      {type}\r\n    </Label>\r\n  );\r\n}\r\n","export const groupBy = function (arrObject: Array<any>, groupingKeyFn: any) {\r\n  if (typeof groupingKeyFn !== 'function') {\r\n    throw new Error('groupBy take a function as only parameter');\r\n  }\r\n\r\n  let groupby = arrObject.reduce((result, item) => {\r\n    let key = groupingKeyFn(item);\r\n    if (!result[key]) result[key] = [];\r\n    result[key].push(item);\r\n    return result;\r\n  }, {});\r\n\r\n  let datas: Array<any> = [];\r\n  Object.entries(groupby).map((w) => datas.push({ key: w[0], value: w[1] }));\r\n  return datas;\r\n};\r\n","import DayPicker, { DateUtils } from 'react-day-picker';\r\nimport 'react-day-picker/lib/style.css';\r\nimport MomentLocaleUtils from 'react-day-picker/moment';\r\nimport 'moment/locale/fr';\r\n\r\nimport {\r\n  Chip,\r\n  Dialog,\r\n  FormControl,\r\n  FormControlLabel,\r\n  Switch,\r\n  Typography,\r\n  TextField,\r\n  Stack,\r\n  Button,\r\n  Divider,\r\n  Card,\r\n  DialogActions,\r\n  Alert,\r\n  DialogContent\r\n} from '@mui/material';\r\nimport { Box } from '@mui/system';\r\nimport { styled } from '@mui/material/styles';\r\nimport { makeStyles } from '@mui/styles';\r\n//types\r\nimport {\r\n  Objective,\r\n  ObjectiveCalculateInfos,\r\n  ObjectiveRequest\r\n} from '../../../@types/objectiveType';\r\nimport { Contract } from '../../../@types/contract';\r\n\r\nimport {\r\n  convertStringToDate,\r\n  fDate,\r\n  formatAPI,\r\n  getWeekdaysDescriptions,\r\n  isDateValid\r\n} from 'utils/formatTime';\r\nimport { useEffect, useState } from 'react';\r\n\r\nimport { DateRange, DateRangePicker } from '@mui/lab';\r\nimport moment from 'moment';\r\nimport useObjective from 'hooks/useObjective';\r\nimport Scrollbar from 'components/Scrollbar';\r\nimport DialogConfirm from 'components/DialogConfirm';\r\n\r\nconst ContentStyle = styled(Card)(({ theme }) => ({\r\n  boxShadow: 'none',\r\n  padding: theme.spacing(2),\r\n  paddingTop: theme.spacing(1),\r\n  backgroundImage: `linear-gradient(135deg,\r\n    #E9EAF9 0%,\r\n    #E9EAF9 100%)`\r\n}));\r\n\r\nconst useStyles = makeStyles({\r\n  selectedDay: {\r\n    fontSize: '0.85rem',\r\n    '& .DayPicker-Day--selected:not(.DayPicker-Day--disabled):not(.DayPicker-Day--outside)': {\r\n      backgroundColor: '#455aa4'\r\n    }\r\n  }\r\n});\r\n\r\nexport type ObjectiveParamsFormProps = {\r\n  objective: Objective;\r\n  contract: Contract;\r\n  onSaveSuccess: () => void;\r\n  onClose: () => void;\r\n  lockOnSave?: boolean;\r\n  disableStartEndDates?: boolean;\r\n  skipPopupGenerate?: boolean;\r\n  closeOnModifyPeriode?: boolean;\r\n};\r\n\r\nexport default function ObjectiveParamsForm({\r\n  objective,\r\n  contract,\r\n  onSaveSuccess,\r\n  onClose,\r\n  lockOnSave = false,\r\n  disableStartEndDates = false,\r\n  skipPopupGenerate = false,\r\n  closeOnModifyPeriode = false\r\n}: ObjectiveParamsFormProps) {\r\n  const [open, setOpen] = useState(false);\r\n  const [objCalcInfos, setObjCalcInfos] = useState<ObjectiveCalculateInfos | null>(null);\r\n\r\n  const [settings, setSettings] = useState<ObjectiveRequest>({\r\n    dateStart: objective?.start || formatAPI(new Date()),\r\n    dateEnd: objective?.end || formatAPI(contract.closingDate || new Date()),\r\n    daysWorking: objective?.daysWorking || [0, 1, 2, 3, 4, 5, 6],\r\n    jalonCount: objective?.homeworkDoCount,\r\n    periodesOff: objective?.periodesOff || [],\r\n    lock: lockOnSave || objective?.lock,\r\n    lockBy:\r\n      lockOnSave && contract?.coach\r\n        ? contract?.coach.id\r\n        : objective?.lockBy\r\n        ? objective?.lockBy\r\n        : ''\r\n  });\r\n  const styles = useStyles();\r\n  const { create, calculate, saveCalculatedObjective, isLoading, error } = useObjective();\r\n\r\n  const isDayWorking = (value: number) => {\r\n    return settings.daysWorking.some((w) => w === value);\r\n  };\r\n\r\n  const handleDaysWorkingChange = (value: number) => () => {\r\n    const currentIndex = settings.daysWorking.indexOf(value);\r\n    const newChecked = [...settings.daysWorking];\r\n\r\n    if (currentIndex === -1) {\r\n      newChecked.push(value);\r\n    } else {\r\n      newChecked.splice(currentIndex, 1);\r\n    }\r\n\r\n    setSettings({ ...settings, daysWorking: newChecked });\r\n  };\r\n\r\n  const handleDayClick = (day: any, { selected }: any) => {\r\n    const selectedDays = settings.periodesOff.map((evt) => convertStringToDate(evt)).concat();\r\n\r\n    if (selected) {\r\n      const selectedIndex = selectedDays.findIndex((selectedDay) =>\r\n        DateUtils.isSameDay(selectedDay, day)\r\n      );\r\n      selectedDays.splice(selectedIndex, 1);\r\n    } else {\r\n      selectedDays.push(day);\r\n    }\r\n    setSettings({ ...settings, periodesOff: selectedDays.map((w: Date) => formatAPI(w)) });\r\n  };\r\n\r\n  const handleChangeDate = (date: DateRange<string>) => {\r\n    const dateStart = date[0]!;\r\n    const dateEnd = date[1]!;\r\n\r\n    if (isDateValid(dateStart) && isDateValid(dateEnd))\r\n      setSettings({ ...settings, dateStart: formatAPI(dateStart), dateEnd: formatAPI(dateEnd) });\r\n  };\r\n\r\n  const handleDelete = (date: any) => {\r\n    setSettings({\r\n      ...settings,\r\n      periodesOff: [...settings.periodesOff.filter((w) => w !== date).map((w) => formatAPI(w))]\r\n    });\r\n  };\r\n\r\n  const handleOpen = () => {\r\n    setOpen(!open);\r\n  };\r\n\r\n  const closePopupGenerate = () => {\r\n    if (open) setOpen(false);\r\n  };\r\n\r\n  const closeConfirm = () => {\r\n    setObjCalcInfos(null);\r\n    if (closeOnModifyPeriode) onClose();\r\n  };\r\n\r\n  const calculateSuccessHandler = (infos: ObjectiveCalculateInfos) => {\r\n    //Force la fermeture de la popup de lancement du calcul (peut ne pas être ouverte)\r\n    closePopupGenerate();\r\n\r\n    //Popup de confirmation\r\n    setObjCalcInfos(infos);\r\n  };\r\n\r\n  const saveObjective = (infos: ObjectiveCalculateInfos | null) => {\r\n    const newObjInfos = infos ? { ...infos } : null;\r\n\r\n    // Fermeture de la popup de confirmation\r\n    closeConfirm();\r\n\r\n    if (newObjInfos) {\r\n      saveCalculatedObjective(newObjInfos)(() => {\r\n        if (onSaveSuccess) {\r\n          onSaveSuccess();\r\n        }\r\n\r\n        // Fermeture du formulaire de saisie\r\n        onClose();\r\n      });\r\n    }\r\n  };\r\n\r\n  const handleSubmit = () => {\r\n    if (!objective) {\r\n      // Création sans confirmation\r\n      create(settings)(() => {\r\n        if (onSaveSuccess) {\r\n          onSaveSuccess();\r\n        }\r\n\r\n        //Fermeture de la popup de lancement du calcul (peut ne pas être ouverte)\r\n        closePopupGenerate();\r\n\r\n        // Fermeture du formulaire de saisie\r\n        onClose();\r\n      });\r\n    } else {\r\n      // Calcul + validation\r\n      calculate(settings)((infos) => {\r\n        calculateSuccessHandler(infos);\r\n      });\r\n    }\r\n  };\r\n\r\n  const handleGeneratePlanning = () => {\r\n    if (skipPopupGenerate) {\r\n      handleSubmit(); // Génération du retroplanning sans la popup\r\n    } else {\r\n      handleOpen(); // Ouverture de la popup \"Souhaitez-vous actualiser votre objectif... ?\"\r\n    }\r\n  };\r\n\r\n  useEffect(() => {\r\n    if (error) setOpen(false);\r\n  }, [error]);\r\n\r\n  return (\r\n    <Box>\r\n      <Scrollbar sx={{ height: 1 }}>\r\n        <Card>\r\n          <Stack spacing={2} flexDirection={{ xs: 'column', md: 'row' }}>\r\n            <ContentStyle>\r\n              <Typography gutterBottom variant=\"subtitle2\">\r\n                Période de travail\r\n              </Typography>\r\n              <DateRangePicker\r\n                startText=\"Début\"\r\n                endText=\"Fin\"\r\n                value={[settings.dateStart, settings.dateEnd]}\r\n                onChange={(newValue) => {\r\n                  handleChangeDate(newValue);\r\n                }}\r\n                renderInput={(startProps, endProps) => (\r\n                  <Stack spacing={2} flexDirection={{ xs: 'column' }}>\r\n                    <TextField margin=\"dense\" size=\"small\" {...startProps} />\r\n\r\n                    <TextField margin=\"dense\" size=\"small\" {...endProps} />\r\n                  </Stack>\r\n                )}\r\n                disabled={disableStartEndDates}\r\n              />\r\n\r\n              <Divider sx={{ m: 2 }} />\r\n\r\n              <Typography gutterBottom variant=\"subtitle2\">\r\n                Jours travaillés\r\n              </Typography>\r\n              <FormControl>\r\n                {getWeekdaysDescriptions().map((day: any) => {\r\n                  return (\r\n                    <FormControlLabel\r\n                      color=\"secondary\"\r\n                      control={\r\n                        <Switch\r\n                          size=\"small\"\r\n                          name=\"daysWorking\"\r\n                          checked={isDayWorking(day.value)}\r\n                          onChange={handleDaysWorkingChange(day.value)}\r\n                          value={day.value}\r\n                        />\r\n                      }\r\n                      label={day.label}\r\n                      key={`day${day.value}`}\r\n                    />\r\n                  );\r\n                })}\r\n              </FormControl>\r\n            </ContentStyle>\r\n\r\n            <Stack spacing={1.0} alignItems=\"center\">\r\n              <Typography variant=\"subtitle2\">Périodes de congés</Typography>\r\n              <DayPicker\r\n                selectedDays={settings.periodesOff.map((evt) => moment(evt).toDate())}\r\n                onDayClick={handleDayClick}\r\n                locale={'fr'}\r\n                localeUtils={MomentLocaleUtils}\r\n                className={styles.selectedDay}\r\n              />\r\n            </Stack>\r\n\r\n            <Stack spacing={1.0} alignItems=\"center\">\r\n              {settings.periodesOff.map((w, i) => {\r\n                return (\r\n                  <Chip\r\n                    key={i}\r\n                    label={fDate(w, 'dd/MM/yyyy')}\r\n                    size=\"small\"\r\n                    variant=\"outlined\"\r\n                    color=\"primary\"\r\n                    onDelete={() => handleDelete(w)}\r\n                  />\r\n                );\r\n              })}\r\n            </Stack>\r\n          </Stack>\r\n        </Card>\r\n\r\n        <Typography variant=\"body2\" paragraph sx={{ color: 'text.secondary', p: 2 }}>\r\n          {objective\r\n            ? `Vous êtes sur le point de modifier votre objectif. La planification de vos évaluations sera donc modifiée.`\r\n            : `Vous êtes sur le point de créer votre objectif. Nous allons planifier vos évaluations.`}\r\n        </Typography>\r\n      </Scrollbar>\r\n      {error && <Alert severity=\"error\">{error}</Alert>}\r\n      <DialogActions sx={{ justifyContent: 'center' }}>\r\n        <Button variant=\"text\" color=\"primary\" onClick={() => onClose()}>\r\n          Annuler\r\n        </Button>\r\n        <Button variant=\"contained\" size=\"large\" color=\"primary\" onClick={handleGeneratePlanning}>\r\n          Générer mon planning\r\n        </Button>\r\n      </DialogActions>\r\n\r\n      <DialogConfirm\r\n        open={open}\r\n        onCancel={handleOpen}\r\n        onConfirm={handleSubmit}\r\n        isLoading={isLoading}\r\n      >\r\n        <Typography variant=\"subtitle2\" paragraph sx={{ pt: 2 }}>\r\n          Souhaitez-vous actualiser votre objectif et générer votre nouveau planning ?\r\n        </Typography>\r\n      </DialogConfirm>\r\n\r\n      <Dialog maxWidth=\"md\" open={objCalcInfos != null} onClose={() => {}}>\r\n        <DialogContent>\r\n          <Stack\r\n            sx={{\r\n              display: 'flex',\r\n              justifyContent: 'center',\r\n              alignItems: 'center',\r\n              flexDirection: 'row'\r\n            }}\r\n          >\r\n            <Box\r\n              component=\"img\"\r\n              src={'/static/illustrations/objectifs/objectifs_confirmation.svg'}\r\n              sx={{ maxHeight: 250 }}\r\n            />\r\n            <Stack>\r\n              {objCalcInfos && (\r\n                <>\r\n                  <Typography variant=\"subtitle2\" gutterBottom>\r\n                    Pensez-vous pouvoir maintenir ce rythme ?\r\n                  </Typography>\r\n                  <Typography variant=\"body2\" gutterBottom>\r\n                    Le planning généré indique qu’il faut maintenir un rythme de{' '}\r\n                    <strong>1 évaluation tous les {objCalcInfos.objective.interval} jours</strong>{' '}\r\n                    pour terminer avant le <strong>{fDate(objCalcInfos.objective.end)}</strong>.\r\n                    <br />\r\n                    <br />\r\n                    Ce rythme vous convient-il ou souhaitez vous sélectionner une autre période ?\r\n                  </Typography>\r\n                </>\r\n              )}\r\n              <DialogActions>\r\n                <Button variant=\"text\" onClick={closeConfirm}>\r\n                  Modifier la période\r\n                </Button>\r\n                <Button variant=\"contained\" onClick={() => saveObjective(objCalcInfos)}>\r\n                  Confirmer\r\n                </Button>\r\n              </DialogActions>\r\n            </Stack>\r\n          </Stack>\r\n        </DialogContent>\r\n      </Dialog>\r\n    </Box>\r\n  );\r\n}\r\n/***\r\n *  {error && <Alert severity=\"error\">{error}</Alert>}\r\n */\r\n","import { FileBaseInfo, SummaryRequest, SummaryResponse } from './common';\r\n\r\nexport type ArticleState = {\r\n  isLoading: boolean;\r\n  error: boolean;\r\n  articles: Article[];\r\n  article: Article | null;\r\n  hasMore: boolean;\r\n  index: number;\r\n  step: number;\r\n  categoryList: Array<string>;\r\n};\r\n\r\nexport interface ArticlesResponse extends SummaryResponse {\r\n  list: Article[];\r\n  result: ArticlesResult;\r\n  hash: string;\r\n  totalCount: number;\r\n}\r\n\r\nexport interface ArticlesRequest extends SummaryRequest {\r\n  type: MessageType;\r\n  hash: string;\r\n}\r\n\r\nexport interface Article {\r\n  id: number;\r\n  title: string;\r\n  publicationDate: string;\r\n  reference: string;\r\n  description: string;\r\n  read: boolean;\r\n  isFile: boolean;\r\n  category: string;\r\n  categoryUrl: string;\r\n  coverUrl: string;\r\n  files: FileBaseInfo[];\r\n  isImportant: boolean;\r\n}\r\n\r\nexport interface ArticleResponse {\r\n  items: Article[];\r\n  result: ArticleResult;\r\n}\r\nexport enum ArticleResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n\r\nexport enum MessageType {\r\n  All = 0,\r\n  News = 1,\r\n  Question = 2,\r\n  Answer = 4,\r\n  Message = 3\r\n}\r\n\r\nexport enum ArticlesResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  Updated = 2\r\n}\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { store } from '../store';\r\n// utils\r\nimport axios from '../../utils/axios';\r\n// @types\r\nimport {\r\n  Article,\r\n  ArticleResponse,\r\n  ArticleResult,\r\n  ArticlesRequest,\r\n  ArticlesResponse,\r\n  ArticlesResult,\r\n  ArticleState,\r\n  MessageType\r\n} from '../../@types/article';\r\nimport { map } from 'lodash';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: ArticleState = {\r\n  isLoading: true,\r\n  error: false,\r\n  articles: [],\r\n  article: null,\r\n  hasMore: true,\r\n  index: 1,\r\n  step: 10,\r\n  categoryList: []\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'article',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n      state.article = null;\r\n    },\r\n\r\n    // GET POSTS\r\n    getArticlesSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.hasMore = false;\r\n      state.articles = action.payload;\r\n\r\n      state.categoryList = action.payload\r\n        ? Array.from(new Set(action.payload?.map((a: Article) => a.category)))\r\n        : [];\r\n    },\r\n\r\n    // GET POST INFINITE\r\n    getArticlesInitial(state, action) {\r\n      state.isLoading = false;\r\n      const data = action.payload;\r\n\r\n      state.articles = [...state.articles, ...data];\r\n    },\r\n\r\n    getMoreArticles(state) {\r\n      const setIndex = state.index + 1;\r\n      state.index = setIndex;\r\n    },\r\n\r\n    noHasMore(state) {\r\n      state.hasMore = false;\r\n    },\r\n\r\n    getArticleSuccess(state, action) {\r\n      state.isLoading = false;\r\n      let myArticle = action.payload;\r\n      const articles = map(state.articles, (_event) => {\r\n        if (_event.id === myArticle.id) {\r\n          myArticle.category = _event.category;\r\n          myArticle.categoryUrl = _event.categoryUrl;\r\n          return { ..._event, read: true };\r\n        }\r\n        return _event;\r\n      });\r\n\r\n      state.article = myArticle;\r\n      state.articles = articles;\r\n    },\r\n\r\n    getRecentArticlesSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.articles = action.payload;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nexport const { getMoreArticles } = slice.actions;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getAllArticle(index: number, step: number) {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.post('/api/message/list', {\r\n        type: MessageType.News,\r\n        index: index,\r\n        pageSize: step,\r\n        sortName: 'publicationDate',\r\n        direction: true\r\n      });\r\n\r\n      const { result, list } = response.data;\r\n      switch (result) {\r\n        case ArticlesResult.Success:\r\n          dispatch(slice.actions.getArticlesSuccess(list));\r\n          break;\r\n        default:\r\n          dispatch(slice.actions.getArticlesSuccess([]));\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getArticlesInitial(index: number, step: number, count: number) {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.post<ArticlesResponse>('/api/message/list', {\r\n        type: MessageType.News,\r\n        index: index,\r\n        pageSize: step,\r\n        sortName: 'publicationDate',\r\n        direction: true,\r\n        hash: ''\r\n      } as ArticlesRequest);\r\n\r\n      const { result, list, totalCount } = response.data;\r\n      switch (result) {\r\n        case ArticlesResult.Success:\r\n          dispatch(slice.actions.getArticlesInitial(list));\r\n\r\n          if (count + step >= totalCount) {\r\n            dispatch(slice.actions.noHasMore());\r\n          }\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getArticle(id: string) {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get<ArticleResponse>(`/api/message/0/${id}/${MessageType.News}`);\r\n      const { result, items } = response.data;\r\n      switch (result) {\r\n        case ArticleResult.Success:\r\n          dispatch(slice.actions.getArticleSuccess(items[0]));\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(true));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getRecentPosts(title: string) {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/blog/posts/recent', {\r\n        params: { title }\r\n      });\r\n\r\n      dispatch(slice.actions.getRecentArticlesSuccess(response.data.recentPosts));\r\n    } catch (error) {\r\n      console.error(error);\r\n      dispatch(slice.actions.hasError(true));\r\n    }\r\n  };\r\n}\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { dispatch } from '../store';\r\n// utils\r\nimport axios from '../../utils/axios';\r\n// @types\r\nimport { Mail, MailLabel } from '../../@types/mail';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nfunction objFromArray(array: any[], key = 'id') {\r\n  return array.reduce((accumulator, current) => {\r\n    accumulator[current[key]] = current;\r\n    return accumulator;\r\n  }, {});\r\n}\r\n\r\ntype MailState = {\r\n  isLoading: boolean;\r\n  error: boolean;\r\n  mails: {\r\n    byId: Record<string, Mail>;\r\n    allIds: string[];\r\n  };\r\n  labels: MailLabel[];\r\n};\r\n\r\nconst initialState: MailState = {\r\n  isLoading: false,\r\n  error: false,\r\n  mails: { byId: {}, allIds: [] },\r\n  labels: []\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'mail',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    // GET LABELS\r\n    getLabelsSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.labels = action.payload;\r\n    },\r\n\r\n    // GET MAILS\r\n    getMailsSuccess(state, action) {\r\n      const mails = action.payload;\r\n\r\n      state.isLoading = false;\r\n      state.mails.byId = objFromArray(mails);\r\n      state.mails.allIds = Object.keys(state.mails.byId);\r\n    },\r\n\r\n    // GET MAIL\r\n    getMailSuccess(state, action) {\r\n      const mail = action.payload;\r\n\r\n      state.mails.byId[mail.id] = mail;\r\n      if (!state.mails.allIds.includes(mail.id)) {\r\n        state.mails.allIds.push(mail.id);\r\n      }\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getLabels(): MailLabel[] {\r\n  return [\r\n    { id: 'all', type: 'system', name: 'Mes messages', unreadCount: 3 },\r\n    { id: 'inbox', type: 'system', name: 'Importants', unreadCount: 1 },\r\n    { id: 'sent', type: 'system', name: 'Messages non lus', unreadCount: 0 },\r\n    { id: 'drafts', type: 'system', name: 'Messages de l’école', unreadCount: 0 },\r\n    { id: 'trash', type: 'system', name: 'Questions / réponses', unreadCount: 0 }\r\n  ];\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getMails() {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n\r\n    try {\r\n      const response = await axios.post('/api/message/list', { type: 2, index: 1, pageSize: 100 });\r\n      const { result, list } = response.data;\r\n      switch (result) {\r\n      }\r\n      //dispatch(slice.actions.getMailsSuccess(response.data.list));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getMail(mailId: string) {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/mail/mail', {\r\n        params: { mailId }\r\n      });\r\n      dispatch(slice.actions.getMailSuccess(response.data.mail));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { store } from '../store';\r\n// utils\r\nimport axios from '../../utils/axios';\r\n// @types\r\nimport {\r\n  JobState,\r\n  JobRequestDTO,\r\n  JobsResponse,\r\n  ResultResponse,\r\n  JobsDetailResponse,\r\n  ResultDetailResult\r\n} from '../../@types/job';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: JobState = {\r\n  isLoading: false,\r\n  isLoadingMore: true,\r\n  error: false,\r\n  jobs: [],\r\n  job: null,\r\n  hasMore: true,\r\n  index: 1,\r\n  step: 30,\r\n  count: 0\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'job',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n    },\r\n\r\n    startLoadingMore(state) {\r\n      state.isLoadingMore = true;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.isLoadingMore = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    getJobsSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.isLoadingMore = false;\r\n      if (action.payload.reset) {\r\n        state.index = 1;\r\n        state.jobs = action.payload.datas;\r\n      } else {\r\n        state.index = action.payload.request?.pageIndex;\r\n        state.jobs = [...state.jobs, ...action.payload.datas];\r\n      }\r\n\r\n      state.count = action.payload.count;\r\n      state.hasMore = state.jobs.length < action.payload.count && action.payload.count > 0;\r\n    },\r\n\r\n    clearJobs(state) {\r\n      state.index = 1;\r\n      state.hasMore = false;\r\n      state.isLoadingMore = false;\r\n    },\r\n\r\n    /*\r\n    getJobsInitial(state, action) {\r\n      state.isLoading = false;\r\n      const data = action.payload;\r\n      if ((state.index = 1)) state.jobs = [...state.jobs, ...data];\r\n    },*/\r\n\r\n    /*\r\n    getMoreJobs(state) {\r\n      const setIndex = state.index + 1;\r\n      state.index = setIndex;\r\n    },\r\n    */\r\n\r\n    getJob(state, action) {\r\n      state.job = action.payload;\r\n    },\r\n\r\n    noHasMore(state) {\r\n      state.hasMore = false;\r\n    },\r\n\r\n    getJobSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.isLoadingMore = false;\r\n      state.job = action.payload;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\n//export const { getMoreJobs, clearJobs } = slice.actions;\r\nexport const { clearJobs } = slice.actions;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\n/**\r\n * Liste des annonces\r\n * @param index\r\n * @param step\r\n * @returns\r\n */\r\nexport function getJobs(request: JobRequestDTO, reset: boolean) {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n\r\n    try {\r\n      if (reset) {\r\n        dispatch(slice.actions.startLoading());\r\n      } else {\r\n        dispatch(slice.actions.startLoadingMore());\r\n      }\r\n\r\n      const response = await axios.post<JobsResponse>('/api/job/list', request);\r\n\r\n      const { result, data, totalCount, totalPages } = response.data;\r\n\r\n      switch (result) {\r\n        case ResultResponse.Success:\r\n          dispatch(\r\n            slice.actions.getJobsSuccess({\r\n              datas: data,\r\n              count: totalCount,\r\n              reset: reset,\r\n              request: request\r\n            })\r\n          );\r\n          break;\r\n        default:\r\n          dispatch(\r\n            slice.actions.getJobsSuccess({ datas: [], count: 0, reset: true, request: request })\r\n          );\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\n/**\r\n * détails de l'annonce\r\n * @param id\r\n * @returns\r\n */\r\nexport function getDetailJob(id: number) {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get<JobsDetailResponse>(`/api/job/detail/${id}`);\r\n\r\n      const { result, detail } = response.data;\r\n\r\n      switch (result) {\r\n        case ResultDetailResult.Success:\r\n          dispatch(slice.actions.getJobSuccess(detail));\r\n          break;\r\n        default:\r\n          dispatch(slice.actions.getJobSuccess(null));\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\n// ----------------------------------------------------------------------\r\n","// material\r\nimport { Typography } from '@mui/material';\r\n//type\r\nimport {\r\n  StudyPlanItem,\r\n  StudyPlanItemType,\r\n  StudyPlanItemHomework,\r\n  StudyPlanItemLearning,\r\n  StudyPlanItemStatus,\r\n  ScoreType\r\n} from '../../../../@types/pedagogy';\r\nimport { ScoreView } from '../ScoreView';\r\n\r\nimport { ChapterItemHomeworkNote } from './ChapterItemCard';\r\n\r\n/**\r\n * Afficher la note suivante le type d'item\r\n * POur les homework, on prend le dernier\r\n * pour les produits elearning , il doit etre fait\r\n */\r\nexport default function StudyPlanItemScore({ item }: { item: StudyPlanItem }) {\r\n  switch (item.type) {\r\n    case StudyPlanItemType.Homework:\r\n      return <ChapterItemHomeworkNote studyPlanItemHomework={item as StudyPlanItemHomework} />;\r\n\r\n    case StudyPlanItemType.Elearning:\r\n      const score = (item as StudyPlanItemLearning).elearning.score;\r\n      if (score > 0)\r\n        return (\r\n          <ScoreView\r\n            scoreType={ScoreType.sur20}\r\n            score={(item as StudyPlanItemLearning).elearning.score.toString()}\r\n          />\r\n        );\r\n\r\n      return <></>;\r\n  }\r\n  return <></>;\r\n}\r\n","// @types\r\nimport { FavoriteType, FavoriteKey } from '../@types/favorite';\r\nimport { useSnackbar } from 'notistack';\r\nimport { getFavorites, removeFavorite } from 'redux/slices/favorite';\r\n\r\n// redux\r\nimport { RootState, useDispatch, useSelector } from 'redux/store';\r\nimport { selectVirtualClassId } from 'redux/slices/virtualClass';\r\nimport { selectWorkshopById } from 'redux/slices/workshop';\r\nimport { useNavigate } from 'react-router';\r\n\r\n// components\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport { useEffect } from 'react';\r\n\r\n//------------------------------------------------\r\n\r\nexport const useFavorite = () => {\r\n  const dispatch = useDispatch();\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const { favorites, isLoading, notificationContent } = useSelector(\r\n    (state: RootState) => state.favorite\r\n  );\r\n  const navigate = useNavigate();\r\n\r\n  function load() {\r\n    dispatch(getFavorites());\r\n  }\r\n\r\n  const select = (key: FavoriteKey, type: FavoriteType) => {\r\n    switch (type) {\r\n      case FavoriteType.VirtualClass:\r\n        dispatch(selectVirtualClassId(key.id));\r\n\r\n        break;\r\n      case FavoriteType.Workshop:\r\n        dispatch(selectWorkshopById(key.id));\r\n        break;\r\n      case FavoriteType.News:\r\n        navigate(`${PATH_DASHBOARD.article.root}/${key.id}`);\r\n        break;\r\n\r\n      case FavoriteType.Evaluation:\r\n        navigate(`${PATH_DASHBOARD.studyPlan.details}/${key.courseId}-${key.homeworkId}`);\r\n        break;\r\n      case FavoriteType.Courses:\r\n        navigate(`${PATH_DASHBOARD.studyPlan.details}/${key.courseId}`);\r\n        break;\r\n      case FavoriteType.Job:\r\n        navigate(`${PATH_DASHBOARD.job.root}/${key.id}`);\r\n        break;\r\n    }\r\n    //dispatch(selectEventByKey({ id: id, type: type }));\r\n  };\r\n\r\n  const remove = (id: number) => {\r\n    dispatch(removeFavorite(id));\r\n  };\r\n\r\n  return {\r\n    favorites,\r\n    load: load,\r\n    remove: remove,\r\n    select: select,\r\n    isLoading: isLoading,\r\n    notificationContent\r\n  };\r\n};\r\n","import { ModuleType, OvertimeStatus } from '../@types/contract';\r\nimport { AlertBase } from '../@types/common';\r\nimport { useNavigate } from 'react-router';\r\n\r\nimport useModuleAuthorize from './useModuleAuthorize';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport { fDate } from 'utils/formatTime';\r\nimport { useCallback } from 'react';\r\n\r\nexport interface OvertimeAlertType extends AlertBase {}\r\n\r\n/**\r\n * Gestion de la prolongation\r\n * @returns\r\n */\r\nexport default function useOvertime() {\r\n  const navigate = useNavigate();\r\n  const { authorizedModule, getContractCurrent } = useModuleAuthorize({\r\n    accessibleModules: [ModuleType.Overtime]\r\n  });\r\n  const contractCurrent = getContractCurrent();\r\n\r\n  const getOvertimeAlert = useCallback(() => {\r\n    const currentOvertime = contractCurrent.overtimes.filter(\r\n      (o) => o.status === OvertimeStatus.Current\r\n    )[0];\r\n    switch (currentOvertime?.status) {\r\n      case OvertimeStatus.Current:\r\n        return {\r\n          title: 'Prolongation contrat en attente de validation.',\r\n          description: `Votre prolongation de ${currentOvertime.numberOfMonths} mois est attente de validation par l'école`,\r\n          img: '/static/illustrations/messages/expired_contract.svg'\r\n        } as OvertimeAlertType;\r\n      case OvertimeStatus.Reject:\r\n        return {\r\n          title: 'Prolongation contrat refusée.',\r\n          description: `Votre prolongation de ${currentOvertime.numberOfMonths} mois a été refusée par l'école`,\r\n          img: '/static/illustrations/messages/expired_contract.svg'\r\n        } as OvertimeAlertType;\r\n      case OvertimeStatus.Validated:\r\n        return {\r\n          title: 'Prolongation contrat validée.',\r\n          description: `Votre prolongation de ${currentOvertime.numberOfMonths} mois a été validée par l'école`,\r\n          img: '/static/illustrations/messages/expired_contract.svg'\r\n        } as OvertimeAlertType;\r\n      default:\r\n        return {\r\n          title: `Votre contrat expire le ${\r\n            contractCurrent?.closingDate && fDate(contractCurrent?.closingDate)\r\n          }`,\r\n          description: 'Souhaitez-vous prolonger votre formation ?',\r\n          img: '/static/illustrations/messages/expired_contract.svg',\r\n          action: () => {\r\n            navigate(PATH_DASHBOARD.general.overtimes);\r\n          }\r\n        } as OvertimeAlertType;\r\n    }\r\n  }, []);\r\n\r\n  return {\r\n    authorized: authorizedModule && contractCurrent.closingDate,\r\n    overtimes: contractCurrent.overtimes,\r\n    getOvertimeAlert\r\n  };\r\n}\r\n","import { useNavigate } from 'react-router';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport { AlertBase } from '../@types/common';\r\nimport { ModuleType } from '../@types/contract';\r\nimport useAuth from './useAuth';\r\nimport useModuleAuthorize from './useModuleAuthorize';\r\n\r\nexport interface PaymentAlertType extends AlertBase {}\r\n\r\nexport default function usePayment() {\r\n  const navigate = useNavigate();\r\n  const { authorizedModule, getContractCurrent } = useModuleAuthorize({\r\n    accessibleModules: [ModuleType.PaymentView]\r\n  });\r\n\r\n  const contractCurrent = getContractCurrent();\r\n  const { getFormatCurrency } = useAuth();\r\n\r\n  // Paiement requis\r\n  const getPaymentAlert = (): PaymentAlertType => {\r\n    return {\r\n      title: 'Relance paiement',\r\n      description: `Votre compte présente un solde débiteur de ${getFormatCurrency(\r\n        contractCurrent.debitAmount\r\n      )}`,\r\n      img: '/static/illustrations/messages/payment.svg',\r\n      action: () => {\r\n        navigate(PATH_DASHBOARD.student.payment);\r\n      }\r\n    };\r\n  };\r\n\r\n  return {\r\n    authorizedPayment: authorizedModule && contractCurrent.debitAmount < 0,\r\n    getPaymentAlert\r\n  };\r\n}\r\n","import { StudyPlanChapter, StudyPlanItem, StudyPlanPhase } from '../@types/pedagogy';\r\nimport { StudyPlanContext } from 'contexts/StudyPlanContext';\r\nimport { useContext } from 'react';\r\nimport * as helperStudyPlan from 'utils/helperStudyPlan';\r\n\r\nconst useStudyPlanChapter = () => {\r\n  const studyPlanManager = useContext(StudyPlanContext);\r\n\r\n  /**\r\n   * Selectionner le chapitre\r\n   * Par defaut on selectionne le premier sous chapitre puis le 1er item\r\n   * @param phaseId Numéro phase\r\n   * @param unityId id du unite de formation\r\n   * @param chapterId id du chapitre\r\n   */\r\n  function select(phaseId: string, unityId: string, chapterId: string) {\r\n    /*Rechercher l'item à partir des informations */\r\n\r\n    //mode par phase\r\n    let ph = studyPlanManager?.phases?.filter((p) => p.id.toString() === phaseId)[0];\r\n\r\n    //mode glbal\r\n    if (!ph) {\r\n      ph = studyPlanManager?.phases![0];\r\n    }\r\n\r\n    const unityChpt = ph?.chapters.filter((u) => u.id === unityId)[0];\r\n    const chapter = unityChpt?.chapters?.filter((c) => c.id === chapterId)[0];\r\n    // item du sous chapitre ou du chapitre ?\r\n    const chapterSelected = chapter?.chapters\r\n      ? helperStudyPlan.getFirstSubChapterWithItems(chapter?.chapters)\r\n      : chapter;\r\n\r\n    const item = chapterSelected?.items[0];\r\n    const subChapter = chapter?.chapters ? chapterSelected : null;\r\n\r\n    studyPlanManager?.selectItem(chapter!, item!, false, subChapter);\r\n  }\r\n\r\n  function getAllItems(chapter?: StudyPlanChapter): Array<StudyPlanItem> {\r\n    let list: Array<StudyPlanItem> = [];\r\n\r\n    studyPlanManager?.phases?.map((phase: StudyPlanPhase) => {\r\n      list = list.concat(getItems(phase.chapters));\r\n    });\r\n\r\n    return list;\r\n  }\r\n\r\n  const extractItems = (chapter: StudyPlanChapter, list: Array<StudyPlanItem>): Array<any> => {\r\n    if (chapter.chapters != null) return chapter.chapters.map((x) => extractItems(x, list));\r\n    else\r\n      chapter.items.map((item: StudyPlanItem) => {\r\n        list.push(item as StudyPlanItem);\r\n      });\r\n    return [];\r\n  };\r\n\r\n  /**\r\n   * Retourne tous items vues\r\n   * console.log(chapters);\r\n   */\r\n  function getItems(chapters: Array<StudyPlanChapter>): Array<StudyPlanItem> {\r\n    let list: Array<StudyPlanItem> = [];\r\n\r\n    chapters.map((chapter) => extractItems(chapter, list));\r\n\r\n    return list;\r\n  }\r\n\r\n  return {\r\n    select,\r\n    getItems,\r\n    getAllItems\r\n  };\r\n};\r\n\r\nexport default useStudyPlanChapter;\r\n","import { Card, Typography, Stack, Avatar, Button, Snackbar } from '@mui/material';\r\nimport { styled } from '@mui/styles';\r\nimport { Box } from '@mui/system';\r\nimport { useSurvey } from 'hooks/useSurvey';\r\nimport { useSnackbar } from 'notistack';\r\nimport { useEffect, useState } from 'react';\r\nimport { dispatch } from 'redux/store';\r\nimport { SurveyCategory, SurveyRequest, Survey, SurveyResponse } from '../../../@types/survey';\r\nimport { SurveyCategoryCard } from './SurveyCategoryCard';\r\nimport { SurveyInput } from './SurveyInput';\r\nimport { ContainerInput } from './SurveyStepperStandard';\r\nimport SurveyCardInformation from './SurveyCardInformation';\r\nimport { Alert } from '@mui/material';\r\n\r\nexport type SurveyProps = {\r\n  response: SurveyResponse;\r\n  onClose?: () => void;\r\n};\r\n\r\n/**\r\n * Gestion des questionnaires standard (hors questionnaire classe virtuelle (433) qui lui est sur un stepper)\r\n * L'affichage des questions obligatoire se fait ici\r\n * @param param0\r\n * @returns\r\n */\r\nexport const SurveyStandard = ({ response, onClose }: SurveyProps) => {\r\n  const [start, setStart] = useState(false);\r\n  const [saved, setSaved] = useState(false);\r\n\r\n  const {\r\n    categoryList,\r\n    onChange,\r\n    onChangeOption,\r\n    onChangeOptionTextRep,\r\n    onChangeChecked,\r\n    save,\r\n    isErrorSurvey,\r\n    isErrorSurveyItem,\r\n\r\n    title,\r\n    fill,\r\n    modeLecture\r\n  } = useSurvey({ request: response, onMove: () => {} });\r\n  const { enqueueSnackbar } = useSnackbar();\r\n  const [isValidItem, setIsValidItem] = useState(false);\r\n\r\n  const handleStart = () => {\r\n    setStart(true);\r\n  };\r\n\r\n  const handleSave = () => {\r\n    dispatch(\r\n      save()(() => {\r\n        //enregistrement\r\n        enqueueSnackbar(\"Merci d'avoir renseigner le questionnaire\", { variant: 'success' });\r\n        setSaved(true);\r\n        if (onClose) onClose();\r\n      })(() => {\r\n        enqueueSnackbar(\r\n          'Nous rencontrons actuellement un problème, veuillez réessayer ultérieurement',\r\n          { variant: 'error' }\r\n        );\r\n        if (onClose) onClose();\r\n      })\r\n    );\r\n  };\r\n\r\n  let index = 0;\r\n\r\n  const isValidSurvey = isValidItem && !isErrorSurvey();\r\n\r\n  if (!modeLecture && (fill || saved))\r\n    return (\r\n      <SurveyCardInformation title={title}>\r\n        <Alert severity=\"success\">\r\n          {saved\r\n            ? \"Merci d'avoir répondu au questionaire\"\r\n            : 'Vous avez déja répondu au questionnaire'}\r\n        </Alert>\r\n      </SurveyCardInformation>\r\n    );\r\n\r\n  if (!start && (!modeLecture || !fill)) {\r\n    return (\r\n      <SurveyCardInformation title={title}>\r\n        <Typography variant=\"body2\">Dites-nous tout !</Typography>\r\n        <Typography variant=\"body2\" paragraph>\r\n          Nous vous remercions de prendre quelques minutes pour nous transmettre vos réponses.\r\n        </Typography>\r\n        <Box sx={{ display: 'flex', justifyContent: 'center', mt: 4 }}>\r\n          <Button size=\"large\" variant=\"contained\" onClick={handleStart}>\r\n            Commencer\r\n          </Button>\r\n        </Box>\r\n      </SurveyCardInformation>\r\n    );\r\n  }\r\n\r\n  return (\r\n    <form>\r\n      <Snackbar\r\n        anchorOrigin={{ vertical: 'top', horizontal: 'center' }}\r\n        open={true}\r\n        color=\"info\"\r\n        message={title}\r\n      />\r\n\r\n      {categoryList?.map((c: SurveyCategory, i: number) => (\r\n        <SurveyCategoryCard category={c} key={`categoryCard_${c.id * i}`} sx={{ m: 2 }}>\r\n          {(survey, isRegroupement, i) => {\r\n            return (\r\n              <ContainerInput\r\n                survey={survey}\r\n                isRegroupement={isRegroupement}\r\n                index={index}\r\n                isStepper={false}\r\n              >\r\n                <SurveyInput\r\n                  survey={survey}\r\n                  isReadOnly={false}\r\n                  index={index}\r\n                  key={index}\r\n                  onChange={(value: string) => onChange(c.id, survey.id, value)}\r\n                  onChangeOption={(value: string) => onChangeOption(c.id, survey.id, value)}\r\n                  onChangeOptionText={(id: string, value: string) =>\r\n                    onChangeOptionTextRep(c.id, survey.id, id, value)\r\n                  }\r\n                  onChangeChecked={(id: string, checked: boolean) =>\r\n                    onChangeChecked(c.id, survey.id, id.toString(), checked)\r\n                  }\r\n                  onValid={(is: boolean) => setIsValidItem(is)}\r\n                />\r\n              </ContainerInput>\r\n            );\r\n          }}\r\n        </SurveyCategoryCard>\r\n      ))}\r\n      <Box sx={{ textAlign: 'center', mt: 2, p: 1 }}>\r\n        <Button variant=\"contained\" size=\"small\" disabled={!isValidSurvey} onClick={handleSave}>\r\n          Envoyer\r\n        </Button>\r\n      </Box>\r\n    </form>\r\n  );\r\n};\r\n","import { Link as RouterLink, Outlet } from 'react-router-dom';\r\n// material\r\nimport { styled } from '@mui/material/styles';\r\n// components\r\nimport Logo from '../components/Logo';\r\nimport { Box } from '@mui/system';\r\nimport { useEffect } from 'react';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst HeaderStyle = styled('header')(({ theme }) => ({\r\n  top: 0,\r\n  left: 0,\r\n  lineHeight: 0,\r\n  width: '100%',\r\n  position: 'absolute',\r\n  padding: theme.spacing(3, 3, 0),\r\n  [theme.breakpoints.up('sm')]: {\r\n    padding: theme.spacing(5, 5, 0)\r\n  }\r\n}));\r\n\r\nconst RootStyle = styled(Box)(({ theme }) => ({\r\n  backgroundColor: '#F9FAFB',\r\n  height: '0vh'\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport default function LogoOnlyLayout() {\r\n  useEffect(() => {\r\n    let elt = document.getElementById('wrapperEEContent');\r\n\r\n    if (elt) {\r\n      elt.style.display = 'block';\r\n    }\r\n  }, []);\r\n  return (\r\n    <RootStyle>\r\n      <HeaderStyle></HeaderStyle>\r\n      <Outlet />\r\n    </RootStyle>\r\n  );\r\n}\r\n","// material\r\nimport { Box, Stack, Card, Typography, Tooltip, LinkProps, Link } from '@mui/material';\r\nimport { styled } from '@mui/material/styles';\r\n\r\nimport { Lens, Lock, Sync } from '@mui/icons-material';\r\nimport { StudyPlanChapter } from '../../../../@types/pedagogy';\r\nimport { hChapterColorProgression } from 'utils/helperStudyPlan';\r\nimport useStudyPlan from 'hooks/useStudyPlan';\r\n\r\n//-------------------------------------------------\r\n\r\nexport type ChapterStatusProps = {\r\n  chapter: StudyPlanChapter;\r\n};\r\n\r\n/**\r\n * Retourne le statut coloré du chpitre basé sur la progression.\r\n * @param chapter : chapitre\r\n * @returns\r\n */\r\nexport default function ChapterStatus({ chapter }: ChapterStatusProps) {\r\n  const { locked, progression, itemsUpdated } = chapter;\r\n\r\n  const color = hChapterColorProgression(progression, locked).color;\r\n\r\n  // cadena\r\n  if (locked) return <Lock sx={{ color: '#C4C4C4' }} fontSize=\"small\" />;\r\n  // mise à jour média\r\n  if (itemsUpdated > 0) return <Sync sx={{ color: '#EE0701' }} fontSize=\"small\" />;\r\n  // statut réel\r\n  return (\r\n    <div style={{ paddingRight: '5px' }}>\r\n      <Lens sx={{ color: color }} fontSize=\"small\" />\r\n    </div>\r\n  );\r\n}\r\n","import { ReactNode } from 'react';\r\nimport { styled } from '@mui/material/styles';\r\nimport { Box, BoxProps } from '@mui/material';\r\nimport React from 'react';\r\n\r\n// styles\r\n\r\nconst RootStyle = styled(Box)(({ theme }) => ({\r\n  display: 'flex',\r\n  listStyle: 'none',\r\n  justifyContent: 'center',\r\n  '& li': {\r\n    width: 24,\r\n    height: 24,\r\n    opacity: 0.32,\r\n    cursor: 'pointer',\r\n    '&.slick-active': {\r\n      opacity: 1,\r\n      '& .dotActive': {\r\n        width: 12,\r\n        borderRadius: 8\r\n      }\r\n    }\r\n  }\r\n}));\r\n\r\nconst DotStyle = styled('span')(({ theme }) => ({\r\n  width: 12,\r\n  height: 12,\r\n  borderRadius: '50%',\r\n  transition: theme.transitions.create('all', {\r\n    easing: theme.transitions.easing.easeInOut,\r\n    duration: 360\r\n  })\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface CarouselDotsControlsPagingProps extends BoxProps {\r\n  color?: string;\r\n}\r\n\r\nexport default function CarouselDotsControlsPagingProps({\r\n  color,\r\n  ...other\r\n}: CarouselDotsControlsPagingProps) {\r\n  return {\r\n    appendDots: (dots: ReactNode) => (\r\n      <>\r\n        <RootStyle component=\"ul\" {...other}>\r\n          {dots}\r\n        </RootStyle>\r\n      </>\r\n    ),\r\n    customPaging: () => (\r\n      <Box\r\n        sx={{\r\n          width: '100%',\r\n          height: '100%',\r\n          display: 'flex',\r\n          alignItems: 'center',\r\n          justifyContent: 'center'\r\n        }}\r\n      >\r\n        <DotStyle\r\n          className=\"dotActive\"\r\n          sx={{\r\n            bgcolor: color || 'primary.main'\r\n          }}\r\n        />\r\n      </Box>\r\n    )\r\n  };\r\n}\r\n","import { useEffect, useState } from 'react';\r\nimport { RootState, useSelector } from 'redux/store';\r\nimport useAuth from './useAuth';\r\nimport {\r\n  Academie,\r\n  defaultDepartement,\r\n  defaultExamen,\r\n  Departement,\r\n  Examen,\r\n  RegionAdministrative\r\n} from '../@types/examen';\r\n\r\nexport type useExamenFormProps = {\r\n  id: string;\r\n  sessionId: string;\r\n};\r\n\r\nexport default function useExamenForm({ id, sessionId }: useExamenFormProps) {\r\n  const { student, getContractCurrent } = useAuth();\r\n  const [examen, setExamen] = useState<Examen>(new defaultExamen());\r\n  const {\r\n    examens,\r\n    isLoadingForm,\r\n    errorForm,\r\n    objectifs,\r\n    departements,\r\n    academies,\r\n    regions,\r\n    statutsInscription,\r\n    statutsResultat,\r\n    statutsEpreuve\r\n  } = useSelector((state: RootState) => state.examen);\r\n\r\n  const contract = getContractCurrent();\r\n\r\n  useEffect(() => {\r\n    if (id === '') {\r\n      let departement = student?.address?.department;\r\n      if (!departement || departement === undefined || departement === '') {\r\n        departement = student?.address?.postalCode?.substring(0, 2);\r\n      }\r\n      return create(departement);\r\n    } else\r\n      setExamen(\r\n        examens.filter((exa: Examen) => exa.code === id && exa.session.code === sessionId)[0]\r\n      );\r\n  }, [examens]);\r\n\r\n  function create(departmentCode: string) {\r\n    const response = changeDepartment(departmentCode);\r\n    let current = new defaultExamen();\r\n    current.etatInscription = 'PRE';\r\n\r\n    if (response) {\r\n      current.departement = response.department;\r\n      current.region = response.region;\r\n      current.academie = response.academie;\r\n    }\r\n    current.statutInscription = { code: 'ENV', designation: '' };\r\n    current.statutResultat = { code: 'INC', designation: '' };\r\n    current.formePassage = 'GLO';\r\n    setExamen(current);\r\n  }\r\n\r\n  function changeDepartment(code: string) {\r\n    const department = departements.filter((d: Departement) => d.code === code)[0];\r\n    const academie = academies.filter((a: Academie) => a.code === department?.academieCode)[0];\r\n    const region = regions.filter(\r\n      (r: RegionAdministrative) => r.code === department?.regionCode\r\n    )[0];\r\n\r\n    return {\r\n      department,\r\n      academie,\r\n      region\r\n    };\r\n  }\r\n\r\n  return {\r\n    examen,\r\n    examens,\r\n    errorForm,\r\n    isLoadingForm,\r\n    objectifs,\r\n    departements,\r\n    academies,\r\n    regions,\r\n    statutsInscription,\r\n    statutsResultat,\r\n    statutsEpreuve,\r\n    category: contract.training.categoryObjectif\r\n  };\r\n}\r\n","export interface InternshipListResponse {\r\n  list: Internship[];\r\n  result: InternshipListResult;\r\n  typeOfLocation: InternshipTypeOfLocation[];\r\n}\r\n\r\nexport interface InternshipState {\r\n  isLoading: boolean;\r\n  error: any;\r\n  internships: Internship[];\r\n  internship: Internship | null;\r\n  internshipTypeOfLocation: InternshipTypeOfLocation[];\r\n}\r\n\r\nexport interface InternshipPeriod {\r\n  start: Date;\r\n  end: Date;\r\n  id: string;\r\n  color: string;\r\n  title: string;\r\n}\r\n\r\nexport interface InternshipSiteGestion {\r\n  id: number;\r\n  label: string;\r\n  address: InternshipAddress;\r\n  phone1: string;\r\n  phone2: string;\r\n  url: string;\r\n  referent: InternshipReferent;\r\n}\r\n\r\nexport interface InternshipSite extends InternshipSiteGestion {\r\n  type: string;\r\n  mail: string;\r\n  url: string;\r\n  siret: string;\r\n}\r\n\r\nexport interface InternshipAddress {\r\n  complement: string;\r\n  postalCode: string;\r\n  city: string;\r\n  country: string;\r\n  countryCode: string;\r\n}\r\n\r\nexport interface InternshipReferent {\r\n  id: number;\r\n  civility: string;\r\n  firstName: string;\r\n  lastName: string;\r\n  function: string;\r\n}\r\n\r\nexport interface Internship {\r\n  id: number;\r\n  amendmentId: number;\r\n  site: InternshipSite;\r\n  mission: string;\r\n  gestion: InternshipSiteGestion;\r\n  support: string;\r\n  label: string;\r\n  dateStart: string | null;\r\n  dateEnd: string | null;\r\n  dateSended: string | null;\r\n  dateReception: string | null;\r\n  dateValidation: string | null;\r\n  dateCancel: string | null;\r\n  motifCancelled: string;\r\n  status: string;\r\n  referentIsSignataire: boolean;\r\n  isGestion: boolean;\r\n  signataire: InternshipReferent;\r\n  typeOfLocation: string;\r\n  isPayment: boolean;\r\n  isRQTH: boolean;\r\n  numberOfDays: number;\r\n  numberOfHours: number;\r\n  numberHoursOfWeek: number;\r\n  observationHoraire: string;\r\n  score: string;\r\n  evaluation: string;\r\n  carriedOut: boolean;\r\n  observationTeacher: string;\r\n  eventsJson: string;\r\n}\r\n\r\nexport enum InternshipListResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n\r\nexport interface InternshipAddResponse {\r\n  result: InternshipAddResult;\r\n  message: string;\r\n}\r\n\r\nexport enum InternshipAddResult {\r\n  Error = 0,\r\n  Success = 1,\r\n  FieldsIsRequired = 2\r\n}\r\n\r\nexport interface InternshipTypeOfLocation {\r\n  code: string;\r\n  label: string;\r\n}\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { store } from '../store';\r\n// utils\r\nimport axiosInstance from '../../utils/axios';\r\n// @types\r\nimport {\r\n  Internship,\r\n  InternshipAddResponse,\r\n  InternshipAddResult,\r\n  InternshipListResponse,\r\n  InternshipListResult,\r\n  InternshipSiteGestion,\r\n  InternshipState\r\n} from '../../@types/internship';\r\nimport { computeInternshipEventsIds } from '../../utils/helperInternship';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: InternshipState = {\r\n  isLoading: false,\r\n  error: false,\r\n  internships: [],\r\n  internshipTypeOfLocation: [],\r\n  internship: null\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'internship',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n    },\r\n    // end LOADING\r\n    endLoading(state) {\r\n      state.isLoading = false;\r\n      state.internship = null;\r\n      state.error = false;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    // Liste\r\n    getIntershipListSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.internship = null;\r\n      state.internships = action.payload.list;\r\n      state.internshipTypeOfLocation = action.payload.typeOfLocation;\r\n    },\r\n\r\n    // ajouter\r\n    addInternshipSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.internships = [...state.internships, action.payload];\r\n    },\r\n    selectInternship(state, action) {\r\n      const { id, brand } = action.payload;\r\n\r\n      const intership = state.internships.find((i) => i.id === id);\r\n\r\n      if (intership) {\r\n        intership.referentIsSignataire =\r\n          intership.signataire?.id === intership.site.referent.id ? true : false;\r\n        intership.isGestion = intership.gestion?.id > 0 ? true : false;\r\n        if (intership.gestion === null) intership.gestion = initGestionaire(brand);\r\n        if (intership.signataire === null || intership.referentIsSignataire)\r\n          intership.signataire = {\r\n            id: 0,\r\n            civility: '',\r\n            lastName: '',\r\n            firstName: '',\r\n            function: ''\r\n          };\r\n        // supprimer le nom dans l'adesse\r\n\r\n        if (intership.site.address.complement !== null)\r\n          intership.site.address.complement = intership.site.address.complement.replace(\r\n            intership.site.label.toUpperCase(),\r\n            ''\r\n          );\r\n\r\n        computeInternshipEventsIds(intership);\r\n\r\n        state.internship = intership;\r\n      }\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n// Actions\r\nexport const { selectInternship } = slice.actions;\r\n\r\nexport const initGestionaire = (brand: string): InternshipSiteGestion => {\r\n  return {\r\n    id: 0,\r\n    label: '',\r\n    phone1: '',\r\n    phone2: '',\r\n    url: '',\r\n    address: {\r\n      complement: '',\r\n      city: '',\r\n      postalCode: '',\r\n      country: '',\r\n      countryCode: brand === 'CHE' ? 'SUI' : 'FRA'\r\n    },\r\n    referent: {\r\n      id: 0,\r\n      civility: '',\r\n      lastName: '',\r\n      firstName: '',\r\n      function: ''\r\n    }\r\n  };\r\n};\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getInternshipList() {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axiosInstance.get<InternshipListResponse>('/api/internship/list');\r\n      const { result, list, typeOfLocation } = response.data;\r\n\r\n      switch (result) {\r\n        case InternshipListResult.Success:\r\n          dispatch(\r\n            slice.actions.getIntershipListSuccess({ list: list, typeOfLocation: typeOfLocation })\r\n          );\r\n          break;\r\n        case InternshipListResult.NotFound:\r\n          dispatch(\r\n            slice.actions.getIntershipListSuccess({ list: [], typeOfLocation: typeOfLocation })\r\n          );\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(\r\n        slice.actions.hasError('Nous rencontrons un problème,veuillez essayer ultérieurement')\r\n      );\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n/**\r\n *\r\n * @param request\r\n * @returns\r\n */\r\nexport const addInternship = (request: Internship) => (onSuccess: () => void) => {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axiosInstance.post<InternshipAddResponse>(\r\n        '/api/internship/add',\r\n        request,\r\n        {\r\n          headers: { writeOnly: true }\r\n        }\r\n      );\r\n      const { result, message } = response.data;\r\n\r\n      switch (result) {\r\n        case InternshipAddResult.Success:\r\n          dispatch(slice.actions.endLoading());\r\n          onSuccess();\r\n          break;\r\n        default:\r\n          dispatch(slice.actions.hasError(message));\r\n      }\r\n    } catch (error) {\r\n      dispatch(\r\n        slice.actions.hasError('Nous rencontrons un problème,veuillez essayer ultérieurement')\r\n      );\r\n    }\r\n  };\r\n};\r\n","import { Internship } from '../@types/internship';\r\n\r\n// Recalcul des ids des événements pour éviter que deux événements possèdent le même id\r\nexport function computeInternshipEventsIds(internship: Internship) {\r\n  if (internship && internship.eventsJson !== '') {\r\n    const events = JSON.parse(internship.eventsJson);\r\n\r\n    if (events && events.calendar && events.calendar.length > 0) {\r\n      events.calendar.map((evt: any, idx: number) => (evt.id = `${idx + 1}`));\r\n\r\n      internship.eventsJson = JSON.stringify(events);\r\n    }\r\n  }\r\n}\r\n","import { ReactNode } from 'react';\r\nimport { Container, Alert, AlertTitle, Card, Divider, Typography, CardHeader } from '@mui/material';\r\nimport { ModuleType } from '../@types/contract';\r\nimport { IllustrationInfo } from 'components/IllustrationMessage';\r\nimport { InformationsContract } from 'components/ModuleNotAuthorized';\r\nimport useModuleGuard from 'hooks/useModuleGuard';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ntype ModuleGuardProp = {\r\n  accessibleModules: Array<ModuleType>;\r\n  children: ReactNode | string;\r\n};\r\n\r\n/**\r\n * Autorisation module\r\n * */\r\nexport default function ModuleGuard({ accessibleModules, children }: ModuleGuardProp) {\r\n  const { moduleLocked } = useModuleGuard();\r\n\r\n  if (moduleLocked(accessibleModules)) {\r\n    return (\r\n      <Container maxWidth={'md'}>\r\n        <Card>\r\n          <CardHeader\r\n            title={\r\n              <Typography variant=\"subtitle1\">\r\n                Accès à l'Espace numérique de travail limité\r\n              </Typography>\r\n            }\r\n          />\r\n\r\n          <Divider />\r\n\r\n          <IllustrationInfo img={'/static/illustrations/general/ent.svg'} isColumn={true}>\r\n            <Alert severity=\"error\">\r\n              <AlertTitle>Accès limité</AlertTitle>\r\n              Vous n’avez pas accès à toutes les fonctionnalités de l’Espace numérique de travail.\r\n            </Alert>\r\n          </IllustrationInfo>\r\n          <InformationsContract />\r\n        </Card>\r\n      </Container>\r\n    );\r\n  }\r\n\r\n  return <>{children}</>;\r\n}\r\n","import { map } from 'lodash';\r\nimport { LabelColor } from 'components/Label';\r\nimport {\r\n  HomeworkBase,\r\n  HomeworkStatus,\r\n  StudyPlanChapter,\r\n  StudyPlanItem,\r\n  StudyPlanItemHomework,\r\n  StudyPlanItemMedia,\r\n  StudyPlanItemStatus,\r\n  StudyPlanItemType,\r\n  StudyPlanPhase,\r\n  StudyPlanSearch,\r\n  setLockParameter,\r\n  StudyPlanMarker,\r\n  StudyPlanItemUpdated,\r\n  Progression,\r\n  StudyPlanItemLearning,\r\n  StudyPlanItemScoreType,\r\n  StudyPlanItemTypeSearchString\r\n} from '../@types/pedagogy';\r\nimport { fDate } from './formatTime';\r\nimport { removeAccents } from './helper';\r\n\r\n/**\r\n * Retourne les items de type devoir\r\n */\r\nexport function getItemLearningByCourseId(\r\n  phases: Array<StudyPlanPhase>,\r\n  courseId: string\r\n): StudyPlanItemLearning | null {\r\n  let item: StudyPlanItemLearning | null = null;\r\n\r\n  phases?.map((phase: StudyPlanPhase) => {\r\n    phase.chapters.map((unityChapter: StudyPlanChapter) => {\r\n      unityChapter.chapters.map((chapter: StudyPlanChapter) => {\r\n        if (chapter.chapters !== null) {\r\n          chapter.chapters.map((subChapter: StudyPlanChapter) =>\r\n            subChapter.items\r\n              .filter(\r\n                (_item: StudyPlanItem) =>\r\n                  _item.type === StudyPlanItemType.Elearning && _item.id === courseId\r\n              )\r\n              .map((_item) => (item = _item as StudyPlanItemLearning))\r\n          );\r\n        } else\r\n          return chapter.items\r\n            .filter(\r\n              (_item: StudyPlanItem) =>\r\n                _item.type === StudyPlanItemType.Elearning && _item.id === courseId\r\n            )\r\n            .map((_item) => (item = _item as StudyPlanItemLearning));\r\n      });\r\n    });\r\n  });\r\n\r\n  return item;\r\n}\r\n\r\n/**\r\n * Retourne la liste des couleurs baséé sur la progression\r\n * @returns\r\n */\r\nexport function getColorsProgression() {\r\n  return [{ assimilate: '#00C040', open: '#FFC107!important', toDo: '#C4C4C4!important' }];\r\n}\r\n\r\n/**\r\n * Retourne la liste des couleurs basé sur le statut\r\n * @returns\r\n */\r\nexport function getColorsStatus() {\r\n  return [\r\n    { status: 'assimilate', color: 'success' as LabelColor, hexa: '#229A16' },\r\n    { status: 'read', color: 'warning' as LabelColor, hexa: '#B78103' },\r\n    { status: 'none', color: 'default' as LabelColor, hexa: '#637381' },\r\n    { status: 'disabled', color: 'default' as LabelColor, hexa: '#637381' },\r\n    { status: 'locked', color: 'default' as LabelColor, hexa: '#637381' }\r\n  ];\r\n}\r\n\r\n/**\r\n * Retourne la liste des couleurs basé sur le statut\r\n * @returns\r\n */\r\nexport function getColorsIconStatus() {\r\n  return [\r\n    { status: 'assimilate', color: 'success' as LabelColor, hexa: '#00C040' },\r\n    { status: 'read', color: 'warning' as LabelColor, hexa: '#FFC107' },\r\n    { status: 'none', color: 'default' as LabelColor, hexa: '#C4C4C4' },\r\n    { status: 'disabled', color: 'default' as LabelColor, hexa: '#C4C4C4' },\r\n    { status: 'locked', color: 'default' as LabelColor, hexa: '#C4C4C4' }\r\n  ];\r\n}\r\n\r\n/**\r\n * Calcul des de la progression et verrouillae des chapitres, items\r\n * @param phases :Liste des phases du plan d'étude\r\n * Paramètres en byRef\r\n */\r\nexport function refreshPhases(\r\n  phases: Array<StudyPlanPhase>,\r\n  currentSendingPhase: number,\r\n  constrainedCourse: boolean,\r\n  progression: Progression\r\n) {\r\n  //Pour chaque phase\r\n  return phases.map((phase) => {\r\n    //Calcul de la progression\r\n    phase.chapters.forEach((_chapter) => {\r\n      setProgress(_chapter);\r\n      progression.assimilate += _chapter.progression.assimilate;\r\n      progression.count += _chapter.progression.count;\r\n    });\r\n\r\n    let unLockFirstLocked: boolean = true;\r\n    //Objet par référence\r\n    let parameters: setLockParameter = {\r\n      unLockFirstLocked: true,\r\n      isFinished: false,\r\n      unlockLevelList: []\r\n    };\r\n\r\n    phase.chapters.forEach((chapter) => {\r\n      //deblocage poru le premier item ou par N° niveau d'accès\r\n      parameters.unLockFirstLocked =\r\n        unLockFirstLocked || parameters.unlockLevelList.some((w) => w === chapter.unlockLevel);\r\n      // gestion verrouillage\r\n      setLock(chapter, parameters, currentSendingPhase, constrainedCourse);\r\n      unLockFirstLocked = false;\r\n    });\r\n  });\r\n}\r\n\r\n/**\r\n * Verrouillage PE :\r\n * Par defaut le serveur envoi les zones verrouillées\r\n * Parcours contraint Regle : voir fichier dans le source code\r\n * @Chapter : uf de la phase\r\n */\r\nexport function setLock(\r\n  chapter: StudyPlanChapter,\r\n  parameter: setLockParameter,\r\n  numEnvMax: number,\r\n  constrainedCourse: boolean\r\n) {\r\n  if (chapter.chapters != null) {\r\n    chapter.chapters.map((x) => {\r\n      //on force un deblocage si :\r\n      parameter.unLockFirstLocked =\r\n        parameter.unLockFirstLocked ||\r\n        (!chapter.locked && chapter.level === 1) || // de tous les sous chapitres d'un chpitre déverrouilé\r\n        (parameter.isFinished && chapter.level === 0); // Si le chapitre précédent est terminé\r\n\r\n      setLock(x, parameter, numEnvMax, constrainedCourse);\r\n\r\n      if (!x.locked) {\r\n        chapter.locked = false;\r\n      }\r\n\r\n      parameter.isFinished =\r\n        chapter.progression.count === chapter.progression.assimilate + chapter.progression.open;\r\n    });\r\n\r\n    //deverrouillage sur le NumDev des uF\r\n    if (chapter.level === 0 && !chapter.locked && chapter.unlockLevel > 0) {\r\n      parameter.unlockLevelList.push(chapter.unlockLevel);\r\n    }\r\n  } else {\r\n    chapter.items.map((item: StudyPlanItem, index: number) => {\r\n      if (\r\n        item.status === StudyPlanItemStatus.Locked &&\r\n        parameter.unLockFirstLocked &&\r\n        item.sendingPhase <= numEnvMax\r\n      ) {\r\n        item.status = StudyPlanItemStatus.None;\r\n        parameter.unLockFirstLocked = false;\r\n        chapter.locked = false;\r\n      }\r\n      //contraint on bloque si on trouve un item non commencé\r\n      if (\r\n        constrainedCourse &&\r\n        (item.status === StudyPlanItemStatus.None ||\r\n          (item.type === StudyPlanItemType.Homework &&\r\n            !isHomeworkDo(item as StudyPlanItemHomework)))\r\n      )\r\n        parameter.unLockFirstLocked = false;\r\n\r\n      /* parcours libre*/\r\n      if (\r\n        !constrainedCourse &&\r\n        [StudyPlanItemStatus.None, StudyPlanItemStatus.Locked].includes(item.status)\r\n      ) {\r\n        item.status = StudyPlanItemStatus.None;\r\n        parameter.unLockFirstLocked = false;\r\n        chapter.locked = false;\r\n      }\r\n    });\r\n\r\n    parameter.isFinished =\r\n      chapter.progression.count === chapter.progression.assimilate + chapter.progression.open;\r\n    chapter.locked = !(\r\n      !chapter.locked || chapter.progression.assimilate + chapter.progression.open > 0\r\n    );\r\n  }\r\n}\r\n\r\nexport function isHomeworkDo(item: StudyPlanItemHomework) {\r\n  if (item.homeworkBase.homeworks.length === 0) return false;\r\n\r\n  return item.homeworkBase.homeworks.some((h) =>\r\n    [HomeworkStatus.Corrected, HomeworkStatus.Do, HomeworkStatus.Sended].includes(h.status)\r\n  );\r\n}\r\n\r\n//Initialisation de l(objet progression\r\nfunction intChapterProgress(chapter: StudyPlanChapter) {\r\n  chapter.progression = initProgression();\r\n}\r\n\r\nexport function initProgression() {\r\n  return {\r\n    count: 0,\r\n    assimilate: 0,\r\n    open: 0,\r\n    coefficientSummary: 0,\r\n    scoreSummary: 0,\r\n    isScore: false,\r\n    scoreCount: 0\r\n  } as Progression;\r\n}\r\n\r\n/**\r\n * Gestion de la progression des chapitres sélectionné\r\n * @chapter : uf de la phase\r\n */\r\nexport function setProgress(chapter: StudyPlanChapter) {\r\n  if (chapter.chapters != null) {\r\n    intChapterProgress(chapter);\r\n    chapter.chapters.forEach((x) => {\r\n      setProgress(x);\r\n\r\n      chapter.progression.count += x.progression.count;\r\n      chapter.progression.assimilate += x.progression.assimilate;\r\n      chapter.progression.open += x.progression.open;\r\n      chapter.progression.coefficientSummary += x.progression.coefficientSummary;\r\n      chapter.progression.scoreSummary += x.progression.scoreSummary;\r\n      chapter.progression.scoreCount += x.progression.scoreCount;\r\n      if (x.progression.isScore) {\r\n        chapter.progression.isScore = true;\r\n        if (chapter.progression.coefficientSummary > 0)\r\n          chapter.progression.score =\r\n            chapter.progression.scoreSummary / chapter.progression.coefficientSummary;\r\n      }\r\n    });\r\n  } else {\r\n    intChapterProgress(chapter);\r\n    chapter.items.forEach((item: StudyPlanItem) => {\r\n      /*\r\n      if (chap.type === StudyPlanItemType.Elearning) {\r\n        const item = chap as StudyPlanItemLearning;\r\n        if (item.elearning.score > 0) {\r\n          chapter.progression.coefficientSummary += 1;\r\n          chapter.progression.scoreSummary += item.elearning.score;\r\n        }\r\n      }*/\r\n\r\n      if (\r\n        [StudyPlanItemScoreType.ExcludeDo, StudyPlanItemScoreType.IncludeDo].includes(\r\n          item.averageType\r\n        )\r\n      ) {\r\n        chapter.progression.isScore = true;\r\n      }\r\n\r\n      if (item.averageType === StudyPlanItemScoreType.IncludeDo) {\r\n        if (item.type === StudyPlanItemType.Homework) {\r\n          const chapHomework = item as StudyPlanItemHomework; //&& chapHomework.homeworkBase.mandatory\r\n\r\n          if (chapHomework.homeworkBase.homeworks?.length > 0) {\r\n            const homeworksCorrected = chapHomework.homeworkBase.homeworks.filter(\r\n              (homework) => homework.status === HomeworkStatus.Corrected\r\n            );\r\n            if (homeworksCorrected && homeworksCorrected.length > 0) {\r\n              homeworksCorrected.map((c) => {\r\n                chapter.progression.coefficientSummary += chapHomework.homeworkBase.coefficient;\r\n                chapter.progression.scoreSummary += c.score * chapHomework.homeworkBase.coefficient;\r\n              });\r\n\r\n              chapter.progression.scoreCount += 1;\r\n            }\r\n          }\r\n        }\r\n      }\r\n      chapter.progression.count += 1;\r\n      switch (item.status) {\r\n        case StudyPlanItemStatus.None:\r\n          break;\r\n        case StudyPlanItemStatus.Locked:\r\n          break;\r\n        case StudyPlanItemStatus.Assimilate:\r\n          chapter.progression.assimilate += 1;\r\n          break;\r\n        case StudyPlanItemStatus.Read:\r\n          chapter.progression.open += 1;\r\n          break;\r\n      }\r\n    });\r\n\r\n    if (chapter.progression.coefficientSummary > 0)\r\n      chapter.progression.score =\r\n        chapter.progression.scoreSummary / chapter.progression.coefficientSummary;\r\n  }\r\n}\r\n\r\n/*\r\n * Extraction récursive des devoirs du PE\r\n * @chapter : chapitre de la formation\r\n * @list:<HomeworkBase> : Liste des devoirs\r\n */\r\nexport const extractHomework = (\r\n  chapter: StudyPlanChapter,\r\n  list: Array<HomeworkBase>\r\n): Array<any> => {\r\n  if (chapter.chapters != null) return chapter.chapters.map((x) => extractHomework(x, list));\r\n  else\r\n    chapter.items.forEach((x: StudyPlanItem) => {\r\n      if (x.type === StudyPlanItemType.Homework) {\r\n        let current = x as StudyPlanItemHomework;\r\n\r\n        list.push(current.homeworkBase);\r\n      }\r\n    });\r\n  return [];\r\n};\r\n\r\n/**\r\n * Extraire les items par motclé\r\n * @chapter : chapitre de la formation\r\n * @searchString :mot clé\r\n * @list : Liste des items retournées\r\n * @chapterParent : Chapitre parent du chapitre de l'item sélectionné\r\n */\r\nexport const extractItem = (\r\n  chapter: StudyPlanChapter,\r\n  searchString: string,\r\n  list: Array<StudyPlanSearch>,\r\n  chapterParent: StudyPlanChapter | null,\r\n  itemType?: StudyPlanItemType[]\r\n): Array<any> => {\r\n  const cleanSearchString = removeAccents(searchString);\r\n\r\n  if (chapter.chapters != null)\r\n    return chapter.chapters.map((x) => extractItem(x, cleanSearchString, list, chapter, itemType));\r\n  else\r\n    chapter.items.forEach((x: StudyPlanItem) => {\r\n      if (\r\n        (removeAccents(x.label).includes(cleanSearchString) ||\r\n          removeAccents(x.reference).includes(cleanSearchString) ||\r\n          removeAccents(x.key).includes(cleanSearchString) ||\r\n          removeAccents(StudyPlanItemType[x.type]).includes(cleanSearchString) ||\r\n          StudyPlanItemTypeSearchString[x.type.valueOf()].some((s) =>\r\n            s.includes(cleanSearchString)\r\n          )) &&\r\n        (!itemType ||\r\n          itemType === undefined ||\r\n          itemType?.length === 0 ||\r\n          itemType?.includes(x.type))\r\n      ) {\r\n        list.push({ item: x, chapter: chapter, chapterParent: chapterParent! });\r\n      }\r\n    });\r\n  return [];\r\n};\r\n\r\nexport const getItemsByReference = (\r\n  chapter: StudyPlanChapter,\r\n  reference: string,\r\n  chapterParent: StudyPlanChapter | null,\r\n  list: Array<StudyPlanItem>\r\n): Array<any> => {\r\n  if (chapter.chapters != null)\r\n    return chapter.chapters.map((x) => getItemsByReference(x, reference, chapter, list));\r\n  else\r\n    chapter.items.forEach((x: StudyPlanItem) => {\r\n      if (x.id === reference) {\r\n        list.push(x);\r\n      }\r\n    });\r\n  return [];\r\n};\r\n\r\n/**\r\n * Gestion du déblocage\r\n */\r\nfunction LoadViewGlobal(\r\n  Chapters: Array<any>,\r\n  currentSendingPhase: number,\r\n  constrainedCourse: boolean\r\n) {\r\n  //Pour chaque phase\r\n  Chapters.forEach((chapter) => {\r\n    //Calcul de la progression\r\n    setProgress(chapter);\r\n\r\n    let unLockFirstLocked: boolean = true;\r\n    //Objet par référence\r\n    let parameters: setLockParameter = {\r\n      unLockFirstLocked: true,\r\n      isFinished: false,\r\n      unlockLevelList: []\r\n    };\r\n\r\n    //deblocage poru le premier item ou par N° niveau d'accès\r\n    parameters.unLockFirstLocked =\r\n      unLockFirstLocked || parameters.unlockLevelList.some((w) => w == chapter.unlockLevel);\r\n    // gestion verrouillage\r\n    setLock(chapter, parameters, currentSendingPhase, constrainedCourse);\r\n    unLockFirstLocked = false;\r\n  });\r\n}\r\n\r\nexport function getItemsUpdated(phases: Array<StudyPlanPhase>): Array<StudyPlanItemUpdated> {\r\n  let list: Array<StudyPlanItemUpdated> = [];\r\n\r\n  phases.forEach((p) => {\r\n    p.chapters.map((uf: StudyPlanChapter) => updateChapterUpdated(uf));\r\n  });\r\n\r\n  phases.forEach((p) => {\r\n    p.chapters.forEach((uf: StudyPlanChapter) => {\r\n      uf.chapters.forEach((chapter: StudyPlanChapter) => {\r\n        if (chapter.chapters != null) {\r\n          chapter.chapters.forEach((subChapter: StudyPlanChapter) => {\r\n            subChapter.items.forEach((item: StudyPlanItem) => {\r\n              if (item.isUpdated)\r\n                list.push({\r\n                  phase: p.id,\r\n                  unityCode: uf.id,\r\n                  chapterCode: chapter.id,\r\n                  subChapterCode: subChapter.id,\r\n                  item: item\r\n                });\r\n            });\r\n          });\r\n        } else\r\n          chapter.items.forEach((item: StudyPlanItem) => {\r\n            if (item.isUpdated)\r\n              list.push({\r\n                phase: p.id,\r\n                unityCode: uf.id,\r\n                chapterCode: chapter.id,\r\n                subChapterCode: '',\r\n                item: item\r\n              });\r\n          });\r\n      });\r\n    });\r\n  });\r\n  return list;\r\n}\r\n\r\n/**\r\n * Update de l'information des supports mis à jour\r\n * @param phases\r\n * @param payload\r\n * @returns\r\n */\r\nexport function updateChapterUpdated(chapter: StudyPlanChapter) {\r\n  if (chapter.chapters != null) {\r\n    chapter.chapters.map((c) => {\r\n      return updateChapterUpdated(c);\r\n    });\r\n    chapter.itemsUpdated = chapter.chapters.reduce(\r\n      (accumaleur, currentValue) => accumaleur + currentValue.itemsUpdated,\r\n      0\r\n    );\r\n  } else {\r\n    chapter.itemsUpdated = chapter.items.filter((i) => i.isUpdated).length;\r\n  }\r\n}\r\n\r\nexport function getFirstSubChapterWithItems(chapter: Array<StudyPlanChapter>) {\r\n  return chapter.filter((sub) => sub.items && sub.items.length > 0)[0];\r\n}\r\n\r\n/*\r\n  Mise à jour du pe\r\n*/\r\nexport function setStudyPlan(phases: Array<StudyPlanPhase>, payload: StudyPlanItem) {\r\n  return map(phases, (k) => {\r\n    if (k.id === payload.sendingPhase) {\r\n      k.chapters.forEach((uf: StudyPlanChapter) => {\r\n        uf.chapters.forEach((chapter: StudyPlanChapter) => {\r\n          if (chapter.chapters != null) {\r\n            chapter.chapters.forEach((subChapter: StudyPlanChapter) => {\r\n              subChapter.items.map((_item: StudyPlanItem) => {\r\n                if (_item.key === payload.key) {\r\n                  return {\r\n                    payload\r\n                  };\r\n                } else return _item;\r\n              });\r\n            });\r\n          } else {\r\n            chapter.items.map((_item: StudyPlanItem) => {\r\n              if (_item.key === payload.key) {\r\n                return {\r\n                  payload\r\n                };\r\n              } else return _item;\r\n            });\r\n          }\r\n        });\r\n      });\r\n    }\r\n    return k;\r\n  });\r\n}\r\n\r\nexport function extractDataType(item: StudyPlanItem) {\r\n  switch (item.type) {\r\n    case StudyPlanItemType.Homework:\r\n      let itemHomework = item as StudyPlanItemHomework;\r\n      return {\r\n        courseId: itemHomework.homeworkBase.courseId,\r\n        id: itemHomework.homeworkBase.id,\r\n        key: item.id,\r\n        mediaId: 0,\r\n        barCode: itemHomework.homeworkBase.barCode\r\n      };\r\n    case StudyPlanItemType.Elearning:\r\n      return {\r\n        courseId: item.id,\r\n        id: 0,\r\n        key: item.id,\r\n        mediaId: 0,\r\n        barCode: ''\r\n      };\r\n    default:\r\n      let itemMedia = item as StudyPlanItemMedia;\r\n      return {\r\n        courseId: itemMedia.id,\r\n        id: 0,\r\n        key: item.id,\r\n        mediaId: itemMedia.media.id,\r\n        barCode: ''\r\n      };\r\n  }\r\n}\r\n\r\nexport function getMarker(item: StudyPlanItem): StudyPlanMarker {\r\n  switch (item.type) {\r\n    case StudyPlanItemType.Homework:\r\n      let itemHomework = item as StudyPlanItemHomework;\r\n      return {\r\n        courseId: itemHomework.homeworkBase.courseId,\r\n        dateCreated: fDate(new Date(), 'yyyy-MM-dd HH:mm'),\r\n        id: itemHomework.homeworkBase.id,\r\n        key: item.key,\r\n        mediaId: 0\r\n      };\r\n    case StudyPlanItemType.Elearning:\r\n      return {\r\n        courseId: item.id,\r\n        dateCreated: fDate(new Date(), 'yyyy-MM-dd HH:mm'),\r\n        id: 0,\r\n        key: item.key,\r\n        mediaId: 0\r\n      };\r\n    default:\r\n      let itemMedia = item as StudyPlanItemMedia;\r\n      return {\r\n        courseId: itemMedia.id,\r\n        dateCreated: fDate(new Date(), 'yyyy-MM-dd HH:mm'),\r\n        id: 0,\r\n        key: item.key,\r\n        mediaId: itemMedia.media.id\r\n      };\r\n  }\r\n}\r\n\r\nexport function hChapterColorProgression(progression: Progression, locked: boolean) {\r\n  const { assimilate, open, count } = progression;\r\n  switch (true) {\r\n    case count === assimilate && count > 0:\r\n      return {\r\n        color: getColorsProgression().filter((cp) => cp.assimilate)[0].assimilate,\r\n        label: 'Assimilé'\r\n      };\r\n    case open > 0:\r\n    case assimilate > 0:\r\n      return { color: getColorsProgression().filter((cp) => cp.open)[0].open, label: 'En cours' };\r\n    default:\r\n      return {\r\n        color: getColorsProgression().filter((cp) => cp.toDo)[0].toDo,\r\n        label: locked ? 'Verrouillé' : 'A commencer'\r\n      };\r\n  }\r\n}\r\n","import { ModuleType, ModuleExtends } from './contract';\r\nimport { MediaFile } from './media';\r\n\r\nexport type ButtonType = 'button' | 'iconButton' | 'dropdownItem' | 'without' | 'chipButton';\r\n\r\nexport type MessagesAccessType = 'blocagePartiel' | 'blocagePaiement' | 'password' | 'limited';\r\n\r\nexport type SummaryRequest = {\r\n  index: number;\r\n  pageSize: number;\r\n  sortName: string;\r\n  direction: boolean;\r\n};\r\n\r\nexport interface SummaryResponse {\r\n  index: number;\r\n  pageSize: number;\r\n  totalCount: number;\r\n}\r\nexport interface FileBase extends FileBaseInfo {\r\n  extension: string;\r\n  stream: string;\r\n  contentType: string;\r\n}\r\n\r\nexport enum FileType {\r\n  None = 0,\r\n  Message = 2,\r\n  News = 3,\r\n  Media = 4,\r\n  Homework = 5,\r\n  Correction = 6,\r\n  Question = 7,\r\n  AccountingSchedule = 8,\r\n  AccountStatement = 9,\r\n  Avatar = 10,\r\n  ImageCourse = 11,\r\n  Examen = 12,\r\n  CorrectionType = 13,\r\n  MediaReferentiel = 14\r\n}\r\n\r\nexport enum FileFormat {\r\n  None = 0,\r\n  Pdf = 1,\r\n  PdfSecurises = 2,\r\n  PdfPersonnalise = 3,\r\n  Html = 4,\r\n  UrlText = 5,\r\n  Images = 8,\r\n  Autres = 9,\r\n  Interne = 10,\r\n  Audio = 23,\r\n  Videos = 30,\r\n  Merge = 31\r\n}\r\n\r\nexport interface FileBaseItemResponse {\r\n  item: FileBase;\r\n  result: FileBaseItemResult;\r\n}\r\n\r\nexport enum FileBaseItemResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  Error = 2\r\n}\r\n\r\nexport interface FileBaseInfo {\r\n  id: number;\r\n  fileName: string;\r\n  size: string;\r\n  fileType: FileType;\r\n  metadatas: MediaFile;\r\n  userType: UserType;\r\n  url?: string;\r\n  isS3: boolean;\r\n}\r\nexport interface FileBaseImageOfCourseResponse {\r\n  result: FileBaseImageOfCourseResult;\r\n  images: string[];\r\n}\r\n\r\nexport enum FileBaseImageOfCourseResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\nexport interface FileInfoToken {\r\n  fileName: string;\r\n  brandId: string;\r\n  isS3: boolean;\r\n}\r\nexport enum UserType {\r\n  None = 0,\r\n  Corrected = 1,\r\n  Student = 2\r\n}\r\n\r\nexport interface ListItemType extends ModuleExtends {\r\n  id: string;\r\n  label: string;\r\n  enabled: boolean;\r\n  color: string;\r\n}\r\n\r\nexport type AlertBase = {\r\n  title: string;\r\n  description?: string;\r\n  img?: string;\r\n  action?: () => void;\r\n};\r\n","import { ModeAccess } from './account';\r\nimport { AgendaEvent } from './agenda';\r\nimport { FileBaseInfo } from './common';\r\nimport { Favorite, FavoriteType } from './favorite';\r\nimport { FileInfoToken, MediaFileInfo } from './media';\r\n\r\nexport interface Training {\r\n  id: string;\r\n  label: string;\r\n  version: number;\r\n  options: Option[];\r\n  unities: Option[];\r\n  theme: Theme;\r\n  internshipMandatory: boolean;\r\n  categoryObjectif: string;\r\n  typeObjectif: string;\r\n  duration: number;\r\n  internalRegistration: boolean;\r\n}\r\n\r\nexport interface Option {\r\n  id: string;\r\n  label: string;\r\n}\r\n\r\nexport interface Theme {\r\n  id: string;\r\n  label: string;\r\n}\r\nexport interface TeacherListResponse {\r\n  list: Teacher[];\r\n  result: TeacherListResult;\r\n}\r\n\r\nexport enum TeacherListResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n\r\nexport interface Teacher {\r\n  id: string;\r\n  account: string;\r\n  lastName: string;\r\n  firstName: string;\r\n  email: string;\r\n  teachingSubject: string;\r\n  coach: boolean;\r\n  civility: string;\r\n}\r\n\r\nexport type StudyPlanState = {\r\n  isLoading: boolean;\r\n  error: any;\r\n  marker: StudyPlanMarker | null;\r\n  currentSendingPhase: number;\r\n  constrainedCourse: boolean;\r\n  chapterItemUpdatedList: Array<StudyPlanItemUpdated> | null;\r\n  phases: Array<StudyPlanPhase> | null;\r\n  skills: Array<Skill> | null;\r\n  boundCourses: Array<string> | null;\r\n  internshipsOfSupport: Array<StudyPlanInternshipOfSupport> | null;\r\n  item: StudyPlanItem | null;\r\n  subChapter: StudyPlanChapter | null;\r\n  chapter: StudyPlanChapter | null;\r\n  updated: boolean;\r\n  progression: number;\r\n  context: StudyPlanContext | null;\r\n};\r\n\r\nexport type StudyPlanContextType = {\r\n  isLoading: boolean;\r\n  error: any;\r\n  marker: StudyPlanMarker | null;\r\n  updated: boolean;\r\n  chapterItemUpdatedList: Array<StudyPlanItemUpdated> | null;\r\n  phases: Array<StudyPlanPhase> | null;\r\n  skills: Array<Skill> | null;\r\n  internshipsOfSupport: Array<StudyPlanInternshipOfSupport> | null;\r\n  item: StudyPlanItem | null;\r\n  subChapter: StudyPlanChapter | null;\r\n  chapter: StudyPlanChapter | null;\r\n  currentSendingPhase: number;\r\n  progression: number;\r\n  context: StudyPlanContext | null;\r\n  saveProgress: (\r\n    request: StudyPlanItemProgressRequest\r\n  ) => (onSuccess: (state: boolean) => void) => void;\r\n\r\n  selectItem: (\r\n    chapter: StudyPlanChapter,\r\n    item: StudyPlanItem,\r\n    updated: boolean,\r\n    subChapter?: StudyPlanChapter | null\r\n  ) => void;\r\n  resetUpdated: () => void;\r\n  resetState: () => void;\r\n  getImageOfCourse: (\r\n    fileInfo: FileInfoToken\r\n  ) => (onSuccess: (images: Array<string>) => void) => void;\r\n  initialize: (_view: StudyPlanView, modeAccess: ModeAccess, constrainedCourse: boolean) => void;\r\n};\r\n\r\nexport interface StudyPlanSelected {\r\n  item: StudyPlanItem;\r\n  subChapter: StudyPlanChapter | null;\r\n  chapter: StudyPlanChapter;\r\n}\r\n\r\nexport interface StudyPlanSearch {\r\n  item: StudyPlanItem;\r\n  chapter: StudyPlanChapter;\r\n  chapterParent: StudyPlanChapter;\r\n}\r\n\r\nexport interface StudyPlanItemUpdated {\r\n  phase: number;\r\n  unityCode: string;\r\n  chapterCode: string;\r\n  subChapterCode: string;\r\n  item: StudyPlanItem;\r\n}\r\n\r\nexport type StudyPlanInternshipOfSupport = {\r\n  code: string;\r\n  label: string;\r\n};\r\n\r\nexport enum StudyPlanItemScoreType {\r\n  None = 0,\r\n  Include = 1,\r\n  Exclude = 2,\r\n  IncludeDo = 3,\r\n  ExcludeDo = 4\r\n}\r\n\r\nexport interface StudyPlanItem {\r\n  id: string;\r\n  label: string;\r\n  reference: string;\r\n  status: StudyPlanItemStatus;\r\n  dateStatus: string | null;\r\n  type: StudyPlanItemType;\r\n  rowNumber: number;\r\n  sendingPhase: number;\r\n  marker: boolean;\r\n  key: string;\r\n  material: Material;\r\n  isUpdated: boolean;\r\n  schedule?: AgendaEvent;\r\n  averageType: StudyPlanItemScoreType;\r\n  quizAssimilate: IQuizAssimilate | null;\r\n  boundCourse: string;\r\n}\r\n\r\nexport interface IQuizAssimilate {\r\n  url: string;\r\n  score: number;\r\n}\r\n\r\nexport interface StudyPlanItemHomework extends StudyPlanItem {\r\n  homeworkBase: HomeworkBase;\r\n  items: Array<StudyPlanItem>;\r\n}\r\n\r\nexport interface StudyPlanItemMedia extends StudyPlanItem {\r\n  media: MediaFileInfo;\r\n}\r\n\r\nexport interface StudyPlanItemHtml extends StudyPlanItem {\r\n  media: MediaFileInfo;\r\n  url: string;\r\n  endOfRead: boolean;\r\n}\r\n\r\nexport interface StudyPlanItemLearning extends StudyPlanItem {\r\n  elearning: Elearning;\r\n}\r\n\r\nexport interface Elearning {\r\n  id: string;\r\n  label: string;\r\n  url: string;\r\n  score: number;\r\n  lastAccess: string;\r\n  properties: any;\r\n}\r\n\r\nexport interface StudyPlanItemProgressRequest {\r\n  id: string;\r\n  courseId: string;\r\n  mediaId: string;\r\n  score: number;\r\n  status: StudyPlanItemStatus;\r\n  type: StudyPlanItemType;\r\n  marked: boolean;\r\n  endOfRead: boolean;\r\n}\r\n\r\nexport enum StudyPlanItemStatus {\r\n  None = 0,\r\n  Read = 1,\r\n  Assimilate = 2,\r\n  Locked = 3,\r\n  Disabled = 4\r\n}\r\n\r\nexport enum StudyPlanItemType {\r\n  Homework = 0,\r\n  Elearning = 2,\r\n  Video = 3,\r\n  Html = 4,\r\n  Url = 5,\r\n  Stage = 6,\r\n  Audio = 7,\r\n  Pdf = 8,\r\n  Annexe = 9\r\n}\r\n\r\n// Tableau dont les index correspondent aux valeurs de StudyPlanItemType\r\n// NB : en minuscules, au pluriel, sans accents\r\nexport const StudyPlanItemTypeSearchString = [\r\n  ['homeworks', 'devoirs', 'evaluations'],\r\n  [],\r\n  ['elearnings', 'e-learnings'],\r\n  ['videos'],\r\n  ['html', 'cours'],\r\n  ['urls', 'liens'],\r\n  ['stages'],\r\n  ['audio'],\r\n  ['pdf'],\r\n  ['annexes']\r\n];\r\n\r\nexport type HomeworkInProgressState = {\r\n  isLoadingFile: boolean;\r\n  isLoadingSended: boolean;\r\n  isLoading: boolean;\r\n  error: any;\r\n  errorFile: any;\r\n  errorSended: any;\r\n  homeworkInProgress: HomeworkInProgress | null;\r\n};\r\n\r\nexport enum ScoreType {\r\n  sur20 = 0,\r\n  evaluation = 1\r\n}\r\n\r\nexport interface HomeworkBase {\r\n  courseId: string;\r\n  id: number;\r\n  label: string;\r\n  barCode: string;\r\n  scoreType: ScoreType;\r\n  mandatory: boolean;\r\n  isUpload: boolean;\r\n  material: Material;\r\n  skillIds: Array<string>;\r\n  elearning: Elearning;\r\n  homeworks: Homework[];\r\n  inProgress: Homework;\r\n  files: Array<MediaFileInfo>;\r\n  homeworkType: HomeworkType;\r\n  attachmentType: AttachmentType;\r\n  status: HomeworkStatus;\r\n  duration: number;\r\n  coefficient: number;\r\n  studyPlanItem: StudyPlanItemHomework;\r\n  parent: StudyPlanItem;\r\n  isScore: boolean;\r\n}\r\n\r\nexport enum HomeworkType {\r\n  Standard = 0,\r\n  EvaluationStage = 1,\r\n  ReportStage = 2,\r\n  eLearning = 3,\r\n  Voice = 4\r\n}\r\n\r\nexport interface Material {\r\n  id: string;\r\n  label: string;\r\n  scheduleId: string;\r\n  scheduleLabel: string;\r\n}\r\n\r\nexport interface Skill {\r\n  id: string;\r\n  label: string;\r\n  status: SkillStatusType;\r\n  homeworkKeys: Array<{ courseId: string; id: number }>;\r\n}\r\n\r\nexport interface SkillHomeworksBase {\r\n  id: string;\r\n  label: string;\r\n  status: SkillStatusType;\r\n  homeworks: Array<HomeworkBase>;\r\n}\r\n\r\nexport enum SkillStatusType {\r\n  None = 0,\r\n  NotEvaluated = 1,\r\n  BeingEvaluated = 2,\r\n  NotAcquired = 3,\r\n  PartialAcquired = 4,\r\n  Acquired = 5\r\n}\r\nexport interface Homework {\r\n  courseId: string;\r\n  id: number;\r\n  chrRecDvr: number;\r\n  score: number;\r\n  note: string; //fusion de la note(decimal) et evaluation\r\n  evaluation: string;\r\n  status: HomeworkStatus;\r\n  appreciation: string;\r\n  correctionDate: string | null;\r\n  receptionDate: string | null;\r\n  sendingDate: string | null;\r\n  teacher: Teacher;\r\n  files: Array<FileBaseInfo>;\r\n  observation: string;\r\n}\r\n\r\nexport enum HomeworkStatus {\r\n  ToDo = 0,\r\n  Remade = 1,\r\n  Do = 2,\r\n  Corrected = 3,\r\n  InProgress = 4,\r\n  Sended = 5,\r\n  Rejected = 6\r\n}\r\nexport interface StudyPlan {\r\n  marker: StudyPlanMarker;\r\n  currentSendingPhase: number;\r\n  chapterItemUpdatedList: Array<StudyPlanItemUpdated>;\r\n  phases: Array<StudyPlanPhase>;\r\n  skills: Array<Skill>;\r\n  context: StudyPlanContext;\r\n  internshipsOfSupport: Array<StudyPlanInternshipOfSupport>;\r\n  boundCourses: Array<string>;\r\n}\r\n\r\nexport interface StudyPlanPhase {\r\n  id: number;\r\n  name: string;\r\n  chapters: StudyPlanChapter[];\r\n}\r\n\r\nexport interface StudyPlanMarker {\r\n  courseId: string;\r\n  id: number;\r\n  mediaId: number;\r\n  key: string;\r\n  dateCreated: string;\r\n}\r\n\r\nexport interface StudyPlanMove {\r\n  phase: number;\r\n  unityChapter: string;\r\n  chapter: string;\r\n}\r\n\r\nexport interface StudyPlanContext {\r\n  code: string;\r\n  label: string;\r\n  type: StudyPlanContextTypeControl;\r\n}\r\n\r\nexport enum StudyPlanContextTypeControl {\r\n  StudyPlan = 0,\r\n  SkillBloc = 1\r\n}\r\n\r\nexport enum StudyPlanView {\r\n  SendingPhase = 0,\r\n  Global = 1,\r\n  Complements = 2\r\n}\r\n\r\nexport interface setLockParameter {\r\n  unLockFirstLocked: boolean;\r\n  unlockLevelList: Array<number>;\r\n  isFinished: boolean;\r\n}\r\n\r\nexport interface Progression {\r\n  count: number;\r\n  open: number;\r\n  assimilate: number;\r\n  score: number;\r\n  scoreCount: number;\r\n  scoreSummary: number;\r\n  coefficientSummary: number;\r\n  isScore: boolean;\r\n}\r\n\r\nexport interface StudyPlanChapter {\r\n  id: string;\r\n  label: string;\r\n  level: number;\r\n  line: number;\r\n  duration: number;\r\n  sendingPhase: number;\r\n  chapters: StudyPlanChapter[];\r\n  items: StudyPlanItem[];\r\n  progression: Progression;\r\n  locked: boolean;\r\n  unlockLevel: number;\r\n  itemsUpdated: number;\r\n  chapterValidate?: StudyPlanChapterValidate;\r\n}\r\n\r\nexport interface StudyPlanProgressionResponse {\r\n  result: StudyPlanProgressionResult;\r\n  progression: Progression;\r\n}\r\n\r\nexport enum StudyPlanProgressionResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n\r\nexport interface StudyPlanResponse {\r\n  result: StudyPlanResult;\r\n  studyPlan: StudyPlan;\r\n}\r\n\r\nexport enum StudyPlanResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  Updated = 2\r\n}\r\n\r\nexport interface StudyPlanChapterValidate {\r\n  numberOfHomeworksRequested: number;\r\n  numberOfHomeworksTotal: number;\r\n  numberOfHomeworksCompleted: number;\r\n  validated: boolean;\r\n  phaseValidated: boolean;\r\n}\r\n\r\nexport interface HomeworkInProgressResponse {\r\n  result: HomeworkInProgressResult;\r\n  item: HomeworkInProgress;\r\n}\r\n\r\nexport interface HomeworkInProgress {\r\n  courseId: string;\r\n  id: number;\r\n  barCode: string;\r\n  content: string;\r\n  status: string;\r\n  isSavedOnServer: boolean;\r\n  files: FileBaseInfo[];\r\n}\r\n\r\nexport enum HomeworkInProgressResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n\r\nexport interface HomeworkAddFileResponse {\r\n  result: HomeworkAddFileResult;\r\n  files: FileBaseInfo[];\r\n}\r\n\r\nexport interface HomeworkFileRequest {\r\n  courseId: string;\r\n  id: number;\r\n  barCode: string;\r\n  conDvrFicId: number;\r\n  files: Array<any>;\r\n}\r\n\r\nexport enum HomeworkAddFileResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  ErrorHomeworkSended = 2,\r\n  ErrorNumberFilesReached = 3,\r\n  ErrorFilesSizeReached = 4,\r\n  ErrorExtensions = 5,\r\n  Error = 6\r\n}\r\n\r\nexport enum HomeworkSendResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  IsFileRequired = 2,\r\n  IsTypeFileRequired = 3,\r\n  IsOnlineError = 4,\r\n  Error = 5\r\n}\r\n\r\nexport interface HomeworkSendResponse {\r\n  result: HomeworkSendResult;\r\n  sended: Homework;\r\n}\r\n\r\nexport interface HomeworkSaveContentResponse {\r\n  result: HomeworkSaveContentResult;\r\n}\r\n\r\nexport enum HomeworkSaveContentResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  Error = 2\r\n}\r\n\r\nexport interface HomeworkContentRequest {\r\n  courseId: string;\r\n  id: number;\r\n  barCode: string;\r\n  content: string;\r\n  attachmentType: AttachmentType | null;\r\n}\r\n\r\nexport interface AttachmentType {\r\n  id: number;\r\n  label: string;\r\n  extensions: string[];\r\n}\r\n\r\nexport interface StudyPlanSaveProgressResponse {\r\n  result: StudyPlanSaveProgressResult;\r\n  studyPlanItem: StudyPlanItem;\r\n}\r\n\r\nexport enum StudyPlanSaveProgressResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n","export enum SurveyResult {\r\n  Success = 1,\r\n  CannotFindSurvey = 2,\r\n  CannotInitializeConnexionEnvironnement = 3,\r\n  BadRequest = 4,\r\n  CannotFindProposalsCustomer = 5,\r\n  CannotFindPartner = 6\r\n}\r\n\r\nexport enum QuestionType {\r\n  Chk = 1,\r\n  Mem = 2,\r\n  Rad = 3,\r\n  Txt = 4,\r\n  Rat = 5\r\n}\r\n\r\nexport type ISurveyCategoryNext = {\r\n  step: number;\r\n  conditions: Array<IConditionSurvey> | null;\r\n};\r\n\r\nexport type IConditionSurvey = {\r\n  idQuestion: number;\r\n  index: number;\r\n  value: any;\r\n};\r\n\r\nexport interface SurveyCategory {\r\n  id: number;\r\n  name: string;\r\n  surveyList: Array<Survey>;\r\n  html: string;\r\n  css: string;\r\n  nextSteps: Array<ISurveyCategoryNext> | null;\r\n}\r\n\r\nexport interface Survey {\r\n  id: number;\r\n  question: string;\r\n  questionType: QuestionType;\r\n  htmAdd: string;\r\n  optionList: Array<QuestOption>;\r\n  value: string;\r\n  categoryId: number;\r\n  isRequired: boolean;\r\n  regroupementId: string;\r\n  regroupementTitre: string;\r\n}\r\n\r\nexport interface QuestOption {\r\n  id: string;\r\n  text: string;\r\n  label: string;\r\n  rate: number;\r\n  checked: boolean;\r\n  surveyId: number;\r\n  textPre: string;\r\n  textRep: string;\r\n}\r\n\r\nexport interface SurveyResponse {\r\n  result: SurveyResult;\r\n  id: number;\r\n  categoryList: Array<SurveyCategory>;\r\n  titre: string;\r\n  fait: boolean;\r\n  observation: string;\r\n  modeLecture: boolean;\r\n  appTyp: string;\r\n  appId: string;\r\n}\r\n\r\nexport interface SurveyRequest {\r\n  lisQue: number;\r\n  datCon?: number;\r\n  ele?: number;\r\n  conEns?: number;\r\n  typApp: string;\r\n  appId: string;\r\n}\r\n\r\nexport interface SurveySaveRequest extends SurveyRequest {\r\n  reponses: Reponse[];\r\n}\r\n\r\nexport interface Reponse {\r\n  questionId: number;\r\n  value: string;\r\n  valueText: string;\r\n}\r\n\r\nexport interface SurveySaveResponse {\r\n  result: SurveySaveResult;\r\n}\r\n\r\nexport enum SurveySaveResult {\r\n  Success = 1,\r\n  Error = 2\r\n}\r\n","import { map, filter } from 'lodash';\r\nimport { createSlice } from '@reduxjs/toolkit';\r\nimport { EventInput } from '@fullcalendar/common';\r\nimport { dispatch } from '../store';\r\n// utils\r\nimport axios from '../../utils/axios';\r\n//\r\nimport { CalendarState } from '../../@types/calendar';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: CalendarState = {\r\n  isLoading: false,\r\n  error: false,\r\n  events: [],\r\n  isOpenModal: false,\r\n  selectedEventId: null,\r\n  selectedRange: null\r\n};\r\n\r\nconst slice = createSlice({\r\n  name: 'calendar',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state, action) {\r\n      state.isLoading = false;\r\n      state.error = action.payload;\r\n    },\r\n\r\n    // GET EVENTS\r\n    getEventsSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.events = action.payload;\r\n    },\r\n\r\n    // CREATE EVENT\r\n    createEventSuccess(state, action) {\r\n      const newEvent = action.payload;\r\n      state.isLoading = false;\r\n      state.events = [...state.events, newEvent];\r\n    },\r\n\r\n    // UPDATE EVENT\r\n    updateEventSuccess(state, action) {\r\n      const event = action.payload;\r\n      const updateEvent = map(state.events, (_event) => {\r\n        if (_event.id === event.id) {\r\n          return event;\r\n        }\r\n        return _event;\r\n      });\r\n\r\n      state.isLoading = false;\r\n      state.events = updateEvent;\r\n    },\r\n\r\n    // DELETE EVENT\r\n    deleteEventSuccess(state, action) {\r\n      const { eventId } = action.payload;\r\n      const deleteEvent = filter(state.events, (user) => user.id !== eventId);\r\n      state.events = deleteEvent;\r\n    },\r\n\r\n    // SELECT EVENT\r\n    selectEvent(state, action) {\r\n      const eventId = action.payload;\r\n      state.isOpenModal = true;\r\n      state.selectedEventId = eventId;\r\n    },\r\n\r\n    // SELECT RANGE\r\n    selectRange(state, action) {\r\n      const { start, end } = action.payload;\r\n      state.isOpenModal = true;\r\n      state.selectedRange = { start, end };\r\n    },\r\n\r\n    // OPEN MODAL\r\n    openModal(state) {\r\n      state.isOpenModal = true;\r\n    },\r\n\r\n    // CLOSE MODAL\r\n    closeModal(state) {\r\n      state.isOpenModal = false;\r\n      state.selectedEventId = null;\r\n      state.selectedRange = null;\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// Actions\r\nexport const { openModal, closeModal, selectEvent } = slice.actions;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function getEvents() {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.get('/api/calendar/events');\r\n      dispatch(slice.actions.getEventsSuccess(response.data.events));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function createEvent(newEvent: Omit<EventInput, 'id'>) {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.post('/api/calendar/events/new', newEvent);\r\n      dispatch(slice.actions.createEventSuccess(response.data.event));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function updateEvent(\r\n  eventId: string,\r\n  updateEvent: Partial<{\r\n    allDay: boolean;\r\n    start: Date | null;\r\n    end: Date | null;\r\n  }>\r\n) {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      const response = await axios.post('/api/calendar/events/update', {\r\n        eventId,\r\n        updateEvent\r\n      });\r\n      dispatch(slice.actions.updateEventSuccess(response.data.event));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function deleteEvent(eventId: string) {\r\n  return async () => {\r\n    dispatch(slice.actions.startLoading());\r\n    try {\r\n      await axios.post('/api/calendar/events/delete', { eventId });\r\n      dispatch(slice.actions.deleteEventSuccess({ eventId }));\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError(error));\r\n    }\r\n  };\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport function selectRange(start: Date, end: Date) {\r\n  return async () => {\r\n    dispatch(\r\n      slice.actions.selectRange({\r\n        start: start.getTime(),\r\n        end: end.getTime()\r\n      })\r\n    );\r\n  };\r\n}\r\n","import { store } from '../store';\r\nimport { createSlice } from '@reduxjs/toolkit';\r\nimport { DashboardJobState, JobsResponse, ResultResponse } from '../../@types/job';\r\nimport axios from '../../utils/axios';\r\nimport { DirectionType } from 'components/_dashboard/job/JobFilter';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst initialState: DashboardJobState = {\r\n  isLoading: false,\r\n  jobs: []\r\n};\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst slice = createSlice({\r\n  name: 'dashboardJob',\r\n  initialState,\r\n  reducers: {\r\n    // START LOADING\r\n    startLoading(state) {\r\n      state.isLoading = true;\r\n    },\r\n\r\n    getJobsSuccess(state, action) {\r\n      state.isLoading = false;\r\n      state.jobs = action.payload.datas;\r\n    },\r\n\r\n    // HAS ERROR\r\n    hasError(state) {\r\n      state.isLoading = false;\r\n      state.jobs = [];\r\n    }\r\n  }\r\n});\r\n\r\n// Reducer\r\nexport default slice.reducer;\r\n\r\n// ----------------------------------------------------------------------\r\n\r\n/**\r\n * Liste des annonces\r\n * @param index\r\n * @param step\r\n * @returns\r\n */\r\nexport function getDashboardJobs() {\r\n  return async () => {\r\n    const { dispatch } = store;\r\n\r\n    try {\r\n      dispatch(slice.actions.startLoading());\r\n\r\n      const response = await axios.post<JobsResponse>('/api/job/list', {\r\n        direction: DirectionType[DirectionType.DSC].toString(),\r\n        pageIndex: 1,\r\n        pageSize: 9,\r\n        sort: 'CreateDate',\r\n        term: '',\r\n        jobTypeId: 0 //tous\r\n      });\r\n\r\n      const { result, data, totalCount, totalPages } = response.data;\r\n\r\n      switch (result) {\r\n        case ResultResponse.Success:\r\n          dispatch(\r\n            slice.actions.getJobsSuccess({\r\n              datas: data\r\n            })\r\n          );\r\n          break;\r\n        default:\r\n          dispatch(slice.actions.getJobsSuccess({ datas: [] }));\r\n          break;\r\n      }\r\n    } catch (error) {\r\n      dispatch(slice.actions.hasError());\r\n    }\r\n  };\r\n}\r\n","import { Box, BoxProps } from '@mui/material';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface SvgIconStyleProps extends BoxProps {\r\n  src: string;\r\n}\r\n\r\nexport default function SvgIconStyle({ src, color = 'inherit', sx }: SvgIconStyleProps) {\r\n  return (\r\n    <Box\r\n      component=\"span\"\r\n      sx={{\r\n        width: 24,\r\n        height: 24,\r\n        mask: `url(${src}) no-repeat center / contain`,\r\n        WebkitMask: `url(${src}) no-repeat center / contain`,\r\n        bgcolor: `${color}.main`,\r\n        ...(color === 'inherit' && { bgcolor: 'currentColor' }),\r\n        ...(color === 'action' && { bgcolor: 'action.active' }),\r\n        ...(color === 'disabled' && { bgcolor: 'action.disabled' }),\r\n        ...(color === 'paper' && { bgcolor: 'background.paper' }),\r\n        ...sx\r\n      }}\r\n    />\r\n  );\r\n}\r\n","import { ReactNode } from 'react';\r\n\r\nexport type FavoriteState = {\r\n  isLoading: boolean;\r\n  error: boolean;\r\n  favorites: Array<Favorite>;\r\n  notificationContent?: ReactNode;\r\n};\r\n\r\nexport interface FavoriteListResponse {\r\n  list: Favorite[];\r\n  result: FavoriteListResult;\r\n}\r\n\r\nexport enum FavoriteListResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n\r\nexport interface FavoriteAddResponse {\r\n  item: Favorite;\r\n  result: FavoriteAddResult;\r\n}\r\n\r\nexport enum FavoriteAddResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  LabelIsRequired = 2\r\n}\r\n\r\nexport enum FavoriteActionResult {\r\n  None = 0,\r\n  Add = 1,\r\n  Delete = 2\r\n}\r\n\r\nexport interface Favorite {\r\n  id: number;\r\n  label: string;\r\n  type: FavoriteType;\r\n  key: FavoriteKey;\r\n  dateCreated: string;\r\n}\r\n\r\nexport enum FavoriteType {\r\n  None = 0,\r\n  News = 1,\r\n  Courses = 2,\r\n  Evaluation = 3,\r\n  ToolsPedagogy = 4,\r\n  VirtualClass = 5,\r\n  Workshop = 6,\r\n  Task = 7,\r\n  Job = 8\r\n}\r\n\r\nexport interface FavoriteKey {\r\n  id: number | null;\r\n  courseId: string;\r\n  homeworkId: number | null;\r\n  mediaId: number | null;\r\n}\r\n","import { Link as RouterLink } from 'react-router-dom';\r\n// material\r\nimport { styled } from '@mui/material/styles';\r\nimport { Card, Stack, CardProps } from '@mui/material';\r\n\r\nimport { Box } from '@mui/system';\r\nimport { ReactNode } from 'react';\r\nimport useScreenConfig from 'hooks/useScreenConfig';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst RootStyle = styled(Card)(({ theme }) => ({\r\n  textAlign: 'center',\r\n  [theme.breakpoints.up('md')]: {\r\n    height: '100%',\r\n    display: 'flex',\r\n    flexDirection: 'column',\r\n    alignItems: 'center',\r\n    justifyContent: 'center'\r\n  }\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\ninterface IllustrationMessageProps extends CardProps {\r\n  img?: string;\r\n  children?: ReactNode;\r\n}\r\n\r\nexport default function IllustrationMessage({ img, children }: IllustrationMessageProps) {\r\n  return (\r\n    <RootStyle>\r\n      <Box\r\n        component=\"img\"\r\n        alt=\"\"\r\n        src={img || '/static/illustrations/general/question_1.svg'}\r\n        sx={{ p: 1, maxHeight: 150, margin: { xs: 'auto', md: 'inherit' } }}\r\n      />\r\n\r\n      <Box component=\"div\" sx={{ p: 2, maxWidth: 480, mx: 'auto' }}>\r\n        {children}\r\n      </Box>\r\n    </RootStyle>\r\n  );\r\n}\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nexport interface IllustrationInfoProps extends CardProps {\r\n  img: string;\r\n\r\n  maxHeightImg?: number;\r\n  isColumn?: boolean;\r\n}\r\nexport function IllustrationInfo({\r\n  img,\r\n  children,\r\n  isColumn = false,\r\n  maxHeightImg = 240\r\n}: IllustrationInfoProps) {\r\n  const { isMediumOrMobile } = useScreenConfig();\r\n\r\n  return (\r\n    <Stack\r\n      display=\"flex\"\r\n      flexDirection={isMediumOrMobile || isColumn ? 'column' : 'row'}\r\n      alignItems={'center'}\r\n      justifyContent={'center'}\r\n    >\r\n      {!isMediumOrMobile && (\r\n        <Box\r\n          component=\"img\"\r\n          alt=\"empty content\"\r\n          src={img}\r\n          sx={{ maxHeight: maxHeightImg, mb: 3 }}\r\n        />\r\n      )}\r\n      {children && (\r\n        <Box component=\"div\" sx={{ p: 2, mx: 'auto' }}>\r\n          {children}\r\n        </Box>\r\n      )}\r\n    </Stack>\r\n  );\r\n}\r\n","import { ModuleType } from '../@types/contract';\r\nimport useAuth from './useAuth';\r\n\r\nexport default function useModuleGuard() {\r\n  const { getContractCurrent } = useAuth();\r\n\r\n  const moduleLocked = (accessibleModules: Array<ModuleType> | undefined) => {\r\n    if (accessibleModules) {\r\n      const modulesCurrent = getContractCurrent()?.moduleList;\r\n\r\n      return (\r\n        accessibleModules.length > 0 && !accessibleModules.some((am) => modulesCurrent.includes(am))\r\n      );\r\n    }\r\n    return false;\r\n  };\r\n\r\n  return { moduleLocked };\r\n}\r\n","import React from 'react';\r\n\r\nimport { MeetingStatus } from '../../../@types/meeting';\r\nimport Label from 'components/Label';\r\n\r\nexport type MeetingStatusDisplayProps = {\r\n  status?: MeetingStatus;\r\n};\r\n\r\nexport const MeetingStatusDisplay = ({ status }: MeetingStatusDisplayProps) => {\r\n  switch (status) {\r\n    case MeetingStatus.Absent:\r\n      return (\r\n        <Label color=\"error\" variant=\"ghost\">\r\n          Absent\r\n        </Label>\r\n      );\r\n    case MeetingStatus.Present:\r\n      return (\r\n        <Label color=\"success\" variant=\"ghost\">\r\n          Présent\r\n        </Label>\r\n      );\r\n    case MeetingStatus.Registered:\r\n      return (\r\n        <Label color=\"success\" variant=\"ghost\">\r\n          Inscrit\r\n        </Label>\r\n      );\r\n  }\r\n  return <></>;\r\n};\r\n","import { Close } from '@mui/icons-material';\r\nimport { Divider, Drawer, IconButton, Stack, Tooltip, Typography } from '@mui/material';\r\nimport { Skill, StudyPlanItemHomework } from '../../../../@types/pedagogy';\r\nimport SkillCardList from './SkillCardList';\r\n\r\n//--------------------------------------------------\r\n\r\n//type\r\ntype SkillCardDrawerProps = {\r\n  skills?: Skill[];\r\n  homeworks?: Array<StudyPlanItemHomework>;\r\n  isOpen: boolean;\r\n  onClose: VoidFunction;\r\n};\r\n\r\n//--------------------------------------------------\r\n\r\nexport default function SkillDrawer({ skills, homeworks, isOpen, onClose }: SkillCardDrawerProps) {\r\n  return (\r\n    <Drawer\r\n      open={isOpen}\r\n      onClose={onClose}\r\n      anchor=\"right\"\r\n      PaperProps={{ sx: { width: { xs: 1, sm: 630 } } }}\r\n    >\r\n      <Stack p={2.5} direction=\"row\" alignItems=\"center\">\r\n        <Tooltip title=\"Fermer\">\r\n          <IconButton onClick={onClose} sx={{ mr: 1 }}>\r\n            <Close />\r\n          </IconButton>\r\n        </Tooltip>\r\n        <Typography variant=\"h4\">Compétences</Typography>\r\n      </Stack>\r\n      <Divider />\r\n      <SkillCardList skills={skills} homeworks={homeworks} />\r\n    </Drawer>\r\n  );\r\n}\r\n","import { ModuleExtends, ModuleType } from '../@types/contract';\r\nimport { ICONS } from 'hooks/useSidebarConfig';\r\nexport type HelpCategoryTutorial = { title: string; url: string };\r\n\r\nexport interface HelpCategory extends ModuleExtends {\r\n  id: string;\r\n  row: number;\r\n  label: string;\r\n  icon: JSX.Element | null;\r\n  image: Array<string>;\r\n  tutorials: Array<HelpCategoryTutorial>;\r\n}\r\n\r\nexport const helpCategories: Array<HelpCategory> = [\r\n  {\r\n    id: 'Article',\r\n    row: 16,\r\n    label: 'Actualités',\r\n    icon: ICONS.article,\r\n    image: ['actualites.svg'],\r\n    tutorials: [\r\n      {\r\n        title: 'Comment consulter une actualité ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=bf77d81e82c5a67a30b022fd76271e25'\r\n      },\r\n      {\r\n        title: 'Comment ajouter une actualité aux favoris ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=60f5405481c45b41434cd9361c44cfe2'\r\n      }\r\n    ],\r\n    module: ModuleType.News\r\n  },\r\n  {\r\n    id: 'Agenda',\r\n    row: 18,\r\n    label: 'Agenda',\r\n    image: ['agenda.svg'],\r\n    icon: ICONS.calendar,\r\n    tutorials: [\r\n      {\r\n        title: 'Comment prendre rendez-vous avec un formateur ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=4559bab77f2f30ab84cde7078f710cf4'\r\n      },\r\n      {\r\n        title: 'Comment modifier mon rendez-vous ? ',\r\n        url: 'https://video.espace-eleves.com/play.php?id=4f9d75b6b5a098bda0c0aaa32fb571a2'\r\n      },\r\n      {\r\n        title: 'Comment annuler mon rendez-vous ? ',\r\n        url: 'https://video.espace-eleves.com/play.php?id=4a050a214a63f374538dd2f0e319ca9b'\r\n      },\r\n      {\r\n        title: 'Comment afficher uniquement mes rendez-vous ? ',\r\n        url: 'https://video.espace-eleves.com/play.php?id=bb618c9c9e78c1457363184ecea8fb49'\r\n      },\r\n      {\r\n        title: 'Comment changer la vue de mon agenda (mois, semaine, jour, liste) ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=743904f435cfd8ab9130a94252d963df'\r\n      }\r\n    ],\r\n    module: ModuleType.Agenda\r\n  },\r\n  {\r\n    id: 'Atelier',\r\n    row: 12,\r\n    label: 'Ateliers',\r\n    image: ['ateliers.svg'],\r\n    icon: ICONS.workshop,\r\n    tutorials: [\r\n      {\r\n        title: 'Comment m’inscrire à un atelier ? ',\r\n        url: 'https://video.espace-eleves.com/play.php?id=8ac038c17ebd0af568aa5401962c19bb'\r\n      },\r\n      {\r\n        title: 'Comment régler mon atelier ? ',\r\n        url: 'https://video.espace-eleves.com/play.php?id=f59bd14c689658f73178dd3711e86bc7'\r\n      },\r\n      {\r\n        title: 'Comment annuler ma participation à un atelier ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=2b92e1883dbfd70851ec724910f7fc67'\r\n      }\r\n    ],\r\n    module: ModuleType.WorkshopView\r\n  },\r\n  {\r\n    id: 'ClasseVirtuelle',\r\n    row: 13,\r\n    label: 'Classes virtuelles',\r\n    image: ['classesVirtuelles.svg'],\r\n    icon: ICONS.virtualClass,\r\n    tutorials: [\r\n      {\r\n        title: 'Comment m’inscrire à une classe virtuelle ? ',\r\n        url: 'https://video.espace-eleves.com/play.php?id=2ce714c9548d3acdf0d67a5f780a5284'\r\n      },\r\n      {\r\n        title: 'Comment participer à une classe virtuelle ? ',\r\n        url: 'https://video.espace-eleves.com/play.php?id=4a1c6821fa630a83666cf5ba8763b874'\r\n      },\r\n      {\r\n        title: 'Comment annuler ma participation à une classe virtuelle ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=fa9e3957cc736b4b8d219866a9c014e6'\r\n      }\r\n    ],\r\n    module: ModuleType.VirtualClassView\r\n  },\r\n  {\r\n    id: 'Contact',\r\n    row: 21,\r\n    label: 'Contact',\r\n    image: [],\r\n    icon: ICONS.contact,\r\n    tutorials: [\r\n      {\r\n        title: 'Comment prendre rendez-vous ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=5e9172c883d8fe50feca4427c6cb74af'\r\n      },\r\n      {\r\n        title: 'Comment contacter un service en particulier ? ',\r\n        url: 'https://video.espace-eleves.com/play.php?id=ddc74d1578fcd6588e209de2301ea66e'\r\n      }\r\n    ],\r\n    module: ModuleType.Dashboard\r\n  },\r\n  {\r\n    id: 'Evaluation',\r\n    row: 7,\r\n    label: 'Évaluations',\r\n    image: ['evaluations_enonce_1.svg', 'evaluations_enonce_1.svg'],\r\n    icon: ICONS.homeworks,\r\n    tutorials: [\r\n      {\r\n        title: 'Comment joindre des fichiers à mon évaluation ? ',\r\n        url: 'https://video.espace-eleves.com/play.php?id=af0671d4288bc4be3d2d0f2fae537d0a'\r\n      },\r\n      {\r\n        title: 'Comment consulter les fichiers liés ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=92d985e885b4108ac3f7b936848a05dc'\r\n      },\r\n      {\r\n        title: 'Comment rédiger mon évaluation ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=4474efae6fdcaf56d0a151cab2a8c104'\r\n      },\r\n      {\r\n        title: 'Comment envoyer mon évaluation ? ',\r\n        url: 'https://video.espace-eleves.com/play.php?id=430544d0e1702951abb83eeaaf74b8a6'\r\n      },\r\n      {\r\n        title: 'Comment revenir aux chapitres lorsque je suis en mode plein écran ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=c1603ac514b7e4d94eeb3ccebf9a1502'\r\n      },\r\n      {\r\n        title: 'Comment changer de support pédagogique ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=552b1927c3cfb8c1109006c5a46e4485'\r\n      }\r\n    ],\r\n    module: ModuleType.Dashboard\r\n  },\r\n  {\r\n    id: 'Evalutions',\r\n    row: 8,\r\n    label: 'Évaluations (Rubrique)',\r\n    image: ['evaluations_rubrique.svg'],\r\n    icon: ICONS.homeworks,\r\n    tutorials: [\r\n      {\r\n        title: 'Comment modifier l’affichage de mes évaluations ? ',\r\n        url: 'https://video.espace-eleves.com/play.php?id=d41384b294f2c90269053a1b2c8ec74f'\r\n      },\r\n      {\r\n        title: 'Comment programmer une évaluation dans mon agenda ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=87bd7942cb0d85e04cb1ea17dbff4730'\r\n      }\r\n    ],\r\n    module: ModuleType.Dashboard\r\n  },\r\n  {\r\n    id: 'Formation',\r\n    row: 5,\r\n    label: 'Formation',\r\n    image: ['formation.svg'],\r\n    icon: ICONS.training,\r\n    tutorials: [\r\n      {\r\n        title: 'Comment changer l’affichage de mes chapitres ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=8db93fa0edb6fc250bdb560001adbf11'\r\n      },\r\n      {\r\n        title: 'Comment prendre rendez-vous ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=03cf63926bc1105184b244172cae49cc'\r\n      },\r\n      {\r\n        title: 'Comment faire évoluer le pourcentage de mon avancée dans le chapitre ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=1f66314eec7c03d58f96f623f1da664c'\r\n      }\r\n    ],\r\n    module: ModuleType.Dashboard\r\n  },\r\n  {\r\n    id: 'Historique',\r\n    row: 15,\r\n    label: 'Historique',\r\n    image: ['historique_rendez-vous.svg', 'historique_supports_pedagogiques.svg'],\r\n    icon: ICONS.suivi,\r\n    tutorials: [\r\n      {\r\n        title: 'Comment consulter l’historique de mes rendez-vous ? ',\r\n        url: 'https://video.espace-eleves.com/play.php?id=aacddc9721d3c576d736dca8429d3077'\r\n      },\r\n      {\r\n        title: 'Comment consulter rapidement mes prochains rendez-vous ? ',\r\n        url: 'https://video.espace-eleves.com/play.php?id=5530cd2f66258bdfa739c56cf9190879'\r\n      },\r\n      {\r\n        title: 'Comment consulter l’historique de mes supports pédagogiques ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=eaf3e341e0fe1214dd0a254fd620c69a'\r\n      }\r\n    ],\r\n    module: ModuleType.Dashboard\r\n  },\r\n  {\r\n    id: 'Stages',\r\n    row: 16,\r\n    label: 'Mes stages',\r\n    image: ['mes_stages.svg'],\r\n    icon: ICONS.suivi,\r\n    tutorials: [\r\n      {\r\n        title: 'Comment faire la demande pour obtenir la convention de stage ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=95116121f908e59965eea5f017ee6611'\r\n      },\r\n      {\r\n        title: 'Comment modifier une demande de convention de stage ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=c802f771dfe9c5b6a42fdc2e852dca9f'\r\n      },\r\n      {\r\n        title: 'Comment demander un avenant à une convention déjà éditée ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=abd01a56abcd4859736588fa038ff4fc'\r\n      }\r\n    ],\r\n    module: ModuleType.InternalShipView\r\n  },\r\n  {\r\n    id: 'Messages',\r\n    row: 20,\r\n    label: 'Messagerie',\r\n    image: ['messagerie.svg'],\r\n    icon: ICONS.mail,\r\n    tutorials: [\r\n      {\r\n        title: 'Comment poser une question au bon service ? ',\r\n        url: 'https://video.espace-eleves.com/play.php?id=6aeaa00b3b24e106cfe634310b90d831'\r\n      },\r\n      {\r\n        title: 'Comment visualiser une réponse ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=0faec55f884df625824742a11bc317f6'\r\n      }\r\n    ],\r\n    module: ModuleType.Dashboard\r\n  },\r\n  {\r\n    id: 'Jobs',\r\n    row: 17,\r\n    label: 'Offres : stages - emplois',\r\n    image: ['offres_stages_emplois.svg'],\r\n    icon: ICONS.job,\r\n    tutorials: [\r\n      {\r\n        title: 'Comment ajouter une offre aux favoris ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=e543f6faa55ca27a009b39610091b52b'\r\n      }\r\n    ],\r\n    module: ModuleType.JobView\r\n  },\r\n  {\r\n    id: 'Job',\r\n    row: 17,\r\n    label: 'Détails de l’offre',\r\n    image: ['details_offre.svg'],\r\n    icon: null,\r\n    tutorials: [],\r\n    module: ModuleType.JobView\r\n  },\r\n  {\r\n    id: 'Payment',\r\n    row: 4,\r\n    label: 'Paiements',\r\n    image: [],\r\n    icon: ICONS.payment,\r\n    tutorials: [\r\n      {\r\n        title: 'Comment modifier mes coordonnées bancaires ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=2fd6ffbd6faf17441325785eb0436ed5'\r\n      },\r\n      {\r\n        title: 'Comment effectuer un paiement par carte bancaire ou Paypal ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=48802f7a1e593e18026eddf5229156b9'\r\n      },\r\n      {\r\n        title: 'Comment télécharger mon échéancier ou mon relevé de compte ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=0b50cdbb232beffb2d6dde3bc1fa8ab5'\r\n      }\r\n    ],\r\n    module: ModuleType.PaymentView\r\n  },\r\n  {\r\n    id: 'Profil',\r\n    row: 2,\r\n    label: 'Profil',\r\n    image: [],\r\n    icon: ICONS.profil,\r\n    tutorials: [\r\n      {\r\n        title: 'Comment changer ma photo de profil ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=df8a85220cb823976a3e8bf5aa35b6df'\r\n      },\r\n      {\r\n        title: 'Comment modifier mes informations personnelles ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=b2f0acbba1567c27e606351f0583571a'\r\n      }\r\n    ],\r\n    module: ModuleType.Dashboard\r\n  },\r\n  {\r\n    id: 'Disponibilite',\r\n    row: 3,\r\n    label: 'Disponibilités',\r\n    image: [],\r\n    icon: ICONS.profil,\r\n    tutorials: [\r\n      {\r\n        title: 'Comment supprimer un créneau de disponibilité ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=b49bfc09c9f5c21b1cbf17a328f441f2'\r\n      }\r\n    ],\r\n    module: ModuleType.Dashboard\r\n  },\r\n  {\r\n    id: 'SupportsPedagogiques',\r\n    row: 6,\r\n    label: 'Supports pédagogiques',\r\n    image: ['SupportsPedagogiques.svg'],\r\n    icon: ICONS.training,\r\n    tutorials: [\r\n      {\r\n        title: 'Comment poser une question en lien avec le support pédagogique consulté ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=44e208ee22e249de32409964381480d8'\r\n      },\r\n      {\r\n        title: 'Comment prendre rendez-vous avec un formateur lié au support consulté ? ',\r\n        url: 'https://video.espace-eleves.com/play.php?id=85110affe5649db794e95c7fda6f639d'\r\n      },\r\n      {\r\n        title: 'Comment ajouter mon support pédagogique aux favoris ? ',\r\n        url: 'https://video.espace-eleves.com/play.php?id=73783b93fe7ca94a0ba16238bce2eed1'\r\n      },\r\n      {\r\n        title: 'Comment programmer un support pédagogique dans mon agenda ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=7dfa8649455371db75ee1743eba53fe3'\r\n      },\r\n      {\r\n        title: 'Comment afficher en plein écran mon support pédagogique ? ',\r\n        url: 'https://video.espace-eleves.com/play.php?id=623b663643eb0329e066a0b520568331'\r\n      },\r\n      {\r\n        title: 'Comment accéder aux autres supports pédagogiques du chapitre ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=49e59f9c352ce6790f09ca7b99a3632b'\r\n      },\r\n      {\r\n        title: 'Comment fermer la liste des supports pédagogiques ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=bb757473c844490d2d5869f077b42015'\r\n      },\r\n      {\r\n        title: 'Comment obtenir les informations du support pédagogique consulté ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=1016ca12747e134bfa57fc486386639d'\r\n      },\r\n      {\r\n        title: 'Comment télécharger le cours consulté au format .PDF ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=f4ad761f702745fc0ac0b79057e0f57e'\r\n      },\r\n      {\r\n        title: 'Comment revenir aux chapitres lorsque je suis en mode plein écran ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=c1603ac514b7e4d94eeb3ccebf9a1502'\r\n      },\r\n      {\r\n        title: 'Comment changer de support pédagogique ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=552b1927c3cfb8c1109006c5a46e4485'\r\n      }\r\n    ],\r\n    module: ModuleType.Dashboard\r\n  },\r\n  {\r\n    id: 'TableauDebord',\r\n    row: 1,\r\n    label: 'Tableau de bord',\r\n    image: ['tableau_bord.svg'],\r\n    icon: ICONS.dashboard,\r\n    tutorials: [\r\n      {\r\n        title: 'Comment masquer les rubriques ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=89f4ebc24276871238d5f3c99e09e992'\r\n      },\r\n      {\r\n        title: 'Comment changer la configuration de ma page ?',\r\n        url: 'https://video.espace-eleves.com/play.php?id=22f458fe57de402b39478c2a9cc067dd'\r\n      }\r\n    ],\r\n    module: ModuleType.Dashboard\r\n  },\r\n  {\r\n    id: 'ReleveNotes',\r\n    row: 14,\r\n    label: 'Relevés de notes',\r\n    image: ['releve_notes.svg'],\r\n    icon: ICONS.suivi,\r\n    tutorials: [],\r\n    module: ModuleType.Dashboard\r\n  }\r\n];\r\n","import { HubContext } from 'contexts/HubContext';\r\nimport { format } from 'date-fns';\r\nimport { useContext } from 'react';\r\nimport axiosInstance from 'utils/axios';\r\n\r\nexport enum TypeLog {\r\n  None = 0,\r\n  Connected = 1,\r\n  Disconnected = 2,\r\n  Tracker = 3,\r\n  AttendanceTrackingLoaded = 4,\r\n  AttendanceTrackingValidated = 5,\r\n  Error = 6\r\n}\r\n\r\nexport default function useHubConnection() {\r\n  const proxy = useContext(HubContext);\r\n\r\n  const onError = async (message: string, description: string) => {\r\n    const version = process.env.REACT_APP_ENT_VERSION;\r\n    await methodeHttp(TypeLog.Error, message, `[${version}]-${description}`, 0);\r\n    //proxy?.methode('onErrorApplication', message, description);\r\n  };\r\n\r\n  /**\r\n   * Envoi une trace des pages consultés pour les élèves pris en charge\r\n   *\r\n   * @param page\r\n   * @param idConnection\r\n   * @returns\r\n   */\r\n  const onTrackerPage = async (page: string, idConnection: number) => {\r\n    await methodeHttp(TypeLog.Tracker, page, '', idConnection);\r\n    //proxy?.methode('onTrackerPage', page, idConnection);\r\n  };\r\n\r\n  /**\r\n   * Suivi de Présence :attendance tracking\r\n   *\r\n   * @param type\r\n   * @param idConnection\r\n   * @returns\r\n   */\r\n  const onAttendanceTracking = async (type: TypeLog, label: string, idConnection: number) => {\r\n    await methodeHttp(type, label, '', idConnection);\r\n    //proxy?.methode('onTrackerPage', page, idConnection);\r\n  };\r\n\r\n  /**\r\n   * Envoyer les donnees via http\r\n   * @param methodName\r\n   * @param args\r\n   * @returns\r\n   */\r\n  async function methodeHttp(\r\n    type: TypeLog,\r\n    message: string,\r\n    description: string,\r\n    idConnection: number\r\n  ) {\r\n    try {\r\n      await axiosInstance.post(\r\n        `/api/tracker/create/${type}`,\r\n        {\r\n          message: message,\r\n          description: description,\r\n          idConnection: idConnection,\r\n          localTime: new Date().getTime() //new Date().toLocaleString('fr-FR') //new Date().toISOString().slice(0, -1)\r\n        },\r\n        {\r\n          headers: { writeOnly: true, tracker: true }\r\n        }\r\n      );\r\n    } catch (ex) {\r\n      console.log(ex);\r\n    }\r\n  }\r\n\r\n  return {\r\n    ...proxy,\r\n    onError,\r\n    onTrackerPage,\r\n    onAttendanceTracking\r\n  };\r\n}\r\n","// material\r\nimport {\r\n  Box,\r\n  Divider,\r\n  Typography,\r\n  ListItemText,\r\n  ListItemButton,\r\n  ListItem,\r\n  IconButton\r\n} from '@mui/material';\r\nimport { AccessTime, Close } from '@mui/icons-material';\r\n// utils\r\nimport { fDate, fDateTime, fToNow } from '../../../utils/formatTime';\r\n\r\n//Type\r\nimport { FavoriteState, Favorite, FavoriteType, FavoriteKey } from '../../../@types/favorite';\r\n\r\n// components\r\nimport TagType from 'components/TagType';\r\n\r\n// ----------------------------------------------------------------------\r\nexport type FavoriteListItemProps = {\r\n  favorite: Favorite;\r\n  onSelect: (key: FavoriteKey, type: FavoriteType) => void;\r\n  onRemove: (id: number) => void;\r\n};\r\n\r\n/**\r\n * Favori en detail\r\n * @param param0\r\n * @returns\r\n */\r\nexport default function FavoriteListItem({ favorite, onSelect, onRemove }: FavoriteListItemProps) {\r\n  return (\r\n    <>\r\n      <ListItem\r\n        secondaryAction={\r\n          <IconButton onClick={() => onRemove(favorite.id)}>\r\n            <Close />\r\n          </IconButton>\r\n        }\r\n        disablePadding\r\n      >\r\n        <ListItemButton\r\n          onClick={() => onSelect(favorite.key, favorite.type)}\r\n          sx={{\r\n            py: 1.5,\r\n            px: 2.5,\r\n            mt: '1px'\r\n          }}\r\n        >\r\n          <ListItemText\r\n            primary={<Typography variant=\"body2\">{favorite.label}</Typography>}\r\n            secondary={\r\n              <Typography\r\n                variant=\"caption\"\r\n                sx={{\r\n                  mt: 0.5,\r\n                  display: 'flex',\r\n                  alignItems: 'center',\r\n                  color: 'text.disabled'\r\n                }}\r\n              >\r\n                <AccessTime sx={{ mr: 0.5, width: 16, height: 16 }} />\r\n                Ajouté le {fDate(favorite.dateCreated)}\r\n                <Box flexGrow={1} />\r\n                <Box sx={{ mr: 1 }}>\r\n                  <TagType type={FavoriteType[favorite.type].toString()} />\r\n                </Box>\r\n              </Typography>\r\n            }\r\n          />\r\n        </ListItemButton>\r\n      </ListItem>\r\n      <Divider />\r\n    </>\r\n  );\r\n}\r\n","// material\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Box, BoxProps } from '@mui/material';\r\nimport useAuth from 'hooks/useAuth';\r\nimport { Contract } from '../@types/contract';\r\nimport { useCallback } from 'react';\r\nimport { useNavigate } from 'react-router';\r\nimport { PATH_DASHBOARD } from 'routes/paths';\r\nimport { Link } from 'react-router-dom';\r\n\r\n// ----------------------------------------------------------------------\r\nexport interface LogoProps extends BoxProps {\r\n  isSmall?: boolean;\r\n}\r\n\r\nexport default function Logo({ sx, isSmall = false }: LogoProps) {\r\n  const { getContractCurrent } = useAuth();\r\n\r\n  const url = isSmall ? `` : `logo_`;\r\n\r\n  return (\r\n    <Link to={PATH_DASHBOARD.general.app}>\r\n      <Box\r\n        sx={{ ...sx }}\r\n        component=\"img\"\r\n        src={`/static/brand/${url}${getContractCurrent().brand.id}.svg`}\r\n      />\r\n    </Link>\r\n  );\r\n}\r\n","import { Service } from '../@types/message';\r\nimport { useEffect, useState } from 'react';\r\nimport { RootState, useSelector } from 'redux/store';\r\nimport useAuth from './useAuth';\r\nimport useBrand from './useBrand';\r\n\r\nexport default function useServices() {\r\n  const [servicesFiltered, setServicesFiltered] = useState<Array<Service>>([]); //par defaut\r\n  const { services } = useSelector((state: RootState) => state.message);\r\n  const { getContractCurrent } = useAuth();\r\n  const { brand } = useBrand();\r\n\r\n  useEffect(() => {\r\n    setServicesFiltered(getServicesFiltered() || []);\r\n  }, [services]);\r\n\r\n  const getServicesFiltered = () => {\r\n    const modules = getContractCurrent().moduleList;\r\n\r\n    return services\r\n      ?.slice()\r\n      .filter((s) => !s.modules || s.modules.some((am) => modules.includes(am)))\r\n      .sort((a, b) => (b.label > a.label ? -1 : 1));\r\n  };\r\n\r\n  return {\r\n    servicesFiltered\r\n  };\r\n}\r\n","import { useEffect, useState } from 'react';\r\nimport { formatDistanceToNowStrict } from 'date-fns';\r\n// material\r\nimport { styled } from '@mui/material/styles';\r\nimport {\r\n  Box,\r\n  Avatar,\r\n  ListItemButton,\r\n  ListItemText,\r\n  ListItemAvatar,\r\n  Typography,\r\n  Skeleton,\r\n  Card\r\n} from '@mui/material';\r\n\r\n// utils\r\nimport { fDate } from '../../../utils/formatTime';\r\n\r\n//type\r\nimport { Message, MessageDetail, MessageType } from '../../../@types/message';\r\n\r\nimport Scrollbar from 'components/Scrollbar';\r\nimport IllustrationMessage from 'components/IllustrationMessage';\r\nimport Markdown from 'components/Markdown';\r\nimport FileDetailsAttachments from 'components/file/FileDetailsAttachments';\r\nimport EmptyContentLarge from 'components/EmptyContentLarge';\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst RootStyle = styled('div')(({ theme }) => ({\r\n  display: 'flex',\r\n  marginBottom: theme.spacing(3)\r\n}));\r\n\r\nconst ContentStyle = styled('div')(({ theme }) => ({\r\n  maxWidth: 420,\r\n  padding: theme.spacing(1.5),\r\n  marginTop: theme.spacing(0.5),\r\n  borderRadius: theme.shape.borderRadius,\r\n  backgroundColor: theme.palette.background.neutral\r\n}));\r\n\r\nconst InfoStyle = styled(Typography)(({ theme }) => ({\r\n  display: 'flex',\r\n  marginBottom: theme.spacing(0.75),\r\n  color: theme.palette.text.secondary\r\n}));\r\n\r\nconst NoResponseStyle = styled(Card)(({ theme }) => ({\r\n  boxShadow: theme.customShadows.z16,\r\n  maxWidth: '630px'\r\n}));\r\n\r\n// ----------------------------------------------------------------------\r\n\r\nconst SkeletonLoad = (\r\n  <>\r\n    <Skeleton width=\"90%\" variant=\"rectangular\" sx={{ borderRadius: 2 }} />\r\n    <Box sx={{ mt: 3, display: 'flex', alignItems: 'center' }}>\r\n      <Skeleton variant=\"circular\" width={64} height={64} />\r\n      <Box sx={{ flexGrow: 1, ml: 2 }}>\r\n        <Skeleton variant=\"text\" height={20} />\r\n        <Skeleton variant=\"text\" height={20} />\r\n        <Skeleton variant=\"text\" height={20} />\r\n      </Box>\r\n    </Box>\r\n  </>\r\n);\r\n\r\nexport type MessageQuestionCardDetailProps = {\r\n  questionAnswer: Array<MessageDetail>;\r\n};\r\n\r\nexport default function MessageQuestionCardDetail({\r\n  questionAnswer = []\r\n}: MessageQuestionCardDetailProps) {\r\n  const question = questionAnswer[0];\r\n  const answer = questionAnswer.length > 1 ? questionAnswer[1] : null;\r\n\r\n  return (\r\n    <Scrollbar sx={{ p: 3, height: 1 }}>\r\n      {question == null ? (\r\n        SkeletonLoad\r\n      ) : (\r\n        <>\r\n          <MessageContentItem message={question} type={MessageType.Question} />\r\n          {answer ? (\r\n            <MessageContentItem message={answer} type={MessageType.Answer} />\r\n          ) : (\r\n            <NoResponseStyle>\r\n              <EmptyContentLarge\r\n                title=\"Vous n'avez pas encore reçu de réponse.\"\r\n                description=\"Votre interlocuteur ou interlocutrice s'efforce de vous répondre dans les meilleurs délais. Vous serez informé(e) de sa réponse par notification.\"\r\n                img=\"/static/illustrations/messagerie/attente_reponse.svg\"\r\n              />\r\n            </NoResponseStyle>\r\n          )}\r\n        </>\r\n      )}\r\n    </Scrollbar>\r\n  );\r\n}\r\n\r\nexport type MessageContentItemProps = {\r\n  message: MessageDetail;\r\n  type: MessageType;\r\n};\r\n\r\nexport function MessageContentItem({ message, type }: MessageContentItemProps) {\r\n  let avatarImg: string = 'COA'; //par defaut caoching\r\n\r\n  // prof\r\n  if (message.fromDetails.pro !== '' && !message?.fromDetails?.coach)\r\n    avatarImg = message?.from.includes('M.') ? 'correcteur' : 'correctrice';\r\n\r\n  // service\r\n  if (message.fromDetails.pro === '') avatarImg = message.fromDetails.ser;\r\n\r\n  return (\r\n    <RootStyle>\r\n      <Box\r\n        sx={{\r\n          display: 'flex',\r\n          ...(type === MessageType.Question && {\r\n            ml: 'auto'\r\n          })\r\n        }}\r\n      >\r\n        {type === MessageType.Answer && (\r\n          <>\r\n            <Avatar\r\n              src={`/static/avatarsServices/${avatarImg}.svg`}\r\n              sx={{ width: 32, height: 32, mr: 2 }}\r\n            />\r\n          </>\r\n        )}\r\n\r\n        <div>\r\n          <InfoStyle\r\n            variant=\"caption\"\r\n            sx={{ ...(type === MessageType.Question && { justifyContent: 'flex-end' }) }}\r\n          >\r\n            {message?.fromDetails?.pro !== '' && (\r\n              <Typography component=\"span\" variant=\"caption\">\r\n                {message?.from}\r\n              </Typography>\r\n            )}\r\n            <Typography component=\"span\" variant=\"caption\" sx={{ ml: 2 }}>\r\n              {fDate(message?.publicationDate, \"eeee dd MMMM 'à' HH:mm \")}\r\n            </Typography>\r\n          </InfoStyle>\r\n\r\n          <ContentStyle\r\n            sx={{\r\n              ...(type === MessageType.Answer && { color: 'grey.800', bgcolor: 'primary.lighter' })\r\n            }}\r\n          >\r\n            <Typography variant=\"body2\" component={'div'}>\r\n              <Markdown children={message?.description || ''} />\r\n            </Typography>\r\n          </ContentStyle>\r\n          <FileDetailsAttachments files={message.files} />\r\n        </div>\r\n      </Box>\r\n    </RootStyle>\r\n  );\r\n}\r\n","import { useState } from 'react';\r\n\r\nimport { Drawer, Stack, Tooltip, Typography, Divider, Badge, IconButton } from '@mui/material';\r\nimport { Close, DateRangeRounded } from '@mui/icons-material';\r\n\r\n//redux\r\nimport { useSelector } from 'react-redux';\r\nimport { RootState } from 'redux/store';\r\n\r\n//utils\r\nimport { extractDataType } from 'utils/helperStudyPlan';\r\n\r\n//type\r\nimport { StudyPlanItem } from '../../../../@types/pedagogy';\r\nimport { AgendaEvent, AgendaEventType } from '../../../../@types/agenda';\r\nimport { TaskModel, TaskStatus } from '../../../../@types/task';\r\n\r\n// composant\r\nimport MIconButton from 'components/MIconButton';\r\nimport AgendaTaskDetail from 'components/_dashboard/agenda/AgendaTaskDetail';\r\nimport { formatAPI } from 'utils/formatTime';\r\n\r\n//------------------------------------------------------------------------\r\ntype StudyPlanDetailsEventPopoverProps = {\r\n  studyPlanItem: StudyPlanItem;\r\n};\r\n\r\n/**\r\n * Prgrammation support pédagogique\r\n * Affichage dans l'agenda des taches\r\n * @returns\r\n */\r\nexport default function StudyPlanDetailsEventPopover({\r\n  studyPlanItem\r\n}: StudyPlanDetailsEventPopoverProps) {\r\n  const { events } = useSelector((state: RootState) => state.agenda);\r\n  const keyOfCourse = extractDataType(studyPlanItem);\r\n\r\n  //Plannification\r\n\r\n  return (\r\n    <StudyPlanItemEventPopover\r\n      studyPlanItem={{\r\n        ...studyPlanItem,\r\n        schedule: events.filter(\r\n          (t) =>\r\n            t.eventType === AgendaEventType.Task &&\r\n            t.metadatas.courseId === keyOfCourse.courseId &&\r\n            t.metadatas.homeworkId === keyOfCourse.id &&\r\n            t.metadatas.mediaId === keyOfCourse.mediaId\r\n        )[0]\r\n      }}\r\n    />\r\n  );\r\n}\r\n\r\nexport interface StudyPlanItemEventPopoverProps {\r\n  studyPlanItem: StudyPlanItem;\r\n}\r\n\r\n/**\r\n * Programmation support pédagogique\r\n * Affichage dans l'agenda des taches\r\n * @returns\r\n */\r\nexport function StudyPlanItemEventPopover({ studyPlanItem }: StudyPlanItemEventPopoverProps) {\r\n  const [open, setOpen] = useState(false);\r\n\r\n  const handleOpen = (event: any) => {\r\n    event.stopPropagation();\r\n    event.preventDefault();\r\n    setOpen(true);\r\n  };\r\n\r\n  const handleClose = () => {\r\n    setOpen(false);\r\n  };\r\n\r\n  const keyOfCourse = extractDataType(studyPlanItem);\r\n\r\n  const taskOfCourse = studyPlanItem.schedule\r\n    ? studyPlanItem.schedule.metadatas\r\n    : ({\r\n        id: 0,\r\n        barCode: keyOfCourse.barCode,\r\n        courseId: keyOfCourse.courseId,\r\n        homeworkId: keyOfCourse.id,\r\n        mediaId: keyOfCourse.mediaId,\r\n        dateStart: `${formatAPI(new Date())}T09:00:00`,\r\n        dateEnd: `${formatAPI(new Date())}T11:00:00`,\r\n        isLocked: false,\r\n        label: studyPlanItem.label,\r\n        status: TaskStatus.Todo\r\n      } as TaskModel);\r\n\r\n  return (\r\n    <>\r\n      <Tooltip title=\"Programmations\">\r\n        <MIconButton onClick={handleOpen}>\r\n          <Badge badgeContent={studyPlanItem.schedule ? 1 : 0} color=\"error\">\r\n            <DateRangeRounded />\r\n          </Badge>\r\n        </MIconButton>\r\n      </Tooltip>\r\n\r\n      <Drawer\r\n        open={open}\r\n        onClose={handleClose}\r\n        anchor=\"right\"\r\n        PaperProps={{ sx: { width: { xs: 1, sm: 630 } } }}\r\n      >\r\n        <Stack p={1.5} direction=\"row\" alignItems=\"center\">\r\n          <Tooltip title=\"Retour\">\r\n            <IconButton onClick={handleClose} sx={{ mr: 1 }}>\r\n              <Close />\r\n            </IconButton>\r\n          </Tooltip>\r\n          <Typography variant=\"h4\" sx={{ ml: 2.4 }}>\r\n            Programmer dans l'agenda\r\n          </Typography>\r\n        </Stack>\r\n        <Divider />\r\n\r\n        <AgendaTaskDetail task={taskOfCourse} onClose={handleClose} isLinkToCourse={false} />\r\n      </Drawer>\r\n    </>\r\n  );\r\n}\r\n","import { FavoriteType } from '../../../../@types/favorite';\r\nimport {\r\n  StudyPlanItem,\r\n  StudyPlanItemType,\r\n  StudyPlanItemHomework,\r\n  StudyPlanItemMedia\r\n} from '../../../../@types/pedagogy';\r\n\r\nimport FavoriteToggleAction from 'components/_dashboard/favorite/FavoriteAction';\r\n\r\nexport type StudyPlanItemFavoriteActionProps = {\r\n  item: StudyPlanItem;\r\n};\r\n\r\nexport function StudyPlanItemFavoriteAction({ item }: StudyPlanItemFavoriteActionProps) {\r\n  const homeworkBase =\r\n    item.type === StudyPlanItemType.Homework ? (item as StudyPlanItemHomework).homeworkBase : null;\r\n\r\n  const isMedia = [\r\n    StudyPlanItemType.Pdf,\r\n    StudyPlanItemType.Html,\r\n    StudyPlanItemType.Audio,\r\n    StudyPlanItemType.Url,\r\n    StudyPlanItemType.Video\r\n  ].includes(item.type!);\r\n\r\n  return (\r\n    <FavoriteToggleAction\r\n      type={\r\n        item.type === StudyPlanItemType.Homework ? FavoriteType.Evaluation : FavoriteType.Courses\r\n      }\r\n      keyFav={{\r\n        id: 0,\r\n        courseId: item.id || '',\r\n        homeworkId: item.type === StudyPlanItemType.Homework ? homeworkBase?.id! : 0,\r\n        mediaId: isMedia ? (item as StudyPlanItemMedia)?.media.id : 0\r\n      }}\r\n      title={item.label}\r\n      isToolbarSide={true}\r\n    />\r\n  );\r\n}\r\n","import { SummaryResponse, SummaryRequest, FileBaseInfo } from './common';\r\nimport { ModuleType } from './contract';\r\n\r\nexport interface ServiceListResponse {\r\n  result: ServiceListResult;\r\n  list: Service[];\r\n}\r\n\r\nexport enum ServiceListResult {\r\n  Success = 1,\r\n  NotFound = 2\r\n}\r\n\r\nexport interface Service {\r\n  key: string;\r\n  label: string;\r\n  description: string;\r\n  observation: string;\r\n  email: string;\r\n  locked: boolean;\r\n  subjects: SubjectModel[];\r\n  modules: ModuleType[];\r\n}\r\n\r\nexport interface SubjectModel {\r\n  key: string;\r\n  keyService: string;\r\n  label: string;\r\n  affectable: string;\r\n  observation: string;\r\n}\r\n\r\nexport type MessageState = {\r\n  isLoading: boolean;\r\n  error: any;\r\n  messages: Array<Message>;\r\n  question: Array<Message> | null;\r\n  services: Array<Service> | null;\r\n};\r\n\r\nexport type MessageListRequest = {\r\n  type: MessageType;\r\n};\r\n\r\nexport interface MessageListResponse extends SummaryResponse {\r\n  list: Message[];\r\n  result: MessageListResult;\r\n}\r\n\r\nexport type MessageLabelId = 'all' | 'unread' | 'question' | 'school';\r\n\r\nexport type MessageLabel = {\r\n  id: MessageLabelId;\r\n  type: string;\r\n  name: string;\r\n  unreadCount: number;\r\n  color?: string;\r\n};\r\n\r\nexport interface MessageBase {\r\n  id: number;\r\n  title: string;\r\n  publicationDate: string;\r\n  type: MessageType;\r\n  reference: string;\r\n  category: string;\r\n  categoryUrl: string;\r\n  coverUrl: string;\r\n  read: boolean;\r\n}\r\n\r\nexport interface Message extends MessageBase {\r\n  idType: number;\r\n\r\n  isFile: boolean;\r\n  description: string;\r\n}\r\n\r\nexport interface MessageDetail extends MessageBase {\r\n  description: string;\r\n  files: FileBaseInfo[];\r\n  from: string;\r\n  fromDetails: MessageFromDetail;\r\n}\r\n\r\nexport type MessageFromDetail = {\r\n  ser: string;\r\n  suj: string;\r\n  pro: string;\r\n  coach: boolean;\r\n};\r\n\r\nexport interface MessageQuestion extends MessageDetail {\r\n  observation: string;\r\n}\r\n\r\nexport interface MessageId {\r\n  id: number;\r\n  idType: number;\r\n  type: number;\r\n}\r\n\r\nexport interface MessageItemResponse {\r\n  items: MessageDetail[];\r\n  result: MessageItemResult;\r\n}\r\n\r\nexport enum MessageItemResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n\r\nexport enum MessageType {\r\n  All = 0,\r\n  News = 1,\r\n  Question = 2,\r\n  Answer = 4,\r\n  Message = 3,\r\n  Mails = 5,\r\n  CoachTeacher = 6\r\n}\r\n\r\nexport enum MessageListResult {\r\n  NotFound = 0,\r\n  Success = 1\r\n}\r\n\r\nexport interface Question {\r\n  serviceId: string;\r\n  subjectId: string;\r\n  themeId?: string;\r\n  title: string;\r\n  reference: string;\r\n  description: string;\r\n  pro: string;\r\n  files: Array<any>;\r\n}\r\n\r\nexport interface MessageAddResponse {\r\n  question: Question;\r\n  result: MessageAddResult;\r\n}\r\n\r\nexport enum MessageAddResult {\r\n  NotFound = 0,\r\n  Success = 1,\r\n  ServiceIsRequired = 2,\r\n  SubjectIsRequed = 3,\r\n  TitleIsRequired = 4,\r\n  ObservationIsRequired = 5,\r\n  files = 6\r\n}\r\n"],"sourceRoot":""}