{"version":3,"sources":["app/api/agent.ts","app/stores/pythonProblemStore.ts","app/stores/modalStore.ts","app/stores/commonStore.ts","app/stores/userStore.ts","app/stores/usersStore.ts","app/stores/roleStore.ts","app/stores/courseStore.ts","app/stores/coursesStore.ts","app/stores/subjectStore.ts","app/stores/teacherStore.ts","app/stores/numberPuzzleStore.ts","app/stores/studentStore.ts","app/stores/lessonStore.ts","app/stores/assignmentStore.ts","app/stores/inquiryStore.ts","app/stores/qaStore.ts","app/stores/topicStore.ts","app/stores/courseTopicStore.ts","app/stores/discussionStore.ts","app/stores/achievementStore.ts","app/stores/announcementStore.ts","app/stores/assistantStore.ts","app/stores/rootStore.ts","app/layout/LoadingComponent.tsx","app/common/modals/ModalContainer.tsx","features/home/HomeBanner.tsx","features/home/Announcements.tsx","features/home/HomeAbout.tsx","features/home/HomePage.tsx","features/courses/beginner/BeginnerClassTree.jsx","features/courses/Beginner.tsx","features/courses/intermediate/IntermediateClassTree.jsx","features/courses/Intermediate.tsx","features/courses/advanced/AdvancedClassTree.jsx","features/courses/Advanced.tsx","features/courses/challenging/ChallengingClassTree.jsx","features/courses/Challenging.tsx","features/courses/Courses.tsx","app/layout/NotFound.tsx","features/staff/StaffListTree.jsx","features/staff/Staff.tsx","features/achievements/Achievements.tsx","features/achievements/EditAchievementModal.jsx","features/achievements/AdminAchievements.tsx","features/announcements/EditAnnouncementModal.jsx","features/announcements/AdminAnnouncements.tsx","app/common/form/ErrorMessage.tsx","features/contact/Contact.tsx","app/layout/PrivateRoute.tsx","app/models/user.ts","features/users/UserModal.jsx","features/users/SetParentModal.jsx","features/users/CoursesTakenModal.jsx","features/users/CheckChildModal.jsx","features/users/SetRolesModal.jsx","features/users/ResetPasswordModal.jsx","features/users/UsersForm.tsx","features/users/UserForm.tsx","features/classes/ClassInfo.jsx","features/classes/ClassesForm.tsx","features/user/GoogleLoginSegment.tsx","features/user/LoginForm.tsx","features/user/RegisterForm.tsx","features/user/ChangePasswordModal.jsx","features/nav/NavBarDesktop.tsx","features/nav/NavBar.tsx","features/numberPuzzles/NumberPuzzleRanks.tsx","app/common/lists/puzzleImages.ts","features/numberPuzzles/NumberPuzzleSolve.tsx","features/user/ProfileForm.jsx","features/subject/NewSubjectModal.jsx","features/subject/SubjectsForm.tsx","features/adminClasses/AdminClassesForm.tsx","app/common/modals/ContentModal.jsx","features/lesson/AttendanceModal.jsx","features/adminClasses/AdminClassForm.tsx","features/adminClasses/EditClassForm.tsx","features/adminClasses/NewClassForm.tsx","features/adminClasses/ClassAssistants.tsx","features/adminClasses/ClassStudents.tsx","features/adminClasses/StudentReportModal.jsx","features/adminClasses/AdminClassInfo.tsx","features/teacherClasses/TeacherClassesForm.tsx","features/teacherClasses/TeacherClassInfo.tsx","features/teacherClasses/AddClassResourceText.jsx","features/teacherClasses/AddClassResourceLink.jsx","features/teacherClasses/AddClassResourceAttach.jsx","features/teacherClasses/AddLesson.jsx","features/teacherClasses/SetTimePeriodModal.jsx","features/teacherClasses/SetNoticeModal.jsx","features/teacherClasses/SetVideoModal.jsx","features/teacherClasses/SetDayOfTheWeekModal.jsx","features/teacherClasses/SetCourseResourceSeqNo.jsx","app/common/modals/CodeModal.jsx","features/teacherClasses/TeacherClassForm.tsx","features/assistants/AssistantClassesForm.tsx","features/assistants/AssistantClassForm.tsx","features/assistants/AssistantTopicsForm.tsx","features/assistants/AssistantTopicForm.tsx","features/pythonProblems/dashboard/PythonProblemList.tsx","features/pythonProblems/dashboard/PythonProblemDashboard.tsx","app/models/pythonProblem.ts","features/pythonProblems/solution/PythonProblemSolution.tsx","features/pythonProblems/form/PythonProblemForm.tsx","features/pythonTestCases/PythonTestCaseList.tsx","features/pythonTestCases/PythonTestCaseForm.tsx","app/models/courseLesson.ts","features/lesson/AttendanceForm.tsx","features/lesson/AssistantAttendanceForm.tsx","features/assignments/EditProblemForm.jsx","features/assignments/AssignmentProblemModal.jsx","features/assignments/EditProblemLinkForm.jsx","features/assignments/AddProblemAttachForm.jsx","features/assignments/AddAssignmentResourceText.jsx","features/assignments/AddAssignmentResourceLink.jsx","features/assignments/AddAssignmentResourceAttach.jsx","features/assignments/SetAssignmentResourceSeqNo.jsx","features/assignments/AssignmentResourceModal.jsx","features/assignments/PickFromWorkbookForm.jsx","features/assignments/SetAssignmentSeqNo.jsx","features/assignments/SetAssignmentDeadline.jsx","features/assignments/SetAnalysisUrlModal.jsx","features/assignments/AssignmentContentForm.tsx","features/lesson/StudentSubmissionsModal.jsx","features/assignments/AdminAssignmentForm.tsx","features/assignments/AssistantAssignmentForm.tsx","features/studentClasses/StudentClassesform.tsx","features/studentClasses/StudentClassInfo.jsx","features/studentClasses/StudentClassForm.tsx","features/parentClasses/ParentClassesForm.tsx","features/lesson/SubmitCodeModal.jsx","features/lesson/SubmitAttachModal.jsx","features/lesson/LastSubmitModal.jsx","features/assignments/StudentAssignmentForm.tsx","features/users/InquiriesForm.tsx","features/lesson/TeacherGradeModal.jsx","features/lesson/StudentSubmissions.tsx","features/lesson/AddLessonResourceText.jsx","features/lesson/AddLessonResourceLink.jsx","features/lesson/AddLessonResourceAttach.jsx","features/lesson/LessonResourceModal.jsx","features/lesson/UpdateLesson.jsx","features/lesson/SetLessonResourceSeqNo.jsx","features/lesson/TeacherLessonContentForm.tsx","features/lesson/AssistantLessonContentForm.tsx","features/lesson/StudentLessonContentForm.tsx","features/lesson/AdminLessonContentForm.tsx","features/qa/AddQuestionModal.jsx","features/helper/DateHelper.js","features/qa/TeacherQAForm.tsx","features/qa/AssistantQAForm.tsx","features/qa/StudentQAForm.tsx","features/qa/AddAnswerModal.jsx","features/qa/UpdateAnswerModal.jsx","features/qa/TeacherQuestionForm.tsx","features/qa/AssistantQuestionForm.tsx","features/qa/StudentQuestionForm.tsx","features/topics/TopicsForm.tsx","features/topics/NewTopicForm.tsx","features/topics/NewTopicItemLink.jsx","features/topics/SetTopicModal.jsx","features/topics/SetTopicItemCategory.jsx","features/topics/SetTopicItemSeqNo.jsx","features/topics/SetTopicItemConcepts.jsx","features/topics/SetTopicItem.jsx","features/topics/AttachAnalysisModal.jsx","features/topics/SubmitCodeModal.jsx","features/topics/EditAnalysisContentModal.jsx","features/topics/LinkAnalysisModal.jsx","features/topics/TopicForm.tsx","features/teacherClasses/SetCourseTopicsForm.tsx","features/teacherClasses/SetCourseTopicItems.tsx","features/topics/ShowCourseTopicItems.tsx","features/topics/LastSubmitModal.jsx","features/topics/StudentSubmitCodeModal.jsx","features/topics/ShowStudentCourseTopicItems.tsx","features/topics/StudentSubmissionsModal.jsx","features/topics/ShowItemInfo.jsx","features/topics/ShowTeacherCourseTopicItems.tsx","features/qa/QuestionsForm.tsx","features/qa/TAQuestionsForm.tsx","features/topics/AddDiscussionModal.jsx","features/topics/TopicItemDiscussForm.tsx","features/topics/UpdateMessageModal.jsx","features/topics/TopicItemDiscussTeacherForm.tsx","features/discussions/DiscussionsForm.tsx","features/discussions/CourseDiscussionsForm.tsx","features/assignments/AddDiscussionModal.jsx","features/assignments/AssignmentDiscussForm.tsx","app/layout/App.tsx","serviceWorker.ts","index.tsx","app/layout/ScrollToTop.tsx"],"names":["axios","defaults","baseURL","process","interceptors","request","use","config","token","window","localStorage","getItem","headers","Authorization","error","Promise","reject","response","undefined","message","toast","status","data","history","push","String","includes","removeItem","info","method","errors","hasOwnProperty","responseBody","requests","url","get","then","body","post","put","delete","PythonProblems","list","id","create","pythonProblem","update","solve","code","PythonTestCases","pythonTestCase","User","current","login","user","register","changePassword","oldPassword","newPassword","setProfile","profile","fbLogin","accessToken","gLogin","studentCourses","teacherCourses","assistantCourses","parentCourses","Users","userName","setUserInfo","userInfo","setParentInfo","parentEmail","parentFirstName","parentLastName","setRoles","roles","removeUser","setUserActive","active","changeUserEmail","email","resetPassword","password","getStudentCourses","childCourses","Roles","Courses","activelist","courseCode","createNewCourse","course","editCourse","toggleActive","addCourseAssistant","removeCourseAssistant","addCourseStudent","removeCourseStudent","Course","studentcontent","content","setDayOfTheWeek","dayOfTheWeek","setTimePeriod","timePeriod","setNotice","notice","addResource","title","addResourceAttach","file","formData","FormData","append","removeResource","resourceId","addLesson","topic","date","setResourceSeqNo","seqNo","studentReport","Lesson","getAttendances","lessonId","setAttendance","attendingCode","getLesson","setVideoUrl","setLesson","lessonStudentContent","lessonContent","filename","blob","Subjects","createNewSubject","subject","Teachers","Assistants","Students","Assignments","assignmentStudentContent","assignmentContent","addProblem","description","deadline","submitMode","addPickProblem","courseTopicId","topicItemId","addProblemAttach","setSeqNo","assignmentId","setDeadline","setAnalysisUrl","analysisUrl","updateProblem","problemId","updatePickProblem","removeProblem","submitCode","remark","submitAttach","studentAssignmentContent","getStudentSubmissions","getProblem","setTeacherGrade","grade","teacherRemark","getDiscussions","addDiscussion","Inquiries","addInquiry","phone","getInquiries","setInquiryChecked","NumberPuzzles","ranks","expression","QA","teacherInfo","studentInfo","questionInfo","questionId","addQuestion","isPrivate","addAnswer","updateAnswer","answerId","getQuestions","getTAQuestions","Topic","assistantlist","addTopic","name","subjectCode","hasConcepts","hasAnalysis","hasCode","isSeparatePage","isWorkbook","setTopic","topicId","getTopic","getTopicItems","addTopicItem","category","seqNoLink","setTopicItemCategory","setTopicItemSeqNo","setTopicItemConcepts","concepts","setTopicItem","attachAnalysis","setTopicItemAnalysisContent","setTopicItemAnalysisLink","CourseTopic","getCourseTopics","setCourseTopic","isAdded","getCourseTopicItems","addCourseTopicItem","removeCourseTopicItem","getCourseTopic","getTeacherCourseTopic","getStudentCourseTopic","toggleConcepts","showConcepts","toggleAnalysis","showAnalysis","toggleCode","showCode","getSubmissions","updateDiscussion","discussionId","Discussion","discussions","courseDiscussions","courseId","Achievement","getAchievements","addAchievement","updateAchievement","Announcement","getAnnouncements","getActiveAnnouncements","addAnnouncement","updateAnnouncement","setActive","PythonProblemStore","rootStore","this","pythonProblemRegistry","pythonTestCases","cases","i","length","oneCase","Array","from","values","sort","a","b","pythonProblems","Math","max","apply","map","o","observable","Map","computed","action","async","loading","agent","runInAction","forEach","set","editMode","getPythonProblem","toJS","submitting","result","success","modalStore","openModal","userStore","pythonUserAnswers","firstName","lastName","city","answer","console","log","replaceTestCase","filter","x","ModalStore","shallow","open","modal_class","modal","CommonStore","reaction","setItem","appLoaded","UserStore","commonStore","setToken","closeModal","setError","fbLoading","gLoading","userProfile","cs","courses","UsersStore","userRegistry","toLowerCase","user_list","getUser","userSelected","introduction","age","wechat","RoleStore","CourseStore","ct","courseContent","courseResource","courseResources","lesson","lessons","resource","find","CoursesStore","SubjectStore","subjects","TeacherStore","teachers","NumberPuzzleStore","userRanks","numberPuzzle","location","reload","StudentStore","students","LessonStore","attendances","parseInt","Date","lessonResource","lessonResources","lt","AssignmentStore","ac","problem","assignments","resources","assignment","studentAssignments","studentRemark","attach","attachment","attachmentId","attachmentUrl","studentAssign","submissions","studentSubmissions","currentProblem","submission","assignmentResource","dis","discussion","InquiryStore","iqs","inquiries","inquiry","checked","QAStore","qi","qaInfo","qst","currentQuestion","question","questions","answers","ans","qs","taQuestions","TopicStore","ts","topics","currentTopic","topicItems","topicItem","analysisCloudinaryId","analysisContent","items","CourseTopicStore","cts","ctis","topicitemId","teacherTopic","studentTopic","submitRemark","sms","messageId","DiscussionStore","AchievementStore","as","achievements","achievement","AnnouncementStore","announcements","announcement","AssistantStore","assistants","RootStoreContext","createContext","pythonProblemStore","usersStore","roleStore","courseStore","coursesStore","subjectStore","teacherStore","assistantStore","studentStore","lessonStore","assignmentStore","numberPuzzleStore","inquiryStore","qaStore","topicStore","courseTopicStore","discussionStore","achievementStore","announcementStore","LoadingComponent","inverted","spinner","text","observer","useContext","useState","show","setShow","useEffect","Modal","onHide","backdrop","dialogClassName","Header","closeButton","Title","text-align","Body","Footer","className","HomeBanner","Jumbotron","Button","variant","size","href","slice","idx","Card","key","parse","HomeAbout","Container","Row","Col","sm","HomePage","fluid","BeginnerClassTree","courseName","courseLevel","Recommendation","Preview","Description","image","link","RegularBeginner","ListGroup","classList","Item","md","Image","src","rounded","IntermediateClassTree","RegularIntermediate","AdvancedClassTree","RegularAdvanced","ChallengingClassTree","Tabs","fill","justify","Tab","eventKey","Beginner","Intermediate","Advanced","Challenging","NotFound","style","color","Text","to","Director","staffId","staffName","staffTitle","InstructorsLeft","Staff","june","staffList","initialValues","now","toISOString","substring","EditAchievementModal","setValues","setSubmitting","EditorState","createEmpty","editorState","setEditorState","blocksFromHTML","htmlToDraft","state","ContentState","createFromBlockArray","contentBlocks","entityMap","createWithContent","handleChange","event","target","value","Form","noValidate","lg","Label","Control","required","type","onChange","toolbarClassName","wrapperClassName","editorClassName","onEditorStateChange","editState","getCurrentContent","onClick","preventDefault","stopPropagation","currentContent","markup","draftToHtml","convertToRaw","finally","disabled","Spinner","animation","role","aria-hidden","EditAnnouncementModal","handleSetActive","ErrorMessage","Alert","onClose","dismissible","Heading","Object","keys","flat","err","verificationError","emptyPhoneOrEmail","emptyDescription","intialSubmitErrorInfo","Contact","submitError","setSubmitError","valueErrors","setValueErrors","rel","alt","Group","controlId","column","placeholder","rows","catch","statusText","submitErrorInfo1","Component","component","rest","isLoggedIn","render","props","AppUser","init","assign","UserModal","loadUser","setUser","setLoading","u","loadValues","readOnly","Check","label","SetParentModal","setParent","newParentEmail","setNewParentEmail","newParentFirstName","setNewParentFirstName","newParentLastName","setNewParentLastName","isValid","setIsValid","CoursesTakenModal","takenCourses","setTakenCourses","startDate","index","Subtitle","endDate","CheckChildModal","getChildCourses","studentFullName","allRoles","SetRolesModal","roleValues","setRoleValues","setUserRoles","isChanged","setIsChanged","rValues","indexOf","handleRolesChange","inline","defaultChecked","userRoles","ResetPassword","setPassword","rePassword","setRePassword","users","loadUsers","searchName","setSearchName","searchEmail","setSearchEmail","searchRole","setSearchRole","searchActive","setSearchActive","filteredUsers","fullName","parentFullName","toString","marginTop","Table","striped","bordered","ResetPasswordModal","confirmAlert","buttons","match","params","ClassInfo","level","courseInfo","display","session","numOfLessons","teacher","loadActiveCourses","hover","e","GoogleLoginSegment","onSuccess","onFailure","clientId","renderProps","buttonText","isSignedIn","cookiePolicy","invalidEmail","emptyPassword","emptyField","invalidPassword","rePasswordNotMatch","RegisterForm","ChangePasswordModal","setOldPassword","children","logout","getInquires","Navbar","sticky","collapseOnSelect","expand","bg","Brand","NavLink","exact","width","height","Toggle","aria-controls","Collapse","Nav","Link","NavDropdown","renderMenuOnMount","some","viewed","NavBar","getUserRanks","userRank","number","rank","keyImages","imageStyle","NumberPuzzleSolve","valid","setValid","setExpression","digits","setDigits","loadNumberPuzzle","solvePuzzle","completed","setCompleted","split","digit","available","getFileName","di","checkExpression","validateExpression","bEnd","bStart","calcExpression","convert2List","stack","item","strNum1","pop","strNum2","Number","isNaN","num1","num2","strResult","shift","op","strNum","num","char","xs","newExpr","ProfileForm","setUserProfile","currentUser","setCurrentUser","isStudent","setIsStudent","subjectName","emptyCode","invalidLevel","emptyName","NewSubjectModal","newSubject","trim","loadSubjects","y","useHistory","loadCourses","searchSubject","setSearchSubject","span","offset","ContentModal","Parser","AttendanceModal","loadLesson","loadAttendances","newAttendances","setNewAttendances","student","attendance","param","renderSwitch","loadCourseContent","numOfAttendances","numOfAssignments","initialTeacher","emptyCourseName","invalideNumOfLessons","loadCourse","loadTeachers","setTeacher","substr","teacherUserName","isSuccess","initialSubject","subjectNotSelected","emptyStartDate","emptyEndDate","teacherNotSelected","setSubject","initialAssistants","loadAssistants","courseAssistants","setCourseAssistants","searchTerm","setSearchTerm","btmHeight","setBtmHeight","loadCourseAssistants","defaultSize","position","assistant","assisant","addAssistant","initialStudents","loadStudents","courseStudents","setCourseStudents","loadCourseStudents","addStudent","getStudentReport","studentLesson","numOfSubmissions","numOfGreat","numOfAcceptable","numOfProblematic","numOfUnacceptable","numOfUngraded","reduce","prev","next","toggleCourseActive","setAssistants","setStudents","toLocaleDateString","newActive","loadTeacherCourses","goBack","getLevel","AddClassResource","addCourseResource","setTitle","baseStyle","flex","flexDirection","alignItems","padding","borderWidth","borderRadius","borderColor","borderStyle","backgroundColor","outline","transition","activeStyle","acceptStyle","rejectStyle","AddClassResourceAttach","addCourseResourceAttach","useDropzone","accept","maxFiles","onDrop","acceptedFiles","getRootProps","getInputProps","isDragActive","isDragAccept","isDragReject","useMemo","AddLesson","currentDate","addCourseLesson","setDate","newTimePeriod","setNewTimePeriod","SetTimePeriodModal","saveTimePeriod","SetNoticeModal","saveNotice","SetVideoModal","saveVideoUrl","newUrl","setNewUrl","SetDayOfTheWeekModal","saveDayOfTheWeek","newDayOfTheWeek","setNewDayOfTheWeek","SetCourseResourceSeqNo","courseResourceId","newSeqNo","setNewSeqNo","CodeModal","onValueChange","highlight","languages","js","fontFamily","fontSize","AddClassResourceText","AddClassResourceLink","nonSepTopics","Fragment","sepTopics","loadAssistantCourses","loadAssistantTopics","loadPythonProblems","PythonProblemValues","def","dateCreated","PythonTestCase","input","testCode","output","resultType","pythonProblemId","PythonProblemSolutionFormValues","loadPythonProblem","solvePythonProblem","setPythonProblem","setCode","maxSeqNo","createPythonProblem","editPythonProblem","ePythonProblem","newPythonProblem","uuid","deletePythonTestCase","setOpen","setTarget","testcase","currentTarget","onSubmit","PythonTestCaseForm","editPythonTestCase","createPythonTestCase","testCase","setTestCase","probId","caseId","aTestCase","newTestCase","CourseLesson","initialLesson","AttendanceForm","currentLesson","setCurrentLesson","absentCheck","setAbsentCheck","handleSetAttendanceLate","newValues","handleSetAttendanceNotice","handleSetAttendanceAbsent","handleSetAttendanceNA","handleSetAttendanceOnTime","AssistantAttendanceForm","EditProblemForm","AssignmentProblemModal","EditProblemLinkForm","AddProblemAttachForm","setFile","AddAssignmentResourceText","addAssignmentResourceText","AddAssignmentResourceLink","addAssignmentResourceLink","AddAssignmentResourceAttach","addAssignmentResourceAttach","SetAssignmentResourceSeqNo","assignmentResourceId","AssignmentResourceModal","PickFromWorkbookForm","SetAssignmentSeqNo","SetAssignmentDeadline","newDeadline","setNewDeadline","SetAnalysisUrlModal","newAnalysisUrl","setNewAnalysisUrl","loadAssignmentContent","numOfStudentAssignments","StudentSubmissionsModal","loadStudentSubmissions","studentName","AdminAssignmentForm","moment","format","AssistantAssignmentForm","loadStudentCourses","StudentClassInfo","loadCourseStudentContent","loadParentCourses","studentUserName","SubmitCodeModal","setRemark","SubmitAttachModal","LastSubmitModal","loadStudentAssignmentContent","TeacherGradeModal","newGrade","setNewGrade","newRemark","setNewRemark","AddLessonResourceText","addLessonResourceText","AddLessonResourceLink","addLessonResourceLink","AddLessonResourceAttach","addLessonResourceAttach","LessonResourceModal","UpdateLesson","newTopic","setNewTopic","newDate","setNewDate","checkFormStatus","SetLessonResourceSeqNo","lessonResourceId","loadLessonContent","AssistantLessonContentForm","loadLessonStudentContent","StudentLessonContentForm","AdminLessonContentForm","AddQuestionModal","setIsPrivate","convertUTCDateToLocalDataString","objDate","getTime","getTimezoneOffset","convertUTCDateToLocalTimeString","toTimeString","loadQATeacherInfo","userFullName","lastDateReplied","lastReplier","loadQAStudentInfo","AddAnswerModal","UpdateAnswerModal","loadQuestion","loadTopics","emptyTopicName","handleValueChange","handleCheckedChange","NewTopicItemLink","topicName","SetTopicModal","newName","setNewName","newHasConcepts","setNewHasConcepts","newHasAnalysis","setNewHasAnalysis","newHasCode","setNewHasCode","newIsSeparatePage","setNewIsSeparatePage","newIsWorkbook","setNewIsWorkbook","newSubmitMode","setNewSubmitMode","SetTopicItemCategory","newCategory","setNewCategory","SetTopicItemSeqNo","newSeqNoLink","setNewSeqNoLink","SetTopicItemConcepts","newConcepts","setNewConcepts","SetTopicItem","newTitle","setNewTitle","AttachAnalysisModal","EditAnalysisContentModal","LinkAnalysisModal","searchCategory","setSearchCategory","searchSeqNo","setSearchSeqNo","searchTitle","setSearchTitle","searchConcept","setSearchConcept","filter_problems","problems","SetCourseTopicsForm","loadCourseTopics","newCourseTopics","setNewCourseTopics","courseTopic","HandleRemoveCourseTopic","HandleAddCourseTopic","initialItems","loadCourseTopicItems","toggleShowConcepts","toggleShowAnalysis","toggleShowCode","loadTopicItems","courseTopicItems","setCourseTopicItems","delay","ms","res","setTimeout","addAll","courseTopicItem","addItem","newItems","handleHideConcepts","handleShowConcepts","handleHideAnalysis","handleShowAnalysis","handleHideCode","handleShowCode","loadCourseTopic","StudentSubmitCodeModal","loadStudentCourseTopic","showAll","setShowAll","submitAttachUrl","ShowItemInfo","loadTeacherCourseTopic","AddDiscussionModal","loadDiscussions","UpdateMessageModal","updateMessage","toLocaleString","getCourseDiscussions","assignnmentId","withRouter","setAppLoaded","path","ClassesForm","Achievements","AdminAchievements","AdminAnnouncements","PythonProblemDashboard","PythonProblemSolution","PythonProblemForm","PythonTestCaseList","NumberPuzzleRanks","UsersForm","SubjectsForm","AdminClassesForm","NewClassForm","AdminClassInfo","EditClassForm","ClassAssistants","ClassStudents","AdminClassForm","TeacherClassesForm","TeacherClassForm","AssistantClassesForm","AssistantClassForm","UserForm","AssignmentContentForm","TeacherLessonContentForm","StudentClassesform","StudentClassForm","ParentClassesform","StudentAssignmentForm","InquiriesForm","StudentSubmissions","TeacherClassInfo","TeacherQAForm","AssistantQAForm","StudentQAForm","TeacherQuestionForm","AssistantQuestionForm","StudentQuestionForm","TopicsForm","NewTopicForm","TopicForm","AssistantTopicsForm","AssistantTopicForm","SetCourseTopicItems","ShowCourseTopicItems","ShowStudentCourseTopicItems","ShowTeacherCourseTopicItems","QuestionsForm","TAQuestionsForm","TopicItemDiscussForm","TopicItemDiscussTeacherForm","DiscussionsForm","CourseDiscussionsForm","AssignmentDiscussForm","Boolean","hostname","createBrowserHistory","ReactDOM","pathname","useLocation","scrollTo","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"mhBA8BAA,IAAMC,SAASC,QAAUC,OAEzBH,IAAMI,aAAaC,QAAQC,KACzB,SAAAC,GACE,IAAMC,EAAQC,OAAOC,aAAaC,QAAQ,OAE1C,OADIH,IAAOD,EAAOK,QAAQC,cAAf,iBAAyCL,IAC7CD,KAET,SAAAO,GACE,OAAOC,QAAQC,OAAOF,MAI1Bd,IAAMI,aAAaa,SAASX,SAAIY,GAAW,SAAAJ,GAGzC,GAAsB,kBAAlBA,EAAMK,UAAgCL,EAAMG,SAE9C,OADAG,IAAMN,MAAM,6CACLC,QAAQC,OAAOF,GAL0B,MAORA,EAAMG,SAAxCI,EAP0C,EAO1CA,OAAQC,EAPkC,EAOlCA,KAAMf,EAP4B,EAO5BA,OAAQK,EAPoB,EAOpBA,QAsB9B,MArBe,MAAXS,GACFE,GAAQC,KAAK,aAGF,MAAXH,GACAI,OAAOb,EAAQ,qBAAqBc,SAAS,uBAE7CjB,OAAOC,aAAaiB,WAAW,OAC/BJ,GAAQC,KAAK,KACbJ,IAAMQ,KAAK,kDAGA,MAAXP,GACkB,QAAlBd,EAAOsB,QACPP,EAAKQ,OAAOC,eAAe,OAE3BR,GAAQC,KAAK,aAEA,MAAXH,GACFD,IAAMN,MAAM,oDAERA,EAAMG,YAGd,I,6wBAAMe,GAAe,SAACf,GAAD,OAA6BA,EAASK,MAErDW,GACC,SAACC,GAAD,OAAiBlC,IAAMmC,IAAID,GAAKE,KAAKJ,KADtCC,GAEE,SAACC,EAAaG,GAAd,OAA2BrC,IAAMsC,KAAKJ,EAAKG,GAAMD,KAAKJ,KAFxDC,GAGC,SAACC,EAAaG,GAAd,OAA2BrC,IAAMuC,IAAIL,EAAKG,GAAMD,KAAKJ,KAHtDC,GAIC,SAACC,GAAD,OAAiBlC,IAAMwC,OAAON,GAAKE,KAAKJ,KAYzCS,GAAiB,CACrBC,KAAM,kBAAiCT,GAAa,oBACpDL,KAAM,SAACe,GAAD,OAAgBV,GAAA,0BAAgCU,KACtDC,OAAQ,SAACC,GAAD,OACNZ,GAAc,kBAAmBY,IACnCC,OAAQ,SAACD,GAAD,OACNZ,GAAA,0BAAgCY,EAAcF,IAAME,IACtDL,OAAQ,SAACG,GAAD,OAAgBV,GAAA,0BAAgCU,KACxDI,MAAO,SAACJ,EAAYK,GAAb,OACLf,GAAa,kBAAmB,CAAEU,KAAIK,WAGpCC,GAAkB,CACtBL,OAAQ,SAACM,GAAD,OACNjB,GAAc,mBAAoBiB,IACpCJ,OAAQ,SAACI,GAAD,OACNjB,GAAA,2BAAiCiB,EAAeP,IAAMO,IACtDV,OAAQ,SAACG,GAAD,OAAgBV,GAAA,2BAAiCU,MAGvDQ,GAAO,CACXC,QAAS,kBAAsBnB,GAAa,UAC5CoB,MAAO,SAACC,GAAD,OACLrB,GAAA,cAA6BqB,IAC/BC,SAAU,SAACD,GAAD,OACRrB,GAAA,iBAAgCqB,IAClCE,eAAgB,SAACC,EAAqBC,GAAtB,OACdzB,GAAA,uBAAsC,CAACwB,cAAaC,iBACtDC,WAAY,SAACC,GAAD,OACV3B,GAAA,mBAAiC2B,IACnCC,QAAS,SAACC,GAAD,OACP7B,GAAA,iBAAgC,CAAC6B,iBACnCC,OAAQ,SAACD,GAAD,OACN7B,GAAA,eAA8B,CAAC6B,iBACjCE,eAAgB,kBAA8B/B,GAAa,yBAC3DgC,eAAgB,kBAA8BhC,GAAa,yBAC3DiC,iBAAkB,kBAA8BjC,GAAa,2BAC7DkC,cAAe,kBAAoClC,GAAa,yBAG5DmC,GAAQ,CACZ1B,KAAM,kBAA2BT,GAAa,WAC9CL,KAAM,SAACyC,GAAD,OAAyCpC,GAAA,iBAAuBoC,KACtEC,YAAa,SAACC,GAAD,OACXtC,GAAA,yBAA+BsC,EAASF,UAAYE,IACtDC,cAAe,SAACH,EAAkBI,EAAqBC,EAAyBC,GAAjE,OACb1C,GAAa,mBAAoB,CAACoC,WAAUI,cAAaC,kBAAiBC,oBAC5EC,SAAU,SAACP,EAAkBQ,GAAnB,OACR5C,GAAa,kBAAmB,CAACoC,WAAUQ,WAC7CC,WAAY,SAACT,GAAD,OACVpC,GAAA,4BAAkCoC,KACpCU,cAAe,SAACV,EAAkBW,GAAnB,OACb/C,GAAa,mBAAoB,CAACoC,WAAUW,YAC9CC,gBAAiB,SAACZ,EAAkBa,GAAnB,OACfjD,GAAa,qBAAsB,CAACoC,WAAUa,WAChDC,cAAe,SAACd,EAAkBe,GAAnB,OACbnD,GAAa,uBAAwB,CAACoC,WAAUe,cAClDC,kBAAmB,SAAChB,GAAD,OACnBpC,GAAA,gCAAsCoC,KACtCiB,aAAc,SAACjB,GAAD,OACZpC,GAAA,8BAAoCoC,MAGlCkB,GAAQ,CACZ7C,KAAM,kBAAwBT,GAAa,YAGvCuD,GAAU,CACd9C,KAAM,kBAA8BT,GAAa,mBACjDwD,WAAY,kBAA8BxD,GAAa,wBACvDL,KAAK,SAAC8D,GAAD,OAA8CzD,GAAA,kBAAwByD,KAC3EC,gBAAiB,SAACC,GAAD,OAAwB3D,GAAc,WAAY2D,IACnEC,WAAY,SAACD,GAAD,OAAqB3D,GAAa,gBAAiB2D,IAC/DE,aAAa,SAACJ,EAAoBV,GAArB,OAAyC/C,GAAa,wBAAyB,CAACyD,aAAYV,YACzGe,mBAAmB,SAACL,EAAoBrB,GAArB,OAA0CpC,GAAc,wBAAyB,CAACyD,aAAYrB,cACjH2B,sBAAsB,SAACN,EAAoBrB,GAArB,OAA0CpC,GAAc,2BAA4B,CAACyD,aAAYrB,cACvH4B,iBAAiB,SAACP,EAAoBrB,GAArB,OAA0CpC,GAAc,sBAAuB,CAACyD,aAAYrB,cAC7G6B,oBAAoB,SAACR,EAAoBrB,GAArB,OAA0CpC,GAAc,yBAA0B,CAACyD,aAAYrB,eAG/G8B,GAAS,CACbC,eAAe,SAACV,GAAD,OAAiDzD,GAAA,iCAAuCyD,KACvGW,QAAQ,SAACX,GAAD,OAAiDzD,GAAA,kBAAwByD,KACjFY,gBAAiB,SAACZ,EAAoBa,GAArB,OACftE,GAAa,0BAA2B,CAACyD,aAAYa,kBACvDC,cAAe,SAACd,EAAoBe,GAArB,OACbxE,GAAa,wBAAyB,CAACyD,aAAYe,gBACrDC,UAAW,SAAChB,EAAoBiB,GAArB,OACT1E,GAAa,oBAAqB,CAACyD,aAAYiB,YACjDC,YAAa,SAAClB,EAAoBmB,EAAe3E,EAAamE,GAAjD,OACXpE,GAAc,sBAAuB,CAACyD,aAAYmB,QAAO3E,MAAKmE,aAChES,kBAAmB,SAACpB,EAAoBmB,EAAeE,GACrD,IAAIC,EAAW,IAAIC,SAInB,OAHAD,EAASE,OAAO,aAAcxB,GAC9BsB,EAASE,OAAO,QAASL,GACzBG,EAASE,OAAO,OAAQH,GACjB/G,IAAMsC,KAAgB,4BAA6B0E,EAAU,CAClEpG,QAAS,CAAC,eAAgB,0BAG9BuG,eAAgB,SAACzB,EAAoB0B,GACnCnF,GAAc,yBAA0B,CAACyD,aAAY0B,gBAEvDC,UAAW,SAAC3B,EAAoB4B,EAAeC,EAAYd,GAAhD,OACTxE,GAAc,oBAAqB,CAACyD,aAAY4B,QAAOC,OAAMd,gBAC/De,iBAAkB,SAACJ,EAAoBK,GACrCxF,GAAa,2BAA4B,CAACmF,aAAYK,WAExDC,cAAc,SAAChC,EAAoBrB,GAArB,OACZpC,GAAA,gCAAsCyD,EAAtC,YAAoDrB,MAGlDsD,GAAS,CACbC,eAAe,SAACC,GAAD,OACb5F,GAAA,8BAAoC4F,KACtCC,cAAe,SAACD,EAAkBxD,EAAkB0D,GAArC,OACb9F,GAAa,wBAAyB,CAAC4F,WAAUxD,WAAU0D,mBAC7DC,UAAU,SAACH,GAAD,OACR5F,GAAA,kBAAwB4F,KAC1BI,YAAY,SAACJ,EAAkB3F,GAAnB,OACVD,GAAa,iBAAkB,CAAC4F,WAAU3F,SAC5CgG,UAAW,SAACL,EAAkBJ,EAAeH,EAAeC,EAAcd,GAA/D,OACTxE,GAAa,oBAAqB,CAAC4F,WAAUJ,QAAOH,QAAOC,OAAMd,gBACnE0B,qBAAqB,SAACN,GAAD,OACnB5F,GAAA,gCAAsC4F,KACxCO,cAAc,SAACP,GAAD,OAA+C5F,GAAA,yBAA+B4F,KAC5FjB,YAAa,SAACiB,EAAkBhB,EAAe3E,EAAamE,GAA/C,OACXpE,GAAc,sBAAuB,CAAC4F,WAAUhB,QAAO3E,MAAKmE,aAC9DS,kBAAmB,SAACe,EAAkBQ,EAAkBC,GACtD,IAAItB,EAAW,IAAIC,SAInB,OAHAD,EAASE,OAAO,WAAYW,GAC5Bb,EAASE,OAAO,QAASmB,GACzBrB,EAASE,OAAO,OAAQoB,GACjBtI,IAAMsC,KAAgB,gCAAiC0E,EAAU,CACtEpG,QAAS,CAAC,eAAgB,0BAG9BuG,eAAgB,SAACU,EAAkBT,GACjCnF,GAAc,yBAA0B,CAAC4F,WAAUT,gBAErDI,iBAAkB,SAACJ,EAAoBK,GACrCxF,GAAa,2BAA4B,CAACmF,aAAYK,YAIpDc,GAAW,CACf7F,KAAM,kBAA2BT,GAAa,cAC9CuG,iBAAkB,SAACC,GAAD,OAAuBxG,GAAc,YAAawG,KAGhEC,GAAW,CACfhG,KAAM,kBAA2BT,GAAa,eAG1C0G,GAAa,CACjBjG,KAAM,kBAA6BT,GAAa,iBAG5C2G,GAAW,CACflG,KAAM,kBAA2BT,GAAa,eAG1C4G,GAAc,CAClBC,yBAAyB,SAACjB,GAAD,OACzB5F,GAAA,qCAA2C4F,KAC3CkB,kBAAkB,SAAClB,GAAD,OAClB5F,GAAA,8BAAoC4F,KACpCmB,WAAY,SAACnB,EAAkBhB,EAAe3E,EAAa+G,EAAqBxB,EAAeyB,EAC7FC,GADU,OAEVlH,GAAc,qBAAsB,CAAC4F,WAAUhB,QAAO3E,MAAK+G,cAAaxB,QAAOyB,WAAUC,gBAC3FC,eAAgB,SAACvB,EAAkBhB,EAAewC,EAAuBC,EACvE7B,EAAeyB,EAAkBC,GADnB,OAEdlH,GAAc,yBAA0B,CAAC4F,WAAUhB,QAAOwC,gBAAeC,cAAa7B,QAAOyB,WAAUC,gBACzGI,iBAAkB,SAAC1B,EAAkBhB,EAAeY,EAAeyB,EAAkBC,EAAoBpC,GACvG,IAAIC,EAAW,IAAIC,SAOnB,OANAD,EAASE,OAAO,WAAYW,GAC5Bb,EAASE,OAAO,QAASL,GACzBG,EAASE,OAAO,QAASO,GACzBT,EAASE,OAAO,WAAYgC,GAC5BlC,EAASE,OAAO,aAAciC,GAC9BnC,EAASE,OAAO,OAAQH,GACjB/G,IAAMsC,KAAkB,2BAA4B0E,EAAU,CACnEpG,QAAS,CAAC,eAAgB,0BAG9B4I,SAAU,SAACC,EAAsBhC,GAC/BxF,GAAa,wBAAyB,CAACwH,eAAchC,WAEvDiC,YAAa,SAACD,EAAsBP,GAClCjH,GAAa,2BAA4B,CAACwH,eAAcP,cAE1DS,eAAgB,SAACF,EAAsBG,GACrC3H,GAAa,8BAA+B,CAACwH,eAAcG,iBAE7DC,cAAe,SAACC,EAAmBjD,EAAe3E,EAAa+G,EAAqBxB,EAClFyB,EAAkBC,GADL,OAEblH,GAAa,wBAAyB,CAAC6H,YAAWjD,QAAO3E,MAAK+G,cAAaxB,QAAOyB,WAAUC,gBAC9FY,kBAAmB,SAACD,EAAmBjD,EAAewC,EAAuBC,EAC3E7B,EAAeyB,EAAkBC,GADhB,OAEjBlH,GAAa,4BAA6B,CAAC6H,YAAWjD,QAAOwC,gBAAeC,cAAa7B,QAAOyB,WAAUC,gBAC5Ga,cAAc,SAACF,GAAD,OACZ7H,GAAA,gCAAsC6H,KACxCG,WAAW,SAACH,EAAmBI,EAAgBlH,GAApC,OACTf,GAAc,0BAA2B,CAAC6H,YAAWI,SAAQlH,UAC/DmH,aAAc,SAACL,EAAmBI,EAAgBnD,GAChD,IAAIC,EAAW,IAAIC,SAInB,OAHAD,EAASE,OAAO,YAAa4C,GAC7B9C,EAASE,OAAO,SAAUgD,GAC1BlD,EAASE,OAAO,OAAQH,GACjB/G,IAAMsC,KAAyB,4BAA6B0E,EAAU,CAC3EpG,QAAS,CAAC,eAAgB,0BAG9BwJ,yBAAyB,SAACvC,GAAD,OACvB5F,GAAA,sCAA4C4F,KAC9CwC,sBAAuB,SAACP,GAAD,OACrB7H,GAAA,mCAAyC6H,KAC3CQ,WAAW,SAACR,GAAD,OACT7H,GAAA,+BAAqC6H,KACvCS,gBAAgB,SAACT,EAAmBzF,EAAkBmG,EAAeC,GAArD,OACdxI,GAAa,oCAAqC,CAAC6H,YAAWzF,WAAUmG,QAAOC,mBACjF7D,YAAa,SAACiB,EAAkBhB,EAAe3E,EAAamE,GAA/C,OACXpE,GAAc,2BAA4B,CAAC4F,WAAUhB,QAAO3E,MAAKmE,aACnES,kBAAmB,SAACe,EAAkBQ,EAAkBC,GACtD,IAAItB,EAAW,IAAIC,SAInB,OAHAD,EAASE,OAAO,WAAYW,GAC5Bb,EAASE,OAAO,QAASmB,GACzBrB,EAASE,OAAO,OAAQoB,GACjBtI,IAAMsC,KAAgB,qCAAsC0E,EAAU,CAC3EpG,QAAS,CAAC,eAAgB,0BAG9B4G,iBAAkB,SAACJ,EAAoBK,GACrCxF,GAAa,gCAAiC,CAACmF,aAAYK,WAE7DN,eAAgB,SAACU,EAAkBT,GACjCnF,GAAc,8BAA+B,CAAC4F,WAAUT,gBAE1DsD,eAAgB,SAACjB,GAAD,OAEdxH,GAAA,sCAA4CwH,KAC9CkB,cAAe,SAAClB,EAAsBtI,GAAvB,OACbc,GAAc,6BAA8B,CAACwH,eAActI,cAGzDyJ,GAAY,CAChBC,WAAW,SAACC,EAAe5F,EAAeoC,EAAe2B,GAA9C,OACThH,GAAc,iBAAkB,CAAC6I,QAAO5F,QAAOoC,QAAO2B,iBACxD8B,aAAa,kBAA2B9I,GAAa,eACrD+I,kBAAmB,SAACrI,GAAD,OAAgBV,GAAa,mBAAoB,CAACU,SAGjEsI,GAAgB,CACpBrJ,KAAM,kBAA8BK,GAAa,kBACjDiJ,MAAO,kBAA4BjJ,GAAa,wBAChDc,MAAO,SAACJ,EAAYwI,GAAb,OACLlJ,GAAa,gBAAiB,CAACU,KAAIwI,iBAGjCC,GAAK,CACTC,YAAa,SAAC3F,GAAD,OAA0CzD,GAAA,0BAAgCyD,KACvF4F,YAAa,SAAC5F,GAAD,OAA0CzD,GAAA,0BAAgCyD,KACvF6F,aAAc,SAACC,GAAD,OAAgDvJ,GAAA,2BAAiCuJ,KAC/FC,YAAa,SAAC/F,EAAoB4B,EAAeoE,EAAoBvK,GAAxD,OACXc,GAAc,kBAAmB,CAACyD,aAAY4B,QAAOoE,YAAWvK,aAClEwK,UAAW,SAACH,EAAoBrK,GAArB,OACTc,GAAc,gBAAiB,CAACuJ,aAAYrK,aAC9CyK,aAAc,SAACC,EAAkB1K,GAAnB,OACZc,GAAc,mBAAoB,CAAC4J,WAAU1K,aAC/C2K,aAAc,kBACZ7J,GAAa,kBACf8J,eAAgB,kBACd9J,GAAa,qBAGX+J,GAAQ,CACZtJ,KAAM,kBAAyBT,GAAa,YAC5CgK,cAAe,kBAAyBhK,GAAa,kBACrDiK,SAAU,SAACC,EAAcC,EACvBC,EAAsBC,EAAsBC,EAC5CC,EAAyBC,EAAqBtD,GAFtC,OAIRlH,GAAc,kBAAmB,CAACkK,OAAMC,cAAaC,cAAaC,cAAaC,UAC7EC,iBAAgBC,aAAYtD,gBAChCuD,SAAU,SAACC,EAAiBR,EAAcE,EAAsBC,EAC9DC,EAAkBC,EAAyBC,EAAqBtD,GADxD,OAERlH,GAAa,mBAAoB,CAAC0K,UAASR,OAAME,cAAaC,cAAaC,UACzEC,iBAAgBC,aAAYtD,gBAChCyD,SAAU,SAACD,GAAD,OACR1K,GAAA,uBAA6B0K,KAC/BE,cAAe,SAACF,GAAD,OACb1K,GAAA,wBAA8B0K,KAChCG,aAAc,SAACH,EAAiBI,EAAkBtF,EAAeuF,EAAmBnG,EAAeR,EAAiBnE,GAAtG,OACZD,GAAc,uBAAwB,CAAC0K,UAASI,WAAUtF,QAAOuF,YAAWnG,QAAOR,UAASnE,SAC9F+K,qBAAsB,SAACN,EAAiBrD,EAAqByD,GAAvC,OACpB9K,GAAa,2BAA4B,CAAC0K,UAASrD,cAAayD,cAClEG,kBAAmB,SAACP,EAAiBrD,EAAqB7B,EAAeuF,GAAtD,OACjB/K,GAAa,wBAAyB,CAAC0K,UAASrD,cAAa7B,QAAOuF,eACtEG,qBAAsB,SAACR,EAAiBrD,EAAqB8D,GAAvC,OACpBnL,GAAa,2BAA4B,CAAC0K,UAASrD,cAAa8D,cAClEC,aAAc,SAACV,EAAiBrD,EAAqBzC,EAAe3E,GAAtD,OACZD,GAAa,uBAAwB,CAAC0K,UAASrD,cAAazC,QAAO3E,SACrE+H,WAAW,SAACX,EAAqBtG,GAAtB,OACTf,GAAc,0BAA2B,CAACqH,cAAatG,UACzDsK,eAAgB,SAAChE,EAAqBvC,GACpC,IAAIC,EAAW,IAAIC,SAGnB,OAFAD,EAASE,OAAO,cAAeoC,GAC/BtC,EAASE,OAAO,OAAQH,GACjB/G,IAAMsC,KAAiB,8BAA+B0E,EAAU,CACrEpG,QAAS,CAAC,eAAgB,0BAG9B2M,4BAA6B,SAACZ,EAAiBrD,EAAqBjD,GAAvC,OAC3BpE,GAAa,iCAAkC,CAAC0K,UAASrD,cAAajD,aACxEmH,yBAA0B,SAACb,EAAiBrD,EAAqBM,GAAvC,OACxB3H,GAAa,8BAA+B,CAAC0K,UAASrD,cAAaM,kBAGjE6D,GAAc,CAClBC,gBAAgB,SAAChI,GAAD,OACdzD,GAAA,wBAA8ByD,KAChCiI,eAAgB,SAACjI,EAAoBiH,EAAiBiB,GAAtC,OACd3L,GAAa,+BAAgC,CAACyD,aAAYiH,UAASiB,aACrEC,oBAAqB,SAACxE,GAAD,OACnBpH,GAAA,8BAAoCoH,KACtCyE,mBAAoB,SAACzE,EAAuBC,GAAxB,OAClBrH,GAAc,wBAAyB,CAACoH,gBAAeC,iBACzDyE,sBAAuB,SAAC1E,EAAuBC,GAAxB,OACrBrH,GAAc,0BAA2B,CAACoH,gBAAeC,iBAC3D0E,eAAgB,SAAC3E,GAAD,OACdpH,GAAA,8BAAoCoH,KACtC4E,sBAAuB,SAAC5E,GAAD,OACrBpH,GAAA,qCAA2CoH,KAC7C6E,sBAAuB,SAAC7E,GAAD,OACvBpH,GAAA,qCAA2CoH,KAC3C8E,eAAgB,SAAC9E,EAAuBC,EAAqB8E,GAA7C,OACdnM,GAAa,8BAA+B,CAACoH,gBAAeC,cAAa8E,kBAC3EC,eAAgB,SAAChF,EAAuBC,EAAqBgF,GAA7C,OACdrM,GAAa,8BAA+B,CAACoH,gBAAeC,cAAagF,kBAC3EC,WAAY,SAAClF,EAAuBC,EAAqBkF,GAA7C,OACVvM,GAAa,0BAA2B,CAACoH,gBAAeC,cAAakF,cACvE9D,eAAgB,SAACrB,EAAuBC,GAAxB,OAEdrH,GAAA,uCAA6CoH,EAA7C,YAA8DC,KAChEqB,cAAe,SAACtB,EAAuBC,EAAqBnI,GAA7C,OACbc,GAAc,8BAA+B,CAACoH,gBAAeC,cAAanI,aAC5E8I,WAAW,SAACZ,EAAuBC,EAAqBY,EAAgBlH,GAA7D,OACTf,GAAc,2BAA4B,CAACoH,gBAAeC,cAAaY,SAAQlH,UACjFmH,aAAc,SAACd,EAAuBC,EAAqBY,EAAgBnD,GACzE,IAAIC,EAAW,IAAIC,SAKnB,OAJAD,EAASE,OAAO,gBAAiBmC,GACjCrC,EAASE,OAAO,cAAeoC,GAC/BtC,EAASE,OAAO,SAAUgD,GAC1BlD,EAASE,OAAO,OAAQH,GACjB/G,IAAMsC,KAAyB,6BAA8B0E,EAAU,CAC5EpG,QAAS,CAAC,eAAgB,0BAG9B6N,eAAgB,SAACpF,EAAuBC,GAAxB,OACdrH,GAAA,uCAA6CoH,EAA7C,YAA8DC,KAChEoF,iBAAkB,SAACrF,EAAuBC,EAAqBqF,EAAsBxN,GAAnE,OAChBc,GAAa,iCAAkC,CAACoH,gBAAeC,cAAaqF,eAAcxN,cAGxFyN,GAAa,CACjBC,YAAa,SAACxF,GAAD,OACXpH,GAAA,sCAA4CoH,KAC9CyF,kBAAmB,SAACC,GAAD,OACjB9M,GAAA,4CAAkD8M,MAGhDC,GAAc,CAClBC,gBAAiB,kBAA+BhN,GAAa,mBAC7DiN,eAAgB,SAACrI,EAAeU,EAAc0B,GAA9B,OACdhH,GAAc,oBAAqB,CAAC4E,QAAOU,OAAM0B,iBACnDkG,kBAAmB,SAACxM,EAAYkE,EAAeU,EAAc0B,GAA1C,OACjBhH,GAAa,uBAAwB,CAACU,KAAIkE,QAAOU,OAAM0B,kBAGrDmG,GAAe,CACnBC,iBAAkB,kBAAgCpN,GAAa,oBAC/DqN,uBAAwB,kBAAgCrN,GAAa,8BACrEsN,gBAAiB,SAAC1I,EAAeU,EAAc0B,GAA9B,OACfhH,GAAc,qBAAsB,CAAC4E,QAAOU,OAAM0B,iBACpDuG,mBAAoB,SAAC7M,EAAYkE,EAAeoC,GAA5B,OAClBhH,GAAa,wBAAyB,CAACU,KAAIkE,QAAOoC,iBACpDwG,UAAW,SAAC9M,EAAYqC,GAAb,OACT/C,GAAa,2BAA4B,CAACU,KAAIqC,aAGnC,GACbvC,GADa,GAEbQ,GAFa,GAGbE,GAHa,GAIbiB,GAJa,GAKbmB,GALa,GAMbC,GANa,GAObW,GAPa,GAQboC,GARa,GASbG,GATa,GAUbC,GAVa,GAWbC,GAXa,GAYbjB,GAZa,GAabiD,GAba,GAcb/B,GAda,GAeboC,GAfa,GAgBbG,GAhBa,GAiBbY,GAjBa,GAkBbyB,GAlBa,GAmBbmB,GAnBa,GAoBbI,GApBa,GAqBbI,GCxemBM,I,aAEnB,WAAYC,GAAuB,yBADnCA,eACkC,6zBAChCC,KAAKD,UAAYA,E,6DA6EFhN,GACf,OAAOiN,KAAKC,sBAAsB1N,IAAIQ,K,sCAgItCmN,EACA5M,GAGA,IADA,IAAI6M,EAA2B,GACtBC,EAAI,EAAGA,EAAIF,EAAgBG,OAAQD,IAAK,CAC/C,IAAIE,EAAUJ,EAAgBE,GAC1BE,EAAQvN,KAAOO,EAAeP,GAChCoN,EAAMvO,KAAK0B,GAEX6M,EAAMvO,KAAK0O,GAGf,OAAOH,I,qCA/MP,OAAOI,MAAMC,KAAKR,KAAKC,sBAAsBQ,UAAUC,MACrD,SAACC,EAAGC,GAAJ,OAAUD,EAAE9I,MAAQ+I,EAAE/I,W,+BAKxB,OAAImI,KAAKa,gBAAkBb,KAAKa,eAAgBR,OAAS,EAChDS,KAAKC,IAAIC,MACdF,KACAd,KAAKa,eAAgBI,KAAI,SAASC,GAChC,OAAOA,EAAErJ,UAIN,M,4DAtBVsJ,K,yEAAmC,IAAIC,O,2CACvCD,K,oGACAA,K,yEAAsB,K,qCACtBA,K,yEAAqB,K,wCACrBA,K,yEAAwB,K,oCACxBA,K,yEAAqB,K,0CAErBE,K,+GAMAA,K,qHAaAC,K,oFAA4B,0BAAAX,EAAAY,OAAA,uDAC3B,EAAKC,SAAU,EADY,oBAAAb,EAAA,MAGIc,GAAqB3O,QAHzB,OAGnB+N,EAHmB,OAIzBa,aAAY,WACVb,EAAec,SAAQ,SAAA1O,GACrB,EAAKgN,sBAAsB2B,IAAI3O,EAAcF,GAAIE,MAEnD,EAAKuO,SAAU,KARQ,gDAWzBE,aAAY,WACV,EAAKF,SAAU,KAZQ,4D,4CAiB5BF,K,oFAAwB,WACvB,EAAKO,UAAW,EAChB,EAAK5O,mBAAgB3B,M,+CAGtBgQ,K,oFAA2B,SAAOvO,GAAP,eAAA4N,EAAAY,OAAA,qDACtBtO,EAAgB,EAAK6O,iBAAiB/O,IADhB,uBAGxB,EAAKE,cAAgBA,EAHG,kBAIjB8O,YAAK9O,IAJY,cAMxB,EAAKuO,SAAU,EANS,qBAAAb,EAAA,MAQAc,GAAqBzP,KAAKe,IAR1B,eAQtBE,EARsB,OAStByO,aAAY,WACV,EAAKzO,cAAgBA,EACrB,EAAKuO,SAAU,KAXK,kBAafvO,GAbe,kCAetByO,aAAY,WACV,EAAKF,SAAU,KAhBK,6D,gDAsB3BF,K,oFAA4B,WAC3B,EAAKrO,mBAAgB3B,M,iDAOtBgQ,K,oFAA6B,SAAOrO,GAAP,SAAA0N,EAAAY,OAAA,uDAC5B,EAAKS,YAAa,EADU,oBAAArB,EAAA,MAGpBc,GAAqBzO,OAAOC,IAHR,OAI1ByO,aAAY,WACV,EAAKzB,sBAAsB2B,IAAI3O,EAAcF,GAAIE,GACjD,EAAKA,cAAgBA,EACrB,EAAK4O,UAAW,EAChB,EAAKG,YAAa,KAEpBrQ,GAAQC,KAAR,6BAAmCqB,EAAcF,KAVvB,gDAY1B2O,aAAY,WACV,EAAKM,YAAa,KAEpBxQ,IAAMN,MAAM,mCAfc,4D,kDAmB7BoQ,K,oFAA8B,SAAOhO,GAAP,SAAAqN,EAAAY,OAAA,uDAC7B,EAAKS,YAAa,EADW,oBAAArB,EAAA,MAIrBc,GAAsBzO,OAAOM,IAJR,OAK3BoO,aAAY,WACV,EAAKzO,cAAeiN,gBAAgBtO,KAAK0B,GACzC,EAAK0O,YAAa,KAEpBrQ,GAAQC,KAAR,2BAAiC,EAAKqB,cAAeF,KAT1B,gDAW3B2O,aAAY,WACV,EAAKM,YAAa,KAEpBxQ,IAAMN,MAAM,qCAde,4D,gDAkB9BoQ,K,oFAA4B,SAAOvO,EAAYK,GAAnB,iBAAAuN,EAAAY,OAAA,uDAC3B,EAAKS,YAAa,EADS,oBAAArB,EAAA,MAGNc,GAAqBtO,MAAMJ,EAAIK,IAHzB,QAGrB6O,EAHqB,QAKdC,SACT,EAAKnC,UAAUoC,WAAWC,UAAU,UAAWH,EAAO1Q,SAClDmC,EAAO,EAAKqM,UAAUsC,UAAU3O,KACpCgO,aAAY,WAAO,IAAD,EAChB,YAAKzO,qBAAL,SAAoBqP,kBAAkB1Q,KAAK,CACzC2Q,UAAW7O,EAAM6O,UACjBC,SAAU9O,EAAM8O,SAChBC,KAAM/O,EAAM+O,KACZhO,SAAUf,EAAMe,SAChBa,MAAO5B,EAAM4B,MACboN,OAAQtP,OAGZzB,GAAQC,KAAK,oBAEb,EAAKmO,UAAUoC,WAAWC,UAAU,SAAUH,EAAO1Q,SAEvDmQ,aAAY,WACV,EAAKM,YAAa,KAvBK,gDA0BzBW,QAAQC,IAAR,MACAlB,aAAY,WACV,EAAKM,YAAa,KA5BK,4D,+CAiC5BV,K,oFAA2B,SAAOrO,GAAP,SAAA0N,EAAAY,OAAA,uDAC1B,EAAKS,YAAa,EADQ,oBAAArB,EAAA,MAGlBc,GAAqBvO,OAAOD,IAHV,OAIxByO,aAAY,WACV,EAAKzB,sBAAsB2B,IAAI3O,EAAcF,GAAIE,GACjD,EAAKA,cAAgBA,EACrB,EAAK4O,UAAW,EAChB,EAAKG,YAAa,KAEpBrQ,GAAQC,KAAK,mBAVW,gDAYxB8P,aAAY,WACV,EAAKM,YAAa,KAbI,4D,gDAkB3BV,K,oFAA4B,SAAOhO,GAAP,SAAAqN,EAAAY,OAAA,uDAC3B,EAAKS,YAAa,EADS,oBAAArB,EAAA,MAGnBc,GAAsBvO,OAAOI,IAHV,OAIzBoO,aAAY,WACV,EAAKzO,cAAeiN,gBAAkB,EAAK2C,gBACzC,EAAK5P,cAAeiN,gBACpB5M,GAEF,EAAK0O,YAAa,KAEpBrQ,GAAQC,KAAR,2BAAiC,EAAKqB,cAAeF,KAX5B,gDAazB2O,aAAY,WACV,EAAKM,YAAa,KAdK,4D,kDAmB5BV,K,oFAA8B,SAAOvO,GAAP,SAAA4N,EAAAY,OAAA,uDAC7B,EAAKS,YAAa,EADW,oBAAArB,EAAA,MAGrBc,GAAsB7O,OAAOG,IAHR,OAI3B2O,aAAY,WACP,EAAKzO,gBACN,EAAKA,cAAciN,gBAAkB,EAAKjN,cAAciN,gBAAiB4C,QAAO,SAAAC,GAAC,OAAIA,EAAEhQ,KAAOA,MAEhG,EAAKiP,YAAa,KARO,gDAW3BN,aAAY,WACV,EAAKM,YAAa,KAZO,4D,iDAiC9BV,K,oFAA6B,SAACvO,GAC7B,EAAKE,cAAgB,EAAKgN,sBAAsB1N,IAAIQ,GACpD,EAAK8O,UAAW,M,yCAGjBP,K,oFAAqB,SAACO,GACrB,EAAKA,SAAWA,M,mDAGjBP,K,oFAA+B,WAC9B,EAAKrO,mBAAgB3B,M,GCvPJ0R,I,EAKhB7B,IAAW8B,Q,EAHZ,WAAYlD,GAAuB,yBADnCA,eACkC,kJAC9BC,KAAKD,UAAYA,G,kHAEO,CACxBmD,MAAM,EACNjM,MAAO,KACPxE,KAAM,KACN0Q,YAAa,GACbjS,MAAO,O,uCAGVoQ,K,oFAAmB,SAACrK,EAAYR,GAAyC,IAA3B0M,EAA0B,uDAAP,GAC9D,EAAKC,MAAMF,MAAO,EAClB,EAAKE,MAAMnM,MAAQA,EACnB,EAAKmM,MAAM3Q,KAAOgE,EAClB,EAAK2M,MAAMD,YAAcA,EACzB,EAAKC,MAAMlS,MAAQ,O,wCAGtBoQ,K,oFAAoB,WACjB,EAAK8B,MAAMF,MAAO,EAClB,EAAKE,MAAMnM,MAAQ,KACnB,EAAKmM,MAAM3Q,KAAO,KAClB,EAAK2Q,MAAMD,YAAc,GACzB,EAAKC,MAAMlS,MAAQ,O,sCAGtBoQ,K,oFAAkB,WAAqB,IAApBpQ,EAAmB,uDAAN,GAC/B,EAAKkS,MAAMlS,MAAQA,M,GC9BJmS,I,EAEnB,WAAYtD,GAAuB,IAAD,gCADlCA,eACkC,oJAChCC,KAAKD,UAAYA,EAEjBuD,aACE,kBAAM,EAAK1S,SACX,SAAAA,GACMA,EACFC,OAAOC,aAAayS,QAAQ,MAAO3S,GAEnCC,OAAOC,aAAaiB,WAAW,W,uCAMtCoP,K,yEAAkCtQ,OAAOC,aAAaC,QAAQ,U,uCAC9DoQ,K,yEAAuB,K,sCAEvBG,K,oFAAkB,SAAC1Q,GAClB,EAAKA,MAAQA,M,0CAGd0Q,K,oFAAsB,WACrB,EAAKkC,WAAY,M,GCpBAC,I,cAEjB,WAAY1D,GAAuB,yBADnCA,eACkC,oqBAChCC,KAAKD,UAAYA,E,uDAMS,QAASC,KAAKtM,S,6CAJzCyN,K,yEAAgC,Q,wCAChCA,K,yEAAuB,K,uCACvBA,K,yEAAsB,K,sCAEtBE,K,2GAEAC,K,oFAAe,SAAOb,GAAP,eAAAE,EAAAY,OAAA,2EAAAZ,EAAA,MAEWc,GAAWhO,MAAMgN,IAF5B,OAEF/M,EAFE,OAGRgO,YAAY,SAAS,WACjB,EAAKhO,KAAOA,KAEhB,EAAKqM,UAAU2D,YAAYC,SAASjQ,EAAK9C,OACzC,EAAKmP,UAAUoC,WAAWyB,aAC1BjS,GAAQC,KAAK,KARL,0H,6CAcf0P,K,oFAAwB,SAAOzN,EAAqB2B,GAA5B,eAAAmL,EAAAY,OAAA,2EAAAZ,EAAA,MAEEc,GAAW7N,eAAeC,EAAa2B,IAFzC,OAEX9B,EAFW,OAGjBgO,YAAY,kBAAkB,WAC1B,EAAKhO,KAAOA,KAEhB,EAAKqM,UAAU2D,YAAYC,SAASjQ,EAAK9C,OACzC,EAAKmP,UAAUoC,WAAWyB,aAC1BpS,IAAMQ,KAAK,iCACXL,GAAQC,KAAK,KATI,kDAWnB,EAAKmO,UAAUoC,WAAW0B,SAAS,6BAXhB,6D,uCAexBvC,K,oFAAkB,SAAOb,GAAP,eAAAE,EAAAY,OAAA,2EAAAZ,EAAA,MAEQc,GAAW9N,SAAS8M,IAF5B,OAEL/M,EAFK,OAGX,EAAKqM,UAAU2D,YAAYC,SAASjQ,EAAK9C,OACzC,EAAKmP,UAAUoC,WAAWyB,aAJf,uH,sCASlBtC,K,oFAAiB,0BAAAX,EAAAY,OAAA,2EAAAZ,EAAA,MAESc,GAAWjO,WAFpB,OAEJE,EAFI,OAGVgO,aAAY,WACR,EAAKhO,KAAOA,KAJN,uH,qCAUjB4N,K,oFAAgB,WACb,EAAKvB,UAAU2D,YAAYC,SAAS,MACpC,EAAKjQ,KAAO,KACZ/B,GAAQC,KAAK,S,sCAGhB0P,K,oFAAiB,SAAOjQ,GAAP,eAAAsP,EAAAY,OAAA,uDACd,EAAKuC,WAAY,EADH,oBAAAnD,EAAA,MAGSc,GAAWxN,QAAQ5C,EAAS6C,cAHrC,OAGJR,EAHI,OAIV,EAAKqM,UAAU2D,YAAYC,SAASjQ,EAAK9C,OACzC,EAAKmP,UAAUoC,WAAWyB,aAC1B,EAAKE,WAAY,EANP,wDAQV,EAAKA,WAAY,EARP,kE,qCAajBxC,K,oFAAgB,SAAOjQ,GAAP,eAAAsP,EAAAY,OAAA,uDACb,EAAKwC,UAAW,EADH,oBAAApD,EAAA,MAGUc,GAAWtN,OAAO9C,EAAS6C,cAHrC,OAGHR,EAHG,OAIT,EAAKqM,UAAU2D,YAAYC,SAASjQ,EAAK9C,OACzC,EAAKmP,UAAUoC,WAAWyB,aAC1B,EAAKG,UAAW,EANP,kDAQT,EAAKA,UAAW,EAChBpB,QAAQC,IAAR,MATS,6D,6CAahBtB,K,oFAAwB,SAAO0C,GAAP,eAAArD,EAAAY,OAAA,2EAAAZ,EAAA,MAEAc,GAAW1N,WAAWiQ,IAFtB,OAEbtQ,EAFa,OAGnB/B,GAAQC,KAAR,KACA8P,aAAY,WACV,EAAKhO,KAAOA,KALK,gDAQnBgO,aAAY,WACV,MAAM,EAAN,MATiB,4D,sCAaxBP,K,wEAAoC,M,iDAEpCG,K,oFAA4B,0BAAAX,EAAAY,OAAA,2EAAAZ,EAAA,MAERc,GAAWrN,kBAFH,cAEnB6P,EAFmB,OAGvBvC,aAAY,WACR,EAAKwC,QAAUD,KAJI,kBAMhBA,GANgB,4F,iDAW5B3C,K,oFAA4B,0BAAAX,EAAAY,OAAA,2EAAAZ,EAAA,MAERc,GAAWpN,kBAFH,cAEnB4P,EAFmB,OAGvBvC,aAAY,WACR,EAAKwC,QAAUD,KAJI,kBAMhBA,GANgB,4F,mDAW5B3C,K,oFAA8B,0BAAAX,EAAAY,OAAA,2EAAAZ,EAAA,MAEVc,GAAWnN,oBAFD,cAErB2P,EAFqB,OAGzBvC,aAAY,WACR,EAAKwC,QAAUD,KAJM,kBAMlBA,GANkB,4F,4CAW9B9C,K,wEAAgD,M,gDAEhDG,K,oFAA2B,0BAAAX,EAAAY,OAAA,2EAAAZ,EAAA,MAEPc,GAAWlN,iBAFJ,cAElB0P,EAFkB,OAGtBvC,aAAY,WACR,EAAKnN,cAAgB0P,KAJH,kBAMfA,GANe,4F,GChJXE,I,cAEjB,WAAYpE,GAAuB,yBADnCA,eACkC,2oBAChCC,KAAKD,UAAYA,E,oDA8DXtL,GACJ,OAAOuL,KAAKoE,aAAa7R,IAAIkC,K,4BArD/B,OAAO8L,MAAMC,KAAKR,KAAKoE,aAAa3D,UAAUC,MAC1C,SAACC,EAAGC,GACA,OAAID,EAAE4B,UAAU8B,cAAgBzD,EAAE2B,UAAU8B,cAAsB,EAC1D1D,EAAE4B,UAAU8B,cAAgBzD,EAAE2B,UAAU8B,eAAuB,EAEhE1D,EAAE6B,SAAS6B,cAAgBzD,EAAE4B,SAAS6B,cAAsB,GAClD,S,uDAb1BlD,K,yEAA0B,IAAIC,O,4CAC9BD,K,qGACAA,K,yEAAqB,K,4CACrBA,K,yEAA0B,IAAKC,O,0CAC/BD,K,yEAAwB,K,kCAExBE,K,6GAaAC,K,oFAAmB,0BAAAX,EAAAY,OAAA,uDAChB,EAAKC,SAAU,EADC,oBAAAb,EAAA,MAGYc,GAAY3O,QAHxB,OAGNwR,EAHM,OAIZ5C,aAAY,WACV4C,EAAU3C,SAAQ,SAAAjO,GACZ,EAAK0Q,aAAaxC,IAAIlO,EAAKe,SAAUf,MAE3C,EAAK8N,SAAU,KARL,gDAWZE,aAAY,WACR,EAAKF,SAAU,KAZP,4D,wCAiBnBF,K,oFAAkB,SAAO7M,GAAP,eAAAkM,EAAAY,OAAA,qDACb7N,EAAO,EAAK6Q,QAAQ9P,IADP,uBAGf,EAAK+P,aAAe9Q,EAHL,kBAIRqO,YAAKrO,IAJG,cAOf,EAAK8N,SAAU,EAPA,qBAAAb,EAAA,MASEc,GAAYzP,KAAKyC,IATnB,eASXf,EATW,OAUXgO,aAAY,WACR,EAAK8C,aAAe9Q,EACpB,EAAK8N,SAAU,KAZR,kBAcJ9N,GAdI,kCAgBXgO,aAAY,WACR,EAAKF,SAAU,KAjBR,6D,2CA2BlBF,K,oFAAqB,SAAO3M,GAAP,eAAAgM,EAAAY,OAAA,uDACpB,EAAKS,YAAa,EADE,oBAAArB,EAAA,MAGVc,GAAY/M,YAAYC,IAHd,QAIZjB,EAAO,EAAK6Q,QAAQ5P,EAASF,aAE/Bf,EAAK6O,UAAY5N,EAAS4N,UAC1B7O,EAAK8O,SAAW7N,EAAS6N,SACzB9O,EAAK+Q,aAAe9P,EAAS8P,aAC7B/Q,EAAK+O,KAAO9N,EAAS8N,KACrB/O,EAAKgR,IAAM/P,EAAS+P,IACpBhR,EAAKkH,MAAQjG,EAASiG,MACtBlH,EAAKwH,MAAQvG,EAASuG,MACtBxH,EAAKiR,OAAShQ,EAASgQ,OACvBjR,EAAK0B,OAAST,EAASS,OACvB1B,EAAKoB,gBAAkBH,EAASG,gBAChCpB,EAAKqB,eAAiBJ,EAASI,gBAEjC2M,aAAY,WACR,EAAKM,YAAa,EAClB,EAAKjC,UAAUoC,WAAWyB,gBApBd,gDAuBhBlC,aAAY,WACR,EAAKM,YAAa,KAEtB,EAAKjC,UAAUoC,WAAW0B,SAAS,+BA1BnB,4D,yCA8BrBvC,K,oFAAmB,SAAO7M,EAAkBI,EACnCC,EAAyBC,GADf,SAAA4L,EAAAY,OAAA,uDAEhB,EAAKS,YAAa,EAFF,oBAAArB,EAAA,MAIRc,GAAY7M,cAAcH,EAAUI,EAAaC,EAAiBC,IAJ1D,OAKd2M,aAAY,WACV,EAAKM,YAAa,EAClB,IAAItO,EAAO,EAAK6Q,QAAQ9P,GACrBf,IACDA,EAAKmB,YAAcA,EACnBnB,EAAKoB,gBAAkBA,EACvBpB,EAAKqB,eAAiBA,GAExB,EAAKgL,UAAUoC,WAAWyB,gBAbd,gDAgBdlC,aAAY,WACR,EAAKM,YAAa,KAEtB,EAAKjC,UAAUoC,WAAW0B,SAAS,4BAnBrB,4D,4CAuBnBvC,K,oFAAsB,SAAM7M,EAAkBQ,GAAxB,SAAA0L,EAAAY,OAAA,uDACrB,EAAKS,YAAa,EADG,oBAAArB,EAAA,MAGbc,GAAYzM,SAASP,EAAUQ,IAHlB,OAInByM,aAAY,WACV,EAAKM,YAAa,EAClB,IAAItO,EAAO,EAAK6Q,QAAQ9P,GACrBf,IACDA,EAAKuB,MAAQA,GAEf,EAAK8K,UAAUoC,WAAWyB,gBAVT,gDAanBlC,aAAY,WACR,EAAKM,YAAa,KAEtB,EAAKjC,UAAUoC,WAAW0B,SAAS,2BAhBhB,4D,0CAoBtBvC,K,oFAAoB,SAAM7M,GAAN,SAAAkM,EAAAY,OAAA,uDACnB,EAAKS,YAAa,EADC,oBAAArB,EAAA,MAGXc,GAAYvM,WAAWT,IAHZ,OAIN,EAAK8P,QAAQ9P,IAGtB,EAAK2P,aAAaxR,OAAO6B,GAE3BiN,aAAY,WACV,EAAKM,YAAa,KAVH,gDAajBN,aAAY,WACR,EAAKM,YAAa,KAdL,4D,6CAmBpBV,K,oFAAuB,SAAM7M,EAAkBW,GAAxB,SAAAuL,EAAAY,OAAA,uDACtB,EAAKS,YAAa,EADI,oBAAArB,EAAA,MAGdc,GAAYtM,cAAcV,EAAUW,IAHtB,OAIpBsM,aAAY,WACV,EAAKM,YAAa,EAClB,IAAItO,EAAO,EAAK6Q,QAAQ9P,GACrBf,IACDA,EAAK0B,OAASA,MARE,gDAYpBsM,aAAY,WACR,EAAKM,YAAa,KAbF,4D,+CAkBvBV,K,oFAAyB,SAAM7M,EAAkBa,GAAxB,SAAAqL,EAAAY,OAAA,uDACtB,EAAKS,YAAa,EADI,oBAAArB,EAAA,MAGZc,GAAYpM,gBAAgBZ,EAAUa,IAH1B,OAIlBoM,aAAY,WACR,EAAKM,YAAa,EAClB,IAAItO,EAAO,EAAK6Q,QAAQ9P,GACrBf,IAEDA,EAAKe,SAAWa,EAChB5B,EAAK4B,MAAQA,EAEb,EAAK8O,aAAaxR,OAAO6B,GACzB,EAAK2P,aAAaxC,IAAItM,EAAO5B,IAE/B,EAAKqM,UAAUoC,WAAWyB,gBAfZ,gDAkBlBlC,aAAY,WACR,EAAKM,YAAa,KAEtB,EAAKjC,UAAUoC,WAAW0B,SAAS,8BArBjB,4D,6CAyBzBvC,K,oFAAuB,SAAM7M,EAAkBe,GAAxB,SAAAmL,EAAAY,OAAA,uDACtB,EAAKS,YAAa,EADI,oBAAArB,EAAA,MAGdc,GAAYlM,cAAcd,EAAUe,IAHtB,OAIpBkM,aAAY,WACR,EAAKM,YAAa,EAClB,EAAKjC,UAAUoC,WAAWyB,gBANV,gDASlBlC,aAAY,WACR,EAAKM,YAAa,KAEtB,EAAKjC,UAAUoC,WAAW0B,SAAS,+BAZjB,4D,iDAgBvBvC,K,oFAA2B,SAAM7M,GAAN,eAAAkM,EAAAY,OAAA,uDAC1B,EAAKS,YAAa,EADQ,oBAAArB,EAAA,MAGFc,GAAYhM,kBAAkBhB,IAH5B,cAGlByP,EAHkB,OAItBxC,aAAY,WACV,EAAKM,YAAa,KALE,kBAOfkC,GAPe,gCASxBxC,aAAY,WACV,EAAKM,YAAa,KAVI,4D,+CAe3BV,K,yEAAyB,SAAM7M,GAAN,eAAAkM,EAAAY,OAAA,2EAAAZ,EAAA,MAELc,GAAY/L,aAAajB,IAFpB,cAEhBwP,EAFgB,yBAGbA,GAHa,2F,IC3OTW,I,GAEjB,WAAY7E,GAAuB,yBADnCA,eACkC,8GAC9BC,KAAKD,UAAYA,G,6CAGpBoB,K,yEAAqB,K,qCAErBA,K,wEAA4B,M,yCAE5BG,K,oFAAmB,oBAAAX,EAAAY,OAAA,uDAChB,EAAKC,SAAU,EADC,oBAAAb,EAAA,MAGOc,GAAY3O,QAHnB,cAGZ,EAAKmC,MAHO,OAIZyM,aAAY,WACR,EAAKF,SAAU,KALP,kBAOL,EAAKvM,OAPA,gCASZyM,aAAY,WACR,EAAKF,SAAU,KAVP,4D,ICTHqD,I,GAEnB,WAAY9E,GAAuB,yBADnCA,eACkC,+mBAC9BC,KAAKD,UAAYA,G,6CAEpBoB,K,yEAAqB,K,6CACrBA,K,yEAAkD,Q,6CAClDA,K,wEAA6C,M,wDAE7CG,K,oFAAkC,SAAOxL,GAAP,eAAA6K,EAAAY,OAAA,uDACjC,EAAKC,SAAU,EADkB,oBAAAb,EAAA,MAGhBc,GAAajL,eAAeV,IAHZ,cAG3BgP,EAH2B,OAI/BpD,aAAY,WACV,EAAKqD,cAAgBD,EACrB,EAAKtD,SAAU,KANc,kBAQxBsD,GARwB,gCAU/BpD,aAAY,WACV,EAAKF,SAAU,KAXc,4D,iDAgBlCF,K,oFAA2B,SAAOxL,GAAP,eAAA6K,EAAAY,OAAA,uDAC1B,EAAKC,SAAU,EADW,oBAAAb,EAAA,MAGTc,GAAahL,QAAQX,IAHZ,cAGpBgP,EAHoB,OAIxBpD,aAAY,WACV,EAAKqD,cAAgBD,EACrB,EAAKtD,SAAU,KANO,kBAQjBsD,GARiB,gCAUxBpD,aAAY,WACV,EAAKF,SAAU,KAXO,4D,gDAgB3BF,K,oFAA0B,SAAOxL,EAAoBa,GAA3B,SAAAgK,EAAAY,OAAA,uDACzB,EAAKC,SAAU,EADU,oBAAAb,EAAA,MAGjBc,GAAa/K,gBAAgBZ,EAAYa,IAHxB,OAIvB+K,aAAY,WACP,EAAKqD,gBACN,EAAKA,cAAcpO,aAAeA,GAEpC,EAAK6K,SAAU,EACf,EAAKzB,UAAUoC,WAAWyB,gBATL,gDAYvBlC,aAAY,WACV,EAAKF,SAAU,KAbM,4D,8CAkB1BF,K,oFAAwB,SAAOxL,EAAoBe,GAA3B,SAAA8J,EAAAY,OAAA,uDACvB,EAAKC,SAAU,EADQ,oBAAAb,EAAA,MAGfc,GAAa7K,cAAcd,EAAYe,IAHxB,OAIrB6K,aAAY,WACP,EAAKqD,gBACN,EAAKA,cAAclO,WAAaA,GAElC,EAAK2K,SAAU,EACf,EAAKzB,UAAUoC,WAAWyB,gBATP,gDAYrBlC,aAAY,WACV,EAAKF,SAAU,KAbI,4D,0CAkBxBF,K,oFAAoB,SAAOxL,EAAoBiB,GAA3B,SAAA4J,EAAAY,OAAA,uDACnB,EAAKC,SAAU,EADI,oBAAAb,EAAA,MAGXc,GAAa3K,UAAUhB,EAAYiB,IAHxB,OAIjB2K,aAAY,WACP,EAAKqD,gBACN,EAAKA,cAAchO,OAASA,GAE9B,EAAKyK,SAAU,EACf,EAAKzB,UAAUoC,WAAWyB,gBATX,gDAYjBlC,aAAY,WACV,EAAKF,SAAU,KAbA,4D,iDAkBpBF,K,oFAA0B,SAAMxL,EAAoBmB,EAAe3E,EAAamE,GAAtD,eAAAkK,EAAAY,OAAA,uDACzB,EAAKC,SAAU,EADU,oBAAAb,EAAA,MAGIc,GAAazK,YAAYlB,EAAYmB,EAAO3E,EAAKmE,IAHrD,OAGnBuO,EAHmB,OAIvBtD,aAAY,WACV,EAAKF,SAAU,EACZ,EAAKuD,eAAiB,EAAKA,cAAcjP,aAAeA,GAEzD,EAAKiP,cAAcE,gBAAgBrT,KAAKoT,GAE1C,EAAKjF,UAAUoC,WAAWyB,gBAVL,gDAavBlC,aAAY,WACV,EAAKF,SAAU,KAdM,4D,uDAmB1BF,K,oFAAgC,SAAMxL,EAAoBmB,EAAeE,GAAzC,eAAAwJ,EAAAY,OAAA,uDAC/B,EAAKC,SAAU,EADgB,oBAAAb,EAAA,MAGFc,GAAavK,kBAAkBpB,EAAYmB,EAAOE,IAHhD,OAGzB6N,EAHyB,OAI7BtD,aAAY,WACV,EAAKF,SAAU,EACZ,EAAKuD,eAAiB,EAAKA,cAAcjP,aAAeA,GAEzD,EAAKiP,cAAcE,gBAAgBrT,KAAKoT,EAAetT,MAEzD,EAAKqO,UAAUoC,WAAWyB,gBAVC,gDAa7BlC,aAAY,WACV,EAAKF,SAAU,KAdY,4D,8CAmBhCF,K,oFAAuB,SAAMxL,EAAoB0B,GAA1B,SAAAmJ,EAAAY,OAAA,uDACtB,EAAKC,SAAU,EADO,oBAAAb,EAAA,MAGdc,GAAalK,eAAezB,EAAY0B,IAH1B,OAIpBkK,aAAY,WACP,EAAKqD,eAAiB,EAAKA,cAAcjP,aAAeA,IAEzD,EAAKiP,cAAcE,gBAAkB,EAAKF,cAAcE,gBAAgBnC,QAAO,SAAAC,GAAC,OAAEA,EAAEhQ,KAAOyE,MAE7F,EAAKgK,SAAU,EACf,EAAKzB,UAAUoC,WAAWyB,gBAVR,gDAapBlC,aAAY,WACV,EAAKF,SAAU,KAdG,4D,+CAmBvBF,K,oFAAwB,SAAMxL,EAAoB4B,EAAeC,EAAYd,GAArD,eAAA8J,EAAAY,OAAA,uDACvB,EAAKC,SAAU,EADQ,oBAAAb,EAAA,MAGFc,GAAahK,UAAU3B,EAAY4B,EAAOC,EAAMd,IAH9C,OAGjBqO,EAHiB,OAIrBxD,aAAY,WACV,EAAKF,SAAU,EACZ,EAAKuD,eAAiB,EAAKA,cAAcjP,aAAeA,GAEzD,EAAKiP,cAAcI,QAAQvT,KAAKsT,GAElC,EAAKnF,UAAUoC,WAAWyB,gBAVP,gDAarBlC,aAAY,WACV,EAAKF,SAAU,KAdI,4D,gDAmBxBF,K,oFAA0B,SAAM9J,EAAoBK,GAA1B,SAAA8I,EAAAY,OAAA,uDACzB,EAAKC,SAAU,EADU,oBAAAb,EAAA,MAGjBc,GAAa7J,iBAAiBJ,EAAYK,IAHzB,OAIvB6J,aAAY,WACV,GAAI,EAAKqD,cAAe,CACtB,IAAIK,EAAW,EAAKL,cAAcE,gBAAgBI,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAOyE,KAChE4N,IACDA,EAASvN,MAAQA,GAGrB,EAAK2J,SAAU,EACf,EAAKzB,UAAUoC,WAAWyB,gBAZL,gDAevBlC,aAAY,WACV,EAAKF,SAAU,KAhBM,4D,gDAqB1BF,K,oFAA0B,SAAOxL,EAAoBrB,GAA3B,eAAAkM,EAAAY,OAAA,uDACzB,EAAKC,SAAU,EADU,oBAAAb,EAAA,MAGRc,GAAa3J,cAAchC,EAAYrB,IAH/B,cAGnBqQ,EAHmB,OAIvBpD,aAAY,WACV,EAAK5J,cAAgBgN,EACrB,EAAKtD,SAAU,KANM,kBAQhBsD,GARgB,gCAUvBpD,aAAY,WACV,EAAKF,SAAU,KAXM,4D,IChMR8D,I,GAEnB,WAAYvF,GAAuB,yBADnCA,eACkC,ugBAC9BC,KAAKD,UAAYA,G,6CAGpBoB,K,yEAAqB,K,uCAErBA,K,wEAAoC,M,2CAEpCG,K,oFAAqB,0BAAAX,EAAAY,OAAA,uDAClB,EAAKC,SAAU,EADG,oBAAAb,EAAA,MAGCc,GAAc3O,QAHf,cAGVmR,EAHU,OAIdvC,aAAY,WACR,EAAKwC,QAAUD,EACf,EAAKzC,SAAU,KANL,kBAQPyC,GARO,gCAUdvC,aAAY,WACR,EAAKF,SAAU,KAXL,4D,iDAgBrBF,K,oFAA2B,0BAAAX,EAAAY,OAAA,uDAC1B,EAAKC,SAAU,EADW,oBAAAb,EAAA,MAGPc,GAAc5L,cAHP,cAGlBoO,EAHkB,OAItBvC,aAAY,WACR,EAAKwC,QAAUD,EACf,EAAKzC,SAAU,KANG,kBAQfyC,GARe,gCAUtBvC,aAAY,WACR,EAAKF,SAAU,KAXG,4D,+CAgB3BF,K,yEAAyB,SAAMtL,GAAN,SAAA2K,EAAAY,OAAA,2EAAAZ,EAAA,MAEhBc,GAAc1L,gBAAgBC,IAFd,OAGtBrE,GAAQC,KAAK,cAHS,+CAKtB8P,aAAY,WACV,MAAM,EAAN,MANoB,2D,0CAWzBJ,K,oFAAoB,SAAOxL,GAAP,eAAA6K,EAAAY,OAAA,uDACjB,EAAKC,SAAU,EADE,oBAAAb,EAAA,MAGIc,GAAczP,KAAK8D,IAHvB,cAGXE,EAHW,OAIf0L,aAAY,WACV,EAAKF,SAAU,KALF,kBAORxL,GAPQ,gCASf0L,aAAY,WACV,EAAKF,SAAU,KAVF,4D,0CAepBF,K,yEAAoB,SAAMtL,GAAN,SAAA2K,EAAAY,OAAA,2EAAAZ,EAAA,MAEXc,GAAcxL,WAAWD,IAFd,sDAIjB0L,aAAY,WACV,MAAM,EAAN,MALe,2D,kDAUpBJ,K,oFAA4B,SAAMxL,EAAoBV,GAA1B,SAAAuL,EAAAY,OAAA,uDAC3B,EAAKC,SAAU,EADY,oBAAAb,EAAA,MAGnBc,GAAcvL,aAAaJ,EAAYV,IAHpB,OAIzBsM,aAAY,WACV,EAAKF,SAAU,KALQ,gDAQzBE,aAAY,WACV,EAAKF,SAAU,KATQ,4D,kDAc5BF,K,oFAA4B,SAAMxL,EAAoBrB,GAA1B,SAAAkM,EAAAY,OAAA,uDAC3B,EAAKC,SAAU,EADY,oBAAAb,EAAA,MAGnBc,GAActL,mBAAmBL,EAAYrB,IAH1B,OAIzBiN,aAAY,WACV,EAAKF,SAAU,KALQ,gDAQzBE,aAAY,WACV,EAAKF,SAAU,KATQ,4D,qDAc5BF,K,oFAA8B,SAAMxL,EAAoBrB,GAA1B,SAAAkM,EAAAY,OAAA,uDAC7B,EAAKC,SAAU,EADc,oBAAAb,EAAA,MAGrBc,GAAcrL,sBAAsBN,EAAYrB,IAH3B,OAI3BiN,aAAY,WACV,EAAKF,SAAU,KALU,gDAQ3BE,aAAY,WACV,EAAKF,SAAU,KATU,4D,gDAc9BF,K,oFAA0B,SAAMxL,EAAoBrB,GAA1B,SAAAkM,EAAAY,OAAA,uDACzB,EAAKC,SAAU,EADU,oBAAAb,EAAA,MAGjBc,GAAcpL,iBAAiBP,EAAYrB,IAH1B,OAIvBiN,aAAY,WACV,EAAKF,SAAU,KALM,gDAQvBE,aAAY,WACV,EAAKF,SAAU,KATM,4D,mDAc1BF,K,oFAA6B,SAAMxL,EAAoBrB,GAA1B,SAAAkM,EAAAY,OAAA,uDAC5B,EAAKC,SAAU,EADa,oBAAAb,EAAA,MAGpBc,GAAcnL,oBAAoBR,EAAYrB,IAH1B,OAI1BiN,aAAY,WACV,EAAKF,SAAU,KALS,gDAQ1BE,aAAY,WACV,EAAKF,SAAU,KATS,4D,ICvIX+D,I,GAEnB,WAAYxF,GAAuB,yBADnCA,eACkC,2JAC9BC,KAAKD,UAAYA,G,6CAGpBoB,K,yEAAqB,K,wCAErBA,K,wEAAkC,M,4CAElCG,K,oFAAsB,0BAAAX,EAAAY,OAAA,uDACnB,EAAKC,SAAU,EADI,oBAAAb,EAAA,MAGAc,GAAe3O,QAHf,cAGXmR,EAHW,OAIfvC,aAAY,WACR,EAAK8D,SAAWvB,EAChB,EAAKzC,SAAU,KANJ,kBAQRyC,GARQ,gCAUfvC,aAAY,WACR,EAAKF,SAAU,KAXJ,4D,0CAgBtBF,K,oFAAoB,SAAMzI,GAAN,SAAA8H,EAAAY,OAAA,2EAAAZ,EAAA,MAEXc,GAAe7I,iBAAiBC,IAFrB,OAGd,EAAK2M,UACN,EAAKA,SAAS5T,KAAKiH,GAErB,EAAKkH,UAAUoC,WAAWyB,aANT,gDAQjBlC,aAAY,WACV,MAAM,EAAN,MATe,4D,IC1BF+D,I,GAEnB,WAAY1F,GAAuB,yBADnCA,eACkC,oHAC9BC,KAAKD,UAAYA,G,6CAGpBoB,K,yEAAqB,K,wCAErBA,K,wEAAkC,M,4CAElCG,K,oFAAsB,0BAAAX,EAAAY,OAAA,uDACnB,EAAKC,SAAU,EADI,oBAAAb,EAAA,MAGAc,GAAe3O,QAHf,cAGXmR,EAHW,OAIfvC,aAAY,WACR,EAAKgE,SAAWzB,EAChB,EAAKzC,SAAU,KANJ,kBAQRyC,GARQ,gCAUfvC,aAAY,WACR,EAAKF,SAAU,KAXJ,4D,ICVJmE,I,GAEjB,WAAY5F,GAAuB,yBADnCA,eACkC,0RAC9BC,KAAKD,UAAYA,G,kDAGpBoB,K,uGACAA,K,wEAAoC,M,uCACpCA,K,yEAAqB,K,0CACrBA,K,yEAAwB,K,4CAExBG,K,oFAAsB,0BAAAX,EAAAY,OAAA,uDACnB,EAAKC,SAAU,EADI,oBAAAb,EAAA,MAGSc,GAAoBnG,SAH7B,cAGTsK,EAHS,OAIflE,aAAY,WACR,EAAKkE,UAAYA,KAErB,EAAKpE,SAAU,EAPA,kBAQRoE,GARQ,kCAUflE,aAAY,WACR,EAAKF,SAAU,KAXJ,6D,gDAgBtBF,K,oFAA0B,0BAAAX,EAAAY,OAAA,uDAEvB,EAAKC,SAAU,EAFQ,oBAAAb,EAAA,MAIQc,GAAoBzP,QAJ5B,cAIb6T,EAJa,OAKnBnE,aAAY,WACR,EAAKmE,aAAeA,KAExB,EAAKrE,SAAU,EARI,kBASZqE,GATY,kCAWnBnE,aAAY,WACR,EAAKF,SAAU,KAZA,6D,2CAiB1BF,K,oFAAqB,SAAO/F,GAAP,eAAAoF,EAAAY,OAAA,uDAClB,EAAKS,YAAa,EADA,oBAAArB,EAAA,MAGCc,GAAoBtO,MAAM,EAAK0S,aAAc9S,GAAIwI,IAHlD,QAGd0G,EAHc,QAIPC,SACP,EAAKnC,UAAUoC,WAAWC,UAAU,UAAWH,EAAO1Q,SACtDV,OAAOiV,SAASC,UAEhB,EAAKhG,UAAUoC,WAAWC,UAAU,SAAUH,EAAO1Q,SARvC,gDAWdoR,QAAQC,IAAR,MACAlB,aAAY,WACV,EAAKM,YAAa,KAbN,4D,IC5CLgE,I,GAEnB,WAAYjG,GAAuB,yBADnCA,eACkC,oHAC9BC,KAAKD,UAAYA,G,6CAGpBoB,K,yEAAqB,K,wCAErBA,K,wEAAkC,M,4CAElCG,K,oFAAsB,0BAAAX,EAAAY,OAAA,uDACnB,EAAKC,SAAU,EADI,oBAAAb,EAAA,MAGAc,GAAe3O,QAHf,cAGXmR,EAHW,OAIfvC,aAAY,WACR,EAAKuE,SAAWhC,EAChB,EAAKzC,SAAU,KANJ,kBAQRyC,GARQ,gCAUfvC,aAAY,WACR,EAAKF,SAAU,KAXJ,4D,ICVJ0E,I,GAEnB,WAAYnG,GAAuB,yBADnCA,eACkC,+mBAC9BC,KAAKD,UAAYA,G,6CAEpBoB,K,yEAAqB,K,6CACrBA,K,yEAAkD,Q,+CAElDG,K,oFAAyB,SAAOrJ,GAAP,eAAA0I,EAAAY,OAAA,uDACxB,EAAKC,SAAU,EADS,oBAAAb,EAAA,MAGEc,GAAazJ,eAAeC,IAH9B,cAGlBkO,EAHkB,OAItBzE,aAAY,WACV,EAAKF,SAAU,KALK,kBAOf2E,GAPe,gCAStBzE,aAAY,WACV,EAAKF,SAAU,KAVK,4D,6CAezBF,K,oFAAuB,SAAMrJ,EAAkBxD,EAAkB0D,GAA1C,SAAAwI,EAAAY,OAAA,uDACtB,EAAKC,SAAU,EADO,oBAAAb,EAAA,MAGdc,GAAavJ,cAAcD,EAAUxD,EAAU0D,IAHjC,OAIpBuJ,aAAY,WACV,EAAKF,SAAU,KALG,gDAQpBE,aAAY,WACV,EAAKF,SAAU,KATG,4D,0CAcvBF,K,oFAAoB,SAAOrJ,GAAP,eAAA0I,EAAAY,OAAA,uDACnB,EAAKC,SAAU,EADI,oBAAAb,EAAA,MAGEc,GAAarJ,UAAUH,IAHzB,cAGbiN,EAHa,OAIjBxD,aAAY,WACV,EAAKF,SAAU,KALA,kBAOV0D,GAPU,gCASjBxD,aAAY,WACV,EAAKF,SAAU,KAVA,4D,4CAepBF,K,oFAAsB,SAAMrJ,EAAkB3F,GAAxB,SAAAqO,EAAAY,OAAA,uDACrB,EAAKC,SAAU,EADM,oBAAAb,EAAA,MAGbc,GAAapJ,YAAYJ,EAAU3F,IAHtB,OAInBoP,aAAY,WACV,EAAKF,SAAU,EACf,EAAKzB,UAAUoC,WAAWyB,gBANT,gDASnBlC,aAAY,WACV,EAAKF,SAAU,KAVE,4D,yCAetBF,K,oFAAmB,SAAMrJ,EAAkBJ,EAAeH,EAAeC,EAAcd,GAApE,SAAA8J,EAAAY,OAAA,uDAClB,EAAKC,SAAU,EADG,oBAAAb,EAAA,MAGVc,GAAanJ,UAAUL,EAAUJ,EAAOH,EAAOC,EAAMd,IAH3C,OAIhB6K,aAAY,WACP,EAAKlJ,gBACN,EAAKA,cAAcX,MAAQuO,SAASvO,GACpC,EAAKW,cAAcd,MAAQA,EAC3B,EAAKc,cAAcb,KAAO,IAAI0O,KAAK1O,GACnC,EAAKa,cAAc3B,WAAaA,GAElC,EAAK2K,SAAU,EACf,EAAKzB,UAAUoC,WAAWyB,gBAZZ,gDAehBlC,aAAY,WACV,EAAKF,SAAU,KAhBD,4D,qDAqBnBF,K,oFAA8B,SAAMrJ,EAAkBhB,EAAeR,GAAvC,eAAAkK,EAAAY,OAAA,uDAC7B,EAAKC,SAAU,EADc,SAGjB,GAHiB,WAAAb,EAAA,MAIAc,GAAazK,YAAYiB,EAAUhB,EADpD,GACgER,IAJ/C,OAIvB6P,EAJuB,OAK3B5E,aAAY,WACV,EAAKF,SAAU,EACZ,EAAKhJ,eAAiB,EAAKA,cAAcP,WAAaA,GAEvD,EAAKO,cAAc+N,gBAAgB3U,KAAK0U,GAE1C,EAAKvG,UAAUoC,WAAWyB,gBAXD,gDAc3BlC,aAAY,WACV,EAAKF,SAAU,KAfU,4D,qDAoB9BF,K,oFAA8B,SAAMrJ,EAAkBhB,EAAe3E,GAAvC,eAAAqO,EAAAY,OAAA,uDAC7B,EAAKC,SAAU,EADc,SAGb,GAHa,WAAAb,EAAA,MAIAc,GAAazK,YAAYiB,EAAUhB,EAAO3E,EADvD,KAHa,OAIvBgU,EAJuB,OAK3B5E,aAAY,WACV,EAAKF,SAAU,EACZ,EAAKhJ,eAAiB,EAAKA,cAAcP,WAAaA,GAEvD,EAAKO,cAAc+N,gBAAgB3U,KAAK0U,GAE1C,EAAKvG,UAAUoC,WAAWyB,gBAXD,gDAc3BlC,aAAY,WACV,EAAKF,SAAU,KAfU,4D,uDAoB9BF,K,oFAAgC,SAAMrJ,EAAkBQ,EAAmBC,GAA3C,eAAAiI,EAAAY,OAAA,uDAC/B,EAAKC,SAAU,EADgB,oBAAAb,EAAA,MAGFc,GAAavK,kBAAkBe,EAAUQ,EAAUC,IAHjD,OAGzB4N,EAHyB,OAI7B5E,aAAY,WACV,EAAKF,SAAU,EACZ,EAAKhJ,eAAiB,EAAKA,cAAcP,WAAaA,GAEvD,EAAKO,cAAc+N,gBAAgB3U,KAAK0U,EAAe5U,MAEzD,EAAKqO,UAAUoC,WAAWyB,gBAVC,gDAa7BlC,aAAY,WACV,EAAKF,SAAU,KAdY,4D,8CAmBhCF,K,oFAAuB,SAAMrJ,EAAkBT,GAAxB,SAAAmJ,EAAAY,OAAA,uDACtB,EAAKC,SAAU,EADO,oBAAAb,EAAA,MAGdc,GAAalK,eAAeU,EAAUT,IAHxB,OAIpBkK,aAAY,WACP,EAAKlJ,eAAiB,EAAKA,cAAcP,WAAaA,IAEvD,EAAKO,cAAc+N,gBAAkB,EAAK/N,cAAc+N,gBAAgBzD,QAAO,SAAAC,GAAC,OAAEA,EAAEhQ,KAAOyE,MAE7F,EAAKgK,SAAU,EACf,EAAKzB,UAAUoC,WAAWyB,gBAVR,gDAapBlC,aAAY,WACV,EAAKF,SAAU,KAdG,4D,wDAmBvBF,K,oFAAkC,SAAOrJ,GAAP,eAAA0I,EAAAY,OAAA,uDACjC,EAAKC,SAAU,EADkB,oBAAAb,EAAA,MAGhBc,GAAalJ,qBAAqBN,IAHlB,cAG3BuO,EAH2B,OAI/B9E,aAAY,WACV,EAAKlJ,cAAgBgO,EACrB,EAAKhF,SAAU,KANc,kBAQxBgF,GARwB,gCAU/B9E,aAAY,WACV,EAAKF,SAAU,KAXc,4D,iDAgBlCF,K,oFAA2B,SAAOrJ,GAAP,eAAA0I,EAAAY,OAAA,uDAC1B,EAAKC,SAAU,EADW,oBAAAb,EAAA,MAGTc,GAAajJ,cAAcP,IAHlB,cAGpBuO,EAHoB,OAIxB9E,aAAY,WACV,EAAKlJ,cAAgBgO,EACrB,EAAKhF,SAAU,KANO,kBAQjBgF,GARiB,gCAUxB9E,aAAY,WACV,EAAKF,SAAU,KAXO,4D,gDAgB3BF,K,oFAA0B,SAAM9J,EAAoBK,GAA1B,SAAA8I,EAAAY,OAAA,uDACzB,EAAKC,SAAU,EADU,oBAAAb,EAAA,MAGjBc,GAAa7J,iBAAiBJ,EAAYK,IAHzB,OAIvB6J,aAAY,WACV,GAAI,EAAKlJ,cAAe,CACtB,IAAI4M,EAAW,EAAK5M,cAAc+N,gBAAgBlB,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAOyE,KAChE4N,IACDA,EAASvN,MAAQA,GAGrB,EAAK2J,SAAU,EACf,EAAKzB,UAAUoC,WAAWyB,gBAZL,gDAevBlC,aAAY,WACV,EAAKF,SAAU,KAhBM,4D,ICrMRiF,I,GAEnB,WAAY1G,GAAuB,yBADnCA,eACkC,uxCAC9BC,KAAKD,UAAYA,G,6CAEpBoB,K,yEAAqB,K,iDACrBA,K,yEAA0D,Q,8CAC1DA,K,yEAAgD,Q,wDAChDA,K,yEAAwE,Q,2CACxEA,K,wEAA0C,M,kDAC1CA,K,wEAAsD,M,qDAEtDG,K,oFAA+B,SAAOrJ,GAAP,eAAA0I,EAAAY,OAAA,uDAC9B,EAAKC,SAAU,EADe,oBAAAb,EAAA,MAGbc,GAAkBtI,kBAAkBlB,IAHvB,cAGxByO,EAHwB,OAI5BhF,aAAY,WACV,EAAKvI,kBAAoBuN,EACzB,EAAKlF,SAAU,KANW,kBAQrBkF,GARqB,gCAU5BhF,aAAY,WACV,EAAKF,SAAU,KAXW,4D,0CAgB/BF,K,oFAAoB,SAAMrJ,EAAkBhB,EAAe3E,EAAa+G,EACvExB,EAAeyB,EAAkBC,GADd,eAAAoH,EAAAY,OAAA,uDAGnB,EAAKC,SAAU,EAHI,oBAAAb,EAAA,MAKGc,GAAkBrI,WAAWnB,EAAUhB,EAAO3E,EAAK+G,EAAaxB,EAAOyB,EAAUC,IALpF,cAKboN,EALa,OAMjBjF,aAAY,WACP,EAAKvI,mBACN,EAAKA,kBAAkByN,YAAYhV,KAAK+U,GAE1C,EAAKnF,SAAU,KAVA,kBAYVmF,GAZU,gCAcjBjF,aAAY,WACV,EAAKF,SAAU,KAfA,4D,8CAoBpBF,K,oFAAwB,SAAMrJ,EAAkBhB,EAC/CwC,EAAuBC,EAAqB7B,EAAeyB,EAAkBC,GADtD,eAAAoH,EAAAY,OAAA,uDAGvB,EAAKC,SAAU,EAHQ,oBAAAb,EAAA,MAKDc,GAAkBjI,eAAevB,EAAUhB,EAAOwC,EACpEC,EAAa7B,EAAOyB,EAAUC,IANX,cAKjBoN,EALiB,OAOrBjF,aAAY,WACN,EAAKvI,mBACL,EAAKA,kBAAkByN,YAAYhV,KAAK+U,GAE5C,EAAKnF,SAAU,KAXI,kBAadmF,GAbc,gCAerBjF,aAAY,WACV,EAAKF,SAAU,KAhBI,4D,gDAqBxBF,K,oFAA0B,SAAMrJ,EAAkBhB,EAAeY,EACxDyB,EAAkBC,EAAoBpC,GADrB,eAAAwJ,EAAAY,OAAA,uDAGzB,EAAKC,SAAU,EAHU,oBAAAb,EAAA,MAKHc,GAAkB9H,iBAAiB1B,EAAUhB,EAC/DY,EAAOyB,EAAUC,EAAYpC,IANR,cAKnBwP,EALmB,OAOvBjF,aAAY,WACP,EAAKvI,mBACN,EAAKA,kBAAkByN,YAAYhV,KAAK+U,EAAQjV,MAElD,EAAK8P,SAAU,KAXM,kBAahBmF,GAbgB,gCAevBjF,aAAY,WACV,EAAKF,SAAU,KAhBM,4D,6CAqB1BF,K,oFAAuB,SAAMpH,EAAmBjD,EAAe3E,EAC9D+G,EAAqBxB,EAAeyB,EAAkBC,GADhC,SAAAoH,EAAAY,OAAA,uDAGtB,EAAKC,SAAU,EAHO,oBAAAb,EAAA,MAKdc,GAAkBxH,cAAcC,EAAWjD,EAAO3E,EAAK+G,EAAaxB,EAAOyB,EAAUC,IALvE,OAMpBmI,aAAY,WACP,EAAKvI,kBAGR,EAAKqI,SAAU,KAVG,gDAapBE,aAAY,WACV,EAAKF,SAAU,KAdG,4D,iDAmBvBF,K,oFAA2B,SAAMpH,EAAmBjD,EACnDwC,EAAuBC,EAAqB7B,EAC5CyB,EAAkBC,GAFQ,SAAAoH,EAAAY,OAAA,uDAI1B,EAAKC,SAAU,EAJW,oBAAAb,EAAA,MAMlBc,GAAkBtH,kBAAkBD,EAAWjD,EACnDwC,EAAeC,EAAa7B,EAAOyB,EAAUC,IAPvB,OAQxBmI,aAAY,WACP,EAAKvI,kBAGR,EAAKqI,SAAU,KAZO,gDAexBE,aAAY,WACV,EAAKF,SAAU,KAhBO,4D,6CAqB3BF,K,oFAAuB,SAAMpH,GAAN,SAAAyG,EAAAY,OAAA,uDAEtB,EAAKC,SAAU,EAFO,oBAAAb,EAAA,MAIdc,GAAkBrH,cAAcF,IAJlB,OAKpBwH,aAAY,WACP,EAAKvI,oBACN,EAAKA,kBAAkByN,YAAc,EAAKzN,kBAAkByN,YAAY9D,QAAO,SAAAC,GAAC,OAAEA,EAAEhQ,KAAOmH,MAE7F,EAAKsH,SAAU,KAEjB,EAAKzB,UAAUoC,WAAWyB,aAXN,gDAapBlC,aAAY,WACV,EAAKF,SAAU,KAdG,4D,8CAmBvBF,K,oFAAuB,SAAMrJ,EAAkBT,GAAxB,SAAAmJ,EAAAY,OAAA,uDAEtB,EAAKC,SAAU,EAFO,oBAAAb,EAAA,MAIdc,GAAkBlK,eAAeU,EAAUT,IAJ7B,OAKpBkK,aAAY,WACP,EAAKvI,mBAAqB,EAAKA,kBAAkBpG,KAAOkF,IACzD,EAAKkB,kBAAkB0N,UAAY,EAAK1N,kBAAkB0N,UAAU/D,QAAO,SAAAC,GAAC,OAAEA,EAAEhQ,KAAOyE,MAEzF,EAAKgK,SAAU,KAEjB,EAAKzB,UAAUoC,WAAWyB,aAXN,gDAapBlC,aAAY,WACV,EAAKF,SAAU,KAdG,4D,0CAmBvBF,K,oFAAmB,SAAMpH,EAAmBI,EAAgBlH,GAAzC,eAAAuN,EAAAY,OAAA,uDAElB,EAAKC,SAAU,EAFG,oBAAAb,EAAA,MAIVc,GAAkBpH,WAAWH,EAAWI,EAAQlH,IAJtC,OAKb,EAAKoH,2BACFsM,EAAa,EAAKtM,yBAAyBuM,mBAAmB1B,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAOmH,QAEjF4M,EAAW1T,KAAOA,EAClB0T,EAAWE,cAAgB1M,GAG/B,EAAKyF,UAAUoC,WAAWyB,aAZV,uBAchB,EAAKpC,SAAU,EAdC,0E,4CAkBnBF,K,oFAAqB,SAAMpH,EAAmBI,EAAgBnD,GAAzC,iBAAAwJ,EAAAY,OAAA,uDAEpB,EAAKC,SAAU,EAFK,oBAAAb,EAAA,MAICc,GAAkBlH,aAAaL,EAAWI,EAAQnD,IAJnD,OAId8P,EAJc,OAKf,EAAKzM,2BACFsM,EAAa,EAAKtM,yBAAyBuM,mBAAmB1B,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAOmH,QAEjF4M,EAAWI,WAAaD,EAAOvV,KAAKwV,WACpCJ,EAAWK,aAAeF,EAAOvV,KAAKyV,aACtCL,EAAWM,cAAgBH,EAAOvV,KAAK0V,cACvCN,EAAWE,cAAgB1M,GAG/B,EAAKyF,UAAUoC,WAAWyB,aAdR,uBAgBlB,EAAKpC,SAAU,EAhBG,4E,4DAqBrBF,K,oFAAsC,SAAOrJ,GAAP,eAAA0I,EAAAY,OAAA,uDACrC,EAAKC,SAAU,EADsB,oBAAAb,EAAA,MAGTc,GAAkBjH,yBAAyBvC,IAHlC,cAG/BoP,EAH+B,OAInC3F,aAAY,WACV,EAAKlH,yBAA2B6M,EAChC,EAAK7F,SAAU,KANkB,kBAQ5B6F,GAR4B,gCAUnC3F,aAAY,WACV,EAAKF,SAAU,KAXkB,4D,sDAiBtCF,K,oFAAgC,SAAOpH,GAAP,eAAAyG,EAAAY,OAAA,uDAC/B,EAAKC,SAAU,EADgB,oBAAAb,EAAA,MAGLc,GAAkBhH,sBAAsBP,IAHnC,cAGzBoN,EAHyB,OAI7B5F,aAAY,WACV,EAAK6F,mBAAqBD,EAC1B,EAAK9F,SAAU,KANY,kBAQtB8F,GARsB,gCAU7B5F,aAAY,WACV,EAAKF,SAAU,KAXY,4D,0CAgBhCF,K,oFAAoB,SAAOpH,GAAP,eAAAyG,EAAAY,OAAA,uDACnB,EAAKC,SAAU,EADI,oBAAAb,EAAA,MAGGc,GAAkB/G,WAAWR,IAHhC,cAGbyM,EAHa,OAIjBjF,aAAY,WACV,EAAKF,SAAU,EACf,EAAKgG,eAAiBb,KANP,kBAQVA,GARU,gCAUjBjF,aAAY,WACV,EAAKF,SAAU,KAXA,4D,+CAgBpBF,K,oFAAyB,SAAOpH,EAAmBzF,EAAkBmG,EAAeC,GAA3D,SAAA8F,EAAAY,OAAA,uDACxB,EAAKC,SAAU,EADS,oBAAAb,EAAA,MAGhBc,GAAkB9G,gBAAgBT,EAAWzF,EAAUmG,EAAOC,IAH9C,OAItB6G,aAAY,WAEV,GADA,EAAKF,SAAU,EACZ,EAAK+F,mBAAmB,CACzB,IAAIE,EAAa,EAAKF,mBAAmBlC,MAAK,SAAAtC,GAAC,OAAEA,EAAEtO,WAAaA,KAC7DgT,IACDA,EAAW7M,MAAQA,EACnB6M,EAAW5M,cAAgBA,OAVX,gDAetB6G,aAAY,WACV,EAAKF,SAAU,KAhBK,4D,yDAqBzBF,K,oFAAkC,SAAMrJ,EAAkBhB,EAAeR,GAAvC,eAAAkK,EAAAY,OAAA,uDACjC,EAAKC,SAAU,EADkB,SAGrB,GAHqB,WAAAb,EAAA,MAIAc,GAAkBzK,YAAYiB,EAAUhB,EAD7D,GACyER,IAJpD,OAI3BiR,EAJ2B,OAK/BhG,aAAY,WACV,EAAKF,SAAU,EACZ,EAAKrI,mBAAqB,EAAKA,kBAAkBpG,KAAOkF,GAEzD,EAAKkB,kBAAkB0N,UAAUjV,KAAK8V,GAExC,EAAKlG,SAAU,KAXc,gDAc/BE,aAAY,WACV,EAAKF,SAAU,KAfc,4D,yDAoBlCF,K,oFAAkC,SAAMrJ,EAAkBhB,EAAe3E,GAAvC,eAAAqO,EAAAY,OAAA,uDACjC,EAAKC,SAAU,EADkB,SAGjB,GAHiB,WAAAb,EAAA,MAIAc,GAAkBzK,YAAYiB,EAAUhB,EAAO3E,EADhE,KAHiB,OAI3BoV,EAJ2B,OAK/BhG,aAAY,WACV,EAAKF,SAAU,EACZ,EAAKrI,mBAAqB,EAAKA,kBAAkBpG,KAAOkF,GAEzD,EAAKkB,kBAAkB0N,UAAUjV,KAAK8V,GAExC,EAAKlG,SAAU,KAXc,gDAc/BE,aAAY,WACV,EAAKF,SAAU,KAfc,4D,2DAoBlCF,K,oFAAoC,SAAMrJ,EAAkBQ,EAAmBC,GAA3C,eAAAiI,EAAAY,OAAA,uDACnC,EAAKC,SAAU,EADoB,oBAAAb,EAAA,MAGFc,GAAkBvK,kBAAkBe,EAAUQ,EAAUC,IAHtD,OAG7BgP,EAH6B,OAIjChG,aAAY,WACV,EAAKF,SAAU,EACZ,EAAKrI,mBAAqB,EAAKA,kBAAkBpG,KAAOkF,GAEzD,EAAKkB,kBAAkB0N,UAAUjV,KAAK8V,EAAmBhW,MAE3D,EAAK8P,SAAU,KAEjB,EAAKzB,UAAUoC,WAAWyB,aAZO,gDAcjClC,aAAY,WACV,EAAKF,SAAU,KAfgB,4D,wCAoBpCF,K,oFAAkB,SAAMzH,EAAsBhC,GAA5B,SAAA8I,EAAAY,OAAA,uDACjB,EAAKC,SAAU,EADE,oBAAAb,EAAA,MAGTc,GAAkB7H,SAASC,EAAchC,IAHhC,OAIf6J,aAAY,WACV,GAAI,EAAKvI,kBAAmB,CAC1B,IAAI2N,EAAa,EAAK3N,kBAAkByN,YAAYvB,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAO8G,KAClEiN,IACDA,EAAWjP,MAAQA,GAGvB,EAAK2J,SAAU,KAXF,gDAcfE,aAAY,WACV,EAAKF,SAAU,KAfF,4D,2CAoBlBF,K,oFAAqB,SAAMzH,EAAsBP,GAA5B,SAAAqH,EAAAY,OAAA,uDACpB,EAAKC,SAAU,EADK,oBAAAb,EAAA,MAGZc,GAAkB3H,YAAYD,EAAcP,IAHhC,OAIlBoI,aAAY,WACV,GAAI,EAAKvI,kBAAmB,CAC1B,IAAI2N,EAAa,EAAK3N,kBAAkByN,YAAYvB,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAO8G,KAClEiN,IACDA,EAAWxN,SAAW,IAAI+M,KAAK/M,IAGnC,EAAKkI,SAAU,KAXC,gDAclBE,aAAY,WACV,EAAKF,SAAU,KAfC,4D,8CAoBrBF,K,oFAAwB,SAAMzH,EAAsBG,GAA5B,SAAA2G,EAAAY,OAAA,uDACvB,EAAKC,SAAU,EADQ,oBAAAb,EAAA,MAGfc,GAAkB1H,eAAeF,EAAcG,IAHhC,OAIrB0H,aAAY,WACV,GAAG,EAAKvI,kBAAmB,CACzB,IAAI2N,EAAa,EAAK3N,kBAAkByN,YAAYvB,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAO8G,KAClEiN,IACDA,EAAW9M,YAAcA,GAG7B,EAAKwH,SAAU,KAXI,gDAcrBE,aAAY,WACV,EAAKF,SAAU,KAfI,4D,gDAoBxBF,K,oFAA0B,SAAM9J,EAAoBK,GAA1B,SAAA8I,EAAAY,OAAA,uDACzB,EAAKC,SAAU,EADU,oBAAAb,EAAA,MAGjBc,GAAkB7J,iBAAiBJ,EAAYK,IAH9B,OAIvB6J,aAAY,WACV,GAAI,EAAKvI,kBAAmB,CAC1B,IAAIiM,EAAW,EAAKjM,kBAAkB0N,UAAUxB,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAOyE,KAC9D4N,IACDA,EAASvN,MAAQA,GAGrB,EAAK2J,SAAU,KAXM,gDAcvBE,aAAY,WACV,EAAKF,SAAU,KAfM,4D,+CAoB1BF,K,oFAAyB,SAAMzH,GAAN,eAAA8G,EAAAY,OAAA,uDACxB,EAAKC,SAAU,EADS,oBAAAb,EAAA,MAGNc,GAAkB3G,eAAejB,IAH3B,OAGlB8N,EAHkB,OAItBjG,aAAY,WACV,EAAKF,SAAU,EACf,EAAKvC,YAAc0I,KANC,gDAStBjG,aAAY,WACV,EAAKF,SAAU,KAVK,4D,6CAezBF,K,oFAAuB,SAAMzH,EAAsBtI,GAA5B,eAAAoP,EAAAY,OAAA,uDACtB,EAAKC,SAAU,EADO,oBAAAb,EAAA,MAGGc,GAAkB1G,cAAclB,EAActI,IAHjD,OAGhBqW,EAHgB,OAIpBlG,aAAY,WACV,EAAKF,SAAU,EACf,EAAKvC,YAAYrN,KAAKgW,GACtB,EAAK7H,UAAUoC,WAAWyB,gBAPR,gDAUpBlC,aAAY,WACV,EAAKF,SAAU,KAXG,4D,ICjbLqG,I,GAEnB,WAAY9H,GAAuB,yBADnCA,eACkC,yMAC9BC,KAAKD,UAAYA,G,6CAGpBoB,K,yEAAqB,K,yCACrBA,K,wEAAmC,M,0CAEnCG,K,oFAAoB,SAAMpG,EAAe5F,EAAeoC,EAAe2B,GAAnD,SAAAsH,EAAAY,OAAA,uDAEnB,EAAKC,SAAU,EAFI,oBAAAb,EAAA,MAIXc,GAAgBxG,WAAWC,EAAO5F,EAAOoC,EAAO2B,IAJrC,OAKjBqI,aAAY,WACV,EAAKF,SAAU,KANA,gDASjBE,aAAY,WACV,EAAKF,SAAU,KAVA,4D,2CAepBF,K,oFAAqB,0BAAAX,EAAAY,OAAA,uDACpB,EAAKC,SAAU,EADK,oBAAAb,EAAA,MAGAc,GAAgBtG,gBAHhB,OAGZ2M,EAHY,OAIhBpG,aAAY,WACR,EAAKqG,UAAYD,EACjB,EAAKtG,SAAU,KANH,gDAShBE,aAAY,WACR,EAAKF,SAAU,KAVH,4D,iDAerBF,K,oFAA2B,SAAMvO,GAAN,SAAA4N,EAAAY,OAAA,uDAC1B,EAAKC,SAAU,EADW,oBAAAb,EAAA,MAGlBc,GAAgBrG,kBAAkBrI,IAHhB,OAIxB2O,aAAY,WACV,EAAKF,SAAU,EACf,IAAIwG,EAAU,EAAKD,UAAU1C,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAOA,KAC3CiV,IACDA,EAAQC,SAAU,MARE,gDAYxBvG,aAAY,WACV,EAAKF,SAAU,KAbO,4D,aCvCT0G,I,GAEnB,WAAYnI,GAAuB,yBADnCA,eACkC,mhBAC9BC,KAAKD,UAAYA,G,6CAEpBoB,K,yEAAqB,K,sCACrBA,K,yEAAoC,Q,+CACpCA,K,yEAAmD,Q,yCACnDA,K,wEAA8C,M,2CAC9CA,K,wEAA+C,M,iDAE/CG,K,oFAA2B,SAAMxL,GAAN,eAAA6K,EAAAY,OAAA,uDAC1B,EAAKC,SAAU,EADW,oBAAAb,EAAA,MAGTc,GAAShG,YAAY3F,IAHZ,OAGpBqS,EAHoB,OAIxBzG,aAAY,WACV,EAAKF,SAAS,EACd,EAAK4G,OAASD,KANQ,gDASxBzG,aAAY,WACV,EAAKF,SAAU,KAVO,4D,iDAe3BF,K,oFAA2B,SAAMxL,GAAN,eAAA6K,EAAAY,OAAA,uDAC1B,EAAKC,SAAU,EADW,oBAAAb,EAAA,MAGTc,GAAS/F,YAAY5F,IAHZ,OAGpBqS,EAHoB,OAIxBzG,aAAY,WACV,EAAKF,SAAS,EACd,EAAK4G,OAASD,KANQ,gDASxBzG,aAAY,WACV,EAAKF,SAAU,KAVO,4D,4CAe3BF,K,oFAAsB,SAAM1F,GAAN,eAAA+E,EAAAY,OAAA,uDACrB,EAAKC,SAAU,EADM,oBAAAb,EAAA,MAGHc,GAAS9F,aAAaC,IAHnB,OAGfyM,EAHe,OAInB3G,aAAY,WACV,EAAKF,SAAS,EACd,EAAK8G,gBAAkBD,KANN,gDASnB3G,aAAY,WACV,EAAKF,SAAU,KAVE,4D,2CAetBF,K,oFAAqB,SAAMxL,EAAoB4B,EAAeoE,EAAoBvK,GAA7D,eAAAoP,EAAAY,OAAA,uDACpB,EAAKC,SAAU,EADK,oBAAAb,EAAA,MAGGc,GAAS5F,YAAY/F,EAAY4B,EAAOoE,EAAWvK,IAHtD,OAGdgX,EAHc,OAIlB7G,aAAY,WACV,EAAKF,SAAU,EACZ,EAAK4G,QAAU,EAAKA,OAAOtS,aAAeA,GAC3C,EAAKsS,OAAOI,UAAU5W,KAAK2W,GAE7B,EAAKxI,UAAUoC,WAAWyB,gBATV,gDAYlBlC,aAAY,WACV,EAAKF,SAAU,KAbC,4D,yCAkBrBF,K,oFAAmB,SAAM1F,EAAoBrK,GAA1B,eAAAoP,EAAAY,OAAA,uDAClB,EAAKC,SAAU,EADG,oBAAAb,EAAA,MAGGc,GAAS1F,UAAUH,EAAYrK,IAHlC,OAGZmR,EAHY,OAIhBhB,aAAY,WACV,EAAKF,SAAU,EACZ,EAAK8G,iBAAmB,EAAKA,gBAAgB1M,aAAeA,GAC3D,EAAK0M,gBAAgBG,QAAQ7W,KAAK8Q,GAEtC,EAAK3C,UAAUoC,WAAWyB,gBATZ,gDAYhBlC,aAAY,WACV,EAAKF,SAAU,KAbD,4D,4CAkBnBF,K,oFAAsB,SAAMrF,EAAkB1K,GAAxB,SAAAoP,EAAAY,OAAA,uDACrB,EAAKC,SAAU,EADM,oBAAAb,EAAA,MAGbc,GAASzF,aAAaC,EAAU1K,IAHnB,OAInBmQ,aAAY,WACV,EAAKF,SAAU,EACZ,EAAK8G,kBACJ,EAAKA,gBAAgBG,QAAU,EAAKH,gBAAgBG,QAAQxH,KAAI,SAAAyH,GAAG,OACjEA,EAAIzM,WAAaA,EAAjB,gBAAgCyM,EAAhC,CAAqCnX,QAASA,IAAWmX,MAE/D,EAAK3I,UAAUoC,WAAWyB,gBAVT,gDAanBlC,aAAY,WACV,EAAKF,SAAU,KAdE,4D,4CAmBtBF,K,oFAAsB,0BAAAX,EAAAY,OAAA,uDACrB,EAAKC,SAAU,EADM,oBAAAb,EAAA,MAGJc,GAASvF,gBAHL,cAGfyM,EAHe,OAInBjH,aAAY,WACV,EAAK8G,UAAYG,EACjB,EAAKnH,SAAS,KANG,kBAQZmH,GARY,gCAUnBjH,aAAY,WACV,EAAKF,SAAU,KAXE,4D,8CAgBtBF,K,oFAAwB,0BAAAX,EAAAY,OAAA,uDACvB,EAAKC,SAAU,EADQ,oBAAAb,EAAA,MAGNc,GAAStF,kBAHH,cAGjBwM,EAHiB,OAIrBjH,aAAY,WACV,EAAKkH,YAAcD,EACnB,EAAKnH,SAAS,KANK,kBAQdmH,GARc,gCAUrBjH,aAAY,WACV,EAAKF,SAAU,KAXI,4D,IC9HNqH,I,GAEnB,WAAY9I,GAAuB,yBADnCA,eACkC,2yBAChCC,KAAKD,UAAYA,G,6CAElBoB,K,yEAAqB,K,sCACrBA,K,wEAA8B,M,4CAC9BA,K,yEAAyC,Q,0CACzCA,K,wEAAsC,M,0CAEtCG,K,oFAAoB,0BAAAX,EAAAY,OAAA,uDACnB,EAAKC,SAAU,EADI,oBAAAb,EAAA,MAGFc,GAAY3O,QAHV,OAGbgW,EAHa,OAIjBpH,aAAY,WACV,EAAKF,SAAU,EACf,EAAKuH,OAASD,KANC,gDASjBpH,aAAY,WACR,EAAKF,SAAU,KAVF,4D,mDAepBF,K,oFAA6B,0BAAAX,EAAAY,OAAA,uDAC5B,EAAKC,SAAU,EADa,oBAAAb,EAAA,MAGXc,GAAYpF,iBAHD,OAGtByM,EAHsB,OAI1BpH,aAAY,WACV,EAAKF,SAAU,EACf,EAAKuH,OAASD,KANU,gDAS1BpH,aAAY,WACR,EAAKF,SAAU,KAVO,4D,wCAe7BF,K,yEAAkB,SAAM/E,EAAcC,EACrCC,EAAsBC,EAAsBC,EAC5CC,EAAyBC,EAAqBtD,GAF7B,SAAAoH,EAAAY,OAAA,2EAAAZ,EAAA,MAITc,GAAYnF,SAASC,EAAMC,EAAaC,EAAaC,EAAaC,EACtEC,EAAgBC,EAAYtD,IALf,OAMf5H,GAAQC,KAAK,WANE,+CAQf8P,aAAY,WACV,MAAM,EAAN,MATa,2D,wCAclBJ,K,oFAAkB,SAAMvE,EAAiBR,EACxCE,EAAsBC,EAAsBC,EAC5CC,EAAyBC,EAAqBtD,GAF7B,SAAAoH,EAAAY,OAAA,2EAAAZ,EAAA,MAITc,GAAY3E,SAASC,EAASR,EAAME,EAAaC,EAAaC,EAClEC,EAAgBC,EAAYtD,IALf,OAMf,EAAKwG,UAAUoC,WAAWyB,aANX,+CAQflC,aAAY,WACV,MAAM,EAAN,MATa,2D,wCAclBJ,K,oFAAkB,SAAMvE,GAAN,eAAA4D,EAAAY,OAAA,uDACjB,EAAKC,SAAU,EADE,oBAAAb,EAAA,MAGGc,GAAYzE,SAASD,IAHxB,cAGXrF,EAHW,OAIfgK,aAAY,WACV,EAAKF,SAAU,EACf,EAAKwH,aAAetR,KANP,kBAQRA,GARQ,gCAUfgK,aAAY,WACV,EAAKF,SAAU,KAXF,4D,4CAgBlBF,K,oFAAsB,SAAMvE,EAAiBI,EAAkBtF,EAAeuF,EAC7EnG,EAAeR,EAAiBnE,GADX,eAAAqO,EAAAY,OAAA,uDAErB,EAAKC,SAAU,EAFM,oBAAAb,EAAA,MAIDc,GAAYvE,aAAaH,EAASI,EAAUtF,EAAOuF,EAAWnG,EAAOR,EAASnE,IAJ7E,OAIfoF,EAJe,OAKnBgK,aAAY,WACV,EAAKF,SAAU,EACZ,EAAKwH,cAAgB,EAAKA,aAAajW,KAAOgK,GAC/C,EAAKiM,aAAaC,WAAWrX,KAAK8F,GAEpC,EAAKqI,UAAUoC,WAAWyB,gBAVT,gDAanBlC,aAAY,WACV,EAAKF,SAAU,KAdE,4D,oDAmBtBF,K,oFAA8B,SAAMvE,EAAiBrD,EAAqByD,GAA5C,SAAAwD,EAAAY,OAAA,uDAC7B,EAAKC,SAAU,EADc,oBAAAb,EAAA,MAGrBc,GAAYpE,qBAAqBN,EAASrD,EAAayD,IAHlC,OAI3BuE,aAAY,WAEV,GADA,EAAKF,SAAU,EACZ,EAAKwH,cAAgB,EAAKA,aAAajW,KAAOgK,EAAS,CACxD,IAAImM,EAAY,EAAKF,aAAaC,WAAW5D,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAO2G,KAC3DwP,IACDA,EAAU/L,SAAWA,GAGzB,EAAK4C,UAAUoC,WAAWyB,gBAZD,gDAe3BlC,aAAY,WACV,EAAKF,SAAU,KAhBU,4D,iDAqB9BF,K,oFAA2B,SAAMvE,EAAiBrD,EAAqB7B,EAAeuF,GAA3D,SAAAuD,EAAAY,OAAA,uDAC1B,EAAKC,SAAU,EADW,oBAAAb,EAAA,MAGlBc,GAAYnE,kBAAkBP,EAASrD,EAAa7B,EAAOuF,IAHzC,OAIxBsE,aAAY,WAEV,GADA,EAAKF,SAAU,EACZ,EAAKwH,cAAgB,EAAKA,aAAajW,KAAOgK,EAAS,CACxD,IAAImM,EAAY,EAAKF,aAAaC,WAAW5D,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAO2G,KAC3DwP,IACDA,EAAUrR,MAAQA,GAGtB,EAAKkI,UAAUoC,WAAWyB,gBAZJ,gDAexBlC,aAAY,WACV,EAAKF,SAAU,KAhBO,4D,oDAqB3BF,K,oFAA8B,SAAMvE,EAAiBrD,EAAqB8D,GAA5C,SAAAmD,EAAAY,OAAA,uDAC7B,EAAKC,SAAU,EADc,oBAAAb,EAAA,MAGrBc,GAAYlE,qBAAqBR,EAASrD,EAAa8D,IAHlC,OAI3BkE,aAAY,WAEV,GADA,EAAKF,SAAU,EACZ,EAAKwH,cAAgB,EAAKA,aAAajW,KAAOgK,EAAS,CACxD,IAAImM,EAAY,EAAKF,aAAaC,WAAW5D,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAO2G,KAC3DwP,IACDA,EAAU1L,SAAWA,GAGzB,EAAKuC,UAAUoC,WAAWyB,gBAZD,gDAe3BlC,aAAY,WACV,EAAKF,SAAU,KAhBU,4D,4CAqB9BF,K,oFAAsB,SAAMvE,EAAiBrD,EAAqBzC,EAAe3E,GAA3D,SAAAqO,EAAAY,OAAA,uDACrB,EAAKC,SAAU,EADM,oBAAAb,EAAA,MAGbc,GAAYhE,aAAaV,EAASrD,EAAazC,EAAO3E,IAHzC,OAInBoP,aAAY,WAEV,GADA,EAAKF,SAAU,EACZ,EAAKwH,cAAgB,EAAKA,aAAajW,KAAOgK,EAAS,CACxD,IAAImM,EAAY,EAAKF,aAAaC,WAAW5D,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAO2G,KAC3DwP,IACDA,EAAUjS,MAAQA,EAClBiS,EAAU5W,IAAMA,GAGpB,EAAKyN,UAAUoC,WAAWyB,gBAbT,gDAgBnBlC,aAAY,WACV,EAAKF,SAAU,KAjBE,4D,0CAsBtBF,K,oFAAmB,SAAM5H,EAAqBtG,GAA3B,eAAAuN,EAAAY,OAAA,uDAElB,EAAKC,SAAU,EAFG,oBAAAb,EAAA,MAIVc,GAAYpH,WAAWX,EAAatG,IAJ1B,OAKb,EAAK4V,eACFE,EAAY,EAAKF,aAAaC,WAAW5D,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAO2G,QAE5DwP,EAAU9V,KAAOA,GAGrB,EAAK2M,UAAUoC,WAAWyB,aAXV,uBAahB,EAAKpC,SAAU,EAbC,0E,8CAiBnBF,K,oFAAuB,SAAM5H,EAAqBvC,GAA3B,iBAAAwJ,EAAAY,OAAA,uDAEtB,EAAKC,SAAU,EAFO,oBAAAb,EAAA,MAIDc,GAAY/D,eAAehE,EAAavC,IAJvC,OAIhB8P,EAJgB,OAKjB,EAAK+B,eACFE,EAAY,EAAKF,aAAaC,WAAW5D,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAO2G,QAE5DwP,EAAUC,qBAAuBlC,EAAOvV,KAAKyX,qBAC7CD,EAAUlP,YAAciN,EAAOvV,KAAKsI,YACpCkP,EAAUE,gBAAkB,IAGhC,EAAKrJ,UAAUoC,WAAWyB,aAbN,uBAepB,EAAKpC,SAAU,EAfK,4E,wDAmBvBF,K,oFAAkC,SAAMvE,EAAiBrD,EAAqBpH,GAA5C,SAAAqO,EAAAY,OAAA,uDACjC,EAAKC,SAAU,EADkB,oBAAAb,EAAA,MAGzBc,GAAY7D,yBAAyBb,EAASrD,EAAapH,IAHlC,OAI/BoP,aAAY,WAEV,GADA,EAAKF,SAAU,EACZ,EAAKwH,cAAgB,EAAKA,aAAajW,KAAOgK,EAAS,CACxD,IAAImM,EAAY,EAAKF,aAAaC,WAAW5D,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAO2G,KAC3DwP,IACDA,EAAUC,qBAAuB,GACjCD,EAAUlP,YAAc1H,EACxB4W,EAAUE,gBAAkB,IAGhC,EAAKrJ,UAAUoC,WAAWyB,gBAdG,gDAiB/BlC,aAAY,WACV,EAAKF,SAAU,KAlBc,4D,2DAuBlCF,K,oFAAqC,SAAMvE,EAAiBrD,EAAqBjD,GAA5C,SAAAkK,EAAAY,OAAA,uDACpC,EAAKC,SAAU,EADqB,oBAAAb,EAAA,MAG5Bc,GAAY9D,4BAA4BZ,EAASrD,EAAajD,IAHlC,OAIlCiL,aAAY,WAEV,GADA,EAAKF,SAAU,EACZ,EAAKwH,cAAgB,EAAKA,aAAajW,KAAOgK,EAAS,CACxD,IAAImM,EAAY,EAAKF,aAAaC,WAAW5D,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAO2G,KAC3DwP,IACDA,EAAUC,qBAAuB,GACjCD,EAAUlP,YAAc,GACxBkP,EAAUE,gBAAkB3S,GAGhC,EAAKsJ,UAAUoC,WAAWyB,gBAdM,gDAiBlClC,aAAY,WACV,EAAKF,SAAU,KAlBiB,4D,8CAuBrCF,K,oFAAwB,SAAMvE,GAAN,eAAA4D,EAAAY,OAAA,uDACvB,EAAKC,SAAU,EADQ,oBAAAb,EAAA,MAGHc,GAAYxE,cAAcF,IAHvB,OAGjBsM,EAHiB,OAIrB3H,aAAY,WACV,EAAKF,SAAU,EACf,EAAKyH,WAAaI,KANC,gDASrB3H,aAAY,WACV,EAAKF,SAAU,KAVI,4D,IC3QN8H,I,GAEnB,WAAYvJ,GAAuB,yBADnCA,eACkC,u9BAC9BC,KAAKD,UAAYA,G,6CAEpBoB,K,yEAAqB,K,4CACrBA,K,yEAA+C,Q,4CAC/CA,K,yEAAsD,Q,4CACtDA,K,yEAAsD,Q,2CACtDA,K,wEAA0C,M,kDAC1CA,K,wEAAgD,M,gDAEhDG,K,oFAA0B,SAAOxL,GAAP,eAAA6K,EAAAY,OAAA,uDACzB,EAAKC,SAAU,EADU,oBAAAb,EAAA,MAGPc,GAAkB3D,gBAAgBhI,IAH3B,cAGnByT,EAHmB,OAIvB7H,aAAY,WACV,EAAKF,SAAU,KALM,kBAOhB+H,GAPgB,gCASvB7H,aAAY,WACV,EAAKF,SAAU,KAVM,4D,8CAe1BF,K,oFAAwB,SAAMxL,EAAoBiH,EAAiBiB,GAA3C,SAAA2C,EAAAY,OAAA,uDACvB,EAAKC,SAAU,EADQ,oBAAAb,EAAA,MAGfc,GAAkB1D,eAAejI,EAAYiH,EAASiB,IAHvC,OAIrB0D,aAAY,WACV,EAAKF,SAAU,KALI,gDAQrBE,aAAY,WACV,EAAKF,SAAU,KATI,4D,oDAcxBF,K,oFAA8B,SAAM7H,GAAN,eAAAkH,EAAAY,OAAA,uDAC7B,EAAKC,SAAU,EADc,oBAAAb,EAAA,MAGVc,GAAkBxD,oBAAoBxE,IAH5B,cAGvB+P,EAHuB,OAI3B9H,aAAY,WACV,EAAKF,SAAU,KALU,kBAOpBgI,GAPoB,gCAS3B9H,aAAY,WACV,EAAKF,SAAU,KAVU,4D,kDAe9BF,K,oFAA4B,SAAM7H,EAAuBgQ,GAA7B,SAAA9I,EAAAY,OAAA,uDAC3B,EAAKC,SAAU,EADY,oBAAAb,EAAA,MAGnBc,GAAkBvD,mBAAmBzE,EAAegQ,IAHjC,OAIzB/H,aAAY,WACV,EAAKF,SAAU,KALQ,gDAQzBE,aAAY,WACV,EAAKF,SAAU,KATQ,4D,qDAc5BF,K,oFAA+B,SAAM7H,EAAuBC,GAA7B,SAAAiH,EAAAY,OAAA,uDAC9B,EAAKC,SAAU,EADe,oBAAAb,EAAA,MAGtBc,GAAkBtD,sBAAsB1E,EAAeC,IAHjC,OAI5BgI,aAAY,WACV,EAAKF,SAAU,KALW,gDAQ5BE,aAAY,WACV,EAAKF,SAAU,KATW,4D,kDAc/BF,K,oFAA4B,SAAM7H,EAAuBC,EAAqB8E,GAAlD,SAAAmC,EAAAY,OAAA,uDAC3B,EAAKC,SAAU,EADY,oBAAAb,EAAA,MAGnBc,GAAkBlD,eAAe9E,EAAeC,EAAa8E,IAH1C,OAIzBkD,aAAY,WACV,EAAKF,SAAU,KALQ,gDAQzBE,aAAY,WACV,EAAKF,SAAU,KATQ,4D,kDAc5BF,K,oFAA4B,SAAM7H,EAAuBC,EAAqBgF,GAAlD,SAAAiC,EAAAY,OAAA,uDAC3B,EAAKC,SAAU,EADY,oBAAAb,EAAA,MAGnBc,GAAkBhD,eAAehF,EAAeC,EAAagF,IAH1C,OAIzBgD,aAAY,WACV,EAAKF,SAAU,KALQ,gDAQzBE,aAAY,WACV,EAAKF,SAAU,KATQ,4D,8CAc5BF,K,oFAAwB,SAAM7H,EAAuBC,EAAqBkF,GAAlD,SAAA+B,EAAAY,OAAA,uDACvB,EAAKC,SAAU,EADQ,oBAAAb,EAAA,MAGfc,GAAkB9C,WAAWlF,EAAeC,EAAakF,IAH1C,OAIrB8C,aAAY,WACV,EAAKF,SAAU,KALI,gDAQrBE,aAAY,WACV,EAAKF,SAAU,KATI,4D,+CAcxBF,K,oFAAyB,SAAM7H,GAAN,eAAAkH,EAAAY,OAAA,uDACxB,EAAKC,SAAU,EADS,oBAAAb,EAAA,MAGJc,GAAkBrD,eAAe3E,IAH7B,OAGlB/B,EAHkB,OAItBgK,aAAY,WACV,EAAKF,SAAU,EACf,EAAKwH,aAAetR,KANA,gDAStBgK,aAAY,WACV,EAAKF,SAAU,KAVK,4D,sDAezBF,K,oFAAgC,SAAM7H,GAAN,eAAAkH,EAAAY,OAAA,uDAC/B,EAAKC,SAAU,EADgB,oBAAAb,EAAA,MAGXc,GAAkBpD,sBAAsB5E,IAH7B,OAGzB/B,EAHyB,OAI7BgK,aAAY,WACV,EAAKF,SAAU,EACf,EAAKkI,aAAehS,KANO,gDAS7BgK,aAAY,WACV,EAAKF,SAAU,KAVY,4D,sDAehCF,K,oFAAgC,SAAM7H,GAAN,eAAAkH,EAAAY,OAAA,uDAC/B,EAAKC,SAAU,EADgB,oBAAAb,EAAA,MAGXc,GAAkBnD,sBAAsB7E,IAH7B,OAGzB/B,EAHyB,OAI7BgK,aAAY,WACV,EAAKF,SAAU,EACf,EAAKmI,aAAejS,KANO,gDAS7BgK,aAAY,WACV,EAAKF,SAAU,KAVY,4D,+CAehCF,K,oFAAyB,SAAM7H,EAAuBC,GAA7B,eAAAiH,EAAAY,OAAA,uDACxB,EAAKC,SAAU,EADS,oBAAAb,EAAA,MAGNc,GAAkB3G,eAAerB,EAAeC,IAH1C,OAGlBiO,EAHkB,OAItBjG,aAAY,WACV,EAAKF,SAAU,EACf,EAAKvC,YAAc0I,KANC,gDAStBjG,aAAY,WACV,EAAKF,SAAU,KAVK,4D,6CAezBF,K,oFAAuB,SAAM7H,EAAuBC,EAAqBnI,GAAlD,eAAAoP,EAAAY,OAAA,uDACtB,EAAKC,SAAU,EADO,oBAAAb,EAAA,MAGGc,GAAkB1G,cAActB,EAAeC,EAAanI,IAH/D,OAGhBqW,EAHgB,OAIpBlG,aAAY,WACV,EAAKF,SAAU,EACf,EAAKvC,YAAYrN,KAAKgW,GACtB,EAAK7H,UAAUoC,WAAWyB,gBAPR,gDAUpBlC,aAAY,WACV,EAAKF,SAAU,KAXG,4D,0CAgBvBF,K,oFAAmB,SAAM7H,EAAuBC,EAAqBY,EAAgBlH,GAAlE,eAAAuN,EAAAY,OAAA,uDAElB,EAAKC,SAAU,EAFG,oBAAAb,EAAA,MAIVc,GAAkBpH,WAAWZ,EAAeC,EAAaY,EAAQlH,IAJvD,OAKb,EAAKuW,eACFT,EAAY,EAAKS,aAAaV,WAAW5D,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAO2G,QAE5DwP,EAAUU,aAAetP,EACzB4O,EAAU7O,WAAajH,GAG3B,EAAK2M,UAAUoC,WAAWyB,aAZV,uBAchB,EAAKpC,SAAU,EAdC,0E,sDAmBnBF,K,oFAAgC,SAAO7H,EAAuBC,GAA9B,eAAAiH,EAAAY,OAAA,uDAC/B,EAAKC,SAAU,EADgB,oBAAAb,EAAA,MAGbc,GAAkB5C,eAAepF,EAAeC,IAHnC,cAGzBmQ,EAHyB,OAI7BnI,aAAY,WACV,EAAK6F,mBAAqBsC,EAC1B,EAAKrI,SAAU,KANY,kBAQtBqI,GARsB,gCAU7BnI,aAAY,WACV,EAAKF,SAAU,KAXY,4D,6CAgBhCF,K,oFAAsB,SAAM7H,EAAuBC,EAClDoQ,EAAmBvY,GADE,SAAAoP,EAAAY,OAAA,uDAErB,EAAKC,SAAU,EAFM,oBAAAb,EAAA,MAIbc,GAAkB3C,iBAAiBrF,EAAeC,EAAaoQ,EAAWvY,IAJ7D,OAKnBmQ,aAAY,WACV,EAAKF,SAAU,EACf,EAAKzB,UAAUoC,WAAWyB,gBAPT,gDAUnBlC,aAAY,WACV,EAAKF,SAAU,KAXE,4D,ICjPJuI,I,GAEnB,WAAYhK,GAAuB,yBADnCA,eACkC,0KAC9BC,KAAKD,UAAYA,G,6CAEpBoB,K,yEAAqB,K,2CACrBA,K,wEAA4C,M,8CAE5CG,K,oFAAwB,SAAM7H,GAAN,eAAAkH,EAAAY,OAAA,uDACvB,EAAKC,SAAU,EADQ,oBAAAb,EAAA,MAGLc,GAAiBxC,YAAYxF,IAHxB,cAGjBkO,EAHiB,OAIrBjG,aAAY,WACV,EAAKzC,YAAc0I,EACnB,EAAKnG,SAAS,KANK,kBAQdmG,GARc,gCAUrBjG,aAAY,WACV,EAAKF,SAAU,KAXI,4D,oDAgBxBF,K,oFAA8B,SAAMnC,GAAN,eAAAwB,EAAAY,OAAA,uDAC7B,EAAKC,SAAU,EADc,oBAAAb,EAAA,MAGXc,GAAiBvC,kBAAkBC,IAHxB,cAGvBwI,EAHuB,OAI3BjG,aAAY,WACV,EAAKzC,YAAc0I,EACnB,EAAKnG,SAAS,KANW,kBAQpBmG,GARoB,gCAU3BjG,aAAY,WACV,EAAKF,SAAU,KAXU,4D,ICxBZwI,I,GAEnB,WAAYjK,GAAuB,yBADnCA,eACkC,oNAC9BC,KAAKD,UAAYA,G,6CAGpBoB,K,yEAAqB,K,4CACrBA,K,wEAA0C,M,+CAE1CG,K,oFAAyB,eAAA2I,EAAA,SAAAtJ,EAAAY,OAAA,uDACxB,EAAKC,SAAU,EADS,oBAAAb,EAAA,MAGPc,GAAkBpC,mBAHX,cAGlB4K,EAHkB,OAItBvI,aAAY,WACV,EAAKwI,aAAeD,EACpB,EAAKzI,SAAU,KANK,kBAQfyI,GARe,gCAUtBvI,aAAY,WACV,EAAKF,SAAU,KAXK,4D,8CAgBzBF,K,oFAAwB,SAAMrK,EAAeU,EAAc0B,GAAnC,eAAAsH,EAAAY,OAAA,uDACvB,EAAKC,SAAU,EADQ,oBAAAb,EAAA,MAGGc,GAAkBnC,eAAerI,EAAOU,EAAM0B,IAHjD,OAGjB8Q,EAHiB,OAIrBzI,aAAY,WACV,EAAKF,SAAU,EACf,EAAK0I,aAAatY,KAAKuY,GACvB,EAAKpK,UAAUoC,WAAWyB,gBAPP,gDAUrBlC,aAAY,WACV,EAAKF,SAAU,KAXI,4D,iDAgBxBF,K,oFAA2B,SAAMvO,EAAYkE,EAAeU,EAAc0B,GAA/C,SAAAsH,EAAAY,OAAA,uDAC1B,EAAKC,SAAU,EADW,oBAAAb,EAAA,MAGlBc,GAAkBlC,kBAAkBxM,EAAIkE,EAAOU,EAAM0B,IAHnC,OAIxBqI,aAAY,WACV,EAAKF,SAAU,EACf,EAAK0I,aAAe,EAAKA,aAAajJ,KAAI,SAAAN,GAAC,OACzCA,EAAE5N,KAAOA,EAAT,gBAAkB4N,EAAlB,CAAqB1J,MAAOA,EAAOU,KAAM,IAAI0O,KAAK1O,GAAO0B,YAAaA,IAAesH,KACvF,EAAKZ,UAAUoC,WAAWyB,gBARJ,gDAWxBlC,aAAY,WACV,EAAKF,SAAU,KAZO,4D,ICzCT4I,I,GAEnB,WAAYrK,GAAuB,yBADnCA,eACkC,iTAC9BC,KAAKD,UAAYA,G,6CAGpBoB,K,yEAAqB,K,6CACrBA,K,wEAA4C,M,gDAE5CG,K,oFAA0B,eAAA2I,EAAA,SAAAtJ,EAAAY,OAAA,uDACzB,EAAKC,SAAU,EADU,oBAAAb,EAAA,MAGRc,GAAmBhC,oBAHX,cAGnBwK,EAHmB,OAIvBvI,aAAY,WACV,EAAK2I,cAAgBJ,EACrB,EAAKzI,SAAU,KANM,kBAQhByI,GARgB,gCAUvBvI,aAAY,WACV,EAAKF,SAAU,KAXM,4D,sDAgB1BF,K,oFAAgC,eAAA2I,EAAA,SAAAtJ,EAAAY,OAAA,uDAC/B,EAAKC,SAAU,EADgB,oBAAAb,EAAA,MAGdc,GAAmB/B,0BAHL,cAGzBuK,EAHyB,OAI7BvI,aAAY,WACV,EAAK2I,cAAgBJ,EACrB,EAAKzI,SAAU,KANY,kBAQtByI,GARsB,gCAU7BvI,aAAY,WACV,EAAKF,SAAU,KAXY,4D,+CAgBhCF,K,oFAAyB,SAAMrK,EAAeU,EAAc0B,GAAnC,eAAAsH,EAAAY,OAAA,uDACxB,EAAKC,SAAU,EADS,oBAAAb,EAAA,MAGGc,GAAmB9B,gBAAgB1I,EAAOU,EAAM0B,IAHnD,OAGlBiR,EAHkB,OAItB5I,aAAY,WACV,EAAKF,SAAU,EACf,EAAK6I,cAAczY,KAAK0Y,GACxB,EAAKvK,UAAUoC,WAAWyB,gBAPN,gDAUtBlC,aAAY,WACV,EAAKF,SAAU,KAXK,4D,kDAgBzBF,K,oFAA4B,SAAMvO,EAAYkE,EAAeoC,GAAjC,SAAAsH,EAAAY,OAAA,uDAC3B,EAAKC,SAAU,EADY,oBAAAb,EAAA,MAGnBc,GAAmB7B,mBAAmB7M,EAAIkE,EAAOoC,IAH9B,OAIzBqI,aAAY,WACV,EAAKF,SAAU,EACf,EAAK6I,cAAgB,EAAKA,cAAcpJ,KAAI,SAAAN,GAAC,OAC3CA,EAAE5N,KAAOA,EAAT,gBAAkB4N,EAAlB,CAAqB1J,MAAOA,EAAOU,KAAMgJ,EAAEhJ,KAAM0B,YAAaA,IAAesH,KAC/E,EAAKZ,UAAUoC,WAAWyB,gBARH,gDAWzBlC,aAAY,WACV,EAAKF,SAAU,KAZQ,4D,yCAiB5BF,K,oFAAmB,SAAMvO,EAAYqC,GAAlB,SAAAuL,EAAAY,OAAA,uDAClB,EAAKC,SAAU,EADG,oBAAAb,EAAA,MAGVc,GAAmB5B,UAAU9M,EAAIqC,IAHvB,OAIhBsM,aAAY,WACV,EAAKF,SAAU,EACf,EAAK6I,cAAgB,EAAKA,cAAcpJ,KAAI,SAAAN,GAAC,OAC3CA,EAAE5N,KAAOA,EAAT,gBAAkB4N,EAAlB,CAAqBvL,OAAQA,IAASuL,KAExC,EAAKZ,UAAUoC,WAAWyB,gBATZ,gDAahBlC,aAAY,WACV,EAAKF,SAAU,KAdD,4D,IC1ED+I,I,GAEnB,WAAYxK,GAAuB,yBADnCA,eACkC,wHAC9BC,KAAKD,UAAYA,G,6CAGpBoB,K,yEAAqB,K,0CAErBA,K,wEAAsC,M,8CAEtCG,K,oFAAwB,0BAAAX,EAAAY,OAAA,uDACvB,EAAKC,SAAU,EADQ,oBAAAb,EAAA,MAGNc,GAAiB3O,QAHX,cAGjBmR,EAHiB,OAIrBvC,aAAY,WACR,EAAK8I,WAAavG,EAClB,EAAKzC,SAAU,KANE,kBAQdyC,GARc,gCAUrBvC,aAAY,WACV,EAAKF,SAAU,KAXI,4D,IC2DdiJ,GAAmBC,wBAAc,IA1B1C,aAAe,yBAvBfC,wBAuBc,OAtBdxI,gBAsBc,OArBdE,eAqBc,OApBdqB,iBAoBc,OAnBdkH,gBAmBc,OAlBdC,eAkBc,OAjBdC,iBAiBc,OAhBdC,kBAgBc,OAfdC,kBAec,OAddC,kBAcc,OAbdC,oBAac,OAZdC,kBAYc,OAXdC,iBAWc,OAVdC,qBAUc,OATdC,uBASc,OARdC,kBAQc,OAPdC,aAOc,OANdC,gBAMc,OALdC,sBAKc,OAJdC,qBAIc,OAHdC,sBAGc,OAFdC,uBAEc,EACV7L,KAAK2K,mBAAqB,IAAI7K,GAAmBE,MACjDA,KAAKmC,WAAa,IAAIa,GAAWhD,MACjCA,KAAKqC,UAAY,IAAIoB,GAAUzD,MAC/BA,KAAK0D,YAAc,IAAIL,GAAYrD,MACnCA,KAAK4K,WAAa,IAAIzG,GAAWnE,MACjCA,KAAK6K,UAAY,IAAIjG,GAAU5E,MAC/BA,KAAK8K,YAAc,IAAIjG,GAAY7E,MACnCA,KAAK+K,aAAe,IAAIzF,GAAatF,MACrCA,KAAKgL,aAAe,IAAIzF,GAAavF,MACrCA,KAAKiL,aAAe,IAAIxF,GAAazF,MACrCA,KAAKkL,eAAiB,IAAIX,GAAevK,MACzCA,KAAKmL,aAAe,IAAInF,GAAahG,MACrCA,KAAKoL,YAAc,IAAIlF,GAAYlG,MACnCA,KAAKqL,gBAAkB,IAAI5E,GAAgBzG,MAC3CA,KAAKsL,kBAAoB,IAAI3F,GAAkB3F,MAC/CA,KAAKuL,aAAe,IAAI1D,GAAa7H,MACrCA,KAAKwL,QAAU,IAAItD,GAAQlI,MAC3BA,KAAKyL,WAAa,IAAI5C,GAAW7I,MACjCA,KAAK0L,iBAAmB,IAAIpC,GAAiBtJ,MAC7CA,KAAK2L,gBAAkB,IAAI5B,GAAgB/J,MAC3CA,KAAK4L,iBAAmB,IAAI5B,GAAiBhK,MAC7CA,KAAK6L,kBAAoB,IAAIzB,GAAkBpK,Q,qBCnE1C8L,GAGR,SAAC,GAAgC,IAAD,IAA7BC,gBAA6B,SAAdtV,EAAc,EAAdA,QACrB,OACE,kBAAC,KAAD,CACErB,OAAQ2W,EACRC,SAAO,EACPC,KAAMxV,K,0BC4BGyV,iBAlCQ,WACrB,IAD2B,EACTC,qBAAW1B,IAIftI,WALa,IAGzBiB,MAASF,EAHgB,EAGhBA,KAAMjM,EAHU,EAGVA,MAAOxE,EAHG,EAGHA,KAAM0Q,EAHH,EAGGA,YAAajS,EAHhB,EAGgBA,MACzC0S,EAJyB,EAIzBA,WAJyB,EAOHwI,oBAAS,GAPN,oBAOpBC,EAPoB,KAOdC,EAPc,KAgB3B,OAJAC,qBAAU,WACRD,EAAQpJ,KACP,CAACA,IAGF,kBAACsJ,GAAA,EAAD,CAAOH,KAAMA,EAAMI,OATD,WAClB7I,KAQwC8I,SAAS,SAASC,gBAAiBxJ,GACzE,kBAACqJ,GAAA,EAAMI,OAAP,CAAcC,aAAW,GACvB,kBAACL,GAAA,EAAMM,MAAP,CAAaC,aAAW,UAAU9V,IAGpC,kBAACuV,GAAA,EAAMQ,KAAP,KACGva,GAEFvB,GACC,kBAACsb,GAAA,EAAMS,OAAP,CAAcC,UAAU,eACvBhc,O,oBCTMic,GApBI,WACf,OACI,kBAACC,GAAA,EAAD,CAAWF,UAAU,eACb,yBAAKA,UAAU,aACX,yBAAKA,UAAU,eACf,wBAAIA,UAAU,gBAAd,SACU,6BADV,cAEe,6BAFf,kBAKA,yBAAKA,UAAU,eACf,wBAAIA,UAAU,aACV,iDAEJ,kBAACG,GAAA,EAAD,CAAQC,QAAQ,UAAUC,KAAK,KAAKC,KAAK,YAAzC,yB,6BCmBLtB,iBA9BO,WACpB,IAD0B,EACRC,qBAAW1B,IAC6BoB,kBAAnDxB,EAFmB,EAEnBA,cAAe3K,EAFI,EAEJA,uBAStB,OAPA6M,qBAAU,WACW,EAAA5L,EAAAY,OAAA,kEAAAZ,EAAA,MACXjB,KADW,uCAIlB,CAACA,IAGF,6BACG2K,EAAcoD,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEhJ,KAAOiJ,EAAEjJ,KAAO,GAAK,KAC5DsJ,KAAI,SAACqJ,EAAcoD,GAAf,OACH,kBAACC,GAAA,EAAD,CAAMT,UAAU,oBAAoBU,IAAKF,GACvC,kBAACC,GAAA,EAAKf,OAAN,KACE,kBAACe,GAAA,EAAKX,KAAN,KACE,kBAACW,GAAA,EAAKb,MAAN,CAAYI,UAAU,gBACnB5C,EAAarT,OAEf4W,aAAMvD,EAAajR,uB,oBCcnByU,GAtCG,WACd,OACI,yBAAKZ,UAAU,cAEf,wBAAIA,UAAU,mBAAd,IAAiC,qCAAjC,KACA,mEAEA,kBAACa,GAAA,EAAD,CAAWb,UAAU,aACjB,yBAAKA,UAAU,eACf,kBAACc,GAAA,EAAD,CAAKd,UAAU,kBACX,kBAACe,GAAA,EAAD,CAAKC,GAAI,GACT,gCAAK,uBAAGhB,UAAU,gCAAlB,gBACA,6BACA,uBAAGA,UAAU,iBAAb,6XASA,kBAACe,GAAA,EAAD,CAAKC,GAAI,GACT,gCAAK,uBAAGhB,UAAU,gCAAlB,kBACA,6BACA,uBAAGA,UAAU,iBAAb,gWCrBHiB,I,OAAW,WACtB,OACE,kBAACJ,GAAA,EAAD,CAAWK,OAAK,EAAClB,UAAU,QACzB,kBAAC,GAAD,MACA,kBAAC,GAAD,MACA,kBAAC,GAAD,S,wCCZOmB,GACb,CACI,CACIlP,SAAU,IACVmP,WAAY,2BACZC,YAAa,WACbC,eAAgB,+BAChBC,QACI,qIACJC,YACI,2BACJC,MAAO,6BACPC,KAAM,kBAEV,CACIzP,SAAU,IACVmP,WAAY,wBACZC,YAAa,WACbC,eAAgB,+BAChBC,QACI,wMAEJC,YACI,2BACJC,MAAO,uCACPC,KAAM,kBCUCC,GA/BS,WACpB,OACI,kBAACC,GAAA,EAAD,CAAWxB,QAAQ,QAAQJ,UAAU,eAEhCmB,GAAkBpN,KAAI,SAAC8N,GAAD,OAEvB,kBAACD,GAAA,EAAUE,KAAX,CAAgBpB,IAAKmB,EAAU5P,UAC/B,kBAAC6O,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgB,GAAI,GACL,kBAACC,GAAA,EAAD,CAAOC,IAAKJ,EAAUJ,MAAOzB,UAAU,aAAakB,OAAK,EAACgB,SAAO,KAGrE,kBAACnB,GAAA,EAAD,CAAKgB,GAAI,GACL,gCAAMF,EAAUT,WAAhB,KACA,6BACI,+BAAKS,EAAUP,gBACf,6BAAK,6BACJO,EAAUN,SAEf,yBAAKvB,UAAU,gBACX,6BACA,kBAACG,GAAA,EAAD,CAAQG,KAAK,YAAb,sBCzBX6B,GACb,CACI,CACIlQ,SAAU,IACVmP,WAAY,WACZC,YAAa,eACbC,eAAgB,+BAChBC,QACI,qMACJC,YACI,2BACJC,MAAO,4BACPC,KAAM,aAEV,CACIzP,SAAU,IACVmP,WAAY,YACZC,YAAa,eACbC,eAAgB,+BAChBC,QACI,2LAEJC,YACI,2BACJC,MAAO,4BACPC,KAAM,aAEV,CACIzP,SAAU,IACVmP,WAAY,mBACZC,YAAa,eACbC,eAAgB,gCAChBC,QACI,8NAEJC,YACI,2BACJC,MAAO,0BACPC,KAAM,eAEV,CACEzP,SAAU,IACVmP,WAAY,aACZC,YAAa,wBACbC,eAAgB,+BAChBC,QACI,yHACJC,YACI,2BACJC,MAAO,+BACPC,KAAM,YAEV,CACIzP,SAAU,IACVmP,WAAY,UACZC,YAAa,wBACbC,eAAgB,+BAChBC,QACI,+LAEJC,YACI,2BACJC,MAAO,6BACPC,KAAM,WAEV,CACIzP,SAAU,IACVmP,WAAY,wBACZC,YAAa,eACbC,eAAgB,8BAChBC,QACI,kKAEJC,YACI,2BACJC,MAAO,kCACPC,KAAM,mBAEV,CACIzP,SAAU,IACVmP,WAAY,yCACZC,YAAa,wBACbC,eAAgB,+CAChBC,QACI,gLACJC,YACI,2BACJC,MAAO,kCACPC,KAAM,mBAEV,CACIzP,SAAU,IACVmP,WAAY,sCACZC,YAAa,wBACbC,eAAgB,iDAChBC,QACI,6JAEJC,YACI,2BACJC,MAAO,uCACPC,KAAM,gBAEV,CACEzP,SAAU,IACVmP,WAAY,qCACZC,YAAa,wBACbC,eAAgB,+CAChBC,QACI,gOACJC,YACI,2BACJC,MAAO,gCACPC,KAAM,kBC/EKU,GA9Ba,WACxB,OACI,kBAACR,GAAA,EAAD,CAAWxB,QAAQ,QAAQJ,UAAU,eAEhCmC,GAAsBpO,KAAI,SAAC8N,GAAD,OAC3B,kBAACD,GAAA,EAAUE,KAAX,CAAgBpB,IAAKmB,EAAU5P,UAC/B,kBAAC6O,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgB,GAAI,GACL,kBAACC,GAAA,EAAD,CAAOC,IAAKJ,EAAUJ,MAAOzB,UAAU,aAAakB,OAAK,KAG7D,kBAACH,GAAA,EAAD,CAAKgB,GAAI,GACL,gCAAMF,EAAUT,WAAhB,KACA,6BACI,+BAAKS,EAAUP,gBACf,6BAAK,6BACJO,EAAUN,SAEf,yBAAKvB,UAAU,gBACX,6BACA,kBAACG,GAAA,EAAD,CAAQG,KAAK,YAAb,sBCxBX+B,GACb,CACM,CACEpQ,SAAU,IACVmP,WAAY,mBACZC,YAAa,eACbC,eAAgB,gCAChBC,QACI,mGAEJC,YACI,2BACJC,MAAO,+BACPC,KAAM,qBAEV,CACIzP,SAAU,IACVmP,WAAY,MACZC,YAAa,WACbC,eAAgB,gCAChBC,QACI,8KACJC,YACI,2BACJC,MAAO,yBACPC,KAAM,QAEV,CACEzP,SAAU,IACVmP,WAAY,mBACZC,YAAa,WACbC,eAAgB,gCAChBC,QAAQ,uLAGRC,YACA,2BACAC,MAAO,0BACPC,KAAM,sBCJGY,GA9BS,WACpB,OACI,kBAACV,GAAA,EAAD,CAAWxB,QAAQ,QAAQJ,UAAU,eAEhCqC,GAAkBtO,KAAI,SAAC8N,GAAD,OACvB,kBAACD,GAAA,EAAUE,KAAX,CAAgBpB,IAAKmB,EAAU5P,UAC/B,kBAAC6O,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgB,GAAI,GACL,kBAACC,GAAA,EAAD,CAAOC,IAAKJ,EAAUJ,MAAOzB,UAAU,aAAakB,OAAK,EAACgB,SAAO,KAGrE,kBAACnB,GAAA,EAAD,CAAKgB,GAAI,GACL,gCAAMF,EAAUT,WAAhB,KACA,6BACI,+BAAKS,EAAUP,gBACf,6BAAK,6BACJO,EAAUN,SAEf,yBAAKvB,UAAU,gBACX,6BACA,kBAACG,GAAA,EAAD,CAAQG,KAAK,YAAb,sBCxBXiC,GACb,CACE,CACEtQ,SAAU,IACVmP,WAAY,mBACZC,YAAa,WACbC,eAAgB,gCAChBC,QACI,mGACJC,YACI,2BACJC,MAAO,+BACPC,KAAM,qBAER,CACIzP,SAAU,IACVmP,WAAY,iBACZC,YAAa,WACbC,eAAgB,gCAChBC,QAAQ,uPAIRC,YACI,2BACJC,MAAO,0BACPC,KAAM,oBCQGY,GA9BS,WACpB,OACI,kBAACV,GAAA,EAAD,CAAWxB,QAAQ,QAAQJ,UAAU,eAEhCuC,GAAqBxO,KAAI,SAAC8N,GAAD,OAC1B,kBAACD,GAAA,EAAUE,KAAX,CAAgBpB,IAAKmB,EAAU5P,UAC/B,kBAAC6O,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgB,GAAI,GACL,kBAACC,GAAA,EAAD,CAAOC,IAAKJ,EAAUJ,MAAOzB,UAAU,aAAakB,OAAK,EAACgB,SAAO,KAGrE,kBAACnB,GAAA,EAAD,CAAKgB,GAAI,GACL,gCAAMF,EAAUT,WAAhB,KACA,6BACI,+BAAKS,EAAUP,gBACf,6BAAK,6BACJO,EAAUN,SAEf,yBAAKvB,UAAU,gBACX,6BACA,kBAACG,GAAA,EAAD,CAAQG,KAAK,YAAb,sBChBX5X,I,OAAU,WACnB,OACI,yBAAKsX,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKgB,GAAI,GACL,8CAEJ,kBAAChB,GAAA,EAAD,CAAKgB,GAAI,GACP,sCACA,6BACI,4BACI,kHAAuF,mCAAvF,gBAEA,4GAIV,yBAAK/B,UAAU,eACf,kBAACwC,GAAA,EAAD,CAAM3c,GAAG,mBAAmB4c,MAAI,EAACC,SAAO,GACpC,kBAACC,GAAA,EAAD,CAAKC,SAAS,QAAQ7Y,MAAM,YAC1B,kBAAC8Y,GAAD,OAEF,kBAACF,GAAA,EAAD,CAAKC,SAAS,SAAS7Y,MAAM,gBAC3B,kBAAC+Y,GAAD,OAEF,kBAACH,GAAA,EAAD,CAAKC,SAAS,QAAQ7Y,MAAM,YAC1B,kBAACgZ,GAAD,OAGF,kBAACJ,GAAA,EAAD,CAAKC,SAAS,SAAS7Y,MAAM,eAC3B,kBAACiZ,GAAD,W,QCfDC,GAlBE,WACb,OACI,kBAACxC,GAAA,EAAD,KACI,kBAACA,GAAA,EAAKX,KAAN,KAEE,kBAACW,GAAA,EAAKb,MAAN,KAAY,uBAAGI,UAAU,oBAAoBkD,MAAO,CAACC,MAAM,UAA3D,aAEA,kBAAC1C,GAAA,EAAK2C,KAAN,+DAGA,kBAAC,KAAD,CAAMC,GAAI,KACR,kBAAClD,GAAA,EAAD,CAASC,QAAQ,WAAjB,2BCfHkD,GACb,CACI,CACAC,QAAS,IACTC,UAAW,YACXC,WAAY,+BACZhC,MAAO,4BACPtV,YAAY,uYAUHuX,GACb,CACI,CACIH,QAAS,IACTC,UAAW,YACXC,WAAY,oBACZhC,MAAO,4BACPtV,YAAY,0RAMhB,CACIoX,QAAS,IACTC,UAAW,YACXC,WAAY,oBACZhC,MAAO,4BACPtV,YAAY,uXAMhB,CACIoX,QAAS,IACTC,UAAW,aACXC,WAAY,oBACZhC,MAAO,6BACPtV,YAAY,kRAMhB,CACIoX,QAAS,IACTC,UAAW,YACXC,WAAY,kBACZhC,MAAO,4BACPtV,YAAY,kVAMhB,CACIoX,QAAS,IACTC,UAAW,aACXC,WAAY,aACZhC,MAAO,6BACPtV,YAAY,qQAKZ,CACAoX,QAAS,IACTC,UAAW,gBACXC,WAAY,aACZhC,MAAO,gCACPtV,YAAY,0RAKZ,CACEoX,QAAS,IACTC,UAAW,cACXC,WAAY,aACZhC,MAAO,8BACPtV,YAAY,qRAKd,CACEoX,QAAS,IACTC,UAAW,aACXC,WAAY,aACZhC,MAAO,6BACPtV,YAAY,2WC9FTwX,I,OAAQ,WACjB,OACI,yBAAK3D,UAAU,cAEX,yBAAKA,UAAU,cACf,kBAACc,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgB,GAAI,GACJuB,GAASvP,KAAK,SAAC6P,GAAD,OACf,yBAAK5D,UAAU,iBAAiBU,IAAI,QAChC,yBAAKV,UAAU,UACX,kBAACa,GAAA,EAAD,KACA,2BACI,kBAACmB,GAAA,EAAD,CAAOC,IAAK2B,EAAKnC,MAAOzB,UAAU,gBAAgBkC,SAAO,KAEzD,gCAAM0B,EAAKJ,UAAX,KACA,4BAAI,+BAAKI,EAAKH,WAAV,MACR,uBAAGzD,UAAU,eACR4D,EAAKzX,oBAOtB,kBAAC4U,GAAA,EAAD,CAAKgB,GAAI,GACL,yBAAK/B,UAAU,iBACX,6CACA,yBAAKA,UAAU,eACf,6BACA,6DAAkC,6BAAlC,6BAC8B,6BAD9B,kBAEmB,6BAFnB,eAWZ,yBAAKA,UAAU,eAEf,yBAAKA,UAAU,eACX,kBAACc,GAAA,EAAD,KACK4C,GAAgB3P,KAAI,SAAC8P,GAAD,OACrB,kBAAC9C,GAAA,EAAD,CAAKgB,GAAI,EAAGrB,IAAKmD,EAAUN,SACvB,kBAAC1C,GAAA,EAAD,KACA,2BACI,kBAACmB,GAAA,EAAD,CAAOC,IAAK4B,EAAUpC,MAAOzB,UAAU,gBAAgBkC,SAAO,KAE9D,gCAAM2B,EAAUL,UAAhB,KACA,4BAAI,+BAAKK,EAAUJ,WAAf,MACR,uBAAGzD,UAAU,eACR6D,EAAU1X,uBCrBxB6S,iBA9BM,WACnB,IADyB,EACPC,qBAAW1B,IACqBmB,iBAA3C1B,EAFkB,EAElBA,aAAc7K,EAFI,EAEJA,gBASrB,OAPAkN,qBAAU,WACW,EAAA5L,EAAAY,OAAA,kEAAAZ,EAAA,MACXtB,KADW,uCAIlB,CAACA,IAGF,kBAAC0O,GAAA,EAAD,KACG7D,EAAauD,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEhJ,KAAOiJ,EAAEjJ,KAAO,GAAK,KAC3DsJ,KAAI,SAACkJ,EAAauD,GAAd,OACH,kBAACC,GAAA,EAAD,CAAMT,UAAU,YAAYU,IAAKF,GAC/B,kBAACC,GAAA,EAAKf,OAAN,KACE,kBAACe,GAAA,EAAKX,KAAN,KACE,kBAACW,GAAA,EAAKb,MAAN,CAAYI,UAAU,gBACnB/C,EAAYlT,OAEd4W,aAAM1D,EAAY9Q,uB,uFCjB3B2X,I,YAAgB,CACpB/Z,MAAO,GACPU,KAAM,IAAI0O,KAAKA,KAAK4K,OAAOC,cAAcC,UAAU,EAAG,IACtD9X,YAAa,KAqHA+X,GAlHc,SAAC,GAAmB,IAAlBjH,EAAiB,EAAjBA,YAAiB,EAC5BgC,qBAAW1B,IACyBmB,iBAA/CtM,EAFuC,EAEvCA,eAAgBC,EAFuB,EAEvBA,kBAFuB,EAGlB6M,mBAAS4E,IAHS,oBAGvCvQ,EAHuC,KAG/B4Q,EAH+B,OAIVjF,oBAAS,GAJC,oBAIvCpK,EAJuC,KAI3BsP,EAJ2B,OAKRlF,mBAASmF,eAAYC,eALb,oBAKvCC,EALuC,KAK1BC,EAL0B,KAU9CnF,qBAAU,WACR,GAAGpC,EAAa,CACdkH,EAAU,CACRpa,MAAOkT,EAAYlT,MACnBU,KAAO,IAAI0O,KAAK8D,EAAYxS,MAAOuZ,cAAcC,UAAU,EAAG,IAC9D9X,YAAa8Q,EAAY9Q,cAE3B,IAAMsY,EAAiBC,KAAYzH,EAAY9Q,aACzCwY,EAAQC,gBAAaC,qBACzBJ,EAAeK,cACfL,EAAeM,WAEjBP,EAAeH,eAAYW,kBAAkBL,OAE9C,CAAC1H,IAEJ,IAAMgI,EAAe,SAACC,GAAW,IAAD,EACNA,EAAMC,OAAtB9V,EADsB,EACtBA,KAAM+V,EADgB,EAChBA,MACdjB,EAAU,gBAAK5Q,EAAN,gBAAelE,EAAO+V,MAyBjC,OACE,kBAACvE,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,CAAMC,YAAU,GACd,kBAACxE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAAS7R,EAAOxJ,MAChB6b,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,SAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,OACL+V,MAAS7R,EAAO9I,KAChBmb,SAAUX,MAIhB,kBAAC,UAAD,CACEV,YAAaA,EACbsB,iBAAiB,gBACjBC,iBAAiB,gBACjBC,gBAAgB,eAChBC,oBAvFoB,SAACC,GAC3BzB,EAAeyB,MAwFX,kBAACnF,GAAA,EAAD,CAAKd,UAAU,2CAEbzM,EAAOxJ,OAASwa,EAAY2B,sBAC3BpR,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QAnE5B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN,IAAIC,EAAiB/B,EAAY2B,oBAEjC,GADA9B,GAAc,GACX7Q,EAAOxJ,MAAMoJ,OAAO,GAAKmT,EAAgB,CAC1C,IAAIC,EAASC,KAAYC,wBAAaH,IACnCrJ,EACD5K,EAAkB4K,EAAYpX,GAAI0N,EAAOxJ,MAAOwJ,EAAO9I,KAAM8b,GAC5DG,SAAQ,eAKTtU,EAAemB,EAAOxJ,MAAOwJ,EAAO9I,KAAM8b,GACzCG,SAAQ,kBAoDQ,UACd5R,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCjEVhB,iBA3CW,WACxB,IAAMnM,EAAYoM,qBAAW1B,IADC,EAEU1K,EAAU6L,iBAA3C1B,EAFuB,EAEvBA,aAAc7K,EAFS,EAETA,gBACd+C,EAAarC,EAAUoC,WAAvBC,UACC1O,EAASqM,EAAUsC,UAAnB3O,KAQR,OAPA6Y,qBAAU,WACW,EAAA5L,EAAAY,OAAA,kEAAAZ,EAAA,MACXtB,KADW,uCAIlB,CAACA,IAGF,kBAAC0O,GAAA,EAAD,KACCra,GAAQA,EAAKuB,MAAMnD,SAAS,UAC3B,kBAACub,GAAA,EAAD,CAAQC,QAAQ,OAChB+F,QAAS,kBAAMjR,EAAU,kBACzB,kBAAC,GAAD,CAAsB+H,YAAa,OAAS,kBAF5C,kBAMCD,EAAauD,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEhJ,KAAOiJ,EAAEjJ,KAAO,GAAK,KAC3DsJ,KAAI,SAACkJ,EAAauD,GAAd,OACH,kBAACC,GAAA,EAAD,CAAMT,UAAU,YAAYU,IAAKF,GAC/B,kBAACC,GAAA,EAAKf,OAAN,KACE,kBAACe,GAAA,EAAKX,KAAN,KACE,kBAACW,GAAA,EAAKb,MAAN,CAAYI,UAAU,gBACnB/C,EAAYlT,MACZvD,GAAQA,EAAKuB,MAAMnD,SAAS,UAC7B,uBAAGob,UAAU,gDACXmG,QAAS,kBAAMjR,EAAU,2BAA4B,kBAAC,GAAD,CAAsB+H,YAAaA,IAAgB,oBAI3G0D,aAAM1D,EAAY9Q,uBC/B3B2X,GAAgB,CACpB/Z,MAAO,GACPU,KAAM,IAAI0O,KAAKA,KAAK4K,OAAOC,cAAcC,UAAU,EAAG,IACtD9X,YAAa,IAqHA6a,GAlHe,SAAC,GAAoB,IAAnB5J,EAAkB,EAAlBA,aAAkB,EAC9B6B,qBAAW1B,IAC2BoB,kBAAjDlM,EAFyC,EAEzCA,gBAAiBC,EAFwB,EAExBA,mBAFwB,EAGpBwM,mBAAS4E,IAHW,oBAGzCvQ,EAHyC,KAGjC4Q,EAHiC,OAIZjF,oBAAS,GAJG,oBAIzCpK,EAJyC,KAI7BsP,EAJ6B,OAKVlF,mBAASmF,eAAYC,eALX,oBAKzCC,EALyC,KAK5BC,EAL4B,KAUhDnF,qBAAU,WACR,GAAGjC,EAAc,CACf+G,EAAU,CACRpa,MAAOqT,EAAarT,MACpBU,KAAO,IAAI0O,KAAKiE,EAAa3S,MAAOuZ,cAAcC,UAAU,EAAG,IAC/D9X,YAAaiR,EAAajR,cAE5B,IAAMsY,EAAiBC,KAAYtH,EAAajR,aAC1CwY,EAAQC,gBAAaC,qBACzBJ,EAAeK,cACfL,EAAeM,WAEjBP,EAAeH,eAAYW,kBAAkBL,OAE9C,CAACvH,IAEJ,IAAM6H,EAAe,SAACC,GAAW,IAAD,EACNA,EAAMC,OAAtB9V,EADsB,EACtBA,KAAM+V,EADgB,EAChBA,MACdjB,EAAU,gBAAK5Q,EAAN,gBAAelE,EAAO+V,MAyBjC,OACE,kBAACvE,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,CAAMC,YAAU,GACd,kBAACxE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAAS7R,EAAOxJ,MAChB6b,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,SAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,OACL+V,MAAS7R,EAAO9I,KAChBmb,SAAUX,MAIhB,kBAAC,UAAD,CACEV,YAAaA,EACbsB,iBAAiB,gBACjBC,iBAAiB,gBACjBC,gBAAgB,eAChBC,oBAvFoB,SAACC,GAC3BzB,EAAeyB,MAwFX,kBAACnF,GAAA,EAAD,CAAKd,UAAU,2CAEbzM,EAAOxJ,OAASwa,EAAY2B,sBAC3BpR,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QAnE5B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN,IAAIC,EAAiB/B,EAAY2B,oBAEjC,GADA9B,GAAc,GACX7Q,EAAOxJ,MAAMoJ,OAAO,GAAKmT,EAAgB,CAC1C,IAAIC,EAASC,KAAYC,wBAAaH,IACnClJ,EACD1K,EAAmB0K,EAAavX,GAAI0N,EAAOxJ,MAAOwc,GACjDG,SAAQ,eAKTjU,EAAgBc,EAAOxJ,MAAOwJ,EAAO9I,KAAM8b,GAC1CG,SAAQ,kBAoDQ,UACd5R,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBC9DVhB,iBA9CY,WACzB,IAAMnM,EAAYoM,qBAAW1B,IADE,EAEsB1K,EAAU8L,kBAAxDxB,EAFwB,EAExBA,cAAe5K,EAFS,EAETA,iBAAkBI,EAFT,EAESA,UACjCuC,EAAarC,EAAUoC,WAAvBC,UAEPmK,qBAAU,WACW,EAAA5L,EAAAY,OAAA,kEAAAZ,EAAA,MACXlB,KADW,uCAIlB,CAACA,IACJ,IAAM0U,EAAkB,SAACphB,EAAYqC,GACnCyK,EAAU9M,EAAIqC,IAEhB,OACE,kBAAC2Y,GAAA,EAAD,KACE,kBAACV,GAAA,EAAD,CAAQC,QAAQ,OAChB+F,QAAS,kBAAMjR,EAAU,mBAAoB,kBAAC,GAAD,CAAuBkI,aAAc,OAAS,kBAD3F,oBAICD,EAAcoD,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEhJ,KAAOiJ,EAAEjJ,KAAO,GAAK,KAC5DsJ,KAAI,SAACqJ,EAAcoD,GAAf,OACH,kBAACC,GAAA,EAAD,CAAMT,UAAU,YAAYU,IAAKF,GAC/B,kBAACC,GAAA,EAAKf,OAAN,KACE,kBAACe,GAAA,EAAKX,KAAN,KACE,kBAACW,GAAA,EAAKb,MAAN,CAAYI,UAAU,gBACnB5C,EAAarT,MACd,uBAAGiW,UAAU,gDACXmG,QAAS,kBAAMjR,EAAU,6BAA8B,kBAAC,GAAD,CAAuBkI,aAAcA,IAAiB,mBAE9GA,EAAalV,QACZ,uBAAG8X,UAAU,6DAA6DmG,QAAS,kBAAMc,EAAgB7J,EAAavX,IAAI,OAE1HuX,EAAalV,QACb,uBAAG8X,UAAU,0DAA0DmG,QAAS,kBAAMc,EAAgB7J,EAAavX,IAAI,OAG1H8a,aAAMvD,EAAajR,uB,UCpCrB+a,GAAiC,SAAC,GAAsB,IAApBliB,EAAmB,EAAnBA,OAAQ+Z,EAAW,EAAXA,KAAW,EAC1CG,oBAAS,GADiC,oBAC3DC,EAD2D,KACrDC,EADqD,KAElE,OACE,kBAACyB,GAAA,EAAD,KACG1B,GACH,kBAACgI,GAAA,EAAD,CAAO/G,QAAQ,SAASgH,QAAS,kBAAMhI,GAAQ,IAAQiI,aAAW,GAC9D,kBAACF,GAAA,EAAMG,QAAP,KAAiBvI,GAChBwI,OAAOC,KAAKxiB,GAAQmO,OAAS,GAC5B,kBAACyO,GAAA,EAAD,KACG2F,OAAOhU,OAAOvO,GAAQyiB,OAAO1T,KAAI,SAAC2T,EAAUxU,GAAX,OAChC,kBAAC0O,GAAA,EAAUE,KAAX,CAAgBpB,IAAKxN,GAAKwU,UCblC5D,GAAgB,CACpB9V,MAAO,GACP5F,MAAO,GACPoC,MAAO,GACP2B,YAAa,IAGTwb,GAAoB,CACxBC,mBAAmB,EACnBC,kBAAkB,GAGdC,GAAwB,CAC5B9iB,OAAQ,GACR+Z,KAAM,IAGKgJ,GAAU,WACnB,IAAMlV,EAAYoM,qBAAW1B,IACtBxP,EAAc8E,EAAUwL,aAAxBtQ,WACCmH,EAAarC,EAAUoC,WAAvBC,UAHiB,EAIWgK,oBAAS,GAJpB,oBAIlBpK,EAJkB,KAINsP,EAJM,OAKalF,mBAAS4I,IALtB,oBAKlBE,EALkB,KAKLC,EALK,OAMG/I,mBAAS4E,IANZ,oBAMlBvQ,EANkB,KAMV4Q,EANU,OAOajF,mBAASyI,IAPtB,oBAOlBO,EAPkB,KAOLC,EAPK,KAQnBlD,EAAe,SAACC,GAAgB,IAAD,EACXA,EAAMC,OAAtB9V,EAD2B,EAC3BA,KAAM+V,EADqB,EACrBA,MACdjB,EAAU,gBAAK5Q,EAAN,gBAAelE,EAAO+V,MAwCnC,OACI,yBAAKpF,UAAU,eAEX,yBAAKA,UAAU,kBACX,4DACA,4CAGJ,yBAAKA,UAAU,iBAEf,yBAAKA,UAAU,eACX,kBAACc,GAAA,EAAD,KACI,kBAACC,GAAA,EAAD,CAAKgB,GAAI,GACL,yBAAK/B,UAAU,iBACX,6CACA,yBAAKA,UAAU,eACf,8BAGJ,mFACA,6BACA,2KAII,6BAAK,6BAJT,2GAQA,6BACA,kBAACc,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKgB,GAAI,GACT,4BAAI,uBAAG/B,UAAU,gBAAjB,OACA,uBAAGM,KAAK,sBAAsB6E,OAAO,SAArC,qBAGA,kBAACpE,GAAA,EAAD,CAAKgB,GAAI,GACT,4BAAI,uBAAG/B,UAAU,mBAAjB,QACA,uBAAGM,KAAK,iCAAiC6E,OAAO,SAASiD,IAAI,uBAA7D,8BAKF,6BACA,uDAEE,kBAACpG,GAAA,EAAD,CAAOC,IAAI,mCAAmCoG,IAAI,oBAKxD,kBAACtH,GAAA,EAAD,CAAKgB,GAAI,IAGT,kBAAChB,GAAA,EAAD,CAAKgB,GAAI,GACL,yBAAK/B,UAAU,cACX,2CACA,yBAAKA,UAAU,eACf,8BAGJ,yEAEA,6BAEA,kBAACqF,GAAA,EAAD,KACI,kBAACA,GAAA,EAAKiD,MAAN,CAAYvL,GAAI+D,KAAKyH,UAAU,cAC3B,kBAAClD,GAAA,EAAKG,MAAN,CAAYgD,QAAM,EAACxH,GAAG,KAAtB,WACA,kBAACD,GAAA,EAAD,CAAKC,GAAG,KACR,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOtW,KAAK,QAAQ+V,MAAO7R,EAAOvF,MAAOya,YAAY,gBAAgB7C,SAAUX,MAItG,kBAACI,GAAA,EAAKiD,MAAN,CAAYvL,GAAI+D,KAAKyH,UAAU,cAC3B,kBAAClD,GAAA,EAAKG,MAAN,CAAYgD,QAAM,EAACxH,GAAG,KAAtB,iBACA,kBAACD,GAAA,EAAD,CAAKC,GAAG,KACR,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,QAAQtW,KAAK,QAAQ+V,MAAO7R,EAAOnL,MAAOqgB,YAAY,cAAc7C,SAAUX,MAIrG,kBAACI,GAAA,EAAKiD,MAAN,CAAYC,UAAU,cAClB,kBAAClD,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOtW,KAAK,QAAQ+V,MAAO7R,EAAO/I,MAAOie,YAAY,mCAAmC7C,SAAUX,KAGzH,kBAACI,GAAA,EAAKiD,MAAN,CAAYC,UAAU,cAClB,kBAAClD,GAAA,EAAKI,QAAN,CAAc1I,GAAG,WAAW1N,KAAK,cAAc+V,MAAO7R,EAAOpH,YAAasc,YAAY,4BAA4BC,KAAM,EAAG9C,SAAUX,KAG/J,wBAAIjF,UAAU,QACXkI,EAAYN,mBACX,wBAAI5H,UAAU,eAAd,qCAEDkI,EAAYL,kBACX,wBAAI7H,UAAU,eAAd,yBAGHgI,EAAYjJ,MACH,kBAAC,GAAD,CAAc/Z,OAAQgjB,EAAYhjB,OAAQ+Z,KAAMiJ,EAAYjJ,OAEhD,kBAAC+B,GAAA,EAAD,CAAKd,UAAU,uCAC7BlL,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1I3B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN4B,EAAeH,IACf,IAAMF,EAAoBrU,EAAOnL,MAAM+K,OAAS,GAC9CI,EAAOvF,MAAMmF,OAAS,GAClB0U,EAAmBtU,EAAOpH,YAAYgH,OAAS,GACrDgV,EAAe,CAACP,oBAAmBC,qBAChCD,GAAqBC,IAGtBzD,GAAc,GACdrW,EAAWwF,EAAOvF,MAAOuF,EAAOnL,MAAOmL,EAAO/I,MAAO+I,EAAOpH,aAC3Dwc,OAAM,SAAA3kB,GACL,GAAGA,EAAMQ,MAAQR,EAAM4kB,WAAW,CAChC,IAAMC,EAAmB,CACvB7jB,OAAQhB,EAAMQ,KAAKQ,OACnB+Z,KAAM/a,EAAM4kB,YAEdX,EAAeY,OAEZ,CAKHZ,EAJyB,CACvBjjB,OAAQ,GACR+Z,KAAM,kBAIVqF,GAAc,MACfsC,SAAQ,WACTtC,GAAc,GACV4D,EAAYjJ,OACd7J,EAAU,gBAAiB,yDAC3BiP,EAAUL,WAyGM,UACfhP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,wB,UCxJVhB,iBAZ+B,SAAC,GAAqC,IAAzB8J,EAAwB,EAAnCC,UAAyBC,EAAU,8BAExEC,EADWhK,qBAAW1B,IACEpI,UAAxB8T,WAEP,OACI,kBAAC,IAAD,iBACQD,EADR,CAEIE,OAAQ,SAACC,GAAD,OAAWF,EAAa,kBAACH,EAAcK,GAAW,kBAAC,IAAD,CAAU9F,GAAI,a,UCkCvE+F,GAmBT,WAAYC,GAAiB,yBAlB7BxjB,GAAa,GAkBe,KAjB5B0B,SAAmB,GAiBS,KAhB5B8N,UAAoB,GAgBQ,KAf5BC,SAAmB,GAeS,KAd5BC,KAAe,GAca,KAb5BnN,MAAgB,GAaY,KAZ5BoP,IAAc,GAYc,KAX5B9J,MAAgB,GAWY,KAV5B/F,YAAsB,GAUM,KAT5BC,gBAA0B,GASE,KAR5BC,eAAyB,GAQG,KAP5BmG,MAAgB,GAOY,KAN5ByJ,OAAiB,GAMW,KAL5BF,aAAuB,GAKK,KAJ5BrP,QAAkB,EAIU,KAH5BH,MAAkB,GAGU,KAF5Bb,eAAgC,GAEJ,KAD5BC,eAAgC,GAE5BogB,OAAO+B,OAAOxW,KAAMuW,ICmLbE,I,MAnPG,SAAC,GAAgB,IAAfhiB,EAAc,EAAdA,SAAc,EACd0X,qBAAW1B,IACcG,WAAnC8L,EAFwB,EAExBA,SAAUhiB,EAFc,EAEdA,YAFc,EAGR0X,mBAAS,IAAIkK,IAHL,oBAGzB5iB,EAHyB,KAGnBijB,EAHmB,OAKFvK,oBAAS,GALP,oBAKzB5K,EALyB,KAKhBoV,EALgB,KAOhCrK,qBAAU,WAOJ9X,GANe,mBAAAkM,EAAAY,OAAA,uDACjBqV,GAAW,GADM,WAAAjW,EAAA,MAEH+V,EAASjiB,IAFN,OAEboiB,EAFa,OAGjBF,EAAQ,IAAIL,GAAQO,IACpBD,GAAW,GAJM,qCAOjBE,KAED,CAACJ,EAAUjiB,IAEd,IAAM0d,EAAe,SAACC,GAAW,IAAD,EACGA,EAAMC,OAA/B9V,EADsB,EACtBA,KAAM+V,EADgB,EAChBA,MAAOrK,EADS,EACTA,QAEnB0O,EADW,WAATpa,EACM,gBAAI7I,EAAL,gBAAY6I,EAAO0L,IAGlB,gBAAIvU,EAAL,gBAAY6I,EAAO+V,MAuB9B,OACE,kBAACvE,GAAA,EAAD,CAAWb,UAAU,WACnB,kBAACc,GAAA,EAAD,CAAKd,UAAU,aACb,wBAAIA,UAAS,mBAAcxZ,EAAK0B,OAAS,eAAiB,mBAA1D,cAA0F1B,EAAK6O,UAAY,IAAM7O,EAAK8O,WAExH,kBAAC+P,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO5e,EAAK4B,MAAOyhB,UAAQ,KAGrD,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,SAAShP,QAASvU,EAAK0B,OACzDmH,KAAK,SAASuW,SAAUX,MAG5B,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,YACL+V,MAAS5e,EAAK6O,UACduQ,SAAUX,KAGZ,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,cAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,WACL+V,MAAS5e,EAAK8O,SACdsQ,SAAUX,MAIlB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,QAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,MACL+V,MAAS5e,EAAKgR,KAAO,GACrBoO,SAAUX,KAGZ,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,QACL+V,MAAS5e,EAAKkH,OAAS,GACvBkY,SAAUX,MAKlB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,QACL+V,MAAS5e,EAAKwH,OAAS,GACvB4X,SAAUX,KAGZ,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,WAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,SACL+V,MAAS5e,EAAKiR,QAAU,GACxBmO,SAAUX,MAIlB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,SAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,OACL+V,MAAS5e,EAAK+O,MAAQ,GACtBqQ,SAAUX,KAIZ,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACnB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,cACL+V,MAAS5e,EAAKmB,aAAe,GAC7BkiB,UAAQ,MAIhB,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,oBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,kBACL+V,MAAS5e,EAAKoB,iBAAmB,GACjCge,SAAUX,KAIZ,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACnB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,oBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,iBACL+V,MAAS5e,EAAKqB,gBAAkB,GAChC+d,SAAUX,MAIlB,kBAACnE,GAAA,EAAD,KACA,kBAACC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACrB,kBAACqE,GAAA,EAAKI,QAAN,CAAc1I,GAAG,WAAW2L,KAAM,EAAG1I,UAAU,eAAe3Q,KAAK,eAAe+V,MAAO5e,EAAK+Q,cAAgB,GAC9GqO,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,4CACb1L,GAAW,kBAAC6L,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QAtMxB,WACnB,IAAI1e,EAAW,CACbF,SAAUf,EAAKe,SACf8N,UAAW7O,EAAK6O,UAChBC,SAAU9O,EAAK8O,SACfC,KAAM/O,EAAK+O,KACXiC,IAAKhR,EAAKgR,IACV9J,MAAOlH,EAAKkH,MACZM,MAAOxH,EAAKwH,MACZyJ,OAAQjR,EAAKiR,OACbvP,OAAQ1B,EAAK0B,OACbN,gBAAiBpB,EAAKoB,gBACtBC,eAAgBrB,EAAKqB,eACrB0P,aAAc/Q,EAAK+Q,cAGrB/P,EAAYC,KAsLK,QACR6M,GAAW,kBAAC6L,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GAC9C,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPF,sBClHTgK,GApHQ,SAAC,GAA8D,IAA7DziB,EAA4D,EAA5DA,SAAUI,EAAkD,EAAlDA,YAAaC,EAAqC,EAArCA,gBAAiBC,EAAoB,EAApBA,eAExDoiB,EADWhL,qBAAW1B,IACCG,WAAvBuM,UAF4E,EAGvC/K,mBAASvX,GAH8B,oBAG5EuiB,EAH4E,KAG5DC,EAH4D,OAI/BjL,mBAAStX,GAJsB,oBAI5EwiB,EAJ4E,KAIxDC,EAJwD,OAKjCnL,mBAASrX,GALwB,oBAK5EyiB,EAL4E,KAKzDC,EALyD,OAM/CrL,oBAAS,GANsC,oBAM5EpK,EAN4E,KAMhEsP,EANgE,OAOrDlF,oBAAS,GAP4C,oBAO5EsL,EAP4E,KAOnEC,EAPmE,KAS7ExF,EAAe,SAACC,GAAW,IAAD,EACRA,EAAMC,OAArB9V,EADuB,EACvBA,KAAM+V,EADiB,EACjBA,MACD,gBAAT/V,GACD8a,EAAkB/E,GACfA,EAAMxgB,SAAS,OAASwgB,EAAMxgB,SAAS,MACvCwlB,GAAsBE,EACvBG,GAAW,GAGXA,GAAW,IAGE,oBAATpb,GACNgb,EAAsBjF,GACnB8E,EAAetlB,SAAS,OAASslB,EAAetlB,SAAS,MACzDwgB,GAASkF,EACVG,GAAW,GAGXA,GAAW,IAEI,mBAATpb,IACRkb,EAAqBnF,GAClB8E,EAAetlB,SAAS,OAASslB,EAAetlB,SAAS,MACzDwlB,GAAsBhF,EACvBqF,GAAW,GAGXA,GAAW,KAWjB,OACE,kBAAC5J,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,cACL+V,MAAS8E,EACTtE,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,sBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,kBACL+V,MAASgF,EACTxE,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,qBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,iBACL+V,MAASkF,EACT1E,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,2CACdwK,IAAY1V,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1DxC,SAACjB,GACpBd,GAAc,GACd6F,EAAU1iB,EAAU2iB,EAAgBE,EAAoBE,GACxDlG,GAAc,KAuDmB,WAC1BtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCrGnB8D,GAAgB,GA6CP4G,GA3CW,SAAC,GAAgB,IAAfnjB,EAAc,EAAdA,SAEnBgB,EADW0W,qBAAW1B,IACSG,WAA/BnV,kBAFiC,EAGA2W,mBAAS4E,IAHT,oBAGjC6G,EAHiC,KAGnBC,EAHmB,KAiBxC,OAZAvL,qBAAU,WAOL9X,GANgB,mBAAAkM,EAAAY,OAAA,kEAAAZ,EAAA,MACGlL,EAAkBhB,IADrB,QACbyP,EADa,SAGf4T,EAAgB5T,GAHD,qCAOjB4S,KAED,CAACrhB,EAAmBhB,IAGrB,kBAACsZ,GAAA,EAAD,KACG8J,EAAapK,QAAQ/M,MAAK,SAACC,EAAGC,GAC7B,OAAGD,EAAEoX,UAAYnX,EAAEmX,WAAmB,EAC1B,KAEb9W,KAAI,SAACjL,EAAQgiB,GAAT,OACH,kBAACrK,GAAA,EAAD,CAAMC,IAAKoK,GACT,kBAACrK,GAAA,EAAKX,KAAN,KACE,kBAACW,GAAA,EAAKb,MAAN,CAAYI,WAA6B,IAAlBlX,EAAOZ,OAAkB,eAAgB,kBAAmBY,EAAOsY,YAC1F,kBAACX,GAAA,EAAKsK,SAAN,CAAe/K,UAAU,uBAAzB,eACe,IAAI7G,KAAKrQ,EAAO+hB,WAAW7G,cAAcC,UAAU,EAAG,KAErE,kBAACxD,GAAA,EAAKsK,SAAN,CAAe/K,UAAU,uBAAzB,aACa,IAAI7G,KAAKrQ,EAAOkiB,SAAShH,cAAcC,UAAU,EAAG,KAEjE,kBAACxD,GAAA,EAAK2C,KAAN,CAAWpD,UAAU,aAClBlX,EAAOqD,oBCpChB2X,GAAgB,GAkDPmH,GAhDS,SAAC,GAAgB,IAAf1jB,EAAc,EAAdA,SAEjB2jB,EADWjM,qBAAW1B,IACOG,WAA7BwN,gBAF+B,EAGEhM,mBAAS4E,IAHX,oBAG/B6G,EAH+B,KAGjBC,EAHiB,KAiBtC,OAZAvL,qBAAU,WAOL9X,GANgB,mBAAAkM,EAAAY,OAAA,kEAAAZ,EAAA,MACGyX,EAAgB3jB,IADnB,QACbyP,EADa,SAGf4T,EAAgB5T,GAHD,qCAOjB4S,KAED,CAACsB,EAAiB3jB,IAGnB,kBAACsZ,GAAA,EAAD,KACG8J,EAAapK,QAAQ/M,MAAK,SAACC,EAAGC,GAC7B,OAAGD,EAAEoX,UAAYnX,EAAEmX,WAAmB,EAC1B,KAEb9W,KAAI,SAACjL,EAAQgiB,GAAT,OACH,kBAACrK,GAAA,EAAD,CAAMC,IAAKoK,GACT,kBAACrK,GAAA,EAAKX,KAAN,KACE,kBAACW,GAAA,EAAKb,MAAN,CAAYI,WAA6B,IAAlBlX,EAAOZ,OAAkB,eAAgB,kBAAhE,YACYY,EAAOqiB,iBAEnB,kBAAC1K,GAAA,EAAKb,MAAN,CAAYI,WAA6B,IAAlBlX,EAAOZ,OAAkB,eAAgB,kBAAhE,WACWY,EAAOsY,YAElB,kBAACX,GAAA,EAAKsK,SAAN,CAAe/K,UAAU,uBAAzB,eACe,IAAI7G,KAAKrQ,EAAO+hB,WAAW7G,cAAcC,UAAU,EAAG,KAErE,kBAACxD,GAAA,EAAKsK,SAAN,CAAe/K,UAAU,uBAAzB,aACa,IAAI7G,KAAKrQ,EAAOkiB,SAAShH,cAAcC,UAAU,EAAG,KAEjE,kBAACxD,GAAA,EAAK2C,KAAN,CAAWpD,UAAU,aAClBlX,EAAOqD,oBCzChBif,GAAW,CAAC,QAAS,cAAe,UAAW,YAAa,UAAW,UAoD9DC,GAlDO,SAAC,GAAuB,IAAtB9jB,EAAqB,EAArBA,SAAUQ,EAAW,EAAXA,MAC1B8K,EAAYoM,qBAAW1B,IADc,EAEP2B,mBAAS,IAAIhL,KAFN,oBAEpCoX,EAFoC,KAExBC,EAFwB,KAGpCC,EAAgB3Y,EAAU6K,WAA1B8N,aAHoC,EAITtM,oBAAS,GAJA,oBAIpCuM,EAJoC,KAIzBC,EAJyB,KAM3CrM,qBAAU,WACR,IAAIsM,EAAU,IAAIzX,IAClBkX,GAAS3W,SAAQ,SAAAqS,GACf6E,EAAQjX,IAAIoS,EAAM/e,EAAM6jB,QAAQ9E,IAAS,MAE3CyE,EAAcI,KACb,CAAC5jB,IAEJ,IAAM8jB,EAAoB,SAAC3G,GAAW,IAAD,EACTA,EAAMC,OAAxB9V,EAD2B,EAC3BA,KAAM0L,EADqB,EACrBA,QACduQ,EAAW5W,IAAIrF,EAAM0L,GACrB2Q,GAAa,IAYf,OACE,kBAAC7K,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACA,yBAAKrF,UAAU,cACX,qCACCsL,EAAWjL,KAAO,GACjB+K,GAASrX,KAAI,SAAA+S,GAAI,OACb,kBAACzB,GAAA,EAAKyE,MAAN,CAAagC,QAAM,EAACnG,KAAK,WACzBoE,MAAOjD,EAAMiF,eAAgBT,EAAWjmB,IAAIyhB,GAAOpG,IAAKoG,EACxDzX,KAAMyX,EACNlB,SAAUiG,QAGpB,kBAAC/K,GAAA,EAAD,CAAKd,UAAU,2CACZyL,GAAa,kBAACtL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QAvBzB,WACnB,IAAI6F,EAAW,GACfV,EAAW7W,SAAQ,SAAC2Q,EAAO1E,GACrB0E,GACF4G,EAAUtnB,KAAKgc,MAGnB8K,EAAajkB,EAAUykB,KAgBL,YC8CPC,I,OA3FO,SAAC,GAAgB,IAAf1kB,EAAc,EAAdA,SAEfc,EADW4W,qBAAW1B,IACKG,WAA3BrV,cAF6B,EAGJ6W,mBAAS,IAHL,oBAG7B5W,EAH6B,KAGnB4jB,EAHmB,OAIAhN,mBAAS,IAJT,oBAI7BiN,EAJ6B,KAIjBC,EAJiB,OAKAlN,oBAAS,GALT,oBAK7BpK,EAL6B,KAKjBsP,EALiB,OAMNlF,oBAAS,GANH,oBAM7BsL,EAN6B,KAMpBC,EANoB,KAQ9BxF,EAAe,SAACC,GAAW,IAAD,EACRA,EAAMC,OAArB9V,EADuB,EACvBA,KAAM+V,EADiB,EACjBA,MACA,aAAT/V,GACF6c,EAAY9G,GACRA,EAAMjS,OAAS,GACjBiS,IAAU+G,EACR1B,GAAW,GAGbA,GAAW,IAGE,eAATpb,IACN+c,EAAchH,GACV9c,EAAS6K,OAAS,GACpB7K,IAAa8c,EACXqF,GAAW,GAGbA,GAAW,KAUjB,OACE,kBAAC5J,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACA,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACP,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,6BAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,WACLtW,KAAK,WACL+V,MAAS9c,EACTsd,SAAUX,EACVwD,YAAY,eAIhB,kBAAC3H,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,qBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,WACLtW,KAAK,aACL+V,MAAS+G,EACTvG,SAAUX,EACVwD,YAAY,wBAIlB,kBAAC3H,GAAA,EAAD,CAAKd,UAAU,2CACdwK,IAAY1V,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA5CxC,SAACjB,GACpBd,GAAc,GACd/b,EAAcd,EAAUe,GACxB8b,GAAc,KAyCmB,WAC1BtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,sB,SCwKVhB,iBAzOG,WAChB,IAAMnM,EAAYoM,qBAAW1B,IADP,EAE2C1K,EAAU6K,WAAnE2O,EAFc,EAEdA,MAAOC,EAFO,EAEPA,UAAWhY,EAFJ,EAEIA,QAASrM,EAFb,EAEaA,cAAeD,EAF5B,EAE4BA,WAF5B,EAGckX,mBAAS,IAHvB,oBAGfqN,EAHe,KAGHC,EAHG,OAIgBtN,mBAAS,IAJzB,oBAIfuN,EAJe,KAIFC,EAJE,OAKcxN,mBAAS,IALvB,oBAKfyN,EALe,KAKHC,EALG,OAMkB1N,oBAAS,GAN3B,oBAMf2N,EANe,KAMDC,EANC,KAOd5X,EAAarC,EAAUoC,WAAvBC,UAERmK,qBAAU,WACRiN,MACC,CAACA,IAEJ,IAgBMS,EAAgB,WACpB,OAAOV,EAAMzW,QAAO,SAAApP,GAClB,MAAkB,KAAf+lB,MAEO/lB,EAAK6O,UAAU8B,cAAcvS,SAAS2nB,EAAWpV,iBACjD3Q,EAAK8O,SAAS6B,cAAcvS,SAAS2nB,EAAWpV,mBAM3DvB,QAAO,SAAApP,GACN,MAAmB,KAAhBimB,KAEOjmB,EAAK4B,MAAM+O,cAAcvS,SAAS6nB,EAAYtV,kBAMzDvB,QAAO,SAAApP,GACN,MAAkB,KAAfmmB,GAGMnmB,EAAKuB,MAAMnD,SAAS+nB,MAG9B/W,QAAO,SAAApP,GACN,OAAGqmB,GACMrmB,EAAK0B,UAKf6L,KAAI,SAAAvN,GAAI,MAAI,CACXX,GAAIW,EAAKX,GACTmnB,SAAUxmB,EAAK6O,UAAY,IAAM7O,EAAK8O,SACtC/N,SAAUf,EAAKe,SACfa,MAAO5B,EAAK4B,MACZoP,IAAKhR,EAAKgR,IACV5P,gBAAiBpB,EAAKoB,gBACtBC,eAAgBrB,EAAKqB,eACrBolB,gBAAyC,MAAxBzmB,EAAKoB,gBAA0B,GAAGpB,EAAKoB,iBACpD,KAA8B,MAAvBpB,EAAKqB,eAAyB,GAAKrB,EAAKqB,gBACnDF,YAAanB,EAAKmB,YAClBqG,MAAOxH,EAAKwH,MACZyJ,OAAQjR,EAAKiR,OACblC,KAAM/O,EAAK+O,KACXxN,MAAOvB,EAAKuB,MAAMmlB,WAClBhlB,OAAQ1B,EAAK0B,OAAQ,MAAQ,UAI3B+e,EAAkB,SAAC1f,EAAkBW,GACzCD,EAAcV,EAAUW,IAsB1B,OAAIoM,EAAgB,kBAAC,GAAD,CAAkB/K,QAAQ,qBAE5C,kBAACsX,GAAA,EAAD,CAAWK,OAAK,EAACgC,MAAO,CAAEiK,UAAW,QACnC,kBAACrM,GAAA,EAAD,CAAKd,UAAU,QACb,kBAACe,GAAA,EAAD,CAAKgB,GAAG,OAAO/B,UAAU,eACzB,kBAACqF,GAAA,EAAKG,MAAN,cAIA,kBAACzE,GAAA,EAAD,CAAKgB,GAAG,KACN,kBAACsD,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAOmH,EAAY9D,YAAY,YAAY7C,SAtGpD,SAACV,GACxBsH,EAActH,EAAMC,OAAOC,WAwGvB,kBAACrE,GAAA,EAAD,CAAKgB,GAAG,OAAO/B,UAAU,eACzB,kBAACqF,GAAA,EAAKG,MAAN,eAIA,kBAACzE,GAAA,EAAD,CAAKgB,GAAG,KACN,kBAACsD,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAOqH,EAAahE,YAAY,YAAY7C,SA3GpD,SAACV,GACzBwH,EAAexH,EAAMC,OAAOC,WA6GxB,kBAACrE,GAAA,EAAD,CAAKgB,GAAG,OAAO/B,UAAU,eACvB,kBAACqF,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,SAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACE1I,GAAG,SACH1N,KAAK,OACL+V,MAAOuH,EACP/G,SApHe,SAACV,GACxB0H,EAAc1H,EAAMC,OAAOC,SAqHjB,4BAAQ1E,IAAK,KACb,4BAAQA,IAAK,WAAb,WACA,4BAAQA,IAAK,WAAb,WACA,4BAAQA,IAAK,UAAb,UACA,4BAAQA,IAAK,aAAb,aACA,4BAAQA,IAAK,eAAb,eACA,4BAAQA,IAAK,SAAb,WAGN,kBAACK,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,EAAGhB,UAAU,eAChC,kBAACqF,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,cAAcgC,gBAAgB,EAChE1c,KAAK,SAASuW,SA7HG,SAACV,GAC1B4H,EAAgB5H,EAAMC,OAAOpK,cA+H3B,kBAACqS,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACtN,UAAU,QAChC,+BACE,4BACE,yCACA,qCACA,mCACA,gDACA,4CACA,qCACA,sCACA,oCACA,qCACA,sDACA,4CAGJ,+BACG+M,IAAgBhZ,KAAI,SAAAvN,GAAI,OACvB,wBAAIka,IAAKla,EAAKX,IACZ,4BACA,0BACIma,UAAS,UAAqB,QAAhBxZ,EAAK0B,OAAmB,yBAA2B,4BACjEie,QAAS,kBAAMjR,EAAU,cAAD,OAAe1O,EAAKwmB,UAAY,kBAAC,GAAD,CAAWzlB,SAAUf,EAAKe,WAAa,kBAC5Ff,EAAKwmB,WAGZ,4BAAKxmB,EAAK4B,OAEV,4BAAK5B,EAAKgR,KACV,4BAAKhR,EAAKymB,eACTzmB,EAAKuB,MAAMnD,SAAS,YAAe,uBAAGob,UAAU,gDAC7CmG,QAAS,kBAAMjR,EAAU,kBAAD,OAAmB1O,EAAKwmB,UAChD,kBAAC,GAAD,CAAgBzlB,SAAUf,EAAKe,SAAUI,YAAanB,EAAKmB,YAAaC,gBAAiBpB,EAAKoB,gBAAiBC,eAAgBrB,EAAKqB,iBAAmB,oBAI3J,4BAAKrB,EAAKmB,aACV,4BAAKnB,EAAKwH,OACV,4BAAKxH,EAAKiR,QACV,4BAAKjR,EAAK+O,MACV,4BAAK/O,EAAKuB,MACR,uBAAGiY,UAAU,gDACXmG,QAAS,kBAAMjR,EAAU,iBAAD,OAAkB1O,EAAKwmB,UAAY,kBAAC,GAAD,CAAezlB,SAAUf,EAAKe,SAAUQ,MAAOvB,EAAKuB,QAAU,mBAE1HvB,EAAKuB,MAAMnD,SAAS,YACnB,uBAAGob,UAAU,uDACbmG,QAAS,kBAAMjR,EAAU,oBAAD,OAAqB1O,EAAKwmB,UAAY,kBAAC,GAAD,CAAmBzlB,SAAUf,EAAKe,WAAa,mBAG9Gf,EAAKuB,MAAMnD,SAAS,WACnB,uBAAGob,UAAU,gEACbmG,QAAS,kBAAMjR,EAAU,oBAAD,OAAqB1O,EAAKwmB,SAA1B,YAA8C,kBAAC,GAAD,CAAiBzlB,SAAUf,EAAKe,WAAa,oBAIvH,wBAAIyY,UAAU,UAAUxZ,EAAK0B,OACV,QAAhB1B,EAAK0B,QACJ,uBAAG8X,UAAU,6DAA6DmG,QAAS,kBAAMc,EAAgBzgB,EAAKe,UAAU,MAEzG,QAAhBf,EAAK0B,QACJ,uBAAG8X,UAAU,0DAA0DmG,QAAS,kBAAMc,EAAgBzgB,EAAKe,UAAU,OAGzH,4BACE,uBAAGyY,UAAU,yDACXmG,QAAS,kBAAMjR,EAAU,sBAAD,OAAuB1O,EAAKwmB,UAAY,kBAACO,GAAD,CAAoBhmB,SAAUf,EAAKe,WAAa,mBAElH,uBAAGyY,UAAU,mDACXmG,QAAS,kBAvIC5e,EAuIsBf,EAAKe,SAvITylB,EAuImBxmB,EAAKwmB,cAtIlEQ,wBAAa,CACXzjB,MAAO,oBACP1F,QAAQ,wCAAD,OAA0C2oB,EAA1C,KACPS,QAAS,CACP,CACE1D,MAAO,MACP5D,QAAS,WACPne,EAAWT,KAGf,CACEwiB,MAAO,KACP5D,QAAS,iBAbQ,IAAC5e,EAAkBylB,YA8IxC,wBAAIhN,UAAU,0BAAd,gBAAqD+M,IAAgB5Z,YClOrEiY,GAAW,CAAC,QAAS,cAAe,UAAW,YAAa,UAAW,UAsU9DpM,iBApU6C,SAAC,GAGtD,IAFL0O,EAEI,EAFJA,MAGM7a,GADF,EADJpO,QAEkBwa,qBAAW1B,KACrBrI,EAAarC,EAAUoC,WAAvBC,UAFJ,EAG0CrC,EAAU6K,WAAhD8L,EAHJ,EAGIA,SAAUhiB,EAHd,EAGcA,YAAaQ,EAH3B,EAG2BA,WAH3B,EAIoBkX,mBAAS,IAAIkK,IAJjC,oBAIG5iB,EAJH,KAISijB,EAJT,OAKgCvK,mBAClC,IAAIhL,KANF,oBAKGoX,EALH,KAKeC,EALf,OAQ0BrM,oBAAS,GARnC,oBAQG5K,EARH,KAQYoV,EARZ,KAUJrK,qBAAU,WAYJqO,EAAMC,OAAOpmB,UAXE,qBAAAkM,EAAAY,OAAA,uDACjBqV,GAAW,GADM,WAAAjW,EAAA,MAEH+V,EAASkE,EAAMC,OAAOpmB,WAFnB,OAEboiB,EAFa,OAGjBF,EAAQ,IAAIL,GAAQO,IACdgC,EAAU,IAAIzX,IAClBkX,GAAS3W,SAAQ,SAAAqS,GACf6E,EAAQjX,IAAIoS,EAAM6C,EAAG5hB,MAAM6jB,QAAQ9E,IAAS,MAE9CyE,EAAcI,GAChBjC,GAAW,GATM,qCAYjBE,KAED,CAACJ,EAAUkE,EAAMC,OAAOpmB,WAE3B,IAAMskB,EAAoB,SAAC3G,GAAgB,IAAD,EACdA,EAAMC,OAAxB9V,EADgC,EAChCA,KAAM0L,EAD0B,EAC1BA,QACduQ,EAAW5W,IAAIrF,EAAM0L,IAGjBkK,EAAe,SAACC,GAAgB,IAAD,EACFA,EAAMC,OAA/B9V,EAD2B,EAC3BA,KAAM+V,EADqB,EACrBA,MAAOrK,EADc,EACdA,QAEnB0O,EADW,WAATpa,EACM,gBAAI7I,EAAL,gBAAY6I,EAAO0L,IAGlB,gBAAIvU,EAAL,gBAAY6I,EAAO+V,MAmD9B,OACE,kBAACvE,GAAA,EAAD,CAAWb,UAAU,WACnB,kBAACc,GAAA,EAAD,CAAKd,UAAU,aACb,wBAAIA,UAAS,mBAAcxZ,EAAK0B,OAAS,eAAiB,mBAA1D,cAA0F1B,EAAK6O,UAAY,IAAM7O,EAAK8O,UACtH,kBAAC6K,GAAA,EAAD,CAAQC,QAAQ,UAAUJ,UAAU,YAClCmG,QAAS,kBAAMjR,EAAU,oBAAD,OAAqB1O,EAAK6O,UAAY,IAAM7O,EAAK8O,UACzE,kBAAC,GAAD,CAAmB/N,SAAUf,EAAKe,WAAa,mBAFjD,iBAKA,kBAAC4Y,GAAA,EAAD,CAAQC,QAAQ,UAAUJ,UAAU,YAClCmG,QAAS,kBAAMjR,EAAU,oBAAD,OAAqB1O,EAAK6O,UAAY,IAAM7O,EAAK8O,SAAjD,YACxB,kBAAC,GAAD,CAAiB/N,SAAUf,EAAKe,WAAa,mBAF/C,eAKA,kBAAC4Y,GAAA,EAAD,CAAQC,QAAQ,YAAYJ,UAAU,YACpCmG,QAAS,kBAAMjR,EAAU,kBAAD,OAAmB1O,EAAK6O,UAAY,IAAM7O,EAAK8O,UACvE,kBAAC,GAAD,CAAgB/N,SAAUf,EAAKe,SAC/BI,YAAanB,EAAKmB,YAAaC,gBAAiBpB,EAAKoB,gBACrDC,eAAgBrB,EAAKqB,iBAAoB,mBAJ3C,cAOA,kBAACsY,GAAA,EAAD,CAAQC,QAAQ,UAAUJ,UAAU,YAClCmG,QAAS,kBAAMjR,EAAU,sBAAD,OAAuB1O,EAAK6O,UAAY,IAAM7O,EAAK8O,UAC3E,kBAACiY,GAAD,CAAoBhmB,SAAUf,EAAKe,WAAa,mBAFlD,kBAKA,kBAAC4Y,GAAA,EAAD,CAAQC,QAAQ,SAASJ,UAAU,YACjCmG,QAAS,kBA9CS5e,EA8Ccf,EAAKe,cA7C3CimB,wBAAa,CACXzjB,MAAO,oBACP1F,QAAS,sCACTopB,QAAS,CACP,CACE1D,MAAO,MACP5D,QAAS,WACPne,EAAWT,KAGf,CACEwiB,MAAO,KACP5D,QAAS,iBAbQ,IAAC5e,IA6CpB,gBAMF,kBAAC8d,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO5e,EAAK4B,MAAOyhB,UAAQ,KAGrD,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,SAAShP,QAASvU,EAAK0B,OACzDmH,KAAK,SAASuW,SAAUX,MAG5B,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,YACL+V,MAAS5e,EAAK6O,UACduQ,SAAUX,KAGZ,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,cAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,WACL+V,MAAS5e,EAAK8O,SACdsQ,SAAUX,MAIlB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,QAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,MACL+V,MAAS5e,EAAKgR,KAAO,GACrBoO,SAAUX,KAGZ,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,QACL+V,MAAS5e,EAAKkH,OAAS,GACvBkY,SAAUX,MAKlB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,QACL+V,MAAS5e,EAAKwH,OAAS,GACvB4X,SAAUX,KAGZ,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,WAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,SACL+V,MAAS5e,EAAKiR,QAAU,GACxBmO,SAAUX,MAIlB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,SAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,OACL+V,MAAS5e,EAAK+O,MAAQ,GACtBqQ,SAAUX,KAIZ,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACnB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,cACL+V,MAAS5e,EAAKmB,aAAe,GAC7BkiB,UAAQ,MAIhB,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,oBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,kBACL+V,MAAS5e,EAAKoB,iBAAmB,GACjCiiB,UAAQ,KAIV,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACnB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,oBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,iBACL+V,MAAS5e,EAAKqB,gBAAkB,GAChCgiB,UAAQ,MAIhB,kBAAC/I,GAAA,EAAD,KACA,kBAACC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACrB,kBAACqE,GAAA,EAAKI,QAAN,CAAc1I,GAAG,WAAW2L,KAAM,EAAG1I,UAAU,eAAe3Q,KAAK,eAAe+V,MAAO5e,EAAK+Q,cAAgB,GAC9GqO,SAAUX,MAIhB,yBAAKjF,UAAU,cACX,qCACCsL,EAAWjL,KAAO,GACjB+K,GAASrX,KAAI,SAAA+S,GAAI,OACb,kBAACzB,GAAA,EAAKyE,MAAN,CAAagC,QAAM,EAACnG,KAAK,WACzBoE,MAAOjD,EAAMiF,eAAgBT,EAAWjmB,IAAIyhB,GAAOpG,IAAKoG,EACxDzX,KAAMyX,EACNlB,SAAUiG,QAGpB,kBAAC/K,GAAA,EAAD,CAAKd,UAAU,4CACb1L,GAAW,kBAAC6L,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QAvQxB,WACnB,IAAI6F,EAAsB,GAC1BV,EAAW7W,SAAQ,SAAC2Q,EAAgB1E,GAC9B0E,GACF4G,EAAUtnB,KAAKgc,MAGnB,IAAIjZ,EAAsB,CACxB5B,GAAIW,EAAKX,GACT0B,SAAUf,EAAKe,SACf8N,UAAW7O,EAAK6O,UAChBC,SAAU9O,EAAK8O,SACfC,KAAM/O,EAAK+O,KACXiC,IAAKhR,EAAKgR,IACV9J,MAAOlH,EAAKkH,MACZM,MAAOxH,EAAKwH,MACZyJ,OAAQjR,EAAKiR,OACb9P,YAAanB,EAAKmB,YAClBC,gBAAiBpB,EAAKoB,gBACtBC,eAAgBrB,EAAKqB,eACrB0P,aAAc/Q,EAAK+Q,aACnBrP,OAAQ1B,EAAK0B,OACbH,MAAOikB,GAGTxkB,EAAYC,KA8OK,QACR6M,GAAW,kBAAC6L,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GAC9C,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPF,uBC9JT4N,GAvKG,SAAC,GAAmB,IACdC,EADJC,EAAiB,EAAjBA,WAQlB,OACE,yBAAK9N,UAAU,WACb,yBAAKkD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAW,6BAA8B8N,EAAWze,OAG1D,kBAACgW,GAAA,EAAD,CAAMrF,UAAU,QACd,kBAACc,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO0I,EAAWniB,QAAQ0D,KAAMwa,UAAQ,KAGlE,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO0I,EAAWniB,QAAQzF,KAAM2jB,UAAQ,MAIpE,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,OAzCZyI,EAyCgCC,EAAWniB,QAAQkiB,MAxC1D,IAAVA,EAAoB,WACL,IAAVA,EAAoB,eACV,IAAVA,EAAoB,WAChB,eAqCmEhE,UAAQ,MAInF,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAS0I,EAAWllB,WACpBihB,UAAQ,KAGZ,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACnB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,YAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAS0I,EAAWE,QACpBnE,UAAQ,MAIhB,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAS,IAAIjM,KAAK2U,EAAWjD,WAAW7G,cAAcC,UAAU,EAAG,IACnE4F,UAAQ,KAGV,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,aAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAS,IAAIjM,KAAK2U,EAAW9C,SAAShH,cAAcC,UAAU,EAAG,IACjE4F,UAAQ,MAIhB,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,oBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAS0I,EAAWrkB,cAAgB,GACpCogB,UAAQ,KAGV,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAS0I,EAAWnkB,YAAc,GAClCkgB,UAAQ,MAIhB,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAS0I,EAAWG,aACpBpE,UAAQ,KAGV,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,YAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAS0I,EAAWI,QAAQ7Y,UAAY,IAAMyY,EAAWI,QAAQ5Y,SACjEuU,UAAQ,MAIhB,kBAAC/I,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIF,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACrB,kBAACqE,GAAA,EAAKI,QAAN,CAAc1I,GAAG,WAAW2L,KAAM,EAAG1I,UAAU,eAAeoF,MAAO0I,EAAW3hB,YAAa0d,UAAQ,SCvGpG7K,iBAnDK,WAClB,IAAMnM,EAAYoM,qBAAW1B,IADL,EAEa1K,EAAUgL,aAAxC7G,EAFiB,EAEjBA,QAASmX,EAFQ,EAERA,kBACRjZ,EAAarC,EAAUoC,WAAvBC,UAERmK,qBAAU,WACR8O,MACC,CAACA,IASJ,OACE,kBAACtN,GAAA,EAAD,CAAWK,OAAK,EAAClB,UAAU,cACzB,kBAACoN,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,GAC3B,+BACE,4BACE,oCACA,oCACA,qCACA,0CACA,wCACA,8CACA,yCAGJ,+BACGpX,GACDA,EAAQjD,KAAI,SAAAjL,GAAM,OAChB,wBAAI4X,IAAK5X,EAAOF,WAAYoX,UAAU,YAAYmG,QAAS,SAACkI,GAC1DnZ,EAAU,aAAc,kBAAC,GAAD,CAAW4Y,WAAYhlB,IAAY,kBAC3D,4BAAKA,EAAOF,YACZ,4BAAKE,EAAOsY,YACZ,4BA3BG,KADOyM,EA4BQ/kB,EAAO6C,QAASkiB,OA3BrB,WACL,IAAVA,EAAoB,eACV,IAAVA,EAAoB,WAChB,eAyBF,4BAAK,IAAI1U,KAAKrQ,EAAO+hB,WAAW7G,cAAcC,UAAU,EAAG,KAC3D,4BAAK,IAAI9K,KAAKrQ,EAAOkiB,SAAShH,cAAcC,UAAU,EAAG,KACzD,4BAAKnb,EAAOW,aAAe,IAAMX,EAAOa,YACxC,4BAAKb,EAAOolB,QAAS7Y,UAAY,IAAMvM,EAAOolB,QAAS5Y,WAhC9C,IAACuY,W,mDCeTS,GArB+B,SAAC,GAAqC,IAApCC,EAAmC,EAAnCA,UAAWC,EAAwB,EAAxBA,UAAWla,EAAa,EAAbA,QAClE,OACI,6BACN,kBAAC,KAAD,CACEma,SAAS,4EACTvF,OAAQ,SAACwF,GAAD,OACHpa,GAAW,kBAAC6L,GAAA,EAAD,CAAQgG,QAASuI,EAAYvI,QAASR,KAAK,SAASxC,MAAM,eAClE,uBAAGnD,UAAU,sBADL,sBAKhB2O,WAAW,QACXC,YAAY,EACZL,UAAWA,EACXC,UAAWA,EACXK,aAAc,yBChBZ/K,GAAgB,CACpB1b,MAAO,GACPE,SAAU,IAENqf,GAAoB,CACxBmH,cAAc,EACdC,eAAe,GAEXjH,GAAoC,CACxC9iB,OAAQ,GACR+Z,KAAM,IAiIOC,iBA9HG,WAChB,IADsB,EACJC,qBAAW1B,IACiBpI,UAAtC5O,EAFc,EAEdA,MAAOU,EAFO,EAEPA,OAAQ4P,EAFD,EAECA,SAFD,EAGMqI,mBAAS4E,IAHf,oBAGfvQ,EAHe,KAGP4Q,EAHO,OAIgBjF,mBAASyI,IAJzB,oBAIfO,EAJe,KAIFC,EAJE,OAKcjJ,oBAAS,GALvB,oBAKfpK,EALe,KAKHsP,EALG,OAMgBlF,mBAAS4I,IANzB,oBAMfE,EANe,KAMFC,EANE,KAUhBhD,EAAe,SAACC,GAAgB,IAAD,EACXA,EAAMC,OAAtB9V,EAD2B,EAC3BA,KAAM+V,EADqB,EACrBA,MACdjB,EAAU,gBAAK5Q,EAAN,gBAAelE,EAAO+V,MAmCjC,OACE,kBAACvE,GAAA,EAAD,CAAWb,UAAU,WACf,kBAACqF,GAAA,EAAD,CAAMC,YAAU,GAChB,kBAACxE,GAAA,EAAD,CAAKd,UAAU,oBACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,QACLtW,KAAK,QACL+V,MAAS7R,EAAOnL,MAChBwd,SAAUX,EACVwD,YAAY,YAIhB,kBAAC3H,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,aAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,WACLtW,KAAK,WACL+V,MAAS7R,EAAOjL,SAChBsd,SAAUX,EACVwD,YAAY,eAIhB,wBAAIzI,UAAU,QACXkI,EAAY4G,cACX,wBAAI9O,UAAU,eAAd,0BAEDkI,EAAY6G,eACX,wBAAI/O,UAAU,eAAd,mBAGHgI,EAAYjJ,MACT,kBAAC,GAAD,CAAc/Z,OAAQgjB,EAAYhjB,OAAQ+Z,KAAMiJ,EAAYjJ,OAEhE,kBAAC+B,GAAA,EAAD,CAAKd,UAAU,4CACblL,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QAlF/B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN4B,EAAeH,IACf,IAAMgH,EAAuC,IAAxBvb,EAAOnL,MAAM+K,OAC5B4b,EAA2C,IAA3Bxb,EAAOjL,SAAS6K,OACtCgV,EAAe,gBAAID,EAAL,CAAkB4G,eAAcC,mBAC3CD,GAAgBC,IAIjB3K,GAAc,GACd7d,EAAMgN,GAAQoV,OAAM,SAAA3kB,GAClB,GAAGA,EAAMQ,MAAQR,EAAM4kB,WAAW,CAChC,IAAMC,EAAmB,CACvB7jB,OAAQhB,EAAMQ,KAAKQ,OACnB+Z,KAAM/a,EAAM4kB,YAEdX,EAAeY,OAEZ,CAKHZ,EAJyB,CACvBjjB,OAAQ,GACR+Z,KAAM,qBAIT2H,SAAQ,WACTtC,GAAc,SAsDM,SACftP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,kBAUf,kBAACc,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKf,UAAU,OACb,8BAEF,kBAACe,GAAA,EAAD,CAAKf,UAAU,YAAf,MAGA,kBAACe,GAAA,EAAD,CAAKf,UAAU,OACb,+BAGJ,kBAACc,GAAA,EAAD,CAAKd,UAAU,2CACf,kBAAC,GAAD,CAAoB1L,QAASuC,EAAU0X,UAAWtnB,EAAQunB,UAhHlD,SAACxqB,GACjByR,QAAQC,IAAI1R,YCxBV8f,GAAgB,CACpBzO,UAAW,GACXC,SAAU,GACVC,KAAM,WACNnN,MAAO,GACPE,SAAU,GACV6jB,WAAY,IAERxE,GAAoB,CACxBqH,YAAY,EACZF,cAAc,EACdG,iBAAiB,EACjBC,oBAAoB,GAEhBpH,GAAwB,CAC5B9iB,OAAQ,GACR+Z,KAAM,IAGKoQ,GAAe,WAC1B,IACQ1oB,EADUwY,qBAAW1B,IACEpI,UAAvB1O,SAFwB,EAGJyY,mBAAS4E,IAHL,oBAGzBvQ,EAHyB,KAGjB4Q,EAHiB,OAIMjF,mBAASyI,IAJf,oBAIzBO,EAJyB,KAIZC,EAJY,OAKIjJ,oBAAS,GALb,oBAKzBpK,EALyB,KAKbsP,EALa,OAMMlF,mBAAS4I,IANf,oBAMzBE,EANyB,KAMZC,EANY,KAOhC5I,qBAAU,cAAU,CAAC9L,EAAQuB,IAE7B,IAAMmQ,EAAe,SAACC,GAAgB,IAAD,EACXA,EAAMC,OAAtB9V,EAD2B,EAC3BA,KAAM+V,EADqB,EACrBA,MACdjB,EAAU,gBAAK5Q,EAAN,gBAAelE,EAAO+V,MA0CjC,OACE,kBAACvE,GAAA,EAAD,CAAWb,UAAU,WACf,kBAACqF,GAAA,EAAD,CAAMC,YAAU,GACd,kBAACxE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,QACLtW,KAAK,QACL+V,MAAS7R,EAAOnL,MAChBwd,SAAUX,EACVwD,YAAY,YAIhB,kBAAC3H,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,YACL+V,MAAS7R,EAAO8B,UAChBuQ,SAAUX,EACVwD,YAAY,iBAIhB,kBAAC3H,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,cAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,WACL+V,MAAS7R,EAAO+B,SAChBsQ,SAAUX,EACVwD,YAAY,gBAIhB,kBAAC3H,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,SAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACR3I,GAAG,SACH1N,KAAK,OACL+V,MAAS7R,EAAOgC,KAChBqQ,SAAUX,EACVwD,YAAY,QACZ,4CACA,2CACA,4CAIJ,kBAAC3H,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,6BAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,WACLtW,KAAK,WACL+V,MAAS7R,EAAOjL,SAChBsd,SAAUX,EACVwD,YAAY,eAIhB,kBAAC3H,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,qBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,WACLtW,KAAK,aACL+V,MAAS7R,EAAO4Y,WAChBvG,SAAUX,EACVwD,YAAY,wBAIhB,wBAAIzI,UAAU,QACXkI,EAAY8G,YACX,wBAAIhP,UAAU,eAAd,kBAEDkI,EAAY4G,cACX,wBAAI9O,UAAU,eAAd,kBAEDkI,EAAY+G,iBACX,wBAAIjP,UAAU,eAAd,oBAEDkI,EAAYgH,oBACZ,wBAAIlP,UAAU,eAAd,2BAGFgI,EAAYjJ,MACT,kBAAC,GAAD,CAAc/Z,OAAQgjB,EAAYhjB,OAAQ+Z,KAAMiJ,EAAYjJ,OAEhE,kBAAC+B,GAAA,EAAD,CAAKd,UAAU,uCACblL,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QAtK/B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN4B,EAAeH,IACf,IAAMkH,EAAyC,IAA5Bzb,EAAO8B,UAAUlC,QACG,IAA3BI,EAAO+B,SAASnC,QACO,IAAvBI,EAAOgC,KAAKpC,QACY,IAAxBI,EAAOnL,MAAM+K,OACnB2b,EAAevb,EAAOnL,MAAMwjB,QAAQ,KAAO,GAAKrY,EAAOnL,MAAMwjB,QAAQ,KAAO,EAC5EqD,EAAkB1b,EAAOjL,SAAS6K,OAAS,EAC3C+b,EAAqB3b,EAAOjL,WAAaiL,EAAO4Y,WACtDhE,EAAe,gBAAID,EAAL,CAAkB8G,aAAYF,eAAcG,kBAAiBC,wBACvEF,GACFF,GACAG,GACAC,IAGA9K,GAAc,GACd3d,EAAS8M,GAAQoV,OAAM,SAAA3kB,GACrB,GAAGA,EAAMQ,MAAQR,EAAM4kB,WAAW,CAChC,IAAMC,EAAmB,CACvB7jB,OAAQhB,EAAMQ,KAAKQ,OACnB+Z,KAAM/a,EAAM4kB,YAEdX,EAAeY,OAEb,CAKFZ,EAJyB,CACvBjjB,OAAQ,GACR+Z,KAAM,4BAIT2H,SAAQ,WACTtC,GAAc,SAmIM,YACftP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCvFZoP,GAjHoB,WACjC,IACQ1oB,EADUuY,qBAAW1B,IACQpI,UAA7BzO,eAF+B,EAGDwY,mBAAS,IAHR,oBAGhCvY,EAHgC,KAGnB0oB,EAHmB,OAIPnQ,mBAAS,IAJF,oBAIhC5W,EAJgC,KAItB4jB,EAJsB,OAKHhN,mBAAS,IALN,oBAKhCiN,EALgC,KAKpBC,EALoB,OAMHlN,oBAAS,GANN,oBAMhCpK,EANgC,KAMpBsP,EANoB,OAOTlF,oBAAS,GAPA,oBAOhCsL,EAPgC,KAOvBC,EAPuB,KASjCxF,EAAe,SAACC,GAAW,IAAD,EACRA,EAAMC,OAArB9V,EADuB,EACvBA,KAAM+V,EADiB,EACjBA,MACA,gBAAT/V,GACFggB,EAAejK,GACZA,EAAMjS,OAAS,GAAGsX,GAAW,IAEhB,aAATpb,GACP6c,EAAY9G,GACRA,EAAMjS,OAAS,GACjBiS,IAAU+G,EACR1B,GAAW,GAGbA,GAAW,IAGE,eAATpb,IACN+c,EAAchH,GACV9c,EAAS6K,OAAS,GACpB7K,IAAa8c,EACXqF,GAAW,GAGbA,GAAW,KAUjB,OACE,kBAAC5J,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,WACLtW,KAAK,cACL+V,MAASze,EACTif,SAAUX,EACVwD,YAAY,eAIhB,kBAAC3H,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,6BAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,WACLtW,KAAK,WACL+V,MAAS9c,EACTsd,SAAUX,EACVwD,YAAY,eAIhB,kBAAC3H,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,qBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,WACLtW,KAAK,aACL+V,MAAS+G,EACTvG,SAAUX,EACVwD,YAAY,wBAIhB,kBAAC3H,GAAA,EAAD,CAAKd,UAAU,2CACZwK,IAAY1V,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA5DxC,SAACjB,GACpBd,GAAc,GACd1d,EAAeC,EAAa2B,GAC5B8b,GAAc,KAyDmB,WAC1BtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBC6DVhB,iBArJyB,SAAC,GAAkB,IAAhBsQ,EAAe,EAAfA,SACnCzc,EAAYoM,qBAAW1B,IAD2B,EAEnB1K,EAAUsC,UAAvC8T,EAFgD,EAEhDA,WAAYziB,EAFoC,EAEpCA,KAAM+oB,EAF8B,EAE9BA,OAF8B,EAGvB1c,EAAUwL,aAApCxD,EAHiD,EAGjDA,UAAW2U,EAHsC,EAGtCA,YAHsC,EAIO3c,EAAUyL,QAAlEhD,EAJiD,EAIjDA,UAAWI,EAJsC,EAItCA,YAAa1M,EAJyB,EAIzBA,aAAcC,EAJW,EAIXA,eACrCiG,EAAarC,EAAUoC,WAAvBC,UACFxR,EAAQC,OAAOC,aAAaC,QAAQ,OAe1C,OAbAwb,qBAAU,WAEL7Y,GAAQA,EAAKuB,MAAMnD,SAAS,UAC7B4qB,IAEChpB,GAAQA,EAAKuB,MAAMnD,SAAS,YAC7BoK,IAECxI,GAAQA,EAAKuB,MAAMnD,SAAS,cAC7BqK,MAED,CAACugB,EAAaxgB,EAAcC,EAAgBzI,IAG7C,kBAAC,WAAD,KACE,kBAACipB,GAAA,EAAD,CACEC,OAAO,MACPC,kBAAgB,EAChBC,OAAO,KACPC,GAAG,UACHzP,QAAQ,OACRJ,UAAU,YAEV,kBAACyP,GAAA,EAAOK,MAAR,CAAc/S,GAAIgT,KAASC,OAAK,EAAC3M,GAAG,KAClC,yBACEgF,IAAI,GACJpG,IAAI,mBACJgO,MAAM,KACNC,OAAO,KACPlQ,UAAU,6BACT,IAPL,UAUA,kBAACyP,GAAA,EAAOU,OAAR,CAAeC,gBAAc,0BAC7B,kBAACX,GAAA,EAAOY,SAAR,CAAiBxqB,GAAG,yBAClB,kBAACyqB,GAAA,EAAD,CAAKtQ,UAAU,WACb,kBAACsQ,GAAA,EAAIC,KAAL,CAAUxT,GAAIgT,KAAS1M,GAAG,YAA1B,WACA,kBAACiN,GAAA,EAAIC,KAAL,CAAUxT,GAAIgT,KAAS1M,GAAG,UAA1B,SACA,kBAACiN,GAAA,EAAIC,KAAL,CAAUxT,GAAIgT,KAAS1M,GAAG,YAA1B,mBACA,kBAACiN,GAAA,EAAIC,KAAL,CAAUxT,GAAIgT,KAAS1M,GAAG,iBAA1B,eACA,kBAACiN,GAAA,EAAIC,KAAL,CAAUxT,GAAIgT,KAAS1M,GAAG,YAA1B,cACC7c,GACC,kBAACgqB,GAAA,EAAD,CAAazmB,MAAM,gBAAgBlE,GAAG,eAAe4qB,mBAAmB,GACtE,kBAACD,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,uBAA/B,SACA,kBAACmN,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,uBAA/B,WAGH7c,GAAQA,EAAKuB,MAAMnD,SAAS,WAC3BiW,EAAU6V,MAAK,SAAA7a,GAAC,OAAGA,EAAEkF,WACrB,kBAACyV,GAAA,EAAD,CAAazmB,MAAO,yBAAKmZ,MAAO,CAAC6K,QAAS,iBAAtB,QAClB,uBAAG/N,UAAU,6BAAsCna,GAAG,QAAQ4qB,mBAAmB,GACjF,kBAACD,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,UAA/B,SACA,kBAACmN,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,cAA/B,aACA,kBAACmN,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,oBAA/B,iBACA,kBAACmN,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,mBAA/B,gBAGF,kBAACmN,GAAA,EAAD,CAAazmB,MAAM,QAAQlE,GAAG,QAAQ4qB,mBAAmB,GACvD,kBAACD,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,UAA/B,SACA,kBAACmN,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,cAA/B,aACA,kBAACmN,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,oBAA/B,iBACA,kBAACmN,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,mBAA/B,iBAGH7c,GAAQA,EAAKuB,MAAMnD,SAAS,gBACzB,kBAAC4rB,GAAA,EAAD,CAAazmB,MAAM,eAAelE,GAAG,cAAc4qB,mBAAmB,GACpE,kBAACD,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,aAA/B,YACA,kBAACmN,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,cAA/B,YAGL7c,GAAQA,EAAKuB,MAAMnD,SAAS,aAC3B0W,EAAUoV,MAAK,SAAA7a,GAAC,OAAGA,EAAE8a,UACnB,kBAACH,GAAA,EAAD,CAAazmB,MAAO,yBAAKmZ,MAAO,CAAC6K,QAAS,iBAAtB,UACpB,uBAAG/N,UAAU,6BAAsCna,GAAG,UAAU4qB,mBAAmB,GACjF,kBAACD,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,cAA/B,WACA,kBAACmN,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,WAA/B,UACA,kBAACmN,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,cAA/B,qBAGF,kBAACmN,GAAA,EAAD,CAAazmB,MAAM,UAAUlE,GAAG,UAAU4qB,mBAAmB,GAC3D,kBAACD,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,cAA/B,WACA,kBAACmN,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,WAA/B,UACA,kBAACmN,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,cAA/B,sBAIL7c,GAAQA,EAAKuB,MAAMnD,SAAS,eAC3B8W,EAAYgV,MAAK,SAAA7a,GAAC,OAAGA,EAAE8a,UACrB,kBAACH,GAAA,EAAD,CAAazmB,MAAO,yBAAKmZ,MAAO,CAAC6K,QAAS,iBAAtB,YACpB,uBAAG/N,UAAU,6BAAsCna,GAAG,YAAY4qB,mBAAmB,GACnF,kBAACD,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,cAA/B,WACA,kBAACmN,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,aAA/B,UACA,kBAACmN,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,gBAA/B,qBAGF,kBAACmN,GAAA,EAAD,CAAazmB,MAAM,YAAYlE,GAAG,YAAY4qB,mBAAmB,GAC/D,kBAACD,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,cAA/B,WACA,kBAACmN,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,aAA/B,UACA,kBAACmN,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,gBAA/B,sBAIL7c,GAAQA,EAAKuB,MAAMnD,SAAS,YACzB,kBAAC4rB,GAAA,EAAD,CAAazmB,MAAM,UAAUlE,GAAG,UAAU4qB,mBAAmB,GAC3D,kBAACD,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,cAA/B,YAGL7c,GAAQA,EAAKuB,MAAMnD,SAAS,WACzB,kBAAC4rB,GAAA,EAAD,CAAazmB,MAAM,SAASlE,GAAG,SAAS4qB,mBAAmB,GAC3D,kBAACD,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,cAA/B,aAIN,kBAACiN,GAAA,EAAD,KAEGrH,GAAcziB,GAAQ9C,EACrB,kBAAC8sB,GAAA,EAAD,CAAazmB,MAAO,SAAWvD,EAAK6O,UAAY,IAAM7O,EAAK8O,SAAUzP,GAAG,WACtE,kBAAC2qB,GAAA,EAAY1O,KAAb,CAAkB/E,GAAIwT,KAAMlN,GAAG,kBAA/B,WACA,kBAACmN,GAAA,EAAY1O,KAAb,CAAkBqE,QAAS,kBAAMjR,EAAU,kBAAmB,kBAAC,GAAD,SAA9D,kBAGA,kBAACsb,GAAA,EAAY1O,KAAb,CAAkBqE,QAASoJ,GAA3B,WAGH,oCACC,kBAACe,GAAA,EAAIxO,KAAL,CAAU9B,UAAU,gBAAgBmG,QAAS,kBAAMjR,EAAU,kBAAmB,kBAAC,GAAD,SAAhF,SAGA,kBAACob,GAAA,EAAIxO,KAAL,CAAU9B,UAAU,gBAAgBmG,QAAS,kBAAMjR,EAAU,sBAAuB,kBAAC,GAAD,SAApF,gBAQPoa,MC1IQsB,GAbkB,SAAC,GAAgB,IAAftB,EAAc,EAAdA,SACjC,OACE,kBAAC,WAAD,KAKM,kBAAC,GAAD,CAAeA,SAAUA,MCkEpBtQ,I,OAAAA,cA1EW,WACxB,IAAMnM,EAAYoM,qBAAW1B,IADC,EAEM1K,EAAUuL,kBAAtC1F,EAFsB,EAEtBA,UAAWmY,EAFW,EAEXA,aACXrqB,EAASqM,EAAUsC,UAAnB3O,KACR6Y,qBAAU,WACRwR,MACC,CAACA,IAqCJ,OACE,kBAAChQ,GAAA,EAAD,CAAWb,UAAU,cACnB,wBAAIA,UAAU,uBAAd,4BACA,kBAACoN,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,GAC3B,+BACE,4BACE,yCACA,qCACA,8CACA,sCAGJ,+BACG1V,GACCA,EAAU3E,KAAI,SAAA+c,GAAQ,OACpB,wBAAIpQ,IAAKoQ,EAASvpB,SAClB2b,MAAO,CAACC,MAAO2N,EAASvpB,YAAT,OAAsBf,QAAtB,IAAsBA,OAAtB,EAAsBA,EAAMe,UAAW,MAAQ,UAE5D,4BAAKupB,EAASzb,UAAY,IAAMyb,EAASxb,UACzC,6BAtDIyb,EAsDUD,EAASC,QArDtB,EACJ,SACEA,EAAS,GACX,UACEA,EAAS,GACX,cACEA,EAAS,GACX,qBACEA,EAAS,IACX,iBACEA,EAAS,IACX,iBACEA,EAAS,IACX,WACEA,EAAS,IACX,YACEA,EAAS,IACX,SACEA,EAAS,IACX,SACEA,EAAS,IACX,SACEA,EAAS,IACX,SACEA,EAAS,IACX,YACCA,EAAS,KACV,cAGA,UAwBG,4BAAKD,EAASC,QACd,4BAAKD,EAASE,OAxDX,IAACD,YCdPE,GAAY,CACrB,SACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,UACA,UACA,UACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,UACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,UCxBEC,GAAa,CACjBjB,MAAO,OACPC,OAAQ,QAEGiB,GAAoB,WAAO,IAAD,EACXjS,oBAAS,GADE,oBAC9BkS,EAD8B,KACvBC,EADuB,OAEDnS,mBAAS,KAFR,oBAE9B7Q,EAF8B,KAElBijB,EAFkB,OAGTpS,mBAAuB,IAHd,oBAG9BqS,EAH8B,KAGtBC,EAHsB,OAInBvS,qBAAW1B,IACqCa,kBAA1DqT,EAL6B,EAK7BA,iBAAkB9Y,EALW,EAKXA,aAAc+Y,EALH,EAKGA,YALH,EAMHxS,oBAAS,GANN,oBAM9ByS,EAN8B,KAMnBC,EANmB,KAQrCvS,qBAAU,WACRoS,IAAmBnsB,MAAK,SAAAqT,GACtB,GAAKA,EAAc4Y,OAAO3sB,SAAS,KAG9B,CACH,IAAI6V,EAAoB,GACxB9B,EAAc4Y,OAAOM,MAAM,KAAKpd,SAAQ,SAAAqd,GACtCrX,EAAI/V,KAAK,CACPotB,MAAOA,EACPC,WAAW,OAGfP,EAAU/W,QAVVmX,GAAa,QAahB,CAACH,EAAkBG,IAEtB,IAAMI,EAAc,SAACC,GACnB,OAAQA,EAAGH,OACT,IAAK,IACH,OAAOG,EAAGF,UAAYd,GAAU,GAAKA,GAAU,GACjD,IAAK,IACH,OAAOgB,EAAGF,UAAYd,GAAU,GAAKA,GAAU,GACjD,IAAK,IACH,OAAOgB,EAAGF,UAAYd,GAAU,GAAKA,GAAU,GACjD,IAAK,IACH,OAAOgB,EAAGF,UAAYd,GAAU,IAAMA,GAAU,GAClD,IAAK,IACH,OAAOgB,EAAGF,UAAYd,GAAU,IAAMA,GAAU,IAClD,IAAK,IACH,OAAOgB,EAAGF,UAAYd,GAAU,IAAMA,GAAU,IAClD,IAAK,IACH,OAAOgB,EAAGF,UAAYd,GAAU,IAAMA,GAAU,IAClD,IAAK,IACH,OAAOgB,EAAGF,UAAYd,GAAU,IAAMA,GAAU,IAClD,IAAK,IACH,OAAOgB,EAAGF,UAAYd,GAAU,IAAMA,GAAU,IAClD,IAAK,IACH,OAAOgB,EAAGF,UAAYd,GAAU,IAAMA,GAAU,MAIhDiB,EAAkB,SAAC7jB,GACvB,IAAI0G,EAASod,EAAmB9jB,EAAYsK,EAAc5D,SAC3C,IAAZA,GACDsc,GAAS,GACTC,EAAcjjB,IACK,IAAX0G,GACRsc,GAAS,GACTC,EAAcjjB,KAEdgjB,GAAS,GACTC,EAAcjjB,GACVkjB,EAAOb,MAAK,SAAA7a,GAAC,OAAEA,EAAEkc,cACnBL,EAAYrjB,KAKZ8jB,EAAqB,SAAC9jB,EAAoB0G,GAC9C,GAAmB,KAAf1G,EAAmB,OAAO,EAC9B,KAAOA,EAAWzJ,SAAS,MAAM,CAG/B,IAFA,IAAIwtB,EAAO/jB,EAAWud,QAAQ,KAC1ByG,EAASD,EAAO,EACbC,GAAU,GAAG,CAElB,GAAa,MADFhkB,EAAWgkB,GAEpB,MAEFA,IAEF,GAA2B,MAAvBhkB,EAAWgkB,GACb,OAAQ,EAEV,IAAI7c,EAAS8c,EAAejkB,EAAW4V,UAAUoO,EAAS,EAAGD,IAC7D,GAAe,KAAX5c,EACF,OAAQ,EAEVnH,EACEA,EAAW4V,UAAU,EAAGoO,GACxB7c,EACAnH,EAAW4V,UAAUmO,EAAO,EAAG/jB,EAAW8E,QAG9C,MAAc,MADdqC,EAAS8c,EAAejkB,KAEd,EAEDmH,IAAWT,EACX,EAEA,GAILud,EAAiB,SAACjkB,GAItB,IAHA,IAAIzI,EAAO2sB,EAAalkB,GACpBmkB,EAAkB,GAClB1H,EAAQ,EACLA,EAAQllB,EAAKuN,QAAQ,CAC1B,IAAIsf,EAAO7sB,EAAKklB,GAChB,GAAa,MAAT2H,EAAc,CAChB,GAAI3H,EAAQ,IAAMllB,EAAKuN,OAAQ,MAAO,GACtC,GAAqB,IAAjBqf,EAAMrf,OAAc,MAAO,GAC/B,IAAIuf,EAAUF,EAAMG,MAChBC,EAAUhtB,EAAKklB,EAAQ,GAC3B,GAAI+H,OAAOC,MAAMD,OAAOH,KAAaG,OAAOC,MAAMD,OAAOD,IACvD,MAAO,GAET,IAAIG,EAAO7Z,SAASwZ,GAChBM,EAAO9Z,SAAS0Z,GACpBJ,EAAM9tB,MAAMquB,EAAOC,GAAM9F,YACzBpC,GAAS,OACJ,GAAa,MAAT2H,EAAc,CACvB,GAAI3H,EAAQ,IAAMllB,EAAKuN,OAAQ,MAAO,GACtC,GAAqB,IAAjBqf,EAAMrf,OAAc,MAAO,GAG/B,GAFAuf,EAAUF,EAAMG,MAChBC,EAAUhtB,EAAKklB,EAAQ,GACnB+H,OAAOC,MAAMD,OAAOH,KAAaG,OAAOC,MAAMD,OAAOD,IACvD,MAAO,GAIT,IAFAG,EAAO7Z,SAASwZ,KAChBM,EAAO9Z,SAAS0Z,IACE,EAChB,MAAO,GAETJ,EAAM9tB,MAAMquB,EAAOC,GAAM9F,YACzBpC,GAAS,OAET0H,EAAM9tB,KAAK+tB,GACX3H,IAGJ,IAAImI,EAAYT,EAAMU,QACtB,GAAIL,OAAOC,MAAMD,OAAOI,IACtB,MAAO,GAGT,IADA,IAAIle,EAASmE,SAAS+Z,GACfT,EAAMrf,OAAS,GAAG,CACvB,IAAIggB,EAAKX,EAAMU,QACf,GAAW,MAAPC,EAAY,CACd,GAAqB,IAAjBX,EAAMrf,OAAc,MAAO,GAC/B,IAAIigB,EAASZ,EAAMU,QACnB,GAAIL,OAAOC,MAAMD,OAAOO,IACtB,MAAO,GAET,IAAIC,EAAMna,SAASka,GACnBre,GAAUse,MACL,IAAW,MAAPF,EAST,MAAO,GARP,GAAqB,IAAjBX,EAAMrf,OAAc,MAAO,GAE/B,GADAigB,EAASZ,EAAMU,QACXL,OAAOC,MAAMD,OAAOO,IACtB,MAAO,GAGTre,GADAse,EAAMna,SAASka,IAMnB,OAAOre,EAAOmY,YAGVqF,EAAe,SAAClkB,GAIpB,IAHA,IAAIzI,EAAO,GACPwtB,EAAS,GACTtI,EAAQ,EACLA,EAAQzc,EAAW8E,QAAQ,CAChC,IAAImgB,EAAOjlB,EAAWyc,GAEX,MAATwI,GACS,MAATA,GACS,MAATA,GACS,MAATA,GACAT,OAAOC,MAAMD,OAAOS,KAEL,KAAXF,IACFxtB,EAAKlB,KAAK0uB,GACVA,EAAS,IAEXxtB,EAAKlB,KAAK4uB,IAEVF,GAAkBE,EAEpBxI,IAKF,MAHe,KAAXsI,GACFxtB,EAAKlB,KAAK0uB,GAELxtB,GAoGT,OACE,kBAACib,GAAA,EAAD,KACC8Q,EAEG,kBAAC7Q,GAAA,EAAD,CAAKd,UAAU,mBAAf,gDAIF,oCACA,kBAACc,GAAA,EAAD,CAAKd,UAAU,cAAf,mBACYrH,QADZ,IACYA,OADZ,EACYA,EAAchO,OAE1B,kBAACmW,GAAA,EAAD,CAAKd,UAAU,eAAf,WACU,0BAAMA,UAAU,QAAhB,OAAwBrH,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAc5D,SAEhD,kBAAC+L,GAAA,EAAD,CAAKd,UAAU,kBACb,0BAAMkD,MAAO,CAACC,MAAO,SAAUnD,UAAU,QAAzC,eACA,0BAAMkD,MAAO,CAACC,MAAOiO,EAAQ,QAAU,QAAS/iB,IAElD,kBAACyS,GAAA,EAAD,CAAKd,UAAU,wBACb,wBAAIkD,MAAO,CAACC,MAAO,WAAnB,mBAEiB,IAAlBoO,EAAOpe,QACN,kBAAC2N,GAAA,EAAD,CAAKd,UAAU,QACf,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,EAAGuS,GAAI,GAC1B,kBAACvR,GAAA,EAAD,CACEC,IAAG,+BAA0B+P,EAAYT,EAAO,IAA7C,QACHrQ,OAAK,EACLgC,MAAOgO,GACP/K,QA9HW,WACrB,GAAIoL,EAAO,GAAGQ,UAAW,CACvBR,EAAO,GAAGQ,WAAY,EACtB,IAAMyB,EAAUnlB,EAAakjB,EAAO,GAAGO,MACvCI,EAAgBsB,QA6HZ,kBAACzS,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,EAAGuS,GAAI,GAC5B,kBAACvR,GAAA,EAAD,CACEC,IAAG,+BAA0B+P,EAAYT,EAAO,IAA7C,QACHrQ,OAAK,EACLgC,MAAOgO,GACP/K,QA9HW,WACrB,GAAIoL,EAAO,GAAGQ,UAAW,CACvBR,EAAO,GAAGQ,WAAY,EACtB,IAAMyB,EAAUnlB,EAAakjB,EAAO,GAAGO,MACvCI,EAAgBsB,QA6HZ,kBAACzS,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,EAAGuS,GAAI,GAC5B,kBAACvR,GAAA,EAAD,CACEC,IAAG,+BAA0B+P,EAAYT,EAAO,IAA7C,QACHrQ,OAAK,EACLgC,MAAOgO,GACP/K,QA9HW,WACrB,GAAIoL,EAAO,GAAGQ,UAAW,CACvBR,EAAO,GAAGQ,WAAY,EACtB,IAAMyB,EAAUnlB,EAAakjB,EAAO,GAAGO,MACvCI,EAAgBsB,QA6HZ,kBAACzS,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,EAAGuS,GAAI,GAC5B,kBAACvR,GAAA,EAAD,CACEC,IAAG,+BAA0B+P,EAAYT,EAAO,IAA7C,QACHrQ,OAAK,EACLgC,MAAOgO,GACP/K,QA9HW,WACrB,GAAIoL,EAAO,GAAGQ,UAAW,CACvBR,EAAO,GAAGQ,WAAY,EACtB,IAAMyB,EAAUnlB,EAAakjB,EAAO,GAAGO,MACvCI,EAAgBsB,SA+HhB,kBAAC1S,GAAA,EAAD,CAAKd,UAAU,QACf,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,EAAGuS,GAAI,GAC1B,kBAACvR,GAAA,EAAD,CACEC,IAAI,kCACJf,OAAK,EACLgC,MAAOgO,GACP/K,QAjIiB,WAEzB+L,EADgB7jB,EAAa,SAmIzB,kBAAC0S,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,EAAGuS,GAAI,GAC5B,kBAACvR,GAAA,EAAD,CACEC,IAAI,mCACJf,OAAK,EACLgC,MAAOgO,GACP/K,QApIkB,WAE1B+L,EADgB7jB,EAAa,SAsIzB,kBAAC0S,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,EAAGuS,GAAI,GAC5B,kBAACvR,GAAA,EAAD,CACEC,IAAI,sCACJf,OAAK,EACLgC,MAAOgO,GACP/K,QAvIqB,WAE7B+L,EADgB7jB,EAAa,SAyIzB,kBAAC0S,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,EAAGuS,GAAI,GAC5B,kBAACvR,GAAA,EAAD,CACEC,IAAI,oCACJf,OAAK,EACLgC,MAAOgO,GACP/K,QA1ImB,WAE3B+L,EADgB7jB,EAAa,UA6I3B,kBAACyS,GAAA,EAAD,CAAKd,UAAU,QACf,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,EAAGuS,GAAI,GAC1B,kBAACvR,GAAA,EAAD,CACEC,IAAI,sCACJf,OAAK,EACLgC,MAAOgO,GACP/K,QA/IqB,WAE7B+L,EADgB7jB,EAAa,SAiJzB,kBAAC0S,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,EAAGuS,GAAI,GAC5B,kBAACvR,GAAA,EAAD,CACEC,IAAI,sCACJkE,QAhJqB,WAE7B+L,EADgB7jB,EAAa,MAgJrB6S,OAAK,EACLgC,MAAOgO,MAGX,kBAACnQ,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,EAAGuS,GAAI,GAC5B,kBAACvR,GAAA,EAAD,CACEC,IAAI,qCACJf,OAAK,EACLgC,MAAOgO,GACP/K,QArJmB,WAC3B,GAAI9X,EAAW8E,OAAS,EAAG,CACzB,IAAImgB,EAAOjlB,EAAWA,EAAW8E,OAAS,GAE/B,MAATmgB,GACS,MAATA,GACS,MAATA,GACS,MAATA,GACS,MAATA,GACS,MAATA,IAGI/B,EAAO,GAAGO,QAAUwB,GAAS/B,EAAO,GAAGQ,UAEhCR,EAAO,GAAGO,QAAUwB,GAAS/B,EAAO,GAAGQ,UAEvCR,EAAO,GAAGO,QAAUwB,GAAS/B,EAAO,GAAGQ,UAEvCR,EAAO,GAAGO,QAAUwB,GAAS/B,EAAO,GAAGQ,YAChDR,EAAO,GAAGQ,WAAY,GAFtBR,EAAO,GAAGQ,WAAY,EAFtBR,EAAO,GAAGQ,WAAY,EAFtBR,EAAO,GAAGQ,WAAY,EAQxBP,EAAUD,IAEZW,EAAgB7jB,EAAWkS,MAAM,EAAGlS,EAAW8E,OAAS,SAiItD,kBAAC4N,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,EAAGuS,GAAI,GAC5B,kBAACvR,GAAA,EAAD,CACEC,IAAI,mCACJf,OAAK,EACLgC,MAAOgO,GACP/K,QAlIkB,WAC1BoL,EAAO,GAAGQ,WAAY,EACtBR,EAAO,GAAGQ,WAAY,EACtBR,EAAO,GAAGQ,WAAY,EACtBR,EAAO,GAAGQ,WAAY,EACtBG,EAAgB,YC3DLuB,GA/OK,WAClB,IADwB,EACNxU,qBAAW1B,IACcpI,UAAnC3O,EAFgB,EAEhBA,KAAMktB,EAFU,EAEVA,eAFU,EAGYxU,oBAAS,GAHrB,oBAGjBpK,EAHiB,KAGLsP,EAHK,OAIclF,mBAAS,IAAIkK,IAJ3B,oBAIjBuK,EAJiB,KAIJC,EAJI,OAKU1U,oBAAS,GALnB,oBAKjB2U,EALiB,KAKNC,EALM,KAOxBzU,qBAAU,WACRuU,EAAe,IAAIxK,GAAQ5iB,IACxBA,EAAKuB,MAAMnD,SAAS,YACrBkvB,GAAa,KAEd,CAACttB,IAEJ,IAAMye,EAAe,SAACC,GAAW,IAAD,EACGA,EAAMC,OAA/B9V,EADsB,EACtBA,KAAM+V,EADgB,EAChBA,MAAOrK,EADS,EACTA,QAEnB6Y,EADW,WAATvkB,EACa,gBAAIskB,EAAL,gBAAmBtkB,EAAO0L,IAGzB,gBAAI4Y,EAAL,gBAAmBtkB,EAAO+V,MA0B5C,OACE,kBAACvE,GAAA,EAAD,CAAWb,UAAU,WACnB,wBAAIA,UAAS,mBAAcxZ,EAAK0B,OAAQ,eAAiB,mBAAzD,cAAyF1B,EAAKe,UAC9F,kBAAC8d,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO5e,EAAK4B,MAAOyhB,UAAQ,KAGrD,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,SAAShP,QAASvU,EAAK0B,OACzDmH,KAAK,SAASuW,SAAUX,MAG5B,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO5e,EAAKuB,MAAMmlB,WAAYrD,UAAQ,MAIlE,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,YACL+V,MAASuO,EAAYte,UACrBuQ,SAAUX,KAGZ,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,cAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,WACL+V,MAASuO,EAAYre,SACrBsQ,SAAUX,MAIjB4O,GACD,kBAAC/S,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,QAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,MACL+V,MAASuO,EAAYnc,KAAO,GAC5BoO,SAAUX,KAGZ,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,QACL+V,MAASuO,EAAYjmB,OAAS,GAC9BkY,SAAUX,MAKlB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,QACL+V,MAASuO,EAAY3lB,OAAS,GAC9B4X,SAAUX,KAGZ,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,WAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,SACL+V,MAASuO,EAAYlc,QAAU,GAC/BmO,SAAUX,MAIlB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,SAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,OACL+V,MAASuO,EAAYpe,MAAQ,GAC7BqQ,SAAUX,MAKb4O,GACG,kBAAC/S,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,qBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,kBACL+V,MAASuO,EAAY/rB,iBAAmB,GACxCge,SAAUX,KAGZ,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,oBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,iBACL+V,MAASuO,EAAY9rB,gBAAkB,GACvC+d,SAAUX,MAKpB,kBAACnE,GAAA,EAAD,KACA,kBAACC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACrB,kBAACqE,GAAA,EAAKI,QAAN,CAAc1I,GAAG,WAAW2L,KAAM,EAAG1I,UAAU,eAAe3Q,KAAK,eAAe+V,MAAOuO,EAAYpc,cAAgB,GACrHqO,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,4CACblL,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QAvM3B,WACnB,IAAIrP,EAAe,CACjBjR,GAAI8tB,EAAY9tB,GAChB0B,SAAUosB,EAAYpsB,SACtB8N,UAAWse,EAAYte,UACvBC,SAAUqe,EAAYre,SACtBC,KAAMoe,EAAYpe,KAClBiC,IAAKmc,EAAYnc,IACjB9J,MAAOimB,EAAYjmB,MACnBM,MAAO2lB,EAAY3lB,MACnByJ,OAAQkc,EAAYlc,OACpB7P,gBAAiB+rB,EAAY/rB,gBAC7BC,eAAgB8rB,EAAY9rB,eAC5B0P,aAAcoc,EAAYpc,cAE5B6M,GAAc,GACdsP,EAAe5c,GACd4P,SAAQ,WACPtC,GAAc,QAqLI,QACXtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBChOrB8D,I,MAAgB,CACpBiQ,YAAa,GACb7tB,KAAM,GACN2nB,MAAO,WACP1hB,YAAa,KAGTwb,GAAoB,CACxBqM,WAAW,EACXC,cAAc,EACdC,WAAW,GAGPpM,GAAwB,CAC5B9iB,OAAQ,GACR+Z,KAAM,IAsKOoV,GAnKS,WACtB,IACOC,EADWnV,qBAAW1B,IACEO,aAAxBsW,WAFqB,EAGAlV,mBAAS4E,IAHT,oBAGrBvQ,EAHqB,KAGb4Q,EAHa,OAIUjF,mBAASyI,IAJnB,oBAIrBO,EAJqB,KAIRC,EAJQ,OAKQjJ,oBAAS,GALjB,oBAKrBpK,EALqB,KAKTsP,EALS,OAMUlF,mBAAS4I,IANnB,oBAMrBE,EANqB,KAMRC,EANQ,KAOtBhD,EAAe,SAACC,GAAW,IAAD,EACNA,EAAMC,OAAtB9V,EADsB,EACtBA,KAAM+V,EADgB,EAChBA,MACdjB,EAAU,gBAAK5Q,EAAN,gBAAelE,EAAO+V,MAoDjC,OACE,kBAACvE,GAAA,EAAD,CAAWb,UAAU,iBACnB,wBAAIkD,MAAO,CAACC,MAAO,QAAnB,eACA,kBAACkC,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,SAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACMC,UAAQ,EACRC,KAAK,OACLtW,KAAK,OACL+V,MAAO7R,EAAOrN,KACd0f,SAAUX,MAIlB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACMC,UAAQ,EACR3I,GAAG,SACH1N,KAAK,QACL+V,MAAO7R,EAAOsa,MACdjI,SAAUX,GAEV,4CACA,gDACA,4CACA,kDAIR,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,SAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACMC,UAAQ,EACRC,KAAK,OACLtW,KAAK,cACL+V,MAAO7R,EAAOwgB,YACdnO,SAAUX,MAIlB,kBAACnE,GAAA,EAAD,KACA,kBAACC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACrB,kBAACqE,GAAA,EAAKI,QAAN,CAAc1I,GAAG,WAAW2L,KAAM,EAAG1I,UAAU,eAC/C3Q,KAAK,cACL+V,MAAO7R,EAAOpH,YACdyZ,SAAUX,MAIhB,wBAAIjF,UAAU,QACPkI,EAAY8L,WACX,wBAAIhU,UAAU,eAAd,iBAEDkI,EAAYgM,WACX,wBAAIlU,UAAU,eAAd,qBAEDkI,EAAY+L,cACX,wBAAIjU,UAAU,eAAd,mBAGHgI,EAAYjJ,MACT,kBAAC,GAAD,CAAc/Z,OAAQgjB,EAAYhjB,OAAQ+Z,KAAMiJ,EAAYjJ,OAEpE,kBAAC+B,GAAA,EAAD,CAAKd,UAAU,4CACblL,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QAvI3B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN4B,EAAeH,IACf,IAAMkM,GAAazgB,EAAOrN,OAAQqN,EAAOrN,KAAKmuB,OAAOlhB,OAC/C+gB,GAAa3gB,EAAOlE,OAAQkE,EAAOlE,KAAKglB,OAAOlhB,OACjD8gB,GAAe,EACfpG,EAAQ,EAcZ,GAboB,aAAjBta,EAAOsa,MACRA,EAAQ,EAEe,iBAAjBta,EAAOsa,MACbA,EAAQ,EACiB,aAAjBta,EAAOsa,MACbA,EAAQ,EACe,gBAAjBta,EAAOsa,MACfA,EAAQ,EAERoG,GAAe,EAEjB9L,EAAe,gBAAID,EAAL,CAAkB8L,YAAWE,YAAWD,kBACnDD,GAAaE,GAAaD,OACtB,CACL,IAAMtoB,EAAU,CACd0D,KAAMkE,EAAOwgB,YAAYM,OACzBxG,MAAOA,EACP3nB,KAAMqN,EAAOrN,KAAKmuB,OAClBloB,YAAaoH,EAAOpH,YAAYkoB,QAElCD,EAAWzoB,GAASgd,OAAM,SAAA3kB,GACxB,GAAGA,EAAMQ,MAAQR,EAAM4kB,WAAW,CAChC,IAAMC,EAAmB,CACvB7jB,OAAQhB,EAAMQ,KAAKQ,OACnB+Z,KAAM/a,EAAM4kB,YAEdX,EAAeY,OAEZ,CAKHZ,EAJyB,CACvBjjB,OAAQ,GACR+Z,KAAM,sBAIT2H,SAAQ,WACTtC,GAAc,SA0FE,QACXtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBC1HZhB,iBA5CM,WACnB,IAAMnM,EAAYoM,qBAAW1B,IADJ,EAES1K,EAAUiL,aAArCxF,EAFkB,EAElBA,SAAUgc,EAFQ,EAERA,aACTpf,EAAcrC,EAAUoC,WAAxBC,UAMR,OAJAmK,qBAAU,WACRiV,MACC,CAACA,IAGF,kBAACzT,GAAA,EAAD,CAAWK,OAAK,EAACgC,MAAO,CAAEiK,UAAW,QACrC,kBAACrM,GAAA,EAAD,CAAKd,UAAU,aACX,kBAACG,GAAA,EAAD,CAAQC,QAAQ,UACR+F,QAAS,kBAAMjR,EAAU,cACzB,kBAAC,GAAD,MAAqB,mBAF7B,gBAMJ,kBAACkY,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,GAC3B,+BACE,4BACE,oCACA,oCACA,qCACA,6CAGJ,+BACG9V,GACDA,EAAS9E,MAAK,SAACqC,EAAG0e,GAAJ,OAAU1e,EAAE3P,KAAOquB,EAAEruB,KAAO,GAAK,KAAG6N,KAAI,SAAApI,GAAO,OAC3D,wBAAI+U,IAAK/U,EAAQzF,MACf,4BAAKyF,EAAQzF,MACb,4BAAKyF,EAAQ0D,MACb,4BAAK1D,EAAQkiB,OACb,4BAAKliB,EAAQQ,uBCqEV6S,iBArGU,WACvB,IAAMva,EAAU+vB,cACV3hB,EAAYoM,qBAAW1B,IAFA,EAGK1K,EAAUiL,aAArCxF,EAHsB,EAGtBA,SAAUgc,EAHY,EAGZA,aAHY,EAIEzhB,EAAUgL,aAAlC7G,EAJsB,EAItBA,QAASyd,EAJa,EAIbA,YAJa,EAKavV,mBAAS,IALtB,oBAKtBwV,EALsB,KAKPC,EALO,OAMWzV,oBAAS,GANpB,oBAMtB2N,EANsB,KAMRC,EANQ,KAQ7BzN,qBAAU,WACRiV,IACAG,MACC,CAACH,EAAcG,IAQlB,OACE,kBAAC5T,GAAA,EAAD,CAAWK,OAAK,EAACgC,MAAO,CAAEiK,UAAW,QACnC,kBAACrM,GAAA,EAAD,CAAKd,UAAU,QACf,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,EAAGhB,UAAU,eAChC,kBAACqF,GAAA,EAAKG,MAAN,iBAIA,kBAACzE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACR3I,GAAG,SACH1N,KAAK,UACL+V,MAAOsP,EACP9O,SArBkB,SAACV,GAC3ByP,EAAiBzP,EAAMC,OAAOC,SAsBtB,iCACC9M,EAASvE,KAAI,SAACpI,GACb,OAAQ,4BAAQ+U,IAAK/U,EAAQzF,MAAOyF,EAAQ0D,WAIlD,kBAAC0R,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,EAAGhB,UAAU,eAClC,kBAACqF,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,cAAcgC,gBAAgB,EAChE1c,KAAK,SAASuW,SA5BK,SAACV,GAC1B4H,EAAgB5H,EAAMC,OAAOpK,aA6BzB,kBAACgG,GAAA,EAAD,CAAKwE,GAAI,CAACqP,KAAK,EAAGC,OAAO,GAAI7U,UAAU,uBACvC,kBAAC,KAAD,CAAMqD,GAAE,uBACN,kBAAClD,GAAA,EAAD,CAAQC,QAAQ,WAAhB,gBAIJ,kBAACgN,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,GAC3B,+BACE,4BACE,oCACA,oCACA,qCACA,yCACA,wCACA,8CACA,uCACA,6CACA,wCAGJ,+BACGpX,GACDA,EAAQpB,QAAO,SAAA9M,GACb,MAAqB,KAAlB4rB,IAGM,UAAA5rB,EAAO6C,eAAP,eAAgB0D,QAASqlB,EAD1B,IAAD,KAGN9e,QAAO,SAAA9M,GACR,OAAG+jB,GACM/jB,EAAOZ,UAIf6L,KAAI,SAAAjL,GAAM,OACX,wBAAI4X,IAAK5X,EAAOF,WAAYoX,UAAU,YAAYmG,QAAS,SAACkI,GAC1D5pB,EAAQC,KAAR,0BAAgCoE,EAAOF,eAEvC,4BAAKE,EAAOF,YACZ,4BAAKE,EAAOsY,YACZ,4BAAKtY,EAAO6C,QAASkiB,OACrB,4BAAK,IAAI1U,KAAKrQ,EAAO+hB,WAAW7G,cAAcC,UAAU,EAAG,KAC3D,4BAAK,IAAI9K,KAAKrQ,EAAOkiB,SAAShH,cAAcC,UAAU,EAAG,KACzD,4BAAKnb,EAAOW,aAAe,IAAMX,EAAOa,YACxC,4BAAKb,EAAOolB,QAAS7Y,UAAY,IAAMvM,EAAOolB,QAAS5Y,UACvD,4BAAKxM,EAAOiQ,SAAS5F,QACrB,4BAAKrK,EAAOZ,OAAS,MAAQ,gB,SCvF5B4sB,GARM,SAAC,GAAe,IAAdvrB,EAAa,EAAbA,QACrB,OACE,kBAAC,aAAD,KACGA,GAAWwrB,aAAOxrB,KCHnBua,GAAgB,GA0EPkR,GAxES,SAAC,GAAiB,IAAhBjqB,EAAe,EAAfA,SAAe,EACrBkU,qBAAW1B,IACmBW,YAAzC+W,EAFgC,EAEhCA,WAAYC,EAFoB,EAEpBA,gBAFoB,EAGKhW,mBAAS4E,IAHd,oBAGhCqR,EAHgC,KAGhBC,EAHgB,KAKvC/V,qBAAU,WAOLtU,GANgB,mBAAA0I,EAAAY,OAAA,kEAAAZ,EAAA,MACOyhB,EAAgBnqB,IADvB,QACbkO,EADa,SAGfmc,EAAkBnc,GAHH,qCAOjB2Q,KAED,CAACsL,EAAiBD,EAAYG,EAAmBrqB,IAgBpD,OACE,kBAAC8V,GAAA,EAAD,CAAWb,UAAU,QACnB,kBAACoN,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACtN,UAAU,QAChC,+BACE,4BACE,iCACA,yCACA,oCACA,qCACA,2CAGJ,sCACGmV,QADH,IACGA,OADH,EACGA,EAAgB5U,QAAQ/M,MAAK,SAACC,EAAGC,GAAO,IAAD,EAC5B,OAAID,EAAE4hB,QAAQhgB,UAAU8B,cAAgBzD,EAAE2hB,QAAQhgB,UAAU8B,cAAsB,GAC1E,UAAA1D,EAAE4hB,eAAF,eAAWhgB,UAAU8B,eAAgBzD,EAAE2hB,QAAQhgB,UAAU8B,eAAuB,EAEjF1D,EAAE4hB,QAAQ/f,SAAS6B,cAAgBzD,EAAE2hB,QAAQ/f,SAAS6B,cAAsB,GAClE,KAG5BpD,KAAI,SAACuhB,EAAYxK,GAAb,OACH,wBAAIpK,IAAKoK,EAAO9K,UAAS,UAAgC,IAA3BsV,EAAWrqB,cAAoB,eAAiB,mBAC5E,4BAAK6f,EAAQ,GACb,4BAAKwK,EAAWD,QAAQhgB,UAAxB,MAAsCigB,EAAWD,QAAQ/f,UACzD,4BAAKggB,EAAWD,QAAQ9f,MACxB,4BAAK+f,EAAWD,QAAQjtB,OACxB,4BAzCS,SAACmtB,GACpB,OAAOA,GACL,KAAK,EACH,MAAO,UACT,KAAK,EACL,KAAK,EACH,MAAO,OACT,KAAK,EACH,MAAO,qBACT,QACE,MAAO,UAgCEC,CAAaF,EAAWrqB,sBAMnC,yBAAK+U,UAAU,QACZmV,EAAevf,QAAO,SAAAC,GAAC,OAAEA,EAAE5K,cAAgB,KAAGkI,OADjD,OAC6DgiB,EAAehiB,OAD5E,yBCzDA2Q,GAAgB,CACpBlb,WAAY,GACZwY,WAAY,GACZlZ,QAAQ,GAqJK8W,iBAlJoD,SAAC,GAC7C,IAAD,IAApB0O,EAAoB,EAApBA,MACM7a,GADc,EAAbpO,QACWwa,qBAAW1B,KADT,EAEuB1K,EAAU+K,YAA9C/F,EAFa,EAEbA,cAAe4d,EAFF,EAEEA,kBACdvgB,EAAarC,EAAUoC,WAAvBC,UAHY,EAIQgK,mBAAS4E,IAJjB,oBAIbvQ,EAJa,KAIL4Q,EAJK,KAuBpB,OAjBA9E,qBAAU,WAWLqO,EAAMC,OAAO/kB,YAVG,mBAAA6K,EAAAY,OAAA,kEAAAZ,EAAA,MACEgiB,EAAkB/H,EAAMC,OAAO/kB,aADjC,QACbE,EADa,SAGfqb,EAAU,CACRvb,WAAYE,EAAOF,WACnBwY,WAAYtY,EAAOsY,WACnBlZ,OAAQY,EAAOZ,SANF,qCAWjB0hB,KAED,CAAC6L,EAAmB/H,EAAMC,OAAO/kB,aAIlC,kBAACiY,GAAA,EAAD,CAAWb,UAAU,WACnB,yBAAKkD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAS,mBAAczM,EAAOrL,OAAS,eAAiB,mBAA5D,WAAyFqL,EAAO6N,YAChG,kBAAC,KAAD,CAAMiC,GAAE,0BAAqB9P,EAAO3K,aAClC,kBAACuX,GAAA,EAAD,CAAQC,QAAQ,OAAOC,KAAK,KAAKL,UAAU,kBAA3C,0BAIJ,kBAACc,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,mBAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,OACGtL,QADH,IACGA,OADH,EACGA,EAAepO,aADlB,WACiCoO,QADjC,IACiCA,OADjC,EACiCA,EAAelO,cAIpD,kBAACmX,GAAA,EAAD,CAAKd,UAAU,eAEf,yBAAKA,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACnC,wBAAI/N,UAAU,UAAUkD,MAAO,CAACC,MAAO,YAAvC,WAGJ,kBAACrC,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,KACA,uBAAGf,UAAU,aAAb,OAA0BnI,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAehO,UAI3C,yBAAKmW,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACrC,wBAAI/N,UAAU,UAAUkD,MAAO,CAACC,MAAO,cAAvC,YAEF,kBAACiK,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,qCACA,oCACA,2CACA,0CACA,qCACA,4CAGJ,sCACGnI,QADH,IACGA,OADH,YACGA,EAAeI,eADlB,aACG,EAAwBsI,QAAQ/M,MAAK,SAACC,EAAGC,GACxC,OAAGD,EAAEhJ,KAAOiJ,EAAEjJ,KAAa,EACnBgJ,EAAEhJ,KAAOiJ,EAAEjJ,MAAc,EACzBgJ,EAAE9J,WAAa+J,EAAE/J,WAAmB,GAC/B,KACZoK,KAAI,SAACiE,EAAQ8S,GAAT,OACL,wBAAIpK,IAAK1I,EAAOnS,IAChB,4BACGmS,EAAOrN,OAEV,4BACE,kBAAC,KAAD,CAAM0Y,GAAE,4BAAuBrL,EAAOnS,KACrCmS,EAAOxN,QAGV,4BAAK,IAAI2O,KAAKnB,EAAOvN,MAAMuZ,cAAcC,UAAU,EAAG,KACtD,4BAAKjM,EAAOrO,YACZ,4BACI,0BAAMqW,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,wBAAD,OAAyB8C,EAAOrN,OAAS,kBAAC,GAAD,CAAiBI,SAAUiN,EAAOnS,KAAO,kBACzGmS,EAAO0d,iBAFR,cAKJ,4BACG1d,EAAO5S,KACN,uBAAGkb,KAAMtI,EAAO5S,IAAK+f,OAAO,SAASiD,IAAI,uBAAzC,UAGJ,4BACGpQ,EAAO2d,iBAAmB,GACzB,kBAAC,KAAD,CAAMtS,GAAE,+BAA0BrL,EAAOnS,KAAzC,qBAUV,yBAAKma,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACrC,wBAAI/N,UAAU,UAAUkD,MAAO,CAACC,MAAM,aAAtC,cAEF,kBAACiK,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,uCAGJ,sCACGnI,QADH,IACGA,OADH,YACGA,EAAeE,uBADlB,aACG,EAAgChE,KAAI,SAAC+D,EAAgBgT,GAAjB,OACnC,wBAAIpK,IAAK5I,EAAejS,IACxB,4BAAKilB,EAAM,GACX,4BACGhT,EAAe1S,KACd,uBAAGkb,KAAMxI,EAAe1S,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBtQ,EAAe/N,QAEvF+N,EAAe1S,KACf,0BAAM4a,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,YAAD,OAAa4C,EAAe/N,OAAS,kBAAC,GAAD,CAAcR,QAASuO,EAAevO,UAAY,kBAC5GuO,EAAe/N,kBC/I5B+Z,GAAgB,CACpBiQ,YAAa,GACbzkB,YAAa,GACbue,MAAO,GACPjlB,WAAY,GACZolB,QAAS,GACT5M,WAAY,GACZlZ,QAAQ,EACR2iB,UAAW,GACXG,QAAS,GACTvhB,aAAc,GACdE,WAAY,GACZskB,aAAc,GACd9hB,YAAa,IAGTypB,GAAiB,CACrBruB,SAAU,GACV8N,UAAW,GACXC,SAAU,IAGNqS,GAAoB,CACxBkO,iBAAiB,EACjBC,sBAAsB,GAElBhO,GAAwB,CAC5B9iB,OAAQ,GACR+Z,KAAM,IAiVOC,iBA7UmD,SAAC,GAC5C,IAArB0O,EAAoB,EAApBA,MAAOjpB,EAAa,EAAbA,QACDoO,EAAYoM,qBAAW1B,IADT,EAEc1K,EAAUgL,aAArCkY,EAFa,EAEbA,WAAYhtB,EAFC,EAEDA,WAFC,EAGc8J,EAAUkL,aAArCvF,EAHa,EAGbA,SAAUwd,EAHG,EAGHA,aAHG,EAIQ9W,mBAAS4E,IAJjB,oBAIbvQ,EAJa,KAIL4Q,EAJK,OAKUjF,mBAAS0W,IALnB,oBAKb1H,EALa,KAKJ+H,EALI,OAMkB/W,mBAASyI,IAN3B,oBAMbO,EANa,KAMAC,EANA,OAOgBjJ,oBAAS,GAPzB,oBAObpK,EAPa,KAODsP,EAPC,OAQkBlF,mBAAS4I,IAR3B,oBAQbE,EARa,KAQAC,EARA,KAUdhD,EAAe,SAACC,GAAgB,IAAD,EACFA,EAAMC,OAA/B9V,EAD2B,EAC3BA,KAAM+V,EADqB,EACrBA,MAAOrK,EADc,EACdA,QAEnBoJ,EADU,WAAT9U,EACS,gBAAIkE,EAAL,gBAAclE,EAAO0L,IAEpB,gBAAKxH,EAAN,gBAAelE,EAAO+V,MAwDnC/F,qBAAU,WAuCLqO,EAAMC,OAAO/kB,YAtCG,qBAAA6K,EAAAY,OAAA,kEAAAZ,EAAA,MACEsiB,EAAWrI,EAAMC,OAAO/kB,aAD1B,YACbE,EADa,yBAGX+kB,EAAQ,WAHG,KAIR/kB,EAAO6C,QAASkiB,MAJR,OAKR,IALQ,OAQR,IARQ,QAWR,IAXQ,+BAMXA,EAAQ,eANG,oCASXA,EAAQ,WATG,oCAYXA,EAAQ,cAZG,oCAef1J,EAAU,CACR4P,YAAajrB,EAAO6C,QAAS0D,KAC7BC,YAAaxG,EAAO6C,QAASzF,KAC7B2nB,MAAOA,EACPjlB,WAAYE,EAAOF,WACnBwY,WAAYtY,EAAOsY,WACnBlZ,OAAQY,EAAOZ,OACf8lB,QAASllB,EAAOklB,QAAQd,WACxBrC,UAAW,IAAI1R,KAAKrQ,EAAO+hB,WAAW7G,cAAckS,OAAO,EAAG,IAC9DlL,QAAS,IAAI7R,KAAKrQ,EAAOkiB,SAAShH,cAAckS,OAAO,EAAG,IAC1DzsB,aAAcX,EAAOW,aACrBE,WAAYb,EAAOa,WACnBskB,aAAcnlB,EAAOmlB,aAAaf,WAClC/gB,YAAarD,EAAOqD,cAEtB8pB,EAAW,CACT5gB,UAAWvM,EAAOolB,QAAS7Y,UAC3BC,SAAUxM,EAAOolB,QAAS5Y,SAC1B/N,SAAUuB,EAAOolB,QAAS3mB,WAjCb,YAAAkM,EAAA,MAmCTuiB,KAnCS,sCAuCjBpM,KAED,CAACmM,EAAYC,EAActI,EAAMC,OAAO/kB,aAa3C,OACE,kBAACiY,GAAA,EAAD,CAAWb,UAAU,WACnB,2CACA,kBAACqF,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO7R,EAAOwgB,YAAalK,UAAQ,KAG7D,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO7R,EAAOjE,YAAaua,UAAQ,MAI/D,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO7R,EAAOsa,MAAOhE,UAAQ,MAIzD,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO7R,EAAO3K,WAAYihB,UAAQ,KAG9D,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACnB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,YAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO7R,EAAOya,QAASnE,UAAQ,MAI/D,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,aACL+V,MAAS7R,EAAO6N,WAChBwE,SAAUX,KAGZ,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,SAAShP,QAASxH,EAAOrL,OAC3DmH,KAAK,SAASuW,SAAUX,MAGhC,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,YACL+V,MAAS7R,EAAOsX,UAChBjF,SAAUX,KAGZ,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,aAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,UACL+V,MAAS7R,EAAOyX,QAChBpF,SAAUX,MAIlB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,oBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,eACL+V,MAAS7R,EAAO9J,cAAgB,GAChCmc,SAAUX,KAGZ,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,aACL+V,MAAS7R,EAAO5J,YAAc,GAC9Bic,SAAUX,MAIlB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,eACL+V,MAAO7R,EAAO0a,aACdrI,SAAUX,KAGZ,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,YAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACR3I,GAAG,SACH1N,KAAK,UACL+V,MAAO8I,EAAQ3mB,SACfqe,SAvKQ,SAACV,GAAgB,IAC9BE,EAASF,EAAMC,OAAfC,MACD8I,EAAU1V,EAASL,MAAK,SAAAtC,GAAC,OAAEA,EAAEtO,WAAW6d,KAC3C8I,GACD+H,EAAW,CACT1uB,SAAU2mB,EAAQ3mB,SAClB8N,UAAW6Y,EAAQ7Y,UACnBC,SAAU4Y,EAAQ5Y,aAkKPkD,EAASzE,KAAI,SAACma,GACb,OAAQ,4BAAQxN,IAAKwN,EAAQ3mB,SAAU6d,MAAO8I,EAAQ3mB,SAAUwiB,MAAOmE,EAAQ7Y,UAAY,IAAM6Y,EAAQ5Y,iBAKrH,kBAACwL,GAAA,EAAD,KACA,kBAACC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACrB,kBAACqE,GAAA,EAAKI,QAAN,CAAc1I,GAAG,WAAW2L,KAAM,EAAG1I,UAAU,eAC/C3Q,KAAK,cACL+V,MAAO7R,EAAOpH,YACdyZ,SAAUX,MAIhB,wBAAIjF,UAAU,QACTkI,EAAY2N,iBACX,wBAAI7V,UAAU,eAAd,qBAEDkI,EAAY4N,sBACX,wBAAI9V,UAAU,eAAd,2BAGLgI,EAAYjJ,MACd,kBAAC,GAAD,CAAc/Z,OAAQgjB,EAAYhjB,OAAQ+Z,KAAMiJ,EAAYjJ,OAE3D,kBAAC+B,GAAA,EAAD,CAAKd,UAAU,4CACblL,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1S3B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN4B,EAAeH,IACf,IAAM+N,EAA+C,IAA7BtiB,EAAO6N,WAAWjO,OACpC2iB,EAAsD,IAA/BviB,EAAO0a,aAAa9a,QAAgB2f,MAAMD,OAAOtf,EAAO0a,eAErF,GADA9F,EAAe,gBAAID,EAAL,CAAkB2N,kBAAiBC,0BAC9CD,GACDC,OAEE,CACF,IAAIjL,EAAY,IAAI1R,KAAK5F,EAAOsX,WAC5BG,EAAU,IAAI7R,KAAK5F,EAAOyX,SAC1BiD,EAAe/U,SAAS3F,EAAO0a,cAC7BnlB,EAAS,CACbF,WAAa2K,EAAO3K,WACpBV,OAAQqL,EAAOrL,OACfkZ,WAAY7N,EAAO6N,WACnByJ,UAAWA,EACXG,QAASA,EACTvhB,aAAc8J,EAAO9J,aACrBE,WAAY4J,EAAO5J,WACnBskB,aAAcA,EACd9hB,YAAaoH,EAAOpH,YACpBgqB,gBAAiBjI,EAAQ3mB,UAE3B6c,GAAc,GACd,IAAIgS,GAAY,EAChBrtB,EAAWD,GAAQ6f,OAAM,SAAA3kB,GACvB,GAAGA,EAAMQ,MAAQR,EAAM4kB,WAAW,CAChC,IAAMC,EAAmB,CACvB7jB,OAAQhB,EAAMQ,KAAKQ,OACnB+Z,KAAM/a,EAAM4kB,YAEdX,EAAeY,OAEZ,CAKHZ,EAJyB,CACvBjjB,OAAQ,GACR+Z,KAAM,kBAIVqX,GAAY,KACX1P,SAAQ,WACTtC,GAAc,MAEZgS,GACF3xB,EAAQC,KAAK,iBA0PG,QACXoQ,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,uBClWrBqW,GAAiB,CACrBhnB,KAAM,GACNnJ,KAAM,GACN2nB,MAAO,IAGH/J,GAAgB,CACpB1C,WAAY,GACZyJ,UAAW,GACXG,QAAS,GACTvhB,aAAc,GACdE,WAAY,GACZskB,aAAc,GACd9hB,YAAa,IAGTypB,GAAiB,CACrBruB,SAAU,GACV8N,UAAW,GACXC,SAAU,IAGNqS,GAAoB,CACxB2O,oBAAoB,EACpBT,iBAAiB,EACjBU,gBAAgB,EAChBC,cAAc,EACdC,oBAAoB,EACpBX,sBAAsB,GAElBhO,GAAwB,CAC5B9iB,OAAQ,GACR+Z,KAAM,IAqTOC,iBAlTM,WACnB,IAAMnM,EAAYoM,qBAAW1B,IADJ,EAEQ1K,EAAUiL,aAApCxF,EAFkB,EAElBA,SAAUgc,EAFQ,EAERA,aAFQ,EAGSzhB,EAAUkL,aAArCvF,EAHkB,EAGlBA,SAAUwd,EAHQ,EAGRA,aACVntB,EAAmBgK,EAAUgL,aAA7BhV,gBAJkB,EAKGqW,mBAAS4E,IALZ,oBAKlBvQ,EALkB,KAKV4Q,EALU,OAMKjF,mBAASmX,IANd,oBAMlB1qB,EANkB,KAMT+qB,EANS,OAOKxX,mBAAS0W,IAPd,oBAOlB1H,EAPkB,KAOT+H,EAPS,OAQa/W,mBAASyI,IARtB,oBAQlBO,EARkB,KAQLC,EARK,OASWjJ,oBAAS,GATpB,oBASlBpK,EATkB,KASNsP,EATM,OAUalF,mBAAS4I,IAVtB,oBAUlBE,EAVkB,KAULC,EAVK,KAYzB5I,qBAAU,WACW,EAAA5L,EAAAY,OAAA,kEAAAZ,EAAA,MACX6gB,KADW,yBAAA7gB,EAAA,MAEXuiB,KAFW,uCAKlB,CAAC1B,EAAc0B,IAElB,IAAM/Q,EAAe,SAACC,GAAgB,IAAD,EACXA,EAAMC,OAAtB9V,EAD2B,EAC3BA,KAAM+V,EADqB,EACrBA,MACdjB,EAAU,gBAAK5Q,EAAN,gBAAelE,EAAO+V,MA4FjC,OACE,kBAACvE,GAAA,EAAD,CAAWb,UAAU,WACnB,wBAAIkD,MAAO,CAACC,MAAO,QAAnB,cACA,kBAACkC,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,kBAAtB,iBAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACR3I,GAAG,SACH1N,KAAK,cACL+V,MAASzZ,EAAQzF,KACjB0f,SAnDY,SAACV,GAAgB,IAC7BE,EAAUF,EAAMC,OAAhBC,MACFzZ,EAAU2M,EAASH,MAAK,SAAAtC,GAAC,OAAEA,EAAE3P,OAASkf,KAC5C,GAAGzZ,EAAQ,CACT,IAAIkiB,EAAQ,WACZ,OAAOliB,EAAQkiB,OACb,KAAK,EACHA,EAAQ,eACR,MACF,KAAK,EACHA,EAAQ,WACR,MACF,KAAK,EACHA,EAAQ,cAGZ6I,EAAW,CACTxwB,KAAMyF,EAAQzF,KACdmJ,KAAM1D,EAAQ0D,KACdwe,MAAOA,OAkCH,4BAAQlH,UAAQ,EAACvB,MAAM,GAAG1E,KAAM,GAAhC,UACCpI,EAASvE,KAAI,SAACpI,GACX,OAAO,4BAAQ+U,IAAK/U,EAAQzF,KAAMkf,MAAOzZ,EAAQzF,KAAM6jB,MAAOpe,EAAQ0D,YAI5E,kBAAC0R,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAOzZ,EAAQzF,KAAM2jB,UAAQ,MAIzD,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAOzZ,EAAQkiB,MAAOhE,UAAQ,MAI1D,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,kBAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,aACL+V,MAAO7R,EAAO6N,WACdwE,SAAUX,MAIlB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,kBAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,YACL+V,MAAO7R,EAAOsX,UACdjF,SAAUX,KAGZ,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,kBAAtB,aAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,UACL+V,MAAO7R,EAAOyX,QACdpF,SAAUX,MAIlB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,aACL+V,MAAO7R,EAAO5J,WACdic,SAAUX,KAGZ,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,kBAAtB,YAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACR3I,GAAG,SACH1N,KAAK,UACL+V,MAAO8I,EAAQ3mB,SACfqe,SA7HQ,SAACV,GAAgB,IAC9BE,EAASF,EAAMC,OAAfC,MACD8I,EAAU1V,EAASL,MAAK,SAAAtC,GAAC,OAAEA,EAAEtO,WAAW6d,KAC3C8I,GACD+H,EAAW,CACT1uB,SAAU2mB,EAAQ3mB,SAClB8N,UAAW6Y,EAAQ7Y,UACnBC,SAAU4Y,EAAQ5Y,aAwHR,4BAAQqR,UAAQ,EAACvB,MAAM,GAAG1E,KAAM,GAAhC,UACClI,EAASzE,KAAI,SAACma,GACb,OAAQ,4BAAQxN,IAAKwN,EAAQ3mB,SAAU6d,MAAO8I,EAAQ3mB,SAAUwiB,MAAOmE,EAAQ7Y,UAAY,IAAM6Y,EAAQ5Y,iBAKrH,kBAACwL,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,eACL+V,MAAO7R,EAAO0a,aACdrI,SAAUX,MAIlB,kBAACnE,GAAA,EAAD,KACA,kBAACC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACrB,kBAACqE,GAAA,EAAKI,QAAN,CAAc1I,GAAG,WAAW2L,KAAM,EAAG1I,UAAU,eAC/C3Q,KAAK,cACL+V,MAAO7R,EAAOpH,YACdyZ,SAAUX,MAIhB,wBAAIjF,UAAU,QACPkI,EAAYoO,oBACX,wBAAItW,UAAU,eAAd,wBAEDkI,EAAY2N,iBACX,wBAAI7V,UAAU,eAAd,oBAEDkI,EAAYqO,gBACX,wBAAIvW,UAAU,eAAd,qBAEDkI,EAAYsO,cACX,wBAAIxW,UAAU,eAAd,kBAEDkI,EAAYuO,oBACX,wBAAIzW,UAAU,eAAd,wBAEDkI,EAAY4N,sBACZ,wBAAI9V,UAAU,eAAd,yBAGFgI,EAAYjJ,MACT,kBAAC,GAAD,CAAc/Z,OAAQgjB,EAAYhjB,OAAQ+Z,KAAMiJ,EAAYjJ,OAEpE,kBAAC+B,GAAA,EAAD,CAAKd,UAAU,4CACblL,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1Q3B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN4B,EAAeH,IACf,IAAMwO,EAA6C,IAAxB3qB,EAAQzF,KAAKiN,OAClC0iB,EAA+C,IAA7BtiB,EAAO6N,WAAWjO,OACpCojB,EAA6C,IAA5BhjB,EAAOsX,UAAU1X,OAClCqjB,EAAyC,IAA1BjjB,EAAOyX,QAAQ7X,OAC9BsjB,EAAiD,IAA5BvI,EAAQ3mB,SAAS4L,OACtC2iB,EAAsD,IAA/BviB,EAAO0a,aAAa9a,QAAgB2f,MAAMD,OAAOtf,EAAO0a,eAErF,GADA9F,EAAe,gBAAID,EAAL,CAAkBoO,qBAAoBT,kBAAiBU,iBAAgBC,eAAcC,qBAAoBX,0BACpHQ,GACDT,GACAU,GACAC,GACAC,GACAX,OAEE,CACF,IAAIjL,EAAY,IAAI1R,KAAK5F,EAAOsX,WAC5BG,EAAU,IAAI7R,KAAK5F,EAAOyX,SAC1BiD,EAAe/U,SAAS3F,EAAO0a,cAC7BnlB,EAAS,CACbsY,WAAY7N,EAAO6N,WACnByJ,UAAWA,EACXG,QAASA,EACTvhB,aAAc8J,EAAO9J,aACrBE,WAAY4J,EAAO5J,WACnBskB,aAAcA,EACd9hB,YAAaoH,EAAOpH,YACpBmD,YAAa3D,EAAQzF,KACrBiwB,gBAAiBjI,EAAQ3mB,UAE3B6c,GAAc,GACdvb,EAAgBC,GAAQ6f,OAAM,SAAA3kB,GAC5B,GAAGA,EAAMQ,MAAQR,EAAM4kB,WAAW,CAChC,IAAMC,EAAmB,CACvB7jB,OAAQhB,EAAMQ,KAAKQ,OACnB+Z,KAAM/a,EAAM4kB,YAEdX,EAAeY,OAEZ,CAKHZ,EAJyB,CACvBjjB,OAAQ,GACR+Z,KAAM,sBAIT2H,SAAQ,WACTtC,GAAc,SAwNE,QACXtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,uB,kBC/TrB2W,GAAkC,GAmIzB3X,iBAjIqD,SAAC,GAC9C,IAArB0O,EAAoB,EAApBA,MACQ7a,GADY,EAAbpO,QACawa,qBAAW1B,KADX,EAE8C1K,EAAUgL,aAAnEkY,EAFW,EAEXA,WAAY9sB,EAFD,EAECA,mBAAoBC,EAFrB,EAEqBA,sBAFrB,EAGmB2J,EAAUmL,eAAxCV,EAHW,EAGXA,WAAYsZ,EAHD,EAGCA,eAHD,EAI8B1X,mBAASyX,IAJvC,oBAIXE,EAJW,KAIOC,EAJP,OAKkB5X,mBAAS,IAL3B,oBAKX6X,EALW,KAKCC,EALD,OAMgB9X,mBAAS,KANzB,oBAMX+X,EANW,KAMAC,EANA,KAOlB7X,qBAAU,WAOLqO,EAAMC,OAAO/kB,cANa,mBAAA6K,EAAAY,OAAA,kEAAAZ,EAAA,MACRsiB,EAAWrI,EAAMC,OAAO/kB,aADhB,QACvBE,EADuB,SAGzBguB,EAAoBhuB,EAAOwU,YAHF,qCAO3B6Z,GACAP,OAED,CAACb,EAAYe,EAAqBF,EAAgBlJ,EAAMC,OAAO/kB,aAyBpE,OACE,kBAACiY,GAAA,EAAD,CAAWK,OAAK,EAACgC,MAAO,CAAEiK,UAAW,QACnC,yBAAKnN,UAAU,QACb,kBAACc,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKwE,GAAI,GACT,kBAACF,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO2R,EAAYtO,YAAY,YAAY7C,SAtBtD,SAACV,GACpB8R,EAAc9R,EAAMC,OAAOC,WAwBvB,kBAAC,KAAD,CAAM/B,GAAE,0BAAqBqK,EAAMC,OAAO/kB,YAAcoX,UAAU,QAChE,kBAACG,GAAA,EAAD,yBAMN,kBAAC,KAAD,CAAW0R,MAAM,aAAauF,YAAY,MAAMpX,UAAU,aAAakD,MAAO,CAACmU,SAAU,YAAazR,SAAU,SAAAvF,GAlChH6W,EAHkB,IAqCoH7W,EApCtH,MAqChB,kBAAC+M,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,qBACtC,+BACE,4BACE,wBAAIkD,MAAO,CAAC+M,MAAO,SAAnB,KACA,wBAAI/M,MAAO,CAAC+M,MAAO,UAAnB,aACA,wBAAI/M,MAAO,CAAC+M,MAAO,UAAnB,SACA,wBAAI/M,MAAO,CAAC+M,MAAO,SAAnB,SAGJ,+BACG3S,EACE1H,QAAO,SAAA0hB,GAAS,OACdT,EAAiBnG,MAAK,SAAA7a,GAAC,OAAIA,EAAEtO,WAAa+vB,EAAU/vB,eAEtDqO,QAAO,SAAApP,GACN,MAAkB,KAAfuwB,MAEOvwB,EAAK6O,UAAU8B,cAAcvS,SAASmyB,EAAW5f,iBACjD3Q,EAAK8O,SAAS6B,cAAcvS,SAASmyB,EAAW5f,mBAM3DpD,KAAI,SAACujB,EAAWxM,GAAZ,OACL,wBAAIpK,IAAK4W,EAAU/vB,UACnB,4BAAKujB,EAAM,GACX,4BAAKwM,EAAUjiB,UAAU,IAAMiiB,EAAUhiB,UACzC,4BAAKgiB,EAAUlvB,OACf,4BAAI,uBAAG4X,UAAU,mDAAmDmG,QAAS,SAACkI,GAAD,OA1DhE,SAAC9mB,EAAe8mB,GACnCplB,EAAmBykB,EAAMC,OAAO/kB,WAAYrB,GAC5C,IAAIgwB,EAAWja,EAAWnF,MAAK,SAAAtC,GAAC,OAAEA,EAAEtO,WAAaA,KAC9CgwB,GACDT,EAAoB,GAAD,oBAAKD,GAAL,CAAuBU,KAsD8CC,CAAaF,EAAU/vB,oBAKjH,kBAAC6lB,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,oBAAoBkD,MAAO,CAACgN,OAAQ,CAAC+G,aAAW,OACtF,+BACE,4BACE,wBAAI/T,MAAO,CAAC+M,MAAO,SAAnB,KACA,wBAAI/M,MAAO,CAAC+M,MAAO,UAAnB,aACA,wBAAI/M,MAAO,CAAC+M,MAAO,UAAnB,SACA,wBAAI/M,MAAO,CAAC+M,MAAO,SAAnB,YAGJ,+BACG4G,EACAtW,QAAQ/M,MAAK,SAACC,EAAGC,GAChB,OAAID,EAAE4B,UAAU8B,cAAgBzD,EAAE2B,UAAU8B,cAAsB,EAC1D1D,EAAE4B,UAAU8B,cAAgBzD,EAAE2B,UAAU8B,eAAuB,EAEhE1D,EAAE6B,SAAS6B,cAAgBzD,EAAE4B,SAAS6B,cAAsB,GAClD,KAGlBpD,KAAI,SAACwjB,EAAUzM,GAAX,OACH,wBAAIpK,IAAK6W,EAAShwB,UAClB,4BAAKujB,EAAM,GACX,4BAAKyM,EAASliB,UAAU,IAAMkiB,EAASjiB,UACvC,4BAAKiiB,EAASnvB,OACd,4BAAI,uBAAG4X,UAAU,gDAAgDmG,QAAS,SAACkI,GAAD,OA/EzD9mB,EA+EgFgwB,EAAShwB,SA9EhH2B,EAAsBwkB,EAAMC,OAAO/kB,WAAYrB,QAC/CuvB,EAAoBD,EAAiBjhB,QAAO,SAAAC,GAAC,OAAEA,EAAEtO,WAAaA,MAFxC,IAACA,iBCzCvBkwB,GAA8B,GAqJrBzY,iBAnJmD,SAAC,GAC5C,IAArB0O,EAAoB,EAApBA,MACQ7a,GADY,EAAbpO,QACawa,qBAAW1B,KADX,EAE0C1K,EAAUgL,aAA/DkY,EAFW,EAEXA,WAAY5sB,EAFD,EAECA,iBAAkBC,EAFnB,EAEmBA,oBAFnB,EAGeyJ,EAAUoL,aAApClF,EAHW,EAGXA,SAAU2e,EAHC,EAGDA,aAHC,EAI0BxY,mBAASuY,IAJnC,oBAIXE,EAJW,KAIKC,EAJL,OAKkB1Y,mBAAS,IAL3B,oBAKX6X,EALW,KAKCC,EALD,OAMgB9X,mBAAS,KANzB,oBAMX+X,EANW,KAMAC,EANA,KAOlB7X,qBAAU,WAOLqO,EAAMC,OAAO/kB,cANW,mBAAA6K,EAAAY,OAAA,kEAAAZ,EAAA,MACNsiB,EAAWrI,EAAMC,OAAO/kB,aADlB,QACrBE,EADqB,SAGvB8uB,EAAkB9uB,EAAOiQ,UAHF,qCAOzB8e,GACAH,OAED,CAAC3B,EAAY6B,EAAmBF,EAAchK,EAAMC,OAAO/kB,aAyBhE,OACE,kBAACiY,GAAA,EAAD,CAAWK,OAAK,EAACgC,MAAO,CAAEiK,UAAW,QACnC,yBAAKnN,UAAU,QACb,kBAACc,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKwE,GAAI,GACT,kBAACF,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO2R,EAAYtO,YAAY,YAAY7C,SAtBtD,SAACV,GACpB8R,EAAc9R,EAAMC,OAAOC,WAwBvB,kBAAC,KAAD,CAAM/B,GAAE,0BAAqBqK,EAAMC,OAAO/kB,YAAcoX,UAAU,QAChE,kBAACG,GAAA,EAAD,yBAMN,kBAAC,KAAD,CAAW0R,MAAM,aAAauF,YAAY,MAAMpX,UAAU,aAAakD,MAAO,CAACmU,SAAU,YAAazR,SAAU,SAAAvF,GAlChH6W,EAHkB,IAqCoH7W,EApCtH,MAqChB,kBAAC+M,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,qBACtC,+BACE,4BACE,wBAAIkD,MAAO,CAAC+M,MAAO,SAAnB,KACA,wBAAI/M,MAAO,CAAC+M,MAAO,UAAnB,aACA,wBAAI/M,MAAO,CAAC+M,MAAO,SAAnB,OACA,wBAAI/M,MAAO,CAAC+M,MAAO,UAAnB,UACA,wBAAI/M,MAAO,CAAC+M,MAAO,SAAnB,SACA,wBAAI/M,MAAO,CAAC+M,MAAO,UAAnB,UACA,wBAAI/M,MAAO,CAAC+M,MAAO,UAAnB,SACA,wBAAI/M,MAAO,CAAC+M,MAAO,SAAnB,SAGJ,+BACGlX,EACEnD,QAAO,SAAAyf,GAAO,OACZsC,EAAejH,MAAK,SAAA7a,GAAC,OAAIA,EAAEtO,WAAa8tB,EAAQ9tB,eAElDqO,QAAO,SAAApP,GACN,MAAkB,KAAfuwB,MAEOvwB,EAAK6O,UAAU8B,cAAcvS,SAASmyB,EAAW5f,iBACjD3Q,EAAK8O,SAAS6B,cAAcvS,SAASmyB,EAAW5f,mBAM3DpD,KAAI,SAACshB,EAASvK,GAAV,OACL,wBAAIpK,IAAK2U,EAAQ9tB,UACjB,4BAAKujB,EAAM,GACX,4BAAKuK,EAAQhgB,UAAU,IAAMggB,EAAQ/f,UACrC,4BAAK+f,EAAQ7d,KACb,6BAAiC,MAA3B6d,EAAQztB,gBAA0B,GAAKytB,EAAQztB,iBAAmB,KACrC,MAA1BytB,EAAQxtB,eAAyB,GAAKwtB,EAAQxtB,iBACvD,4BAAKwtB,EAAQrnB,OACb,4BAAKqnB,EAAQ5d,QACb,4BAAK4d,EAAQjtB,OACb,4BAAI,uBAAG4X,UAAU,mDAAmDmG,QAAS,SAACkI,GAAD,OAnElE,SAAC9mB,EAAe8mB,GACjCllB,EAAiBukB,EAAMC,OAAO/kB,WAAYrB,GAC1C,IAAI8tB,EAAUtc,EAASZ,MAAK,SAAAtC,GAAC,OAAEA,EAAEtO,WAAaA,KAC3C8tB,GACDuC,EAAkB,GAAD,oBAAKD,GAAL,CAAqBtC,KA+DkDyC,CAAWzC,EAAQ9tB,oBAK7G,kBAAC6lB,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,oBAAoBkD,MAAO,CAACgN,OAAQ,CAAC+G,aAAW,OACtF,+BACE,4BACE,wBAAI/T,MAAO,CAAC+M,MAAO,SAAnB,KACA,wBAAI/M,MAAO,CAAC+M,MAAO,UAAnB,aACA,wBAAI/M,MAAO,CAAC+M,MAAO,SAAnB,OACA,wBAAI/M,MAAO,CAAC+M,MAAO,UAAnB,UACA,wBAAI/M,MAAO,CAAC+M,MAAO,SAAnB,SACA,wBAAI/M,MAAO,CAAC+M,MAAO,UAAnB,UACA,wBAAI/M,MAAO,CAAC+M,MAAO,UAAnB,SACA,wBAAI/M,MAAO,CAAC+M,MAAO,SAAnB,YAGJ,+BACG0H,EACApX,QAAQ/M,MAAK,SAACC,EAAGC,GAChB,OAAID,EAAE4B,UAAU8B,cAAgBzD,EAAE2B,UAAU8B,cAAsB,EAC1D1D,EAAE4B,UAAU8B,cAAgBzD,EAAE2B,UAAU8B,eAAuB,EAEhE1D,EAAE6B,SAAS6B,cAAgBzD,EAAE4B,SAAS6B,cAAsB,GAClD,KAGlBpD,KAAI,SAACshB,EAASvK,GAAV,OACH,wBAAIpK,IAAK2U,EAAQ9tB,UACjB,4BAAKujB,EAAM,GACX,4BAAKuK,EAAQhgB,UAAU,IAAMggB,EAAQ/f,UACrC,4BAAK+f,EAAQ7d,KACb,6BAAiC,MAA3B6d,EAAQztB,gBAA0B,GAAKytB,EAAQztB,iBAAmB,KACrC,MAA1BytB,EAAQxtB,eAAyB,GAAKwtB,EAAQxtB,iBACvD,4BAAKwtB,EAAQrnB,OACb,4BAAKqnB,EAAQ5d,QACb,4BAAK4d,EAAQjtB,OACb,4BAAI,uBAAG4X,UAAU,gDAAgDmG,QAAS,SAACkI,GAAD,OAjG3D9mB,EAiGgF8tB,EAAQ9tB,SAhG7G6B,EAAoBskB,EAAMC,OAAO/kB,WAAYrB,QAC7CqwB,EAAkBD,EAAe/hB,QAAO,SAAAC,GAAC,OAAEA,EAAEtO,WAAaA,MAFtC,IAACA,iBCyBZyX,iBA3EY,SAAC,GAA4B,IAA3BpW,EAA0B,EAA1BA,WAAYrB,EAAc,EAAdA,SAAc,EACnC0X,qBAAW1B,IACuBK,YAA7ChT,EAF8C,EAE9CA,cAAemtB,EAF+B,EAE/BA,iBAEtB1Y,qBAAU,WACR0Y,EAAiBnvB,EAAYrB,KAC5B,CAACwwB,EAAkBnvB,EAAYrB,IAiBlC,OACE,kBAACsZ,GAAA,EAAD,CAAWb,UAAU,QACnB,kBAACc,GAAA,EAAD,KACE,wBAAId,UAAW,wBAAf,gFAEF,kBAACoN,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACtN,UAAU,QAChC,+BACE,4BACE,iCACA,oCACA,0CACA,0CACA,2CACA,2CACA,4BAAI,uBAAGA,UAAU,kDACjB,4BAAI,uBAAGA,UAAU,uDACjB,4BAAI,uBAAGA,UAAU,iDACjB,4BAAI,0BAAMA,UAAU,aAAhB,MACJ,4BAAI,0CAGR,sCACGpV,QADH,IACGA,OADH,EACGA,EAAe2V,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE9I,MAAQ+I,EAAE/I,MAAQ,GAAK,KAC/DoJ,KAAI,SAACikB,EAAelN,GAAhB,OACH,wBAAIpK,IAAKoK,GACP,4BAAKkN,EAAcrtB,OACnB,4BAAM,IAAIwO,KAAK6e,EAAcvtB,MAAMuZ,cAAeC,UAAU,EAAG,KAC/D,4BAAK+T,EAAcruB,YACnB,4BA3CS,SAAC4rB,GACpB,OAAOA,GACL,KAAK,EACH,MAAO,UACT,KAAK,EACH,MAAO,OACT,KAAK,EACH,MAAO,qBACT,KAAK,EACH,MAAO,SACT,QACE,MAAO,IAgCIC,CAAawC,EAAc/sB,gBAChC,gCAAM+sB,EAAcrC,kBACpB,gCAAMqC,EAAcC,kBACpB,gCAAMD,EAAcE,YACpB,gCAAMF,EAAcG,iBACpB,gCAAMH,EAAcI,kBACpB,gCAAMJ,EAAcK,mBACpB,gCAAML,EAAcM,qBAM5B,kBAACxX,GAAA,EAAD,KACA,wBAAId,UAAW,0BAAf,mBACmBpV,EAAcgL,QAAO,SAAAC,GAAC,OAAoB,IAAlBA,EAAE5K,eAAuC,IAAlB4K,EAAE5K,iBAAmBkI,OADvF,wBAEsBvI,EAAc2tB,QAAO,SAACC,EAAMC,GAAP,OAAgBD,EAAOC,EAAK9C,mBAAkB,GAFzF,wBAGsB/qB,EAAc2tB,QAAO,SAACC,EAAMC,GAAP,OAAgBD,EAAOC,EAAKR,mBAAkB,SC1DzFnU,GAAgB,CACpBiQ,YAAa,GACbzkB,YAAa,GACbue,MAAO,GACPjlB,WAAY,GACZolB,QAAS,GACT5M,WAAY,GACZyJ,UAAW,GACXG,QAAS,GACTvhB,aAAc,GACdE,WAAY,GACZukB,QAAS,GACTD,aAAc,GACd9hB,YAAa,IAGTwqB,GAAkC,GAClCc,GAA8B,GA6TrBzY,iBA3T+C,SAAC,GACxC,IAArB0O,EAAoB,EAApBA,MACM7a,GADc,EAAbpO,QACWwa,qBAAW1B,KACrBrI,EAAarC,EAAUoC,WAAvBC,UAFY,EAGqBrC,EAAUgL,aAA5CkY,EAHa,EAGbA,WAAY2C,EAHC,EAGDA,mBAHC,EAIQxZ,mBAAS4E,IAJjB,oBAIbvQ,EAJa,KAIL4Q,EAJK,OAKQjF,oBAAS,GALjB,oBAKbhX,EALa,KAKLyK,EALK,OAMgBuM,mBAASyX,IANzB,oBAMbrZ,EANa,KAMDqb,EANC,OAOYzZ,mBAASuY,IAPrB,oBAOb1e,EAPa,KAOH6f,EAPG,KAQpBvZ,qBAAU,WAoCLqO,EAAMC,OAAO/kB,YAnCG,qBAAA6K,EAAAY,OAAA,kEAAAZ,EAAA,MACEsiB,EAAWrI,EAAMC,OAAO/kB,aAD1B,YACbE,EADa,yBAGX+kB,EAAQ,WAHG,KAIR/kB,EAAO6C,QAASkiB,MAJR,OAKR,IALQ,OAQR,IARQ,QAWR,IAXQ,+BAMXA,EAAQ,eANG,oCASXA,EAAQ,WATG,oCAYXA,EAAQ,cAZG,6BAef1J,EAAU,CACR4P,YAAajrB,EAAO6C,QAAS0D,KAC7BC,YAAaxG,EAAO6C,QAASzF,KAC7B2nB,MAAOA,EACPjlB,WAAYE,EAAOF,WACnBolB,QAASllB,EAAOklB,QAAQd,WACxB9L,WAAYtY,EAAOsY,WACnByJ,UAAW,IAAI1R,KAAKrQ,EAAO+hB,WAAWgO,qBACtC7N,QAAS,IAAI7R,KAAKrQ,EAAOkiB,SAAS6N,qBAClCpvB,aAAcX,EAAOW,aACrBE,WAAYb,EAAOa,WACnBukB,QAASplB,EAAOolB,QAAS7Y,UAAY,IAAMvM,EAAOolB,QAAS5Y,SAC3D2Y,aAAcnlB,EAAOmlB,aAAaf,WAClC/gB,YAAarD,EAAOqD,cAEtBwG,EAAU7J,EAAOZ,QACjBywB,EAAc7vB,EAAOwU,YACrBsb,EAAY9vB,EAAOiQ,UAhCJ,sCAoCjB6Q,KAED,CAACmM,EAAYrI,EAAMC,OAAO/kB,aAE7B,IAAMI,EAAe,WACnB,IAAI8vB,GAAa5wB,EACjBwwB,EAAmBnlB,EAAO3K,WAAYkwB,GACtCnmB,EAAUmmB,IAGZ,OACE,kBAACjY,GAAA,EAAD,CAAWb,UAAU,WACnB,yBAAKkD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAS,uBAAkB9X,EAAS,eAAiB,mBAAzD,WAAsFqL,EAAO6N,YAC7F,kBAAC,KAAD,CAAMiC,GAAE,qBAAgB9P,EAAO3K,aAC7B,kBAACuX,GAAA,EAAD,CAAQC,QAAQ,OAAOC,KAAK,KAAKL,UAAU,kBAA3C,eAEF,kBAAC,KAAD,CAAMqD,GAAE,+BAA0B9P,EAAO3K,aACzC,uBAAGoX,UAAU,gDAEX9X,GACA,kBAACiY,GAAA,EAAD,CAAQC,QAAQ,UAAUC,KAAK,KAAKL,UAAU,YAAamG,QAASnd,GAApE,YAEDd,GACC,kBAACiY,GAAA,EAAD,CAAQC,QAAQ,YAAYC,KAAK,KAAKL,UAAU,YAAYmG,QAASnd,GAArE,eAKJ,kBAACqc,GAAA,EAAD,CAAMrF,UAAU,QACd,kBAACc,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO7R,EAAOwgB,YAAalK,UAAQ,KAG7D,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO7R,EAAOjE,YAAaua,UAAQ,MAI/D,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO7R,EAAOsa,MAAOhE,UAAQ,KAGvD,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,SAAShP,QAAS7S,EACpDmH,KAAK,SAASwa,UAAQ,MAG9B,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAS7R,EAAO3K,WAChBihB,UAAQ,KAGZ,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACnB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,YAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAS7R,EAAOya,QAChBnE,UAAQ,MAIhB,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAS7R,EAAOsX,UAChBhB,UAAQ,KAGV,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,aAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAS7R,EAAOyX,QAChBnB,UAAQ,MAIhB,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,oBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAS7R,EAAO9J,cAAgB,GAChCogB,UAAQ,KAGV,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAS7R,EAAO5J,YAAc,GAC9BkgB,UAAQ,MAIhB,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAS7R,EAAO0a,aAChBpE,UAAQ,KAGV,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,YAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAS7R,EAAO2a,QAChBrE,UAAQ,MAIhB,kBAAC/I,GAAA,EAAD,KACA,kBAACC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACrB,kBAACqE,GAAA,EAAKI,QAAN,CAAc1I,GAAG,WAAW2L,KAAM,EAAG1I,UAAU,eAAeoF,MAAO7R,EAAOpH,YAAa0d,UAAQ,OAMzG,yBAAK7J,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACrC,wBAAI/N,UAAU,WAAd,cACA,kBAAC,KAAD,CAAMqD,GAAE,qCAAgC9P,EAAO3K,aAC/C,uBAAGoX,UAAU,sCAGf,kBAACoN,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,yCACA,uCAGJ,+BACG1C,EACAiD,QAAQ/M,MAAK,SAACC,EAAGC,GAChB,OAAID,EAAE4B,UAAU8B,cAAgBzD,EAAE2B,UAAU8B,cAAsB,EAC1D1D,EAAE4B,UAAU8B,cAAgBzD,EAAE2B,UAAU8B,eAAuB,EAEhE1D,EAAE6B,SAAS6B,cAAgBzD,EAAE4B,SAAS6B,cAAsB,GAClD,KAGlBpD,KAAI,SAACujB,EAAWxM,GAAZ,OACH,wBAAIpK,IAAK4W,EAAU/vB,UACnB,4BAAKujB,EAAM,GACX,4BAAKwM,EAAUjiB,UAAU,IAAMiiB,EAAUhiB,UACzC,4BAAKgiB,EAAUlvB,aAKrB,yBAAK4X,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACrC,wBAAI/N,UAAU,WAAd,YACA,kBAAC,KAAD,CAAMqD,GAAE,mCAA8B9P,EAAO3K,aAC7C,uBAAGoX,UAAU,sCAGf,kBAACoN,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,yCACA,mCACA,sCACA,qCACA,sCACA,oCACA,qCACA,wCAGJ,+BACGjH,EACAwH,QAAQ/M,MAAK,SAACC,EAAGC,GAChB,OAAID,EAAE4B,UAAU8B,cAAgBzD,EAAE2B,UAAU8B,cAAsB,EAC1D1D,EAAE4B,UAAU8B,cAAgBzD,EAAE2B,UAAU8B,eAAuB,EAEhE1D,EAAE6B,SAAS6B,cAAgBzD,EAAE4B,SAAS6B,cAAsB,GAClD,KAGlBpD,KAAI,SAACshB,EAASvK,GAAV,OACH,wBAAIpK,IAAK2U,EAAQ9tB,UACjB,4BAAKujB,EAAM,GACX,4BAAKuK,EAAQhgB,UAAU,IAAMggB,EAAQ/f,UACrC,4BAAK+f,EAAQ7d,KACb,6BAAiC,MAA3B6d,EAAQztB,gBAA0B,GAAKytB,EAAQztB,iBAAmB,KACrC,MAA1BytB,EAAQxtB,eAAyB,GAAKwtB,EAAQxtB,iBACvD,4BAAKwtB,EAAQrnB,OACb,4BAAKqnB,EAAQ5d,QACb,4BAAK4d,EAAQ9f,MACb,4BAAK8f,EAAQjtB,OACb,4BACA,uBAAG4X,UAAU,+CACbmG,QAAS,kBAAMjR,EAAU,aAAD,OAAcmgB,EAAQhgB,UAAtB,YAAmCggB,EAAQ/f,UAAY,kBAAC,GAAD,CAAoB1M,WAAY2K,EAAO3K,WAAYrB,SAAU8tB,EAAQ9tB,WAAa,8BC1Q9JyX,iBAlEY,WACzB,IAAMva,EAAU+vB,cADe,EAEbvV,qBAAW1B,IACmBpI,UAAzC6B,EAHwB,EAGxBA,QAAS+hB,EAHe,EAGfA,mBAHe,EAIS7Z,oBAAS,GAJlB,oBAIxB2N,EAJwB,KAIVC,EAJU,KAM/BzN,qBAAU,WACR0Z,MACC,CAACA,IAMJ,OACE,kBAAClY,GAAA,EAAD,CAAWK,OAAK,EAACgC,MAAO,CAAEiK,UAAW,QACnC,kBAACrM,GAAA,EAAD,CAAKd,UAAU,QACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACnB,kBAACqE,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,cAAcgC,gBAAgB,EAChE1c,KAAK,SAASuW,SATG,SAACV,GAC1B4H,EAAgB5H,EAAMC,OAAOpK,cAW3B,kBAACqS,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,GAC3B,+BACE,4BACE,oCACA,oCACA,qCACA,yCACA,wCACA,8CACA,uCACA,6CACA,wCAGJ,+BACGpX,GACDA,EAAQpB,QAAO,SAAA9M,GACb,OAAG+jB,GACM/jB,EAAOZ,UAIf6L,KAAI,SAAAjL,GAAM,OACX,wBAAI4X,IAAK5X,EAAOF,WAAYoX,UAAU,YAAYmG,QAAS,SAACkI,GAC1D5pB,EAAQC,KAAR,qBAA2BoE,EAAOF,eAElC,4BAAKE,EAAOF,YACZ,4BAAKE,EAAOsY,YACZ,4BAAKtY,EAAO6C,QAASkiB,OACrB,4BAAK,IAAI1U,KAAKrQ,EAAO+hB,WAAW7G,cAAcC,UAAU,EAAG,KAC3D,4BAAK,IAAI9K,KAAKrQ,EAAOkiB,SAAShH,cAAcC,UAAU,EAAG,KACzD,4BAAKnb,EAAOW,aAAe,IAAMX,EAAOa,YACxC,4BAAKb,EAAOolB,QAAS7Y,UAAY,IAAMvM,EAAOolB,QAAS5Y,UACvD,4BAAKxM,EAAOiQ,SAAS5F,QACrB,4BAAKrK,EAAOZ,OAAS,MAAQ,gBCyN5B8W,iBA5QsD,SAAC,GAC/C,IAAD,QAApB0O,EAAoB,EAApBA,MAAOjpB,EAAa,EAAbA,QACDoO,EAAYoM,qBAAW1B,IADT,EAEuB1K,EAAU+K,YAA9C/F,EAFa,EAEbA,cAAe4d,EAFF,EAEEA,kBACdvgB,EAAarC,EAAUoC,WAAvBC,UAERmK,qBAAU,WACRoW,EAAkB/H,EAAMC,OAAO/kB,cAC9B,CAAC6sB,EAAmB/H,EAAMC,OAAO/kB,aAkBpC,OACE,yBAAKoX,UAAU,WACb,yBAAKkD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAS,wBAA+B,OAAbnI,QAAa,IAAbA,OAAA,EAAAA,EAAe3P,QAAS,eAAiB,mBAAxE,kBAAqG2P,QAArG,IAAqGA,OAArG,EAAqGA,EAAeuJ,YACpH,kBAACjB,GAAA,EAAD,CAAQH,UAAU,OAChBmG,QAAS,kBAAM1hB,EAAQu0B,WADzB,kBAKF,kBAAC3T,GAAA,EAAD,CAAMrF,UAAU,QACd,kBAACc,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAK,OAAEvN,QAAF,IAAEA,OAAF,YAAEA,EAAelM,eAAjB,aAAE,EAAwB0D,KAAMwa,UAAQ,KAGvE,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAK,OAAEvN,QAAF,IAAEA,OAAF,YAAEA,EAAelM,eAAjB,aAAE,EAAwBzF,KAAM2jB,UAAQ,MAIzE,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MArDjB,WACf,IAAGvN,EAYE,MAAO,GAXV,OAAOA,EAAclM,QAASkiB,OAC5B,KAAK,EACH,MAAO,eACT,KAAK,EACH,MAAO,WACT,KAAK,EACH,MAAO,cACT,QACE,MAAO,YA2C0BoL,GAAYpP,UAAQ,KAGrD,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,SAAShP,QAAO,OAAElD,QAAF,IAAEA,OAAF,EAAEA,EAAe3P,OACnEmH,KAAK,SAASwa,UAAQ,MAG9B,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAK,OAAIvN,QAAJ,IAAIA,OAAJ,EAAIA,EAAejP,WACxBihB,UAAQ,KAGZ,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACnB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,YAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAK,OAAIvN,QAAJ,IAAIA,OAAJ,EAAIA,EAAemW,QACxBnE,UAAQ,MAIhB,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAASvN,EAAgB,IAAIsB,KAAKtB,EAAcgT,WAAW7G,cAAcC,UAAU,EAAG,IAAM,GAC5F4F,UAAQ,KAGV,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,aAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAASvN,EAAe,IAAIsB,KAAKtB,EAAcmT,SAAShH,cAAcC,UAAU,EAAG,IAAM,GACzF4F,UAAQ,MAIhB,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,oBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,OAAsB,OAAbvN,QAAa,IAAbA,OAAA,EAAAA,EAAepO,eAAgB,GACxCogB,UAAQ,KAGV,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,OAAsB,OAAbvN,QAAa,IAAbA,OAAA,EAAAA,EAAelO,aAAc,GACtCkgB,UAAQ,MAIhB,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAK,OAAIvN,QAAJ,IAAIA,OAAJ,EAAIA,EAAeoW,aACxBpE,UAAQ,KAGV,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,YAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,OAAsB,OAAbvN,QAAa,IAAbA,OAAA,YAAAA,EAAeqW,eAAf,eAAwB7Y,WAAY,KAApC,OAA0CwC,QAA1C,IAA0CA,OAA1C,YAA0CA,EAAeqW,eAAzD,aAA0C,EAAwB5Y,UAC3EuU,UAAQ,MAIhB,kBAAC/I,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIF,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACrB,kBAACqE,GAAA,EAAKI,QAAN,CAAc1I,GAAG,WAAW2L,KAAM,EAAG1I,UAAU,eAAeoF,MAAK,OAAEvN,QAAF,IAAEA,OAAF,EAAEA,EAAe1L,YAAa0d,UAAQ,OAMjH,yBAAK7J,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACrC,wBAAI/N,UAAU,WAAd,eAEF,kBAACoN,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,yCACA,uCAGJ,sCACGnI,QADH,IACGA,OADH,EACGA,EAAeyF,WACfiD,QAAQ/M,MAAK,SAACC,EAAGC,GAChB,OAAID,EAAE4B,UAAU8B,cAAgBzD,EAAE2B,UAAU8B,cAAsB,EAC1D1D,EAAE4B,UAAU8B,cAAgBzD,EAAE2B,UAAU8B,eAAuB,EAEhE1D,EAAE6B,SAAS6B,cAAgBzD,EAAE4B,SAAS6B,cAAsB,GAClD,KAGlBpD,KAAI,SAACujB,EAAWxM,GAAZ,OACH,wBAAIpK,IAAK4W,EAAU/vB,UACnB,4BAAKujB,EAAM,GACX,4BAAKwM,EAAUjiB,UAAU,IAAMiiB,EAAUhiB,UACzC,4BAAKgiB,EAAUlvB,aAKrB,yBAAK4X,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACrC,wBAAI/N,UAAU,WAAd,aAEF,kBAACoN,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,yCACA,mCACA,sCACA,qCACA,sCACA,oCACA,qCACA,wCAGJ,sCACGnI,QADH,IACGA,OADH,EACGA,EAAekB,SACfwH,QAAQ/M,MAAK,SAACC,EAAGC,GAChB,OAAID,EAAE4B,UAAU8B,cAAgBzD,EAAE2B,UAAU8B,cAAsB,EAC1D1D,EAAE4B,UAAU8B,cAAgBzD,EAAE2B,UAAU8B,eAAuB,EAEhE1D,EAAE6B,SAAS6B,cAAgBzD,EAAE4B,SAAS6B,cAAsB,GAClD,KAGlBpD,KAAI,SAACshB,EAASvK,GAAV,OACH,wBAAIpK,IAAK2U,EAAQ9tB,UACjB,4BAAKujB,EAAM,GACX,4BAAKuK,EAAQhgB,UAAU,IAAMggB,EAAQ/f,UACrC,4BAAK+f,EAAQ7d,KACb,6BAAiC,MAA3B6d,EAAQztB,gBAA0B,GAAKytB,EAAQztB,iBAAmB,KACrC,MAA1BytB,EAAQxtB,eAAyB,GAAKwtB,EAAQxtB,iBACvD,4BAAKwtB,EAAQrnB,OACb,4BAAKqnB,EAAQ5d,QACb,4BAAK4d,EAAQ9f,MACb,4BAAK8f,EAAQjtB,OACb,4BACA,uBAAG4X,UAAU,+CACbmG,QAAS,kBAAMjR,EAAU,aAAD,OAAcmgB,EAAQhgB,UAAtB,YAAmCggB,EAAQ/f,UAAY,kBAAC,GAAD,CAAoB1M,WAAYiP,EAAcjP,WAAYrB,SAAU8tB,EAAQ9tB,WAAa,8BC1LrK2xB,GA1EU,SAAC,GAAkB,IAAjBtwB,EAAgB,EAAhBA,WAElBuwB,EADWla,qBAAW1B,IACSK,YAA/Bub,kBAFkC,EAGfja,mBAAS,IAHM,oBAGlCnV,EAHkC,KAG3BqvB,EAH2B,OAILla,oBAAS,GAJJ,oBAIlCpK,EAJkC,KAItBsP,EAJsB,OAKHlF,mBAASmF,eAAYC,eALlB,oBAKlCC,EALkC,KAKrBC,EALqB,KA6BzC,OACE,kBAAC3D,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,CAAMC,YAAU,GACd,kBAACxE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAASrb,EACT6b,SAlCc,SAACV,GAAW,IAC5BE,EAAUF,EAAMC,OAAhBC,MACRgU,EAAShU,QAoCL,kBAAC,UAAD,CACEb,YAAaA,EACbsB,iBAAiB,gBACjBC,iBAAiB,gBACjBC,gBAAgB,eAChBC,oBA/CoB,SAACC,GAC3BzB,EAAeyB,MAgDX,kBAACnF,GAAA,EAAD,CAAKd,UAAU,2CAEbjW,GAASwa,EAAY2B,sBACpBpR,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA3C5B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN,IAAIC,EAAiB/B,EAAY2B,oBAEjC,GADA9B,GAAc,GACXra,EAAMoJ,OAAS,GAAKmT,EAAe,CAEpC6S,EAAkBvwB,EAAYmB,EADpB,GACgCyc,KAAYC,wBAAaH,KAClEI,SAAQ,WACPtC,GAAc,SAkCG,OACdtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBChEnB8D,GAAgB,CACpB/Z,MAAO,GACP3E,IAAK,IAiFQ8zB,GA9EU,SAAC,GAAkB,IAAjBtwB,EAAgB,EAAhBA,WAElBuwB,EADWla,qBAAW1B,IACSK,YAA/Bub,kBAFkC,EAGbja,mBAAS4E,IAHI,oBAGlCvQ,EAHkC,KAG1B4Q,EAH0B,OAILjF,oBAAS,GAJJ,oBAIlCpK,EAJkC,KAItBsP,EAJsB,KAMnCa,EAAe,SAACC,GAAW,IAAD,EACNA,EAAMC,OAAtB9V,EADsB,EACtBA,KAAM+V,EADgB,EAChBA,MACdjB,EAAU,gBAAK5Q,EAAN,gBAAelE,EAAO+V,MAgBjC,OACE,kBAACvE,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,CAAMC,YAAU,GACd,kBAACxE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAAS7R,EAAOxJ,MAChB6b,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,MACL+V,MAAS7R,EAAOnO,IAChBwgB,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,2CAEbzM,EAAOxJ,OAASwJ,EAAOnO,MACtB0P,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QAnD5B,SAACjB,GAIpB,GAHAA,EAAMkB,iBACNlB,EAAMmB,kBACNjC,GAAc,GACX7Q,EAAOxJ,MAAMoJ,OAAS,GAAKI,EAAOnO,IAAI+N,OAAS,EAAG,CAEnDgmB,EAAkBvwB,EAAY2K,EAAOxJ,MAAOwJ,EAAOnO,IADrC,IAEbshB,SAAQ,WACPtC,GAAc,SA2CG,OACdtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qB,SCpEnBqZ,GAAY,CAChBC,KAAM,EACNvL,QAAS,OACTwL,cAAe,SACfC,WAAY,SACZC,QAAS,OACTC,YAAa,EACbC,aAAc,EACdC,YAAa,UACbC,YAAa,SACbC,gBAAiB,UACjB3W,MAAO,UACP4W,QAAS,OACTC,WAAY,2BAGRC,GAAc,CAClBL,YAAa,WAGTM,GAAc,CAClBN,YAAa,WAGTO,GAAc,CAClBP,YAAa,WA6CAQ,GA1CgB,SAAC,GAAkB,IAAjBxxB,EAAgB,EAAhBA,WAExByxB,EADWpb,qBAAW1B,IACeK,YAArCyc,wBAFwC,EAS3CC,aAAY,CACdC,OAAQ,iCACRC,SAAU,EACVC,OAAQ,SAAAC,GACN,IAAIzwB,EAAOywB,EAAc,GACzBL,EAAwBzxB,EAAYqB,EAAKoF,KAAMpF,MAVjD0wB,EAJ6C,EAI7CA,aACAC,EAL6C,EAK7CA,cACAC,EAN6C,EAM7CA,aACAC,EAP6C,EAO7CA,aACAC,EAR6C,EAQ7CA,aAUI7X,EAAQ8X,mBAAQ,kCACjB3B,GADiB,GAEhBwB,EAAeZ,GAAc,GAFb,GAGhBa,EAAeZ,GAAc,GAHb,GAIhBa,EAAeZ,GAAc,MAC/B,CACFU,EACAE,EACAD,IAGF,OACE,wBAASH,EAAa,CAACzX,UACrB,0BAAW0X,KAETC,EACE,sDACA,uFAEJ,mECiCSI,GAlGG,SAAC,GAA8B,IAA7BryB,EAA4B,EAA5BA,WAAYe,EAAgB,EAAhBA,WACxBuxB,EAAc/hB,KAAK4K,MAElBoX,EADWlc,qBAAW1B,IACOK,YAA7Bud,gBAHuC,EAIpBjc,mBAAS,IAJW,oBAIvC1U,EAJuC,KAIhCoF,EAJgC,OAKtBsP,mBAAS,IAAI/F,KAAK+hB,GAAalX,cAAckS,OAAO,EAAG,KALjC,oBAKvCzrB,EALuC,KAKjC2wB,EALiC,OAMJlc,mBAASvV,GANL,oBAMvC0xB,EANuC,KAMxBC,EANwB,OAOVpc,oBAAS,GAPC,oBAOvCpK,EAPuC,KAO3BsP,EAP2B,KAgC9C,OACE,kBAACvD,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,CAACqP,KAAK,EAAGC,OAAO,GAAI9S,GAAI,CAAC6S,KAAK,EAAGC,OAAO,GAAI7T,GAAI,GACvD,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIF,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,QACL+V,MAAS5a,EACTob,SA7Bc,SAACV,GAAW,IAC7BE,EAASF,EAAMC,OAAfC,MACPxV,EAASwV,QA+BL,kBAACtE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,CAACqP,KAAK,EAAGC,OAAO,GAAI9S,GAAI,CAAC6S,KAAK,EAAGC,OAAO,GAAI7T,GAAI,GACvD,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,SAIF,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,OACL+V,MAAS3a,EACTmb,SApDa,SAACV,GAAW,IAC5BE,EAASF,EAAMC,OAAfC,MACPgW,EAAQhW,QAsDJ,kBAACtE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,CAACqP,KAAK,EAAGC,OAAO,GAAI9S,GAAI,CAAC6S,KAAK,EAAGC,OAAO,GAAI7T,GAAI,GACvD,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIF,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,aACL+V,MAASiW,EACTzV,SA/DmB,SAACV,GAAW,IAClCE,EAASF,EAAMC,OAAfC,MACPkW,EAAiBlW,QAiEb,kBAACtE,GAAA,EAAD,CAAKd,UAAU,4CACXlL,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA3D7B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACNjC,GAAc,GACd+W,EAAgBvyB,EAAY4B,EAAOC,EAAM4wB,GACxC3U,SAAQ,WACPtC,GAAc,QAqDM,OACftP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCvBVub,GA3DY,SAAC,GAA8B,IAA7B3yB,EAA4B,EAA5BA,WAAYe,EAAgB,EAAhBA,WAEhC6xB,EADWvc,qBAAW1B,IACMK,YAA5B4d,eAFgD,EAGbtc,mBAASvV,GAHI,oBAGhD0xB,EAHgD,KAGjCC,EAHiC,OAInBpc,oBAAS,GAJU,oBAIhDpK,EAJgD,KAIpCsP,EAJoC,OAKrBlF,oBAAS,GALY,oBAKhDuM,EALgD,KAKrCC,EALqC,KAuBvD,OACE,kBAAC7K,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,aACL+V,MAASiW,EACTzV,SA/BO,SAACV,GAAW,IACxBE,EAASF,EAAMC,OAAfC,MACPkW,EAAiBlW,GAEfsG,KADCtG,GAASA,IAAUzb,SAgChB,kBAACmX,GAAA,EAAD,CAAKd,UAAU,2CACdyL,IAAc3W,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1B1C,SAACjB,GACpBd,GAAc,GACdoX,EAAe5yB,EAAYyyB,GAC3BjX,GAAc,KAuBqB,WAC5BtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCoBVyb,GA1DQ,SAAC,GAA0B,IAAzB7yB,EAAwB,EAAxBA,WAAYiB,EAAY,EAAZA,OAE5B6xB,EADWzc,qBAAW1B,IACEK,YAAxB8d,WAFwC,EAGXxc,oBAAS,GAHE,oBAGxCpK,EAHwC,KAG5BsP,EAH4B,OAITlF,mBAASmF,eAAYC,eAJZ,oBAIxCC,EAJwC,KAI3BC,EAJ2B,KAS/CnF,qBAAU,WACR,GAAGxV,EAAQ,CACT,IAAM4a,EAAiBC,KAAY7a,GAC7B8a,EAAQC,gBAAaC,qBACzBJ,EAAeK,cACfL,EAAeM,WAEjBP,EAAeH,eAAYW,kBAAkBL,OAE9C,CAAC9a,IAYJ,OACE,kBAACgX,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACE,kBAAC,UAAD,CACEd,YAAaA,EACbsB,iBAAiB,gBACjBC,iBAAiB,gBACjBC,gBAAgB,eAChBC,oBAjCoB,SAACC,GAC3BzB,EAAeyB,MAkCT,kBAACnF,GAAA,EAAD,CAAKd,UAAU,2CACduE,EAAY2B,sBACZpR,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QAvB5B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN,IAAIC,EAAiB/B,EAAY2B,oBAC9BI,IACDlC,GAAc,GACdsX,EAAW9yB,EAAY4d,KAAYC,wBAAaH,KAChDlC,GAAc,MAgBK,WACdtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCiBV2b,GAlEO,SAAC,GAAqB,IAApB5wB,EAAmB,EAAnBA,SAAU3F,EAAS,EAATA,IAC1ByN,EAAYoM,qBAAW1B,IACtBqe,EAAgB/oB,EAAUqL,YAA1B0d,aACA/jB,EAAiBhF,EAAU+K,YAA3B/F,cAHkC,EAIbqH,mBAAS9Z,GAJI,oBAIlCy2B,EAJkC,KAI1BC,EAJ0B,OAKL5c,oBAAS,GALJ,oBAKlCpK,EALkC,KAKtBsP,EALsB,OAMPlF,oBAAS,GANF,oBAMlCuM,EANkC,KAMvBC,EANuB,KA8BzC,OACE,kBAAC7K,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,aACL+V,MAASyW,EACTjW,SArCO,SAACV,GAAW,IACxBE,EAASF,EAAMC,OAAfC,MACP0W,EAAU1W,GAERsG,KADCtG,GAASA,IAAUhgB,SAsChB,kBAAC0b,GAAA,EAAD,CAAKd,UAAU,2CACdyL,IAAc3W,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QAhC1C,SAACjB,GAGpB,GAFAd,GAAc,GACdwX,EAAa7wB,EAAU8wB,GACpBhkB,EAAc,CACf,IAAIG,EAAM,OAAGH,QAAH,IAAGA,OAAH,EAAGA,EAAeI,QAAQE,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAOkF,KAClDiN,IACDA,EAAO5S,IAAMy2B,GAGjBzX,GAAc,KAuBqB,WAC5BtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCQV+b,GA3Dc,SAAC,GAAgC,IAA/BnzB,EAA8B,EAA9BA,WAAYa,EAAkB,EAAlBA,aAElCuyB,EADW/c,qBAAW1B,IACQK,YAA9Boe,iBAFoD,EAGb9c,mBAASzV,GAHI,oBAGpDwyB,EAHoD,KAGnCC,EAHmC,OAIvBhd,oBAAS,GAJc,oBAIpDpK,EAJoD,KAIxCsP,EAJwC,OAKzBlF,oBAAS,GALgB,oBAKpDuM,EALoD,KAKzCC,EALyC,KAuB3D,OACE,kBAAC7K,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,oBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,aACL+V,MAAS6W,EACTrW,SA/BO,SAACV,GAAW,IACxBE,EAASF,EAAMC,OAAfC,MACP8W,EAAmB9W,GAEjBsG,KADCtG,GAASA,IAAU3b,SAgChB,kBAACqX,GAAA,EAAD,CAAKd,UAAU,2CACdyL,IAAc3W,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1B1C,SAACjB,GACpBd,GAAc,GACd4X,EAAiBpzB,EAAYqzB,GAC7B7X,GAAc,KAuBqB,WAC5BtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCgBVmc,GA3DgB,SAAC,GAA+B,IAA9BC,EAA6B,EAA7BA,iBAAkBzxB,EAAW,EAAXA,MAE1CD,EADWuU,qBAAW1B,IACQK,YAA9BlT,iBAFqD,EAG5BwU,mBAASvU,GAHmB,oBAGrD0xB,EAHqD,KAG3CC,EAH2C,OAIxBpd,oBAAS,GAJe,oBAIrDpK,EAJqD,KAIzCsP,EAJyC,OAK1BlF,oBAAS,GALiB,oBAKrDuM,EALqD,KAK1CC,EAL0C,KAuB5D,OACE,kBAAC7K,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,aACL+V,MAASiX,EACTzW,SA/BO,SAACV,GAAW,IACxBE,EAASF,EAAMC,OAAfC,MACPkX,EAAYlX,GAEVsG,KADCtG,GAASA,IAAUza,SAgChB,kBAACmW,GAAA,EAAD,CAAKd,UAAU,2CACdyL,IAAc3W,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1B1C,SAACjB,GACpBd,GAAc,GACd1Z,EAAiB0xB,EAAkBljB,SAASmjB,IAC5CjY,GAAc,KAuBqB,WAC5BtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qB,6BCtBVuc,I,kBAnBG,SAAC,GAAY,IAAXr2B,EAAU,EAAVA,KAClB,OACE,kBAAC2a,GAAA,EAAD,KACG3a,GACC,kBAAC,KAAD,CAAQkf,MAAOlf,EACbs2B,cAAiB,aACjBC,UAAW,SAAAv2B,GAAI,OAAIu2B,qBAAUv2B,EAAMw2B,aAAUC,KAC7ClD,QAAS,EACTvW,MAAO,CACL0Z,WAAY,sCACZC,SAAU,GACV/C,gBAAiB,kBC2Sd9a,iBApSsD,SAAC,GAC/C,IAAD,QAApB0O,EAAoB,EAApBA,MACM7a,GADc,EAAbpO,QACWwa,qBAAW1B,KADT,EAEuC1K,EAAU+K,YAA9D/F,EAFa,EAEbA,cAAe4d,EAFF,EAEEA,kBAAmBprB,EAFrB,EAEqBA,eACjC6K,EAAarC,EAAUoC,WAAvBC,UAERmK,qBAAU,WAILqO,EAAMC,OAAO/kB,YAHG,EAAA6K,EAAAY,OAAA,kEAAAZ,EAAA,MACXgiB,EAAkB/H,EAAMC,OAAO/kB,aADpB,uCAMlB,CAAC6sB,EAAmB/H,EAAMC,OAAO/kB,aAqBpC,OACE,yBAAKoX,UAAU,WACb,yBAAKkD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAS,oBAA2B,OAAbnI,QAAa,IAAbA,OAAA,EAAAA,EAAe3P,QAAS,eAAiB,mBAApE,iBAAgG2P,QAAhG,IAAgGA,OAAhG,EAAgGA,EAAeuJ,YAC/G,kBAAC,KAAD,CAAMiC,GAAE,qCAAgCqK,EAAMC,OAAO/kB,aACnD,kBAACuX,GAAA,EAAD,CAAQC,QAAQ,YAAYJ,UAAU,QAAtC,eAEF,kBAAC,KAAD,CAAMqD,GAAE,oCAAwBxL,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAe5F,WAC7C,kBAACkO,GAAA,EAAD,CAAQC,QAAQ,UAAUJ,UAAU,QAApC,uBAEF,kBAAC,KAAD,CAAMqD,GAAE,sBAAiBqK,EAAMC,OAAO/kB,aACpC,kBAACuX,GAAA,EAAD,CAAQC,QAAQ,UAAUJ,UAAU,QAApC,QAEF,kBAAC,KAAD,CAAMqD,GAAE,wBAAmBqK,EAAMC,OAAO/kB,aACtC,kBAACuX,GAAA,EAAD,CAAQC,QAAQ,QAAhB,UAIJ,kBAACU,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,oBAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,OACGtL,QADH,IACGA,OADH,EACGA,EAAepO,cACF,OAAboO,QAAa,IAAbA,OAAA,EAAAA,EAAe3P,SACd,uBAAG8X,UAAU,sCACXmG,QAAS,kBAAMjR,EAAU,sBACzB,kBAAC,GAAD,CAAsBtM,WAAU,OAAEiP,QAAF,IAAEA,OAAF,EAAEA,EAAejP,WAAYa,aAAY,OAAEoO,QAAF,IAAEA,OAAF,EAAEA,EAAepO,sBAOpG,kBAACqX,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,gBAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,OACGtL,QADH,IACGA,OADH,EACGA,EAAelO,YACF,OAAbkO,QAAa,IAAbA,OAAA,EAAAA,EAAe3P,SACd,uBAAG8X,UAAU,sCACXmG,QAAS,kBAAMjR,EAAU,kBACzB,kBAAC,GAAD,CAAoBtM,WAAU,OAAEiP,QAAF,IAAEA,OAAF,EAAEA,EAAejP,WAAYe,WAAU,OAAEkO,QAAF,IAAEA,OAAF,EAAEA,EAAelO,oBAOhG,yBAAKqW,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACnC,wBAAI/N,UAAU,UAAUkD,MAAO,CAACC,MAAO,YAAvC,UACc,OAAbtL,QAAa,IAAbA,OAAA,EAAAA,EAAe3P,SACd,uBAAG8X,UAAU,sCACPmG,QAAS,kBAAMjR,EAAU,aACzB,kBAAC,GAAD,CAAgBtM,WAAU,OAAEiP,QAAF,IAAEA,OAAF,EAAEA,EAAejP,WAAYiB,OAAM,OAAEgO,QAAF,IAAEA,OAAF,EAAEA,EAAehO,SAAY,qBAKtG,kBAACiX,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,KACA,uBAAGf,UAAU,cAA0B,OAAbnI,QAAa,IAAbA,OAAA,EAAAA,EAAehO,SAAW8W,aAAK,OAAC9I,QAAD,IAACA,OAAD,EAACA,EAAehO,WAI3E,yBAAKqZ,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAU,UAAUkD,MAAO,CAACC,MAAO,cAAvC,WACE,uBAAGnD,UAAU,6DACXmG,QAAS,kBAAMjR,EAAU,iBAAkB,kBAAC,GAAD,CAAWtM,WAAY8kB,EAAMC,OAAO/kB,WAAYe,WAAU,OAAEkO,QAAF,IAAEA,OAAF,EAAEA,EAAelO,aAAe,oBAG3I,kBAACyjB,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,qCACA,oCACA,2CACA,0CACA,qCACA,4CAGJ,sCACGnI,QADH,IACGA,OADH,YACGA,EAAeI,eADlB,aACG,EAAwBsI,QACxB/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE9I,MAAQ+I,EAAE/I,MAAQ,GAAK,KACxCoJ,KAAI,SAACiE,EAAQ8S,GAAT,OACH,wBAAIpK,IAAK1I,EAAOnS,IAChB,4BACGmS,EAAOrN,OAEV,4BACE,kBAAC,KAAD,CAAM0Y,GAAE,4BAAuBrL,EAAOnS,KACrCmS,EAAOxN,QAGV,4BAAK,IAAI2O,KAAKnB,EAAOvN,MAAMuZ,cAAcC,UAAU,EAAG,KACtD,4BAAKjM,EAAOrO,YACZ,4BACE,kBAAC,KAAD,CAAM0Z,GAAE,6BAAwBrL,EAAOnS,KACpCmS,EAAO0d,iBADV,cAIF,4BACG1d,EAAO5S,KACN,uBAAGkb,KAAMtI,EAAO5S,IAAK+f,OAAO,SAASiD,IAAI,uBAAzC,SAEF,uBAAGpI,UAAU,sCACXmG,QAAS,kBAAMjR,EAAU,YAAa,kBAAC,GAAD,CAAenK,SAAUiN,EAAOnS,GAAIT,IAAK4S,EAAO5S,MAAQ,oBAGlG,4BACE,kBAAC,KAAD,CAAMie,GAAE,6BAAwBrL,EAAOnS,KAAvC,qBASR,yBAAKma,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACrC,wBAAI/N,UAAU,UAAUkD,MAAO,CAACC,MAAM,aAAtC,aACE,uBAAGnD,UAAU,sDACXmG,QAAS,kBAAMjR,EAAU,0BAA2B,kBAAC4nB,GAAD,CAAsBl0B,WAAY8kB,EAAMC,OAAO/kB,aAAe,mBAEpH,uBAAGoX,UAAU,sDACXmG,QAAS,kBAAMjR,EAAU,0BAA2B,kBAAC6nB,GAAD,CAAsBn0B,WAAY8kB,EAAMC,OAAO/kB,aAAe,mBAEpH,uBAAGoX,UAAU,2DACXmG,QAAS,kBAAMjR,EAAU,4BAA6B,kBAAC,GAAD,CAAwBtM,WAAY8kB,EAAMC,OAAO/kB,aAAe,oBAG5H,kBAACwkB,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,uCAGJ,sCACGnI,QADH,IACGA,OADH,YACGA,EAAeE,uBADlB,aACG,EAAgCwI,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE9I,MAAQ+I,EAAE/I,MAAQ,GAAK,KAC9EoJ,KAAI,SAAA+D,GAAc,OACnB,wBAAI4I,IAAK5I,EAAejS,IACxB,4BAAKiS,EAAenN,MACpB,uBAAGqV,UAAU,sCACXmG,QAAS,kBAAMjR,EAAU,iBAAD,OAAkB4C,EAAe/N,OACzD,kBAAC,GAAD,CAAwBqyB,iBAAkBtkB,EAAejS,GAAI8E,MAAOmN,EAAenN,MAAMuiB,aAAgB,oBAG3G,4BACGpV,EAAe1S,KACd,uBAAGkb,KAAMxI,EAAe1S,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBtQ,EAAe/N,QAEvF+N,EAAe1S,KACf,0BAAM4a,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,YAAD,OAAa4C,EAAe/N,OAAS,kBAAC,GAAD,CAAcR,QAASuO,EAAevO,UAAY,kBAC5GuO,EAAe/N,OAGpB,uBAAGiW,UAAU,yCAAyCmG,QAAS,kBA1L7CtgB,EA0LwEiS,EAAejS,QAzLnH2nB,wBAAa,CACXzjB,MAAO,oBACP1F,QAAS,sCACTopB,QAAS,CACP,CACE1D,MAAO,MACP5D,QAAS,WACP9b,EAAeqjB,EAAMC,OAAO/kB,WAAY/C,KAG5C,CACEkkB,MAAO,KACP5D,QAAS,iBAbY,IAACtgB,YAoB5B,OA6KGgS,QA7KH,IA6KGA,OA7KH,YA6KGA,EAAemlB,oBA7KlB,aA6KG,EAA6BjpB,KAAI,SAACvJ,EAAOgW,GAAR,OAChC,kBAAC,IAAMyc,SAAP,KACE,yBAAKjd,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACnC,wBAAI/N,UAAU,UAAUkD,MAAO,CAACC,MAAM,aAAc3Y,EAAM6E,MAC1D,kBAAC,KAAD,CAAMgU,GAAE,iCAA4B7Y,EAAM3E,GAAlC,YAAwC2E,EAAMqF,UACpD,uBAAGmQ,UAAU,gDAGnB,kBAACoN,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACxC,+BACE,4BACE,wCACE,qCACA,qCACCxV,EAAM+E,aACJ,wCAEF/E,EAAMgF,aACJ,wCAEFhF,EAAMiF,SACJ,sCAIT,+BACGjF,EAAMuR,WAAWhI,KAAI,SAAAiI,GAAS,OAC/B,wBAAI0E,IAAK1E,EAAUnW,IACjB,4BAAKmW,EAAU/L,UACf,4BAAK+L,EAAUrR,OACf,4BACCqR,EAAU5W,KACT,uBAAGkb,KAAMtE,EAAU5W,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBpM,EAAUjS,QAG9ES,EAAM+E,aACL,4BAAKyM,EAAU1L,UAEhB9F,EAAMgF,aACH,4BACCwM,EAAUlP,aACX,uBAAGwT,KAAMtE,EAAUlP,YAAaqY,OAAO,SAASiD,IAAI,uBAApD,aAIH5d,EAAMiF,SACJ,4BACAuM,EAAU9V,MACP,0BAAM8Z,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,YAAD,OAAa8G,EAAUjS,OAC/C,kBAAC,GAAD,CAAW7D,KAAM8V,EAAU9V,OAAU,kBAFrC,mBA7NhB,OA4OG2R,QA5OH,IA4OGA,OA5OH,YA4OGA,EAAeqlB,iBA5OlB,aA4OG,EAA0BnpB,KAAI,SAACvJ,EAAOgW,GAAR,OAC7B,yBAAKR,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,QAASrN,IAAKlW,EAAM3E,IAC1D2E,EAAMmF,YACP,kBAAC,KAAD,CAAM0T,GAAE,yCAAoC7Y,EAAM3E,IAAMma,UAAU,WAChE,wBAAIkD,MAAO,CAACC,MAAM,SAAU3Y,EAAM6E,QAGlC7E,EAAMmF,YACR,kBAAC,KAAD,CAAM0T,GAAE,kCAA6B7Y,EAAM3E,IAAMma,UAAU,WACzD,wBAAIkD,MAAO,CAACC,MAAM,SAAU3Y,EAAM6E,OAGpC,kBAAC,KAAD,CAAMgU,GAAE,iCAA4B7Y,EAAM3E,GAAlC,YAAwC2E,EAAMqF,UACpD,uBAAGmQ,UAAU,uDC9ORhB,iBAlEc,WAC3B,IAAMva,EAAU+vB,cADiB,EAEfvV,qBAAW1B,IACqBpI,UAA3C6B,EAH0B,EAG1BA,QAASmmB,EAHiB,EAGjBA,qBAHiB,EAIOje,oBAAS,GAJhB,oBAI1B2N,EAJ0B,KAIZC,EAJY,KAMjCzN,qBAAU,WACR8d,MACC,CAACA,IAMJ,OACE,kBAACtc,GAAA,EAAD,CAAWK,OAAK,EAACgC,MAAO,CAAEiK,UAAW,QACnC,kBAACrM,GAAA,EAAD,CAAKd,UAAU,QACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACnB,kBAACqE,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,cAAcgC,gBAAgB,EAChE1c,KAAK,SAASuW,SATG,SAACV,GAC1B4H,EAAgB5H,EAAMC,OAAOpK,cAW3B,kBAACqS,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,GAC3B,+BACE,4BACE,oCACA,oCACA,qCACA,yCACA,wCACA,8CACA,uCACA,6CACA,wCAGJ,+BACGpX,GACDA,EAAQpB,QAAO,SAAA9M,GACb,OAAG+jB,GACM/jB,EAAOZ,UAIf6L,KAAI,SAAAjL,GAAM,OACX,wBAAI4X,IAAK5X,EAAOF,WAAYoX,UAAU,YAAYmG,QAAS,SAACkI,GAC1D5pB,EAAQC,KAAR,qBAA2BoE,EAAOF,eAElC,4BAAKE,EAAOF,YACZ,4BAAKE,EAAOsY,YACZ,4BAAKtY,EAAO6C,QAASkiB,OACrB,4BAAK,IAAI1U,KAAKrQ,EAAO+hB,WAAW7G,cAAcC,UAAU,EAAG,KAC3D,4BAAK,IAAI9K,KAAKrQ,EAAOkiB,SAAShH,cAAcC,UAAU,EAAG,KACzD,4BAAKnb,EAAOW,aAAe,IAAMX,EAAOa,YACxC,4BAAKb,EAAOolB,QAAS7Y,UAAY,IAAMvM,EAAOolB,QAAS5Y,UACvD,4BAAKxM,EAAOiQ,SAAS5F,QACrB,4BAAKrK,EAAOZ,OAAS,MAAQ,gBCiL5B8W,iBA/NwD,SAAC,GACjD,IAAD,QAApB0O,EAAoB,EAApBA,MACM7a,GADc,EAAbpO,QACWwa,qBAAW1B,KADT,EAEuB1K,EAAU+K,YAA9C/F,EAFa,EAEbA,cAAe4d,EAFF,EAEEA,kBACdvgB,EAAarC,EAAUoC,WAAvBC,UAWR,OATAmK,qBAAU,WAILqO,EAAMC,OAAO/kB,YAHG,EAAA6K,EAAAY,OAAA,kEAAAZ,EAAA,MACXgiB,EAAkB/H,EAAMC,OAAO/kB,aADpB,uCAMlB,CAAC6sB,EAAmB/H,EAAMC,OAAO/kB,aAGlC,yBAAKoX,UAAU,WACb,yBAAKkD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAS,oBAA2B,OAAbnI,QAAa,IAAbA,OAAA,EAAAA,EAAe3P,QAAS,eAAiB,mBAApE,iBAAgG2P,QAAhG,IAAgGA,OAAhG,EAAgGA,EAAeuJ,YAC/G,kBAAC,KAAD,CAAMiC,GAAE,sBAAiBqK,EAAMC,OAAO/kB,aACpC,kBAACuX,GAAA,EAAD,CAAQC,QAAQ,UAAUJ,UAAU,QAApC,SAIJ,kBAACc,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,oBAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,OACGtL,QADH,IACGA,OADH,EACGA,EAAepO,gBAKtB,kBAACqX,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,gBAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,OACGtL,QADH,IACGA,OADH,EACGA,EAAelO,cAKtB,yBAAKqW,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACnC,wBAAI/N,UAAU,UAAUkD,MAAO,CAACC,MAAO,YAAvC,WAGJ,kBAACrC,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,KACA,uBAAGf,UAAU,cAA0B,OAAbnI,QAAa,IAAbA,OAAA,EAAAA,EAAehO,SAAW8W,aAAK,OAAC9I,QAAD,IAACA,OAAD,EAACA,EAAehO,WAI3E,yBAAKqZ,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAU,UAAUkD,MAAO,CAACC,MAAO,cAAvC,YAEF,kBAACiK,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,qCACA,oCACA,2CACA,0CACA,qCACA,4CAGJ,sCACGnI,QADH,IACGA,OADH,YACGA,EAAeI,eADlB,aACG,EAAwBsI,QACxB/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE9I,MAAQ+I,EAAE/I,MAAQ,GAAK,KACxCoJ,KAAI,SAACiE,EAAQ8S,GAAT,OACH,wBAAIpK,IAAK1I,EAAOnS,IAChB,4BACGmS,EAAOrN,OAEV,4BACE,kBAAC,KAAD,CAAM0Y,GAAE,4BAAuBrL,EAAOnS,KACrCmS,EAAOxN,QAGV,4BAAK,IAAI2O,KAAKnB,EAAOvN,MAAMuZ,cAAcC,UAAU,EAAG,KACtD,4BAAKjM,EAAOrO,YACZ,4BACE,kBAAC,KAAD,CAAM0Z,GAAE,+BAA0BrL,EAAOnS,KACtCmS,EAAO0d,iBADV,cAIF,4BACG1d,EAAO5S,KACN,uBAAGkb,KAAMtI,EAAO5S,IAAK+f,OAAO,SAASiD,IAAI,uBAAzC,UAGJ,4BACE,kBAAC,KAAD,CAAM/E,GAAE,+BAA0BrL,EAAOnS,KAAzC,qBASR,yBAAKma,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACrC,wBAAI/N,UAAU,UAAUkD,MAAO,CAACC,MAAM,aAAtC,cAEF,kBAACiK,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,uCAGJ,sCACGnI,QADH,IACGA,OADH,YACGA,EAAeE,uBADlB,aACG,EAAgCwI,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE9I,MAAQ+I,EAAE/I,MAAQ,GAAK,KAC9EoJ,KAAI,SAAA+D,GAAc,OACnB,wBAAI4I,IAAK5I,EAAejS,IACxB,4BAAKiS,EAAenN,OAEpB,4BACGmN,EAAe1S,KACd,uBAAGkb,KAAMxI,EAAe1S,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBtQ,EAAe/N,QAEvF+N,EAAe1S,KACf,0BAAM4a,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,YAAD,OAAa4C,EAAe/N,OAAS,kBAAC,GAAD,CAAcR,QAASuO,EAAevO,UAAY,kBAC5GuO,EAAe/N,cArH9B,OA8HG8N,QA9HH,IA8HGA,OA9HH,YA8HGA,EAAemlB,oBA9HlB,aA8HG,EAA6BjpB,KAAI,SAACvJ,EAAOgW,GAAR,OAChC,kBAAC,IAAMyc,SAAP,KACE,yBAAKjd,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACnC,wBAAI/N,UAAU,UAAUkD,MAAO,CAACC,MAAM,aAAc3Y,EAAM6E,OAE9D,kBAAC+d,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACxC,+BACE,4BACE,wCACE,qCACA,qCACCxV,EAAM+E,aACJ,wCAEF/E,EAAMgF,aACJ,wCAEFhF,EAAMiF,SACJ,sCAIT,+BACGjF,EAAMuR,WAAWhI,KAAI,SAAAiI,GAAS,OAC/B,wBAAI0E,IAAK1E,EAAUnW,IACjB,4BAAKmW,EAAU/L,UACf,4BAAK+L,EAAUrR,OACf,4BACCqR,EAAU5W,KACT,uBAAGkb,KAAMtE,EAAU5W,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBpM,EAAUjS,QAG9ES,EAAM+E,aACL,4BAAKyM,EAAU1L,UAEhB9F,EAAMgF,aACH,4BACCwM,EAAUlP,aACX,uBAAGwT,KAAMtE,EAAUlP,YAAaqY,OAAO,SAASiD,IAAI,uBAApD,aAIH5d,EAAMiF,SACJ,4BACAuM,EAAU9V,MACP,0BAAM8Z,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,YAAD,OAAa8G,EAAUjS,OAC/C,kBAAC,GAAD,CAAW7D,KAAM8V,EAAU9V,OAAU,kBAFrC,mBA3KhB,OA0LG2R,QA1LH,IA0LGA,OA1LH,YA0LGA,EAAeqlB,iBA1LlB,aA0LG,EAA0BnpB,KAAI,SAACvJ,EAAOgW,GAAR,OAC7B,yBAAKR,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,QAASrN,IAAKlW,EAAM3E,IAC1D2E,EAAMmF,YACP,kBAAC,KAAD,CAAM0T,GAAE,yCAAoC7Y,EAAM3E,IAAMma,UAAU,WAChE,wBAAIkD,MAAO,CAACC,MAAM,SAAU3Y,EAAM6E,QAGlC7E,EAAMmF,YACR,kBAAC,KAAD,CAAM0T,GAAE,kCAA6B7Y,EAAM3E,IAAMma,UAAU,WACzD,wBAAIkD,MAAO,CAACC,MAAM,SAAU3Y,EAAM6E,OAGpC,kBAAC,KAAD,CAAMgU,GAAE,iCAA4B7Y,EAAM3E,GAAlC,YAAwC2E,EAAMqF,UACpD,uBAAGmQ,UAAU,uDCnLRhB,iBA9Ca,WAC1B,IAAMva,EAAU+vB,cADgB,EAEdvV,qBAAW1B,IACmBgB,WAAzC1C,EAHyB,EAGzBA,OAAQuhB,EAHiB,EAGjBA,oBAMf,OAJA/d,qBAAU,WACR+d,MACC,CAACA,IAGF,kBAACvc,GAAA,EAAD,CAAWK,OAAK,EAACgC,MAAO,CAAEiK,UAAW,QACnC,kBAACC,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,GAC3B,+BACE,4BACE,oCACA,4CACA,6CACA,6CACA,yCACA,iDACA,8CAGJ,+BACGvS,GACCA,EACC9H,KAAI,SAAAvJ,GAAK,OACR,wBAAIkW,IAAKlW,EAAM3E,GAAIma,UAAU,YAAYmG,QAAS,SAACkI,GACjD5pB,EAAQC,KAAR,oBAA0B8F,EAAM3E,OAEhC,4BAAK2E,EAAM6E,MACX,4BAAK7E,EAAMupB,aACX,4BAAKvpB,EAAM+E,YAAc,MAAQ,MACjC,4BAAK/E,EAAMgF,YAAc,MAAQ,MACjC,4BAAKhF,EAAMiF,QAAU,MAAQ,MAC7B,4BAAKjF,EAAMkF,eAAiB,MAAQ,MACpC,4BAAKlF,EAAMmF,WAAa,MAAQ,gBCmEjCqP,iBAlGwD,SAAC,GACjD,IAAD,IAApB0O,EAAoB,EAApBA,MACM7a,GADc,EAAbpO,QACWwa,qBAAW1B,KADT,EAEa1K,EAAU0L,WAApCzC,EAFa,EAEbA,aAAchM,EAFD,EAECA,SACboF,EAAarC,EAAUoC,WAAvBC,UAWR,OATAmK,qBAAU,WAILqO,EAAMC,OAAO9d,SAHG,EAAA4D,EAAAY,OAAA,kEAAAZ,EAAA,MACX3D,EAAS4d,EAAMC,OAAO9d,UADX,uCAMlB,CAACC,EAAU4d,EAAMC,OAAO9d,UAGzB,yBAAKmQ,UAAU,WACb,yBAAKkD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAU,wBAAd,OAAsClE,QAAtC,IAAsCA,OAAtC,EAAsCA,EAAczM,OAEtD,kBAAC+d,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,wCACA,qCACA,sCACa,OAAZlE,QAAY,IAAZA,OAAA,EAAAA,EAAcvM,cACZ,yCAEU,OAAZuM,QAAY,IAAZA,OAAA,EAAAA,EAActM,cACZ,yCAEU,OAAZsM,QAAY,IAAZA,OAAA,EAAAA,EAAcrM,UACZ,sCAIP,sCAEEqM,QAFF,IAEEA,OAFF,YAEEA,EAAcC,kBAFhB,aAEE,EAA0BvI,MAAK,SAACC,EAAGC,GACjC,OAAID,EAAExD,SAAWyD,EAAEzD,SAAiB,EAC5BwD,EAAExD,SAAWyD,EAAEzD,UAAkB,EACjCwD,EAAE9I,MAAQ+I,EAAE/I,MAAc,GACrB,KACZoJ,KAAI,SAAAiI,GAAS,OACd,wBAAI0E,IAAK1E,EAAUnW,IACjB,4BAAKmW,EAAU/L,UAEf,6BACE+L,EAAU9L,WAAa8L,EAAUrR,MAChCqR,EAAU9L,WACX,uBAAGoQ,KAAMtE,EAAU9L,UAAWiV,OAAO,SAASiD,IAAI,uBAAuBpM,EAAUrR,QAGrF,4BACCqR,EAAU5W,KACT,uBAAGkb,KAAMtE,EAAU5W,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBpM,EAAUjS,SAGlE,OAAZ+R,QAAY,IAAZA,OAAA,EAAAA,EAAcvM,cACZ,gCAAMyM,EAAU1L,WAGN,OAAZwL,QAAY,IAAZA,OAAA,EAAAA,EAActM,cACZ,4BACAwM,EAAUlP,aACX,uBAAGwT,KAAMtE,EAAUlP,YAAaqY,OAAO,SAASiD,IAAI,uBAApD,YAECpM,EAAUE,iBACT,0BAAM8D,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,eAAD,OAAgB8G,EAAUjS,OAAS,kBAAC,GAAD,CAAcR,QAASyS,EAAUE,kBAAoB,kBADhH,cAOS,OAAZJ,QAAY,IAAZA,OAAA,EAAAA,EAAcrM,UACZ,4BACAuM,EAAU9V,MACP,0BAAM8Z,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,YAAD,OAAa8G,EAAUjS,OAC/C,kBAAC,GAAD,CAAW7D,KAAM8V,EAAU9V,OAAU,kBAFrC,eAYd,yBAAKgd,MAAO,CAAC6K,QAAS,SACtB,wBAAI/N,UAAU,qBAAd,0BAAmDlE,QAAnD,IAAmDA,OAAnD,YAAmDA,EAAcC,kBAAjE,aAAmD,EAA0B5I,aCzCpE6L,iBArDW,WACxB,IAAMnM,EAAYoM,qBAAW1B,IACrB5J,EAAmBd,EAAU4K,mBAA7B9J,eACAnN,EAASqM,EAAUsC,UAAnB3O,KAER,OACE,kBAACqa,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKwE,GAAI,IACT,kBAACxE,GAAA,EAAD,CAAKwE,GAAI,GACP,kCAEF,kBAACxE,GAAA,EAAD,CAAKwE,GAAI,IACP,sCAED/e,GAAQA,EAAKuB,MAAMnD,SAAS,gBAC3B,kBAACmc,GAAA,EAAD,CAAKwE,GAAI,EAAGvF,UAAU,eACpB,kBAAC,KAAD,CAAMqD,GAAE,qBACN,uBAAGrD,UAAU,aAAakD,MAAO,CAACC,MAAM,aAK/CxP,EAAeI,KAAI,SAAChO,GAAD,OAClB,kBAAC+a,GAAA,EAAD,CAAKJ,IAAK3a,EAAcF,IACtB,kBAACkb,GAAA,EAAD,CAAKwE,GAAI,GACNxf,EAAcqP,kBAAkBsb,MAC/B,SAAA7a,GAAC,OAAIA,EAAEtO,WAAaf,EAAMe,aACvB,uBAAGyY,UAAU,cAAckD,MAAO,CAACC,MAAM,WAEhD,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,GACP,kBAAC,KAAD,CAAMlC,GAAE,0BAAqBtd,EAAcF,KACxCE,EAAc4E,QAGnB,kBAACoW,GAAA,EAAD,CAAKwE,GAAI,IACP,kBAAC,KAAD,CAAMlC,GAAE,0BAAqBtd,EAAcF,KACxCE,EAAcgE,QAGlBvD,GAAQA,EAAKuB,MAAMnD,SAAS,gBAC3B,kBAACmc,GAAA,EAAD,CAAKwE,GAAI,EAAGvF,UAAU,eACpB,kBAAC,KAAD,CAAMqD,GAAE,6BAAwBtd,EAAcF,KAC9C,uBAAGma,UAAU,aAAakD,MAAO,CAACC,MAAM,oBCrBvCnE,iBAxBgB,WAC7B,IADmC,EACjBC,qBAAW1B,IACqBE,mBAA1C4f,EAF2B,EAE3BA,mBAAoB/oB,EAFO,EAEPA,QAM5B,OAJA+K,qBAAU,WACRge,MACC,CAACA,IAED/oB,EAAgB,kBAAC,GAAD,CAAkB/K,QAAQ,+BAE3C,kBAACsX,GAAA,EAAD,CAAWqC,MAAO,CAAEiK,UAAW,SAC7B,kBAACrM,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKwE,GAAI,GACP,kBAAC,GAAD,OAEF,kBAACxE,GAAA,EAAD,CAAKwE,GAAI,SCPJ+X,GAUT,WAAYjU,GAA8B,yBAT1CxjB,QAAczB,EAS2B,KARzCuG,WAAiBvG,EAQwB,KAPzC2F,MAAgB,GAOyB,KANzCoC,YAAsB,GAMmB,KALzCoxB,IAAc,GAK2B,KAJzCC,iBAAoBp5B,EAIqB,KAHzC4O,gBAAqC,GAGI,KAFzCoC,kBAAyC,GAGrCmS,OAAO+B,OAAOxW,KAAMuW,IAafoU,GAOT,WAAYpU,GAAyB,yBANrCxjB,GAAa,GAMuB,KALpC63B,MAAgB,GAKoB,KAJpCC,SAAmB,GAIiB,KAHpCC,OAAiB,GAGmB,KAFpCC,WAAqB,GAEe,KADpCC,gBAA0B,GAEtBvW,OAAO+B,OAAOxW,KAAMuW,IAwBf0U,GAUT,WAAa1U,GAAyC,yBATtDxjB,QAAczB,EASuC,KARrDuG,WAAkBvG,EAQmC,KAPrD2F,MAAgB,GAOqC,KANrDoC,YAAsB,GAM+B,KALrDoxB,IAAc,GAKuC,KAJrDC,iBAAqBp5B,EAIgC,KAHrDoR,OAAkB,GAGmC,KAFrDtP,KAAe,GAGXqhB,OAAO+B,OAAOxW,KAAMuW,IC6BbrK,iBAlG0D,SAAC,GAGnE,IAFL0O,EAEI,EAFJA,MAGM7a,GADF,EADJpO,QAEkBwa,qBAAW1B,KADzB,EAMA1K,EAAU4K,mBAHZugB,EAHE,EAGFA,kBACAlpB,EAJE,EAIFA,WACAmpB,EALE,EAKFA,mBAGMz3B,EAASqM,EAAUsC,UAAnB3O,KARJ,EASsC0Y,mBAAS,IAAI6e,IATnD,oBASGh4B,EATH,KASkBm4B,EATlB,OAU0Bhf,oBAAS,GAVnC,oBAUG5K,EAVH,KAUYoV,EAVZ,OAWoBxK,mBAAS,IAX7B,oBAWGhZ,EAXH,KAWSi4B,EAXT,KAsCJ,GAzBA9e,qBAAU,WACLqO,EAAMC,OAAO9nB,KACd6jB,GAAW,GACXsU,EAAkBtQ,EAAMC,OAAO9nB,IAAIP,MAAK,SAACS,GACvC,GAAIA,EAAe,CACjB,IAAIyP,EAASzP,EAAcqP,kBAAkB+C,MAC3C,SAAAtC,GAAC,OAAIA,EAAEtO,WAAaf,EAAMe,YAExB8hB,EAAwC,CAC1CxjB,GAAIE,EAAcF,GAClB8E,MAAO5E,EAAc4E,MACrBZ,MAAOhE,EAAcgE,MACrBoC,YAAcpG,EAAcoG,YAC5BoxB,IAAMx3B,EAAcw3B,IACpBC,YAAcz3B,EAAcy3B,YAC5BhoB,OAAM,OAAGA,QAAH,IAAGA,OAAH,EAAGA,EAAQA,OACjBtP,KAAQsP,EAASA,EAAOA,OAASzP,EAAcw3B,KAEjDW,EAAiB7U,GACjB8U,EAAO,OAAC9U,QAAD,IAACA,OAAD,EAACA,EAAMnjB,UAEfwgB,SAAQ,kBAAMgD,GAAW,SAE7B,CAACsU,EAAmBtQ,EAAMC,OAAO9nB,GAAIW,IAEpC8N,IAAYvO,EACd,OAAO,kBAAC,GAAD,CAAkBwD,QAAQ,8BAUnC,OACE,kBAACsX,GAAA,EAAD,CAAWqC,MAAO,CAAEiK,UAAW,SAC7B,kBAACrM,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKwE,GAAI,GACP,+CACYxf,QADZ,IACYA,OADZ,EACYA,EAAe4E,MAD3B,YACoC5E,QADpC,IACoCA,OADpC,EACoCA,EAAegE,OAEhDhE,GACCA,EAAcoG,aACd4oB,aAAOhvB,EAAcoG,cAE3B,kBAAC4U,GAAA,EAAD,CAAKwE,GAAI,GACH,kBAACF,GAAA,EAAD,KACA,kBAACA,GAAA,EAAKiD,MAAN,CAAYtI,UAAU,OAAOuI,UAAU,QACrC,kBAACzH,GAAA,EAAD,KACE,kBAACuE,GAAA,EAAKG,MAAN,cAEF,kBAAC1E,GAAA,EAAD,KACE,kBAACuE,GAAA,EAAKI,QAAN,CAAc1I,GAAG,WAAW2L,KAAM,GAAI1I,UAAU,eAAe3Q,KAAK,OAAO+V,MAAOlf,EAAM0f,SA1BjF,SAACV,GACpBiZ,EAAQjZ,EAAMC,OAAOC,SA0BNrf,GAAiBA,EAAcG,OAGpC,kBAAC4a,GAAA,EAAD,KACE,kBAACuE,GAAA,EAAKjC,KAAN,CAAWpD,UAAU,cAArB,iCAKFlL,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QAhCxB,SAAC5S,GAC7B0qB,EAAmBl4B,EAAeF,GAAK0N,EAAOrN,QA+BpB,UACjB4O,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,wB,qBC4DZhB,iBAtIwD,SAAC,GAGjE,IAFL0O,EAEI,EAFJA,MAEI,KADJjpB,QAEkBwa,qBAAW1B,IAMfE,oBAJZ2gB,EAHE,EAGFA,SACAC,EAJE,EAIFA,oBACAC,EALE,EAKFA,kBACAN,EANE,EAMFA,kBANE,EAQsC9e,mBAAS,IAAIoe,IARnD,oBAQGv3B,EARH,KAQkBm4B,EARlB,OAS0Bhf,oBAAS,GATnC,oBASG5K,EATH,KASYoV,EATZ,OAUkCxK,mBAASmF,eAAYC,eAVvD,oBAUGC,EAVH,KAUgBC,EAVhB,KAeJnF,qBAAU,WACJqO,EAAMC,OAAO9nB,KACf6jB,GAAW,GACXsU,EAAkBtQ,EAAMC,OAAO9nB,IAC5BP,MAAK,SAAAS,GACJm4B,EAAiB,IAAIZ,GAAoBv3B,IACzC,IAAM0e,EAAiBC,KAAY3e,EAAeoG,aAC5CwY,EAAQC,gBAAaC,qBACzBJ,EAAeK,cACfL,EAAeM,WAEjBP,EAAeH,eAAYW,kBAAkBL,OAE9C+B,SAAQ,kBAAMgD,GAAW,SAE7B,CAACsU,EAAmBtQ,EAAMC,OAAO9nB,KAEpC,IAAMof,EAAe,SAACC,GAAgB,IAAD,EACXA,EAAMC,OAAtB9V,EAD2B,EAC3BA,KAAM+V,EADqB,EACrBA,MACd8Y,EAAiB,gBAAKn4B,EAAN,gBAAsBsJ,EAAO+V,MAkC/C,OACE,kBAACvE,GAAA,EAAD,CAAWqC,MAAO,CAAEiK,UAAW,SAC7B,kBAACrM,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKwE,GAAI,IACP,wCACYxf,EAAgBA,EAAc4E,MAAQ,MAAO,MAG1D5E,EAAcF,IACb,kBAACkb,GAAA,EAAD,CAAKwE,GAAI,GACP,kBAAC,KAAD,CAAMlC,GAAE,2BAAsBtd,EAAcF,KAC1C,kBAACsa,GAAA,EAAD,CAAQC,QAAQ,UAAUJ,UAAU,eAApC,iBAOR,kBAACe,GAAA,EAAD,CAAKwE,GAAI,IACP,kBAAC1E,GAAA,EAAD,KACM,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,oBACb,kBAACqF,GAAA,EAAKI,QAAN,CAAcC,UAAQ,EACtBC,KAAK,OACLtW,KAAK,QACL+V,MAAOrf,EAAcgE,MACrB6b,SAAUX,EACVwD,YAAY,WAEd,kBAAC,UAAD,CACElE,YAAaA,EACbsB,iBAAiB,gBACjBC,iBAAiB,gBACjBC,gBAAgB,eAChBC,oBA3FY,SAACC,GAC3BzB,EAAeyB,MA4FH,kBAACnF,GAAA,EAAD,CAAKd,UAAU,oBACb,kBAACqF,GAAA,EAAKI,QAAN,CAAcC,UAAQ,EACtBC,KAAK,OACLtW,KAAK,MACL+V,MAAOrf,EAAcw3B,IACrB3X,SAAUX,EACVwD,YAAY,kBAEd,kBAAC3H,GAAA,EAAD,CAAKd,UAAU,4CACb1L,GAAW,kBAAC6L,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA5EvB,SAAC5S,GAC7B,IAAI+S,EAAiB/B,EAAY2B,oBAC7BK,EAASC,KAAYC,wBAAaH,IACtC,GAAIvgB,EAAcF,GAAI,CACpB,IAAI04B,EAAiB,CACnB14B,GAAIE,EAAcF,GAClB8E,MAAO5E,EAAc4E,MACrBZ,MAAOwJ,EAAOxJ,MACdoC,YAAaoa,EACbgX,IAAKhqB,EAAOgqB,IACZC,YAAaz3B,EAAcy3B,YAC3BxqB,gBAAiB,GACjBoC,kBAAmB,IAErBkpB,EAAkBC,OACb,CAEL,IAAIC,EAAmB,CACrB34B,GAAI44B,gBACJ9zB,MAAOyzB,EAAW,EAClBr0B,MAAOwJ,EAAOxJ,MACdoC,YAAaoa,EACbgX,IAAKhqB,EAAOgqB,IACZC,YAAa,IAAIrkB,KACjBnG,gBAAiB,GACjBoC,kBAAmB,IAErBipB,EAAoBG,MAiDG,UACZlqB,GAAW,kBAAC6L,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GAC9C,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPF,yBC9BbhB,iBA5FyD,SAAC,GAGlE,IAFL0O,EAEI,EAFJA,MAEI,KADJjpB,QAEkBwa,qBAAW1B,IAIfE,oBAFZugB,EAHE,EAGFA,kBACAU,EAJE,EAIFA,qBAJE,EAMsCxf,mBAAS,IAAIoe,IANnD,oBAMGv3B,EANH,KAMkBm4B,EANlB,OAOoBhf,oBAAS,GAP7B,oBAOGlJ,EAPH,KAOS2oB,EAPT,OAQwBzf,wBAA6B9a,GARrD,oBAQG+gB,EARH,KAQWyZ,EARX,KAUJvf,qBAAU,WACJqO,EAAMC,OAAO9nB,IACfm4B,EAAkBtQ,EAAMC,OAAO9nB,IAAIP,MAAK,SAAAS,GACtCm4B,EAAiBn4B,QAGpB,CAACi4B,EAAmBtQ,EAAMC,OAAO9nB,KASpC,OACE,kBAACgb,GAAA,EAAD,CAAWqC,MAAO,CAAEiK,UAAW,SAC7B,kBAAC1M,GAAA,EAAD,KACE,kBAACA,GAAA,EAAKf,OAAN,yBAAwB3Z,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAe4E,OACrC,kBAACmW,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKwE,GAAI,IACP,mCAAKxf,QAAL,IAAKA,OAAL,EAAKA,EAAegE,SAGxB,kBAAC+W,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKwE,GAAI,IACNxf,GACCA,EAAcoG,aACd4oB,aAAOhvB,EAAcoG,gBAI/B,kBAACsU,GAAA,EAAD,KACE,kBAACA,GAAA,EAAKf,OAAN,mBACA,kBAAC,KAAD,CAAM2D,GAAE,6BAAwBtd,EAAcF,KAC5C,kBAACsa,GAAA,EAAD,CAAQC,QAAQ,WAAhB,kBAEF,kBAACwB,GAAA,EAAD,KACG7b,GACCA,EAAciN,iBACdjN,EAAciN,gBAAgBe,KAAI,SAAC8qB,GAAD,OAChC,kBAACjd,GAAA,EAAUE,KAAX,CAAgBpB,IAAKme,EAASh5B,IAC5B,kBAAC4a,GAAA,EAAD,KACE,kBAACA,GAAA,EAAKf,OAAN,eAAqBmf,EAASnB,OAC9B,kBAACjd,GAAA,EAAKf,OAAN,gBAAsBmf,EAASjB,QAC/B,kBAACnd,GAAA,EAAK2C,KAAN,kBACayb,EAASlB,UAEtB,kBAACld,GAAA,EAAK2C,KAAN,oBACeyb,EAAShB,YAExB,kBAAC,KAAD,CACExa,GAAE,8BAAyBtd,EAAcF,GAAvC,YAA6Cg5B,EAASh5B,KAExD,uBAAGma,UAAU,aAAakD,MAAO,CAACC,MAAO,WAG3C,kBAAChD,GAAA,EAAD,CAAQ+C,MAAO,CAAC4W,gBAAiB,QAAS3W,MAAO,OAC/C9T,KAAMwvB,EAASh5B,GACfsgB,QAAS,SAACkI,GACNuQ,EAAUvQ,EAAEyQ,cAAczvB,MAC1BsvB,GAAQ,KAER,uBAAG3e,UAAU,cAAckD,MAAO,CAACC,MAAO,kBAQ5D,kBAAChD,GAAA,EAAD,CAAQ4e,SA/DU,WAClBJ,GAAQ,GACLxZ,GACCuZ,EAAqBvZ,KA4DzB,WACCnP,GACC,uCCrFKgpB,GAER,SAAC,GAAwB,IAAtBtR,EAAqB,EAArBA,MAAqB,KAAdjpB,QACKwa,qBAAW1B,IAKfE,oBAHZugB,EAHyB,EAGzBA,kBACAiB,EAJyB,EAIzBA,mBACAC,EALyB,EAKzBA,qBALyB,EAOehgB,mBAAS,IAAIoe,IAP5B,oBAOpBv3B,EAPoB,KAOLm4B,EAPK,OAQKhf,mBAAS,IAAIue,IARlB,oBAQpB0B,EARoB,KAQVC,EARU,OASGlgB,oBAAS,GATZ,oBASpB5K,EAToB,KASXoV,EATW,KAW3BrK,qBAAU,WACJqO,EAAMC,OAAO0R,SACf3V,GAAW,GACXsU,EAAkBtQ,EAAMC,OAAO0R,QAC5B/5B,MAAK,SAAAmU,GAEJ,GADAykB,EAAiB,IAAIZ,GAAoB7jB,IACrCiU,EAAMC,OAAO2R,OAAQ,CACvB,IAAIlsB,EAAUqG,EAASzG,gBAAgBmF,MACrC,SAAAtC,GAAC,OAAIA,EAAEhQ,KAAO6nB,EAAMC,OAAO2R,UAEzBlsB,GACFgsB,EAAYhsB,OAIjBsT,SAAQ,kBAAMgD,GAAW,SAE7B,CAACsU,EAAmBtQ,EAAMC,OAAO0R,OAAQ3R,EAAMC,OAAO2R,SA2BzD,OACE,kBAACze,GAAA,EAAD,CAAWqC,MAAO,CAAEiK,UAAW,SAC7B,kBAAC1M,GAAA,EAAD,KACE,kBAACA,GAAA,EAAKf,OAAN,yBAAwB3Z,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAe4E,OACrC,kBAACmW,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKwE,GAAI,IACP,mCAAKxf,QAAL,IAAKA,OAAL,EAAKA,EAAegE,SAGxB,kBAAC+W,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKwE,GAAI,IACNxf,GACCA,EAAcoG,aACd4oB,aAAOhvB,EAAeoG,gBAKhC,kBAACsU,GAAA,EAAD,KACG0e,EAASt5B,GACR,kBAAC4a,GAAA,EAAKf,OAAN,kBAEA,kBAACe,GAAA,EAAKf,OAAN,sBAEE,kBAAC2F,GAAA,EAAD,KACE,kBAACA,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOtW,KAAK,QAAQoZ,YAAY,QAAQrD,MAAO+Z,EAASzB,QAC3E,kBAACrY,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOtW,KAAK,SAASoZ,YAAY,SAASrD,MAAO+Z,EAASvB,SAC7E,kBAACvY,GAAA,EAAKI,QAAN,CAAc1I,GAAG,WAAW1N,KAAK,WAAWoZ,YAAY,YAAYrD,MAAS+Z,EAASxB,SACnFjV,KAAQ,IACX,kBAACrD,GAAA,EAAKG,MAAN,oBACA,kBAACH,GAAA,EAAKI,QAAN,CAAc1I,GAAG,SAAS1N,KAAK,cAC7B,4BAAQ+V,MAAM,UAAd,UACA,4BAAQA,MAAM,OAAd,OACA,4BAAQA,MAAM,SAAd,SACA,4BAAQA,MAAM,WAAd,WACA,4BAAQA,MAAM,gBAAd,kBACA,4BAAQA,MAAM,aAAd,iBAEA9Q,GACF,kBAAC6L,GAAA,EAAD,CAAQwF,KAAK,SAAS3F,UAAU,cAAc+e,SAhE5B,SAACxrB,GAC7B,GAAI4rB,EAASt5B,GAAI,CAEf,IAAI05B,EAAY,CACd15B,GAAIs5B,EAASt5B,GACb63B,MAAOnqB,EAAOmqB,MACdE,OAAQrqB,EAAOqqB,OACfD,SAAUpqB,EAAOoqB,SACjBE,WAAYtqB,EAAOsqB,WACnBC,gBAAiB/3B,EAAcF,IAEjCo5B,EAAmBM,OACd,CACL,IAAIC,EAAc,CAChB35B,GAAI44B,OACJf,MAAOnqB,EAAOmqB,MACdE,OAAQrqB,EAAOqqB,OACfD,SAAUpqB,EAAOoqB,SACjBE,WAAYtqB,EAAOsqB,WACnBC,gBAAiB/3B,EAAcF,IAEjCq5B,EAAqBM,MA2Cb,cClGDC,GAAb,sCACE55B,GAAa,GADf,KAEE8E,MAAgB,EAFlB,KAGEH,MAAgB,GAHlB,KAIEC,KAAa,IAAI0O,KAJnB,KAKExP,WAAqB,GALvB,KAMEvE,IAAc,GANhB,KAOEmE,QAAkB,GAPpB,KAQEX,WAAqB,GARvB,KASEwY,WAAqB,GATvB,KAUEsU,iBAA2B,EAV7B,KAWEC,iBAA2B,GCbvB+J,GAAgC,IAAID,GACpC3b,GAAgC,GAsLvB6b,GApLqD,SAAC,GAC9C,IAArBjS,EAAoB,EAApBA,MAAoB,KAAbjpB,QACWwa,qBAAW1B,IACkCW,aAAxD+W,EAFa,EAEbA,WAAYC,EAFC,EAEDA,gBAAiBlqB,EAFhB,EAEgBA,cAFhB,EAGwBkU,mBAAS4E,IAHjC,oBAGbqR,EAHa,KAGGC,EAHH,OAIsBlW,mBAASwgB,IAJ/B,oBAIbE,EAJa,KAIEC,EAJF,OAKkB3gB,oBAAS,GAL3B,oBAKb4gB,EALa,KAKAC,EALA,KAOpB1gB,qBAAU,WAWLqO,EAAMC,OAAO5iB,UAVG,qBAAA0I,EAAAY,OAAA,kEAAAZ,EAAA,MACOyhB,EAAgBxH,EAAMC,OAAO5iB,WADpC,cACbkO,EADa,SAGfmc,EAAkBnc,GAHH,WAAAxF,EAAA,MAKEwhB,EAAWvH,EAAMC,OAAO5iB,WAL1B,QAKbiN,EALa,SAOf6nB,EAAiB7nB,GAPF,qCAWjB4R,KAED,CAACsL,EAAiBD,EAAYvH,EAAMC,OAAO5iB,SAAUqqB,IAExD,IAsBM4K,EAA0B,SAACz4B,GAC/B,GAAG4tB,GAAkB5tB,EAAS,CAC5ByD,EAAc0iB,EAAMC,OAAO5iB,SAAUxD,EAAU,GAC/C,IAAI04B,EAAY9K,EAAephB,KAAI,SAAA0e,GAAI,aACrC,UAAAA,EAAK4C,eAAL,eAAc9tB,YAAaA,EAA3B,gBACKkrB,EADL,CACWxnB,cAAe,IACzBwnB,KAEH2C,EAAkB6K,KAGhBC,EAA4B,SAAC34B,GAEjC,GADAyD,EAAc0iB,EAAMC,OAAO5iB,SAAUxD,EAAU,GAC5C4tB,GAAkB5tB,EAAS,CAC5B,IAAI04B,EAAY9K,EAAephB,KAAI,SAAA0e,GAAI,aACrC,UAAAA,EAAK4C,eAAL,eAAc9tB,YAAaA,EAA3B,gBACKkrB,EADL,CACWxnB,cAAe,IACzBwnB,KAEH2C,EAAkB6K,KAGhBE,EAA4B,SAAC54B,GAEjC,GADAyD,EAAc0iB,EAAMC,OAAO5iB,SAAUxD,EAAU,GAC5C4tB,GAAkB5tB,EAAS,CAC5B,IAAI04B,EAAY9K,EAAephB,KAAI,SAAA0e,GAAI,aACrC,UAAAA,EAAK4C,eAAL,eAAc9tB,YAAaA,EAA3B,gBACKkrB,EADL,CACWxnB,cAAe,IACzBwnB,KAEH2C,EAAkB6K,KAMtB,OACE,kBAACpf,GAAA,EAAD,CAAWb,UAAU,QACnB,kBAACc,GAAA,EAAD,KACE,4BAAI,0BAAMoC,MAAO,CAACC,MAAO,QAArB,iBAAqCyc,QAArC,IAAqCA,OAArC,EAAqCA,EAAej1B,MAApD,eAAJ,sBAA6Fi1B,QAA7F,IAA6FA,OAA7F,EAA6FA,EAAexe,aAE9G,kBAACN,GAAA,EAAD,KACE,wBAAId,UAAU,qBAAd,SAAyC,IAAI7G,KAAJ,OAASymB,QAAT,IAASA,OAAT,EAASA,EAAen1B,MAAMuZ,cAAcC,UAAU,EAAG,KAClG,kBAACoB,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,SAASgC,gBAAgB,EACzD1c,KAAK,SAASuW,SAXI,SAACV,GACzB6a,EAAe7a,EAAMC,OAAOpK,aAY1B,kBAAC+F,GAAA,EAAD,KACE,wBAAId,UAAU,qBAAd,sBAA+C4f,QAA/C,IAA+CA,OAA/C,EAA+CA,EAAej2B,YAC9D,kBAAC,KAAD,CAAM0Z,GAAE,4BAAgBuc,QAAhB,IAAgBA,OAAhB,EAAgBA,EAAeh3B,aACrC,kBAACuX,GAAA,EAAD,wBAGJ,kBAACiN,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACtN,UAAU,QAChC,+BACE,4BACE,iCACA,yCACA,oCACA,qCACA,wCACA,yCACC8f,GACD,2CAIJ,sCACG3K,QADH,IACGA,OADH,EACGA,EAAgB5U,QAAQ/M,MAAK,SAACC,EAAGC,GAAO,IAAD,EAC5B,OAAID,EAAE4hB,QAAQhgB,UAAU8B,cAAgBzD,EAAE2hB,QAAQhgB,UAAU8B,cAAsB,GAC1E,UAAA1D,EAAE4hB,eAAF,eAAWhgB,UAAU8B,eAAgBzD,EAAE2hB,QAAQhgB,UAAU8B,eAAuB,EAEjF1D,EAAE4hB,QAAQ/f,SAAS6B,cAAgBzD,EAAE2hB,QAAQ/f,SAAS6B,cAAsB,GAClE,KAG5BpD,KAAI,SAACuhB,EAAYxK,GAAb,OACH,wBAAIpK,IAAKoK,EAAO9K,UAAS,UAAkC,IAA7BsV,EAAWrqB,cAAsB,eAAiB,mBAC9E,4BAAK6f,EAAQ,GACb,4BAAKwK,EAAWD,QAAQhgB,UAAxB,MAAsCigB,EAAWD,QAAQ/f,UACzD,4BAAKggB,EAAWD,QAAQ9f,MACxB,4BAAK+f,EAAWD,QAAQjtB,OACxB,4BACgC,IAA7BktB,EAAWrqB,cAAsB,MAAQ,MAE5C,4BACgC,IAA7BqqB,EAAWrqB,eACV,uBAAG+U,UAAU,sDAAsDmG,QAAS,wBAjG9D,SAAC5e,GAE7B,GADAyD,EAAc0iB,EAAMC,OAAO5iB,SAAUxD,EAAU,GAC5C4tB,GAAkB5tB,EAAS,CAC5B,IAAI04B,EAAY9K,EAAephB,KAAI,SAAA0e,GAAI,aACrC,UAAAA,EAAK4C,eAAL,eAAc9tB,YAAaA,EAA3B,gBACKkrB,EADL,CACWxnB,cAAe,IACzBwnB,KAEH2C,EAAkB6K,IAyF4EG,CAAqB,UAAC9K,EAAWD,eAAZ,aAAC,EAAoB9tB,aAEhG,IAA7B+tB,EAAWrqB,eACV,uBAAG+U,UAAU,sDAAsDmG,QAAS,wBA/G1D,SAAC5e,GAEjC,GADAyD,EAAc0iB,EAAMC,OAAO5iB,SAAUxD,EAAU,GAC5C4tB,GAAkB5tB,EAAS,CAC5B,IAAI04B,EAAY9K,EAAephB,KAAI,SAAA0e,GAAI,aACrC,UAAAA,EAAK4C,eAAL,eAAc9tB,YAAaA,EAA3B,gBACKkrB,EADL,CACWxnB,cAAe,IACzBwnB,KAEH2C,EAAkB6K,IAuG4EI,CAAyB,UAAC/K,EAAWD,eAAZ,aAAC,EAAoB9tB,cAGnIu4B,GACD,4BACgC,IAA7BxK,EAAWrqB,eACV,kBAAC,WAAD,KACA,uBAAG+U,UAAU,oDAAoDmG,QAAS,wBAAM6Z,EAAuB,UAAC1K,EAAWD,eAAZ,aAAC,EAAoB9tB,aAC5H,uBAAGyY,UAAU,iDAAiDmG,QAAS,wBAAM+Z,EAAyB,UAAC5K,EAAWD,eAAZ,aAAC,EAAoB9tB,aAC3H,uBAAGyY,UAAU,iDAAiDmG,QAAS,wBAAMga,EAAyB,UAAC7K,EAAWD,eAAZ,aAAC,EAAoB9tB,cAG/F,IAA7B+tB,EAAWrqB,eACV,kBAAC,WAAD,KACA,uBAAG+U,UAAU,0CACb,uBAAGA,UAAU,iDAAiDmG,QAAS,wBAAM+Z,EAAyB,UAAC5K,EAAWD,eAAZ,aAAC,EAAoB9tB,aAC3H,uBAAGyY,UAAU,iDAAiDmG,QAAS,wBAAMga,EAAyB,UAAC7K,EAAWD,eAAZ,aAAC,EAAoB9tB,cAG/F,IAA7B+tB,EAAWrqB,eACV,kBAAC,WAAD,KACA,uBAAG+U,UAAU,oDAAoDmG,QAAS,wBAAM6Z,EAAuB,UAAC1K,EAAWD,eAAZ,aAAC,EAAoB9tB,aAC5H,uBAAGyY,UAAU,oCACb,uBAAGA,UAAU,iDAAiDmG,QAAS,wBAAMga,EAAyB,UAAC7K,EAAWD,eAAZ,aAAC,EAAoB9tB,cAG/F,IAA7B+tB,EAAWrqB,eACV,kBAAC,WAAD,KACA,uBAAG+U,UAAU,oDAAoDmG,QAAS,wBAAM6Z,EAAuB,UAAC1K,EAAWD,eAAZ,aAAC,EAAoB9tB,aAC5H,uBAAGyY,UAAU,iDAAiDmG,QAAS,wBAAM+Z,EAAyB,UAAC5K,EAAWD,eAAZ,aAAC,EAAoB9tB,aAC3H,uBAAGyY,UAAU,+CAQzB,yBAAKA,UAAU,QACZmV,EAAevf,QAAO,SAAAC,GAAC,OAAsB,IAApBA,EAAE5K,iBAAqBkI,OADnD,OAC+DgiB,EAAehiB,OAD9E,iCChLAusB,GAAgC,IAAID,GACpC3b,GAAgC,GAsLvBwc,GApL8D,SAAC,GACvD,IAArB5S,EAAoB,EAApBA,MAAoB,KAAbjpB,QACWwa,qBAAW1B,IACkCW,aAAxD+W,EAFa,EAEbA,WAAYC,EAFC,EAEDA,gBAAiBlqB,EAFhB,EAEgBA,cAFhB,EAGwBkU,mBAAS4E,IAHjC,oBAGbqR,EAHa,KAGGC,EAHH,OAIsBlW,mBAASwgB,IAJ/B,oBAIbE,EAJa,KAIEC,EAJF,OAKkB3gB,oBAAS,GAL3B,oBAKb4gB,EALa,KAKAC,EALA,KAOpB1gB,qBAAU,WAWLqO,EAAMC,OAAO5iB,UAVG,qBAAA0I,EAAAY,OAAA,kEAAAZ,EAAA,MACOyhB,EAAgBxH,EAAMC,OAAO5iB,WADpC,cACbkO,EADa,SAGfmc,EAAkBnc,GAHH,WAAAxF,EAAA,MAKEwhB,EAAWvH,EAAMC,OAAO5iB,WAL1B,QAKbiN,EALa,SAOf6nB,EAAiB7nB,GAPF,qCAWjB4R,KAED,CAACsL,EAAiBD,EAAYvH,EAAMC,OAAO5iB,SAAUqqB,IAExD,IAsBM4K,EAA0B,SAACz4B,GAC/B,GAAG4tB,GAAkB5tB,EAAS,CAC5ByD,EAAc0iB,EAAMC,OAAO5iB,SAAUxD,EAAU,GAC/C,IAAI04B,EAAY9K,EAAephB,KAAI,SAAA0e,GAAI,aACrC,UAAAA,EAAK4C,eAAL,eAAc9tB,YAAaA,EAA3B,gBACKkrB,EADL,CACWxnB,cAAe,IACzBwnB,KAEH2C,EAAkB6K,KAGhBC,EAA4B,SAAC34B,GAEjC,GADAyD,EAAc0iB,EAAMC,OAAO5iB,SAAUxD,EAAU,GAC5C4tB,GAAkB5tB,EAAS,CAC5B,IAAI04B,EAAY9K,EAAephB,KAAI,SAAA0e,GAAI,aACrC,UAAAA,EAAK4C,eAAL,eAAc9tB,YAAaA,EAA3B,gBACKkrB,EADL,CACWxnB,cAAe,IACzBwnB,KAEH2C,EAAkB6K,KAGhBE,EAA4B,SAAC54B,GAEjC,GADAyD,EAAc0iB,EAAMC,OAAO5iB,SAAUxD,EAAU,GAC5C4tB,GAAkB5tB,EAAS,CAC5B,IAAI04B,EAAY9K,EAAephB,KAAI,SAAA0e,GAAI,aACrC,UAAAA,EAAK4C,eAAL,eAAc9tB,YAAaA,EAA3B,gBACKkrB,EADL,CACWxnB,cAAe,IACzBwnB,KAEH2C,EAAkB6K,KAMtB,OACE,kBAACpf,GAAA,EAAD,CAAWb,UAAU,QACnB,kBAACc,GAAA,EAAD,KACE,4BAAI,0BAAMoC,MAAO,CAACC,MAAO,QAArB,iBAAqCyc,QAArC,IAAqCA,OAArC,EAAqCA,EAAej1B,MAApD,eAAJ,sBAA6Fi1B,QAA7F,IAA6FA,OAA7F,EAA6FA,EAAexe,aAE9G,kBAACN,GAAA,EAAD,KACE,wBAAId,UAAU,qBAAd,SAAyC,IAAI7G,KAAJ,OAASymB,QAAT,IAASA,OAAT,EAASA,EAAen1B,MAAMuZ,cAAcC,UAAU,EAAG,KAClG,kBAACoB,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,SAASgC,gBAAgB,EACzD1c,KAAK,SAASuW,SAXI,SAACV,GACzB6a,EAAe7a,EAAMC,OAAOpK,aAY1B,kBAAC+F,GAAA,EAAD,KACE,wBAAId,UAAU,qBAAd,sBAA+C4f,QAA/C,IAA+CA,OAA/C,EAA+CA,EAAej2B,YAC9D,kBAAC,KAAD,CAAM0Z,GAAE,4BAAgBuc,QAAhB,IAAgBA,OAAhB,EAAgBA,EAAeh3B,aACrC,kBAACuX,GAAA,EAAD,wBAGJ,kBAACiN,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACtN,UAAU,QAChC,+BACE,4BACE,iCACA,yCACA,oCACA,qCACA,wCACA,yCACC8f,GACD,2CAIJ,sCACG3K,QADH,IACGA,OADH,EACGA,EAAgB5U,QAAQ/M,MAAK,SAACC,EAAGC,GAAO,IAAD,EAC5B,OAAID,EAAE4hB,QAAQhgB,UAAU8B,cAAgBzD,EAAE2hB,QAAQhgB,UAAU8B,cAAsB,GAC1E,UAAA1D,EAAE4hB,eAAF,eAAWhgB,UAAU8B,eAAgBzD,EAAE2hB,QAAQhgB,UAAU8B,eAAuB,EAEjF1D,EAAE4hB,QAAQ/f,SAAS6B,cAAgBzD,EAAE2hB,QAAQ/f,SAAS6B,cAAsB,GAClE,KAG5BpD,KAAI,SAACuhB,EAAYxK,GAAb,OACH,wBAAIpK,IAAKoK,EAAO9K,UAAS,UAAkC,IAA7BsV,EAAWrqB,cAAsB,eAAiB,mBAC9E,4BAAK6f,EAAQ,GACb,4BAAKwK,EAAWD,QAAQhgB,UAAxB,MAAsCigB,EAAWD,QAAQ/f,UACzD,4BAAKggB,EAAWD,QAAQ9f,MACxB,4BAAK+f,EAAWD,QAAQjtB,OACxB,4BACgC,IAA7BktB,EAAWrqB,cAAsB,MAAQ,MAE5C,4BACgC,IAA7BqqB,EAAWrqB,eACV,uBAAG+U,UAAU,sDAAsDmG,QAAS,wBAjG9D,SAAC5e,GAE7B,GADAyD,EAAc0iB,EAAMC,OAAO5iB,SAAUxD,EAAU,GAC5C4tB,GAAkB5tB,EAAS,CAC5B,IAAI04B,EAAY9K,EAAephB,KAAI,SAAA0e,GAAI,aACrC,UAAAA,EAAK4C,eAAL,eAAc9tB,YAAaA,EAA3B,gBACKkrB,EADL,CACWxnB,cAAe,IACzBwnB,KAEH2C,EAAkB6K,IAyF4EG,CAAqB,UAAC9K,EAAWD,eAAZ,aAAC,EAAoB9tB,aAEhG,IAA7B+tB,EAAWrqB,eACV,uBAAG+U,UAAU,sDAAsDmG,QAAS,wBA/G1D,SAAC5e,GAEjC,GADAyD,EAAc0iB,EAAMC,OAAO5iB,SAAUxD,EAAU,GAC5C4tB,GAAkB5tB,EAAS,CAC5B,IAAI04B,EAAY9K,EAAephB,KAAI,SAAA0e,GAAI,aACrC,UAAAA,EAAK4C,eAAL,eAAc9tB,YAAaA,EAA3B,gBACKkrB,EADL,CACWxnB,cAAe,IACzBwnB,KAEH2C,EAAkB6K,IAuG4EI,CAAyB,UAAC/K,EAAWD,eAAZ,aAAC,EAAoB9tB,cAGnIu4B,GACD,4BACgC,IAA7BxK,EAAWrqB,eACV,kBAAC,WAAD,KACA,uBAAG+U,UAAU,oDAAoDmG,QAAS,wBAAM6Z,EAAuB,UAAC1K,EAAWD,eAAZ,aAAC,EAAoB9tB,aAC5H,uBAAGyY,UAAU,iDAAiDmG,QAAS,wBAAM+Z,EAAyB,UAAC5K,EAAWD,eAAZ,aAAC,EAAoB9tB,aAC3H,uBAAGyY,UAAU,iDAAiDmG,QAAS,wBAAMga,EAAyB,UAAC7K,EAAWD,eAAZ,aAAC,EAAoB9tB,cAG/F,IAA7B+tB,EAAWrqB,eACV,kBAAC,WAAD,KACA,uBAAG+U,UAAU,0CACb,uBAAGA,UAAU,iDAAiDmG,QAAS,wBAAM+Z,EAAyB,UAAC5K,EAAWD,eAAZ,aAAC,EAAoB9tB,aAC3H,uBAAGyY,UAAU,iDAAiDmG,QAAS,wBAAMga,EAAyB,UAAC7K,EAAWD,eAAZ,aAAC,EAAoB9tB,cAG/F,IAA7B+tB,EAAWrqB,eACV,kBAAC,WAAD,KACA,uBAAG+U,UAAU,oDAAoDmG,QAAS,wBAAM6Z,EAAuB,UAAC1K,EAAWD,eAAZ,aAAC,EAAoB9tB,aAC5H,uBAAGyY,UAAU,oCACb,uBAAGA,UAAU,iDAAiDmG,QAAS,wBAAMga,EAAyB,UAAC7K,EAAWD,eAAZ,aAAC,EAAoB9tB,cAG/F,IAA7B+tB,EAAWrqB,eACV,kBAAC,WAAD,KACA,uBAAG+U,UAAU,oDAAoDmG,QAAS,wBAAM6Z,EAAuB,UAAC1K,EAAWD,eAAZ,aAAC,EAAoB9tB,aAC5H,uBAAGyY,UAAU,iDAAiDmG,QAAS,wBAAM+Z,EAAyB,UAAC5K,EAAWD,eAAZ,aAAC,EAAoB9tB,aAC3H,uBAAGyY,UAAU,+CAQzB,yBAAKA,UAAU,QACZmV,EAAevf,QAAO,SAAAC,GAAC,OAAsB,IAApBA,EAAE5K,iBAAqBkI,OADnD,OAC+DgiB,EAAehiB,OAD9E,iCClLA2Q,GAAgB,CACpB/Z,MAAO,GACPqC,SAAU,IAAI+M,KAAKA,KAAK4K,MAAQ,SAAkBC,cAAcC,UAAU,EAAG,IAC7EtZ,MAAO,EACP0B,WAAY,QA8JCk0B,GA3JS,SAAC,GAAyB,IAAxBx1B,EAAuB,EAAvBA,SAAU0O,EAAa,EAAbA,QAC5B5G,EAAYoM,qBAAW1B,IADkB,EAEX1K,EAAUsL,gBAAvCjS,EAFwC,EAExCA,WAAYa,EAF4B,EAE5BA,cACZ2J,EAAc7D,EAAUoC,WAAxByB,WAHwC,EAInBwI,mBAAS4E,IAJU,oBAIxCvQ,EAJwC,KAIhC4Q,EAJgC,OAKXjF,oBAAS,GALE,oBAKxCpK,EALwC,KAK5BsP,EAL4B,OAMTlF,mBAASmF,eAAYC,eANZ,oBAMxCC,EANwC,KAM3BC,EAN2B,KAW/CnF,qBAAU,WACR,GAAG5F,EAAS,CACV0K,EAAU,CACRpa,MAAO0P,EAAQ1P,MACfqC,SAAU,IAAI+M,KAAKA,KAAK4K,MAAQ,QAAiBC,cAAcC,UAAU,EAAG,IAC5EtZ,MAAO8O,EAAQ9O,MACf0B,WAAYoN,EAAQpN,aAEtB,IAAMoY,EAAiBC,KAAYjL,EAAQtN,aACrCwY,EAAQC,gBAAaC,qBACzBJ,EAAeK,cACfL,EAAeM,WAEjBP,EAAeH,eAAYW,kBAAkBL,OAE9C,CAAClL,IAEJ,IAAMwL,EAAe,SAACC,GAAW,IAAD,EACNA,EAAMC,OAAtB9V,EADsB,EACtBA,KAAM+V,EADgB,EAChBA,MACdjB,EAAU,gBAAK5Q,EAAN,gBAAelE,EAAO+V,MA8BjC,OACE,kBAACvE,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,CAAMC,YAAU,GACd,kBAACxE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAAS7R,EAAOxJ,MAChB6b,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACnB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,SACLtW,KAAK,QACL+V,MAAS7R,EAAO5I,MAChBib,SAAUX,KAGhB,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,aAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,WACL+V,MAAS7R,EAAOnH,SAChBwZ,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACR3I,GAAG,SACH1N,KAAK,aACL+V,MAAS7R,EAAOlH,WAChBuZ,SAAUX,EACVwD,YAAY,QACZ,6CACA,+CACA,2CAIR,kBAAC,UAAD,CACElE,YAAaA,EACbsB,iBAAiB,gBACjBC,iBAAiB,gBACjBC,gBAAgB,eAChBC,oBA/HoB,SAACC,GAC3BzB,EAAeyB,MAgIX,kBAACnF,GAAA,EAAD,CAAKd,UAAU,2CAEbzM,EAAOxJ,OAASwa,EAAY2B,qBAAuB3S,EAAO5I,QACzDmK,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1G5B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN,IAAIC,EAAiB/B,EAAY2B,oBAEjC,GADA9B,GAAc,GACX7Q,EAAOxJ,MAAMoJ,OAAS,GAAKmT,GAAkB/S,EAAO5I,MAAM,CAC3D,IAAI4b,EAASC,KAAYC,wBAAaH,IAEnC7M,GACD1M,EAAc0M,EAAQ5T,GAAI0N,EAAOxJ,MAFzB,GAEqCwc,EAAQhT,EAAO5I,MAAMuiB,WAClE3Z,EAAOnH,SAAUmH,EAAOlH,YACvBqa,SAAQ,WACPtC,GAAc,MAEhB1N,MAGAxK,EAAWnB,EAAUwI,EAAOxJ,MAVpB,GAUgCwc,EAAQhT,EAAO5I,MAAMuiB,WAC7D3Z,EAAOnH,SAAUmH,EAAOlH,YACvBqa,SAAQ,WACPtC,GAAc,MAEhB1N,QAoFiB,UACd5B,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBChJVwgB,GATgB,SAAC,GAA0B,IAAzBz2B,EAAwB,EAAxBA,MAAOoC,EAAiB,EAAjBA,YACtC,OACE,kBAAC,aAAD,KACE,4BAAKpC,GACJoC,GAAe4oB,aAAO5oB,KCJvB2X,GAAgB,CACpB/Z,MAAO,GACP3E,IAAK,GACLgH,SAAU,IAAI+M,KAAKA,KAAK4K,MAAQ,SAAkBC,cAAcC,UAAU,EAAG,IAC7EtZ,MAAO,EACP0B,WAAY,QA2JCo0B,GAxJa,SAAC,GAAyB,IAAxB11B,EAAuB,EAAvBA,SAAU0O,EAAa,EAAbA,QAChC5G,EAAYoM,qBAAW1B,IADsB,EAEb1K,EAAUsL,gBAAxCjS,EAF2C,EAE3CA,WAAYa,EAF+B,EAE/BA,cACb2J,EAAc7D,EAAUoC,WAAxByB,WAH4C,EAIvBwI,mBAAS4E,IAJc,oBAI5CvQ,EAJ4C,KAIpC4Q,EAJoC,OAKfjF,oBAAS,GALM,oBAK5CpK,EAL4C,KAKhCsP,EALgC,KAOnD/E,qBAAU,WACL5F,GACD0K,EAAU,CACRpa,MAAO0P,EAAQ1P,MACf3E,IAAKqU,EAAQrU,IACbgH,SAAU,IAAI+M,KAAKA,KAAK4K,MAAQ,QAAiBC,cAAcC,UAAU,EAAG,IAC5EtZ,MAAO8O,EAAQ9O,MACf0B,WAAYoN,EAAQpN,eAGvB,CAACoN,IACJ,IAAMwL,EAAe,SAACC,GAAW,IAAD,EACNA,EAAMC,OAAtB9V,EADsB,EACtBA,KAAM+V,EADgB,EAChBA,MACdjB,EAAU,gBAAK5Q,EAAN,gBAAelE,EAAO+V,MA4BjC,OACE,kBAACvE,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,CAAMC,YAAU,GACd,kBAACxE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAAS7R,EAAOxJ,MAChB6b,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,MACL+V,MAAS7R,EAAOnO,IAChBwgB,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACnB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,SACLtW,KAAK,QACL+V,MAAS7R,EAAO5I,MAChBib,SAAUX,KAGhB,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,aAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,WACL+V,MAAS7R,EAAOnH,SAChBwZ,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACR3I,GAAG,SACH1N,KAAK,aACL+V,MAAS7R,EAAOlH,WAChBuZ,SAAUX,EACVwD,YAAY,QACZ,6CACA,+CACA,2CAIR,kBAAC3H,GAAA,EAAD,CAAKd,UAAU,2CAEbzM,EAAOxJ,OAASwJ,EAAOnO,KAAOmO,EAAO5I,QACpCmK,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QAjH5B,SAACjB,GAIpB,GAHAA,EAAMkB,iBACNlB,EAAMmB,kBACNjC,GAAc,GACX7Q,EAAOxJ,MAAMoJ,OAAS,GAAKI,EAAOnO,IAAI+N,OAAS,GAAMI,EAAO5I,MAAM,CAEhE8O,GACD1M,EAAc0M,EAAQ5T,GAAI0N,EAAOxJ,MAAOwJ,EAAOnO,IAFnC,GAEiDmO,EAAO5I,MAAMuiB,WAC1E3Z,EAAOnH,SAAUmH,EAAOlH,YACvBqa,SAAQ,WACPtC,GAAc,MAEhB1N,MAGAxK,EAAWnB,EAAUwI,EAAOxJ,MAAOwJ,EAAOnO,IAV9B,GAU4CmO,EAAO5I,MAAMuiB,WACrE3Z,EAAOnH,SAAUmH,EAAOlH,YACvBqa,SAAQ,WACPtC,GAAc,MAEhB1N,QA6FiB,UACd5B,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBChJnB8D,GAAgB,CACpB/Z,MAAO,GACPqC,SAAU,IAAI+M,KAAKA,KAAK4K,MAAQ,QAAiBC,cAAcC,UAAU,EAAG,IAC5EtZ,MAAO,EACP0B,WAAY,QAGRgtB,GAAY,CAChBC,KAAM,EACNvL,QAAS,OACTwL,cAAe,SACfC,WAAY,SACZC,QAAS,OACTC,YAAa,EACbC,aAAc,EACdC,YAAa,UACbC,YAAa,SACbC,gBAAiB,UACjB3W,MAAO,UACP4W,QAAS,OACTC,WAAY,2BAGRC,GAAc,CAClBL,YAAa,WAGTM,GAAc,CAClBN,YAAa,WAGTO,GAAc,CAClBP,YAAa,WAyKA8G,GAtKc,SAAC,GAAgB,IAAf31B,EAAc,EAAdA,SACvB8H,EAAYoM,qBAAW1B,IACtB9Q,EAAqBoG,EAAUsL,gBAA/B1R,iBACAiK,EAAc7D,EAAUoC,WAAxByB,WAHoC,EAIfwI,mBAAS4E,IAJM,oBAIpCvQ,EAJoC,KAI5B4Q,EAJ4B,OAKnBjF,mBAAS,MALU,oBAKpCjV,EALoC,KAK9B02B,EAL8B,OAMPzhB,oBAAS,GANF,oBAMpCpK,EANoC,KAMxBsP,EANwB,OAcvCkW,aAAY,CACdC,OAAQ,iCACRC,SAAU,EACVC,OAAQ,SAAAC,GAENiG,EAAQjG,EAAc,OAVxBC,EATyC,EASzCA,aACAC,EAVyC,EAUzCA,cACAC,EAXyC,EAWzCA,aACAC,EAZyC,EAYzCA,aACAC,EAbyC,EAazCA,aAWI7X,EAAQ8X,mBAAQ,kCACjB3B,GADiB,GAEhBwB,EAAeZ,GAAc,GAFb,GAGhBa,EAAeZ,GAAc,GAHb,GAIhBa,EAAeZ,GAAc,MAC/B,CACFU,EACAE,EACAD,IAGI7V,EAAe,SAACC,GAAW,IAAD,EACNA,EAAMC,OAAtB9V,EADsB,EACtBA,KAAM+V,EADgB,EAChBA,MACdjB,EAAU,gBAAK5Q,EAAN,gBAAelE,EAAO+V,MAiBjC,OACE,kBAACvE,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,CAAMC,YAAU,GACd,kBAACxE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAAS7R,EAAOxJ,MAChB6b,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACnB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,SACLtW,KAAK,QACL+V,MAAS7R,EAAO5I,MAChBib,SAAUX,KAGhB,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,aAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,WACL+V,MAAS7R,EAAOnH,SAChBwZ,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACR3I,GAAG,SACH1N,KAAK,aACL+V,MAAS7R,EAAOlH,WAChBuZ,SAAUX,EACVwD,YAAY,eACZ,6CACA,+CACA,2CAIR,wBAASkS,EAAa,CAACzX,UACrB,0BAAW0X,KAETC,EACE,sDACA,uFAEJ,kEAEF,kBAAC/Z,GAAA,EAAD,CAAKd,UAAU,cACf,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACnB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAASnb,GAAQA,EAAKoF,SAI5B,kBAACyR,GAAA,EAAD,CAAKd,UAAU,2CAEbzM,EAAOxJ,OAASwJ,EAAO5I,OAASV,IAC/B6K,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA9G5B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACH9S,EAAOxJ,MAAMoJ,OAAS,GAAKI,EAAO5I,OAASV,IAC5Cma,GAAc,GACd3X,EAAiB1B,EAAUwI,EAAOxJ,MAAOwJ,EAAO5I,MAAMuiB,WACtD3Z,EAAOnH,SAAUmH,EAAOlH,WAAYpC,GACnCyc,SAAQ,WACPtC,GAAc,MAEhB1N,OAoGmB,UACd5B,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBC3GV4gB,GA3EmB,SAAC,GAAgB,IAAf71B,EAAc,EAAdA,SAC5B8H,EAAYoM,qBAAW1B,IACtBsjB,EAA6BhuB,EAAUsL,gBAAvC0iB,0BACAnqB,EAAc7D,EAAUoC,WAAxByB,WAHyC,EAItBwI,mBAAS,IAJa,oBAIzCnV,EAJyC,KAIlCqvB,EAJkC,OAKZla,oBAAS,GALG,oBAKzCpK,EALyC,KAK7BsP,EAL6B,OAMVlF,mBAASmF,eAAYC,eANX,oBAMzCC,EANyC,KAM5BC,EAN4B,KA8BhD,OACE,kBAAC3D,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,CAAMC,YAAU,GACd,kBAACxE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAASrb,EACT6b,SAlCc,SAACV,GAAW,IAC5BE,EAAUF,EAAMC,OAAhBC,MACRgU,EAAShU,QAoCL,kBAAC,UAAD,CACEb,YAAaA,EACbsB,iBAAiB,gBACjBC,iBAAiB,gBACjBC,gBAAgB,eAChBC,oBA/CoB,SAACC,GAC3BzB,EAAeyB,MAgDX,kBAACnF,GAAA,EAAD,CAAKd,UAAU,2CAEbjW,GAASwa,EAAY2B,sBACpBpR,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA3C5B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN,IAAIC,EAAiB/B,EAAY2B,oBAC9Bnc,EAAMoJ,OAAS,GAAKmT,IACrBlC,GAAc,GACdyc,EAA0B91B,EAAUhB,EAAOyc,KAAYC,wBAAaH,KACnEI,SAAQ,WACPtC,GAAc,GACd1N,UAkCiB,OACd5B,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCjEnB8D,GAAgB,CACpB/Z,MAAO,GACP3E,IAAK,IAkFQ07B,GA/EmB,SAAC,GAAgB,IAAf/1B,EAAc,EAAdA,SAC5B8H,EAAYoM,qBAAW1B,IACtBwjB,EAA6BluB,EAAUsL,gBAAvC4iB,0BACArqB,EAAc7D,EAAUoC,WAAxByB,WAHyC,EAIpBwI,mBAAS4E,IAJW,oBAIzCvQ,EAJyC,KAIjC4Q,EAJiC,OAKZjF,oBAAS,GALG,oBAKzCpK,EALyC,KAK7BsP,EAL6B,KAO1Ca,EAAe,SAACC,GAAW,IAAD,EACNA,EAAMC,OAAtB9V,EADsB,EACtBA,KAAM+V,EADgB,EAChBA,MACdjB,EAAU,gBAAK5Q,EAAN,gBAAelE,EAAO+V,MAgBjC,OACE,kBAACvE,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,CAAMC,YAAU,GACd,kBAACxE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAAS7R,EAAOxJ,MAChB6b,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,MACL+V,MAAS7R,EAAOnO,IAChBwgB,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,2CAEbzM,EAAOxJ,OAASwJ,EAAOnO,MACtB0P,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QAnD5B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACH9S,EAAOxJ,MAAMoJ,OAAS,GAAKI,EAAOnO,IAAI+N,OAAS,IAChDiR,GAAc,GACd2c,EAA0Bh2B,EAAUwI,EAAOxJ,MAAOwJ,EAAOnO,KACxDshB,SAAQ,WACPtC,GAAc,GACd1N,UA2CiB,OACd5B,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCrEnBqZ,GAAY,CAChBC,KAAM,EACNvL,QAAS,OACTwL,cAAe,SACfC,WAAY,SACZC,QAAS,OACTC,YAAa,EACbC,aAAc,EACdC,YAAa,UACbC,YAAa,SACbC,gBAAiB,UACjB3W,MAAO,UACP4W,QAAS,OACTC,WAAY,2BAGRC,GAAc,CAClBL,YAAa,WAGTM,GAAc,CAClBN,YAAa,WAGTO,GAAc,CAClBP,YAAa,WA8CAoH,GA3CqB,SAAC,GAAgB,IAAfj2B,EAAc,EAAdA,SAE7Bk2B,EADWhiB,qBAAW1B,IACmBY,gBAAzC8iB,4BAF2C,EAS9C3G,aAAY,CACdC,OAAQ,iCACRC,SAAU,EACVC,OAAQ,SAAAC,GAEN,IAAIzwB,EAAOywB,EAAc,GACzBuG,EAA4Bl2B,EAAUd,EAAKoF,KAAMpF,MAXnD0wB,EAJgD,EAIhDA,aACAC,EALgD,EAKhDA,cACAC,EANgD,EAMhDA,aACAC,EAPgD,EAOhDA,aACAC,EARgD,EAQhDA,aAWI7X,EAAQ8X,mBAAQ,kCACjB3B,GADiB,GAEhBwB,EAAeZ,GAAc,GAFb,GAGhBa,EAAeZ,GAAc,GAHb,GAIhBa,EAAeZ,GAAc,MAC/B,CACFU,EACAE,EACAD,IAGF,OACE,wBAASH,EAAa,CAACzX,UACrB,0BAAW0X,KAETC,EACE,sDACA,uFAEJ,mECJSqG,GA7DoB,SAAC,GAAmC,IAAlCC,EAAiC,EAAjCA,qBAAsBx2B,EAAW,EAAXA,MACnDkI,EAAYoM,qBAAW1B,IACtB7S,EAAoBmI,EAAUsL,gBAA9BzT,iBACAgM,EAAc7D,EAAUoC,WAAxByB,WAH6D,EAIpCwI,mBAASvU,GAJ2B,oBAI7D0xB,EAJ6D,KAInDC,EAJmD,OAKhCpd,oBAAS,GALuB,oBAK7DpK,EAL6D,KAKjDsP,EALiD,OAMlClF,oBAAS,GANyB,oBAM7DuM,EAN6D,KAMlDC,EANkD,KAyBpE,OACE,kBAAC7K,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,aACL+V,MAASiX,EACTzW,SAhCO,SAACV,GAAW,IACxBE,EAASF,EAAMC,OAAfC,MACPkX,EAAYlX,GAEVsG,KADCtG,GAASA,IAAUza,SAiChB,kBAACmW,GAAA,EAAD,CAAKd,UAAU,2CACdyL,IAAc3W,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA3B1C,SAACjB,GACpBd,GAAc,GACd1Z,EAAiBy2B,EAAsBjoB,SAASmjB,IAChDjY,GAAc,GACd1N,MAuBmC,WAC5B5B,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCvCVohB,GARiB,SAAC,GAAe,IAAd73B,EAAa,EAAbA,QAChC,OACE,kBAAC,aAAD,KACGA,GAAWwrB,aAAOxrB,KCHnBua,GAAgB,CACpB/Z,MAAO,GACPwC,cAAe,GACfC,YAAa,GACbJ,SAAU,IAAI+M,KAAKA,KAAK4K,MAAQ,QAAiBC,cAAcC,UAAU,EAAG,IAC5EtZ,MAAO,EACP0B,WAAY,aA2KCg1B,GAxKc,SAAC,GAAyB,IAAxBt2B,EAAuB,EAAvBA,SAAU0O,EAAa,EAAbA,QACjC5G,EAAYoM,qBAAW1B,IADuB,EAEN1K,EAAUsL,gBAAhD7R,EAF4C,EAE5CA,eAAgBW,EAF4B,EAE5BA,kBACjByJ,EAAc7D,EAAUoC,WAAxByB,WAH6C,EAIxBwI,mBAAS4E,IAJe,oBAI7CvQ,EAJ6C,KAIrC4Q,EAJqC,OAKhBjF,oBAAS,GALO,oBAK7CpK,EAL6C,KAKjCsP,EALiC,KAOpD/E,qBAAU,WACL5F,GACD0K,EAAU,CACRpa,MAAO0P,EAAQ1P,MACfwC,cAAekN,EAAQlN,cACvBC,YAAaiN,EAAQjN,YACrBJ,SAAU,IAAI+M,KAAKA,KAAK4K,MAAQ,SAAkBC,cAAcC,UAAU,EAAG,IAC7EtZ,MAAO8O,EAAQ9O,MACf0B,WAAYoN,EAAQpN,eAGvB,CAACoN,IACJ,IAAMwL,EAAe,SAACC,GAAW,IAAD,EACNA,EAAMC,OAAtB9V,EADsB,EACtBA,KAAM+V,EADgB,EAChBA,MACdjB,EAAU,gBAAK5Q,EAAN,gBAAelE,EAAO+V,MA2BjC,OACE,kBAACvE,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,CAAMC,YAAU,GACd,kBAACxE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAAS7R,EAAOxJ,MAChB6b,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,oBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,gBACL+V,MAAS7R,EAAOhH,cAChBqZ,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,kBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,cACL+V,MAAS7R,EAAO/G,YAChBoZ,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACnB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,SACLtW,KAAK,QACL+V,MAAS7R,EAAO5I,MAChBib,SAAUX,KAGhB,kBAAClE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,aAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,WACL+V,MAAS7R,EAAOnH,SAChBwZ,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACR3I,GAAG,SACH1N,KAAK,aACL+V,MAAS7R,EAAOlH,WAChBuZ,SAAUX,EACVwD,YAAY,QACZ,6CACA,+CACA,2CAIR,kBAAC3H,GAAA,EAAD,CAAKd,UAAU,2CAEbzM,EAAOxJ,OAASwJ,EAAOhH,eAAiBgH,EAAO/G,aAAe+G,EAAO5I,QACpEmK,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QAhI5B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACNjC,GAAc,GACX7Q,EAAOxJ,MAAMoJ,OAAS,GAAMI,EAAO5I,QACjC8O,GACDxM,EAAkBwM,EAAQ5T,GAAI0N,EAAOxJ,MAAOwJ,EAAOhH,cAAegH,EAAO/G,YACvE+G,EAAO5I,MAAMuiB,WAAY3Z,EAAOnH,SAAUmH,EAAOlH,YAClDqa,SAAQ,WACPtC,GAAc,MAEhB1N,MAGApK,EAAevB,EAAUwI,EAAOxJ,MAAOwJ,EAAOhH,cAAegH,EAAO/G,YAClE+G,EAAO5I,MAAMuiB,WAAY3Z,EAAOnH,SAAUmH,EAAOlH,YAClDqa,SAAQ,WACPtC,GAAc,MAEhB1N,QA6GiB,UACd5B,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCrGVshB,GA7DY,SAAC,GAA2B,IAA1B30B,EAAyB,EAAzBA,aAAchC,EAAW,EAAXA,MACnCkI,EAAYoM,qBAAW1B,IACtB7Q,EAAYmG,EAAUsL,gBAAtBzR,SACAgK,EAAc7D,EAAUoC,WAAxByB,WAH6C,EAIpBwI,mBAASvU,GAJW,oBAI7C0xB,EAJ6C,KAInCC,EAJmC,OAKhBpd,oBAAS,GALO,oBAK7CpK,EAL6C,KAKjCsP,EALiC,OAMlBlF,oBAAS,GANS,oBAM7CuM,EAN6C,KAMlCC,EANkC,KAyBpD,OACE,kBAAC7K,GAAA,EAAD,KACA,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,aACL+V,MAASiX,EACTzW,SAhCS,SAACV,GAAW,IACxBE,EAASF,EAAMC,OAAfC,MACPkX,EAAYlX,GAEVsG,KADCtG,GAASA,IAAUza,SAiClB,kBAACmW,GAAA,EAAD,CAAKd,UAAU,2CACdyL,IAAc3W,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA3BxC,SAACjB,GACpBd,GAAc,GACd1X,EAASC,EAAcuM,SAASmjB,IAChCjY,GAAc,GACd1N,MAuBiC,WAC5B5B,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCeRuhB,GA7De,SAAC,GAA8B,IAA7B50B,EAA4B,EAA5BA,aAAcP,EAAc,EAAdA,SACtCyG,EAAYoM,qBAAW1B,IACtB3Q,EAAeiG,EAAUsL,gBAAzBvR,YACA8J,EAAc7D,EAAUoC,WAAxByB,WAHmD,EAIpBwI,mBAAS,IAAI/F,KAAK/M,GAAU4X,cAAcC,UAAU,EAAG,KAJnC,oBAInDud,EAJmD,KAItCC,EAJsC,OAKtBviB,oBAAS,GALa,oBAKnDpK,EALmD,KAKvCsP,EALuC,OAMxBlF,oBAAS,GANe,oBAMnDuM,EANmD,KAMxCC,EANwC,KA0B1D,OACE,kBAAC7K,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,CAACqP,KAAK,EAAGC,OAAO,GAAI9S,GAAI,CAAC6S,KAAK,EAAGC,OAAO,GAAI7T,GAAI,GACvD,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,aAIF,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,WACL+V,MAASoc,EACT5b,SAhCiB,SAACV,GAAW,IAChCE,EAASF,EAAMC,OAAfC,MACPqc,EAAerc,GAEbsG,KADCtG,GAASA,IAAUhZ,SAiClB,kBAAC0U,GAAA,EAAD,CAAKd,UAAU,2CACdyL,IAAc3W,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1BxC,SAACjB,GACpBd,GAAc,GACdxX,EAAYD,EAAc60B,GAC1Bpd,GAAc,GACd1N,MAsBiC,WAC5B5B,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCgBR0hB,GA9Da,SAAC,GAAiC,IAAhC/0B,EAA+B,EAA/BA,aAAcG,EAAiB,EAAjBA,YACpC+F,EAAYoM,qBAAW1B,IACtB1Q,EAAkBgG,EAAUsL,gBAA5BtR,eACA6J,EAAc7D,EAAUoC,WAAxByB,WAHoD,EAIfwI,mBAASpS,GAJM,oBAIpD60B,EAJoD,KAIpCC,EAJoC,OAKvB1iB,oBAAS,GALc,oBAKpDpK,EALoD,KAKxCsP,EALwC,OAMzBlF,oBAAS,GANgB,oBAMpDuM,EANoD,KAMzCC,EANyC,KA0B3D,OACE,kBAAC7K,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACf,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACnB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,MACL+V,MAASuc,EACT/b,SAjCoB,SAACV,GAAW,IACnCE,EAASF,EAAMC,OAAfC,MACPwc,EAAkBxc,GAEhBsG,EADCtG,IAAUtY,QAkCT,kBAACgU,GAAA,EAAD,CAAKd,UAAU,2CACdyL,IAAc3W,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA3BxC,SAACjB,GACpBd,GAAc,GACdvX,EAAeF,EAAcg1B,GAC7Bvd,GAAc,GACd1N,MAuBiC,WAC5B5B,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBC6LRhB,iBAtN4D,SAAC,GACrD,IAAD,IAApB0O,EAAoB,EAApBA,MACM7a,GADc,EAAbpO,QACWwa,qBAAW1B,KADT,EAE+D1K,EAAUsL,gBAAtFlS,EAFa,EAEbA,kBAAmB41B,EAFN,EAEMA,sBAAuB30B,EAF7B,EAE6BA,cAAe7C,EAF5C,EAE4CA,eACxD6K,EAAarC,EAAUoC,WAAvBC,UAERmK,qBAAU,WAILqO,EAAMC,OAAO5iB,UAHG,EAAA0I,EAAAY,OAAA,kEAAAZ,EAAA,MACXouB,EAAsBnU,EAAMC,OAAO5iB,WADxB,uCAMlB,CAAC82B,EAAuBnU,EAAMC,OAAO5iB,WAuCxC,OACE,yBAAKiV,UAAU,WACb,kBAACc,GAAA,EAAD,KACE,wBAAId,UAAU,WAAU,0BAAMkD,MAAO,CAACC,MAAO,QAArB,iBAAqClX,QAArC,IAAqCA,OAArC,EAAqCA,EAAmBtB,MAAxD,gBAAxB,sBAAsHsB,QAAtH,IAAsHA,OAAtH,EAAsHA,EAAmBmV,YACzI,kBAAC,KAAD,CAAMiC,GAAE,4BAAgBpX,QAAhB,IAAgBA,OAAhB,EAAgBA,EAAmBrD,aACzC,kBAACuX,GAAA,EAAD,wBAGJ,kBAACW,GAAA,EAAD,KACE,wBAAId,UAAU,aAAd,SAAiC/T,GAAsB,IAAIkN,KAAKlN,EAAkBxB,MAAOuZ,cAAcC,UAAU,EAAG,MAEtH,kBAACnD,GAAA,EAAD,KACE,wBAAId,UAAU,qBAAd,sBAA+C/T,QAA/C,IAA+CA,OAA/C,EAA+CA,EAAmBtC,YAClE,uBAAGqW,UAAU,sDACXmG,QAAS,kBAAMjR,EAAU,yBAA0B,kBAAC,GAAD,CAAiBnK,SAAU2iB,EAAMC,OAAO5iB,SAAU0O,QAAS,OAAS,mBAEzH,uBAAGuG,UAAU,sDACXmG,QAAS,kBAAMjR,EAAU,yBAA0B,kBAAC,GAAD,CAAqBnK,SAAU2iB,EAAMC,OAAO5iB,SAAU0O,QAAS,OAAS,mBAE7H,uBAAGuG,UAAU,2DACXmG,QAAS,kBAAMjR,EAAU,2BAA4B,kBAAC,GAAD,CAAsBnK,SAAU2iB,EAAMC,OAAO5iB,WAAc,mBAElH,uBAAGiV,UAAU,uDACXmG,QAAS,kBAAMjR,EAAU,sBAAuB,kBAAC,GAAD,CAAsBnK,SAAU2iB,EAAMC,OAAO5iB,SAAU0O,QAAS,OAAS,oBAI7H,kBAAC2T,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACtN,UAAU,QAChC,+BACE,4BACE,iCACA,qCACA,wCACA,wCACA,uCACA,2CACA,2CAGJ,sCACG/T,QADH,IACGA,OADH,YACGA,EAAmByN,mBADtB,aACG,EAAgC6G,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE9I,MAAQ+I,EAAE/I,MAAQ,GAAK,KAChFoJ,KAAI,SAAA6F,GAAU,OACf,wBAAI8G,IAAK9G,EAAW/T,IAClB,4BACG+T,EAAWjP,MACZ,uBAAGqV,UAAU,sCACXmG,QAAS,kBAAMjR,EAAU,iBAAD,OAAkB0E,EAAW7P,OACrD,kBAAC,GAAD,CAAoB4C,aAAciN,EAAW/T,GAAI8E,MAAOiP,EAAWjP,MAAMuiB,aAAgB,oBAG7F,4BACGtT,EAAWxU,KACV,uBAAGkb,KAAM1G,EAAWxU,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBxO,EAAW7P,QAE/E6P,EAAWxU,KACX,0BAAM4a,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,WAAD,OAAY0E,EAAW7P,OAC/C,kBAAC,GAAD,CAAwBA,MAAO6P,EAAW7P,MAAOoC,YAAayN,EAAWzN,cAAgB,kBACtFyN,EAAW7P,QAIlB,4BACG,IAAIoP,KAAKS,EAAWxN,UAAU4X,cAAcC,UAAU,EAAG,IAC1D,uBAAGjE,UAAU,sCACXmG,QAAS,kBAAMjR,EAAU,oBAAD,OAAqB0E,EAAW7P,OACxD,kBAAC,GAAD,CAAuB4C,aAAciN,EAAW/T,GAAIuG,SAAUwN,EAAWxN,WAAc,oBAG3F,4BACGwN,EAAW9M,aACV,uBAAGwT,KAAM1G,EAAW9M,YAAaqY,OAAO,SAASiD,IAAI,uBAArD,SAEF,uBAAGpI,UAAU,gDACXmG,QAAS,kBAAMjR,EAAU,WAAD,OAAY0E,EAAW7P,OAC/C,kBAAC,GAAD,CAAqB4C,aAAciN,EAAW/T,GAAIiH,YAAa8M,EAAW9M,cAAgB,oBAG9F,4BACG8M,EAAWrN,eAAiBqN,EAAWpN,aACtC,kBAAC,KAAD,CAAM6W,GAAE,gCAA2BzJ,EAAWrN,cAAtC,YAAuDqN,EAAWpN,YAAlE,YAAiFoN,EAAW7P,QACpG,0BAAMiW,UAAU,0BAAhB,cAGCpG,EAAWrN,gBAAkBqN,EAAWpN,cACzC,kBAAC,KAAD,CAAM6W,GAAE,0BAAqBzJ,EAAW/T,GAAhC,YAAsC+T,EAAW7P,QACvD,0BAAMiW,UAAU,0BAAhB,aAIN,4BACGpG,EAAWkoB,wBAA0B,GACpC,kBAAC,KAAD,CAAMze,GAAE,0BAAqBzJ,EAAW/T,KACtC,0BAAMma,UAAU,0BAA0BpG,EAAWkoB,wBAArD,kBAIN,4BACA,6BACA,uBAAG9hB,UAAU,gDACXmG,QAAS,kBAAMjR,EAAU,wBAAyB,kBAAC,GAAD,CAAiBnK,SAAU2iB,EAAMC,OAAO5iB,SAAU0O,QAASG,IAAe,mBAE9H,uBAAGoG,UAAU,gDACXmG,QAAS,kBAAMjR,EAAU,wBAAyB,kBAAC,GAAD,CAAqBnK,SAAU2iB,EAAMC,OAAO5iB,SAAU0O,QAASG,IAAe,mBAElI,uBAAGoG,UAAU,yCAAyCmG,QAAS,kBA9IzCnZ,EA8IsE4M,EAAW/T,QA7I/G2nB,wBAAa,CACXzjB,MAAO,oBACP1F,QAAS,sCACTopB,QAAS,CACP,CACE1D,MAAO,MACP5D,QAAS,WACPjZ,EAAcF,KAGlB,CACE+c,MAAO,KACP5D,QAAS,iBAbc,IAACnZ,aAsJ5B,yBAAKgT,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACrC,wBAAI/N,UAAU,UAAUkD,MAAO,CAACC,MAAM,aAAtC,aACA,uBAAGnD,UAAU,sDACXmG,QAAS,kBAAMjR,EAAU,0BAA2B,kBAAC,GAAD,CAA2BnK,SAAU2iB,EAAMC,OAAO5iB,WAAa,mBAErH,uBAAGiV,UAAU,sDACXmG,QAAS,kBAAMjR,EAAU,0BAA2B,kBAAC,GAAD,CAA2BnK,SAAU2iB,EAAMC,OAAO5iB,WAAa,mBAErH,uBAAGiV,UAAU,2DACXmG,QAAS,kBAAMjR,EAAU,gCAAiC,kBAAC,GAAD,CAA6BnK,SAAU2iB,EAAMC,OAAO5iB,WAAa,oBAG/H,kBAACqiB,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,uCAGJ,sCACG/T,QADH,IACGA,OADH,YACGA,EAAmB0N,iBADtB,aACG,EAA8B4G,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE9I,MAAQ+I,EAAE/I,MAAQ,GAAK,KAC9EoJ,KAAI,SAAAmE,GAAQ,OACX,wBAAIwI,IAAKxI,EAASrS,IAClB,4BAAKqS,EAASvN,MACZ,uBAAGqV,UAAU,sCACXmG,QAAS,kBAAMjR,EAAU,iBAAD,OAAkBgD,EAASnO,OACnD,kBAAC,GAAD,CAA4Bo3B,qBAAsBjpB,EAASrS,GAAI8E,MAAOuN,EAASvN,MAAMuiB,aAAgB,oBAGzG,4BACGhV,EAAS9S,KACR,uBAAGkb,KAAMpI,EAAS9S,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBlQ,EAASnO,QAE3EmO,EAAS9S,KACT,0BAAM4a,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,YAAD,OAAagD,EAASnO,OAAS,kBAAC,GAAD,CAAyBR,QAAS2O,EAAS3O,UAAY,kBAC3G2O,EAASnO,OAGd,uBAAGiW,UAAU,yCAAyCmG,QAAS,kBA1K7CtgB,EA0KwEqS,EAASrS,QAzK7G2nB,wBAAa,CACXzjB,MAAO,oBACP1F,QAAS,sCACTopB,QAAS,CACP,CACE1D,MAAO,MACP5D,QAAS,WACP9b,EAAeqjB,EAAMC,OAAO5iB,SAAUlF,KAG1C,CACEkkB,MAAO,KACP5D,QAAS,iBAbY,IAACtgB,gB,oBCmCjBk8B,GAtFiB,SAAC,GAAiB,IAAhB/0B,EAAe,EAAfA,UAAe,EAC7BiS,qBAAW1B,IAC8CY,gBAApE9D,EAFwC,EAExCA,mBAAoB2nB,EAFoB,EAEpBA,uBAAwBx0B,EAFJ,EAEIA,WASnD,OARA6R,qBAAU,WACW,EAAA5L,EAAAY,OAAA,kEAAAZ,EAAA,MACXuuB,EAAuBh1B,IADZ,yBAAAyG,EAAA,MAEXjG,EAAWR,IAFA,uCAKlB,CAACg1B,EAAwBx0B,EAAYR,IAGtC,kBAAC6T,GAAA,EAAD,KACGxG,EAAmBtG,KAAI,SAAC6F,EAAYkR,GAAb,OACxB,yBAAKpK,IAAKoK,GACR,kBAAChK,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QACpB,+CAGF,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,cACL+V,MAASxL,EAAWqoB,YACpBpY,UAAQ,MAIbjQ,EAAWE,eACZ,kBAACgH,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,sBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,yBAAKhB,UAAU,kBACf,uBAAGA,UAAU,aAAapG,EAAWE,kBAKzC,kBAACgH,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,OAEwB,UAArBpG,EAAWlM,OAAqB,uBAAGsS,UAAU,iDACxB,eAArBpG,EAAWlM,OAA0B,uBAAGsS,UAAU,sDAC7B,gBAArBpG,EAAWlM,OAA2B,uBAAGsS,UAAU,gDAC9B,iBAArBpG,EAAWlM,OAA4B,0BAAMsS,UAAU,aAAhB,OAG1C,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAAC,KAAD,CAAQoE,MAAOxL,EAAW1T,KACxBs2B,cAAiB,aACjBC,UAAW,SAAAv2B,GAAI,OAAIu2B,qBAAUv2B,EAAMw2B,aAAUC,KAC7ClD,QAAS,EACTvW,MAAO,CACL0Z,WAAY,sCACZC,SAAU,GACV/C,gBAAiB,iBAKzB,kBAAChZ,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,2BAIA,kBAACzE,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,yBAAKhB,UAAU,kBACf,uBAAGA,UAAU,aAAapG,EAAWjM,wBCqClCu0B,GA1G0D,SAAC,GACnD,IAAD,IAApBxU,EAAoB,EAApBA,MACM7a,GADc,EAAbpO,QACWwa,qBAAW1B,KADT,EAEgC1K,EAAUsL,gBAAvDlS,EAFa,EAEbA,kBAAmB41B,EAFN,EAEMA,sBAClB3sB,EAAarC,EAAUoC,WAAvBC,UAYR,OAVAmK,qBAAU,WAILqO,EAAMC,OAAO5iB,UAHG,EAAA0I,EAAAY,OAAA,kEAAAZ,EAAA,MACXouB,EAAsBnU,EAAMC,OAAO5iB,WADxB,uCAMlB,CAAC82B,EAAuBnU,EAAMC,OAAO5iB,WAItC,kBAAC8V,GAAA,EAAD,CAAWb,UAAU,QACnB,kBAACc,GAAA,EAAD,KACE,wBAAId,UAAU,WAAU,0BAAMkD,MAAO,CAACC,MAAO,QAArB,qBAAyClX,QAAzC,IAAyCA,OAAzC,EAAyCA,EAAmBtB,MAA5D,KAAxB,sBAA+GsB,QAA/G,IAA+GA,OAA/G,EAA+GA,EAAmBmV,YAClI,kBAAC,KAAD,CAAMiC,GAAE,4BAAgBpX,QAAhB,IAAgBA,OAAhB,EAAgBA,EAAmBrD,aACzC,kBAACuX,GAAA,EAAD,+BAGJ,kBAACW,GAAA,EAAD,KACE,wBAAId,UAAU,aAAd,SAAiC/T,GAAsB,IAAIkN,KAAKlN,EAAkBxB,MAAOuZ,cAAckS,OAAO,EAAG,MAEnH,kBAACpV,GAAA,EAAD,KACE,wBAAId,UAAU,qBAAd,sBAA+C/T,QAA/C,IAA+CA,OAA/C,EAA+CA,EAAmBtC,aAGpE,kBAACyjB,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACtN,UAAU,QAChC,+BACE,4BACE,iCACA,qCACA,wCACA,4CAGJ,sCACG/T,QADH,IACGA,OADH,YACGA,EAAmByN,mBADtB,aACG,EAAgC6G,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE9I,MAAQ+I,EAAE/I,MAAQ,GAAK,KAChFoJ,KAAI,SAAA6F,GAAU,OACf,wBAAI8G,IAAK9G,EAAW/T,IAClB,4BAAK+T,EAAWjP,OAChB,4BACGiP,EAAWxU,KACV,uBAAGkb,KAAM1G,EAAWxU,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBxO,EAAW7P,QAE/E6P,EAAWxU,KACX,0BAAM4a,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,WAAD,OAAY0E,EAAW7P,OAAS,kBAAC,GAAD,CAAwBA,MAAO6P,EAAW7P,MAAOoC,YAAayN,EAAWzN,cAAgB,kBAC9IyN,EAAW7P,QAIlB,4BACGo4B,KAAOvoB,EAAWxN,UAAUg2B,OAAO,eAEtC,4BACGxoB,EAAWkoB,wBAA0B,GACpC,0BAAM9hB,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,0BAAD,OAA2B0E,EAAW7P,OAAS,kBAAC,GAAD,CAAyBiD,UAAW4M,EAAW/T,KAAO,kBAC1H+T,EAAWkoB,wBAFd,uBAUV,yBAAK9hB,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACrC,wBAAI/N,UAAU,UAAUkD,MAAO,CAACC,MAAM,aAAtC,cAEF,kBAACiK,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,uCAGJ,sCACG/T,QADH,IACGA,OADH,YACGA,EAAmB0N,iBADtB,aACG,EAA8B4G,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE9I,MAAQ+I,EAAE/I,MAAQ,GAAK,KAC9EoJ,KAAI,SAAAyG,GAAkB,OACrB,wBAAIkG,IAAKlG,EAAmB3U,IAC5B,4BAAK2U,EAAmB7P,OAExB,4BACG6P,EAAmBpV,KAClB,uBAAGkb,KAAM9F,EAAmBpV,IAAK+f,OAAO,SAASiD,IAAI,uBAAuB5N,EAAmBzQ,QAE/FyQ,EAAmBpV,KACnB,0BAAM4a,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,YAAD,OAAasF,EAAmBzQ,OAAS,kBAAC,GAAD,CAAyBR,QAASiR,EAAmBjR,UAAY,kBAC/HiR,EAAmBzQ,gBCWvBs4B,GA1G8D,SAAC,GACvD,IAAD,IAApB3U,EAAoB,EAApBA,MACM7a,GADc,EAAbpO,QACWwa,qBAAW1B,KADT,EAEgC1K,EAAUsL,gBAAvDlS,EAFa,EAEbA,kBAAmB41B,EAFN,EAEMA,sBAClB3sB,EAAarC,EAAUoC,WAAvBC,UAYR,OAVAmK,qBAAU,WAILqO,EAAMC,OAAO5iB,UAHG,EAAA0I,EAAAY,OAAA,kEAAAZ,EAAA,MACXouB,EAAsBnU,EAAMC,OAAO5iB,WADxB,uCAMlB,CAAC82B,EAAuBnU,EAAMC,OAAO5iB,WAItC,kBAAC8V,GAAA,EAAD,CAAWb,UAAU,QACnB,kBAACc,GAAA,EAAD,KACE,wBAAId,UAAU,WAAU,0BAAMkD,MAAO,CAACC,MAAO,QAArB,qBAAyClX,QAAzC,IAAyCA,OAAzC,EAAyCA,EAAmBtB,MAA5D,KAAxB,sBAA+GsB,QAA/G,IAA+GA,OAA/G,EAA+GA,EAAmBmV,YAClI,kBAAC,KAAD,CAAMiC,GAAE,4BAAgBpX,QAAhB,IAAgBA,OAAhB,EAAgBA,EAAmBrD,aACzC,kBAACuX,GAAA,EAAD,yBAGJ,kBAACW,GAAA,EAAD,KACE,wBAAId,UAAU,aAAd,SAAiC/T,GAAsB,IAAIkN,KAAKlN,EAAkBxB,MAAOuZ,cAAckS,OAAO,EAAG,MAEnH,kBAACpV,GAAA,EAAD,KACE,wBAAId,UAAU,qBAAd,sBAA+C/T,QAA/C,IAA+CA,OAA/C,EAA+CA,EAAmBtC,aAGpE,kBAACyjB,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACtN,UAAU,QAChC,+BACE,4BACE,iCACA,qCACA,wCACA,4CAGJ,sCACG/T,QADH,IACGA,OADH,YACGA,EAAmByN,mBADtB,aACG,EAAgC6G,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE9I,MAAQ+I,EAAE/I,MAAQ,GAAK,KAChFoJ,KAAI,SAAA6F,GAAU,OACf,wBAAI8G,IAAK9G,EAAW/T,IAClB,4BAAK+T,EAAWjP,OAChB,4BACGiP,EAAWxU,KACV,uBAAGkb,KAAM1G,EAAWxU,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBxO,EAAW7P,QAE/E6P,EAAWxU,KACX,0BAAM4a,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,WAAD,OAAY0E,EAAW7P,OAAS,kBAAC,GAAD,CAAwBA,MAAO6P,EAAW7P,MAAOoC,YAAayN,EAAWzN,cAAgB,kBAC9IyN,EAAW7P,QAIlB,4BACGo4B,KAAOvoB,EAAWxN,UAAUg2B,OAAO,eAEtC,4BACGxoB,EAAWkoB,wBAA0B,GACpC,0BAAM9hB,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,0BAAD,OAA2B0E,EAAW7P,OAAS,kBAAC,GAAD,CAAyBiD,UAAW4M,EAAW/T,KAAO,kBAC1H+T,EAAWkoB,wBAFd,uBAUV,yBAAK9hB,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACrC,wBAAI/N,UAAU,UAAUkD,MAAO,CAACC,MAAM,aAAtC,cAEF,kBAACiK,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,uCAGJ,sCACG/T,QADH,IACGA,OADH,YACGA,EAAmB0N,iBADtB,aACG,EAA8B4G,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE9I,MAAQ+I,EAAE/I,MAAQ,GAAK,KAC9EoJ,KAAI,SAAAyG,GAAkB,OACrB,wBAAIkG,IAAKlG,EAAmB3U,IAC5B,4BAAK2U,EAAmB7P,OAExB,4BACG6P,EAAmBpV,KAClB,uBAAGkb,KAAM9F,EAAmBpV,IAAK+f,OAAO,SAASiD,IAAI,uBAAuB5N,EAAmBzQ,QAE/FyQ,EAAmBpV,KACnB,0BAAM4a,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,YAAD,OAAasF,EAAmBzQ,OAAS,kBAAC,GAAD,CAAyBR,QAASiR,EAAmBjR,UAAY,kBAC/HiR,EAAmBzQ,gBCvDvBiV,iBA/CY,WACzB,IAAMva,EAAU+vB,cADe,EAEbvV,qBAAW1B,IACmBpI,UAAzC6B,EAHwB,EAGxBA,QAASsrB,EAHe,EAGfA,mBAMhB,OAJAjjB,qBAAU,WACRijB,MACC,CAACA,IAGF,kBAACzhB,GAAA,EAAD,CAAWK,OAAK,EAACgC,MAAO,CAAEiK,UAAW,QACnC,kBAACC,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,GAC3B,+BACE,4BACE,oCACA,oCACA,qCACA,yCACA,wCACA,8CACA,uCACA,wCAGJ,+BACGpX,GACDA,EAAQjD,KAAI,SAAAjL,GAAM,OAChB,wBAAI4X,IAAK5X,EAAOF,WAAYoX,UAAU,YAAYmG,QAAS,SAACkI,GAC1D5pB,EAAQC,KAAR,qBAA2BoE,EAAOF,eAElC,4BAAKE,EAAOF,YACZ,4BAAKE,EAAOsY,YACZ,4BAAKtY,EAAO6C,QAASkiB,OACrB,4BAAK,IAAI1U,KAAKrQ,EAAO+hB,WAAW7G,cAAcC,UAAU,EAAG,KAC3D,4BAAK,IAAI9K,KAAKrQ,EAAOkiB,SAAShH,cAAcC,UAAU,EAAG,KACzD,4BAAKnb,EAAOW,aAAe,IAAMX,EAAOa,YACxC,4BAAKb,EAAOolB,QAAS7Y,UAAY,IAAMvM,EAAOolB,QAAS5Y,UACvD,4BAAKxM,EAAOZ,OAAS,MAAQ,gBC0K5Bq6B,GAlNU,SAAC,GAAsB,IAAD,IAApB1qB,EAAoB,EAApBA,cAiBzB,OACE,yBAAKmI,UAAU,WACb,yBAAKkD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAS,uBAAkBnI,EAAc3P,OAAS,eAAiB,mBAAvE,WAAoG2P,EAAcuJ,aAGpH,kBAACiE,GAAA,EAAD,CAAMrF,UAAU,QACd,kBAACc,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAK,UAAEvN,EAAclM,eAAhB,aAAE,EAAuB0D,KAAMwa,UAAQ,KAGtE,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAK,UAAEvN,EAAclM,eAAhB,aAAE,EAAuBzF,KAAM2jB,UAAQ,MAIxE,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAlDjB,WACf,IAAGvN,EAYE,MAAO,GAXV,OAAOA,EAAclM,QAAQkiB,OAC3B,KAAK,EACH,MAAO,eACT,KAAK,EACH,MAAO,WACT,KAAK,EACH,MAAO,cACT,QACE,MAAO,YAwC0BoL,GAAYpP,UAAQ,KAGrD,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,SAAShP,QAASlD,EAAc3P,OAClEmH,KAAK,SAASwa,UAAQ,MAG9B,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAASvN,EAAcjP,WACvBihB,UAAQ,KAGZ,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACnB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,YAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAASvN,EAAcmW,QACvBnE,UAAQ,MAIhB,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAS,IAAIjM,KAAKtB,EAAcgT,WAAW7G,cAAckS,OAAO,EAAG,IACnErM,UAAQ,KAGV,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,aAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAAS,IAAIjM,KAAKtB,EAAcmT,SAAShH,cAAckS,OAAO,EAAG,IACjErM,UAAQ,MAIhB,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,oBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAASvN,EAAcpO,cAAgB,GACvCogB,UAAQ,KAGV,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAASvN,EAAclO,YAAc,GACrCkgB,UAAQ,MAIhB,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,iBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAASvN,EAAcoW,aACvBpE,UAAQ,KAGV,kBAAC9I,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,YAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLP,MAASvN,EAAcqW,QAAQ7Y,UAAY,IAAMwC,EAAcqW,QAAQ5Y,SACvEuU,UAAQ,MAIhB,kBAAC/I,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIF,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACrB,kBAACqE,GAAA,EAAKI,QAAN,CAAc1I,GAAG,WAAW2L,KAAM,EAAG1I,UAAU,eAAeoF,MAAOvN,EAAc1L,YAAa0d,UAAQ,OAOhH,yBAAK7J,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACrC,wBAAI/N,UAAU,WAAd,eAEF,kBAACoN,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,2CAGJ,sCACGnI,QADH,IACGA,OADH,EACGA,EAAeyF,WACfiD,QAAQ/M,MAAK,SAACC,EAAGC,GAChB,OAAID,EAAE4B,UAAU8B,cAAgBzD,EAAE2B,UAAU8B,cAAsB,EAC1D1D,EAAE4B,UAAU8B,cAAgBzD,EAAE2B,UAAU8B,eAAuB,EAEhE1D,EAAE6B,SAAS6B,cAAgBzD,EAAE4B,SAAS6B,cAAsB,GAClD,KAGlBpD,KAAI,SAACujB,EAAWxM,GAAZ,OACH,wBAAIpK,IAAK4W,EAAU/vB,UACnB,4BAAKujB,EAAM,GACX,4BAAKwM,EAAUjiB,UAAU,IAAMiiB,EAAUhiB,kBCwBtC0J,iBAnNsD,SAAC,GAC/C,IAAD,QAApB0O,EAAoB,EAApBA,MACM7a,GADc,EAAbpO,QACWwa,qBAAW1B,KADT,EAE8B1K,EAAU+K,YAArD/F,EAFa,EAEbA,cAAe2qB,EAFF,EAEEA,yBACdttB,EAAarC,EAAUoC,WAAvBC,UAWR,OATAmK,qBAAU,WAILqO,EAAMC,OAAO/kB,YAHG,EAAA6K,EAAAY,OAAA,kEAAAZ,EAAA,MACX+uB,EAAyB9U,EAAMC,OAAO/kB,aAD3B,uCAMlB,CAAC45B,EAA0B9U,EAAMC,OAAO/kB,aAGzC,yBAAKoX,UAAU,WACb,yBAAKA,UAAU,gBACb,wBAAIA,UAAS,mBAA0B,OAAbnI,QAAa,IAAbA,OAAA,EAAAA,EAAe3P,QAAS,eAAiB,mBAAnE,kBAAgG2P,QAAhG,IAAgGA,OAAhG,EAAgGA,EAAeuJ,YAC/G,kBAAC,KAAD,CAAMiC,GAAE,oCAAwBxL,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAe5F,WAC7C,kBAACkO,GAAA,EAAD,CAAQC,QAAQ,UAAUC,KAAK,KAAKL,UAAU,QAA9C,wBAEY,OAAbnI,QAAa,IAAbA,OAAA,EAAAA,EAAe3P,SAChB,kBAAC,KAAD,CAAMmb,GAAE,sBAAiBqK,EAAMC,OAAO/kB,aACpC,kBAACuX,GAAA,EAAD,CAAQC,QAAQ,UAAUC,KAAK,KAAKL,UAAU,QAA9C,QAGF,kBAACG,GAAA,EAAD,CAAQC,QAAQ,OAAOJ,UAAU,YAAYK,KAAK,KAClD8F,QAAS,kBAAMjR,EAAU,cACzB,kBAAC,GAAD,CAAkB2C,cAAeA,IAAmB,kBAFpD,gBAMF,kBAACiJ,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIhB,UAAU,kBAAd,mBAIF,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIhB,UAAU,iBACE,OAAbnI,QAAa,IAAbA,OAAA,EAAAA,EAAepO,cAAe,KAA9B,OAAoCoO,QAApC,IAAoCA,OAApC,EAAoCA,EAAelO,eAK1D,yBAAKqW,UAAU,qBACX,wBAAIA,UAAU,yBAAd,WAGJ,kBAACc,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,KACA,uBAAGf,UAAU,cAA0B,OAAbnI,QAAa,IAAbA,OAAA,EAAAA,EAAehO,SAAW8W,aAAK,OAAC9I,QAAD,IAACA,OAAD,EAACA,EAAehO,WAI3E,yBAAKmW,UAAU,gBACb,wBAAIA,UAAU,2BAAd,YAEF,kBAACoN,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,qCACA,oCACA,2CACA,qCACA,4CAGJ,sCACGnI,QADH,IACGA,OADH,YACGA,EAAeI,eADlB,aACG,EAAwBsI,QAAQ/M,MAAK,SAACC,EAAGC,GACxC,OAAGD,EAAEhJ,KAAOiJ,EAAEjJ,KAAa,EACnBgJ,EAAEhJ,KAAOiJ,EAAEjJ,MAAc,EACzBgJ,EAAE9J,WAAa+J,EAAE/J,WAAmB,GAC/B,KACZoK,KAAI,SAACiE,EAAQ8S,GAAT,OACL,wBAAIpK,IAAK1I,EAAOnS,IAChB,4BAAKmS,EAAOrN,OACZ,4BACE,kBAAC,KAAD,CAAM0Y,GAAE,4BAAuBrL,EAAOnS,KACrCmS,EAAOxN,QAGV,4BAAK,IAAI2O,KAAKnB,EAAOvN,MAAMuZ,cAAcC,UAAU,EAAG,KACtD,4BAAKjM,EAAOrO,YACZ,4BACGqO,EAAO5S,KACN,uBAAGkb,KAAMtI,EAAO5S,IAAK+f,OAAO,SAASiD,IAAI,uBAAzC,UAGJ,4BACGpQ,EAAO2d,iBAAmB,GACzB,kBAAC,KAAD,CAAMtS,GAAE,+BAA0BrL,EAAOnS,KAAzC,qBAUV,yBAAKma,UAAU,qBACb,wBAAIA,UAAU,0BAAd,cAEF,kBAACoN,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,uCAGJ,sCACGnI,QADH,IACGA,OADH,YACGA,EAAeE,uBADlB,aACG,EAAgChE,KAAI,SAAC+D,EAAgBgT,GAAjB,OACnC,wBAAIpK,IAAK5I,EAAejS,IACxB,4BAAKilB,EAAM,GACX,4BACGhT,EAAe1S,KACd,uBAAGkb,KAAMxI,EAAe1S,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBtQ,EAAe/N,QAEvF+N,EAAe1S,KACf,0BAAM4a,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,YAAD,OAAa4C,EAAe/N,OAAS,kBAAC,GAAD,CAAcR,QAASuO,EAAevO,UAAY,kBAC5GuO,EAAe/N,cA5G9B,OAqHG8N,QArHH,IAqHGA,OArHH,YAqHGA,EAAemlB,oBArHlB,aAqHG,EAA6BjpB,KAAI,SAACvJ,EAAOgW,GAAR,OAChC,kBAAC,IAAMyc,SAAP,KACE,yBAAKjd,UAAU,qBACX,wBAAIA,UAAU,0BAA0BxV,EAAM6E,OAElD,kBAAC+d,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACxC,+BACE,4BACE,wCACE,qCACA,qCACCxV,EAAM+E,aACJ,wCAEF/E,EAAMgF,aACJ,wCAEFhF,EAAMiF,SACJ,sCAIT,+BACGjF,EAAMuR,WAAWhI,KAAI,SAAAiI,GAAS,OAC/B,wBAAI0E,IAAK1E,EAAUnW,IACjB,4BAAKmW,EAAU/L,UACf,4BAAK+L,EAAUrR,OACf,4BACCqR,EAAU5W,KACT,uBAAGkb,KAAMtE,EAAU5W,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBpM,EAAUjS,QAG9ES,EAAM+E,aACL,4BAAKyM,EAAU1L,UAEhB9F,EAAMgF,aACH,4BACCwM,EAAUlP,aACX,uBAAGwT,KAAMtE,EAAUlP,YAAaqY,OAAO,SAASiD,IAAI,uBAApD,aAIH5d,EAAMiF,SACJ,4BACAuM,EAAU9V,MACP,0BAAM8Z,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,YAAD,OAAa8G,EAAUjS,OAC/C,kBAAC,GAAD,CAAW7D,KAAM8V,EAAU9V,OAAU,kBAFrC,mBAlKhB,OAiLG2R,QAjLH,IAiLGA,OAjLH,YAiLGA,EAAeqlB,iBAjLlB,aAiLG,EAA0BnpB,KAAI,SAACvJ,EAAOgW,GAAR,OAC7B,yBAAKR,UAAU,oBAAoBU,IAAKlW,EAAM3E,IAC7C2E,EAAMmF,YACP,kBAAC,KAAD,CAAM0T,GAAE,yCAAoC7Y,EAAM3E,IAAMma,UAAU,WAChE,wBAAIA,UAAU,cAAcxV,EAAM6E,QAGlC7E,EAAMmF,YACR,kBAAC,KAAD,CAAM0T,GAAE,kCAA6B7Y,EAAM3E,IAAMma,UAAU,WACzD,wBAAIA,UAAU,cAAcxV,EAAM6E,eCpK7B2P,iBAhDW,WACxB,IAAMnM,EAAYoM,qBAAW1B,IACrBrI,EAAarC,EAAUoC,WAAvBC,UAFsB,EAGarC,EAAUsC,UAA9C9N,EAHuB,EAGvBA,cAAeo7B,EAHQ,EAGRA,kBAMtB,OAJApjB,qBAAU,WACRojB,MACC,CAACA,IAGF,kBAAC5hB,GAAA,EAAD,CAAWK,OAAK,EAACgC,MAAO,CAAEiK,UAAW,QACpC,kBAACC,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,GAC5B,+BACE,4BACE,oCACA,4CACA,qCACA,0CACA,wCACA,8CACA,uCACA,wCAGJ,+BACG/mB,GACDA,EAAc0M,KAAI,SAAAjL,GAAM,aACtB,wBAAI4X,IAAK5X,EAAOF,WAAYoX,UAAU,YAAYmG,QAAS,SAACkI,GAC1DnZ,EAAU,aAAD,OAAcpM,EAAOqiB,iBAC9B,kBAAC,GAAD,CAAoBviB,WAAYE,EAAOF,WAAYrB,SAAUuB,EAAO45B,kBAAoB,kBAExF,4BAAK55B,EAAOsY,YACZ,4BAAKtY,EAAOqiB,iBACZ,sCAAKriB,EAAO6C,eAAZ,aAAK,EAAgBkiB,OACrB,4BAAK,IAAI1U,KAAKrQ,EAAO+hB,WAAW7G,cAAcC,UAAU,EAAG,KAC3D,4BAAK,IAAI9K,KAAKrQ,EAAOkiB,SAAShH,cAAcC,UAAU,EAAG,KACzD,4BAAKnb,EAAOW,aAAe,IAAMX,EAAOa,YACxC,4BAAKb,EAAOolB,QAAS7Y,UAAY,IAAMvM,EAAOolB,QAAS5Y,UACvD,4BAAKxM,EAAOZ,OAAS,MAAQ,gBCqC1By6B,GAxES,SAAC,GAAiB,IAAhB31B,EAAe,EAAfA,UAEjBG,EADW8R,qBAAW1B,IACEY,gBAAxBhR,WAFgC,EAGX+R,mBAAS,IAHE,oBAGhC9R,EAHgC,KAGxBw1B,EAHwB,OAIf1jB,mBAAS,IAJM,oBAIhChZ,EAJgC,KAI1Bi4B,EAJ0B,OAKHjf,oBAAS,GALN,oBAKhCpK,EALgC,KAKpBsP,EALoB,KAiBvC,OACE,kBAACvD,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,YAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACR3I,GAAG,WACH2L,KAAM,EACNrZ,KAAK,SACL+V,MAAShY,EACTwY,SAzBiB,SAACV,GAAW,IAC9BE,EAASF,EAAMC,OAAfC,MACPwd,EAAUxd,QA2BR,kBAACtE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,SAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAAC,KAAD,CAAQoE,MAAOlf,EACbs2B,cAAiB,SAAAt2B,GAAI,OAAIi4B,EAAQj4B,IACjCu2B,UAAW,SAAAv2B,GAAI,OAAIu2B,qBAAUv2B,EAAMw2B,aAAUC,KAC7ClD,QAAS,EACTvW,MAAO,CACL0Z,WAAY,sCACZC,SAAU,GACV/C,gBAAiB,iBAMzB,kBAAChZ,GAAA,EAAD,CAAKd,UAAU,2CACd9Z,IAAS4O,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA7CjC,WACnB/B,GAAc,GACdjX,EAAWH,EAAWI,EAAQlH,KA2CJ,UACjB4O,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,oBC9DrBqZ,GAAY,CAChBC,KAAM,EACNvL,QAAS,OACTwL,cAAe,SACfC,WAAY,SACZC,QAAS,OACTC,YAAa,EACbC,aAAc,EACdC,YAAa,UACbC,YAAa,SACbC,gBAAiB,UACjB3W,MAAO,UACP4W,QAAS,OACTC,WAAY,2BAGRC,GAAc,CAClBL,YAAa,WAGTM,GAAc,CAClBN,YAAa,WAGTO,GAAc,CAClBP,YAAa,WA4GAiJ,GAzGW,SAAC,GAAiB,IAAhB71B,EAAe,EAAfA,UAEnBK,EADW4R,qBAAW1B,IACIY,gBAA1B9Q,aAFkC,EAGb6R,mBAAS,IAHI,oBAGlC9R,EAHkC,KAG1Bw1B,EAH0B,OAIjB1jB,mBAAS,MAJQ,oBAIlCjV,EAJkC,KAI5B02B,EAJ4B,OAKLzhB,oBAAS,GALJ,oBAKlCpK,EALkC,KAKtBsP,EALsB,OAarCkW,aAAY,CACdC,OAAQ,iCACRC,SAAU,EACVC,OAAQ,SAAAC,GAENiG,EAAQjG,EAAc,OAVxBC,EARuC,EAQvCA,aACAC,EATuC,EASvCA,cACAC,EAVuC,EAUvCA,aACAC,EAXuC,EAWvCA,aACAC,EAZuC,EAYvCA,aAWI7X,EAAQ8X,mBAAQ,kCACjB3B,GADiB,GAEhBwB,EAAeZ,GAAc,GAFb,GAGhBa,EAAeZ,GAAc,GAHb,GAIhBa,EAAeZ,GAAc,MAC/B,CACFU,EACAE,EACAD,IAaF,OACE,kBAACja,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,YAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACR3I,GAAG,WACH2L,KAAM,EACNrZ,KAAK,SACL+V,MAAShY,EACTwY,SAzBiB,SAACV,GAAW,IAC9BE,EAASF,EAAMC,OAAfC,MACPwd,EAAUxd,QA2BR,wBAASuV,EAAa,CAACzX,UACnB,0BAAW0X,KAETC,EACE,sDACA,uFAEJ,kEAEF,kBAAC/Z,GAAA,EAAD,CAAKd,UAAU,cACf,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACnB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAAUnb,GAAQA,EAAKoF,MAAS,GAChCwa,UAAQ,MAKhB,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,2CACd/V,IAAS6K,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QAnDjC,WACnB/B,GAAc,GACd/W,EAAaL,EAAWI,EAAQnD,KAiDN,UACjB6K,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,oBChDZ8iB,GApES,SAAC,GAA4E,IAA3EhpB,EAA0E,EAA1EA,cAAepM,EAA2D,EAA3DA,MAAOC,EAAoD,EAApDA,cAAezH,EAAqC,EAArCA,KAAM8T,EAA+B,EAA/BA,WAAYE,EAAmB,EAAnBA,cAC/E,OACE,kBAAC2G,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,YAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,yBAAKhB,UAAU,kBACb,uBAAGA,UAAU,aAAalG,MAIhC,kBAACgH,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,sBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,yBAAKhB,UAAU,kBACb,uBAAGA,UAAU,aAAarS,MAI/BzH,GACD,kBAAC4a,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,OAEa,UAAVtS,GAAqB,uBAAGsS,UAAU,iDACxB,eAAVtS,GAA0B,uBAAGsS,UAAU,sDAC7B,gBAAVtS,GAA2B,uBAAGsS,UAAU,gDAC9B,iBAAVtS,GAA4B,0BAAMsS,UAAU,aAAhB,OAG/B,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAAC,KAAD,CAAQoE,MAAOlf,EACbs2B,cAAiB,aACjBC,UAAW,SAAAv2B,GAAI,OAAIu2B,qBAAUv2B,EAAMw2B,aAAUC,KAC7ClD,QAAS,EACTvW,MAAO,CACL0Z,WAAY,sCACZC,SAAU,GACV/C,gBAAiB,iBAMxB9f,GACC,kBAAC8G,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIF,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACvB,uBAAGV,KAAMpG,EAAeiL,OAAO,SAASiD,IAAI,uBAAuBpO,OC+FhEgF,I,OAAAA,cAjJ4D,SAAC,GACrD,IAAD,IAApB0O,EAAoB,EAApBA,MACQ7a,GADY,EAAbpO,QACawa,qBAAW1B,KADX,EAEgD1K,EAAUsL,gBAArE7Q,EAFW,EAEXA,yBAA0By1B,EAFf,EAEeA,6BACzB7tB,EAAarC,EAAUoC,WAAvBC,UAWR,OATAmK,qBAAU,WAILqO,EAAMC,OAAO5iB,UAHG,EAAA0I,EAAAY,OAAA,kEAAAZ,EAAA,MACXsvB,EAA6BrV,EAAMC,OAAO5iB,WAD/B,uCAMlB,CAACg4B,EAA8BrV,EAAMC,OAAO5iB,WAG7C,yBAAKiV,UAAU,WACb,kBAACc,GAAA,EAAD,KACE,wBAAId,UAAU,WAAU,0BAAMkD,MAAO,CAACC,MAAO,QAArB,qBAAyC7V,QAAzC,IAAyCA,OAAzC,EAAyCA,EAA0B3C,MAAnE,KAAxB,sBAAsH2C,QAAtH,IAAsHA,OAAtH,EAAsHA,EAA0B8T,YAChJ,kBAAC,KAAD,CAAMiC,GAAE,4BAAgB/V,QAAhB,IAAgBA,OAAhB,EAAgBA,EAA0B1E,YAAcoX,UAAU,QACxE,kBAACG,GAAA,EAAD,yBAGJ,kBAACW,GAAA,EAAD,KACE,wBAAId,UAAU,aAAd,SAAiC1S,GAA6B,IAAI6L,KAAK7L,EAAyB7C,MAAOuZ,cAAckS,OAAO,EAAG,MAEjI,kBAACpV,GAAA,EAAD,KACE,wBAAId,UAAU,qBAAd,sBAA+C1S,QAA/C,IAA+CA,OAA/C,EAA+CA,EAA0B3D,aAG3E,kBAACyjB,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACtN,UAAU,QAChC,+BACE,4BACE,iCACA,qCACA,wCACA,wCACA,uCACA,2CACA,wCAGJ,sCACG1S,QADH,IACGA,OADH,YACGA,EAA0BuM,0BAD7B,aACG,EAA8C0G,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE9I,MAAQ+I,EAAE/I,MAAQ,GAAK,KAC9FoJ,KAAI,SAAA6F,GAAU,OACf,wBAAI8G,IAAK9G,EAAW/T,IAClB,4BAAK+T,EAAWjP,OAChB,4BACGiP,EAAWxU,KACV,uBAAGkb,KAAM1G,EAAWxU,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBxO,EAAW7P,QAE/E6P,EAAWxU,KACX,0BAAM4a,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,WAAD,OAAY0E,EAAW7P,OAAS,kBAAC,GAAD,CAAwBA,MAAO6P,EAAW7P,MAAOoC,YAAayN,EAAWzN,cAAgB,kBAC9IyN,EAAW7P,QAIlB,4BACCo4B,KAAOvoB,EAAWxN,UAAUg2B,OAAO,eAEtC,4BACGxoB,EAAW9M,aACV,uBAAGwT,KAAM1G,EAAW9M,YAAaqY,OAAO,SAASiD,IAAI,uBAArD,UAGJ,4BACGxO,EAAWrN,eAAiBqN,EAAWpN,aACtC,kBAAC,KAAD,CAAM6W,GAAE,gCAA2BzJ,EAAWrN,cAAtC,YAAuDqN,EAAWpN,YAAlE,YAAiFoN,EAAW7P,QACpG,0BAAMiW,UAAU,0BAAhB,cAGCpG,EAAWrN,gBAAkBqN,EAAWpN,cACzC,kBAAC,KAAD,CAAM6W,GAAE,0BAAqBzJ,EAAW/T,GAAhC,YAAsC+T,EAAW7P,QACvD,0BAAMiW,UAAU,0BAAhB,aAIJ,6BACIpG,EAAW1T,MAAQ0T,EAAWI,aAC5B,0BAAMgG,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,mBAAD,OAAoB0E,EAAW7P,OACvD,kBAAC,GAAD,CAAiB+P,cAAeF,EAAWE,cAC3CpM,MAASkM,EAAWlM,MACpBC,cAAeiM,EAAWjM,cAC1BzH,KAAM0T,EAAW1T,KAAM8T,WAAYJ,EAAWI,WAAYE,cAAiBN,EAAWM,gBAAkB,kBALxG,gBAUN,4BACE,IAAIf,KAAKS,EAAWxN,UAAc,IAAI+M,OAAsC,cAA1BS,EAAWvN,YAAwD,SAA1BuN,EAAWvN,aACtG,uBAAG2T,UAAU,4CACXmG,QAAS,kBAAMjR,EAAU,mBAAD,OAAoB0E,EAAW7P,OAAS,kBAAC,GAAD,CAAiBiD,UAAW4M,EAAW/T,KAAO,mBAGhH,IAAIsT,KAAKS,EAAWxN,UAAc,IAAI+M,OAAsC,gBAA1BS,EAAWvN,YAA0D,SAA1BuN,EAAWvN,aACxG,uBAAG2T,UAAU,iDACXmG,QAAS,kBAAMjR,EAAU,yBAAD,OAA0B0E,EAAW7P,OAAS,kBAAC,GAAD,CAAmBiD,UAAW4M,EAAW/T,KAAO,2BAQvG,OAAxByH,QAAwB,IAAxBA,OAAA,EAAAA,EAA0BqM,aAAqC,OAAxBrM,QAAwB,IAAxBA,OAAA,EAAAA,EAA0BqM,UAAUxG,QAAS,GACrF,kBAAC,WAAD,KACA,yBAAK6M,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACvC,wBAAI/N,UAAU,UAAUkD,MAAO,CAACC,MAAM,aAAtC,cAEA,kBAACiK,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,uCAGJ,sCACG1S,QADH,IACGA,OADH,YACGA,EAA0BqM,iBAD7B,aACG,EAAqC4G,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE9I,MAAQ+I,EAAE/I,MAAQ,GAAK,KACrFoJ,KAAI,SAAAyG,GAAkB,OACrB,wBAAIkG,IAAKlG,EAAmB3U,IAC5B,4BAAK2U,EAAmB7P,OAExB,4BACG6P,EAAmBpV,KAClB,uBAAGkb,KAAM9F,EAAmBpV,IAAK+f,OAAO,SAASiD,IAAI,uBAAuB5N,EAAmBzQ,QAE/FyQ,EAAmBpV,KACnB,0BAAM4a,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,YAAD,OAAasF,EAAmBzQ,OAAS,kBAAC,GAAD,CAAyBR,QAASiR,EAAmBjR,UAAY,kBAC/HiR,EAAmBzQ,oBC9FzBiV,iBAlDO,WACpB,IAD0B,EACRC,qBAAW1B,IACiCc,aAAvDxD,EAFmB,EAEnBA,UAAW2U,EAFQ,EAERA,YAAathB,EAFL,EAEKA,kBAE/BmR,qBAAU,WACRmQ,MACC,CAACA,IAMJ,OACE,kBAAC3O,GAAA,EAAD,KACGhG,EAAU0F,QAAQ/M,MAAK,SAACC,EAAEC,GACpB,OAAGD,EAAE+pB,YAAc9pB,EAAE8pB,aAAqB,EAC9B,KAElBzpB,KAAI,SAAC+G,EAASgQ,GAAV,OACH,kBAACrK,GAAA,EAAD,CAAMC,IAAKoK,GACX,kBAACrK,GAAA,EAAKX,KAAN,KACE,kBAACW,GAAA,EAAKb,MAAN,CAAYI,UAAU,gBAAgBlF,EAAQtQ,OAC5CsQ,EAAQC,SACR,uBAAGiF,UAAU,oDAAoDmG,QAAS,kBAf9DtgB,EAeiFiV,EAAQjV,QAd7GqI,EAAkBrI,GADC,IAACA,MAkBbiV,EAAQ9M,OACP,kBAACyS,GAAA,EAAKsK,SAAN,CAAe/K,UAAU,kBAAzB,UACUlF,EAAQ9M,OAGnB8M,EAAQ1S,OACP,kBAACqY,GAAA,EAAKsK,SAAN,CAAe/K,UAAU,uBAAzB,UACUlF,EAAQ1S,OAGpB,kBAACqY,GAAA,EAAKsK,SAAN,CAAe/K,UAAU,uBAAzB,SACSlF,EAAQ0iB,aAEjB,kBAAC/c,GAAA,EAAK2C,KAAN,CAAWpD,UAAU,aAClBlF,EAAQ3O,sBCmDN62B,GA5FW,SAAC,GAAiD,IAAhDh2B,EAA+C,EAA/CA,UAAWzF,EAAoC,EAApCA,SAAUmG,EAA0B,EAA1BA,MAAOC,EAAmB,EAAnBA,cAChDkF,EAAYoM,qBAAW1B,IACtB9P,EAAmBoF,EAAUsL,gBAA7B1Q,gBACAiJ,EAAc7D,EAAUoC,WAAxByB,WAHkE,EAIzCwI,mBAASxR,GAJgC,oBAIlEu1B,EAJkE,KAIxDC,EAJwD,OAKvChkB,mBAASvR,GAL8B,oBAKlEw1B,EALkE,KAKvDC,EALuD,OAMrClkB,oBAAS,GAN4B,oBAMlEpK,EANkE,KAMtDsP,EANsD,OAOvClF,oBAAS,GAP8B,oBAOlEuM,EAPkE,KAOvDC,EAPuD,KAQnEzG,EAAe,SAACC,GAAW,IAAD,EACRA,EAAMC,OAArB9V,EADuB,EACvBA,KAAM+V,EADiB,EACjBA,MACD,UAAT/V,GACD6zB,EAAY9d,GAERsG,EADDtG,IAAU1X,GAASy1B,IAAcx1B,KAQpCy1B,EAAahe,GAETsG,EADDuX,IAAav1B,GAAS0X,IAAUzX,KAgBvC,OACE,kBAACkT,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACR3I,GAAG,SACH1N,KAAK,QACL+V,MAAS6d,GAAY,GACrBrd,SAAUX,EACVwD,YAAY,SACZ,yCACA,8CACA,+CACA,gDACA,oCAIR,kBAAC3H,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACR3I,GAAK,WACL2L,KAAM,EACN1I,UAAU,eACV3Q,KAAK,SACL+V,MAAS+d,GAAa,GACtBvd,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,2CACdyL,IAAc3W,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA9C1C,SAACjB,GACpBd,GAAc,GACd3W,EAAgBT,EAAWzF,EAAU07B,EAAUE,GAC/C/e,GAAc,GACd1N,MA0CmC,WAC5B5B,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCsDVhB,iBAtH0D,SAAC,GACnD,IAArB0O,EAAoB,EAApBA,MACM7a,GADc,EAAbpO,QACWwa,qBAAW1B,KACrBrI,EAAarC,EAAUoC,WAAvBC,UAFY,EAG6DrC,EAAUsL,gBAApF9D,EAHa,EAGbA,mBAAoB2nB,EAHP,EAGOA,uBAAwB1nB,EAH/B,EAG+BA,eAAgB9M,EAH/C,EAG+CA,WAUnE,OARA6R,qBAAU,WACW,EAAA5L,EAAAY,OAAA,kEAAAZ,EAAA,MACXuuB,EAAuBtU,EAAMC,OAAO3gB,YADzB,yBAAAyG,EAAA,MAEXjG,EAAWkgB,EAAMC,OAAO3gB,YAFb,uCAKlB,CAACg1B,EAAwBx0B,EAAYkgB,EAAMC,OAAO3gB,YAGnD,kBAAC6T,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKd,UAAU,QACb,wBAAIA,UAAU,WAAU,0BAAMkD,MAAO,CAACC,MAAO,SAArB,0BAAxB,WAAqF7I,QAArF,IAAqFA,OAArF,EAAqFA,EAAgBvQ,MAArG,KACA,kBAAC,KAAD,CAAMsZ,GAAE,oCAAwB/I,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAgBvP,WAC9C,kBAACoV,GAAA,EAAD,6BAIH9F,EAAmBtG,KAAI,SAAC6F,EAAYkR,GAAb,OACxB,yBAAKpK,IAAKoK,GACR,kBAAChK,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QACpB,+CAGF,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,SACL+V,MAASxL,EAAWqoB,YACpBpY,UAAQ,MAIbjQ,EAAWE,eACZ,kBAACgH,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,sBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,yBAAKhB,UAAU,kBACf,uBAAGA,UAAU,aAAapG,EAAWE,kBAKxCF,EAAW1T,MACZ,kBAAC4a,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,OAEwB,UAArBpG,EAAWlM,OAAqB,uBAAGsS,UAAU,iDACxB,eAArBpG,EAAWlM,OAA0B,uBAAGsS,UAAU,sDAC7B,gBAArBpG,EAAWlM,OAA2B,uBAAGsS,UAAU,gDAC9B,iBAArBpG,EAAWlM,OAA4B,0BAAMsS,UAAU,aAAhB,OAG1C,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAAC,KAAD,CAAQoE,MAAOxL,EAAW1T,KACxBs2B,cAAiB,aACjBC,UAAW,SAAAv2B,GAAI,OAAIu2B,qBAAUv2B,EAAMw2B,aAAUC,KAC7ClD,QAAS,EACTvW,MAAO,CACL0Z,WAAY,sCACZC,SAAU,GACV/C,gBAAiB,iBAMxBlgB,EAAWI,YACZ,kBAAC8G,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIF,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACvB,uBAAGV,KAAM1G,EAAWM,cAAeiL,OAAO,SAASiD,IAAI,uBAAuBxO,EAAWI,cAI7F,kBAAC8G,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,yBAEE,uBAAGxF,UAAU,sCACTmG,QAAS,kBAAMjR,EAAU,cAAD,OAAe0E,EAAWqoB,YAA1B,eACxB,kBAAC,GAAD,CAAmBj1B,UAAW4M,EAAW/T,GACzC0B,SAAUqS,EAAWrS,SACrBmG,MAASkM,EAAWlM,MACpBC,cAAeiM,EAAWjM,gBACtB,qBAIV,kBAACoT,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,yBAAKhB,UAAU,kBACf,uBAAGA,UAAU,aAAapG,EAAWjM,0BC1ClC01B,GAzEe,SAAC,GAAgB,IAAft4B,EAAc,EAAdA,SAEvBu4B,EADWrkB,qBAAW1B,IACaW,YAAnColB,sBAFqC,EAGlBpkB,mBAAS,IAHS,oBAGrCnV,EAHqC,KAG9BqvB,EAH8B,OAIRla,oBAAS,GAJD,oBAIrCpK,EAJqC,KAIzBsP,EAJyB,OAKNlF,mBAASmF,eAAYC,eALf,oBAKrCC,EALqC,KAKxBC,EALwB,KA4B5C,OACE,kBAAC3D,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,CAAMC,YAAU,GACd,kBAACxE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAASrb,EACT6b,SAjCc,SAACV,GAAW,IAC5BE,EAAUF,EAAMC,OAAhBC,MACRgU,EAAShU,QAmCL,kBAAC,UAAD,CACEb,YAAaA,EACbsB,iBAAiB,gBACjBC,iBAAiB,gBACjBC,gBAAgB,eAChBC,oBA9CoB,SAACC,GAC3BzB,EAAeyB,MA+CX,kBAACnF,GAAA,EAAD,CAAKd,UAAU,2CAEbjW,GAASwa,EAAY2B,sBACpBpR,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1C5B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN,IAAIC,EAAiB/B,EAAY2B,oBACjC9B,GAAc,GACXra,EAAMoJ,OAAS,GAAKmT,GACrBgd,EAAsBv4B,EAAUhB,EAAOyc,KAAYC,wBAAaH,KAC/DI,SAAQ,WACPtC,GAAc,QAkCG,OACdtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBC/DnB8D,GAAgB,CACpB/Z,MAAO,GACP3E,IAAK,IAgFQm+B,GA7Ee,SAAC,GAAgB,IAAfx4B,EAAc,EAAdA,SAEvBy4B,EADWvkB,qBAAW1B,IACaW,YAAnCslB,sBAFqC,EAGhBtkB,mBAAS4E,IAHO,oBAGrCvQ,EAHqC,KAG7B4Q,EAH6B,OAIRjF,oBAAS,GAJD,oBAIrCpK,EAJqC,KAIzBsP,EAJyB,KAMtCa,EAAe,SAACC,GAAW,IAAD,EACNA,EAAMC,OAAtB9V,EADsB,EACtBA,KAAM+V,EADgB,EAChBA,MACdjB,EAAU,gBAAK5Q,EAAN,gBAAelE,EAAO+V,MAejC,OACE,kBAACvE,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,CAAMC,YAAU,GACd,kBAACxE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAAS7R,EAAOxJ,MAChB6b,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,MACL+V,MAAS7R,EAAOnO,IAChBwgB,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,2CAEbzM,EAAOxJ,OAASwJ,EAAOnO,MACtB0P,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QAlD5B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACNjC,GAAc,GACX7Q,EAAOxJ,MAAMoJ,OAAS,GAAKI,EAAOnO,IAAI+N,OAAS,GAChDqwB,EAAsBz4B,EAAUwI,EAAOxJ,MAAOwJ,EAAOnO,KACpDshB,SAAQ,WACPtC,GAAc,QA2CG,OACdtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCnEnBqZ,GAAY,CAChBC,KAAM,EACNvL,QAAS,OACTwL,cAAe,SACfC,WAAY,SACZC,QAAS,OACTC,YAAa,EACbC,aAAc,EACdC,YAAa,UACbC,YAAa,SACbC,gBAAiB,UACjB3W,MAAO,UACP4W,QAAS,OACTC,WAAY,2BAGRC,GAAc,CAClBL,YAAa,WAGTM,GAAc,CAClBN,YAAa,WAGTO,GAAc,CAClBP,YAAa,WA8CA6J,GA3CiB,SAAC,GAAgB,IAAf14B,EAAc,EAAdA,SAEzB24B,EADWzkB,qBAAW1B,IACeW,YAArCwlB,wBAFuC,EAS1CpJ,aAAY,CACdC,OAAQ,iCACRC,SAAU,EACVC,OAAQ,SAAAC,GAEN,IAAIzwB,EAAOywB,EAAc,GACzBgJ,EAAwB34B,EAAUd,EAAKoF,KAAMpF,MAX/C0wB,EAJ4C,EAI5CA,aACAC,EAL4C,EAK5CA,cACAC,EAN4C,EAM5CA,aACAC,EAP4C,EAO5CA,aACAC,EAR4C,EAQ5CA,aAWI7X,EAAQ8X,mBAAQ,kCACjB3B,GADiB,GAEhBwB,EAAeZ,GAAc,GAFb,GAGhBa,EAAeZ,GAAc,GAHb,GAIhBa,EAAeZ,GAAc,MAC/B,CACFU,EACAE,EACAD,IAGF,OACE,wBAASH,EAAa,CAACzX,UACrB,0BAAW0X,KAETC,EACE,sDACA,uFAEJ,mEClDS8I,GAhBa,SAAC,GAAe,IAAdp6B,EAAa,EAAbA,QAC5B,OACE,kBAACsX,GAAA,EAAD,KAEA,kBAACJ,GAAA,EAAD,KACE,kBAACA,GAAA,EAAKX,KAAN,KACE,uBAAGE,UAAU,YACVzW,GAAWoX,aAAMpX,QC+Hbq6B,GArIM,SAAC,GAAgD,IAA/C74B,EAA8C,EAA9CA,SAAUJ,EAAoC,EAApCA,MAAOH,EAA6B,EAA7BA,MAAOC,EAAsB,EAAtBA,KAAMd,EAAgB,EAAhBA,WAE5CyB,EADW6T,qBAAW1B,IACCW,YAAvB9S,UAF4D,EAGnC8T,mBAASvU,GAH0B,oBAG5D0xB,EAH4D,KAGlDC,EAHkD,OAInCpd,mBAAS1U,GAJ0B,oBAI5Dq5B,EAJ4D,KAIlDC,EAJkD,OAKrC5kB,mBAAS,IAAI/F,KAAK1O,GAAMuZ,cAAcC,UAAU,EAAG,KALd,oBAK5D8f,EAL4D,KAKnDC,EALmD,OAMzB9kB,mBAASvV,GANgB,oBAM5D0xB,EAN4D,KAM7CC,EAN6C,OAO/Bpc,oBAAS,GAPsB,oBAO5DpK,EAP4D,KAOhDsP,EAPgD,OAQjClF,oBAAS,GARwB,oBAQ5DuM,EAR4D,KAQjDC,EARiD,KAkC7DuY,EAAkB,WAEpBvY,EADE2Q,IAAa1xB,GAASo5B,IAAYt5B,GAAQ4wB,IAAkB1xB,IAiBlE,OACE,kBAACkX,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,CAACqP,KAAK,EAAGC,OAAO,GAAI9S,GAAI,CAAC6S,KAAK,EAAGC,OAAO,GAAI7T,GAAI,GACvD,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,aAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAASiX,EACTzW,SAzDY,SAACV,GAAW,IAC7BE,EAASF,EAAMC,OAAfC,MACPkX,EAAYlX,GACZ6e,SA0DM,kBAACnjB,GAAA,EAAD,CAAKd,UAAU,cACf,kBAACe,GAAA,EAAD,CAAKwE,GAAI,CAACqP,KAAK,EAAGC,OAAO,GAAI9S,GAAI,CAAC6S,KAAK,EAAGC,OAAO,GAAI7T,GAAI,GACvD,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIF,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,QACL+V,MAASye,EACTje,SAlEc,SAACV,GAAW,IAC7BE,EAASF,EAAMC,OAAfC,MACP0e,EAAY1e,GACZ6e,SAmEM,kBAACnjB,GAAA,EAAD,CAAKd,UAAU,cACf,kBAACe,GAAA,EAAD,CAAKwE,GAAI,CAACqP,KAAK,EAAGC,OAAO,GAAI9S,GAAI,CAAC6S,KAAK,EAAGC,OAAO,GAAI7T,GAAI,GACvD,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,SAIF,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,OACL+V,MAAS2e,EACTne,SA3Ea,SAACV,GAAW,IAC5BE,EAASF,EAAMC,OAAfC,MACP4e,EAAW5e,GACX6e,SA4EI,kBAACnjB,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,CAACqP,KAAK,EAAGC,OAAO,GAAI9S,GAAI,CAAC6S,KAAK,EAAGC,OAAO,GAAI7T,GAAI,GACvD,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIF,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,aACL+V,MAASiW,EACTzV,SApFmB,SAACV,GAAW,IAClCE,EAASF,EAAMC,OAAfC,MACPkW,EAAiBlW,GACjB6e,SAqFM,kBAACnjB,GAAA,EAAD,CAAKd,UAAU,2CACdyL,IAAc3W,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA3E1C,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACNjC,GAAc,GACdhZ,EAAUL,EAAUsxB,EAAUwH,EAAUE,EAAS1I,GAChD3U,SAAQ,WACPtC,GAAc,QAqEmB,WAC5BtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBC3DVkkB,GA3DgB,SAAC,GAA+B,IAA9BC,EAA6B,EAA7BA,iBAAkBx5B,EAAW,EAAXA,MAE1CD,EADWuU,qBAAW1B,IACQW,YAA9BxT,iBAFqD,EAG5BwU,mBAASvU,GAHmB,oBAGrD0xB,EAHqD,KAG3CC,EAH2C,OAIxBpd,oBAAS,GAJe,oBAIrDpK,EAJqD,KAIzCsP,EAJyC,OAK1BlF,oBAAS,GALiB,oBAKrDuM,EALqD,KAK1CC,EAL0C,KAuB5D,OACE,kBAAC7K,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,aACL+V,MAASiX,EACTzW,SA/BO,SAACV,GAAW,IACxBE,EAASF,EAAMC,OAAfC,MACPkX,EAAYlX,GAEVsG,KADCtG,GAASA,IAAUza,SAgChB,kBAACmW,GAAA,EAAD,CAAKd,UAAU,2CACdyL,IAAc3W,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1B1C,SAACjB,GACpBd,GAAc,GACd1Z,EAAiBy5B,EAAkBjrB,SAASmjB,IAC5CjY,GAAc,KAuBqB,WAC5BtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBChCnB8D,GAAgB,CACpB1C,WAAY,GACZxY,WAAY,GACZ6B,KAAM,IAAI0O,MA4JG6F,iBAzJ+D,SAAC,GACxD,IAAD,IAApB0O,EAAoB,EAApBA,MACM7a,GADc,EAAbpO,QACWwa,qBAAW1B,KADT,EAEuC1K,EAAUqL,YAA9D5S,EAFa,EAEbA,cAAe84B,EAFF,EAEEA,kBAAmB/5B,EAFrB,EAEqBA,eACjC6K,EAAarC,EAAUoC,WAAvBC,UAHY,EAIQgK,mBAAS4E,IAJjB,oBAIbvQ,EAJa,KAIL4Q,EAJK,KAMpB9E,qBAAU,WAWLqO,EAAMC,OAAO5iB,UAVG,mBAAA0I,EAAAY,OAAA,kEAAAZ,EAAA,MACE2wB,EAAkB1W,EAAMC,OAAO5iB,WADjC,QACbiN,EADa,SAGfmM,EAAU,CACR/C,WAAYpJ,EAAOoJ,WACnBxY,WAAYoP,EAAOpP,WACnB6B,KAAM,IAAI0O,KAAKnB,EAAOvN,QANT,qCAWjBmf,KAED,CAACwa,EAAmB1W,EAAMC,OAAO5iB,WAqBpC,OACE,yBAAKiV,UAAU,WACb,yBAAKkD,MAAO,CAAC6K,QAAS,SACtB,wBAAI/N,UAAW,wBAAf,WAAgDzM,EAAO6N,YACvD,kBAAC,KAAD,CAAMiC,GAAE,qBAAgB9P,EAAO3K,aAC3B,kBAACuX,GAAA,EAAD,yBAGJ,kBAACW,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,aAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,OACG7X,QADH,IACGA,OADH,EACGA,EAAeX,MAChB,uBAAGqV,UAAU,sCACTmG,QAAS,kBAAMjR,EAAU,gBACzB,kBAAC,GAAD,CAAcnK,SAAU2iB,EAAMC,OAAO5iB,SACrCJ,MAAK,OAAEW,QAAF,IAAEA,OAAF,EAAEA,EAAeX,MAAOH,MAAK,OAAEc,QAAF,IAAEA,OAAF,EAAEA,EAAed,MAAOC,KAAI,OAAEa,QAAF,IAAEA,OAAF,EAAEA,EAAeb,KAAMd,WAAU,OAAE2B,QAAF,IAAEA,OAAF,EAAEA,EAAe3B,aAAe,sBAKzI,kBAACmX,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,UAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,OACG7X,QADH,IACGA,OADH,EACGA,EAAed,SAItB,kBAACsW,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,SAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,UACC5P,EAAO9I,YADR,aACC,EAAauZ,cAAckS,OAAO,EAAG,OAI1C,kBAACpV,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,gBAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,OACG7X,QADH,IACGA,OADH,EACGA,EAAe3B,cAKtB,yBAAKqW,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACrC,wBAAI/N,UAAU,UAAUkD,MAAO,CAACC,MAAM,aAAtC,aACA,uBAAGnD,UAAU,sDACXmG,QAAS,kBAAMjR,EAAU,0BAA2B,kBAAC,GAAD,CAAuBnK,SAAU2iB,EAAMC,OAAO5iB,WAAa,mBAEjH,uBAAGiV,UAAU,sDACXmG,QAAS,kBAAMjR,EAAU,0BAA2B,kBAAC,GAAD,CAAuBnK,SAAU2iB,EAAMC,OAAO5iB,WAAa,mBAEjH,uBAAGiV,UAAU,2DACXmG,QAAS,kBAAMjR,EAAU,gCAAiC,kBAAC,GAAD,CAAyBnK,SAAU2iB,EAAMC,OAAO5iB,WAAa,oBAG3H,kBAACqiB,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,uCAGJ,sCACG1U,QADH,IACGA,OADH,YACGA,EAAe+N,uBADlB,aACG,EAAgCkH,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE9I,MAAQ+I,EAAE/I,MAAQ,GAAK,KAChFoJ,KAAI,SAAAqF,GAAc,OACjB,wBAAIsH,IAAKtH,EAAevT,IACxB,4BAAKuT,EAAezO,MAClB,uBAAGqV,UAAU,sCACXmG,QAAS,kBAAMjR,EAAU,iBAAD,OAAkBkE,EAAerP,OACzD,kBAAC,GAAD,CAAwBo6B,iBAAkB/qB,EAAevT,GAAI8E,MAAOyO,EAAezO,MAAMuiB,aAAgB,oBAG7G,4BACG9T,EAAehU,KACd,uBAAGkb,KAAMlH,EAAehU,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBhP,EAAerP,QAEvFqP,EAAehU,KACf,0BAAM4a,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,YAAD,OAAakE,EAAerP,OAAS,kBAAC,GAAD,CAAqBR,QAAS6P,EAAe7P,UAAY,kBACnH6P,EAAerP,OAGpB,uBAAGiW,UAAU,yCAAyCmG,QAAS,kBAxH7CtgB,EAwHwEuT,EAAevT,QAvHnH2nB,wBAAa,CACXzjB,MAAO,oBACP1F,QAAS,sCACTopB,QAAS,CACP,CACE1D,MAAO,MACP5D,QAAS,WACP9b,EAAeqjB,EAAMC,OAAO5iB,SAAUlF,KAG1C,CACEkkB,MAAO,KACP5D,QAAS,iBAbY,IAACtgB,gBCpC1Bie,GAAgB,CACpB1C,WAAY,GACZxY,WAAY,GACZ6B,KAAM,IAAI0O,MAwHGkrB,GArHiE,SAAC,GAC1D,IAAD,IAApB3W,EAAoB,EAApBA,MACM7a,GADc,EAAbpO,QACWwa,qBAAW1B,KADT,EAE8B1K,EAAUqL,YAArD5S,EAFa,EAEbA,cAAeg5B,EAFF,EAEEA,yBACdpvB,EAAarC,EAAUoC,WAAvBC,UAHY,EAIQgK,mBAAS4E,IAJjB,oBAIbvQ,EAJa,KAIL4Q,EAJK,KAsBpB,OAhBA9E,qBAAU,WAWLqO,EAAMC,OAAO5iB,UAVG,mBAAA0I,EAAAY,OAAA,kEAAAZ,EAAA,MACE6wB,EAAyB5W,EAAMC,OAAO5iB,WADxC,QACbiN,EADa,SAGfmM,EAAU,CACR/C,WAAYpJ,EAAOoJ,WACnBxY,WAAYoP,EAAOpP,WACnB6B,KAAM,IAAI0O,KAAKnB,EAAOvN,QANT,qCAWjBmf,KAED,CAAC0a,EAA0B5W,EAAMC,OAAO5iB,WAGzC,yBAAKiV,UAAU,WACb,yBAAKkD,MAAO,CAAC6K,QAAS,SACtB,wBAAI/N,UAAW,wBAAf,WAAgDzM,EAAO6N,YACvD,kBAAC,KAAD,CAAMiC,GAAE,qBAAgB9P,EAAO3K,aAC3B,kBAACuX,GAAA,EAAD,yBAGJ,kBAACW,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,aAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,OACG7X,QADH,IACGA,OADH,EACGA,EAAeX,SAItB,kBAACmW,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,UAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,OACG7X,QADH,IACGA,OADH,EACGA,EAAed,SAItB,kBAACsW,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,SAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,UACC5P,EAAO9I,YADR,aACC,EAAauZ,cAAckS,OAAO,EAAG,OAI1C,kBAACpV,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,gBAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,OACG7X,QADH,IACGA,OADH,EACGA,EAAe3B,cAItB,kBAACmX,GAAA,EAAD,MAIA,yBAAKd,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACrC,wBAAI/N,UAAU,UAAUkD,MAAO,CAACC,MAAM,aAAtC,cAEF,kBAACiK,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,uCAGJ,sCACG1U,QADH,IACGA,OADH,YACGA,EAAe+N,uBADlB,aACG,EAAgCkH,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE9I,MAAQ+I,EAAE/I,MAAQ,GAAK,KAChFoJ,KAAI,SAAAqF,GAAc,OACjB,wBAAIsH,IAAKtH,EAAevT,IACxB,4BAAKuT,EAAezO,OACpB,4BACGyO,EAAehU,KACd,uBAAGkb,KAAMlH,EAAehU,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBhP,EAAerP,QAEvFqP,EAAehU,KACf,0BAAM4a,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,YAAD,OAAakE,EAAerP,OAAS,kBAAC,GAAD,CAAqBR,QAAS6P,EAAe7P,UAAY,kBACnH6P,EAAerP,gBC/G5B+Z,GAAgB,CACpB1C,WAAY,GACZxY,WAAY,GACZ6B,KAAM,IAAI0O,MAwHGorB,GArH+D,SAAC,GACxD,IAAD,IAApB7W,EAAoB,EAApBA,MACM7a,GADc,EAAbpO,QACWwa,qBAAW1B,KADT,EAE8B1K,EAAUqL,YAArD5S,EAFa,EAEbA,cAAeg5B,EAFF,EAEEA,yBACdpvB,EAAarC,EAAUoC,WAAvBC,UAHY,EAIQgK,mBAAS4E,IAJjB,oBAIbvQ,EAJa,KAIL4Q,EAJK,KAsBpB,OAhBA9E,qBAAU,WAWLqO,EAAMC,OAAO5iB,UAVG,mBAAA0I,EAAAY,OAAA,kEAAAZ,EAAA,MACE6wB,EAAyB5W,EAAMC,OAAO5iB,WADxC,QACbiN,EADa,SAGfmM,EAAU,CACR/C,WAAYpJ,EAAOoJ,WACnBxY,WAAYoP,EAAOpP,WACnB6B,KAAM,IAAI0O,KAAKnB,EAAOvN,QANT,qCAWjBmf,KAED,CAAC0a,EAA0B5W,EAAMC,OAAO5iB,WAGzC,yBAAKiV,UAAU,WACb,yBAAKkD,MAAO,CAAC6K,QAAS,SACtB,wBAAI/N,UAAW,wBAAf,WAAgDzM,EAAO6N,YACvD,kBAAC,KAAD,CAAMiC,GAAE,qBAAgB9P,EAAO3K,aAC3B,kBAACuX,GAAA,EAAD,yBAGJ,kBAACW,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,aAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,OACG7X,QADH,IACGA,OADH,EACGA,EAAeX,SAItB,kBAACmW,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,UAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,OACG7X,QADH,IACGA,OADH,EACGA,EAAed,SAItB,kBAACsW,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,SAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,UACC5P,EAAO9I,YADR,aACC,EAAauZ,cAAckS,OAAO,EAAG,OAI1C,kBAACpV,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,gBAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,OACG7X,QADH,IACGA,OADH,EACGA,EAAe3B,cAItB,kBAACmX,GAAA,EAAD,MAIA,yBAAKd,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACrC,wBAAI/N,UAAU,UAAUkD,MAAO,CAACC,MAAM,aAAtC,cAEF,kBAACiK,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,uCAGJ,sCACG1U,QADH,IACGA,OADH,YACGA,EAAe+N,uBADlB,aACG,EAAgCkH,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE9I,MAAQ+I,EAAE/I,MAAQ,GAAK,KAChFoJ,KAAI,SAAAqF,GAAc,OACjB,wBAAIsH,IAAKtH,EAAevT,IACxB,4BAAKuT,EAAezO,OACpB,4BACGyO,EAAehU,KACd,uBAAGkb,KAAMlH,EAAehU,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBhP,EAAerP,QAEvFqP,EAAehU,KACf,0BAAM4a,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,YAAD,OAAakE,EAAerP,OAAS,kBAAC,GAAD,CAAqBR,QAAS6P,EAAe7P,UAAY,kBACnH6P,EAAerP,gBC/G5B+Z,GAAgB,CACpB1C,WAAY,GACZxY,WAAY,GACZ6B,KAAM,IAAI0O,MAuHGqrB,GApH6D,SAAC,GACtD,IAAD,IAApB9W,EAAoB,EAApBA,MACM7a,GADc,EAAbpO,QACWwa,qBAAW1B,KADT,EAEuB1K,EAAUqL,YAA9C5S,EAFa,EAEbA,cAAe84B,EAFF,EAEEA,kBACdlvB,EAAarC,EAAUoC,WAAvBC,UAHY,EAIQgK,mBAAS4E,IAJjB,oBAIbvQ,EAJa,KAIL4Q,EAJK,KAsBpB,OAhBA9E,qBAAU,WAWLqO,EAAMC,OAAO5iB,UAVG,mBAAA0I,EAAAY,OAAA,kEAAAZ,EAAA,MACE2wB,EAAkB1W,EAAMC,OAAO5iB,WADjC,QACbiN,EADa,SAGfmM,EAAU,CACR/C,WAAYpJ,EAAOoJ,WACnBxY,WAAYoP,EAAOpP,WACnB6B,KAAM,IAAI0O,KAAKnB,EAAOvN,QANT,qCAWjBmf,KAED,CAACwa,EAAmB1W,EAAMC,OAAO5iB,WAGlC,kBAAC8V,GAAA,EAAD,CAAWb,UAAU,WACnB,yBAAKkD,MAAO,CAAC6K,QAAS,SACtB,wBAAI/N,UAAW,wBAAf,WAAgDzM,EAAO6N,YACvD,kBAAC,KAAD,CAAMiC,GAAE,qBAAgB9P,EAAO3K,aAC3B,kBAACuX,GAAA,EAAD,yBAGJ,kBAACW,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,aAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,OACG7X,QADH,IACGA,OADH,EACGA,EAAeX,SAItB,kBAACmW,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,UAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,OACG7X,QADH,IACGA,OADH,EACGA,EAAed,SAItB,kBAACsW,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,SAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,UACC5P,EAAO9I,YADR,aACC,EAAauZ,cAAckS,OAAO,EAAG,OAI1C,kBAACpV,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,aAAnB,gBAIF,kBAACpC,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,wBAAIkC,MAAO,CAACC,MAAO,WAAnB,OACG7X,QADH,IACGA,OADH,EACGA,EAAe3B,cAItB,kBAACmX,GAAA,EAAD,MAIA,yBAAKd,UAAU,OAAOkD,MAAO,CAAC6K,QAAS,SACrC,wBAAI/N,UAAU,UAAUkD,MAAO,CAACC,MAAM,aAAtC,cAEF,kBAACiK,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,iCACA,uCAGJ,sCACG1U,QADH,IACGA,OADH,YACGA,EAAe+N,uBADlB,aACG,EAAgCtF,KAAI,SAACqF,EAAgB0R,GAAjB,OACnC,wBAAIpK,IAAKtH,EAAevT,IACxB,4BAAKilB,EAAM,GACX,4BACG1R,EAAehU,KACd,uBAAGkb,KAAMlH,EAAehU,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBhP,EAAerP,QAEvFqP,EAAehU,KACf,0BAAM4a,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,YAAD,OAAakE,EAAerP,OAAS,kBAAC,GAAD,CAAqBR,QAAS6P,EAAe7P,UAAY,kBACnH6P,EAAerP,gBC7BnB06B,I,MAlFU,SAAC,GAAkB,IAAjB77B,EAAgB,EAAhBA,WAElB+F,EADWsQ,qBAAW1B,IACGe,QAAzB3P,YAFkC,EAGfuQ,mBAAS,IAHM,oBAGlC1U,EAHkC,KAG3BoF,EAH2B,OAIPsP,oBAAS,GAJF,oBAIlCtQ,EAJkC,KAIvB81B,EAJuB,OAKLxlB,oBAAS,GALJ,oBAKlCpK,EALkC,KAKtBsP,EALsB,OAMHlF,mBAASmF,eAAYC,eANlB,oBAMlCC,EANkC,KAMrBC,EANqB,KAiCzC,OACE,kBAAC3D,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,CAAMC,YAAU,GACd,kBAACxE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,UAAUhP,QAASnM,EACnDS,KAAK,YAAYuW,SAvBF,SAACV,GAC1Bwf,EAAaxf,EAAMC,OAAOpK,aAwBpB,kBAACgG,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIF,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,EAAGf,GAAI,GACtB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAAS5a,EACTob,SAzCc,SAACV,GAAW,IAC5BE,EAAUF,EAAMC,OAAhBC,MACRxV,EAASwV,QA2CL,kBAAC,UAAD,CACEb,YAAaA,EACbsB,iBAAiB,gBACjBC,iBAAiB,gBACjBC,gBAAgB,eAChBC,oBAtDoB,SAACC,GAC3BzB,EAAeyB,MAuDX,kBAACnF,GAAA,EAAD,CAAKd,UAAU,2CAEbxV,GAAS+Z,EAAY2B,sBACpBpR,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA9C5B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN,IAAIC,EAAiB/B,EAAY2B,oBACjC9B,GAAc,GACX5Z,EAAM2I,OAAS,GAAKmT,GACrB3X,EAAY/F,EAAY4B,EAAOoE,EAAW4X,KAAYC,wBAAaH,KAClEI,SAAQ,WACPtC,GAAc,QAsCG,OACdtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,sBCtEZ2kB,GAAkC,SAACC,GAC9C,IAAIn6B,EAAO,IAAI0O,KAAKyrB,GAEpB,OADc,IAAIzrB,KAAK1O,EAAKo6B,UAAqC,GAAzBp6B,EAAKq6B,oBAAuB,KACrDjM,qBAAqB5U,UAAU,EAAG,KAGtC8gB,GAAkC,SAACH,GAC9C,IAAIn6B,EAAO,IAAI0O,KAAKyrB,GAEpB,OADc,IAAIzrB,KAAK1O,EAAKo6B,UAAqC,GAAzBp6B,EAAKq6B,oBAAuB,KACrDE,eAAe/gB,UAAU,EAAG,ICqE9BjF,iBAtEmD,SAAC,GAC5C,IAArB0O,EAAoB,EAApBA,MACQ7a,GADY,EAAbpO,QACawa,qBAAW1B,KADX,EAEkB1K,EAAUyL,QAAvCpD,EAFW,EAEXA,OAAQ+pB,EAFG,EAEHA,kBACR/vB,EAAarC,EAAUoC,WAAvBC,UAWT,OATEmK,qBAAU,WAILqO,EAAMC,OAAO/kB,YAHG,EAAA6K,EAAAY,OAAA,kEAAAZ,EAAA,MACXwxB,EAAkBvX,EAAMC,OAAO/kB,aADpB,uCAMlB,CAACq8B,EAAmBvX,EAAMC,OAAO/kB,aAGpC,yBAAKoX,UAAU,oBACb,yBAAKkD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAU,wBAAd,iBAAmD,0BAAMkD,MAAO,CAACC,MAAO,YAArB,OAAkCjI,QAAlC,IAAkCA,OAAlC,EAAkCA,EAAQkG,aAC7F,kBAAC,KAAD,CAAMiC,GAAE,qBAAgBqK,EAAMC,OAAO/kB,aACnC,kBAACuX,GAAA,EAAD,wBAGJ,kBAACW,GAAA,EAAD,KACE,uBAAGd,UAAU,sDACXmG,QAAS,kBAAMjR,EAAU,eAAgB,kBAAC,GAAD,CAAkBtM,WAAY8kB,EAAMC,OAAO/kB,aAAe,qBAIvG,kBAACwkB,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACtN,UAAU,QAChC,+BACE,4BACE,uCACA,oCACA,wCACA,qCACA,4CACA,0CACA,wCAGJ,sCACC9E,QADD,IACCA,OADD,EACCA,EAAQI,UAAUiF,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEhJ,KAAOiJ,EAAEjJ,KAAO,GAAK,KAChEsJ,KAAI,SAACsH,EAAUyP,GAAX,OACL,wBAAIpK,IAAKoK,GACP,4BAAKzP,EAAS6pB,cACd,4BAAKP,GAAgCtpB,EAAS5Q,OAC9C,4BAAK4Q,EAASzM,UAAY,MAAQ,MAClC,4BACE,kBAAC,KAAD,CAAMyU,GAAE,4BAAuBhI,EAAS3M,aACvC2M,EAAS7Q,QAGZ,4BACG6Q,EAAS8pB,gBAAkBR,GAAgCtpB,EAAS5Q,MAAQ,IAE/E,4BACG4Q,EAAS+pB,aAEZ,4BACG/pB,EAASsV,OAAS,uBAAG3Q,UAAU,yCAA2C,cCUxEhB,iBAtEqD,SAAC,GAC9C,IAArB0O,EAAoB,EAApBA,MACQ7a,GADY,EAAbpO,QACawa,qBAAW1B,KADX,EAEkB1K,EAAUyL,QAAvCpD,EAFW,EAEXA,OAAQ+pB,EAFG,EAEHA,kBACR/vB,EAAarC,EAAUoC,WAAvBC,UAWT,OATEmK,qBAAU,WAILqO,EAAMC,OAAO/kB,YAHG,EAAA6K,EAAAY,OAAA,kEAAAZ,EAAA,MACXwxB,EAAkBvX,EAAMC,OAAO/kB,aADpB,uCAMlB,CAACq8B,EAAmBvX,EAAMC,OAAO/kB,aAGpC,yBAAKoX,UAAU,oBACb,yBAAKkD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAU,wBAAd,iBAAmD,0BAAMkD,MAAO,CAACC,MAAO,YAArB,OAAkCjI,QAAlC,IAAkCA,OAAlC,EAAkCA,EAAQkG,aAC7F,kBAAC,KAAD,CAAMiC,GAAE,qBAAgBqK,EAAMC,OAAO/kB,aACnC,kBAACuX,GAAA,EAAD,wBAGJ,kBAACW,GAAA,EAAD,KACE,uBAAGd,UAAU,sDACXmG,QAAS,kBAAMjR,EAAU,eAAgB,kBAAC,GAAD,CAAkBtM,WAAY8kB,EAAMC,OAAO/kB,aAAe,qBAIvG,kBAACwkB,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACtN,UAAU,QAChC,+BACE,4BACE,uCACA,oCACA,wCACA,qCACA,4CACA,0CACA,wCAGJ,sCACC9E,QADD,IACCA,OADD,EACCA,EAAQI,UAAUiF,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEhJ,KAAOiJ,EAAEjJ,KAAO,GAAK,KAChEsJ,KAAI,SAACsH,EAAUyP,GAAX,OACL,wBAAIpK,IAAKoK,GACP,4BAAKzP,EAAS6pB,cACd,4BAAKP,GAAgCtpB,EAAS5Q,OAC9C,4BAAK4Q,EAASzM,UAAY,MAAQ,MAClC,4BACE,kBAAC,KAAD,CAAMyU,GAAE,4BAAuBhI,EAAS3M,aACvC2M,EAAS7Q,QAGZ,4BACG6Q,EAAS8pB,gBAAkBR,GAAgCtpB,EAAS5Q,MAAQ,IAE/E,4BACG4Q,EAAS+pB,aAEZ,4BACG/pB,EAASsV,OAAS,uBAAG3Q,UAAU,yCAA2C,cCMxEhB,iBAlEmD,SAAC,GAC5C,IAArB0O,EAAoB,EAApBA,MACQ7a,GADY,EAAbpO,QACawa,qBAAW1B,KADX,EAEkB1K,EAAUyL,QAAvCpD,EAFW,EAEXA,OAAQmqB,EAFG,EAEHA,kBACRnwB,EAAarC,EAAUoC,WAAvBC,UAWT,OATEmK,qBAAU,WAILqO,EAAMC,OAAO/kB,YAHG,EAAA6K,EAAAY,OAAA,kEAAAZ,EAAA,MACX4xB,EAAkB3X,EAAMC,OAAO/kB,aADpB,uCAMlB,CAACy8B,EAAmB3X,EAAMC,OAAO/kB,aAGpC,yBAAKoX,UAAU,WACb,yBAAKkD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAU,wBAAd,iBAAmD,0BAAMkD,MAAO,CAACC,MAAO,YAArB,OAAkCjI,QAAlC,IAAkCA,OAAlC,EAAkCA,EAAQkG,aAC7F,kBAAC,KAAD,CAAMiC,GAAE,qBAAgBqK,EAAMC,OAAO/kB,aACnC,kBAACuX,GAAA,EAAD,wBAGJ,kBAACW,GAAA,EAAD,KACE,uBAAGd,UAAU,sDACXmG,QAAS,kBAAMjR,EAAU,eAAgB,kBAAC,GAAD,CAAkBtM,WAAY8kB,EAAMC,OAAO/kB,aAAe,qBAIvG,kBAACwkB,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACtN,UAAU,QAChC,+BACE,4BACE,uCACA,oCACA,wCACA,qCACA,4CACA,4CAGJ,sCACC9E,QADD,IACCA,OADD,EACCA,EAAQI,UAAUiF,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEhJ,KAAOiJ,EAAEjJ,KAAO,GAAK,KAChEsJ,KAAI,SAACsH,EAAUyP,GAAX,OACL,wBAAIpK,IAAKoK,GACP,4BAAKzP,EAAS6pB,cACd,4BAAKP,GAAgCtpB,EAAS5Q,OAC9C,4BAAK4Q,EAASzM,UAAY,MAAQ,MAClC,4BACE,kBAAC,KAAD,CAAMyU,GAAE,4BAAuBhI,EAAS3M,aACvC2M,EAAS7Q,QAGZ,4BACG6Q,EAAS8pB,gBAAkBR,GAAgCtpB,EAAS8pB,iBAAmB,IAE1F,4BACG9pB,EAAS+pB,uBCVPE,GAnDQ,SAAC,GAAkB,IAAjB52B,EAAgB,EAAhBA,WAEhBG,EADWoQ,qBAAW1B,IACCe,QAAvBzP,UAFgC,EAGHqQ,oBAAS,GAHN,oBAGhCpK,EAHgC,KAGpBsP,EAHoB,OAIDlF,mBAASmF,eAAYC,eAJpB,oBAIhCC,EAJgC,KAInBC,EAJmB,KAsBvC,OACE,kBAAC3D,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,CAAMC,YAAU,GACd,kBAAC,UAAD,CACEf,YAAaA,EACbsB,iBAAiB,gBACjBC,iBAAiB,gBACjBC,gBAAgB,eAChBC,oBAzBoB,SAACC,GAC3BzB,EAAeyB,MA0BX,kBAACnF,GAAA,EAAD,CAAKd,UAAU,2CAEbuE,EAAY2B,sBACXpR,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1B5B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN,IAAIC,EAAiB/B,EAAY2B,oBACjC9B,GAAc,GACXkC,GACDzX,EAAUH,EAAY8X,KAAYC,wBAAaH,KAC9CI,SAAQ,WACPtC,GAAc,QAkBG,OACdtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCyBVulB,GA5DW,SAAC,GAAyB,IAAxBx2B,EAAuB,EAAvBA,SAAU1K,EAAa,EAAbA,QAE7ByK,EADWmQ,qBAAW1B,IACIe,QAA1BxP,aAF0C,EAGboQ,oBAAS,GAHI,oBAG1CpK,EAH0C,KAG9BsP,EAH8B,OAIXlF,mBAASmF,eAAYC,eAJV,oBAI1CC,EAJ0C,KAI7BC,EAJ6B,KAQjDnF,qBAAU,WACR,GAAGhb,EAAS,CACV,IAAMogB,EAAiBC,KAAYrgB,GAC7BsgB,EAAQC,gBAAaC,qBACzBJ,EAAeK,cACfL,EAAeM,WAEjBP,EAAeH,eAAYW,kBAAkBL,OAE9C,CAACtgB,IAcJ,OACE,kBAACwc,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,CAAMC,YAAU,GACd,kBAAC,UAAD,CACEf,YAAaA,EACbsB,iBAAiB,gBACjBC,iBAAiB,gBACjBC,gBAAgB,eAChBC,oBAlCoB,SAACC,GAC3BzB,EAAeyB,MAmCX,kBAACnF,GAAA,EAAD,CAAKd,UAAU,2CAEbuE,EAAY2B,sBACXpR,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1B5B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN,IAAIC,EAAiB/B,EAAY2B,oBACjC9B,GAAc,GACXkC,GACDxX,EAAaC,EAAUyX,KAAYC,wBAAaH,KAC/CI,SAAQ,WACPtC,GAAc,QAkBG,UACdtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCwBVhB,iBAhE4D,SAAC,GACrD,IAAD,EAApB0O,EAAoB,EAApBA,MAAOjpB,EAAa,EAAbA,QACCoO,EAAYoM,qBAAW1B,IADX,EAEsB1K,EAAUyL,QAA3ClD,EAFW,EAEXA,gBAAiBoqB,EAFN,EAEMA,aACjBtwB,EAAarC,EAAUoC,WAAvBC,UAYP,OAVAmK,qBAAU,WAILqO,EAAMC,OAAOjf,YAHG,EAAA+E,EAAAY,OAAA,kEAAAZ,EAAA,MACX+xB,EAAa9X,EAAMC,OAAOjf,aADf,uCAMlB,CAAC82B,EAAc9X,EAAMC,OAAOjf,aAI7B,kBAACmS,GAAA,EAAD,KACI,kBAACJ,GAAA,EAAD,CAAMT,UAAU,uBACd,kBAACS,GAAA,EAAKf,OAAN,KACE,yBAAKwD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAU,qBAAd,OAAmC5E,QAAnC,IAAmCA,OAAnC,EAAmCA,EAAiB5Q,OACpD,kBAAC2V,GAAA,EAAD,CAAQH,UAAU,OAClBmG,QAAS,kBAAM1hB,EAAQu0B,WADvB,eAGA,kBAAC7Y,GAAA,EAAD,CAAQC,QAAQ,OAChB+F,QAAS,kBAAMjR,EAAU,qBAAD,cAAsBkG,QAAtB,IAAsBA,OAAtB,EAAsBA,EAAiB5Q,OAC/D,kBAAC,GAAD,CAAgBkE,WAAYgf,EAAMC,OAAOjf,aAAe,mBAFxD,WAOJ,kBAAC+R,GAAA,EAAKX,KAAN,CAAWE,UAAU,YACnB,kBAACS,GAAA,EAAKb,MAAN,CAAYI,UAAU,UAAtB,OAAgC5E,QAAhC,IAAgCA,OAAhC,EAAgCA,EAAiB8pB,aAAjD,cACG9pB,EAAkBupB,GAAgCvpB,EAAgB3Q,MAAQ,GAD7E,OAGG2Q,EAAkB2pB,GAAgC3pB,EAAgB3Q,MAAQ,IAE5E2Q,EAAkBuF,aAAK,OAACvF,QAAD,IAACA,OAAD,EAACA,EAAiB/W,SAAU,KArB5D,OAwBK+W,QAxBL,IAwBKA,OAxBL,YAwBKA,EAAiBG,eAxBtB,aAwBK,EAA0BgF,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEhJ,KAAOiJ,EAAEjJ,KAAO,GAAI,KACvEsJ,KAAI,SAACyB,EAAQgL,GAAT,OACH,kBAACC,GAAA,EAAD,CAAMC,IAAKF,EAAKzB,KAAMyB,EAAM,IAAM,EAAI,UAAY,YAClDR,UAAU,QACV,kBAACS,GAAA,EAAKX,KAAN,KACE,kBAACW,GAAA,EAAKb,MAAN,CAAYI,UAAU,WAAWxK,EAAO0vB,aAAxC,cACGP,GAAgCnvB,EAAO/K,MAD1C,OAGGs6B,GAAgCvvB,EAAO/K,MACxC,kBAAC0V,GAAA,EAAD,CAAQH,UAAU,OAAOI,QAAQ,UACjC+F,QAAS,kBAAMjR,EAAU,qBAAD,cAAsBkG,QAAtB,IAAsBA,OAAtB,EAAsBA,EAAiB5Q,OAC/D,kBAAC,GAAD,CAAmBuE,SAAUyG,EAAOzG,SAAU1K,QAASmR,EAAOnR,UAAY,mBAF1E,WAMDsc,aAAMnL,EAAOnR,kBCQb2a,iBAhE4D,SAAC,GACrD,IAAD,EAApB0O,EAAoB,EAApBA,MAAOjpB,EAAa,EAAbA,QACCoO,EAAYoM,qBAAW1B,IADX,EAEsB1K,EAAUyL,QAA3ClD,EAFW,EAEXA,gBAAiBoqB,EAFN,EAEMA,aACjBtwB,EAAarC,EAAUoC,WAAvBC,UAYP,OAVAmK,qBAAU,WAILqO,EAAMC,OAAOjf,YAHG,EAAA+E,EAAAY,OAAA,kEAAAZ,EAAA,MACX+xB,EAAa9X,EAAMC,OAAOjf,aADf,uCAMlB,CAAC82B,EAAc9X,EAAMC,OAAOjf,aAI7B,kBAACmS,GAAA,EAAD,KACI,kBAACJ,GAAA,EAAD,CAAMT,UAAU,uBACd,kBAACS,GAAA,EAAKf,OAAN,KACE,yBAAKwD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAU,qBAAd,OAAmC5E,QAAnC,IAAmCA,OAAnC,EAAmCA,EAAiB5Q,OACpD,kBAAC2V,GAAA,EAAD,CAAQH,UAAU,OAClBmG,QAAS,kBAAM1hB,EAAQu0B,WADvB,eAGA,kBAAC7Y,GAAA,EAAD,CAAQC,QAAQ,OAChB+F,QAAS,kBAAMjR,EAAU,qBAAD,cAAsBkG,QAAtB,IAAsBA,OAAtB,EAAsBA,EAAiB5Q,OAC/D,kBAAC,GAAD,CAAgBkE,WAAYgf,EAAMC,OAAOjf,aAAe,mBAFxD,WAOJ,kBAAC+R,GAAA,EAAKX,KAAN,CAAWE,UAAU,YACnB,kBAACS,GAAA,EAAKb,MAAN,CAAYI,UAAU,UAAtB,OAAgC5E,QAAhC,IAAgCA,OAAhC,EAAgCA,EAAiB8pB,aAAjD,cACG9pB,EAAkBupB,GAAgCvpB,EAAgB3Q,MAAQ,GAD7E,OAGG2Q,EAAkB2pB,GAAgC3pB,EAAgB3Q,MAAQ,IAE5E2Q,EAAkBuF,aAAK,OAACvF,QAAD,IAACA,OAAD,EAACA,EAAiB/W,SAAU,KArB5D,OAwBK+W,QAxBL,IAwBKA,OAxBL,YAwBKA,EAAiBG,eAxBtB,aAwBK,EAA0BgF,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEhJ,KAAOiJ,EAAEjJ,KAAO,GAAI,KACvEsJ,KAAI,SAACyB,EAAQgL,GAAT,OACH,kBAACC,GAAA,EAAD,CAAMC,IAAKF,EAAKzB,KAAMyB,EAAM,IAAM,EAAI,UAAY,YAClDR,UAAU,QACV,kBAACS,GAAA,EAAKX,KAAN,KACE,kBAACW,GAAA,EAAKb,MAAN,CAAYI,UAAU,WAAWxK,EAAO0vB,aAAxC,cACGP,GAAgCnvB,EAAO/K,MAD1C,OAGGs6B,GAAgCvvB,EAAO/K,MACxC,kBAAC0V,GAAA,EAAD,CAAQH,UAAU,OAAOI,QAAQ,UACjC+F,QAAS,kBAAMjR,EAAU,qBAAD,cAAsBkG,QAAtB,IAAsBA,OAAtB,EAAsBA,EAAiB5Q,OAC/D,kBAAC,GAAD,CAAmBuE,SAAUyG,EAAOzG,SAAU1K,QAASmR,EAAOnR,UAAY,mBAF1E,WAMDsc,aAAMnL,EAAOnR,kBCCb2a,iBA1D4D,SAAC,GACrD,IAAD,EAApB0O,EAAoB,EAApBA,MAAOjpB,EAAa,EAAbA,QACCoO,EAAYoM,qBAAW1B,IADX,EAEsB1K,EAAUyL,QAA3ClD,EAFW,EAEXA,gBAAiBoqB,EAFN,EAEMA,aACjBtwB,EAAarC,EAAUoC,WAAvBC,UAWP,OATAmK,qBAAU,WAILqO,EAAMC,OAAOjf,YAHG,EAAA+E,EAAAY,OAAA,kEAAAZ,EAAA,MACX+xB,EAAa9X,EAAMC,OAAOjf,aADf,uCAMlB,CAAC82B,EAAc9X,EAAMC,OAAOjf,aAG7B,kBAACmS,GAAA,EAAD,KACI,kBAACJ,GAAA,EAAD,CAAMT,UAAU,uBACd,kBAACS,GAAA,EAAKf,OAAN,KACE,yBAAKwD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAU,qBAAd,OAAmC5E,QAAnC,IAAmCA,OAAnC,EAAmCA,EAAiB5Q,OACpD,kBAAC2V,GAAA,EAAD,CAAQH,UAAU,OAClBmG,QAAS,kBAAM1hB,EAAQu0B,WADvB,eAGA,kBAAC7Y,GAAA,EAAD,CAAQC,QAAQ,OAChB+F,QAAS,kBAAMjR,EAAU,qBAAD,cAAsBkG,QAAtB,IAAsBA,OAAtB,EAAsBA,EAAiB5Q,OAC/D,kBAAC,GAAD,CAAgBkE,WAAYgf,EAAMC,OAAOjf,aAAe,mBAFxD,WAOJ,kBAAC+R,GAAA,EAAKX,KAAN,CAAWE,UAAU,YACnB,kBAACS,GAAA,EAAKb,MAAN,YAAaxE,QAAb,IAAaA,OAAb,EAAaA,EAAiB8pB,aAA9B,cACG9pB,EAAkBupB,GAAgCvpB,EAAgB3Q,MAAQ,GAD7E,OAGG2Q,EAAkB2pB,GAAgC3pB,EAAgB3Q,MAAQ,IAE5E2Q,EAAkBuF,aAAK,OAACvF,QAAD,IAACA,OAAD,EAACA,EAAiB/W,SAAU,KArB5D,OAwBK+W,QAxBL,IAwBKA,OAxBL,YAwBKA,EAAiBG,eAxBtB,aAwBK,EAA0BgF,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEhJ,KAAOiJ,EAAEjJ,KAAO,GAAI,KACvEsJ,KAAI,SAACyB,EAAQgL,GAAT,OACH,kBAACC,GAAA,EAAD,CAAMC,IAAKF,EAAKzB,KAAMyB,EAAM,IAAM,EAAI,UAAY,YAClDR,UAAU,QACV,kBAACS,GAAA,EAAKX,KAAN,KACE,kBAACW,GAAA,EAAKb,MAAN,KAAapK,EAAO0vB,aAApB,cACGP,GAAgCnvB,EAAO/K,MAD1C,OAGGs6B,GAAgCvvB,EAAO/K,OAEzCkW,aAAMnL,EAAOnR,kBC8Bb2a,iBAvFI,WACjB,IAAMva,EAAU+vB,cACV3hB,EAAYoM,qBAAW1B,IAFN,EAGW1K,EAAUiL,aAArCxF,EAHgB,EAGhBA,SAAUgc,EAHM,EAGNA,aAHM,EAIMzhB,EAAU0L,WAAhC1C,EAJgB,EAIhBA,OAAQ4pB,EAJQ,EAIRA,WAJQ,EAKmBvmB,mBAAS,IAL5B,oBAKhBwV,EALgB,KAKDC,EALC,KAOvBtV,qBAAU,WACRiV,IACAmR,MACC,CAACnR,EAAcmR,IAQlB,OACE,kBAAC5kB,GAAA,EAAD,CAAWK,OAAK,EAACgC,MAAO,CAAEiK,UAAW,QACnC,kBAACrM,GAAA,EAAD,CAAKd,UAAU,QACf,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,EAAGhB,UAAU,eAChC,kBAACqF,GAAA,EAAKG,MAAN,iBAIA,kBAACzE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACR3I,GAAG,SACH1N,KAAK,UACL+V,MAAOsP,EACP9O,SAlBkB,SAACV,GAC3ByP,EAAiBzP,EAAMC,OAAOC,SAmBtB,iCACC9M,EAASvE,KAAI,SAACpI,GACb,OAAQ,4BAAQ+U,IAAK/U,EAAQzF,MAAOyF,EAAQ0D,WAIlD,kBAAC0R,GAAA,EAAD,CAAKwE,GAAI,CAACqP,KAAK,EAAGC,OAAO,GAAI7U,UAAU,uBACvC,kBAAC,KAAD,CAAMqD,GAAE,oBACN,kBAAClD,GAAA,EAAD,CAAQC,QAAQ,WAAhB,gBAIJ,kBAACgN,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,GAC3B,+BACE,4BACE,oCACA,4CACA,6CACA,6CACA,yCACA,iDACA,8CAGJ,+BACGvS,GACCA,EAAOjG,QAAO,SAAApL,GACZ,MAAqB,KAAlBkqB,GAGMlqB,EAAMupB,cAAgBW,KAGhC3gB,KAAI,SAAAvJ,GAAK,OACR,wBAAIkW,IAAKlW,EAAM3E,GAAIma,UAAU,YAAYmG,QAAS,SAACkI,GACjD5pB,EAAQC,KAAR,kBAAwB8F,EAAM3E,OAE9B,4BAAK2E,EAAM6E,MACX,4BAAK7E,EAAMupB,aACX,4BAAKvpB,EAAM+E,YAAc,MAAQ,MACjC,4BAAK/E,EAAMgF,YAAc,MAAQ,MACjC,4BAAKhF,EAAMiF,QAAU,MAAQ,MAC7B,4BAAKjF,EAAMkF,eAAiB,MAAQ,MACpC,4BAAKlF,EAAMmF,WAAa,MAAQ,gBC9E1C0mB,GAAiB,CACrBhnB,KAAM,GACNnJ,KAAM,IAGF4d,GAAgB,CACpBzU,KAAM,GACNE,aAAa,EACbC,aAAa,EACbC,SAAS,EACTC,gBAAgB,EAChBC,YAAY,EACZtD,WAAY,aAGRsb,GAAoB,CACxB2O,oBAAoB,EACpBoP,gBAAgB,GAGZ5d,GAAwB,CAC5B9iB,OAAQ,GACR+Z,KAAM,IAkMOC,iBA/LM,WACnB,IAAMnM,EAAYoM,qBAAW1B,IADJ,EAEQ1K,EAAUiL,aAApCxF,EAFkB,EAElBA,SAAUgc,EAFQ,EAERA,aACVllB,EAAYyD,EAAU0L,WAAtBnP,SAHkB,EAIG8P,mBAAS4E,IAJZ,oBAIlBvQ,EAJkB,KAIV4Q,EAJU,OAKKjF,mBAASmX,IALd,oBAKlB1qB,EALkB,KAKT+qB,EALS,OAMaxX,mBAASyI,IANtB,oBAMlBO,EANkB,KAMLC,EANK,OAOWjJ,oBAAS,GAPpB,oBAOlBpK,EAPkB,KAONsP,EAPM,OAQalF,mBAAS4I,IARtB,oBAQlBE,EARkB,KAQLC,EARK,KAUzB5I,qBAAU,WACW,EAAA5L,EAAAY,OAAA,kEAAAZ,EAAA,MACX6gB,KADW,uCAIlB,CAACA,IAEJ,IAUMqR,EAAoB,SAACzgB,GAAgB,IAAD,EAChBA,EAAMC,OAAtB9V,EADgC,EAChCA,KAAM+V,EAD0B,EAC1BA,MACdjB,EAAU,gBAAK5Q,EAAN,gBAAelE,EAAO+V,MAG3BwgB,EAAsB,SAAC1gB,GAAgB,IAAD,EAChBA,EAAMC,OAAxB9V,EADkC,EAClCA,KAAM0L,EAD4B,EAC5BA,QACdoJ,EAAU,gBAAI5Q,EAAL,gBAAclE,EAAO0L,MAsChC,OACE,kBAAC8F,GAAA,EAAD,CAAWb,UAAU,WACnB,wBAAIkD,MAAO,CAACC,MAAO,QAAnB,aACA,kBAACkC,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACjB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,kBAAtB,iBAIN,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACR3I,GAAG,SACH1N,KAAK,cACL+V,MAASzZ,EAAQzF,KACjB0f,SAvEY,SAACV,GAAgB,IAC7BE,EAAUF,EAAMC,OAAhBC,MACFzZ,EAAU2M,EAASH,MAAK,SAAAtC,GAAC,OAAEA,EAAE3P,OAASkf,KACzCzZ,GACD+qB,EAAW,CACTxwB,KAAMyF,EAAQzF,KACdmJ,KAAM1D,EAAQ0D,SAmEV,4BAAQsX,UAAQ,EAACvB,MAAM,GAAG1E,KAAM,GAAhC,UACCpI,EAASvE,KAAI,SAACpI,GACX,OAAO,4BAAQ+U,IAAK/U,EAAQzF,KAAMkf,MAAOzZ,EAAQzF,KAAM6jB,MAAOpe,EAAQ0D,aAK9E,kBAACyR,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,kBAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,OACL+V,MAAO7R,EAAOlE,KACduW,SAAU+f,MAIlB,kBAAC7kB,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,gBAAgBhP,QAASxH,EAAOhE,YAChEF,KAAK,cAAcuW,SAAUggB,MAGrC,kBAAC9kB,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,eAAehP,QAASxH,EAAO/D,YAC/DH,KAAK,cAAcuW,SAAUggB,MAGrC,kBAAC9kB,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,WAAWhP,QAASxH,EAAO9D,QAC3DJ,KAAK,UAAUuW,SAAUggB,MAGjC,kBAAC9kB,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,mBAAmBhP,QAASxH,EAAO7D,eACnEL,KAAK,iBAAiBuW,SAAUggB,MAGxC,kBAAC9kB,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,cAAchP,QAASxH,EAAO5D,WAC9DN,KAAK,aAAauW,SAAUggB,MAGpC,kBAAC9kB,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACR3I,GAAG,SACH1N,KAAK,aACL+V,MAAS7R,EAAOlH,WAChBuZ,SAAU+f,EACVld,YAAY,QACZ,6CACA,+CACA,2CAIR,wBAAIzI,UAAU,QACPkI,EAAYoO,oBACX,wBAAItW,UAAU,eAAd,wBAEDkI,EAAYwd,gBACX,wBAAI1lB,UAAU,eAAd,qBAGHgI,EAAYjJ,MACT,kBAAC,GAAD,CAAc/Z,OAAQgjB,EAAYhjB,OAAQ+Z,KAAMiJ,EAAYjJ,OAEpE,kBAAC+B,GAAA,EAAD,CAAKd,UAAU,4CACblL,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1I3B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN4B,EAAeH,IACf,IAAMwO,EAA6C,IAAxB3qB,EAAQzF,KAAKiN,OAClCuyB,EAAwC,IAAvBnyB,EAAOlE,KAAK8D,OACnCgV,EAAe,gBAAID,EAAL,CAAkBoO,qBAAoBoP,oBACjDpP,GAAsBoP,IAEvBthB,GAAc,GACdhV,EAASmE,EAAOlE,KAAM1D,EAAQzF,KAAMqN,EAAOhE,YAAagE,EAAO/D,YAAa+D,EAAO9D,QACjF8D,EAAO7D,eAAgB6D,EAAO5D,WAAY4D,EAAOlH,YAClDsc,OAAM,SAAA3kB,GACL,GAAGA,EAAMQ,MAAQR,EAAM4kB,WAAW,CAChCnT,QAAQC,IAAI1R,EAAMQ,KAAKQ,QACvB,IAAM6jB,EAAmB,CACvB7jB,OAAQhB,EAAMQ,KAAKQ,OACnB+Z,KAAM/a,EAAM4kB,YAEdX,EAAeY,GACfpT,QAAQC,IAAImT,OAET,CAKHZ,EAJyB,CACvBjjB,OAAQ,GACR+Z,KAAM,sBAIT2H,SAAQ,WACTtC,GAAc,SA4GE,QACXtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,uBC3MrB8D,GAAgB,CACpB7T,SAAU,GACVtF,MAAO,GACPuF,UAAW,GACXnG,MAAO,GACP3E,IAAK,IAmIQygC,GA/HU,SAAC,GAA2B,IAA1Bh2B,EAAyB,EAAzBA,QAElBG,GAF2C,EAAhB81B,UAChB7mB,qBAAW1B,IACIgB,WAA1BvO,cAF2C,EAGtBkP,mBAAS4E,IAHa,oBAG3CvQ,EAH2C,KAGnC4Q,EAHmC,OAIdjF,oBAAS,GAJK,oBAI3CpK,EAJ2C,KAI/BsP,EAJ+B,KAM5Ca,EAAe,SAACC,GAAW,IAAD,EACNA,EAAMC,OAAtB9V,EADsB,EACtBA,KAAM+V,EADgB,EAChBA,MACdjB,EAAU,gBAAK5Q,EAAN,gBAAelE,EAAO+V,MAiBjC,OACE,kBAACvE,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,CAAMC,YAAU,GAChB,kBAACxE,GAAA,EAAD,CAAKd,UAAU,cACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,aAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,WACL+V,MAAS7R,EAAOtD,SAChB2V,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAAS7R,EAAO5I,MAChBib,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,0BAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,YACL+V,MAAS7R,EAAOrD,UAChB0V,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAAS7R,EAAOxJ,MAChB6b,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,MACL+V,MAAS7R,EAAOnO,IAChBwgB,SAAUX,MAIhB,kBAACnE,GAAA,EAAD,CAAKd,UAAU,2CAEbzM,EAAOxJ,OAASwJ,EAAOnO,MACtB0P,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QApG5B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACNjC,GAAc,GACX7Q,EAAOtD,SAASkD,OAAS,GAC1BI,EAAO5I,MAAMwI,OAAS,GACtBI,EAAOxJ,MAAMoJ,OAAS,GAAKI,EAAOnO,IAAI+N,OAAS,GAC/CnD,EAAaH,EAAS0D,EAAOtD,SAAUsD,EAAO5I,MAAO4I,EAAOrD,UAAWqD,EAAOxJ,MAAO,GAAIwJ,EAAOnO,KAC/FshB,SAAQ,WACPtC,GAAc,QA2FG,OACdtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCmCV+lB,GA5JO,SAAC,GAC2D,IAD1Dl2B,EACyD,EADzDA,QAASR,EACgD,EADhDA,KAC/BE,EAA+E,EAA/EA,YAAaC,EAAkE,EAAlEA,YAAaC,EAAqD,EAArDA,QAASC,EAA4C,EAA5CA,eAAgBC,EAA4B,EAA5BA,WAAYtD,EAAgB,EAAhBA,WAExDuD,EADWqP,qBAAW1B,IACAgB,WAAtB3O,SAFwE,EAGjDsP,mBAAS7P,GAHwC,oBAGxE22B,EAHwE,KAG/DC,EAH+D,OAInC/mB,mBAAS3P,GAJ0B,oBAIxE22B,EAJwE,KAIxDC,EAJwD,OAKnCjnB,mBAAS1P,GAL0B,oBAKxE42B,EALwE,KAKxDC,EALwD,OAM3CnnB,mBAASzP,GANkC,oBAMxE62B,EANwE,KAM5DC,EAN4D,OAO7BrnB,mBAASxP,GAPoB,oBAOxE82B,EAPwE,KAOrDC,EAPqD,OAQrCvnB,mBAASvP,GAR4B,oBAQxE+2B,EARwE,KAQzDC,EARyD,OASrCznB,mBAAS7S,GAT4B,oBASxEu6B,EATwE,KASzDC,EATyD,OAU3C3nB,oBAAS,GAVkC,oBAUxEpK,EAVwE,KAU5DsP,EAV4D,OAW7ClF,oBAAS,GAXoC,oBAWxEuM,EAXwE,KAW7DC,EAX6D,KAa/ErM,qBAAU,WAKNqM,EAJCsa,IAAY32B,GAAQ62B,IAAmB32B,GACrC62B,IAAmB52B,GAAe82B,IAAe72B,GACjD+2B,IAAsB92B,GAAkBg3B,IAAkB/2B,GAC1Di3B,IAAkBv6B,KAMtB,CAACgD,EAAME,EAAaC,EAAaC,EAASC,EAAgBC,EAAYtD,EACvE25B,EAASE,EAAgBE,EAAgBE,EAAYE,EACrDE,EAAeE,IA4CjB,OACE,kBAAC/lB,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,YACL+V,MAAS4gB,EACTpgB,SAzDW,SAACV,GAAW,IAC5BE,EAASF,EAAMC,OAAfC,MACP6gB,EAAW7gB,QA2DL,kBAACtE,GAAA,EAAD,CAAKd,UAAU,cACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,gBAAgBhP,QAASmrB,EACzD72B,KAAK,cAAcuW,SA3DD,SAACV,GAAW,IACnCnK,EAAWmK,EAAMC,OAAjBpK,QACPorB,EAAkBprB,QA4Dd,kBAAC+F,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,eAAehP,QAASqrB,EACxD/2B,KAAK,cAAcuW,SA5DD,SAACV,GAAW,IACnCnK,EAAWmK,EAAMC,OAAjBpK,QACPsrB,EAAkBtrB,QA6Dd,kBAAC+F,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,WAAWhP,QAASurB,EACpDj3B,KAAK,UAAUuW,SA7DD,SAACV,GAAW,IAC/BnK,EAAWmK,EAAMC,OAAjBpK,QACPwrB,EAAcxrB,QA8DV,kBAAC+F,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,mBAAmBhP,QAASyrB,EAC5Dn3B,KAAK,iBAAiBuW,SA9DD,SAACV,GAAW,IACtCnK,EAAWmK,EAAMC,OAAjBpK,QACP0rB,EAAqB1rB,QA+DjB,kBAAC+F,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,cAAchP,QAAS2rB,EACvDr3B,KAAK,aAAauW,SA/DD,SAACV,GAAW,IAClCnK,EAAWmK,EAAMC,OAAjBpK,QACP4rB,EAAiB5rB,QAgEb,kBAAC+F,GAAA,EAAD,CAAKd,UAAU,cACT,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,gBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACR3I,GAAG,SACH1N,KAAK,aACL+V,MAAS/Y,EACTuZ,SAzEiB,SAACV,GAAW,IAClCE,EAASF,EAAMC,OAAfC,MACPyhB,EAAiBzhB,IAwELqD,YAAY,QACZ,6CACA,+CACA,2CAIN,kBAAC3H,GAAA,EAAD,CAAKd,UAAU,2CACdyL,IAAc3W,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA7E1C,SAACjB,GACpBd,GAAc,GACdxU,EAASC,EAASm2B,EAASE,EAAgBE,EAAgBE,EACzDE,EAAmBE,EAAeE,GACpCxiB,GAAc,KAyEqB,WAC5BtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCjFV8mB,GA5Dc,SAAC,GAAsC,IAArCj3B,EAAoC,EAApCA,QAASrD,EAA2B,EAA3BA,YAAayD,EAAc,EAAdA,SAE5CE,EADW8O,qBAAW1B,IACYgB,WAAlCpO,qBAF0D,EAG3B+O,mBAASjP,GAHkB,oBAG1D82B,EAH0D,KAG7CC,EAH6C,OAI7B9nB,oBAAS,GAJoB,oBAI1DpK,EAJ0D,KAI9CsP,EAJ8C,OAK/BlF,oBAAS,GALsB,oBAK1DuM,EAL0D,KAK/CC,EAL+C,KAwBjE,OACE,kBAAC7K,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,aAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,WACL+V,MAAS2hB,EACTnhB,SAhCO,SAACV,GAAW,IACxBE,EAASF,EAAMC,OAAfC,MACP4hB,EAAe5hB,GAEbsG,KADCtG,GAASA,IAAUnV,SAiChB,kBAAC6Q,GAAA,EAAD,CAAKd,UAAU,2CACdyL,IAAc3W,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1B1C,SAACjB,GACpBd,GAAc,GACdjU,EAAqBN,EAASrD,EAAau6B,GAC3C3iB,GAAc,KAuBqB,WAC5BtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBC0CVinB,GAvFW,SAAC,GAA8C,IAA7Cp3B,EAA4C,EAA5CA,QAASrD,EAAmC,EAAnCA,YAAa7B,EAAsB,EAAtBA,MAAOuF,EAAe,EAAfA,UAEhDE,EADW6O,qBAAW1B,IACSgB,WAA/BnO,kBAF+D,EAGtC8O,mBAASvU,GAH6B,oBAG/D0xB,EAH+D,KAGrDC,EAHqD,OAI9Bpd,mBAAShP,GAJqB,oBAI/Dg3B,EAJ+D,KAIjDC,EAJiD,OAKlCjoB,oBAAS,GALyB,oBAK/DpK,EAL+D,KAKnDsP,EALmD,OAMpClF,oBAAS,GAN2B,oBAM/DuM,EAN+D,KAMpDC,EANoD,KAmCtE,OACE,kBAAC7K,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAASiX,EACTzW,SA1CY,SAACV,GAAW,IAC7BE,EAASF,EAAMC,OAAfC,MACPkX,EAAYlX,GAEVsG,EADC2Q,IAAa1xB,GAASu8B,IAAiBh3B,QA2CpC,kBAAC4Q,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,QAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,MACL+V,MAAS8hB,EACTthB,SAhDgB,SAACV,GAAW,IACjCE,EAASF,EAAMC,OAAfC,MACP+hB,EAAgB/hB,GAEdsG,EADC2Q,IAAa1xB,GAASu8B,IAAiBh3B,QAiDpC,kBAAC4Q,GAAA,EAAD,CAAKd,UAAU,2CACdyL,IAAc3W,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1C1C,SAACjB,GACpBd,GAAc,GACdhU,EAAkBP,EAASrD,EAAa6vB,EAAU6K,GAClD9iB,GAAc,KAuCqB,WAC5BtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCXVonB,GA5Dc,SAAC,GAAsC,IAArCv3B,EAAoC,EAApCA,QAASrD,EAA2B,EAA3BA,YAAa8D,EAAc,EAAdA,SAE5CD,EADW4O,qBAAW1B,IACYgB,WAAlClO,qBAF0D,EAG3B6O,mBAAS5O,GAHkB,oBAG1D+2B,EAH0D,KAG7CC,EAH6C,OAI7BpoB,oBAAS,GAJoB,oBAI1DpK,EAJ0D,KAI9CsP,EAJ8C,OAK/BlF,oBAAS,GALsB,oBAK1DuM,EAL0D,KAK/CC,EAL+C,KAwBjE,OACE,kBAAC7K,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,aAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,WACL+V,MAASiiB,EACTzhB,SAhCO,SAACV,GAAW,IACxBE,EAASF,EAAMC,OAAfC,MACPkiB,EAAeliB,GAEbsG,KADCtG,GAASA,IAAU9U,SAiChB,kBAACwQ,GAAA,EAAD,CAAKd,UAAU,2CACdyL,IAAc3W,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1B1C,SAACjB,GACpBd,GAAc,GACd/T,EAAqBR,EAASrD,EAAa66B,GAC3CjjB,GAAc,KAuBqB,WAC5BtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBC0CVunB,GAxFM,SAAC,GAAwC,IAAvC13B,EAAsC,EAAtCA,QAASrD,EAA6B,EAA7BA,YAAazC,EAAgB,EAAhBA,MAAO3E,EAAS,EAATA,IAE3CmL,EADW0O,qBAAW1B,IACIgB,WAA1BhO,aAFoD,EAG3B2O,mBAASnV,GAHkB,oBAGpDy9B,EAHoD,KAG1CC,EAH0C,OAI/BvoB,mBAAS9Z,GAJsB,oBAIpDy2B,EAJoD,KAI5CC,EAJ4C,OAKvB5c,oBAAS,GALc,oBAKpDpK,EALoD,KAKxCsP,EALwC,OAMzBlF,oBAAS,GANgB,oBAMpDuM,EANoD,KAMzCC,EANyC,KAoC3D,OACE,kBAAC7K,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,UAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAASoiB,EACT5hB,SA3CY,SAACV,GAAW,IAC7BE,EAASF,EAAMC,OAAfC,MACPqiB,EAAYriB,GAEVsG,EADC8b,IAAaz9B,GAAS8xB,IAAWz2B,QA4C9B,kBAAC0b,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,QAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,MACL+V,MAASyW,EACTjW,SAhDU,SAACV,GAAW,IAC3BE,EAASF,EAAMC,OAAfC,MACP0W,EAAU1W,GAERsG,EADC8b,IAAaz9B,GAAS8xB,IAAWz2B,QAiD9B,kBAAC0b,GAAA,EAAD,CAAKd,UAAU,2CACdyL,IAAc3W,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1C1C,SAACjB,GACpBd,GAAc,GACd7T,EAAaV,EAASrD,EAAag7B,EAAU3L,GAC7CzX,GAAc,KAuCqB,WAC5BtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCxEnBqZ,GAAY,CAChBC,KAAM,EACNvL,QAAS,OACTwL,cAAe,SACfC,WAAY,SACZC,QAAS,OACTC,YAAa,EACbC,aAAc,EACdC,YAAa,UACbC,YAAa,SACbC,gBAAiB,UACjB3W,MAAO,UACP4W,QAAS,OACTC,WAAY,2BAGRC,GAAc,CAClBL,YAAa,WAGTM,GAAc,CAClBN,YAAa,WAGTO,GAAc,CAClBP,YAAa,WAqFA8N,GAlFa,SAAC,GAAmB,IAAlBl7B,EAAiB,EAAjBA,YAErBgE,EADWyO,qBAAW1B,IACMgB,WAA5B/N,eAFsC,EAGrB0O,mBAAS,MAHY,oBAGtCjV,EAHsC,KAGhC02B,EAHgC,OAITzhB,oBAAS,GAJA,oBAItCpK,EAJsC,KAI1BsP,EAJ0B,OAYzCkW,aAAY,CACdC,OAAQ,iCACRC,SAAU,EACVC,OAAQ,SAAAC,GAENiG,EAAQjG,EAAc,OAVxBC,EAP2C,EAO3CA,aACAC,EAR2C,EAQ3CA,cACAC,EAT2C,EAS3CA,aACAC,EAV2C,EAU3CA,aACAC,EAX2C,EAW3CA,aAWI7X,EAAQ8X,mBAAQ,kCACjB3B,GADiB,GAEhBwB,EAAeZ,GAAc,GAFb,GAGhBa,EAAeZ,GAAc,GAHb,GAIhBa,EAAeZ,GAAc,MAC/B,CACFU,EACAE,EACAD,IAQF,OACE,kBAACja,GAAA,EAAD,KACE,wBAAS8Z,EAAa,CAACzX,UACnB,0BAAW0X,KAETC,EACE,sDACA,uFAEJ,kEAEF,kBAAC/Z,GAAA,EAAD,CAAKd,UAAU,cACf,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACnB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,QACL+V,MAAUnb,GAAQA,EAAKoF,MAAS,GAChCwa,UAAQ,MAKhB,kBAAC/I,GAAA,EAAD,CAAKd,UAAU,2CACd/V,IAAS6K,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QAlCjC,WACnB/B,GAAc,GACd5T,EAAehE,EAAavC,KAgCF,UACjB6K,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,oBC3CZ2iB,GAjDS,SAAC,GAAmB,IAAlBn2B,EAAiB,EAAjBA,YAEjBW,EADW8R,qBAAW1B,IACEgB,WAAxBpR,WAFkC,EAGjB+R,mBAAS,IAHQ,oBAGlChZ,EAHkC,KAG5Bi4B,EAH4B,OAILjf,oBAAS,GAJJ,oBAIlCpK,EAJkC,KAItBsP,EAJsB,KAWzC,OACE,kBAACvD,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,SAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAAC,KAAD,CAAQoE,MAAOlf,EACbs2B,cAAiB,SAAAt2B,GAAI,OAAIi4B,EAAQj4B,IACjCu2B,UAAW,SAAAv2B,GAAI,OAAIu2B,qBAAUv2B,EAAMw2B,aAAUC,KAC7ClD,QAAS,EACTvW,MAAO,CACL0Z,WAAY,sCACZC,SAAU,GACV/C,gBAAiB,iBAMzB,kBAAChZ,GAAA,EAAD,CAAKd,UAAU,2CACd9Z,IAAS4O,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA5BjC,WACnB/B,GAAc,GACdjX,EAAWX,EAAatG,KA0BE,UACjB4O,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,oBC4BZ2nB,GA9DkB,SAAC,GAAqC,IAApC93B,EAAmC,EAAnCA,QAASrD,EAA0B,EAA1BA,YAAajD,EAAa,EAAbA,QAEhDkH,EADWwO,qBAAW1B,IACmBgB,WAAzC9N,4BAF6D,EAGhCyO,oBAAS,GAHuB,oBAG7DpK,EAH6D,KAGjDsP,EAHiD,OAI9BlF,mBAASmF,eAAYC,eAJS,oBAI7DC,EAJ6D,KAIhDC,EAJgD,KAMpEnF,qBAAU,WACR,GAAG9V,EAAQ,CACT,IAAMkb,EAAiBC,KAAYnb,GAC7Bob,EAAQC,gBAAaC,qBACzBJ,EAAeK,cACfL,EAAeM,WAEjBP,EAAeH,eAAYW,kBAAkBL,OAE9C,CAACpb,IAkBJ,OACE,kBAACsX,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,CAAMC,YAAU,GACd,kBAAC,UAAD,CACEf,YAAaA,EACbsB,iBAAiB,gBACjBC,iBAAiB,gBACjBC,gBAAgB,eAChBC,oBAxBoB,SAACC,GAC3BzB,EAAeyB,MAyBX,kBAACnF,GAAA,EAAD,CAAKd,UAAU,2CAEbuE,EAAY2B,sBACXpR,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QAzB5B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN,IAAIC,EAAiB/B,EAAY2B,oBAC9BI,IACDlC,GAAc,GACd3T,EAA4BZ,EAASrD,EAAaga,KAAYC,wBAAaH,KAC1EI,SAAQ,WACPtC,GAAc,SAiBG,OACdtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCWV4nB,GAhEW,SAAC,GAAiC,IAAhC/3B,EAA+B,EAA/BA,QAASrD,EAAsB,EAAtBA,YAAapH,EAAS,EAATA,IAEzCsL,EADWuO,qBAAW1B,IACgBgB,WAAtC7N,yBAFkD,EAG7BwO,mBAAS9Z,GAHoB,oBAGlDy2B,EAHkD,KAG1CC,EAH0C,OAIrB5c,oBAAS,GAJY,oBAIlDpK,EAJkD,KAItCsP,EAJsC,OAKvBlF,oBAAS,GALc,oBAKlDuM,EALkD,KAKvCC,EALuC,KA4BzD,OACE,kBAAC7K,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,KACE,kBAACvE,GAAA,EAAD,CAAKd,UAAU,cACX,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACvB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACRC,KAAK,OACLtW,KAAK,aACL+V,MAASyW,EACTjW,SApCO,SAACV,GAAW,IACxBE,EAASF,EAAMC,OAAfC,MACP0W,EAAU1W,GAERsG,EADCtG,IAAUhgB,QAqCP,kBAAC0b,GAAA,EAAD,CAAKd,UAAU,2CACdyL,IAAc3W,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA9B1C,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACNjC,GAAc,GACd1T,EAAyBb,EAASrD,EAAaqvB,GAC9CnV,SAAQ,WACPtC,GAAc,QAwBmB,WAC5BtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCyMVhB,iBAvO+C,SAAC,GACxC,IAArB0O,EAAoB,EAApBA,MACM7a,GADc,EAAbpO,QACWwa,qBAAW1B,KADT,EAEa1K,EAAU0L,WAApCzC,EAFa,EAEbA,aAAchM,EAFD,EAECA,SACboF,EAAarC,EAAUoC,WAAvBC,UAHY,EAIwBgK,mBAAS,IAJjC,oBAIb2oB,EAJa,KAIGC,EAJH,OAKkB5oB,mBAAS,IAL3B,oBAKb6oB,EALa,KAKAC,EALA,OAMkB9oB,mBAAS,IAN3B,oBAMb+oB,EANa,KAMAC,EANA,OAOsBhpB,mBAAS,IAP/B,oBAObipB,EAPa,KAOEC,EAPF,KAyBpB/oB,qBAAU,WAILqO,EAAMC,OAAO9d,SAHG,EAAA4D,EAAAY,OAAA,kEAAAZ,EAAA,MACX3D,EAAS4d,EAAMC,OAAO9d,UADX,uCAMlB,CAACC,EAAU4d,EAAMC,OAAO9d,UAE3B,IAAMw4B,EAAkB,WAAO,IAAD,EACxBC,EAAQ,OAAGxsB,QAAH,IAAGA,OAAH,YAAGA,EAAcC,kBAAjB,aAAG,EAA0BwE,QACxC3K,QAAO,SAAAoG,GACN,MAAsB,KAAnB6rB,KACK7rB,EAAU/L,SAASkH,cAAcvS,SAASijC,EAAe1wB,kBAGlEvB,QAAO,SAAAoG,GACN,MAAmB,KAAhB+rB,KACK/rB,EAAUrR,MAAMwM,cAAcvS,SAASmjC,EAAY5wB,kBAG5DvB,QAAO,SAAAoG,GACN,MAAmB,KAAhBisB,KACKjsB,EAAUjS,MAAMoN,cAAcvS,SAASqjC,EAAY9wB,kBAG5DvB,QAAO,SAAAoG,GACN,MAAqB,KAAlBmsB,KACMnsB,EAAU1L,YACX0L,EAAU1L,SAAS6G,cAAcvS,SAASujC,EAAchxB,kBAGlE,OAAOmxB,GAAsB,IAG/B,OACE,yBAAKtoB,UAAU,WACb,yBAAKkD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAU,wBAAd,OAAsClE,QAAtC,IAAsCA,OAAtC,EAAsCA,EAAczM,MACpD,uBAAG2Q,UAAU,sDACLmG,QAAS,kBAAMjR,EAAU,aAAc,kBAAC,GAAD,CACvCrF,QAAS6d,EAAMC,OAAO9d,QACtBR,KAAI,OAAEyM,QAAF,IAAEA,OAAF,EAAEA,EAAczM,KACpBE,YAAW,OAAEuM,QAAF,IAAEA,OAAF,EAAEA,EAAcvM,YAC3BC,YAAW,OAAEsM,QAAF,IAAEA,OAAF,EAAEA,EAActM,YAC3BC,QAAO,OAAEqM,QAAF,IAAEA,OAAF,EAAEA,EAAcrM,QACvBC,eAAc,OAAEoM,QAAF,IAAEA,OAAF,EAAEA,EAAcpM,eAC9BC,WAAU,OAAEmM,QAAF,IAAEA,OAAF,EAAEA,EAAcnM,WAC1BtD,WAAU,OAAEyP,QAAF,IAAEA,OAAF,EAAEA,EAAczP,aACrB,mBAKb,uBAAG2T,UAAU,sDACXmG,QAAS,kBAAMjR,EAAU,sBAAuB,kBAAC,GAAD,CAAkBrF,QAAS6d,EAAMC,OAAO9d,QAASi2B,UAAS,OAAEhqB,QAAF,IAAEA,OAAF,EAAEA,EAAczM,OAAS,oBAMvI,kBAACyR,GAAA,EAAD,CAAKd,UAAU,QACb,kBAACe,GAAA,EAAD,CAAKgB,GAAG,OAAO/B,UAAU,eACzB,kBAACqF,GAAA,EAAKG,MAAN,kBAIA,kBAACzE,GAAA,EAAD,CAAKgB,GAAG,KACN,kBAACsD,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAOyiB,EAAgBpf,YAAY,YAAY7C,SApFpD,SAACV,GAC5B4iB,EAAkB5iB,EAAMC,OAAOC,WAsF3B,kBAACrE,GAAA,EAAD,CAAKgB,GAAG,OAAO/B,UAAU,eACzB,kBAACqF,GAAA,EAAKG,MAAN,eAIA,kBAACzE,GAAA,EAAD,CAAKgB,GAAG,KACN,kBAACsD,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO2iB,EAAatf,YAAY,YAAY7C,SAzFpD,SAACV,GACzB8iB,EAAe9iB,EAAMC,OAAOC,WA2FxB,kBAACrE,GAAA,EAAD,CAAKgB,GAAG,OAAO/B,UAAU,eACzB,kBAACqF,GAAA,EAAKG,MAAN,eAIA,kBAACzE,GAAA,EAAD,CAAKgB,GAAG,KACN,kBAACsD,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO6iB,EAAaxf,YAAY,YAAY7C,SA9FpD,SAACV,GACzBgjB,EAAehjB,EAAMC,OAAOC,WAgGxB,kBAACrE,GAAA,EAAD,CAAKgB,GAAG,OAAO/B,UAAU,eACzB,kBAACqF,GAAA,EAAKG,MAAN,iBAIA,kBAACzE,GAAA,EAAD,CAAKgB,GAAG,KACN,kBAACsD,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO+iB,EAAe1f,YAAY,YAAY7C,SAnGpD,SAACV,GAC3BkjB,EAAiBljB,EAAMC,OAAOC,YAsG5B,kBAACgI,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,wCACA,qCACA,sCACa,OAAZlE,QAAY,IAAZA,OAAA,EAAAA,EAAcvM,cACZ,yCAEU,OAAZuM,QAAY,IAAZA,OAAA,EAAAA,EAActM,cACZ,yCAEU,OAAZsM,QAAY,IAAZA,OAAA,EAAAA,EAAcrM,UACZ,sCAIP,+BAEE44B,IACC70B,MAAK,SAACC,EAAGC,GACR,OAAID,EAAExD,SAAWyD,EAAEzD,SAAiB,EAC5BwD,EAAExD,SAAWyD,EAAEzD,UAAkB,EACjCwD,EAAE9I,MAAQ+I,EAAE/I,MAAc,GACrB,KACZoJ,KAAI,SAAAiI,GAAS,OACd,wBAAI0E,IAAK1E,EAAUnW,IACjB,4BAAKmW,EAAU/L,SACf,uBAAG+P,UAAU,sCACXmG,QAAS,kBAAMjR,EAAU,oBAAD,OAAqB8G,EAAUjS,OAAS,kBAAC,GAAD,CAAsB8F,QAAS6d,EAAMC,OAAO9d,QAASrD,YAAawP,EAAUnW,GAAIoK,SAAU+L,EAAU/L,WAAc,oBAGpL,6BACE+L,EAAU9L,WAAa8L,EAAUrR,MAChCqR,EAAU9L,WACX,uBAAGoQ,KAAMtE,EAAU9L,UAAWiV,OAAO,SAASiD,IAAI,uBAAuBpM,EAAUrR,OAErF,uBAAGqV,UAAU,sCACXmG,QAAS,kBAAMjR,EAAU,iBAAD,OAAkB8G,EAAUjS,OAAS,kBAAC,GAAD,CAAmB8F,QAAS6d,EAAMC,OAAO9d,QAASrD,YAAawP,EAAUnW,GAAI8E,MAAOqR,EAAUrR,MAAOuF,UAAW8L,EAAU9L,YAAe,oBAGxM,4BACC8L,EAAU5W,KACT,uBAAGkb,KAAMtE,EAAU5W,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBpM,EAAUjS,OAE/E,uBAAGiW,UAAU,sCACXmG,QAAS,kBAAMjR,EAAU,gBAAD,OAAiB8G,EAAUjS,OAAS,kBAAC,GAAD,CAAc8F,QAAS6d,EAAMC,OAAO9d,QAASrD,YAAawP,EAAUnW,GAAIkE,MAAOiS,EAAUjS,MAAO3E,IAAK4W,EAAU5W,MAAS,qBAGzK,OAAZ0W,QAAY,IAAZA,OAAA,EAAAA,EAAcvM,cACZ,gCAAMyM,EAAU1L,SACnB,uBAAG0P,UAAU,sCACXmG,QAAS,kBAAMjR,EAAU,oBAAD,OAAqB8G,EAAUjS,OAAS,kBAAC,GAAD,CAAsB8F,QAAS6d,EAAMC,OAAO9d,QAASrD,YAAawP,EAAUnW,GAAIyK,SAAU0L,EAAU1L,WAAc,qBAIvK,OAAZwL,QAAY,IAAZA,OAAA,EAAAA,EAActM,cACZ,4BACAwM,EAAUlP,aACX,uBAAGwT,KAAMtE,EAAUlP,YAAaqY,OAAO,SAASiD,IAAI,uBAApD,YAECpM,EAAUE,iBACT,0BAAM8D,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,eAAD,OAAgB8G,EAAUjS,OAAS,kBAAC,GAAD,CAAcR,QAASyS,EAAUE,kBAAoB,kBADhH,YAKD,uBAAG8D,UAAU,sCACZmG,QAAS,kBAAMjR,EAAU,sBAAD,OAAuB8G,EAAUjS,OAAS,kBAAC,GAAD,CAA0B8F,QAASmM,EAAUnM,QAASrD,YAAawP,EAAUnW,GAAI0D,QAASyS,EAAUE,kBAAoB,mBAE5L,uBAAG8D,UAAU,sCACXmG,QAAS,kBAAMjR,EAAU,qBAAD,OAAsB8G,EAAUjS,OAAS,kBAAC,GAAD,CAAmB8F,QAASmM,EAAUnM,QAASrD,YAAawP,EAAUnW,GAAIT,IAAK4W,EAAUlP,cAAiB,mBAE5K,uBAAGkT,UAAU,2CACZmG,QAAS,kBAAMjR,EAAU,uBAAD,OAAwB8G,EAAUjS,OAAS,kBAAC,GAAD,CAAqByC,YAAawP,EAAUnW,KAAO,qBAI7G,OAAZiW,QAAY,IAAZA,OAAA,EAAAA,EAAcrM,UACZ,4BACAuM,EAAU9V,MACP,0BAAM8Z,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,YAAD,OAAa8G,EAAUjS,OAC/C,kBAAC,GAAD,CAAW7D,KAAM8V,EAAU9V,OAAU,kBAFrC,QAMJ,uBAAG8Z,UAAU,sCACXmG,QAAS,kBAAMjR,EAAU,mBAAD,OAAoB8G,EAAUjS,OAAS,kBAAC,GAAD,CAAiByC,YAAawP,EAAUnW,KAAO,0BAQ1H,yBAAKqd,MAAO,CAAC6K,QAAS,SACtB,wBAAI/N,UAAU,qBAAd,mBAAmDqoB,IAAkBl1B,QACrE,uBAAG6M,UAAU,4CACTmG,QAAS,kBAAMjR,EAAU,sBAAuB,kBAAC,GAAD,CAAkBrF,QAAS6d,EAAMC,OAAO9d,QAASi2B,UAAS,OAAEhqB,QAAF,IAAEA,OAAF,EAAEA,EAAczM,OAAS,wBC5OvIyU,GAAgC,GA4FvBykB,GA1F0D,SAAC,GACnD,IAArB7a,EAAoB,EAApBA,MAAoB,KAAbjpB,QACWwa,qBAAW1B,IACwBiB,kBAA9CgqB,EAFa,EAEbA,iBAAkB33B,EAFL,EAEKA,eAFL,EAG0BqO,mBAAS4E,IAHnC,oBAGb2kB,EAHa,KAGIC,EAHJ,KAKpBrpB,qBAAU,WAOLqO,EAAMC,OAAO/kB,YANG,mBAAA6K,EAAAY,OAAA,kEAAAZ,EAAA,MACF+0B,EAAiB9a,EAAMC,OAAO/kB,aAD5B,QACbgP,EADa,SAGf8wB,EAAmB9wB,GAHJ,qCAOjBgS,KAED,CAAC4e,EAAkB9a,EAAMC,OAAO/kB,WAAY8/B,IAwB/C,OACE,kBAAC7nB,GAAA,EAAD,CAAWb,UAAU,QACnB,kBAACc,GAAA,EAAD,KACE,wBAAId,UAAU,WAAU,0BAAMkD,MAAO,CAACC,MAAO,QAArB,kBACxB,kBAAC,KAAD,CAAME,GAAE,qBAAgBqK,EAAMC,OAAO/kB,aACnC,kBAACuX,GAAA,EAAD,wBAGJ,kBAACiN,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACtN,UAAU,QAChC,+BACE,4BACE,wBAAIA,UAAU,iBAAd,MACA,oCACA,6CACA,6CACA,yCACA,iDACA,4CACA,sCACA,wCAGJ,sCACGyoB,QADH,IACGA,OADH,EACGA,EAAiBloB,QACjBxM,KAAI,SAAC40B,EAAa7d,GAAd,OACH,wBAAIpK,IAAKoK,EAAO9K,UAAS,UAAK2oB,EAAY73B,QAAU,eAAiB,mBACnE,wBAAIkP,UAAU,iBAAiB2oB,EAAY94B,SAC3C,4BAAK84B,EAAYt5B,MACjB,4BAAKs5B,EAAYp5B,YAAc,MAAQ,MACvC,4BAAKo5B,EAAYn5B,YAAc,MAAQ,MACvC,4BAAKm5B,EAAYl5B,QAAU,MAAQ,MACnC,4BAAKk5B,EAAYj5B,eAAiB,MAAQ,MAC1C,4BAAKi5B,EAAYh5B,WAAa,MAAQ,MACtC,4BAAKg5B,EAAY73B,QAAU,MAAQ,MACnC,4BACG63B,EAAY73B,SACX,uBAAGkP,UAAU,sDAAsDmG,QAAS,kBA/C5D,SAACtW,GAE/B,GADAgB,EAAe6c,EAAMC,OAAO/kB,WAAYiH,GAAS,GAC9C44B,GAAmB54B,EAAS,CAC7B,IAAIowB,EAAYwI,EAAgB10B,KAAI,SAAA8B,GAAC,OACnCA,EAAEhG,UAAYA,EAAd,gBACIgG,EADJ,CACO/E,SAAS,IAAS+E,KAE3B6yB,EAAmBzI,IAwC2E2I,CAAwBD,EAAY94B,aAEtH84B,EAAY73B,SACZ,uBAAGkP,UAAU,sDAAsDmG,QAAS,kBA7D/D,SAACtW,GAE5B,GADAgB,EAAe6c,EAAMC,OAAO/kB,WAAYiH,GAAS,GAC9C44B,GAAmB54B,EAAS,CAC7B,IAAIowB,EAAYwI,EAAgB10B,KAAI,SAAA8B,GAAC,OACnCA,EAAEhG,UAAYA,EAAd,gBACIgG,EADJ,CACO/E,SAAS,IAAQ+E,KAE1B6yB,EAAmBzI,IAsD2E4I,CAAqBF,EAAY94B,qBC7E/Hi5B,GAAmC,GAwR1B9pB,iBAtR+D,SAAC,GACxD,IAArB0O,EAAoB,EAApBA,MAAOjpB,EAAa,EAAbA,QACDoO,EAAYoM,qBAAW1B,IADT,EAE8G1K,EAAU2L,iBAArIuqB,EAFa,EAEbA,qBAAsB/3B,EAFT,EAESA,mBAAoBC,EAF7B,EAE6BA,sBAAuB+3B,EAFpD,EAEoDA,mBAAoBC,EAFxE,EAEwEA,mBAAoBC,EAF5F,EAE4FA,eAF5F,EAGiBr2B,EAAU0L,WAAxCxC,EAHa,EAGbA,WAAYotB,EAHC,EAGDA,eAHC,EAI4BjqB,mBAAS4pB,IAJrC,oBAIbM,EAJa,KAIKC,EAJL,OAKgBnqB,mBAAS,IALzB,oBAKb6X,EALa,KAKDC,EALC,OAMc9X,mBAAS,KANvB,oBAMb+X,EANa,KAMFC,EANE,OAOUhY,oBAAS,GAPnB,oBAOb5K,EAPa,KAOJoV,EAPI,KASpBrK,qBAAU,WAQLqO,EAAMC,OAAOphB,eAAiBmhB,EAAMC,OAAO9d,SAP3B,mBAAA4D,EAAAY,OAAA,kEAAAZ,EAAA,MACCs1B,EAAqBrb,EAAMC,OAAOphB,gBADnC,cACb4P,EADa,SAGfktB,EAAoBltB,GAHL,WAAA1I,EAAA,MAKX01B,EAAezb,EAAMC,OAAO9d,UALjB,qCAQjB+Z,KAED,CAACmf,EAAsBI,EAAgBzb,EAAMC,OAAOphB,cAAemhB,EAAMC,OAAO9d,UAEnF,IASMy5B,EAAQ,SAACC,GAAD,OAAgB,IAAItlC,SAAQ,SAAAulC,GAAG,OAAIC,WAAWD,EAAKD,OAmGjE,OACE,kBAAC1oB,GAAA,EAAD,CAAWK,OAAK,EAACgC,MAAO,CAAEiK,UAAW,QACnC,yBAAKnN,UAAU,QACb,kBAACc,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKwE,GAAI,GACT,kBAACF,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO2R,EAAYtO,YAAY,YAAY7C,SA3GxD,SAACV,GACpB8R,EAAc9R,EAAMC,OAAOC,WA6GrB,kBAACjF,GAAA,EAAD,CAAQH,UAAU,OAChBmG,QAAS,kBAAM1hB,EAAQu0B,WADzB,kBAGE1kB,GACF,kBAAC6L,GAAA,EAAD,CAAQH,UAAU,eAChBmG,QAAS,SAACkI,GAAD,OA/GJ,SAAMA,GAAN,eAAA5a,EAAAY,OAAA,uDACbqV,GAAW,GACX3N,EAAWtH,SAAQ,SAAOuH,GAAP,SAAAvI,EAAAY,OAAA,mDACb+0B,EAAiB1Y,MAAK,SAAA7a,GAAC,OAAIA,EAAEhQ,KAAOmW,EAAUnW,MADjC,kCAAA4N,EAAA,MAETzC,EAAmB0c,EAAMC,OAAOphB,cAAeyP,EAAUnW,KAFhD,wCAFN,WAAA4N,EAAA,MAQP61B,EAAM,MARC,yBAAA71B,EAAA,MASKs1B,EAAqBrb,EAAMC,OAAOphB,gBATvC,QAST4P,EATS,SAWXktB,EAAoBltB,GAEtBuN,GAAW,GAbE,qCA+GSggB,KADhB,WAGCp1B,GAAW,kBAAC6L,GAAA,EAAD,CAAQC,QAAQ,YAAYJ,UAAU,eAAe2G,UAAQ,GACjE,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPR,iBAahB,kBAAC,KAAD,CAAW6R,MAAM,aAAauF,YAAY,MAAMpX,UAAU,aAAakD,MAAO,CAACmU,SAAU,YAAazR,SAAU,SAAAvF,GApIlH6W,EAHkB,IAuIsH7W,EAtIxH,MAuId,kBAAC+M,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,qBACtC,+BACE,4BACE,wBAAIkD,MAAO,CAAC+M,MAAO,UAAnB,MACA,wBAAI/M,MAAO,CAAC+M,MAAO,SAAnB,YACA,wBAAI/M,MAAO,CAAC+M,MAAO,SAAnB,SACA,wBAAI/M,MAAO,CAAC+M,MAAO,UAAnB,SACA,wBAAI/M,MAAO,CAAC+M,MAAO,SAAnB,SAGJ,sCACGlU,QADH,IACGA,OADH,EACGA,EAAYwE,QACV3K,QAAO,SAAAoG,GAAS,OACdotB,EAAiB1Y,MAAK,SAAA7a,GAAC,OAAIA,EAAEhQ,KAAOmW,EAAUnW,SAEhD+P,QAAO,SAAAoG,GACN,MAAkB,KAAf+a,KAEO/a,EAAUjS,MAAMoN,cAAcvS,SAASmyB,EAAW5f,kBAM7D3D,MAAK,SAACC,EAAGC,GACR,OAAID,EAAExD,SAAWyD,EAAEzD,SAAiB,EAC5BwD,EAAExD,SAAWyD,EAAEzD,UAAkB,EACjCwD,EAAE9I,MAAQ+I,EAAE/I,MAAc,GACrB,KAEdoJ,KAAI,SAACiI,EAAW8O,GAAZ,OACL,wBAAIpK,IAAK1E,EAAUnW,IACnB,4BAAKmW,EAAUnW,IACf,4BAAKmW,EAAU/L,UACf,4BAAK+L,EAAUrR,OACf,4BAAKqR,EAAUjS,OACf,4BAAI,uBAAGiW,UAAU,mDAAmDmG,QAAS,SAACkI,GAAD,OAnJvE,SAAO7hB,EAAkB6hB,GAAzB,iBAAA5a,EAAAY,OAAA,gDACdrD,EAAmB0c,EAAMC,OAAOphB,cAAeC,IAC3CwP,EAAYD,EAAW5D,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAO2G,QAEtCm9B,EAAkB,CACpB9jC,GAAKmW,EAAUnW,GACfoK,SAAU+L,EAAU/L,SACpBtF,MAAQqR,EAAUrR,MAClBZ,MAAQiS,EAAUjS,MAClBuH,cAAe,EACfE,cAAc,EACdE,UAAW,EACX7B,QAAU6d,EAAMC,OAAO9d,SAEzBw5B,EAAoB,GAAD,oBAAKD,GAAL,CAAuBO,MAd9B,qCAmJ8EC,CAAQ5tB,EAAUnW,cAK5G,kBAACunB,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,oBAAoBkD,MAAO,CAACgN,OAAQ,CAAC+G,aAAW,OACtF,+BACE,4BACA,wBAAI/T,MAAO,CAAC+M,MAAO,UAAnB,MACE,wBAAI/M,MAAO,CAAC+M,MAAO,SAAnB,YACA,wBAAI/M,MAAO,CAAC+M,MAAO,SAAnB,SACA,wBAAI/M,MAAO,CAAC+M,MAAO,UAAnB,SACA,wBAAI/M,MAAO,CAAC+M,MAAO,UAAnB,mBACA,wBAAI/M,MAAO,CAAC+M,MAAO,UAAnB,mBACA,wBAAI/M,MAAO,CAAC+M,MAAO,UAAnB,eACA,wBAAI/M,MAAO,CAAC+M,MAAO,SAAnB,YAGJ,sCACGmZ,QADH,IACGA,OADH,EACGA,EAAkB7oB,QAChB/M,MAAK,SAACC,EAAGC,GACR,OAAID,EAAExD,SAAWyD,EAAEzD,SAAiB,EAC5BwD,EAAExD,SAAWyD,EAAEzD,UAAkB,EACjCwD,EAAE9I,MAAQ+I,EAAE/I,MAAc,GACrB,KAEhBoJ,KAAI,SAACiI,EAAW8O,GAAZ,OACL,wBAAIpK,IAAK1E,EAAUnW,IACnB,4BAAKmW,EAAUnW,IACf,4BAAKmW,EAAU/L,UACf,4BAAK+L,EAAUrR,OACf,4BAAKqR,EAAUjS,OACf,4BAAKiS,EAAU1K,cACX,kBAAC,WAAD,KACA,uBAAG0O,UAAU,yDAAyDmG,QAAS,kBApJhE,SAAC3Z,GAC1Bw8B,EAAmBtb,EAAMC,OAAOphB,cAAeC,GAAa,GAC5D,IAAIq9B,EAAQ,aAAOT,GACfO,EAAkBE,EAAS1xB,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAO2G,KAC7Cm9B,IACDA,EAAgBr4B,cAAe,EAC/B+3B,EAAoBQ,IA8IyEC,CAAmB9tB,EAAUnW,OAClH,uBAAGma,UAAU,6CAGXhE,EAAU1K,cACZ,kBAAC,WAAD,KACA,uBAAG0O,UAAU,+CACb,uBAAGA,UAAU,wDAAwDmG,QAAS,kBArK/D,SAAC3Z,GAC1Bw8B,EAAmBtb,EAAMC,OAAOphB,cAAeC,GAAa,GAC5D,IAAIq9B,EAAQ,aAAOT,GACfO,EAAkBE,EAAS1xB,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAO2G,KAC7Cm9B,IACDA,EAAgBr4B,cAAe,EAC/B+3B,EAAoBQ,IA+JwEE,CAAmB/tB,EAAUnW,SAIrH,4BAAKmW,EAAUxK,cACb,kBAAC,WAAD,KACA,uBAAGwO,UAAU,yDAAyDmG,QAAS,kBA7I9D,SAAC3Z,GAC1By8B,EAAmBvb,EAAMC,OAAOphB,cAAeC,GAAa,GAC5D,IAAIq9B,EAAQ,aAAOT,GACfO,EAAkBE,EAAS1xB,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAO2G,KAC7Cm9B,IACDA,EAAgBn4B,cAAe,EAC/B63B,EAAoBQ,IAuIuEG,CAAmBhuB,EAAUnW,OAClH,uBAAGma,UAAU,6CAGXhE,EAAUxK,cACZ,kBAAC,WAAD,KACA,uBAAGwO,UAAU,+CACb,uBAAGA,UAAU,wDAAwDmG,QAAS,kBA9J7D,SAAC3Z,GAC1By8B,EAAmBvb,EAAMC,OAAOphB,cAAeC,GAAa,GAC5D,IAAIq9B,EAAQ,aAAOT,GACfO,EAAkBE,EAAS1xB,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAO2G,KAC7Cm9B,IACDA,EAAgBn4B,cAAe,EAC/B63B,EAAoBQ,IAwJsEI,CAAmBjuB,EAAUnW,SAInH,4BAAKmW,EAAUtK,UACb,kBAAC,WAAD,KACA,uBAAGsO,UAAU,yDAAyDmG,QAAS,kBAtIlE,SAAC3Z,GACtB08B,EAAexb,EAAMC,OAAOphB,cAAeC,GAAa,GACxD,IAAIq9B,EAAQ,aAAOT,GACfO,EAAkBE,EAAS1xB,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAO2G,KAC7Cm9B,IACDA,EAAgBj4B,UAAW,EAC3B23B,EAAoBQ,IAgIuEK,CAAeluB,EAAUnW,OAC9G,uBAAGma,UAAU,6CAGXhE,EAAUtK,UACZ,kBAAC,WAAD,KACA,uBAAGsO,UAAU,+CACb,uBAAGA,UAAU,wDAAwDmG,QAAS,kBAvJjE,SAAC3Z,GACtB08B,EAAexb,EAAMC,OAAOphB,cAAeC,GAAa,GACxD,IAAIq9B,EAAQ,aAAOT,GACfO,EAAkBE,EAAS1xB,MAAK,SAAAtC,GAAC,OAAEA,EAAEhQ,KAAO2G,KAC7Cm9B,IACDA,EAAgBj4B,UAAW,EAC3B23B,EAAoBQ,IAiJsEM,CAAenuB,EAAUnW,SAI/G,4BAAI,uBAAGma,UAAU,gDAAgDmG,QAAS,SAACkI,GAAD,OAxM9D7hB,EAwMgFwP,EAAUnW,GAvM5GoL,EAAsByc,EAAMC,OAAOphB,cAAeC,QAClD68B,EAAoBD,EAAiBxzB,QAAO,SAAAC,GAAC,OAAEA,EAAEhQ,KAAO2G,MAFvC,IAACA,iBCsHPwS,iBA9LgE,SAAC,GACzD,IAAD,EAApB0O,EAAoB,EAApBA,MAAOjpB,EAAa,EAAbA,QACDoO,EAAYoM,qBAAW1B,IADT,EAEoB1K,EAAU2L,iBAA3C1C,EAFa,EAEbA,aAAcsuB,EAFD,EAECA,gBACbl1B,EAAarC,EAAUoC,WAAvBC,UAHY,EAIwBgK,mBAAS,IAJjC,oBAIb2oB,EAJa,KAIGC,EAJH,OAKkB5oB,mBAAS,IAL3B,oBAKb6oB,EALa,KAKAC,EALA,OAMkB9oB,mBAAS,IAN3B,oBAMb+oB,EANa,KAMAC,EANA,OAOsBhpB,mBAAS,IAP/B,oBAObipB,EAPa,KAOEC,EAPF,KAkCpB,OATA/oB,qBAAU,WAILqO,EAAMC,OAAOphB,eAHG,EAAAkH,EAAAY,OAAA,kEAAAZ,EAAA,MACX22B,EAAgB1c,EAAMC,OAAOphB,gBADlB,uCAMlB,CAAC69B,EAAiB1c,EAAMC,OAAOphB,gBAGhC,yBAAKyT,UAAU,WACb,yBAAKkD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAU,wBAAd,OAAsClE,QAAtC,IAAsCA,OAAtC,EAAsCA,EAAczM,MACpD,kBAAC8Q,GAAA,EAAD,CAAQH,UAAU,iBAChBmG,QAAS,kBAAM1hB,EAAQu0B,WADzB,iBAGA,kBAAC,KAAD,CAAM3V,GAAE,uBAAkBqK,EAAMC,OAAOphB,gBACrC,kBAAC4T,GAAA,EAAD,CAAQC,QAAQ,UAAUJ,UAAU,kBAApC,wBAGJ,kBAACc,GAAA,EAAD,CAAKd,UAAU,QACb,kBAACe,GAAA,EAAD,CAAKgB,GAAG,OAAO/B,UAAU,eACzB,kBAACqF,GAAA,EAAKG,MAAN,kBAIA,kBAACzE,GAAA,EAAD,CAAKgB,GAAG,KACN,kBAACsD,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAOyiB,EAAgBpf,YAAY,YAAY7C,SA3CpD,SAACV,GAC5B4iB,EAAkB5iB,EAAMC,OAAOC,WA6C3B,kBAACrE,GAAA,EAAD,CAAKgB,GAAG,OAAO/B,UAAU,eACzB,kBAACqF,GAAA,EAAKG,MAAN,eAIA,kBAACzE,GAAA,EAAD,CAAKgB,GAAG,KACN,kBAACsD,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO2iB,EAAatf,YAAY,YAAY7C,SAhDpD,SAACV,GACzB8iB,EAAe9iB,EAAMC,OAAOC,WAkDxB,kBAACrE,GAAA,EAAD,CAAKgB,GAAG,OAAO/B,UAAU,eACzB,kBAACqF,GAAA,EAAKG,MAAN,eAIA,kBAACzE,GAAA,EAAD,CAAKgB,GAAG,KACN,kBAACsD,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO6iB,EAAaxf,YAAY,YAAY7C,SArDpD,SAACV,GACzBgjB,EAAehjB,EAAMC,OAAOC,YAuDX,OAAZtJ,QAAY,IAAZA,OAAA,EAAAA,EAActM,cACf,kBAAC,IAAMytB,SAAP,KACE,kBAAClc,GAAA,EAAD,CAAKgB,GAAG,OAAO/B,UAAU,eACzB,kBAACqF,GAAA,EAAKG,MAAN,iBAIA,kBAACzE,GAAA,EAAD,CAAKgB,GAAG,KACN,kBAACsD,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO+iB,EAAe1f,YAAY,YAAY7C,SA5DtD,SAACV,GAC3BkjB,EAAiBljB,EAAMC,OAAOC,aAiE5B,kBAACgI,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,wCACA,qCACA,sCACa,OAAZlE,QAAY,IAAZA,OAAA,EAAAA,EAAcvM,cACZ,yCAEU,OAAZuM,QAAY,IAAZA,OAAA,EAAAA,EAActM,cACZ,yCAEU,OAAZsM,QAAY,IAAZA,OAAA,EAAAA,EAAcrM,UACZ,oCAEH,yCAGJ,sCACGqM,QADH,IACGA,OADH,YACGA,EAAcC,kBADjB,aACG,EAA0BwE,QAC1B3K,QAAO,SAAAoG,GACN,MAAsB,KAAnB6rB,KACK7rB,EAAU/L,SAASkH,cAAcvS,SAASijC,EAAe1wB,kBAGlEvB,QAAO,SAAAoG,GACN,MAAmB,KAAhB+rB,KACK/rB,EAAUrR,MAAMwM,cAAcvS,SAASmjC,EAAY5wB,kBAG5DvB,QAAO,SAAAoG,GACN,MAAmB,KAAhBisB,KACKjsB,EAAUjS,MAAMoN,cAAcvS,SAASqjC,EAAY9wB,kBAG5DvB,QAAO,SAAAoG,GACN,MAAqB,KAAlBmsB,KACMnsB,EAAU1L,YACX0L,EAAU1L,SAAS6G,cAAcvS,SAASujC,EAAchxB,kBAGjE3D,MAAK,SAACC,EAAGC,GACR,OAAID,EAAExD,SAAWyD,EAAEzD,SAAiB,EAC5BwD,EAAExD,SAAWyD,EAAEzD,UAAkB,EACjCwD,EAAE9I,MAAQ+I,EAAE/I,MAAc,GACrB,KACZoJ,KAAI,SAAAiI,GAAS,OACd,wBAAI0E,IAAK1E,EAAUnW,IACjB,4BAAKmW,EAAU/L,UAEf,6BACI+L,EAAU9L,WAAa8L,EAAUrR,MAClCqR,EAAU9L,WACX,uBAAGoQ,KAAMtE,EAAU9L,UAAWiV,OAAO,SAASiD,IAAI,uBAAuBpM,EAAUrR,QAGrF,4BACCqR,EAAU5W,KACT,uBAAGkb,KAAMtE,EAAU5W,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBpM,EAAUjS,SAGlE,OAAZ+R,QAAY,IAAZA,OAAA,EAAAA,EAAcvM,cACZ,gCAAMyM,EAAU1L,WAGN,OAAZwL,QAAY,IAAZA,OAAA,EAAAA,EAActM,cACZ,4BACAwM,EAAUlP,aACX,uBAAGwT,KAAMtE,EAAUlP,YAAaqY,OAAO,SAASiD,IAAI,uBAApD,YAECpM,EAAUE,iBACT,0BAAM8D,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,eAAD,OAAgB8G,EAAUjS,OAAS,kBAAC,GAAD,CAAcR,QAASyS,EAAUE,kBAAoB,kBADhH,cAOS,OAAZJ,QAAY,IAAZA,OAAA,EAAAA,EAAcrM,UACZ,4BACAuM,EAAU9V,MACP,0BAAM8Z,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,YAAD,OAAa8G,EAAUjS,OAC/C,kBAAC,GAAD,CAAW7D,KAAM8V,EAAU9V,OAAU,kBAFrC,SAQN,4BACE,kBAAC,KAAD,CAAMmd,GAAE,gCAA2BqK,EAAMC,OAAOphB,cAAxC,YAAyDyP,EAAUnW,GAAnE,YAAyEmW,EAAUjS,QACzF,0BAAMiW,UAAU,0BAAhB,wBCnIH8iB,GApDS,SAAC,GAA+C,IAA9C11B,EAA6C,EAA7CA,OAAQlH,EAAqC,EAArCA,KAAM8T,EAA+B,EAA/BA,WAAYE,EAAmB,EAAnBA,cAClD,OACE,kBAAC2G,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,YAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,yBAAKhB,UAAU,kBACb,uBAAGA,UAAU,aAAa5S,MAI/BlH,GACD,kBAAC4a,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,SAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAAC,KAAD,CAAQoE,MAAOlf,EACbs2B,cAAiB,aACjBC,UAAW,SAAAv2B,GAAI,OAAIu2B,qBAAUv2B,EAAMw2B,aAAUC,KAC7ClD,QAAS,EACTvW,MAAO,CACL0Z,WAAY,sCACZC,SAAU,GACV/C,gBAAiB,iBAMxB9f,GACC,kBAAC8G,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,eAIF,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACvB,uBAAGV,KAAMpG,EAAeiL,OAAO,SAASiD,IAAI,uBAAuBpO,OC2BhEqwB,GAtEgB,SAAC,GAAkC,IAAjC99B,EAAgC,EAAhCA,cAAeC,EAAiB,EAAjBA,YAEvCW,EADW8R,qBAAW1B,IACEiB,iBAAxBrR,WAFwD,EAGnC+R,mBAAS,IAH0B,oBAGxD9R,EAHwD,KAGhDw1B,EAHgD,OAIvC1jB,mBAAS,IAJ8B,oBAIxDhZ,EAJwD,KAIlDi4B,EAJkD,OAK3Bjf,oBAAS,GALkB,oBAKxDpK,EALwD,KAK5CsP,EAL4C,KAiB/D,OACE,kBAACvD,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,YAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEC,UAAQ,EACR3I,GAAG,WACH2L,KAAM,EACNrZ,KAAK,SACL+V,MAAShY,EACTwY,SAzBiB,SAACV,GAAW,IAC9BE,EAASF,EAAMC,OAAfC,MACPwd,EAAUxd,OA0BN,kBAACrE,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,SAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAAC,KAAD,CAAQoE,MAAOlf,EACbs2B,cAAiB,SAAAt2B,GAAI,OAAIi4B,EAAQj4B,IACjCu2B,UAAW,SAAAv2B,GAAI,OAAIu2B,qBAAUv2B,EAAMw2B,aAAUC,KAC7ClD,QAAS,EACTvW,MAAO,CACL0Z,WAAY,sCACZC,SAAU,GACV/C,gBAAiB,iBAMzB,kBAAChZ,GAAA,EAAD,CAAKd,UAAU,2CACd9Z,IAAS4O,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA3CjC,WACnB/B,GAAc,GACdjX,EAAWZ,EAAeC,EAAaY,EAAQlH,KAyCrB,UACjB4O,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,oBC8KZhB,iBAjOuE,SAAC,GAChE,IAAD,EAApB0O,EAAoB,EAApBA,MAAOjpB,EAAa,EAAbA,QACDoO,EAAYoM,qBAAW1B,IADT,EAE2B1K,EAAU2L,iBAAlD/B,EAFa,EAEbA,aAAc6tB,EAFD,EAECA,uBACbp1B,EAAarC,EAAUoC,WAAvBC,UAHY,EAIwBgK,mBAAS,IAJjC,oBAIb2oB,EAJa,KAIGC,EAJH,OAKkB5oB,mBAAS,IAL3B,oBAKb6oB,EALa,KAKAC,EALA,OAMkB9oB,mBAAS,IAN3B,oBAMb+oB,EANa,KAMAC,EANA,OAOsBhpB,mBAAS,IAP/B,oBAObipB,EAPa,KAOEC,EAPF,OAQUlpB,oBAAS,GARnB,oBAQbqrB,EARa,KAQJC,EARI,KAsCpB,OATAnrB,qBAAU,WAILqO,EAAMC,OAAOphB,eAHG,EAAAkH,EAAAY,OAAA,kEAAAZ,EAAA,MACX62B,EAAuB5c,EAAMC,OAAOphB,gBADzB,uCAMlB,CAAC+9B,EAAwB5c,EAAMC,OAAOphB,gBAGvC,yBAAKyT,UAAU,WACb,yBAAKA,UAAU,gBACb,wBAAIA,UAAU,wBAAd,OAAsCvD,QAAtC,IAAsCA,OAAtC,EAAsCA,EAAcpN,MACpD,kBAAC8Q,GAAA,EAAD,CAAQH,UAAU,iBAChBmG,QAAS,kBAAM1hB,EAAQu0B,WADzB,iBAGA,kBAAC,KAAD,CAAM3V,GAAE,uBAAkBqK,EAAMC,OAAOphB,gBACrC,kBAAC4T,GAAA,EAAD,CAAQC,QAAQ,UAAUJ,UAAU,kBAApC,wBAGJ,kBAACc,GAAA,EAAD,CAAKd,UAAU,QACb,kBAACe,GAAA,EAAD,CAAKgB,GAAG,OAAO/B,UAAU,eACzB,kBAACqF,GAAA,EAAKG,MAAN,kBAIA,kBAACzE,GAAA,EAAD,CAAKgB,GAAG,KACN,kBAACsD,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAOyiB,EAAgBpf,YAAY,YAAY7C,SA/CpD,SAACV,GAC5B4iB,EAAkB5iB,EAAMC,OAAOC,WAiD3B,kBAACrE,GAAA,EAAD,CAAKgB,GAAG,OAAO/B,UAAU,eACzB,kBAACqF,GAAA,EAAKG,MAAN,eAIA,kBAACzE,GAAA,EAAD,CAAKgB,GAAG,KACN,kBAACsD,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO2iB,EAAatf,YAAY,YAAY7C,SApDpD,SAACV,GACzB8iB,EAAe9iB,EAAMC,OAAOC,WAsDxB,kBAACrE,GAAA,EAAD,CAAKgB,GAAG,OAAO/B,UAAU,eACzB,kBAACqF,GAAA,EAAKG,MAAN,eAIA,kBAACzE,GAAA,EAAD,CAAKgB,GAAG,KACN,kBAACsD,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO6iB,EAAaxf,YAAY,YAAY7C,SAzDpD,SAACV,GACzBgjB,EAAehjB,EAAMC,OAAOC,YA2DX,OAAZ3I,QAAY,IAAZA,OAAA,EAAAA,EAAcjN,cACf,kBAAC,IAAMytB,SAAP,KACE,kBAAClc,GAAA,EAAD,CAAKgB,GAAG,OAAO/B,UAAU,eACzB,kBAACqF,GAAA,EAAKG,MAAN,iBAIA,kBAACzE,GAAA,EAAD,CAAKgB,GAAG,KACN,kBAACsD,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO+iB,EAAe1f,YAAY,YAAY7C,SAhEtD,SAACV,GAC3BkjB,EAAiBljB,EAAMC,OAAOC,WAkExB,kBAACrE,GAAA,EAAD,CAAKgB,GAAI,GACP,kBAACsD,GAAA,EAAKyE,MAAN,CAAYnE,KAAK,WAAWoE,MAAM,MAAMgC,gBAAgB,EACxD1c,KAAK,UAAUuW,SAjEH,SAACV,GACrBslB,EAAWtlB,EAAMC,OAAOpK,eAqEtB,kBAACqS,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,wCACA,qCACA,sCACa,OAAZvD,QAAY,IAAZA,OAAA,EAAAA,EAAclN,cACZ,yCAEU,OAAZkN,QAAY,IAAZA,OAAA,EAAAA,EAAcjN,cACZ,yCAEU,OAAZiN,QAAY,IAAZA,OAAA,EAAAA,EAAchN,UACZ,oCAEH,uCACA,2CACA,wCAGJ,sCACGgN,QADH,IACGA,OADH,YACGA,EAAcV,kBADjB,aACG,EAA0BwE,QAC1B3K,QAAO,SAAAoG,GACN,MAAsB,KAAnB6rB,KACK7rB,EAAU/L,SAASkH,cAAcvS,SAASijC,EAAe1wB,kBAGlEvB,QAAO,SAAAoG,GACN,MAAmB,KAAhB+rB,KACK/rB,EAAUrR,MAAMwM,cAAcvS,SAASmjC,EAAY5wB,kBAG5DvB,QAAO,SAAAoG,GACN,MAAmB,KAAhBisB,KACKjsB,EAAUjS,MAAMoN,cAAcvS,SAASqjC,EAAY9wB,kBAG5DvB,QAAO,SAAAoG,GACN,MAAqB,KAAlBmsB,KACMnsB,EAAU1L,YACX0L,EAAU1L,SAAS6G,cAAcvS,SAASujC,EAAchxB,kBAGjEvB,QAAO,SAAAoG,GACN,QAAGuuB,IAEEvuB,EAAU7O,aAAc6O,EAAU3O,gBAIxCmG,MAAK,SAACC,EAAGC,GACR,OAAID,EAAExD,SAAWyD,EAAEzD,SAAiB,EAC5BwD,EAAExD,SAAWyD,EAAEzD,UAAkB,EACjCwD,EAAE9I,MAAQ+I,EAAE/I,MAAc,GACrB,KACZoJ,KAAI,SAAAiI,GAAS,OACd,wBAAI0E,IAAK1E,EAAUnW,IACjB,4BAAKmW,EAAU/L,UAEf,6BACI+L,EAAU9L,WAAa8L,EAAUrR,MAClCqR,EAAU9L,WACX,uBAAGoQ,KAAMtE,EAAU9L,UAAWiV,OAAO,SAASiD,IAAI,uBAAuBpM,EAAUrR,QAGrF,4BACCqR,EAAU5W,KACT,uBAAGkb,KAAMtE,EAAU5W,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBpM,EAAUjS,SAGlE,OAAZ0S,QAAY,IAAZA,OAAA,EAAAA,EAAclN,cACZ,gCAAMyM,EAAU1L,WAGN,OAAZmM,QAAY,IAAZA,OAAA,EAAAA,EAAcjN,cACZ,4BACAwM,EAAUlP,aACX,uBAAGwT,KAAMtE,EAAUlP,YAAaqY,OAAO,SAASiD,IAAI,uBAApD,YAECpM,EAAUE,iBACT,0BAAM8D,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,eAAD,OAAgB8G,EAAUjS,OAAS,kBAAC,GAAD,CAAcR,QAASyS,EAAUE,kBAAoB,kBADhH,cAOS,OAAZO,QAAY,IAAZA,OAAA,EAAAA,EAAchN,UACZ,4BACAuM,EAAU9V,MACP,0BAAM8Z,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,YAAD,OAAa8G,EAAUjS,OAC/C,kBAAC,GAAD,CAAW7D,KAAM8V,EAAU9V,OAAU,kBAFrC,SAQN,4BACE,kBAAC,KAAD,CAAMmd,GAAE,gCAA2BqK,EAAMC,OAAOphB,cAAxC,YAAyDyP,EAAUnW,GAAnE,YAAyEmW,EAAUjS,QACzF,0BAAMiW,UAAU,0BAAhB,cAGN,6BACMhE,EAAU7O,YAAc6O,EAAU3O,eAChC,0BAAM2S,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,mBAAD,OAAoB8G,EAAUjS,OACtD,kBAAC,GAAD,CAAiBqD,OAAQ4O,EAAUU,aACnCxW,KAAM8V,EAAU7O,WAAY6M,WAAYgC,EAAU3O,aAAc6M,cAAiB8B,EAAUyuB,kBAAoB,kBAH/G,gBAQN,4BACE,uBAAGzqB,UAAU,4CACXmG,QAAS,kBAAMjR,EAAU,mBAAD,OAAoB8G,EAAUjS,OAAS,kBAAC,GAAD,CAAwBwC,cAAemhB,EAAMC,OAAOphB,cAAeC,YAAawP,EAAUnW,KAAO,8BCjJnKmZ,iBAtEiB,SAAC,GAAkC,IAAjCzS,EAAgC,EAAhCA,cAAeC,EAAiB,EAAjBA,YAAiB,EAC9CyS,qBAAW1B,IACkCiB,iBAAxDnE,EAFyD,EAEzDA,mBAAoB2nB,EAFqC,EAErCA,uBAS3B,OAPA3iB,qBAAU,WACW,EAAA5L,EAAAY,OAAA,kEAAAZ,EAAA,MACXuuB,EAAuBz1B,EAAeC,IAD3B,uCAIlB,CAACw1B,EAAwBz1B,EAAeC,IAGzC,kBAACqU,GAAA,EAAD,YACGxG,QADH,IACGA,OADH,EACGA,EAAoBtG,KAAI,SAACwG,EAAYuQ,GAAb,OACzB,yBAAKpK,IAAKoK,GACR,kBAAChK,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QACpB,+CAGF,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAACqE,GAAA,EAAKI,QAAN,CACEE,KAAK,OACLtW,KAAK,cACL+V,MAAS7K,EAAW0nB,YACpBpY,UAAQ,MAIbtP,EAAWT,eACZ,kBAACgH,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,sBAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,yBAAKhB,UAAU,kBACf,uBAAGA,UAAU,aAAazF,EAAWnN,WAKzC,kBAAC0T,GAAA,EAAD,CAAKd,UAAU,cACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACrB,kBAACqE,GAAA,EAAKG,MAAN,CAAYxF,UAAU,QAAtB,SAIA,kBAACe,GAAA,EAAD,CAAKwE,GAAI,GAAIxD,GAAI,GAAIf,GAAI,IACzB,kBAAC,KAAD,CAAQoE,MAAO7K,EAAWrU,KACxBs2B,cAAiB,aACjBC,UAAW,SAAAv2B,GAAI,OAAIu2B,qBAAUv2B,EAAMw2B,aAAUC,KAC7ClD,QAAS,EACTvW,MAAO,CACL0Z,WAAY,sCACZC,SAAU,GACV/C,gBAAiB,yBC1ClB4Q,GAvBM,SAAC,GAAkC,IAAjCn+B,EAAgC,EAAhCA,cAAeC,EAAiB,EAAjBA,YACpC,OACE,kBAACqU,GAAA,EAAD,CAAWb,UAAU,WACnB,kBAACc,GAAA,EAAD,CAAKd,UAAU,kBACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GAAvB,mBAGA,kBAACD,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACpBzU,IAGL,kBAACuU,GAAA,EAAD,CAAKd,UAAU,kBACb,kBAACe,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GAAvB,iBAGA,kBAACD,GAAA,EAAD,CAAKwE,GAAI,EAAGxD,GAAI,EAAGf,GAAI,GACpBxU,MCiNIwS,iBAtNuE,SAAC,GAChE,IAArB0O,EAAoB,EAApBA,MAAOjpB,EAAa,EAAbA,QACDoO,EAAYoM,qBAAW1B,IADT,EAE2B1K,EAAU2L,iBAAlDhC,EAFa,EAEbA,aAAcmuB,EAFD,EAECA,uBACbz1B,EAAarC,EAAUoC,WAAvBC,UAHY,EAIwBgK,mBAAS,IAJjC,oBAIb2oB,EAJa,KAIGC,EAJH,OAKkB5oB,mBAAS,IAL3B,oBAKb6oB,EALa,KAKAC,EALA,OAMkB9oB,mBAAS,IAN3B,oBAMb+oB,EANa,KAMAC,EANA,OAOsBhpB,mBAAS,IAP/B,oBAObipB,EAPa,KAOEC,EAPF,KAyBpB/oB,qBAAU,WAILqO,EAAMC,OAAOphB,eAHG,EAAAkH,EAAAY,OAAA,kEAAAZ,EAAA,MACXk3B,EAAuBjd,EAAMC,OAAOphB,gBADzB,uCAMlB,CAACo+B,EAAwBjd,EAAMC,OAAOphB,gBAEzC,IAAM87B,EAAkB,WAAO,IAAD,EACxBC,EAAQ,OAAG9rB,QAAH,IAAGA,OAAH,YAAGA,EAAcT,kBAAjB,aAAG,EAA0BwE,QACxC3K,QAAO,SAAAoG,GACN,MAAsB,KAAnB6rB,KACK7rB,EAAU/L,SAASkH,cAAcvS,SAASijC,EAAe1wB,kBAGlEvB,QAAO,SAAAoG,GACN,MAAmB,KAAhB+rB,KACK/rB,EAAUrR,MAAMwM,cAAcvS,SAASmjC,EAAY5wB,kBAG5DvB,QAAO,SAAAoG,GACN,MAAmB,KAAhBisB,KACKjsB,EAAUjS,MAAMoN,cAAcvS,SAASqjC,EAAY9wB,kBAG5DvB,QAAO,SAAAoG,GACN,MAAqB,KAAlBmsB,KACMnsB,EAAU1L,YACX0L,EAAU1L,SAAS6G,cAAcvS,SAASujC,EAAchxB,kBAGlE,OAAOmxB,GAAsB,IAG/B,OACE,yBAAKtoB,UAAU,WACb,yBAAKkD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAU,wBAAd,OAAsCxD,QAAtC,IAAsCA,OAAtC,EAAsCA,EAAc4E,WAApD,aAAmE5E,QAAnE,IAAmEA,OAAnE,EAAmEA,EAAcnN,MACjF,kBAAC8Q,GAAA,EAAD,CAAQH,UAAU,iBAChBmG,QAAS,kBAAM1hB,EAAQu0B,WADzB,iBAGA,kBAAC,KAAD,CAAM3V,GAAE,uBAAkBqK,EAAMC,OAAOphB,gBACrC,kBAAC4T,GAAA,EAAD,CAAQC,QAAQ,UAAUJ,UAAU,kBAApC,wBAGJ,kBAACc,GAAA,EAAD,CAAKd,UAAU,QACb,kBAACe,GAAA,EAAD,CAAKgB,GAAG,OAAO/B,UAAU,eACzB,kBAACqF,GAAA,EAAKG,MAAN,kBAIA,kBAACzE,GAAA,EAAD,CAAKgB,GAAG,KACN,kBAACsD,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAOyiB,EAAgBpf,YAAY,YAAY7C,SArEpD,SAACV,GAC5B4iB,EAAkB5iB,EAAMC,OAAOC,WAuE3B,kBAACrE,GAAA,EAAD,CAAKgB,GAAG,OAAO/B,UAAU,eACzB,kBAACqF,GAAA,EAAKG,MAAN,eAIA,kBAACzE,GAAA,EAAD,CAAKgB,GAAG,KACN,kBAACsD,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO2iB,EAAatf,YAAY,YAAY7C,SA1EpD,SAACV,GACzB8iB,EAAe9iB,EAAMC,OAAOC,WA4ExB,kBAACrE,GAAA,EAAD,CAAKgB,GAAG,OAAO/B,UAAU,eACzB,kBAACqF,GAAA,EAAKG,MAAN,eAIA,kBAACzE,GAAA,EAAD,CAAKgB,GAAG,KACN,kBAACsD,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO6iB,EAAaxf,YAAY,YAAY7C,SA/EpD,SAACV,GACzBgjB,EAAehjB,EAAMC,OAAOC,YAiFX,OAAZ5I,QAAY,IAAZA,OAAA,EAAAA,EAAchN,cACf,kBAAC,IAAMytB,SAAP,KACE,kBAAClc,GAAA,EAAD,CAAKgB,GAAG,OAAO/B,UAAU,eACzB,kBAACqF,GAAA,EAAKG,MAAN,iBAIA,kBAACzE,GAAA,EAAD,CAAKgB,GAAG,KACN,kBAACsD,GAAA,EAAKI,QAAN,CAAcE,KAAK,OAAOP,MAAO+iB,EAAe1f,YAAY,YAAY7C,SAtFtD,SAACV,GAC3BkjB,EAAiBljB,EAAMC,OAAOC,aA2F5B,kBAACgI,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACc,OAAK,EAACpO,UAAU,QACtC,+BACE,4BACE,wCACA,qCACA,sCACa,OAAZxD,QAAY,IAAZA,OAAA,EAAAA,EAAcjN,cACZ,yCAEU,OAAZiN,QAAY,IAAZA,OAAA,EAAAA,EAAchN,cACZ,yCAEU,OAAZgN,QAAY,IAAZA,OAAA,EAAAA,EAAc/M,UACZ,oCAEH,uCACA,6CAGJ,+BAEE44B,IACC70B,MAAK,SAACC,EAAGC,GACR,OAAID,EAAExD,SAAWyD,EAAEzD,SAAiB,EAC5BwD,EAAExD,SAAWyD,EAAEzD,UAAkB,EACjCwD,EAAE9I,MAAQ+I,EAAE/I,MAAc,GACrB,KACZoJ,KAAI,SAAAiI,GAAS,OACd,wBAAI0E,IAAK1E,EAAUnW,IACjB,4BAAKmW,EAAU/L,UAEf,6BACI+L,EAAU9L,WACV,kBAAC,WAAD,KAAW8L,EAAUrR,MAC3B,uBAAGqV,UAAU,6CACbmG,QAAS,kBAAMjR,EAAU,GAAD,cAAIsH,QAAJ,IAAIA,OAAJ,EAAIA,EAAcnN,KAAlB,YAA0B2M,EAAU/L,SAApC,YAAgD+L,EAAUrR,MAA1D,aAAoEqR,EAAUjS,OAAS,kBAAC,GAAD,CAC/GwC,cAAemhB,EAAMC,OAAOphB,cAAeC,YAAawP,EAAUnW,KAAQ,mBAHpE,OAMDmW,EAAU9L,WACX,uBAAGoQ,KAAMtE,EAAU9L,UAAWiV,OAAO,SAASiD,IAAI,uBAAuBpM,EAAUrR,QAGrF,4BACCqR,EAAU5W,KACT,uBAAGkb,KAAMtE,EAAU5W,IAAK+f,OAAO,SAASiD,IAAI,uBAAuBpM,EAAUjS,SAGlE,OAAZyS,QAAY,IAAZA,OAAA,EAAAA,EAAcjN,cACZ,gCAAMyM,EAAU1L,WAGN,OAAZkM,QAAY,IAAZA,OAAA,EAAAA,EAAchN,cACZ,4BACAwM,EAAUlP,aACX,uBAAGwT,KAAMtE,EAAUlP,YAAaqY,OAAO,SAASiD,IAAI,uBAApD,YAECpM,EAAUE,iBACT,0BAAM8D,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,eAAD,OAAgB8G,EAAUjS,OAAS,kBAAC,GAAD,CAAcR,QAASyS,EAAUE,kBAAoB,kBADhH,cAOS,OAAZM,QAAY,IAAZA,OAAA,EAAAA,EAAc/M,UACZ,4BACAuM,EAAU9V,MACP,0BAAM8Z,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,YAAD,OAAa8G,EAAUjS,OAC/C,kBAAC,GAAD,CAAW7D,KAAM8V,EAAU9V,OAAU,kBAFrC,SAQN,4BACE,kBAAC,KAAD,CAAMmd,GAAE,kCAA6BqK,EAAMC,OAAOphB,cAA1C,YAA2DyP,EAAUnW,GAArE,YAA2EmW,EAAUjS,QAC3F,0BAAMiW,UAAU,0BAAhB,cAGN,4BACKhE,EAAUic,iBAAmB,GAC5B,0BAAMjY,UAAU,yBAChBmG,QAAS,kBAAMjR,EAAU,0BAAD,OAA2B8G,EAAUjS,OAAS,kBAAC,GAAD,CAAyBwC,cAAa,OAAEiQ,QAAF,IAAEA,OAAF,EAAEA,EAAc3W,GAAI2G,YAAawP,EAAUnW,KAAO,kBAC3JmW,EAAUic,iBAFb,uBAUZ,yBAAK/U,MAAO,CAAC6K,QAAS,SACtB,wBAAI/N,UAAU,qBAAd,mBAAmDqoB,IAAkBl1B,aC9J5D6L,iBAxDO,WACpB,IAD0B,EACRC,qBAAW1B,IACee,QAArChD,EAFmB,EAEnBA,UAAWtM,EAFQ,EAERA,aASlB,OAPAqQ,qBAAU,WACW,EAAA5L,EAAAY,OAAA,kEAAAZ,EAAA,MACXzE,KADW,uCAIlB,CAACA,IAGF,yBAAKgR,UAAU,oBACb,kBAACoN,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACtN,UAAU,QAChC,+BACE,4BACE,sCACA,uCACA,oCACA,wCACA,qCACA,4CACA,0CACA,wCAGJ,+BACC1E,EAAUiF,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEhJ,KAAOiJ,EAAEjJ,KAAO,GAAK,KACxDsJ,KAAI,SAACsH,EAAUyP,GAAX,OACL,wBAAIpK,IAAKoK,GACP,4BAAKzP,EAAS+F,YACd,4BAAK/F,EAAS6pB,cACd,4BAAKP,GAAgCtpB,EAAS5Q,OAC9C,4BAAK4Q,EAASzM,UAAY,MAAQ,MAClC,4BACE,kBAAC,KAAD,CAAMyU,GAAE,4BAAuBhI,EAAS3M,aACvC2M,EAAS7Q,QAGZ,4BACG6Q,EAAS8pB,gBAAkBR,GAAgCtpB,EAAS8pB,iBAAmB,IAE1F,4BACG9pB,EAAS+pB,aAEZ,4BACG/pB,EAASsV,OAAS,uBAAG3Q,UAAU,yCAA2C,cCUxEhB,iBAxDS,WACtB,IAD4B,EACVC,qBAAW1B,IACmBe,QAAzC5C,EAFqB,EAErBA,YAAazM,EAFQ,EAERA,eASpB,OAPAoQ,qBAAU,WACW,EAAA5L,EAAAY,OAAA,kEAAAZ,EAAA,MACXxE,KADW,uCAIlB,CAACA,IAGF,yBAAK+Q,UAAU,oBACb,kBAACoN,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACtN,UAAU,QAChC,+BACE,4BACE,sCACA,uCACA,oCACA,wCACA,qCACA,4CACA,0CACA,wCAGJ,+BACCtE,EAAY6E,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEhJ,KAAOiJ,EAAEjJ,KAAO,GAAK,KAC1DsJ,KAAI,SAACsH,EAAUyP,GAAX,OACL,wBAAIpK,IAAKoK,GACP,4BAAKzP,EAAS+F,YACd,4BAAK/F,EAAS6pB,cACd,4BAAKP,GAAgCtpB,EAAS5Q,OAC9C,4BAAK4Q,EAASzM,UAAY,MAAQ,MAClC,4BACE,kBAAC,KAAD,CAAMyU,GAAE,4BAAuBhI,EAAS3M,aACvC2M,EAAS7Q,QAGZ,4BACG6Q,EAAS8pB,gBAAkBR,GAAgCtpB,EAAS8pB,iBAAmB,IAE1F,4BACG9pB,EAAS+pB,aAEZ,4BACG/pB,EAASsV,OAAS,uBAAG3Q,UAAU,yCAA2C,cCMxE4qB,I,OAnDY,SAAC,GAAkC,IAAjCr+B,EAAgC,EAAhCA,cAAeC,EAAiB,EAAjBA,YAEnCqB,EADWoR,qBAAW1B,IACKiB,iBAA3B3Q,cAFoD,EAGvBqR,oBAAS,GAHc,oBAGpDpK,EAHoD,KAGxCsP,EAHwC,OAIrBlF,mBAASmF,eAAYC,eAJA,oBAIpDC,EAJoD,KAIvCC,EAJuC,KAsB3D,OACE,kBAAC3D,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,CAAMC,YAAU,GACd,kBAAC,UAAD,CACEf,YAAaA,EACbsB,iBAAiB,gBACjBC,iBAAiB,gBACjBC,gBAAgB,eAChBC,oBAzBoB,SAACC,GAC3BzB,EAAeyB,MA0BX,kBAACnF,GAAA,EAAD,CAAKd,UAAU,2CAEbuE,EAAY2B,sBACXpR,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1B5B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN,IAAIC,EAAiB/B,EAAY2B,oBACjC9B,GAAc,GACXkC,GACDzY,EAActB,EAAeC,EAAaga,KAAYC,wBAAaH,KAClEI,SAAQ,WACPtC,GAAc,QAkBG,OACdtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,sBCqBVhB,iBAlD8D,SAAC,GACvD,IAArB0O,EAAoB,EAApBA,MAAOjpB,EAAa,EAAbA,QACCoO,EAAYoM,qBAAW1B,IADX,EAEqB1K,EAAU2L,iBAA1CzM,EAFW,EAEXA,YAAa84B,EAFF,EAEEA,gBACb31B,EAAarC,EAAUoC,WAAvBC,UAWT,OATEmK,qBAAU,WAILqO,EAAMC,OAAOphB,eAAiBmhB,EAAMC,OAAOnhB,aAH3B,EAAAiH,EAAAY,OAAA,kEAAAZ,EAAA,MACXo3B,EAAgBnd,EAAMC,OAAOphB,cAAemhB,EAAMC,OAAOnhB,cAD9C,uCAMlB,CAACq+B,EAAiBnd,EAAMC,OAAOphB,cAAemhB,EAAMC,OAAOnhB,cAG9D,yBAAKwT,UAAU,4BACT,kBAACS,GAAA,EAAD,CAAMT,UAAU,uBACd,kBAACS,GAAA,EAAKf,OAAN,KACE,yBAAKwD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAU,qBAAd,mBAAkD,0BAAMkD,MAAO,CAACC,MAAO,QAASuK,EAAMC,OAAO5jB,QAC7F,kBAACoW,GAAA,EAAD,CAAQH,UAAU,OAClBmG,QAAS,kBAAM1hB,EAAQu0B,WADvB,WAGA,kBAAC7Y,GAAA,EAAD,CAAQC,QAAQ,OAChB+F,QAAS,kBAAMjR,EAAU,yBAAD,OAA0BwY,EAAMC,OAAO5jB,OAC/D,kBAAC,GAAD,CAAoBwC,cAAemhB,EAAMC,OAAOphB,cAAeC,YAAakhB,EAAMC,OAAOnhB,cAAgB,mBAFzG,WARZ,OAgBOuF,QAhBP,IAgBOA,OAhBP,EAgBOA,EAAawO,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEhJ,KAAOiJ,EAAEjJ,KAAO,GAAI,KAC1DsJ,KAAI,SAAC2G,EAAY8F,GAAb,OACH,kBAACC,GAAA,EAAD,CAAMC,IAAKF,EAAKzB,KAAMyB,EAAM,IAAM,EAAI,UAAY,YAClDR,UAAU,QACV,kBAACS,GAAA,EAAKX,KAAN,KACE,kBAACW,GAAA,EAAKb,MAAN,CAAYI,UAAU,UAAUtF,EAAWwqB,aAA3C,cACGP,GAAgCjqB,EAAWjQ,MAD9C,OAGGs6B,GAAgCrqB,EAAWjQ,OAE7CkW,aAAMjG,EAAWrW,kBCYjBymC,GA5DY,SAAC,GAAsD,IAArDv+B,EAAoD,EAApDA,cAAeC,EAAqC,EAArCA,YAAaoQ,EAAwB,EAAxBA,UAAWvY,EAAa,EAAbA,QAE3D0mC,EADW9rB,qBAAW1B,IACKiB,iBAA3BusB,cAFwE,EAG3C7rB,oBAAS,GAHkC,oBAGxEpK,EAHwE,KAG5DsP,EAH4D,OAIzClF,mBAASmF,eAAYC,eAJoB,oBAIxEC,EAJwE,KAI3DC,EAJ2D,KAQ/EnF,qBAAU,WACR,GAAGhb,EAAS,CACV,IAAMogB,EAAiBC,KAAYrgB,GAC7BsgB,EAAQC,gBAAaC,qBACzBJ,EAAeK,cACfL,EAAeM,WAEjBP,EAAeH,eAAYW,kBAAkBL,OAE9C,CAACtgB,IAcJ,OACE,kBAACwc,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,CAAMC,YAAU,GACd,kBAAC,UAAD,CACEf,YAAaA,EACbsB,iBAAiB,gBACjBC,iBAAiB,gBACjBC,gBAAgB,eAChBC,oBAlCoB,SAACC,GAC3BzB,EAAeyB,MAmCX,kBAACnF,GAAA,EAAD,CAAKd,UAAU,2CAEbuE,EAAY2B,sBACXpR,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1B5B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN,IAAIC,EAAiB/B,EAAY2B,oBACjC9B,GAAc,GACXkC,GACDykB,EAAcx+B,EAAeC,EAAaoQ,EAAW4J,KAAYC,wBAAaH,KAC7EI,SAAQ,WACPtC,GAAc,QAkBG,UACdtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,qBCoBVhB,iBA1DqE,SAAC,GAC9D,IAArB0O,EAAoB,EAApBA,MAAOjpB,EAAa,EAAbA,QACCoO,EAAYoM,qBAAW1B,IADX,EAEqB1K,EAAU2L,iBAA1CzM,EAFW,EAEXA,YAAa84B,EAFF,EAEEA,gBACb31B,EAAarC,EAAUoC,WAAvBC,UAWT,OATEmK,qBAAU,WAILqO,EAAMC,OAAOphB,eAAiBmhB,EAAMC,OAAOnhB,aAH3B,EAAAiH,EAAAY,OAAA,kEAAAZ,EAAA,MACXo3B,EAAgBnd,EAAMC,OAAOphB,cAAemhB,EAAMC,OAAOnhB,cAD9C,uCAMlB,CAACq+B,EAAiBnd,EAAMC,OAAOphB,cAAemhB,EAAMC,OAAOnhB,cAG9D,yBAAKwT,UAAU,4BACT,kBAACS,GAAA,EAAD,CAAMT,UAAU,uBACd,kBAACS,GAAA,EAAKf,OAAN,KACE,yBAAKwD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAU,qBAAd,mBAAkD,0BAAMkD,MAAO,CAACC,MAAO,QAASuK,EAAMC,OAAO5jB,QAC7F,kBAACoW,GAAA,EAAD,CAAQH,UAAU,OAClBmG,QAAS,kBAAM1hB,EAAQu0B,WADvB,WAGA,kBAAC7Y,GAAA,EAAD,CAAQC,QAAQ,OAChB+F,QAAS,kBAAMjR,EAAU,yBAAD,OAA0BwY,EAAMC,OAAO5jB,OAC/D,kBAAC,GAAD,CAAoBwC,cAAemhB,EAAMC,OAAOphB,cAAeC,YAAakhB,EAAMC,OAAOnhB,cAAgB,mBAFzG,WARZ,OAgBOuF,QAhBP,IAgBOA,OAhBP,EAgBOA,EAAawO,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEhJ,KAAOiJ,EAAEjJ,KAAO,GAAI,KAC1DsJ,KAAI,SAAC2G,EAAY8F,GAAb,OACH,kBAACC,GAAA,EAAD,CAAMC,IAAKF,EAAKzB,KAAMyB,EAAM,IAAM,EAAI,UAAY,YAClDR,UAAU,QACV,kBAACS,GAAA,EAAKX,KAAN,KACE,kBAACW,GAAA,EAAKb,MAAN,CAAYI,UAAU,UAAUtF,EAAWwqB,aAA3C,cACGP,GAAgCjqB,EAAWjQ,MAD9C,OAGGs6B,GAAgCrqB,EAAWjQ,MAC5C,kBAAC0V,GAAA,EAAD,CAAQH,UAAU,OAAOI,QAAQ,UACjC+F,QAAS,kBAAMjR,EAAU,sBAAD,OAAuBwY,EAAMC,OAAO5jB,OAC5D,kBAAC,GAAD,CAAoBwC,cAAemhB,EAAMC,OAAOphB,cAChDC,YAAakhB,EAAMC,OAAOnhB,YAC1BoQ,UAAWlC,EAAWkC,UACtBvY,QAASqW,EAAWrW,UAAY,mBALhC,WASDsc,aAAMjG,EAAWrW,kBCAjB2a,iBAzD2D,SAAC,GACpD,IAArB0O,EAAoB,EAApBA,MAAOjpB,EAAa,EAAbA,QAAa,EACFwa,qBAAW1B,IACmBkB,gBAAzC1M,EAFa,EAEbA,YAAanE,EAFA,EAEAA,eAWpB,OATAyR,qBAAU,WAILqO,EAAMC,OAAOphB,eAHG,EAAAkH,EAAAY,OAAA,kEAAAZ,EAAA,MACX7F,EAAe8f,EAAMC,OAAOphB,gBADjB,uCAMlB,CAACqB,EAAgB8f,EAAMC,OAAOphB,gBAG/B,yBAAKyT,UAAU,oBACb,yBAAKkD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAU,wBAAd,sBACA,kBAACG,GAAA,EAAD,CAAQH,UAAU,iBAChBmG,QAAS,kBAAM1hB,EAAQu0B,WADzB,YAIF,kBAAC5L,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACtN,UAAU,QAChC,+BACE,4BACE,wCACA,qCACA,qCACA,oCACA,yCAGJ,sCACCjO,QADD,IACCA,OADD,EACCA,EAAawO,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEhJ,KAAOiJ,EAAEjJ,KAAO,GAAK,KAC3DsJ,KAAI,SAAC2G,EAAYoQ,GAAb,OACL,wBAAIpK,IAAKoK,GACP,4BAAKpQ,EAAWzK,UAChB,4BAAKyK,EAAW/P,OAChB,4BACK+P,EAAWtV,KACV,uBAAGkb,KAAM5F,EAAWtV,IAAK+f,OAAO,SAASiD,IAAI,uBAAuB1N,EAAW3Q,QAGrF,4BAAM,IAAIoP,KAAKuB,EAAWjQ,MAAOugC,kBACjC,4BACM,kBAAC,KAAD,CAAM3nB,GAAE,gCAA2B3I,EAAWnO,cAAtC,YAAuDmO,EAAWlO,YAAlE,YAAiFkO,EAAW3Q,QAClG,0BAAMiW,UAAU,0BAAhB,wBCaHhB,iBA3D4D,SAAC,GACrD,IAArB0O,EAAoB,EAApBA,MAAOjpB,EAAa,EAAbA,QAAa,EACFwa,qBAAW1B,IACyBkB,gBAA/C1M,EAFa,EAEbA,YAAak5B,EAFA,EAEAA,qBAWpB,OATA5rB,qBAAU,WAILqO,EAAMC,OAAO1b,UAHG,EAAAwB,EAAAY,OAAA,kEAAAZ,EAAA,MACXw3B,EAAqBvd,EAAMC,OAAO1b,WADvB,uCAMlB,CAACg5B,EAAsBvd,EAAMC,OAAO1b,WAGrC,yBAAK+N,UAAU,oBACb,yBAAKkD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAU,wBAAd,sBACA,kBAACG,GAAA,EAAD,CAAQH,UAAU,iBAChBmG,QAAS,kBAAM1hB,EAAQu0B,WADzB,YAIF,kBAAC5L,GAAA,EAAD,CAAOC,SAAO,EAACC,UAAQ,EAACtN,UAAU,QAChC,+BACE,4BACE,yCACA,wCACA,qCACA,qCACA,oCACA,yCAGJ,sCACCjO,QADD,IACCA,OADD,EACCA,EAAawO,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEhJ,KAAOiJ,EAAEjJ,KAAO,GAAK,KAC3DsJ,KAAI,SAAC2G,EAAYoQ,GAAb,OACL,wBAAIpK,IAAKoK,GACP,4BAAKpQ,EAAWorB,WAChB,4BAAKprB,EAAWzK,UAChB,4BAAKyK,EAAW/P,OAChB,4BACK+P,EAAWtV,KACV,uBAAGkb,KAAM5F,EAAWtV,IAAK+f,OAAO,SAASiD,IAAI,uBAAuB1N,EAAW3Q,QAGrF,4BAAM,IAAIoP,KAAKuB,EAAWjQ,MAAOugC,kBACjC,4BACM,kBAAC,KAAD,CAAM3nB,GAAE,gCAA2B3I,EAAWnO,cAAtC,YAAuDmO,EAAWlO,YAAlE,YAAiFkO,EAAW3Q,QAClG,0BAAMiW,UAAU,0BAAhB,wBCEH4qB,I,OAnDY,SAAC,GAAqB,IAApBM,EAAmB,EAAnBA,cAEpBr9B,EADWoR,qBAAW1B,IACKY,gBAA3BtQ,cAFuC,EAGVqR,oBAAS,GAHC,oBAGvCpK,EAHuC,KAG3BsP,EAH2B,OAIRlF,mBAASmF,eAAYC,eAJb,oBAIvCC,EAJuC,KAI1BC,EAJ0B,KAsB9C,OACE,kBAAC3D,GAAA,EAAD,KACE,kBAACwE,GAAA,EAAD,CAAMC,YAAU,GACd,kBAAC,UAAD,CACEf,YAAaA,EACbsB,iBAAiB,gBACjBC,iBAAiB,gBACjBC,gBAAgB,eAChBC,oBAzBoB,SAACC,GAC3BzB,EAAeyB,MA0BX,kBAACnF,GAAA,EAAD,CAAKd,UAAU,2CAEbuE,EAAY2B,sBACXpR,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,UAAU+F,QA1B5B,SAACjB,GACpBA,EAAMkB,iBACNlB,EAAMmB,kBACN,IAAIC,EAAiB/B,EAAY2B,oBACjC9B,GAAc,GACXkC,GACDzY,EAAcq9B,EAAe1kB,KAAYC,wBAAaH,KACrDI,SAAQ,WACPtC,GAAc,QAkBG,OACdtP,GAAc,kBAACqL,GAAA,EAAD,CAAQC,QAAQ,YAAYuG,UAAQ,GACjD,kBAACC,GAAA,EAAD,CACE7J,GAAG,OACH8J,UAAU,SACVxG,KAAK,KACLyG,KAAK,SACLC,cAAY,OACZ/G,UAAU,SAPC,sBCoBVhB,iBAlDgE,SAAC,GACzD,IAArB0O,EAAoB,EAApBA,MAAOjpB,EAAa,EAAbA,QACCoO,EAAYoM,qBAAW1B,IADX,EAEqB1K,EAAUsL,gBAA1CpM,EAFW,EAEXA,YAAa84B,EAFF,EAEEA,gBACb31B,EAAarC,EAAUoC,WAAvBC,UAWP,OATAmK,qBAAU,WAILqO,EAAMC,OAAOhhB,cAHG,EAAA8G,EAAAY,OAAA,kEAAAZ,EAAA,MACXo3B,EAAgBnd,EAAMC,OAAOhhB,eADlB,uCAMlB,CAACk+B,EAAiBnd,EAAMC,OAAOhhB,eAGhC,yBAAKqT,UAAU,4BACT,kBAACS,GAAA,EAAD,CAAMT,UAAU,uBACd,kBAACS,GAAA,EAAKf,OAAN,KACE,yBAAKwD,MAAO,CAAC6K,QAAS,SACpB,wBAAI/N,UAAU,qBAAd,mBAAkD,0BAAMkD,MAAO,CAACC,MAAO,QAASuK,EAAMC,OAAO5jB,QAC7F,kBAACoW,GAAA,EAAD,CAAQH,UAAU,OAClBmG,QAAS,kBAAM1hB,EAAQu0B,WADvB,WAGA,kBAAC7Y,GAAA,EAAD,CAAQC,QAAQ,OAChB+F,QAAS,kBAAMjR,EAAU,yBAAD,OAA0BwY,EAAMC,OAAO5jB,OAC/D,kBAAC,GAAD,CAAoBmhC,cAAexd,EAAMC,OAAOhhB,eAAkB,mBAFlE,WARZ,OAgBOoF,QAhBP,IAgBOA,OAhBP,EAgBOA,EAAawO,QAAQ/M,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEhJ,KAAOiJ,EAAEjJ,KAAO,GAAI,KAC1DsJ,KAAI,SAAC2G,EAAY8F,GAAb,OACH,kBAACC,GAAA,EAAD,CAAMC,IAAKF,EAAKzB,KAAMyB,EAAM,IAAM,EAAI,UAAY,YAClDR,UAAU,QACV,kBAACS,GAAA,EAAKX,KAAN,KACE,kBAACW,GAAA,EAAKb,MAAN,CAAYI,UAAU,UAAUtF,EAAWwqB,aAA3C,cACGP,GAAgCjqB,EAAWjQ,MAD9C,OAGGs6B,GAAgCrqB,EAAWjQ,OAE7CkW,aAAMjG,EAAWrW,kBCsInB8mC,eAAWnsB,cA1GiB,SAAC,GAAkB,IAAhBpG,EAAe,EAAfA,SACtC/F,EAAYoM,qBAAW1B,IAD8B,EAEhB1K,EAAU2D,YAA7C40B,EAFmD,EAEnDA,aAAc1nC,EAFqC,EAErCA,MAAO4S,EAF8B,EAE9BA,UACrBe,EAAYxE,EAAUsC,UAAtBkC,QAUR,GARAgI,qBAAU,WACJ3b,EACF2T,IAAUqP,SAAQ,kBAAM0kB,OAExBA,MAED,CAAC/zB,EAAS+zB,EAAc1nC,KAEtB4S,EAAW,OAAO,kBAAC,GAAD,CAAkB/M,QAAQ,mBAEjD,IAAM+lB,EACJ,oCACE,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAOU,OAAK,EAACqb,KAAK,IAAItiB,UAAW9H,KACjC,kBAAC,IAAD,CAAO+O,OAAK,EAACqb,KAAK,WAAWtiB,UAAWrgB,KACxC,kBAAC,IAAD,CAAOsnB,OAAK,EAACqb,KAAK,WAAWtiB,UAAWuiB,KACxC,kBAAC,IAAD,CAAOtb,OAAK,EAACqb,KAAK,SAAStiB,UAAWpF,KACtC,kBAAC,IAAD,CAAOqM,OAAK,EAACqb,KAAK,gBAAgBtiB,UAAWwiB,KAC7C,kBAAC,IAAD,CAAOvb,OAAK,EAACqb,KAAK,kBAAkBtiB,UAAWyiB,KAC/C,kBAAC,IAAD,CAAOxb,OAAK,EAACqb,KAAK,mBAAmBtiB,UAAW0iB,KAChD,kBAAC,IAAD,CAAOzb,OAAK,EAACqb,KAAK,WAAWtiB,UAAWhB,KACxC,kBAAC,GAAD,CAAciI,OAAK,EAACqb,KAAK,kBAAkBtiB,UAAW2iB,KACtD,kBAAC,GAAD,CAAcL,KAAK,sBAAsBtiB,UAAW4iB,KACpD,kBAAC,GAAD,CAAcjrB,IAAK9H,EAAS8H,IAC1B2qB,KAAM,CAAC,oBAAqB,0BAC5BtiB,UAAW6iB,KACb,kBAAC,GAAD,CAAcP,KAAK,uBAAuBtiB,UAAW8iB,KACrD,kBAAC,GAAD,CAAcnrB,IAAK9H,EAAS8H,IAC1B2qB,KAAM,CAAC,6BAA8B,uCACrCtiB,UAAWiW,KACb,kBAAC,GAAD,CAAchP,OAAK,EAACqb,KAAK,sBAAsBtiB,UAAW+iB,KAC1D,kBAAC,GAAD,CAAc9b,OAAK,EAACqb,KAAK,sBAAsBtiB,UAAWoI,KAC1D,kBAAC,GAAD,CAAcnB,OAAK,EAACqb,KAAK,SAAStiB,UAAWgjB,KAC7C,kBAAC,GAAD,CAAc/b,OAAK,EAACqb,KAAK,YAAYtiB,UAAWijB,KAChD,kBAAC,GAAD,CAAchc,OAAK,EAACqb,KAAK,aAAatiB,UAAWkjB,KACjD,kBAAC,GAAD,CAAcjc,OAAK,EAACqb,KAAK,sBAAsBtiB,UAAWmjB,KAC1D,kBAAC,GAAD,CAAclc,OAAK,EAACqb,KAAK,8BAA8BtiB,UAAWojB,KAClE,kBAAC,GAAD,CAAcnc,OAAK,EAACqb,KAAK,mCAAmCtiB,UAAWqjB,KACvE,kBAAC,GAAD,CAAcpc,OAAK,EAACqb,KAAK,yCAAyCtiB,UAAWsjB,KAC7E,kBAAC,GAAD,CAAcrc,OAAK,EAACqb,KAAK,uCAAuCtiB,UAAWujB,KAC3E,kBAAC,GAAD,CAActc,OAAK,EAACqb,KAAK,yBAAyBtiB,UAAWwjB,KAC7D,kBAAC,GAAD,CAAcvc,OAAK,EAACqb,KAAK,aAAatiB,UAAWyjB,KACjD,kBAAC,GAAD,CAAcxc,OAAK,EAACqb,KAAK,yBAAyBtiB,UAAW0jB,KAC7D,kBAAC,GAAD,CAAczc,OAAK,EAACqb,KAAK,aAAatiB,UAAW2jB,KACjD,kBAAC,GAAD,CAAc1c,OAAK,EAACqb,KAAK,yBAAyBtiB,UAAW4jB,KAC7D,kBAAC,GAAD,CAAc3c,OAAK,EAACqb,KAAK,iBAAiBtiB,UAAW0K,KACrD,kBAAC,GAAD,CAAczD,OAAK,EAACqb,KAAK,mBAAmBtiB,UAAW6jB,KACvD,kBAAC,GAAD,CAAc5c,OAAK,EAACqb,KAAK,+BAA+BtiB,UAAW4W,KACnE,kBAAC,GAAD,CAAc3P,OAAK,EAACqb,KAAK,iCAAiCtiB,UAAWuX,KACrE,kBAAC,GAAD,CAActQ,OAAK,EAACqb,KAAK,iCAAiCtiB,UAAWmZ,KACrE,kBAAC,GAAD,CAAclS,OAAK,EAACqb,KAAK,iCAAiCtiB,UAAWsZ,KACrE,kBAAC,GAAD,CAAcrS,OAAK,EAACqb,KAAK,8BAA8BtiB,UAAWyb,KAClE,kBAAC,GAAD,CAAcxU,OAAK,EAACqb,KAAK,+BAA+BtiB,UAAW8jB,KACnE,kBAAC,GAAD,CAAc7c,OAAK,EAACqb,KAAK,8BAA8BtiB,UAAW+jB,KAClE,kBAAC,GAAD,CAAc9c,OAAK,EAACqb,KAAK,8BAA8BtiB,UAAWsb,KAClE,kBAAC,GAAD,CAAcrU,OAAK,EAACqb,KAAK,aAAatiB,UAAWgkB,KACjD,kBAAC,GAAD,CAAc/c,OAAK,EAACqb,KAAK,yBAAyBtiB,UAAWikB,KAC7D,kBAAC,GAAD,CAAchd,OAAK,EAACqb,KAAK,aAAatiB,UAAWkkB,KACjD,kBAAC,GAAD,CAAcjd,OAAK,EAACqb,KAAK,iCAAiCtiB,UAAWmkB,KACrE,kBAAC,GAAD,CAAcld,OAAK,EAACqb,KAAK,8BAA8BtiB,UAAWwb,KAClE,kBAAC,GAAD,CAAcvU,OAAK,EAACqb,KAAK,aAAatiB,UAAWokB,KACjD,kBAAC,GAAD,CAAcnd,OAAK,EAACqb,KAAK,6BAA6BtiB,UAAWqkB,KACjE,kBAAC,GAAD,CAAcpd,OAAK,EAACqb,KAAK,4BAA4BtiB,UAAWskB,KAChE,kBAAC,GAAD,CAAcrd,OAAK,EAACqb,KAAK,0BAA0BtiB,UAAWukB,KAC9D,kBAAC,GAAD,CAActd,OAAK,EAACqb,KAAK,0BAA0BtiB,UAAWwkB,KAC9D,kBAAC,GAAD,CAAcvd,OAAK,EAACqb,KAAK,0BAA0BtiB,UAAWykB,KAC9D,kBAAC,GAAD,CAAcxd,OAAK,EAACqb,KAAK,gCAAgCtiB,UAAW0kB,KACpE,kBAAC,GAAD,CAAczd,OAAK,EAACqb,KAAK,gCAAgCtiB,UAAW2kB,KACpE,kBAAC,GAAD,CAAc1d,OAAK,EAACqb,KAAK,gCAAgCtiB,UAAW4kB,KACpE,kBAAC,GAAD,CAAc3d,OAAK,EAACqb,KAAK,UAAUtiB,UAAW6kB,KAC9C,kBAAC,GAAD,CAAc5d,OAAK,EAACqb,KAAK,mBAAmBtiB,UAAW8kB,KACvD,kBAAC,GAAD,CAAc7d,OAAK,EAACqb,KAAK,mBAAmBtiB,UAAW+kB,KACvD,kBAAC,GAAD,CAAc9d,OAAK,EAACqb,KAAK,YAAYtiB,UAAWglB,KAChD,kBAAC,GAAD,CAAc/d,OAAK,EAACqb,KAAK,qBAAqBtiB,UAAWilB,KACzD,kBAAC,GAAD,CAAche,OAAK,EAACqb,KAAK,yCAAyCtiB,UAAWwf,KAC7E,kBAAC,GAAD,CAAcvY,OAAK,EAACqb,KAAK,iDAAiDtiB,UAAWklB,KACrF,kBAAC,GAAD,CAAcje,OAAK,EAACqb,KAAK,yCAAyCtiB,UAAWmlB,KAC7E,kBAAC,GAAD,CAAcle,OAAK,EAACqb,KAAK,gDAAgDtiB,UAAWolB,KACpF,kBAAC,GAAD,CAAcne,OAAK,EAACqb,KAAK,gDAAgDtiB,UAAWqlB,KACpF,kBAAC,GAAD,CAAcpe,OAAK,EAACqb,KAAK,aAAatiB,UAAWslB,KACjD,kBAAC,GAAD,CAAcre,OAAK,EAACqb,KAAK,eAAetiB,UAAWulB,KACnD,kBAAC,GAAD,CAActe,OAAK,EAACqb,KAAK,2DAA2DtiB,UAAWwlB,KAC/F,kBAAC,GAAD,CAAcve,OAAK,EAACqb,KAAK,6DAA6DtiB,UAAWylB,KACjG,kBAAC,GAAD,CAAcxe,OAAK,EAACqb,KAAK,8BAA8BtiB,UAAW0lB,KAClE,kBAAC,GAAD,CAAcze,OAAK,EAACqb,KAAK,+BAA+BtiB,UAAW2lB,KACnE,kBAAC,GAAD,CAAc1e,OAAK,EAACqb,KAAK,uCAAuCtiB,UAAW4lB,KAC3E,kBAAC,IAAD,CAAO5lB,UAAW9F,OAKxB,OACE,kBAAC,WAAD,KACE,kBAAC,GAAD,MACA,kBAAC,IAAD,CAAgBoU,SAAS,iBAEzB,kBAAC,GAAD,CAAQ/H,SAAUA,SC9KJsf,QACW,cAA7BjrC,OAAOiV,SAASi2B,UAEe,UAA7BlrC,OAAOiV,SAASi2B,UAEhBlrC,OAAOiV,SAASi2B,SAASnhB,MACvB,2DClBN,yCAaO,IAAMjpB,GAAUqqC,cAEvBC,IAAS7lB,OACP,kBAAC,IAAD,CAAQzkB,QAASA,IACf,mBCdW,WAAwB,IAC7BuqC,EAAaC,cAAbD,SAMR,OAJA3vB,qBAAU,WACR1b,OAAOurC,SAAS,EAAG,KAClB,CAACF,IAEG,ODOL,MACA,kBAAC,GAAD,OAEFG,SAASC,eAAe,SDuHpB,kBAAmBC,WACrBA,UAAUC,cAAcC,MAAMjqC,MAAK,SAAAkqC,GACjCA,EAAaC,iB","file":"static/js/main.13edd21f.chunk.js","sourcesContent":["import axios, { AxiosResponse } from 'axios';\r\nimport { IPythonProblem, IPythonTestCase } from '../models/pythonProblem';\r\nimport { IUserFormValues, IUser, IAppUser, UserInfo, UserProfile } from '../models/user';\r\nimport { history } from '../..';\r\nimport { toast } from 'react-toastify';\r\nimport { ICourseLesson } from '../models/courseLesson';\r\nimport { IResource } from '../models/resource';\r\nimport { IRole } from '../models/role';\r\nimport { ICourse, INewCourse, ICourseInfo, ICourseContent, IParentCourseInfo } from '../models/course';\r\nimport { ISubject } from '../models/subject';\r\nimport { IStudent } from '../models/student';\r\nimport {ITeacher} from '../models/teacher';\r\nimport {IAttendance} from '../models/attendance';\r\nimport {IAssignment, IAssignmentContent, IStudentAssignment, IStudentAssignmentContent} from '../models/assignment';\r\nimport { INumberPuzzle, IUserRank } from '../models/numberPuzzle';\r\nimport { IInquiry } from '../models/inqury';\r\nimport { ILessonContent} from '../models/lesson';\r\nimport { IStudentLesson} from '../models/studentLesson';\r\nimport { IAnswerInfo, IQAInfo, IQuestionInfo, ICourseQuestionInfo } from '../models/qa';\r\nimport {ITopic, ITopicItem} from '../models/topic';\r\nimport { ICourseTopic, ICourseTopicItem } from '../models/courseTopic';\r\nimport {ITeacherCourseTopic } from '../models/TeacherCourseTopic';\r\nimport { IStudentCourseTopic } from '../models/studentCourseTopic';\r\nimport { IDiscussionInfo } from '../models/discussion';\r\nimport { IMessageInfo } from '../models/message';\r\nimport {ISubmission} from '../models/submission';\r\nimport {IAchievement} from '../models/achievement';\r\nimport { IAnnouncement } from '../models/announcement';\r\nimport { IAssistant } from '../models/assistant';\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_URL;\r\n\r\naxios.interceptors.request.use(\r\n config => {\r\n const token = window.localStorage.getItem('jwt');\r\n if (token) config.headers.Authorization = `Bearer ${token}`;\r\n return config;\r\n },\r\n error => {\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\naxios.interceptors.response.use(undefined, error => {\r\n // console.log(error.message);\r\n // console.log(error.response);\r\n if (error.message === 'Network Error' && !error.response) {\r\n toast.error('Network error - make sure API is running!');\r\n return Promise.reject(error);\r\n }\r\n const { status, data, config, headers } = error.response;\r\n if (status === 404) {\r\n history.push('/notfound');\r\n }\r\n if (\r\n status === 401 &&\r\n String(headers['www-authenticate']).includes('The token expired')\r\n ) {\r\n window.localStorage.removeItem('jwt');\r\n history.push('/');\r\n toast.info('Your session has expired, please log in again');\r\n }\r\n if (\r\n status === 400 &&\r\n config.method === 'get' &&\r\n data.errors.hasOwnProperty('id')\r\n ) {\r\n history.push('/notfound');\r\n }\r\n if (status === 500) {\r\n toast.error('Server error - check the terminal for more info!');\r\n }\r\n throw error.response;\r\n});\r\n\r\nconst responseBody = (response: AxiosResponse) => response.data;\r\n\r\nconst requests = {\r\n get: (url: string) => axios.get(url).then(responseBody),\r\n post: (url: string, body: {}) => axios.post(url, body).then(responseBody),\r\n put: (url: string, body: {}) => axios.put(url, body).then(responseBody),\r\n del: (url: string) => axios.delete(url).then(responseBody),\r\n postForm: (url: string, file: Blob) => {\r\n let formData = new FormData();\r\n formData.append('File', file);\r\n return axios\r\n .post(url, formData, {\r\n headers: { 'Content-type': 'multipart/form-data' }\r\n })\r\n .then(responseBody);\r\n }\r\n};\r\n\r\nconst PythonProblems = {\r\n list: (): Promise => requests.get('/pythonproblems'),\r\n info: (id: string) => requests.get(`/pythonproblems/${id}`),\r\n create: (pythonProblem: IPythonProblem) =>\r\n requests.post('/pythonproblems', pythonProblem),\r\n update: (pythonProblem: IPythonProblem) =>\r\n requests.put(`/pythonproblems/${pythonProblem.id}`, pythonProblem),\r\n delete: (id: string) => requests.del(`/pythonproblems/${id}`),\r\n solve: (id: string, code: string) =>\r\n requests.put('/pythonproblems', { id, code })\r\n};\r\n\r\nconst PythonTestCases = {\r\n create: (pythonTestCase: IPythonTestCase) => \r\n requests.post('/pythontestcases', pythonTestCase),\r\n update: (pythonTestCase: IPythonTestCase) => \r\n requests.put(`/pythontestcases/${pythonTestCase.id}`, pythonTestCase),\r\n delete: (id: string) => requests.del(`/pythontestcases/${id}`)\r\n}\r\n\r\nconst User = {\r\n current: (): Promise => requests.get('/user'),\r\n login: (user: IUserFormValues): Promise =>\r\n requests.post(`/user/login`, user),\r\n register: (user: IUserFormValues): Promise =>\r\n requests.post(`/user/register`, user),\r\n changePassword: (oldPassword: string, newPassword: string): Promise => \r\n requests.post(`/user/changepassword`, {oldPassword, newPassword}),\r\n setProfile: (profile: UserProfile) => \r\n requests.put(`/user/setprofile`, profile),\r\n fbLogin: (accessToken: string): Promise => \r\n requests.post(`/user/facebook`, {accessToken}),\r\n gLogin: (accessToken: string) : Promise => \r\n requests.post(`/user/google`, {accessToken}),\r\n studentCourses: (): Promise => requests.get('/user/studentcourses'), \r\n teacherCourses: (): Promise => requests.get('/user/teachercourses'),\r\n assistantCourses: (): Promise => requests.get('/user/assistantcourses'), \r\n parentCourses: (): Promise => requests.get('/user/parentcourses'), \r\n};\r\n\r\nconst Users = {\r\n list: (): Promise => requests.get('/users'),\r\n info: (userName: string): Promise => requests.get(`/users/${userName}`),\r\n setUserInfo: (userInfo: UserInfo) =>\r\n requests.put(`/users/setinfo/${userInfo.userName}`, userInfo),\r\n setParentInfo: (userName: string, parentEmail: string, parentFirstName: string, parentLastName: string) =>\r\n requests.put('/users/setparent', {userName, parentEmail, parentFirstName, parentLastName}),\r\n setRoles: (userName: string, roles: string[]) =>\r\n requests.put('/users/setroles', {userName, roles}),\r\n removeUser: (userName: string) => \r\n requests.del(`/users/removeuser/${userName}`),\r\n setUserActive: (userName: string, active: boolean) =>\r\n requests.put('/users/setactive', {userName, active}),\r\n changeUserEmail: (userName: string, email: string) => \r\n requests.put('/users/changeemail', {userName, email}),\r\n resetPassword: (userName: string, password: string) => \r\n requests.put('/users/resetpassword', {userName, password}),\r\n getStudentCourses: (userName: string): Promise => \r\n requests.get(`/users/studentcourses/${userName}`), \r\n childCourses: (userName: string): Promise => \r\n requests.get(`/users/childcourses/${userName}`) \r\n}\r\n\r\nconst Roles = {\r\n list: (): Promise => requests.get('/roles')\r\n}\r\n\r\nconst Courses = {\r\n list: (): Promise => requests.get('/admin/courses'),\r\n activelist: (): Promise => requests.get('/courses/activelist'),\r\n info:(courseCode: string): Promise => requests.get(`courses/${courseCode}`),\r\n createNewCourse: (course: INewCourse) => requests.post('/courses', course),\r\n editCourse: (course: ICourse) => requests.put('/courses/edit', course),\r\n toggleActive:(courseCode: string, active: boolean) => requests.put('/courses/toggleactive', {courseCode, active}),\r\n addCourseAssistant:(courseCode: string, userName: string) => requests.post('/courses/addassistant', {courseCode, userName}),\r\n removeCourseAssistant:(courseCode: string, userName: string) => requests.post('/courses/removeassistant', {courseCode, userName}),\r\n addCourseStudent:(courseCode: string, userName: string) => requests.post('/courses/addstudent', {courseCode, userName}),\r\n removeCourseStudent:(courseCode: string, userName: string) => requests.post('/courses/removestudent', {courseCode, userName})\r\n}\r\n\r\nconst Course = {\r\n studentcontent:(courseCode: string): Promise => requests.get(`/course/studentcontent/${courseCode}`), \r\n content:(courseCode: string): Promise => requests.get(`/course/${courseCode}`),\r\n setDayOfTheWeek: (courseCode: string, dayOfTheWeek: string) => \r\n requests.put('/course/setdayoftheweek', {courseCode, dayOfTheWeek}),\r\n setTimePeriod: (courseCode: string, timePeriod: string) => \r\n requests.put('/course/settimeperiod', {courseCode, timePeriod}),\r\n setNotice: (courseCode: string, notice: string) => \r\n requests.put('/course/setnotice', {courseCode, notice}),\r\n addResource: (courseCode: string, title: string, url: string, content: string): Promise => \r\n requests.post('/course/addresource', {courseCode, title, url, content}),\r\n addResourceAttach: (courseCode: string, title: string, file: Blob) => {\r\n let formData = new FormData();\r\n formData.append('CourseCode', courseCode);\r\n formData.append('Title', title);\r\n formData.append('File', file);\r\n return axios.post('/course/addresourceattach', formData, {\r\n headers: {'Content-type': 'multipart/form-data'}\r\n })\r\n },\r\n removeResource: (courseCode: string, resourceId: string) => {\r\n requests.post('/course/removeresource', {courseCode, resourceId})\r\n },\r\n addLesson: (courseCode: string, topic: string, date: Date, timePeriod: string): Promise =>\r\n requests.post('/course/addLesson', {courseCode, topic, date, timePeriod}),\r\n setResourceSeqNo: (resourceId: string, seqNo: number) => {\r\n requests.put('/course/setresourceseqno', {resourceId, seqNo})\r\n },\r\n studentReport:(courseCode: string, userName: string): Promise =>\r\n requests.get(`/course/studentReport/${courseCode}/${userName}`)\r\n}\r\n\r\nconst Lesson = {\r\n getAttendances:(lessonId: string): Promise => \r\n requests.get(`/lesson/attendances/${lessonId}`),\r\n setAttendance: (lessonId: string, userName: string, attendingCode: number) => \r\n requests.put('/lesson/setattendance', {lessonId, userName, attendingCode}),\r\n getLesson:(lessonId: string): Promise => \r\n requests.get(`/lesson/${lessonId}`),\r\n setVideoUrl:(lessonId: string, url: string) =>\r\n requests.put('/lesson/seturl', {lessonId, url}),\r\n setLesson: (lessonId: string, seqNo: string, topic: string, date: string, timePeriod: string) => \r\n requests.put('/lesson/setlesson', {lessonId, seqNo, topic, date, timePeriod}),\r\n lessonStudentContent:(lessonId: string): Promise => \r\n requests.get(`lesson/studentcontent/${lessonId}`), \r\n lessonContent:(lessonId: string): Promise => requests.get(`lesson/content/${lessonId}`), \r\n addResource: (lessonId: string, title: string, url: string, content: string): Promise => \r\n requests.post('/lesson/addresource', {lessonId, title, url, content}), \r\n addResourceAttach: (lessonId: string, filename: string, blob: Blob) => {\r\n let formData = new FormData();\r\n formData.append('LessonId', lessonId);\r\n formData.append('Title', filename);\r\n formData.append('File', blob);\r\n return axios.post('/lesson/addresourceattachment', formData, {\r\n headers: {'Content-type': 'multipart/form-data'}\r\n })\r\n },\r\n removeResource: (lessonId: string, resourceId: string) => {\r\n requests.post('/lesson/removeresource', {lessonId, resourceId})\r\n }, \r\n setResourceSeqNo: (resourceId: string, seqNo: number) => {\r\n requests.put('/lesson/setresourceseqno', {resourceId, seqNo})\r\n } \r\n}\r\n\r\nconst Subjects = {\r\n list: (): Promise => requests.get('/subjects'),\r\n createNewSubject: (subject: ISubject) => requests.post('/subjects', subject),\r\n}\r\n\r\nconst Teachers = {\r\n list: (): Promise => requests.get('/teachers') \r\n}\r\n\r\nconst Assistants = {\r\n list: (): Promise => requests.get('/assistants')\r\n}\r\n\r\nconst Students = {\r\n list: (): Promise => requests.get('/students')\r\n}\r\n\r\nconst Assignments = {\r\n assignmentStudentContent:(lessonId: string): Promise => \r\n requests.get(`assignments/studentcontent/${lessonId}`), \r\n assignmentContent:(lessonId: string): Promise => \r\n requests.get(`assignments/content/${lessonId}`),\r\n addProblem: (lessonId: string, title: string, url: string, description: string, seqNo: string, deadline: string,\r\n submitMode: string) => \r\n requests.post('/lesson/addproblem', {lessonId, title, url, description, seqNo, deadline, submitMode}), \r\n addPickProblem: (lessonId: string, title: string, courseTopicId: string, topicItemId: string, \r\n seqNo: string, deadline: string, submitMode: string): Promise => \r\n requests.post('/lesson/addpickproblem', {lessonId, title, courseTopicId, topicItemId, seqNo, deadline, submitMode}), \r\n addProblemAttach: (lessonId: string, title: string, seqNo: string, deadline: string, submitMode: string, file: Blob) => {\r\n let formData = new FormData();\r\n formData.append('LessonId', lessonId);\r\n formData.append('Title', title);\r\n formData.append('SeqNo', seqNo);\r\n formData.append('Deadline', deadline);\r\n formData.append('SubmitMode', submitMode);\r\n formData.append('File', file);\r\n return axios.post('/lesson/addproblemattach', formData, {\r\n headers: {'Content-type': 'multipart/form-data'}\r\n }) \r\n }, \r\n setSeqNo: (assignmentId: string, seqNo: number) => {\r\n requests.put('/assignments/setseqno', {assignmentId, seqNo})\r\n }, \r\n setDeadline: (assignmentId: string, deadline: string) => {\r\n requests.put('/assignments/setdeadline', {assignmentId, deadline})\r\n },\r\n setAnalysisUrl: (assignmentId: string, analysisUrl: string) => {\r\n requests.put(\"/assignments/setanalysisurl\", {assignmentId, analysisUrl})\r\n },\r\n updateProblem: (problemId: string, title: string, url: string, description: string, seqNo: string, \r\n deadline: string, submitMode: string) => \r\n requests.put('/lesson/updateproblem', {problemId, title, url, description, seqNo, deadline, submitMode}), \r\n updatePickProblem: (problemId: string, title: string, courseTopicId: string, topicItemId: string, \r\n seqNo: string, deadline: string, submitMode: string) => \r\n requests.put('/lesson/updatepickproblem', {problemId, title, courseTopicId, topicItemId, seqNo, deadline, submitMode}), \r\n removeProblem:(problemId: string) => \r\n requests.del(`/lesson/removeproblem/${problemId}`), \r\n submitCode:(problemId: string, remark: string, code: string) =>\r\n requests.post('/assignments/submitcode', {problemId, remark, code}),\r\n submitAttach: (problemId: string, remark: string, file: Blob) => {\r\n let formData = new FormData();\r\n formData.append(\"ProblemId\", problemId);\r\n formData.append(\"Remark\", remark);\r\n formData.append(\"File\", file);\r\n return axios.post('/assignments/submitattach', formData, {\r\n headers: {'Content-type': 'multipart/form-data'}\r\n }) \r\n },\r\n studentAssignmentContent:(lessonId: string): Promise => \r\n requests.get(`/assignments/studentcontent/${lessonId}`), \r\n getStudentSubmissions: (problemId: string): Promise =>\r\n requests.get(`/assignments/submissions/${problemId}`),\r\n getProblem:(problemId: string): Promise => \r\n requests.get(`/assignments/problem/${problemId}`),\r\n setTeacherGrade:(problemId: string, userName: string, grade: string, teacherRemark: string) =>\r\n requests.put('/assignments/problem/teachergrade', {problemId, userName, grade, teacherRemark}),\r\n addResource: (lessonId: string, title: string, url: string, content: string): Promise => \r\n requests.post('/assignments/addresource', {lessonId, title, url, content}), \r\n addResourceAttach: (lessonId: string, filename: string, blob: Blob) => {\r\n let formData = new FormData();\r\n formData.append('LessonId', lessonId);\r\n formData.append('Title', filename);\r\n formData.append('File', blob);\r\n return axios.post('/assignments/addresourceattachment', formData, {\r\n headers: {'Content-type': 'multipart/form-data'}\r\n })\r\n },\r\n setResourceSeqNo: (resourceId: string, seqNo: number) => {\r\n requests.put('/assignments/setresourceseqno', {resourceId, seqNo})\r\n },\r\n removeResource: (lessonId: string, resourceId: string) => {\r\n requests.post('/assignments/removeresource', {lessonId, resourceId})\r\n }, \r\n getDiscussions: (assignmentId: string) \r\n :Promise => \r\n requests.get(`/assignments/getdiscussions/${assignmentId}`),\r\n addDiscussion: (assignmentId: string, message: string) =>\r\n requests.post('/assignments/adddiscussion', {assignmentId, message}), \r\n}\r\n\r\nconst Inquiries = {\r\n addInquiry:(phone: string, email: string, topic: string, description: string) =>\r\n requests.post('/inquiries/add', {phone, email, topic, description}),\r\n getInquiries:(): Promise => requests.get('/inquiries'),\r\n setInquiryChecked: (id: string) => requests.put('/inquiries/check', {id}) \r\n}\r\n\r\nconst NumberPuzzles = {\r\n info: (): Promise => requests.get('/numberpuzzle'),\r\n ranks: (): Promise => requests.get('/numberpuzzle/ranks'),\r\n solve: (id: string, expression: string) => \r\n requests.put('/numberpuzzle', {id, expression})\r\n};\r\n\r\nconst QA = {\r\n teacherInfo: (courseCode: string): Promise => requests.get(`/qa/teacherinfo/${courseCode}`),\r\n studentInfo: (courseCode: string): Promise => requests.get(`/qa/studentinfo/${courseCode}`), \r\n questionInfo: (questionId: string): Promise => requests.get(`/qa/questioninfo/${questionId}`),\r\n addQuestion: (courseCode: string, topic: string, isPrivate: boolean, message: string): Promise =>\r\n requests.post('/qa/addquestion', {courseCode, topic, isPrivate, message}),\r\n addAnswer: (questionId: string, message: string): Promise =>\r\n requests.post('/qa/addanswer', {questionId, message}),\r\n updateAnswer: (answerId: string, message: string) =>\r\n requests.post('/qa/updateanswer', {answerId, message}),\r\n getQuestions: (): Promise => \r\n requests.get('/qa/questions'),\r\n getTAQuestions: (): Promise => \r\n requests.get('/qa/taquestions') \r\n};\r\n\r\nconst Topic = {\r\n list: (): Promise => requests.get('/topics'),\r\n assistantlist: (): Promise => requests.get('/topics/alist'), \r\n addTopic: (name: string, subjectCode: string, \r\n hasConcepts: boolean, hasAnalysis: boolean, hasCode: boolean, \r\n isSeparatePage: boolean, isWorkbook: boolean, submitMode: string)\r\n : Promise => \r\n requests.post('topics/addtopic', {name, subjectCode, hasConcepts, hasAnalysis, hasCode, \r\n isSeparatePage, isWorkbook, submitMode}),\r\n setTopic: (topicId: string, name: string, hasConcepts: boolean, hasAnalysis: boolean, \r\n hasCode: boolean, isSeparatePage: boolean, isWorkbook: boolean, submitMode: string) => \r\n requests.put('/topics/settopic', {topicId, name, hasConcepts, hasAnalysis, hasCode, \r\n isSeparatePage, isWorkbook, submitMode}),\r\n getTopic: (topicId: string) : Promise => \r\n requests.get(`/topics/info/${topicId}`),\r\n getTopicItems: (topicId: string) : Promise => \r\n requests.get(`/topics/items/${topicId}`),\r\n addTopicItem: (topicId: string, category: string, seqNo: string, seqNoLink: string, title: string, content: string, url: string) => \r\n requests.post('/topics/addtopicitem', {topicId, category, seqNo, seqNoLink, title, content, url}),\r\n setTopicItemCategory: (topicId: string, topicItemId: string, category: string) => \r\n requests.put('/topics/item/setcategory', {topicId, topicItemId, category}),\r\n setTopicItemSeqNo: (topicId: string, topicItemId: string, seqNo: string, seqNoLink: string) => \r\n requests.put('/topics/item/setseqno', {topicId, topicItemId, seqNo, seqNoLink}),\r\n setTopicItemConcepts: (topicId: string, topicItemId: string, concepts: string) => \r\n requests.put('/topics/item/setconcepts', {topicId, topicItemId, concepts}),\r\n setTopicItem: (topicId: string, topicItemId: string, title: string, url: string) => \r\n requests.put('/topics/item/setitem', {topicId, topicItemId, title, url}),\r\n submitCode:(topicItemId: string, code: string) =>\r\n requests.post('/topics/item/submitcode', {topicItemId, code}), \r\n attachAnalysis: (topicItemId: string, file: Blob) => {\r\n let formData = new FormData();\r\n formData.append(\"TopicItemId\", topicItemId);\r\n formData.append(\"File\", file);\r\n return axios.post('/topics/item/attachanalysis', formData, {\r\n headers: {'Content-type': 'multipart/form-data'}\r\n }) \r\n },\r\n setTopicItemAnalysisContent: (topicId: string, topicItemId: string, content: string) =>\r\n requests.put('topics/item/setanalysiscontent', {topicId, topicItemId, content}),\r\n setTopicItemAnalysisLink: (topicId: string, topicItemId: string, analysisUrl: string) =>\r\n requests.put('topics/item/setanalysislink', {topicId, topicItemId, analysisUrl})\r\n};\r\n\r\nconst CourseTopic = {\r\n getCourseTopics:(courseCode: string): Promise => \r\n requests.get(`/coursetopics/${courseCode}`),\r\n setCourseTopic: (courseCode: string, topicId: string, isAdded: boolean) => \r\n requests.put('/coursetopics/setcoursetopic', {courseCode, topicId, isAdded}),\r\n getCourseTopicItems: (courseTopicId: string) : Promise => \r\n requests.get(`/coursetopics/items/${courseTopicId}`),\r\n addCourseTopicItem: (courseTopicId: string, topicItemId: string) => \r\n requests.post('/coursetopics/additem', {courseTopicId, topicItemId}),\r\n removeCourseTopicItem: (courseTopicId: string, topicItemId: string) => \r\n requests.post('coursetopics/removeitem', {courseTopicId, topicItemId}),\r\n getCourseTopic: (courseTopicId: string) : Promise => \r\n requests.get(`/coursetopics/topic/${courseTopicId}`),\r\n getTeacherCourseTopic: (courseTopicId: string) : Promise => \r\n requests.get(`/coursetopics/teachertopic/${courseTopicId}`), \r\n getStudentCourseTopic: (courseTopicId: string) : Promise => \r\n requests.get(`/coursetopics/studenttopic/${courseTopicId}`),\r\n toggleConcepts: (courseTopicId: string, topicItemId: string, showConcepts: boolean) => \r\n requests.put('coursetopics/toggleconcepts', {courseTopicId, topicItemId, showConcepts}),\r\n toggleAnalysis: (courseTopicId: string, topicItemId: string, showAnalysis: boolean) => \r\n requests.put('coursetopics/toggleanalysis', {courseTopicId, topicItemId, showAnalysis}),\r\n toggleCode: (courseTopicId: string, topicItemId: string, showCode: boolean) => \r\n requests.put('coursetopics/togglecode', {courseTopicId, topicItemId, showCode}),\r\n getDiscussions: (courseTopicId: string, topicItemId: string) \r\n :Promise => \r\n requests.get(`/coursetopics/getdiscussions/${courseTopicId}/${topicItemId}`),\r\n addDiscussion: (courseTopicId: string, topicItemId: string, message: string) =>\r\n requests.post('/coursetopics/adddiscussion', {courseTopicId, topicItemId, message}),\r\n submitCode:(courseTopicId: string, topicItemId: string, remark: string, code: string) =>\r\n requests.post('/coursetopics/submitcode', {courseTopicId, topicItemId, remark, code}),\r\n submitAttach: (courseTopicId: string, topicItemId: string, remark: string, file: Blob) => {\r\n let formData = new FormData();\r\n formData.append(\"CourseTopicId\", courseTopicId);\r\n formData.append(\"TopicItemId\", topicItemId);\r\n formData.append(\"Remark\", remark);\r\n formData.append(\"File\", file);\r\n return axios.post('/coursetopics/submitattach', formData, {\r\n headers: {'Content-type': 'multipart/form-data'}\r\n })\r\n },\r\n getSubmissions: (courseTopicId: string, topicItemId: string) : Promise => \r\n requests.get(`/coursetopics/getsubmissions/${courseTopicId}/${topicItemId}`),\r\n updateDiscussion: (courseTopicId: string, topicItemId: string, discussionId: string, message: string) =>\r\n requests.put('/coursetopics/updatediscussion', {courseTopicId, topicItemId, discussionId, message}), \r\n};\r\n\r\nconst Discussion = {\r\n discussions: (courseTopicId: string): Promise => \r\n requests.get(`/discussions/getdiscussions/${courseTopicId}`),\r\n courseDiscussions: (courseId: string): Promise => \r\n requests.get(`/discussions/getcoursediscussions/${courseId}`), \r\n};\r\n\r\nconst Achievement = {\r\n getAchievements: (): Promise => requests.get('/achievements/'),\r\n addAchievement: (title: string, date: string, description: string) =>\r\n requests.post('/achievements/add', {title, date, description}),\r\n updateAchievement: (id: string, title: string, date: string, description: string) => \r\n requests.put('/achievements/update', {id, title, date, description})\r\n}\r\n\r\nconst Announcement = {\r\n getAnnouncements: (): Promise => requests.get('/announcements/'),\r\n getActiveAnnouncements: (): Promise => requests.get('/announcements/activelist'),\r\n addAnnouncement: (title: string, date: string, description: string) =>\r\n requests.post('/announcements/add', {title, date, description}),\r\n updateAnnouncement: (id: string, title: string, description: string) => \r\n requests.put('/announcements/update', {id, title, description}),\r\n setActive: (id: string, active: boolean) => \r\n requests.put('/announcements/setactive', {id, active})\r\n}\r\n\r\nexport default {\r\n PythonProblems,\r\n PythonTestCases,\r\n User,\r\n Users,\r\n Roles,\r\n Courses,\r\n Course,\r\n Subjects,\r\n Teachers,\r\n Assistants,\r\n Students,\r\n Lesson,\r\n Inquiries,\r\n Assignments,\r\n NumberPuzzles,\r\n QA, \r\n Topic,\r\n CourseTopic,\r\n Discussion,\r\n Achievement,\r\n Announcement\r\n};\r\n","import {\r\n observable,\r\n action,\r\n computed,\r\n runInAction,\r\n toJS\r\n} from 'mobx';\r\nimport {\r\n IPythonProblem,\r\n IPythonTestCase\r\n} from '../models/pythonProblem';\r\nimport agent from '../api/agent';\r\nimport { RootStore } from './rootStore';\r\nimport { history } from '../..';\r\nimport { toast } from 'react-toastify';\r\n\r\nexport default class PythonProblemStore {\r\n rootStore: RootStore;\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable pythonProblemRegistry = new Map();\r\n @observable pythonProblem?: IPythonProblem;\r\n @observable editMode = false;\r\n @observable loading = false;\r\n @observable submitting = false;\r\n @observable target = -1;\r\n\r\n @computed get pythonProblems(): IPythonProblem[] {\r\n return Array.from(this.pythonProblemRegistry.values()).sort(\r\n (a, b) => a.seqNo - b.seqNo\r\n );\r\n }\r\n\r\n @computed get maxSeqNo(): number {\r\n if (this.pythonProblems && this.pythonProblems!.length > 0) {\r\n return Math.max.apply(\r\n Math,\r\n this.pythonProblems!.map(function(o) {\r\n return o.seqNo;\r\n })\r\n );\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n @action loadPythonProblems = async () => {\r\n this.loading = true;\r\n try {\r\n const pythonProblems = await agent.PythonProblems.list();\r\n runInAction(() => {\r\n pythonProblems.forEach(pythonProblem => {\r\n this.pythonProblemRegistry.set(pythonProblem.id, pythonProblem);\r\n });\r\n this.loading = false;\r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n };\r\n\r\n @action openCreateForm = () => {\r\n this.editMode = true;\r\n this.pythonProblem = undefined;\r\n };\r\n\r\n @action loadPythonProblem = async (id: string) => {\r\n let pythonProblem = this.getPythonProblem(id);\r\n if (pythonProblem) {\r\n this.pythonProblem = pythonProblem;\r\n return toJS(pythonProblem);\r\n } else {\r\n this.loading = true;\r\n try {\r\n pythonProblem = await agent.PythonProblems.info(id);\r\n runInAction(() => {\r\n this.pythonProblem = pythonProblem;\r\n this.loading = false;\r\n });\r\n return pythonProblem;\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n };\r\n\r\n @action clearPythonProblem = () => {\r\n this.pythonProblem = undefined;\r\n };\r\n\r\n getPythonProblem(id: string): IPythonProblem {\r\n return this.pythonProblemRegistry.get(id);\r\n }\r\n\r\n @action createPythonProblem = async (pythonProblem: IPythonProblem) => {\r\n this.submitting = true;\r\n try {\r\n await agent.PythonProblems.create(pythonProblem);\r\n runInAction(() => {\r\n this.pythonProblemRegistry.set(pythonProblem.id, pythonProblem);\r\n this.pythonProblem = pythonProblem;\r\n this.editMode = false;\r\n this.submitting = false;\r\n });\r\n history.push(`/editpythonproblem/${pythonProblem.id}`);\r\n } catch (error) {\r\n runInAction(() => {\r\n this.submitting = false;\r\n });\r\n toast.error('Problem creating python problem');\r\n }\r\n };\r\n\r\n @action createPythonTestCase = async (pythonTestCase: IPythonTestCase) => {\r\n this.submitting = true;\r\n\r\n try {\r\n await agent.PythonTestCases.create(pythonTestCase);\r\n runInAction(() => {\r\n this.pythonProblem!.pythonTestCases.push(pythonTestCase);\r\n this.submitting = false;\r\n });\r\n history.push(`/pythontestcases/${this.pythonProblem!.id}`);\r\n } catch (error) {\r\n runInAction(() => {\r\n this.submitting = false;\r\n });\r\n toast.error('Problem creating python test case');\r\n }\r\n };\r\n\r\n @action solvePythonProblem = async (id: string, code: string) => {\r\n this.submitting = true;\r\n try {\r\n let result = await agent.PythonProblems.solve(id, code);\r\n\r\n if (result.success) {\r\n this.rootStore.modalStore.openModal('Success', result.message);\r\n var user = this.rootStore.userStore.user;\r\n runInAction(() => {\r\n this.pythonProblem?.pythonUserAnswers.push({\r\n firstName: user!.firstName,\r\n lastName: user!.lastName,\r\n city: user!.city,\r\n userName: user!.userName,\r\n email: user!.email,\r\n answer: code\r\n });\r\n });\r\n history.push('/pythonproblems');\r\n } else {\r\n this.rootStore.modalStore.openModal('failed', result.message);\r\n }\r\n runInAction(() => {\r\n this.submitting = false;\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n runInAction(() => {\r\n this.submitting = false;\r\n });\r\n }\r\n };\r\n\r\n @action editPythonProblem = async (pythonProblem: IPythonProblem) => {\r\n this.submitting = true;\r\n try {\r\n await agent.PythonProblems.update(pythonProblem);\r\n runInAction(() => {\r\n this.pythonProblemRegistry.set(pythonProblem.id, pythonProblem);\r\n this.pythonProblem = pythonProblem;\r\n this.editMode = false;\r\n this.submitting = false;\r\n });\r\n history.push('/pythonproblems'); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.submitting = false;\r\n });\r\n }\r\n };\r\n\r\n @action editPythonTestCase = async (pythonTestCase: IPythonTestCase) => {\r\n this.submitting = true;\r\n try {\r\n await agent.PythonTestCases.update(pythonTestCase);\r\n runInAction(() => {\r\n this.pythonProblem!.pythonTestCases = this.replaceTestCase(\r\n this.pythonProblem!.pythonTestCases,\r\n pythonTestCase\r\n );\r\n this.submitting = false;\r\n });\r\n history.push(`/pythontestcases/${this.pythonProblem!.id}`);\r\n } catch (error) {\r\n runInAction(() => {\r\n this.submitting = false;\r\n });\r\n }\r\n };\r\n\r\n @action deletePythonTestCase = async (id: string) => {\r\n this.submitting = true;\r\n try {\r\n await agent.PythonTestCases.delete(id);\r\n runInAction(() => {\r\n if(this.pythonProblem){\r\n this.pythonProblem.pythonTestCases = this.pythonProblem.pythonTestCases!.filter(x => x.id !== id);\r\n }\r\n this.submitting = false;\r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.submitting = false;\r\n });\r\n }\r\n };\r\n\r\n replaceTestCase(\r\n pythonTestCases: IPythonTestCase[],\r\n pythonTestCase: IPythonTestCase\r\n ): IPythonTestCase[] {\r\n var cases: IPythonTestCase[] = [];\r\n for (var i = 0; i < pythonTestCases.length; i++) {\r\n var oneCase = pythonTestCases[i];\r\n if (oneCase.id === pythonTestCase.id) {\r\n cases.push(pythonTestCase);\r\n } else {\r\n cases.push(oneCase);\r\n }\r\n }\r\n return cases;\r\n }\r\n\r\n @action selectPythonProblem = (id: string) => {\r\n this.pythonProblem = this.pythonProblemRegistry.get(id);\r\n this.editMode = false;\r\n };\r\n\r\n @action setEditMode = (editMode: boolean) => {\r\n this.editMode = editMode;\r\n };\r\n\r\n @action unSelectPythonProblem = () => {\r\n this.pythonProblem = undefined;\r\n };\r\n}\r\n","import { observable, action } from \"mobx\";\r\nimport { RootStore } from \"./rootStore\";\r\n\r\nexport default class ModalStore {\r\n rootStore: RootStore;\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n @observable.shallow modal = {\r\n open: false,\r\n title: null,\r\n body: null,\r\n modal_class: '',\r\n error: ''\r\n }\r\n\r\n @action openModal = (title: any, content: any, modal_class: any = '') => {\r\n this.modal.open = true;\r\n this.modal.title = title;\r\n this.modal.body = content;\r\n this.modal.modal_class = modal_class; \r\n this.modal.error = ''; \r\n }\r\n\r\n @action closeModal = () => {\r\n this.modal.open = false;\r\n this.modal.title = null;\r\n this.modal.body = null;\r\n this.modal.modal_class = '';\r\n this.modal.error = ''; \r\n }\r\n\r\n @action setError = (error: any = '') =>{\r\n this.modal.error = error;\r\n }\r\n}","import { RootStore } from './rootStore';\r\nimport { observable, action, reaction } from 'mobx';\r\n\r\nexport default class CommonStore {\r\n rootStore: RootStore;\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n\r\n reaction(\r\n () => this.token,\r\n token => {\r\n if (token) {\r\n window.localStorage.setItem('jwt', token);\r\n } else {\r\n window.localStorage.removeItem('jwt');\r\n }\r\n }\r\n );\r\n }\r\n\r\n @observable token: string | null = window.localStorage.getItem('jwt');\r\n @observable appLoaded = false;\r\n\r\n @action setToken = (token: string | null) => {\r\n this.token = token;\r\n };\r\n\r\n @action setAppLoaded = () => {\r\n this.appLoaded = true;\r\n };\r\n}\r\n","import { observable, computed, action, runInAction } from \"mobx\";\r\nimport { IUser, IUserFormValues, IUserProfile} from \"../models/user\";\r\nimport agent from \"../api/agent\";\r\nimport { RootStore } from './rootStore';\r\nimport { history } from \"../..\";\r\nimport { toast } from \"react-toastify\";\r\nimport { ICourseInfo, IParentCourseInfo } from \"../models/course\";\r\n\r\nexport default class UserStore {\r\n rootStore: RootStore;\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n } \r\n @observable user: IUser | null = null;\r\n @observable fbLoading = false;\r\n @observable gLoading = false;\r\n\r\n @computed get isLoggedIn() {return !!this.user};\r\n\r\n @action login = async (values: IUserFormValues) => {\r\n try {\r\n const user = await agent.User.login(values);\r\n runInAction('login', () => {\r\n this.user = user;\r\n });\r\n this.rootStore.commonStore.setToken(user.token);\r\n this.rootStore.modalStore.closeModal();\r\n history.push('/');\r\n } catch (error) {\r\n throw error;\r\n }\r\n };\r\n \r\n @action changePassword = async (oldPassword: string, password: string) => {\r\n try{\r\n const user = await agent.User.changePassword(oldPassword, password);\r\n runInAction('change pawword', () => {\r\n this.user = user;\r\n })\r\n this.rootStore.commonStore.setToken(user.token);\r\n this.rootStore.modalStore.closeModal();\r\n toast.info(\"password changed successfully\");\r\n history.push('/');\r\n } catch (error) {\r\n this.rootStore.modalStore.setError(\"failed to change password\"); \r\n }\r\n };\r\n\r\n @action register = async (values: IUserFormValues) => {\r\n try {\r\n const user = await agent.User.register(values);\r\n this.rootStore.commonStore.setToken(user.token);\r\n this.rootStore.modalStore.closeModal();\r\n } catch (error) {\r\n throw error;\r\n }\r\n };\r\n @action getUser = async () => {\r\n try {\r\n const user = await agent.User.current();\r\n runInAction(() => {\r\n this.user = user;\r\n }); \r\n } catch (error) {\r\n throw error;\r\n }\r\n };\r\n @action logout = () => {\r\n this.rootStore.commonStore.setToken(null);\r\n this.user = null;\r\n history.push('/');\r\n };\r\n\r\n @action fbLogin = async (response: any) => {\r\n this.fbLoading = true;\r\n try {\r\n const user = await agent.User.fbLogin(response.accessToken);\r\n this.rootStore.commonStore.setToken(user.token);\r\n this.rootStore.modalStore.closeModal();\r\n this.fbLoading = false; \r\n } catch (error) {\r\n this.fbLoading = false;\r\n throw error;\r\n }\r\n };\r\n\r\n @action gLogin = async (response: any) => {\r\n this.gLoading = true;\r\n try {\r\n const user = await agent.User.gLogin(response.accessToken);\r\n this.rootStore.commonStore.setToken(user.token);\r\n this.rootStore.modalStore.closeModal();\r\n this.gLoading = false; \r\n } catch (error) {\r\n this.gLoading = false;\r\n console.log(error);\r\n }\r\n }\r\n\r\n @action setUserProfile = async (userProfile: IUserProfile) => {\r\n try{\r\n const user = await agent.User.setProfile(userProfile);\r\n history.push(`/`);\r\n runInAction(() => {\r\n this.user = user;\r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n throw error;\r\n })\r\n } \r\n } \r\n @observable courses: ICourseInfo[] = [];\r\n\r\n @action loadStudentCourses = async() => {\r\n try {\r\n var cs = await agent.User.studentCourses();\r\n runInAction(() => {\r\n this.courses = cs;\r\n });\r\n return cs;\r\n } catch (error){\r\n }\r\n };\r\n\r\n @action loadTeacherCourses = async() => {\r\n try {\r\n var cs = await agent.User.teacherCourses();\r\n runInAction(() => {\r\n this.courses = cs;\r\n });\r\n return cs;\r\n } catch (error){\r\n }\r\n }; \r\n\r\n @action loadAssistantCourses = async() => {\r\n try {\r\n var cs = await agent.User.assistantCourses();\r\n runInAction(() => {\r\n this.courses = cs;\r\n });\r\n return cs;\r\n } catch (error){\r\n }\r\n }; \r\n\r\n @observable parentCourses: IParentCourseInfo[] = [];\r\n\r\n @action loadParentCourses = async() => {\r\n try {\r\n var cs = await agent.User.parentCourses();\r\n runInAction(() => {\r\n this.parentCourses = cs;\r\n });\r\n return cs;\r\n } catch (error){\r\n }\r\n }; \r\n}","import { RootStore } from './rootStore';\r\nimport { observable, computed, runInAction, action, toJS } from 'mobx';\r\nimport { IAppUser, IUserInfo } from '../models/user';\r\nimport agent from '../api/agent';\r\n\r\nexport default class UsersStore {\r\n rootStore: RootStore;\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable userRegistry = new Map();\r\n @observable userSelected? : IAppUser;\r\n @observable loading = false;\r\n @observable checkedValue = new Map();\r\n @observable submitting = false;\r\n\r\n @computed get users(): IAppUser[] {\r\n return Array.from(this.userRegistry.values()).sort(\r\n (a, b) => {\r\n if (a.firstName.toLowerCase() > b.firstName.toLowerCase()) return 1;\r\n else if(a.firstName.toLowerCase() < b.firstName.toLowerCase()) return -1;\r\n else {\r\n if(a.lastName.toLowerCase() > b.lastName.toLowerCase()) return 1;\r\n else return -1;\r\n }\r\n }\r\n )\r\n }\r\n\r\n @action loadUsers = async () => {\r\n this.loading = true;\r\n try {\r\n const user_list = await agent.Users.list();\r\n runInAction(() => {\r\n user_list.forEach(user => {\r\n this.userRegistry.set(user.userName, user);\r\n });\r\n this.loading = false;\r\n });\r\n } catch (error){\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n };\r\n\r\n @action loadUser = async (userName: string) => {\r\n let user = this.getUser(userName);\r\n if(user) {\r\n this.userSelected = user;\r\n return toJS(user);\r\n }\r\n else {\r\n this.loading = true;\r\n try {\r\n user = await agent.Users.info(userName);\r\n runInAction(() => {\r\n this.userSelected = user;\r\n this.loading = false;\r\n });\r\n return user;\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n } \r\n };\r\n\r\n getUser(userName: string) : IAppUser {\r\n return this.userRegistry.get(userName);\r\n }\r\n\r\n @action setUserInfo = async (userInfo: IUserInfo) => {\r\n this.submitting = true;\r\n try{\r\n await agent.Users.setUserInfo(userInfo);\r\n let user = this.getUser(userInfo.userName);\r\n if(user) {\r\n user.firstName = userInfo.firstName;\r\n user.lastName = userInfo.lastName;\r\n user.introduction = userInfo.introduction;\r\n user.city = userInfo.city;\r\n user.age = userInfo.age;\r\n user.grade = userInfo.grade;\r\n user.phone = userInfo.phone;\r\n user.wechat = userInfo.wechat;\r\n user.active = userInfo.active; \r\n user.parentFirstName = userInfo.parentFirstName;\r\n user.parentLastName = userInfo.parentLastName; \r\n }\r\n runInAction(() => {\r\n this.submitting = false;\r\n this.rootStore.modalStore.closeModal(); \r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.submitting = false;\r\n })\r\n this.rootStore.modalStore.setError(\"Error: set user info failed\"); \r\n }\r\n }\r\n\r\n @action setParent = async (userName: string, parentEmail: \r\n string, parentFirstName: string, parentLastName: string) => {\r\n this.submitting = true;\r\n try {\r\n await agent.Users.setParentInfo(userName, parentEmail, parentFirstName, parentLastName);\r\n runInAction(() => {\r\n this.submitting = false;\r\n let user = this.getUser(userName);\r\n if(user) {\r\n user.parentEmail = parentEmail;\r\n user.parentFirstName = parentFirstName;\r\n user.parentLastName = parentLastName; \r\n }\r\n this.rootStore.modalStore.closeModal(); \r\n }); \r\n }catch (error) {\r\n runInAction(() => {\r\n this.submitting = false;\r\n })\r\n this.rootStore.modalStore.setError(\"Error: set parent failed\"); \r\n }\r\n }\r\n\r\n @action setUserRoles = async(userName: string, roles: string[]) => {\r\n this.submitting = true;\r\n try {\r\n await agent.Users.setRoles(userName, roles);\r\n runInAction(() => {\r\n this.submitting = false;\r\n let user = this.getUser(userName);\r\n if(user) {\r\n user.roles = roles;\r\n }\r\n this.rootStore.modalStore.closeModal(); \r\n })\r\n } catch (error) {\r\n runInAction(() => {\r\n this.submitting = false;\r\n })\r\n this.rootStore.modalStore.setError(\"Error: set roles failed\"); \r\n }\r\n }\r\n\r\n @action removeUser = async(userName: string) => {\r\n this.submitting = true;\r\n try {\r\n await agent.Users.removeUser(userName);\r\n let user = this.getUser(userName);\r\n if(user) { \r\n // need to update userRegistry\r\n this.userRegistry.delete(userName); \r\n }\r\n runInAction(() => {\r\n this.submitting = false;\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.submitting = false;\r\n })\r\n }\r\n }\r\n\r\n @action setUserActive = async(userName: string, active: boolean) => {\r\n this.submitting = true;\r\n try {\r\n await agent.Users.setUserActive(userName, active);\r\n runInAction(() => {\r\n this.submitting = false;\r\n let user = this.getUser(userName);\r\n if(user) {\r\n user.active = active;\r\n }\r\n })\r\n } catch (error) {\r\n runInAction(() => {\r\n this.submitting = false;\r\n })\r\n }\r\n }\r\n\r\n @action changeUserEmail = async(userName: string, email: string) => {\r\n this.submitting = true;\r\n try {\r\n await agent.Users.changeUserEmail(userName, email);\r\n runInAction(() => {\r\n this.submitting = false;\r\n let user = this.getUser(userName);\r\n if(user) {\r\n // userName and email are the same\r\n user.userName = email;\r\n user.email = email; \r\n // need to update userRegistry\r\n this.userRegistry.delete(userName);\r\n this.userRegistry.set(email, user); \r\n }\r\n this.rootStore.modalStore.closeModal(); \r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.submitting = false;\r\n }); \r\n this.rootStore.modalStore.setError(\"Error: change email failed\"); \r\n }\r\n }\r\n\r\n @action resetPassword = async(userName: string, password: string) => {\r\n this.submitting = true;\r\n try {\r\n await agent.Users.resetPassword(userName, password);\r\n runInAction(() => {\r\n this.submitting = false;\r\n this.rootStore.modalStore.closeModal(); \r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.submitting = false; \r\n })\r\n this.rootStore.modalStore.setError(\"Error:reset password failed\"); \r\n }\r\n }\r\n\r\n @action getStudentCourses = async(userName: string) => {\r\n this.submitting = true; \r\n try {\r\n var courses = await agent.Users.getStudentCourses(userName);\r\n runInAction(() => {\r\n this.submitting = false; \r\n });\r\n return courses;\r\n } catch (error){\r\n runInAction(() => {\r\n this.submitting = false;\r\n }) \r\n }\r\n };\r\n \r\n @action getChildCourses = async(userName: string) => {\r\n try {\r\n var cs = await agent.Users.childCourses(userName);\r\n return cs;\r\n } catch (error){\r\n }\r\n }; \r\n}\r\n","import { RootStore } from './rootStore';\r\nimport { observable, runInAction, action} from 'mobx';\r\nimport agent from '../api/agent';\r\nimport { IRole } from '../models/role';\r\n\r\nexport default class RoleStore {\r\n rootStore: RootStore; \r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable loading = false;\r\n\r\n @observable roles: IRole[] = [];\r\n\r\n @action loadRoles = async () => {\r\n this.loading = true;\r\n try {\r\n this.roles = await agent.Roles.list();\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n return this.roles;\r\n } catch (error){\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n };\r\n \r\n}","import { RootStore } from './rootStore';\r\nimport { observable, runInAction, action} from 'mobx';\r\nimport agent from '../api/agent';\r\nimport { ICourseContent} from '../models/course';\r\nimport { IStudentLesson } from '../models/studentLesson';\r\n\r\nexport default class CourseStore {\r\n rootStore: RootStore; \r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n @observable loading = false;\r\n @observable courseContent: ICourseContent | null = null;\r\n @observable studentReport: IStudentLesson[] = [];\r\n\r\n @action loadCourseStudentContent = async (courseCode: string) => {\r\n this.loading = true;\r\n try{\r\n var ct = await agent.Course.studentcontent(courseCode);\r\n runInAction(() => {\r\n this.courseContent = ct;\r\n this.loading = false;\r\n });\r\n return ct;\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n };\r\n\r\n @action loadCourseContent = async (courseCode: string) => {\r\n this.loading = true;\r\n try{\r\n var ct = await agent.Course.content(courseCode);\r\n runInAction(() => {\r\n this.courseContent = ct;\r\n this.loading = false;\r\n });\r\n return ct;\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n };\r\n \r\n @action saveDayOfTheWeek = async (courseCode: string, dayOfTheWeek: string) => {\r\n this.loading = true;\r\n try{\r\n await agent.Course.setDayOfTheWeek(courseCode, dayOfTheWeek);\r\n runInAction(() => {\r\n if(this.courseContent){\r\n this.courseContent.dayOfTheWeek = dayOfTheWeek;\r\n }\r\n this.loading = false;\r\n this.rootStore.modalStore.closeModal();\r\n });\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n };\r\n\r\n @action saveTimePeriod = async (courseCode: string, timePeriod: string) => {\r\n this.loading = true;\r\n try{\r\n await agent.Course.setTimePeriod(courseCode, timePeriod);\r\n runInAction(() => {\r\n if(this.courseContent){\r\n this.courseContent.timePeriod = timePeriod;\r\n }\r\n this.loading = false;\r\n this.rootStore.modalStore.closeModal();\r\n });\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n };\r\n\r\n @action saveNotice = async (courseCode: string, notice: string) => {\r\n this.loading = true;\r\n try{\r\n await agent.Course.setNotice(courseCode, notice);\r\n runInAction(() => {\r\n if(this.courseContent){\r\n this.courseContent.notice = notice;\r\n }\r\n this.loading = false;\r\n this.rootStore.modalStore.closeModal();\r\n });\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }; \r\n\r\n @action addCourseResource= async(courseCode: string, title: string, url: string, content: string) => {\r\n this.loading = true;\r\n try {\r\n var courseResource = await agent.Course.addResource(courseCode, title, url, content);\r\n runInAction(() => {\r\n this.loading = false;\r\n if(this.courseContent && this.courseContent.courseCode === courseCode)\r\n {\r\n this.courseContent.courseResources.push(courseResource);\r\n }\r\n this.rootStore.modalStore.closeModal();\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n };\r\n\r\n @action addCourseResourceAttach= async(courseCode: string, title: string, file: Blob) => {\r\n this.loading = true;\r\n try {\r\n var courseResource = await agent.Course.addResourceAttach(courseCode, title, file);\r\n runInAction(() => {\r\n this.loading = false;\r\n if(this.courseContent && this.courseContent.courseCode === courseCode)\r\n {\r\n this.courseContent.courseResources.push(courseResource.data);\r\n }\r\n this.rootStore.modalStore.closeModal();\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n };\r\n\r\n @action removeResource= async(courseCode: string, resourceId: string) => {\r\n this.loading = true;\r\n try {\r\n await agent.Course.removeResource(courseCode, resourceId);\r\n runInAction(() => {\r\n if(this.courseContent && this.courseContent.courseCode === courseCode)\r\n {\r\n this.courseContent.courseResources = this.courseContent.courseResources.filter(x=>x.id !== resourceId);\r\n }\r\n this.loading = false;\r\n this.rootStore.modalStore.closeModal();\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }; \r\n\r\n @action addCourseLesson= async(courseCode: string, topic: string, date: Date, timePeriod: string) => {\r\n this.loading = true;\r\n try {\r\n var lesson = await agent.Course.addLesson(courseCode, topic, date, timePeriod);\r\n runInAction(() => {\r\n this.loading = false;\r\n if(this.courseContent && this.courseContent.courseCode === courseCode)\r\n {\r\n this.courseContent.lessons.push(lesson);\r\n }\r\n this.rootStore.modalStore.closeModal();\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n };\r\n\r\n @action setResourceSeqNo = async(resourceId: string, seqNo: number) => {\r\n this.loading = true;\r\n try {\r\n await agent.Course.setResourceSeqNo(resourceId, seqNo);\r\n runInAction(() => {\r\n if (this.courseContent) {\r\n var resource = this.courseContent.courseResources.find(x=>x.id === resourceId);\r\n if(resource){\r\n resource.seqNo = seqNo;\r\n }\r\n }\r\n this.loading = false;\r\n this.rootStore.modalStore.closeModal();\r\n }); \r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action getStudentReport = async (courseCode: string, userName: string) => {\r\n this.loading = true;\r\n try{\r\n var ct = await agent.Course.studentReport(courseCode, userName);\r\n runInAction(() => {\r\n this.studentReport = ct; \r\n this.loading = false;\r\n });\r\n return ct;\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }; \r\n}","import { RootStore } from './rootStore';\r\nimport { observable, runInAction, action} from 'mobx';\r\nimport agent from '../api/agent';\r\nimport { ICourse, INewCourse, ICourseInfo } from '../models/course';\r\nimport { history } from \"../..\";\r\n\r\nexport default class CoursesStore {\r\n rootStore: RootStore; \r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable loading = false;\r\n\r\n @observable courses: ICourseInfo[] = [];\r\n \r\n @action loadCourses = async() => {\r\n this.loading = true;\r\n try {\r\n var cs = await agent.Courses.list();\r\n runInAction(() => {\r\n this.courses = cs;\r\n this.loading = false;\r\n });\r\n return cs;\r\n } catch (error){\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n };\r\n \r\n @action loadActiveCourses = async() => {\r\n this.loading = true;\r\n try {\r\n var cs = await agent.Courses.activelist();\r\n runInAction(() => {\r\n this.courses = cs;\r\n this.loading = false;\r\n });\r\n return cs;\r\n } catch (error){\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n };\r\n\r\n @action createNewCourse = async(course: INewCourse) => {\r\n try {\r\n await agent.Courses.createNewCourse(course);\r\n history.push('/a-classes');\r\n } catch(error){\r\n runInAction(() => {\r\n throw error;\r\n }) \r\n }\r\n };\r\n\r\n @action loadCourse = async (courseCode: string) => {\r\n this.loading = true;\r\n try{\r\n var course = await agent.Courses.info(courseCode);\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n return course;\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n };\r\n\r\n @action editCourse = async(course: ICourse) => {\r\n try {\r\n await agent.Courses.editCourse(course);\r\n } catch(error){\r\n runInAction(() => {\r\n throw error;\r\n }) \r\n }\r\n }\r\n\r\n @action toggleCourseActive = async(courseCode: string, active: boolean) => {\r\n this.loading = true;\r\n try{\r\n await agent.Courses.toggleActive(courseCode, active);\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action addCourseAssistant = async(courseCode: string, userName: string) => {\r\n this.loading = true;\r\n try{\r\n await agent.Courses.addCourseAssistant(courseCode, userName);\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action removeCourseAssistant= async(courseCode: string, userName: string) => {\r\n this.loading = true;\r\n try{\r\n await agent.Courses.removeCourseAssistant(courseCode, userName);\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action addCourseStudent = async(courseCode: string, userName: string) => {\r\n this.loading = true;\r\n try{\r\n await agent.Courses.addCourseStudent(courseCode, userName);\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action removeCourseStudent = async(courseCode: string, userName: string) => {\r\n this.loading = true;\r\n try{\r\n await agent.Courses.removeCourseStudent(courseCode, userName);\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n}","import { RootStore } from './rootStore';\r\nimport { observable, runInAction, action} from 'mobx';\r\nimport agent from '../api/agent';\r\nimport { ISubject } from '../models/subject';\r\n\r\nexport default class SubjectStore {\r\n rootStore: RootStore; \r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable loading = false;\r\n\r\n @observable subjects: ISubject[] = [];\r\n\r\n @action loadSubjects = async() => {\r\n this.loading = true;\r\n try {\r\n var cs = await agent.Subjects.list();\r\n runInAction(() => {\r\n this.subjects = cs;\r\n this.loading = false;\r\n });\r\n return cs;\r\n } catch (error){\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n };\r\n \r\n @action newSubject = async(subject: ISubject) => {\r\n try {\r\n await agent.Subjects.createNewSubject(subject);\r\n if(this.subjects) {\r\n this.subjects.push(subject);\r\n }\r\n this.rootStore.modalStore.closeModal(); \r\n } catch(error){\r\n runInAction(() => {\r\n throw error;\r\n }) \r\n }\r\n }\r\n}","import { RootStore } from './rootStore';\r\nimport { observable, runInAction, action} from 'mobx';\r\nimport agent from '../api/agent';\r\nimport { ITeacher } from '../models/teacher';\r\n\r\nexport default class TeacherStore {\r\n rootStore: RootStore; \r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable loading = false;\r\n\r\n @observable teachers: ITeacher[] = [];\r\n\r\n @action loadTeachers = async() => {\r\n this.loading = true;\r\n try {\r\n var cs = await agent.Teachers.list();\r\n runInAction(() => {\r\n this.teachers = cs;\r\n this.loading = false;\r\n }); \r\n return cs;\r\n } catch (error){\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n };\r\n \r\n}","import { RootStore } from \"./rootStore\";\r\nimport { observable, runInAction, action } from \"mobx\";\r\nimport {INumberPuzzle, IUserRank} from '../../app/models/numberPuzzle';\r\nimport agent from \"../api/agent\";\r\n\r\nexport default class NumberPuzzleStore {\r\n rootStore: RootStore;\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable numberPuzzle? : INumberPuzzle;\r\n @observable userRanks: IUserRank[] = [];\r\n @observable loading = false;\r\n @observable submitting = false;\r\n\r\n @action getUserRanks = async () => {\r\n this.loading = true;\r\n try {\r\n const userRanks = await agent.NumberPuzzles.ranks();\r\n runInAction(() => {\r\n this.userRanks = userRanks;\r\n })\r\n this.loading = false;\r\n return userRanks;\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n \r\n @action loadNumberPuzzle = async () => {\r\n\r\n this.loading = true;\r\n try {\r\n const numberPuzzle = await agent.NumberPuzzles.info();\r\n runInAction(() => {\r\n this.numberPuzzle = numberPuzzle;\r\n })\r\n this.loading = false;\r\n return numberPuzzle;\r\n }catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n\r\n @action solvePuzzle = async (expression: string) => {\r\n this.submitting = true;\r\n try {\r\n let result = await agent.NumberPuzzles.solve(this.numberPuzzle!.id, expression);\r\n if (result.success) {\r\n this.rootStore.modalStore.openModal('Success', result.message);\r\n window.location.reload(); \r\n } else {\r\n this.rootStore.modalStore.openModal('failed', result.message);\r\n }\r\n } catch(error) {\r\n console.log(error);\r\n runInAction(() => {\r\n this.submitting = false;\r\n }); \r\n }\r\n }\r\n}","import { RootStore } from './rootStore';\r\nimport { observable, runInAction, action} from 'mobx';\r\nimport agent from '../api/agent';\r\nimport { IStudent } from '../models/student';\r\n\r\nexport default class StudentStore {\r\n rootStore: RootStore; \r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable loading = false;\r\n\r\n @observable students: IStudent[] = [];\r\n\r\n @action loadStudents = async() => {\r\n this.loading = true;\r\n try {\r\n var cs = await agent.Students.list();\r\n runInAction(() => {\r\n this.students = cs;\r\n this.loading = false;\r\n });\r\n return cs;\r\n } catch (error){\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n };\r\n \r\n}","import { RootStore } from './rootStore';\r\nimport { observable, runInAction, action} from 'mobx';\r\nimport agent from '../api/agent';\r\nimport { ILessonContent } from '../models/lesson';\r\n\r\nexport default class LessonStore {\r\n rootStore: RootStore; \r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n @observable loading = false;\r\n @observable lessonContent: ILessonContent | null = null;\r\n \r\n @action loadAttendances = async (lessonId: string) => {\r\n this.loading = true;\r\n try{\r\n var attendances = await agent.Lesson.getAttendances(lessonId);\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n return attendances;\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action setAttendance = async(lessonId: string, userName: string, attendingCode: number) => {\r\n this.loading = true;\r\n try{\r\n await agent.Lesson.setAttendance(lessonId, userName, attendingCode);\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action loadLesson = async (lessonId: string) => {\r\n this.loading = true;\r\n try{\r\n var lesson = await agent.Lesson.getLesson(lessonId);\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n return lesson;\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action saveVideoUrl = async(lessonId: string, url: string) => {\r\n this.loading = true;\r\n try{\r\n await agent.Lesson.setVideoUrl(lessonId, url);\r\n runInAction(() => {\r\n this.loading = false;\r\n this.rootStore.modalStore.closeModal(); \r\n }); \r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n } \r\n \r\n @action setLesson = async(lessonId: string, seqNo: string, topic: string, date: string, timePeriod: string) => {\r\n this.loading = true;\r\n try{\r\n await agent.Lesson.setLesson(lessonId, seqNo, topic, date, timePeriod);\r\n runInAction(() => {\r\n if(this.lessonContent){\r\n this.lessonContent.seqNo = parseInt(seqNo);\r\n this.lessonContent.topic = topic;\r\n this.lessonContent.date = new Date(date);\r\n this.lessonContent.timePeriod = timePeriod;\r\n }\r\n this.loading = false;\r\n this.rootStore.modalStore.closeModal(); \r\n }); \r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action addLessonResourceText= async(lessonId: string, title: string, content: string) => {\r\n this.loading = true;\r\n try {\r\n var url = '';\r\n var lessonResource = await agent.Lesson.addResource(lessonId, title, url, content);\r\n runInAction(() => {\r\n this.loading = false;\r\n if(this.lessonContent && this.lessonContent.lessonId === lessonId)\r\n {\r\n this.lessonContent.lessonResources.push(lessonResource);\r\n }\r\n this.rootStore.modalStore.closeModal();\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }; \r\n\r\n @action addLessonResourceLink= async(lessonId: string, title: string, url: string) => {\r\n this.loading = true;\r\n try {\r\n var content = '';\r\n var lessonResource = await agent.Lesson.addResource(lessonId, title, url, content);\r\n runInAction(() => {\r\n this.loading = false;\r\n if(this.lessonContent && this.lessonContent.lessonId === lessonId)\r\n {\r\n this.lessonContent.lessonResources.push(lessonResource);\r\n }\r\n this.rootStore.modalStore.closeModal();\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n };\r\n\r\n @action addLessonResourceAttach= async(lessonId: string, filename: string, blob: Blob) => {\r\n this.loading = true;\r\n try {\r\n var lessonResource = await agent.Lesson.addResourceAttach(lessonId, filename, blob);\r\n runInAction(() => {\r\n this.loading = false;\r\n if(this.lessonContent && this.lessonContent.lessonId === lessonId)\r\n {\r\n this.lessonContent.lessonResources.push(lessonResource.data);\r\n }\r\n this.rootStore.modalStore.closeModal();\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n };\r\n\r\n @action removeResource= async(lessonId: string, resourceId: string) => {\r\n this.loading = true;\r\n try {\r\n await agent.Lesson.removeResource(lessonId, resourceId);\r\n runInAction(() => {\r\n if(this.lessonContent && this.lessonContent.lessonId === lessonId)\r\n {\r\n this.lessonContent.lessonResources = this.lessonContent.lessonResources.filter(x=>x.id !== resourceId);\r\n }\r\n this.loading = false;\r\n this.rootStore.modalStore.closeModal();\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }; \r\n\r\n @action loadLessonStudentContent = async (lessonId: string) => {\r\n this.loading = true;\r\n try {\r\n var lt = await agent.Lesson.lessonStudentContent(lessonId);\r\n runInAction(() => {\r\n this.lessonContent = lt;\r\n this.loading = false;\r\n });\r\n return lt;\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n };\r\n\r\n @action loadLessonContent = async (lessonId: string) => {\r\n this.loading = true;\r\n try {\r\n var lt = await agent.Lesson.lessonContent(lessonId);\r\n runInAction(() => {\r\n this.lessonContent = lt;\r\n this.loading = false;\r\n });\r\n return lt;\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n };\r\n\r\n @action setResourceSeqNo = async(resourceId: string, seqNo: number) => {\r\n this.loading = true;\r\n try {\r\n await agent.Lesson.setResourceSeqNo(resourceId, seqNo);\r\n runInAction(() => {\r\n if (this.lessonContent) {\r\n var resource = this.lessonContent.lessonResources.find(x=>x.id === resourceId);\r\n if(resource){\r\n resource.seqNo = seqNo;\r\n }\r\n }\r\n this.loading = false;\r\n this.rootStore.modalStore.closeModal();\r\n }); \r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n } \r\n}","import { RootStore } from './rootStore';\r\nimport { observable, runInAction, action} from 'mobx';\r\nimport agent from '../api/agent';\r\nimport { IAssignment, IAssignmentContent, IStudentAssignment, IStudentAssignmentContent} from '../models/assignment';\r\nimport { IMessageInfo } from '../models/message';\r\n\r\nexport default class AssignmentStore {\r\n rootStore: RootStore; \r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n @observable loading = false;\r\n @observable assignmentContent: IAssignmentContent | null = null; \r\n @observable currentProblem: IAssignment | null = null;\r\n @observable studentAssignmentContent: IStudentAssignmentContent | null = null;\r\n @observable discussions : IMessageInfo[] = []; \r\n @observable studentSubmissions: IStudentAssignment[] = [];\r\n\r\n @action loadAssignmentContent = async (lessonId: string) => {\r\n this.loading = true;\r\n try {\r\n var ac = await agent.Assignments.assignmentContent(lessonId);\r\n runInAction(() => {\r\n this.assignmentContent = ac;\r\n this.loading = false;\r\n });\r\n return ac;\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n };\r\n\r\n @action addProblem = async(lessonId: string, title: string, url: string, description: string, \r\n seqNo: string, deadline: string, submitMode: string) => \r\n {\r\n this.loading = true;\r\n try{\r\n var problem = await agent.Assignments.addProblem(lessonId, title, url, description, seqNo, deadline, submitMode);\r\n runInAction(() => {\r\n if(this.assignmentContent){\r\n this.assignmentContent.assignments.push(problem);\r\n }\r\n this.loading = false;\r\n });\r\n return problem;\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action addPickProblem = async(lessonId: string, title: string, \r\n courseTopicId: string, topicItemId: string, seqNo: string, deadline: string, submitMode: string) => \r\n {\r\n this.loading = true;\r\n try{\r\n var problem = await agent.Assignments.addPickProblem(lessonId, title, courseTopicId, \r\n topicItemId, seqNo, deadline, submitMode);\r\n runInAction(() => {\r\n if(this.assignmentContent){\r\n this.assignmentContent.assignments.push(problem);\r\n }\r\n this.loading = false;\r\n });\r\n return problem;\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action addProblemAttach = async(lessonId: string, title: string, seqNo: \r\n string, deadline: string, submitMode: string, file: Blob) => \r\n {\r\n this.loading = true;\r\n try{\r\n var problem = await agent.Assignments.addProblemAttach(lessonId, title, \r\n seqNo, deadline, submitMode, file);\r\n runInAction(() => {\r\n if(this.assignmentContent){\r\n this.assignmentContent.assignments.push(problem.data);\r\n }\r\n this.loading = false;\r\n });\r\n return problem;\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action updateProblem = async(problemId: string, title: string, url: string, \r\n description: string, seqNo: string, deadline: string, submitMode: string) => \r\n {\r\n this.loading = true;\r\n try{\r\n await agent.Assignments.updateProblem(problemId, title, url, description, seqNo, deadline, submitMode);\r\n runInAction(() => {\r\n if(this.assignmentContent){\r\n // update problem\r\n }\r\n this.loading = false;\r\n });\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n } \r\n\r\n @action updatePickProblem = async(problemId: string, title: string, \r\n courseTopicId: string, topicItemId: string, seqNo: string, \r\n deadline: string, submitMode: string) => \r\n {\r\n this.loading = true;\r\n try{\r\n await agent.Assignments.updatePickProblem(problemId, title, \r\n courseTopicId, topicItemId, seqNo, deadline, submitMode);\r\n runInAction(() => {\r\n if(this.assignmentContent){\r\n // update problem\r\n }\r\n this.loading = false;\r\n });\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n } \r\n\r\n @action removeProblem = async(problemId: string) => \r\n {\r\n this.loading = true;\r\n try{\r\n await agent.Assignments.removeProblem(problemId);\r\n runInAction(() => {\r\n if(this.assignmentContent){\r\n this.assignmentContent.assignments = this.assignmentContent.assignments.filter(x=>x.id !== problemId);\r\n }\r\n this.loading = false;\r\n }); \r\n this.rootStore.modalStore.closeModal(); \r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action removeResource= async(lessonId: string, resourceId: string) => \r\n {\r\n this.loading = true;\r\n try{\r\n await agent.Assignments.removeResource(lessonId, resourceId);\r\n runInAction(() => { \r\n if(this.assignmentContent && this.assignmentContent.id === lessonId){\r\n this.assignmentContent.resources = this.assignmentContent.resources.filter(x=>x.id !== resourceId);\r\n }\r\n this.loading = false;\r\n }); \r\n this.rootStore.modalStore.closeModal(); \r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action submitCode= async(problemId: string, remark: string, code: string) => \r\n {\r\n this.loading = true;\r\n try{\r\n await agent.Assignments.submitCode(problemId, remark, code);\r\n if(this.studentAssignmentContent){\r\n var assignment = this.studentAssignmentContent.studentAssignments.find(x=>x.id === problemId);\r\n if(assignment){\r\n assignment.code = code;\r\n assignment.studentRemark = remark;\r\n }\r\n }\r\n this.rootStore.modalStore.closeModal(); \r\n } finally {\r\n this.loading = false;\r\n }\r\n }\r\n\r\n @action submitAttach= async(problemId: string, remark: string, file: Blob) => \r\n {\r\n this.loading = true;\r\n try{\r\n var attach = await agent.Assignments.submitAttach(problemId, remark, file);\r\n if(this.studentAssignmentContent){\r\n var assignment = this.studentAssignmentContent.studentAssignments.find(x=>x.id === problemId);\r\n if(assignment){\r\n assignment.attachment = attach.data.attachment;\r\n assignment.attachmentId = attach.data.attachmentId;\r\n assignment.attachmentUrl = attach.data.attachmentUrl;\r\n assignment.studentRemark = remark;\r\n }\r\n }\r\n this.rootStore.modalStore.closeModal();\r\n } finally {\r\n this.loading = false;\r\n }\r\n }\r\n\r\n // for student\r\n @action loadStudentAssignmentContent = async (lessonId: string) => {\r\n this.loading = true;\r\n try{\r\n var studentAssign = await agent.Assignments.studentAssignmentContent(lessonId);\r\n runInAction(() => {\r\n this.studentAssignmentContent = studentAssign;\r\n this.loading = false;\r\n });\r\n return studentAssign;\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n // for teachers\r\n @action loadStudentSubmissions = async (problemId: string) => {\r\n this.loading = true;\r\n try{\r\n var submissions = await agent.Assignments.getStudentSubmissions(problemId);\r\n runInAction(() => {\r\n this.studentSubmissions = submissions;\r\n this.loading = false;\r\n });\r\n return submissions;\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action getProblem = async (problemId: string) => {\r\n this.loading = true;\r\n try {\r\n var problem = await agent.Assignments.getProblem(problemId);\r\n runInAction(() => {\r\n this.loading = false;\r\n this.currentProblem = problem;\r\n });\r\n return problem;\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action setTeacherGrade = async (problemId: string, userName: string, grade: string, teacherRemark: string) => {\r\n this.loading = true;\r\n try {\r\n await agent.Assignments.setTeacherGrade(problemId, userName, grade, teacherRemark);\r\n runInAction(() => {\r\n this.loading = false;\r\n if(this.studentSubmissions){\r\n var submission = this.studentSubmissions.find(x=>x.userName === userName);\r\n if(submission){\r\n submission.grade = grade;\r\n submission.teacherRemark = teacherRemark;\r\n }\r\n } \r\n });\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action addAssignmentResourceText= async(lessonId: string, title: string, content: string) => {\r\n this.loading = true;\r\n try {\r\n var url = '';\r\n var assignmentResource = await agent.Assignments.addResource(lessonId, title, url, content);\r\n runInAction(() => {\r\n this.loading = false;\r\n if(this.assignmentContent && this.assignmentContent.id === lessonId)\r\n {\r\n this.assignmentContent.resources.push(assignmentResource);\r\n }\r\n this.loading = false; \r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }; \r\n\r\n @action addAssignmentResourceLink= async(lessonId: string, title: string, url: string) => {\r\n this.loading = true;\r\n try {\r\n var content = '';\r\n var assignmentResource = await agent.Assignments.addResource(lessonId, title, url, content);\r\n runInAction(() => {\r\n this.loading = false;\r\n if(this.assignmentContent && this.assignmentContent.id === lessonId)\r\n {\r\n this.assignmentContent.resources.push(assignmentResource);\r\n }\r\n this.loading = false; \r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n };\r\n\r\n @action addAssignmentResourceAttach= async(lessonId: string, filename: string, blob: Blob) => {\r\n this.loading = true;\r\n try {\r\n var assignmentResource = await agent.Assignments.addResourceAttach(lessonId, filename, blob);\r\n runInAction(() => {\r\n this.loading = false;\r\n if(this.assignmentContent && this.assignmentContent.id === lessonId)\r\n {\r\n this.assignmentContent.resources.push(assignmentResource.data);\r\n }\r\n this.loading = false; \r\n }); \r\n this.rootStore.modalStore.closeModal(); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n };\r\n\r\n @action setSeqNo = async(assignmentId: string, seqNo: number) => {\r\n this.loading = true;\r\n try {\r\n await agent.Assignments.setSeqNo(assignmentId, seqNo);\r\n runInAction(() => {\r\n if (this.assignmentContent) {\r\n var assignment = this.assignmentContent.assignments.find(x=>x.id === assignmentId);\r\n if(assignment){\r\n assignment.seqNo = seqNo;\r\n }\r\n }\r\n this.loading = false;\r\n }); \r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action setDeadline = async(assignmentId: string, deadline: string) => {\r\n this.loading = true;\r\n try {\r\n await agent.Assignments.setDeadline(assignmentId, deadline);\r\n runInAction(() => {\r\n if (this.assignmentContent) {\r\n var assignment = this.assignmentContent.assignments.find(x=>x.id === assignmentId);\r\n if(assignment){\r\n assignment.deadline = new Date(deadline);\r\n }\r\n }\r\n this.loading = false;\r\n }); \r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action setAnalysisUrl = async(assignmentId: string, analysisUrl: string) => {\r\n this.loading = true;\r\n try {\r\n await agent.Assignments.setAnalysisUrl(assignmentId, analysisUrl);\r\n runInAction(()=>{\r\n if(this.assignmentContent) {\r\n var assignment = this.assignmentContent.assignments.find(x=>x.id === assignmentId);\r\n if(assignment) {\r\n assignment.analysisUrl = analysisUrl;\r\n }\r\n }\r\n this.loading = false;\r\n })\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action setResourceSeqNo = async(resourceId: string, seqNo: number) => {\r\n this.loading = true;\r\n try {\r\n await agent.Assignments.setResourceSeqNo(resourceId, seqNo);\r\n runInAction(() => {\r\n if (this.assignmentContent) {\r\n var resource = this.assignmentContent.resources.find(x=>x.id === resourceId);\r\n if(resource){\r\n resource.seqNo = seqNo;\r\n }\r\n }\r\n this.loading = false;\r\n }); \r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n } \r\n \r\n @action loadDiscussions = async(assignmentId: string) => {\r\n this.loading = true;\r\n try {\r\n var dis = await agent.Assignments.getDiscussions(assignmentId);\r\n runInAction(() => {\r\n this.loading = false;\r\n this.discussions = dis;\r\n })\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action addDiscussion = async(assignmentId: string, message: string) => {\r\n this.loading = true; \r\n try {\r\n var discussion = await agent.Assignments.addDiscussion(assignmentId, message); \r\n runInAction(() => {\r\n this.loading = false;\r\n this.discussions.push(discussion);\r\n this.rootStore.modalStore.closeModal(); \r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n } \r\n}","import { RootStore } from './rootStore';\r\nimport { observable, runInAction, action } from 'mobx';\r\nimport agent from '../api/agent';\r\nimport { IInquiry } from '../models/inqury';\r\n\r\nexport default class InquiryStore {\r\n rootStore: RootStore; \r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable loading = false;\r\n @observable inquiries: IInquiry[] = [];\r\n\r\n @action addInquiry = async(phone: string, email: string, topic: string, description: string) => \r\n {\r\n this.loading = true;\r\n try{\r\n await agent.Inquiries.addInquiry(phone, email, topic, description);\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action getInquires = async() => {\r\n this.loading = true;\r\n try {\r\n var iqs = await agent.Inquiries.getInquiries();\r\n runInAction(() => {\r\n this.inquiries = iqs;\r\n this.loading = false;\r\n });\r\n } catch (error){\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n\r\n @action setInquiryChecked = async(id: string) => {\r\n this.loading = true;\r\n try {\r\n await agent.Inquiries.setInquiryChecked(id);\r\n runInAction(() => {\r\n this.loading = false;\r\n var inquiry = this.inquiries.find(x=>x.id === id);\r\n if(inquiry){\r\n inquiry.checked = true;\r\n } \r\n }); \r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }) \r\n }\r\n }\r\n}","import { RootStore } from './rootStore';\r\nimport { observable, runInAction, action} from 'mobx';\r\nimport agent from '../api/agent';\r\nimport {CourseQuestionInfo, IQAInfo, QuestionInfo} from '../models/qa';\r\n\r\nexport default class QAStore {\r\n rootStore: RootStore; \r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n @observable loading = false;\r\n @observable qaInfo: IQAInfo | null = null;\r\n @observable currentQuestion : QuestionInfo | null = null;\r\n @observable questions : CourseQuestionInfo[] = [];\r\n @observable taQuestions: CourseQuestionInfo[] = [];\r\n\r\n @action loadQATeacherInfo = async(courseCode: string) => {\r\n this.loading = true;\r\n try {\r\n var qi = await agent.QA.teacherInfo(courseCode);\r\n runInAction(() => {\r\n this.loading =false;\r\n this.qaInfo = qi;\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action loadQAStudentInfo = async(courseCode: string) => {\r\n this.loading = true;\r\n try {\r\n var qi = await agent.QA.studentInfo(courseCode);\r\n runInAction(() => {\r\n this.loading =false;\r\n this.qaInfo = qi;\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n } \r\n\r\n @action loadQuestion = async(questionId: string) => {\r\n this.loading = true;\r\n try {\r\n var qst = await agent.QA.questionInfo(questionId);\r\n runInAction(() => {\r\n this.loading =false;\r\n this.currentQuestion = qst;\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action addQuestion = async(courseCode: string, topic: string, isPrivate: boolean, message: string) => {\r\n this.loading = true;\r\n try {\r\n var question = await agent.QA.addQuestion(courseCode, topic, isPrivate, message);\r\n runInAction(() => {\r\n this.loading = false;\r\n if(this.qaInfo && this.qaInfo.courseCode === courseCode) {\r\n this.qaInfo.questions.push(question);\r\n }\r\n this.rootStore.modalStore.closeModal();\r\n })\r\n } catch(error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action addAnswer = async(questionId: string, message: string) => {\r\n this.loading = true;\r\n try {\r\n var answer = await agent.QA.addAnswer(questionId, message);\r\n runInAction(() => {\r\n this.loading = false;\r\n if(this.currentQuestion && this.currentQuestion.questionId === questionId) {\r\n this.currentQuestion.answers.push(answer);\r\n }\r\n this.rootStore.modalStore.closeModal(); \r\n })\r\n } catch(error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action updateAnswer = async(answerId: string, message: string) => {\r\n this.loading = true;\r\n try {\r\n await agent.QA.updateAnswer(answerId, message);\r\n runInAction(() => {\r\n this.loading = false;\r\n if(this.currentQuestion) {\r\n this.currentQuestion.answers = this.currentQuestion.answers.map(ans => \r\n ans.answerId === answerId ? {...ans, message: message} : ans);\r\n }\r\n this.rootStore.modalStore.closeModal(); \r\n })\r\n } catch(error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action getQuestions = async() => {\r\n this.loading = true;\r\n try {\r\n var qs = await agent.QA.getQuestions();\r\n runInAction(() => {\r\n this.questions = qs;\r\n this.loading =false;\r\n }); \r\n return qs; \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n } \r\n \r\n @action getTAQuestions = async() => {\r\n this.loading = true;\r\n try {\r\n var qs = await agent.QA.getTAQuestions();\r\n runInAction(() => {\r\n this.taQuestions = qs;\r\n this.loading =false;\r\n }); \r\n return qs; \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n}","import { RootStore } from './rootStore';\r\nimport { observable, runInAction, action} from 'mobx';\r\nimport agent from '../api/agent';\r\nimport { ITopic, ITopicItem } from '../models/topic';\r\nimport { history } from \"../..\";\r\n\r\nexport default class TopicStore {\r\n rootStore: RootStore;\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n @observable loading = false;\r\n @observable topics: ITopic[] = [];\r\n @observable currentTopic: ITopic | null = null;\r\n @observable topicItems: ITopicItem[] = [];\r\n\r\n @action loadTopics = async() => {\r\n this.loading = true;\r\n try {\r\n var ts = await agent.Topic.list();\r\n runInAction(() => {\r\n this.loading = false;\r\n this.topics = ts;\r\n })\r\n } catch (error){\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n\r\n @action loadAssistantTopics = async() => {\r\n this.loading = true;\r\n try {\r\n var ts = await agent.Topic.assistantlist();\r\n runInAction(() => {\r\n this.loading = false;\r\n this.topics = ts;\r\n })\r\n } catch (error){\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n\r\n @action addTopic = async(name: string, subjectCode: string, \r\n hasConcepts: boolean, hasAnalysis: boolean, hasCode: boolean, \r\n isSeparatePage: boolean, isWorkbook: boolean, submitMode: string) => {\r\n try { \r\n await agent.Topic.addTopic(name, subjectCode, hasConcepts, hasAnalysis, hasCode, \r\n isSeparatePage, isWorkbook, submitMode); \r\n history.push('/topics');\r\n } catch(error){\r\n runInAction(() => { \r\n throw error; \r\n }) \r\n }\r\n }\r\n\r\n @action setTopic = async(topicId: string, name: string, \r\n hasConcepts: boolean, hasAnalysis: boolean, hasCode: boolean, \r\n isSeparatePage: boolean, isWorkbook: boolean, submitMode: string) => {\r\n try { \r\n await agent.Topic.setTopic(topicId, name, hasConcepts, hasAnalysis, hasCode, \r\n isSeparatePage, isWorkbook, submitMode); \r\n this.rootStore.modalStore.closeModal(); \r\n } catch(error){\r\n runInAction(() => { \r\n throw error; \r\n }) \r\n }\r\n }\r\n\r\n @action getTopic = async(topicId: string) => {\r\n this.loading = true; \r\n try { \r\n var topic = await agent.Topic.getTopic(topicId);\r\n runInAction(() => {\r\n this.loading = false;\r\n this.currentTopic = topic;\r\n })\r\n return topic;\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action addTopicItem = async(topicId: string, category: string, seqNo: string, seqNoLink: string,\r\n title: string, content: string, url: string) => {\r\n this.loading = true; \r\n try {\r\n var topic = await agent.Topic.addTopicItem(topicId, category, seqNo, seqNoLink, title, content, url); \r\n runInAction(() => {\r\n this.loading = false;\r\n if(this.currentTopic && this.currentTopic.id === topicId) {\r\n this.currentTopic.topicItems.push(topic);\r\n }\r\n this.rootStore.modalStore.closeModal(); \r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action setTopicItemCategory = async(topicId: string, topicItemId: string, category: string) => {\r\n this.loading = true;\r\n try {\r\n await agent.Topic.setTopicItemCategory(topicId, topicItemId, category);\r\n runInAction(() => {\r\n this.loading = false;\r\n if(this.currentTopic && this.currentTopic.id === topicId) {\r\n var topicItem = this.currentTopic.topicItems.find(x=>x.id === topicItemId);\r\n if(topicItem) {\r\n topicItem.category = category;\r\n }\r\n }\r\n this.rootStore.modalStore.closeModal(); \r\n })\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action setTopicItemSeqNo = async(topicId: string, topicItemId: string, seqNo: string, seqNoLink: string) => {\r\n this.loading = true;\r\n try {\r\n await agent.Topic.setTopicItemSeqNo(topicId, topicItemId, seqNo, seqNoLink);\r\n runInAction(() => {\r\n this.loading = false;\r\n if(this.currentTopic && this.currentTopic.id === topicId) {\r\n var topicItem = this.currentTopic.topicItems.find(x=>x.id === topicItemId);\r\n if(topicItem) {\r\n topicItem.seqNo = seqNo;\r\n }\r\n }\r\n this.rootStore.modalStore.closeModal(); \r\n })\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action setTopicItemConcepts = async(topicId: string, topicItemId: string, concepts: string) => {\r\n this.loading = true;\r\n try {\r\n await agent.Topic.setTopicItemConcepts(topicId, topicItemId, concepts);\r\n runInAction(() => {\r\n this.loading = false;\r\n if(this.currentTopic && this.currentTopic.id === topicId) {\r\n var topicItem = this.currentTopic.topicItems.find(x=>x.id === topicItemId);\r\n if(topicItem) {\r\n topicItem.concepts = concepts;\r\n }\r\n }\r\n this.rootStore.modalStore.closeModal(); \r\n })\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n } \r\n \r\n @action setTopicItem = async(topicId: string, topicItemId: string, title: string, url: string) => {\r\n this.loading = true;\r\n try {\r\n await agent.Topic.setTopicItem(topicId, topicItemId, title, url);\r\n runInAction(() => {\r\n this.loading = false;\r\n if(this.currentTopic && this.currentTopic.id === topicId) {\r\n var topicItem = this.currentTopic.topicItems.find(x=>x.id === topicItemId);\r\n if(topicItem) {\r\n topicItem.title = title;\r\n topicItem.url = url;\r\n }\r\n }\r\n this.rootStore.modalStore.closeModal(); \r\n })\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n } \r\n\r\n @action submitCode= async(topicItemId: string, code: string) => \r\n {\r\n this.loading = true;\r\n try{\r\n await agent.Topic.submitCode(topicItemId, code);\r\n if(this.currentTopic){\r\n var topicItem = this.currentTopic.topicItems.find(x=>x.id === topicItemId);\r\n if(topicItem){\r\n topicItem.code = code;\r\n }\r\n }\r\n this.rootStore.modalStore.closeModal(); \r\n } finally {\r\n this.loading = false;\r\n }\r\n }\r\n\r\n @action attachAnalysis= async(topicItemId: string, file: Blob) => \r\n {\r\n this.loading = true;\r\n try{\r\n var attach = await agent.Topic.attachAnalysis(topicItemId, file);\r\n if(this.currentTopic){\r\n var topicItem = this.currentTopic.topicItems.find(x=>x.id === topicItemId);\r\n if(topicItem){\r\n topicItem.analysisCloudinaryId = attach.data.analysisCloudinaryId;\r\n topicItem.analysisUrl = attach.data.analysisUrl;\r\n topicItem.analysisContent = '';\r\n }\r\n }\r\n this.rootStore.modalStore.closeModal(); \r\n } finally {\r\n this.loading = false;\r\n }\r\n } \r\n\r\n @action setTopicItemAnalysisLink = async(topicId: string, topicItemId: string, url: string) => {\r\n this.loading = true;\r\n try {\r\n await agent.Topic.setTopicItemAnalysisLink(topicId, topicItemId, url);\r\n runInAction(() => {\r\n this.loading = false;\r\n if(this.currentTopic && this.currentTopic.id === topicId) {\r\n var topicItem = this.currentTopic.topicItems.find(x=>x.id === topicItemId);\r\n if(topicItem) {\r\n topicItem.analysisCloudinaryId = '';\r\n topicItem.analysisUrl = url;\r\n topicItem.analysisContent = '';\r\n }\r\n }\r\n this.rootStore.modalStore.closeModal(); \r\n })\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action setTopicItemAnalysisContent = async(topicId: string, topicItemId: string, content: string) => {\r\n this.loading = true;\r\n try {\r\n await agent.Topic.setTopicItemAnalysisContent(topicId, topicItemId, content);\r\n runInAction(() => {\r\n this.loading = false;\r\n if(this.currentTopic && this.currentTopic.id === topicId) {\r\n var topicItem = this.currentTopic.topicItems.find(x=>x.id === topicItemId);\r\n if(topicItem) {\r\n topicItem.analysisCloudinaryId = '';\r\n topicItem.analysisUrl = '';\r\n topicItem.analysisContent = content;\r\n }\r\n }\r\n this.rootStore.modalStore.closeModal(); \r\n })\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n } \r\n\r\n @action loadTopicItems = async(topicId: string) => {\r\n this.loading = true;\r\n try {\r\n var items = await agent.Topic.getTopicItems(topicId);\r\n runInAction(() => {\r\n this.loading = false;\r\n this.topicItems = items;\r\n })\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n};","import { RootStore } from './rootStore';\r\nimport { observable, runInAction, action} from 'mobx';\r\nimport agent from '../api/agent';\r\nimport { ICourseTopic } from '../models/courseTopic';\r\nimport { IStudentCourseTopic } from '../models/studentCourseTopic';\r\nimport { IMessageInfo } from '../models/message'\r\nimport { ITeacherCourseTopic } from '../models/TeacherCourseTopic';\r\nimport { ISubmission } from '../models/submission';\r\n\r\nexport default class CourseTopicStore {\r\n rootStore: RootStore; \r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n @observable loading = false;\r\n @observable currentTopic: ICourseTopic | null = null;\r\n @observable teacherTopic: ITeacherCourseTopic | null = null;\r\n @observable studentTopic: IStudentCourseTopic | null = null;\r\n @observable discussions : IMessageInfo[] = [];\r\n @observable studentSubmissions : ISubmission[] = [];\r\n\r\n @action loadCourseTopics = async (courseCode: string) => {\r\n this.loading = true;\r\n try {\r\n var cts = await agent.CourseTopic.getCourseTopics(courseCode);\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n return cts;\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action setCourseTopic = async(courseCode: string, topicId: string, isAdded: boolean) => {\r\n this.loading = true;\r\n try {\r\n await agent.CourseTopic.setCourseTopic(courseCode, topicId, isAdded);\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action loadCourseTopicItems = async(courseTopicId: string) => {\r\n this.loading = true;\r\n try {\r\n var ctis = await agent.CourseTopic.getCourseTopicItems(courseTopicId);\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n return ctis; \r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action addCourseTopicItem = async(courseTopicId: string, topicitemId: string) => {\r\n this.loading = true;\r\n try {\r\n await agent.CourseTopic.addCourseTopicItem(courseTopicId, topicitemId);\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action removeCourseTopicItem = async(courseTopicId: string, topicItemId: string) => {\r\n this.loading = true;\r\n try {\r\n await agent.CourseTopic.removeCourseTopicItem(courseTopicId, topicItemId);\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action toggleShowConcepts = async(courseTopicId: string, topicItemId: string, showConcepts: boolean) => {\r\n this.loading = true;\r\n try {\r\n await agent.CourseTopic.toggleConcepts(courseTopicId, topicItemId, showConcepts);\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action toggleShowAnalysis = async(courseTopicId: string, topicItemId: string, showAnalysis: boolean) => {\r\n this.loading = true;\r\n try {\r\n await agent.CourseTopic.toggleAnalysis(courseTopicId, topicItemId, showAnalysis);\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action toggleShowCode = async(courseTopicId: string, topicItemId: string, showCode: boolean) => {\r\n this.loading = true;\r\n try {\r\n await agent.CourseTopic.toggleCode(courseTopicId, topicItemId, showCode);\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action loadCourseTopic = async(courseTopicId: string) => {\r\n this.loading = true;\r\n try {\r\n var topic = await agent.CourseTopic.getCourseTopic(courseTopicId);\r\n runInAction(() => {\r\n this.loading = false;\r\n this.currentTopic = topic;\r\n })\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action loadTeacherCourseTopic = async(courseTopicId: string) => {\r\n this.loading = true;\r\n try {\r\n var topic = await agent.CourseTopic.getTeacherCourseTopic(courseTopicId);\r\n runInAction(() => {\r\n this.loading = false;\r\n this.teacherTopic = topic;\r\n })\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action loadStudentCourseTopic = async(courseTopicId: string) => {\r\n this.loading = true;\r\n try {\r\n var topic = await agent.CourseTopic.getStudentCourseTopic(courseTopicId);\r\n runInAction(() => {\r\n this.loading = false;\r\n this.studentTopic = topic;\r\n })\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n\r\n @action loadDiscussions = async(courseTopicId: string, topicItemId: string) => {\r\n this.loading = true;\r\n try {\r\n var dis = await agent.CourseTopic.getDiscussions(courseTopicId, topicItemId);\r\n runInAction(() => {\r\n this.loading = false;\r\n this.discussions = dis;\r\n })\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action addDiscussion = async(courseTopicId: string, topicItemId: string, message: string) => {\r\n this.loading = true; \r\n try {\r\n var discussion = await agent.CourseTopic.addDiscussion(courseTopicId, topicItemId, message); \r\n runInAction(() => {\r\n this.loading = false;\r\n this.discussions.push(discussion);\r\n this.rootStore.modalStore.closeModal(); \r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action submitCode= async(courseTopicId: string, topicItemId: string, remark: string, code: string) => \r\n {\r\n this.loading = true;\r\n try{\r\n await agent.CourseTopic.submitCode(courseTopicId, topicItemId, remark, code);\r\n if(this.studentTopic){\r\n var topicItem = this.studentTopic.topicItems.find(x=>x.id === topicItemId);\r\n if(topicItem){\r\n topicItem.submitRemark = remark;\r\n topicItem.submitCode = code;\r\n }\r\n }\r\n this.rootStore.modalStore.closeModal(); \r\n } finally {\r\n this.loading = false;\r\n }\r\n }\r\n\r\n // for teachers\r\n @action loadStudentSubmissions = async (courseTopicId: string, topicItemId: string) => {\r\n this.loading = true;\r\n try{\r\n var sms = await agent.CourseTopic.getSubmissions(courseTopicId, topicItemId);\r\n runInAction(() => {\r\n this.studentSubmissions = sms;\r\n this.loading = false;\r\n });\r\n return sms;\r\n } catch(error){\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n } \r\n\r\n @action updateMessage= async(courseTopicId: string, topicItemId: string,\r\n messageId: string, message: string) => {\r\n this.loading = true;\r\n try {\r\n await agent.CourseTopic.updateDiscussion(courseTopicId, topicItemId, messageId, message);\r\n runInAction(() => {\r\n this.loading = false;\r\n this.rootStore.modalStore.closeModal(); \r\n })\r\n } catch(error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n }\r\n }\r\n}","import { RootStore } from './rootStore';\r\nimport { observable, runInAction, action} from 'mobx';\r\nimport agent from '../api/agent';\r\nimport { DiscussionInfo } from '../models/discussion';\r\n\r\nexport default class DiscussionStore {\r\n rootStore: RootStore; \r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n @observable loading = false;\r\n @observable discussions : DiscussionInfo[] = [];\r\n\r\n @action getDiscussions = async(courseTopicId: string) => {\r\n this.loading = true;\r\n try {\r\n var dis = await agent.Discussion.discussions(courseTopicId);\r\n runInAction(() => {\r\n this.discussions = dis;\r\n this.loading =false;\r\n }); \r\n return dis; \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n }\r\n\r\n @action getCourseDiscussions = async(courseId: string) => {\r\n this.loading = true;\r\n try {\r\n var dis = await agent.Discussion.courseDiscussions(courseId);\r\n runInAction(() => {\r\n this.discussions = dis;\r\n this.loading =false;\r\n }); \r\n return dis; \r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n }); \r\n } \r\n } \r\n}","import { RootStore } from './rootStore';\r\nimport { observable, runInAction, action } from 'mobx';\r\nimport agent from '../api/agent';\r\nimport { IAchievement } from '../models/achievement';\r\n\r\nexport default class AchievementStore {\r\n rootStore: RootStore; \r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n \r\n @observable loading = false;\r\n @observable achievements: IAchievement[] = [];\r\n\r\n @action getAchievements = async() => {\r\n this.loading = true;\r\n try {\r\n var as = await agent.Achievement.getAchievements();\r\n runInAction(() => {\r\n this.achievements = as;\r\n this.loading = false;\r\n })\r\n return as;\r\n } catch(error) {\r\n runInAction(()=> {\r\n this.loading = false;\r\n })\r\n }\r\n }\r\n\r\n @action addAchievement = async(title: string, date: string, description: string) => {\r\n this.loading = true;\r\n try {\r\n var achievement = await agent.Achievement.addAchievement(title, date, description);\r\n runInAction(() => {\r\n this.loading = false;\r\n this.achievements.push(achievement);\r\n this.rootStore.modalStore.closeModal();\r\n });\r\n } catch(error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n\r\n @action updateAchievement = async(id: string, title: string, date: string, description: string) => {\r\n this.loading = true;\r\n try { \r\n await agent.Achievement.updateAchievement(id, title, date, description);\r\n runInAction(() => {\r\n this.loading = false;\r\n this.achievements = this.achievements.map(a =>\r\n a.id === id ? {...a, title: title, date: new Date(date), description: description} : a);\r\n this.rootStore.modalStore.closeModal();\r\n }) \r\n } catch(error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n}\r\n","import { RootStore } from './rootStore';\r\nimport { observable, runInAction, action } from 'mobx';\r\nimport agent from '../api/agent';\r\nimport { IAnnouncement } from '../models/announcement';\r\n\r\nexport default class AnnouncementStore {\r\n rootStore: RootStore; \r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n \r\n @observable loading = false;\r\n @observable announcements: IAnnouncement[] = [];\r\n\r\n @action getAnnouncements = async() => {\r\n this.loading = true;\r\n try {\r\n var as = await agent.Announcement.getAnnouncements();\r\n runInAction(() => {\r\n this.announcements = as;\r\n this.loading = false;\r\n })\r\n return as;\r\n } catch(error) {\r\n runInAction(()=> {\r\n this.loading = false;\r\n })\r\n }\r\n }\r\n\r\n @action getActiveAnnouncements = async() => {\r\n this.loading = true;\r\n try {\r\n var as = await agent.Announcement.getActiveAnnouncements();\r\n runInAction(() => {\r\n this.announcements = as;\r\n this.loading = false;\r\n })\r\n return as;\r\n } catch(error) {\r\n runInAction(()=> {\r\n this.loading = false;\r\n })\r\n }\r\n }\r\n\r\n @action addAnnouncement = async(title: string, date: string, description: string) => {\r\n this.loading = true;\r\n try {\r\n var announcement = await agent.Announcement.addAnnouncement(title, date, description);\r\n runInAction(() => {\r\n this.loading = false;\r\n this.announcements.push(announcement);\r\n this.rootStore.modalStore.closeModal();\r\n });\r\n } catch(error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n\r\n @action updateAnnouncement = async(id: string, title: string, description: string) => {\r\n this.loading = true;\r\n try { \r\n await agent.Announcement.updateAnnouncement(id, title, description);\r\n runInAction(() => {\r\n this.loading = false;\r\n this.announcements = this.announcements.map(a =>\r\n a.id === id ? {...a, title: title, date: a.date, description: description} : a);\r\n this.rootStore.modalStore.closeModal();\r\n }) \r\n } catch(error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n\r\n @action setActive = async(id: string, active: boolean) => {\r\n this.loading = true;\r\n try {\r\n await agent.Announcement.setActive(id, active);\r\n runInAction(() => {\r\n this.loading = false;\r\n this.announcements = this.announcements.map(a=>\r\n a.id === id ? {...a, active: active}: a); \r\n \r\n this.rootStore.modalStore.closeModal();\r\n })\r\n }\r\n catch(error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n}\r\n","import { RootStore } from './rootStore';\r\nimport { observable, runInAction, action} from 'mobx';\r\nimport agent from '../api/agent';\r\nimport { IAssistant } from '../models/assistant';\r\n\r\nexport default class AssistantStore {\r\n rootStore: RootStore; \r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable loading = false;\r\n\r\n @observable assistants: IAssistant[] = [];\r\n\r\n @action loadAssistants = async() => {\r\n this.loading = true;\r\n try { \r\n var cs = await agent.Assistants.list();\r\n runInAction(() => {\r\n this.assistants = cs;\r\n this.loading = false;\r\n }); \r\n return cs;\r\n } catch (error){\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n}","import PythonProblemStore from './pythonProblemStore';\r\nimport ModalStore from './modalStore';\r\nimport { createContext } from \"react\";\r\nimport CommonStore from \"./commonStore\";\r\nimport UserStore from \"./userStore\";\r\nimport UsersStore from './usersStore';\r\nimport RoleStore from './roleStore';\r\nimport CourseStore from './courseStore';\r\nimport CoursesStore from './coursesStore';\r\nimport SubjectStore from './subjectStore';\r\nimport TeacherStore from './teacherStore';\r\nimport NumberPuzzleStore from './numberPuzzleStore';\r\nimport StudentStore from './studentStore';\r\nimport LessonStore from './lessonStore';\r\nimport AssignmentStore from './assignmentStore';\r\nimport InquiryStore from './inquiryStore';\r\nimport QAStore from './qaStore';\r\nimport TopicStore from './topicStore';\r\nimport CourseTopicStore from './courseTopicStore';\r\nimport DiscussionStore from './discussionStore';\r\nimport AchievementStore from './achievementStore';\r\nimport AnnouncementStore from './announcementStore';\r\nimport AssistantStore from './assistantStore';\r\n\r\nexport class RootStore {\r\n pythonProblemStore: PythonProblemStore;\r\n modalStore: ModalStore;\r\n userStore: UserStore;\r\n commonStore: CommonStore;\r\n usersStore: UsersStore;\r\n roleStore: RoleStore;\r\n courseStore: CourseStore;\r\n coursesStore: CoursesStore;\r\n subjectStore: SubjectStore;\r\n teacherStore: TeacherStore;\r\n assistantStore: AssistantStore;\r\n studentStore: StudentStore;\r\n lessonStore: LessonStore;\r\n assignmentStore: AssignmentStore;\r\n numberPuzzleStore: NumberPuzzleStore;\r\n inquiryStore: InquiryStore;\r\n qaStore: QAStore;\r\n topicStore: TopicStore;\r\n courseTopicStore: CourseTopicStore;\r\n discussionStore: DiscussionStore;\r\n achievementStore: AchievementStore;\r\n announcementStore: AnnouncementStore;\r\n\r\n constructor() {\r\n this.pythonProblemStore = new PythonProblemStore(this);\r\n this.modalStore = new ModalStore(this);\r\n this.userStore = new UserStore(this);\r\n this.commonStore = new CommonStore(this); \r\n this.usersStore = new UsersStore(this);\r\n this.roleStore = new RoleStore(this);\r\n this.courseStore = new CourseStore(this);\r\n this.coursesStore = new CoursesStore(this);\r\n this.subjectStore = new SubjectStore(this);\r\n this.teacherStore = new TeacherStore(this);\r\n this.assistantStore = new AssistantStore(this);\r\n this.studentStore = new StudentStore(this);\r\n this.lessonStore = new LessonStore(this);\r\n this.assignmentStore = new AssignmentStore(this);\r\n this.numberPuzzleStore = new NumberPuzzleStore(this);\r\n this.inquiryStore = new InquiryStore(this);\r\n this.qaStore = new QAStore(this);\r\n this.topicStore = new TopicStore(this);\r\n this.courseTopicStore = new CourseTopicStore(this);\r\n this.discussionStore = new DiscussionStore(this);\r\n this.achievementStore = new AchievementStore(this);\r\n this.announcementStore = new AnnouncementStore(this);\r\n }\r\n}\r\n\r\nexport const RootStoreContext = createContext(new RootStore());","import React from 'react';\r\nimport LoadingOverlay from 'react-loading-overlay';\r\n\r\nexport const LoadingComponent: React.FC<{\r\n inverted?: boolean;\r\n content?: string;\r\n}> = ({ inverted=true, content }) => {\r\n return (\r\n \r\n \r\n );\r\n};\r\n","import React, { useContext, useState, useEffect } from 'react';\r\nimport { RootStoreContext } from '../../stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Modal} from 'react-bootstrap';\r\n\r\nconst ModalContainer = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { \r\n modal: { open, title, body, modal_class, error},\r\n closeModal\r\n } = rootStore.modalStore;\r\n \r\n const [show, setShow] = useState(false);\r\n const handleClose = () => {\r\n closeModal();\r\n }\r\n\r\n useEffect(() => {\r\n setShow(open);\r\n }, [open]);\r\n \r\n return (\r\n \r\n \r\n {title}\r\n \r\n\r\n \r\n {body}\r\n \r\n {error && (\r\n \r\n {error}\r\n \r\n )} \r\n \r\n )\r\n};\r\n\r\nexport default observer(ModalContainer);\r\n","import React from 'react'\r\nimport { Jumbotron, Button } from 'react-bootstrap';\r\n\r\nconst HomeBanner = () => {\r\n return (\r\n \r\n
\r\n
\r\n

\r\n Coding
\r\n Courses for
\r\n Kids and Teens\r\n

\r\n
\r\n

\r\n Making coding fun\r\n

\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default HomeBanner\r\n","import React, { useContext, useEffect } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport {Card} from 'react-bootstrap';\r\nimport { observer } from 'mobx-react-lite';\r\nimport parse from 'html-react-parser'\r\n\r\nconst Announcements = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {announcements, getActiveAnnouncements} = rootStore.announcementStore; \r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await getActiveAnnouncements();\r\n }\r\n loadValues();\r\n }, [getActiveAnnouncements])\r\n\r\n return (\r\n
\r\n {announcements.slice().sort((a, b) => a.date < b.date ? 1 : -1)\r\n .map((announcement, idx) => \r\n \r\n \r\n \r\n \r\n {announcement.title} \r\n \r\n {parse(announcement.description)}\r\n \r\n \r\n \r\n )}\r\n
\r\n )\r\n}\r\n\r\nexport default observer(Announcements)","import React from 'react';\r\nimport { Container, Row, Col } from 'react-bootstrap';\r\n\r\nconst HomeAbout = () => {\r\n return (\r\n
\r\n \r\n

ABAITC

\r\n

Alberta Junior AI Training Center

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

Who We Are

\r\n
\r\n

\r\n ABAITC is the programming training center for kids. Our programs include year-around \r\n weekly classes for students. We also run summer camps and provide spring-break special \r\n program. Classes come in a \r\n variety of different skill levels to cater to your child's skills as well as encouraging\r\n growth. We are based in Alberta, Canada with physical locations in Edmonton and Calgary. \r\n

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

Why Choose Us

\r\n
\r\n

\r\n Our goal is to help your child become skilled at programming. We have a teaching staff \r\n of well educated and skilled individuals, most are professionals in the coding industry\r\n and have years of knowledge to share. ABAITC also prides itself in excellent coordination and\r\n communication, thankful to our Director and Course Coordinator, June Wang.\r\n

\r\n \r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default HomeAbout","import React from 'react';\r\nimport HomeBanner from './HomeBanner';\r\nimport { Container } from 'react-bootstrap';\r\nimport Announcements from './Announcements';\r\nimport HomeAbout from './HomeAbout';\r\nimport \"./home.css\";\r\n\r\nexport const HomePage = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","export const BeginnerClassTree = \r\n[\r\n {\r\n courseId: 101,\r\n courseName: 'Scratch: Intro to Coding',\r\n courseLevel: 'Beginner',\r\n Recommendation: 'Recommended for kids ages 6+',\r\n Preview: \r\n \"Learn the basics of coding while creating fun Scratch games and animations! Perfect for those with little to no coding experience.\",\r\n Description:\r\n \" use a text document (?)\",\r\n image: '/images/home/scratch_1.png',\r\n link: '/scratch-class'\r\n },\r\n {\r\n courseId: 102,\r\n courseName: 'Basics of Programming',\r\n courseLevel: 'Beginner',\r\n Recommendation: 'Recommended for kids ages 7+',\r\n Preview: \r\n \"Start learning coding languages used in professional fields, such as Java and Python. Our lessons are designed to teach your child proper coding habits and to practice their problem solving skills.\",\r\n\r\n Description:\r\n \" use a text document (?)\",\r\n image: '/images/home/basic_programming_1.png' ,\r\n link: '/basics-class'\r\n },\r\n];","import React from \"react\";\r\nimport { ListGroup, Row, Col, Image, Button} from \"react-bootstrap\";\r\nimport { BeginnerClassTree } from \"./beginner/BeginnerClassTree\";\r\n\r\nconst RegularBeginner = () => {\r\n return ( \r\n \r\n\r\n {BeginnerClassTree.map((classList) =>\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n

{classList.courseName}

\r\n
\r\n {classList.Recommendation} \r\n

\r\n {classList.Preview}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n )} \r\n
\r\n )\r\n}\r\n\r\nexport default RegularBeginner","export const IntermediateClassTree = \r\n[\r\n {\r\n courseId: 201,\r\n courseName: 'Python I',\r\n courseLevel: 'Intermediate',\r\n Recommendation: 'Recommended for kids ages 9+',\r\n Preview: \r\n \"A step up from basics, Python I takes your child further by focusing on one sole language. Build a solid foundation for the future by learning how to use proper syntax and programming functions.\",\r\n Description:\r\n \" use a text document (?)\",\r\n image: '/images/home/python_1.png',\r\n link: '/python-1'\r\n },\r\n {\r\n courseId: 202,\r\n courseName: 'Python II',\r\n courseLevel: 'Intermediate',\r\n Recommendation: 'Recommended for kids ages 9+',\r\n Preview: \r\n \"Python II delves deeper into the language. Learn how to efficiently use object-oriented programming to write more complex code. We recommend to taking Python I before taking Python II.\",\r\n\r\n Description:\r\n \" use a text document (?)\",\r\n image: '/images/home/python_2.png',\r\n link: '/python-2'\r\n },\r\n {\r\n courseId: 203,\r\n courseName: 'Coding with Java',\r\n courseLevel: 'Intermediate',\r\n Recommendation: 'Recommended for kids ages 11+',\r\n Preview: \r\n \"Java is another object-oriented programing language; making it just as easy to learn as Python! Programmers usually have handful of languages under their belt, so join our Java class to increase your child's expertise! \",\r\n\r\n Description:\r\n \" use a text document (?)\",\r\n image: '/images/home/java_1.png',\r\n link: '/java-class'\r\n },\r\n {\r\n courseId: 205,\r\n courseName: 'Blender 3D',\r\n courseLevel: 'Intermediate-Advanced',\r\n Recommendation: 'Recommended for kids 10+ age',\r\n Preview: \r\n \"Create 3D computer graphics using the popular program Blender. Your child will be making game assests and animations! \",\r\n Description:\r\n \" use a text document (?)\",\r\n image: '/images/home/blender3d_1.png',\r\n link: '/blender'\r\n },\r\n {\r\n courseId: 206,\r\n courseName: 'Arduino',\r\n courseLevel: 'Intermediate-Advanced',\r\n Recommendation: 'Recommended for kids 10+ age',\r\n Preview: \r\n \"This course is a basic introductory course towards robot control and AIoT advanced courses. It is a basic robotics course for children with a certain programming and electrical foundation.\",\r\n\r\n Description:\r\n \" use a text document (?)\",\r\n image: '/images/home/arduino_1.png',\r\n link: 'arduino'\r\n },\r\n {\r\n courseId: 207,\r\n courseName: 'Aircraft War: Scratch',\r\n courseLevel: 'Intermediate',\r\n Recommendation: 'Recommended for kids 9+ age',\r\n Preview: \r\n \"If your child is already familiar with Scratch, then this course will be the perfect challenge for them. Create a complex game using the simplicity of Scratch!\",\r\n\r\n Description:\r\n \" use a text document (?)\",\r\n image: '/images/home/aircraft_war_1.png',\r\n link: '/aircraft-war-1'\r\n }, \r\n {\r\n courseId: 208,\r\n courseName: 'Aircraft War Game: Web with Javascript',\r\n courseLevel: 'Intermediate-Advanced',\r\n Recommendation: 'Recommended for kids with coding experience.',\r\n Preview: \r\n \"Create an Aircraft War Game using html and Javascript! This version of the game will focus on web development, so we recommend taking this class with prior coding knowledge.\",\r\n Description:\r\n \" use a text document (?)\",\r\n image: '/images/home/aircraft_war_2.png',\r\n link: '/aircraft-war-2'\r\n },\r\n {\r\n courseId: 209,\r\n courseName: 'Flappy Bird: Processing with Python',\r\n courseLevel: 'Intermediate-Advanced',\r\n Recommendation: 'Recommend completing Basic Programming course.',\r\n Preview: \r\n \"In this course, your child will use Processing with Python to recreate Flappy Bird. Again we recommend this course for those with prior coding experience.\",\r\n\r\n Description:\r\n \" use a text document (?)\",\r\n image: '/images/home/processing_python_1.png',\r\n link: '/flappy-bird'\r\n }, \r\n {\r\n courseId: 210,\r\n courseName: 'Making Game with Godot Game Engine',\r\n courseLevel: 'Intermediate-Advanced',\r\n Recommendation: 'Recommended for kids with coding experience.',\r\n Preview: \r\n \"Godot game engine is one of the most popular game engines for real-life games, and it's free and open-source. Students will learn how to make a full-fledged 2D platformer game like Super Mario game with Godot game engine.\",\r\n Description:\r\n \" use a text document (?)\",\r\n image: '/images/home/godot_game_1.png',\r\n link: '/godot-game-1'\r\n }, \r\n];","import React from \"react\";\r\nimport { ListGroup, Row, Col, Image, Button} from \"react-bootstrap\";\r\nimport { IntermediateClassTree } from \"./intermediate/IntermediateClassTree\";\r\n\r\nconst RegularIntermediate = () => {\r\n return ( \r\n \r\n\r\n {IntermediateClassTree.map((classList) =>\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n

{classList.courseName}

\r\n
\r\n {classList.Recommendation} \r\n

\r\n {classList.Preview}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n )} \r\n
\r\n )\r\n}\r\n\r\nexport default RegularIntermediate","export const AdvancedClassTree = \r\n[\r\n {\r\n courseId: 301,\r\n courseName: 'Junior Algorithm',\r\n courseLevel: 'Intermediate',\r\n Recommendation: 'Recommended for kids ages 11+',\r\n Preview: \r\n \"Wanting a challenge? Prepare your child for Canadian Computing Competition (CCC) - Junior Level.\",\r\n\r\n Description:\r\n \" use a text document (?)\",\r\n image: '/images/home/algorithm_1.png',\r\n link: '/algorithm-junior'\r\n },\r\n {\r\n courseId: 302,\r\n courseName: 'C++',\r\n courseLevel: 'Advanced',\r\n Recommendation: 'Recommended for kids ages 12+',\r\n Preview: \r\n \"Learn the basics of C++ while learning more advanced coding concepts. With C++, our instructor will guide your child through this incredible complex yet powerful language.\",\r\n Description:\r\n \" use a text document (?)\",\r\n image: '/images/home/cpp_1.png' ,\r\n link: '/c++'\r\n },\r\n {\r\n courseId: 303,\r\n courseName: 'Math Enhancement',\r\n courseLevel: 'Advanced',\r\n Recommendation: 'Recommended for kids ages 12+',\r\n Preview: \r\n `Sharpen your math skills with our Math Enhancement course! Our material covers \r\n what is taught in school plus more, giving your child the headstart for math competition.`,\r\n Description:\r\n \" use a text document (?)\",\r\n image: '/images/home/math_2.png' ,\r\n link: '/math-enhancement' \r\n } \r\n];","import React from \"react\";\r\nimport { ListGroup, Row, Col, Image, Button} from \"react-bootstrap\";\r\nimport { AdvancedClassTree } from \"./advanced/AdvancedClassTree\";\r\n\r\nconst RegularAdvanced = () => {\r\n return ( \r\n \r\n\r\n {AdvancedClassTree.map((classList) =>\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n

{classList.courseName}

\r\n
\r\n {classList.Recommendation} \r\n

\r\n {classList.Preview}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n )} \r\n
\r\n )\r\n}\r\n\r\nexport default RegularAdvanced","export const ChallengingClassTree = \r\n[\r\n {\r\n courseId: 401,\r\n courseName: 'Senior Algorithm',\r\n courseLevel: 'Advanced',\r\n Recommendation: 'Recommended for kids ages 12+',\r\n Preview: \r\n \"Wanting a challenge? Prepare your child for Canadian Computing Competition (CCC) - Senior Level.\",\r\n Description:\r\n \" use a text document (?)\",\r\n image: '/images/home/algorithm_2.png',\r\n link: '/algorithm-senior'\r\n },\r\n {\r\n courseId: 402,\r\n courseName: 'Math Challange',\r\n courseLevel: 'Advanced',\r\n Recommendation: 'Recommended for kids ages 12+',\r\n Preview: \r\n `If you want to show your math talent, this course is right for you. Based on the math knowledge taught \r\n in school, this course prepares you for the advanced math competitions such as COMC \r\n (Canadian Open Mathematics Challenge)`,\r\n Description:\r\n \" use a text document (?)\",\r\n image: '/images/home/math_1.png',\r\n link: '/math-challange'\r\n },\r\n];","import React from \"react\";\r\nimport { ListGroup, Row, Col, Image, Button} from \"react-bootstrap\";\r\nimport { ChallengingClassTree } from \"./challenging/ChallengingClassTree\";\r\n\r\nconst RegularAdvanced = () => {\r\n return ( \r\n \r\n\r\n {ChallengingClassTree.map((classList) =>\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n

{classList.courseName}

\r\n
\r\n {classList.Recommendation} \r\n

\r\n {classList.Preview}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n )} \r\n
\r\n )\r\n}\r\n\r\nexport default RegularAdvanced","import React from \"react\";\r\nimport { Tabs, Tab, Col } from 'react-bootstrap';\r\nimport Beginner from \"./Beginner\";\r\nimport Intermediate from \"./Intermediate\";\r\nimport Advanced from \"./Advanced\";\r\nimport Challenging from \"./Challenging\";\r\nimport './course.css';\r\n\r\nexport const Courses = () => {\r\n return (\r\n
\r\n \r\n

Course List

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

Notice

\r\n
\r\n
    \r\n
  • Each student is expected to have their own laptop or PC. Ipads and Chromebooks are NOT \r\n recommended.
  • \r\n
  • For in-person classes, parents should pack a lunch/snack for their child.
  • \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n\r\n )\r\n}","import React from 'react';\r\nimport { Card, Button } from 'react-bootstrap';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst NotFound = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n Not found\r\n \r\n Oops - we've looked everywhere but couldn't find this.\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default NotFound;","export const Director =\r\n[\r\n {\r\n staffId: 101,\r\n staffName: 'June Wang',\r\n staffTitle: 'Director, Course Coordinator',\r\n image: '/images/home/JuneWang.png',\r\n description: \r\n `June has always dreamed of opening an eductional center for youth. In 2018, she received the opportunity to \r\n be trained in computer programming. This experience ultimately inspired her to create her own \r\n training center. With excellent communication skills and years of management experience, June guarentees \r\n parents and their children an enriching stay at ABAITC.`\r\n\r\n },\r\n \r\n];\r\n\r\nexport const InstructorsLeft = \r\n[\r\n {\r\n staffId: 102,\r\n staffName: 'Frank Bao',\r\n staffTitle: 'Senior Instructor',\r\n image: '/images/home/FrankBao.png',\r\n description: \r\n `Frank has been working as senior software engineer for years and is still enjoying\r\n the IT industry. Graduating from Peking University and moving on towards Cornell University\r\n as a graduate, Frank has a solid background in both Mathematics and Computer Science.`\r\n },\r\n \r\n {\r\n staffId: 103,\r\n staffName: 'Jimmy Lei',\r\n staffTitle: 'Senior Instructor',\r\n image: '/images/home/JimmyLei.png',\r\n description: \r\n `Jimmy graduated from the University of Alberta with both bachelor's and master's degrees in Computing Science.\r\n Currently, he is a senior software developer in a robotic company. \r\n He has an abundance of expericence in paractical and professional programming.\r\n In his spare time, Jimmy is enthusiastic about robotics, AI and electronics (Arduino).`\r\n },\r\n {\r\n staffId: 104,\r\n staffName: 'Tyler Shen',\r\n staffTitle: 'Senior Instructor',\r\n image: '/images/home/TylerShen.png',\r\n description: \r\n `Tyler is an expert of many programming languages, including but not limited to; Python, C/C++, C# \r\n Java, SQL, HTML and much more. After graduating from the University of Alberta, his career in the IT \r\n has sparked a passion in teaching coding to youths.`\r\n\r\n }, \r\n {\r\n staffId: 105,\r\n staffName: 'Jeff Wang',\r\n staffTitle: 'Math Instructor',\r\n image: '/images/home/JeffWang.png',\r\n description: \r\n `Jeff has an incredibly rich background in the world of mathematics. Spending much of his youth competing\r\n in math competitions, Jeff took first place at the Chinese national mathematics competition\r\n in his second year of high school. Jeff graduated from Peking University. No mathematical problem is unsolvable to him.` \r\n },\r\n\r\n {\r\n staffId: 106,\r\n staffName: 'Frank Zhao',\r\n staffTitle: 'Instructor',\r\n image: '/images/home/FrankZhao.png',\r\n description: \r\n `Frank is currently a graduate student at the University of Alberta, continuing his passion and\r\n interest in coding. With a solid understanding of C++ and Python, Frank is eager to share his\r\n knowledge and experience of the programming world.` \r\n },\r\n {\r\n staffId: 107,\r\n staffName: 'Christine Bao',\r\n staffTitle: 'Instructor',\r\n image: '/images/home/ChristineBao.png',\r\n description: \r\n `Christine is currently an undergraduate studying Computer Science at the University of Alberta.\r\n With a resume filled with leadership and tutoring experiences, she is well-equipped to\r\n instruct. She also has an interest in computer graphics and interface design.`\r\n },\r\n {\r\n staffId: 108,\r\n staffName: 'Mingjie Han',\r\n staffTitle: 'Instructor',\r\n image: '/images/home/MingjieHan.png',\r\n description: \r\n `Mingjie graduated from the University of Alberta with both bachelor's and master's degrees.\r\n He is proficient in Python, C++, Robot Operating System (ROS), etc. His interests and experience \r\n include computer vision and neural network powered robotics. `\r\n },\r\n {\r\n staffId: 109,\r\n staffName: 'Kathy Deng',\r\n staffTitle: 'Instructor',\r\n image: '/images/home/KathyDeng.png',\r\n description: \r\n `Dr. Deng was a former university teacher in China. She graduated with a master's degree from \r\n Hunan University and a Ph. D degree from University of Alberta. Dr. Deng has many years of teaching\r\n experience and very strong math background. Dr. Deng won multiple math competition awards when \r\n she was in high school.\r\n `\r\n } \r\n]; \r\n \r\n","import React from \"react\";\r\nimport { Row, Col, Image, Container } from \"react-bootstrap\";\r\nimport { Director, InstructorsLeft } from \"./StaffListTree\";\r\nimport \"./staff.css\";\r\nexport const Staff = ()=> {\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n {Director.map ((june) => \r\n
\r\n
\r\n \r\n

\r\n \r\n

\r\n

{june.staffName}

\r\n
{june.staffTitle}
\r\n

\r\n {june.description} \r\n

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

ABAITC Staff

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

Proud to display the talented
\r\n teaching staff who direct
\r\n and curate each
\r\n course.\r\n

\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {InstructorsLeft.map((staffList) => ( \r\n \r\n \r\n

\r\n \r\n

\r\n

{staffList.staffName}

\r\n
{staffList.staffTitle}
\r\n

\r\n {staffList.description} \r\n

\r\n
\r\n \r\n ))}\r\n\r\n
\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\n","import React, { useContext, useEffect } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport {Container, Card} from 'react-bootstrap';\r\nimport { observer } from 'mobx-react-lite';\r\nimport parse from 'html-react-parser'\r\n\r\nconst Achievements = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {achievements, getAchievements} = rootStore.achievementStore; \r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await getAchievements();\r\n }\r\n loadValues();\r\n }, [getAchievements])\r\n\r\n return (\r\n \r\n {achievements.slice().sort((a, b) => a.date < b.date ? 1 : -1)\r\n .map((achievement, idx) => \r\n \r\n \r\n \r\n \r\n {achievement.title} \r\n \r\n {parse(achievement.description)}\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default observer(Achievements)","import React, {useState, useEffect, useContext} from 'react'\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { EditorState, ContentState, convertToRaw } from 'draft-js';\r\nimport { Editor } from 'react-draft-wysiwyg';\r\nimport draftToHtml from 'draftjs-to-html';\r\nimport htmlToDraft from 'html-to-draftjs';\r\nimport '../../app/layout/editorStyle.css';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\n\r\nconst initialValues = {\r\n title: '',\r\n date: new Date(Date.now()).toISOString().substring(0, 10),\r\n description: ''\r\n};\r\n\r\nconst EditAchievementModal = ({achievement}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {addAchievement, updateAchievement} = rootStore.achievementStore;\r\n const [values, setValues] = useState(initialValues); \r\n const [submitting, setSubmitting] = useState(false);\r\n const [editorState, setEditorState] = useState(EditorState.createEmpty());\r\n const onEditorStateChange = (editState) => {\r\n setEditorState(editState);\r\n };\r\n\r\n useEffect(() => {\r\n if(achievement) {\r\n setValues({\r\n title: achievement.title,\r\n date: (new Date(achievement.date)).toISOString().substring(0, 10),\r\n description: achievement.description\r\n });\r\n const blocksFromHTML = htmlToDraft(achievement.description);\r\n const state = ContentState.createFromBlockArray(\r\n blocksFromHTML.contentBlocks,\r\n blocksFromHTML.entityMap\r\n );\r\n setEditorState(EditorState.createWithContent(state)); \r\n }\r\n }, [achievement]);\r\n\r\n const handleChange = (event) => {\r\n const { name, value } = event.target;\r\n setValues({ ...values, [name]: value });\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n var currentContent = editorState.getCurrentContent();\r\n setSubmitting(true);\r\n if(values.title.length>0 && currentContent) {\r\n var markup = draftToHtml(convertToRaw(currentContent)); \r\n if(achievement) { \r\n updateAchievement(achievement.id, values.title, values.date, markup)\r\n .finally(()=>{\r\n // setSubmitting(false);\r\n });\r\n }\r\n else {\r\n addAchievement(values.title, values.date, markup)\r\n .finally(()=>{\r\n // setSubmitting(false);\r\n })\r\n } \r\n } \r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Title\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n values.title && editorState.getCurrentContent() &&\r\n !submitting && }\r\n {submitting && }\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default EditAchievementModal","import React, { useContext, useEffect } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport {Container, Card, Button} from 'react-bootstrap';\r\nimport { observer } from 'mobx-react-lite';\r\nimport parse from 'html-react-parser'\r\nimport EditAchievementModal from './EditAchievementModal';\r\n\r\nconst AdminAchievements = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {achievements, getAchievements} = rootStore.achievementStore; \r\n const {openModal} = rootStore.modalStore;\r\n const { user } = rootStore.userStore;\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await getAchievements();\r\n }\r\n loadValues();\r\n }, [getAchievements])\r\n\r\n return (\r\n \r\n {user && user.roles.includes('Admin') && (\r\n \r\n )}\r\n {achievements.slice().sort((a, b) => a.date < b.date ? 1 : -1)\r\n .map((achievement, idx) => \r\n \r\n \r\n \r\n \r\n {achievement.title} \r\n {user && user.roles.includes('Admin') && (\r\n openModal(\"Update honor roll (Text)\", , 'modal-pane-3')}> \r\n \r\n )}\r\n \r\n {parse(achievement.description)}\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default observer(AdminAchievements)","import React, {useState, useEffect, useContext} from 'react'\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { EditorState, ContentState, convertToRaw } from 'draft-js';\r\nimport { Editor } from 'react-draft-wysiwyg';\r\nimport draftToHtml from 'draftjs-to-html';\r\nimport htmlToDraft from 'html-to-draftjs';\r\nimport '../../app/layout/editorStyle.css';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\n\r\nconst initialValues = {\r\n title: '',\r\n date: new Date(Date.now()).toISOString().substring(0, 10),\r\n description: ''\r\n};\r\n\r\nconst EditAnnouncementModal = ({announcement}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {addAnnouncement, updateAnnouncement} = rootStore.announcementStore;\r\n const [values, setValues] = useState(initialValues); \r\n const [submitting, setSubmitting] = useState(false);\r\n const [editorState, setEditorState] = useState(EditorState.createEmpty());\r\n const onEditorStateChange = (editState) => {\r\n setEditorState(editState);\r\n };\r\n\r\n useEffect(() => {\r\n if(announcement) {\r\n setValues({\r\n title: announcement.title,\r\n date: (new Date(announcement.date)).toISOString().substring(0, 10),\r\n description: announcement.description\r\n });\r\n const blocksFromHTML = htmlToDraft(announcement.description);\r\n const state = ContentState.createFromBlockArray(\r\n blocksFromHTML.contentBlocks,\r\n blocksFromHTML.entityMap\r\n );\r\n setEditorState(EditorState.createWithContent(state)); \r\n }\r\n }, [announcement]);\r\n\r\n const handleChange = (event) => {\r\n const { name, value } = event.target;\r\n setValues({ ...values, [name]: value });\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n var currentContent = editorState.getCurrentContent();\r\n setSubmitting(true);\r\n if(values.title.length>0 && currentContent) {\r\n var markup = draftToHtml(convertToRaw(currentContent));\r\n if(announcement) {\r\n updateAnnouncement(announcement.id, values.title, markup)\r\n .finally(()=>{\r\n // setSubmitting(false);\r\n });\r\n }\r\n else {\r\n addAnnouncement(values.title, values.date, markup)\r\n .finally(()=>{\r\n // setSubmitting(false);\r\n })\r\n } \r\n } \r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Title\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n values.title && editorState.getCurrentContent() &&\r\n !submitting && }\r\n {submitting && }\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default EditAnnouncementModal","import React, { useContext, useEffect } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport {Container, Card, Button} from 'react-bootstrap';\r\nimport { observer } from 'mobx-react-lite';\r\nimport parse from 'html-react-parser'\r\nimport EditAnnouncementModal from './EditAnnouncementModal';\r\n\r\nconst AdminAnnouncements = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {announcements, getAnnouncements, setActive} = rootStore.announcementStore; \r\n const {openModal} = rootStore.modalStore;\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await getAnnouncements();\r\n }\r\n loadValues();\r\n }, [getAnnouncements])\r\n const handleSetActive = (id: string, active: boolean) => {\r\n setActive(id, active);\r\n }\r\n return (\r\n \r\n \r\n {announcements.slice().sort((a, b) => a.date < b.date ? 1 : -1)\r\n .map((announcement, idx) => \r\n \r\n \r\n \r\n \r\n {announcement.title} \r\n openModal(\"Update Announcement (Text)\", , 'modal-pane-3')}> \r\n \r\n {announcement.active && (\r\n handleSetActive(announcement.id, false)}>\r\n )}\r\n {!announcement.active && (\r\n handleSetActive(announcement.id, true)}> \r\n )} \r\n \r\n {parse(announcement.description)}\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default observer(AdminAnnouncements)","import React, { useState } from 'react';\r\nimport {Alert, ListGroup, Container} from 'react-bootstrap';\r\n\r\ninterface IProps {\r\n errors: any;\r\n text: string;\r\n}\r\n\r\nexport const ErrorMessage: React.FC = ({ errors, text }) => {\r\n const [show, setShow] = useState(true);\r\n return (\r\n \r\n {show && (\r\n setShow(false)} dismissible>\r\n { text }\r\n {Object.keys(errors).length > 0 && (\r\n \r\n {Object.values(errors).flat().map((err: any, i) => (\r\n { err }\r\n ))}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n","import React, { useState, useContext } from 'react'\r\nimport { Form, Button, Image, Row, Col, Spinner } from 'react-bootstrap'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { ErrorMessage } from '../../app/common/form/ErrorMessage';\r\n\r\nconst initialValues = {\r\n phone: '',\r\n email: '',\r\n topic: '',\r\n description: ''\r\n};\r\n\r\nconst verificationError = {\r\n emptyPhoneOrEmail: false,\r\n emptyDescription: false\r\n};\r\n\r\nconst intialSubmitErrorInfo = {\r\n errors: [],\r\n text: ''\r\n};\r\n\r\nexport const Contact = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {addInquiry} = rootStore.inquiryStore;\r\n const { openModal} = rootStore.modalStore;\r\n const [submitting, setSubmitting] = useState(false);\r\n const [submitError, setSubmitError] = useState(intialSubmitErrorInfo); \r\n const [values, setValues] = useState(initialValues);\r\n const [valueErrors, setValueErrors] = useState(verificationError);\r\n const handleChange = (event: any) => {\r\n const { name, value } = event.target;\r\n setValues({ ...values, [name]: value });\r\n }\r\n const handleSubmit = (event: any) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n setSubmitError(intialSubmitErrorInfo);\r\n const emptyPhoneOrEmail = values.email.length < 5 ||\r\n values.phone.length < 10;\r\n const emptyDescription = values.description.length < 10;\r\n setValueErrors({emptyPhoneOrEmail, emptyDescription});\r\n if(emptyPhoneOrEmail || emptyDescription){ \r\n }\r\n else{\r\n setSubmitting(true);\r\n addInquiry(values.phone, values.email, values.topic, values.description)\r\n .catch(error => {\r\n if(error.data && error.statusText){\r\n const submitErrorInfo1 = {\r\n errors: error.data.errors, \r\n text: error.statusText\r\n };\r\n setSubmitError(submitErrorInfo1); \r\n }\r\n else {\r\n const submitErrorInfo2 = {\r\n errors: [], \r\n text: \"Network Error\"\r\n };\r\n setSubmitError(submitErrorInfo2); \r\n }\r\n setSubmitting(false);\r\n }).finally(() => {\r\n setSubmitting(false);\r\n if(!submitError.text){\r\n openModal(\"Question sent\", \"Your question has been sent. We will contact you soon\");\r\n setValues(initialValues);\r\n }\r\n }); \r\n }\r\n }\r\n return (\r\n
\r\n\r\n
\r\n
We're always happy to help.
\r\n

Contact Us

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

Contact Info

\r\n
\r\n
\r\n
\r\n\r\n
Contact Director and Course Coordinator June Wang.
\r\n
\r\n
\r\n Let us know which course you and your child are intrested in and \r\n we will walk you through the enrollment process as well as\r\n payment detail. \r\n

\r\n We also offer course consultations to match your child with the class \r\n best suited to their skill level. \r\n
\r\n
\r\n \r\n \r\n
  \r\n (587) 926-9005 \r\n
\r\n \r\n \r\n
  \r\n hanjun_wang@hotmail.com \r\n
\r\n \r\n
\r\n \r\n

\r\n

\r\n WeChat      \r\n \"fengyeyingxue\" \r\n

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

Questions?

\r\n
\r\n
\r\n
\r\n\r\n
Have any questions? We're happy to help.
\r\n\r\n
\r\n\r\n
\r\n \r\n Phone #\r\n \r\n \r\n \r\n \r\n\r\n \r\n Email Address\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n
    \r\n {valueErrors.emptyPhoneOrEmail && (\r\n
  • Either Phone or Email is required
  • \r\n )}\r\n {valueErrors.emptyDescription && (\r\n
  • question is required
  • \r\n )}\r\n
\r\n {submitError.text && (\r\n \r\n )}\r\n \r\n {!submitting && }\r\n {submitting && }\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n )\r\n}\r\n","import React, { useContext } from 'react'\r\nimport { RouteProps, RouteComponentProps, Route, Redirect } from 'react-router-dom'\r\nimport { RootStoreContext } from '../stores/rootStore'\r\nimport { observer } from 'mobx-react-lite';\r\n\r\ninterface IProps extends RouteProps {\r\n component: React.ComponentType>\r\n}\r\n\r\nexport const PrivateRoute: React.FC = ({component: Component, ...rest}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {isLoggedIn} = rootStore.userStore;\r\n\r\n return (\r\n isLoggedIn ? : }\r\n />\r\n )\r\n}\r\n\r\nexport default observer(PrivateRoute);\r\n","export interface IUser {\r\n id: string;\r\n userName: string;\r\n firstName: string;\r\n lastName: string;\r\n city: string;\r\n email: string;\r\n token: string;\r\n roles: string[];\r\n}\r\n\r\nexport interface IUserFormValues {\r\n email: string;\r\n password: string;\r\n firstName?: string;\r\n lastName?: string;\r\n}\r\n\r\nexport interface IChangePasswordValues {\r\n oldpassword: string;\r\n newpassowrd: string;\r\n repassword: string;\r\n}\r\n\r\nexport interface ICourseBase{\r\n id: string;\r\n name: string;\r\n}\r\n\r\nexport interface IAppUser {\r\n id: string;\r\n userName: string;\r\n firstName: string;\r\n lastName: string;\r\n city: string;\r\n email: string;\r\n age: string;\r\n grade: string;\r\n parentEmail: string;\r\n parentFirstName: string;\r\n parentLastName: string;\r\n phone: string;\r\n wechat: string;\r\n introduction: string;\r\n active: boolean;\r\n roles: string[];\r\n studentCourses: ICourseBase[],\r\n teacherCourses: ICourseBase[] \r\n}\r\n\r\nexport class AppUser implements IAppUser {\r\n id: string = '';\r\n userName: string = '';\r\n firstName: string = '';\r\n lastName: string = '';\r\n city: string = '';\r\n email: string = '';\r\n age: string = '';\r\n grade: string = '';\r\n parentEmail: string = '';\r\n parentFirstName: string = '';\r\n parentLastName: string = '';\r\n phone: string = '';\r\n wechat: string = '';\r\n introduction: string = '';\r\n active: boolean = true;\r\n roles: string[] = [];\r\n studentCourses: ICourseBase[] = [];\r\n teacherCourses: ICourseBase[] = [];\r\n constructor(init?: AppUser) {\r\n Object.assign(this, init);\r\n } \r\n}\r\n\r\nexport interface IUserInfo {\r\n id: string; \r\n userName: string;\r\n firstName: string;\r\n lastName: string;\r\n city: string;\r\n age: string;\r\n grade: string;\r\n parentEmail: string;\r\n parentFirstName: string;\r\n parentLastName: string; \r\n phone: string;\r\n wechat: string;\r\n introduction: string;\r\n active: boolean;\r\n roles: string[]; \r\n}\r\nexport class UserInfo implements IUserInfo {\r\n id: string = ''; \r\n userName: string = '';\r\n firstName: string = '';\r\n lastName: string = '';\r\n city: string = '';\r\n age: string = '';\r\n grade: string = '';\r\n parentEmail: string = '';\r\n parentFirstName: string = '';\r\n parentLastName: string = ''; \r\n phone: string = '';\r\n wechat: string = '';\r\n introduction: string = '';\r\n active: boolean = true;\r\n roles: string[] = []; \r\n}\r\n\r\nexport interface IUserProfile {\r\n id: string;\r\n userName: string;\r\n firstName: string;\r\n lastName: string;\r\n city: string;\r\n age: string;\r\n grade: string;\r\n parentEmail: string;\r\n parentFirstName: string;\r\n parentLastName: string; \r\n phone: string;\r\n wechat: string;\r\n introduction: string;\r\n}\r\nexport class UserProfile implements IUserProfile {\r\n id: string = '';\r\n userName: string = '';\r\n firstName: string = '';\r\n lastName: string = '';\r\n city: string = '';\r\n age: string = '';\r\n grade: string = '';\r\n parentEmail: string = '';\r\n parentFirstName: string = '';\r\n parentLastName: string = ''; \r\n phone: string = '';\r\n wechat: string = '';\r\n introduction: string = '';\r\n}","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { AppUser } from '../../app/models/user';\r\nimport {Container, Row, Col, Form, Button, Spinner} from 'react-bootstrap';\r\nimport 'react-confirm-alert/src/react-confirm-alert.css'; // Import css\r\n\r\nconst UserModal = ({userName}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { loadUser, setUserInfo} = rootStore.usersStore;\r\n const [user, setUser] = useState(new AppUser());\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n setLoading(true);\r\n var u = await loadUser(userName);\r\n setUser(new AppUser(u)); \r\n setLoading(false);\r\n }\r\n if (userName) {\r\n loadValues();\r\n }\r\n }, [loadUser, userName]);\r\n\r\n const handleChange = (event) => {\r\n const { name, value, checked } = event.target; \r\n if (name === \"active\") {\r\n setUser({...user, [name]: checked}); \r\n }\r\n else{\r\n setUser({...user, [name]: value}); \r\n }\r\n };\r\n\r\n const handleSubmit = () => {\r\n var userInfo = {\r\n userName: user.userName,\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n city: user.city,\r\n age: user.age,\r\n grade: user.grade,\r\n phone: user.phone,\r\n wechat: user.wechat,\r\n active: user.active, \r\n parentFirstName: user.parentFirstName,\r\n parentLastName: user.parentLastName,\r\n introduction: user.introduction\r\n };\r\n\r\n setUserInfo(userInfo);\r\n };\r\n\r\n return (\r\n \r\n \r\n

Profile of {user.firstName + ' ' + user.lastName}

\r\n
\r\n
\r\n \r\n \r\n \r\n Email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Age\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Grade\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Phone\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Wechat\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n City\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Parent Email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Parent FirtName\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Parent LastName\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Introduction\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!loading && }\r\n {loading && }\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default UserModal;\r\n","import React, {useState, useContext} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\n\r\nconst SetParentModal = ({userName, parentEmail, parentFirstName, parentLastName}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {setParent} = rootStore.usersStore;\r\n const [newParentEmail, setNewParentEmail] = useState(parentEmail);\r\n const [newParentFirstName, setNewParentFirstName] = useState(parentFirstName);\r\n const [newParentLastName, setNewParentLastName] = useState(parentLastName);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [isValid, setIsValid] = useState(false);\r\n\r\n const handleChange = (event) => {\r\n const {name, value} = event.target;\r\n if(name === \"parentEmail\"){\r\n setNewParentEmail(value);\r\n if(value.includes(\"@\") && !value.includes(\" \")\r\n && newParentFirstName && newParentLastName){\r\n setIsValid(true);\r\n }\r\n else {\r\n setIsValid(false);\r\n }\r\n }\r\n else if(name === \"parentFirstName\"){\r\n setNewParentFirstName(value);\r\n if(newParentEmail.includes(\"@\") && !newParentEmail.includes(\" \")\r\n && value && newParentLastName){\r\n setIsValid(true);\r\n }\r\n else {\r\n setIsValid(false);\r\n } \r\n } else if(name === \"parentLastName\"){\r\n setNewParentLastName(value);\r\n if(newParentEmail.includes(\"@\") && !newParentEmail.includes(\" \")\r\n && newParentFirstName && value){\r\n setIsValid(true);\r\n }\r\n else {\r\n setIsValid(false);\r\n } \r\n }\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n setSubmitting(true);\r\n setParent(userName, newParentEmail, newParentFirstName, newParentLastName);\r\n setSubmitting(false);\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Parent Email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Parent First Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Parent Last Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isValid && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SetParentModal","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport {Container, Card} from 'react-bootstrap';\r\n\r\nconst initialValues = [];\r\n\r\nconst CoursesTakenModal = ({userName}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {getStudentCourses} = rootStore.usersStore;\r\n const [takenCourses, setTakenCourses] = useState(initialValues);\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n var courses = await getStudentCourses(userName);\r\n if(courses) {\r\n setTakenCourses(courses);\r\n }\r\n }\r\n if(userName) {\r\n loadValues();\r\n }\r\n }, [getStudentCourses, userName]);\r\n\r\n return (\r\n \r\n {takenCourses.slice().sort((a, b) => {\r\n if(a.startDate > b.startDate) return -1;\r\n else return 1;\r\n })\r\n .map((course, index) => \r\n \r\n \r\n {course.courseName}\r\n \r\n Start Date: {new Date(course.startDate).toISOString().substring(0, 10)}\r\n \r\n \r\n End Date: {new Date(course.endDate).toISOString().substring(0, 10)}\r\n \r\n \r\n {course.description}\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default CoursesTakenModal","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport {Container, Card} from 'react-bootstrap';\r\n\r\nconst initialValues = [];\r\n\r\nconst CheckChildModal = ({userName}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {getChildCourses} = rootStore.usersStore; \r\n const [takenCourses, setTakenCourses] = useState(initialValues); \r\n \r\n useEffect(() => {\r\n const loadValues = async() => {\r\n var courses = await getChildCourses(userName);\r\n if(courses) {\r\n setTakenCourses(courses);\r\n }\r\n }\r\n if(userName) {\r\n loadValues();\r\n }\r\n }, [getChildCourses, userName]);\r\n\r\n return (\r\n \r\n {takenCourses.slice().sort((a, b) => {\r\n if(a.startDate > b.startDate) return -1;\r\n else return 1;\r\n })\r\n .map((course, index) => \r\n \r\n \r\n \r\n student: {course.studentFullName}\r\n \r\n \r\n course: {course.courseName}\r\n \r\n \r\n Start Date: {new Date(course.startDate).toISOString().substring(0, 10)}\r\n \r\n \r\n End Date: {new Date(course.endDate).toISOString().substring(0, 10)}\r\n \r\n \r\n {course.description}\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default CheckChildModal","import React, {useState, useEffect, useContext} from 'react'\r\nimport {Container, Form, Row, Button} from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\n\r\nconst allRoles = [\"Admin\", \"CourseAdmin\", \"Teacher\", \"Assistant\", \"Student\", \"Parent\"];\r\n\r\nconst SetRolesModal = ({userName, roles}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const [roleValues, setRoleValues] = useState(new Map());\r\n const {setUserRoles} = rootStore.usersStore;\r\n const [isChanged, setIsChanged] = useState(false);\r\n\r\n useEffect(()=> {\r\n var rValues = new Map();\r\n allRoles.forEach(role => {\r\n rValues.set(role, roles.indexOf(role) >= 0);\r\n });\r\n setRoleValues(rValues); \r\n }, [roles]);\r\n\r\n const handleRolesChange = (event) => {\r\n const { name, checked } = event.target; \r\n roleValues.set(name, checked);\r\n setIsChanged(true);\r\n };\r\n\r\n const handleSubmit = () => {\r\n var userRoles= [];\r\n roleValues.forEach((value, key) => {\r\n if (value) {\r\n userRoles.push(key);\r\n }\r\n }); \r\n setUserRoles(userName, userRoles);\r\n }\r\n return (\r\n \r\n
\r\n
\r\n

Roles

\r\n {roleValues.size > 0 &&\r\n allRoles.map(role => ( \r\n \r\n ))}\r\n
\r\n \r\n {isChanged && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SetRolesModal","import React, {useState, useContext} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\n\r\nconst ResetPassword = ({userName}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {resetPassword} = rootStore.usersStore;\r\n const [password, setPassword] = useState('');\r\n const [rePassword, setRePassword] = useState('');\r\n const [submitting, setSubmitting] = useState(false);\r\n const [isValid, setIsValid] = useState(false);\r\n\r\n const handleChange = (event) => {\r\n const {name, value} = event.target;\r\n if (name === \"password\"){\r\n setPassword(value);\r\n if (value.length < 8 ||\r\n value !== rePassword){\r\n setIsValid(false);\r\n }\r\n else{\r\n setIsValid(true);\r\n }\r\n }\r\n else if(name === \"rePassword\"){\r\n setRePassword(value);\r\n if (password.length < 8 ||\r\n password !== value){\r\n setIsValid(false);\r\n }\r\n else{\r\n setIsValid(true);\r\n }\r\n }\r\n }\r\n const handleSubmit = (event) => {\r\n setSubmitting(true);\r\n resetPassword(userName, password);\r\n setSubmitting(false);\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Password (8+ characters)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Confirm password\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isValid && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default ResetPassword\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { LoadingComponent } from '../../app/layout/LoadingComponent';\r\nimport { observer } from 'mobx-react-lite';\r\nimport {Container, Table, Row, Col, Form} from 'react-bootstrap';\r\nimport UserModal from './UserModal';\r\nimport SetParentModal from './SetParentModal';\r\nimport CoursesTakenModal from './CoursesTakenModal';\r\nimport CheckChildModal from './CheckChildModal';\r\nimport SetRolesModal from './SetRolesModal';\r\nimport \"./users.css\";\r\nimport ResetPasswordModal from './ResetPasswordModal';\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport 'react-confirm-alert/src/react-confirm-alert.css'; // Import css\r\n\r\nconst UsersForm = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { users, loadUsers, loading, setUserActive, removeUser } = rootStore.usersStore;\r\n const [searchName, setSearchName] = useState('');\r\n const [searchEmail, setSearchEmail] = useState('');\r\n const [searchRole, setSearchRole] = useState('');\r\n const [searchActive, setSearchActive] = useState(true);\r\n const { openModal} = rootStore.modalStore;\r\n\r\n useEffect(() => {\r\n loadUsers();\r\n }, [loadUsers]);\r\n\r\n const filterNameChange = (event: any) => {\r\n setSearchName(event.target.value);\r\n };\r\n\r\n const filterEmailChange = (event: any) => {\r\n setSearchEmail(event.target.value);\r\n };\r\n\r\n const filterRoleChange = (event: any) => {\r\n setSearchRole(event.target.value);\r\n };\r\n\r\n const filterActiveChange = (event: any) => {\r\n setSearchActive(event.target.checked);\r\n };\r\n\r\n const filteredUsers = () => {\r\n return users.filter(user => {\r\n if(searchName === \"\"){\r\n return true;\r\n } else if(user.firstName.toLowerCase().includes(searchName.toLowerCase()) ||\r\n user.lastName.toLowerCase().includes(searchName.toLowerCase())){\r\n return true;\r\n } else{\r\n return false;\r\n }\r\n })\r\n .filter(user => {\r\n if(searchEmail === \"\"){\r\n return true;\r\n } else if(user.email.toLowerCase().includes(searchEmail.toLowerCase())){\r\n return true;\r\n } else{\r\n return false;\r\n }\r\n }) \r\n .filter(user=>{\r\n if(searchRole === \"\"){\r\n return true;\r\n } else {\r\n return user.roles.includes(searchRole);\r\n }\r\n })\r\n .filter(user=>{\r\n if(searchActive){\r\n return user.active;\r\n } else{\r\n return true;\r\n }\r\n })\r\n .map(user=> ({\r\n id: user.id,\r\n fullName: user.firstName + ' ' + user.lastName,\r\n userName: user.userName,\r\n email: user.email,\r\n age: user.age,\r\n parentFirstName: user.parentFirstName,\r\n parentLastName: user.parentLastName,\r\n parentFullName: (user.parentFirstName == null ? '':user.parentFirstName) \r\n + ' ' + (user.parentLastName == null ? '' : user.parentLastName),\r\n parentEmail: user.parentEmail,\r\n phone: user.phone,\r\n wechat: user.wechat,\r\n city: user.city,\r\n roles: user.roles.toString(),\r\n active: user.active? 'Yes' : 'No'\r\n }));\r\n };\r\n\r\n const handleSetActive = (userName: string, active: boolean) => {\r\n setUserActive(userName, active);\r\n }\r\n\r\n const handleDeleteUser = (userName: string, fullName: string) => {\r\n confirmAlert({\r\n title: 'Confirm to delete',\r\n message: `Are you sure you want to delete user ${fullName}?`,\r\n buttons: [\r\n {\r\n label: 'Yes',\r\n onClick: () => {\r\n removeUser(userName) \r\n } \r\n },\r\n {\r\n label: 'No',\r\n onClick: () => {}\r\n }\r\n ]\r\n }) \r\n }\r\n\r\n if (loading) return ;\r\n return (\r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Role\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredUsers().map(user=>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
Full NameEmailAgeParent Full NameParent EmailPhoneWechatCityRoles  Active  Operations
\r\n openModal(`Profile of ${user.fullName}`, , 'modal-pane-1')}>\r\n {user.fullName} \r\n \r\n {user.email} \r\n {user.age}{user.parentFullName}\r\n {user.roles.includes(\"Student\") && ( openModal(`Set Parent for ${user.fullName}`, \r\n , 'modal-pane-1')}> \r\n \r\n )} \r\n {user.parentEmail}{user.phone}{user.wechat}{user.city}{user.roles}\r\n openModal(`Set Roles for ${user.fullName}`, , 'modal-pane-1')}> \r\n \r\n {user.roles.includes(\"Student\") && (\r\n openModal(`Courses taken by ${user.fullName}`, , 'modal-pane-1')}> \r\n \r\n )}\r\n {user.roles.includes(\"Parent\") && (\r\n openModal(`Courses taken by ${user.fullName}'s child`, , 'modal-pane-1')}> \r\n \r\n )} \r\n {user.active}\r\n {user.active === \"Yes\" && (\r\n handleSetActive(user.userName, false)}>\r\n )}\r\n {user.active !== \"Yes\" && (\r\n handleSetActive(user.userName, true)}> \r\n )} \r\n \r\n openModal(`Reset password for ${user.fullName}`, , 'modal-pane-1')}> \r\n \r\n handleDeleteUser(user.userName, user.fullName)}> \r\n \r\n
\r\n

Total Users: {filteredUsers().length}

\r\n
\r\n );\r\n};\r\n\r\nexport default observer(UsersForm);\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { AppUser, UserInfo } from '../../app/models/user';\r\nimport {Container, Row, Col, Form, Button, Spinner} from 'react-bootstrap';\r\nimport ResetPasswordModal from './ResetPasswordModal';\r\nimport CoursesTakenModal from './CoursesTakenModal';\r\nimport SetParentModal from './SetParentModal';\r\nimport CheckChildModal from './CheckChildModal';\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport 'react-confirm-alert/src/react-confirm-alert.css'; // Import css\r\n\r\ninterface UserParams {\r\n userName: string;\r\n}\r\n\r\nconst allRoles = [\"Admin\", \"CourseAdmin\", \"Teacher\", \"Assistant\", \"Student\", \"Parent\"];\r\n\r\nconst UserForm: React.FC> = ({\r\n match,\r\n history\r\n}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { openModal} = rootStore.modalStore;\r\n const { loadUser, setUserInfo, removeUser } = rootStore.usersStore;\r\n const [user, setUser] = useState(new AppUser());\r\n const [roleValues, setRoleValues] = useState>(\r\n new Map()\r\n );\r\n const [loading, setLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n setLoading(true);\r\n var u = await loadUser(match.params.userName);\r\n setUser(new AppUser(u));\r\n var rValues = new Map();\r\n allRoles.forEach(role => {\r\n rValues.set(role, u!.roles.indexOf(role) >= 0);\r\n });\r\n setRoleValues(rValues); \r\n setLoading(false);\r\n }\r\n if (match.params.userName) {\r\n loadValues();\r\n }\r\n }, [loadUser, match.params.userName]);\r\n\r\n const handleRolesChange = (event: any) => {\r\n const { name, checked } = event.target; \r\n roleValues.set(name, checked);\r\n };\r\n\r\n const handleChange = (event: any) => {\r\n const { name, value, checked } = event.target; \r\n if (name === \"active\") {\r\n setUser({...user, [name]: checked}); \r\n }\r\n else{\r\n setUser({...user, [name]: value}); \r\n }\r\n };\r\n\r\n const handleSubmit = () => {\r\n var userRoles: string[] = [];\r\n roleValues.forEach((value: boolean, key: string) => {\r\n if (value) {\r\n userRoles.push(key);\r\n }\r\n });\r\n var userInfo : UserInfo = {\r\n id: user.id,\r\n userName: user.userName,\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n city: user.city,\r\n age: user.age,\r\n grade: user.grade,\r\n phone: user.phone,\r\n wechat: user.wechat,\r\n parentEmail: user.parentEmail,\r\n parentFirstName: user.parentFirstName,\r\n parentLastName: user.parentLastName,\r\n introduction: user.introduction,\r\n active: user.active,\r\n roles: userRoles\r\n };\r\n\r\n setUserInfo(userInfo);\r\n };\r\n\r\n const handleDeleteUser = (userName: any) => {\r\n confirmAlert({\r\n title: 'Confirm to delete',\r\n message: 'Are you sure you want to delete it?',\r\n buttons: [\r\n {\r\n label: 'Yes',\r\n onClick: () => {\r\n removeUser(userName) \r\n } \r\n },\r\n {\r\n label: 'No',\r\n onClick: () => {}\r\n }\r\n ]\r\n }) \r\n }\r\n\r\n return (\r\n \r\n \r\n

Profile of {user.firstName + ' ' + user.lastName}

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n Email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Age\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Grade\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Phone\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Wechat\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n City\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Parent Email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Parent FirtName\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Parent LastName\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Introduction\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n

Roles

\r\n {roleValues.size > 0 &&\r\n allRoles.map(role => ( \r\n \r\n ))}\r\n
\r\n \r\n {!loading && }\r\n {loading && }\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default observer(UserForm);\r\n","import React from 'react';\r\nimport { Row, Col, Form } from 'react-bootstrap';\r\n\r\nconst ClassInfo = ({courseInfo}) => {\r\n const convertLevel = (level) => {\r\n if(level === 1) return \"Beginner\";\r\n else if(level === 2) return \"Intermediate\";\r\n else if(level === 3) return \"Advanced\";\r\n else return \"Challenging\";\r\n };\r\n\r\n return (\r\n
\r\n
\r\n

{courseInfo.name}

\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n Subject Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Subject Code\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Level\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Course Code\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Session\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Start Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n End Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Day of the week\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Time period\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n # of Lessons\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Teacher\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Description\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ClassInfo","import React, { useContext, useEffect} from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport ClassInfo from './ClassInfo';\r\nimport { Container, Table } from 'react-bootstrap';\r\n\r\nconst ClassesForm = () => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {courses, loadActiveCourses} = rootStore.coursesStore;\r\n const { openModal} = rootStore.modalStore;\r\n\r\n useEffect(() => {\r\n loadActiveCourses();\r\n }, [loadActiveCourses])\r\n\r\n const convertLevel = (level : number) => {\r\n if(level === 1) return \"Beginner\";\r\n else if(level === 2) return \"Intermediate\";\r\n else if(level === 3) return \"Advanced\";\r\n else return \"Challenging\";\r\n };\r\n\r\n return ( \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {courses &&\r\n courses.map(course => (\r\n {\r\n openModal('Class Info', , 'modal-pane-3')}}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
CodeNameLevelStart DateEnd DateScheduled TimeTeacher
{course.courseCode}{course.courseName}{convertLevel(course.subject!.level)}{new Date(course.startDate).toISOString().substring(0, 10)}{new Date(course.endDate).toISOString().substring(0, 10)}{course.dayOfTheWeek + ' ' + course.timePeriod}{course.teacher!.firstName + ' ' + course.teacher!.lastName}
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default observer(ClassesForm)\r\n","import React from 'react';\r\nimport GoogleLogin from 'react-google-login/dist/google-login';\r\nimport {Button} from 'react-bootstrap';\r\ninterface IProps {\r\n onSuccess: (response: any) => void;\r\n onFailure: (response: any) => void;\r\n loading: boolean;\r\n}\r\n\r\nconst GoogleLoginSegment : React.FC = ({onSuccess, onFailure, loading}) => {\r\n return (\r\n
\r\n (\r\n !loading && \r\n )}\r\n buttonText=\"Login\"\r\n isSignedIn={false}\r\n onSuccess={onSuccess}\r\n onFailure={onFailure}\r\n cookiePolicy={'single_host_origin'}\r\n />\r\n
\r\n )\r\n}\r\n\r\nexport default GoogleLoginSegment\r\n","import React, { useContext, useState } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { ErrorMessage } from '../../app/common/form/ErrorMessage';\r\nimport { observer } from 'mobx-react-lite';\r\nimport GoogleLoginSegment from './GoogleLoginSegment';\r\nimport { IErrorInfo } from '../../app/models/errorInfo';\r\n\r\nconst initialValues = {\r\n email: '',\r\n password: ''\r\n};\r\nconst verificationError = {\r\n invalidEmail: false,\r\n emptyPassword: false\r\n};\r\nconst intialSubmitErrorInfo: IErrorInfo = {\r\n errors: [],\r\n text: ''\r\n};\r\n\r\nconst LoginForm = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { login, gLogin, gLoading } = rootStore.userStore;\r\n const [values, setValues] = useState(initialValues);\r\n const [valueErrors, setValueErrors] = useState(verificationError);\r\n const [submitting, setSubmitting] = useState(false); \r\n const [submitError, setSubmitError] = useState(intialSubmitErrorInfo);\r\n const onFailure = (error: any) => {\r\n console.log(error);\r\n };\r\n const handleChange = (event: any) => {\r\n const { name, value } = event.target;\r\n setValues({ ...values, [name]: value });\r\n };\r\n const handleSubmit = (event: any): void => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n setSubmitError(intialSubmitErrorInfo);\r\n const invalidEmail = values.email.length === 0;\r\n const emptyPassword = values.password.length === 0;\r\n setValueErrors({...valueErrors, invalidEmail, emptyPassword});\r\n if(invalidEmail || emptyPassword) {\r\n\r\n }\r\n else {\r\n setSubmitting(true); \r\n login(values).catch(error => {\r\n if(error.data && error.statusText){\r\n const submitErrorInfo1 = {\r\n errors: error.data.errors, \r\n text: error.statusText\r\n };\r\n setSubmitError(submitErrorInfo1);\r\n }\r\n else {\r\n const submitErrorInfo3 = {\r\n errors: [], \r\n text: \"Login Failed\"\r\n };\r\n setSubmitError(submitErrorInfo3); \r\n } \r\n }).finally(() => {\r\n setSubmitting(false);\r\n }); \r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Password\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {valueErrors.invalidEmail && (\r\n
  • Empty or invalid email
  • \r\n )}\r\n {valueErrors.emptyPassword && (\r\n
  • Empty Password
  • \r\n )}\r\n
\r\n {submitError.text && (\r\n \r\n )} \r\n \r\n {!submitting && }\r\n {submitting && }\r\n \r\n \r\n \r\n
\r\n \r\n \r\n OR\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default observer(LoginForm);\r\n","import React, { useContext, useState, useEffect} from 'react';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { ErrorMessage } from '../../app/common/form/ErrorMessage';\r\n\r\nconst initialValues = {\r\n firstName: '',\r\n lastName: '',\r\n city: 'Edmonton',\r\n email: '',\r\n password: '',\r\n rePassword: '',\r\n};\r\nconst verificationError = {\r\n emptyField: false,\r\n invalidEmail: false,\r\n invalidPassword: false,\r\n rePasswordNotMatch: false\r\n};\r\nconst intialSubmitErrorInfo = {\r\n errors: [],\r\n text: ''\r\n};\r\n\r\nexport const RegisterForm = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { register } = rootStore.userStore;\r\n const [values, setValues] = useState(initialValues);\r\n const [valueErrors, setValueErrors] = useState(verificationError);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [submitError, setSubmitError] = useState(intialSubmitErrorInfo);\r\n useEffect(() => {}, [values, submitting]);\r\n\r\n const handleChange = (event: any) => {\r\n const { name, value } = event.target;\r\n setValues({ ...values, [name]: value });\r\n };\r\n const handleSubmit = (event: any): void => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n setSubmitError(intialSubmitErrorInfo);\r\n const emptyField = values.firstName.length === 0 || \r\n values.lastName.length === 0 || \r\n values.city.length === 0 || \r\n values.email.length === 0;\r\n const invalidEmail = values.email.indexOf('@') < 0 || values.email.indexOf(' ') > 0;\r\n const invalidPassword = values.password.length < 8;\r\n const rePasswordNotMatch = values.password !== values.rePassword; \r\n setValueErrors({...valueErrors, emptyField, invalidEmail, invalidPassword, rePasswordNotMatch}); \r\n if (emptyField || \r\n invalidEmail || \r\n invalidPassword || \r\n rePasswordNotMatch) {\r\n }\r\n else{\r\n setSubmitting(true);\r\n register(values).catch(error => {\r\n if(error.data && error.statusText){\r\n const submitErrorInfo1 = {\r\n errors: error.data.errors, \r\n text: error.statusText\r\n };\r\n setSubmitError(submitErrorInfo1);\r\n }\r\n else{\r\n const submitErrorInfo2 = {\r\n errors: [], \r\n text: \"Registration Failed\"\r\n };\r\n setSubmitError(submitErrorInfo2); \r\n } \r\n }).finally(() => {\r\n setSubmitting(false);\r\n }); \r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n City\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Password (8+ characters)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Confirm password\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {valueErrors.emptyField && (\r\n
  • Empty Field(s)
  • \r\n )}\r\n {valueErrors.invalidEmail && (\r\n
  • Invalid Email
  • \r\n )}\r\n {valueErrors.invalidPassword && (\r\n
  • Invalid Password
  • \r\n )}\r\n {valueErrors.rePasswordNotMatch && (\r\n
  • Passwords do not match
  • \r\n )}\r\n
\r\n {submitError.text && (\r\n \r\n )}\r\n \r\n {!submitting && }\r\n {submitting && }\r\n \r\n \r\n
\r\n );\r\n};\r\n","import React, {useState, useContext} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\n\r\nexport const ChangePasswordModal = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { changePassword } = rootStore.userStore;\r\n const [oldPassword, setOldPassword] = useState(''); \r\n const [password, setPassword] = useState('');\r\n const [rePassword, setRePassword] = useState('');\r\n const [submitting, setSubmitting] = useState(false);\r\n const [isValid, setIsValid] = useState(false);\r\n\r\n const handleChange = (event) => {\r\n const {name, value} = event.target;\r\n if (name === \"oldPassword\") {\r\n setOldPassword(value);\r\n if(value.length < 8) setIsValid(false);\r\n }\r\n else if (name === \"password\"){\r\n setPassword(value);\r\n if (value.length < 8 ||\r\n value !== rePassword){\r\n setIsValid(false);\r\n }\r\n else{\r\n setIsValid(true);\r\n }\r\n }\r\n else if(name === \"rePassword\"){\r\n setRePassword(value);\r\n if (password.length < 8 ||\r\n password !== value){\r\n setIsValid(false);\r\n }\r\n else{\r\n setIsValid(true);\r\n }\r\n }\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n setSubmitting(true);\r\n changePassword(oldPassword, password);\r\n setSubmitting(false);\r\n } \r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Old Password\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Password (8+ characters)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Confirm password\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isValid && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n};\r\n\r\nexport default ChangePasswordModal","import React, { useContext, useEffect, Fragment } from 'react';\r\nimport { Navbar, Nav, NavDropdown} from 'react-bootstrap';\r\nimport { NavLink, Link } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport LoginForm from '../user/LoginForm';\r\nimport { RegisterForm } from '../user/RegisterForm';\r\n\r\nimport { observer } from 'mobx-react-lite';\r\nimport ChangePasswordModal from '../user/ChangePasswordModal';\r\n\r\ninterface IProps {\r\n children: JSX.Element;\r\n}\r\n\r\nconst NavBarDesktop: React.FC = ({ children }) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { isLoggedIn, user, logout } = rootStore.userStore;\r\n const {inquiries, getInquires} = rootStore.inquiryStore;\r\n const {questions, taQuestions, getQuestions, getTAQuestions} = rootStore.qaStore;\r\n const { openModal} = rootStore.modalStore;\r\n const token = window.localStorage.getItem('jwt');\r\n\r\n useEffect(() => {\r\n // get inquiries only when user is admin\r\n if(user && user.roles.includes('Admin')){\r\n getInquires();\r\n }\r\n if(user && user.roles.includes('Teacher')){\r\n getQuestions();\r\n }\r\n if(user && user.roles.includes('Assistant')){\r\n getTAQuestions();\r\n }\r\n }, [getInquires, getQuestions, getTAQuestions, user]);\r\n\r\n return (\r\n \r\n \r\n \r\n {' '}\r\n ABAITC\r\n \r\n \r\n \r\n
} id=\"admin\" renderMenuOnMount={true}>\r\n Users \r\n Inquiries\r\n Announcements \r\n Honor Rolls \r\n \r\n ) : (\r\n \r\n Users \r\n Inquiries \r\n Announcements \r\n Honor Rolls \r\n \r\n ))} \r\n {user && user.roles.includes('CourseAdmin') && ( \r\n \r\n Subjects \r\n Classes \r\n \r\n )} \r\n {user && user.roles.includes('Teacher') && (\r\n questions.some(x=>!x.viewed) ? ( \r\n Teacher \r\n
} id=\"teacher\" renderMenuOnMount={true}>\r\n Classes\r\n Topics\r\n Latest Questions\r\n \r\n ) : (\r\n \r\n Classes\r\n Topics\r\n Latest Questions\r\n \r\n ) \r\n )} \r\n {user && user.roles.includes('Assistant') && (\r\n taQuestions.some(x=>!x.viewed) ? ( \r\n Assistant\r\n
} id=\"assistant\" renderMenuOnMount={true}>\r\n Classes\r\n Topics\r\n Latest Questions\r\n \r\n ) : (\r\n \r\n Classes\r\n Topics\r\n Latest Questions\r\n \r\n ) \r\n )} \r\n {user && user.roles.includes('Student') && (\r\n \r\n Classes\r\n \r\n )}\r\n {user && user.roles.includes('Parent') && (\r\n \r\n Classes\r\n \r\n )} \r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default observer(NavBarDesktop);\r\n","import React, { Fragment} from 'react'\r\nimport NavBarDesktop from './NavBarDesktop'\r\n\r\ninterface IProps {\r\n children: JSX.Element\r\n}\r\n\r\nconst NavBar: React.FC = ({children}) => {\r\n return (\r\n \r\n {/* \r\n \r\n \r\n */}\r\n \r\n {/* */}\r\n \r\n )\r\n};\r\n\r\nexport default NavBar;","import React, { useContext, useEffect} from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport {Container, Table} from 'react-bootstrap';\r\nimport './puzzle.css';\r\n\r\nconst NumberPuzzleRanks = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { userRanks, getUserRanks } = rootStore.numberPuzzleStore;\r\n const { user } = rootStore.userStore;\r\n useEffect(() => {\r\n getUserRanks();\r\n }, [getUserRanks]);\r\n\r\n const getTitle = (number: number) => {\r\n if (number < 5) {\r\n return 'Infant';\r\n } else if (number < 10) {\r\n return 'Toddler';\r\n } else if (number < 20) {\r\n return 'Preschooler';\r\n } else if (number < 50) {\r\n return 'Elemantary Student';\r\n } else if (number < 100) {\r\n return 'Junior Student';\r\n } else if (number < 200) {\r\n return 'Senior Student';\r\n } else if (number < 500) {\r\n return 'Freshman';\r\n } else if (number < 1000) {\r\n return 'Sophomore';\r\n } else if (number < 2000) {\r\n return 'Junior';\r\n } else if (number < 3000) {\r\n return 'Senior';\r\n } else if (number < 4000) {\r\n return 'Master';\r\n } else if (number < 5000) {\r\n return 'Doctor';\r\n } else if (number < 6000){\r\n return 'Professor'; \r\n } else if(number < 6704) {\r\n return 'Grandmaster';\r\n }\r\n else {\r\n return 'Legend';\r\n }\r\n };\r\n\r\n return (\r\n \r\n

Number Puzzle User Ranks

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {userRanks &&\r\n userRanks.map(userRank => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n
Full NameTitlePuzzles solvedRank
{userRank.firstName + ' ' + userRank.lastName}{getTitle(userRank.number)}{userRank.number}{userRank.rank}
\r\n
\r\n );\r\n};\r\n\r\nexport default observer(NumberPuzzleRanks);\r\n","export const keyImages = [\r\n 'zero_g',\r\n 'zero_b',\r\n 'zero_h',\r\n 'one_g',\r\n 'one_b',\r\n 'one_h',\r\n 'two_g',\r\n 'two_b',\r\n 'two_h',\r\n 'three_g',\r\n 'three_b',\r\n 'three_h',\r\n 'four_g',\r\n 'four_b',\r\n 'four_h',\r\n 'five_g',\r\n 'five_b',\r\n 'five_h',\r\n 'six_g',\r\n 'six_b',\r\n 'six_h',\r\n 'seven_g',\r\n 'seven_b',\r\n 'seven_h',\r\n 'eight_g',\r\n 'eight_b',\r\n 'eight_h',\r\n 'nine_g',\r\n 'nine_b',\r\n 'nine_h'\r\n];\r\n\r\nexport const opImages = [\r\n 'plus_b',\r\n 'plus_h',\r\n 'minus_b',\r\n 'minus_h',\r\n 'multiply_b',\r\n 'multiply_h',\r\n 'divide_b',\r\n 'divide_h',\r\n 'lBracket_b',\r\n 'lBracket_h',\r\n 'rBracket_b',\r\n 'rBracket_h',\r\n 'bDelete_b',\r\n 'bDelete_h',\r\n 'clean_b',\r\n 'clean_h'\r\n];","import React, { useContext, useState, useEffect } from 'react';\r\nimport { IDigitInfo } from './DigitInfo';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { keyImages} from '../../app/common/lists/puzzleImages';\r\nimport {Container, Row, Col, Image} from 'react-bootstrap';\r\nimport './puzzle.css';\r\nconst imageStyle = {\r\n width: '64px',\r\n height: '64px'\r\n};\r\nexport const NumberPuzzleSolve = () => {\r\n const [valid, setValid] = useState(true);\r\n const [expression, setExpression] = useState(' ');\r\n const [digits, setDigits] = useState([]);\r\n const rootStore = useContext(RootStoreContext);\r\n const { loadNumberPuzzle, numberPuzzle, solvePuzzle } = rootStore.numberPuzzleStore;\r\n const [completed, setCompleted] = useState(false);\r\n\r\n useEffect(() => {\r\n loadNumberPuzzle().then(numberPuzzle => {\r\n if (!numberPuzzle!.digits.includes(',')) {\r\n setCompleted(true);\r\n }\r\n else {\r\n let dis: IDigitInfo[] = [];\r\n numberPuzzle!.digits.split(',').forEach(digit => {\r\n dis.push({\r\n digit: digit,\r\n available: true\r\n });\r\n });\r\n setDigits(dis);\r\n }\r\n });\r\n }, [loadNumberPuzzle, setCompleted]);\r\n\r\n const getFileName = (di: IDigitInfo) => {\r\n switch (di.digit) {\r\n case '0':\r\n return di.available ? keyImages[1] : keyImages[0];\r\n case '1':\r\n return di.available ? keyImages[4] : keyImages[3];\r\n case '2':\r\n return di.available ? keyImages[7] : keyImages[6];\r\n case '3':\r\n return di.available ? keyImages[10] : keyImages[9];\r\n case '4':\r\n return di.available ? keyImages[13] : keyImages[12];\r\n case '5':\r\n return di.available ? keyImages[16] : keyImages[15];\r\n case '6':\r\n return di.available ? keyImages[19] : keyImages[18];\r\n case '7':\r\n return di.available ? keyImages[22] : keyImages[21];\r\n case '8':\r\n return di.available ? keyImages[25] : keyImages[24];\r\n case '9':\r\n return di.available ? keyImages[28] : keyImages[27];\r\n }\r\n };\r\n\r\n const checkExpression = (expression: string) => {\r\n var result = validateExpression(expression, numberPuzzle!.result);\r\n if(result === -1){\r\n setValid(false);\r\n setExpression(expression);\r\n } else if(result === 0){\r\n setValid(true);\r\n setExpression(expression);\r\n } else {\r\n setValid(true);\r\n setExpression(expression);\r\n if(!digits.some(x=>x.available)) {\r\n solvePuzzle(expression); \r\n }\r\n }\r\n }\r\n\r\n const validateExpression = (expression: string, result: string) => {\r\n if (expression === '') return 0;\r\n while (expression.includes(')')) {\r\n var bEnd = expression.indexOf(')');\r\n var bStart = bEnd - 1;\r\n while (bStart >= 0) {\r\n var char = expression[bStart];\r\n if (char === '(') {\r\n break;\r\n }\r\n bStart--;\r\n }\r\n if (expression[bStart] !== '(') {\r\n return -1; // invalid\r\n }\r\n var answer = calcExpression(expression.substring(bStart + 1, bEnd));\r\n if (answer === '') {\r\n return -1; // invalid\r\n }\r\n expression =\r\n expression.substring(0, bStart) +\r\n answer +\r\n expression.substring(bEnd + 1, expression.length);\r\n }\r\n answer = calcExpression(expression);\r\n if(answer === '') {\r\n return -1;\r\n }\r\n else if (answer === result) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n };\r\n\r\n const calcExpression = (expression: string) => {\r\n var list = convert2List(expression);\r\n var stack: string[] = [];\r\n var index = 0;\r\n while (index < list.length) {\r\n var item = list[index];\r\n if (item === '*') {\r\n if (index + 1 === list.length) return '';\r\n if (stack.length === 0) return '';\r\n var strNum1 = stack.pop();\r\n var strNum2 = list[index + 1];\r\n if (Number.isNaN(Number(strNum1)) || Number.isNaN(Number(strNum2))) {\r\n return '';\r\n }\r\n var num1 = parseInt(strNum1!);\r\n var num2 = parseInt(strNum2);\r\n stack.push((num1 * num2).toString());\r\n index += 2;\r\n } else if (item === '/') {\r\n if (index + 1 === list.length) return '';\r\n if (stack.length === 0) return '';\r\n strNum1 = stack.pop();\r\n strNum2 = list[index + 1];\r\n if (Number.isNaN(Number(strNum1)) || Number.isNaN(Number(strNum2))) {\r\n return '';\r\n }\r\n num1 = parseInt(strNum1!);\r\n num2 = parseInt(strNum2);\r\n if (num1 % num2 > 0) {\r\n return '';\r\n }\r\n stack.push((num1 / num2).toString());\r\n index += 2;\r\n } else {\r\n stack.push(item);\r\n index++;\r\n }\r\n }\r\n var strResult = stack.shift();\r\n if (Number.isNaN(Number(strResult))) {\r\n return '';\r\n }\r\n var result = parseInt(strResult!);\r\n while (stack.length > 0) {\r\n var op = stack.shift();\r\n if (op === '+') {\r\n if (stack.length === 0) return '';\r\n var strNum = stack.shift();\r\n if (Number.isNaN(Number(strNum))) {\r\n return '';\r\n }\r\n var num = parseInt(strNum!);\r\n result += num;\r\n } else if (op === '-') {\r\n if (stack.length === 0) return '';\r\n strNum = stack.shift();\r\n if (Number.isNaN(Number(strNum))) {\r\n return '';\r\n }\r\n num = parseInt(strNum!);\r\n result -= num;\r\n } else {\r\n return '';\r\n }\r\n }\r\n return result.toString();\r\n };\r\n\r\n const convert2List = (expression : string) => {\r\n var list = [];\r\n var strNum = '';\r\n var index = 0;\r\n while (index < expression.length) {\r\n var char = expression[index];\r\n if (\r\n char === '*' ||\r\n char === '/' ||\r\n char === '+' ||\r\n char === '-' ||\r\n Number.isNaN(Number(char))\r\n ) {\r\n if (strNum !== '') {\r\n list.push(strNum);\r\n strNum = '';\r\n }\r\n list.push(char);\r\n } else {\r\n strNum = strNum + char;\r\n }\r\n index++;\r\n }\r\n if (strNum !== '') {\r\n list.push(strNum);\r\n }\r\n return list;\r\n };\r\n\r\n const handleOnClick1 = () => {\r\n if (digits[0].available) {\r\n digits[0].available = false;\r\n const newExpr = expression + digits[0].digit;\r\n checkExpression(newExpr);\r\n }\r\n };\r\n\r\n const handleOnClick2 = () => {\r\n if (digits[1].available) {\r\n digits[1].available = false;\r\n const newExpr = expression + digits[1].digit;\r\n checkExpression(newExpr);\r\n }\r\n };\r\n\r\n const handleOnClick3 = () => {\r\n if (digits[2].available) {\r\n digits[2].available = false;\r\n const newExpr = expression + digits[2].digit;\r\n checkExpression(newExpr);\r\n }\r\n };\r\n\r\n const handleOnClick4 = () => {\r\n if (digits[3].available) {\r\n digits[3].available = false;\r\n const newExpr = expression + digits[3].digit;\r\n checkExpression(newExpr);\r\n }\r\n };\r\n\r\n const handleOnClick_plus = () => {\r\n const newExpr = expression + '+';\r\n checkExpression(newExpr);\r\n };\r\n\r\n const handleOnClick_minus = () => {\r\n const newExpr = expression + '-';\r\n checkExpression(newExpr);\r\n };\r\n\r\n const handleOnClick_multiply = () => {\r\n const newExpr = expression + '*';\r\n checkExpression(newExpr);\r\n };\r\n\r\n const handleOnClick_divide = () => {\r\n const newExpr = expression + '/';\r\n checkExpression(newExpr);\r\n };\r\n\r\n const handleOnClick_lBracket = () => {\r\n const newExpr = expression + '(';\r\n checkExpression(newExpr);\r\n };\r\n\r\n const handleOnClick_rBracket = () => {\r\n const newExpr = expression + ')';\r\n checkExpression(newExpr);\r\n };\r\n\r\n const handleOnClick_delete = () => {\r\n if (expression.length > 0) {\r\n var char = expression[expression.length - 1];\r\n if (\r\n char === '+' ||\r\n char === '-' ||\r\n char === '*' ||\r\n char === '/' ||\r\n char === '(' ||\r\n char === ')'\r\n ) {\r\n } else {\r\n if (digits[0].digit === char && !digits[0].available) {\r\n digits[0].available = true;\r\n } else if (digits[1].digit === char && !digits[1].available) {\r\n digits[1].available = true;\r\n } else if (digits[2].digit === char && !digits[2].available) {\r\n digits[2].available = true;\r\n } else if (digits[3].digit === char && !digits[3].available) {\r\n digits[3].available = true;\r\n }\r\n setDigits(digits);\r\n }\r\n checkExpression(expression.slice(0, expression.length - 1));\r\n }\r\n };\r\n\r\n const handleOnClick_clean = () => {\r\n digits[0].available = true;\r\n digits[1].available = true;\r\n digits[2].available = true;\r\n digits[3].available = true;\r\n checkExpression('');\r\n };\r\n\r\n return (\r\n \r\n {completed ? \r\n (\r\n \r\n Congratulations! You have passed all levels!\r\n \r\n ) : ( \r\n <>\r\n \r\n Puzzle # {numberPuzzle?.seqNo}\r\n \r\n \r\n Result: {numberPuzzle?.result} \r\n \r\n \r\n Expression: \r\n {expression}\r\n \r\n \r\n
Input Keyboard
\r\n
\r\n {digits.length === 4 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) } \r\n
\r\n );\r\n};\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { AppUser} from '../../app/models/user';\r\nimport {Container, Row, Col, Form, Button, Spinner} from 'react-bootstrap';\r\n\r\n\r\nconst ProfileForm = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { user, setUserProfile } = rootStore.userStore;\r\n const [submitting, setSubmitting] = useState(false);\r\n const [currentUser, setCurrentUser] = useState(new AppUser());\r\n const [isStudent, setIsStudent] = useState(false);\r\n\r\n useEffect(() => {\r\n setCurrentUser(new AppUser(user));\r\n if(user.roles.includes(\"Student\")){\r\n setIsStudent(true);\r\n }\r\n }, [user])\r\n\r\n const handleChange = (event) => {\r\n const { name, value, checked } = event.target; \r\n if (name === \"active\") {\r\n setCurrentUser({...currentUser, [name]: checked}); \r\n }\r\n else{\r\n setCurrentUser({...currentUser, [name]: value}); \r\n }\r\n };\r\n\r\n const handleSubmit = () => {\r\n var userProfile = {\r\n id: currentUser.id,\r\n userName: currentUser.userName,\r\n firstName: currentUser.firstName,\r\n lastName: currentUser.lastName,\r\n city: currentUser.city,\r\n age: currentUser.age,\r\n grade: currentUser.grade,\r\n phone: currentUser.phone,\r\n wechat: currentUser.wechat,\r\n parentFirstName: currentUser.parentFirstName,\r\n parentLastName: currentUser.parentLastName,\r\n introduction: currentUser.introduction,\r\n };\r\n setSubmitting(true);\r\n setUserProfile(userProfile)\r\n .finally(() => {\r\n setSubmitting(false);\r\n })\r\n }; \r\n\r\n return (\r\n \r\n

Profile of {user.userName}

\r\n
\r\n \r\n \r\n \r\n Email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Roles\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n {isStudent &&\r\n \r\n \r\n \r\n Age\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Grade\r\n \r\n \r\n \r\n \r\n \r\n \r\n } \r\n \r\n \r\n \r\n Phone\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Wechat\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n City\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isStudent && \r\n \r\n \r\n \r\n Parent FirstName\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Parent LastName\r\n \r\n \r\n \r\n \r\n \r\n \r\n } \r\n \r\n \r\n \r\n Introduction\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ProfileForm\r\n","import React, { useContext, useState } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport {Container, Row, Col, Form, Button, Spinner} from 'react-bootstrap';\r\nimport { ErrorMessage } from '../../app/common/form/ErrorMessage';\r\nimport \"../classes.css\";\r\n\r\nconst initialValues = {\r\n subjectName: '',\r\n code: '',\r\n level: 'Beginner',\r\n description: ''\r\n}\r\n\r\nconst verificationError = {\r\n emptyCode: false,\r\n invalidLevel: false,\r\n emptyName: false\r\n};\r\n\r\nconst intialSubmitErrorInfo = {\r\n errors: [],\r\n text: ''\r\n};\r\n\r\nconst NewSubjectModal = () => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {newSubject} = rootStore.subjectStore; \r\n const [values, setValues] = useState(initialValues); \r\n const [valueErrors, setValueErrors] = useState(verificationError);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [submitError, setSubmitError] = useState(intialSubmitErrorInfo);\r\n const handleChange = (event) => {\r\n const { name, value } = event.target;\r\n setValues({ ...values, [name]: value });\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n setSubmitError(intialSubmitErrorInfo);\r\n const emptyCode = (values.code && values.code.trim().length) ? false: true;\r\n const emptyName = (values.name && values.name.trim().length) ? false: true;\r\n var invalidLevel = false;\r\n var level = 0;\r\n if(values.level === \"Beginner\"){\r\n level = 1;\r\n }\r\n else if(values.level === \"Intermediate\"){\r\n level = 2;\r\n } else if(values.level === \"Advanced\") {\r\n level = 3;\r\n } else if(values.level === \"Challenging\") {\r\n level = 4;\r\n } else{\r\n invalidLevel = true;\r\n }\r\n setValueErrors({...valueErrors, emptyCode, emptyName, invalidLevel});\r\n if(emptyCode || emptyName || invalidLevel){\r\n } else {\r\n const subject = {\r\n name: values.subjectName.trim(),\r\n level: level,\r\n code: values.code.trim(),\r\n description: values.description.trim()\r\n }\r\n newSubject(subject).catch(error => {\r\n if(error.data && error.statusText){\r\n const submitErrorInfo1 = {\r\n errors: error.data.errors, \r\n text: error.statusText\r\n };\r\n setSubmitError(submitErrorInfo1); \r\n }\r\n else {\r\n const submitErrorInfo2 = {\r\n errors: [], \r\n text: \"Network Error\"\r\n };\r\n setSubmitError(submitErrorInfo2); \r\n }\r\n }).finally(() => {\r\n setSubmitting(false);\r\n }); \r\n }\r\n }\r\n return (\r\n \r\n

New Subject

\r\n
\r\n \r\n \r\n \r\n Code\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Level\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Description\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {valueErrors.emptyCode && (\r\n
  • Code is empty
  • \r\n )} \r\n {valueErrors.emptyName && (\r\n
  • Empty suject name
  • \r\n )}\r\n {valueErrors.invalidLevel && (\r\n
  • Invalid level
  • \r\n )}\r\n
\r\n {submitError.text && (\r\n \r\n )} \r\n \r\n {!submitting && }\r\n {submitting && }\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default NewSubjectModal","import React, { useContext, useEffect} from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Container, Table, Row, Button } from 'react-bootstrap'\r\nimport NewSubjectModal from './NewSubjectModal.jsx';\r\n\r\nconst SubjectsForm = () => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {subjects, loadSubjects } = rootStore.subjectStore;\r\n const { openModal } = rootStore.modalStore;\r\n\r\n useEffect(() => {\r\n loadSubjects();\r\n }, [loadSubjects]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {subjects &&\r\n subjects.sort((x, y) => x.code > y.code ? 1 : -1).map(subject =>(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n
CodeNameLevelDescription
{subject.code}{subject.name}{subject.level}{subject.description}
\r\n
\r\n )\r\n}\r\n\r\nexport default observer(SubjectsForm)","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Container, Table, Row, Col, Form, Button } from 'react-bootstrap'\r\nimport { useHistory} from 'react-router-dom';\r\nimport { Link } from 'react-router-dom';\r\n\r\n\r\nconst AdminClassesForm = () => {\r\n const history = useHistory();\r\n const rootStore = useContext(RootStoreContext); \r\n const {subjects, loadSubjects } = rootStore.subjectStore;\r\n const {courses, loadCourses} = rootStore.coursesStore;\r\n const [searchSubject, setSearchSubject] = useState('');\r\n const [searchActive, setSearchActive] = useState(true);\r\n\r\n useEffect(() => {\r\n loadSubjects();\r\n loadCourses();\r\n }, [loadSubjects, loadCourses])\r\n const handleSubjectSearch = (event: any) => {\r\n setSearchSubject(event.target.value);\r\n };\r\n const handleActiveSearch = (event: any) => {\r\n setSearchActive(event.target.checked);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Subject\r\n \r\n \r\n \r\n \r\n \r\n {subjects.map((subject)=> {\r\n return ()\r\n })} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {courses && \r\n courses.filter(course=>{\r\n if(searchSubject === \"\"){\r\n return true;\r\n } else {\r\n return course.subject?.name === searchSubject;\r\n }\r\n }).filter(course=>{\r\n if(searchActive){\r\n return course.active;\r\n } else{\r\n return true;\r\n } \r\n }).map(course => (\r\n {\r\n history.push(`/a-classes/info/${course.courseCode}`); }\r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n
CodeNameLevelSart DateEnd DateScheduled TimeTeacher# of StudentsActive
{course.courseCode}{course.courseName}{course.subject!.level}{new Date(course.startDate).toISOString().substring(0, 10)}{new Date(course.endDate).toISOString().substring(0, 10)}{course.dayOfTheWeek + ' ' + course.timePeriod}{course.teacher!.firstName + ' ' + course.teacher!.lastName}{course.students.length}{course.active ? 'Yes' : 'No'}
\r\n
\r\n )\r\n}\r\n\r\nexport default observer(AdminClassesForm)\r\n","import React from 'react'\r\nimport Parser from 'html-react-parser';\r\nimport { Container } from 'react-grid-system';\r\n\r\nconst ContentModal = ({content}) => {\r\n return (\r\n \r\n {content && Parser(content)}\r\n \r\n )\r\n}\r\n\r\nexport default ContentModal\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Table} from 'react-bootstrap'\r\n\r\nconst initialValues = [];\r\n\r\nconst AttendanceModal = ({lessonId}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {loadLesson, loadAttendances} = rootStore.lessonStore;\r\n const [newAttendances, setNewAttendances] = useState(initialValues);\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n var attendances = await loadAttendances(lessonId); \r\n if(attendances){\r\n setNewAttendances(attendances);\r\n }\r\n }\r\n if(lessonId){\r\n loadValues();\r\n }\r\n }, [loadAttendances, loadLesson, setNewAttendances, lessonId]);\r\n\r\n const renderSwitch = (param) => {\r\n switch(param) {\r\n case 1: \r\n return 'On Time';\r\n case 2:\r\n case 0:\r\n return 'Late';\r\n case 3:\r\n return 'Absent with notice';\r\n default:\r\n return 'Absent';\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {newAttendances?.slice().sort((a, b) => {\r\n if (a.student.firstName.toLowerCase() > b.student.firstName.toLowerCase()) return 1;\r\n else if(a.student?.firstName.toLowerCase() < b.student.firstName.toLowerCase()) return -1;\r\n else {\r\n if(a.student.lastName.toLowerCase() > b.student.lastName.toLowerCase()) return 1;\r\n else return -1;\r\n }\r\n })\r\n .map((attendance, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
#Full NameCityEmailAttended?
{index + 1}{attendance.student.firstName} {attendance.student.lastName}{attendance.student.city}{attendance.student.email}\r\n {renderSwitch(attendance.attendingCode)}\r\n
\r\n
\r\n {newAttendances.filter(x=>x.attendingCode < 3).length} of {newAttendances.length} students attended.\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default AttendanceModal\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Link } from 'react-router-dom';\r\nimport {Container, Row, Col, Table, Button} from 'react-bootstrap';\r\nimport \"../classes.css\";\r\nimport ContentModal from '../../app/common/modals/ContentModal';\r\nimport AttendanceModal from '../lesson/AttendanceModal';\r\n\r\ninterface ClassParams {\r\n courseCode: string;\r\n}\r\n\r\nconst initialValues = {\r\n courseCode: '',\r\n courseName: '',\r\n active: true\r\n};\r\n\r\nconst AdminClassForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {courseContent, loadCourseContent} = rootStore.courseStore;\r\n const { openModal} = rootStore.modalStore;\r\n const [values, setValues] = useState(initialValues);\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n var course = await loadCourseContent(match.params.courseCode);\r\n if(course){ \r\n setValues({\r\n courseCode: course.courseCode,\r\n courseName: course.courseName,\r\n active: course.active\r\n }); \r\n }\r\n }\r\n if(match.params.courseCode){\r\n loadValues();\r\n }\r\n }, [loadCourseContent, match.params.courseCode])\r\n\r\n\r\n return (\r\n \r\n
\r\n

Course: {values.courseName}

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

\r\n Scheduled time\r\n

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

\r\n {courseContent?.dayOfTheWeek} {courseContent?.timePeriod}\r\n

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

Notice\r\n

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

{courseContent?.notice}

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

Lessons

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {courseContent?.lessons?.slice().sort((a, b) => {\r\n if(a.date > b.date) return 1;\r\n else if(a.date < b.date) return -1;\r\n else if(a.timePeriod > b.timePeriod) return 1;\r\n else return -1;\r\n }).map((lesson, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#TopicDateTime PeriodAttendanceVideoAssignment
\r\n {lesson.seqNo} \r\n \r\n \r\n {lesson.topic}\r\n \r\n {new Date(lesson.date).toISOString().substring(0, 10)}{lesson.timePeriod}\r\n openModal(`Attendance of Lesson ${lesson.seqNo}`, , 'modal-pane-1')}>\r\n {lesson.numOfAttendances} students \r\n \r\n \r\n {lesson.url && (\r\n video\r\n )}\r\n \r\n {lesson.numOfAssignments > 0 && \r\n \r\n Assignment\r\n \r\n }\r\n
\r\n\r\n
\r\n

Resources

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {courseContent?.courseResources?.map((courseResource, index) =>\r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#title
{index+1}\r\n {courseResource.url && (\r\n {courseResource.title}\r\n )}\r\n {!courseResource.url && (\r\n openModal(`resource ${courseResource.title}`, , 'modal-pane-1')}>\r\n {courseResource.title}\r\n \r\n )}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default observer(AdminClassForm)\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport {Container, Row, Col, Form, Button, Spinner} from 'react-bootstrap';\r\nimport { ErrorMessage } from '../../app/common/form/ErrorMessage';\r\n\r\ninterface ClassParams {\r\n courseCode: string;\r\n}\r\n\r\nconst initialValues = {\r\n subjectName: '',\r\n subjectCode: '',\r\n level: '',\r\n courseCode: '',\r\n session: '',\r\n courseName: '',\r\n active: true,\r\n startDate: '',\r\n endDate: '',\r\n dayOfTheWeek: '',\r\n timePeriod: '',\r\n numOfLessons: '',\r\n description: ''\r\n};\r\n\r\nconst initialTeacher = {\r\n userName: '',\r\n firstName: '',\r\n lastName: ''\r\n}\r\n\r\nconst verificationError = {\r\n emptyCourseName: false,\r\n invalideNumOfLessons: false\r\n};\r\nconst intialSubmitErrorInfo = {\r\n errors: [],\r\n text: ''\r\n};\r\n\r\n\r\nconst EditClassForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {loadCourse, editCourse } = rootStore.coursesStore; \r\n const {teachers, loadTeachers } = rootStore.teacherStore;\r\n const [values, setValues] = useState(initialValues); \r\n const [teacher, setTeacher] = useState(initialTeacher);\r\n const [valueErrors, setValueErrors] = useState(verificationError);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [submitError, setSubmitError] = useState(intialSubmitErrorInfo);\r\n\r\n const handleChange = (event: any) => {\r\n const { name, value, checked } = event.target;\r\n if(name === \"active\"){\r\n setValues({...values, [name]: checked});\r\n } else {\r\n setValues({ ...values, [name]: value });\r\n }\r\n };\r\n const handleSubmit = (event: any): void => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n setSubmitError(intialSubmitErrorInfo);\r\n const emptyCourseName = values.courseName.length === 0;\r\n const invalideNumOfLessons = values.numOfLessons.length === 0 || isNaN(Number(values.numOfLessons));\r\n setValueErrors({...valueErrors, emptyCourseName, invalideNumOfLessons});\r\n if(emptyCourseName ||\r\n invalideNumOfLessons){\r\n }\r\n else{\r\n var startDate = new Date(values.startDate);\r\n var endDate = new Date(values.endDate);\r\n var numOfLessons = parseInt(values.numOfLessons);\r\n const course = { \r\n courseCode : values.courseCode, \r\n active: values.active,\r\n courseName: values.courseName,\r\n startDate: startDate,\r\n endDate: endDate,\r\n dayOfTheWeek: values.dayOfTheWeek,\r\n timePeriod: values.timePeriod,\r\n numOfLessons: numOfLessons,\r\n description: values.description, \r\n teacherUserName: teacher.userName,\r\n };\r\n setSubmitting(true);\r\n let isSuccess = true;\r\n editCourse(course).catch(error => {\r\n if(error.data && error.statusText){\r\n const submitErrorInfo1 = {\r\n errors: error.data.errors, \r\n text: error.statusText\r\n };\r\n setSubmitError(submitErrorInfo1); \r\n }\r\n else {\r\n const submitErrorInfo2 = {\r\n errors: [], \r\n text: \"Network Error\"\r\n };\r\n setSubmitError(submitErrorInfo2); \r\n }\r\n isSuccess = false;\r\n }).finally(() => {\r\n setSubmitting(false);\r\n }); \r\n if (isSuccess) {\r\n history.push('/a-classes'); \r\n } \r\n }\r\n }; \r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n var course = await loadCourse(match.params.courseCode);\r\n if(course){\r\n var level = 'Beginner';\r\n switch(course.subject!.level){\r\n case 2:\r\n level = 'Intermediate';\r\n break;\r\n case 3:\r\n level = 'Advanced';\r\n break;\r\n case 4:\r\n level = 'Challenging';\r\n break;\r\n } \r\n setValues({\r\n subjectName: course.subject!.name,\r\n subjectCode: course.subject!.code,\r\n level: level,\r\n courseCode: course.courseCode,\r\n courseName: course.courseName,\r\n active: course.active,\r\n session: course.session.toString(),\r\n startDate: new Date(course.startDate).toISOString().substr(0, 10),\r\n endDate: new Date(course.endDate).toISOString().substr(0, 10),\r\n dayOfTheWeek: course.dayOfTheWeek,\r\n timePeriod: course.timePeriod,\r\n numOfLessons: course.numOfLessons.toString(),\r\n description: course.description\r\n }); \r\n setTeacher({\r\n firstName: course.teacher!.firstName,\r\n lastName: course.teacher!.lastName,\r\n userName: course.teacher!.userName\r\n });\r\n await loadTeachers(); \r\n }\r\n }\r\n if(match.params.courseCode){\r\n loadValues();\r\n }\r\n }, [loadCourse, loadTeachers, match.params.courseCode])\r\n\r\n const selectTeacher = (event: any) => {\r\n const {value} = event.target;\r\n const teacher = teachers.find(x=>x.userName===value);\r\n if(teacher){\r\n setTeacher({\r\n userName: teacher.userName,\r\n firstName: teacher.firstName,\r\n lastName: teacher.lastName\r\n });\r\n }\r\n }\r\n return (\r\n \r\n

Edit Course

\r\n
\r\n \r\n \r\n \r\n Subject Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Subject Code\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Level\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Course Code\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Session\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Course Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Start Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n End Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Day of the week\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Time Period\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n # of Lessons\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Teacher\r\n \r\n \r\n \r\n \r\n {teachers.map((teacher)=> {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Description\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {valueErrors.emptyCourseName && (\r\n
  • Empty course name
  • \r\n )} \r\n {valueErrors.invalideNumOfLessons && (\r\n
  • invalid num of lessons
  • \r\n )}\r\n
\r\n {submitError.text && (\r\n\t\t\t \r\n )} \r\n \r\n {!submitting && }\r\n {submitting && }\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default observer(EditClassForm)\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport {Container, Row, Col, Form, Button, Spinner} from 'react-bootstrap';\r\nimport { ErrorMessage } from '../../app/common/form/ErrorMessage';\r\nimport \"../classes.css\";\r\n\r\nconst initialSubject = {\r\n name: '',\r\n code: '',\r\n level: ''\r\n};\r\n\r\nconst initialValues = {\r\n courseName: '',\r\n startDate: '',\r\n endDate: '',\r\n dayOfTheWeek: '',\r\n timePeriod: '',\r\n numOfLessons: '',\r\n description: ''\r\n};\r\n\r\nconst initialTeacher = {\r\n userName: '',\r\n firstName: '',\r\n lastName: ''\r\n}\r\n\r\nconst verificationError = {\r\n subjectNotSelected: false,\r\n emptyCourseName: false,\r\n emptyStartDate: false,\r\n emptyEndDate: false,\r\n teacherNotSelected: false,\r\n invalideNumOfLessons: false\r\n};\r\nconst intialSubmitErrorInfo = {\r\n errors: [],\r\n text: ''\r\n};\r\n\r\nconst NewClassForm = () => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {subjects, loadSubjects} = rootStore.subjectStore;\r\n const {teachers, loadTeachers } = rootStore.teacherStore;\r\n const {createNewCourse} = rootStore.coursesStore;\r\n const [values, setValues] = useState(initialValues);\r\n const [subject, setSubject] = useState(initialSubject);\r\n const [teacher, setTeacher] = useState(initialTeacher);\r\n const [valueErrors, setValueErrors] = useState(verificationError);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [submitError, setSubmitError] = useState(intialSubmitErrorInfo);\r\n\r\n useEffect(() => {\r\n const loadValues = async () => {\r\n await loadSubjects();\r\n await loadTeachers();\r\n }\r\n loadValues();\r\n }, [loadSubjects, loadTeachers])\r\n\r\n const handleChange = (event: any) => {\r\n const { name, value } = event.target;\r\n setValues({ ...values, [name]: value });\r\n };\r\n const handleSubmit = (event: any): void => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n setSubmitError(intialSubmitErrorInfo);\r\n const subjectNotSelected = subject.code.length === 0;\r\n const emptyCourseName = values.courseName.length === 0;\r\n const emptyStartDate = values.startDate.length === 0;\r\n const emptyEndDate = values.endDate.length === 0;\r\n const teacherNotSelected = teacher.userName.length === 0;\r\n const invalideNumOfLessons = values.numOfLessons.length === 0 || isNaN(Number(values.numOfLessons));\r\n setValueErrors({...valueErrors, subjectNotSelected, emptyCourseName, emptyStartDate, emptyEndDate, teacherNotSelected, invalideNumOfLessons});\r\n if(subjectNotSelected ||\r\n emptyCourseName ||\r\n emptyStartDate ||\r\n emptyEndDate ||\r\n teacherNotSelected ||\r\n invalideNumOfLessons){\r\n }\r\n else{\r\n var startDate = new Date(values.startDate);\r\n var endDate = new Date(values.endDate);\r\n var numOfLessons = parseInt(values.numOfLessons);\r\n const course = { \r\n courseName: values.courseName,\r\n startDate: startDate,\r\n endDate: endDate,\r\n dayOfTheWeek: values.dayOfTheWeek,\r\n timePeriod: values.timePeriod,\r\n numOfLessons: numOfLessons,\r\n description: values.description,\r\n subjectCode: subject.code, \r\n teacherUserName: teacher.userName,\r\n };\r\n setSubmitting(true);\r\n createNewCourse(course).catch(error => {\r\n if(error.data && error.statusText){\r\n const submitErrorInfo1 = {\r\n errors: error.data.errors, \r\n text: error.statusText\r\n };\r\n setSubmitError(submitErrorInfo1); \r\n }\r\n else {\r\n const submitErrorInfo2 = {\r\n errors: [], \r\n text: \"Network Error\"\r\n };\r\n setSubmitError(submitErrorInfo2); \r\n }\r\n }).finally(() => {\r\n setSubmitting(false);\r\n }); \r\n }\r\n };\r\n\r\n const selectSubject = (event: any) => {\r\n const { value } = event.target;\r\n const subject = subjects.find(x=>x.code === value);\r\n if(subject){\r\n var level = 'Beginner';\r\n switch(subject.level){\r\n case 2:\r\n level = 'Intermediate';\r\n break;\r\n case 3:\r\n level = 'Advanced';\r\n break;\r\n case 4:\r\n level = 'Challenging';\r\n break;\r\n }\r\n setSubject({\r\n code: subject.code, \r\n name: subject.name,\r\n level: level\r\n });\r\n }\r\n };\r\n\r\n const selectTeacher = (event: any) => {\r\n const {value} = event.target;\r\n const teacher = teachers.find(x=>x.userName===value);\r\n if(teacher){\r\n setTeacher({\r\n userName: teacher.userName,\r\n firstName: teacher.firstName,\r\n lastName: teacher.lastName\r\n });\r\n }\r\n }\r\n return (\r\n \r\n

New Course

\r\n
\r\n \r\n \r\n \r\n Subject Name\r\n \r\n \r\n \r\n \r\n \r\n {subjects.map((subject)=> {\r\n return \r\n \r\n \r\n \r\n Subject Code\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Level\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Course Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Start Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n End Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Time Period\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Teacher\r\n \r\n \r\n \r\n \r\n \r\n {teachers.map((teacher)=> {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n # of Lessons\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Description\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {valueErrors.subjectNotSelected && (\r\n
  • Subject not selected
  • \r\n )} \r\n {valueErrors.emptyCourseName && (\r\n
  • Empty CourseName
  • \r\n )}\r\n {valueErrors.emptyStartDate && (\r\n
  • Empty Start Date
  • \r\n )}\r\n {valueErrors.emptyEndDate && (\r\n
  • Empty End Date
  • \r\n )}\r\n {valueErrors.teacherNotSelected && (\r\n
  • Teacher not selected
  • \r\n )} \r\n {valueErrors.invalideNumOfLessons && (\r\n
  • Invalid # of Lessons
  • \r\n )}\r\n
\r\n {submitError.text && (\r\n \r\n )} \r\n \r\n {!submitting && }\r\n {submitting && }\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default observer(NewClassForm)\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport {IAssistant} from '../../app/models/assistant';\r\nimport {Container, Row, Col, Form, Table, Button} from 'react-bootstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport SplitPane from 'react-split-pane';\r\n\r\nimport \"../classes.css\";\r\n\r\ninterface ClassParams {\r\n courseCode: string;\r\n}\r\nconst initialAssistants: IAssistant[] = [];\r\n\r\nconst ClassAssistants: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {loadCourse, addCourseAssistant, removeCourseAssistant} = rootStore.coursesStore;\r\n const {assistants, loadAssistants} = rootStore.assistantStore;\r\n const [courseAssistants, setCourseAssistants] = useState(initialAssistants);\r\n const [searchTerm, setSearchTerm] = useState('');\r\n const [btmHeight, setBtmHeight] = useState(100);\r\n useEffect(() => {\r\n const loadCourseAssistants = async() => {\r\n var course = await loadCourse(match.params.courseCode);\r\n if(course) {\r\n setCourseAssistants(course.assistants);\r\n } \r\n };\r\n if(match.params.courseCode){\r\n loadCourseAssistants();\r\n loadAssistants(); \r\n }\r\n }, [loadCourse, setCourseAssistants, loadAssistants, match.params.courseCode]);\r\n\r\n const toggleBtmHeight = (topPaneHeight: any) => {\r\n const maxHeight = 500;\r\n const padding = 25;\r\n const btmPaneHeight = maxHeight - topPaneHeight - padding;\r\n setBtmHeight(btmPaneHeight);\r\n }\r\n const handleChange = (event: any) => {\r\n setSearchTerm(event.target.value);\r\n }\r\n\r\n const addAssistant = (userName: any, e: any) => {\r\n addCourseAssistant(match.params.courseCode, userName);\r\n var assisant = assistants.find(x=>x.userName === userName);\r\n if(assisant){\r\n setCourseAssistants([...courseAssistants, assisant]);\r\n }\r\n };\r\n\r\n const removeAssistant = (userName: any, e: any) => {\r\n removeCourseAssistant(match.params.courseCode, userName);\r\n setCourseAssistants(courseAssistants.filter(x=>x.userName !== userName));\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n toggleBtmHeight(size)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {assistants \r\n .filter(assistant => \r\n !courseAssistants.some(x => x.userName === assistant.userName)\r\n )\r\n .filter(user => {\r\n if(searchTerm === \"\"){\r\n return true;\r\n } else if(user.firstName.toLowerCase().includes(searchTerm.toLowerCase()) ||\r\n user.lastName.toLowerCase().includes(searchTerm.toLowerCase())){\r\n return true;\r\n } else{\r\n return false;\r\n }\r\n }) \r\n .map((assistant, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#Full NameEmailAdd
{index+1}{assistant.firstName+' ' + assistant.lastName}{assistant.email} addAssistant(assistant.userName, e)}>
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {courseAssistants\r\n .slice().sort((a, b) => {\r\n if (a.firstName.toLowerCase() > b.firstName.toLowerCase()) return 1;\r\n else if(a.firstName.toLowerCase() < b.firstName.toLowerCase()) return -1;\r\n else {\r\n if(a.lastName.toLowerCase() > b.lastName.toLowerCase()) return 1;\r\n else return -1;\r\n }\r\n }) \r\n .map((assisant, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#Full NameEmailRemove
{index+1}{assisant.firstName+' ' + assisant.lastName}{assisant.email} removeAssistant(assisant.userName, e)}>
\r\n
\r\n\r\n
\r\n )\r\n}\r\n\r\nexport default observer(ClassAssistants)\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport {IStudent} from '../../app/models/student';\r\nimport {Container, Row, Col, Form, Table, Button} from 'react-bootstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport SplitPane from 'react-split-pane';\r\n\r\nimport \"../classes.css\";\r\n\r\ninterface ClassParams {\r\n courseCode: string;\r\n}\r\nconst initialStudents: IStudent[] = [];\r\n\r\nconst ClassStudents: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {loadCourse, addCourseStudent, removeCourseStudent} = rootStore.coursesStore;\r\n const {students, loadStudents} = rootStore.studentStore;\r\n const [courseStudents, setCourseStudents] = useState(initialStudents);\r\n const [searchTerm, setSearchTerm] = useState('');\r\n const [btmHeight, setBtmHeight] = useState(100);\r\n useEffect(() => {\r\n const loadCourseStudents = async() => {\r\n var course = await loadCourse(match.params.courseCode);\r\n if(course) {\r\n setCourseStudents(course.students);\r\n } \r\n };\r\n if(match.params.courseCode){\r\n loadCourseStudents();\r\n loadStudents(); \r\n }\r\n }, [loadCourse, setCourseStudents, loadStudents, match.params.courseCode]);\r\n\r\n const toggleBtmHeight = (topPaneHeight: any) => {\r\n const maxHeight = 500;\r\n const padding = 25;\r\n const btmPaneHeight = maxHeight - topPaneHeight - padding;\r\n setBtmHeight(btmPaneHeight);\r\n }\r\n const handleChange = (event: any) => {\r\n setSearchTerm(event.target.value);\r\n }\r\n\r\n const addStudent = (userName: any, e: any) => {\r\n addCourseStudent(match.params.courseCode, userName);\r\n var student = students.find(x=>x.userName === userName);\r\n if(student){\r\n setCourseStudents([...courseStudents, student]);\r\n }\r\n };\r\n\r\n const removeStudent = (userName: any, e: any) => {\r\n removeCourseStudent(match.params.courseCode, userName);\r\n setCourseStudents(courseStudents.filter(x=>x.userName !== userName));\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n toggleBtmHeight(size)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {students \r\n .filter(student => \r\n !courseStudents.some(x => x.userName === student.userName)\r\n )\r\n .filter(user => {\r\n if(searchTerm === \"\"){\r\n return true;\r\n } else if(user.firstName.toLowerCase().includes(searchTerm.toLowerCase()) ||\r\n user.lastName.toLowerCase().includes(searchTerm.toLowerCase())){\r\n return true;\r\n } else{\r\n return false;\r\n }\r\n }) \r\n .map((student, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#Full NameAgeParentPhoneWechatEmailAdd
{index+1}{student.firstName+' ' + student.lastName}{student.age}{(student.parentFirstName == null ? '' : student.parentFirstName) + ' ' \r\n + (student.parentLastName == null ? '' : student.parentLastName)}{student.phone}{student.wechat}{student.email} addStudent(student.userName, e)}>
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {courseStudents\r\n .slice().sort((a, b) => {\r\n if (a.firstName.toLowerCase() > b.firstName.toLowerCase()) return 1;\r\n else if(a.firstName.toLowerCase() < b.firstName.toLowerCase()) return -1;\r\n else {\r\n if(a.lastName.toLowerCase() > b.lastName.toLowerCase()) return 1;\r\n else return -1;\r\n }\r\n }) \r\n .map((student, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#Full NameAgeParentPhoneWechatEmailRemove
{index+1}{student.firstName+' ' + student.lastName}{student.age}{(student.parentFirstName == null ? '' : student.parentFirstName) + ' ' \r\n + (student.parentLastName == null ? '' : student.parentLastName)}{student.phone}{student.wechat}{student.email} removeStudent(student.userName, e)}>
\r\n
\r\n\r\n
\r\n )\r\n}\r\n\r\nexport default observer(ClassStudents)\r\n","import React, {useEffect, useContext} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Table, Row } from 'react-bootstrap';\r\nimport { observer } from 'mobx-react-lite';\r\n\r\nconst StudentReportModal = ({courseCode, userName}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {studentReport, getStudentReport} = rootStore.courseStore;\r\n\r\n useEffect(() => {\r\n getStudentReport(courseCode, userName);\r\n }, [getStudentReport, courseCode, userName]);\r\n\r\n const renderSwitch = (param) => {\r\n switch(param) {\r\n case 1: \r\n return 'On Time';\r\n case 2:\r\n return 'Late';\r\n case 3:\r\n return 'Absent with notice';\r\n case 4:\r\n return 'Absent';\r\n default:\r\n return '';\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n

Note: Attendance is not accurate and the student may switch course sessions

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {studentReport?.slice().sort((a, b) => a.seqNo > b.seqNo ? 1 : -1)\r\n .map((studentLesson, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
#DateTimePeriodAttendanceAssignmentsSubmissionsXOther
{studentLesson.seqNo}{(new Date(studentLesson.date).toISOString()).substring(0, 10)}{studentLesson.timePeriod}{renderSwitch(studentLesson.attendingCode)} {studentLesson.numOfAssignments} {studentLesson.numOfSubmissions} {studentLesson.numOfGreat} {studentLesson.numOfAcceptable} {studentLesson.numOfProblematic} {studentLesson.numOfUnacceptable} {studentLesson.numOfUngraded}
\r\n\r\n \r\n

\r\n total attended: {studentReport.filter(x=>x.attendingCode===1 || x.attendingCode===2).length}, \r\n total assignments: {studentReport.reduce((prev, next) => prev + next.numOfAssignments, 0)}, \r\n total submissions: {studentReport.reduce((prev, next) => prev + next.numOfSubmissions, 0)} \r\n

\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default observer(StudentReportModal)\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { IAssistant } from '../../app/models/assistant';\r\nimport {IStudent} from '../../app/models/student';\r\nimport { Link } from 'react-router-dom';\r\nimport {Container, Row, Col, Form, Button, Table} from 'react-bootstrap';\r\nimport \"../classes.css\";\r\nimport StudentReportModal from './StudentReportModal';\r\n\r\ninterface ClassParams {\r\n courseCode: string;\r\n}\r\n\r\nconst initialValues = {\r\n subjectName: '',\r\n subjectCode: '',\r\n level: '',\r\n courseCode: '',\r\n session: '',\r\n courseName: '',\r\n startDate: '',\r\n endDate: '',\r\n dayOfTheWeek: '',\r\n timePeriod: '',\r\n teacher: '',\r\n numOfLessons: '',\r\n description: ''\r\n};\r\n\r\nconst initialAssistants: IAssistant[] = [];\r\nconst initialStudents: IStudent[] = [];\r\n\r\nconst ClassForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { openModal} = rootStore.modalStore; \r\n const {loadCourse, toggleCourseActive} = rootStore.coursesStore;\r\n const [values, setValues] = useState(initialValues);\r\n const [active, setActive] = useState(true);\r\n const [assistants, setAssistants] = useState(initialAssistants);\r\n const [students, setStudents] = useState(initialStudents);\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n var course = await loadCourse(match.params.courseCode);\r\n if(course){\r\n var level = 'Beginner';\r\n switch(course.subject!.level){\r\n case 2:\r\n level = 'Intermediate';\r\n break;\r\n case 3:\r\n level = 'Advanced';\r\n break;\r\n case 4:\r\n level = 'Challenging';\r\n break;\r\n } \r\n setValues({\r\n subjectName: course.subject!.name,\r\n subjectCode: course.subject!.code,\r\n level: level,\r\n courseCode: course.courseCode,\r\n session: course.session.toString(),\r\n courseName: course.courseName,\r\n startDate: new Date(course.startDate).toLocaleDateString(),\r\n endDate: new Date(course.endDate).toLocaleDateString(),\r\n dayOfTheWeek: course.dayOfTheWeek,\r\n timePeriod: course.timePeriod,\r\n teacher: course.teacher!.firstName + ' ' + course.teacher!.lastName,\r\n numOfLessons: course.numOfLessons.toString(),\r\n description: course.description\r\n }); \r\n setActive(course.active);\r\n setAssistants(course.assistants);\r\n setStudents(course.students); \r\n }\r\n }\r\n if(match.params.courseCode){\r\n loadValues();\r\n }\r\n }, [loadCourse, match.params.courseCode])\r\n\r\n const toggleActive = () => {\r\n var newActive = !active;\r\n toggleCourseActive(values.courseCode, newActive);\r\n setActive(newActive);\r\n };\r\n\r\n return (\r\n \r\n
\r\n

Course: {values.courseName}

\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!active && \r\n \r\n }\r\n {active && \r\n \r\n }\r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n Subject Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Subject Code\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Level\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Course Code\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Session\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Start Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n End Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Day of the week\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Time Period\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n # of Lessons\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Teacher\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Description\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

Assistants

\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {assistants\r\n .slice().sort((a, b) => {\r\n if (a.firstName.toLowerCase() > b.firstName.toLowerCase()) return 1;\r\n else if(a.firstName.toLowerCase() < b.firstName.toLowerCase()) return -1;\r\n else {\r\n if(a.lastName.toLowerCase() > b.lastName.toLowerCase()) return 1;\r\n else return -1;\r\n }\r\n })\r\n .map((assistant, index) => \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#Full NameEmail
{index+1}{assistant.firstName+' ' + assistant.lastName}{assistant.email}
\r\n
\r\n

Students

\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {students\r\n .slice().sort((a, b) => {\r\n if (a.firstName.toLowerCase() > b.firstName.toLowerCase()) return 1;\r\n else if(a.firstName.toLowerCase() < b.firstName.toLowerCase()) return -1;\r\n else {\r\n if(a.lastName.toLowerCase() > b.lastName.toLowerCase()) return 1;\r\n else return -1;\r\n }\r\n })\r\n .map((student, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n )} \r\n \r\n
#Full NameAgeParentPhoneWechatCityEmailReport
{index+1}{student.firstName+' ' + student.lastName}{student.age}{(student.parentFirstName == null ? '' : student.parentFirstName) + ' ' \r\n + (student.parentLastName == null ? '' : student.parentLastName)}{student.phone}{student.wechat}{student.city}{student.email}\r\n openModal(`report of ${student.firstName} ${student.lastName}`, , 'modal-pane-1')}> \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default observer(ClassForm)\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Container, Row, Col, Form, Table } from 'react-bootstrap'\r\nimport { useHistory} from 'react-router-dom';\r\n\r\nconst TeacherClassesForm = () => {\r\n const history = useHistory();\r\n const rootStore = useContext(RootStoreContext); \r\n const {courses, loadTeacherCourses} = rootStore.userStore;\r\n const [searchActive, setSearchActive] = useState(true);\r\n\r\n useEffect(() => {\r\n loadTeacherCourses();\r\n }, [loadTeacherCourses])\r\n\r\n const handleActiveSearch = (event: any) => {\r\n setSearchActive(event.target.checked);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {courses && \r\n courses.filter(course=>{\r\n if(searchActive){\r\n return course.active;\r\n } else{\r\n return true;\r\n } \r\n }).map(course => (\r\n {\r\n history.push(`/t-classes/${course.courseCode}`); }\r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n
CodeNameLevelSart DateEnd DateScheduled TimeTeacher# of StudentsActive
{course.courseCode}{course.courseName}{course.subject!.level}{new Date(course.startDate).toISOString().substring(0, 10)}{new Date(course.endDate).toISOString().substring(0, 10)}{course.dayOfTheWeek + ' ' + course.timePeriod}{course.teacher!.firstName + ' ' + course.teacher!.lastName}{course.students.length}{course.active ? 'Yes' : 'No'}
\r\n
\r\n )\r\n}\r\n\r\nexport default observer(TeacherClassesForm)\r\n","import React, {useContext, useEffect} from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Row, Col, Form, Table, Button} from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport StudentReportModal from '../adminClasses/StudentReportModal';\r\nimport \"../classes.css\";\r\ninterface ClassParams {\r\n courseCode: string;\r\n}\r\n\r\nconst TeacherClassInfo: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {courseContent, loadCourseContent} = rootStore.courseStore; \r\n const { openModal} = rootStore.modalStore; \r\n\r\n useEffect(() => {\r\n loadCourseContent(match.params.courseCode);\r\n }, [loadCourseContent, match.params.courseCode])\r\n\r\n const getLevel = () => {\r\n if(courseContent){\r\n switch(courseContent.subject!.level){\r\n case 2:\r\n return 'Intermediate';\r\n case 3:\r\n return 'Advanced';\r\n case 4:\r\n return 'Challenging';\r\n default:\r\n return 'Beginner'; \r\n } \r\n }\r\n else return '';\r\n };\r\n\r\n return (\r\n
\r\n
\r\n

Course: {courseContent?.courseName}

\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n Subject Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Subject Code\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Level\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Course Code\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Session\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Start Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n End Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Day of the week\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Time period\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n # of Lessons\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Teacher\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Description\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

Assistants

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {courseContent?.assistants\r\n .slice().sort((a, b) => {\r\n if (a.firstName.toLowerCase() > b.firstName.toLowerCase()) return 1;\r\n else if(a.firstName.toLowerCase() < b.firstName.toLowerCase()) return -1;\r\n else {\r\n if(a.lastName.toLowerCase() > b.lastName.toLowerCase()) return 1;\r\n else return -1;\r\n }\r\n })\r\n .map((assistant, index) => \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#Full NameEmail
{index+1}{assistant.firstName+' ' + assistant.lastName}{assistant.email}
\r\n
\r\n

Students

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {courseContent?.students\r\n .slice().sort((a, b) => {\r\n if (a.firstName.toLowerCase() > b.firstName.toLowerCase()) return 1;\r\n else if(a.firstName.toLowerCase() < b.firstName.toLowerCase()) return -1;\r\n else {\r\n if(a.lastName.toLowerCase() > b.lastName.toLowerCase()) return 1;\r\n else return -1;\r\n }\r\n })\r\n .map((student, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#Full NameAgeParentPhoneWechatCityEmailReport
{index+1}{student.firstName+' ' + student.lastName}{student.age}{(student.parentFirstName == null ? '' : student.parentFirstName) + ' ' \r\n + (student.parentLastName == null ? '' : student.parentLastName)}{student.phone}{student.wechat}{student.city}{student.email}\r\n openModal(`report of ${student.firstName} ${student.lastName}`, , 'modal-pane-1')}> \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default observer(TeacherClassInfo)\r\n","import React, {useState, useContext} from 'react'\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { EditorState, convertToRaw } from 'draft-js';\r\nimport { Editor } from 'react-draft-wysiwyg';\r\nimport draftToHtml from 'draftjs-to-html';\r\nimport '../../app/layout/editorStyle.css';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\n\r\nconst AddClassResource = ({courseCode}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {addCourseResource} = rootStore.courseStore;\r\n const [title, setTitle] = useState('');\r\n const [submitting, setSubmitting] = useState(false);\r\n const [editorState, setEditorState] = useState(EditorState.createEmpty());\r\n const onEditorStateChange = (editState) => {\r\n setEditorState(editState);\r\n };\r\n \r\n const handleTitleChange = (event) => {\r\n const { value } = event.target;\r\n setTitle(value);\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n var currentContent = editorState.getCurrentContent();\r\n setSubmitting(true);\r\n if(title.length > 0 && currentContent){\r\n var url = '';\r\n addCourseResource(courseCode, title, url, draftToHtml(convertToRaw(currentContent)))\r\n .finally(() =>{\r\n setSubmitting(false);\r\n })\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Title\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n title && editorState.getCurrentContent() &&\r\n !submitting && }\r\n {submitting && }\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default AddClassResource\r\n","import React, {useState, useContext} from 'react'\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\n\r\nconst initialValues = {\r\n title: '',\r\n url: ''\r\n};\r\n\r\nconst AddClassResource = ({courseCode}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {addCourseResource} = rootStore.courseStore;\r\n const [values, setValues] = useState(initialValues);\r\n const [submitting, setSubmitting] = useState(false);\r\n\r\n const handleChange = (event) => {\r\n const { name, value } = event.target;\r\n setValues({ ...values, [name]: value });\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n setSubmitting(true);\r\n if(values.title.length > 0 && values.url.length > 0 ){\r\n var content = '';\r\n addCourseResource(courseCode, values.title, values.url, content)\r\n .finally(() =>{\r\n setSubmitting(false);\r\n })\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Title\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n hyper link\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n values.title && values.url &&\r\n !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default AddClassResource\r\n","import React, {useContext, useMemo} from 'react'\r\nimport {useDropzone} from 'react-dropzone'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\n\r\nconst baseStyle = {\r\n flex: 1,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n padding: '20px',\r\n borderWidth: 2,\r\n borderRadius: 2,\r\n borderColor: '#eeeeee',\r\n borderStyle: 'dashed',\r\n backgroundColor: '#fafafa',\r\n color: '#bdbdbd',\r\n outline: 'none',\r\n transition: 'border .24s ease-in-out'\r\n};\r\n\r\nconst activeStyle = {\r\n borderColor: '#2196f3'\r\n};\r\n\r\nconst acceptStyle = {\r\n borderColor: '#00e676'\r\n};\r\n\r\nconst rejectStyle = {\r\n borderColor: '#ff1744'\r\n};\r\n\r\nconst AddClassResourceAttach = ({courseCode}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {addCourseResourceAttach} = rootStore.courseStore;\r\n const {\r\n getRootProps,\r\n getInputProps,\r\n isDragActive,\r\n isDragAccept,\r\n isDragReject\r\n } = useDropzone({\r\n accept: 'image/*, application/pdf, .zip', \r\n maxFiles: 1,\r\n onDrop: acceptedFiles => { \r\n var file = acceptedFiles[0]; \r\n addCourseResourceAttach(courseCode, file.name, file);\r\n }\r\n });\r\n\r\n const style = useMemo(() => ({\r\n ...baseStyle,\r\n ...(isDragActive ? activeStyle : {}),\r\n ...(isDragAccept ? acceptStyle : {}),\r\n ...(isDragReject ? rejectStyle : {})\r\n }), [\r\n isDragActive,\r\n isDragReject,\r\n isDragAccept\r\n ]);\r\n\r\n return (\r\n
\r\n \r\n {\r\n isDragActive ?\r\n

Drop the files here ...

:\r\n

Drag 'n' drop one file here, or click to select one file

\r\n }\r\n

Only image/pdf/zip file is allowed

\r\n
\r\n )\r\n}\r\n\r\nexport default AddClassResourceAttach\r\n","import React, {useState, useContext} from 'react'\r\nimport { Container, Row, Col, Form, Button, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\n\r\nconst AddLesson = ({courseCode, timePeriod}) => {\r\n const currentDate = Date.now();\r\n const rootStore = useContext(RootStoreContext); \r\n const {addCourseLesson} = rootStore.courseStore;\r\n const [topic, setTopic] = useState('');\r\n const [date, setDate] = useState(new Date(currentDate).toISOString().substr(0, 10));\r\n const [newTimePeriod, setNewTimePeriod] = useState(timePeriod);\r\n const [submitting, setSubmitting] = useState(false); \r\n \r\n const handleDateChange = (event) => {\r\n const {value} = event.target;\r\n setDate(value);\r\n };\r\n const handleTimePeriodChange = (event) => {\r\n const {value} = event.target; \r\n setNewTimePeriod(value); \r\n }\r\n const handleTopicChange = (event) => {\r\n const {value} = event.target; \r\n setTopic(value); \r\n }\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n setSubmitting(true);\r\n addCourseLesson(courseCode, topic, date, newTimePeriod)\r\n .finally(() => {\r\n setSubmitting(false);\r\n })\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Topic\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Time Period\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!submitting && }\r\n {submitting && }\r\n \r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default AddLesson\r\n","import React, {useState, useContext} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\n\r\nconst SetTimePeriodModal = ({courseCode, timePeriod}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {saveTimePeriod} = rootStore.courseStore;\r\n const [newTimePeriod, setNewTimePeriod] = useState(timePeriod);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [isChanged, setIsChanged] = useState(false);\r\n\r\n const handleChange = (event) => {\r\n const {value} = event.target;\r\n setNewTimePeriod(value);\r\n if(value && value !== timePeriod) {\r\n setIsChanged(true);\r\n }\r\n else{\r\n setIsChanged(false);\r\n }\r\n }\r\n const handleSubmit = (event) => {\r\n setSubmitting(true);\r\n saveTimePeriod(courseCode, newTimePeriod);\r\n setSubmitting(false);\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n time period\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isChanged && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SetTimePeriodModal\r\n","import React, {useState, useContext, useEffect} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Row, Spinner } from 'react-bootstrap';\r\nimport { EditorState, ContentState, convertToRaw } from 'draft-js';\r\nimport { Editor } from 'react-draft-wysiwyg';\r\nimport draftToHtml from 'draftjs-to-html';\r\nimport htmlToDraft from 'html-to-draftjs';\r\nimport '../../app/layout/editorStyle.css';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\n\r\nconst SetNoticeModal = ({courseCode, notice}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {saveNotice} = rootStore.courseStore;\r\n const [submitting, setSubmitting] = useState(false);\r\n const [editorState, setEditorState] = useState(EditorState.createEmpty());\r\n const onEditorStateChange = (editState) => {\r\n setEditorState(editState);\r\n }; \r\n\r\n useEffect(() => {\r\n if(notice) {\r\n const blocksFromHTML = htmlToDraft(notice);\r\n const state = ContentState.createFromBlockArray(\r\n blocksFromHTML.contentBlocks,\r\n blocksFromHTML.entityMap\r\n );\r\n setEditorState(EditorState.createWithContent(state)); \r\n }\r\n }, [notice])\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n var currentContent = editorState.getCurrentContent();\r\n if(currentContent){ \r\n setSubmitting(true);\r\n saveNotice(courseCode, draftToHtml(convertToRaw(currentContent)));\r\n setSubmitting(false);\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n {editorState.getCurrentContent() && \r\n !submitting && }\r\n {submitting && }\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default SetNoticeModal\r\n","import React, {useState, useContext} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\n\r\nconst SetVideoModal = ({lessonId, url}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {saveVideoUrl} = rootStore.lessonStore;\r\n const {courseContent} = rootStore.courseStore;\r\n const [newUrl, setNewUrl] = useState(url);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [isChanged, setIsChanged] = useState(false);\r\n\r\n const handleChange = (event) => {\r\n const {value} = event.target;\r\n setNewUrl(value);\r\n if(value && value !== url) {\r\n setIsChanged(true);\r\n }\r\n else{\r\n setIsChanged(false);\r\n }\r\n }\r\n const handleSubmit = (event) => {\r\n setSubmitting(true);\r\n saveVideoUrl(lessonId, newUrl);\r\n if(courseContent){\r\n var lesson = courseContent?.lessons.find(x=>x.id === lessonId);\r\n if(lesson){\r\n lesson.url = newUrl;\r\n } \r\n }\r\n setSubmitting(false);\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n video link\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isChanged && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SetVideoModal\r\n","import React, {useState, useContext} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\n\r\nconst SetDayOfTheWeekModal = ({courseCode, dayOfTheWeek}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {saveDayOfTheWeek} = rootStore.courseStore;\r\n const [newDayOfTheWeek, setNewDayOfTheWeek] = useState(dayOfTheWeek);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [isChanged, setIsChanged] = useState(false); \r\n\r\n const handleChange = (event) => {\r\n const {value} = event.target;\r\n setNewDayOfTheWeek(value);\r\n if(value && value !== dayOfTheWeek) {\r\n setIsChanged(true);\r\n }\r\n else{\r\n setIsChanged(false);\r\n }\r\n }\r\n const handleSubmit = (event) => {\r\n setSubmitting(true);\r\n saveDayOfTheWeek(courseCode, newDayOfTheWeek);\r\n setSubmitting(false);\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Day of the week\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isChanged && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SetDayOfTheWeekModal\r\n","import React, {useState, useContext} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\n\r\n\r\nconst SetCourseResourceSeqNo = ({courseResourceId, seqNo}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {setResourceSeqNo} = rootStore.courseStore;\r\n const [newSeqNo, setNewSeqNo] = useState(seqNo);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [isChanged, setIsChanged] = useState(false);\r\n\r\n const handleChange = (event) => {\r\n const {value} = event.target;\r\n setNewSeqNo(value);\r\n if(value && value !== seqNo) {\r\n setIsChanged(true);\r\n }\r\n else{\r\n setIsChanged(false);\r\n }\r\n }\r\n const handleSubmit = (event) => {\r\n setSubmitting(true);\r\n setResourceSeqNo(courseResourceId, parseInt(newSeqNo));\r\n setSubmitting(false);\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n SeqNo\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isChanged && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SetCourseResourceSeqNo\r\n","import React from 'react'\r\nimport { Container } from 'react-bootstrap';\r\nimport Editor from 'react-simple-code-editor';\r\nimport { highlight, languages } from 'prismjs/components/prism-core';\r\nimport 'prismjs/components/prism-clike';\r\nimport 'prismjs/components/prism-javascript';\r\nimport \"prismjs/themes/prism.css\";\r\n\r\nconst CodeModal = ({code}) => {\r\n return (\r\n \r\n {code && (\r\n {}}\r\n highlight={code => highlight(code, languages.js)}\r\n padding={5}\r\n style={{\r\n fontFamily: '\"Fira code\", \"Fira Mono\", monospace',\r\n fontSize: 12,\r\n backgroundColor: 'aliceblue'\r\n }}\r\n />\r\n )} \r\n \r\n )\r\n}\r\n\r\nexport default CodeModal\r\n","import React, { useContext, useEffect } from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Link } from 'react-router-dom';\r\nimport { Row, Col, Table, Button} from 'react-bootstrap';\r\nimport \"../classes.css\";\r\nimport AddClassResourceText from './AddClassResourceText';\r\nimport AddClassResourceLink from './AddClassResourceLink';\r\nimport AddClassResourceAttach from './AddClassResourceAttach';\r\nimport AddLesson from './AddLesson';\r\nimport SetTimePeriodModal from './SetTimePeriodModal';\r\nimport SetNoticeModal from './SetNoticeModal';\r\nimport ContentModal from '../../app/common/modals/ContentModal';\r\nimport SetVideoModal from './SetVideoModal';\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport 'react-confirm-alert/src/react-confirm-alert.css'; // Import css\r\nimport SetDayOfTheWeekModal from './SetDayOfTheWeekModal';\r\nimport SetCourseResourceSeqNo from './SetCourseResourceSeqNo';\r\nimport CodeModal from '../../app/common/modals/CodeModal';\r\nimport parse from 'html-react-parser';\r\n\r\ninterface ClassParams {\r\n courseCode: string;\r\n}\r\n\r\nconst TeacherClassForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {courseContent, loadCourseContent, removeResource} = rootStore.courseStore;\r\n const { openModal} = rootStore.modalStore;\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadCourseContent(match.params.courseCode);\r\n }\r\n if(match.params.courseCode){\r\n loadValues();\r\n }\r\n }, [loadCourseContent, match.params.courseCode])\r\n\r\n const handleRemoveResource = (id: any) => {\r\n confirmAlert({\r\n title: 'Confirm to delete',\r\n message: 'Are you sure you want to delete it?',\r\n buttons: [\r\n {\r\n label: 'Yes',\r\n onClick: () => {\r\n removeResource(match.params.courseCode, id) \r\n } \r\n },\r\n {\r\n label: 'No',\r\n onClick: () => {}\r\n }\r\n ]\r\n }) \r\n }\r\n\r\n return (\r\n
\r\n
\r\n

Class: {courseContent?.courseName}

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

\r\n Day of the week\r\n

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

\r\n {courseContent?.dayOfTheWeek}\r\n {courseContent?.active &&\r\n openModal(\"Set Day of the week\", \r\n )} > \r\n \r\n }\r\n

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

\r\n Time Period\r\n

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

\r\n {courseContent?.timePeriod}\r\n {courseContent?.active && \r\n openModal(\"Set Time Period\", \r\n )} > \r\n \r\n }\r\n

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

Notice\r\n {courseContent?.active && \r\n openModal(\"Set Notice\", \r\n , 'modal-pane-2')} > \r\n \r\n }\r\n

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

{courseContent?.notice && parse(courseContent?.notice)}

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

Lessons

\r\n openModal(\"Add new lesson\", , 'modal-pane-2')}> \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {courseContent?.lessons?.slice()\r\n .sort((a, b) => a.seqNo > b.seqNo ? 1 : -1)\r\n .map((lesson, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#TopicDateTime PeriodAttendanceVideoAssignment
\r\n {lesson.seqNo} \r\n \r\n \r\n {lesson.topic}\r\n \r\n {new Date(lesson.date).toISOString().substring(0, 10)}{lesson.timePeriod}\r\n \r\n {lesson.numOfAttendances} students \r\n \r\n \r\n {lesson.url && (\r\n video\r\n )}\r\n openModal(\"set video\", , 'modal-pane-1')}> \r\n \r\n \r\n \r\n Assignment\r\n \r\n
\r\n\r\n
\r\n

Resources

\r\n openModal(\"Add new resource (Text)\", , 'modal-pane-1')}> \r\n \r\n openModal(\"Add new resource (Link)\", , 'modal-pane-1')}> \r\n \r\n openModal(\"Add new resource (Attach)\", , 'modal-pane-1')}> \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {courseContent?.courseResources?.slice().sort((a, b) => a.seqNo > b.seqNo ? 1 : -1)\r\n .map(courseResource =>\r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#title
{courseResource.seqNo}\r\n openModal(`Set SeqNo for ${courseResource.title}`, \r\n , 'modal-pane-2')} > \r\n \r\n \r\n {courseResource.url && (\r\n {courseResource.title}\r\n )}\r\n {!courseResource.url && (\r\n openModal(`resource ${courseResource.title}`, , 'modal-pane-1')}>\r\n {courseResource.title}\r\n \r\n )}\r\n handleRemoveResource(courseResource.id)}>\r\n
\r\n\r\n {courseContent?.nonSepTopics?.map((topic, idx) => \r\n \r\n
\r\n

{topic.name}

\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {topic.hasConcepts &&\r\n ()\r\n }\r\n {topic.hasAnalysis &&\r\n ()\r\n }\r\n {topic.hasCode &&\r\n ()\r\n } \r\n \r\n \r\n \r\n {topic.topicItems.map(topicItem => \r\n \r\n \r\n \r\n \r\n {topic.hasConcepts && (\r\n \r\n )}\r\n {topic.hasAnalysis && (\r\n () \r\n )}\r\n {topic.hasCode &&\r\n ()\r\n } \r\n \r\n )}\r\n \r\n
CategorySeqNoTitleConceptsAnalysisCode
{topicItem.category}{topicItem.seqNo}\r\n {topicItem.url && (\r\n {topicItem.title}\r\n )} \r\n {topicItem.concepts} \r\n {topicItem.analysisUrl && (\r\n Analysis\r\n )} \r\n \r\n {topicItem.code && (\r\n openModal(`Code for ${topicItem.title}`, \r\n , 'modal-pane-1')}>\r\n Code\r\n \r\n )} \r\n
\r\n
\r\n )}\r\n\r\n {courseContent?.sepTopics?.map((topic, idx) =>\r\n
\r\n {topic.isWorkbook && (\r\n \r\n

{topic.name}

\r\n \r\n )} \r\n {!topic.isWorkbook && (\r\n \r\n

{topic.name}

\r\n \r\n )} \r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n );\r\n}\r\n\r\nexport default observer(TeacherClassForm)\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Container, Row, Col, Form, Table } from 'react-bootstrap'\r\nimport { useHistory} from 'react-router-dom';\r\n\r\nconst AssistantClassesForm = () => {\r\n const history = useHistory();\r\n const rootStore = useContext(RootStoreContext); \r\n const {courses, loadAssistantCourses} = rootStore.userStore;\r\n const [searchActive, setSearchActive] = useState(true);\r\n\r\n useEffect(() => {\r\n loadAssistantCourses();\r\n }, [loadAssistantCourses])\r\n\r\n const handleActiveSearch = (event: any) => {\r\n setSearchActive(event.target.checked);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {courses && \r\n courses.filter(course=>{\r\n if(searchActive){\r\n return course.active;\r\n } else{\r\n return true;\r\n } \r\n }).map(course => (\r\n {\r\n history.push(`/h-classes/${course.courseCode}`); }\r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n
CodeNameLevelSart DateEnd DateScheduled TimeTeacher# of StudentsActive
{course.courseCode}{course.courseName}{course.subject!.level}{new Date(course.startDate).toISOString().substring(0, 10)}{new Date(course.endDate).toISOString().substring(0, 10)}{course.dayOfTheWeek + ' ' + course.timePeriod}{course.teacher!.firstName + ' ' + course.teacher!.lastName}{course.students.length}{course.active ? 'Yes' : 'No'}
\r\n
\r\n )\r\n}\r\n\r\nexport default observer(AssistantClassesForm)\r\n","import React, { useContext, useEffect } from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Link } from 'react-router-dom';\r\nimport { Row, Col, Table, Button} from 'react-bootstrap';\r\nimport \"../classes.css\";\r\nimport ContentModal from '../../app/common/modals/ContentModal';\r\nimport 'react-confirm-alert/src/react-confirm-alert.css'; // Import css\r\nimport CodeModal from '../../app/common/modals/CodeModal';\r\nimport parse from 'html-react-parser';\r\n\r\ninterface ClassParams {\r\n courseCode: string;\r\n}\r\n\r\nconst AssistantClassForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {courseContent, loadCourseContent} = rootStore.courseStore;\r\n const { openModal} = rootStore.modalStore;\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadCourseContent(match.params.courseCode);\r\n }\r\n if(match.params.courseCode){\r\n loadValues();\r\n }\r\n }, [loadCourseContent, match.params.courseCode])\r\n\r\n return (\r\n
\r\n
\r\n

Class: {courseContent?.courseName}

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

\r\n Day of the week\r\n

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

\r\n {courseContent?.dayOfTheWeek}\r\n

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

\r\n Time Period\r\n

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

\r\n {courseContent?.timePeriod}\r\n

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

Notice\r\n

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

{courseContent?.notice && parse(courseContent?.notice)}

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

Lessons

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {courseContent?.lessons?.slice()\r\n .sort((a, b) => a.seqNo > b.seqNo ? 1 : -1)\r\n .map((lesson, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#TopicDateTime PeriodAttendanceVideoAssignment
\r\n {lesson.seqNo} \r\n \r\n \r\n {lesson.topic}\r\n \r\n {new Date(lesson.date).toISOString().substring(0, 10)}{lesson.timePeriod}\r\n \r\n {lesson.numOfAttendances} students \r\n \r\n \r\n {lesson.url && (\r\n video\r\n )}\r\n \r\n \r\n Assignment\r\n \r\n
\r\n\r\n
\r\n

Resources

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {courseContent?.courseResources?.slice().sort((a, b) => a.seqNo > b.seqNo ? 1 : -1)\r\n .map(courseResource =>\r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#title
{courseResource.seqNo} \r\n \r\n {courseResource.url && (\r\n {courseResource.title}\r\n )}\r\n {!courseResource.url && (\r\n openModal(`resource ${courseResource.title}`, , 'modal-pane-1')}>\r\n {courseResource.title}\r\n \r\n )}\r\n
\r\n\r\n {courseContent?.nonSepTopics?.map((topic, idx) => \r\n \r\n
\r\n

{topic.name}

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {topic.hasConcepts &&\r\n ()\r\n }\r\n {topic.hasAnalysis &&\r\n ()\r\n }\r\n {topic.hasCode &&\r\n ()\r\n } \r\n \r\n \r\n \r\n {topic.topicItems.map(topicItem => \r\n \r\n \r\n \r\n \r\n {topic.hasConcepts && (\r\n \r\n )}\r\n {topic.hasAnalysis && (\r\n () \r\n )}\r\n {topic.hasCode &&\r\n ()\r\n } \r\n \r\n )}\r\n \r\n
CategorySeqNoTitleConceptsAnalysisCode
{topicItem.category}{topicItem.seqNo}\r\n {topicItem.url && (\r\n {topicItem.title}\r\n )} \r\n {topicItem.concepts} \r\n {topicItem.analysisUrl && (\r\n Analysis\r\n )} \r\n \r\n {topicItem.code && (\r\n openModal(`Code for ${topicItem.title}`, \r\n , 'modal-pane-1')}>\r\n Code\r\n \r\n )} \r\n
\r\n
\r\n )}\r\n\r\n {courseContent?.sepTopics?.map((topic, idx) =>\r\n
\r\n {topic.isWorkbook && (\r\n \r\n

{topic.name}

\r\n \r\n )} \r\n {!topic.isWorkbook && (\r\n \r\n

{topic.name}

\r\n \r\n )} \r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n );\r\n}\r\n\r\nexport default observer(AssistantClassForm)\r\n","import React, { useContext, useEffect} from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Container, Table} from 'react-bootstrap'\r\nimport { useHistory} from 'react-router-dom';\r\n\r\nconst AssistantTopicsForm = () => {\r\n const history = useHistory();\r\n const rootStore = useContext(RootStoreContext); \r\n const {topics, loadAssistantTopics} = rootStore.topicStore; \r\n\r\n useEffect(() => {\r\n loadAssistantTopics();\r\n }, [loadAssistantTopics]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {topics && \r\n topics\r\n .map(topic => (\r\n {\r\n history.push(`/h-topics/${topic.id}`);\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )) \r\n }\r\n \r\n
NameSubject NameHas Concepts?Has Analysis?Has Code?Is Separate Page?Is Workbook?
{topic.name}{topic.subjectName}{topic.hasConcepts ? \"Yes\" : \"No\"}{topic.hasAnalysis ? \"Yes\" : \"No\"}{topic.hasCode ? \"Yes\" : \"No\"}{topic.isSeparatePage ? \"Yes\" : \"No\"}{topic.isWorkbook ? \"Yes\" : \"No\"}
\r\n
\r\n )\r\n}\r\n\r\nexport default observer(AssistantTopicsForm)\r\n","import React, { useContext, useEffect } from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Table} from 'react-bootstrap';\r\nimport CodeModal from '../../app/common/modals/CodeModal';\r\nimport ContentModal from '../../app/common/modals/ContentModal';\r\ninterface TopicParams {\r\n topicId: string;\r\n}\r\n\r\nconst AssistantTopicForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {currentTopic, getTopic} = rootStore.topicStore;\r\n const { openModal} = rootStore.modalStore;\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await getTopic(match.params.topicId);\r\n }\r\n if(match.params.topicId) {\r\n loadValues();\r\n }\r\n }, [getTopic, match.params.topicId]);\r\n\r\n return (\r\n
\r\n
\r\n

{currentTopic?.name}

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {currentTopic?.hasConcepts &&\r\n ()\r\n }\r\n {currentTopic?.hasAnalysis &&\r\n ()\r\n }\r\n {currentTopic?.hasCode &&\r\n ()\r\n } \r\n \r\n \r\n \r\n {\r\n currentTopic?.topicItems?.sort((a, b) => {\r\n if (a.category > b.category) return 1;\r\n else if(a.category < b.category) return -1;\r\n else if(a.seqNo > b.seqNo) return 1;\r\n else return -1;\r\n }).map(topicItem => \r\n \r\n \r\n \r\n \r\n {currentTopic?.hasConcepts &&\r\n ()\r\n }\r\n {currentTopic?.hasAnalysis &&\r\n ()\r\n }\r\n {currentTopic?.hasCode &&\r\n ()\r\n } \r\n \r\n )}\r\n \r\n
CategorySeqNoTitleConceptsAnalysisCode
{topicItem.category} \r\n \r\n {!topicItem.seqNoLink && topicItem.seqNo}\r\n {topicItem.seqNoLink && (\r\n {topicItem.seqNo}\r\n )} \r\n \r\n {topicItem.url && (\r\n {topicItem.title}\r\n )} \r\n {topicItem.concepts} \r\n \r\n {topicItem.analysisUrl && (\r\n Analysis\r\n )}\r\n {topicItem.analysisContent && (\r\n openModal(`Analysis of ${topicItem.title}`, , 'modal-pane-1')}>\r\n Analysis\r\n \r\n )} \r\n \r\n {topicItem.code && (\r\n openModal(`Code for ${topicItem.title}`, \r\n , 'modal-pane-1')}>\r\n Code\r\n \r\n )} \r\n
\r\n
\r\n

Total problems: {currentTopic?.topicItems?.length}

\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default observer(AssistantTopicForm)\r\n","import React, { useContext } from 'react';\r\nimport {\r\n Container, Row, Col\r\n} from 'react-bootstrap';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Link } from 'react-router-dom';\r\nimport { IPythonProblem } from '../../../app/models/pythonProblem';\r\nimport { RootStoreContext } from '../../../app/stores/rootStore';\r\n\r\nconst PythonProblemList = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { pythonProblems } = rootStore.pythonProblemStore;\r\n const { user } = rootStore.userStore;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n

#

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

Title

\r\n \r\n {user && user.roles.includes('PythonAdmin') && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n {pythonProblems.map((pythonProblem: IPythonProblem) => (\r\n \r\n \r\n {pythonProblem.pythonUserAnswers.some(\r\n x => x.userName === user!.userName\r\n ) && }\r\n \r\n \r\n \r\n {pythonProblem.seqNo}\r\n \r\n \r\n \r\n \r\n {pythonProblem.title}\r\n \r\n \r\n {user && user.roles.includes('PythonAdmin') && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n ))} \r\n
\r\n );\r\n};\r\n\r\nexport default observer(PythonProblemList);\r\n","import React, { useContext, useEffect } from 'react';\r\nimport { RootStoreContext } from '../../../app/stores/rootStore';\r\nimport { Container, Row, Col } from 'react-bootstrap';\r\nimport { observer } from 'mobx-react-lite';\r\nimport PythonProblemList from './PythonProblemList';\r\nimport { LoadingComponent } from '../../../app/layout/LoadingComponent';\r\n\r\nconst PythonProblemDashboard = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { loadPythonProblems, loading } = rootStore.pythonProblemStore;\r\n\r\n useEffect(() => {\r\n loadPythonProblems();\r\n }, [loadPythonProblems]);\r\n \r\n if(loading) return \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*

Python Problem Filters

*/}\r\n \r\n
\r\n\r\n
\r\n );\r\n};\r\n\r\nexport default observer(PythonProblemDashboard);","export interface IPythonProblem {\r\n id: string;\r\n seqNo: number;\r\n title: string;\r\n description: string;\r\n def: string;\r\n dateCreated: Date;\r\n pythonTestCases: IPythonTestCase[];\r\n pythonUserAnswers: IPythonUserAnswer[]\r\n}\r\n\r\nexport interface IPythonProblemValues extends Partial{\r\n\r\n}\r\n\r\nexport class PythonProblemValues implements IPythonProblemValues {\r\n id?: string = undefined;\r\n seqNo?: number = undefined;\r\n title: string = '';\r\n description: string = '';\r\n def: string = '';\r\n dateCreated?:Date = undefined;\r\n pythonTestCases: IPythonTestCase[] = [];\r\n pythonUserAnswers: IPythonUserAnswer[] = [];\r\n\r\n constructor(init?: IPythonProblemValues) {\r\n Object.assign(this, init);\r\n }\r\n\r\n}\r\nexport interface IPythonTestCase {\r\n id: string;\r\n input: string;\r\n testCode: string;\r\n output: string;\r\n resultType: string;\r\n pythonProblemId: string\r\n}\r\n\r\nexport class PythonTestCase implements IPythonTestCase{\r\n id: string = '';\r\n input: string = '';\r\n testCode: string = '';\r\n output: string = '';\r\n resultType: string = '';\r\n pythonProblemId: string = '';\r\n constructor(init?: IPythonTestCase) {\r\n Object.assign(this, init);\r\n } \r\n}\r\n\r\nexport interface IPythonUserAnswer {\r\n firstName: string;\r\n lastName: string;\r\n city: string;\r\n userName: string;\r\n email: string;\r\n answer: string\r\n}\r\n\r\nexport interface IPythonProbleSolutionFormValues {\r\n id?: string;\r\n seqNo?: number;\r\n title: string;\r\n description: string;\r\n def: string;\r\n dateCreated?: Date;\r\n answer?: string;\r\n code: string \r\n}\r\n\r\nexport class PythonProblemSolutionFormValues implements IPythonProbleSolutionFormValues {\r\n id?: string = undefined;\r\n seqNo? : number = undefined;\r\n title: string = '';\r\n description: string = '';\r\n def: string = '';\r\n dateCreated?: Date = undefined;\r\n answer?: string = '';\r\n code: string = ''\r\n\r\n constructor (init? : IPythonProbleSolutionFormValues){\r\n Object.assign(this, init);\r\n }\r\n}","import React, { useContext, useEffect, useState} from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../../app/stores/rootStore';\r\nimport { LoadingComponent } from '../../../app/layout/LoadingComponent';\r\nimport {Container, Button, Row, Col, Form, Spinner} from 'react-bootstrap';\r\nimport { observer } from 'mobx-react-lite';\r\nimport Parser from 'html-react-parser';\r\nimport { PythonProblemSolutionFormValues, IPythonProbleSolutionFormValues} from '../../../app/models/pythonProblem';\r\n\r\ninterface InfoParams {\r\n id: string;\r\n}\r\n\r\nconst PythonProblemSolution: React.FC> = ({\r\n match,\r\n history\r\n}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {\r\n loadPythonProblem,\r\n submitting,\r\n solvePythonProblem\r\n } = rootStore.pythonProblemStore;\r\n\r\n const { user } = rootStore.userStore;\r\n const [pythonProblem, setPythonProblem] = useState(new PythonProblemSolutionFormValues());\r\n const [loading, setLoading] = useState(false);\r\n const [code, setCode] = useState('');\r\n \r\n useEffect(() => {\r\n if(match.params.id){\r\n setLoading(true);\r\n loadPythonProblem(match.params.id).then((pythonProblem) => {\r\n if (pythonProblem) {\r\n var answer = pythonProblem.pythonUserAnswers.find(\r\n x => x.userName === user!.userName\r\n );\r\n var init: IPythonProbleSolutionFormValues = {\r\n id: pythonProblem.id,\r\n seqNo: pythonProblem.seqNo,\r\n title: pythonProblem.title,\r\n description : pythonProblem.description,\r\n def : pythonProblem.def,\r\n dateCreated : pythonProblem.dateCreated,\r\n answer : answer?.answer,\r\n code : (answer ? answer.answer : pythonProblem.def)\r\n };\r\n setPythonProblem(init);\r\n setCode(init?.code);\r\n }\r\n }).finally(() => setLoading(false));\r\n }\r\n }, [loadPythonProblem, match.params.id, user]);\r\n\r\n if (loading && !pythonProblem)\r\n return ;\r\n\r\n const handleOnChange = (event:any) => {\r\n setCode(event.target.value);\r\n };\r\n\r\n const handleFinalFormSubmit = (values: any) => {\r\n solvePythonProblem(pythonProblem!.id!, values.code);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n

\r\n Problem #{pythonProblem?.seqNo}: {pythonProblem?.title}\r\n

\r\n {pythonProblem &&\r\n pythonProblem.description &&\r\n Parser(pythonProblem.description)}\r\n \r\n \r\n
\r\n \r\n \r\n Code\r\n \r\n \r\n \r\n {pythonProblem && pythonProblem.code}\r\n \r\n \r\n \r\n \r\n post your code and submit.\r\n \r\n \r\n \r\n {!submitting && }\r\n {submitting && } \r\n
\r\n \r\n
\r\n
\r\n\r\n );\r\n};\r\n\r\nexport default observer(PythonProblemSolution);\r\n","import React, { useContext, useState, useEffect } from 'react';\r\nimport {Container, Row, Col, Button, Form, Spinner} from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../../app/stores/rootStore';\r\nimport { EditorState, ContentState, convertToRaw } from 'draft-js';\r\nimport { Editor } from 'react-draft-wysiwyg';\r\nimport draftToHtml from 'draftjs-to-html';\r\nimport htmlToDraft from 'html-to-draftjs';\r\nimport '../../../app/layout/editorStyle.css';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\nimport { RouteComponentProps, Link } from 'react-router-dom';\r\nimport { v4 as uuid } from 'uuid';\r\nimport {\r\n PythonProblemValues\r\n} from '../../../app/models/pythonProblem';\r\nimport { observer } from 'mobx-react-lite';\r\n\r\ninterface DetailParams {\r\n id: string;\r\n}\r\n\r\nconst PythonProblemForm: React.FC> = ({\r\n match,\r\n history\r\n}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {\r\n maxSeqNo,\r\n createPythonProblem,\r\n editPythonProblem,\r\n loadPythonProblem\r\n } = rootStore.pythonProblemStore;\r\n const [pythonProblem, setPythonProblem] = useState(new PythonProblemValues());\r\n const [loading, setLoading] = useState(false);\r\n const [editorState, setEditorState] = useState(EditorState.createEmpty());\r\n const onEditorStateChange = (editState: any) => {\r\n setEditorState(editState);\r\n };\r\n\r\n useEffect(() => {\r\n if (match.params.id) {\r\n setLoading(true);\r\n loadPythonProblem(match.params.id)\r\n .then(pythonProblem => {\r\n setPythonProblem(new PythonProblemValues(pythonProblem));\r\n const blocksFromHTML = htmlToDraft(pythonProblem!.description);\r\n const state = ContentState.createFromBlockArray(\r\n blocksFromHTML.contentBlocks,\r\n blocksFromHTML.entityMap\r\n );\r\n setEditorState(EditorState.createWithContent(state));\r\n })\r\n .finally(() => setLoading(false));\r\n }\r\n }, [loadPythonProblem, match.params.id]);\r\n\r\n const handleChange = (event: any) => {\r\n const { name, value } = event.target;\r\n setPythonProblem({ ...pythonProblem, [name]: value });\r\n };\r\n\r\n const handleFinalFormSubmit = (values: any) => {\r\n var currentContent = editorState.getCurrentContent();\r\n var markup = draftToHtml(convertToRaw(currentContent));\r\n if (pythonProblem.id) {\r\n var ePythonProblem = {\r\n id: pythonProblem.id!,\r\n seqNo: pythonProblem.seqNo!,\r\n title: values.title,\r\n description: markup,\r\n def: values.def,\r\n dateCreated: pythonProblem.dateCreated!,\r\n pythonTestCases: [],\r\n pythonUserAnswers: []\r\n };\r\n editPythonProblem(ePythonProblem);\r\n } else {\r\n // new python problem\r\n var newPythonProblem = {\r\n id: uuid(),\r\n seqNo: maxSeqNo + 1,\r\n title: values.title,\r\n description: markup,\r\n def: values.def,\r\n dateCreated: new Date(),\r\n pythonTestCases: [],\r\n pythonUserAnswers: []\r\n };\r\n createPythonProblem(newPythonProblem);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n

\r\n Problem: {pythonProblem ? pythonProblem.seqNo : 'NEW'}{' '}\r\n

\r\n \r\n {pythonProblem.id && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!loading && }\r\n {loading && }\r\n \r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default observer(PythonProblemForm);\r\n","import React, { useContext, useState, useEffect } from 'react';\r\nimport { RouteComponentProps, Link } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport Parser from 'html-react-parser';\r\nimport {Container, Button, Card, Row, Col, ListGroup} from 'react-bootstrap';\r\nimport { observer } from 'mobx-react-lite';\r\nimport {\r\n PythonProblemValues,\r\n IPythonTestCase\r\n} from '../../app/models/pythonProblem';\r\n\r\ninterface DetailParams {\r\n id: string;\r\n}\r\n\r\nconst PythonTestCaseList: React.FC> = ({\r\n match,\r\n history\r\n}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {\r\n loadPythonProblem,\r\n deletePythonTestCase\r\n } = rootStore.pythonProblemStore;\r\n const [pythonProblem, setPythonProblem] = useState(new PythonProblemValues());\r\n const [open, setOpen] = useState(false);\r\n const [target, setTarget] = useState(undefined);\r\n\r\n useEffect(() => {\r\n if (match.params.id) {\r\n loadPythonProblem(match.params.id).then(pythonProblem => {\r\n setPythonProblem(pythonProblem!);\r\n });\r\n }\r\n }, [loadPythonProblem, match.params.id]);\r\n\r\n const handleConfirm = () => {\r\n setOpen(false);\r\n if(target){\r\n deletePythonTestCase(target);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n Problem # {pythonProblem?.seqNo}\r\n \r\n \r\n

{pythonProblem?.title}

\r\n \r\n
\r\n \r\n \r\n {pythonProblem &&\r\n pythonProblem.description &&\r\n Parser(pythonProblem.description)}\r\n \r\n \r\n
\r\n \r\n Test cases\r\n \r\n \r\n \r\n \r\n {pythonProblem &&\r\n pythonProblem.pythonTestCases &&\r\n pythonProblem.pythonTestCases.map((testcase: IPythonTestCase) => (\r\n \r\n \r\n Input: {testcase.input}\r\n Output: {testcase.output}\r\n \r\n TestCode: {testcase.testCode}\r\n \r\n \r\n ResultType: {testcase.resultType}\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n {open && (\r\n

Open

\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default observer(PythonTestCaseList);\r\n","import React, { useContext, useState, useEffect } from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport {\r\n PythonTestCase,\r\n PythonProblemValues\r\n} from '../../app/models/pythonProblem';\r\nimport {Container, Button, Card, Row, Col, Form} from 'react-bootstrap';\r\nimport Parser from 'html-react-parser';\r\nimport uuid from 'uuid';\r\n\r\ninterface DetailParams {\r\n probId: string;\r\n caseId: string;\r\n}\r\n\r\nexport const PythonTestCaseForm: React.FC> = ({ match, history }) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {\r\n loadPythonProblem,\r\n editPythonTestCase,\r\n createPythonTestCase\r\n } = rootStore.pythonProblemStore;\r\n const [pythonProblem, setPythonProblem] = useState(new PythonProblemValues());\r\n const [testCase, setTestCase] = useState(new PythonTestCase());\r\n const [loading, setLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n if (match.params.probId) {\r\n setLoading(true);\r\n loadPythonProblem(match.params.probId)\r\n .then(problem => {\r\n setPythonProblem(new PythonProblemValues(problem));\r\n if (match.params.caseId) {\r\n let oneCase = problem!.pythonTestCases.find(\r\n x => x.id === match.params.caseId\r\n );\r\n if (oneCase) {\r\n setTestCase(oneCase);\r\n }\r\n }\r\n })\r\n .finally(() => setLoading(false));\r\n }\r\n }, [loadPythonProblem, match.params.probId, match.params.caseId]);\r\n\r\n const handleFinalFormSubmit = (values: any) => {\r\n if (testCase.id) {\r\n // edit\r\n var aTestCase = {\r\n id: testCase.id!,\r\n input: values.input,\r\n output: values.output,\r\n testCode: values.testCode,\r\n resultType: values.resultType,\r\n pythonProblemId: pythonProblem.id!\r\n };\r\n editPythonTestCase(aTestCase);\r\n } else {\r\n var newTestCase = {\r\n id: uuid(),\r\n input: values.input,\r\n output: values.output,\r\n testCode: values.testCode,\r\n resultType: values.resultType,\r\n pythonProblemId: pythonProblem.id!\r\n };\r\n createPythonTestCase(newTestCase);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n Problem # {pythonProblem?.seqNo}\r\n \r\n \r\n

{pythonProblem?.title}

\r\n \r\n
\r\n \r\n \r\n {pythonProblem &&\r\n pythonProblem.description &&\r\n Parser(pythonProblem!.description)}\r\n \r\n \r\n
\r\n\r\n \r\n {testCase.id ? (\r\n Test case\r\n ) : (\r\n New test case\r\n )}\r\n
\r\n \r\n \r\n \r\n Result Type \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!loading && \r\n \r\n }\r\n \r\n
\r\n
\r\n );\r\n};\r\n","export interface ICourseLesson {\r\n id: string;\r\n seqNo: number;\r\n topic: string;\r\n date: Date;\r\n timePeriod: string,\r\n url: string,\r\n content: string,\r\n courseCode: string,\r\n courseName: string,\r\n numOfAttendances: number,\r\n numOfAssignments: number\r\n}\r\n\r\nexport class CourseLesson implements ICourseLesson {\r\n id: string = '';\r\n seqNo: number = 0;\r\n topic: string = '';\r\n date: Date = new Date();\r\n timePeriod: string = '';\r\n url: string = '';\r\n content: string = '';\r\n courseCode: string = '';\r\n courseName: string = '';\r\n numOfAttendances: number = 0;\r\n numOfAssignments: number = 0\r\n};\r\n","import React, { Fragment, useContext, useEffect, useState } from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Table, Row, Button, Form } from 'react-bootstrap'\r\nimport { Link } from 'react-router-dom';\r\nimport { IAttendance } from '../../app/models/attendance';\r\nimport { ICourseLesson, CourseLesson } from '../../app/models/courseLesson';\r\n\r\ninterface LessonParams {\r\n lessonId: string;\r\n}\r\n\r\nconst initialLesson : ICourseLesson = new CourseLesson();\r\nconst initialValues : IAttendance[] = [];\r\n\r\nconst AttendanceForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {loadLesson, loadAttendances, setAttendance} = rootStore.lessonStore;\r\n const [newAttendances, setNewAttendances] = useState(initialValues);\r\n const [currentLesson, setCurrentLesson] = useState(initialLesson);\r\n const [absentCheck, setAbsentCheck] = useState(false);\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n var attendances = await loadAttendances(match.params.lessonId); \r\n if(attendances){\r\n setNewAttendances(attendances);\r\n }\r\n var lesson = await loadLesson(match.params.lessonId);\r\n if(lesson){\r\n setCurrentLesson(lesson);\r\n }\r\n }\r\n if(match.params.lessonId){\r\n loadValues();\r\n }\r\n }, [loadAttendances, loadLesson, match.params.lessonId, setNewAttendances]);\r\n\r\n const handleSetAttendanceOnTime = (userName: any) => {\r\n setAttendance(match.params.lessonId, userName, 1);\r\n if(newAttendances && userName){\r\n var newValues = newAttendances.map(item => \r\n item.student?.userName === userName ? \r\n {...item, attendingCode: 1} :\r\n item\r\n );\r\n setNewAttendances(newValues);\r\n }\r\n }\r\n const handleSetAttendanceNA = (userName: any) => {\r\n setAttendance(match.params.lessonId, userName, 0);\r\n if(newAttendances && userName){\r\n var newValues = newAttendances.map(item => \r\n item.student?.userName === userName ? \r\n {...item, attendingCode: 0} :\r\n item\r\n );\r\n setNewAttendances(newValues);\r\n }\r\n } \r\n const handleSetAttendanceLate = (userName: any) => {\r\n if(newAttendances && userName){\r\n setAttendance(match.params.lessonId, userName, 2);\r\n var newValues = newAttendances.map(item => \r\n item.student?.userName === userName ? \r\n {...item, attendingCode: 2} :\r\n item\r\n );\r\n setNewAttendances(newValues);\r\n }\r\n } \r\n const handleSetAttendanceNotice = (userName: any) => {\r\n setAttendance(match.params.lessonId, userName, 3);\r\n if(newAttendances && userName){\r\n var newValues = newAttendances.map(item => \r\n item.student?.userName === userName ? \r\n {...item, attendingCode: 3} :\r\n item\r\n );\r\n setNewAttendances(newValues);\r\n }\r\n }\r\n const handleSetAttendanceAbsent = (userName: any) => {\r\n setAttendance(match.params.lessonId, userName, 4);\r\n if(newAttendances && userName){\r\n var newValues = newAttendances.map(item => \r\n item.student?.userName === userName ? \r\n {...item, attendingCode: 4} :\r\n item\r\n );\r\n setNewAttendances(newValues);\r\n }\r\n } \r\n const handleAbsentCheck = (event: any) => {\r\n setAbsentCheck(event.target.checked);\r\n }\r\n return (\r\n \r\n \r\n

Lesson {currentLesson?.seqNo} Attendance of Course: {currentLesson?.courseName}

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

Date: {new Date(currentLesson?.date).toISOString().substring(0, 10)}

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

TimePeriod: {currentLesson?.timePeriod}

\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {absentCheck && \r\n \r\n } \r\n \r\n \r\n \r\n {newAttendances?.slice().sort((a, b) => {\r\n if (a.student.firstName.toLowerCase() > b.student.firstName.toLowerCase()) return 1;\r\n else if(a.student?.firstName.toLowerCase() < b.student.firstName.toLowerCase()) return -1;\r\n else {\r\n if(a.student.lastName.toLowerCase() > b.student.lastName.toLowerCase()) return 1;\r\n else return -1;\r\n }\r\n })\r\n .map((attendance, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {absentCheck && \r\n }\r\n \r\n )}\r\n \r\n
#Full NameCityEmailOn Time?Roll CallAttended?
{index + 1}{attendance.student.firstName} {attendance.student.lastName}{attendance.student.city}{attendance.student.email}\r\n {attendance.attendingCode === 1 ? 'Yes' : 'No'}\r\n \r\n {attendance.attendingCode === 1 && (\r\n handleSetAttendanceNA(attendance.student?.userName)}>\r\n )}\r\n {attendance.attendingCode !== 1 && (\r\n handleSetAttendanceOnTime(attendance.student?.userName)}> \r\n )}\r\n \r\n {attendance.attendingCode === 0 && (\r\n \r\n handleSetAttendanceLate(attendance.student?.userName)}> \r\n handleSetAttendanceNotice(attendance.student?.userName)}> \r\n handleSetAttendanceAbsent(attendance.student?.userName)}> \r\n \r\n )}\r\n {attendance.attendingCode === 2 && (\r\n \r\n \r\n handleSetAttendanceNotice(attendance.student?.userName)}> \r\n handleSetAttendanceAbsent(attendance.student?.userName)}> \r\n \r\n )} \r\n {attendance.attendingCode === 3 && (\r\n \r\n handleSetAttendanceLate(attendance.student?.userName)}> \r\n \r\n handleSetAttendanceAbsent(attendance.student?.userName)}> \r\n \r\n )}\r\n {attendance.attendingCode === 4 && (\r\n \r\n handleSetAttendanceLate(attendance.student?.userName)}> \r\n handleSetAttendanceNotice(attendance.student?.userName)}> \r\n \r\n \r\n )} \r\n
\r\n
\r\n {newAttendances.filter(x=>x.attendingCode === 1).length} of {newAttendances.length} students attended on time.\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default AttendanceForm\r\n","import React, { Fragment, useContext, useEffect, useState } from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Table, Row, Button, Form } from 'react-bootstrap'\r\nimport { Link } from 'react-router-dom';\r\nimport { IAttendance } from '../../app/models/attendance';\r\nimport { ICourseLesson, CourseLesson } from '../../app/models/courseLesson';\r\n\r\ninterface LessonParams {\r\n lessonId: string;\r\n}\r\n\r\nconst initialLesson : ICourseLesson = new CourseLesson();\r\nconst initialValues : IAttendance[] = [];\r\n\r\nconst AssistantAttendanceForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {loadLesson, loadAttendances, setAttendance} = rootStore.lessonStore;\r\n const [newAttendances, setNewAttendances] = useState(initialValues);\r\n const [currentLesson, setCurrentLesson] = useState(initialLesson);\r\n const [absentCheck, setAbsentCheck] = useState(false);\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n var attendances = await loadAttendances(match.params.lessonId); \r\n if(attendances){\r\n setNewAttendances(attendances);\r\n }\r\n var lesson = await loadLesson(match.params.lessonId);\r\n if(lesson){\r\n setCurrentLesson(lesson);\r\n }\r\n }\r\n if(match.params.lessonId){\r\n loadValues();\r\n }\r\n }, [loadAttendances, loadLesson, match.params.lessonId, setNewAttendances]);\r\n\r\n const handleSetAttendanceOnTime = (userName: any) => {\r\n setAttendance(match.params.lessonId, userName, 1);\r\n if(newAttendances && userName){\r\n var newValues = newAttendances.map(item => \r\n item.student?.userName === userName ? \r\n {...item, attendingCode: 1} :\r\n item\r\n );\r\n setNewAttendances(newValues);\r\n }\r\n }\r\n const handleSetAttendanceNA = (userName: any) => {\r\n setAttendance(match.params.lessonId, userName, 0);\r\n if(newAttendances && userName){\r\n var newValues = newAttendances.map(item => \r\n item.student?.userName === userName ? \r\n {...item, attendingCode: 0} :\r\n item\r\n );\r\n setNewAttendances(newValues);\r\n }\r\n } \r\n const handleSetAttendanceLate = (userName: any) => {\r\n if(newAttendances && userName){\r\n setAttendance(match.params.lessonId, userName, 2);\r\n var newValues = newAttendances.map(item => \r\n item.student?.userName === userName ? \r\n {...item, attendingCode: 2} :\r\n item\r\n );\r\n setNewAttendances(newValues);\r\n }\r\n } \r\n const handleSetAttendanceNotice = (userName: any) => {\r\n setAttendance(match.params.lessonId, userName, 3);\r\n if(newAttendances && userName){\r\n var newValues = newAttendances.map(item => \r\n item.student?.userName === userName ? \r\n {...item, attendingCode: 3} :\r\n item\r\n );\r\n setNewAttendances(newValues);\r\n }\r\n }\r\n const handleSetAttendanceAbsent = (userName: any) => {\r\n setAttendance(match.params.lessonId, userName, 4);\r\n if(newAttendances && userName){\r\n var newValues = newAttendances.map(item => \r\n item.student?.userName === userName ? \r\n {...item, attendingCode: 4} :\r\n item\r\n );\r\n setNewAttendances(newValues);\r\n }\r\n } \r\n const handleAbsentCheck = (event: any) => {\r\n setAbsentCheck(event.target.checked);\r\n }\r\n return (\r\n \r\n \r\n

Lesson {currentLesson?.seqNo} Attendance of Course: {currentLesson?.courseName}

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

Date: {new Date(currentLesson?.date).toISOString().substring(0, 10)}

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

TimePeriod: {currentLesson?.timePeriod}

\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {absentCheck && \r\n \r\n } \r\n \r\n \r\n \r\n {newAttendances?.slice().sort((a, b) => {\r\n if (a.student.firstName.toLowerCase() > b.student.firstName.toLowerCase()) return 1;\r\n else if(a.student?.firstName.toLowerCase() < b.student.firstName.toLowerCase()) return -1;\r\n else {\r\n if(a.student.lastName.toLowerCase() > b.student.lastName.toLowerCase()) return 1;\r\n else return -1;\r\n }\r\n })\r\n .map((attendance, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {absentCheck && \r\n }\r\n \r\n )}\r\n \r\n
#Full NameCityEmailOn Time?Roll CallAttended?
{index + 1}{attendance.student.firstName} {attendance.student.lastName}{attendance.student.city}{attendance.student.email}\r\n {attendance.attendingCode === 1 ? 'Yes' : 'No'}\r\n \r\n {attendance.attendingCode === 1 && (\r\n handleSetAttendanceNA(attendance.student?.userName)}>\r\n )}\r\n {attendance.attendingCode !== 1 && (\r\n handleSetAttendanceOnTime(attendance.student?.userName)}> \r\n )}\r\n \r\n {attendance.attendingCode === 0 && (\r\n \r\n handleSetAttendanceLate(attendance.student?.userName)}> \r\n handleSetAttendanceNotice(attendance.student?.userName)}> \r\n handleSetAttendanceAbsent(attendance.student?.userName)}> \r\n \r\n )}\r\n {attendance.attendingCode === 2 && (\r\n \r\n \r\n handleSetAttendanceNotice(attendance.student?.userName)}> \r\n handleSetAttendanceAbsent(attendance.student?.userName)}> \r\n \r\n )} \r\n {attendance.attendingCode === 3 && (\r\n \r\n handleSetAttendanceLate(attendance.student?.userName)}> \r\n \r\n handleSetAttendanceAbsent(attendance.student?.userName)}> \r\n \r\n )}\r\n {attendance.attendingCode === 4 && (\r\n \r\n handleSetAttendanceLate(attendance.student?.userName)}> \r\n handleSetAttendanceNotice(attendance.student?.userName)}> \r\n \r\n \r\n )} \r\n
\r\n
\r\n {newAttendances.filter(x=>x.attendingCode === 1).length} of {newAttendances.length} students attended on time.\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default AssistantAttendanceForm\r\n","import React, {useState, useEffect, useContext} from 'react'\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { EditorState, ContentState, convertToRaw } from 'draft-js';\r\nimport { Editor } from 'react-draft-wysiwyg';\r\nimport draftToHtml from 'draftjs-to-html';\r\nimport htmlToDraft from 'html-to-draftjs';\r\nimport '../../app/layout/editorStyle.css';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\n\r\nconst initialValues = {\r\n title: '',\r\n deadline: new Date(Date.now() + 13*24*60*60*1000).toISOString().substring(0, 10),\r\n seqNo: 1,\r\n submitMode: 'Both'\r\n};\r\n\r\nconst EditProblemForm = ({lessonId, problem}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {addProblem, updateProblem} = rootStore.assignmentStore;\r\n const {closeModal} = rootStore.modalStore;\r\n const [values, setValues] = useState(initialValues); \r\n const [submitting, setSubmitting] = useState(false);\r\n const [editorState, setEditorState] = useState(EditorState.createEmpty());\r\n const onEditorStateChange = (editState) => {\r\n setEditorState(editState);\r\n };\r\n\r\n useEffect(() => {\r\n if(problem) { \r\n setValues({\r\n title: problem.title,\r\n deadline: new Date(Date.now() + 7*24*60*60*1000).toISOString().substring(0, 10),\r\n seqNo: problem.seqNo,\r\n submitMode: problem.submitMode\r\n });\r\n const blocksFromHTML = htmlToDraft(problem.description);\r\n const state = ContentState.createFromBlockArray(\r\n blocksFromHTML.contentBlocks,\r\n blocksFromHTML.entityMap\r\n );\r\n setEditorState(EditorState.createWithContent(state)); \r\n }\r\n }, [problem]);\r\n\r\n const handleChange = (event) => {\r\n const { name, value } = event.target;\r\n setValues({ ...values, [name]: value });\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n var currentContent = editorState.getCurrentContent();\r\n setSubmitting(true);\r\n if(values.title.length > 0 && currentContent && values.seqNo){\r\n var markup = draftToHtml(convertToRaw(currentContent));\r\n var url = ''; \r\n if(problem){\r\n updateProblem(problem.id, values.title, url, markup, values.seqNo.toString(), \r\n values.deadline, values.submitMode)\r\n .finally(()=>{\r\n setSubmitting(false);\r\n });\r\n closeModal(); \r\n }\r\n else{\r\n addProblem(lessonId, values.title, url, markup, values.seqNo.toString(), \r\n values.deadline, values.submitMode)\r\n .finally(()=>{\r\n setSubmitting(false); \r\n });\r\n closeModal(); \r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Title\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n SeqNo\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n deadline\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Submit Mode\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n values.title && editorState.getCurrentContent() && values.seqNo &&\r\n !submitting && }\r\n {submitting && }\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default EditProblemForm\r\n","import React from 'react'\r\nimport Parser from 'html-react-parser';\r\nimport { Container } from 'react-grid-system';\r\n\r\nconst AssignmentProblemModal = ({title, description}) => {\r\n return (\r\n \r\n

{title}

\r\n {description && Parser(description)}\r\n
\r\n )\r\n}\r\n\r\nexport default AssignmentProblemModal\r\n","import React, {useState, useContext, useEffect} from 'react'\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\n\r\nconst initialValues = {\r\n title: '',\r\n url: '',\r\n deadline: new Date(Date.now() + 13*24*60*60*1000).toISOString().substring(0, 10),\r\n seqNo: 1,\r\n submitMode: 'Both'\r\n};\r\n\r\nconst EditProblemLinkForm = ({lessonId, problem}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { addProblem, updateProblem } = rootStore.assignmentStore;\r\n const {closeModal} = rootStore.modalStore; \r\n const [values, setValues] = useState(initialValues); \r\n const [submitting, setSubmitting] = useState(false);\r\n\r\n useEffect(() => {\r\n if(problem){\r\n setValues({\r\n title: problem.title,\r\n url: problem.url,\r\n deadline: new Date(Date.now() + 7*24*60*60*1000).toISOString().substring(0, 10),\r\n seqNo: problem.seqNo,\r\n submitMode: problem.submitMode\r\n });\r\n }\r\n }, [problem])\r\n const handleChange = (event) => {\r\n const { name, value } = event.target;\r\n setValues({ ...values, [name]: value });\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n setSubmitting(true);\r\n if(values.title.length > 0 && values.url.length > 0 && values.seqNo){\r\n var content = '';\r\n if(problem){\r\n updateProblem(problem.id, values.title, values.url, content, values.seqNo.toString(), \r\n values.deadline, values.submitMode)\r\n .finally(()=>{\r\n setSubmitting(false);\r\n });\r\n closeModal();\r\n }\r\n else {\r\n addProblem(lessonId, values.title, values.url, content, values.seqNo.toString(), \r\n values.deadline, values.submitMode)\r\n .finally(()=>{\r\n setSubmitting(false);\r\n });\r\n closeModal();\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Title\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n hyper link\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n SeqNo\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n deadline\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Submit Mode\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n values.title && values.url && values.seqNo &&\r\n !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default EditProblemLinkForm\r\n","import React, {useState, useContext, useMemo} from 'react'\r\nimport {useDropzone} from 'react-dropzone'\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\n\r\nconst initialValues = {\r\n title: '',\r\n deadline: new Date(Date.now() + 7*24*60*60*1000).toISOString().substring(0, 10),\r\n seqNo: 1,\r\n submitMode: 'Both' \r\n};\r\n\r\nconst baseStyle = {\r\n flex: 1,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n padding: '20px',\r\n borderWidth: 2,\r\n borderRadius: 2,\r\n borderColor: '#eeeeee',\r\n borderStyle: 'dashed',\r\n backgroundColor: '#fafafa',\r\n color: '#bdbdbd',\r\n outline: 'none',\r\n transition: 'border .24s ease-in-out'\r\n};\r\n\r\nconst activeStyle = {\r\n borderColor: '#2196f3'\r\n};\r\n\r\nconst acceptStyle = {\r\n borderColor: '#00e676'\r\n};\r\n\r\nconst rejectStyle = {\r\n borderColor: '#ff1744'\r\n};\r\n\r\nconst AddProblemAttachForm = ({lessonId}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {addProblemAttach } = rootStore.assignmentStore;\r\n const {closeModal} = rootStore.modalStore;\t \r\n const [values, setValues] = useState(initialValues); \r\n const [file, setFile] = useState(null);\r\n const [submitting, setSubmitting] = useState(false);\r\n\r\n const {\r\n getRootProps,\r\n getInputProps,\r\n isDragActive,\r\n isDragAccept,\r\n isDragReject\r\n } = useDropzone({\r\n accept: 'image/*, application/pdf, .zip', \r\n maxFiles: 1,\r\n onDrop: acceptedFiles => { \r\n // attach file\r\n setFile(acceptedFiles[0]);\r\n\r\n }\r\n });\r\n\r\n const style = useMemo(() => ({\r\n ...baseStyle,\r\n ...(isDragActive ? activeStyle : {}),\r\n ...(isDragAccept ? acceptStyle : {}),\r\n ...(isDragReject ? rejectStyle : {})\r\n }), [\r\n isDragActive,\r\n isDragReject,\r\n isDragAccept\r\n ]);\r\n\r\n const handleChange = (event) => {\r\n const { name, value } = event.target;\r\n setValues({ ...values, [name]: value });\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n if(values.title.length > 0 && values.seqNo && file){\r\n setSubmitting(true); \r\n addProblemAttach(lessonId, values.title, values.seqNo.toString(), \r\n values.deadline, values.submitMode, file)\r\n .finally(()=>{\r\n setSubmitting(false);\r\n });\r\n closeModal();\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Title\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n SeqNo\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n deadline\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Submit Mode\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n isDragActive ?\r\n

Drop the files here ...

:\r\n

Drag 'n' drop one file here, or click to select one file

\r\n }\r\n

Only image/pdf/zip file is allowed

\r\n
\r\n \r\n \r\n \r\n Attachment\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n values.title && values.seqNo && file &&\r\n !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default AddProblemAttachForm\r\n","import React, {useState, useContext} from 'react'\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { EditorState, convertToRaw } from 'draft-js';\r\nimport { Editor } from 'react-draft-wysiwyg';\r\nimport draftToHtml from 'draftjs-to-html';\r\nimport '../../app/layout/editorStyle.css';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\n\r\nconst AddAssignmentResourceText = ({lessonId}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {addAssignmentResourceText} = rootStore.assignmentStore;\r\n const {closeModal} = rootStore.modalStore;\r\n const [title, setTitle] = useState('');\r\n const [submitting, setSubmitting] = useState(false);\r\n const [editorState, setEditorState] = useState(EditorState.createEmpty());\r\n const onEditorStateChange = (editState) => {\r\n setEditorState(editState);\r\n };\r\n \r\n const handleTitleChange = (event) => {\r\n const { value } = event.target;\r\n setTitle(value);\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n var currentContent = editorState.getCurrentContent();\r\n if(title.length > 0 && currentContent){\r\n setSubmitting(true); \r\n addAssignmentResourceText(lessonId, title, draftToHtml(convertToRaw(currentContent)))\r\n .finally(() =>{\r\n setSubmitting(false); \r\n closeModal(); \r\n });\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Title\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n title && editorState.getCurrentContent() &&\r\n !submitting && }\r\n {submitting && }\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default AddAssignmentResourceText\r\n","import React, {useState, useContext} from 'react'\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\n\r\nconst initialValues = {\r\n title: '',\r\n url: ''\r\n};\r\n\r\nconst AddAssignmentResourceLink = ({lessonId}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {addAssignmentResourceLink} = rootStore.assignmentStore;\r\n const {closeModal} = rootStore.modalStore; \r\n const [values, setValues] = useState(initialValues);\r\n const [submitting, setSubmitting] = useState(false);\r\n\r\n const handleChange = (event) => {\r\n const { name, value } = event.target;\r\n setValues({ ...values, [name]: value });\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n if(values.title.length > 0 && values.url.length > 0 ){\r\n setSubmitting(true); \r\n addAssignmentResourceLink(lessonId, values.title, values.url)\r\n .finally(() =>{\r\n setSubmitting(false);\r\n closeModal();\r\n });\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Title\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n hyper link\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n values.title && values.url &&\r\n !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default AddAssignmentResourceLink\r\n","import React, {useContext, useMemo} from 'react'\r\nimport {useDropzone} from 'react-dropzone'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\n\r\nconst baseStyle = {\r\n flex: 1,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n padding: '20px',\r\n borderWidth: 2,\r\n borderRadius: 2,\r\n borderColor: '#eeeeee',\r\n borderStyle: 'dashed',\r\n backgroundColor: '#fafafa',\r\n color: '#bdbdbd',\r\n outline: 'none',\r\n transition: 'border .24s ease-in-out'\r\n};\r\n\r\nconst activeStyle = {\r\n borderColor: '#2196f3'\r\n};\r\n\r\nconst acceptStyle = {\r\n borderColor: '#00e676'\r\n};\r\n\r\nconst rejectStyle = {\r\n borderColor: '#ff1744'\r\n};\r\n\r\nconst AddAssignmentResourceAttach = ({lessonId}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {addAssignmentResourceAttach} = rootStore.assignmentStore; \r\n const {\r\n getRootProps,\r\n getInputProps,\r\n isDragActive,\r\n isDragAccept,\r\n isDragReject\r\n } = useDropzone({\r\n accept: 'image/*, application/pdf, .zip', \r\n maxFiles: 1,\r\n onDrop: acceptedFiles => { \r\n // attach file\r\n var file = acceptedFiles[0];\r\n addAssignmentResourceAttach(lessonId, file.name, file);\r\n }\r\n });\r\n\r\n const style = useMemo(() => ({\r\n ...baseStyle,\r\n ...(isDragActive ? activeStyle : {}),\r\n ...(isDragAccept ? acceptStyle : {}),\r\n ...(isDragReject ? rejectStyle : {})\r\n }), [\r\n isDragActive,\r\n isDragReject,\r\n isDragAccept\r\n ]); \r\n\r\n return (\r\n
\r\n \r\n {\r\n isDragActive ?\r\n

Drop the files here ...

:\r\n

Drag 'n' drop one file here, or click to select one file

\r\n }\r\n

Only image/pdf/zip file is allowed

\r\n
\r\n )\r\n}\r\n\r\nexport default AddAssignmentResourceAttach\r\n","import React, {useState, useContext} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\n\r\n\r\nconst SetAssignmentResourceSeqNo = ({assignmentResourceId, seqNo}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {setResourceSeqNo} = rootStore.assignmentStore;\r\n const {closeModal} = rootStore.modalStore; \r\n const [newSeqNo, setNewSeqNo] = useState(seqNo);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [isChanged, setIsChanged] = useState(false);\r\n\r\n const handleChange = (event) => {\r\n const {value} = event.target;\r\n setNewSeqNo(value);\r\n if(value && value !== seqNo) {\r\n setIsChanged(true);\r\n }\r\n else{\r\n setIsChanged(false);\r\n }\r\n }\r\n const handleSubmit = (event) => {\r\n setSubmitting(true);\r\n setResourceSeqNo(assignmentResourceId, parseInt(newSeqNo));\r\n setSubmitting(false);\r\n closeModal();\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n SeqNo\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isChanged && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SetAssignmentResourceSeqNo\r\n","import React from 'react'\r\nimport Parser from 'html-react-parser';\r\nimport { Container } from 'react-grid-system';\r\n\r\nconst AssignmentResourceModal = ({content}) => {\r\n return (\r\n \r\n {content && Parser(content)}\r\n \r\n )\r\n}\r\n\r\nexport default AssignmentResourceModal\r\n","import React, {useState, useContext, useEffect} from 'react'\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\n\r\nconst initialValues = {\r\n title: '',\r\n courseTopicId: '',\r\n topicItemId: '',\r\n deadline: new Date(Date.now() + 7*24*60*60*1000).toISOString().substring(0, 10),\r\n seqNo: 1,\r\n submitMode: 'Code Only' \r\n};\r\n\r\nconst PickFromWorkbookForm = ({lessonId, problem}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { addPickProblem, updatePickProblem } = rootStore.assignmentStore;\r\n const {closeModal} = rootStore.modalStore;\t \r\n const [values, setValues] = useState(initialValues); \r\n const [submitting, setSubmitting] = useState(false);\r\n\r\n useEffect(() => {\r\n if(problem){\r\n setValues({\r\n title: problem.title,\r\n courseTopicId: problem.courseTopicId,\r\n topicItemId: problem.topicItemId,\r\n deadline: new Date(Date.now() + 13*24*60*60*1000).toISOString().substring(0, 10),\r\n seqNo: problem.seqNo,\r\n submitMode: problem.submitMode\r\n });\r\n }\r\n }, [problem])\r\n const handleChange = (event) => {\r\n const { name, value } = event.target;\r\n setValues({ ...values, [name]: value });\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n setSubmitting(true);\r\n if(values.title.length > 0 && values.seqNo){\r\n if(problem){\r\n updatePickProblem(problem.id, values.title, values.courseTopicId, values.topicItemId, \r\n values.seqNo.toString(), values.deadline, values.submitMode)\r\n .finally(()=>{\r\n setSubmitting(false);\r\n });\r\n closeModal();\r\n }\r\n else {\r\n addPickProblem(lessonId, values.title, values.courseTopicId, values.topicItemId, \r\n values.seqNo.toString(), values.deadline, values.submitMode)\r\n .finally(()=>{\r\n setSubmitting(false);\r\n });\r\n closeModal(); \r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Title\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Course Topic Id\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Topic Item Id\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n SeqNo\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n deadline\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Submit Mode\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n values.title && values.courseTopicId && values.topicItemId && values.seqNo &&\r\n !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default PickFromWorkbookForm\r\n","import React, {useState, useContext} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\n\r\nconst SetAssignmentSeqNo = ({assignmentId, seqNo}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {setSeqNo} = rootStore.assignmentStore;\r\n const {closeModal} = rootStore.modalStore;\r\n const [newSeqNo, setNewSeqNo] = useState(seqNo);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [isChanged, setIsChanged] = useState(false);\r\n\r\n const handleChange = (event) => {\r\n const {value} = event.target;\r\n setNewSeqNo(value);\r\n if(value && value !== seqNo) {\r\n setIsChanged(true);\r\n }\r\n else {\r\n setIsChanged(false);\r\n }\r\n }\r\n const handleSubmit = (event) => {\r\n setSubmitting(true);\r\n setSeqNo(assignmentId, parseInt(newSeqNo));\r\n setSubmitting(false);\r\n closeModal();\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n SeqNo\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isChanged && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SetAssignmentSeqNo","import React, {useState, useContext} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\n\r\nconst SetAssignmentDeadline = ({assignmentId, deadline}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {setDeadline} = rootStore.assignmentStore;\r\n const {closeModal} = rootStore.modalStore;\r\n const [newDeadline, setNewDeadline] = useState(new Date(deadline).toISOString().substring(0, 10));\r\n const [submitting, setSubmitting] = useState(false);\r\n const [isChanged, setIsChanged] = useState(false); \r\n\r\n const handleDeadlineChange = (event) => {\r\n const {value} = event.target;\r\n setNewDeadline(value);\r\n if(value && value !== deadline) {\r\n setIsChanged(true);\r\n }\r\n else {\r\n setIsChanged(false); \r\n }\r\n }; \r\n\r\n const handleSubmit = (event) => {\r\n setSubmitting(true);\r\n setDeadline(assignmentId, newDeadline);\r\n setSubmitting(false);\r\n closeModal();\r\n } \r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Deadline\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isChanged && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SetAssignmentDeadline","import React, {useState, useContext} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\n\r\nconst SetAnalysisUrlModal = ({assignmentId, analysisUrl}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {setAnalysisUrl} = rootStore.assignmentStore;\r\n const {closeModal} = rootStore.modalStore;\r\n const [newAnalysisUrl, setNewAnalysisUrl] = useState(analysisUrl);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [isChanged, setIsChanged] = useState(false); \r\n\r\n const handleAnalysisUrlChange = (event) => {\r\n const {value} = event.target;\r\n setNewAnalysisUrl(value);\r\n if(value !== analysisUrl) {\r\n setIsChanged(true);\r\n }\r\n else {\r\n setIsChanged(false); \r\n }\r\n }; \r\n\r\n const handleSubmit = (event) => {\r\n setSubmitting(true);\r\n setAnalysisUrl(assignmentId, newAnalysisUrl);\r\n setSubmitting(false);\r\n closeModal();\r\n } \r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Analysis Url\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isChanged && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SetAnalysisUrlModal","import React, { useContext, useEffect} from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Table, Row, Button } from 'react-bootstrap'\r\nimport { Link } from 'react-router-dom';\r\nimport EditProblemForm from './EditProblemForm';\r\nimport AssignmentProblemModal from './AssignmentProblemModal';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport 'react-confirm-alert/src/react-confirm-alert.css'; // Import css\r\nimport EditProblemLinkForm from './EditProblemLinkForm';\r\nimport AddProblemAttachForm from './AddProblemAttachForm';\r\nimport AddAssignmentResourceText from './AddAssignmentResourceText';\r\nimport AddAssignmentResourceLink from './AddAssignmentResourceLink';\r\nimport AddAssignmentResourceAttach from './AddAssignmentResourceAttach';\r\nimport SetAssignmentResourceSeqNo from './SetAssignmentResourceSeqNo';\r\nimport AssignmentResourceModal from'./AssignmentResourceModal';\r\nimport PickFromWorkbookForm from './PickFromWorkbookForm';\r\nimport SetAssignmentSeqNo from './SetAssignmentSeqNo';\r\nimport SetAssignmentDeadline from './SetAssignmentDeadline';\r\nimport SetAnalysisUrlModal from './SetAnalysisUrlModal';\r\n\r\ninterface LessonParams {\r\n lessonId: string;\r\n}\r\n\r\nconst AssignmentContentForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {assignmentContent, loadAssignmentContent, removeProblem, removeResource } = rootStore.assignmentStore;\r\n const { openModal} = rootStore.modalStore;\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadAssignmentContent(match.params.lessonId); \r\n }\r\n if(match.params.lessonId){\r\n loadValues();\r\n } \r\n }, [loadAssignmentContent, match.params.lessonId]);\r\n \r\n const handleRemoveAssignment = (problemId: string) => {\r\n confirmAlert({\r\n title: 'Confirm to delete',\r\n message: 'Are you sure you want to delete it?',\r\n buttons: [\r\n {\r\n label: 'Yes',\r\n onClick: () => {\r\n removeProblem(problemId) \r\n } \r\n },\r\n {\r\n label: 'No',\r\n onClick: () => {}\r\n }\r\n ]\r\n }) \r\n };\r\n\r\n const handleRemoveResource = (id: any) => {\r\n confirmAlert({\r\n title: 'Confirm to delete',\r\n message: 'Are you sure you want to delete it?',\r\n buttons: [\r\n {\r\n label: 'Yes',\r\n onClick: () => {\r\n removeResource(match.params.lessonId, id) \r\n } \r\n },\r\n {\r\n label: 'No',\r\n onClick: () => {}\r\n }\r\n ]\r\n }) \r\n }\r\n return (\r\n
\r\n \r\n

Lesson {assignmentContent?.seqNo} Assignment of Course: {assignmentContent?.courseName}

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

Date: {assignmentContent && (new Date(assignmentContent.date)).toISOString().substring(0, 10)}

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

TimePeriod: {assignmentContent?.timePeriod}

\r\n openModal(\"Add new problem (Text)\", , 'modal-pane-2')}> \r\n \r\n openModal(\"Add new problem (Link)\", , 'modal-pane-2')}> \r\n \r\n openModal(\"Add new problem (Attach)\", , 'modal-pane-2')}> \r\n \r\n openModal(\"Pick from work book\", , 'modal-pane-2')}> \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {assignmentContent?.assignments?.slice().sort((a, b) => a.seqNo > b.seqNo ? 1 : -1)\r\n .map(assignment =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
#TitleDeadlineAnalysisDiscussSubmissionsOperation
\r\n {assignment.seqNo}\r\n openModal(`Set SeqNo for ${assignment.title}`, \r\n , 'modal-pane-2')} > \r\n \r\n \r\n {assignment.url && (\r\n {assignment.title} \r\n )}\r\n {!assignment.url && (\r\n openModal(`problem ${assignment.title}`, \r\n , 'modal-pane-1')}>\r\n {assignment.title} \r\n \r\n )}\r\n \r\n {new Date(assignment.deadline).toISOString().substring(0, 10)}\r\n openModal(`Set Deadline for ${assignment.title}`, \r\n , 'modal-pane-2')} > \r\n \r\n \r\n {assignment.analysisUrl && (\r\n Video \r\n )}\r\n openModal(`problem ${assignment.title}`, \r\n , 'modal-pane-1')}> \r\n \r\n \r\n {assignment.courseTopicId && assignment.topicItemId && (\r\n \r\n Discuss\r\n \r\n )}\r\n {(!assignment.courseTopicId || !assignment.topicItemId) && (\r\n \r\n Discuss\r\n \r\n )}\r\n \r\n {assignment.numOfStudentAssignments > 0 && (\r\n \r\n {assignment.numOfStudentAssignments} submissions\r\n \r\n )} \r\n \r\n
\r\n openModal(\"Update problem (Text)\", , 'modal-pane-2')}> \r\n \r\n openModal(\"Update problem (Link)\", , 'modal-pane-2')}> \r\n \r\n handleRemoveAssignment(assignment.id)}> \r\n
\r\n
\r\n\r\n
\r\n

Resources

\r\n openModal(\"Add new resource (text)\", , 'modal-pane-1')}> \r\n \r\n openModal(\"Add new resource (link)\", , 'modal-pane-1')}> \r\n \r\n openModal(\"Add new resource (attachment)\", , 'modal-pane-1')}> \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {assignmentContent?.resources?.slice().sort((a, b) => a.seqNo > b.seqNo ? 1 : -1)\r\n .map(resource =>\r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#title
{resource.seqNo}\r\n openModal(`Set SeqNo for ${resource.title}`, \r\n , 'modal-pane-2')} > \r\n \r\n \r\n {resource.url && (\r\n {resource.title}\r\n )}\r\n {!resource.url && (\r\n openModal(`resource ${resource.title}`, , 'modal-pane-1')}>\r\n {resource.title}\r\n \r\n )}\r\n handleRemoveResource(resource.id)}>\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default observer(AssignmentContentForm)\r\n","import React, {useContext, useEffect} from 'react'\r\nimport { Container, Form, Col, Row} from 'react-bootstrap';\r\nimport Editor from 'react-simple-code-editor';\r\nimport { highlight, languages } from 'prismjs/components/prism-core';\r\nimport 'prismjs/components/prism-clike';\r\nimport 'prismjs/components/prism-javascript';\r\nimport \"prismjs/themes/prism.css\";\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\n\r\nconst StudentSubmissionsModal = ({problemId}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {studentSubmissions, loadStudentSubmissions, getProblem} = rootStore.assignmentStore;\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadStudentSubmissions(problemId);\r\n await getProblem(problemId);\r\n }\r\n loadValues();\r\n }, [loadStudentSubmissions, getProblem, problemId]);\r\n\r\n return (\r\n \r\n {studentSubmissions.map((assignment, index) => \r\n
\r\n \r\n \r\n \r\n
Student Name:
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {assignment.studentRemark && (\r\n \r\n \r\n \r\n Student's Remark:\r\n \r\n \r\n \r\n
\r\n

{assignment.studentRemark}

\r\n
\r\n \r\n
\r\n )}\r\n \r\n \r\n \r\n Code \r\n {assignment.grade === \"Great\" && } \r\n {assignment.grade === \"Acceptable\" && } \r\n {assignment.grade === \"Problematic\" && }\r\n {assignment.grade === \"Unacceptable\" && X} \r\n \r\n \r\n \r\n {}}\r\n highlight={code => highlight(code, languages.js)}\r\n padding={5}\r\n style={{\r\n fontFamily: '\"Fira code\", \"Fira Mono\", monospace',\r\n fontSize: 12,\r\n backgroundColor: 'aliceblue'\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Teacher's Remark: \r\n \r\n \r\n \r\n
\r\n

{assignment.teacherRemark}

\r\n
\r\n \r\n
\r\n
\r\n )}\r\n\r\n
\r\n )\r\n}\r\n\r\nexport default StudentSubmissionsModal\r\n","import React, { useContext, useEffect} from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Table, Row, Button } from 'react-bootstrap'\r\nimport { Link } from 'react-router-dom';\r\nimport AssignmentProblemModal from './AssignmentProblemModal';\r\nimport moment from 'moment';\r\nimport StudentSubmissionsModal from '../lesson/StudentSubmissionsModal';\r\nimport AssignmentResourceModal from './AssignmentResourceModal';\r\n\r\ninterface LessonParams {\r\n lessonId: string;\r\n}\r\n\r\n\r\nconst AdminAssignmentForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {assignmentContent, loadAssignmentContent } = rootStore.assignmentStore;\r\n const { openModal} = rootStore.modalStore;\r\n \r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadAssignmentContent(match.params.lessonId); \r\n }\r\n if(match.params.lessonId){\r\n loadValues();\r\n }\r\n }, [loadAssignmentContent, match.params.lessonId]);\r\n\r\n\r\n return (\r\n \r\n \r\n

Assignment {assignmentContent?.seqNo} of Course: {assignmentContent?.courseName}

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

Date: {assignmentContent && (new Date(assignmentContent.date)).toISOString().substr(0, 10)}

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

TimePeriod: {assignmentContent?.timePeriod}

\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {assignmentContent?.assignments?.slice().sort((a, b) => a.seqNo > b.seqNo ? 1 : -1)\r\n .map(assignment =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
#TitleDeadlineSubmission
{assignment.seqNo}\r\n {assignment.url && (\r\n {assignment.title} \r\n )}\r\n {!assignment.url && (\r\n openModal(`problem ${assignment.title}`, , 'modal-pane-1')}>\r\n {assignment.title} \r\n \r\n )}\r\n \r\n {moment(assignment.deadline).format('YYYY-MM-DD')}\r\n \r\n {assignment.numOfStudentAssignments > 0 && (\r\n openModal(`student submissions of ${assignment.title}`, , 'modal-pane-1')}>\r\n {assignment.numOfStudentAssignments} submissions\r\n \r\n )} \r\n
\r\n
\r\n

Resources

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {assignmentContent?.resources?.slice().sort((a, b) => a.seqNo > b.seqNo ? 1 : -1)\r\n .map(assignmentResource =>\r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#title
{assignmentResource.seqNo} \r\n \r\n {assignmentResource.url && (\r\n {assignmentResource.title}\r\n )}\r\n {!assignmentResource.url && (\r\n openModal(`resource ${assignmentResource.title}`, , 'modal-pane-1')}>\r\n {assignmentResource.title}\r\n \r\n )}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default AdminAssignmentForm\r\n","import React, { useContext, useEffect} from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Table, Row, Button } from 'react-bootstrap'\r\nimport { Link } from 'react-router-dom';\r\nimport AssignmentProblemModal from './AssignmentProblemModal';\r\nimport moment from 'moment';\r\nimport StudentSubmissionsModal from '../lesson/StudentSubmissionsModal';\r\nimport AssignmentResourceModal from './AssignmentResourceModal';\r\n\r\ninterface LessonParams {\r\n lessonId: string;\r\n}\r\n\r\nconst AssistantAssignmentForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {assignmentContent, loadAssignmentContent } = rootStore.assignmentStore;\r\n const { openModal} = rootStore.modalStore;\r\n \r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadAssignmentContent(match.params.lessonId); \r\n }\r\n if(match.params.lessonId){\r\n loadValues();\r\n }\r\n }, [loadAssignmentContent, match.params.lessonId]);\r\n\r\n\r\n return (\r\n \r\n \r\n

Assignment {assignmentContent?.seqNo} of Course: {assignmentContent?.courseName}

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

Date: {assignmentContent && (new Date(assignmentContent.date)).toISOString().substr(0, 10)}

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

TimePeriod: {assignmentContent?.timePeriod}

\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {assignmentContent?.assignments?.slice().sort((a, b) => a.seqNo > b.seqNo ? 1 : -1)\r\n .map(assignment =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
#TitleDeadlineSubmission
{assignment.seqNo}\r\n {assignment.url && (\r\n {assignment.title} \r\n )}\r\n {!assignment.url && (\r\n openModal(`problem ${assignment.title}`, , 'modal-pane-1')}>\r\n {assignment.title} \r\n \r\n )}\r\n \r\n {moment(assignment.deadline).format('YYYY-MM-DD')}\r\n \r\n {assignment.numOfStudentAssignments > 0 && (\r\n openModal(`student submissions of ${assignment.title}`, , 'modal-pane-1')}>\r\n {assignment.numOfStudentAssignments} submissions\r\n \r\n )} \r\n
\r\n
\r\n

Resources

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {assignmentContent?.resources?.slice().sort((a, b) => a.seqNo > b.seqNo ? 1 : -1)\r\n .map(assignmentResource =>\r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#title
{assignmentResource.seqNo} \r\n \r\n {assignmentResource.url && (\r\n {assignmentResource.title}\r\n )}\r\n {!assignmentResource.url && (\r\n openModal(`resource ${assignmentResource.title}`, , 'modal-pane-1')}>\r\n {assignmentResource.title}\r\n \r\n )}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default AssistantAssignmentForm\r\n","import React, { useContext, useEffect } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Container, Table} from 'react-bootstrap'\r\nimport { useHistory} from 'react-router-dom';\r\n\r\nconst StudentClassesform = () => {\r\n const history = useHistory();\r\n const rootStore = useContext(RootStoreContext); \r\n const {courses, loadStudentCourses} = rootStore.userStore;\r\n\r\n useEffect(() => {\r\n loadStudentCourses();\r\n }, [loadStudentCourses])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {courses && \r\n courses.map(course => (\r\n {\r\n history.push(`/s-classes/${course.courseCode}`); }\r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n
CodeNameLevelSart DateEnd DateScheduled TimeTeacherActive
{course.courseCode}{course.courseName}{course.subject!.level}{new Date(course.startDate).toISOString().substring(0, 10)}{new Date(course.endDate).toISOString().substring(0, 10)}{course.dayOfTheWeek + ' ' + course.timePeriod}{course.teacher!.firstName + ' ' + course.teacher!.lastName}{course.active ? 'Yes' : 'No'}
\r\n
\r\n ) \r\n}\r\n\r\nexport default observer(StudentClassesform)\r\n","import React from 'react';\r\nimport { Row, Col, Form, Table } from 'react-bootstrap';\r\n\r\nconst StudentClassInfo = ({courseContent}) => {\r\n const getLevel = () => {\r\n if(courseContent){\r\n switch(courseContent.subject.level){\r\n case 2:\r\n return 'Intermediate';\r\n case 3:\r\n return 'Advanced';\r\n case 4:\r\n return 'Challenging';\r\n default:\r\n return 'Beginner'; \r\n } \r\n }\r\n else return '';\r\n };\r\n\r\n return (\r\n
\r\n
\r\n

Course: {courseContent.courseName}

\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n Subject Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Subject Code\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Level\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Course Code\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Session\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Start Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n End Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Day of the week\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Time period\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n # of Lessons\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Teacher\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Description\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n

Assistants

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {courseContent?.assistants\r\n .slice().sort((a, b) => {\r\n if (a.firstName.toLowerCase() > b.firstName.toLowerCase()) return 1;\r\n else if(a.firstName.toLowerCase() < b.firstName.toLowerCase()) return -1;\r\n else {\r\n if(a.lastName.toLowerCase() > b.lastName.toLowerCase()) return 1;\r\n else return -1;\r\n }\r\n })\r\n .map((assistant, index) => \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#Full Name
{index+1}{assistant.firstName+' ' + assistant.lastName}
\r\n
\r\n \r\n ); \r\n}\r\n\r\nexport default StudentClassInfo\r\n","import React, { useContext, useEffect} from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Link } from 'react-router-dom';\r\nimport { Row, Col, Table, Button} from 'react-bootstrap';\r\nimport '../classes.css';\r\nimport StudentClassInfo from './StudentClassInfo';\r\nimport ContentModal from '../../app/common/modals/ContentModal';\r\nimport CodeModal from '../../app/common/modals/CodeModal';\r\nimport parse from 'html-react-parser';\r\n\r\ninterface ClassParams {\r\n courseCode: string;\r\n}\r\n\r\nconst StudentClassForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {courseContent, loadCourseStudentContent} = rootStore.courseStore;\r\n const { openModal} = rootStore.modalStore;\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadCourseStudentContent(match.params.courseCode);\r\n }\r\n if(match.params.courseCode){\r\n loadValues();\r\n }\r\n }, [loadCourseStudentContent, match.params.courseCode])\r\n\r\n return (\r\n
\r\n
\r\n

Course: {courseContent?.courseName}

\r\n \r\n \r\n \r\n {courseContent?.active &&\r\n \r\n \r\n \r\n } \r\n \r\n
\r\n \r\n \r\n \r\n

\r\n Scheduled time\r\n

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

\r\n {courseContent?.dayOfTheWeek + ' ' + courseContent?.timePeriod}\r\n

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

Notice\r\n

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

{courseContent?.notice && parse(courseContent?.notice)}

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

Lessons

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {courseContent?.lessons?.slice().sort((a, b) => {\r\n if(a.date > b.date) return 1;\r\n else if(a.date < b.date) return -1;\r\n else if(a.timePeriod > b.timePeriod) return 1;\r\n else return -1;\r\n }).map((lesson, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#TopicDateTime PeriodVideoAssignment
{lesson.seqNo}\r\n \r\n {lesson.topic}\r\n \r\n {new Date(lesson.date).toISOString().substring(0, 10)}{lesson.timePeriod}\r\n {lesson.url && (\r\n video\r\n )}\r\n \r\n {lesson.numOfAssignments > 0 && \r\n \r\n Assignment\r\n \r\n }\r\n
\r\n\r\n
\r\n

Resources

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {courseContent?.courseResources?.map((courseResource, index) =>\r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#title
{index+1}\r\n {courseResource.url && (\r\n {courseResource.title}\r\n )}\r\n {!courseResource.url && (\r\n openModal(`resource ${courseResource.title}`, , 'modal-pane-1')}>\r\n {courseResource.title}\r\n \r\n )}\r\n
\r\n\r\n {courseContent?.nonSepTopics?.map((topic, idx) => \r\n \r\n
\r\n

{topic.name}

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {topic.hasConcepts &&\r\n ()\r\n }\r\n {topic.hasAnalysis &&\r\n ()\r\n }\r\n {topic.hasCode &&\r\n ()\r\n } \r\n \r\n \r\n \r\n {topic.topicItems.map(topicItem => \r\n \r\n \r\n \r\n \r\n {topic.hasConcepts && (\r\n \r\n )}\r\n {topic.hasAnalysis && (\r\n () \r\n )}\r\n {topic.hasCode &&\r\n ()\r\n } \r\n \r\n )}\r\n \r\n
CategorySeqNoTitleConceptsAnalysisCode
{topicItem.category}{topicItem.seqNo}\r\n {topicItem.url && (\r\n {topicItem.title}\r\n )} \r\n {topicItem.concepts} \r\n {topicItem.analysisUrl && (\r\n Analysis\r\n )} \r\n \r\n {topicItem.code && (\r\n openModal(`Code for ${topicItem.title}`, \r\n , 'modal-pane-1')}>\r\n Code\r\n \r\n )} \r\n
\r\n
\r\n )}\r\n\r\n {courseContent?.sepTopics?.map((topic, idx) =>\r\n
\r\n {topic.isWorkbook && (\r\n \r\n

{topic.name}

\r\n \r\n )} \r\n {!topic.isWorkbook && (\r\n \r\n

{topic.name}

\r\n \r\n )} \r\n
\r\n )} \r\n
\r\n );\r\n}\r\n\r\nexport default observer(StudentClassForm)\r\n","import React, { useContext, useEffect } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Container, Table} from 'react-bootstrap'\r\nimport StudentReportModal from '../adminClasses/StudentReportModal';\r\n\r\nconst ParentClassesForm = () => {\r\n const rootStore = useContext(RootStoreContext); \r\n const { openModal} = rootStore.modalStore; \r\n const {parentCourses, loadParentCourses} = rootStore.userStore; \r\n\r\n useEffect(() => {\r\n loadParentCourses();\r\n }, [loadParentCourses])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {parentCourses && \r\n parentCourses.map(course => (\r\n {\r\n openModal(`report of ${course.studentFullName}`, \r\n , 'modal-pane-1') \r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n
NameStudent NameLevelStart DateEnd DateScheduled TimeTeacherActive
{course.courseName}{course.studentFullName}{course.subject?.level}{new Date(course.startDate).toISOString().substring(0, 10)}{new Date(course.endDate).toISOString().substring(0, 10)}{course.dayOfTheWeek + ' ' + course.timePeriod}{course.teacher!.firstName + ' ' + course.teacher!.lastName}{course.active ? 'Yes' : 'No'}
\r\n
\r\n ) \r\n}\r\n\r\nexport default observer(ParentClassesForm)","import React, {useState, useContext} from 'react'\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport Editor from 'react-simple-code-editor';\r\nimport { highlight, languages } from 'prismjs/components/prism-core';\r\nimport 'prismjs/components/prism-clike';\r\nimport 'prismjs/components/prism-javascript';\r\nimport \"prismjs/themes/prism.css\";\r\n\r\nconst SubmitCodeModal = ({problemId}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {submitCode} = rootStore.assignmentStore;\r\n const [remark, setRemark] = useState('');\r\n const [code, setCode] = useState('');\r\n const [submitting, setSubmitting] = useState(false);\r\n\r\n const handleRemarkChange = (event) => {\r\n const {value} = event.target;\r\n setRemark(value);\r\n }\r\n\r\n const handleSubmit = () => {\r\n setSubmitting(true);\r\n submitCode(problemId, remark, code);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Remark:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Code\r\n \r\n \r\n \r\n setCode(code)}\r\n highlight={code => highlight(code, languages.js)}\r\n padding={5}\r\n style={{\r\n fontFamily: '\"Fira code\", \"Fira Mono\", monospace',\r\n fontSize: 12,\r\n backgroundColor: 'aliceblue'\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n {code && !submitting && }\r\n {submitting && }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default SubmitCodeModal\r\n","import React, {useState, useContext, useMemo} from 'react'\r\nimport {useDropzone} from 'react-dropzone'\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\n\r\nconst baseStyle = {\r\n flex: 1,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n padding: '20px',\r\n borderWidth: 2,\r\n borderRadius: 2,\r\n borderColor: '#eeeeee',\r\n borderStyle: 'dashed',\r\n backgroundColor: '#fafafa',\r\n color: '#bdbdbd',\r\n outline: 'none',\r\n transition: 'border .24s ease-in-out'\r\n};\r\n\r\nconst activeStyle = {\r\n borderColor: '#2196f3'\r\n};\r\n\r\nconst acceptStyle = {\r\n borderColor: '#00e676'\r\n};\r\n\r\nconst rejectStyle = {\r\n borderColor: '#ff1744'\r\n};\r\n\r\nconst SubmitAttachModal = ({problemId}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {submitAttach} = rootStore.assignmentStore;\r\n const [remark, setRemark] = useState('');\r\n const [file, setFile] = useState(null);\r\n const [submitting, setSubmitting] = useState(false);\r\n\r\n const {\r\n getRootProps,\r\n getInputProps,\r\n isDragActive,\r\n isDragAccept,\r\n isDragReject\r\n } = useDropzone({\r\n accept: 'image/*, application/pdf, .zip', \r\n maxFiles: 1,\r\n onDrop: acceptedFiles => { \r\n // attach file\r\n setFile(acceptedFiles[0]);\r\n\r\n }\r\n });\r\n\r\n const style = useMemo(() => ({\r\n ...baseStyle,\r\n ...(isDragActive ? activeStyle : {}),\r\n ...(isDragAccept ? acceptStyle : {}),\r\n ...(isDragReject ? rejectStyle : {})\r\n }), [\r\n isDragActive,\r\n isDragReject,\r\n isDragAccept\r\n ]);\r\n\r\n const handleRemarkChange = (event) => {\r\n const {value} = event.target;\r\n setRemark(value);\r\n }\r\n\r\n const handleSubmit = () => {\r\n setSubmitting(true);\r\n submitAttach(problemId, remark, file);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Remark:\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n isDragActive ?\r\n

Drop the files here ...

:\r\n

Drag 'n' drop one file here, or click to select one file

\r\n }\r\n

Only image/pdf/zip file is allowed

\r\n
\r\n \r\n \r\n \r\n Attachment\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {file && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default SubmitAttachModal\r\n","import React from 'react'\r\nimport { Container, Form, Col, Row } from 'react-bootstrap';\r\nimport Editor from 'react-simple-code-editor';\r\nimport { highlight, languages } from 'prismjs/components/prism-core';\r\nimport 'prismjs/components/prism-clike';\r\nimport 'prismjs/components/prism-javascript';\r\nimport \"prismjs/themes/prism.css\";\r\n\r\nconst LastSubmitModal = ({studentRemark, grade, teacherRemark, code, attachment, attachmentUrl}) => {\r\n return (\r\n \r\n \r\n \r\n \r\n Remark:\r\n \r\n \r\n \r\n
\r\n

{studentRemark}

\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Teacher's Remark:\r\n \r\n \r\n \r\n
\r\n

{teacherRemark}

\r\n
\r\n \r\n
\r\n {code && (\r\n \r\n \r\n \r\n Code \r\n {grade === \"Great\" && } \r\n {grade === \"Acceptable\" && } \r\n {grade === \"Problematic\" && }\r\n {grade === \"Unacceptable\" && X} \r\n \r\n \r\n \r\n {}}\r\n highlight={code => highlight(code, languages.js)}\r\n padding={5}\r\n style={{\r\n fontFamily: '\"Fira code\", \"Fira Mono\", monospace',\r\n fontSize: 12,\r\n backgroundColor: 'aliceblue'\r\n }}\r\n />\r\n \r\n \r\n )}\r\n {attachment && (\r\n \r\n \r\n \r\n Attachment\r\n \r\n \r\n \r\n {attachment} \r\n \r\n \r\n )} \r\n
\r\n )\r\n}\r\n\r\nexport default LastSubmitModal\r\n","import React, { Fragment, useContext, useEffect} from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Table, Row, Button } from 'react-bootstrap'\r\nimport { Link } from 'react-router-dom';\r\nimport SubmitCodeModal from '../lesson/SubmitCodeModal';\r\nimport SubmitAttachModal from '../lesson/SubmitAttachModal';\r\nimport AssignmentProblemModal from './AssignmentProblemModal';\r\nimport LastSubmitModal from '../lesson/LastSubmitModal';\r\nimport moment from 'moment';\r\nimport { observer } from 'mobx-react-lite';\r\nimport './assignment.css';\r\nimport AssignmentResourceModal from './AssignmentResourceModal';\r\n\r\ninterface LessonParams {\r\n lessonId: string;\r\n}\r\n\r\nconst StudentAssignmentForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {studentAssignmentContent, loadStudentAssignmentContent } = rootStore.assignmentStore;\r\n const { openModal} = rootStore.modalStore;\r\n \r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadStudentAssignmentContent(match.params.lessonId); \r\n }\r\n if(match.params.lessonId){\r\n loadValues();\r\n }\r\n }, [loadStudentAssignmentContent, match.params.lessonId]);\r\n \r\n return (\r\n
\r\n \r\n

Assignment {studentAssignmentContent?.seqNo} of Course: {studentAssignmentContent?.courseName}

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

Date: {studentAssignmentContent && (new Date(studentAssignmentContent.date)).toISOString().substr(0, 10)}

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

TimePeriod: {studentAssignmentContent?.timePeriod}

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {studentAssignmentContent?.studentAssignments?.slice().sort((a, b) => a.seqNo > b.seqNo ? 1 : -1)\r\n .map(assignment =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
#TitleDeadlineAnalysisDiscussLast SubmitSubmit
{assignment.seqNo}\r\n {assignment.url && (\r\n {assignment.title} \r\n )}\r\n {!assignment.url && (\r\n openModal(`problem ${assignment.title}`, , 'modal-pane-1')}>\r\n {assignment.title} \r\n \r\n )}\r\n \r\n {moment(assignment.deadline).format('YYYY-MM-DD')}\r\n \r\n {assignment.analysisUrl && (\r\n Video \r\n )} \r\n \r\n {assignment.courseTopicId && assignment.topicItemId && (\r\n \r\n Discuss\r\n \r\n )}\r\n {(!assignment.courseTopicId || !assignment.topicItemId) && (\r\n \r\n Discuss\r\n \r\n )}\r\n \r\n {(assignment.code || assignment.attachment) && (\r\n openModal(`last submit for ${assignment.title}`, \r\n , 'modal-pane-1')}>\r\n Last Submit\r\n \r\n )}\r\n \r\n {(new Date(assignment.deadline)) > (new Date()) && (assignment.submitMode === 'Code Only' || assignment.submitMode === 'Both') &&\r\n openModal(`Submit code for ${assignment.title}`, , 'modal-pane-1')}> \r\n \r\n }\r\n {(new Date(assignment.deadline)) > (new Date()) && (assignment.submitMode === 'Attach Only' || assignment.submitMode === 'Both') &&\r\n openModal(`Submit attachment for ${assignment.title}`, , 'modal-pane-1')}> \r\n \r\n }\r\n
\r\n {studentAssignmentContent?.resources && studentAssignmentContent?.resources.length > 0 && \r\n \r\n
\r\n

Resources

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {studentAssignmentContent?.resources?.slice().sort((a, b) => a.seqNo > b.seqNo ? 1 : -1)\r\n .map(assignmentResource =>\r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#title
{assignmentResource.seqNo} \r\n \r\n {assignmentResource.url && (\r\n {assignmentResource.title}\r\n )}\r\n {!assignmentResource.url && (\r\n openModal(`resource ${assignmentResource.title}`, , 'modal-pane-1')}>\r\n {assignmentResource.title}\r\n \r\n )}\r\n
\r\n
\r\n } \r\n
\r\n )\r\n}\r\n\r\nexport default observer(StudentAssignmentForm)\r\n","import React, { useContext, useEffect } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport {Container, Card} from 'react-bootstrap';\r\nimport { observer } from 'mobx-react-lite';\r\n\r\nconst InquiriesForm = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {inquiries, getInquires, setInquiryChecked} = rootStore.inquiryStore;\r\n \r\n useEffect(() => {\r\n getInquires();\r\n }, [getInquires]);\r\n\r\n const checkInquiry = (id: string) => {\r\n setInquiryChecked(id);\r\n }\r\n\r\n return (\r\n \r\n {inquiries.slice().sort((a,b)=>{\r\n if(a.dateCreated > b.dateCreated) return -1;\r\n else return 1; \r\n })\r\n .map((inquiry, index) => \r\n \r\n \r\n {inquiry.topic}\r\n {!inquiry.checked &&\r\n checkInquiry(inquiry.id)}>\r\n }\r\n \r\n {inquiry.phone && (\r\n \r\n Phone: {inquiry.phone}\r\n \r\n )}\r\n {inquiry.email && (\r\n \r\n Email: {inquiry.email}\r\n \r\n )}\r\n \r\n Date: {inquiry.dateCreated}\r\n \r\n \r\n {inquiry.description}\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n )\r\n}\r\n\r\nexport default observer(InquiriesForm)\r\n","import React, {useState, useContext} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\n\r\nconst TeacherGradeModal = ({problemId, userName, grade, teacherRemark}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {setTeacherGrade} = rootStore.assignmentStore;\r\n const {closeModal} = rootStore.modalStore;\r\n const [newGrade, setNewGrade] = useState(grade);\r\n const [newRemark, setNewRemark] = useState(teacherRemark);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [isChanged, setIsChanged] = useState(false);\r\n const handleChange = (event) => {\r\n const {name, value} = event.target;\r\n if(name === \"grade\") {\r\n setNewGrade(value);\r\n if(value !== grade || newRemark !== teacherRemark){\r\n setIsChanged(true);\r\n }\r\n else {\r\n setIsChanged(false);\r\n }\r\n }\r\n else {\r\n setNewRemark(value);\r\n if(newGrade !== grade || value !== teacherRemark){\r\n setIsChanged(true);\r\n }\r\n else {\r\n setIsChanged(false);\r\n } \r\n }\r\n\r\n }\r\n const handleSubmit = (event) => {\r\n setSubmitting(true);\r\n setTeacherGrade(problemId, userName, newGrade, newRemark);\r\n setSubmitting(false);\r\n closeModal();\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Grade\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isChanged && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default TeacherGradeModal\r\n","import React, {useContext, useEffect} from 'react'\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { Container, Form, Col, Row, Button} from 'react-bootstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport Editor from 'react-simple-code-editor';\r\nimport { highlight, languages } from 'prismjs/components/prism-core';\r\nimport 'prismjs/components/prism-clike';\r\nimport 'prismjs/components/prism-javascript';\r\nimport \"prismjs/themes/prism.css\";\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport TeacherGradeModal from './TeacherGradeModal';\r\n\r\ninterface ProblemParams {\r\n problemId: string;\r\n}\r\n\r\nconst StudentSubmissions: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const { openModal} = rootStore.modalStore;\r\n const {studentSubmissions, loadStudentSubmissions, currentProblem, getProblem} = rootStore.assignmentStore;\r\n // const [assignments, setAssignments] = useState(initialValues);\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadStudentSubmissions(match.params.problemId);\r\n await getProblem(match.params.problemId);\r\n }\r\n loadValues();\r\n }, [loadStudentSubmissions, getProblem, match.params.problemId]);\r\n\r\n return (\r\n \r\n \r\n

submissions of problem {currentProblem?.title}

\r\n \r\n \r\n \r\n
\r\n\r\n {studentSubmissions.map((assignment, index) => \r\n
\r\n \r\n \r\n \r\n
Student Name:
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {assignment.studentRemark && (\r\n \r\n \r\n \r\n Student's Remark:\r\n \r\n \r\n \r\n
\r\n

{assignment.studentRemark}

\r\n
\r\n \r\n
\r\n )}\r\n {assignment.code && (\r\n \r\n \r\n \r\n Code \r\n {assignment.grade === \"Great\" && } \r\n {assignment.grade === \"Acceptable\" && } \r\n {assignment.grade === \"Problematic\" && }\r\n {assignment.grade === \"Unacceptable\" && X} \r\n \r\n \r\n \r\n {}}\r\n highlight={code => highlight(code, languages.js)}\r\n padding={5}\r\n style={{\r\n fontFamily: '\"Fira code\", \"Fira Mono\", monospace',\r\n fontSize: 12,\r\n backgroundColor: 'aliceblue'\r\n }}\r\n />\r\n \r\n \r\n )}\r\n {assignment.attachment && (\r\n \r\n \r\n \r\n Attachment\r\n \r\n \r\n \r\n {assignment.attachment} \r\n \r\n \r\n )} \r\n \r\n \r\n \r\n Teacher's Remark:\r\n openModal(`Remark for ${assignment.studentName}'s solution`, \r\n , 'modal-pane-4')}> \r\n \r\n \r\n \r\n \r\n
\r\n

{assignment.teacherRemark}

\r\n
\r\n \r\n
\r\n
\r\n )}\r\n\r\n
\r\n )\r\n}\r\n\r\nexport default observer(StudentSubmissions)\r\n","import React, {useState, useContext} from 'react'\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { EditorState, convertToRaw } from 'draft-js';\r\nimport { Editor } from 'react-draft-wysiwyg';\r\nimport draftToHtml from 'draftjs-to-html';\r\nimport '../../app/layout/editorStyle.css';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\n\r\nconst AddLessonResourceText = ({lessonId}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {addLessonResourceText} = rootStore.lessonStore;\r\n const [title, setTitle] = useState('');\r\n const [submitting, setSubmitting] = useState(false);\r\n const [editorState, setEditorState] = useState(EditorState.createEmpty());\r\n const onEditorStateChange = (editState) => {\r\n setEditorState(editState);\r\n };\r\n \r\n const handleTitleChange = (event) => {\r\n const { value } = event.target;\r\n setTitle(value);\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n var currentContent = editorState.getCurrentContent();\r\n setSubmitting(true);\r\n if(title.length > 0 && currentContent){\r\n addLessonResourceText(lessonId, title, draftToHtml(convertToRaw(currentContent)))\r\n .finally(() =>{\r\n setSubmitting(false);\r\n })\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Title\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n title && editorState.getCurrentContent() &&\r\n !submitting && }\r\n {submitting && }\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default AddLessonResourceText\r\n","import React, {useState, useContext} from 'react'\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\n\r\nconst initialValues = {\r\n title: '',\r\n url: ''\r\n};\r\n\r\nconst AddLessonResourceLink = ({lessonId}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {addLessonResourceLink} = rootStore.lessonStore;\r\n const [values, setValues] = useState(initialValues);\r\n const [submitting, setSubmitting] = useState(false);\r\n\r\n const handleChange = (event) => {\r\n const { name, value } = event.target;\r\n setValues({ ...values, [name]: value });\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n setSubmitting(true);\r\n if(values.title.length > 0 && values.url.length > 0 ){\r\n addLessonResourceLink(lessonId, values.title, values.url)\r\n .finally(() =>{\r\n setSubmitting(false);\r\n })\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Title\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n hyper link\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n values.title && values.url &&\r\n !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default AddLessonResourceLink\r\n","import React, {useContext, useMemo} from 'react'\r\nimport {useDropzone} from 'react-dropzone'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\n\r\nconst baseStyle = {\r\n flex: 1,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n padding: '20px',\r\n borderWidth: 2,\r\n borderRadius: 2,\r\n borderColor: '#eeeeee',\r\n borderStyle: 'dashed',\r\n backgroundColor: '#fafafa',\r\n color: '#bdbdbd',\r\n outline: 'none',\r\n transition: 'border .24s ease-in-out'\r\n};\r\n\r\nconst activeStyle = {\r\n borderColor: '#2196f3'\r\n};\r\n\r\nconst acceptStyle = {\r\n borderColor: '#00e676'\r\n};\r\n\r\nconst rejectStyle = {\r\n borderColor: '#ff1744'\r\n};\r\n\r\nconst AddLessonResourceAttach = ({lessonId}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {addLessonResourceAttach} = rootStore.lessonStore; \r\n const {\r\n getRootProps,\r\n getInputProps,\r\n isDragActive,\r\n isDragAccept,\r\n isDragReject\r\n } = useDropzone({\r\n accept: 'image/*, application/pdf, .zip', \r\n maxFiles: 1,\r\n onDrop: acceptedFiles => { \r\n // attach file\r\n var file = acceptedFiles[0];\r\n addLessonResourceAttach(lessonId, file.name, file);\r\n }\r\n });\r\n\r\n const style = useMemo(() => ({\r\n ...baseStyle,\r\n ...(isDragActive ? activeStyle : {}),\r\n ...(isDragAccept ? acceptStyle : {}),\r\n ...(isDragReject ? rejectStyle : {})\r\n }), [\r\n isDragActive,\r\n isDragReject,\r\n isDragAccept\r\n ]); \r\n\r\n return (\r\n
\r\n \r\n {\r\n isDragActive ?\r\n

Drop the files here ...

:\r\n

Drag 'n' drop one file here, or click to select one file

\r\n }\r\n

Only image/pdf/zip file is allowed

\r\n
\r\n )\r\n}\r\n\r\nexport default AddLessonResourceAttach\r\n","import React from 'react'\r\nimport parse from 'html-react-parser';\r\nimport { Container, Card } from 'react-bootstrap';\r\n\r\nconst LessonResourceModal = ({content}) => {\r\n return (\r\n \r\n\r\n \r\n \r\n

\r\n {content && parse(content)}\r\n

\r\n
\r\n
\r\n\r\n
\r\n )\r\n}\r\n\r\nexport default LessonResourceModal\r\n","import React, {useState, useContext} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\n\r\n\r\nconst UpdateLesson = ({lessonId, seqNo, topic, date, timePeriod}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {setLesson} = rootStore.lessonStore;\r\n const [newSeqNo, setNewSeqNo] = useState(seqNo);\r\n const [newTopic, setNewTopic] = useState(topic);\r\n const [newDate, setNewDate] = useState(new Date(date).toISOString().substring(0, 10));\r\n const [newTimePeriod, setNewTimePeriod] = useState(timePeriod); \r\n const [submitting, setSubmitting] = useState(false);\r\n const [isChanged, setIsChanged] = useState(false);\r\n\r\n const handleSeqNoChange = (event) => {\r\n const {value} = event.target;\r\n setNewSeqNo(value);\r\n checkFormStatus();\r\n }\r\n\r\n const handleTopicChange = (event) => {\r\n const {value} = event.target; \r\n setNewTopic(value); \r\n checkFormStatus();\r\n }\r\n\r\n const handleDateChange = (event) => {\r\n const {value} = event.target;\r\n setNewDate(value);\r\n checkFormStatus();\r\n };\r\n\r\n const handleTimePeriodChange = (event) => {\r\n const {value} = event.target; \r\n setNewTimePeriod(value); \r\n checkFormStatus();\r\n }\r\n\r\n const checkFormStatus = () => {\r\n if (newSeqNo !== seqNo || newDate !== date || newTimePeriod !== timePeriod){\r\n setIsChanged(true);\r\n }\r\n else{\r\n setIsChanged(false);\r\n }\r\n }\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n setSubmitting(true); \r\n setLesson(lessonId, newSeqNo, newTopic, newDate, newTimePeriod)\r\n .finally(() => {\r\n setSubmitting(false);\r\n })\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Lesson #\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Topic\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Date\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Time Period\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isChanged && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default UpdateLesson\r\n","import React, {useState, useContext} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\n\r\n\r\nconst SetLessonResourceSeqNo = ({lessonResourceId, seqNo}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {setResourceSeqNo} = rootStore.lessonStore;\r\n const [newSeqNo, setNewSeqNo] = useState(seqNo);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [isChanged, setIsChanged] = useState(false);\r\n\r\n const handleChange = (event) => {\r\n const {value} = event.target;\r\n setNewSeqNo(value);\r\n if(value && value !== seqNo) {\r\n setIsChanged(true);\r\n }\r\n else{\r\n setIsChanged(false);\r\n }\r\n }\r\n const handleSubmit = (event) => {\r\n setSubmitting(true);\r\n setResourceSeqNo(lessonResourceId, parseInt(newSeqNo));\r\n setSubmitting(false);\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n SeqNo\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isChanged && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SetLessonResourceSeqNo\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RouteComponentProps } from 'react-router'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Link } from 'react-router-dom';\r\nimport { Row, Button, Table, Col } from 'react-bootstrap'\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport AddLessonResourceText from './AddLessonResourceText';\r\nimport AddLessonResourceLink from './AddLessonResourceLink';\r\nimport AddLessonResourceAttach from './AddLessonResourceAttach';\r\nimport LessonResourceModal from './LessonResourceModal';\r\nimport UpdateLesson from '../lesson/UpdateLesson';\r\nimport SetLessonResourceSeqNo from './SetLessonResourceSeqNo';\r\n\r\ninterface LessonParams {\r\n lessonId: string;\r\n}\r\nconst initialValues = {\r\n courseName: '',\r\n courseCode: '',\r\n date: new Date()\r\n};\r\n\r\nconst TeacherLessonContentForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {lessonContent, loadLessonContent, removeResource} = rootStore.lessonStore;\r\n const { openModal} = rootStore.modalStore; \r\n const [values, setValues] = useState(initialValues);\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n var lesson = await loadLessonContent(match.params.lessonId);\r\n if(lesson) {\r\n setValues({\r\n courseName: lesson.courseName,\r\n courseCode: lesson.courseCode,\r\n date: new Date(lesson.date)\r\n });\r\n }\r\n }\r\n if(match.params.lessonId){\r\n loadValues();\r\n }\r\n }, [loadLessonContent, match.params.lessonId])\r\n\r\n const handleRemoveResource = (id: any) => {\r\n confirmAlert({\r\n title: 'Confirm to delete',\r\n message: 'Are you sure you want to delete it?',\r\n buttons: [\r\n {\r\n label: 'Yes',\r\n onClick: () => {\r\n removeResource(match.params.lessonId, id) \r\n } \r\n },\r\n {\r\n label: 'No',\r\n onClick: () => {}\r\n }\r\n ]\r\n }) \r\n }\r\n\r\n return (\r\n
\r\n
\r\n

Course: {values.courseName}

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

\r\n Lesson #\r\n

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

\r\n {lessonContent?.seqNo}\r\n openModal(\"Update Lesson\", \r\n , 'modal-pane-2')}> \r\n \r\n

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

\r\n Topic\r\n

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

\r\n {lessonContent?.topic}\r\n

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

\r\n Date\r\n

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

\r\n {values.date?.toISOString().substr(0, 10)}\r\n

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

\r\n Time Period\r\n

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

\r\n {lessonContent?.timePeriod}\r\n

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

Resources

\r\n openModal(\"Add new resource (text)\", , 'modal-pane-1')}> \r\n \r\n openModal(\"Add new resource (link)\", , 'modal-pane-1')}> \r\n \r\n openModal(\"Add new resource (attachment)\", , 'modal-pane-1')}> \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {lessonContent?.lessonResources?.slice().sort((a, b) => a.seqNo > b.seqNo ? 1 : -1)\r\n .map(lessonResource =>\r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#title
{lessonResource.seqNo}\r\n openModal(`Set SeqNo for ${lessonResource.title}`, \r\n , 'modal-pane-2')} > \r\n \r\n \r\n {lessonResource.url && (\r\n {lessonResource.title}\r\n )}\r\n {!lessonResource.url && (\r\n openModal(`resource ${lessonResource.title}`, , 'modal-pane-1')}>\r\n {lessonResource.title}\r\n \r\n )}\r\n handleRemoveResource(lessonResource.id)}>\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default observer(TeacherLessonContentForm)\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RouteComponentProps } from 'react-router'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Link } from 'react-router-dom';\r\nimport { Row, Button, Table, Col } from 'react-bootstrap'\r\nimport LessonResourceModal from './LessonResourceModal';\r\n\r\ninterface LessonParams {\r\n lessonId: string;\r\n}\r\nconst initialValues = {\r\n courseName: '',\r\n courseCode: '',\r\n date: new Date()\r\n};\r\n\r\nconst AssistantLessonContentForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {lessonContent, loadLessonStudentContent} = rootStore.lessonStore;\r\n const { openModal} = rootStore.modalStore; \r\n const [values, setValues] = useState(initialValues);\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n var lesson = await loadLessonStudentContent(match.params.lessonId);\r\n if(lesson) {\r\n setValues({\r\n courseName: lesson.courseName,\r\n courseCode: lesson.courseCode,\r\n date: new Date(lesson.date)\r\n });\r\n }\r\n }\r\n if(match.params.lessonId){\r\n loadValues();\r\n }\r\n }, [loadLessonStudentContent, match.params.lessonId])\r\n\r\n return (\r\n
\r\n
\r\n

Course: {values.courseName}

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

\r\n Lesson #\r\n

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

\r\n {lessonContent?.seqNo}\r\n

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

\r\n Topic\r\n

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

\r\n {lessonContent?.topic}\r\n

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

\r\n Date\r\n

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

\r\n {values.date?.toISOString().substr(0, 10)}\r\n

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

\r\n Time Period\r\n

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

\r\n {lessonContent?.timePeriod}\r\n

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

Resources

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {lessonContent?.lessonResources?.slice().sort((a, b) => a.seqNo > b.seqNo ? 1 : -1)\r\n .map(lessonResource =>\r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#title
{lessonResource.seqNo}\r\n {lessonResource.url && (\r\n {lessonResource.title}\r\n )}\r\n {!lessonResource.url && (\r\n openModal(`resource ${lessonResource.title}`, , 'modal-pane-1')}>\r\n {lessonResource.title}\r\n \r\n )}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default AssistantLessonContentForm\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RouteComponentProps } from 'react-router'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Link } from 'react-router-dom';\r\nimport { Row, Button, Table, Col } from 'react-bootstrap'\r\nimport LessonResourceModal from './LessonResourceModal';\r\n\r\ninterface LessonParams {\r\n lessonId: string;\r\n}\r\nconst initialValues = {\r\n courseName: '',\r\n courseCode: '',\r\n date: new Date()\r\n};\r\n\r\nconst StudentLessonContentForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {lessonContent, loadLessonStudentContent} = rootStore.lessonStore;\r\n const { openModal} = rootStore.modalStore; \r\n const [values, setValues] = useState(initialValues);\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n var lesson = await loadLessonStudentContent(match.params.lessonId);\r\n if(lesson) {\r\n setValues({\r\n courseName: lesson.courseName,\r\n courseCode: lesson.courseCode,\r\n date: new Date(lesson.date)\r\n });\r\n }\r\n }\r\n if(match.params.lessonId){\r\n loadValues();\r\n }\r\n }, [loadLessonStudentContent, match.params.lessonId])\r\n\r\n return (\r\n
\r\n
\r\n

Course: {values.courseName}

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

\r\n Lesson #\r\n

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

\r\n {lessonContent?.seqNo}\r\n

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

\r\n Topic\r\n

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

\r\n {lessonContent?.topic}\r\n

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

\r\n Date\r\n

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

\r\n {values.date?.toISOString().substr(0, 10)}\r\n

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

\r\n Time Period\r\n

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

\r\n {lessonContent?.timePeriod}\r\n

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

Resources

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {lessonContent?.lessonResources?.slice().sort((a, b) => a.seqNo > b.seqNo ? 1 : -1)\r\n .map(lessonResource =>\r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#title
{lessonResource.seqNo}\r\n {lessonResource.url && (\r\n {lessonResource.title}\r\n )}\r\n {!lessonResource.url && (\r\n openModal(`resource ${lessonResource.title}`, , 'modal-pane-1')}>\r\n {lessonResource.title}\r\n \r\n )}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default StudentLessonContentForm\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RouteComponentProps } from 'react-router'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Link } from 'react-router-dom';\r\nimport { Container, Row, Button, Table, Col } from 'react-bootstrap'\r\nimport LessonResourceModal from './LessonResourceModal';\r\n\r\ninterface LessonParams {\r\n lessonId: string;\r\n}\r\nconst initialValues = {\r\n courseName: '',\r\n courseCode: '',\r\n date: new Date()\r\n};\r\n\r\nconst AdminLessonContentForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {lessonContent, loadLessonContent} = rootStore.lessonStore;\r\n const { openModal} = rootStore.modalStore; \r\n const [values, setValues] = useState(initialValues);\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n var lesson = await loadLessonContent(match.params.lessonId);\r\n if(lesson) {\r\n setValues({\r\n courseName: lesson.courseName,\r\n courseCode: lesson.courseCode,\r\n date: new Date(lesson.date)\r\n });\r\n }\r\n }\r\n if(match.params.lessonId){\r\n loadValues();\r\n }\r\n }, [loadLessonContent, match.params.lessonId])\r\n\r\n return (\r\n \r\n
\r\n

Course: {values.courseName}

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

\r\n Lesson #\r\n

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

\r\n {lessonContent?.seqNo}\r\n

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

\r\n Topic\r\n

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

\r\n {lessonContent?.topic}\r\n

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

\r\n Date\r\n

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

\r\n {values.date?.toISOString().substr(0, 10)}\r\n

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

\r\n Time Period\r\n

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

\r\n {lessonContent?.timePeriod}\r\n

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

Resources

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {lessonContent?.lessonResources?.map((lessonResource, index) =>\r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
#title
{index+1}\r\n {lessonResource.url && (\r\n {lessonResource.title}\r\n )}\r\n {!lessonResource.url && (\r\n openModal(`resource ${lessonResource.title}`, , 'modal-pane-1')}>\r\n {lessonResource.title}\r\n \r\n )}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default AdminLessonContentForm\r\n","import React, {useState, useContext} from 'react'\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { EditorState, convertToRaw } from 'draft-js';\r\nimport { Editor } from 'react-draft-wysiwyg';\r\nimport draftToHtml from 'draftjs-to-html';\r\nimport '../../app/layout/editorStyle.css';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\n\r\nconst AddQuestionModal = ({courseCode}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {addQuestion} = rootStore.qaStore;\r\n const [topic, setTopic] = useState('');\r\n const [isPrivate, setIsPrivate] = useState(false);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [editorState, setEditorState] = useState(EditorState.createEmpty());\r\n const onEditorStateChange = (editState) => {\r\n setEditorState(editState);\r\n }; \r\n\r\n const handleTopicChange = (event) => {\r\n const { value } = event.target;\r\n setTopic(value);\r\n };\r\n \r\n const handlePrivateCheck = (event) => {\r\n setIsPrivate(event.target.checked);\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n var currentContent = editorState.getCurrentContent();\r\n setSubmitting(true);\r\n if(topic.length > 0 && currentContent){\r\n addQuestion(courseCode, topic, isPrivate, draftToHtml(convertToRaw(currentContent)))\r\n .finally(() =>{\r\n setSubmitting(false);\r\n })\r\n }\r\n } \r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Topic\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n topic && editorState.getCurrentContent() &&\r\n !submitting && }\r\n {submitting && }\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default AddQuestionModal\r\n","export const convertUTCDateToLocalData = (objDate) => {\r\n var date = new Date(objDate);\r\n var newDate = new Date(date.getTime() - date.getTimezoneOffset()*60*1000);\r\n return newDate;\r\n}\r\n\r\nexport const convertUTCDateToLocalDataString = (objDate) => {\r\n var date = new Date(objDate);\r\n var newDate = new Date(date.getTime() - date.getTimezoneOffset()*60*1000);\r\n return newDate.toLocaleDateString().substring(0, 10);\r\n}\r\n\r\nexport const convertUTCDateToLocalTimeString = (objDate) => {\r\n var date = new Date(objDate);\r\n var newDate = new Date(date.getTime() - date.getTimezoneOffset()*60*1000);\r\n return newDate.toTimeString().substring(0, 8);\r\n}","import React, { useContext, useEffect} from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Row, Table, Button} from 'react-bootstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport \"./qa.css\";\r\nimport AddQuestionModal from './AddQuestionModal';\r\nimport {convertUTCDateToLocalDataString } from '../helper/DateHelper';\r\n\r\ninterface ClassParams {\r\n courseCode: string;\r\n}\r\n\r\nconst TeacherQAForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {qaInfo, loadQATeacherInfo} = rootStore.qaStore;\r\n const {openModal} = rootStore.modalStore;\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadQATeacherInfo(match.params.courseCode);\r\n }\r\n if(match.params.courseCode) {\r\n loadValues();\r\n }\r\n }, [loadQATeacherInfo, match.params.courseCode])\r\n\r\n return (\r\n
\r\n
\r\n

Q&A for class {qaInfo?.courseName}

\r\n \r\n \r\n \r\n
\r\n \r\n openModal(\"New Question\", , 'modal-pane-65')}> \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {qaInfo?.questions.slice().sort((a, b) => a.date < b.date ? 1 : -1)\r\n .map((question, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
StudentDatePrivate?TopicLast RepliedReplied ByViewed
{question.userFullName}{convertUTCDateToLocalDataString(question.date)}{question.isPrivate ? \"Yes\" : \"No\"}\r\n \r\n {question.topic}\r\n \r\n \r\n {question.lastDateReplied ? convertUTCDateToLocalDataString(question.date) : ''}\r\n \r\n {question.lastReplier}\r\n \r\n {question.viewed ? : ''}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default observer(TeacherQAForm)\r\n","import React, { useContext, useEffect} from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Row, Table, Button} from 'react-bootstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport \"./qa.css\";\r\nimport AddQuestionModal from './AddQuestionModal';\r\nimport {convertUTCDateToLocalDataString } from '../helper/DateHelper';\r\n\r\ninterface ClassParams {\r\n courseCode: string;\r\n}\r\n\r\nconst AssistantQAForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {qaInfo, loadQATeacherInfo} = rootStore.qaStore;\r\n const {openModal} = rootStore.modalStore;\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadQATeacherInfo(match.params.courseCode);\r\n }\r\n if(match.params.courseCode) {\r\n loadValues();\r\n }\r\n }, [loadQATeacherInfo, match.params.courseCode])\r\n\r\n return (\r\n
\r\n
\r\n

Q&A for class {qaInfo?.courseName}

\r\n \r\n \r\n \r\n
\r\n \r\n openModal(\"New Question\", , 'modal-pane-65')}> \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {qaInfo?.questions.slice().sort((a, b) => a.date < b.date ? 1 : -1)\r\n .map((question, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
StudentDatePrivate?TopicLast RepliedReplied ByViewed
{question.userFullName}{convertUTCDateToLocalDataString(question.date)}{question.isPrivate ? \"Yes\" : \"No\"}\r\n \r\n {question.topic}\r\n \r\n \r\n {question.lastDateReplied ? convertUTCDateToLocalDataString(question.date) : ''}\r\n \r\n {question.lastReplier}\r\n \r\n {question.viewed ? : ''}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default observer(AssistantQAForm)\r\n","import React, { useContext, useEffect} from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Row, Table, Button} from 'react-bootstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport \"./qa.css\";\r\nimport AddQuestionModal from './AddQuestionModal';\r\nimport {convertUTCDateToLocalDataString} from '../helper/DateHelper';\r\n\r\ninterface ClassParams {\r\n courseCode: string;\r\n}\r\n\r\nconst StudentQAForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {qaInfo, loadQAStudentInfo} = rootStore.qaStore;\r\n const {openModal} = rootStore.modalStore;\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadQAStudentInfo(match.params.courseCode);\r\n }\r\n if(match.params.courseCode) {\r\n loadValues();\r\n }\r\n }, [loadQAStudentInfo, match.params.courseCode])\r\n\r\n return (\r\n
\r\n
\r\n

Q&A for class {qaInfo?.courseName}

\r\n \r\n \r\n \r\n
\r\n \r\n openModal(\"New Question\", , 'modal-pane-65')}> \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {qaInfo?.questions.slice().sort((a, b) => a.date < b.date ? 1 : -1)\r\n .map((question, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
StudentDatePrivate?TopicLast RepliedReplied By
{question.userFullName}{convertUTCDateToLocalDataString(question.date)}{question.isPrivate ? \"Yes\" : \"No\"}\r\n \r\n {question.topic}\r\n \r\n \r\n {question.lastDateReplied ? convertUTCDateToLocalDataString(question.lastDateReplied) : ''}\r\n \r\n {question.lastReplier}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default observer(StudentQAForm)\r\n","import React, {useState, useContext} from 'react'\r\nimport { Container, Form, Button, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { EditorState, convertToRaw } from 'draft-js';\r\nimport { Editor } from 'react-draft-wysiwyg';\r\nimport draftToHtml from 'draftjs-to-html';\r\nimport '../../app/layout/editorStyle.css';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\n\r\nconst AddAnswerModal = ({questionId}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {addAnswer} = rootStore.qaStore; \r\n const [submitting, setSubmitting] = useState(false);\r\n const [editorState, setEditorState] = useState(EditorState.createEmpty());\r\n const onEditorStateChange = (editState) => {\r\n setEditorState(editState);\r\n }; \r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n var currentContent = editorState.getCurrentContent();\r\n setSubmitting(true);\r\n if(currentContent){\r\n addAnswer(questionId, draftToHtml(convertToRaw(currentContent)))\r\n .finally(() =>{\r\n setSubmitting(false);\r\n })\r\n }\r\n } \r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n {\r\n editorState.getCurrentContent() &&\r\n !submitting && }\r\n {submitting && }\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default AddAnswerModal\r\n","import React, {useState, useContext, useEffect} from 'react'\r\nimport { Container, Form, Button, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { EditorState, ContentState, convertToRaw } from 'draft-js';\r\nimport { Editor } from 'react-draft-wysiwyg';\r\nimport draftToHtml from 'draftjs-to-html';\r\nimport htmlToDraft from 'html-to-draftjs';\r\nimport '../../app/layout/editorStyle.css';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\n\r\nconst UpdateAnswerModal = ({answerId, message}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {updateAnswer} = rootStore.qaStore; \r\n const [submitting, setSubmitting] = useState(false);\r\n const [editorState, setEditorState] = useState(EditorState.createEmpty());\r\n const onEditorStateChange = (editState) => {\r\n setEditorState(editState);\r\n }; \r\n useEffect(() => {\r\n if(message) {\r\n const blocksFromHTML = htmlToDraft(message);\r\n const state = ContentState.createFromBlockArray(\r\n blocksFromHTML.contentBlocks,\r\n blocksFromHTML.entityMap\r\n );\r\n setEditorState(EditorState.createWithContent(state)); \r\n }\r\n }, [message])\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n var currentContent = editorState.getCurrentContent();\r\n setSubmitting(true);\r\n if(currentContent){\r\n updateAnswer(answerId, draftToHtml(convertToRaw(currentContent)))\r\n .finally(() =>{\r\n setSubmitting(false);\r\n })\r\n }\r\n } \r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n {\r\n editorState.getCurrentContent() &&\r\n !submitting && }\r\n {submitting && }\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default UpdateAnswerModal\r\n","import React, { useContext, useEffect} from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport {Container, Card, Button} from 'react-bootstrap';\r\nimport parse from 'html-react-parser'\r\nimport \"./qa.css\";\r\nimport AddAnswerModal from './AddAnswerModal';\r\nimport UpdateAnswerModal from './UpdateAnswerModal';\r\nimport {convertUTCDateToLocalDataString, convertUTCDateToLocalTimeString } from '../helper/DateHelper';\r\n\r\ninterface QuestionParams {\r\n questionId: string;\r\n}\r\n\r\nconst TeacherQuestionForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {currentQuestion, loadQuestion} = rootStore.qaStore;\r\n const {openModal} = rootStore.modalStore;\r\n \r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadQuestion(match.params.questionId);\r\n }\r\n if(match.params.questionId) {\r\n loadValues();\r\n }\r\n }, [loadQuestion, match.params.questionId])\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n

{currentQuestion?.topic}

\r\n \r\n \r\n
\r\n
\r\n \r\n {currentQuestion?.userFullName},    \r\n {currentQuestion ? convertUTCDateToLocalDataString(currentQuestion.date) : ''}\r\n  \r\n {currentQuestion ? convertUTCDateToLocalTimeString(currentQuestion.date) : ''}\r\n \r\n {currentQuestion ? parse(currentQuestion?.message): ''}\r\n \r\n
\r\n {currentQuestion?.answers?.slice().sort((a, b) => a.date > b.date ? 1: -1)\r\n .map((answer, idx) => (\r\n \r\n \r\n {answer.userFullName},    \r\n {convertUTCDateToLocalDataString(answer.date)}\r\n  \r\n {convertUTCDateToLocalTimeString(answer.date)} \r\n \r\n \r\n {parse(answer.message)}\r\n \r\n \r\n ))}\r\n
\r\n )\r\n}\r\n\r\nexport default observer(TeacherQuestionForm)\r\n","import React, { useContext, useEffect} from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport {Container, Card, Button} from 'react-bootstrap';\r\nimport parse from 'html-react-parser'\r\nimport \"./qa.css\";\r\nimport AddAnswerModal from './AddAnswerModal';\r\nimport UpdateAnswerModal from './UpdateAnswerModal';\r\nimport {convertUTCDateToLocalDataString, convertUTCDateToLocalTimeString } from '../helper/DateHelper';\r\n\r\ninterface QuestionParams {\r\n questionId: string;\r\n}\r\n\r\nconst TeacherQuestionForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {currentQuestion, loadQuestion} = rootStore.qaStore;\r\n const {openModal} = rootStore.modalStore;\r\n \r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadQuestion(match.params.questionId);\r\n }\r\n if(match.params.questionId) {\r\n loadValues();\r\n }\r\n }, [loadQuestion, match.params.questionId])\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n

{currentQuestion?.topic}

\r\n \r\n \r\n
\r\n
\r\n \r\n {currentQuestion?.userFullName},    \r\n {currentQuestion ? convertUTCDateToLocalDataString(currentQuestion.date) : ''}\r\n  \r\n {currentQuestion ? convertUTCDateToLocalTimeString(currentQuestion.date) : ''}\r\n \r\n {currentQuestion ? parse(currentQuestion?.message): ''}\r\n \r\n
\r\n {currentQuestion?.answers?.slice().sort((a, b) => a.date > b.date ? 1: -1)\r\n .map((answer, idx) => (\r\n \r\n \r\n {answer.userFullName},    \r\n {convertUTCDateToLocalDataString(answer.date)}\r\n  \r\n {convertUTCDateToLocalTimeString(answer.date)} \r\n \r\n \r\n {parse(answer.message)}\r\n \r\n \r\n ))}\r\n
\r\n )\r\n}\r\n\r\nexport default observer(TeacherQuestionForm)\r\n","import React, { useContext, useEffect} from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport {Container, Card, Button} from 'react-bootstrap';\r\nimport parse from 'html-react-parser'\r\nimport \"./qa.css\";\r\nimport AddAnswerModal from './AddAnswerModal';\r\nimport {convertUTCDateToLocalDataString, convertUTCDateToLocalTimeString} from '../helper/DateHelper';\r\n\r\ninterface QuestionParams {\r\n questionId: string;\r\n}\r\n\r\nconst StudentQuestionForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {currentQuestion, loadQuestion} = rootStore.qaStore;\r\n const {openModal} = rootStore.modalStore;\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadQuestion(match.params.questionId);\r\n }\r\n if(match.params.questionId) {\r\n loadValues();\r\n }\r\n }, [loadQuestion, match.params.questionId])\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n

{currentQuestion?.topic}

\r\n \r\n \r\n
\r\n
\r\n \r\n {currentQuestion?.userFullName},    \r\n {currentQuestion ? convertUTCDateToLocalDataString(currentQuestion.date) : ''}\r\n  \r\n {currentQuestion ? convertUTCDateToLocalTimeString(currentQuestion.date) : ''}\r\n \r\n {currentQuestion ? parse(currentQuestion?.message): ''}\r\n \r\n
\r\n {currentQuestion?.answers?.slice().sort((a, b) => a.date > b.date ? 1: -1)\r\n .map((answer, idx) => (\r\n \r\n \r\n {answer.userFullName},    \r\n {convertUTCDateToLocalDataString(answer.date)}\r\n  \r\n {convertUTCDateToLocalTimeString(answer.date) } \r\n \r\n {parse(answer.message)}\r\n \r\n \r\n ))}\r\n
\r\n )\r\n}\r\n\r\nexport default observer(StudentQuestionForm)\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Container, Table, Row, Col, Form, Button } from 'react-bootstrap'\r\nimport { useHistory} from 'react-router-dom';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst TopicsForm = () => {\r\n const history = useHistory();\r\n const rootStore = useContext(RootStoreContext); \r\n const {subjects, loadSubjects } = rootStore.subjectStore; \r\n const {topics, loadTopics} = rootStore.topicStore; \r\n const [searchSubject, setSearchSubject] = useState('');\r\n\r\n useEffect(() => {\r\n loadSubjects();\r\n loadTopics();\r\n }, [loadSubjects, loadTopics]);\r\n\r\n\r\n\r\n const handleSubjectSearch = (event: any) => {\r\n setSearchSubject(event.target.value);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Subject\r\n \r\n \r\n \r\n \r\n \r\n {subjects.map((subject)=> {\r\n return ()\r\n })} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {topics && \r\n topics.filter(topic => {\r\n if(searchSubject === \"\") {\r\n return true;\r\n } else {\r\n return topic.subjectName === searchSubject;\r\n }\r\n })\r\n .map(topic => (\r\n {\r\n history.push(`/topics/${topic.id}`);\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )) \r\n }\r\n \r\n
NameSubject NameHas Concepts?Has Analysis?Has Code?Is Separate Page?Is Workbook?
{topic.name}{topic.subjectName}{topic.hasConcepts ? \"Yes\" : \"No\"}{topic.hasAnalysis ? \"Yes\" : \"No\"}{topic.hasCode ? \"Yes\" : \"No\"}{topic.isSeparatePage ? \"Yes\" : \"No\"}{topic.isWorkbook ? \"Yes\" : \"No\"}
\r\n
\r\n )\r\n}\r\n\r\nexport default observer(TopicsForm)\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport {Container, Row, Col, Form, Button, Spinner} from 'react-bootstrap';\r\nimport { ErrorMessage } from '../../app/common/form/ErrorMessage';\r\n\r\nconst initialSubject = {\r\n name: '',\r\n code: ''\r\n};\r\n\r\nconst initialValues = {\r\n name: '',\r\n hasConcepts: false,\r\n hasAnalysis: false,\r\n hasCode: false,\r\n isSeparatePage: false,\r\n isWorkbook: false,\r\n submitMode: 'Code Only'\r\n};\r\n\r\nconst verificationError = {\r\n subjectNotSelected: false,\r\n emptyTopicName: false\r\n};\r\n\r\nconst intialSubmitErrorInfo = {\r\n errors: [],\r\n text: ''\r\n};\r\n\r\nconst NewTopicForm = () => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {subjects, loadSubjects} = rootStore.subjectStore; \r\n const {addTopic} = rootStore.topicStore;\r\n const [values, setValues] = useState(initialValues);\r\n const [subject, setSubject] = useState(initialSubject);\r\n const [valueErrors, setValueErrors] = useState(verificationError);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [submitError, setSubmitError] = useState(intialSubmitErrorInfo);\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadSubjects();\r\n }\r\n loadValues();\r\n }, [loadSubjects]);\r\n\r\n const selectSubject = (event: any) => {\r\n const { value } = event.target;\r\n const subject = subjects.find(x=>x.code === value);\r\n if(subject) {\r\n setSubject({\r\n code: subject.code,\r\n name: subject.name\r\n });\r\n }\r\n }\r\n const handleValueChange = (event: any) => {\r\n const { name, value } = event.target;\r\n setValues({ ...values, [name]: value });\r\n };\r\n \r\n const handleCheckedChange = (event: any) => {\r\n const { name, checked } = event.target;\r\n setValues({...values, [name]: checked});\r\n };\r\n \r\n const handleSubmit = (event: any) : void => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n setSubmitError(intialSubmitErrorInfo);\r\n const subjectNotSelected = subject.code.length === 0;\r\n const emptyTopicName = values.name.length === 0;\r\n setValueErrors({...valueErrors, subjectNotSelected, emptyTopicName});\r\n if(subjectNotSelected || emptyTopicName) {}\r\n else {\r\n setSubmitting(true);\r\n addTopic(values.name, subject.code, values.hasConcepts, values.hasAnalysis, values.hasCode, \r\n values.isSeparatePage, values.isWorkbook, values.submitMode)\r\n .catch(error => {\r\n if(error.data && error.statusText){\r\n console.log(error.data.errors)\r\n const submitErrorInfo1 = {\r\n errors: error.data.errors, \r\n text: error.statusText\r\n };\r\n setSubmitError(submitErrorInfo1); \r\n console.log(submitErrorInfo1); \r\n }\r\n else {\r\n const submitErrorInfo2 = {\r\n errors: [], \r\n text: \"Network Error\"\r\n };\r\n setSubmitError(submitErrorInfo2); \r\n }\r\n }).finally(() => {\r\n setSubmitting(false);\r\n }); \r\n }\r\n };\r\n\r\n return (\r\n \r\n

New Topic

\r\n
\r\n \r\n \r\n \r\n Subject Name\r\n \r\n \r\n \r\n \r\n \r\n {subjects.map((subject)=> {\r\n return \r\n \r\n \r\n \r\n \r\n \r\n Topic Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Submit Mode\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {valueErrors.subjectNotSelected && (\r\n
  • Subject not selected
  • \r\n )} \r\n {valueErrors.emptyTopicName && (\r\n
  • Empty topic name
  • \r\n )}\r\n
\r\n {submitError.text && (\r\n \r\n )} \r\n \r\n {!submitting && }\r\n {submitting && }\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default observer(NewTopicForm)\r\n","import React, {useState, useContext} from 'react'\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\n\r\nconst initialValues = {\r\n category: '',\r\n seqNo: '',\r\n seqNoLink: '',\r\n title: '',\r\n url: ''\r\n};\r\n\r\n\r\nconst NewTopicItemLink = ({topicId, topicName}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {addTopicItem} = rootStore.topicStore;\r\n const [values, setValues] = useState(initialValues);\r\n const [submitting, setSubmitting] = useState(false);\r\n\r\n const handleChange = (event) => {\r\n const { name, value } = event.target;\r\n setValues({ ...values, [name]: value });\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n setSubmitting(true);\r\n if(values.category.length > 0 &&\r\n values.seqNo.length > 0 && \r\n values.title.length > 0 && values.url.length > 0 ){\r\n addTopicItem(topicId, values.category, values.seqNo, values.seqNoLink, values.title, '', values.url)\r\n .finally(() =>{\r\n setSubmitting(false);\r\n })\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Category\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n SeqNo\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n seqNo link (optional)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Title\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n title link\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n values.title && values.url &&\r\n !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default NewTopicItemLink\r\n","import React, {useState, useContext, useEffect} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\n\r\nconst SetTopicModal = ({topicId, name, \r\n hasConcepts, hasAnalysis, hasCode, isSeparatePage, isWorkbook, submitMode}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {setTopic} = rootStore.topicStore;\r\n const [newName, setNewName] = useState(name);\r\n const [newHasConcepts, setNewHasConcepts] = useState(hasConcepts);\r\n const [newHasAnalysis, setNewHasAnalysis] = useState(hasAnalysis);\r\n const [newHasCode, setNewHasCode] = useState(hasCode);\r\n const [newIsSeparatePage, setNewIsSeparatePage] = useState(isSeparatePage); \r\n const [newIsWorkbook, setNewIsWorkbook] = useState(isWorkbook); \r\n const [newSubmitMode, setNewSubmitMode] = useState(submitMode); \r\n const [submitting, setSubmitting] = useState(false);\r\n const [isChanged, setIsChanged] = useState(false);\r\n\r\n useEffect(() => {\r\n if(newName !== name || newHasConcepts !== hasConcepts\r\n || newHasAnalysis !== hasAnalysis || newHasCode !== hasCode\r\n || newIsSeparatePage !== isSeparatePage || newIsWorkbook !== isWorkbook\r\n || newSubmitMode !== submitMode) {\r\n setIsChanged(true);\r\n }\r\n else{\r\n setIsChanged(false);\r\n }\r\n }, [name, hasConcepts, hasAnalysis, hasCode, isSeparatePage, isWorkbook, submitMode,\r\n newName, newHasConcepts, newHasAnalysis, newHasCode, newIsSeparatePage, \r\n newIsWorkbook, newSubmitMode]);\r\n \r\n const handleNameChange = (event) => {\r\n const {value} = event.target;\r\n setNewName(value);\r\n }\r\n\r\n const handleHasConceptsChange = (event) => {\r\n const {checked} = event.target;\r\n setNewHasConcepts(checked);\r\n }\r\n\r\n const handleHasAnalysisChange = (event) => {\r\n const {checked} = event.target;\r\n setNewHasAnalysis(checked);\r\n }\r\n\r\n const handleHasCodeChange = (event) => {\r\n const {checked} = event.target;\r\n setNewHasCode(checked);\r\n }\r\n\r\n const handleIsSeparatePageChange = (event) => {\r\n const {checked} = event.target;\r\n setNewIsSeparatePage(checked);\r\n }\r\n\r\n const handleIsWorkbookChange = (event) => {\r\n const {checked} = event.target; \r\n setNewIsWorkbook(checked);\r\n }\r\n\r\n const handleSubmitModeChange = (event) => {\r\n const {value} = event.target; \r\n setNewSubmitMode(value);\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n setSubmitting(true);\r\n setTopic(topicId, newName, newHasConcepts, newHasAnalysis, newHasCode, \r\n newIsSeparatePage, newIsWorkbook, newSubmitMode);\r\n setSubmitting(false);\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Topic Name\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Submit Mode\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isChanged && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SetTopicModal\r\n","import React, {useState, useContext} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\n\r\nconst SetTopicItemCategory = ({topicId, topicItemId, category}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {setTopicItemCategory} = rootStore.topicStore;\r\n const [newCategory, setNewCategory] = useState(category);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [isChanged, setIsChanged] = useState(false);\r\n \r\n const handleChange = (event) => {\r\n const {value} = event.target;\r\n setNewCategory(value);\r\n if(value && value !== category) {\r\n setIsChanged(true);\r\n }\r\n else{\r\n setIsChanged(false);\r\n }\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n setSubmitting(true);\r\n setTopicItemCategory(topicId, topicItemId, newCategory);\r\n setSubmitting(false);\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Category\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isChanged && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SetTopicItemCategory\r\n","import React, {useState, useContext} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\n\r\nconst SetTopicItemSeqNo = ({topicId, topicItemId, seqNo, seqNoLink}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {setTopicItemSeqNo} = rootStore.topicStore;\r\n const [newSeqNo, setNewSeqNo] = useState(seqNo);\r\n const [newSeqNoLink, setNewSeqNoLink] = useState(seqNoLink);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [isChanged, setIsChanged] = useState(false); \r\n\r\n const handleSeqNoChange = (event) => {\r\n const {value} = event.target;\r\n setNewSeqNo(value);\r\n if(newSeqNo !== seqNo || newSeqNoLink !== seqNoLink) {\r\n setIsChanged(true);\r\n }\r\n else{\r\n setIsChanged(false);\r\n }\r\n }\r\n const handleSeqNoLinkChange = (event) => {\r\n const {value} = event.target;\r\n setNewSeqNoLink(value);\r\n if(newSeqNo !== seqNo || newSeqNoLink !== seqNoLink) {\r\n setIsChanged(true);\r\n }\r\n else{\r\n setIsChanged(false);\r\n }\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n setSubmitting(true);\r\n setTopicItemSeqNo(topicId, topicItemId, newSeqNo, newSeqNoLink);\r\n setSubmitting(false);\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n SeqNo\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Url\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isChanged && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SetTopicItemSeqNo\r\n","import React, {useState, useContext} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\n\r\n\r\nconst SetTopicItemConcepts = ({topicId, topicItemId, concepts}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {setTopicItemConcepts} = rootStore.topicStore;\r\n const [newConcepts, setNewConcepts] = useState(concepts);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [isChanged, setIsChanged] = useState(false);\r\n \r\n const handleChange = (event) => {\r\n const {value} = event.target;\r\n setNewConcepts(value);\r\n if(value && value !== concepts) {\r\n setIsChanged(true);\r\n }\r\n else{\r\n setIsChanged(false);\r\n }\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n setSubmitting(true);\r\n setTopicItemConcepts(topicId, topicItemId, newConcepts);\r\n setSubmitting(false);\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Concepts\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isChanged && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SetTopicItemConcepts\r\n","import React, {useState, useContext} from 'react'\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\n\r\nconst SetTopicItem = ({topicId, topicItemId, title, url}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {setTopicItem} = rootStore.topicStore;\r\n const [newTitle, setNewTitle] = useState(title);\r\n const [newUrl, setNewUrl] = useState(url);\r\n const [submitting, setSubmitting] = useState(false);\r\n const [isChanged, setIsChanged] = useState(false); \r\n\r\n const handleTitleChange = (event) => {\r\n const {value} = event.target;\r\n setNewTitle(value);\r\n if(newTitle !== title || newUrl !== url) {\r\n setIsChanged(true);\r\n }\r\n else{\r\n setIsChanged(false);\r\n }\r\n }\r\n\r\n const handleUrlChange = (event) => {\r\n const {value} = event.target;\r\n setNewUrl(value);\r\n if(newTitle !== title || newUrl !== url) {\r\n setIsChanged(true);\r\n }\r\n else{\r\n setIsChanged(false);\r\n }\r\n }\r\n\r\n const handleSubmit = (event) => {\r\n setSubmitting(true);\r\n setTopicItem(topicId, topicItemId, newTitle, newUrl);\r\n setSubmitting(false);\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n Title\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Url\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isChanged && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SetTopicItem\r\n","import React, {useState, useContext, useMemo} from 'react'\r\nimport {useDropzone} from 'react-dropzone'\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\n\r\nconst baseStyle = {\r\n flex: 1,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n padding: '20px',\r\n borderWidth: 2,\r\n borderRadius: 2,\r\n borderColor: '#eeeeee',\r\n borderStyle: 'dashed',\r\n backgroundColor: '#fafafa',\r\n color: '#bdbdbd',\r\n outline: 'none',\r\n transition: 'border .24s ease-in-out'\r\n};\r\n\r\nconst activeStyle = {\r\n borderColor: '#2196f3'\r\n};\r\n\r\nconst acceptStyle = {\r\n borderColor: '#00e676'\r\n};\r\n\r\nconst rejectStyle = {\r\n borderColor: '#ff1744'\r\n};\r\n\r\nconst AttachAnalysisModal = ({topicItemId}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {attachAnalysis} = rootStore.topicStore;\r\n const [file, setFile] = useState(null);\r\n const [submitting, setSubmitting] = useState(false); \r\n\r\n const {\r\n getRootProps,\r\n getInputProps,\r\n isDragActive,\r\n isDragAccept,\r\n isDragReject\r\n } = useDropzone({\r\n accept: 'image/*, application/pdf, .zip', \r\n maxFiles: 1,\r\n onDrop: acceptedFiles => { \r\n // attach file\r\n setFile(acceptedFiles[0]);\r\n\r\n }\r\n });\r\n\r\n const style = useMemo(() => ({\r\n ...baseStyle,\r\n ...(isDragActive ? activeStyle : {}),\r\n ...(isDragAccept ? acceptStyle : {}),\r\n ...(isDragReject ? rejectStyle : {})\r\n }), [\r\n isDragActive,\r\n isDragReject,\r\n isDragAccept\r\n ]); \r\n\r\n const handleSubmit = () => {\r\n setSubmitting(true);\r\n attachAnalysis(topicItemId, file);\r\n } \r\n\r\n return (\r\n \r\n
\r\n \r\n {\r\n isDragActive ?\r\n

Drop the files here ...

:\r\n

Drag 'n' drop one file here, or click to select one file

\r\n }\r\n

Only image/pdf/zip file is allowed

\r\n
\r\n \r\n \r\n \r\n Attachment\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {file && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default AttachAnalysisModal\r\n","import React, {useState, useContext} from 'react'\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport Editor from 'react-simple-code-editor';\r\nimport { highlight, languages } from 'prismjs/components/prism-core';\r\nimport 'prismjs/components/prism-clike';\r\nimport 'prismjs/components/prism-javascript';\r\nimport \"prismjs/themes/prism.css\";\r\n\r\nconst SubmitCodeModal = ({topicItemId}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {submitCode} = rootStore.topicStore;\r\n const [code, setCode] = useState('');\r\n const [submitting, setSubmitting] = useState(false); \r\n\r\n const handleSubmit = () => {\r\n setSubmitting(true);\r\n submitCode(topicItemId, code);\r\n } \r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Code\r\n \r\n \r\n \r\n setCode(code)}\r\n highlight={code => highlight(code, languages.js)}\r\n padding={5}\r\n style={{\r\n fontFamily: '\"Fira code\", \"Fira Mono\", monospace',\r\n fontSize: 12,\r\n backgroundColor: 'aliceblue'\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n {code && !submitting && }\r\n {submitting && }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default SubmitCodeModal\r\n","import React, {useState, useContext, useEffect} from 'react'\r\nimport { Container, Form, Button, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { EditorState, ContentState, convertToRaw } from 'draft-js';\r\nimport { Editor } from 'react-draft-wysiwyg';\r\nimport draftToHtml from 'draftjs-to-html';\r\nimport htmlToDraft from 'html-to-draftjs';\r\nimport '../../app/layout/editorStyle.css';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\n\r\nconst EditAnalysisContentModal = ({topicId, topicItemId, content}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {setTopicItemAnalysisContent} = rootStore.topicStore;\r\n const [submitting, setSubmitting] = useState(false); \r\n const [editorState, setEditorState] = useState(EditorState.createEmpty());\r\n \r\n useEffect(() => {\r\n if(content){\r\n const blocksFromHTML = htmlToDraft(content);\r\n const state = ContentState.createFromBlockArray(\r\n blocksFromHTML.contentBlocks,\r\n blocksFromHTML.entityMap\r\n );\r\n setEditorState(EditorState.createWithContent(state)); \r\n }\r\n }, [content]);\r\n\r\n const onEditorStateChange = (editState) => {\r\n setEditorState(editState);\r\n };\r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n var currentContent = editorState.getCurrentContent();\r\n if(currentContent) {\r\n setSubmitting(true); \r\n setTopicItemAnalysisContent(topicId, topicItemId, draftToHtml(convertToRaw(currentContent)))\r\n .finally(() => {\r\n setSubmitting(false);\r\n })\r\n }\r\n }\r\n return (\r\n \r\n
\r\n \r\n \r\n {\r\n editorState.getCurrentContent() &&\r\n !submitting && }\r\n {submitting && }\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default EditAnalysisContentModal\r\n","import React, {useState, useContext} from 'react'\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\n\r\nconst LinkAnalysisModal = ({topicId, topicItemId, url}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {setTopicItemAnalysisLink} = rootStore.topicStore;\r\n const [newUrl, setNewUrl] = useState(url); \r\n const [submitting, setSubmitting] = useState(false); \r\n const [isChanged, setIsChanged] = useState(false);\r\n\r\n const handleChange = (event) => {\r\n const {value} = event.target;\r\n setNewUrl(value);\r\n if(value !== url) {\r\n setIsChanged(true);\r\n }\r\n else{\r\n setIsChanged(false);\r\n }\r\n }\r\n \r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n setSubmitting(true);\r\n setTopicItemAnalysisLink(topicId, topicItemId, newUrl)\r\n .finally(() =>{\r\n setSubmitting(false);\r\n })\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n video link\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isChanged && !submitting && }\r\n {submitting && }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default LinkAnalysisModal","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Row, Col, Form, Table} from 'react-bootstrap';\r\nimport NewTopicItemLink from './NewTopicItemLink';\r\nimport SetTopicModal from './SetTopicModal';\r\nimport SetTopicItemCategory from './SetTopicItemCategory';\r\nimport SetTopicItemSeqNo from './SetTopicItemSeqNo';\r\nimport SetTopicItemConcepts from './SetTopicItemConcepts';\r\nimport SetTopicItem from './SetTopicItem';\r\nimport AttachAnalysisModal from './AttachAnalysisModal';\r\nimport SubmitCodeModal from './SubmitCodeModal';\r\nimport CodeModal from '../../app/common/modals/CodeModal';\r\nimport EditAnalysisContentModal from './EditAnalysisContentModal';\r\nimport ContentModal from '../../app/common/modals/ContentModal';\r\nimport LinkAnalysisModal from './LinkAnalysisModal';\r\n\r\n\r\ninterface TopicParams {\r\n topicId: string;\r\n}\r\n\r\nconst TopicForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {currentTopic, getTopic} = rootStore.topicStore;\r\n const { openModal} = rootStore.modalStore;\r\n const [searchCategory, setSearchCategory] = useState('');\r\n const [searchSeqNo, setSearchSeqNo] = useState('');\r\n const [searchTitle, setSearchTitle] = useState('');\r\n const [searchConcept, setSearchConcept] = useState('');\r\n\r\n const handleCategoryChange = (event: any) => {\r\n setSearchCategory(event.target.value);\r\n };\r\n\r\n const handleSeqNoChange = (event: any) => {\r\n setSearchSeqNo(event.target.value);\r\n };\r\n \r\n const handleTitleChange = (event: any) => {\r\n setSearchTitle(event.target.value);\r\n };\r\n \r\n const handleConceptChange = (event: any) => {\r\n setSearchConcept(event.target.value);\r\n }; \r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await getTopic(match.params.topicId);\r\n }\r\n if(match.params.topicId) {\r\n loadValues();\r\n }\r\n }, [getTopic, match.params.topicId]);\r\n\r\n const filter_problems = () => {\r\n var problems = currentTopic?.topicItems?.slice()\r\n .filter(topicItem => {\r\n if(searchCategory === \"\") return true;\r\n else if(topicItem.category.toLowerCase().includes(searchCategory.toLowerCase())) return true;\r\n else return false;\r\n })\r\n .filter(topicItem => {\r\n if(searchSeqNo === \"\") return true;\r\n else if(topicItem.seqNo.toLowerCase().includes(searchSeqNo.toLowerCase())) return true;\r\n else return false;\r\n }) \r\n .filter(topicItem => {\r\n if(searchTitle === \"\") return true;\r\n else if(topicItem.title.toLowerCase().includes(searchTitle.toLowerCase())) return true;\r\n else return false; \r\n }) \r\n .filter(topicItem => {\r\n if(searchConcept === \"\") return true;\r\n else if(!topicItem.concepts) return false;\r\n else if(topicItem.concepts.toLowerCase().includes(searchConcept.toLowerCase())) return true;\r\n else return false; \r\n });\r\n return problems ? problems : [];\r\n };\r\n\r\n return (\r\n
\r\n
\r\n

{currentTopic?.name}

\r\n openModal(`Edit topic`, , 'modal-pane-1')}> \r\n \r\n {/* openModal(\"Add new item (text)\", , 'modal-pane-1')}> \r\n */}\r\n openModal(\"Add new item (link)\", , 'modal-pane-1')}> \r\n \r\n {/* openModal(\"Add new item (attachment)\", , 'modal-pane-1')}> \r\n */}\r\n
\r\n \r\n \r\n \r\n Category\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n SeqNo\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Title\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Concept\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {currentTopic?.hasConcepts &&\r\n ()\r\n }\r\n {currentTopic?.hasAnalysis &&\r\n ()\r\n }\r\n {currentTopic?.hasCode &&\r\n ()\r\n } \r\n \r\n \r\n \r\n {\r\n filter_problems() \r\n .sort((a, b) => {\r\n if (a.category > b.category) return 1;\r\n else if(a.category < b.category) return -1;\r\n else if(a.seqNo > b.seqNo) return 1;\r\n else return -1;\r\n }).map(topicItem => \r\n \r\n \r\n \r\n \r\n {currentTopic?.hasConcepts &&\r\n ()\r\n }\r\n {currentTopic?.hasAnalysis &&\r\n ()\r\n }\r\n {currentTopic?.hasCode &&\r\n ()\r\n } \r\n \r\n )}\r\n \r\n
CategorySeqNoTitleConceptsAnalysisCode
{topicItem.category}\r\n openModal(`set category for ${topicItem.title}`, , 'modal-pane-1')}> \r\n \r\n \r\n {!topicItem.seqNoLink && topicItem.seqNo}\r\n {topicItem.seqNoLink && (\r\n {topicItem.seqNo}\r\n )} \r\n openModal(`set seqNo for ${topicItem.title}`, , 'modal-pane-1')}> \r\n \r\n \r\n {topicItem.url && (\r\n {topicItem.title}\r\n )}\r\n openModal(`set item for ${topicItem.title}`, , 'modal-pane-1')}> \r\n \r\n {topicItem.concepts}\r\n openModal(`set concepts for ${topicItem.title}`, , 'modal-pane-1')}> \r\n \r\n \r\n {topicItem.analysisUrl && (\r\n Analysis\r\n )}\r\n {topicItem.analysisContent && (\r\n openModal(`Analysis of ${topicItem.title}`, , 'modal-pane-1')}>\r\n Analysis\r\n \r\n )}\r\n openModal(`Write analysis for ${topicItem.title}`, , 'modal-pane-1')}> \r\n \r\n openModal(`Link analysis for ${topicItem.title}`, , 'modal-pane-1')}> \r\n \r\n openModal(`Attach analysis for ${topicItem.title}`, , 'modal-pane-1')}> \r\n \r\n \r\n {topicItem.code && (\r\n openModal(`Code for ${topicItem.title}`, \r\n , 'modal-pane-1')}>\r\n Code\r\n \r\n )} \r\n openModal(`Submit code for ${topicItem.title}`, , 'modal-pane-1')}> \r\n \r\n
\r\n
\r\n

Total problems: {filter_problems().length}

\r\n openModal(\"Add new item (link)\", , 'modal-pane-1')}> \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default observer(TopicForm)\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { Container, Table, Row, Button } from 'react-bootstrap'\r\nimport { Link } from 'react-router-dom';\r\nimport { ICourseTopic } from '../../app/models/courseTopic';\r\n\r\ninterface CourseParams {\r\n courseCode: string;\r\n}\r\n\r\nconst initialValues: ICourseTopic[] = [];\r\n\r\nconst SetCourseTopicsForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {loadCourseTopics, setCourseTopic} = rootStore.courseTopicStore;\r\n const [newCourseTopics, setNewCourseTopics] = useState(initialValues);\r\n\r\n useEffect(() => { \r\n const loadValues = async() => {\r\n var ct = await loadCourseTopics(match.params.courseCode);\r\n if(ct) {\r\n setNewCourseTopics(ct);\r\n }\r\n }\r\n if(match.params.courseCode) {\r\n loadValues();\r\n }\r\n }, [loadCourseTopics, match.params.courseCode, setNewCourseTopics]);\r\n\r\n const HandleAddCourseTopic = (topicId: any) => {\r\n setCourseTopic(match.params.courseCode, topicId, true);\r\n if(newCourseTopics && topicId) {\r\n var newValues = newCourseTopics.map(x => \r\n x.topicId === topicId ? \r\n {...x, isAdded: true} : x\r\n );\r\n setNewCourseTopics(newValues);\r\n }\r\n }\r\n\r\n const HandleRemoveCourseTopic = (topicId: any) => {\r\n setCourseTopic(match.params.courseCode, topicId, false);\r\n if(newCourseTopics && topicId) {\r\n var newValues = newCourseTopics.map(x => \r\n x.topicId === topicId ? \r\n {...x, isAdded: false} : x\r\n );\r\n setNewCourseTopics(newValues);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n

Course Topics

\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {newCourseTopics?.slice()\r\n .map((courseTopic, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
IdNameHas Concepts?Has Analysis?Has Code?Is Separate Page?Is Workbook?Added?Action
{courseTopic.topicId}{courseTopic.name}{courseTopic.hasConcepts ? \"Yes\" : \"No\"}{courseTopic.hasAnalysis ? \"Yes\" : \"No\"}{courseTopic.hasCode ? \"Yes\" : \"No\"}{courseTopic.isSeparatePage ? \"Yes\" : \"No\"}{courseTopic.isWorkbook ? \"Yes\" : \"No\"}{courseTopic.isAdded ? \"Yes\" : \"No\"}\r\n {courseTopic.isAdded && (\r\n HandleRemoveCourseTopic(courseTopic.topicId)}>\r\n )}\r\n {!courseTopic.isAdded && (\r\n HandleAddCourseTopic(courseTopic.topicId)}> \r\n )} \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SetCourseTopicsForm\r\n","import React, { Fragment, useContext, useEffect, useState } from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { ICourseTopicItem } from '../../app/models/courseTopic';\r\nimport {Container, Row, Col, Form, Table, Button, Spinner} from 'react-bootstrap';\r\nimport SplitPane from 'react-split-pane';\r\n\r\nimport \"../classes.css\";\r\n\r\ninterface CourseTopicParams {\r\n courseTopicId: string;\r\n topicId: string;\r\n}\r\n\r\nconst initialItems: ICourseTopicItem[] = [];\r\n\r\nconst SetCourseTopicItems: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {loadCourseTopicItems, addCourseTopicItem, removeCourseTopicItem, toggleShowConcepts, toggleShowAnalysis, toggleShowCode} = rootStore.courseTopicStore;\r\n const {topicItems, loadTopicItems} = rootStore.topicStore;\r\n const [courseTopicItems, setCourseTopicItems] = useState(initialItems);\r\n const [searchTerm, setSearchTerm] = useState('')\r\n const [btmHeight, setBtmHeight] = useState(100);\r\n const [loading, setLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n var items = await loadCourseTopicItems(match.params.courseTopicId);\r\n if(items){\r\n setCourseTopicItems(items);\r\n }\r\n await loadTopicItems(match.params.topicId);\r\n }\r\n if(match.params.courseTopicId && match.params.topicId){\r\n loadValues();\r\n }\r\n }, [loadCourseTopicItems, loadTopicItems, match.params.courseTopicId, match.params.topicId]);\r\n\r\n const toggleBtmHeight = (topPaneHeight: any) => {\r\n const maxHeight = 500;\r\n const padding = 25;\r\n const btmPaneHeight = maxHeight - topPaneHeight - padding;\r\n setBtmHeight(btmPaneHeight);\r\n }\r\n const handleChange = (event: any) => {\r\n setSearchTerm(event.target.value);\r\n }\r\n const delay = (ms: number) => new Promise(res => setTimeout(res, ms));\r\n const addAll = async(e: any) => {\r\n setLoading(true); \r\n topicItems.forEach(async (topicItem) => {\r\n if(!courseTopicItems.some(x => x.id === topicItem.id)) {\r\n await addCourseTopicItem(match.params.courseTopicId, topicItem.id); \r\n }\r\n })\r\n // temporarily delay for 3 seconds\r\n await delay(3000);\r\n var items = await loadCourseTopicItems(match.params.courseTopicId);\r\n if(items){\r\n setCourseTopicItems(items);\r\n } \r\n setLoading(false)\r\n\r\n }\r\n const addItem = async (topicItemId: any, e: any) => {\r\n addCourseTopicItem(match.params.courseTopicId, topicItemId);\r\n var topicItem = topicItems.find(x=>x.id === topicItemId);\r\n if(topicItem) {\r\n var courseTopicItem = {\r\n id : topicItem.id,\r\n category: topicItem.category,\r\n seqNo : topicItem.seqNo,\r\n title : topicItem.title,\r\n showConcepts : true,\r\n showAnalysis: false,\r\n showCode : false,\r\n topicId : match.params.topicId\r\n }\r\n setCourseTopicItems([...courseTopicItems, courseTopicItem]);\r\n }\r\n }\r\n\r\n const removeItem = (topicItemId: any, e: any) => {\r\n removeCourseTopicItem(match.params.courseTopicId, topicItemId);\r\n setCourseTopicItems(courseTopicItems.filter(x=>x.id !== topicItemId));\r\n }\r\n\r\n const handleShowConcepts = (topicItemId: any) => {\r\n toggleShowConcepts(match.params.courseTopicId, topicItemId, true);\r\n var newItems = [...courseTopicItems];\r\n var courseTopicItem = newItems.find(x=>x.id === topicItemId);\r\n if(courseTopicItem) {\r\n courseTopicItem.showConcepts = true;\r\n setCourseTopicItems(newItems);\r\n }\r\n }\r\n\r\n const handleHideConcepts = (topicItemId: any) => {\r\n toggleShowConcepts(match.params.courseTopicId, topicItemId, false);\r\n var newItems = [...courseTopicItems];\r\n var courseTopicItem = newItems.find(x=>x.id === topicItemId);\r\n if(courseTopicItem) {\r\n courseTopicItem.showConcepts = false;\r\n setCourseTopicItems(newItems);\r\n }\r\n }\r\n\r\n const handleShowAnalysis = (topicItemId: any) => {\r\n toggleShowAnalysis(match.params.courseTopicId, topicItemId, true);\r\n var newItems = [...courseTopicItems];\r\n var courseTopicItem = newItems.find(x=>x.id === topicItemId);\r\n if(courseTopicItem) {\r\n courseTopicItem.showAnalysis = true;\r\n setCourseTopicItems(newItems);\r\n }\r\n }\r\n\r\n const handleHideAnalysis = (topicItemId: any) => {\r\n toggleShowAnalysis(match.params.courseTopicId, topicItemId, false);\r\n var newItems = [...courseTopicItems];\r\n var courseTopicItem = newItems.find(x=>x.id === topicItemId);\r\n if(courseTopicItem) {\r\n courseTopicItem.showAnalysis = false;\r\n setCourseTopicItems(newItems);\r\n }\r\n }\r\n\r\n const handleShowCode = (topicItemId: any) => {\r\n toggleShowCode(match.params.courseTopicId, topicItemId, true);\r\n var newItems = [...courseTopicItems];\r\n var courseTopicItem = newItems.find(x=>x.id === topicItemId);\r\n if(courseTopicItem) {\r\n courseTopicItem.showCode = true;\r\n setCourseTopicItems(newItems);\r\n }\r\n }\r\n\r\n const handleHideCode = (topicItemId: any) => {\r\n toggleShowCode(match.params.courseTopicId, topicItemId, false);\r\n var newItems = [...courseTopicItems];\r\n var courseTopicItem = newItems.find(x=>x.id === topicItemId);\r\n if(courseTopicItem) {\r\n courseTopicItem.showCode = false;\r\n setCourseTopicItems(newItems);\r\n }\r\n }\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!loading && \r\n }\r\n {loading && }\r\n \r\n\r\n
\r\n\r\n toggleBtmHeight(size)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {topicItems?.slice() \r\n .filter(topicItem => \r\n !courseTopicItems.some(x => x.id === topicItem.id)\r\n )\r\n .filter(topicItem => {\r\n if(searchTerm === \"\"){\r\n return true;\r\n } else if(topicItem.title.toLowerCase().includes(searchTerm.toLowerCase())){\r\n return true;\r\n } else{\r\n return false;\r\n }\r\n }) \r\n .sort((a, b) => {\r\n if (a.category > b.category) return 1;\r\n else if(a.category < b.category) return -1;\r\n else if(a.seqNo > b.seqNo) return 1;\r\n else return -1;\r\n }) \r\n .map((topicItem, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
IdCategorySeqNoTitleAdd
{topicItem.id}{topicItem.category}{topicItem.seqNo}{topicItem.title} addItem(topicItem.id, e)}>
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {courseTopicItems?.slice() \r\n .sort((a, b) => {\r\n if (a.category > b.category) return 1;\r\n else if(a.category < b.category) return -1;\r\n else if(a.seqNo > b.seqNo) return 1;\r\n else return -1;\r\n }) \r\n .map((topicItem, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
IdCategorySeqNoTitleToggle ConceptsToggle AnalysisToggle CodeRemove
{topicItem.id}{topicItem.category}{topicItem.seqNo}{topicItem.title}{topicItem.showConcepts && (\r\n \r\n handleHideConcepts(topicItem.id)}> \r\n \r\n \r\n )}\r\n {!topicItem.showConcepts && (\r\n \r\n \r\n handleShowConcepts(topicItem.id)}> \r\n \r\n )} \r\n {topicItem.showAnalysis && (\r\n \r\n handleHideAnalysis(topicItem.id)}> \r\n \r\n \r\n )}\r\n {!topicItem.showAnalysis && (\r\n \r\n \r\n handleShowAnalysis(topicItem.id)}> \r\n \r\n )} \r\n {topicItem.showCode && (\r\n \r\n handleHideCode(topicItem.id)}> \r\n \r\n \r\n )}\r\n {!topicItem.showCode && (\r\n \r\n \r\n handleShowCode(topicItem.id)}> \r\n \r\n )} \r\n removeItem(topicItem.id, e)}>
\r\n
\r\n\r\n
\r\n )\r\n}\r\n\r\nexport default observer(SetCourseTopicItems)\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { Link, RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport {Row, Col, Form, Table, Button} from 'react-bootstrap';\r\nimport CodeModal from '../../app/common/modals/CodeModal';\r\nimport ContentModal from '../../app/common/modals/ContentModal';\r\n\r\ninterface CourseTopicParams {\r\n courseTopicId: string;\r\n}\r\n\r\nconst ShowCourseTopicItems: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {currentTopic, loadCourseTopic} = rootStore.courseTopicStore;\r\n const { openModal} = rootStore.modalStore;\r\n const [searchCategory, setSearchCategory] = useState('');\r\n const [searchSeqNo, setSearchSeqNo] = useState('');\r\n const [searchTitle, setSearchTitle] = useState('');\r\n const [searchConcept, setSearchConcept] = useState('');\r\n\r\n const handleCategoryChange = (event: any) => {\r\n setSearchCategory(event.target.value);\r\n };\r\n\r\n const handleSeqNoChange = (event: any) => {\r\n setSearchSeqNo(event.target.value);\r\n };\r\n \r\n const handleTitleChange = (event: any) => {\r\n setSearchTitle(event.target.value);\r\n };\r\n \r\n const handleConceptChange = (event: any) => {\r\n setSearchConcept(event.target.value);\r\n }; \r\n \r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadCourseTopic(match.params.courseTopicId);\r\n }\r\n if(match.params.courseTopicId) {\r\n loadValues();\r\n }\r\n }, [loadCourseTopic, match.params.courseTopicId]);\r\n\r\n return (\r\n
\r\n
\r\n

{currentTopic?.name}

\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Category\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n SeqNo\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Title\r\n \r\n \r\n \r\n \r\n \r\n \r\n {currentTopic?.hasAnalysis && \r\n \r\n \r\n \r\n Concept\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n } \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {currentTopic?.hasConcepts &&\r\n ()\r\n }\r\n {currentTopic?.hasAnalysis &&\r\n ()\r\n }\r\n {currentTopic?.hasCode &&\r\n ()\r\n }\r\n \r\n \r\n \r\n \r\n {currentTopic?.topicItems?.slice()\r\n .filter(topicItem => {\r\n if(searchCategory === \"\") return true;\r\n else if(topicItem.category.toLowerCase().includes(searchCategory.toLowerCase())) return true;\r\n else return false;\r\n })\r\n .filter(topicItem => {\r\n if(searchSeqNo === \"\") return true;\r\n else if(topicItem.seqNo.toLowerCase().includes(searchSeqNo.toLowerCase())) return true;\r\n else return false;\r\n }) \r\n .filter(topicItem => {\r\n if(searchTitle === \"\") return true;\r\n else if(topicItem.title.toLowerCase().includes(searchTitle.toLowerCase())) return true;\r\n else return false; \r\n }) \r\n .filter(topicItem => {\r\n if(searchConcept === \"\") return true;\r\n else if(!topicItem.concepts) return false;\r\n else if(topicItem.concepts.toLowerCase().includes(searchConcept.toLowerCase())) return true;\r\n else return false; \r\n }) \r\n .sort((a, b) => {\r\n if (a.category > b.category) return 1;\r\n else if(a.category < b.category) return -1;\r\n else if(a.seqNo > b.seqNo) return 1;\r\n else return -1;\r\n }).map(topicItem => \r\n \r\n \r\n \r\n \r\n {currentTopic?.hasConcepts &&\r\n ()\r\n }\r\n {currentTopic?.hasAnalysis &&\r\n ()\r\n }\r\n {currentTopic?.hasCode &&\r\n ()\r\n }\r\n \r\n \r\n )}\r\n \r\n
CategorySeqNoTitleConceptsAnalysisCodeDiscuss
{topicItem.category} \r\n \r\n {!topicItem.seqNoLink && topicItem.seqNo}\r\n {topicItem.seqNoLink && (\r\n {topicItem.seqNo}\r\n )} \r\n \r\n {topicItem.url && (\r\n {topicItem.title}\r\n )} \r\n {topicItem.concepts} \r\n \r\n {topicItem.analysisUrl && (\r\n Analysis\r\n )} \r\n {topicItem.analysisContent && (\r\n openModal(`Analysis of ${topicItem.title}`, , 'modal-pane-1')}>\r\n Analysis\r\n \r\n )} \r\n \r\n {topicItem.code && (\r\n openModal(`Code for ${topicItem.title}`, \r\n , 'modal-pane-1')}>\r\n Code\r\n \r\n )} \r\n \r\n \r\n Discuss\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default observer(ShowCourseTopicItems)\r\n","import React from 'react'\r\nimport { Container, Form, Col, Row } from 'react-bootstrap';\r\nimport Editor from 'react-simple-code-editor';\r\nimport { highlight, languages } from 'prismjs/components/prism-core';\r\nimport 'prismjs/components/prism-clike';\r\nimport 'prismjs/components/prism-javascript';\r\nimport \"prismjs/themes/prism.css\";\r\n\r\nconst LastSubmitModal = ({remark, code, attachment, attachmentUrl}) => {\r\n return (\r\n \r\n \r\n \r\n \r\n Remark:\r\n \r\n \r\n \r\n
\r\n

{remark}

\r\n
\r\n \r\n
\r\n {code && (\r\n \r\n \r\n \r\n Code\r\n \r\n \r\n \r\n {}}\r\n highlight={code => highlight(code, languages.js)}\r\n padding={5}\r\n style={{\r\n fontFamily: '\"Fira code\", \"Fira Mono\", monospace',\r\n fontSize: 12,\r\n backgroundColor: 'aliceblue'\r\n }}\r\n />\r\n \r\n \r\n )}\r\n {attachment && (\r\n \r\n \r\n \r\n Attachment\r\n \r\n \r\n \r\n {attachment} \r\n \r\n \r\n )} \r\n
\r\n )\r\n}\r\n\r\nexport default LastSubmitModal\r\n","import React, {useState, useContext} from 'react'\r\nimport { Container, Form, Button, Col, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport Editor from 'react-simple-code-editor';\r\nimport { highlight, languages } from 'prismjs/components/prism-core';\r\nimport 'prismjs/components/prism-clike';\r\nimport 'prismjs/components/prism-javascript';\r\nimport \"prismjs/themes/prism.css\";\r\n\r\nconst StudentSubmitCodeModal = ({courseTopicId, topicItemId}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {submitCode} = rootStore.courseTopicStore;\r\n const [remark, setRemark] = useState(''); \r\n const [code, setCode] = useState('');\r\n const [submitting, setSubmitting] = useState(false); \r\n\r\n const handleRemarkChange = (event) => {\r\n const {value} = event.target;\r\n setRemark(value);\r\n }\r\n\r\n const handleSubmit = () => {\r\n setSubmitting(true);\r\n submitCode(courseTopicId, topicItemId, remark, code);\r\n } \r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Remark:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Code\r\n \r\n \r\n \r\n setCode(code)}\r\n highlight={code => highlight(code, languages.js)}\r\n padding={5}\r\n style={{\r\n fontFamily: '\"Fira code\", \"Fira Mono\", monospace',\r\n fontSize: 12,\r\n backgroundColor: 'aliceblue'\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n {code && !submitting && }\r\n {submitting && }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default StudentSubmitCodeModal\r\n","import React, {useContext, useEffect, useState } from 'react';\r\nimport { Link, RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Row, Col, Form, Table, Button} from 'react-bootstrap';\r\nimport CodeModal from '../../app/common/modals/CodeModal';\r\nimport ContentModal from '../../app/common/modals/ContentModal';\r\nimport LastSubmitModal from './LastSubmitModal';\r\nimport StudentSubmitCodeModal from './StudentSubmitCodeModal';\r\n// import StudentSubmitAttachModal from './StudentSubmitAttachModal';\r\ninterface CourseTopicParams {\r\n courseTopicId: string;\r\n}\r\n\r\nconst ShowStudentCourseTopicItems: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {studentTopic, loadStudentCourseTopic} = rootStore.courseTopicStore;\r\n const { openModal} = rootStore.modalStore;\r\n const [searchCategory, setSearchCategory] = useState('');\r\n const [searchSeqNo, setSearchSeqNo] = useState('');\r\n const [searchTitle, setSearchTitle] = useState('');\r\n const [searchConcept, setSearchConcept] = useState('');\r\n const [showAll, setShowAll] = useState(false);\r\n const handleCategoryChange = (event: any) => {\r\n setSearchCategory(event.target.value);\r\n };\r\n\r\n const handleSeqNoChange = (event: any) => {\r\n setSearchSeqNo(event.target.value);\r\n };\r\n \r\n const handleTitleChange = (event: any) => {\r\n setSearchTitle(event.target.value);\r\n };\r\n \r\n const handleConceptChange = (event: any) => {\r\n setSearchConcept(event.target.value);\r\n }; \r\n \r\n const handleShowAll = (event: any) => {\r\n setShowAll(event.target.checked);\r\n }\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadStudentCourseTopic(match.params.courseTopicId);\r\n }\r\n if(match.params.courseTopicId) {\r\n loadValues();\r\n }\r\n }, [loadStudentCourseTopic, match.params.courseTopicId]);\r\n\r\n return (\r\n
\r\n
\r\n

{studentTopic?.name}

\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Category\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n SeqNo\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Title\r\n \r\n \r\n \r\n \r\n \r\n \r\n {studentTopic?.hasAnalysis && \r\n \r\n \r\n \r\n Concept\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n } \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {studentTopic?.hasConcepts &&\r\n ()\r\n }\r\n {studentTopic?.hasAnalysis &&\r\n ()\r\n }\r\n {studentTopic?.hasCode &&\r\n ()\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {studentTopic?.topicItems?.slice()\r\n .filter(topicItem => {\r\n if(searchCategory === \"\") return true;\r\n else if(topicItem.category.toLowerCase().includes(searchCategory.toLowerCase())) return true;\r\n else return false;\r\n })\r\n .filter(topicItem => {\r\n if(searchSeqNo === \"\") return true;\r\n else if(topicItem.seqNo.toLowerCase().includes(searchSeqNo.toLowerCase())) return true;\r\n else return false;\r\n }) \r\n .filter(topicItem => {\r\n if(searchTitle === \"\") return true;\r\n else if(topicItem.title.toLowerCase().includes(searchTitle.toLowerCase())) return true;\r\n else return false; \r\n }) \r\n .filter(topicItem => {\r\n if(searchConcept === \"\") return true;\r\n else if(!topicItem.concepts) return false;\r\n else if(topicItem.concepts.toLowerCase().includes(searchConcept.toLowerCase())) return true;\r\n else return false; \r\n })\r\n .filter(topicItem => {\r\n if(showAll) return true;\r\n else {\r\n if(topicItem.submitCode || topicItem.submitAttach) return false;\r\n else return true;\r\n }\r\n }) \r\n .sort((a, b) => {\r\n if (a.category > b.category) return 1;\r\n else if(a.category < b.category) return -1;\r\n else if(a.seqNo > b.seqNo) return 1;\r\n else return -1;\r\n }).map(topicItem => \r\n \r\n \r\n \r\n \r\n {studentTopic?.hasConcepts &&\r\n ()\r\n }\r\n {studentTopic?.hasAnalysis &&\r\n ()\r\n }\r\n {studentTopic?.hasCode &&\r\n ()\r\n }\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
CategorySeqNoTitleConceptsAnalysisCodeDiscussLast SubmitSubmit
{topicItem.category} \r\n \r\n {!topicItem.seqNoLink && topicItem.seqNo}\r\n {topicItem.seqNoLink && (\r\n {topicItem.seqNo}\r\n )} \r\n \r\n {topicItem.url && (\r\n {topicItem.title}\r\n )} \r\n {topicItem.concepts} \r\n \r\n {topicItem.analysisUrl && (\r\n Analysis\r\n )} \r\n {topicItem.analysisContent && (\r\n openModal(`Analysis of ${topicItem.title}`, , 'modal-pane-1')}>\r\n Analysis\r\n \r\n )} \r\n \r\n {topicItem.code && (\r\n openModal(`Code for ${topicItem.title}`, \r\n , 'modal-pane-1')}>\r\n Code\r\n \r\n )} \r\n \r\n \r\n Discuss\r\n \r\n \r\n {(topicItem.submitCode || topicItem.submitAttach) && (\r\n openModal(`last submit for ${topicItem.title}`, \r\n , 'modal-pane-1')}>\r\n Last Submit\r\n \r\n )}\r\n \r\n openModal(`Submit code for ${topicItem.title}`, , 'modal-pane-1')}> \r\n \r\n {/* openModal(`Submit attachment for ${topicItem.title}`, , 'modal-pane-1')}> \r\n */}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default observer(ShowStudentCourseTopicItems)\r\n","import React, {useContext, useEffect} from 'react'\r\nimport { Container, Form, Col, Row} from 'react-bootstrap';\r\nimport Editor from 'react-simple-code-editor';\r\nimport { highlight, languages } from 'prismjs/components/prism-core';\r\nimport 'prismjs/components/prism-clike';\r\nimport 'prismjs/components/prism-javascript';\r\nimport \"prismjs/themes/prism.css\";\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\n\r\nconst StudentSubmissionsModal = ({courseTopicId, topicItemId}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {studentSubmissions, loadStudentSubmissions} = rootStore.courseTopicStore;\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadStudentSubmissions(courseTopicId, topicItemId);\r\n }\r\n loadValues();\r\n }, [loadStudentSubmissions, courseTopicId, topicItemId]);\r\n\r\n return (\r\n \r\n {studentSubmissions?.map((submission, index) => \r\n
\r\n \r\n \r\n \r\n
Student Name:
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {submission.studentRemark && (\r\n \r\n \r\n \r\n Student's Remark:\r\n \r\n \r\n \r\n
\r\n

{submission.remark}

\r\n
\r\n \r\n
\r\n )}\r\n \r\n \r\n \r\n Code\r\n \r\n \r\n \r\n {}}\r\n highlight={code => highlight(code, languages.js)}\r\n padding={5}\r\n style={{\r\n fontFamily: '\"Fira code\", \"Fira Mono\", monospace',\r\n fontSize: 12,\r\n backgroundColor: 'aliceblue'\r\n }}\r\n />\r\n \r\n \r\n
\r\n )}\r\n\r\n
\r\n )\r\n}\r\n\r\nexport default observer(StudentSubmissionsModal)","import React from 'react'\r\nimport { Container, Col, Row} from 'react-bootstrap';\r\n\r\nconst ShowItemInfo = ({courseTopicId, topicItemId}) => {\r\n return (\r\n \r\n \r\n \r\n Course Topic Id\r\n \r\n \r\n {courseTopicId}\r\n \r\n \r\n \r\n \r\n Topic Item Id\r\n \r\n \r\n {topicItemId}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ShowItemInfo","import React, {Fragment, useContext, useEffect, useState } from 'react';\r\nimport { Link, RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Row, Col, Form, Table, Button} from 'react-bootstrap';\r\nimport CodeModal from '../../app/common/modals/CodeModal';\r\nimport ContentModal from '../../app/common/modals/ContentModal';\r\nimport StudentSubmissionsModal from './StudentSubmissionsModal';\r\nimport ShowItemInfo from './ShowItemInfo';\r\n\r\ninterface CourseTopicParams {\r\n courseTopicId: string;\r\n}\r\n\r\nconst ShowTeacherCourseTopicItems: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {teacherTopic, loadTeacherCourseTopic} = rootStore.courseTopicStore;\r\n const { openModal} = rootStore.modalStore;\r\n const [searchCategory, setSearchCategory] = useState('');\r\n const [searchSeqNo, setSearchSeqNo] = useState('');\r\n const [searchTitle, setSearchTitle] = useState('');\r\n const [searchConcept, setSearchConcept] = useState('');\r\n\r\n const handleCategoryChange = (event: any) => {\r\n setSearchCategory(event.target.value);\r\n };\r\n\r\n const handleSeqNoChange = (event: any) => {\r\n setSearchSeqNo(event.target.value);\r\n };\r\n \r\n const handleTitleChange = (event: any) => {\r\n setSearchTitle(event.target.value);\r\n };\r\n \r\n const handleConceptChange = (event: any) => {\r\n setSearchConcept(event.target.value);\r\n }; \r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadTeacherCourseTopic(match.params.courseTopicId);\r\n }\r\n if(match.params.courseTopicId) {\r\n loadValues();\r\n }\r\n }, [loadTeacherCourseTopic, match.params.courseTopicId]);\r\n\r\n const filter_problems = () => {\r\n var problems = teacherTopic?.topicItems?.slice()\r\n .filter(topicItem => {\r\n if(searchCategory === \"\") return true;\r\n else if(topicItem.category.toLowerCase().includes(searchCategory.toLowerCase())) return true;\r\n else return false;\r\n })\r\n .filter(topicItem => {\r\n if(searchSeqNo === \"\") return true;\r\n else if(topicItem.seqNo.toLowerCase().includes(searchSeqNo.toLowerCase())) return true;\r\n else return false;\r\n }) \r\n .filter(topicItem => {\r\n if(searchTitle === \"\") return true;\r\n else if(topicItem.title.toLowerCase().includes(searchTitle.toLowerCase())) return true;\r\n else return false; \r\n }) \r\n .filter(topicItem => {\r\n if(searchConcept === \"\") return true;\r\n else if(!topicItem.concepts) return false;\r\n else if(topicItem.concepts.toLowerCase().includes(searchConcept.toLowerCase())) return true;\r\n else return false; \r\n });\r\n return problems ? problems : [];\r\n };\r\n\r\n return (\r\n
\r\n
\r\n

{teacherTopic?.courseName} - {teacherTopic?.name}

\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Category\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n SeqNo \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Title\r\n \r\n \r\n \r\n \r\n \r\n \r\n {teacherTopic?.hasAnalysis && \r\n \r\n \r\n \r\n Concept\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n } \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {teacherTopic?.hasConcepts &&\r\n ()\r\n }\r\n {teacherTopic?.hasAnalysis &&\r\n ()\r\n }\r\n {teacherTopic?.hasCode &&\r\n ()\r\n }\r\n \r\n \r\n \r\n \r\n \r\n { \r\n filter_problems()\r\n .sort((a, b) => {\r\n if (a.category > b.category) return 1;\r\n else if(a.category < b.category) return -1;\r\n else if(a.seqNo > b.seqNo) return 1;\r\n else return -1;\r\n }).map(topicItem => \r\n \r\n \r\n \r\n \r\n {teacherTopic?.hasConcepts &&\r\n ()\r\n }\r\n {teacherTopic?.hasAnalysis &&\r\n ()\r\n }\r\n {teacherTopic?.hasCode &&\r\n ()\r\n }\r\n \r\n \r\n \r\n )}\r\n \r\n
CategorySeqNoTitleConceptsAnalysisCodeDiscussSubmissions
{topicItem.category} \r\n \r\n {!topicItem.seqNoLink && (\r\n {topicItem.seqNo} \r\n openModal(`${teacherTopic?.name} ${topicItem.category} ${topicItem.seqNo}: ${topicItem.title}`, , 'modal-pane-1')}> \r\n \r\n )}\r\n {topicItem.seqNoLink && (\r\n {topicItem.seqNo}\r\n )} \r\n \r\n {topicItem.url && (\r\n {topicItem.title}\r\n )} \r\n {topicItem.concepts} \r\n \r\n {topicItem.analysisUrl && (\r\n Analysis\r\n )} \r\n {topicItem.analysisContent && (\r\n openModal(`Analysis of ${topicItem.title}`, , 'modal-pane-1')}>\r\n Analysis\r\n \r\n )} \r\n \r\n {topicItem.code && (\r\n openModal(`Code for ${topicItem.title}`, \r\n , 'modal-pane-1')}>\r\n Code\r\n \r\n )} \r\n \r\n \r\n Discuss\r\n \r\n \r\n {topicItem.numOfSubmissions > 0 && (\r\n openModal(`student submissions of ${topicItem.title}`, , 'modal-pane-1')}>\r\n {topicItem.numOfSubmissions} submissions\r\n \r\n )} \r\n
\r\n
\r\n

Total problems: {filter_problems().length}

\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default observer(ShowTeacherCourseTopicItems)\r\n","import React, { useContext, useEffect} from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Table} from 'react-bootstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport {convertUTCDateToLocalDataString } from '../helper/DateHelper';\r\nimport \"./qa.css\";\r\n\r\nconst QuestionsForm = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {questions, getQuestions} = rootStore.qaStore;\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await getQuestions();\r\n }\r\n loadValues();\r\n }, [getQuestions])\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {questions.slice().sort((a, b) => a.date < b.date ? 1 : -1)\r\n .map((question, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
CourseStudentDatePrivate?TopicLast RepliedReplied ByViewed
{question.courseName}{question.userFullName}{convertUTCDateToLocalDataString(question.date)}{question.isPrivate ? \"Yes\" : \"No\"}\r\n \r\n {question.topic}\r\n \r\n \r\n {question.lastDateReplied ? convertUTCDateToLocalDataString(question.lastDateReplied) : \"\"}\r\n \r\n {question.lastReplier}\r\n \r\n {question.viewed ? : ''}\r\n
\r\n
\r\n )\r\n};\r\n\r\nexport default observer(QuestionsForm);\r\n","import React, { useContext, useEffect} from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Table} from 'react-bootstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport {convertUTCDateToLocalDataString } from '../helper/DateHelper';\r\nimport \"./qa.css\";\r\n\r\nconst TAQuestionsForm = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {taQuestions, getTAQuestions} = rootStore.qaStore;\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await getTAQuestions();\r\n }\r\n loadValues();\r\n }, [getTAQuestions])\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {taQuestions.slice().sort((a, b) => a.date < b.date ? 1 : -1)\r\n .map((question, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
CourseStudentDatePrivate?TopicLast RepliedReplied ByViewed
{question.courseName}{question.userFullName}{convertUTCDateToLocalDataString(question.date)}{question.isPrivate ? \"Yes\" : \"No\"}\r\n \r\n {question.topic}\r\n \r\n \r\n {question.lastDateReplied ? convertUTCDateToLocalDataString(question.lastDateReplied) : \"\"}\r\n \r\n {question.lastReplier}\r\n \r\n {question.viewed ? : ''}\r\n
\r\n
\r\n )\r\n};\r\n\r\nexport default observer(TAQuestionsForm);\r\n","import React, {useState, useContext} from 'react'\r\nimport { Container, Form, Button, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { EditorState, convertToRaw } from 'draft-js';\r\nimport { Editor } from 'react-draft-wysiwyg';\r\nimport draftToHtml from 'draftjs-to-html';\r\nimport '../../app/layout/editorStyle.css';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\n\r\nconst AddDiscussionModal = ({courseTopicId, topicItemId}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {addDiscussion} = rootStore.courseTopicStore;\r\n const [submitting, setSubmitting] = useState(false);\r\n const [editorState, setEditorState] = useState(EditorState.createEmpty());\r\n const onEditorStateChange = (editState) => {\r\n setEditorState(editState);\r\n };\r\n \r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n var currentContent = editorState.getCurrentContent();\r\n setSubmitting(true);\r\n if(currentContent){\r\n addDiscussion(courseTopicId, topicItemId, draftToHtml(convertToRaw(currentContent)))\r\n .finally(() =>{\r\n setSubmitting(false);\r\n })\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n {\r\n editorState.getCurrentContent() &&\r\n !submitting && }\r\n {submitting && }\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default AddDiscussionModal","import React, { useContext, useEffect} from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport {Card, Button} from 'react-bootstrap';\r\nimport parse from 'html-react-parser'\r\nimport \"./discussion.css\";\r\nimport AddDiscussionModal from './AddDiscussionModal'\r\nimport {convertUTCDateToLocalDataString, convertUTCDateToLocalTimeString } from '../helper/DateHelper';\r\n\r\ninterface TopicItemParams {\r\n courseTopicId: string;\r\n topicItemId: string;\r\n title: string;\r\n}\r\n\r\nconst TopicItemDiscussForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {discussions, loadDiscussions} = rootStore.courseTopicStore;\r\n const {openModal} = rootStore.modalStore;\r\n \r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadDiscussions(match.params.courseTopicId, match.params.topicItemId);\r\n }\r\n if(match.params.courseTopicId && match.params.topicItemId) {\r\n loadValues();\r\n }\r\n }, [loadDiscussions, match.params.courseTopicId, match.params.topicItemId])\r\n \r\n return (\r\n
\r\n \r\n \r\n
\r\n

Discussions for {match.params.title}

\r\n \r\n \r\n
\r\n
\r\n
\r\n {discussions?.slice().sort((a, b) => a.date > b.date ? 1: -1)\r\n .map((discussion, idx) => (\r\n \r\n \r\n {discussion.userFullName},    \r\n {convertUTCDateToLocalDataString(discussion.date)}\r\n  \r\n {convertUTCDateToLocalTimeString(discussion.date)} \r\n \r\n {parse(discussion.message)}\r\n \r\n \r\n ))} \r\n
\r\n )\r\n}\r\n\r\nexport default observer(TopicItemDiscussForm)","import React, {useState, useContext, useEffect} from 'react'\r\nimport { Container, Form, Button, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { EditorState, ContentState, convertToRaw } from 'draft-js';\r\nimport { Editor } from 'react-draft-wysiwyg';\r\nimport draftToHtml from 'draftjs-to-html';\r\nimport htmlToDraft from 'html-to-draftjs';\r\nimport '../../app/layout/editorStyle.css';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\n\r\nconst UpdateMessageModal = ({courseTopicId, topicItemId, messageId, message}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {updateMessage} = rootStore.courseTopicStore; \r\n const [submitting, setSubmitting] = useState(false);\r\n const [editorState, setEditorState] = useState(EditorState.createEmpty());\r\n const onEditorStateChange = (editState) => {\r\n setEditorState(editState);\r\n }; \r\n useEffect(() => {\r\n if(message) {\r\n const blocksFromHTML = htmlToDraft(message);\r\n const state = ContentState.createFromBlockArray(\r\n blocksFromHTML.contentBlocks,\r\n blocksFromHTML.entityMap\r\n );\r\n setEditorState(EditorState.createWithContent(state)); \r\n }\r\n }, [message])\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n var currentContent = editorState.getCurrentContent();\r\n setSubmitting(true);\r\n if(currentContent){\r\n updateMessage(courseTopicId, topicItemId, messageId, draftToHtml(convertToRaw(currentContent)))\r\n .finally(() =>{\r\n setSubmitting(false);\r\n })\r\n }\r\n } \r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n {\r\n editorState.getCurrentContent() &&\r\n !submitting && }\r\n {submitting && }\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default UpdateMessageModal\r\n","import React, { useContext, useEffect} from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport {Card, Button} from 'react-bootstrap';\r\nimport parse from 'html-react-parser'\r\nimport \"./discussion.css\";\r\nimport AddDiscussionModal from './AddDiscussionModal'\r\nimport {convertUTCDateToLocalDataString, convertUTCDateToLocalTimeString } from '../helper/DateHelper';\r\nimport UpdateMessageModal from './UpdateMessageModal';\r\n\r\ninterface TopicItemParams {\r\n courseTopicId: string;\r\n topicItemId: string;\r\n title: string;\r\n}\r\n\r\nconst TopicItemDiscussTeacherForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {discussions, loadDiscussions} = rootStore.courseTopicStore;\r\n const {openModal} = rootStore.modalStore;\r\n \r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadDiscussions(match.params.courseTopicId, match.params.topicItemId);\r\n }\r\n if(match.params.courseTopicId && match.params.topicItemId) {\r\n loadValues();\r\n }\r\n }, [loadDiscussions, match.params.courseTopicId, match.params.topicItemId])\r\n \r\n return (\r\n
\r\n \r\n \r\n
\r\n

Discussions for {match.params.title}

\r\n \r\n \r\n
\r\n
\r\n
\r\n {discussions?.slice().sort((a, b) => a.date > b.date ? 1: -1)\r\n .map((discussion, idx) => (\r\n \r\n \r\n {discussion.userFullName},    \r\n {convertUTCDateToLocalDataString(discussion.date)}\r\n  \r\n {convertUTCDateToLocalTimeString(discussion.date)}\r\n \r\n \r\n {parse(discussion.message)}\r\n \r\n \r\n ))} \r\n
\r\n )\r\n}\r\n\r\nexport default observer(TopicItemDiscussTeacherForm)","import React, { useContext, useEffect} from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport {Button, Table} from 'react-bootstrap';\r\nimport { Link, RouteComponentProps } from 'react-router-dom';\r\n\r\ninterface CourseTopicParams {\r\n courseTopicId: string;\r\n}\r\n\r\nconst DiscussionsForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {discussions, getDiscussions} = rootStore.discussionStore;\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await getDiscussions(match.params.courseTopicId);\r\n }\r\n if(match.params.courseTopicId){\r\n loadValues();\r\n }\r\n }, [getDiscussions, match.params.courseTopicId])\r\n\r\n return (\r\n
\r\n
\r\n

Latest discussions

\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {discussions?.slice().sort((a, b) => a.date > b.date ? 1 : -1)\r\n .map((discussion, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
CategorySeqNoTitleDateDiscuss
{discussion.category}{discussion.seqNo}\r\n {discussion.url && (\r\n {discussion.title}\r\n )} \r\n {(new Date(discussion.date)).toLocaleString()}\r\n \r\n Discuss\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default observer(DiscussionsForm)","import React, { useContext, useEffect} from 'react';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport {Button, Table} from 'react-bootstrap';\r\nimport { Link, RouteComponentProps } from 'react-router-dom';\r\n\r\ninterface CourseParams {\r\n courseId: string;\r\n}\r\n\r\nconst CourseDiscussionsForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {discussions, getCourseDiscussions} = rootStore.discussionStore;\r\n\r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await getCourseDiscussions(match.params.courseId);\r\n }\r\n if(match.params.courseId){\r\n loadValues();\r\n }\r\n }, [getCourseDiscussions, match.params.courseId])\r\n\r\n return (\r\n
\r\n
\r\n

Latest discussions

\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {discussions?.slice().sort((a, b) => a.date > b.date ? 1 : -1)\r\n .map((discussion, index) => \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )} \r\n \r\n
TopicNameCategorySeqNoTitleDateDiscuss
{discussion.topicName}{discussion.category}{discussion.seqNo}\r\n {discussion.url && (\r\n {discussion.title}\r\n )} \r\n {(new Date(discussion.date)).toLocaleString()}\r\n \r\n Discuss\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default observer(CourseDiscussionsForm)","import React, {useState, useContext} from 'react'\r\nimport { Container, Form, Button, Row, Spinner } from 'react-bootstrap';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { EditorState, convertToRaw } from 'draft-js';\r\nimport { Editor } from 'react-draft-wysiwyg';\r\nimport draftToHtml from 'draftjs-to-html';\r\nimport '../../app/layout/editorStyle.css';\r\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\r\n\r\nconst AddDiscussionModal = ({assignnmentId}) => {\r\n const rootStore = useContext(RootStoreContext);\r\n const {addDiscussion} = rootStore.assignmentStore;\r\n const [submitting, setSubmitting] = useState(false);\r\n const [editorState, setEditorState] = useState(EditorState.createEmpty());\r\n const onEditorStateChange = (editState) => {\r\n setEditorState(editState);\r\n }; \r\n\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation(); \r\n var currentContent = editorState.getCurrentContent();\r\n setSubmitting(true);\r\n if(currentContent){\r\n addDiscussion(assignnmentId, draftToHtml(convertToRaw(currentContent)))\r\n .finally(() =>{\r\n setSubmitting(false);\r\n })\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n {\r\n editorState.getCurrentContent() &&\r\n !submitting && }\r\n {submitting && }\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default AddDiscussionModal","import React, { useContext, useEffect} from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { RootStoreContext } from '../../app/stores/rootStore';\r\nimport { observer } from 'mobx-react-lite';\r\nimport {Card, Button} from 'react-bootstrap';\r\nimport parse from 'html-react-parser'\r\nimport \"./discussion.css\";\r\nimport AddDiscussionModal from './AddDiscussionModal'\r\nimport {convertUTCDateToLocalDataString, convertUTCDateToLocalTimeString } from '../helper/DateHelper';\r\n\r\ninterface AssignmentParams {\r\n assignmentId: string;\r\n title: string;\r\n}\r\n\r\nconst AssignmentDiscussForm: React.FC> = ({\r\n match, history}) => {\r\n const rootStore = useContext(RootStoreContext); \r\n const {discussions, loadDiscussions} = rootStore.assignmentStore;\r\n const {openModal} = rootStore.modalStore;\r\n \r\n useEffect(() => {\r\n const loadValues = async() => {\r\n await loadDiscussions(match.params.assignmentId);\r\n }\r\n if(match.params.assignmentId) {\r\n loadValues();\r\n }\r\n }, [loadDiscussions, match.params.assignmentId])\r\n \r\n return (\r\n
\r\n \r\n \r\n
\r\n

Discussions for {match.params.title}

\r\n \r\n \r\n
\r\n
\r\n
\r\n {discussions?.slice().sort((a, b) => a.date > b.date ? 1: -1)\r\n .map((discussion, idx) => (\r\n \r\n \r\n {discussion.userFullName},    \r\n {convertUTCDateToLocalDataString(discussion.date)}\r\n  \r\n {convertUTCDateToLocalTimeString(discussion.date)}\r\n \r\n {parse(discussion.message)}\r\n \r\n \r\n ))} \r\n
\r\n )\r\n}\r\n\r\nexport default observer(AssignmentDiscussForm)","import React, { useContext, useEffect, Fragment } from 'react';\nimport {\n RouteComponentProps,\n Route,\n withRouter,\n Switch\n} from 'react-router-dom';\nimport { RootStoreContext } from '../stores/rootStore';\nimport { LoadingComponent } from './LoadingComponent';\nimport { ToastContainer } from 'react-toastify';\nimport ModalContainer from '../common/modals/ModalContainer';\nimport { HomePage } from '../../features/home/HomePage';\nimport { observer } from 'mobx-react-lite';\nimport { Courses } from '../../features/courses/Courses';\nimport NotFound from './NotFound';\nimport { Staff } from '../../features/staff/Staff';\nimport Achievements from '../../features/achievements/Achievements';\nimport AdminAchievements from '../../features/achievements/AdminAchievements';\nimport AdminAnnouncements from '../../features/announcements/AdminAnnouncements';\nimport { Contact } from '../../features/contact/Contact';\nimport PrivateRoute from './PrivateRoute';\nimport UsersForm from '../../features/users/UsersForm';\nimport UserForm from '../../features/users/UserForm';\nimport ClassesForm from '../../features/classes/ClassesForm';\nimport NavBar from '../../features/nav/NavBar';\nimport NumberPuzzleRanks from '../../features/numberPuzzles/NumberPuzzleRanks';\nimport { NumberPuzzleSolve } from '../../features/numberPuzzles/NumberPuzzleSolve';\nimport ProfileForm from '../../features/user/ProfileForm';\nimport SubjectsForm from '../../features/subject/SubjectsForm';\nimport AdminClassesForm from '../../features/adminClasses/AdminClassesForm';\nimport AdminClassForm from '../../features/adminClasses/AdminClassForm';\nimport EditClassForm from '../../features/adminClasses/EditClassForm';\nimport NewClassForm from '../../features/adminClasses/NewClassForm';\nimport ClassAssistants from '../../features/adminClasses/ClassAssistants';\nimport ClassStudents from '../../features/adminClasses/ClassStudents';\nimport AdminClassInfo from '../../features/adminClasses/AdminClassInfo';\nimport TeacherClassesForm from '../../features/teacherClasses/TeacherClassesForm';\nimport TeacherClassInfo from '../../features/teacherClasses/TeacherClassInfo';\nimport TeacherClassForm from '../../features/teacherClasses/TeacherClassForm';\nimport AssistantClassesForm from '../../features/assistants/AssistantClassesForm';\nimport AssistantClassForm from '../../features/assistants/AssistantClassForm';\nimport AssistantTopicsForm from '../../features/assistants/AssistantTopicsForm';\nimport AssistantTopicForm from '../../features/assistants/AssistantTopicForm';\nimport PythonProblemDashboard from '../../features/pythonProblems/dashboard/PythonProblemDashboard';\nimport PythonProblemSolution from '../../features/pythonProblems/solution/PythonProblemSolution';\nimport PythonProblemForm from '../../features/pythonProblems/form/PythonProblemForm';\nimport PythonTestCaseList from '../../features/pythonTestCases/PythonTestCaseList';\nimport { PythonTestCaseForm } from '../../features/pythonTestCases/PythonTestCaseForm';\nimport AttendanceForm from '../../features/lesson/AttendanceForm';\nimport AssistantAttendanceForm from '../../features/lesson/AssistantAttendanceForm';\nimport AssignmentContentForm from '../../features/assignments/AssignmentContentForm';\nimport AdminAssignmentForm from '../../features/assignments/AdminAssignmentForm';\nimport AssistantAssignmentForm from '../../features/assignments/AssistantAssignmentForm';\nimport StudentClassesform from '../../features/studentClasses/StudentClassesform';\nimport StudentClassForm from '../../features/studentClasses/StudentClassForm';\nimport ParentClassesform from '../../features/parentClasses/ParentClassesForm'\nimport StudentAssignmentForm from '../../features/assignments/StudentAssignmentForm';\nimport InquiriesForm from '../../features/users/InquiriesForm';\nimport StudentSubmissions from '../../features/lesson/StudentSubmissions';\nimport TeacherLessonContentForm from '../../features/lesson/TeacherLessonContentForm';\nimport AssistantLessonContentForm from '../../features/lesson/AssistantLessonContentForm';\nimport StudentLessonContentForm from '../../features/lesson/StudentLessonContentForm';\nimport AdminLessonContentForm from '../../features/lesson/AdminLessonContentForm';\nimport TeacherQAForm from '../../features/qa/TeacherQAForm';\nimport AssistantQAForm from '../../features/qa/AssistantQAForm';\nimport StudentQAForm from '../../features/qa/StudentQAForm';\nimport TeacherQuestionForm from '../../features/qa/TeacherQuestionForm';\nimport AssistantQuestionForm from '../../features/qa/AssistantQuestionForm';\nimport StudentQuestionForm from '../../features/qa/StudentQuestionForm';\nimport TopicsForm from '../../features/topics/TopicsForm';\nimport NewTopicForm from '../../features/topics/NewTopicForm';\nimport TopicForm from '../../features/topics/TopicForm';\nimport SetCourseTopicsForm from '../../features/teacherClasses/SetCourseTopicsForm';\nimport SetCourseTopicItems from '../../features/teacherClasses/SetCourseTopicItems';\nimport ShowCourseTopicItems from '../../features/topics/ShowCourseTopicItems';\nimport ShowStudentCourseTopicItems from '../../features/topics/ShowStudentCourseTopicItems';\nimport ShowTeacherCourseTopicItems from '../../features/topics/ShowTeacherCourseTopicItems';\nimport QuestionsForm from '../../features/qa/QuestionsForm';\nimport TAQuestionsForm from '../../features/qa/TAQuestionsForm';\nimport TopicItemDiscussForm from '../../features/topics/TopicItemDiscussForm';\nimport TopicItemDiscussTeacherForm from '../../features/topics/TopicItemDiscussTeacherForm';\nimport DiscussionsForm from '../../features/discussions/DiscussionsForm';\nimport CourseDiscussionsForm from '../../features/discussions/CourseDiscussionsForm';\nimport AssignmentDiscussForm from '../../features/assignments/AssignmentDiscussForm';\n\nconst App: React.FC = ({ location }) => {\n const rootStore = useContext(RootStoreContext);\n const { setAppLoaded, token, appLoaded } = rootStore.commonStore;\n const { getUser } = rootStore.userStore;\n\n useEffect(() => {\n if (token) {\n getUser().finally(() => setAppLoaded());\n } else {\n setAppLoaded();\n }\n }, [getUser, setAppLoaded, token]);\n\n if (!appLoaded) return ;\n\n const children = (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n\n return (\n \n \n \n\n \n \n );\n};\n\nexport default withRouter(observer(App));\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(\n process.env.PUBLIC_URL,\n window.location.href\n );\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport {Router} from 'react-router-dom';\nimport {createBrowserHistory} from 'history';\nimport 'react-toastify/dist/ReactToastify.min.css';\nimport 'bootstrap/dist/css/bootstrap.min.css';\nimport 'font-awesome/css/font-awesome.min.css';\nimport \"react-datetime/css/react-datetime.css\";\nimport './app/layout/styles.css';\nimport App from './app/layout/App';\nimport * as serviceWorker from './serviceWorker';\nimport ScrollToTop from './app/layout/ScrollToTop';\n\nexport const history = createBrowserHistory();\n\nReactDOM.render(\n \n \n \n ,\n document.getElementById('root')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","import { useEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\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}"],"sourceRoot":""}